{"version":3,"sources":["backendError.types.ts","components/Loader/Loader.tsx","components/PublicBanner/PublicBannerStyles.tsx","assets/images/banner.jpg","components/PublicBanner/PublicBanner.tsx","assets/images/icons/NOMADLogo@2x.png","components/PublicLogo/PublicLogo.tsx","utils/SnackBarConfig.ts","utils/ValidatorSchema.tsx","screens/public/ForgotPassword/ForgotPasswordStyles.tsx","screens/public/ForgotPassword/ForgotPassword.tsx","screens/public/Login/LoginStyles.tsx","screens/public/Login/Login.tsx","screens/public/ResetPassword/ResetPasswordStyles.tsx","screens/public/ResetPassword/ResetPassword.tsx","components/Forms/InputText.tsx","screens/public/SignUp/SignUpStyles.tsx","screens/public/SignUp/SignUp.tsx","style/functions.tsx","style/variable.tsx","components/Display/UserInfoStyles.tsx","components/Display/UserInfo.tsx","components/Display/MainContainer.tsx","components/Display/MainHeader.tsx","components/Display/CountCardsStyles.tsx","components/Display/CountCards.tsx","components/Display/AdsPreviewTileStyles.tsx","components/Display/AdsPreviewTile.tsx","assets/images/icons/download.png","components/Forms/FilterDropDownsV1.tsx","components/Forms/SearchInput.tsx","components/Navs/SecondayNavTabsStyles.tsx","components/Navs/SecondaryTabs.tsx","assets/images/icons/DeviceOff@2x.png","assets/images/icons/DeviceOn@2x.png","utils/ApiResponseValidator.ts","hooks/adminUsers/adminUsersService.ts","components/Navs/LeftNavStyles.tsx","components/Navs/LeftNav.tsx","assets/images/icons/AdminsOff@2x.png","assets/images/icons/AdminsOn@2x.png","assets/images/icons/Ads-1@2x.png","assets/images/icons/AdsOn@2x.png","assets/images/icons/AppTextToolsOff@2x.png","assets/images/icons/AppTextToolsOn@2x.png","assets/images/icons/CompaniesOff@2x.png","assets/images/icons/CompaniesOn@2x.png","assets/images/icons/Provider-1@2x.png","assets/images/icons/ProviderOn@2x.png","assets/images/icons/ClientsOff@2x.png","assets/images/icons/ClientsOn@2x.png","hooks/alarms/alarmsServices.ts","hooks/companies/companiesServices.ts","hooks/devices/devicesServices.ts","utils/DateUtils.ts","components/Dialog/PrimaryPopupDialog.tsx","constants/AlarmTypesEnum.ts","components/Table/CustomTableComponents.tsx","components/Dialog/DeviceInfoDialog.tsx","assets/images/icons/BatteryChargeLow@2x.png","assets/images/icons/SensorFailure2@2x.png","assets/images/icons/SystemHot@2x.png","constants/AlarmIcon.ts","assets/images/icons/BatterySlotEmpty@2x.png","assets/images/icons/NoBreathDetected@2x.png","assets/images/icons/OxygenOutputLow@2x.png","assets/images/icons/OxygenDeliveryFailure@2x.png","assets/images/icons/ExternalPowerFailure@2x.png","assets/images/icons/ReplaceBattery@2x.png","assets/images/icons/ReplaceSieve@2x.png","assets/images/icons/ShuttingDown@2x.png","assets/images/icons/SystemCold@2x.png","components/Table/TablePaginationActions.tsx","components/Dialog/ViewAlarmsDialog/ViewAlarmsDialog.tsx","hooks/clients/clientsServices.ts","components/Buttons/OutlinedTableButton.tsx","components/Buttons/CancelButtonContained.tsx","components/Buttons/DeleteButtonContained.tsx","components/Dialog/ClearPersonalDataDialog.tsx","components/Dialog/TransferDialog.tsx","components/Table/Sorter.tsx","components/Table/VirtualizedTable.tsx","types.tsx","components/Dialog/NewDeviceInfoDialog.tsx","hooks/providers/providersService.ts","components/Dialog/EnvironmentalInfoDialog.tsx","screens/admin/Companies/AddDeviceDialog.tsx","screens/admin/Companies/AddDevicesDialog.tsx","screens/admin/Companies/AlarmsListStyles.tsx","screens/admin/Companies/AlarmsList.tsx","components/Dropdowns/ActionMenu.tsx","screens/admin/Companies/AlarmsTableView.tsx","screens/admin/Companies/DevicesTableView.tsx","screens/admin/Companies/CompaniesAlarmView.tsx","screens/admin/Companies/AddCompanyDialog.tsx","screens/admin/Companies/CompaniesArchivedDataTable.tsx","screens/admin/Companies/CompaniesDataTable.tsx","screens/admin/Companies/CountCardsContainer.tsx","screens/admin/Companies/CompaniesListView.tsx","screens/admin/Companies/Companies.tsx","screens/admin/Providers/ProviderMetricsTableView.tsx","screens/admin/Providers/Providers.tsx","screens/admin/Clients/ClientsActiveTable.tsx","screens/admin/Clients/ClientsArchiveTable.tsx","screens/admin/Clients/DeleteRequestDialog.tsx","screens/admin/Clients/DeleteRequests.tsx","components/Dialog/AddUserDialog/AddUserDialogStyles.tsx","components/Dialog/AddUserDialog/AddUserDialog.tsx","screens/admin/AdminUsers/ArchiveAdminDialog.tsx","screens/admin/AdminUsers/AdminUsersArchivedTable.tsx","screens/admin/AdminUsers/AdminUsersCurrentTable.tsx","screens/admin/AdminUsers/AdminUsers.tsx","screens/admin/AppTextTools/AppTextToolsStyles.tsx","screens/admin/AppTextTools/AppTextToolsForm.tsx","screens/admin/AppTextTools/AppTextTools.tsx","hooks/advertisements/advertisements.ts","screens/admin/Ads/CompanySelector.tsx","screens/admin/Ads/MetricsTable.tsx","screens/admin/Ads/Uploader.tsx","screens/admin/Ads/CreateHomePageAds.tsx","screens/admin/Ads/ArchivedAd.tsx","components/Dialog/AdCompanyDialog/AdCompanyDialog.tsx","screens/admin/Ads/ConfirmDelete.tsx","screens/admin/Ads/DeviceHealthPanel.tsx","screens/admin/Ads/DeviceHealth.tsx","screens/admin/Ads/HomePageAd.tsx","screens/admin/Ads/CreateLaunchAds.tsx","screens/admin/Ads/LaunchAd.tsx","screens/admin/Ads/Metrics.tsx","screens/admin/Ads/AdsContainer.tsx","screens/admin/Devices/AlarmsListStyles.tsx","screens/admin/Devices/AlarmsListUser.tsx","screens/admin/Devices/AlarmsTableViewUser.tsx","components/Dialog/LostUserDevice.tsx","screens/admin/Devices/DevicesTableViewUser.tsx","screens/admin/Devices/DevicesUser.tsx","screens/admin/Devices/AddDeviceDialog.tsx","screens/admin/Devices/AddDevicesDialog.tsx","screens/admin/Devices/AlarmsList.tsx","screens/admin/Devices/AlarmsTableView.tsx","screens/admin/Devices/DevicesTableView.tsx","screens/admin/Devices/Devices.tsx","constants/routes/NavRoutes.ts","constants/ApiRoutes.ts","constants/Constants.tsx","store/api/adminUsers.api.ts","store/api/advertisements.ts","store/api/alarms.api.ts","store/api/auth.api.ts","store/api/clients.api.ts","store/api/companies.api.ts","store/api/dashboard.api.ts","store/api/deviceLogs.api.ts","store/api/devices.api.ts","store/api/providers.api.ts","store/api/user.api.ts","store/api/index.ts","utils/LocalStorage.ts","utils/Storage.ts","store/auth.ts","store/dashboard.ts","store/provider.ts","store/uiStore/index.ts","store/user.ts","store/index.ts","context/store/index.ts","hooks/store.ts","hooks/search/search.tsx","screens/admin/Home/HomeStyles.tsx","screens/admin/Home/Home.tsx","routes/AdminRoute.tsx","routes/PublicRoute.tsx","App.tsx","materialtheme/PaletteDark.tsx","materialtheme/PaletteLight.tsx","materialtheme/GetTheme.tsx","materialtheme/Overrides.tsx","materialtheme/Props.tsx","materialtheme/Typography.tsx","materialtheme/index.tsx","reportWebVitals.ts","index.tsx"],"names":["AuthErrorType","FileErrorType","UserErrorType","ServerErrorType","GeneralErrorType","DateErrorType","Loader","props","className","classes","color","isDisableShrink","size","thickness","value","variant","join","CircularProgress","disableShrink","publicBanner","useStyles","makeStyles","theme","bannerSubTitle","fontSize","height","lineHeight","marginLeft","spacing","marginTop","palette","text","secondary","fontWeight","letterSpacing","breakpoints","up","bannerTitle","common","black","image","width","display","backgroundColor","background","default","backgroundImage","backgroundRepeat","backgroundSize","PublicBanner","Grid","component","Box","lg","sm","xs","item","logo","logoContainer","textAlign","PublicLogo","Typography","alt","src","DEFAULT_ANCHOR","horizontal","vertical","SnackBarConfig","type","config","anchorOrigin","autoHideDuration","forgotPasswordSchema","yup","shape","email","required","password","ResetPasswordSchema","confirmPassword","when","is","p","then","oneOf","min","addUserSchema2","firstName","matches","max","lastName","phoneNumber","role","userName","SignUpSchema","cancel","cursor","form","heading","primary","headingMargin","marginBottom","inputMargin","margin","padding","labelEmail","leftContent","loader","paper","alignItems","flexDirection","root","subHeading","disabled","observer","apiStore","useCustomStore","enqueueSnackbar","useSnackbar","history","useHistory","useState","loading","setLoading","useForm","criteriaMode","defaultValues","mode","reValidateMode","resolver","yupResolver","control","handleSubmit","errors","formState","redirectToLogin","useCallback","push","PublicRoutes","LOGIN","submitForgotPassword","data","a","userApi","forgotPassword","forgotPasswordResp","isOk","error","message","container","onSubmit","FormControl","fullWidth","defaultValue","name","render","field","TextField","id","label","helperText","rules","Button","clsx","Link","tabIndex","underline","onClick","center","position","right","zIndex","formMargin","fullHeight","maxWidth","minHeight","down","paperBorder","borderColor","borderRadius","relative","flexGrow","signUp","authStore","submitLogin","login","loginResp","isErr","schema","Container","noValidate","autoComplete","Paper","outlined","justify","direction","h2","InputLabelProps","shrink","labelPassword","resetToken","URLSearchParams","useLocation","search","get","isValid","submitResetPassword","resetPassword","confirm","token","resetPasswordResp","InputText","tabIndexVal","onChangeText","isSecureTextEntry","isEditable","isRefreshValue","isFormSubmittedOnce","isTextArea","inputRefObj","maxLengthVal","placeholder","React","inputVal","setInputVal","showLocalError","setShowLocalError","showPassword","setShowPassword","maxLenVal","length","onValueChange","val","useEffect","showError","additionalInputProps","InputAdornment","IconButton","aria-label","edge","InputProps","endAdornment","inputProps","maxLength","inputRef","multiline","rows","rowsMax","onBlur","onChange","event","target","codeBtn","codeInput","labelTitle","submit","white","textTransform","code","first_name","last_name","phone","inputValue","setInputValue","submitGetCode","param","getCode","getCodeResp","submitSignUp","split","substr","indexOf","register","signUpResp","ref","submitCount","e","styleFunction","rippleColor","hoverBg","fontFamily","TextStyles","primaryNav","ComponentStyles","errorHover","errorRiple","ripple","font","shadow","primaryColor","border","active","AppStyles","aliceBlue","lightlevandor","solitude","tertiary","tuna","lightBlue","orangeColor","bold","light","medium","regular","semiBold","lightGray","avatar","main","borderBottom","borderTop","navButton","UserInfo","ListItem","button","ListItemIcon","Avatar","toUpperCase","ListItemText","primaryTypographyProps","align","secondaryTypographyProps","defaultProps","content","MainContainer","children","padLeft","padRight","padBottom","padTop","transparent","style","paddingBottom","paddingLeft","paddingRight","paddingTop","MainHeader","whiteText","cardContainer","justifyContent","count","fontColor","v1","v2","v3","v4","CountCards","elevation","Number","toLocaleString","adsContainer","borderTopLeftRadius","bottom","maxHeight","boxShadow","overflow","archive","textDecoration","textUnderlineOffset","description","edit","marginRight","opacity","metrics","title","AdsPreviewTile","optionalButton","fileType","createdCompanyName","onEdit","onArchiveActivate","onShowMetrics","controls","createStyles","formControl","minWidth","FilterDropDownsV1","onHandleChange","setVal","handleChange","Select","labelId","map","MenuItem","SearchStore","searchTerm","setSearch","onKeyDown","keyCode","triggerSearch","startAdornment","indicator","tab","tabBorder","tabSize","SecondaryTabs","defaultVal","navChange","navClick","setValue","Tabs","flexContainer","indicatorColor","textColor","newValue","Tab","textColorPrimary","checkResponse","resp","setData","snackBar","checkUploadResponse","checkDownloadResponse","fileName","blob","Blob","FileSaver","saveAs","useFetchMe","adminUsersApi","admins","setAdmins","getMe","adminsResp","fetchMe","useFetchAdminUsers","params","limit","offset","searchMode","order","fetchAdmins","pagination","sortOrder","sortby","searchAdmins","status","adminResp","reload","useSearchAdmins","drawer","flexShrink","drawerPaper","link","list","listGrow","logoSpacing","logout","logoutColor","selected","borderRight","withRouter","currentLocation","pathname","currentRoute","setCurrentRoute","me","logoMap","off","on","DeviceOff","DeviceOn","handleLogout","NAVS","NavRoutes","ADMIN_NAVS","NAVS_role","routepage","permissions","path","includes","route","Drawer","anchor","List","nav","index","newWindow","window","open","opener","handleNavChange","useDownloadDeviceAlarms","alarmsApi","downloadDeviceAlarms","month","download","alarmsResp","useDownloadUsersAlarms","downloadCompanyAlarms","userId","downloadUsersAlarms","useFetchAllCompanies","companiesApi","companies","setCompanies","fetchCompanies","reqParams","getAllCompanies","companiesResp","useFetchAllCompaniesByType","getAllCompaniesByType","useGetDeviceTransferInfo","devicesApi","response","setResponse","DeviceInfo","deviceId","unbind","getTransferDevice","getPast12MontsFilter","currentMonth","Date","getMonth","currentYear","getFullYear","monthFilters","i","PrimaryPopupDialog","onClose","actionItems","showDownload","closeIcon","top","closeWrapper","dialogActionPadding","dialogPadding","dialogTitle","handleClose","Dialog","paperFullWidth","aria-labelledby","aria-controls","aria-haspopup","DialogTitle","disableTypography","disableElevation","downloadButton","DialogContent","overflowY","DialogActions","AlarmTypeEnum","StyledTableCell","withStyles","body","head","TableCell","StyledTableRow","TableRow","DeviceInfoDialog","currentDeviceInfo","device","replaceSieve","dischargeCycleCount","controllerBoardVersion","motorBoardVersion","geolocation","deviceInfo","setDeviceInfo","fetchDeviceInfo","deviceLogsApi","getDeviceInfo","deviceInfoResp","TableContainer","Table","TableBody","row","scope","AlarmTypeIcons2x","BatteryEmpty","Charging","LowBattery2x","LowBattery","Muted","SensorFailure2x","NoBreath","OxyLow","OxygenDeliveryFailure","PowerFailure","ReplaceBattery","ReplaceSieve","SensorFailure","ShuttingDown","SpeedFive","SysCold","SysHot","SysHot2x","WarmingUp","AlarmTypesList","useStyles1","TablePaginationActions","useTheme","page","rowsPerPage","onChangePage","Math","ceil","bg","dateTime","largeFont","ViewAlarmsDialog","isProvider","alarmTypes","setDevice","typeFilter","setTypeFilter","monthFilter","setMonthFilter","fetchBy","getUserNameByClientId","getUserNameByDeviceId","getUserName","useGetUserName","userNameResp","userNameLoading","setPage","setRowsPerPage","filter","date","alarms","setAlarms","getUserAlarms","getDeviceAlarms","fetchAlarms","useFetchAlarms","fullScreen","stickyHeader","moment","created_at","format","TableFooter","TablePagination","rowsPerPageOptions","colSpan","SelectProps","native","newPage","onChangeRowsPerPage","parseInt","ActionsComponent","useFetchClients","clientsApi","clients","setClients","fetchClients","getAllClients","clientsResp","useSearchClients","searchClients","OutlinedTableButton","CancelButtonContained","contained","DeleteButtonContained","ClearPersonalDataDialog","clearPersonalData","clear","useClearPersonalData","personalLoading","personalResp","clearAccountPersonalData","useClearAccountPersonalData","accountLoading","accountResp","startIcon","listLabel","transform","radio","radioChecked","selectEmpty","TransferDialog","distributors","physicians","transferDevice","transfer","accessDataStatus","transferDeviceBindCompany","distributorCompanyId","physicianCompanyId","useDeviceTransferByThird","loadingSubmit","transferDeviceResponse","undefined","actionButtons","InputLabel","FormLabel","RadioGroup","FormControlLabel","Radio","checked","Sorter","currentSort","sortChange","sort","setSort","handleSortChange","VirtualizedTable","boxSizing","noClick","table","flip","tableCell","flex","tableRow","tableRowHover","grey","headerHeight","columns","rowHeight","tableProps","getRowClassName","onRowClick","cellRenderer","cellData","columnIndex","numeric","gridStyle","rowClassName","dataKey","other","headerRenderer","headerProps","UserRole","NewDeviceInfoDialog","setCurrentSort","handleChangePage","handleChangeRowsPerPage","providersApi","peripherals","setPeripherals","fetchProviders","getAllDeviceInfo","useFetchPeripherals","TableHead","dailySteps","dailyActivityMinutes","heartRate","bloodOxygenLevel","EnvironmentalInfoDialog","environmentals","setEnvironmentals","fetchEnvironmental","getAllEnvironmentalInfo","environmentalResp","useFetchEnvironmentals","mold","treePollen","grassPollen","weedPollen","airQuality","temperature","celsius","AddDeviceDialog","companyId","submitDevice","addDevice","companyResp","AddDevicesDialog","fileTypes","dragOver","setDragOver","files","setFiles","filesList","setFilesList","uploadDevice","upload","uploadDevices","useUploadDevice","onDragLeave","onDragOver","preventDefault","onDropCapture","formData","FormData","dataTransfer","endsWith","append","onDrop","noBg","noPadding","titleFont","whiteFont","AlarmsList","alarmsTypes","setAlarmsTypes","getCompanyAlarmsTypes","useFetchCompanyAlarmsTypes","useParams","alarm_type","type_count","ActionMenuItem","ActionMenu","Menu","amount","timefield","wrap","timestamp","AlarmsTableView","anchorEl","setAnchorEl","selectedDevice","setSelectedDevice","deviceInfoOpen","setDeviceInfoOpen","initSearch","startSearch","keyword","getCompanyAlarms","useFetchCompanyAlarms","hoveredRow","setHoveredRow","viewAlarmsOpen","setViewAlarmsOpen","handleViewAlarms","menuItems","handler","keepMounted","Boolean","onMouseEnter","gender","deviceNumber","currentTarget","forwardRef","DevicesTableView","transfersOpen","setTransfersOpen","selectedDeviceInfo","setselectedDeviceInfo","clearPersonalOpen","setClearPersonalOpen","clearAccountOpen","setClearAccountOpen","devices","setDevices","fetchDevices","getCompanyDevices","devicesResp","useFetchCompanyDevices","useImperativeHandle","reloadDevices","Chip","hoursUsed","CompaniesAlarmView","company","setCompany","getCompany","useFetchCompany","selectedTab","setSelectedTab","useDownloadCompanyAlarms","addDeviceOpen","setAddDeviceOpen","addDevicesOpen","setAddDevicesOpen","downloadDeviceInfo","useDownloadDeviceInfo","stopPropagation","view","deviceRef","useRef","current","deviceCount","selectView","AddCompanyDialog","types","setTypes","queryCompanyTypes","useQueryCompanyTypes","submitCompany","createCompany","companyType","noContent","CompaniesArchivedDataTable","useRouteMatch","getArchivedCompanies","useFetchArchivedCompanies","reloadCompanies","handleCompanySelection","iconButton","CompaniesDataTable","console","log","searchCompanies","useSearchCompanies","searchLoading","searchResp","renderTable","totalCount","alarm","activeCount","inactiveCount","CountCardsContainer","activeAlarmsTotal","activeClientsTotal","companiesTotal","inactiveClientsTotal","getCompanyDashBoardTotals","dataResp","fetchDashboardData","useFetchCompanyDashboardTotals","md","CompaniesListView","cdRef","cdArRef","setOpen","getCompanyTotals","fetchCompaniesTotalsData","useFetchCompanyTotals","activeTotal","inactiveTotal","Companies","exact","th","ProviderMetricsTab","providerStore","currId","setCurrId","modalOpen","setModalOpen","environmentModalOpen","setEnvironmentModalOpen","inputField","setInputField","currentUserId","setCurrentUserId","searchApplied","setSearchApplied","selectAll","setSelectAll","providers","setProviders","getAllProviders","getAllProvidersByThird","getAllProvidersByPatient","useFetchProviders","reloadAdmins","searchProviders","useSearchProviders","Checkbox","selectedProvider","addSelected","removeSelected","user","deviceLog","o2Delivered","pulseoximeter","oxygenSaturation","pulse","spirometer","fvcMeasurement","fev1Measurement","fev1FvcRatio","environmental","peripheral","handleClick","renderFooter","Providers","downloadProviders","providerResp","useDownloadProviders","href","setCurrentDeviceInfo","dob","diagnosis","otherdiagnosis","lastLog","ApiError","actions","this","DeleteRequestTypes","FullAccountData","PersonalData","DeleteRequestDialog","updateClose","updateDeleteRequests","addUserResp","msg","approveOpen","setApproveOpen","denyOpen","setDenyOpen","deleteRequests","setDeleteRequests","fetchDeleteRequests","getAllDeleteRequests","deleteRequestsResp","useFetchDeleteRequests","buttonSection","cancelLink","dialog","dialogSubTitle","formLabelClass","headerWrapper","warning","inline","inputSelect","menuItem","isOpen","isEdit","editData","shouldFocusError","closeDialog","popupClose","submitAddUser","data2","addUser","submitUpdateUser","updateUser","updateUserResp","ArchiveAdminDialog","updateAdminStatus","AdminUsersArchivedTable","companyName","AdminUsersCurrentTable","currentUser","setCurrentUser","showAddDialog","setShowAddDialog","sendConfirmation","useSendConfirmation","performOperation","AdminUsers","currentRef","archivedRef","activeUsersLoader","addUserBtnContainer","gridButton","gridCancel","gridRightContainer","gridRightContainer2","gridRoot","gridToolbar","iconSearchButton","innerTextbox","modRoot","searchContainer","searchInput","outline","searchRoot","hint","textbox","underlined","textDecorationLine","userList","AppTextToolsForm","isSubmitting","handleAfterSubmit","userStore","textsLoading","setTextsLoading","currText","setCurrText","setOriginalText","getAppTexts","fetchAllTexts","isDraft","getTextResp","changeAppText","createNewText","autoFocus","tabs","AppTextTools","setSubmitting","useFetchAdvertisements","advertisementsApiStore","advertisements","setAdvertisements","fetchAdvertisements","getAllAdvertisements","providersResp","useDownloadAdMetrics","downloadAdMetrics","metricsResp","useFetchDeviceHealth","deviceHealth","setDeviceHealth","fetchDeviceHealth","getDeviceHealth","updateDeviceHealth","deleteDeviceHealth","useUploadAd","uploadAd","createAdNew","adResp","updateAd","adId","CompanySelector","showShadow","onCompanyChange","addedCompanies","isDefaultAd","companySelector","selectedCompany","hasCompany","selectedCompanies","setSelectedCompanies","el","alignContent","Autocomplete","options","JSON","stringify","getOptionLabel","option","renderInput","element","MetricsTable","Metrics","setMetrics","fetchMetrics","getAdMetrics","useFetchAdMetrics","momenttz","tz","percSkip","skipCount","viewCount","bottomSection","bottomText","imagePreview","uploader","Uploader","onFileUpload","selectedImage","selectedMedia","setSelectedMedia","fileInputRef","onTargetClick","click","startsWith","file","URL","createObjectURL","hidden","accept","ModButton","styled","goBack","wrapper","gap","gridTemplateColumns","CreateHomePageAds","redirectTo","skipTime","selectedState","setSelectedState","companyUpdated","setCompanyUpdated","referenceLink","replayIn","isDirty","setFile","fileUrl","ArchivedAd","adStatus","changeStatus","adType","adsCreateCompany","AdCompanyDialog","ConfirmDelete","deleteHealth","companyNames","halfWidth","headers","linkBox","rightSection","DeviceHealthPanel","companyList","companyLoading","companySelectOpen","setCompanySelectOpen","vals","cannulaLink","filterLink","batteryLink","val2","DeviceHealth","HomePageAd","hideNav","redirect","setRedirect","setEditData","CreateLaunchAds","replayTime","LaunchAd","category","categoryWrapper","header","items","metricsCard","values","flexWrap","getMetrics","useFetchMetrics","skipPerc","setSkipPerc","todayPerc","isNaN","todayCount","toFixed","weekPerc","weekCount","monthPerc","monthCount","today","week","AdsContainer","url","setHideNav","location","tab_list","downloadCompleteAdMetrics","useDownloadCompleteAdMetrics","navHandler","to","memo","AlarmsListUser","getPatientCompanyAlarmsTypes","useFetchCompanyPatientAlarmsTypes","AlarmsTableViewUser","getPatientCompanyAlarms","useFetchCompanyAlarmsPatient","LostUserDevice","unbindDevice","unbindDevices","useUnbindDevice","DevicesTableViewUser","lostUserDevice","setLostUserDevice","getCompanyDevicesByPatient","useFetchCompanyDevicesByPatient","downloadPatientAlarms","downloadPatientCompanyAlarms","useDownloadPatientAlarms","downloadPatientDeviceInfo","useDownloadPatientDeviceInfo","addDeviceByThird","uploadDeviceThird","uploadDevicesThird","useUploadDeviceThird","getThirdCompanyAlarmsTypes","useFetchCompanyThirdAlarmsTypes","getThirdCompanyAlarms","useFetchCompanyAlarmsThird","getCompanyDevicesByThird","useFetchCompanyDevicesByThird","getCompanyThird","useFetchCompanyByThird","downloadThirdCompanyAlarms","useDownloadThirdCompanyAlarms","downloadThirdDeviceInfo","useDownloadThirdDeviceInfo","PUBLIC","FORGOT_PASSWORD","RESET_PASSWORD","SIGNUP","PRIVATE","ADMIN_USERS","ADS","APP_TEXT_TOOLS","CLIENTS","COMPANIES","DEVICE","DEVICES","PATIENTS","PROVIDERS","PUBLIC_NAVS","Screens","HttpMethod","Config","API_URL","BASE_URL","process","REACT_APP_BASEURL","REACT_APP_PRIVACY_POLICY","REACT_APP_TERMS","version","ApiRoutes","GetAdminUsers","Endpoint","Method","GET","GetMe","POST","Advertisement","ArchiveActive","PUT","Create","Get","GetDeviceHealth","Post","Put","DELETE","postDeviceHealth","putDeviceHealth","Alarms","DownloadCompanyAlarms","DownloadDeviceAlarms","DownloadPatientCompanyAlarms","DownloadThirdCompanyAlarms","DownloadUsersAlarms","GetAlarms","GetCompanyAlarms","GetCompanyAlarmsTypes","GetDeviceAlarms","GetPatientCompanyAlarms","GetPatientCompanyAlarmsTypes","GetThirdCompanyAlarms","GetThirdCompanyAlarmsTypes","GetUserAlarms","GetUserByClientId","GetUserByDeviceId","Auth","Code","Login","Clients","ClearAccountPersonalData","ClearPersonalData","GetClients","GetDeleteRequests","UpdateRequests","CreateCompany","GetArchivedCompany","GetCompanies","GetCompaniesByType","GetCompaniesDashboardTotals","GetCompaniesTotals","GetCompany","GetCompanyThird","queryCompanyType","Dashboard","GetELC","DeviceLogs","DownloadDeviceInfo","DownloadPatientDeviceInfo","DownloadThirdDeviceInfo","GetDeviceInfo","Devices","AddDevice","AddDeviceByThird","CreateDevice","GetCompanyDevices","GetCompanyDevicesByPatient","GetCompanyDevicesByThird","GetDevices","GetTransferDevice","TransferDevice","TransferDeviceThird","TransferDeviceUser","UnbindDevice","UploadDevice","UploadDeviceThird","Elc","Add","Delete","Download","Export","ExportByAd","GetByAd","DownloadProviders","GetEnvironmentalData","GetPeripheralData","GetProviders","GetProvidersByPatient","GetProvidersByThird","User","AddTextTools","ForgotPassword","GetTextTools","GetUsers","ResendInvite","ResetPassword","SendConfirmation","SignUp","Update","AdminUsersApiStore","rootStore","call","baseUrl","method","getAllAdminUsers","makeAutoObservable","AdvertisementsApiStore","responseType","createAd","AlarmsApiStore","getAllAlarms","AuthApiStore","ClientsApiStore","CompaniesApiStore","DashboardApiStore","getELC","DeviceLogsApiStore","DevicesApiStore","getAllDevices","createDevice","transferTransferDeviceUser","searchCompanyDevices","ProvidersApiStore","UserApiStore","getUsers","resendInvite","addText","getTextTools","ApiStore","_httpClient","authApi","dashboardApi","initialize","axios","create","baseURL","interceptors","request","use","accessToken","tokens","authHeaders","Authorization","statusText","refreshToken","initialAuthCount","authCount","replace","ok","er","exchange","exchangeOnlyOnce","NoAccessToUser","err","authFailed","key","encrypt","CryptoJS","toString","decrypt","Utf8","Storage","keys","Object","localStorage","removeItem","KEYS","AUTH_TOKEN","setItem","getItem","shouldParse","keyVal","searchKey","parse","getAccessTokenData","jwt_decode","getTokens","appAuth","AuthStore","_authCount","_tokens","_logoutPromise","_exchangePromise","promise","setTokens","setLogoutPromise","_authLogout","isLoggedIn","removeTokens","setExchangePromise","_exchangeToken","exchangeTokenApiCall","initTokens","userRole","codeResp","DashboardStore","_showLoader","ProviderStore","_selectedProvider","UiStore","UserStore","_currentSortField","_currentSortOrder","_searchText","_nextOffset","_limit","_hasMoreResults","_userListData","_currentStatus","_adminList","_userByRolesList","processedTypes","accessibility","compliance","faqs","privacypolicy","termsandconditions","usermanual","sortField","searchText","state","hasMoreResults","setCurrentSortOrder","results","completed","nextOffset","setUsers","setNextstart","setHasMoreResults","mergedIds","mergedData","updatedUserListData","updatedList","selectedIndex","findIndex","updatedItem","notes","Admin","setAdminList","userRoles","setUserByRolesList","dashboardStore","uiStore","providersApiStore","StoreContext","createContext","useContext","searchScreen","setSearchScreen","screen","toolbar","mixins","Home","AdminRoute","home_path","providerAccess","createElement","PublicRoute","isReady","setReady","handleAppEntry","fetchTokens","hasTokenAndUserId","paletteDark","divider","colors","contrastText","dark","info","blue","success","paletteLight","getTheme","overrides","MuiButton","containedPrimary","MuiFormHelperText","MuiInputLabel","MuiOutlinedInput","input","notchedOutline","MuiTextField","notched","disableAnimation","GetTheme","typography","body1","body2","caption","h1","h3","h4","h5","h6","overline","subtitle1","subtitle2","createMuiTheme","responsiveFontSizes","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","generateClassName","createGenerateClassName","seed","Index","notistackRef","createRef","onClickDismiss","closeSnackbar","StrictMode","ThemeProvider","CssBaseline","action","Cancel","maxSnack","hideIconVariant","preventDuplicate","StylesProvider","ReactDOM","document","getElementById"],"mappings":"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","file":"static/js/main.2b503eb4.chunk.js","sourcesContent":["export enum AuthErrorType {\n InvalidKeyErrorType = 'AuthErrorTypeInvalidKey',\n InvalidUserType = 'AuthErrorTypeInvalidUserType',\n NotFoundErrorType = 'AuthErrorTypeNotFound',\n MissingParamsErrorType = 'AuthErrorTypeMissingParams',\n InvalidPassword = 'AuthErrorTypeInvalidPassword',\n TokenExpiredType = 'AuthErrorTypeTokenExpired',\n AppHasNoNotificationSetup = 'AuthErrorTypeAppHasNoNotificationSetup',\n NotPartOfApp = 'AuthErrorTypeNotPartOfApp',\n InvalidWebhookKey = 'AuthErrorTypeInvalidWebhookKey',\n NoAccessToUser = 'AuthErrorTypeNoAccessToUser',\n ServerNoAccessToUser = 'AuthErrorTypeServerNoAccessToUser',\n IncorrectPassword = 'AuthErrorTypeIncorrectPassword',\n NoSamePassword = 'AuthErrorTypeNoSamePassword',\n NoAppAccessToUser = 'AuthErrorTypeNoAppAccessToUser',\n TokenNotStarted = 'AuthErrorTypeTokenNotStarted',\n AccountAlreadyExists = 'AuthErrorTypeAccountAlreadyExists',\n UserNotFound = 'AuthErrorTypeUserNotFound',\n InvalidToken = 'AuthErrorTypeInvalidToken',\n MissingAuthHeaderField = 'AuthErrorTypeMissingAuthHeaderField',\n InvalidCredentials = 'AuthErrorTypeInvalidCredentials',\n HashGeneration = 'AuthErrorTypeHashGeneration',\n HashComparison = 'AuthErrorTypeHashComparison',\n RefreshTokenAlreadyExchanged = 'AuthErrorTypeRefreshTokenAlreadyExchanged',\n RefreshTokenNotFound = 'AuthErrorTypeRefreshTokenNotFound',\n UserDisabled = 'AuthErrorTypeUserDisabled',\n UserInactive = 'AuthErrorTypeUserInactive',\n InvalidUserRole = 'AuthErrorInvalidUserRole',\n InvitationPermissionDenied = 'AuthErrorInvitationPermissionDenied',\n PasswordMismatchError = 'AuthErrorPasswordMismatchError',\n InvitationCodeNotFound = 'AuthErrorTypeInvitationCodeNotFound',\n InvalidInvitationCode = 'AuthErrorTypeInvalidInvitationCode',\n InvitationCodeExpired = 'AuthErrorTypeInvitationCodeExpired',\n InvitationCodeRedeemed = 'AuthErrorTypeInvitationCodeRedeemed',\n}\n\nexport enum FileErrorType {\n SizeLimitExceeded = 'FileErrorTypeSizeLimitExceeded',\n NoFileSentType = 'FileErrorTypeNoFileSentType',\n InvalidFieldNameForFile = 'FileErrorTypeInvalidFieldNameForFile',\n InvalidMetadata = 'FileErrorTypeInvalidMetadata',\n FileSizeLimitExceeded = 'FileErrorTypeFileSizeLimitExceeded',\n InvalidFileName = 'FileErrorTypeInvalidFileName',\n NotSent = 'FileErrorTypeNotSent',\n NotFound = 'FileErrorTypeNotFound',\n NoThumbnailFound = 'FileErrorTypeNoThumbnailFound',\n ImageNotForConversation = 'FileErrorTypeImageNotForConversation',\n ImageNotForUser = 'FileErrorTypeImageNotForUser',\n FileNotForMessage = 'FileErrorTypeFileNotForMessage',\n SizeNotFound = 'FileErrorTypeSizeNotFound',\n NotForApp = 'FileErrorTypeNotForApp',\n IncorrectFileType = 'FileErrorTypeIncorrectFileType',\n}\n\nexport enum UserErrorType {\n NoUsersFound = 'UserErrorTypeNoUsersFound',\n}\n\nexport enum ServerErrorType {\n UnknownError = 'UnknownError',\n InternalServerError = 'InternalServerError',\n}\n\nexport enum GeneralErrorType {\n MissingQueryParams = 'GeneralErrorTypeMissingQueryParams',\n RouteNotFound = 'GeneralErrorTypeRouteNotFound',\n LimitNotValid = 'GeneralErrorTypeLimitNotValid',\n OffsetNotValid = 'GeneralErrorTypeOffsetNotValid',\n}\n\nexport enum DateErrorType {\n InvalidFromDateError = 'DateErrorTypeInvalidFromDateError',\n InvalidToDateError = 'DateErrorTypeInvalidToDateError',\n}\n\n// Payload actions\nexport interface ErrorResponseActions {\n authFailed?: boolean;\n exchange?: boolean;\n}\n","import './Loader.scss';\n\nimport { CircularProgress } from '@material-ui/core';\nimport { ClassNameMap } from '@material-ui/styles';\nimport React from 'react';\n\ntype LoaderProps = {\n className?: string;\n classes?: ClassNameMap;\n color?: 'inherit' | 'primary' | 'secondary';\n isDisableShrink?: boolean;\n size?: number | string;\n thickness?: number;\n value?: number;\n variant?: 'determinate' | 'indeterminate' | 'static';\n};\n\nconst Loader = (props: LoaderProps): React.ReactElement => {\n const {\n className,\n classes,\n color,\n isDisableShrink,\n size,\n thickness,\n value,\n variant,\n } = props;\n\n return (\n
\n \n
\n );\n};\nexport default Loader;\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport banner from '../../assets/images/banner.jpg';\n\nconst publicBanner: string = banner;\n\nconst useStyles = makeStyles((theme) => ({\n bannerSubTitle: {\n '@media (min-width:600px)': {\n fontSize: '1.5rem',\n height: 30,\n lineHeight: '40px',\n marginLeft: theme.spacing(1),\n marginTop: theme.spacing(5),\n },\n color: theme.palette.text.secondary,\n fontSize: '1.2rem',\n fontWeight: 300,\n height: 44.2,\n letterSpacing: '0',\n [theme.breakpoints.up('md')]: {\n fontSize: '2.4rem',\n },\n lineHeight: '44.2px',\n marginLeft: theme.spacing(32),\n marginTop: theme.spacing(2),\n textAlign: 'center',\n },\n bannerTitle: {\n '@media (min-width:600px)': {\n fontSize: '1.5rem',\n height: 35,\n lineHeight: '35px',\n marginLeft: theme.spacing(1),\n },\n color: theme.palette.common.black,\n fontSize: '1.2rem',\n fontWeight: 'bold',\n height: 83,\n [theme.breakpoints.up('md')]: {\n fontSize: '2.4rem',\n height: 83,\n lineHeight: '83.2px',\n },\n letterSpacing: '0',\n lineHeight: '83.2px',\n marginLeft: theme.spacing(13),\n marginTop: theme.spacing(32),\n textAlign: 'center',\n },\n image: {\n '@media screen and (max-width: 1280px)': {\n width: '65%',\n },\n '@media screen and (max-width: 600px)': {\n display: 'none',\n },\n '@media screen and (max-width: 960px)': {\n width: '50%',\n },\n backgroundColor: theme.palette.background.default,\n backgroundImage: `url(${publicBanner})`,\n backgroundRepeat: 'no-repeat',\n backgroundSize: 'cover',\n display: 'block',\n width: '73%',\n },\n}));\n\nexport default useStyles;\n","export default __webpack_public_path__ + \"static/media/banner.1337c722.jpg\";","import Box from '@material-ui/core/Box';\nimport Grid from '@material-ui/core/Grid';\nimport React from 'react';\n\nimport useStyles from './PublicBannerStyles';\n\nconst PublicBanner: React.FC = () => {\n const classes = useStyles();\n\n return (\n \n Belluscura X-Plor\n \n Enriching Life Through InnO2vation\n \n \n );\n};\n\nexport default PublicBanner;\n","export default __webpack_public_path__ + \"static/media/NOMADLogo@2x.cfd5f1e0.png\";","import { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport React from 'react';\n\nimport logo from '../../assets/images/icons/NOMADLogo@2x.png';\n\nconst useStyles = makeStyles(() => ({\n logo: {\n width: '70%',\n },\n logoContainer: {\n textAlign: 'center',\n width: '100%',\n },\n}));\n\nconst PublicLogo: React.FC = () => {\n const classes = useStyles();\n\n return (\n \n \"logo\"\n \n );\n};\n\nexport default PublicLogo;\n","import { OptionsObject, SnackbarOrigin } from 'notistack';\n\nexport const MAX_SNACKBARS = 5;\nexport const DEFAULT_DURATION = 5000;\nexport const DEFAULT_ANCHOR: SnackbarOrigin = {\n horizontal: 'right',\n vertical: 'bottom',\n};\nexport type SnackBarType =\n | 'success'\n | 'error'\n | 'warning'\n | 'info'\n | 'default'\n | 'e'\n | 's'\n | 'w'\n | 'i'\n | 'd';\n\nexport const SnackBarConfig = (type?: SnackBarType): OptionsObject => {\n const config: OptionsObject = {\n anchorOrigin: DEFAULT_ANCHOR,\n autoHideDuration: DEFAULT_DURATION,\n variant: 'default',\n };\n\n switch (type) {\n case 'error':\n case 'e':\n config.variant = 'error';\n break;\n case 'success':\n case 's':\n config.variant = 'success';\n break;\n case 'warning':\n case 'w':\n config.variant = 'warning';\n break;\n case 'info':\n case 'i':\n config.variant = 'info';\n break;\n default:\n config.variant = 'default';\n }\n\n return config;\n};\n","import 'yup-phone';\n\nimport * as yup from 'yup';\n\nexport const loginSchema = yup.object().shape({\n email: yup\n .string()\n .email('Email should have correct format')\n .required('Email is a required field'),\n password: yup.string().required('Password is a required field'),\n});\n\nexport const forgotPasswordSchema = yup.object().shape({\n email: yup\n .string()\n .email('Email should have correct format')\n .required('Email is a required field'),\n});\n\nexport const ResetPasswordSchema = yup.object().shape({\n confirmPassword: yup\n .string()\n .when('password', {\n is: (p: string) => !!p,\n then: yup.string().oneOf([yup.ref('password')], 'Passwords must match'),\n })\n .required('Confirm Password is required'),\n password: yup.string().min(8).required('Password is required'),\n});\n\nexport const addUserSchema = yup.object().shape({\n email: yup\n .string()\n .email('Email should have correct format')\n .required('Email is a required field'),\n firstName: yup\n .string()\n .required('First Name is a required field')\n .matches(/^[A-Za-z ]*$/, 'Please enter valid first name')\n .max(40),\n lastName: yup\n .string()\n .required('Last Name is a required field')\n .matches(/^[A-Za-z ]*$/, 'Please enter valid last name')\n .max(40),\n phoneNumber: yup\n .string()\n .required('Phone Number is a required field')\n .min(10, 'Please enter 10 digits'),\n role: yup.string().required('Access is a required field'),\n});\n\nexport const addUserSchema2 = yup.object().shape({\n email: yup\n .string()\n .email('Email should have correct format')\n .required('Email is a required field'),\n userName: yup\n .string()\n .required('Name is a required field')\n .matches(/^[A-Za-z ]*$/, 'Please enter valid name'),\n});\n\nexport const editUserSchema = yup.object().shape({\n firstName: yup\n .string()\n .required('First Name is a required field')\n .matches(/^[A-Za-z ]*$/, 'Please enter valid first name')\n .max(40),\n lastName: yup\n .string()\n .required('Last Name is a required field')\n .matches(/^[A-Za-z ]*$/, 'Please enter valid last name')\n .max(40),\n phoneNumber: yup\n .string()\n .required('Phone Number is a required field')\n .min(10, 'Please enter 10 digits'),\n});\n\nexport const SignUpSchema = yup.object().shape({\n confirmPassword: yup\n .string()\n .when('password', {\n is: (p: string) => !!p,\n then: yup.string().oneOf([yup.ref('password')], 'Passwords must match'),\n })\n .required('Confirm Password is required'),\n email: yup.string().required().min(8).email(),\n password: yup.string().required('Password is required'),\n});\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n cancel: {\n color: theme.palette.text.secondary,\n cursor: 'pointer',\n fontSize: 15,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n marginTop: theme.spacing(2),\n textAlign: 'center',\n width: 50,\n },\n form: {\n // Fix IE 11 issue.\n marginTop: theme.spacing(1),\n width: '100%',\n },\n heading: {\n color: theme.palette.text.primary,\n fontSize: '24px',\n fontWeight: 'bold',\n height: '50px',\n letterSpacing: '0',\n lineHeight: '45px',\n marginTop: theme.spacing(8),\n width: '100%',\n },\n\n headingMargin: {\n marginBottom: '20px',\n marginLeft: '8px',\n marginTop: '20px',\n },\n inputMargin: {\n margin: '10px 0px',\n padding: '8px',\n },\n labelEmail: {\n color: theme.palette.text.primary,\n fontSize: 16,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n width: 40,\n },\n leftContent: {\n '@media (min-width: 600px) and (max-width: 960px)': {\n width: '50%',\n },\n '@media (min-width: 960px) and (max-width: 1280px)': {\n width: '35%',\n },\n '@media screen and (max-width: 600px)': {\n width: '100%',\n },\n width: '27%',\n },\n loader: {\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n paper: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n margin: theme.spacing(8, 4),\n },\n root: {\n height: '100vh',\n },\n subHeading: {\n color: theme.palette.text.disabled,\n fontSize: '16px',\n height: '42px',\n letterSpacing: '0',\n lineHeight: '21px',\n marginBottom: theme.spacing(2),\n width: '100%',\n },\n}));\n\nexport default useStyles;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { TextField } from '@material-ui/core';\n// import Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport Link from '@material-ui/core/Link';\nimport Typography from '@material-ui/core/Typography';\nimport clsx from 'clsx';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\n\n// import { InputText } from '../../../components/Forms/InputText';\nimport Loader from '../../../components/Loader/Loader';\nimport PublicBanner from '../../../components/PublicBanner/PublicBanner';\nimport PublicLogo from '../../../components/PublicLogo/PublicLogo';\nimport { PublicRoutes } from '../../../constants/Constants';\nimport { useCustomStore } from '../../../hooks';\nimport { ForgotPasswordFormInputs } from '../../../types';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport { forgotPasswordSchema } from '../../../utils/ValidatorSchema';\nimport useStyles from './ForgotPasswordStyles';\n\nconst ForgotPassword: React.FC = () => {\n const classes = useStyles();\n const { apiStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const history = useHistory();\n const [loading, setLoading] = useState(false);\n\n // validation\n const {\n control,\n handleSubmit,\n formState: { errors },\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n email: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(forgotPasswordSchema),\n });\n\n const redirectToLogin = useCallback((): void => {\n history.push(PublicRoutes.LOGIN);\n }, [history]);\n\n const submitForgotPassword = useCallback(\n async (data: ForgotPasswordFormInputs) => {\n setLoading(true);\n const forgotPasswordResp = await apiStore.userApi.forgotPassword(data);\n if (forgotPasswordResp.isOk()) {\n enqueueSnackbar(\n 'We have emailed you password reset link!',\n SnackBarConfig('s'),\n );\n redirectToLogin();\n } else {\n enqueueSnackbar(forgotPasswordResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n },\n [apiStore, enqueueSnackbar, redirectToLogin],\n );\n\n return (\n \n \n
\n \n {/* \n Forgot Password\n */}\n \n Forgot Password\n \n \n Submit your email address to reset your password. Then select\n “Reset” in the email.\n \n \n
\n \n {/* Email */}\n {\n return (\n \n\n // {\n // onChange(val);\n // }}\n // />\n );\n }}\n rules={{ required: true }}\n />\n \n
\n\n \n Submit Email\n \n\n {/* \n Submit Email\n */}\n \n {loading && (\n \n )}\n \n Cancel\n \n
\n
\n \n
\n );\n};\n\nexport default observer(ForgotPassword);\n","import { makeStyles, Theme } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme: Theme) => ({\n center: {\n position: 'relative',\n textAlign: 'center',\n },\n forgotPassword: {\n color: '#8F9CA1',\n cursor: 'pointer',\n position: 'absolute',\n right: '10px',\n zIndex: 1,\n },\n formMargin: {\n margin: '10px 0px',\n },\n\n fullHeight: {\n alignItems: 'center',\n display: 'flex',\n height: '100vh',\n [theme.breakpoints.up('md')]: {\n maxWidth: '800px',\n },\n },\n headingMargin: {\n marginBottom: '20px',\n marginLeft: '8px',\n marginTop: '20px',\n },\n paper: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n minHeight: '45px',\n [theme.breakpoints.down('sm')]: {\n padding: '45px 30px',\n },\n [theme.breakpoints.up('sm')]: {\n padding: '45px 80px',\n },\n },\n paperBorder: {\n borderColor: '#CDCAD0',\n borderRadius: '20px',\n },\n relative: {\n position: 'relative',\n },\n root: {\n flexGrow: 1,\n height: '100vh',\n },\n signUp: {\n color: '#00B1EF',\n cursor: 'pointer',\n marginLeft: '10px',\n zIndex: 1,\n },\n}));\n\nexport default useStyles;\n","// import { yupResolver } from '@hookform/resolvers/yup';\n// import { FormControl } from '@material-ui/core';\n// import { InputLabel } from '@material-ui/core';\n\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, Link } from '@material-ui/core';\nimport Container from '@material-ui/core/Container';\nimport Grid from '@material-ui/core/Grid';\nimport Paper from '@material-ui/core/Paper';\nimport TextField from '@material-ui/core/TextField';\n// import Box from '@material-ui/core/Box';\n// import Button from '@material-ui/core/Button';\n// import FormControl from '@material-ui/core/FormControl';\n// import Grid from '@material-ui/core/Grid';\n// import Link from '@material-ui/core/Link';\nimport Typography from '@material-ui/core/Typography';\nimport clsx from 'clsx';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\n// import { useSnackbar } from 'notistack';\nimport React, { useCallback, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\n// import { useHistory } from 'react-router-dom';\nimport * as yup from 'yup';\n\n// import { PrimaryButton } from '../../../components/Buttons';\n// import LeftNav from '../../../components/LeftNav/LeftNav';\nimport PublicLogo from '../../../components/PublicLogo/PublicLogo';\nimport { useCustomStore } from '../../../hooks';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n// import { Controller, useForm } from 'react-hook-form';\n// import { useHistory } from 'react-router-dom';\n// import { InputText } from '../../../components/Forms/InputText';\n// import Loader from '../../../components/Loader/Loader';\n// import PublicBanner from '../../../components/PublicBanner/PublicBanner';\n// import PublicLogo from '../../../components/PublicLogo/PublicLogo';\n// import { PublicRoutes } from '../../../constants/Constants';\n// import { useCustomStore } from '../../../hooks';\n// import { LoginFormInputs } from '../../../types';\n// import { SnackBarConfig } from '../../../utils/SnackBarConfig';\n// import { loginSchema } from '../../../utils/ValidatorSchema';\n// import Copyright from './Copyright';\nimport useStyles from './LoginStyles';\n\ninterface ILoginInputs {\n email: string;\n password: string;\n}\n\nconst Login: React.FC = () => {\n const history = useHistory();\n const { authStore } = useCustomStore();\n // const history = useHistory();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const handleForgotPassword = () => {\n history.push('/forgot-password');\n };\n const handleSignUp = () => {\n history.push('/signup');\n };\n const submitLogin = useCallback(\n async (data: ILoginInputs) => {\n setLoading(true);\n const loginResp = await authStore.login(data);\n if (loginResp.isErr()) {\n enqueueSnackbar(loginResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n } else {\n history.push('/');\n // history.push('/companies');\n enqueueSnackbar('Logged In Successfully', SnackBarConfig('s'));\n }\n },\n [authStore, enqueueSnackbar, history],\n );\n\n const schema = yup.object().shape({\n email: yup.string().required().min(8).email(),\n password: yup.string().required().min(8),\n });\n const classes = useStyles();\n const {\n handleSubmit,\n formState: { errors },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n email: '',\n password: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n // const { authStore } = useCustomStore();\n // const history = useHistory();\n // const { enqueueSnackbar } = useSnackbar();\n // const [loading, setLoading] = useState(false);\n\n // validation\n // const {\n // control,\n // handleSubmit,\n // formState: { errors },\n // } = useForm({\n // criteriaMode: 'all',\n // defaultValues: {\n // email: '',\n // password: '',\n // },\n // mode: 'all',\n // reValidateMode: 'onChange',\n // resolver: yupResolver(loginSchema),\n // });\n\n // const submitLogin = useCallback(\n // async (data: LoginFormInputs) => {\n // setLoading(true);\n // const loginResp = await authStore.login(data);\n // if (loginResp.isErr()) {\n // enqueueSnackbar(loginResp.error.message, SnackBarConfig('e'));\n // setLoading(false);\n // }\n // },\n // [authStore, enqueueSnackbar],\n // );\n\n return (\n <>\n {/* */}\n \n \n \n \n \n \n \n \n Nomad Portal Login\n \n \n (\n \n )}\n // render to be explained in next section\n />\n \n\n \n \n Forgot Password?\n \n (\n \n )}\n // render to be explained in next section\n />\n \n\n \n \n Login\n \n \n\n \n Don't have any account?\n \n Sign Up\n \n \n \n \n \n \n \n );\n};\n\nexport default observer(Login);\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n form: {\n // Fix IE 11 issue.\n marginTop: theme.spacing(1),\n width: '100%',\n },\n heading: {\n color: theme.palette.text.primary,\n fontSize: '24px',\n fontWeight: 'bold',\n height: '50px',\n letterSpacing: '0',\n lineHeight: '20px',\n marginTop: theme.spacing(8),\n width: '100%',\n },\n inputMargin: {\n margin: '10px 0px',\n padding: '8px',\n },\n label: {\n color: theme.palette.text.primary,\n fontSize: 16,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n marginTop: theme.spacing(3),\n },\n labelPassword: {\n color: theme.palette.text.primary,\n fontSize: 16,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n },\n leftContent: {\n '@media (min-width: 600px) and (max-width: 960px)': {\n width: '50%',\n },\n '@media (min-width: 960px) and (max-width: 1280px)': {\n width: '35%',\n },\n '@media screen and (max-width: 600px)': {\n width: '100%',\n },\n width: '27%',\n },\n loader: {\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n paper: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n margin: theme.spacing(8, 4),\n },\n root: {\n height: '100vh',\n },\n}));\n\nexport default useStyles;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { TextField } from '@material-ui/core';\n// import Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport Typography from '@material-ui/core/Typography';\nimport clsx from 'clsx';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useHistory, useLocation } from 'react-router-dom';\n\n// import { InputText } from '../../../components/Forms/InputText';\nimport Loader from '../../../components/Loader/Loader';\nimport PublicBanner from '../../../components/PublicBanner/PublicBanner';\nimport PublicLogo from '../../../components/PublicLogo/PublicLogo';\nimport { PublicRoutes } from '../../../constants/Constants';\nimport { useCustomStore } from '../../../hooks';\nimport { ResetPasswordValidationInput } from '../../../types';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport { ResetPasswordSchema } from '../../../utils/ValidatorSchema';\nimport useStyles from './ResetPasswordStyles';\n\nfunction useQuery() {\n return new URLSearchParams(useLocation().search);\n}\n\nconst ResetPassword: React.FC = () => {\n const classes = useStyles();\n const { apiStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const history = useHistory();\n const query = useQuery();\n const resetToken = query.get('token') || '';\n const [loading, setLoading] = useState(false);\n\n // validation\n const {\n control,\n handleSubmit,\n formState: { errors, isValid },\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n confirmPassword: '',\n password: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(ResetPasswordSchema),\n });\n\n const submitResetPassword = useCallback(\n async (data: ResetPasswordValidationInput) => {\n setLoading(true);\n const resetPasswordResp = await apiStore.userApi.resetPassword({\n confirm: data.confirmPassword,\n password: data.password,\n token: resetToken,\n });\n if (resetPasswordResp.isOk()) {\n enqueueSnackbar(\n 'Your password has been changes succesfullly!',\n SnackBarConfig('s'),\n );\n history.push(PublicRoutes.LOGIN);\n } else {\n enqueueSnackbar(resetPasswordResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n },\n [apiStore, enqueueSnackbar, history, resetToken],\n );\n\n return (\n \n \n
\n \n \n Reset Password\n \n \n
\n \n {/* Password */}\n {\n return (\n \n\n // {\n // onChange(val);\n // }}\n // />\n );\n }}\n rules={{ required: true }}\n />\n \n
\n
\n \n {/* Confirm Password */}\n {\n return (\n \n\n // {\n // onChange(val);\n // }}\n // />\n );\n }}\n rules={{ required: true }}\n />\n \n
\n\n \n Save New Password\n \n\n {/* \n Save New Password\n */}\n \n {/*
{JSON.stringify(errors.confirmPassword)}
\n
{JSON.stringify(errors.password)}
*/}\n {loading && (\n \n )}\n
\n
\n \n
\n );\n};\n\nexport default observer(ResetPassword);\n","/* eslint-disable prettier/prettier */\nimport IconButton from '@material-ui/core/IconButton';\nimport InputAdornment from '@material-ui/core/InputAdornment';\nimport TextField from '@material-ui/core/TextField';\nimport Visibility from '@material-ui/icons/Visibility';\nimport VisibilityOff from '@material-ui/icons/VisibilityOff';\nimport { observer } from 'mobx-react-lite';\nimport React, { ReactElement } from 'react';\n\ntype FormInputTextProps = {\n errors?: string;\n defaultValue?: string;\n value?: string;\n tabIndexVal: number;\n onChangeText?: (src: string) => void;\n isSecureTextEntry?: boolean;\n isEditable?: boolean;\n name: string;\n isRefreshValue?: boolean;\n isFormSubmittedOnce?: boolean;\n type: string;\n isTextArea?: boolean;\n // eslint-disable-next-line\n inputRefObj?: React.Ref;\n maxLengthVal?: string;\n placeholder?: string;\n className?: string;\n};\n\nexport const InputText = observer((props: FormInputTextProps): ReactElement => {\n const {\n errors,\n defaultValue,\n value,\n tabIndexVal,\n onChangeText,\n isSecureTextEntry = false,\n isEditable = true,\n name,\n isRefreshValue = false,\n isFormSubmittedOnce,\n type,\n isTextArea = false,\n inputRefObj,\n maxLengthVal = '',\n placeholder = '',\n className = '',\n } = props;\n const [inputVal, setInputVal] = React.useState(value);\n const [showLocalError, setShowLocalError] = React.useState(true);\n const [showPassword, setShowPassword] = React.useState(false);\n const maxLenVal = maxLengthVal.length > 0 ? maxLengthVal : '';\n\n const handleClickShowPassword = () => {\n setShowPassword(!showPassword);\n };\n\n const onValueChange = React.useCallback(\n (val: string) => {\n setInputVal(val);\n setShowLocalError(!val);\n onChangeText && onChangeText(val);\n },\n [onChangeText],\n );\n\n const onBlur = () => {\n setShowLocalError(true);\n };\n\n React.useEffect(() => {\n if (isRefreshValue && inputVal !== value) {\n setInputVal(value);\n setShowLocalError(!value);\n }\n }, [inputVal, value, isRefreshValue]);\n\n const showError = isFormSubmittedOnce || showLocalError;\n\n const additionalInputProps = isSecureTextEntry && (\n \n \n {showPassword ? : }\n \n \n );\n\n return (\n {\n onBlur();\n }}\n onChange={(event: any) => {\n onValueChange(event.target.value);\n }}\n />\n );\n});\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n codeBtn: {\n height: '3em',\n margin: '40px 0 0px 5%',\n padding: '0',\n width: '30%',\n },\n codeInput: {\n width: '65%',\n },\n form: {\n // Fix IE 11 issue.\n marginTop: theme.spacing(1),\n width: '100%',\n },\n heading: {\n color: theme.palette.text.primary,\n fontSize: '24px',\n fontWeight: 'bold',\n height: '50px',\n letterSpacing: '0',\n lineHeight: '20px',\n marginTop: theme.spacing(8),\n width: '100%',\n },\n inputMargin: {\n flexDirection: 'row',\n marginTop: theme.spacing(3),\n },\n label: {\n color: theme.palette.text.primary,\n fontSize: 16,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n marginTop: theme.spacing(3),\n },\n labelPassword: {\n color: theme.palette.text.primary,\n fontSize: 16,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n },\n labelTitle: {\n marginTop: theme.spacing(3),\n },\n leftContent: {\n '@media (min-width: 600px) and (max-width: 960px)': {\n width: '50%',\n },\n '@media (min-width: 960px) and (max-width: 1280px)': {\n width: '35%',\n },\n '@media screen and (max-width: 600px)': {\n width: '100%',\n },\n width: '27%',\n },\n loader: {\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n paper: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n margin: theme.spacing(8, 4),\n },\n root: {\n height: '100vh',\n },\n subHeading: {\n color: theme.palette.text.disabled,\n fontSize: '16px',\n height: '42px',\n letterSpacing: '0',\n lineHeight: '21px',\n marginBottom: theme.spacing(2),\n width: '100%',\n },\n submit: {\n borderRadius: 25,\n color: theme.palette.common.white,\n fontSize: 18,\n fontWeight: 'bold',\n height: 50,\n letterSpacing: '0',\n lineHeight: '30px',\n margin: theme.spacing(4, 0, 2),\n textAlign: 'center',\n textTransform: 'capitalize',\n },\n}));\n\nexport default useStyles;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport Box from '@material-ui/core/Box';\nimport Button from '@material-ui/core/Button';\nimport FormControl from '@material-ui/core/FormControl';\nimport Grid from '@material-ui/core/Grid';\nimport TextField from '@material-ui/core/TextField';\nimport Typography from '@material-ui/core/Typography';\nimport clsx from 'clsx';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback, useState } from 'react';\n// import { useForm } from 'react-hook-form';\nimport { Controller, useForm } from 'react-hook-form';\n\n// import { useLocation } from 'react-router-dom';\nimport { InputText } from '../../../components/Forms/InputText';\nimport Loader from '../../../components/Loader/Loader';\nimport PublicBanner from '../../../components/PublicBanner/PublicBanner';\nimport PublicLogo from '../../../components/PublicLogo/PublicLogo';\nimport { useCustomStore } from '../../../hooks';\nimport {\n // AddUserFormInput,\n // AddUserFormInput2,\n registerDTO,\n} from '../../../types';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport { SignUpSchema } from '../../../utils/ValidatorSchema';\nimport useStyles from './SignUpStyles';\n\n// function useQuery() {\n// return new URLSearchParams(useLocation().search);\n// }\n\nconst SignUp: React.FC = () => {\n const classes = useStyles();\n const { authStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n // const query = useQuery();\n // const invitationToken = query.get('invitationToken');\n const [loading, setLoading] = useState(false);\n // const [values, setValues] = useState({\n // phone: '',\n // });\n\n // validation\n const {\n control,\n handleSubmit,\n formState: { errors },\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n code: '',\n confirmPassword: '',\n email: '',\n first_name: '',\n last_name: '',\n name: '',\n password: '',\n phone: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(SignUpSchema),\n });\n const [inputValue, setInputValue] = useState('');\n\n const handleInputChange = (data: string) => {\n setInputValue(data);\n };\n // useEffect(() => {\n // if (invitationToken !== null) {\n // const base64ToObject = JSON.parse(atob(invitationToken));\n // setValues((prevState) => ({\n // ...prevState,\n // email: base64ToObject.email,\n // invitationCode: base64ToObject.invitationCode,\n // userId: base64ToObject.userId,\n // }));\n // }\n // }, [invitationToken]);\n const submitGetCode = useCallback(\n async (param) => {\n setLoading(true);\n const getCodeResp = await authStore.getCode({\n phone: param.phone,\n });\n if (getCodeResp.isOk()) {\n enqueueSnackbar('Verification code has been sent', SnackBarConfig('s'));\n } else {\n setLoading(false);\n enqueueSnackbar(getCodeResp.error.message, SnackBarConfig('e'));\n }\n setLoading(false);\n },\n [authStore, enqueueSnackbar],\n );\n const getCode = (e: MouseEvent) => {\n submitGetCode({ phone: inputValue });\n };\n const submitSignUp = useCallback(\n async (data: registerDTO) => {\n setLoading(true);\n if (data.name) {\n [data.first_name] = data.name.split(' ');\n data.last_name = data.name.substr(data.name.indexOf(' ') + 1);\n }\n const signUpResp = await authStore.register({\n code: data.code,\n email: data.email,\n first_name: data.first_name,\n last_name: data.last_name,\n password: data.password,\n phone: inputValue,\n });\n if (signUpResp.isErr()) {\n enqueueSnackbar(signUpResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n },\n [authStore, enqueueSnackbar, inputValue],\n );\n\n return (\n \n \n
\n \n \n User Sign Up\n \n \n The phone number filled in should be the one registered in the APP.\n \n
\n
\n \n Phone\n {\n return (\n {\n handleInputChange(val);\n }}\n />\n );\n }}\n />\n \n
\n
\n \n {\n return (\n \n );\n }}\n />\n {\n getCode(e);\n }}\n color=\"primary\">\n Send Code\n \n \n
\n
\n \n {\n return (\n \n );\n }}\n />\n \n
\n
\n \n {\n return (\n \n );\n }}\n />\n \n
\n
\n \n Password\n {\n return (\n {\n onChange(val);\n }}\n />\n );\n }}\n rules={{ required: true }}\n />\n \n
\n
\n \n Confirm Password\n {\n return (\n {\n onChange(val);\n }}\n />\n );\n }}\n rules={{ required: true }}\n />\n \n
\n \n SignUp\n \n \n {loading && (\n \n )}\n
\n
\n \n
\n );\n};\n\nexport default observer(SignUp);\n","export const styleFunction = {\n navButtonMix: ({\n rippleColor = '#00B1EF',\n hoverBg = 'rgba(0,177,239,0.05)',\n height = '58px',\n }) => {\n return {\n '& .MuiListItemText-primary': {\n fontFamily: 'SourceSansProSemiBold',\n },\n '& .MuiTouchRipple-child': {\n backgroundColor: rippleColor,\n },\n '&:hover': {\n backgroundColor: `${hoverBg} !important`,\n },\n height,\n };\n },\n};\n","export const TextStyles = {\n color: {\n error: '#DA5A30',\n primary: '#241A2E',\n primaryNav: '#565757',\n },\n font: {\n bold: 'SourceSansProBold',\n semibold: 'SourceSansProSemiBold',\n },\n};\n\nexport const ComponentStyles = {\n button: {\n background: {\n errorHover: '#ffefea',\n errorRiple: '#f0987b',\n primary: '#00B1EF',\n ripple: '#00B1EF',\n },\n color: { primary: '#FFFFFF' },\n font: {\n primary: 'SourceSansProBold',\n },\n shadow: { primary: '0px 5px 8px 0px rgb(0 177 239 / 25%)' },\n },\n dialogTitle: {\n fontFamily: 'SourceSansProBold !important',\n fontSize: '28px !important',\n },\n input: {\n background: {\n primaryColor: '#F4F5F7',\n },\n border: {\n primary: '1px solid #D5D9E3',\n primaryColor: '#D5D9E3',\n },\n },\n label: {\n color: {\n primary: '#241A2E',\n },\n font: {\n primary: 'SourceSansProSemiBold',\n },\n },\n mainNav: {\n background: {\n active: 'rgba(0,177,239,0.05)',\n },\n color: {\n active: '#00B1EF',\n primary: '#565757',\n },\n },\n secondaryNav: {\n color: {\n active: '#00B1EF',\n primary: '#8F9CA1',\n },\n },\n};\nexport const AppStyles = {\n background: {\n aliceBlue: '#F7F9FC',\n lightlevandor: '#4E4754',\n primary: '#FFFFFF',\n secondary: '#241A2E',\n solitude: '#E4E8EE',\n tertiary: '#F3F5F8',\n tuna: '#4C4653',\n },\n badgeColor: {\n primary: '#DA5A30',\n },\n borderColor: {\n hawkesBlue: '#DCE2EA',\n primary: '#d5d9e3',\n scarpa: '#686070',\n secondary: '#0062FF',\n tertiary: '#979797',\n whisper: '#E6E6E6',\n },\n color: {\n black: '#000000',\n lightBlue: '#1C2858',\n orangeColor: '#E38C70',\n primary: '#00B1EF',\n secondary: '#1AB23D',\n tertiary: '#DA5A30',\n white: '#FFFFFF',\n },\n font: {\n bold: 'SourceSansProBold',\n light: 'SourceSansProLight',\n medium: 'SourceSansProLight',\n regular: 'SourceSansPro',\n semiBold: 'SourceSansProSemiBold',\n },\n fontColor: {\n lightGray: '#D8D8D8',\n primary: '#241A2E',\n secondary: 'white',\n tertiary: '#b1b4be',\n },\n iconsBgColor: {\n primary: '#6C91CB',\n },\n};\n\nexport const Dashboard = {\n phasingChartColors: {\n baackground: '#241A2E',\n bar: '#0062FF',\n },\n poursChartColors: {\n baackground: '#081A2F',\n bar: '#5D4CDE',\n },\n projectsCommentsColor: {\n address: '#0062FF',\n card: '#EDEFF0',\n dismiss: '#6A6371',\n name: '#241A2E',\n },\n};\n\n// Change scale\nexport const GET_8_PIXEL_BOX = (unit: number): string => {\n // multiple of 8 pixels and 'px' is default unit used\n return `${8 * unit}px`;\n};\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { styleFunction } from '../../style/functions';\nimport { ComponentStyles } from '../../style/variable';\n\nconst useStyles = makeStyles((theme) => ({\n avatar: {\n backgroundColor: theme.palette.primary.main,\n },\n\n border: {\n borderBottom: ComponentStyles.input.border.primary,\n borderTop: ComponentStyles.input.border.primary,\n },\n\n navButton: styleFunction.navButtonMix({ height: '80px' }),\n secondary: {\n color: theme.palette.secondary.light,\n },\n}));\n\nexport default useStyles;\n","import { Avatar, ListItem, ListItemIcon, Typography } from '@material-ui/core';\nimport ListItemText from '@material-ui/core/ListItemText';\nimport React from 'react';\n\nimport useStyles from './UserInfoStyles';\n\ninterface IUserInfo {\n email: string | undefined;\n firstName: string | undefined;\n lastName: string | undefined;\n}\nconst UserInfo: React.FC = ({ email, firstName, lastName }) => {\n const classes = useStyles();\n return (\n
\n \n \n \n {`${firstName ? firstName[0].toUpperCase() : '-'}${\n lastName ? lastName[0].toUpperCase() : '-'\n }`}\n \n \n\n {email}}\n />\n \n
\n );\n};\n\nUserInfo.defaultProps = {\n email: '-',\n firstName: '-',\n lastName: '-',\n};\n\nexport default UserInfo;\n","import { makeStyles } from '@material-ui/styles';\nimport clsx from 'clsx';\nimport React from 'react';\n\nconst useStyles = makeStyles(() => ({\n content: {\n flexGrow: 1,\n minHeight: '100vh',\n },\n}));\n\ntype MainContainerProps = {\n padLeft?: boolean;\n padRight?: boolean;\n padTop?: boolean;\n padBottom?: boolean;\n transparent?: boolean;\n};\nconst MainContainer: React.FC = ({\n children,\n padLeft,\n padRight,\n padBottom,\n padTop,\n transparent,\n}) => {\n const classes = useStyles();\n return (\n \n {children!}\n \n );\n};\n\nMainContainer.defaultProps = {\n padBottom: false,\n padLeft: true,\n padRight: true,\n padTop: true,\n transparent: false,\n};\nexport default MainContainer;\n","import { Grid, Typography } from '@material-ui/core';\nimport React from 'react';\n\ntype MainHeaderProps = {\n text: string;\n whiteText?: boolean;\n padLeft?: boolean;\n};\nconst MainHeader: React.FC = ({\n text,\n children,\n whiteText,\n padLeft,\n}) => {\n return (\n \n \n {text}\n \n {children!}\n \n );\n};\n\nMainHeader.defaultProps = {\n padLeft: false,\n text: '',\n whiteText: false,\n};\n\nexport default MainHeader;\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles(() => ({\n cardContainer: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n minHeight: '115px',\n },\n count: {\n fontSize: '30px',\n margin: '6px',\n },\n fontColor: {\n color: '#fff',\n },\n label: {\n fontSize: '18px',\n },\n paper: {\n borderRadius: '16px',\n },\n v1: {\n backgroundColor: '#00B1EF',\n },\n v2: {\n backgroundColor: '#0062FF',\n },\n v3: {\n backgroundColor: '#00C89A',\n },\n v4: {\n backgroundColor: '#003F55',\n },\n}));\n\nexport default useStyles;\n","import { Paper } from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\n\nimport Loader from '../Loader/Loader';\nimport useStyles from './CountCardsStyles';\n\ntype CountCardsProps = {\n variant: 'v1' | 'v2' | 'v3' | 'v4';\n count?: number;\n label?: string;\n loading?: boolean;\n};\nconst CountCards: React.FC = ({\n children,\n variant,\n count,\n label,\n loading,\n}) => {\n const classes = useStyles();\n return (\n \n
\n

\n {loading && }\n {loading || Number(count).toLocaleString()}\n

\n \n {children!}\n
\n \n );\n};\n\nCountCards.defaultProps = {\n count: 0,\n label: '-',\n loading: false,\n variant: 'v1',\n};\n\nexport default CountCards;\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { AppStyles, ComponentStyles, TextStyles } from '../../style/variable';\n\nconst useStyles = makeStyles(() => ({\n adsContainer: {\n '& .adsType': {\n background: 'rgba(36,26,46,0.4)',\n borderTopLeftRadius: '10px',\n bottom: '0px',\n color: 'white',\n display: 'block',\n fontFamily: 'SourceSansProSemiBold',\n fontSize: '13px',\n padding: '10px',\n position: 'absolute',\n right: '0px',\n textTransform: 'capitalize',\n },\n '& img': {\n height: '100%',\n maxHeight: '100%',\n maxWidth: '100%',\n },\n '& video': {\n height: '100%',\n maxHeight: '100%',\n maxWidth: '100%',\n },\n alignItems: 'center',\n background: 'white',\n borderRadius: '10px',\n boxShadow: '0px 2px 4px 0px rgb(0 0 0 / 10%)',\n display: 'flex',\n flexDirection: 'column',\n height: '258px',\n justifyContent: 'center',\n maxWidth: '370px',\n overflow: 'hidden',\n position: 'relative',\n },\n archive: {\n color: TextStyles.color.error,\n cursor: 'pointer',\n fontFamily: AppStyles.font.regular,\n fontSize: '16px',\n textDecoration: 'underline',\n textUnderlineOffset: '2px',\n },\n description: {\n color: TextStyles.color.primaryNav,\n fontFamily: AppStyles.font.light,\n fontSize: '16px',\n marginBottom: '10px',\n marginTop: '10px',\n },\n edit: {\n color: ComponentStyles.mainNav.color.primary,\n cursor: 'pointer',\n fontFamily: AppStyles.font.semiBold,\n fontSize: '16px',\n marginRight: '10px',\n opacity: '76%',\n textDecoration: 'underline',\n textUnderlineOffset: '2px',\n },\n metrics: {\n color: TextStyles.color.primary,\n cursor: 'pointer',\n fontFamily: AppStyles.font.regular,\n fontSize: '16px',\n textDecoration: 'underline',\n textUnderlineOffset: '2px',\n },\n title: {\n color: TextStyles.color.primary,\n fontFamily: AppStyles.font.light,\n fontSize: '22px',\n marginBottom: '10px',\n marginTop: '10px',\n },\n}));\n\nexport default useStyles;\n","import EqualizerIcon from '@material-ui/icons/Equalizer';\nimport clsx from 'clsx';\nimport React from 'react';\n\nimport useStyles from './AdsPreviewTileStyles';\n\nconst AdsPreviewTile: React.FC<{\n src: string;\n optionalButton?: string;\n title?: string;\n type?: string;\n createdCompanyName?: string;\n fileType?: string;\n onEdit?: () => void;\n onArchiveActivate?: () => void;\n onShowMetrics?: () => void;\n}> = ({\n src,\n optionalButton,\n type,\n fileType,\n title,\n createdCompanyName,\n onEdit,\n onArchiveActivate,\n onShowMetrics,\n}) => {\n const classes = useStyles();\n return (\n
\n
\n {fileType !== 'video' && }\n {fileType === 'video' && (\n \n )}\n {type && {type}}\n
\n\n

{title || 'Ad Title Here…'}

\n

\n {createdCompanyName ? 'Created by ' + createdCompanyName : ''}\n

\n
\n onShowMetrics && onShowMetrics()}\n className={clsx(classes.metrics, 'flex-row', 'align-center')}>\n \n View Metrics\n \n \n onEdit && onEdit()}>\n Edit\n \n {type !== 'default' && (\n onArchiveActivate && onArchiveActivate()}>\n {optionalButton || 'Archive'}\n \n )}\n
\n
\n \n );\n};\n\nAdsPreviewTile.defaultProps = {\n fileType: 'image',\n};\nexport default AdsPreviewTile;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABkAAAAYCAYAAAAPtVbGAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAGaADAAQAAAABAAAAGAAAAABlk77uAAABgklEQVRIDe2VsUoDQRCG/zkEC18gprDwJSxsrKy0szQRuzQ2AdFH0IC+gKBwBksbLbTRd4ivEL1rFLEVbvznILLu3eVuBbHJQHK7t/PPNzu7twsEWJzqymWiz3xuBsgQhThLhlVVtEWxFqILgoQEdn1nELcate1ZuWpL5Dr8X7keVefcTJq2q3SFmQwT3Ron+ODxsd80uPnRvztO8T5Mdc/XFSCZ4E0F8zw+BhQe+IKyPhPbUeCCmgWOv/o+BUi3JQ8C7EKQUXRUBzJABpxDEYngcLslV7UQc+gsStwE5AOoO/YB1mesarM6WxkmWfL5yf4JMz6lcOTOoApg0adCzMEF0fuWoA1C7ghbn8CnAXKIXUS8H6652D2ux4299O0HyAaF4RVia1AFcONGTS4iBvpeozyBGkCeh3PBFXZXHqTkLwcpzjjESuG+agYlUgR92Z229BjEfkHWeCZBUT1nm8mSveOH149ftO+N/7prNTXjhlqOsggjtrnl/8B4anDnPn0Bu9GlmLvvGAoAAAAASUVORK5CYII=\"","import {\n createStyles,\n FormControl,\n makeStyles,\n MenuItem,\n Select,\n Theme,\n} from '@material-ui/core';\nimport React, { useCallback, useEffect } from 'react';\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n height: {\n '& .App1-MuiOutlinedInput-root': {\n borderRadius: '4px',\n height: '50px',\n },\n },\n }),\n);\n\nexport interface FilterProps {\n data: Array<{ text: string | number; val: string | number }>;\n onHandleChange: (e: any) => void;\n}\n\nconst FilterDropDownsV1: React.FC = ({ data, onHandleChange }) => {\n const classes = useStyles();\n const [val, setVal] = React.useState('');\n const handleChange = useCallback(\n (val: any) => {\n setVal(val);\n onHandleChange(val);\n },\n [onHandleChange],\n );\n\n useEffect(() => {\n data.length && setVal(data[0].val);\n handleChange(data[0].val);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return (\n \n {/* \n Filter:All\n */}\n {\n handleChange(e.target.value);\n }}\n label=\"companyId\">\n {data?.map((val: any) => {\n return (\n \n {val.text}\n \n );\n })}\n \n \n );\n};\n\nexport default FilterDropDownsV1;\n\nFilterDropDownsV1.defaultProps = {\n data: [],\n};\n","import {\n createStyles,\n InputAdornment,\n makeStyles,\n TextField,\n} from '@material-ui/core';\nimport SearchIcon from '@material-ui/icons/Search';\nimport { observer } from 'mobx-react';\nimport React from 'react';\n\nimport { SearchStore } from '../../hooks';\n\nconst useStyles = makeStyles(() =>\n createStyles({\n outlined: {\n '& .App1-MuiInputBase-input': {\n background: 'white',\n },\n '& .App1-MuiOutlinedInput-root': {\n background: 'white',\n borderRadius: '12px',\n height: '50px',\n overflow: 'hidden',\n },\n borderRadius: '12px',\n },\n }),\n);\n\nconst SearchInput: React.FC = ({ fullWidth, ...props }) => {\n const classes = useStyles();\n const onChangeHandler = (e: any) => {\n SearchStore.setSearch(e.target.value);\n // SearchStore.triggerSearch();\n };\n const onkeydown = (e: any) => {\n if (e.keyCode == 13) {\n SearchStore.triggerSearch();\n }\n };\n return (\n \n \n \n ),\n }}\n variant=\"outlined\"\n />\n );\n};\n\nexport default observer(SearchInput);\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { AppStyles } from '../../style/variable';\n\nconst useStyles = makeStyles(() => ({\n indicator: {\n height: '6px',\n },\n tab: {\n color: '#8F9CA1',\n fontFamily: AppStyles.font.semiBold,\n fontSize: '18px',\n textTransform: 'none',\n },\n tabBorder: {\n borderBottom: '1px solid #D5D9E3',\n },\n tabSize: {\n minWidth: 'auto',\n },\n}));\n\nexport default useStyles;\n","import { Grid, Tab, Tabs } from '@material-ui/core';\nimport React from 'react';\n\nimport useStyles from './SecondayNavTabsStyles';\n\ntype SecondaryTabsProps = {\n data?: Array<{ value: string; count?: number }>;\n defaultVal?: string;\n navChange?: (arg0: number | string | undefined) => void;\n navClick?: (arg0: number | string | undefined) => void;\n};\nconst SecondaryTabs: React.FC = ({\n data,\n children,\n defaultVal,\n navChange,\n navClick,\n}) => {\n const classes = useStyles();\n const [value, setValue] = React.useState(\n defaultVal || (data && data[0].value),\n );\n navChange && navChange(value);\n const handleChange = (event: React.ChangeEvent, newValue: number) => {\n setValue(newValue);\n navChange && navChange(newValue);\n navClick && navClick(newValue);\n };\n return (\n \n {data &&\n data?.map((item) => {\n return (\n \n );\n })}\n \n {children}\n \n \n );\n};\n\nSecondaryTabs.defaultProps = {\n data: [],\n};\nexport default SecondaryTabs;\n","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABJ0AAASdAHeZh94AAAE90lEQVRoge2ZbYhUVRjH//8z987aLLMWmaQfyl5BsjCmmHTc8V6X8EsFvaBWH8KC8lNJL19W1Mo0ylokjMAKCgrsw2IRVFbrPc4oZTBmRtoHA2N7QQuKlVJ37r1PH3ZnvHtn5u7M7Mxu2f5gYM/znPOc/zPnZc45C0wzzf8bhg09PT0XuyJZ+v7MqRAUwZ8A9mmtfw8axyTQ3d19Q8wwPiE5Z1Kl1c9JiCxzHOe7kkEFvTHTXP8vFg8As4V8OmgwggWKLATLg/KXiPw9ScIiIZkA0AkABG4M+oxQTbP8t8gW7ThbJkHfuNi23Qty82hxjGZVpf5/CmP8KtGk0+muRCKxTcibKPKW4zh9rRBWLxMegUQisQ3kagLXg3zRtu3lrRBWLxNKIJvNXgPy3oApBvLZVCpl1mzUYiaUgDKMxwHMCNpE5OZkMrliQqoaoOk1kMlkLoPI/YFt1wVgkCTIDalUalehUKi6DWcymblmPN4HYB6U2q4HBt5pVkfTIxCPxx8jmRwtuhDZFHBfm0wmV9dqa8bjO0iuJJmmyBuWZd3SrI6mErAs61KQD5UNIv1DQ0PPAzhcMlGp3nQ63VWl7UKSwYXeQaVeABBrRks9CcRSqdTM4AdKrQVQOux5ALYWCoWi+P7GQLu5iURibWWP6gmEpq6IdC9duvSuZhIYc5izly07DuDy0ajrPHKfEuknOatmBJGPHMe5DYAAiNm2vRdkZtQ75BaLV+fz+d8AIJvNXhEzjCM4t/DdQDJDAP4IJXZKyD4lMifwS/yjs2fPvFKdyBFQIg9Gigd8Edk6Kh4APF+p9RgZFQDoiplmbzmeYTwaEH8WIptEpNS2CyNfXvlDcoECXhOyYirWlQBEPgNwtobXg8ibWutc0Lh3YEAD2F0qE3h4yZIlVy5evHg2RB4IxO4XkS0knUgNwM8AztRyRm6jWut3s9nsQaXUVRXqPe+XfD7/DQA/5BK3WHwmZhi3cuRwmDBMc4MAP5C8aLSO75Iv5x3HTafTd87o7FypRC6pIuFMsVh83zTNVYHtuv4EACCXyx0FcHS8ekHy+fxXtm3vArACAEiuYuBbFBEn7zgHAeDAgQNDAF6Pimfbdk1f206jIrIR56ZfB87tWoDIS63qp20JaK2/h8jbFQ6Rgtb601b109b7gOd5zwEIHyf6ULlumqatCeRyuUHx/XUiUgQAAT4eHBzsb2Ufbb+Raa23+Z6X8oCes6dP333s2LFa23JTTPhGVg+5XO7bdsU+r+/E623bfmrSlEQgQEf1n7GoBMgZCN22popa4oHzeQoJ8CF8f3ct/6Si1HICt1dz1UyAIl86Wr/aPlX1Y9v2TJCNJVDCsqyVIJ8E2dloxwQEIoeGh4fX7N+//1Qg5oUAdlCp6yQ8xUWOQGRN+Bm9FpEJLFq06AIq9QqA2Y2KL+sB5psdHV8A2B4wPwLyHqDKIZmcL+TXADaHXdWIXMTDw8OuACcaEVwV3/8pWCQ5WKuqiEi4fhSRI1AoFIqWZd0B8j4ZeeJuHJFDWusPgibHcXZaluULuaBK/aMA3qs3/LhrQGt9HECrn9l9rfXOVgQam4CIW56VZK9l25XPIlPB2NF3g66x7zPkYQKl+28nm9h52o0EHs+A0CL2XXeTiPw6uZIa4qQX+h9ZxS5mWdYsAMuhVLVXgilDgBN+sfh56ZFsmmmmGeEfPM6rIn3SFHQAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAACXBIWXMAABJ0AAASdAHeZh94AAAEsUlEQVRoge2ZbWhbVRjHf89NS19mX9J2Y9sH59uE4ZSpEwVR8I2CaJtusk0dyBTsPmmZ+qVjL13dRKdliiJOBQWFWemSdlqdClMZOMR1W8XVL8JkVtlLk67V0S659/HDkvTeJDdJm6Srs38ozf0/z3nO/3/vOTfnnMAsZvH/hiQxe0dqMcy7Mai6BHrcYTKMx3OQhsqzdtppoDt4E8qXiCyYVnHZQjmNYd1LQ+0vMcpwJsimGSseQJiHGlvtVJEzQZaBxq7+Ac5Pi7DMKAfmRD/fbA84DagWxweV6g58NTsKry0LBIKtiGwHQJ2ajZQN/kMoypySAb1DlVwwdgHLET6g0duRu6zskfsTiBi7ENYh3Ai8QmCoPndZ2SM3A/vOLUb1URvjAWMb72hxbrKyR24GTHMDSKmDE25jfmhVTnUngakb6AleicjjNiYS/S+obKZnsNy1bfeZhQSCewgED9F9bu2UNZCLAZVngYroVQSlPR4TrscqW+fe2LMbkdWI3A76Hj1Dd0xVxtQMfP73fFSfil+LdHGq+iWgf4Kjld6hyqS2/tAyENtE1xLUeJlO9UxFSubXaGenB+6/wsGFIy2IRBd7YmKGd9IsYfyhLRj4o/xCLkgLsM3R1tDnQBL7vYuS4Arg08kacC7mAqETCIsAUN2IyEGgC6hzraDai8/7EIjSqR5KQt+B3BmNjjA+dh2rFpwBoGf4apTjoLGJH2HiJo6ghBKqjwIdGLoAjX8T/47Pe1UsIdMQejK9eCw8shPk4gJqlZggmwAzmlFJSWmrzewzNvHjCO1MLL4qERYl/C1FeBvLSB6K2RnQr0HGU8fERPR9fqr+3kE3VH+LyH4b8zSfDV/D3tF5wBM2M11UVO8ADqTXwCCiY27B9HOgseZj9p7to8i4NoWBPxnzHqNNLCctiv9sG+J5AKEYKMfUzUjkN8AbTbIw5TXukQgfDTVRwWpU5iZ3IWOEJUCRtQZJ3ntlNgCwom4AGMiYZ0dT3Y/0DPtRjX2hrUGYuIuqB1jp7QNgbe0I8G7aeoGga6iAq1FjCxAbfiWIbYsq1qt56yVfhZLQUPkr6IdJvHKYvpqv8tVNYfcDqi+SuKszjI6keZMDCmvAV3sSi40g4YuEfEHR6a58dlH4HVmTdxdq3Yop9zE+upIHF7u8lqeG3Hdk2cBX83OhSl/Ge2JhE92hF6ZRSzqUuAXSDCEpBUrd4zMDl/EQUt0H7HeNTy/qEXk4VSDdW+gQvpq3CiRocggEq4BJG4g2Hl6N6POozsmYmwhBUeMoEl5P49zROO8PVWPobpAbUE1YZspxDM/6xGN0N6Q30KllMPwGMM9tOZsRokvA8wPwpo1rBnkEkBR1l2BFjgDbsymffhKHDkcQTk1KcCpY8kcCczJNtiJJ+a5I/wSal4fxhxoQfQwM93MeV1iAcRRfVbeDPvL6Hm7ZYKHm0qR7KNYAfcc+ybaHzHOgyXsCyO8xe1ubBW178lEq0UAk/kmkle5QSz46yQMmnr7YNJJsoB+I7X/nMPGryExCv/3COQCFdlT/mlY5k4FyGnSrnUp+N/YM1qFl9VgpTgkuJTzGKcbOfxM/JJvFLGYBwL8HT1nwly4dYQAAAABJRU5ErkJggg==\"","import FileSaver from 'file-saver';\nimport { Dispatch, SetStateAction } from 'react';\n\nimport { SnackBarConfig } from './SnackBarConfig';\n\nexport const checkResponse = (\n resp: any,\n setLoading: Dispatch>,\n setData: any,\n snackBar: any,\n) => {\n if (resp && resp?.isOk()) {\n if (resp.value) {\n resp.value.role = ['companies', 'clients'];\n }\n setData(resp.value);\n setLoading(false);\n } else if (resp && resp.isErr()) {\n snackBar(resp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n};\n\nexport const checkUploadResponse = (\n resp: any,\n setLoading: Dispatch>,\n setData: any,\n snackBar: any,\n) => {\n if (resp && resp?.isOk()) {\n setData('success');\n setLoading(false);\n } else if (resp && resp.isErr()) {\n snackBar(resp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n};\n\nexport const checkDownloadResponse = (\n resp: any,\n setLoading: Dispatch>,\n snackBar: any,\n fileName: string,\n) => {\n if (resp && resp?.isOk()) {\n const blob = new Blob([resp.value]);\n let name = fileName;\n if (resp.value.fileName) {\n name = resp.value.fileName;\n }\n FileSaver.saveAs(blob, name);\n setLoading(false);\n } else if (resp && resp.isErr()) {\n snackBar(resp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n};\n","import { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { SortData } from '../../components/Table/Sorter';\nimport { AdminUserDTO, AdminUsersDTO } from '../../core/types/AdminUsersDTO';\nimport { GetUserInput, PaginationOptions, UserStatusInput } from '../../types';\nimport { checkResponse } from '../../utils/ApiResponseValidator';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { useCustomStore } from '../store';\n\nexport const useFetchMe = (): {\n admins: AdminUserDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { adminUsersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [admins, setAdmins] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchMe = async () => {\n const adminsResp = await adminUsersApi.getMe();\n checkResponse(adminsResp, setLoading, setAdmins, enqueueSnackbar);\n };\n fetchMe();\n }, [enqueueSnackbar, adminUsersApi]);\n return { admins, loading };\n};\n\nexport const useFetchAdminUsers = (\n params: GetUserInput,\n limit: number,\n offset: number,\n { name, order }: SortData,\n searchMode: boolean,\n): {\n admins: AdminUsersDTO | null;\n loading: boolean;\n reload: (\n pagination: PaginationOptions,\n // sortby: string,\n // sortOrder: string,\n ) => void;\n} => {\n const {\n apiStore: { adminUsersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [admins, setAdmins] = useState(null);\n\n const fetchAdmins = useCallback(\n async (pagination: PaginationOptions) => {\n if (!searchMode) {\n setLoading(true);\n const sortOrder = order;\n const sortby = name;\n const adminResp = await adminUsersApi.searchAdmins(\n '',\n params.status || 'active',\n pagination,\n sortby,\n sortOrder,\n );\n checkResponse(adminResp, setLoading, setAdmins, enqueueSnackbar);\n }\n // if (!searchMode) {\n // setLoading(true);\n // const reqParams = {\n // ...pagination,\n // sortOrder: order,\n // sortby: name,\n // status: params.status,\n // };\n // const adminsResp = await adminUsersApi.getAllAdminUsers(reqParams);\n // checkResponse(adminsResp, setLoading, setAdmins, enqueueSnackbar);\n // }\n },\n [adminUsersApi, enqueueSnackbar, params, name, order, searchMode],\n );\n\n useEffect(() => {\n fetchAdmins({ limit: limit, offset: offset * limit });\n }, [fetchAdmins, limit, offset]);\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchAdmins({ limit, offset: offset * limit });\n };\n\n return { admins, loading, reload };\n};\n\nexport const useArchiveUser = (\n params: UserStatusInput,\n): {\n loading: boolean;\n} => {\n const {\n apiStore: { adminUsersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n useEffect(() => {\n setLoading(true);\n const archive = async () => {\n const archiveResp = await adminUsersApi.updateAdminStatus(params);\n if (archiveResp.isOk()) {\n enqueueSnackbar('User Archived.', SnackBarConfig('s'));\n setLoading(false);\n } else {\n enqueueSnackbar(archiveResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n }\n };\n archive();\n }, [enqueueSnackbar, adminUsersApi, params]);\n return { loading };\n};\n\nexport const useSendConfirmation = (): {\n sendConfirmation: (id: any) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { adminUsersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const sendConfirmation = useCallback(\n async (id) => {\n setLoading(true);\n enqueueSnackbar('Sending Confirmation Email', SnackBarConfig('i'));\n const clear = async (userId: string) => {\n const response: any = await adminUsersApi.sendConfirmation(userId);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await clear(id);\n },\n [adminUsersApi, enqueueSnackbar],\n );\n\n return { loading, response, sendConfirmation };\n};\n\nexport const useSearchAdmins = ({\n name,\n order,\n}: SortData): {\n admins: any | null;\n loading: boolean;\n searchAdmins: (\n searchTerm: string,\n status: 'active' | 'inactive',\n pagination: PaginationOptions,\n ) => void;\n} => {\n const {\n apiStore: { adminUsersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [admins, setAdmins] = useState(null);\n\n const searchAdmins = useCallback(\n async (searchTerm, status, pagination: PaginationOptions) => {\n setLoading(true);\n const sortOrder = order;\n const sortby = name;\n const adminResp = await adminUsersApi.searchAdmins(\n searchTerm,\n status,\n pagination,\n sortby,\n sortOrder,\n );\n checkResponse(adminResp, setLoading, setAdmins, enqueueSnackbar);\n },\n [enqueueSnackbar, adminUsersApi, name, order],\n );\n return { admins, loading, searchAdmins };\n};\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { styleFunction } from '../../style/functions';\nimport { ComponentStyles, TextStyles } from '../../style/variable';\n\nconst drawerWidth = 260;\nconst useStyles = makeStyles((theme) => ({\n avatar: {\n backgroundColor: theme.palette.primary.main,\n },\n drawer: {\n [theme.breakpoints.up('sm')]: {\n flexShrink: 0,\n width: drawerWidth,\n },\n },\n drawerPaper: {\n '@media screen and (max-width: 280px)': {\n width: 230,\n },\n width: drawerWidth,\n },\n link: {\n textDecoration: 'none',\n },\n list: {\n backgroundColor: theme.palette.background.paper,\n },\n listGrow: {\n flexGrow: 1,\n },\n logoSpacing: {\n marginBottom: '40px',\n marginTop: '20px',\n },\n\n // logo: {\n // '@media screen and (max-width: 280px)': {\n // width: 230,\n // },\n // paddingBottom: theme.spacing(3),\n // paddingLeft: theme.spacing(3),\n // paddingRight: theme.spacing(3),\n // paddingTop: theme.spacing(5),\n // },\n logout: styleFunction.navButtonMix({\n hoverBg: ComponentStyles.button.background.errorHover,\n rippleColor: ComponentStyles.button.background.errorRiple,\n }),\n\n // listButton: {\n // '&:hover': {\n // '& $listItemText': {\n // color: theme.palette.common.white,\n // },\n // backgroundColor: theme.palette.primary.light,\n // borderRadius: 10,\n // },\n // borderRadius: 10,\n // marginBottom: theme.spacing(1),\n // marginLeft: theme.spacing(1),\n // width: '94%',\n // },\n // listButtonSelected: {\n // '& $listItemText': {\n // color: theme.palette.common.white,\n // },\n // backgroundColor: theme.palette.primary.main + ' !important',\n // },\n // listItemIcon: {\n // backgroundPosition: 'center',\n // backgroundRepeat: 'no-repeat',\n // height: 24,\n // marginRight: theme.spacing(1.5),\n // minWidth: 24,\n // },\n // listItemText: {\n // color: theme.palette.text.disabled,\n // fontSize: 15,\n // letterSpacing: 0,\n // },\n logoutColor: {\n color: TextStyles.color.error,\n },\n\n navButton: styleFunction.navButtonMix({\n rippleColor: ComponentStyles.mainNav.color.active,\n }),\n\n root: {\n display: 'flex',\n },\n\n selected: {\n '& .MuiListItemText-primary': {\n color: `${ComponentStyles.mainNav.color.active} !important`,\n fontFamily: 'SourceSansProSemiBold',\n },\n backgroundColor: `${ComponentStyles.mainNav.background.active} !important`,\n borderRight: `8px solid ${ComponentStyles.mainNav.color.active} !important`,\n },\n // necessary for content to be below app bar\n // toolbar: theme.mixins.toolbar,\n}));\n\nexport default useStyles;\n","import {\n ListItem,\n ListItemIcon,\n ListItemText,\n // Typography,\n} from '@material-ui/core';\nimport Drawer from '@material-ui/core/Drawer';\nimport List from '@material-ui/core/List';\n// import MailIcon from '@material-ui/icons/Mail';\n// import InboxIcon from '@material-ui/icons/MoveToInbox';\nimport { useSnackbar } from 'notistack';\nimport React, { useState } from 'react';\nimport { FC } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { useLocation } from 'react-router-dom';\n\nimport AdminsOff from '../../assets/images/icons/AdminsOff@2x.png';\nimport AdminsOn from '../../assets/images/icons/AdminsOn@2x.png';\nimport AdsOff from '../../assets/images/icons/Ads-1@2x.png';\nimport AdsOn from '../../assets/images/icons/AdsOn@2x.png';\nimport AppTextToolsOff from '../../assets/images/icons/AppTextToolsOff@2x.png';\nimport AppTextToolsOn from '../../assets/images/icons/AppTextToolsOn@2x.png';\nimport ClientsOff from '../../assets/images/icons/ClientsOff@2x.png';\nimport ClientsOn from '../../assets/images/icons/ClientsOn@2x.png';\nimport CompaniesOff from '../../assets/images/icons/CompaniesOff@2x.png';\nimport CompaniesOn from '../../assets/images/icons/CompaniesOn@2x.png';\nimport DeviceOff from '../../assets/images/icons/DeviceOff@2x.png';\nimport DeviceOn from '../../assets/images/icons/DeviceOn@2x.png';\n// import PatientsOff from '../../assets/images/icons/PatientsOff@2x.png';\n// import PatientsOn from '../../assets/images/icons/PatientsOn@2x.png';\nimport ProvidersOff from '../../assets/images/icons/Provider-1@2x.png';\nimport ProvidersOn from '../../assets/images/icons/ProviderOn@2x.png';\nimport NavRoutes from '../../constants/routes/NavRoutes';\nimport { useCustomStore } from '../../hooks';\nimport { useFetchMe } from '../../hooks/adminUsers/adminUsersService';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\n// import Storage from '../../utils/Storage';\nimport { UserInfo } from '../Display';\nimport PublicLogo from '../PublicLogo/PublicLogo';\nimport useStyles from './LeftNavStyles';\n\nconst LeftNav: FC = (props: any): React.ReactElement => {\n const { authStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const classes = useStyles();\n const location = useLocation().pathname;\n const currentLocation = location.split('/')[1];\n const [currentRoute, setCurrentRoute] = useState(currentLocation);\n const { admins: me } = useFetchMe();\n const handleNavChange = (route: string) => {\n if (route === 'providers') {\n const newWindow = window.open(\n '/providers',\n '_blank',\n 'noopener,noreferrer',\n );\n if (newWindow) newWindow.opener = null;\n // if (Storage.getAccessTokenData().providerAccess) {\n // }\n } else {\n setCurrentRoute(route);\n history.push(`/${route}`);\n }\n };\n\n const logoMap: any = {\n ['Admin Users']: {\n off: AdminsOff,\n on: AdminsOn,\n },\n ['Ads']: {\n off: AdsOff,\n on: AdsOn,\n },\n ['App Text Tools']: {\n off: AppTextToolsOff,\n on: AppTextToolsOn,\n },\n ['Companies']: {\n off: CompaniesOff,\n on: CompaniesOn,\n },\n ['Device']: {\n off: DeviceOff,\n on: DeviceOn,\n },\n ['Devices']: {\n off: DeviceOff,\n on: DeviceOn,\n },\n\n ['Personal Health']: {\n off: ProvidersOff,\n on: ProvidersOn,\n },\n // ['Patients']: {\n // off: PatientsOff,\n // on: PatientsOn,\n // },\n ['Physician']: {\n off: ClientsOff,\n on: ClientsOn,\n },\n };\n\n const handleLogout = async () => {\n await authStore.logout();\n enqueueSnackbar('Logging Out..', SnackBarConfig('e'));\n };\n const { history } = props;\n const NAVS = NavRoutes.ADMIN_NAVS;\n const NAVS_role: any = [];\n if (me) {\n const routepage = me?.permissions;\n NAVS.map((path) => {\n if (routepage.includes(path.route)) {\n NAVS_role.push(path);\n }\n });\n }\n\n return (\n \n );\n};\n\nexport default withRouter(LeftNav);\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAAFL0lEQVRoBe1ZTYgcRRR+r6eTzWazmfaHoIiwCWLISXQFFX9z0MhCZlXEHDwIetKoIIIiXgQP3pNcRBDFeBE8ZCcRs0aIIIrC+nOQBNmsOShixOzMzmzWmd3u56vp7epXvT3T3dPtrOAU9PSrqvdTX71X9aprAIZlOAP/7xnATPB/oq2w0JgEjyYBvGszyVoWZeIPmAkuA+L3cHDnl0GTfKcHcGrpZnDdj4DgFqlgYDTiHNhwCKacC9JmOgCfLl8PrfY5FixL4cHTeBFGcBIeLl8ObNsB0fPdXn2T+8PBI34GRN9wm9tTLuhMHT60ncPzlY4Y4gLbqHL43Mj1R5nmyaYJaOHrXH85UJ0OAMD+QAAsOAYHnRd0vUiiWnu8ow5xHuzyJEzhUqderR9mAMd8U/QYvzUAy2/s8UtkcdxPaA6yPtR00YRH/voinNGDVzZKOz8QppRHdEkGMAcldl3IZ1v+rGgVhRLjHW3oNQ2tu2BF1I11Gw5McBjkJQ4aWVzyZHUgdINjoEtJXgMOA/hTSFsQAphZPAKEzwFGQCp2Yj7Eo1ApvySkCyeTATQig1szPPAUj7TUZX449OBJfrIDIHgATiy+odE2a2EUIE+XKMkAxhjA30KiZAB4n2f5WQbgG5DKCVZ553hbSCaTSt4PlvuYWT1+CX0etOh3MoCViAckgMpVL7Im9RRTqIsvTe1/yWoygFY9dJ+SXNvWYz6k6hw0wm+8tr5a16BCxvcLslcBj0vNyQC2WRYsi4QrPVBdPAoeh5BaB1kL4i88yIdgujyvRYMQIvwWpp0ndHsPwpzdOMY2mjy2WAMET/c1eGWHaDcH5wHDZLoQMkTMwRld65XVCIBVAQDwPV7Ea/xQpgdQbbELvNGejjOZpS05hEYYQEuolB6oOIe5Rz2bVrJ7oC09sGnj1oaTPbA1kge2CAAqEwM+7x91tc50hFrENjwY/UBJJxxyJXugjUbmgxEv3EYJD/U1eGVfLWIX1NE4V0kGQC1zi1xxQgAI7/JibGVewGoRA/zOu+8nuUbPwskhZHF6F2kARsVhruK8xjrUs2kl2QNuZBttp0r3AwOU7AGbAayJ8YwLDwTH6f4yMX/z4gEjEwszaclkD3iRw1xNAAB4Jkcm3rMhE6cdteBLBlCKhNAuCQDzZOJ51mRmYnkcF4PsRSaHUNQDfC+nFRadif+Vs1B0EfOdogbwHyBMD6i7zwvNu4C8UT02dPcY+87J+qtQrenu1ISaXQS+43Rmu8oEx+muDBs7TADztTPMcq/BFr0P8Ogtoz9LRemqLu3ji9rzsWL5QwjvjFVcZKNHE0WqM3chM+cWaSfUZUW25bCnL8oMIQ5+raXilPiME9Z1Rx9EtXYbX9rOdSQpsi1Ldep+KRqysj+GNj1A2NY8ZwucKSyFepGu1jaiBOE+v4muRLu61U0ACN9pxkbzbk3nJcZ2XOTvBh8E0XSsutM0xln9jk4f8v8AKYsJAODzUM59B07UbwrrOaj92OQt9OOOBuLr8ZmauZNV+X+BVv04969f7lqn0lozP1bOLF0DV9wfOQ5v8BUg38PQLK+Fc/wBspxWaSyfhXwIIb6CCQr+zKDOsi3+wIdHWP91nR7EWag45m1FIBLzNgEohpnG/UAuJxtOaoMu6o8Nsu+B6R1/pDUdDSGAyvgXsKV0K8/612mV5OdDl71wBEbLt2cZvLK70QPBaNR/Uicbe9kT/Jcq7O44Oujr9c50olS7jXUebPsHmNr+ay+1w77hDAxnIH4G/gEZOJEvb0aFZwAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAABqUlEQVRoBe1asU7DQAy9A9RMLIilCDFnY2IDibZZMvMvfAQfwhcgZWqLBBsTexYkBGJhYEul1Pgi2ZgoqVBB8lW4yzl2cn5+7y46xXXOfroMeJk+z/PDqqquwPtzBzCUMXXb+1cPcJskyWVRFM+EhwtowC8WjwCwR8EYR+/9ezIYHFMRWwSyYT5y8AFrIDhgJdxcQLNsyBv5KLHuMNbWmp/PZry8+B5FYzQeA6cXWFkBDm6YYQVoC2YKmAK/ZODrNdqaKMuy05ZL9bJeLjvz9xaAD9x1PhGZ0zaxtiC9S8h5f//X4PBskuBh7ITmxZNlheeDB7peOQJ07sneAubT6dnKCdcI4ovhqAZ4Eo++/TTPt7OQmMD2gCBDxTQFVGgXSU0BQYaKaQqo0C6SmgKCDBXTFFChXSQ1BQQZKqYpoEK7SGoKCDJUTFNAhXaR1BQQZKiYG68A98FGk8lLdL3hPk2xZ4zfkw5CmBUITeS++2PzS6xcQOiAhyZybGDbeJpGN2Il/zYZZVl+pGl6Xdf1EL+L7qN/l2JRjOGvBs7dINEX1KWPAte/B/EJzHhskRomNAAAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAABiUlEQVRoBe1azUoDMRCekaLgbb0p4it48qbg2YN9mz6EL9JzKXgW9OapjyCIixcLHvzDNmZYM0lgtxQVvixOLplksplvvi8pgSmRNSwDnIW/fNmnz48Lcu7Uz+9mPvygJuYrGmyO6Gz7PsCJCTTgZx78TnAW2TM/+SQOQxIbCrJhvmzwAlYIFqzfLSbQHJswX3afYB0kSPMzP6zi8UoWwczJ3CWxFWtUIPH2ybQE0GqZAqbALxlIf0bzrabPx/kEeLRctALoTmC5uG79orBJu8RoQbqPENPN34PjLf8YO9J9md/96+xWx6sMR613sjuB8+pk1X4/8k1fD8i93cVv3SOtGyd/C+kWdgeUCpBhCoCI17CmgFIBMkwBEPEa1hRQKkCGKQAiXsOaAkoFyDAFQMRrWFNAqQAZpgCIeA1rCigVIKP3CsQ62GT+4EnU2hOI0HXD1jSs9mRxVECKyH1pCdaYgFTApYhcemsK3aMAMyYg5XupgDOPvbMOCwrq5a8G47RKXxC2fwzlCxUeSo3QIVvzAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACjklEQVRYCe1Yu24aQRSNEQ0NEgVQOp+AY0S/KSkQXfwBeLEjOYXT0McFTVzEUmzWfIDTISQoQ4/YmE+IS6BAoqFBkBOtdDRaLp4dGyyKobpzn2fP3Bk092C1Wr3bp19sn8D8xxI3BdTv979fX08mE21gOp3+enlZKBS0nqrDgemWfTo5iYImqAFMvx4e1HpaWQPo79NTt9sdDAaj0Wg+n2vTbXJIJBLZbDafzxeLxfeHh5vcoN8IaLFY/Ly9bbfby+XymXhTUywWK5VKn8/P43G5W2RAQFOr1f48PprWi+j/4eioXq+LmORTBm52hwagkRwlRPQCQ+ibSqXCncLeu6enuVwulUohxcuaejabDXzf87zxeBzgwN41m831fhIY6nQ6RJPJZBp3d47jBGiQCycZZ0f8uJAyOPaBMplMfnQcr9HA5wUalMBxCYVgKXSW7/v0c10XubiEgHvF9CQzHKlA9rerq0CDw0sTBYEhnHCa88fHlLciYOuZRy1EpcCQet+o9ES/o5kdQui+5tbDpBZiiMAQbSEh4j9GKArXOgJDymeWBoCi/2OE6hkFGgAKldnR0gLSEWsZsgzpGNDZbQ9ZhnQM6Oy2hyxDOgZ0dttDliEdAzq77aEtMhTxBb1e0SjQYMuiv+pVTOoLX9VvkoWXK6ZdfFNOp1O+NV/zqmd5jEEooxBlCgJDHFDAaTgc0nUrAoYyzKMWolIAhEkgzd79vfpN1L9MQCqMiBirFqJSAIS5JKZJgQcGFG61+rvXeyUsbH2v16uenakDKxQiDgrCBA22Hzc3rVaLTrsQyuXyl4uL9cwCQ3DClBRzyXXvbWmQHCXEbDJDcN2vsTCx79HgnJjeWJB76I1BqOX+ASxbD1UnYNuFAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAIAAADYYG7QAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAMKADAAQAAAABAAAAMAAAAADbN2wMAAACvUlEQVRYCe1YS2sTURSeqRamoWaaIgWfcdNioUSEWqg724XgTqmIvyGuRJcq6rLQlf0NIpZ27cK6s1AV7SBU0k3jq1DENGlJA9GMX5z25GbmTO+9JS1Z3CGQM/c8vi/ffYR77FK1ZrXT09FOZOpcjuoSmn67/PhnopLokSY65Y1HJ8vZy4PSSDHA1p2yvpm8CpsAA5zWJ9IintSWEHqd+zG1tObV3C0n+bfTkZaLCzhSrXRXSpmO4t0LJ8YHTsWFYTyWULn65/rsx4Xufsu298jXdvn+6NbK3I2LiU5+tfCEwGZ4Zvm7e1YbTy3hdPHr+4lBlhO/y6DNwbEBZxQHBEueIYR1U5+p3adre+O+k18crpWuufhgne565N8IDrI+jNj3nDxKUQ4gAESvZDCEpj6t0bpBicUrqQdjmfN9qSAHO1mRE8IQHGT1H08+HMugVIOTbWO7EA8ymJXl+S65s6liurdp3+JcyZJbYjTqBIHp3uSd1OpkZecMw+aNFmAUwg6nuNuZc2S3xLg5dIbqiEA0yCgknjeQmkLVz2hKgRFMHJ3X/6e+GASIQJTCKES+kKH4jxHKwrGOxNDgHq8ahNT/MUJ4WokahEIwB/RqCMmENQoZhWQKyPxmDRmFZArI/GYNGYVkCsj8Zg0ZhWQKyPxmDbVQIcUbdBRRK1FjytRv9SIn8YYvjsfZzM0V3S66U35ZL1CbQedWL8I1XeBXfpXIByDLavLCxSiE3hvlvPz8jeyWGM+9VaojAtEgQwidQHI/K7j53w1+NL4/A6WmCw1JRCAqyBBCX9Ly/SBiu6tn5E3hybwnSk3J6gam/um8h1IouJPl+3WgyMP3GK++eLdwbCAS3MqB0c3cq1uXohV5Qm3X9ER/FF1S/Aiau+hP2ecI2sKbubgWLGryChFYGzXOidMhG8wuO2QGIbh/POgJMW4qfSQAAAAASUVORK5CYII=\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { SortData } from '../../components/Table/Sorter';\nimport { AlarmsDTO, AlarmsTypesDTO } from '../../core/types';\nimport { PaginationOptions } from '../../types';\nimport {\n checkDownloadResponse,\n checkResponse,\n} from '../../utils/ApiResponseValidator';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { useCustomStore } from '../store';\n\nexport const useFetchCompanyAlarms = (\n id: string,\n date: string,\n keyword: string,\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n alarms: AlarmsDTO | null;\n loading: boolean;\n reload: (\n date: string,\n pagination: PaginationOptions,\n keyword: string,\n ) => void;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarms, setAlarms] = useState(null);\n\n const fetchAlarms = useCallback(\n async (date = '', pagination: PaginationOptions, keyword) => {\n setLoading(true);\n const reqParams = {\n date: date === 'All' ? '' : date,\n id,\n ...pagination,\n keyword: keyword,\n sortOrder: order,\n sortby: name,\n };\n const alarmsResp = await alarmsApi.getCompanyAlarms(reqParams);\n checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n },\n [alarmsApi, enqueueSnackbar, id, name, order],\n );\n\n useEffect(() => {\n fetchAlarms(date, { limit: limit, offset: offset * limit }, keyword);\n }, [enqueueSnackbar, date, fetchAlarms, limit, offset, keyword]);\n\n const reload = (\n date: string,\n { limit, offset }: PaginationOptions,\n keyword: string,\n ) => {\n fetchAlarms(date, { limit, offset: offset * limit }, keyword);\n };\n return { alarms, loading, reload };\n};\n\nexport const useFetchCompanyAlarmsThird = (\n date: string,\n keyword: string,\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n alarms: AlarmsDTO | null;\n loading: boolean;\n reload: (\n date: string,\n pagination: PaginationOptions,\n keyword: string,\n ) => void;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarms, setAlarms] = useState(null);\n\n const fetchAlarms = useCallback(\n async (date = '', pagination: PaginationOptions, keyword) => {\n setLoading(true);\n const reqParams = {\n date: date === 'All' ? '' : date,\n ...pagination,\n keyword: keyword,\n sortOrder: order,\n sortby: name,\n };\n const alarmsResp = await alarmsApi.getThirdCompanyAlarms(reqParams);\n checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n },\n [alarmsApi, enqueueSnackbar, name, order],\n );\n\n useEffect(() => {\n fetchAlarms(date, { limit: limit, offset: offset * limit }, keyword);\n }, [enqueueSnackbar, date, fetchAlarms, limit, offset, keyword]);\n\n const reload = (\n date: string,\n { limit, offset }: PaginationOptions,\n keyword: string,\n ) => {\n fetchAlarms(date, { limit, offset: offset * limit }, keyword);\n };\n return { alarms, loading, reload };\n};\n\nexport const useFetchCompanyAlarmsPatient = (\n date: string,\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n alarms: AlarmsDTO | null;\n loading: boolean;\n reload: (date: string, pagination: PaginationOptions) => void;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarms, setAlarms] = useState(null);\n\n const fetchAlarms = useCallback(\n async (date = '', pagination: PaginationOptions) => {\n setLoading(true);\n const reqParams = {\n date: date === 'All' ? '' : date,\n ...pagination,\n sortOrder: order,\n sortby: name,\n };\n const alarmsResp = await alarmsApi.getPatientCompanyAlarms(reqParams);\n checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n },\n [alarmsApi, enqueueSnackbar, name, order],\n );\n\n useEffect(() => {\n fetchAlarms(date, { limit: limit, offset: offset * limit });\n }, [enqueueSnackbar, date, fetchAlarms, limit, offset]);\n\n const reload = (date: string, { limit, offset }: PaginationOptions) => {\n fetchAlarms(date, { limit, offset: offset * limit });\n };\n return { alarms, loading, reload };\n};\n\nexport const useFetchDeviceAlarms = (\n id: string,\n filter: string,\n date: string,\n): {\n alarms: AlarmsDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarms, setAlarms] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n if (id && id !== '') {\n const fetchAlarms = async () => {\n const alarmsResp = await alarmsApi.getDeviceAlarms(id, {\n date,\n filter,\n });\n checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n };\n fetchAlarms();\n }\n }, [enqueueSnackbar, filter, alarmsApi, date, id]);\n\n return { alarms, loading };\n};\n\nexport const useFetchUserAlarms = (\n id: string,\n filter: string,\n date: string,\n): {\n alarms: AlarmsDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarms, setAlarms] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n if (id && id !== '') {\n const fetchAlarms = async () => {\n const alarmsResp = await alarmsApi.getUserAlarms(id, { date, filter });\n checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n };\n fetchAlarms();\n }\n }, [enqueueSnackbar, filter, alarmsApi, date, id]);\n\n return { alarms, loading };\n};\n\nexport const useFetchAlarms = (\n id: string,\n filter: string,\n date: string,\n fetchBy: 'clientId' | 'deviceId',\n limit: number,\n offset: number,\n): {\n alarms: AlarmsDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarms, setAlarms] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n if (id && id !== '') {\n const fetchAlarms = async () => {\n const reqParams = {\n date: date === 'All' ? '' : date,\n filter: filter === 'All' ? '' : filter,\n limit,\n offset: offset * limit,\n };\n const alarmsResp =\n fetchBy === 'clientId'\n ? await alarmsApi.getUserAlarms(id, reqParams)\n : await alarmsApi.getDeviceAlarms(id, reqParams);\n checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n };\n fetchAlarms();\n }\n }, [enqueueSnackbar, filter, alarmsApi, fetchBy, date, id, limit, offset]);\n\n return { alarms, loading };\n};\n\n// export const useFetchUserAlarms = (\n// id: string,\n// ): {\n// alarms: AlarmsDTO | null;\n// loading: boolean;\n// } => {\n// const {\n// apiStore: { alarmsApi },\n// } = useCustomStore();\n// const { enqueueSnackbar } = useSnackbar();\n// const [loading, setLoading] = useState(false);\n// const [alarms, setAlarms] = useState(null);\n\n// useEffect(() => {\n// setLoading(true);\n// if (id && id !== '') {\n// const fetchAlarms = async () => {\n// const alarmsResp = await alarmsApi.getUserAlarms(id);\n// checkResponse(alarmsResp, setLoading, setAlarms, enqueueSnackbar);\n// };\n// fetchAlarms();\n// }\n// }, [enqueueSnackbar, alarmsApi, id]);\n\n// return { alarms, loading };\n// };\n\nexport const useFetchCompanyAlarmsTypes = (\n id: string,\n): {\n alarmsTypes: AlarmsTypesDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarmsTypes, setAlarmsTypes] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchAlarms = async () => {\n const alarmsResp = await alarmsApi.getCompanyAlarmsTypes(id);\n checkResponse(alarmsResp, setLoading, setAlarmsTypes, enqueueSnackbar);\n };\n fetchAlarms();\n }, [enqueueSnackbar, alarmsApi, id]);\n\n return { alarmsTypes, loading };\n};\nexport const useFetchCompanyThirdAlarmsTypes = (): {\n alarmsTypes: AlarmsTypesDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarmsTypes, setAlarmsTypes] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchAlarms = async () => {\n const alarmsResp = await alarmsApi.getThirdCompanyAlarmsTypes();\n checkResponse(alarmsResp, setLoading, setAlarmsTypes, enqueueSnackbar);\n };\n fetchAlarms();\n }, [enqueueSnackbar, alarmsApi]);\n\n return { alarmsTypes, loading };\n};\n\nexport const useFetchCompanyPatientAlarmsTypes = (): {\n alarmsTypes: AlarmsTypesDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [alarmsTypes, setAlarmsTypes] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchAlarms = async () => {\n const alarmsResp = await alarmsApi.getPatientCompanyAlarmsTypes();\n checkResponse(alarmsResp, setLoading, setAlarmsTypes, enqueueSnackbar);\n };\n fetchAlarms();\n }, [enqueueSnackbar, alarmsApi]);\n\n return { alarmsTypes, loading };\n};\n\nexport const useDownloadDeviceAlarms = (): {\n downloadDeviceAlarms: (id: any, type: string, month: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadDeviceAlarms = useCallback(\n async (id: string, type: string, month: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const alarmsResp: any = await alarmsApi.downloadDeviceAlarms(\n id,\n type,\n month,\n );\n checkDownloadResponse(\n alarmsResp,\n setLoading,\n enqueueSnackbar,\n `device-${id ? id : ''}.xlsx`,\n );\n };\n await download();\n },\n [alarmsApi, enqueueSnackbar],\n );\n\n return { downloadDeviceAlarms, loading };\n};\n\nexport const useDownloadCompanyAlarms = (): {\n downloadCompanyAlarms: (id: any, month: string, keyword: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadCompanyAlarms = useCallback(\n async (id: string, month: string, keyword: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const alarmsResp: any = await alarmsApi.downloadCompanyAlarms(\n id,\n month,\n keyword,\n );\n checkDownloadResponse(\n alarmsResp,\n setLoading,\n enqueueSnackbar,\n `company-${id ? id : ''}.xlsx`,\n );\n };\n await download();\n },\n [alarmsApi, enqueueSnackbar],\n );\n\n return { downloadCompanyAlarms, loading };\n};\n\nexport const useDownloadPatientAlarms = (): {\n downloadPatientAlarms: (month: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadPatientAlarms = useCallback(\n async (month: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const alarmsResp: any = await alarmsApi.downloadPatientCompanyAlarms(\n month,\n );\n checkDownloadResponse(\n alarmsResp,\n setLoading,\n enqueueSnackbar,\n 'company.xlsx',\n );\n };\n await download();\n },\n [alarmsApi, enqueueSnackbar],\n );\n return { downloadPatientAlarms, loading };\n};\nexport const useDownloadThirdCompanyAlarms = (): {\n downloadThirdCompanyAlarms: (month: string, keyword: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadThirdCompanyAlarms = useCallback(\n async (month: string, keyword: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const alarmsResp: any = await alarmsApi.downloadThirdCompanyAlarms(\n month,\n keyword,\n );\n checkDownloadResponse(\n alarmsResp,\n setLoading,\n enqueueSnackbar,\n 'company.xlsx',\n );\n };\n await download();\n },\n [alarmsApi, enqueueSnackbar],\n );\n return { downloadThirdCompanyAlarms, loading };\n};\nexport const useDownloadUsersAlarms = (): {\n downloadCompanyAlarms: (id: any) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const downloadCompanyAlarms = useCallback(\n async (id) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async (userId: string) => {\n const alarmsResp: any = await alarmsApi.downloadUsersAlarms(userId);\n checkDownloadResponse(\n alarmsResp,\n setLoading,\n enqueueSnackbar,\n `user-${userId ? userId : ''}.xlsx`,\n );\n };\n await download(id);\n },\n [alarmsApi, enqueueSnackbar],\n );\n\n return { downloadCompanyAlarms, loading };\n};\n\nexport const useGetUserName = (\n id: string,\n fetchBy: 'clientId' | 'deviceId',\n): {\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { alarmsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n useEffect(() => {\n setLoading(true);\n const getUserName = async () => {\n setLoading(true);\n const response: any =\n fetchBy === 'clientId'\n ? await alarmsApi.getUserNameByClientId(id)\n : await alarmsApi.getUserNameByDeviceId(id);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n getUserName();\n }, [enqueueSnackbar, alarmsApi, fetchBy, id]);\n\n return { loading, response };\n};\n","import { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { SortData } from '../../components/Table/Sorter';\nimport { CompaniesDashboardDTO, CompaniesDTO } from '../../core/types';\nimport {\n CompaniesTotalsDTO,\n CompanyTypesDTO,\n} from '../../core/types/CompaniesDTO';\n// import { PaginationOptions } from '../../types';\nimport { checkResponse } from '../../utils/ApiResponseValidator';\nimport { useCustomStore } from '../store';\n\nexport const useFetchCompanyTotals = (): {\n data: CompaniesTotalsDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchCompaniesTotalsData = async () => {\n const dataResp = await companiesApi.getCompanyTotals();\n checkResponse(dataResp, setLoading, setData, enqueueSnackbar);\n };\n fetchCompaniesTotalsData();\n }, [enqueueSnackbar, companiesApi]);\n\n return { data, loading };\n};\nexport const useFetchCompanyDashboardTotals = (): {\n data: CompaniesDashboardDTO;\n loading: boolean;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState({\n activeAlarmsTotal: 0,\n activeClientsTotal: 0,\n companiesTotal: 0,\n inactiveClientsTotal: 0,\n });\n\n useEffect(() => {\n setLoading(true);\n const fetchDashboardData = async () => {\n const dataResp = await companiesApi.getCompanyDashBoardTotals();\n checkResponse(dataResp, setLoading, setData, enqueueSnackbar);\n };\n fetchDashboardData();\n }, [enqueueSnackbar, companiesApi]);\n\n return { data, loading };\n};\n\nexport const useFetchAllCompanies = ({\n name,\n order,\n}: SortData): {\n companies: CompaniesDTO | null;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [companies, setCompanies] = useState(null);\n\n const fetchCompanies = useCallback(async () => {\n setLoading(true);\n const reqParams = {\n sortOrder: order,\n sortby: name,\n };\n const companiesResp = await companiesApi.getAllCompanies(reqParams);\n checkResponse(companiesResp, setLoading, setCompanies, enqueueSnackbar);\n }, [enqueueSnackbar, companiesApi, name, order]);\n\n useEffect(() => {\n fetchCompanies();\n }, [enqueueSnackbar, fetchCompanies]);\n\n const reload = () => {\n fetchCompanies();\n };\n\n return { companies, loading, reload };\n};\n\nexport const useFetchAllCompaniesByType = (\n type: string,\n): {\n companies: CompaniesDTO | null;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [companies, setCompanies] = useState(null);\n\n const fetchCompanies = useCallback(async () => {\n setLoading(true);\n const reqParams = {\n type: type,\n };\n const companiesResp = await companiesApi.getAllCompaniesByType(reqParams);\n checkResponse(companiesResp, setLoading, setCompanies, enqueueSnackbar);\n }, [enqueueSnackbar, companiesApi, type]);\n\n useEffect(() => {\n fetchCompanies();\n }, [enqueueSnackbar, fetchCompanies]);\n\n const reload = () => {\n fetchCompanies();\n };\n\n return { companies, loading, reload };\n};\n\nexport const useFetchArchivedCompanies = (): {\n companies: CompaniesDTO | null;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [companies, setCompanies] = useState(null);\n\n const fetchCompanies = useCallback(async () => {\n const companiesResp = await companiesApi.getArchivedCompanies();\n checkResponse(companiesResp, setLoading, setCompanies, enqueueSnackbar);\n }, [enqueueSnackbar, companiesApi]);\n\n useEffect(() => {\n setLoading(true);\n fetchCompanies();\n }, [enqueueSnackbar, companiesApi, fetchCompanies]);\n\n const reload = () => {\n fetchCompanies();\n };\n\n return { companies, loading, reload };\n};\n\nexport const useFetchCompany = (\n id: string,\n): {\n company: any;\n loading: boolean;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [company, setCompany] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchCompanies = async () => {\n const companiesResp = await companiesApi.getCompany(id);\n checkResponse(companiesResp, setLoading, setCompany, enqueueSnackbar);\n };\n fetchCompanies();\n }, [enqueueSnackbar, companiesApi, id]);\n\n return { company, loading };\n};\nexport const useFetchCompanyByThird = (): {\n company: any;\n loading: boolean;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [company, setCompany] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchCompanies = async () => {\n const companiesResp = await companiesApi.getCompanyThird();\n checkResponse(companiesResp, setLoading, setCompany, enqueueSnackbar);\n };\n fetchCompanies();\n }, [enqueueSnackbar, companiesApi]);\n return { company, loading };\n};\nexport const useQueryCompanyTypes = (): {\n types: CompanyTypesDTO | null;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [types, setTypes] = useState(null);\n\n const fetchCompanies = useCallback(async () => {\n const companiesResp = await companiesApi.queryCompanyTypes();\n checkResponse(companiesResp, setLoading, setTypes, enqueueSnackbar);\n }, [enqueueSnackbar, companiesApi]);\n\n useEffect(() => {\n setLoading(true);\n fetchCompanies();\n }, [enqueueSnackbar, companiesApi, fetchCompanies]);\n\n const reload = () => {\n fetchCompanies();\n };\n\n return { loading, reload, types };\n};\nexport const useSearchCompanies = (): {\n companies: CompaniesDTO | null;\n loading: boolean;\n searchCompanies: (searchTerm: string) => void;\n} => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [companies, setCompanies] = useState(null);\n\n const searchCompanies = useCallback(\n async (searchTerm) => {\n setLoading(true);\n const companiesResp = await companiesApi.searchCompanies(searchTerm);\n checkResponse(companiesResp, setLoading, setCompanies, enqueueSnackbar);\n },\n [enqueueSnackbar, companiesApi],\n );\n return { companies, loading, searchCompanies };\n};\n","import { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { SortData } from '../../components/Table/Sorter';\nimport {\n DevicesDTO,\n DevicesPatientDTO,\n DevicesTransferDTO,\n} from '../../core/types';\nimport { PaginationOptions } from '../../types';\nimport {\n checkDownloadResponse,\n checkResponse,\n checkUploadResponse,\n} from '../../utils/ApiResponseValidator';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\n// import { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { useCustomStore } from '../store';\n\nexport const useFetchCompanyDevices = (\n keyword: string,\n id: string,\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n devices: DevicesDTO | null;\n loading: boolean;\n reload: (keyword: string) => void;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [devices, setDevices] = useState(null);\n\n const fetchDevices = useCallback(\n async (pagination: PaginationOptions, keyword) => {\n setLoading(true);\n const reqParams = {\n ...pagination,\n keyword: keyword,\n sortOrder: order,\n sortby: name,\n };\n const devicesResp = await devicesApi.getCompanyDevices(id, reqParams);\n checkResponse(devicesResp, setLoading, setDevices, enqueueSnackbar);\n },\n [devicesApi, enqueueSnackbar, id, name, order],\n );\n\n useEffect(() => {\n fetchDevices({ limit: limit, offset: offset * limit }, keyword);\n }, [enqueueSnackbar, fetchDevices, limit, offset, keyword]);\n\n const reload = () => {\n fetchDevices({ limit: limit, offset: offset * limit }, keyword);\n };\n\n return { devices, loading, reload };\n};\nexport const useFetchCompanyDevicesByThird = (\n keyword: string,\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n devices: DevicesDTO | null;\n loading: boolean;\n reload: (keyword: string) => void;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [devices, setDevices] = useState(null);\n\n const fetchDevices = useCallback(\n async (pagination: PaginationOptions, keyword) => {\n setLoading(true);\n const reqParams = {\n ...pagination,\n keyword: keyword,\n sortOrder: order,\n sortby: name,\n };\n const devicesResp = await devicesApi.getCompanyDevicesByThird(reqParams);\n checkResponse(devicesResp, setLoading, setDevices, enqueueSnackbar);\n },\n [devicesApi, enqueueSnackbar, name, order],\n );\n\n useEffect(() => {\n fetchDevices({ limit: limit, offset: offset * limit }, keyword);\n }, [enqueueSnackbar, fetchDevices, limit, offset, keyword]);\n\n const reload = () => {\n fetchDevices({ limit: limit, offset: offset * limit }, keyword);\n };\n\n return { devices, loading, reload };\n};\n\nexport const useFetchCompanyDevicesByPatient = (\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n devices: DevicesPatientDTO | null;\n loading: boolean;\n reload: (pagination: PaginationOptions) => void;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [devices, setDevices] = useState(null);\n\n const fetchDevices = useCallback(\n async (pagination: PaginationOptions) => {\n setLoading(true);\n const reqParams = {\n ...pagination,\n sortOrder: order,\n sortby: name,\n };\n const devicesResp = await devicesApi.getCompanyDevicesByPatient(\n reqParams,\n );\n checkResponse(devicesResp, setLoading, setDevices, enqueueSnackbar);\n },\n [devicesApi, enqueueSnackbar, name, order],\n );\n\n useEffect(() => {\n fetchDevices({ limit: limit, offset: offset * limit });\n }, [enqueueSnackbar, fetchDevices, limit, offset]);\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchDevices({ limit: limit, offset: offset * limit });\n };\n\n return { devices, loading, reload };\n};\n\nexport const useFetchAllDevices = (\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n devices: DevicesDTO | null;\n loading: boolean;\n reload: (pagination: PaginationOptions) => void;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [devices, setDevices] = useState(null);\n\n const fetchDevices = useCallback(\n async (pagination: PaginationOptions) => {\n setLoading(true);\n const devicesResp = await devicesApi.getAllDevices();\n checkResponse(devicesResp, setLoading, setDevices, enqueueSnackbar);\n },\n [devicesApi, enqueueSnackbar],\n );\n\n useEffect(() => {\n fetchDevices({ limit: limit, offset: offset * limit });\n }, [enqueueSnackbar, fetchDevices, limit, offset]);\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchDevices({ limit: limit, offset: offset * limit });\n };\n\n return { devices, loading, reload };\n};\ntype Transfers = {\n // companyId: string;\n // deviceId?: string | null;\n // userId?: string | null;\n deviceId: string;\n distributorCompanyId: string;\n physicianCompanyId?: string;\n accessDataStatus: string;\n};\n\nexport const useDeviceTransferByThird = (): {\n transferDevice: (data: Transfers) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const transferDevice = useCallback(\n async (data: Transfers) => {\n setLoading(true);\n const transfer = async (data: Transfers) => {\n let accessDataStatus = false;\n if (data.accessDataStatus == 'true') {\n accessDataStatus = true;\n }\n const response: any = await devicesApi.transferDeviceBindCompany({\n accessDataStatus: accessDataStatus,\n deviceId: data.deviceId,\n distributorCompanyId: data.distributorCompanyId,\n physicianCompanyId: data.physicianCompanyId,\n });\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await transfer(data);\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { loading, response, transferDevice };\n};\n\nexport const useGetDeviceTransferInfo = (): {\n DeviceInfo: (deviceId: string) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const DeviceInfo = useCallback(\n async (deviceId: string) => {\n setLoading(true);\n const unbind = async () => {\n const response: any = await devicesApi.getTransferDevice(deviceId);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await unbind();\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { DeviceInfo, loading, response };\n};\nexport const UseGetDeviceTransfer = (\n deviceId: string,\n): {\n deviceInfo: DevicesTransferDTO | null;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [deviceInfo, setDeviceInfo] = useState(null);\n\n const fetchDevice = useCallback(async () => {\n setLoading(true);\n const companiesResp = await devicesApi.getTransferDevice(deviceId);\n checkResponse(companiesResp, setLoading, setDeviceInfo, enqueueSnackbar);\n }, [enqueueSnackbar, devicesApi, deviceId]);\n\n useEffect(() => {\n fetchDevice();\n }, [enqueueSnackbar, fetchDevice]);\n\n const reload = () => {\n fetchDevice();\n };\n\n return { deviceInfo, loading, reload };\n};\n\nexport const useDeviceTransfer = (): {\n transferDevice: (data: Transfers) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const transferDevice = useCallback(\n async (data: Transfers) => {\n setLoading(true);\n const transfer = async (data: Transfers) => {\n const response: any = await devicesApi.transferDevice(data);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await transfer(data);\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { loading, response, transferDevice };\n};\n\nexport const useDeviceTransferUser = (): {\n transferDeviceUser: (data: Transfers) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const transferDeviceUser = useCallback(\n async (data: Transfers) => {\n setLoading(true);\n const transfer = async (data: Transfers) => {\n const response: any = await devicesApi.transferTransferDeviceUser(data);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await transfer(data);\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { loading, response, transferDeviceUser };\n};\n\nexport const useDownloadDeviceInfo = (): {\n downloadDeviceInfo: (id: any, month: string, keyword: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { deviceLogsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadDeviceInfo = useCallback(\n async (id: string, month: string, keyword: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const deviceInfoResp: any = await deviceLogsApi.downloadDeviceInfo(\n id,\n month,\n keyword,\n );\n checkDownloadResponse(\n deviceInfoResp,\n setLoading,\n enqueueSnackbar,\n `device-${id ? id : ''}.xlsx`,\n );\n };\n await download();\n },\n [deviceLogsApi, enqueueSnackbar],\n );\n\n return { downloadDeviceInfo, loading };\n};\n\nexport const useDownloadThirdDeviceInfo = (): {\n downloadThirdDeviceInfo: (month: string, keyword: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { deviceLogsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadThirdDeviceInfo = useCallback(\n async (month: string, keyword: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const deviceInfoResp: any = await deviceLogsApi.downloadThirdDeviceInfo(\n month,\n keyword,\n );\n checkDownloadResponse(\n deviceInfoResp,\n setLoading,\n enqueueSnackbar,\n 'device.xlsx',\n );\n };\n await download();\n },\n [deviceLogsApi, enqueueSnackbar],\n );\n\n return { downloadThirdDeviceInfo, loading };\n};\nexport const useDownloadPatientDeviceInfo = (): {\n downloadPatientDeviceInfo: (month: string) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { deviceLogsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadPatientDeviceInfo = useCallback(\n async (month: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const deviceInfoResp: any =\n await deviceLogsApi.downloadPatientDeviceInfo(month);\n checkDownloadResponse(\n deviceInfoResp,\n setLoading,\n enqueueSnackbar,\n 'device.xlsx',\n );\n };\n await download();\n },\n [deviceLogsApi, enqueueSnackbar],\n );\n\n return { downloadPatientDeviceInfo, loading };\n};\nexport const useUnbindDevice = (): {\n unbindDevice: (deviceId: string) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const unbindDevice = useCallback(\n async (deviceId: string) => {\n setLoading(true);\n const unbind = async () => {\n const response: any = await devicesApi.unbindDevices(deviceId);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await unbind();\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { loading, response, unbindDevice };\n};\n\nexport const useUploadDeviceThird = (): {\n uploadDeviceThird: (data: FormData) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const uploadDeviceThird = useCallback(\n async (data: FormData) => {\n setLoading(true);\n enqueueSnackbar(\n 'Please Wait While Uploading Your File',\n SnackBarConfig('s'),\n );\n const upload = async () => {\n const deviceInfoResp: any = await devicesApi.uploadDevicesThird(data);\n checkUploadResponse(\n deviceInfoResp,\n setLoading,\n setResponse,\n enqueueSnackbar,\n );\n };\n await upload();\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { loading, response, uploadDeviceThird };\n};\nexport const useUploadDevice = (): {\n uploadDevice: (data: FormData, companyId: string) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const uploadDevice = useCallback(\n async (data: FormData, companyId: string) => {\n setLoading(true);\n enqueueSnackbar(\n 'Please Wait While Uploading Your File',\n SnackBarConfig('s'),\n );\n const upload = async () => {\n const deviceInfoResp: any = await devicesApi.uploadDevices(\n data,\n companyId,\n );\n checkUploadResponse(\n deviceInfoResp,\n setLoading,\n setResponse,\n enqueueSnackbar,\n );\n };\n await upload();\n },\n [devicesApi, enqueueSnackbar],\n );\n\n return { loading, response, uploadDevice };\n};\n","export const getPast12MontsFilter = () => {\n let currentMonth = new Date().getMonth();\n let currentYear = new Date().getFullYear();\n const monthFilters = [];\n const month = [\n 'Jan',\n 'Feb',\n 'Mar',\n 'Apr',\n 'May',\n 'Jun',\n 'Jul',\n 'Aug',\n 'Sep',\n 'Oct',\n 'Nov',\n 'Dec',\n ];\n monthFilters.push({\n text: 'All',\n val: 'All',\n });\n for (let i = 0; i < 12; i++) {\n currentMonth += 1;\n if (currentMonth > 11) {\n currentYear += 1;\n currentMonth = 0;\n }\n monthFilters.push({\n text: `${month[currentMonth]} ${currentYear - 1}`,\n val: `${currentMonth < 9 ? '0' : ''}${currentMonth + 1}/01/${\n currentYear - 1\n }`,\n });\n }\n return monthFilters;\n};\n","import {\n Button,\n // Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n Grid,\n IconButton,\n makeStyles,\n} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport React from 'react';\n\nimport downloadButton from '../../assets/images/icons/download.png';\nimport { ComponentStyles } from '../../style/variable';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: () => void;\n title?: string;\n width?: string;\n actionItems?: any;\n showDownload?: boolean;\n}\n\nconst PrimaryPopupDialog: React.FC = ({\n open,\n onClose,\n width,\n children,\n title,\n actionItems,\n showDownload,\n}) => {\n const useStyles = makeStyles({\n closeIcon: {\n position: 'absolute',\n right: '10px',\n top: '10px',\n },\n closeWrapper: {\n position: 'relative',\n },\n dialogActionPadding: {\n padding: '8px 24px',\n },\n dialogPadding: {\n maxWidth: '900px',\n padding: '20px',\n width: width ? width : '100%',\n },\n dialogTitle: {\n fontFamily: ComponentStyles.dialogTitle.fontFamily,\n fontSize: ComponentStyles.dialogTitle.fontSize,\n width: '500px',\n },\n });\n const classes = useStyles();\n const handleClose = () => {\n onClose && onClose();\n };\n return (\n \n
\n \n \n \n
\n \n {title && (\n \n {title}\n \n )}\n\n {showDownload && (\n \n \n DOWNLOAD\n \n )}\n \n\n {children}\n \n {actionItems}\n {/* \n Add\n */}\n \n \n );\n};\n\nPrimaryPopupDialog.defaultProps = {\n showDownload: false,\n};\nexport default PrimaryPopupDialog;\n","export enum AlarmTypeEnum {\n BatteryEmpty = 'Battery Empty',\n Charging = 'Charging',\n LowBattery = 'Low Battery',\n Muted = 'Muted',\n NoBreath = 'No Breath',\n OxyLow = 'Oxygen Low',\n OxygenDeliveryFailure = 'Oxygen Delivery Failure',\n PowerFailure = 'Power Failure',\n ReplaceBattery = 'Replace Battery',\n ReplaceSieve = 'Replace Sieve',\n SensorFailure = 'Sensor Failure',\n ShuttingDown = 'Shutting Down',\n SpeedFive = 'Speed Five',\n SysCold = 'System Cold',\n SysHot = 'System Hot',\n WarmingUp = 'Warming Up',\n}\n\nexport const AlarmTypesList = [\n { text: 'Battery Empty', val: 'BatteryEmpty' },\n { text: 'Charging', val: 'Charging' },\n { text: 'Low Battery', val: 'LowBattery' },\n { text: 'Muted', val: 'Muted' },\n { text: 'No Breath', val: 'NoBreath' },\n { text: 'Oxygen Low', val: 'OxyLow' },\n { text: 'Oxygen Delivery Failure', val: 'OxygenDeliveryFailure' },\n { text: 'Power Failure', val: 'PowerFailure' },\n { text: 'Replace Battery', val: 'ReplaceBattery' },\n { text: 'Replace Sieve', val: 'ReplaceSieve' },\n { text: 'Sensor Failure', val: 'SensorFailure' },\n { text: 'Shutting Down', val: 'ShuttingDown' },\n { text: 'Speed Five', val: 'SpeedFive' },\n { text: 'System Cold', val: 'SysCold' },\n { text: 'System Hot', val: 'SysHot' },\n { text: 'Warming Up', val: 'WarmingUp' },\n];\n","import { createStyles, Theme, withStyles } from '@material-ui/core/styles';\nimport TableCell from '@material-ui/core/TableCell';\nimport TableRow from '@material-ui/core/TableRow';\n\nimport { AppStyles, ComponentStyles } from '../../style/variable';\n\nexport const StyledTableCell = withStyles((theme: Theme) =>\n createStyles({\n body: {\n '&.bold': {\n fontFamily: AppStyles.font.bold,\n },\n '&.capitalize': {\n textTransform: 'capitalize',\n },\n fontFamily: AppStyles.font.regular,\n fontSize: 14,\n },\n head: {\n backgroundColor: '#f5f5f5',\n color: theme.palette.text.primary,\n fontFamily: AppStyles.font.semiBold,\n fontSize: '13px',\n textTransform: 'uppercase',\n },\n }),\n)(TableCell);\n\nexport const StyledTableRow = withStyles((theme: Theme) =>\n createStyles({\n root: {\n '&:hover': {\n backgroundColor: ComponentStyles.mainNav.background.active,\n },\n cursor: 'pointer',\n },\n }),\n)(TableRow);\n","import { Table, TableBody, TableContainer } from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { useSnackbar } from 'notistack';\nimport React, { useEffect, useState } from 'react';\n\nimport { useCustomStore } from '../../hooks';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../Table/CustomTableComponents';\nimport { PrimaryPopupDialog } from '.';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: () => void;\n deviceId?: string | null;\n currentDeviceInfo?: any;\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: '1px solid #D5D9E3',\n fontFamily: 'MavenProMedium',\n fontSize: '22px',\n },\n}));\n\nconst DeviceInfoDialog: React.FC = ({\n open,\n onClose,\n deviceId,\n currentDeviceInfo,\n}) => {\n const title = 'Device Info';\n const [deviceInfo, setDeviceInfo] = useState([\n {\n device: 'Sieve Status',\n status:\n currentDeviceInfo && currentDeviceInfo.replaceSieve\n ? currentDeviceInfo.replaceSieve\n : '-',\n },\n {\n device: 'Battery Charge Cycles remaining',\n status:\n currentDeviceInfo && currentDeviceInfo.dischargeCycleCount\n ? currentDeviceInfo.dischargeCycleCount\n : '-',\n },\n {\n device: 'Controller board version',\n status:\n currentDeviceInfo && currentDeviceInfo.controllerBoardVersion\n ? currentDeviceInfo.controllerBoardVersion\n : '-',\n },\n {\n device: 'Motor Board version',\n status:\n currentDeviceInfo && currentDeviceInfo.motorBoardVersion\n ? currentDeviceInfo.motorBoardVersion\n : '-',\n },\n {\n device: 'GeoLocation',\n status:\n currentDeviceInfo && currentDeviceInfo.geolocation\n ? currentDeviceInfo.geolocation\n : '-',\n },\n ]);\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const classes = useStyles();\n const { enqueueSnackbar } = useSnackbar();\n const { apiStore } = useCustomStore();\n const fetchDeviceInfo = async (deviceId: string) => {\n const deviceInfoResp: any = await apiStore.deviceLogsApi.getDeviceInfo(\n deviceId,\n );\n if (!deviceInfoResp.isOk()) {\n enqueueSnackbar(deviceInfoResp.error.message, SnackBarConfig('e'));\n return;\n }\n setDeviceInfo([\n {\n device: 'Sieve Status',\n status:\n deviceInfoResp.value && deviceInfoResp.value.replaceSieve\n ? deviceInfoResp.value.replaceSieve\n : '-',\n },\n {\n device: 'Battery Charge Cycles remaining',\n status:\n deviceInfoResp.value && deviceInfoResp.value.dischargeCycleCount\n ? deviceInfoResp.value.dischargeCycleCount\n : '-',\n },\n {\n device: 'Controller board version',\n status:\n deviceInfoResp.value && deviceInfoResp.value.controllerBoardVersion\n ? deviceInfoResp.value.controllerBoardVersion\n : '-',\n },\n {\n device: 'Motor Board version',\n status:\n deviceInfoResp.value && deviceInfoResp.value.motorBoardVersion\n ? deviceInfoResp.value.motorBoardVersion\n : '-',\n },\n {\n device: 'GeoLocation',\n status:\n deviceInfoResp.value && deviceInfoResp.value.geolocation\n ? deviceInfoResp.value.geolocation\n : '-',\n },\n ]);\n };\n\n useEffect(() => {\n if (deviceId) {\n fetchDeviceInfo(deviceId);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [deviceId]);\n\n return (\n \n \n \n \n {deviceInfo.map((row, i) => (\n \n \n {row.device}\n \n \n {row.status}\n \n \n ))}\n \n
\n
\n
\n );\n};\n\nexport default DeviceInfoDialog;\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import LowBattery2x from '../assets/images/icons/BatteryChargeLow@2x.png';\nimport BatteryEmpty2x from '../assets/images/icons/BatterySlotEmpty@2x.png';\nimport PowerFailure2x from '../assets/images/icons/ExternalPowerFailure@2x.png';\nimport NoBreath2x from '../assets/images/icons/NoBreathDetected@2x.png';\nimport OxygenDeliveryFailure2x from '../assets/images/icons/OxygenDeliveryFailure@2x.png';\nimport OxyLow2x from '../assets/images/icons/OxygenOutputLow@2x.png';\nimport ReplaceBattery2x from '../assets/images/icons/ReplaceBattery@2x.png';\nimport ReplaceSieve2x from '../assets/images/icons/ReplaceSieve@2x.png';\nimport SensorFailure2x from '../assets/images/icons/SensorFailure2@2x.png';\nimport ShuttingDown2x from '../assets/images/icons/ShuttingDown@2x.png';\nimport SysCold2x from '../assets/images/icons/SystemCold@2x.png';\nimport SysHot2x from '../assets/images/icons/SystemHot@2x.png';\n\nexport const AlarmTypeIcons2x = {\n BatteryEmpty: BatteryEmpty2x,\n Charging: LowBattery2x,\n LowBattery: LowBattery2x,\n Muted: SensorFailure2x,\n NoBreath: NoBreath2x,\n OxyLow: OxyLow2x,\n OxygenDeliveryFailure: OxygenDeliveryFailure2x,\n PowerFailure: PowerFailure2x,\n ReplaceBattery: ReplaceBattery2x,\n ReplaceSieve: ReplaceSieve2x,\n SensorFailure: SensorFailure2x,\n ShuttingDown: ShuttingDown2x,\n SpeedFive: SensorFailure2x,\n SysCold: SysCold2x,\n SysHot: SysHot2x,\n WarmingUp: SysHot2x,\n};\n","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAUKADAAQAAAABAAAAUAAAAAAx4ExPAAAXLklEQVR4Ae1daXBdxZX+7n2r9n21bMmSZdlgy7sNdozBYAg4ELIVUzhhKkNqklTFhFQyP+Zfan5NVZZJoKYqlVQyU4QwM4RMEicTIDhAbLAdsOVFYGPLkmVJlrXvy3vSe/fOd/rtT+89v01hqoaust7te7tPd5/bffqc75zb1vAhpv6/31Y+M+fdokNvMQ2zhV1pgYZq0zQLoGkFkF9JmjbN62lN/WKAdy5runbZgHE5P9dytvbHZ0ZUuQ/hj/bXbLP3G3fmuEbc98Ew9pumtl+DudEkezLpAyubJrR2TTNfh66/7ix3HF35LyfnM6GZSt2MOp9MQ5xN2tUntt4FA0+w/GeZL0ymXrplOEunWPcl6HhuzXNtx5jnO1q+tGwM7Dj8oMMcG/gi58c/sPuNyzeEhJS7uPy/o5VW/1vzsy+7E5ZM82HWGaiW6aD7KybMb3F11abZryxX0/o1aN91Vjl+lO3lnVUGdnxh68Om13iGo2/IMgeyRa5bs+hPNf+87XfZIpgVBnY9vqXeq+EZyrdHstWx5aRDuXhEt+iHm54705NpOxkzsPPxrZ82NOOn3AqLM+3MX7O+pmFCN/Unm15o++9M2tXTrWx++3P2K4e2POOF8auUmGexwvzMU1jxk7eR808vQq9ZnW4XYG74GGp+dAylP3gV+h5OfnIl2SR9lr7LGGQsydaLLpcWA3ufvLP0asfVN7jDHo4meKu8XlSOhk8cQm5uLuqamjG79cCtqsR8rtns8O5/DPkFBSirqIR136ehWW0xyya8yTHIWGRMCcvFeZgyAzsO7apzuVzHKe92x6GZ8LZZUQe7PfTCDS3lLij6pmFA42wOpPL6RlCRDmRT+pWxyJhkbClVZOGUWuz6/PYWmAsn2OBtqTYUKO+tWBm4VL/6aH9EPumM1wPX8M1g8bz8AujFlcF8qhdqTBybGmMKlZNmoLwdr+F9jfpdJAdSaEyKessjVUP7WIgJKZICRm5EVDErVkTkU83I2GSMqczEpBjokw8Lr2bKPBmQVlYTMS7rWJozkFRs44IrhNJiaeTLCT1J/so3xoVXk5WJt2Sg7FCUD7/LZNkGu89d0l4eYuDi4iLM0UgmBMsmcWEd6YsoZZRnNgMDxGSsasxJ7M63ZGBHx9XvkmBaG0agQ4Ffa2kl7Hn5gSxu9nQDhjeYT/VCH+qNqKJXZiRdImjJmGXsETdjZBIyUJTkdFSVGO2oW0Z+KawOZ/Dx7GCkDAs+SPZiZhzTUwK++JKDLygtVSZAIPqXKo7iQfT9sHxcBop5JhZGWNmML72FpbDZHUE6nqEMGUhteGwgJEOtzhzoBdk1iIQHnU9sWxXsdNRFXAb6bNvsmmfeoio4OMhA0oZ6Apdp/073dgbr2ji7jZKqYD4bF2KxGF7j2Xi0YjJQoSrLAAx4C8vIwNASjt5F43Uy0X1zNKQG2UjbKCxPVDytZ5SHjwhPYlVewkDB8/yQVKzy6d+j1WDkFcFmsyka09PT0CnDMk2WMFXGzhnoWQYGSh+FJ8Kb6P4uYaBr2PVVFmqILphpXs/Jh0b5RChJkZoYHYHmnsuULKzDN+hiMRQdp8zAooqMacYh0OAiUBz9LIKBCoY38M3oQtnIa2SgNT8k4KeHBwF35r4fbW4SU5OTqosyuw22IUDDciQq2d8SHoXTjmCg8mEsFwyfkwtHYYiBi1Nj0BZc4X1J61pfdGNidDhY10IGymxfnmTW+ngUoh5kIAUlvYzKARR6msUrs6AUReUhY98zPgwzCzNQaMyGMdBWWAItbxkdf+SR4pWfN0EGKtfjcnnPCFmZZbUoKStTzYoJp40PEtjJfAZqrhnMD4ZMuuLaOpjF2d+Jw+ZSo59X6laQgX6/bVi57F1qVJ4XG1sJ1/maGx8dhVNABCpZmSbDNQ+dqoy8FEml5RXw1DQTtQgNLdM2ltT3+bjVbdWKf3v+7JKCWbqhl1SiakvInJ4YugnHUHd2qBMXzBm6hrERX3SH1WqFtnEP9OVcxgwQCKg0ioESbsF1vSyCQ2xTz92PqZkhHBOVY+byORgD17PDQFKxdbVjsPMDTmjfjG7afiewfkfW6EcTEl6pEBU+8M1zxqpEF8pGXoajr92K4u37guTE+M+/8EYwn40Lkwq52f42FhYWFDkRFfq9j0OvimvCZt6sn2eKgRLokznFSAomZZCtYT3c9x5CWaXPPvV4POg9+Tq07ouRhbOQyzt3FDc6rwRnYe3a9Zjb9xgsJVSsU/DWJduVAM8sEmK2uGAI7pW8T/AWrZi6Bdb6FngefBJr77gLFotFLd1rl96D9dcMXJjO3IRb0oUFNzyTo0DzVuTm5UFkYcGqJowZVtiGrsOYm8neAH3MqvzHO1f8q+XL66v2wFSRU0v6lM4NzeaAtmYTvA+RebvvCZpu/X29cL38HLSOs9x9faZXOvQT1bFOjWAMNjjqmpCTk6Ps7vzVLRjVc2Adpck3M0km+uRkIjpJPtMWPOZRy9c31hwkyQeTrJSwmObMpbN7N8wHv4imLTuV2iKCfYx279Cr/wXn6VeyovvF64TpWYRztA+D9iIUrKhX7lM1E+vXYNBRAsf0CMxJ7tZZeoG6pr9jOdxa/QQ7tDNep5K9r+fmw9j1EIo/81XlMJdl6/V6MTw4gIHXfoWcN/8Dpitz8OBW/THnZ+HovayY6KyoUfCZMLGkrgEztWsBUeBHRAfNxiowr1kOb6z5BjvVeKuOJXoutqdn14NY+fjXUVxappatKLY9nR2YeuUFOI//alln3pK+EeWxX3sPw6YdRnEFoxcKlRwuZgSDa+V6ePuvwSATM1/O2pTlqdYaCYBMH8blbqu17kHeo1+mruczoYR53dwwvH/4GWzn3/jrMi/ATZqJzn6+wJlZLNKZn19YqF5sflExhnLKYOu7DJOARiaJ0NysThlVkAkRCx053l0HUV3rcymKLtZ1oQ148fvQ298iYJC5vZtu/7zc7Z2njmDmxWfRf71baQKCR65u3YrFHfdDcyzBR1NqSnjH6cNo+EwSbdz67TSdqLyKldH53nnoL34P4BICzawPO8kLtJx/EzO/fAY3b/hAB4fDgYId98JSlaEblLwjTJLZDFxYtxPSIUkzMzNwv/MacPPah823yPa5YdiunMHA6eMQZV5SVd0qGCvWRJZLNadmYKqVosrnrF4fvDM5Nor8zjP/J2ZesFP+C2N+Bs7u9qAfWbSExcbN0cVSzssSnk65VliFwvLQ/rMwPwdzsCfsaeQlv+eAWCnym+0kpqP6l4CwnZFg87OzwRJNBx4NXqd1Qd4xXNQUBvqQzjSoBDC+QFVNGBRL9tmdUKEXVLY16oOmmHMEQzPZZERJt1D/NHP4YROd9rDYID4S72AvtFghIxaa/mF28cTIUKDb6f2Sd1buStPSkXTTWH8vikpKVHVHbh7mqhugUZGNSGSqsfluGHs+CRt9I4sU7O6xYcJQF2A/+yeYs3QKxWJ6BJHIjJiMemkV5rbeD9Svo7+lBDpdp7Mjg8h7/XkYnRciKsgIXaV1qKCdHEgTZ08ELtP6Fd5ZyTu6x7AxLQqs5O5sh3nbRqVjCeoyxAEVTQxBVIjAQtWpLph3HMS6bbtUOWlLduy5O/bhOk0/69HnYel+P2kfiZ5fBNeGvXDe+xiaG9eoTUzUE0li/VwZ6ITt+iWIaSdJlralsg7Gxr0oLCpS9xh9BcuV0/CqXJp/TAxQka7exeppm3L2hTnMN21GARVUcSva2dExWz5s7lm1VOEhRkcVx7OyBWAE6SL1RI15VZahvhV19ZhbdTvcM9OwDDPa6hYzUaNzynXP36D2k1/EivoGhbrI8Ofn5zEzPYVxLkvP+eNAX4eCtvT8EpjNm+EitNXysf2qXXl518+fhnbsJZhz6W8B/HjnZcvXN9U2cgk/lOY74BScxUJOMexEQESdESgpb2UTRotqsMB1Y1+c5+imGQw5iCmCqZM3ejA5MY5FzQInl7zshoXFJZgrq4NrdAjWmTFaLmRyWIdExAiyrdEsk6D0lQc/H7R6hHE3uq5i+P02TF1sw2L7Sdjee5tT3AONasrs5vtg3fsprNmxW/VPaA3298H75kswrnKZx5KVYW0nuqT8/7nla61VRdwWv5CoYKJn5uICrJPDGHUUwV5WRQTEoTpaVlsHy+rbMEFG6nzLGpeUpecSbNcucOmcwcJwP8bsBSiqqFJMLCrhzKpuwhTXlI2yXhcZxw0H9G2IT8WoW4s5Wjw1930K5bRpJc1yR7126s+wHP05bO++DGvHGejXL0IzvXBvuAvmgc9j1d4HUOufqaIDjg4PYezNI7Cc+p+MwQ1TM3+gCaA6O+Md4mQJf+mJeBbzGT/ow8KBJ1CwYQcqyDwJswikrkvvw/vs04BASeGpaRP0zz2NOqLHAWVcZNjNnuuY7LxIEJSMp2zT6aasbNmIcj+yLSRmGFvT23YCtv/8Dm3a0XCqMJq3oeLwP6O0LOTeFFfCcG833OeOwfba8zDpkM8kkVlmXr6l0vK9MzfniMh8msRCCl06lKmo2m9chndmAqOU3YLQ5PBbEGGAh8vGdeZ1INp457IGmTThKISzuEzhd6IWFXJXr2xciyoyrbJlAyr4CUNuWGSr4Iv9p9+C840XYjqn3A0bULZzv3opMusGCOYOnXkL1rd/A8vp15LerBKzQWtv+Pe271ulkHyszDG2Jq5w66feCQYMnXoF9qvnMbx5PyY3fQzWnDxMdX2AHPpuYyJwF47Dyh27e/wRFLe0oqCEjKQsFdkY2FlF6MvMdNMHPMmYmtlzb8P5zh/giaO0CwrT196GvMoauCUC4vRROC+egHeCMzUDmRfOAfWBt/BObvq/sjwSXiDja+pkGj9pMEopA6kXmpyZPmc3hQXfVnTSqGh7b9+NRfo0NAZJioIs4cDCPEP8HdMT0Ib74Lx0ksL/fGxAlOpKACiVts2qeuj9XTAmGDuTFQA11Gt+9fmIfPWpGChOYteQa4A71LL4hqVZnTPR4FdKalZx5sRDp4WRGhVkbwHVD5vIUcpA7vQ6maAYEUfN0RhUJN+JaBJvw5C3TGVciFVLrziGKWels1q+PQ5uHB2HtvCLS/PvlhbP/I6yUbcfgIfKtDL1/vwS7OfeyJywn4LgejM7DsK5634sTI4hT2RjlCWStcZIiAz8WfMvzj4pNJUMVMR5xgDV8mVhoEWcTdTFmrfsUDOwnX4L7f0T2Zsl/Lwhb+/DaN7QqmRlx3APrGGWiBpfNv8Ir/yJQsOX5IAGXnUF8tn8FSU4l/qe7LCyhC2cMdwlQk2IvJR7fnMs9CDGlb9sOKJjWh2QAHNJsvmY8jUUyy1T6vLzSpEPMpADY5+07yxHoxIbXVQa0skMQWOogEvSZOCNG+HedDewklFVBB7iJZGPxuoNWGjdB72OZf1M0uensBDm8XMQaRawYVmSHGIRdhJIkIHSmJxuwb/0+WUxcWf0rN+lTDyhKuqIIYh1YDOghWF+6muoevxpuA9+RSEs8Vo36tdD48faFVL2oS9RwWbYhiQq6C6iO4FU1dAEs7o+kM3iLw+vUDwKkYxgoBwNIqdbhB5neMUlqRFcsO18QC1doTZL2N95+d0gYe+aLVi7aasyz2rWcXbVEXSIk+YaNqG+5TZU0CJpvnNfMJDSEJnKCK1AjGBefj7cux6G7MzZTMKb6ONTIhgojcnRIPzpluuMkjBv1TrMPvgl1HHQgdT37nFCV+2BLExnXvBa5/KVZRo3CU2/nFQfbYve5085Z/6I/u7OQBYr99yHWSIwYmJmKXX7eRNBLtQD/22l2/BokIhSyWQ4GIWYCOLMpeWlTHMf+AJW77wriIL0XL0C26nfB+WfIksUOZAMsRIShP2KziVoSjAJ2OBPJjHIuT//VoWRyK0C+oGr7n4Y8/sf54lc2/kJGGOnKW+lj0ltVgHC/l85LiXWmTMxtyrRsKkXHmFnH4miEzOr8RwET2U9resieLlsPHRkF92+g8ttfTA+ZoAuxbnjR2AlCh3GAiDsI+kFlxuW6bGYbchNCxVqWaYB4MFT2QALTvrKk7G2tqPoF2V670MoKS1Vvuqij38WPSsaMXvlPKzjN6HTZrdMj8I62A1jNjkskLP+SLyzZmIyUHXWxFP8Xu4u9iuhIBELw7X1XqLSxNsYQpHPT+9LK6vVoRKB5TY8cBOjb/wauYTvvWGR+TJTS9aElvcCZZk+NhDbZman7Awcmp+dYRv5Pqat3+kDRQPIM8GKnBO/RR+xRts9n1AHUkiU1lpigRNr1mOS0fzi+HKN02Z/9xVoF46FNjMfxSV/KTEm5IyZJQ/8N+LqDD9sH5h8emNtBz8ueSxeZbmvM4BRe+Bv0bLjTpRX19A/UqpQFVlqAjn1XbmI6WNH4PjLyz5TzE9MGD+36xNooKwKOKaUfDz9x7h2q4UQ1Py6O1BWRT2PyU4/yOT1DujBYCH2liFsdgawj8wvEugtUPa0oN+CDBUT3pK6pStWYWx8HNbOc5HixN+38B8L9ENNz7edCr8Xfh2XgVLomfablw631ojHbld4pfBrAT09q1thKymH2+3GrB9WH+i6gtEzx2Ah0Gk796YPTPBXFPXDs2kfCu97jIMS8tREJibgOvITaHEQFikj34S4c4tQcvs2pTALajNi54c1XPby3Z3SLfniBLiw3exUjqvh8UlMuxe59D1wE+n2erzqxc5/0Aa9k6BEQJ2SBqKTpj3b/MLZ70ffDs/HXcKBQs3Na77Fc1W2cUbtDtwL/zUIRdlO/Q43CFeJzxeMjLLwnk7kJGegCyYhLkMsEIma547rJdLiWrsdBdvuUUix0JJ4mhuMGnBQFYkJeQUaJKLiPPc6erbuQ9PGLWpHljiXbt5387wEO9Fonei4fEImIKvO2Zx7rR2e6tUYK6dTSfrgyFVy0PnecXgTbViadmINxw4wIDRBCoIJCcpADmCQc1XIxJDACqugolLpl1Uyz8tzEIjbGS46sDkbZINxUT566VAS/621ehUqm1oUuixLVzaFa+1nYf39j+G90qbqhJFeeimqzh0PwXb/IazkwT1CQ16A+DnGrjJSnzJUY9sS1msnBqi+hqKGoOfRd0wVyZRdn6JAXny82cdxXCSivnflT0+OLe1A5J2kGChV1FEgcmZMKseesOPuPY+i5CChfnrtdNqpAvVLwKMk8WlcP/cOrG/9Bvqlv3AJJgezyzcg7k33wH7Xo1hFHTNwkI+IEGGmQWtn+EYPD3Z6Ftrl06qtZP9Q06RX3r67+Rd/6Uumzi2XcICIEOShNAdSOjuGswO0WWvqVgY3CqEnAx260YvpDgadn/wtrYj3YkczBBqP+jVmp+Dgju6hWtM18QBKGtdxc6hW6k1AxZGZ2cfPy5IeINsQ5ll0y4HG55NjnnQr4SYS1W/88EL/6FOt9b/UNOPjfOY3RKNLhecZesFvhG0tWznziLYwDd3sR++JP8E4/SdigvSTEHYi7BxeKalrk/5mnceeWMcHMMNohLGZeeTwY0bxCkoa7usBjv+aMjhkIyciLMuWM++eNb94l4Z68inpJRxO0i8T5SyZmBtLeFlQ7owUr8AclUqevItCzYPCqWFoiwy8TLQDRhBJnBHrwkv5OpZbhnmvT00v1RaRN9JLmXrrl0PmnaBoeTgZmRfdk7QYKETkQB51rkoaJ7hFd+JDzYuqwt1W+/YvF9LpR9oMDDT20QGMAU6k+SsnQFpMbTOXQXa9emn2J5lq0ldqBJsyPb1S2sp4BoZ3+P/jIbRL4KxwhqR6LYhFTlXObdwsvpl1ZDvVzkSUJ5LMPknf4qEqEcVTyGR1Boa3+9FB3OHcyOCaqs5HR8FnwL+IqioC4qP/jCCCJxllgv8dhqmto43dwsnaQgCzirOWln/s/w6D+MQgvYqXqZZfNjTzgw/7v8P4XxjOJAnHgAeeAAAAAElFTkSuQmCC\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAUKADAAQAAAABAAAAUAAAAAAx4ExPAAAMxElEQVR4Ae1de3AV1Rn/zu7NvTc37xeQGAkGJBRQHgIWBIu2+IBCO4JDtbQKtDM1FizymE47HfmDaWdUykgk7QzUjh2KI0Wmgh1LQWaqNgVUqiDYCKWhkAfknZCb+9zt922ym/vY3bu7d0Me5MzcOWe/833fOee35/mds+cyGEBXt7EoX/T5ZoDIyjgQykRgZQDiGBAhQ2SQQb6UPQadTIROQB+ANTAQqwXgqoGJ1czt/lfR9rqmgSoGu5kJixuKU6/5fd8QROFBkYkPIih3iYhIMnlAYRHBPstEdpxj3PHRLvcxtuNqdzI6zcgmlXkjCYlYvIbygvsFJnwfE1uBz5lG5KzyMMY68KUc4ETuD2MqG9/HZ3zsP9dvAIrrJrjqQ82rMeubsQSl/VcEbc1YuEsY+1KhI+/3rOKiX5vTeoztAFIzrfd7f4SgbcLGVWQ9azZKMlaHBX250OX5rd3N21YAG8rzlwpieCeCN87G4tumCgtbwzF+/ZjKpsN2KbUFwLpnC0tEwbcTM7XMroz1s55DzAnril5p/V+y6SQNYF153mMiCL/DKUd2spm5qfIM2hhwa4sqmw8mk65lAMWtU5wNjXUvCwKsSyYDAy3LcVAxpqBoE9t6LmAlL5YAbN9QnHvD7z2Mg8Q8K4kOOhnGqtJdnqVZO662mM2baQCb1+UW+0NwRARxstnEBjM/A3be5YCH8yparprJpykAG5/LLwsEhaNY8243k8iQ4WXsijOFW1TwSlO10TwbBpBqni8MVcMWPBkxBNHNwzyjNZGT5fR86vOo2Q578AgEbF1UViqzHiZyXEIAabSlAWO49XkyAGo+lVUqM5ZdLT6SlhBAmqrgWxkeo21kyROFscxS2RPw6faB0iRZFN5KoGNYRzPGLdebbGsCKC3PRN+nQ26FYffrpBVLCkzTWvZpNmFpbTvUlmd2g0f6EAMxABVaqlUBJKsKCgwVw4BW2eykL+vFJE5nXBOW7Hm+rvOD1iTl9ACXWYAbATwInY0g+nCb5CY4BKqm0J02Odae6IhNu97nfWYwgcfnFIN72mJwTX0InKVzgHOnR2VZDPogcPlT8H/+N/B99hcIXbsQFW/XA2FChmLUtyNSZ1QNJDN8XbjlEk5bBtySzKXnQfriLZC24GmsbCmRedYM434LdH90ADoPbYNwyxVNPssRaNku4nNLI7cHovpAaQ9jEIDnnLgARm39GNIX/tAweAQKbiCBZ87jMOqFU+C+5zHLOGkKIja9+zwKiwIg7Z4hdbMSM0CB1FkrIG/dAeA8WZZzwFJckLNmN6R9vdyyDh3Bzb1YSSwKgLT1iO28VEew36NSSmZC9lO7TNU6rUxRbcxavg1cdz2ixWKJThgRVrKwAiDt28rEgfCZOwNy1u5JCF6w9jx0n/4zeLGvC9Scxu4ai6Tjcr73KnBZhToc5qMisZIGkd6tyAbMTKZ5dfZIZCz5KWQs2aKpjMBq2/cTCF39PIqHzy+BrJUvgnvKoih65IO36o/Qtte+nQfavMct0jE0pZFqIB23sAs8V/FUGP3Er6QfhQ25FDd4vrZWk9X/5YfQtP3ROPBIINx0GVp2rQTvyf2a8qmzV+DccZRmvNkIwoowIzkJQDqrYlaJFn/2gu8Cn5Yj/ShsxHmwgDxOW9Sc4G2H1t1PI1JBtWiFRjUsdJ0OIsQ7GlTSFqyOj0iCImMmAUgHfZLQFSVK4MkuMizT1HzXZO3kbxzdCUKXgb0eBLjj8C/V1Es01xSpwmjGm42QMePoiBmdkjKrwE5+5/i5qupogPCe0m6asUK0EhE0lnYpt08DhstAuxxhRthxdD4Px7GoFYldiRjRQ4MAnzValTXUUA1Ca61qnCox5IfAhSrVKMY7IGXcPapxVoiEGWGH5xrZJCsK7JLhdaYYodpzppMJ6sjwOTavUKWDoXgy1HQubRTgIvrMWLVhM7WvV1hPhksztE8Umw3tZ1GYhIMIHasdOMd0ABS6zZuq9Mxbei/LGgJ4NBkPcKp3QNY0mpZiaNfTckatMFHyXJyFri9aJ60+JuMhwo5TDnIbl7OVU/C2auqz0mfpyeilpZkJvQg8BO/oPQ2vx9avcUKXNoBctvlOn4+REb1tEGr4EsJt9RDE5aCdjrBzDHgNRLO8ltOrTdoyt0lR/nNHoev918B//j0QwyEt9uToVAOT05C8NJnghe4O4FLj7RiOglLgMgqkvQ9DKaHl2lFwB7TuWY0Wm7cNiSTLxOEU2vxQl2yqkfK42gj850QkRQkzhxM8aNI36txTH8Z181M3DTzCjsMlycACiOj4qz/QxChtwRo0eRhrKMGajyBYH38yLaXoK+AsmS4ZOJhBXZoZiogg7BxSDdS3SUaI9AWZwwWZ9y6HlLxi8FZX4e/DvkiVUOrEeZBWdh8EcXLccfItEIN+hav7xBuQufRnuFZNVWhygJZ56Q89Bzf+ul0mqfpkkA23X4uKc46dAdnznwCHJ7p78OILa6/aj32jvoUnSpnaA9ZA/vlZHtp9KVWL16NlTH8U0u9eJL1Vd8ndIOJh6UDDBciY+c0osc7T70D69Ecge+5KNFnlghPXvrTdH6jrqylisBv43GJwjp0eJSs/0CYTjabBmk9kUpTPsP+MnUCn4jZo3v2rgHO6o3jpIQXz4B47DV+6ds2PE1IhoGH1DL9xtvtejJujEq9LSh0/uxeMHjZXUZkEIvmRThRCkDnr25EkCHc0gu/yZ1G0UN0X4Jm3Cqjfi3W0v+FGc5Rr0kJcOOHiCQ2wfOZocE28DzIWb4Jw4yWcptRFiXGudEi9YybyM2g/sR/a/v46dF88Ce6SacCRPNbKYFMNhNqvR8mZeeAYvMtqy/N+jCWvMCNIvA5cmOcv2yJlxoysgE236fCLEGqJt7Kkzn0SaA/DrKPa1/zq4xC4dCpK1FmMVjoxBIHaLxS6s/BOyF+yUXq+cfYYdicHlDjTAcatw1FY7GtLJjSEWuug+V00duLJAKOOwGs5UqEKHuno/uc+8FbtNapO4aP+j7ZCXRO+qtAoELh6Ngo8ooW72smTnNrUSY4z5CN2HH1vi8ZAC8MIQBBN6EZBlMELNFzUzVvb3vVw49guXR61SIZNNvfZP4HrTv2zoJFdjD9mg0pNrxaNMCPsOPpYGZckZ7UYE9GNgGgUPDmtjoO/gNbXn8FRtUEmGfKZKw2y1+wBPqdnNRInhFOYjNnfUsj+y2eUsNkAYUbYYY9MplV23KyCSH49EM2CJ+vtPvkmXH9hlrTPoTa3k/lkP9R8BW4crYDGbfNByyaYjaMyjzWVXPvHb5vqfuR0ZF/GTDLl09m3sBg+JEda9VNGlUL+0s3SGRXSgYe1ofmd7Ti90W+2RtLjcVnnxD6ORl8Of4zjcTS/BkLHddxg/wQSWa/TpyyEzLnfkZIKYv/deHAbZlAwkrQqD8/4ZfTVpwSgnRvr7nEzIGv+k5goTh/+8Qb4/qs+d1PNVT8RUyfMgZyFuKJBJ4ZCcG3fZhAC3ZZTi9xYlwAkTbXlufjFpdiTimXVg08wdfwsyHngB1LGaKS8/ubPIdzZnFxGGXvttsoW6SSAQ9ZEdwwIEB5WAHomzcel3Cq5iNB15giuTDzAj8a9a/xMk1yotV5zK1QRjAkQVjJJqYG4B8vqy3Mv4lsqlSOHsu8qLIO8JRsSFqHlvd2muhkE7FJhZcsEbMbS1K/nNWAyvYSXEqY4RBi4tGgDgo3ZfkkGj3QqNZAeBtMRX8pPUg6NqzzOCxO5sL8r4bkbRYfKEd8oAImxrjx3AzbnXytCIwEFAax5zxdVtuxQCBhQmrBMlK4GwSP98vOI34MA1rQawiYWjzgApUODeDVILOOt/kzXpcR+I0KYxAFIxN57VZJemZCuYeIOad01owogFZpx7vU4xLQNEwCsF4M+NsQ7ZrQUaAJYtKv+Mt2roiV4q9Clu2V0LujRBJAAou9k6V6VWwWs2HJS2fW+FSZ+XQCJgS6lwVm2+qlFYhiuDssslT1B+eLmgWr8dAFDl8/7wa1ybwLdIZPm9iwwchGPIQAJ1JFrT9SqloEmLIvRPSp0KQ025ysybdj5vRfvGL0zhspvuAbKYI1c/SQj0eMnHESi2QHo7VD/MKwGFhwwqExmap6Mi2kASZA616JRhQ8MhymONFXBshgZMGTQIn3TTThSmMK3+gWMlmpgJIg00WTMTaeChtLa+ZB0F0ySt1cSDknXwEgwRy6hjUTDYrjn2hS8+YPBxsFweYVUDLoGWYTthW7Pb9RMUhaL2qM6GWE92ZGLuPXQMRFHu30jV8GbAEyPlZr3yJ8R6CFkMk75Owzpi1H66JGVSZ+e6fwdBlZoPAhNZxrx7zA48d8D/XcY/wfUzcBZ0SLsTAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFAAAABQCAYAAACOEfKtAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAUKADAAQAAAABAAAAUAAAAAAx4ExPAAAQTklEQVR4Ae1deXBV1Rk/576XF1YFBEE0gCERCrhksR2lMi2CgBJCEFFJAglOKdrRatV2pn+0tH+1xdFW22mHAaQswbEIBbeigC2j4EIStKLEFzCssqMkQLZ3T3/ffQvv3XfvOee+96KdkftH3j3nW875fvcs31nD2Tf4HJlf1L/lfKjAYMYIYYoRyMoIxtkgIURvxnlvRr/0cN6M92Zu/bKjiGngBm8wmdnQq4evfvDi2pMW3zfwh3+daR587JburSfbJjDTHC8EH8+ZuF4AnnTyAGEhGP8v52IrM4yt3fpnb855ZseFdHR6kU0r8zoJoTTxxjmF45jJ5oB/JsKX6cilyoNSehaya5nBVuStqNuGML5R1z1dBmDw4SnZ4vTRapSPJ5H93K4zQap5H6r/It5v0PP5z73eJuVMkZhxAK1qeqxtgWDiCdSuwSnmK8Ni/Ahn/KluA7P/lunqnVEAg5WFJSJkPgvrh2UYgUypa+I+45H8lXUvZ0phRgDcN7tgaIizZ9G+TctUxrpSD9rFjYbPeHj4itoD6aaTNoB7ZxfOMLm5FF1hn3Qz83XKc86+NITxwPCaunXppJsygGLhPYFgsPEpdBIPp5cBfgLy2+DM7Ea72eAz+GeGL/tklmk2X507tJl0H963v3eHYfQ2Q239Q6a4Du3ZCCbYaJDGQWYA8aT8cP5cfn7eE3zhP9pT0ZESgAcfuKVfa2vry6iyt6aWKK+Fm1GDEvBm7qqdH6fqapCLtK+ieAxqwES4SbMBZlFK+eF8e7du3Upylu447VXeM4DB8u9dw1j7JmR+lKfEOGtGyVkMmWX5q+s/8SSryRwsL6A8zQOQ81FCw6MYTVl8ROQpMCl/9XuHNEUsNk8A4muPCJmhN5HBHN1EqK2BMX8MsF7PDq15+4yuXDp8+2d/v287a3kEzcKjXtpmfOCDPsM3EbWiQTd9bQCtkifat+uCB8U0AljOsvkv8p+vp3ZO+WxYtXysKcTbSkZNBn/7uQ9GblnyMdirdIeMBCLjgVt1S6Khkxdq86xq66HkYQTwdH7Nrnm64FE+YOTPdfKjyxPK7v0HygPn/ttQRbVclnABad8UtlmdkhJA6m0jHYa3Nk+In31WUVitzkKY45UXVnwHbyW6/Co+ANZUGui+nvjyVu98hxvdb0Zz8o5KjujUvls2w3YVvxJAclVS6W2pynBhLtlbUXC/KhNE7+wwn6ReVYdXiweOPZ81KxTlzVu5/Xhefv54ALssGif7JZstN03GBJo0w+Qkh5j5kkKHgsw7fYzfK3NYN6xZMxg+3uf49MovrkjMIgOkswHmz7mzooJmZpKe4OzCx1DOFqG6+pKItggfM+6W5d21BNLwjEYYNn0pBIUfH2FNY3nBFDdhEWp/NFPgURqCiyVu4BE9v6buGfihM9BhxEooxTs9hMHeOUVDnGgU5wpgeGybseFZAFV6XePsoh/aM/LaqlWYHxQ/tsenHOY8FGABmtCQPvmr6jeiAtJUm/QhN8gMmc+5MTkCaM2qZHhiAG1KN5OHXm6suClh9NLGOheABhAz82CWe91d5eX7dbRRSdRpE5G/aYSJk84kAGk+LzIl5cQfi0OPth2B12IROi+C9UQ/8freyoJiYt/94osBGPxTHVFdHhj0tC4v8eXl5z2o0zsTJoSNXXcSgK0nWh8E0zA7Y3wYX+0AN3qUZQX63I1qsDmepnqn0hYKiU375hTe0Nh+oQJVZLBKRpvO+Y5pFdXvavODkSYRYMsMskkhN6wVE8V2ngQArWl4kz1uZ4oPo9uGr+GbTW7Btcv/3dqrl1EKutfRQ79QyHwz0Hz8l/G60303uHgmFR1kC9lEtsnk0Ws/QRjF8yQAaK1hqKfhl5NjGlWCJcXzfbv1vBPh96NxOr8oeVcOeX/D8MD5r3TYlTwoQU3TsnquUzK6MERsWu5CjkSLwWGMLnLFAETVQnNkLQBdpNrerIkBjG1t0WzAsneas1mvyXCdP7TTZOGsthY27P11LKu1WcamR7M5znpCNi7YZtloi04IAiMLq0hkDEBr6VG1eoZZFbexLc208ACbCBA/TUhQEci6cNYC0d92TsHpTkbpOxsQ/rR9Vss22OiekkXJjWBlBWIARtZt3WUxn0dTUu4McFAx6xLgxu0wqFHGZ6cFzn0JENczf0eK6+GCLZU5zvb0ZGHLRtgq44nHygIw0j3PlAnRZKjOfN6wVbVfYMGGQNTyxaJpZrecYkNQnX0dHpdv4ThnGVl/iupJ99eqSeGJX5mqmVGXxgKQtluQeyGTAE1rEE46rNUuv3E7nIQjCp0J5O5nT7KhH6xnvs72hHhZwIvjLNNjo0ltJaysLSoQCldh7FWxKUgIovTVep2Gz/977d6sAJVEdjxBmSLQ/atjLGfnRmaEOhScYTIM8OQ46yglW8lmKW8EMz8xoQMGgBIXCAtAUmUuxGuX1+6Bwzyxs9N8Cyz9XNiSonueOcxyal9hB4qnMWHIJ0xCgu1Yv/L5JB1OEZwbi6ZXzNWbtCWbTVbkpIfiwpihBNIWM1SD690YKZ5Wz2R0GS13Rd1HPh+fRD2ljM9O63XqABtS/yrjpnLCxC7qGEZNqCktn5PkgjkyI1JlM2FG2Bm0Pw9lD06484OifIKWHp2perHDV9bvPDp6wkrTbxV4PSFw9Tr+Obvmw014k9QODW34eJuvGXl9FX61FVnLrbDdTT1hZu1tNAQf6cYUiU97ixhNGpzKGT39QCGqpE9eJe15uexoECC+QXXGTtIKA7RdvHffGcXFxXqNakRrBOxtskRoY6iB8R3tDHV/sGPAnahHCXaeL0c6V5+7IocdLLgLg2k0/R6ey4/sYYN3b/EgEWYFCE1ZATGltLRU7te5aVbYLoQ50kBjKAUQhmuvkTrlwxr2mLTVLfw0D7iWHSq40zOIfQ/uZoM+/U9UjcYvP5Xl55PumlVNW4JTelS2E3YGGteBMu20V0VGV9E2rFk5FbUvYUXv7MDh7PANE9GKuDa9jmqvaNrFBjbE5jEceSgSWs/7uJh6131z08q7ynbCDiUwspHbJTu00ceFpBWNiUhHt+GrwSPZ4THwtT0+/fftZAOCkik/jEwMbtzrdV7QKRsq2wk7P0oB7YZ3krfiaJeUK1GDUFZZdZuMLVhe+BO0JX+W8dhpVza+h84oi53MTXbTuOALplXOfcUuk0qYbJf2PMDOAHi9ZcqjW8xkPOnQ8lfX/cUwDMdSKtM7sOFt1m//Rwks6DR+Pb1y7pKEyDQCStuBnbfuMI3MyETzVtUtYgb/lYzHiXbVJ2+xPoeiTgJfPL2i6rdOfF0ZZ6AKS6sobW7sygxEdX829bG1J3OLo0Ht36s/3sL6H9hVOz27x0PaQpqMStuBHVVhKYC0M1QzvbTYsNA069iIsezU0Bu96UH7PXD3thv3bvjdNG+Cam6l7cAOboy8BNK2WnVS6XOgR7uHtBwd9QN25poxHhUKvynMF2S7HzwqtNhVthN2cGPYMZly2pMso2eCRjuzACDtebaeI2PGM3JzPD7h3Q+VheM9yrmyK20X7ChKoHykgckE6UjFNXUPBEx3WaUvJgIP9dCNd7Czg/JiUTov+AjdTNPc2FhePFaHX8WjYXsDADT2SBWFd8NLWTJAnJWsg0CczJoHDEsmyWJo9wMLvRbd/SBjVdIUttOJUYOOjCoUjcOX9TbmUiiMJ9urbzyNJlMPFk5lLVe4bo6KZ4+9I7+x3Q+xSI8vEZvHycQIO4PO2wId16EIBtQD6CiBTFE6tKTqa1NmgVg0lZ3re7WNogxaux8+ryry3JiSZrKZbHdLhTAj7Aw6rEznbd0YKd46hyFjSI/mUH0TFZoYth0tmkpLqp53P3S0m1uCc4uGJ2pUh1Q2E2aEnTUSQUeyVaoSh1ik9BSJsuqboJLzNZOrFzwa3v3AdiXQlAGcGO00tzRW35yjZI1nUNgcxSw8lMNJ73hZ+zuKclHkEIudlFZYVX0jyrdeF+hhTceHdz/wO+B/feIlYbRnQ0V759amiqKrdOTIVrJZyhvBzAKQjskjU6pFn3lShakRVdX3w2yeVTZ61qz2qHra/ZDFjQnIr6fdDwAxr0OYm4PVBa7tWjQN/EptJawIM+K3AIwcQl4bpyDpFV9kPp0ASiKkGKGsvpzt7878U5y2bKS6+wEgjhLt4g2ZHUQjWxVmrY0e3LYAtJhxx4BUCGfPrONTUiZ9orz68lOG8E+aXFn5hZvGVHc/wN+4qY21/OvEvLGOY3zLRtU5uzisYgDSBQ3I7D63DFvxOHumWQWkaiJE5+rL+QW/j5eUVlaq/FOW6u4HpP/dM23nX8W6bo/4jFq2wcb4OIf3fRGsLFIMQNRr9Mx8kYNALArj5j6sTfw+FpHii2v1pel4we4rmT13h65q2v3g8xlYYGGndWUsPiFua2kxNyTsOIVtlo0yRXSJBWEVeWIAUphut8Bf1YagqnTHmq7Vl7OHSiurNkYzp/ub6u4H+MIT2Okv1or5RVkRm6rkaeLyCguji1wJANLVIBhAP3WRnPwG6AF/qKax8tYrk6naMU7V9zdl5VWLtTXYGGn3A/Y534kluXM2kjSIEje1scV8SfBQDdkmYyZs7NenJABIwnQ1CH6a6N3tQW82RJjn19FBRDcet3in6otB+ZKyyuqFbjK68bTPGesr01DFWnVliA+9bgmunhqikGmKYJPAlgQgdc90NUgCl0MAX25sY7Dxrw4kaVRS9eX8ldKsHgukQh6IeSvrtqIYzYBIzHf0IO7KSphEXZd4piQAiUj3quArKtsilMR54YN78Srl7wA+NveHNN71X37FvfGnKuXSetS81fWvY234PtTITj0JORdh4XbXjCOApM4n2COY1/xSrpqoYlGwokBrPYKqL/itmR3oxs1rfGpJScl5dRreOfJW1633GWwO0jG9S1+UIAzojpmLMYlvrgDm1tTvp3tVEtmTQ2g/fMjiOp2SGK2+aIyPQmryhBlzTyVrzFzM8FX1a1AKfySbrlOlRhjILuhxBZAUW+dkca+KKhECUTDzaQzCl8o6Fqq+MKZZGGJK2f3VTSq9maBju+4yxt1LkDQN2C47K0yyUgCJwbqUBveq0LvqoTaxMRjc6uTiWNWXs+sE52Vl5dUep6RUKcvptPsBuxIXyrkSqWj3tpPtibHJISWAdBiPLqWBwk+SxZNjqHcW5oUP7M52R0doJmdGdVlFlfeNfsnJeIqhvJicz9MVIlstmzVuM5I6jvEJpnvtyT9Xr5g0vXzOpnidXf1ujW3DQ88qlZMczQvaZ0/XnmgDSAlcungnCvPFX08Aktilq58ugkdvngEkoUuXjxEK4SclAEn00vV3aQIYFmfs234Bo9KNiQLl9kuOpk/wm2i86Mbz/xZPeTV8vhtVTrJOvlOuwk7Kv42X0KZdAuOBpBmL7gO7j8L83uPon1Qz2/GiXfyOmWTkifLmNquSagYyWgLjM3HpIu54NNJ4x/j40lXwaeCXIErH5C/9M4IESNILxP4dBk6MYkpsBJ09wwTmQJRa13+HgcmKY1hVbMCYtcHkYs83/e8w/gc6t89Rr8gBDAAAAABJRU5ErkJggg==\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","export default \"data:image/png;base64,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\"","import { IconButton, makeStyles, useTheme } from '@material-ui/core';\nimport FirstPageIcon from '@material-ui/icons/FirstPage';\nimport KeyboardArrowLeft from '@material-ui/icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '@material-ui/icons/KeyboardArrowRight';\nimport LastPageIcon from '@material-ui/icons/LastPage';\nimport PropTypes from 'prop-types';\nimport React from 'react';\n\nconst useStyles1 = makeStyles((theme) => ({\n root: {\n flexShrink: 0,\n marginLeft: theme.spacing(2.5),\n },\n}));\n\nconst TablePaginationActions: React.FC = (props: any) => {\n const classes = useStyles1();\n const theme = useTheme();\n const { count, page, rowsPerPage, onChangePage } = props;\n\n const handleFirstPageButtonClick = (event: any) => {\n onChangePage(event, 0);\n };\n\n const handleBackButtonClick = (event: any) => {\n onChangePage(event, page - 1);\n };\n\n const handleNextButtonClick = (event: any) => {\n // eslint-disable-next-line @typescript-eslint/restrict-plus-operands\n onChangePage(event, page + 1);\n };\n\n const handleLastPageButtonClick = (event: any) => {\n onChangePage(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n\n return (\n
\n \n {theme.direction === 'rtl' ? : }\n \n \n {theme.direction === 'rtl' ? (\n \n ) : (\n \n )}\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"next page\">\n {theme.direction === 'rtl' ? (\n \n ) : (\n \n )}\n \n = Math.ceil(count / rowsPerPage) - 1}\n aria-label=\"last page\">\n {theme.direction === 'rtl' ? : }\n \n
\n );\n};\n\nTablePaginationActions.propTypes = {\n count: PropTypes.number.isRequired,\n onChangePage: PropTypes.func.isRequired,\n page: PropTypes.number.isRequired,\n rowsPerPage: PropTypes.number.isRequired,\n};\n\nexport default TablePaginationActions;\n","import {\n Button,\n Container,\n createStyles,\n Dialog,\n DialogContent,\n DialogTitle,\n Grid,\n IconButton,\n makeStyles,\n Table,\n TableBody,\n TableContainer,\n TableFooter,\n TablePagination,\n Theme,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport CloseIcon from '@material-ui/icons/Close';\nimport clsx from 'clsx';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\n\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport {\n AlarmTypeEnum,\n AlarmTypesList,\n} from '../../../constants/AlarmTypesEnum';\nimport {\n useDownloadDeviceAlarms,\n useFetchAlarms,\n useGetUserName,\n} from '../../../hooks/alarms/alarmsServices';\nimport { ComponentStyles } from '../../../style/variable';\nimport { getPast12MontsFilter } from '../../../utils/DateUtils';\nimport { FilterDropDownsV1 } from '../../Forms';\nimport Loader from '../../Loader/Loader';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../Table/CustomTableComponents';\nimport TablePaginationActions from '../../Table/TablePaginationActions';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: () => void;\n deviceId?: string;\n userId?: string;\n isProvider?: boolean;\n}\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n bg: {\n background: '#f5f5f5',\n },\n closeIcon: {\n marginLeft: '20px',\n },\n closeWrapper: {\n position: 'relative',\n },\n dateTime: {\n color: '#8F9CA1',\n fontSize: '16px',\n },\n dialogActionPadding: {\n padding: '8px 24px',\n },\n dialogPadding: {\n padding: '20px',\n },\n dialogTitle: {\n fontSize: ComponentStyles.dialogTitle.fontSize,\n width: '500px',\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n largeFont: {\n fontSize: '20px',\n },\n spacing: {\n marginLeft: '10px',\n marginRight: '10px',\n },\n }),\n);\n\nconst ViewAlarmsDialog: React.FC = ({\n open,\n onClose,\n deviceId,\n userId,\n isProvider,\n}) => {\n const classes = useStyles();\n const alarmTypes = [\n {\n text: 'All',\n val: 'All',\n },\n ...AlarmTypesList,\n ];\n const providerAlarmTypes = [\n { text: 'Oxygen Low', val: 'OxyLow' },\n { text: 'Replace Sieve', val: 'ReplaceSieve' },\n ];\n const [device, setDevice] = useState(deviceId);\n const [typeFilter, setTypeFilter] = useState('');\n const [monthFilter, setMonthFilter] = useState('');\n\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const monthFilters = getPast12MontsFilter();\n\n const { response: userNameResp, loading: userNameLoading } = useGetUserName(\n deviceId ? deviceId : userId ? userId : '',\n deviceId ? 'deviceId' : 'clientId',\n );\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n useEffect(() => {\n if (deviceId && deviceId !== '') {\n setDevice(deviceId);\n }\n }, [deviceId]);\n\n const handleDownloadDeviceAlarms = () => {\n downloadDeviceAlarms(\n device,\n typeFilter === 'All' ? '' : typeFilter,\n monthFilter === 'All' ? '' : monthFilter,\n );\n };\n\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10);\n\n const handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const { alarms, loading } = useFetchAlarms(\n device ? device : userId ? userId : '',\n typeFilter,\n monthFilter,\n deviceId ? 'deviceId' : 'clientId',\n rowsPerPage,\n page,\n );\n\n return (\n \n \n
\n \n \n \n {userNameResp?.first_name} {userNameResp?.last_name}\n \n \n\n \n \n setTypeFilter(val)}\n data={isProvider ? providerAlarmTypes : alarmTypes}\n />\n \n\n \n setMonthFilter(val)}\n data={monthFilters}\n />\n \n\n \n Download\n \n \n \n \n \n \n
\n\n \n \n {loading && }\n {loading || (\n <>\n {}\n {alarms && alarms.count ? (\n \n \n \n {alarms &&\n alarms.data.map((val, i) => (\n \n \n \n \n \n {AlarmTypeEnum[val.type]}\n \n \n {val.description}\n \n \n {moment(val.created_at).format('MMMM DD | LT')}\n \n \n ))}\n \n \n \n \n \n \n
\n \n ) : (\n

No Alarms Found

\n )}\n \n )}\n
\n
\n \n );\n};\n\nexport default ViewAlarmsDialog;\n","import { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { SortData } from '../../components/Table/Sorter';\nimport { PaginationOptions } from '../../types';\nimport { checkResponse } from '../../utils/ApiResponseValidator';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { useCustomStore } from '../store';\n\nexport const useFetchClients = (\n limit: number,\n offset: number,\n status: string,\n { name, order }: SortData,\n searchMode: boolean,\n): {\n clients: any | null;\n loading: boolean;\n reload: (\n pagination: PaginationOptions,\n // sortby?: string | null,\n // sortOrder?: string | null,\n ) => void;\n} => {\n const {\n apiStore: { clientsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [clients, setClients] = useState(null);\n\n const fetchClients = useCallback(\n async (pagination: PaginationOptions) => {\n if (!searchMode) {\n setLoading(true);\n const reqParams = {\n ...pagination,\n sortOrder: order,\n sortby: name,\n status: status,\n };\n const clientsResp = await clientsApi.getAllClients(reqParams);\n checkResponse(clientsResp, setLoading, setClients, enqueueSnackbar);\n }\n },\n [enqueueSnackbar, clientsApi, status, name, order, searchMode],\n );\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchClients({ limit, offset: offset * limit });\n };\n\n useEffect(() => {\n fetchClients({ limit: limit, offset: offset * limit });\n }, [\n enqueueSnackbar,\n clientsApi,\n fetchClients,\n status,\n limit,\n offset,\n name,\n order,\n ]);\n\n return { clients, loading, reload };\n};\n\nexport const useFetchDeleteRequests = (\n limit: number,\n offset: number,\n { name, order }: SortData,\n): {\n deleteRequests: any | null;\n loading: boolean;\n reload: (\n pagination: PaginationOptions,\n // sortby?: string,\n // sortOrder?: string,\n ) => void;\n} => {\n const {\n apiStore: { clientsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [deleteRequests, setDeleteRequests] = useState(null);\n\n const fetchDeleteRequests = useCallback(\n async (pagination: PaginationOptions) => {\n setLoading(true);\n const params = { ...pagination, sortOrder: order, sortby: name };\n const deleteRequestsResp = await clientsApi.getAllDeleteRequests(params);\n // deleteRequestsResp=deleteRequestsResp.map\n checkResponse(\n deleteRequestsResp,\n setLoading,\n setDeleteRequests,\n enqueueSnackbar,\n );\n },\n [enqueueSnackbar, clientsApi, name, order],\n );\n\n const reload = ({ limit, offset }: PaginationOptions) =>\n // sortby = '',\n // sortOrder = '',\n {\n fetchDeleteRequests(\n { limit: limit, offset: offset * limit },\n // sortby,\n // sortOrder,\n );\n };\n\n useEffect(() => {\n fetchDeleteRequests({ limit: limit, offset: offset * limit });\n }, [enqueueSnackbar, clientsApi, fetchDeleteRequests, limit, offset]);\n\n return { deleteRequests, loading, reload };\n};\n\nexport const useClearPersonalData = (): {\n clearPersonalData: (id: any) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { clientsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const clearPersonalData = useCallback(\n async (id) => {\n setLoading(true);\n enqueueSnackbar('Clearing Personal Data', SnackBarConfig('i'));\n const clear = async (userId: string) => {\n const response: any = await clientsApi.clearPersonalData(userId);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await clear(id);\n },\n [clientsApi, enqueueSnackbar],\n );\n\n return { clearPersonalData, loading, response };\n};\n\nexport const useClearAccountPersonalData = (): {\n clearAccountPersonalData: (id: any) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { clientsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const clearAccountPersonalData = useCallback(\n async (id) => {\n setLoading(true);\n enqueueSnackbar(\n 'Clearing Account and Personal Data',\n SnackBarConfig('i'),\n );\n const clear = async (userId: string) => {\n const response: any = await clientsApi.clearAccountPersonalData(userId);\n checkResponse(response, setLoading, setResponse, enqueueSnackbar);\n };\n await clear(id);\n },\n [clientsApi, enqueueSnackbar],\n );\n\n return { clearAccountPersonalData, loading, response };\n};\n\nexport const useSearchClients = (): {\n clients: any | null;\n loading: boolean;\n searchClients: (\n searchTerm: string,\n status: 'active' | 'inactive',\n pagination: PaginationOptions,\n ) => void;\n} => {\n const {\n apiStore: { clientsApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [clients, setClients] = useState(null);\n\n const searchClients = useCallback(\n async (searchTerm, status, pagination: PaginationOptions) => {\n setLoading(true);\n const companiesResp = await clientsApi.searchClients(\n searchTerm,\n status,\n pagination,\n );\n checkResponse(companiesResp, setLoading, setClients, enqueueSnackbar);\n },\n [enqueueSnackbar, clientsApi],\n );\n return { clients, loading, searchClients };\n};\n","import { Button, withStyles } from '@material-ui/core';\n\n// import React from 'react';\nimport { AppStyles } from '../../style/variable';\n\nconst OutlinedTableButton = withStyles({\n outlined: {\n borderColor: '#0062FF',\n borderRadius: '8px',\n color: '#0062FF',\n fontFamily: AppStyles.font.bold,\n fontSize: '14px',\n },\n})(Button);\n\nOutlinedTableButton.defaultProps = {\n size: 'small',\n variant: 'outlined',\n};\nexport default OutlinedTableButton;\n","import { Button } from '@material-ui/core';\nimport { createStyles, Theme, withStyles } from '@material-ui/core/styles';\n\nimport { ComponentStyles } from '../../style/variable';\n\nconst CancelButtonContained = withStyles((theme: Theme) =>\n createStyles({\n contained: {\n '& .MuiTouchRipple-child': {\n backgroundColor: '#DEDEDE !important',\n },\n backgroundColor: '#DEDEDE',\n borderRadius: '8px',\n boxShadow: 'none',\n color: 'white',\n fontFamily: `${ComponentStyles.button.font.primary} !important`,\n // fontSize: '20px !important',\n },\n root: {\n textTransform: 'none',\n },\n }),\n)(Button);\n\nCancelButtonContained.defaultProps = {\n size: 'large',\n variant: 'contained',\n};\nexport default CancelButtonContained;\n","import { Button } from '@material-ui/core';\nimport { createStyles, Theme, withStyles } from '@material-ui/core/styles';\n\nimport { ComponentStyles } from '../../style/variable';\n\nconst DeleteButtonContained = withStyles((theme: Theme) =>\n createStyles({\n contained: {\n '& .MuiTouchRipple-child': {\n backgroundColor: 'rgb(220, 0, 78) !important',\n },\n '&:hover': {\n backgroundColor: 'rgb(220, 0, 78)',\n },\n backgroundColor: 'rgb(220, 0, 78)',\n borderRadius: '8px',\n boxShadow: 'none',\n color: 'white',\n fontFamily: `${ComponentStyles.button.font.primary} !important`,\n // fontSize: '20px !important',\n },\n root: {\n textTransform: 'none',\n },\n }),\n)(Button);\n\nDeleteButtonContained.defaultProps = {\n size: 'large',\n variant: 'contained',\n};\nexport default DeleteButtonContained;\n","// import { makeStyles } from '@material-ui/core/styles';\nimport { Grid } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport React, { useEffect } from 'react';\n\nimport {\n useClearAccountPersonalData,\n useClearPersonalData,\n} from '../../hooks/clients/clientsServices';\nimport { CancelButtonContained, DeleteButtonContained } from '../Buttons';\nimport { PrimaryPopupDialog } from '.';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: string) => void;\n type: 'Personal' | 'Account & Personal';\n userId?: string | null;\n}\n\nconst ClearPersonalDataDialog: React.FC = ({\n open,\n onClose,\n type,\n userId,\n}) => {\n const title = `Are You Sure You Want To Clear ${\n type === 'Personal' ? 'Personal' : 'Account & Personal'\n } Data?`;\n const handleClose = () => {\n onClose && onClose();\n };\n\n const {\n clearPersonalData,\n loading: personalLoading,\n response: personalResp,\n } = useClearPersonalData();\n const {\n clearAccountPersonalData,\n loading: accountLoading,\n response: accountResp,\n } = useClearAccountPersonalData();\n\n useEffect(() => {\n (personalResp?.message === 'Success' ||\n accountResp?.message === 'Success') &&\n onClose &&\n onClose('Success');\n }, [personalResp, accountResp, onClose]);\n\n const handleClear = () => {\n type === 'Personal' && clearPersonalData(userId);\n type === 'Account & Personal' && clearAccountPersonalData(userId);\n };\n\n return (\n \n \n \n }\n disabled={personalLoading || accountLoading}\n onClick={handleClear}>\n Yes, Clear\n \n \n \n \n No, Cancel\n \n \n \n \n );\n};\n\nexport default ClearPersonalDataDialog;\n\nClearPersonalDataDialog.defaultProps = {\n type: 'Personal',\n};\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport {\n Button,\n createStyles,\n FormControl,\n FormControlLabel,\n FormLabel,\n InputLabel,\n makeStyles,\n MenuItem,\n Radio,\n RadioGroup,\n Select,\n Theme,\n} from '@material-ui/core';\nimport React, { useEffect } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport * as yup from 'yup';\n\nimport { useFetchAllCompaniesByType } from '../../hooks/companies/companiesServices';\nimport { useDeviceTransferByThird } from '../../hooks/devices/devicesServices';\nimport { PrimaryPopupDialog } from '.';\n\nexport interface SimpleDialogProps {\n open: boolean;\n deviceId: string;\n userId?: string | null;\n onClose?: (e?: any) => void;\n deviceInfo?: any;\n}\n\ntype transferDeviceDTO = {\n deviceId: string;\n distributorCompanyId: string;\n physicianCompanyId?: string;\n accessDataStatus: string;\n};\n\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n listLabel: {\n transform: 'none',\n },\n radio: {\n color: 'gray !important',\n },\n radioChecked: {\n color: '#00C89A !important',\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n }),\n);\n\nconst TransferDialog: React.FC = ({\n open,\n deviceId,\n deviceInfo,\n userId,\n onClose,\n}) => {\n const title = 'Transfer';\n const classes = useStyles();\n const distributors = useFetchAllCompaniesByType('3').companies;\n const physicians = useFetchAllCompaniesByType('2').companies;\n const {\n loading: loadingSubmit,\n response: transferDeviceResponse,\n transferDevice,\n } = useDeviceTransferByThird();\n\n // const { deviceInfo } = UseGetDeviceTransfer(deviceId);\n\n const submitCompany = (data: transferDeviceDTO) => {\n transferDevice(data);\n };\n\n useEffect(() => {\n transferDeviceResponse?.message === 'Success' &&\n onClose &&\n onClose('Success');\n }, [transferDeviceResponse, onClose]);\n\n const schema = yup.object().shape({\n // deviceId: deviceId ? yup.string().required() : yup.string(),\n });\n\n const {\n handleSubmit,\n formState: { errors },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n accessDataStatus: deviceInfo?.accessDataStatus == true ? 'true' : 'false',\n deviceId: deviceInfo?.deviceId || deviceId || '',\n distributorCompanyId: deviceInfo?.distributorCompanyId || '',\n physicianCompanyId: deviceInfo?.physicianCompanyId || undefined,\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const actionButtons = (\n \n Grant Access\n \n );\n\n return (\n \n
\n \n \n Distributor Name\n \n (\n \n {distributors?.map((val: any) => {\n return (\n \n {val.name}\n \n );\n })}\n \n )}\n />\n \n \n \n Distributors can access your personal health information.\n \n (\n \n \n }\n label=\"No\"\n />\n \n }\n label=\"Yes\"\n />\n \n )}\n />\n \n \n \n Physician Name\n \n (\n \n {physicians?.map((val: any) => {\n return (\n \n {val.name}\n \n );\n })}\n \n )}\n />\n \n \n \n );\n};\n\nexport default TransferDialog;\n","import ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport ArrowDropUpIcon from '@material-ui/icons/ArrowDropUp';\nimport UnfoldMoreIcon from '@material-ui/icons/UnfoldMore';\nimport React, { useEffect, useState } from 'react';\n\ninterface SortProps {\n currentSort?: SortData | null;\n name?: string;\n sortChange?: (e: any) => void;\n}\n\nexport type SortData = {\n name: string;\n order: 'ASC' | 'DESC' | '';\n};\nconst Sorter: React.FC = ({ currentSort, name, sortChange }) => {\n const [sort, setSort] = useState('');\n\n useEffect(() => {\n if (currentSort && currentSort.name !== name) {\n setSort('');\n } else {\n setSort(currentSort ? currentSort.order : '');\n }\n }, [currentSort, name]);\n\n const handleSortChange = (sort: 'ASC' | 'DESC') => {\n setSort(sort);\n sortChange && sortChange({ name, order: sort });\n };\n\n return (\n
\n {sort === '' && (\n {\n handleSortChange('ASC');\n }}\n />\n )}\n {sort === 'DESC' && (\n {\n handleSortChange('ASC');\n }}\n />\n )}\n {sort === 'ASC' && (\n {\n handleSortChange('DESC');\n }}\n />\n )}\n
\n );\n};\n\nexport default Sorter;\nSorter.defaultProps = {\n currentSort: null,\n name: '',\n};\n","import {\n createStyles,\n Theme,\n WithStyles,\n withStyles,\n} from '@material-ui/core/styles';\nimport TableCell from '@material-ui/core/TableCell';\nimport clsx from 'clsx';\nimport React from 'react';\nimport {\n AutoSizer,\n Column,\n Table,\n TableCellRenderer,\n TableHeaderProps,\n} from 'react-virtualized';\n\ndeclare module '@material-ui/core/styles/withStyles' {\n // Augment the BaseCSSProperties so that we can control jss-rtl\n interface BaseCSSProperties {\n /*\n * Used to control if the rule-set should be affected by rtl transformation\n */\n flip?: boolean;\n }\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n flexContainer: {\n alignItems: 'center',\n boxSizing: 'border-box',\n display: 'flex',\n },\n noClick: {\n cursor: 'initial',\n },\n table: {\n // temporary right-to-left patch, waiting for\n // https://github.com/bvaughn/react-virtualized/issues/454\n '& .ReactVirtualized__Table__headerRow': {\n flip: false,\n paddingRight: theme.direction === 'rtl' ? '0 !important' : undefined,\n },\n },\n tableCell: {\n flex: 1,\n },\n tableRow: {\n cursor: 'pointer',\n },\n tableRowHover: {\n '&:hover': {\n backgroundColor: theme.palette.grey[200],\n },\n },\n });\n\ninterface ColumnData {\n dataKey: string;\n label: string;\n numeric?: boolean;\n width: number;\n}\n\ninterface Row {\n index: number;\n}\n\ninterface MuiVirtualizedTableProps extends WithStyles {\n columns: ColumnData[];\n headerHeight?: number;\n onRowClick?: () => void;\n rowCount: number;\n rowGetter: (row: Row) => any;\n rowHeight?: number;\n}\n\nconst TestVirtualFc: React.FC = ({\n headerHeight,\n columns,\n classes,\n rowHeight,\n ...tableProps\n}) => {\n const getRowClassName = ({ index }: Row) => {\n const { onRowClick } = tableProps;\n\n return clsx(classes.tableRow, classes.flexContainer, {\n [classes.tableRowHover]: index !== -1 && onRowClick != null,\n });\n };\n const cellRenderer: TableCellRenderer = ({ cellData, columnIndex }) => {\n const { onRowClick } = tableProps;\n return (\n \n {cellData}\n \n );\n };\n\n const headerRenderer = ({\n label,\n columnIndex,\n }: TableHeaderProps & { columnIndex: number }) => {\n return (\n \n {label}\n \n );\n };\n\n return (\n \n {({ height, width }) => (\n \n {columns.map(({ dataKey, ...other }, index) => {\n return (\n \n headerRenderer({\n ...headerProps,\n columnIndex: index,\n })\n }\n className={classes.flexContainer}\n cellRenderer={cellRenderer}\n dataKey={dataKey}\n {...other}\n />\n );\n })}\n \n )}\n \n );\n};\n\nconst VirtualizedTable = withStyles(styles)(TestVirtualFc);\n\nVirtualizedTable.defaultProps = { headerHeight: 48, rowHeight: 48 };\nexport default VirtualizedTable;\n","import {\n AuthErrorType,\n DateErrorType,\n ErrorResponseActions,\n FileErrorType,\n GeneralErrorType,\n ServerErrorType,\n UserErrorType,\n} from './backendError.types';\n\nexport type themeObj = {\n common: {\n black: string;\n white: string;\n };\n primary: {\n main: string;\n dark: string;\n light: string;\n contrastText: string;\n };\n secondary: {\n contrastText: string;\n dark: string;\n main: string;\n light: string;\n };\n success: {\n contrastText: string;\n dark: string;\n main: string;\n light: string;\n };\n info: {\n contrastText: string;\n dark: string;\n main: string;\n light: string;\n };\n warning: {\n contrastText: string;\n dark: string;\n main: string;\n light: string;\n };\n error: {\n contrastText: string;\n dark: string;\n main: string;\n light: string;\n };\n text: {\n primary: string;\n secondary: string;\n disabled: string;\n hint: string;\n };\n background: {\n default: string;\n paper: string;\n };\n icon: string;\n divider: string;\n border: string;\n};\n\nexport type AppPage = {\n title: string;\n icon: string;\n whiteIcon: string;\n route: string;\n};\n\nexport type customAppStyles = {\n icon: string;\n whiteIcon: string;\n index: number;\n};\n\nexport type LoginFormInputs = {\n email: string;\n password: string;\n};\n\nexport type AuthTokenType = {\n accessToken: string;\n refreshToken: string;\n userId: string;\n userRole: string;\n};\n\nexport enum UserRole {\n Owner = 'owner',\n Admin = 'admin',\n}\n\nexport type LoginDTO = {\n accessToken: string;\n refreshToken: string;\n id: string;\n role: UserRole;\n};\n\nexport type ForgotPasswordFormInputs = {\n email: string;\n};\n\nexport type ResetPasswordFormInputs = {\n password: string;\n confirm: string;\n token: string;\n};\n\nexport type ResetPasswordValidationInput = {\n password: string;\n confirmPassword: string;\n};\n\nexport type AddUserFormInput = {\n companyId: string;\n first_name: string;\n last_name: string;\n phoneNumber?: string;\n role?: UserRole;\n email: string;\n notes?: string;\n // providerAccess: boolean;\n};\n\nexport type AddUserFormInput2 = {\n companyId: string;\n userName: string;\n email: string;\n providerAccess: string;\n};\n\nexport type AddUserDTO = {\n id: string;\n email: string;\n firstName: string;\n lastName: string;\n companyId: string;\n deletedAt: string;\n role: UserRole;\n signupComplete: boolean;\n active: boolean;\n};\n\nexport type registerDTO = {\n password: string;\n phone: string;\n email: string;\n first_name: string;\n last_name?: string;\n name?: string;\n code: string;\n confirmPassword?: string;\n};\nexport type SignUpFormInputs = {\n password: string;\n userId: string;\n invitationCode: string;\n};\n\nexport type SignUpValidationInput = {\n password: string;\n confirmPassword: string;\n};\n\nexport type SignUpDTO = {\n accessToken: string;\n refreshToken: string;\n id: string;\n role: UserRole;\n};\n\nexport type ApiErrorType =\n | AuthErrorType\n | FileErrorType\n | UserErrorType\n | ServerErrorType\n | GeneralErrorType\n | DateErrorType;\n\nexport class ApiError {\n message: string;\n status?: number;\n type?: ApiErrorType;\n actions: ErrorResponseActions;\n\n constructor({\n message,\n type,\n status,\n actions = {},\n }: {\n message: string;\n type?: ApiErrorType;\n status?: number;\n actions: ErrorResponseActions;\n }) {\n this.message = message;\n this.status = status;\n this.type = type;\n this.actions = actions;\n }\n}\n\nexport type GetUserInput = {\n offset?: number;\n limit?: number;\n search?: string;\n active?: boolean;\n sortField?: 'lastName' | 'firstName' | 'email';\n status?: 'active' | 'inactive' | 'initiated';\n sortOrder?: 1 | -1;\n reload?: boolean;\n role?: Array;\n};\n\nexport interface GetUsersDataItem {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n role: UserRole;\n deletedAt: string;\n signupComplete: boolean;\n active: boolean;\n phoneNumber: string;\n notes: string;\n}\n\nexport type GetUsersData = Array;\n\nexport type GetUsersDTO = {\n search: string;\n totalCount: number;\n offset: number;\n limit: number;\n nextOffset: number;\n completed: true;\n sortField: string;\n sortOrder: number;\n results: {\n id: string;\n firstName: string;\n lastName: string;\n email: string;\n role: UserRole;\n deletedAt: string;\n signupComplete: boolean;\n active: boolean;\n phoneNumber: string;\n notes: string;\n }[];\n};\n\nexport type UpdateUserInput = {\n id: string;\n first_name?: string;\n last_name?: string;\n active?: boolean;\n phoneNumber?: string;\n notes?: string;\n providerAccess?: boolean;\n companyId?: string;\n};\n\nexport type AddTextDataItem = {\n type: string;\n value: string;\n isDraft: boolean;\n};\n\nexport type GetTextInput = {\n type: string;\n isDraft: boolean;\n};\n\nexport interface GetTextDataItem {\n type: string;\n value: string;\n isDraft: boolean;\n}\n\nexport type UserStatusInput = {\n id: string;\n status: string;\n};\n\nexport const DeleteRequestTypes = {\n FullAccountData: 'Full account data',\n PersonalData: 'Personal data',\n};\n\nexport type PaginationOptions = { limit: number; offset: number };\n","import {\n Grid,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport TablePaginationActions from '@material-ui/core/TablePagination/TablePaginationActions';\nimport moment from 'moment';\nimport React, { useState } from 'react';\n\nimport { PeripheralDTO } from '../../core/types/ProvidersDTO';\nimport { useFetchPeripherals } from '../../hooks/providers/providersService';\nimport Loader from '../Loader/Loader';\nimport { Sorter } from '../Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../Table/CustomTableComponents';\nimport { SortData } from '../Table/Sorter';\nimport { PrimaryPopupDialog } from '.';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: () => void;\n deviceId?: string;\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: '1px solid #D5D9E3',\n fontFamily: 'MavenProMedium',\n fontSize: '22px',\n },\n table: {\n minWidth: 650,\n },\n}));\n\nconst NewDeviceInfoDialog: React.FC = ({\n open,\n onClose,\n deviceId,\n}) => {\n const title = 'Device Information';\n const handleClose = () => {\n onClose && onClose();\n };\n\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n const classes = useStyles();\n\n const [rowsPerPage, setRowsPerPage] = React.useState(10);\n const [page, setPage] = React.useState(0);\n\n const handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const { peripherals, loading } = useFetchPeripherals(\n rowsPerPage,\n page,\n currentSort,\n false,\n deviceId ? deviceId : '',\n );\n\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: PeripheralDTO, i: number) => (\n \n -\n {row.dailySteps}\n {row.dailyActivityMinutes}\n {row.heartRate}\n {row.bloodOxygenLevel}\n -\n \n {moment(row.created_at).format('MMM DD | h:ma')}\n \n \n ))\n ) : (\n

No data found

\n );\n };\n\n return (\n \n \n \n \n \n \n \n ALTITUDE\n handleSortChange(e)}\n />\n \n \n \n \n DAILY STEPS\n handleSortChange(e)}\n />\n \n \n \n \n DAILY ACTIVITY MINUTES\n handleSortChange(e)}\n />\n \n \n \n \n HEART RATE AVERAGE\n handleSortChange(e)}\n />\n \n \n \n \n PULSE OX AVERAGE\n handleSortChange(e)}\n />\n \n \n \n \n CITY\n handleSortChange(e)}\n />\n \n \n \n \n Date\n handleSortChange(e)}\n />\n \n \n \n \n\n {renderTable(peripherals)}\n {renderFooter(peripherals?.count)}\n
\n \n {loading && }\n \n );\n};\n\nexport default NewDeviceInfoDialog;\n","// import { TablePagination } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\n// import { number } from 'yup/lib/locale';\nimport { SortData } from '../../components/Table/Sorter';\nimport {\n EnvironmentalsDTO,\n PeripheralsDTO,\n ProviderDTO,\n ProvidersDTO,\n} from '../../core/types/ProvidersDTO';\nimport { GetUserInput, PaginationOptions } from '../../types';\nimport {\n checkDownloadResponse,\n checkResponse,\n} from '../../utils/ApiResponseValidator';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\n// import { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { useCustomStore } from '../store';\n\nexport const useFetchMe = (): {\n providers: ProviderDTO | null;\n loading: boolean;\n} => {\n const {\n apiStore: { providersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [providers, setProviders] = useState(null);\n\n useEffect(() => {\n setLoading(true);\n const fetchMe = async () => {\n const providersResp = await providersApi.getMe();\n checkResponse(providersResp, setLoading, setProviders, enqueueSnackbar);\n };\n fetchMe();\n }, [enqueueSnackbar, providersApi]);\n\n return { loading, providers };\n};\n\nexport const useFetchProviders = (\n params: GetUserInput,\n limit: number,\n offset: number,\n { name, order }: SortData,\n searchMode: boolean,\n type?: string,\n): {\n providers: ProvidersDTO | null;\n loading: boolean;\n reload: (\n pagination: PaginationOptions,\n // sortby: string,\n // sortOrder: string,\n ) => void;\n} => {\n const {\n apiStore: { providersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [providers, setProviders] = useState(null);\n const fetchProviders = useCallback(\n async (pagination: PaginationOptions) => {\n if (!searchMode) {\n setLoading(true);\n const reqParams: {\n limit: number;\n offset: number;\n sortby?: string;\n sortOrder?: string;\n } = {\n ...pagination,\n // sortby: name,\n // status: params.status,\n };\n if (name) {\n reqParams.sortby = name ? name : 'deviceId';\n }\n if (order) {\n reqParams.sortOrder = order;\n }\n if (type == '1') {\n const adminsResp = await providersApi.getAllProviders(reqParams);\n checkResponse(adminsResp, setLoading, setProviders, enqueueSnackbar);\n } else if (type == '2' || type == '3') {\n const adminsResp = await providersApi.getAllProvidersByThird(\n reqParams,\n );\n checkResponse(adminsResp, setLoading, setProviders, enqueueSnackbar);\n } else if (type == '4') {\n const adminsResp = await providersApi.getAllProvidersByPatient(\n reqParams,\n );\n checkResponse(adminsResp, setLoading, setProviders, enqueueSnackbar);\n }\n }\n },\n [providersApi, enqueueSnackbar, name, order, searchMode, type],\n );\n\n useEffect(() => {\n fetchProviders({ limit: limit, offset: offset * limit });\n }, [fetchProviders, limit, offset]);\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchProviders({ limit, offset: offset * limit });\n };\n\n return { loading, providers, reload };\n};\nexport const useSearchAdmins = ({\n name,\n order,\n}: SortData): {\n admins: any | null;\n loading: boolean;\n searchAdmins: (\n searchTerm: string,\n status: 'active' | 'inactive',\n pagination: PaginationOptions,\n ) => void;\n} => {\n const {\n apiStore: { adminUsersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [admins, setAdmins] = useState(null);\n\n const searchAdmins = useCallback(\n async (searchTerm, status, pagination: PaginationOptions) => {\n setLoading(true);\n const sortOrder = order;\n const sortby = name;\n const adminResp = await adminUsersApi.searchAdmins(\n searchTerm,\n status,\n pagination,\n sortby,\n sortOrder,\n );\n checkResponse(adminResp, setLoading, setAdmins, enqueueSnackbar);\n },\n [enqueueSnackbar, adminUsersApi, name, order],\n );\n return { admins, loading, searchAdmins };\n};\n\nexport const useFetchEnvironmentals = (\n // params: GetUserInput,\n limit: number,\n offset: number,\n { name, order }: SortData,\n searchMode: boolean,\n deviceId: string,\n): {\n environmentals: EnvironmentalsDTO | null;\n loading: boolean;\n reload: (\n pagination: PaginationOptions,\n // sortby: string,\n // sortOrder: string,\n ) => void;\n} => {\n const {\n apiStore: { providersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [environmentals, setEnvironmentals] =\n useState(null);\n\n const fetchEnvironmental = useCallback(\n async (pagination: PaginationOptions) => {\n if (!searchMode) {\n setLoading(true);\n const reqParams: {\n limit: number;\n offset: number;\n sortby?: string;\n sortOrder?: string;\n } = {\n ...pagination,\n // sortby: name,\n // status: params.status,\n };\n if (name) {\n reqParams.sortby = name ? name : 'deviceId';\n }\n if (order) {\n reqParams.sortOrder = order;\n }\n const environmentalResp = await providersApi.getAllEnvironmentalInfo(\n reqParams,\n deviceId,\n );\n checkResponse(\n environmentalResp,\n setLoading,\n setEnvironmentals,\n enqueueSnackbar,\n );\n }\n },\n [providersApi, enqueueSnackbar, deviceId, name, order, searchMode],\n );\n\n useEffect(() => {\n fetchEnvironmental({ limit: limit, offset: offset * limit });\n }, [fetchEnvironmental, limit, offset]);\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchEnvironmental({ limit, offset: offset * limit });\n };\n\n return { environmentals, loading, reload };\n};\n\nexport const useDownloadProviders = (): {\n downloadCompanyAlarms: (params: { deviceId: string[] } | null) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { providersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadCompanyAlarms = useCallback(\n async (params) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const providerResp: any = await providersApi.downloadProviders(\n params || {},\n );\n checkDownloadResponse(\n providerResp,\n setLoading,\n enqueueSnackbar,\n 'providers.xlsx',\n );\n };\n await download();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n },\n [providersApi, enqueueSnackbar],\n );\n\n return { downloadCompanyAlarms, loading };\n};\n\nexport const useFetchPeripherals = (\n // params: GetUserInput,\n limit: number,\n offset: number,\n { name, order }: SortData,\n searchMode: boolean,\n deviceId: string,\n): {\n peripherals: PeripheralsDTO | null;\n loading: boolean;\n reload: (\n pagination: PaginationOptions,\n // sortby: string,\n // sortOrder: string,\n ) => void;\n} => {\n const {\n apiStore: { providersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [peripherals, setPeripherals] = useState(null);\n\n const fetchProviders = useCallback(\n async (pagination: PaginationOptions) => {\n if (!searchMode) {\n setLoading(true);\n const reqParams: {\n limit: number;\n offset: number;\n sortby?: string;\n sortOrder?: string;\n } = {\n ...pagination,\n // sortby: name,\n // status: params.status,\n };\n if (name) {\n reqParams.sortby = name ? name : 'deviceId';\n }\n if (order) {\n reqParams.sortOrder = order;\n }\n const adminsResp = await providersApi.getAllDeviceInfo(\n reqParams,\n deviceId,\n );\n checkResponse(adminsResp, setLoading, setPeripherals, enqueueSnackbar);\n }\n },\n [providersApi, enqueueSnackbar, name, deviceId, order, searchMode],\n );\n\n useEffect(() => {\n fetchProviders({ limit: limit, offset: offset * limit });\n }, [fetchProviders, limit, offset]);\n\n const reload = ({ limit, offset }: PaginationOptions) => {\n fetchProviders({ limit, offset: offset * limit });\n };\n\n return { loading, peripherals, reload };\n};\n\nexport const useSearchProviders = (\n type?: string,\n): {\n providers: any | null;\n loading: boolean;\n searchProviders: (searchTerm: string, pagination: PaginationOptions) => void;\n} => {\n const {\n apiStore: { providersApi },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [providers, setProviders] = useState(null);\n const searchProviders = useCallback(\n async (searchTerm, pagination: PaginationOptions) => {\n setLoading(true);\n const params = { ...pagination, keyword: searchTerm };\n if (type == '1') {\n const adminResp = await providersApi.getAllProviders(params);\n checkResponse(adminResp, setLoading, setProviders, enqueueSnackbar);\n } else if (type == '2' || type == '3') {\n const adminResp = await providersApi.getAllProvidersByThird(params);\n checkResponse(adminResp, setLoading, setProviders, enqueueSnackbar);\n } else if (type == '4') {\n const adminResp = await providersApi.getAllProvidersByPatient(params);\n checkResponse(adminResp, setLoading, setProviders, enqueueSnackbar);\n }\n },\n [enqueueSnackbar, providersApi, type],\n );\n return { loading, providers, searchProviders };\n};\n","import {\n Grid,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport { makeStyles } from '@material-ui/core/styles';\nimport TablePaginationActions from '@material-ui/core/TablePagination/TablePaginationActions';\nimport moment from 'moment';\n// import { useSnackbar } from 'notistack';\nimport React, { useState } from 'react';\n\nimport { EnvironmentalDTO } from '../../core/types/ProvidersDTO';\n// import { useCustomStore } from '../../hooks';\nimport { useFetchEnvironmentals } from '../../hooks/providers/providersService';\n// import { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { Sorter } from '../Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n // StyledTableRow,\n} from '../Table/CustomTableComponents';\nimport { SortData } from '../Table/Sorter';\nimport { PrimaryPopupDialog } from '.';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: () => void;\n deviceId?: string;\n}\n\nconst useStyles = makeStyles(() => ({\n root: {\n borderBottom: '1px solid #D5D9E3',\n fontFamily: 'MavenProMedium',\n fontSize: '22px',\n },\n table: {\n minWidth: 650,\n },\n}));\n\nconst EnvironmentalInfoDialog: React.FC = ({\n open,\n onClose,\n deviceId,\n}) => {\n const title = 'Environmental Information';\n const handleClose = () => {\n onClose && onClose();\n };\n const [page, setPage] = React.useState(0);\n const [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const cToF = (celsius: number) => {\n const cToFahr = (celsius * 9) / 5 + 32;\n return `${cToFahr} \\xB0F.`;\n };\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n const classes = useStyles();\n\n const { environmentals, loading } = useFetchEnvironmentals(\n // inputField,\n rowsPerPage,\n page,\n currentSort,\n false,\n deviceId ? deviceId : '',\n // SearchStore.searchMode && SearchStore.startSearch,\n );\n\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: EnvironmentalDTO, i: number) => (\n \n {row.mold || '-'}\n {row.treePollen || '-'}\n {row.grassPollen || '-'}\n {row.weedPollen || '-'}\n {row.airQuality || '-'}\n \n {row.temperature ? cToF(row.temperature) : '-'}\n \n \n {moment(row.created_at).format('MMM DD | h:ma')}\n \n \n ))\n ) : (\n

No data found

\n );\n };\n\n return (\n \n \n \n \n \n \n \n MOLD\n handleSortChange(e)}\n />\n \n \n \n \n TREE POLLEN\n handleSortChange(e)}\n />\n \n \n \n \n GRASS POLLEN\n handleSortChange(e)}\n />\n \n \n \n \n WEED POLLEN\n handleSortChange(e)}\n />\n \n \n \n \n AIR QUALITY\n handleSortChange(e)}\n />\n \n \n \n \n WEATHER\n handleSortChange(e)}\n />\n \n \n \n \n Date\n handleSortChange(e)}\n />\n \n \n \n \n\n {loading || (\n <>\n {renderTable(environmentals)}\n {renderFooter(environmentals?.count)}\n \n )}\n\n {/* {renderTable()}\n {renderFooter(100)} */}\n\n {/* {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch ? (\n <>\n {renderTable(searchResp)}\n {renderFooter(searchResp?.count)}\n \n ) : (\n <>\n {renderTable(admins)}\n {renderFooter(admins?.count)}\n \n ))} */}\n
\n \n\n {/* \n \n \n {deviceInfo.map((row, i) => (\n \n \n {row.device}\n \n \n {row.status}\n \n \n ))}\n \n
\n
*/}\n
\n );\n};\n\nexport default EnvironmentalInfoDialog;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport {\n Button,\n createStyles,\n FormControl,\n makeStyles,\n TextField,\n Theme,\n} from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport * as yup from 'yup';\n\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useCustomStore } from '../../../hooks';\n// import { useFetchAllCompanies } from '../../../hooks/companies/companiesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: any) => void;\n companyId: string;\n}\n\ntype AddDeviceDialogDTO = {\n name?: string | null;\n deviceId?: string | null;\n companyId: string;\n};\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n listLabel: {\n marginTop: '20px',\n transform: 'none',\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n }),\n);\nconst AddDeviceDialog: React.FC = ({\n open,\n onClose,\n companyId,\n}) => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n\n const title = 'Add Device';\n const classes = useStyles();\n // const { companies } = useFetchAllCompanies({ name: '', order: '' });\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const submitDevice = async (data: AddDeviceDialogDTO) => {\n setLoading(true);\n const companyResp = await devicesApi.addDevice(data);\n if (companyResp.isErr()) {\n enqueueSnackbar(companyResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n } else {\n enqueueSnackbar('Add Device Successfully', SnackBarConfig('s'));\n onClose && onClose('success');\n }\n };\n\n const schema = yup.object().shape({\n deviceId: yup.string().required(),\n });\n\n const {\n handleSubmit,\n formState: { errors },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n companyId: companyId,\n deviceId: '',\n name: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const actionButtons = (\n \n Add\n \n );\n\n return (\n \n
\n \n (\n \n )}\n />\n \n \n \n );\n};\n\nexport default AddDeviceDialog;\n","import { Button, Grid } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { DragEvent, useEffect, useState } from 'react';\n\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useUploadDevice } from '../../../hooks/devices/devicesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: any) => void;\n companyId: string;\n}\n\nconst AddDevicesDialog: React.FC = ({\n open,\n onClose,\n companyId,\n}) => {\n const title = 'Add Device(s)';\n const fileTypes = ['xls', 'xlsx'];\n\n const [dragOver, setDragOver] = useState(false);\n const [files, setFiles] = useState(null);\n const [filesList, setFilesList] = useState(null);\n\n const { uploadDevice, response, loading } = useUploadDevice();\n const { enqueueSnackbar } = useSnackbar();\n useEffect(() => {\n if (response === 'success') {\n enqueueSnackbar('Uploaded Device Successfully', SnackBarConfig('s'));\n onClose && onClose('success');\n }\n }, [response, onClose, enqueueSnackbar]);\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const dragOverHandler = (e: any) => {\n e.preventDefault();\n setDragOver(true);\n };\n const dragLeaveHandler = () => {\n setDragOver(false);\n };\n\n const dropHandler = (e: DragEvent) => {\n setDragOver(false);\n e.preventDefault();\n const filesList = [];\n const files = [];\n const formData = new FormData();\n const { length } = e.dataTransfer.files;\n for (let i = 0; i < length; i++) {\n if (\n e.dataTransfer.files[i].name.endsWith(fileTypes[0]) ||\n e.dataTransfer.files[i].name.endsWith(fileTypes[1])\n ) {\n files.push(e.dataTransfer.files[i]);\n filesList.push(e.dataTransfer.files[i].name);\n formData.append('file', e.dataTransfer.files[i]);\n }\n }\n setFilesList(filesList);\n setFiles(formData);\n };\n\n const handleUpload = () => {\n if (files != null) {\n uploadDevice(files, companyId);\n }\n };\n return (\n \n \n e.preventDefault()}\n style={{\n color: dragOver ? 'white' : 'black',\n fontSize: dragOver ? '20px' : '15px',\n fontWeight: dragOver ? 'bold' : 'normal',\n }}>\n {dragOver\n ? 'Drop It To Upload'\n : filesList\n ? filesList.map((val, i) =>
{val}
)\n : 'Drag and Drop File'}\n \n \n\n \n Upload\n \n
\n );\n};\n\nexport default AddDevicesDialog;\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n backgroundColor: '#241A2E',\n fontColor: 'white',\n height: '100%',\n minHeight: '100vh',\n padding: '30px',\n width: '100%',\n },\n noBg: {\n backgroundColor: '#241A2E',\n borderBottom: '0px',\n color: '#A1A1A1',\n },\n noPadding: {\n padding: '0px',\n },\n titleFont: {\n fontFamily: 'MavenProMedium',\n },\n whiteFont: {\n color: 'white',\n },\n}));\n\nexport default useStyles;\n","import {\n IconButton,\n Table,\n TableBody,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport Loader from '../../../components/Loader/Loader';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport { AlarmTypeEnum } from '../../../constants/AlarmTypesEnum';\nimport { AlarmsTypes } from '../../../core/types';\nimport { useFetchCompanyAlarmsTypes } from '../../../hooks/alarms/alarmsServices';\nimport useStyles from './AlarmsListStyles';\n\nconst AlarmsList: React.FC = () => {\n const { id } = useParams();\n const { alarmsTypes, loading } = useFetchCompanyAlarmsTypes(id);\n const classes = useStyles();\n return (\n
\n \n Alarms List\n \n {loading && }\n {loading || (\n \n \n \n \n \n Type\n \n \n Amount\n \n \n \n \n {alarmsTypes &&\n alarmsTypes?.map(\n (val: { type_count: number; alarm_type: AlarmsTypes }) => {\n return (\n \n \n \n \n \n {AlarmTypeEnum[val.alarm_type]}\n \n \n {val.type_count}\n \n \n );\n },\n )}\n \n
\n
\n )}\n
\n );\n};\n\nexport default AlarmsList;\n","import { Menu, MenuItem } from '@material-ui/core';\nimport { createStyles, Theme, withStyles } from '@material-ui/core/styles';\n\nimport { AppStyles } from '../../style/variable';\n\nexport const ActionMenuItem = withStyles((theme: Theme) =>\n createStyles({\n root: {\n '&:last-child': {\n borderBottom: '0px',\n },\n borderBottom: '1px solid #414242',\n color: 'white',\n fontFamily: 'MavenProMedium',\n fontSize: '14px',\n paddingBottom: '10px',\n paddingTop: '10px',\n },\n }),\n)(MenuItem);\n\nexport const ActionMenu = withStyles((theme: Theme) =>\n createStyles({\n list: {\n minWidth: '230px',\n padding: '13px',\n },\n paper: {\n background: AppStyles.background.secondary,\n color: 'white',\n },\n }),\n)(Menu);\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport {\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport { OutlinedTableButton } from '../../../components/Buttons';\nimport { DeviceInfoDialog, ViewAlarmsDialog } from '../../../components/Dialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport { AlarmDTO } from '../../../core/types';\nimport { SearchStore } from '../../../hooks';\nimport {\n useDownloadDeviceAlarms,\n useFetchCompanyAlarms,\n} from '../../../hooks/alarms/alarmsServices';\nimport { AppStyles } from '../../../style/variable';\n\nconst useStyles = makeStyles({\n amount: {\n alignItems: 'center',\n color: '#0062FF',\n fontFamily: AppStyles.font.bold,\n fontSize: '14px',\n },\n table: {\n minWidth: 650,\n },\n timefield: {\n color: '#8F9CA1',\n // display: 'block',\n fontFamily: AppStyles.font.bold,\n wrap: 'nowrap',\n },\n timestamp: {\n fontFamily: AppStyles.font.regular,\n },\n});\nconst AlarmsTableView: React.FC = observer(\n (props: any, ref) => {\n // const AlarmsTableView: React.FC<{ month: string }> = ({ month }) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [selectedDevice, setSelectedDevice] = useState('');\n const [deviceInfoOpen, setDeviceInfoOpen] = useState(false);\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const { id } = useParams();\n const classes = useStyles();\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n // const handleSortChange = (e: SortData) => {\n // setCurrentSort(e);\n // setPage(0);\n // reload(props.month, { limit: rowsPerPage, offset: page });\n // };\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n reload(\n props.month,\n { limit: rowsPerPage, offset: page },\n SearchStore.searchTerm,\n );\n // reload(mouth, { limit: rowsPerPage, offset: page });\n };\n useEffect(() => {\n SearchStore.initSearch('companysAlarms');\n }, []);\n // useEffect(() => {\n // setPage(0);\n // }, [props.month]);\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n // searchAlarms(SearchStore.searchTerm);\n reload(\n props.month,\n { limit: rowsPerPage, offset: page },\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n props.month,\n SearchStore.searchMode,\n SearchStore.startSearch,\n page,\n rowsPerPage,\n ]);\n const { alarms, loading, reload } = useFetchCompanyAlarms(\n id,\n props.month,\n SearchStore.searchTerm,\n rowsPerPage,\n page,\n currentSort,\n );\n const handleDeviceInfoClose = () => {\n setDeviceInfoOpen(false);\n };\n\n const handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n };\n\n const handleDownloadDeviceAlarms = () => {\n handleClose();\n downloadDeviceAlarms(selectedDevice, '', '');\n };\n\n const handleClick = (\n event: React.MouseEvent,\n deviceId: string,\n ) => {\n setAnchorEl(event.currentTarget);\n setSelectedDevice(deviceId);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n\n const [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadDeviceAlarms, value: 'Download Alarms' },\n ];\n\n return (\n <>\n {deviceInfoOpen && (\n \n )}\n\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={selectedDevice || ''}\n />\n )}\n\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n \n User\n \n \n \n \n \n \n Phone\n \n \n \n \n \n \n Gender\n \n \n \n \n \n \n DEVICE ID\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n LAST ALARM TYPE\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n ALARM DESCRIPTION\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n TIME\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n AMOUNT\n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n \n {loading || (\n <>\n \n {alarms &&\n alarms.data.map((row: AlarmDTO, i) => (\n setHoveredRow(i)}\n key={i}>\n \n {row.first_name || ' '}\n {'_'}\n {row.last_name || ' '}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.phone}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.gender}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.deviceNumber}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n \n \n \n \n \n \n \n
\n {row.description}\n
\n
\n \n
\n {row.description}\n \n {moment(row.created_at).format('MMM DD | h:ma')}\n \n \n {row.amount || '-'}\n \n \n {\n setSelectedDevice(row.deviceId);\n handleViewAlarms();\n }}>\n View Details\n \n \n \n {hoveredRow === i && (\n handleClick(e, row.deviceId)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))}\n
\n \n \n \n \n \n \n )}\n \n \n {loading && }\n \n );\n },\n { forwardRef: true },\n);\nexport default AlarmsTableView;\n","import {\n Chip,\n Grid,\n IconButton,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\nimport React, { useEffect, useImperativeHandle, useState } from 'react';\nimport { useParams } from 'react-router-dom';\n\nimport {\n DeviceInfoDialog,\n TransferDialog,\n ViewAlarmsDialog,\n} from '../../../components/Dialog';\nimport ClearPersonalDataDialog from '../../../components/Dialog/ClearPersonalDataDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { SearchStore } from '../../../hooks';\nimport { useDownloadDeviceAlarms } from '../../../hooks/alarms/alarmsServices';\nimport {\n useFetchCompanyDevices,\n useGetDeviceTransferInfo,\n} from '../../../hooks/devices/devicesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 650,\n },\n});\n\nconst DevicesTableView: React.FC = observer(\n (props: any, ref) => {\n const [anchorEl, setAnchorEl] = useState(null);\n\n const [selectedDevice, setSelectedDevice] = useState('');\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const [deviceInfoOpen, setDeviceInfoOpen] = useState(false);\n const [transfersOpen, setTransfersOpen] = useState(false);\n const handleDeviceInfoClose = () => {\n setDeviceInfoOpen(false);\n };\n\n const handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n };\n\n const handleDownloadDeviceAlarms = () => {\n handleClose();\n downloadDeviceAlarms(selectedDevice, '', '');\n };\n\n const handleClick = (\n event: React.MouseEvent,\n deviceId: string,\n ) => {\n setAnchorEl(event.currentTarget);\n setSelectedDevice(deviceId);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n const [selectedDeviceInfo, setselectedDeviceInfo] = useState({});\n const [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n const [clearPersonalOpen, setClearPersonalOpen] = useState(false);\n const [clearAccountOpen, setClearAccountOpen] = useState(false);\n const { id } = useParams();\n const { response: transferDeviceResponse, DeviceInfo } =\n useGetDeviceTransferInfo();\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n\n const { devices, loading, reload } = useFetchCompanyDevices(\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n id,\n rowsPerPage,\n page,\n currentSort,\n );\n useImperativeHandle(\n ref,\n () => ({\n reloadDevices() {\n reload(SearchStore.searchTerm ? SearchStore.searchTerm : '');\n },\n }),\n [reload],\n );\n const { enqueueSnackbar } = useSnackbar();\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n reload(SearchStore.searchTerm ? SearchStore.searchTerm : '');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch, page, rowsPerPage]);\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleTransfersClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n enqueueSnackbar(\n 'Data Access Permission Authorized Successfully',\n SnackBarConfig('s'),\n );\n reload(SearchStore.searchTerm ? SearchStore.searchTerm : '');\n }\n setTransfersOpen(false);\n handleClose();\n };\n\n const handleClearAccountData = () => {\n handleClose();\n setClearAccountOpen(true);\n };\n\n const handleTransfers = () => {\n handleClose();\n DeviceInfo(selectedDevice);\n };\n useEffect(() => {\n if (transferDeviceResponse?.deviceId) {\n setselectedDeviceInfo(transferDeviceResponse);\n setTransfersOpen(true);\n }\n }, [transferDeviceResponse]);\n const handleClearPersonalData = () => {\n handleClose();\n setClearPersonalOpen(true);\n };\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadDeviceAlarms, value: 'Download Alarms' },\n { handler: handleTransfers, value: 'Transfer' },\n { handler: handleClearPersonalData, value: 'Clear Personal Data' },\n {\n handler: handleClearAccountData,\n value: 'Clear Account & Personal Data',\n },\n ];\n\n const classes = useStyles();\n\n return (\n <>\n {deviceInfoOpen && (\n \n )}\n {transfersOpen && (\n \n )}\n {clearPersonalOpen && (\n setClearPersonalOpen(false)}\n open={clearPersonalOpen}\n type={'Personal'}\n userId={selectedDevice}\n />\n )}\n {clearAccountOpen && (\n setClearAccountOpen(false)}\n open={clearAccountOpen}\n type={'Account & Personal'}\n userId={selectedDevice}\n />\n )}\n\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={selectedDevice || ''}\n />\n )}\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n Device Number\n handleSortChange(e)}\n />\n \n \n \n \n Status\n handleSortChange(e)}\n />\n \n \n \n Hours Used\n \n \n \n \n {loading || (\n <>\n \n {devices &&\n devices.data.map((row: any, i) => (\n setHoveredRow(i)}\n key={i}>\n \n {row.deviceId}\n \n \n \n \n \n {row.hoursUsed || '-'}\n \n \n {hoveredRow === i && (\n handleClick(e, row.id)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))}\n \n \n \n \n \n \n \n )}\n \n \n {loading && }\n \n );\n },\n { forwardRef: true },\n);\nexport default DevicesTableView;\n","import { Button, Grid, Link, makeStyles, Typography } from '@material-ui/core';\nimport ArrowLeftSharpIcon from '@material-ui/icons/ArrowLeftSharp';\n// import GetAppIcon from '@material-ui/icons/GetApp';\nimport clsx from 'clsx';\nimport React, { useRef, useState } from 'react';\nimport { useHistory, useParams } from 'react-router-dom';\n\nimport downloadButton from '../../../assets/images/icons/download.png';\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { FilterDropDownsV1, SearchInput } from '../../../components/Forms';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport { SearchStore } from '../../../hooks';\nimport { useDownloadCompanyAlarms } from '../../../hooks/alarms/alarmsServices';\nimport { useFetchCompany } from '../../../hooks/companies/companiesServices';\nimport { useDownloadDeviceInfo } from '../../../hooks/devices/devicesServices';\nimport { getPast12MontsFilter } from '../../../utils/DateUtils';\nimport AddDeviceDialog from './AddDeviceDialog';\nimport AddDevicesDialog from './AddDevicesDialog';\nimport AlarmsList from './AlarmsList';\nimport AlarmsTableView from './AlarmsTableView';\nimport DevicesTableView from './DevicesTableView';\n\ntype ActionButtons = Array<{\n text: string;\n view: string;\n handler: (e: MouseEvent) => void;\n}>;\n\nconst useStyles = makeStyles({\n link: {\n alignItems: 'center',\n display: 'flex',\n fontFamily: 'SourceSansProSemiBold',\n fontSize: '16px',\n },\n});\n\nconst CompaniesAlarmView: React.FC = () => {\n const history = useHistory();\n const classes = useStyles();\n const { id } = useParams();\n const { company, loading } = useFetchCompany(id);\n const [selectedTab, setSelectedTab] = useState(null);\n const { downloadCompanyAlarms } = useDownloadCompanyAlarms();\n const navigateCompanies = () => {\n history.push('/companies');\n };\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n const [monthFilter, setMonthFilter] = useState('');\n const monthFilters = getPast12MontsFilter();\n const [addDeviceOpen, setAddDeviceOpen] = React.useState(false);\n const [addDevicesOpen, setAddDevicesOpen] = React.useState(false);\n const { downloadDeviceInfo } = useDownloadDeviceInfo();\n const handleAddDeviceClose = () => {\n setAddDeviceOpen(false);\n if (selectedTab === 'Devices') {\n deviceRef && deviceRef.current?.reloadDevices();\n }\n };\n const handleAddDevicesClose = () => {\n setAddDevicesOpen(false);\n if (selectedTab === 'Devices') {\n deviceRef && deviceRef.current?.reloadDevices();\n }\n };\n\n const downloadDevices = (e: MouseEvent) => {\n e.stopPropagation();\n downloadDeviceInfo(\n id,\n monthFilter === 'All' ? '' : monthFilter,\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n );\n };\n const downloadAlarms = (e: MouseEvent) => {\n e.stopPropagation();\n downloadCompanyAlarms(\n id,\n monthFilter === 'All' ? '' : monthFilter,\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n );\n };\n\n const addDevices = (e: MouseEvent) => {\n e.stopPropagation();\n setAddDevicesOpen(true);\n };\n const addDevice = (e: MouseEvent) => {\n e.stopPropagation();\n setAddDeviceOpen(true);\n };\n const actionButtons: ActionButtons = [\n {\n handler: downloadDevices,\n text: 'Device Info',\n view: 'Alarms',\n },\n { handler: downloadAlarms, text: 'Alarms', view: 'Alarms' },\n {\n handler: addDevice,\n text: 'Add Device',\n view: 'Devices',\n },\n {\n handler: addDevices,\n text: 'Import Device(s)',\n view: 'Devices',\n },\n ];\n const deviceRef = useRef();\n const selectView = () => {\n switch (selectedTab) {\n case 'Alarms':\n return ;\n case 'Devices':\n return ;\n default:\n return 'loading';\n }\n };\n return (\n <>\n {addDeviceOpen && (\n \n )}\n {addDevicesOpen && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n Back to companies\n \n \n {company?.name}\n \n
\n\n \n \n \n {selectedTab === 'Alarms' && (\n {\n setMonthFilter(val);\n }}\n data={monthFilters}\n />\n )}\n \n\n {actionButtons.map((val, i) => {\n return (\n selectedTab === val.view && (\n \n {\n val.handler(e);\n }}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n {val.view !== 'Devices' && (\n \n )}\n {val.text}\n \n \n )\n );\n })}\n
\n \n {selectView()}\n \n
\n {selectedTab === 'Alarms' && (\n \n \n \n )}\n \n \n );\n};\n\nexport default CompaniesAlarmView;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport {\n Button,\n createStyles,\n FormControl,\n FormLabel,\n // InputLabel,\n makeStyles,\n MenuItem,\n Select,\n TextField,\n Theme,\n} from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport * as yup from 'yup';\n\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useCustomStore } from '../../../hooks';\nimport { useQueryCompanyTypes } from '../../../hooks/companies/companiesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: any) => void;\n}\n\ntype CreateCompanyDTO = {\n companyType: string;\n name: string;\n};\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n listLabel: {\n marginTop: '20px',\n transform: 'none',\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n }),\n);\nconst AddCompanyDialog: React.FC = ({ open, onClose }) => {\n const {\n apiStore: { companiesApi },\n } = useCustomStore();\n\n const title = 'Add Company';\n const classes = useStyles();\n const { types } = useQueryCompanyTypes();\n // const companies = [\n // { id: 1, name: 'Belluscura' },\n // { id: 2, name: 'Distributor' },\n // { id: 3, name: 'Physician' },\n // ];\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const submitCompany = async (data: CreateCompanyDTO) => {\n setLoading(true);\n const companyResp = await companiesApi.createCompany(data);\n if (companyResp.isErr()) {\n enqueueSnackbar(companyResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n } else {\n enqueueSnackbar('Created Company Successfully', SnackBarConfig('s'));\n onClose && onClose('success');\n }\n };\n\n const schema = yup.object().shape({\n name: yup.string().required(),\n });\n\n const {\n handleSubmit,\n formState: { errors },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n companyType: '',\n name: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const actionButtons = (\n \n Add\n \n );\n\n return (\n \n
\n \n (\n \n )}\n />\n \n \n Company Type\n \n \n (\n \n {types?.map((val: any) => {\n return (\n \n {val.name}\n \n );\n })}\n \n )}\n />\n \n \n \n );\n};\n\nexport default AddCompanyDialog;\n","import Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useImperativeHandle } from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport Loader from '../../../components/Loader/Loader';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SearchStore } from '../../../hooks';\nimport { useFetchArchivedCompanies } from '../../../hooks/companies/companiesServices';\n\nconst useStyles = makeStyles({\n noContent: {\n color: 'black',\n fontSize: '12px',\n padding: '10px',\n textAlign: 'center',\n },\n table: {\n minWidth: 650,\n },\n});\n\nconst CompaniesArchivedDataTable: React.FC = observer(\n (props: any, ref) => {\n const history = useHistory();\n const { path } = useRouteMatch();\n const { companies, loading, reload } = useFetchArchivedCompanies();\n\n const classes = useStyles();\n const handleCompanySelection = (i: number) => {\n history.push(`${path || ''}/${i}`);\n };\n\n useImperativeHandle(\n ref,\n () => ({\n reloadCompanies() {\n reload();\n },\n }),\n [reload],\n );\n\n useEffect(() => {\n SearchStore.initSearch('companies');\n }, []);\n\n return (\n <>\n {loading && }\n {loading ||\n (!loading && companies && companies.length ? (\n \n \n \n \n Company\n Status\n \n \n \n {companies &&\n companies.map((row: any, i) => (\n handleCompanySelection(row.id)}\n key={i}>\n \n {row.name}\n \n \n {row.status}\n \n \n ))}\n \n \n \n ) : (\n

No archived companies found

\n ))}\n \n );\n },\n { forwardRef: true },\n);\n\nexport default CompaniesArchivedDataTable;\n","import { Grid } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\n// import EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\n// import { observer } from 'mobx-react';\nimport moment from 'moment';\nimport { useSnackbar } from 'notistack';\nimport React, {\n useEffect,\n // forwardRef,\n // ForwardRefRenderFunction,\n useImperativeHandle,\n useState,\n} from 'react';\nimport { useHistory, useRouteMatch } from 'react-router-dom';\n\nimport { OutlinedTableButton } from '../../../components/Buttons';\n// import DeviceInfoDialog from '../../../components/Dialog/DeviceInfoDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport { CompanyDTO } from '../../../core/types';\n// import TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { SearchStore } from '../../../hooks';\nimport {\n useFetchAllCompanies,\n useSearchCompanies,\n} from '../../../hooks/companies/companiesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nconst useStyles = makeStyles({\n iconButton: {\n padding: 0,\n },\n noContent: {\n color: 'black',\n fontSize: '12px',\n padding: '10px',\n textAlign: 'center',\n },\n table: {\n minWidth: 650,\n },\n});\n\nconst CompaniesDataTable: React.FC = observer(\n (props: any, ref) => {\n const history = useHistory();\n const [anchorEl, setAnchorEl] = useState(null);\n\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n console.log(1);\n };\n const { companies, loading, reload } = useFetchAllCompanies(currentSort);\n console.log(123);\n useImperativeHandle(\n ref,\n () => ({\n reloadCompanies() {\n reload();\n },\n }),\n [reload],\n );\n\n const { enqueueSnackbar } = useSnackbar();\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const menuItems = [\n { handler: handleClose, value: 'View Alarms' },\n { handler: handleClose, value: 'View Device Info' },\n { handler: handleClose, value: 'Download Alarms' },\n { handler: handleClose, value: 'Transfer' },\n { handler: handleClose, value: 'Clear Personal Data' },\n { handler: handleClose, value: 'Clear Account & Personal Data' },\n ];\n const { path } = useRouteMatch();\n const classes = useStyles();\n\n const handleCompanySelection = (i: string) => {\n history.push(`${path || ''}/${i}`);\n };\n\n useEffect(() => {\n SearchStore.initSearch('companies');\n }, []);\n\n const {\n searchCompanies,\n loading: searchLoading,\n companies: searchResp,\n } = useSearchCompanies();\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n searchCompanies(SearchStore.searchTerm);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch]);\n\n const renderTable = (data: any) => {\n return data && data.length ? (\n data.map((row: CompanyDTO, i: number) => (\n \n \n {row.name}\n \n \n {row.type == 1\n ? 'Belluscura'\n : row.type == 2\n ? 'Physician'\n : 'Distributor'}\n \n {row.device.totalCount}\n \n {row.device.alarm.created_at\n ? moment(row.device.alarm.created_at).format('L @ LT')\n : '-'}\n \n {row.device.activeCount}\n {row.device.inactiveCount}\n \n {\n if (row.device.totalCount) {\n handleCompanySelection(row.id);\n } else {\n handleCompanySelection(row.id);\n enqueueSnackbar('No alarms found', SnackBarConfig('e'));\n }\n }}>\n View Details\n \n \n \n ))\n ) : (\n

No active companies found

\n );\n };\n\n return (\n <>\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n Company\n handleSortChange(e)}\n />\n \n \n\n \n \n Type\n {/* handleSortChange(e)}*/}\n {/*/>*/}\n \n \n \n \n # of Alarms\n handleSortChange(e)}\n />\n \n \n \n \n Last Alarm\n handleSortChange(e)}\n />\n \n \n \n \n Active\n handleSortChange(e)}\n />\n \n \n \n \n Inactive\n handleSortChange(e)}\n />\n \n \n \n {/* */}\n \n \n\n \n {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch\n ? renderTable(searchResp)\n : renderTable(companies))}\n \n {/* \n \n \n \n */}\n \n \n {(loading || searchLoading) && }\n \n );\n },\n { forwardRef: true },\n);\n\nexport default CompaniesDataTable;\n","import Grid from '@material-ui/core/Grid';\nimport { makeStyles } from '@material-ui/styles';\nimport React from 'react';\n\nimport { CountCards } from '../../../components/Display';\nimport { useFetchCompanyDashboardTotals } from '../../../hooks/companies/companiesServices';\n\nconst useStyles = makeStyles(() => ({\n padding: {\n flexDirection: 'row !important' as 'row',\n padding: '20px 0px',\n },\n}));\n\nconst CountCardsContainer: React.FC = () => {\n const classes = useStyles();\n const { data, loading } = useFetchCompanyDashboardTotals();\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default CountCardsContainer;\n","import { Button, Grid } from '@material-ui/core';\nimport React, { useRef, useState } from 'react';\n\nimport { MainHeader } from '../../../components/Display';\nimport { SearchInput } from '../../../components/Forms';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport { useFetchCompanyTotals } from '../../../hooks/companies/companiesServices';\nimport AddCompanyDialog from './AddCompanyDialog';\nimport CompaniesArchivedDataTable from './CompaniesArchivedDataTable';\nimport CompaniesDataTable from './CompaniesDataTable';\nimport CountCardsContainer from './CountCardsContainer';\n\nconst CompaniesListView: React.FC = () => {\n const [selectedTab, setSelectedTab] = useState(null);\n const cdRef = useRef();\n const cdArRef = useRef();\n const [open, setOpen] = React.useState(false);\n const { data } = useFetchCompanyTotals();\n\n const handleAddCompany = () => {\n setOpen(true);\n };\n\n const handleAddCompanyClose = (e: any) => {\n setOpen(false);\n if (e && e === 'success') {\n cdRef && cdRef.current?.reloadCompanies();\n }\n };\n\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n\n const selectView = () => {\n switch (selectedTab) {\n case 'Active':\n return ;\n case 'Archived':\n return ;\n default:\n return 'loading';\n }\n };\n\n return (\n <>\n \n \n \n \n \n \n \n \n \n\n \n \n \n Add Company\n \n \n {selectView()}\n \n );\n};\n\nexport default CompaniesListView;\n","import React from 'react';\nimport { Route, Switch, useRouteMatch } from 'react-router-dom';\n\nimport { MainContainer } from '../../../components/Display';\nimport CompaniesAlarmView from './CompaniesAlarmView';\nimport CompaniesListView from './CompaniesListView';\n\nconst Companies = (): React.ReactElement => {\n const { path } = useRouteMatch();\n return (\n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default Companies;\n","import {\n Checkbox,\n // FormControlLabel,\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useImperativeHandle, useState } from 'react';\n\nimport {\n EnvironmentalInfoDialog,\n NewDeviceInfoDialog,\n ViewAlarmsDialog,\n} from '../../../components/Dialog';\n// import UserStatusDialog from '../../../components/Dialog/UserStatusDialog/UserStatusDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\n// import { AdminUserDTO } from '../../../core/types/AdminUsersDTO';\nimport { ProviderDTO } from '../../../core/types/ProvidersDTO';\nimport { SearchStore, useCustomStore } from '../../../hooks';\nimport { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\n// import { useSearchAdmins } from '../../../hooks/adminUsers/adminUsersService';\nimport {\n useFetchProviders,\n useSearchProviders,\n} from '../../../hooks/providers/providersService';\n// import { useFetchAdminUsers } from '../../../hooks/adminUsers/adminUsersService';\nimport { GetUserInput } from '../../../types';\n// import ArchiveAdminDialog from '../AdminUsers/ArchiveAdminDialog';\n// import ArchiveAdminDialog from './ArchiveAdminDialog';\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 650,\n },\n th: {\n background: 'rgb(0 52 69)',\n color: 'white',\n minHeight: 100,\n minWidth: 110,\n padding: '10px',\n },\n});\n\nconst ProviderMetricsTab: React.FC = observer(\n (props: any, ref) => {\n const { providerStore } = useCustomStore();\n const [anchorEl, setAnchorEl] = useState(null);\n const [currId, setCurrId] = useState('');\n const [modalOpen, setModalOpen] = useState(false);\n const [environmentModalOpen, setEnvironmentModalOpen] = useState(false),\n [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n const [inputField, setInputField] = useState({\n status: 'inactive',\n });\n const [currentUserId, setCurrentUserId] = useState('');\n const [searchApplied, setSearchApplied] = useState(false);\n const { admins: me } = useFetchMe();\n const handleClick = (\n event: React.MouseEvent,\n data: ProviderDTO,\n ) => {\n setCurrId(data.id);\n setCurrentUserId(data.userId);\n setAnchorEl(event.currentTarget);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n const handleClose = () => {\n // setCurrId('');\n setAnchorEl(null);\n };\n // const activateUser = () => {\n // handleClose();\n // setModalOpen(true);\n // };\n\n const viewDeviceInfo = (e: MouseEvent) => {\n e.stopPropagation();\n setModalOpen(true);\n };\n\n const viewEnvironmentInfo = (e: MouseEvent) => {\n e.stopPropagation();\n setEnvironmentModalOpen(true);\n };\n\n const popupClose = (message?: string | undefined) => {\n if (message) {\n setInputField({\n ...inputField,\n reload: true,\n });\n }\n setModalOpen(false);\n handleClose();\n };\n\n const environmentClose = (message?: string | undefined) => {\n if (message) {\n setInputField({\n ...inputField,\n reload: true,\n });\n }\n setEnvironmentModalOpen(false);\n handleClose();\n };\n\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: viewDeviceInfo, value: 'View Device Info History' },\n { handler: viewEnvironmentInfo, value: 'View Environmental History' },\n ];\n\n const [selectAll, setSelectAll] = useState(false);\n const cToF = (celsius: number) => {\n const cToFahr = (celsius * 9) / 5 + 32;\n return `${cToFahr} \\xB0F.`;\n };\n\n const { providers, loading, reload } = useFetchProviders(\n inputField,\n rowsPerPage,\n page,\n currentSort,\n SearchStore.searchMode && SearchStore.startSearch,\n me?.type,\n );\n useImperativeHandle(\n ref,\n () => ({\n reloadAdmins() {\n reload({ limit: rowsPerPage, offset: page });\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [reload],\n );\n\n const classes = useStyles();\n\n const handleChange = (event: any, deviceId: string) => {\n if (event.target.checked) {\n providerStore.addSelected(deviceId);\n } else {\n setSelectAll(false);\n providerStore.removeSelected(deviceId);\n }\n };\n\n const handleSelectAll = (event: any) => {\n if (event.target.checked) {\n setSelectAll(true);\n if (SearchStore.searchMode && SearchStore.startSearch) {\n providerStore.selectedProvider = searchResp.data.map(\n (val: ProviderDTO) => val.id,\n );\n } else {\n providerStore.selectedProvider = providers\n ? providers.data.map((val: ProviderDTO) => val.id)\n : providerStore.selectedProvider;\n }\n } else {\n setSelectAll(false);\n providerStore.selectedProvider = [];\n }\n };\n useEffect(() => {\n SearchStore.initSearch('providersAll');\n }, []);\n const {\n searchProviders,\n loading: searchLoading,\n providers: searchResp,\n } = useSearchProviders(me?.type);\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n if (!searchApplied) {\n setPage(0);\n }\n setSearchApplied(true);\n searchProviders(SearchStore.searchTerm, {\n limit: rowsPerPage,\n offset: page,\n });\n } else {\n if (searchApplied) {\n setPage(0);\n setSearchApplied(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch, page, rowsPerPage]);\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: ProviderDTO, i: number) => (\n setHoveredRow(i)} key={i}>\n \n {/* {\n handleChange(e, row.id);\n }}\n // name=\"checkedA\"\n />\n {/* }\n /> */}\n \n \n {row.user ? row.user.first_name : '-'}\n {'-'}\n {row.user ? row.user.last_name : '-'}\n \n {row.user ? row.user.phone : '-'}\n \n {row.user ? row.user.gender : '-'}\n \n \n {row.deviceId}\n \n \n {row.deviceLog.length > 0 ? row.deviceLog[0].o2Delivered : '-'}\n \n \n {row.pulseoximeter ? row.pulseoximeter.oxygenSaturation : '-'}\n \n \n {row.pulseoximeter ? row.pulseoximeter.pulse : '-'}\n \n \n {row.spirometer ? `${row.spirometer.fvcMeasurement}` : '-'}\n \n \n {row.spirometer ? `${row.spirometer.fev1Measurement}` : '-'}\n \n \n {row.spirometer ? `${row.spirometer.fev1FvcRatio}` : '-'}\n \n\n {row.environmental?.mold || '-'}\n \n {row.environmental?.treePollen || '-'}\n \n \n {row.environmental?.grassPollen || '-'}\n \n \n {row.environmental?.weedPollen || '-'}\n \n \n {row.environmental?.airQuality || '-'}\n \n \n {row.environmental?.temperature\n ? cToF(row.environmental?.temperature)\n : '-'}\n \n -\n \n {row?.peripheral?.dailySteps.toLocaleString('en-us')}\n \n \n {row?.peripheral?.dailyActivityMinutes}\n \n -\n -\n -\n \n
\n -\n {hoveredRow === i && (\n handleClick(e, row)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n
\n
\n {/* */}\n
\n ))\n ) : (\n

No data found

\n );\n };\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n return (\n <>\n {modalOpen && (\n \n )}\n\n {environmentModalOpen && (\n \n )}\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n userId={currentUserId}\n isProvider={true}\n />\n )}\n \n {menuItems.map((item, i) => (\n {\n item.handler(e);\n }}>\n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n {/* \n {/* }\n /> */}\n \n \n\n \n USER\n handleSortChange(e)}\n />\n \n \n PHONE NUMBER\n handleSortChange(e)}\n />\n \n \n GENDER\n \n \n \n SERIAL #\n handleSortChange(e)}\n />\n \n \n\n \n \n OXYGEN DELIVERED\n handleSortChange(e)}\n />\n \n \n \n \n OXYGEN SATURATION\n handleSortChange(e)}\n />\n \n \n \n \n PULSE\n handleSortChange(e)}\n />\n \n \n \n \n FVC MEASUREMENT\n handleSortChange(e)}\n />\n \n \n \n \n FEV1 MEASUREMENT\n handleSortChange(e)}\n />\n \n \n \n \n FEV1 FVC RATIO\n handleSortChange(e)}\n />\n \n \n \n \n MOLD\n handleSortChange(e)}\n />\n \n \n \n \n TREE POLLEN\n handleSortChange(e)}\n />\n \n \n \n \n GRASS POLLEN\n handleSortChange(e)}\n />\n \n \n \n \n WEED POLLEN\n handleSortChange(e)}\n />\n \n \n \n \n AIR QUALITY\n handleSortChange(e)}\n />\n \n \n \n \n WEATHER\n handleSortChange(e)}\n />\n \n \n \n \n ALTITUDE\n handleSortChange(e)}\n />\n \n \n \n \n DAILY STEPS\n handleSortChange(e)}\n />\n \n \n \n \n DAILY ACTIVITY MINUTES\n handleSortChange(e)}\n />\n \n \n \n \n CITY\n handleSortChange(e)}\n />\n \n \n \n \n DATE OF BIRTH\n handleSortChange(e)}\n />\n \n \n \n \n DIAGNOSIS\n handleSortChange(e)}\n />\n \n \n \n \n LAST LOG\n handleSortChange(e)}\n />\n \n \n {/* */}\n \n \n {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch ? (\n <>\n {renderTable(searchResp)}\n {renderFooter(searchResp?.count)}\n \n ) : (\n <>\n {renderTable(providers)}\n {renderFooter(providers?.count)}\n \n ))}\n \n \n\n {(loading || searchLoading) && }\n \n );\n },\n { forwardRef: true },\n);\n\nexport default ProviderMetricsTab;\n","import { Button, Grid, Link } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React from 'react';\n\nimport downloadButton from '../../../assets/images/icons/download.png';\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { SearchInput } from '../../../components/Forms';\nimport PublicLogo from '../../../components/PublicLogo/PublicLogo';\nimport { useCustomStore } from '../../../hooks';\nimport { useDownloadProviders } from '../../../hooks/providers/providersService';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport ProviderMetricsTab from './ProviderMetricsTableView';\n\nconst Providers: React.FC = () => {\n const { authStore, providerStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const handleLogout = async () => {\n await authStore.logout();\n enqueueSnackbar('Logging Out..', SnackBarConfig('e'));\n };\n const { downloadCompanyAlarms } = useDownloadProviders();\n\n const handleDownload = () => {\n // downloadCompanyAlarms();\n if (providerStore.selectedProvider.length > 0) {\n downloadCompanyAlarms({ deviceId: providerStore.selectedProvider });\n enqueueSnackbar('Downloading selected providers.', SnackBarConfig('s'));\n } else {\n downloadCompanyAlarms(null);\n }\n };\n return (\n \n \n {/* */}\n \n \n \n \n \n Signout\n \n \n\n \n \n \n \n \n \n \n \n handleDownload()}\n style={{ height: '50px' }}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n \n DOWNLOAD\n \n \n \n \n \n \n );\n};\n\nexport default Providers;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react';\nimport moment from 'moment';\nimport { useSnackbar } from 'notistack';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n DeviceInfoDialog,\n TransferDialog,\n ViewAlarmsDialog,\n} from '../../../components/Dialog';\nimport ClearPersonalDataDialog from '../../../components/Dialog/ClearPersonalDataDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { SearchStore } from '../../../hooks';\nimport { useDownloadUsersAlarms } from '../../../hooks/alarms/alarmsServices';\nimport {\n useFetchClients,\n useSearchClients,\n} from '../../../hooks/clients/clientsServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nconst useStyles = makeStyles({\n iconButton: {\n padding: 0,\n },\n noContent: {\n color: 'black',\n fontSize: '12px',\n padding: '10px',\n textAlign: 'center',\n },\n table: {\n minWidth: 650,\n },\n});\n\nconst ClientsActiveTable: React.FC = observer((props: any) => {\n const [searchApplied, setSearchApplied] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null),\n [currId, setCurrId] = useState(''),\n [currentDeviceInfo, setCurrentDeviceInfo] = useState({}),\n handleClick = (\n event: React.MouseEvent,\n id: string,\n row: any,\n ) => {\n setCurrId(id);\n setAnchorEl(event.currentTarget);\n setCurrentDeviceInfo(row);\n },\n [hoveredRow, setHoveredRow] = useState(0),\n { downloadCompanyAlarms } = useDownloadUsersAlarms(),\n [deviceInfoOpen, setDeviceInfoOpen] = React.useState(false),\n [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false),\n [transfersOpen, setTransfersOpen] = useState(false),\n [clearPersonalOpen, setClearPersonalOpen] = useState(false),\n [clearAccountOpen, setClearAccountOpen] = useState(false),\n [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n },\n [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n }),\n handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n },\n { clients, loading, reload } = useFetchClients(\n rowsPerPage,\n page,\n 'active',\n currentSort,\n SearchStore.searchMode && SearchStore.startSearch,\n ),\n { enqueueSnackbar } = useSnackbar(),\n handleTransfersClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n enqueueSnackbar(\n 'Data Access Permission Authorized Successfully',\n SnackBarConfig('s'),\n );\n reload({ limit: rowsPerPage, offset: page });\n }\n setTransfersOpen(false);\n handleClose();\n },\n handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n },\n handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n },\n handleDownloadCompanyAlarms = () => {\n downloadCompanyAlarms(currId);\n },\n handleClearAccountData = () => {\n setClearAccountOpen(true);\n handleClose();\n },\n handleClearPersonalData = () => {\n setClearPersonalOpen(true);\n handleClose();\n },\n handleClearPersonalDataClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n reload({ limit: rowsPerPage, offset: page });\n }\n setClearPersonalOpen(false);\n handleClose();\n },\n handleClearAccountDataClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n reload({ limit: rowsPerPage, offset: page });\n }\n setClearAccountOpen(false);\n handleClose();\n },\n handleClose = () => {\n // setCurrId('');\n setAnchorEl(null);\n },\n handleTransfers = () => {\n handleClose();\n setTransfersOpen(true);\n },\n menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadCompanyAlarms, value: 'Download Alarms' },\n { handler: handleTransfers, value: 'Transfer' },\n { handler: handleClearPersonalData, value: 'Clear Personal Data' },\n {\n handler: handleClearAccountData,\n value: 'Clear Account & Personal Data',\n },\n ],\n classes = useStyles();\n\n useEffect(() => {\n SearchStore.initSearch('clientsActive');\n }, []);\n\n const {\n searchClients,\n loading: searchLoading,\n clients: searchResp,\n } = useSearchClients();\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n if (!searchApplied) {\n setPage(0);\n }\n setSearchApplied(true);\n searchClients(SearchStore.searchTerm, 'active', {\n limit: rowsPerPage,\n offset: page,\n });\n } else {\n if (searchApplied) {\n setPage(0);\n setSearchApplied(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch]);\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: any, i: number) => (\n setHoveredRow(i)} key={i}>\n \n {row.first_name || '-'} {row.last_name || '-'}\n \n {row.phone || '-'}\n {row.gender || '-'}\n \n {row.dob ? moment(row.dob).format('L') : '-'}\n \n \n {row.diagnosis.join(', ')}\n {row.otherdiagnosis ? `, ${row.otherdiagnosis as string}` : '-'}\n \n \n {row.lastLog && row.lastLog.created_at\n ? moment(row.lastLog.created_at).format('L @ LT')\n : '-'}\n \n {row.deviceId}\n \n {hoveredRow === i && (\n handleClick(e, row.id, row)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n className={classes.iconButton}\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))\n ) : (\n

No active clients found

\n );\n };\n\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n\n return (\n <>\n {deviceInfoOpen && (\n {\n setDeviceInfoOpen(false);\n }}\n open={deviceInfoOpen}\n currentDeviceInfo={\n currentDeviceInfo && currentDeviceInfo.lastLog\n ? currentDeviceInfo.lastLog\n : null\n }\n />\n )}\n {transfersOpen && (\n \n )}\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n userId={currId}\n />\n )}\n {clearPersonalOpen && (\n \n )}\n {clearAccountOpen && (\n \n )}\n\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n USER\n handleSortChange(e)}\n />\n \n \n \n \n PHONE NUMBER\n handleSortChange(e)}\n />\n \n \n \n \n GENDER\n handleSortChange(e)}\n />\n \n \n \n \n DATE OF BIRTH\n handleSortChange(e)}\n />\n \n \n \n \n DIAGNOSIS\n \n \n \n \n LAST LOG\n handleSortChange(e)}\n />\n \n \n \n \n SERIAL NO.\n handleSortChange(e)}\n />\n \n \n \n \n \n\n {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch ? (\n <>\n {renderTable(searchResp)}\n {renderFooter(searchResp?.count)}\n \n ) : (\n <>\n {renderTable(clients)}\n {renderFooter(clients?.count)}\n \n ))}\n
\n \n {(loading || searchLoading) && }\n \n );\n});\n\nexport default ClientsActiveTable;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport moment from 'moment';\nimport { useSnackbar } from 'notistack';\nimport React, { useEffect, useState } from 'react';\n\nimport {\n DeviceInfoDialog,\n TransferDialog,\n ViewAlarmsDialog,\n} from '../../../components/Dialog';\nimport ClearPersonalDataDialog from '../../../components/Dialog/ClearPersonalDataDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { SearchStore } from '../../../hooks';\nimport { useDownloadUsersAlarms } from '../../../hooks/alarms/alarmsServices';\nimport {\n useFetchClients,\n useSearchClients,\n} from '../../../hooks/clients/clientsServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nconst useStyles = makeStyles({\n iconButton: {\n padding: 0,\n },\n table: {\n minWidth: 650,\n },\n});\n\nconst ClientsArchiveTable: React.FC = (props: any) => {\n const [searchApplied, setSearchApplied] = useState(false);\n const [anchorEl, setAnchorEl] = useState(null),\n [currId, setCurrId] = useState(''),\n [currentDeviceInfo, setCurrentDeviceInfo] = useState({}),\n handleClick = (\n event: React.MouseEvent,\n id: string,\n row: any,\n ) => {\n setCurrId(id);\n setAnchorEl(event.currentTarget);\n setCurrentDeviceInfo(row);\n },\n [hoveredRow, setHoveredRow] = useState(0),\n { downloadCompanyAlarms } = useDownloadUsersAlarms(),\n [deviceInfoOpen, setDeviceInfoOpen] = React.useState(false),\n [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false),\n [clearPersonalOpen, setClearPersonalOpen] = useState(false),\n [clearAccountOpen, setClearAccountOpen] = useState(false),\n [transfersOpen, setTransfersOpen] = useState(false),\n [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n },\n [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n }),\n handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n },\n { clients, loading, reload } = useFetchClients(\n rowsPerPage,\n page,\n 'inactive',\n currentSort,\n SearchStore.searchMode && SearchStore.startSearch,\n ),\n classes = useStyles(),\n { enqueueSnackbar } = useSnackbar(),\n handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n },\n handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n },\n handleTransfersClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n enqueueSnackbar(\n 'Data Access Permission Authorized Successfully',\n SnackBarConfig('s'),\n );\n reload({ limit: rowsPerPage, offset: page });\n }\n setTransfersOpen(false);\n handleClose();\n },\n handleDownloadCompanyAlarms = () => {\n downloadCompanyAlarms(currId);\n },\n handleClearAccountData = () => {\n setClearAccountOpen(true);\n handleClose();\n },\n handleClearPersonalData = () => {\n setClearPersonalOpen(true);\n handleClose();\n },\n handleClearPersonalDataClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n reload({ limit: rowsPerPage, offset: page });\n }\n setClearPersonalOpen(false);\n handleClose();\n },\n handleClearAccountDataClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n reload({ limit: rowsPerPage, offset: page });\n }\n setClearAccountOpen(false);\n handleClose();\n },\n handleClose = () => {\n // setCurrId('');\n setAnchorEl(null);\n },\n handleTransfers = () => {\n handleClose();\n setTransfersOpen(true);\n },\n menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadCompanyAlarms, value: 'Download Alarms' },\n { handler: handleTransfers, value: 'Transfer' },\n { handler: handleClearPersonalData, value: 'Clear Personal Data' },\n {\n handler: handleClearAccountData,\n value: 'Clear Account & Personal Data',\n },\n ];\n\n useEffect(() => {\n SearchStore.initSearch('clientsArchive');\n }, []);\n\n const {\n searchClients,\n loading: searchLoading,\n clients: searchResp,\n } = useSearchClients();\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n if (!searchApplied) {\n setPage(0);\n }\n setSearchApplied(true);\n searchClients(SearchStore.searchTerm, 'inactive', {\n limit: rowsPerPage,\n offset: page,\n });\n } else {\n if (searchApplied) {\n setPage(0);\n setSearchApplied(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch]);\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: any, i: number) => (\n setHoveredRow(i)} key={i}>\n {/* \n {row.first_name} {row.last_name}\n \n {row.phone}\n {row.gender}\n \n {row.dob ? moment(row.dob).format('L') : '-'}\n */}\n \n {row.diagnosis.join(', ')}\n {row.otherdiagnosis ? `, ${row.otherdiagnosis as string}` : ''}\n \n \n {row.lastLog && row.lastLog.created_at\n ? moment(row.lastLog.created_at).format('L @ LT')\n : '-'}\n \n {row.deviceId}\n \n {hoveredRow === i && (\n handleClick(e, row.id, row)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n className={classes.iconButton}\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))\n ) : (\n

No archived clients found

\n );\n };\n\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n\n return (\n <>\n {deviceInfoOpen && (\n {\n setDeviceInfoOpen(false);\n }}\n open={deviceInfoOpen}\n currentDeviceInfo={\n currentDeviceInfo && currentDeviceInfo.lastLog\n ? currentDeviceInfo.lastLog\n : null\n }\n />\n )}\n {transfersOpen && (\n \n )}\n {clearPersonalOpen && (\n \n )}\n {clearAccountOpen && (\n \n )}\n\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={''}\n />\n )}\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n \n \n \n \n {/* \n \n USER\n handleSortChange(e)}\n />\n \n \n \n \n PHONE NUMBER\n handleSortChange(e)}\n />\n \n \n \n \n GENDER\n handleSortChange(e)}\n />\n \n \n \n \n DATE OF BIRTH\n handleSortChange(e)}\n />\n \n */}\n \n \n DIAGNOSIS\n \n \n \n \n LAST LOG\n handleSortChange(e)}\n />\n \n \n \n \n SERIAL NO.\n handleSortChange(e)}\n />\n \n \n \n \n \n\n {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch ? (\n <>\n {renderTable(searchResp)}\n {renderFooter(searchResp?.count)}\n \n ) : (\n <>\n {renderTable(clients)}\n {renderFooter(clients?.count)}\n \n ))}\n
\n \n {(loading || searchLoading) && }\n \n );\n};\n\nexport default observer(ClientsArchiveTable);\n","import { Button, Grid } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback } from 'react';\n\nimport { CancelButtonContained } from '../../../components/Buttons';\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useCustomStore } from '../../../hooks';\nimport { UserStatusInput } from '../../../types';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (msg: string) => void;\n}\n\ntype IStatusUserDialog = {\n open: boolean;\n id: string;\n onClose: (msg?: string) => void;\n status: 'completed' | 'denied';\n message: string;\n};\n\nconst DeleteRequestDialog: React.FC = ({\n open,\n onClose,\n status,\n id,\n message,\n}) => {\n const { enqueueSnackbar } = useSnackbar();\n const { apiStore } = useCustomStore();\n const updateClose = useCallback(\n async (data: UserStatusInput, handleClose: any) => {\n const addUserResp = await apiStore.clientsApi.updateDeleteRequests(\n data.id,\n data.status,\n );\n if (addUserResp.isOk()) {\n enqueueSnackbar(\n `The Delete Request Has Been ${\n status === 'completed' ? 'Completed' : 'Denied'\n }.`,\n SnackBarConfig('s'),\n );\n handleClose('Success');\n } else {\n enqueueSnackbar(addUserResp.error.message, SnackBarConfig('e'));\n }\n },\n [apiStore, enqueueSnackbar, status],\n );\n\n const title = message;\n const handleClose = (msg = '') => {\n onClose && onClose(msg);\n };\n\n const actionButtons = (\n \n \n handleClose('')}\n fullWidth\n type=\"button\">\n No, Cancel\n \n \n \n \n updateClose({ id, status: status || 'inactive' }, handleClose)\n }\n fullWidth\n size=\"large\"\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n Yes, {status === 'completed' ? 'Confirm' : 'Deny'}\n \n \n \n );\n\n return (\n \n );\n};\n\nexport default DeleteRequestDialog;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react';\nimport React, { useState } from 'react';\n\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { useFetchDeleteRequests } from '../../../hooks/clients/clientsServices';\nimport { DeleteRequestTypes } from '../../../types';\nimport DeleteRequestDialog from './DeleteRequestDialog';\n\nconst useStyles = makeStyles({\n iconButton: {\n padding: 0,\n },\n noContent: {\n color: 'black',\n fontSize: '12px',\n padding: '10px',\n textAlign: 'center',\n },\n table: {\n minWidth: 650,\n },\n});\n\ntype DeleteType = {\n type: 'FullAccountData' | 'PersonalData';\n user: any;\n status: string;\n id: string;\n};\nconst DeleteRequests: React.FC = observer((props: any) => {\n const [anchorEl, setAnchorEl] = useState(null),\n [currId, setCurrId] = useState(''),\n handleClick = (event: React.MouseEvent, id: string) => {\n setCurrId(id);\n setAnchorEl(event.currentTarget);\n },\n [hoveredRow, setHoveredRow] = useState(0),\n [approveOpen, setApproveOpen] = React.useState(false),\n [denyOpen, setDenyOpen] = React.useState(false),\n [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n }),\n handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n },\n { deleteRequests, loading, reload } = useFetchDeleteRequests(\n rowsPerPage,\n page,\n currentSort,\n ),\n handleApproveRequest = () => {\n handleClose();\n setApproveOpen(true);\n },\n handleDenyRequest = () => {\n handleClose();\n setDenyOpen(true);\n },\n handleApproveRequestClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n reload({ limit: rowsPerPage, offset: page });\n }\n setApproveOpen(false);\n handleClose();\n },\n handleDenyRequestClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n reload({ limit: rowsPerPage, offset: page });\n }\n setDenyOpen(false);\n handleClose();\n },\n handleClose = () => {\n setAnchorEl(null);\n },\n menuItems = [\n { handler: handleDenyRequest, value: 'Deny Request' },\n { handler: handleApproveRequest, value: 'Approve Request' },\n ],\n classes = useStyles();\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: DeleteType, i: number) => (\n setHoveredRow(i)} key={i}>\n {/* \n {row.user.first_name} {row.user.last_name}\n \n {row.user.phone}\n {row.user.gender} */}\n \n {row.status}\n \n {DeleteRequestTypes[row.type]}\n \n {hoveredRow === i && row.status === 'initiated' && (\n handleClick(e, row.id)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n className={classes.iconButton}\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))\n ) : (\n

No requests found

\n );\n };\n\n const handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n };\n\n const handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n return (\n <>\n {approveOpen && (\n \n )}\n {denyOpen && (\n \n )}\n\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n {/* \n \n USER\n handleSortChange(e)}\n />\n \n \n \n \n PHONE NUMBER\n handleSortChange(e)}\n />\n \n \n \n \n GENDER\n handleSortChange(e)}\n />\n \n */}\n \n \n STATUS\n handleSortChange(e)}\n />\n \n \n \n TYPE\n \n\n \n \n \n {loading || (\n <>\n {renderTable(deleteRequests)}{' '}\n \n \n \n \n \n \n )}\n
\n \n {loading && }\n \n );\n});\n\nexport default DeleteRequests;\n","import { createStyles, makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) =>\n createStyles({\n buttonSection: {\n alignItems: 'center',\n display: 'flex',\n flexDirection: 'column',\n },\n cancelLink: {\n color: theme.palette.text.secondary,\n cursor: 'pointer',\n fontSize: '16px',\n height: 21,\n letterSpacing: '0',\n lineHeight: '21px',\n marginBottom: theme.spacing(3),\n textAlign: 'center',\n },\n dialog: {\n '& .MuiDialog-paperScrollPaper': {\n '@media screen and (max-width: 600px)': {\n width: '100%',\n },\n backgroundColor: theme.palette.common.white,\n borderRadius: 0,\n boxShadow: '0 0.31rem 0.625rem 0 rgba(0, 0, 0, 0.11)',\n height: 'auto',\n width: '450px',\n },\n },\n dialogSubTitle: {\n color: theme.palette.text.disabled,\n fontSize: '16px',\n letterSpacing: '0',\n lineHeight: '21px',\n marginTop: theme.spacing(1),\n width: '100%',\n },\n dialogTitle: {\n color: theme.palette.text.primary,\n fontSize: 26,\n fontWeight: 'bold',\n height: 34,\n letterSpacing: 0,\n lineHeight: '34px',\n },\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n formLabelClass: {\n color: theme.palette.text.primary,\n fontSize: 15,\n fontWeight: 'bold',\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n marginTop: theme.spacing(2),\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n },\n helperText: {\n color: theme.palette.warning.main,\n },\n inline: {\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n },\n inputSelect: {\n '& select': {\n backgroundColor: theme.palette.common.white,\n textTransform: 'capitalize',\n width: '100%',\n },\n },\n listLabel: {\n marginTop: '20px',\n transform: 'none',\n },\n loader: {\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n },\n menuItem: {\n backgroundColor: theme.palette.common.white + '!important',\n color: theme.palette.text.primary,\n fontSize: 15,\n height: 20,\n letterSpacing: '0',\n lineHeight: '20px',\n textTransform: 'capitalize',\n },\n radio: {\n color: 'gray !important',\n },\n radioChecked: {\n color: '#00C89A !important',\n },\n root: {\n '& .MuiOutlinedInput-root': {\n border: 0,\n },\n '& .MuiToolbar-regular': {\n minHeight: 0,\n },\n },\n submit: {\n borderRadius: 28,\n color: theme.palette.common.white,\n fontSize: 17,\n fontWeight: 'bold',\n height: 56,\n letterSpacing: '0',\n lineHeight: '30px',\n marginBottom: theme.spacing(3),\n marginTop: theme.spacing(3),\n textAlign: 'center',\n textTransform: 'capitalize',\n },\n }),\n);\n\nexport default useStyles;\n","/* eslint-disable camelcase */\nimport { yupResolver } from '@hookform/resolvers/yup';\nimport {\n FormControl,\n // FormControlLabel,\n FormLabel,\n // InputLabel,\n MenuItem,\n Select,\n // Radio,\n // RadioGroup,\n TextField,\n} from '@material-ui/core';\nimport Button from '@material-ui/core/Button';\nimport { observer } from 'mobx-react-lite';\nimport { useSnackbar } from 'notistack';\nimport React, { ReactElement, useCallback } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\n\nimport { useCustomStore } from '../../../hooks';\nimport { useFetchAllCompanies } from '../../../hooks/companies/companiesServices';\nimport {\n AddUserFormInput,\n AddUserFormInput2,\n UpdateUserInput,\n} from '../../../types';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport { addUserSchema2 } from '../../../utils/ValidatorSchema';\nimport { PrimaryPopupDialog } from '..';\nimport useStyles from './AddUserDialogStyles';\n\ntype IAddUserDialog = {\n isOpen: boolean;\n popupClose: (message?: 'success') => void;\n isEdit?: boolean;\n editData?: {\n first_name: string;\n last_name: string;\n email: string;\n companyId: string;\n id: string;\n };\n};\n\nconst AddUserDialog = (props: IAddUserDialog): ReactElement => {\n const { isOpen, isEdit, editData } = props;\n const classes = useStyles();\n const { companies } = useFetchAllCompanies({ name: '', order: '' });\n const { apiStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = React.useState(false);\n\n // validation\n const {\n control,\n // reset,\n handleSubmit,\n formState: { errors },\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n companyId: isEdit ? (editData ? editData.companyId : '') : '',\n email: isEdit ? (editData ? editData.email : '') : '',\n userName: isEdit\n ? `${editData ? editData.first_name : ''} ${\n editData ? editData.last_name : ''\n }`\n : '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(addUserSchema2),\n shouldFocusError: true,\n });\n\n const closeDialog = useCallback(\n (message?: 'success'): void => {\n props.popupClose(message);\n },\n [props],\n );\n\n const submitAddUser = useCallback(\n async (data: AddUserFormInput2) => {\n setLoading(true);\n const [first_name] = data.userName.split(' ');\n const last_name = data.userName.substr(data.userName.indexOf(' ') + 1);\n const data2: AddUserFormInput = {\n companyId: data.companyId,\n email: data.email,\n first_name,\n last_name,\n };\n const addUserResp = await apiStore.userApi.addUser(data2);\n if (addUserResp.isOk()) {\n enqueueSnackbar('Added new user successfully', SnackBarConfig('s'));\n closeDialog('success');\n } else {\n enqueueSnackbar(addUserResp.error.message, SnackBarConfig('e'));\n }\n setLoading(false);\n },\n [apiStore, closeDialog, enqueueSnackbar],\n );\n\n const submitUpdateUser = useCallback(\n async (data: AddUserFormInput2) => {\n setLoading(true);\n const [first_name] = data.userName.split(' ');\n const last_name = data.userName.substr(data.userName.indexOf(' ') + 1);\n const data2: UpdateUserInput = {\n first_name,\n id: editData ? editData.id : '',\n last_name,\n };\n const updateUserResp = await apiStore.userApi.updateUser(data2);\n if (updateUserResp.isOk()) {\n enqueueSnackbar('Updated user successfully', SnackBarConfig('s'));\n closeDialog('success');\n } else {\n enqueueSnackbar(updateUserResp.error.message, SnackBarConfig('e'));\n }\n setLoading(false);\n },\n [apiStore, closeDialog, editData, enqueueSnackbar],\n );\n\n const actionButtons = (\n \n {isEdit ? 'Update' : 'Add'}\n \n );\n\n return (\n \n
\n \n
\n (\n \n )}\n />\n
\n
\n
\n (\n \n )}\n />\n
\n \n \n Company Name\n \n \n\n (\n \n {companies?.map((val: any) => {\n return (\n \n {val.name}\n \n );\n })}\n \n )}\n />\n {/* \n \n Provider Portal Access\n \n (\n \n \n }\n label=\"Yes\"\n />\n \n }\n label=\"No\"\n />\n \n )}\n />\n\n \n \n Provider Portal Access\n \n \n }\n label=\"Yes\"\n />\n }\n label=\"No\"\n />\n \n \n */}\n \n \n {/* */}\n \n );\n};\n\nexport default observer(AddUserDialog);\n","import { Button, Grid } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback } from 'react';\n\nimport { CancelButtonContained } from '../../../components/Buttons';\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useCustomStore } from '../../../hooks';\nimport { UserStatusInput } from '../../../types';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (msg: string) => void;\n}\n\ntype IStatusUserDialog = {\n open: boolean;\n id: string;\n onClose: (msg?: string) => void;\n status: 'active' | 'inactive';\n message: string;\n};\n\nconst ArchiveAdminDialog: React.FC = ({\n open,\n onClose,\n status,\n id,\n message,\n}) => {\n // const handleClose = React.useCallback(\n // (message?: 'success'): void => {\n // popupClose(message);\n // },\n // [popupClose],\n // );\n const { enqueueSnackbar } = useSnackbar();\n const { apiStore } = useCustomStore();\n const updateClose = useCallback(\n async (data: UserStatusInput, handleClose: any) => {\n const addUserResp = await apiStore.adminUsersApi.updateAdminStatus(data);\n if (addUserResp.isOk()) {\n enqueueSnackbar(\n `${\n status === 'active' ? 'Activated' : 'Archived'\n } Admin Successfully.`,\n SnackBarConfig('s'),\n );\n handleClose('success');\n } else {\n enqueueSnackbar(addUserResp.error.message, SnackBarConfig('e'));\n }\n },\n [apiStore, enqueueSnackbar, status],\n );\n\n const title = message;\n const handleClose = (msg = '') => {\n onClose && onClose(msg);\n };\n\n const actionButtons = (\n \n \n handleClose('')}\n fullWidth\n type=\"button\">\n No, Cancel\n \n \n \n \n updateClose({ id, status: status || 'inactive' }, handleClose)\n }\n fullWidth\n size=\"large\"\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n Yes, {status === 'active' ? 'Activate' : 'Archive'}\n \n \n \n );\n\n return (\n \n );\n};\n\nexport default ArchiveAdminDialog;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useImperativeHandle, useState } from 'react';\n\n// import UserStatusDialog from '../../../components/Dialog/UserStatusDialog/UserStatusDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { AdminUserDTO } from '../../../core/types/AdminUsersDTO';\nimport { SearchStore } from '../../../hooks';\nimport {\n useFetchAdminUsers,\n useSearchAdmins,\n} from '../../../hooks/adminUsers/adminUsersService';\n// import { useFetchAdminUsers } from '../../../hooks/adminUsers/adminUsersService';\nimport { GetUserInput } from '../../../types';\nimport ArchiveAdminDialog from './ArchiveAdminDialog';\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 650,\n },\n});\n\nconst AdminUsersArchivedTable: React.FC = observer(\n (props: any, ref) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [currId, setCurrId] = useState('');\n const [modalOpen, setModalOpen] = useState(false);\n const [inputField, setInputField] = useState({\n status: 'inactive',\n });\n const [searchApplied, setSearchApplied] = useState(false);\n const handleClick = (\n event: React.MouseEvent,\n id: string,\n ) => {\n setCurrId(id);\n setAnchorEl(event.currentTarget);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n const handleClose = () => {\n // setCurrId('');\n setAnchorEl(null);\n };\n const activateUser = () => {\n handleClose();\n setModalOpen(true);\n };\n const popupClose = (message?: string | undefined) => {\n if (message) {\n setInputField({\n ...inputField,\n reload: true,\n });\n }\n setModalOpen(false);\n handleClose();\n };\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n const menuItems = [{ handler: activateUser, value: 'Activate Admin' }];\n const { admins, loading, reload } = useFetchAdminUsers(\n inputField,\n rowsPerPage,\n page,\n currentSort,\n SearchStore.searchMode && SearchStore.startSearch,\n );\n\n useImperativeHandle(\n ref,\n () => ({\n reloadAdmins() {\n reload({ limit: rowsPerPage, offset: page });\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [reload],\n );\n\n const classes = useStyles();\n\n useEffect(() => {\n SearchStore.initSearch('adminsArchived');\n }, []);\n\n const {\n searchAdmins,\n loading: searchLoading,\n admins: searchResp,\n } = useSearchAdmins(currentSort);\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n if (!searchApplied) {\n setPage(0);\n }\n setSearchApplied(true);\n searchAdmins(SearchStore.searchTerm, 'inactive', {\n limit: rowsPerPage,\n offset: page,\n });\n } else {\n if (searchApplied) {\n setPage(0);\n setSearchApplied(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch, page, rowsPerPage]);\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: AdminUserDTO, i: number) => (\n setHoveredRow(i)} key={i}>\n \n {row.first_name !== null ? row.first_name : '-'}{' '}\n {row.last_name !== null ? row.last_name : '-'}\n \n {row.email}\n {row.companyName}\n \n {hoveredRow === i && (\n handleClick(e, row.id)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))\n ) : (\n

No archived admins found

\n );\n };\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n return (\n <>\n {modalOpen && (\n \n )}\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n USER\n handleSortChange(e)}\n />\n \n \n \n \n EMAIL\n handleSortChange(e)}\n />\n \n \n \n \n companyName\n handleSortChange(e)}\n />\n \n \n \n \n \n {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch ? (\n <>\n {renderTable(searchResp)}\n {renderFooter(searchResp?.count)}\n \n ) : (\n <>\n {renderTable(admins)}\n {renderFooter(admins?.count)}\n \n ))}\n \n \n\n {(loading || searchLoading) && }\n \n );\n },\n { forwardRef: true },\n);\n\nexport default AdminUsersArchivedTable;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport React, {\n ReactElement,\n useEffect,\n useImperativeHandle,\n useState,\n} from 'react';\n\nimport AddUserDialog from '../../../components/Dialog/AddUserDialog/AddUserDialog';\n// import UserStatusDialog from '../../../components/Dialog/UserStatusDialog/UserStatusDialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { AdminUserDTO } from '../../../core/types/AdminUsersDTO';\nimport { SearchStore } from '../../../hooks';\nimport {\n useFetchAdminUsers,\n useSearchAdmins,\n useSendConfirmation,\n} from '../../../hooks/adminUsers/adminUsersService';\nimport { GetUserInput } from '../../../types';\nimport ArchiveAdminDialog from './ArchiveAdminDialog';\n\nconst useStyles = makeStyles({\n iconButton: {\n padding: 0,\n },\n table: {\n minWidth: 650,\n },\n});\n\nconst AdminUsersCurrentTable: React.FC = observer(\n (props: any, ref) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [currId, setCurrId] = useState('');\n const [currentUser, setCurrentUser] = useState({});\n const [modalOpen, setModalOpen] = useState(false);\n const [inputField, setInputField] = useState({\n status: 'active',\n });\n const [showAddDialog, setShowAddDialog] = useState(false);\n const { sendConfirmation } = useSendConfirmation();\n const [searchApplied, setSearchApplied] = useState(false);\n const handleClick = (\n event: React.MouseEvent,\n id: string,\n currentUser: any,\n ) => {\n setCurrId(id);\n setAnchorEl(event.currentTarget);\n setCurrentUser(currentUser);\n };\n\n const [hoveredRow, setHoveredRow] = useState(0);\n const handleClose = () => {\n // setCurrId('');\n setAnchorEl(null);\n };\n const archiveUser = () => {\n handleClose();\n setModalOpen(true);\n };\n\n const sendConfirmationHandler = () => {\n sendConfirmation(currId);\n handleClose();\n };\n const popupClose = (message: string | undefined) => {\n if (message) {\n setInputField({\n ...inputField,\n reload: true,\n });\n }\n setModalOpen(false);\n handleClose();\n };\n const openAddDialog = (): void => {\n handleClose();\n setShowAddDialog(true);\n };\n const menuItems = [\n { handler: openAddDialog, value: 'Edit' },\n { handler: archiveUser, value: 'Archive Admin' },\n { handler: sendConfirmationHandler, value: 'Send Confirmation' },\n ];\n\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n const { admins, loading, reload } = useFetchAdminUsers(\n inputField,\n rowsPerPage,\n page,\n currentSort,\n SearchStore.searchMode && SearchStore.startSearch,\n );\n const {\n searchAdmins,\n loading: searchLoading,\n admins: searchResp,\n } = useSearchAdmins(currentSort);\n const performOperation = (e: 'success' | undefined): void => {\n setShowAddDialog(false);\n if (e === 'success') {\n reloadAdmins();\n }\n };\n const reloadAdmins = () => {\n reload({ limit: rowsPerPage, offset: page });\n // reload(SearchStore.searchTerm || '', 'active', {\n // limit: rowsPerPage,\n // offset: page * rowsPerPage,\n // });\n };\n\n useImperativeHandle(\n ref,\n () => ({\n reloadAdmins() {\n // reload(SearchStore.searchTerm || '', 'active', {\n // limit: rowsPerPage,\n // offset: page * rowsPerPage,\n // });\n reload({ limit: rowsPerPage, offset: page });\n },\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [reload],\n );\n\n const classes = useStyles();\n\n useEffect(() => {\n SearchStore.initSearch('adminsActive');\n }, []);\n\n const renderAddDialog = (): ReactElement => {\n return (\n \n );\n };\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n if (!searchApplied) {\n setPage(0);\n }\n setSearchApplied(true);\n searchAdmins(SearchStore.searchTerm, 'active', {\n limit: rowsPerPage,\n offset: page * rowsPerPage,\n });\n } else {\n if (searchApplied) {\n setPage(0);\n setSearchApplied(false);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch, page, rowsPerPage]);\n\n const renderTable = (data: any) => {\n return data && data.count ? (\n data.data.map((row: AdminUserDTO, i: number) => (\n setHoveredRow(i)} key={i}>\n \n {row.first_name !== null ? row.first_name : '-'}{' '}\n {row.last_name !== null ? row.last_name : '-'}\n \n {row.email}\n {row.companyName}\n {/* */}\n {/* {row.providerAccess ? 'Yes' : 'No'}*/}\n {/* */}\n \n {hoveredRow === i && (\n handleClick(e, row.id, row)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n className={classes.iconButton}\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))\n ) : (\n

No active admins found

\n );\n };\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n return (\n <>\n {showAddDialog && renderAddDialog()}\n {modalOpen && (\n \n )}\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n USER\n handleSortChange(e)}\n />\n \n \n \n \n EMAIL\n handleSortChange(e)}\n />\n \n \n \n company Name\n \n {/* */}\n {/* */}\n {/* PROVIDER PORTAL ACCESS*/}\n {/* handleSortChange(e)}*/}\n {/* />*/}\n {/* */}\n {/* */}\n\n \n \n \n {loading ||\n searchLoading ||\n (SearchStore.searchMode && SearchStore.startSearch ? (\n <>\n {renderTable(searchResp)}\n {renderFooter(searchResp?.count)}\n \n ) : (\n <>\n {renderTable(admins)}\n {renderFooter(admins?.count)}\n \n ))}\n \n \n\n {(loading || searchLoading) && }\n \n );\n },\n { forwardRef: true },\n);\n\nexport default AdminUsersCurrentTable;\n","import { Button, Grid } from '@material-ui/core';\nimport React, { ReactElement, useRef, useState } from 'react';\n\nimport AddUserDialog from '../../../components/Dialog/AddUserDialog/AddUserDialog';\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { SearchInput } from '../../../components/Forms';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport AdminUsersArchivedTable from './AdminUsersArchivedTable';\nimport AdminUsersCurrentTable from './AdminUsersCurrentTable';\n\nconst AdminUsers = (): React.ReactElement => {\n const [selectedTab, setSelectedTab] = useState(null);\n const [showAddDialog, setShowAddDialog] = useState(false);\n const openAddDialog = (): void => {\n setShowAddDialog(true);\n };\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n const renderAddDialog = (): ReactElement => {\n return (\n \n );\n };\n const performOperation = (e: 'success' | undefined): void => {\n setShowAddDialog(false);\n if (selectedTab === 'Current' && e === 'success') {\n currentRef && currentRef.current?.reloadAdmins();\n }\n if (selectedTab === 'Archived' && e === 'success') {\n archivedRef && archivedRef.current?.reloadAdmins();\n }\n };\n\n const currentRef = useRef();\n const archivedRef = useRef();\n\n const selectView = () => {\n switch (selectedTab) {\n case 'Current':\n return ;\n case 'Archived':\n return ;\n default:\n return 'loading';\n }\n };\n return (\n \n \n \n \n \n \n \n \n \n\n \n \n Add Admin\n \n \n {selectView()}\n {showAddDialog && renderAddDialog()}\n \n );\n};\n\nexport default AdminUsers;\n","import { makeStyles } from '@material-ui/core/styles';\n\nimport { AppStyles } from '../../../style/variable';\n\nconst useStyles = makeStyles((theme) => ({\n activeUsersLoader: {\n alignItems: 'center',\n display: 'flex',\n justifyContent: 'center',\n marginTop: '80px',\n },\n addUserBtnContainer: {\n alignItems: 'flex-end',\n display: 'flex',\n height: '50px',\n marginBottom: '20px',\n minWidth: 185,\n },\n cancel: {\n cursor: 'pointer',\n },\n gridButton: {\n display: 'inherit',\n width: '20%',\n },\n gridCancel: {\n display: 'inherit',\n minWidth: '15%',\n },\n gridRightContainer: {\n display: 'flex',\n flexDirection: 'row-reverse',\n marginTop: '-22px',\n width: '100%',\n },\n gridRightContainer2: {\n display: 'flex',\n flexDirection: 'row-reverse',\n width: '100%',\n },\n gridRoot: {\n width: '100%',\n },\n gridToolbar: {\n width: '65%',\n },\n heading: {\n color: theme.palette.text.primary,\n fontSize: 27,\n fontWeight: 'bold',\n letterSpacing: 0,\n lineHeight: '36px',\n marginBottom: theme.spacing(1),\n },\n iconButton: {\n padding: 5,\n },\n iconSearchButton: {\n height: 14,\n },\n inline: {\n display: 'flex',\n flexDirection: 'row',\n },\n innerTextbox: {\n background: 'white',\n },\n modRoot: {\n marginLeft: '5%',\n marginRight: '5%',\n marginTop: '5%',\n width: '100%',\n },\n searchContainer: {\n alignItems: 'center',\n display: 'flex',\n marginBottom: '1em',\n marginLeft: '4em',\n },\n searchInput: {\n '& .MuiInput-underline:before, .MuiInput-underline:after': {\n borderBottom: 'none !important',\n },\n '& .MuiInputBase-input': {\n color: `${theme.palette.text.disabled} !important`,\n },\n border: 'none !important',\n boxShadow: 'none',\n color: `${theme.palette.text.disabled} !important`,\n fontFamily: AppStyles.font.regular,\n outline: 'none !important',\n width: 220,\n },\n searchRoot: {\n '&:focus-visible': {\n border: `1px solid ${theme.palette.text.hint}`,\n boxSizing: 'border-box',\n },\n alignItems: 'center',\n backgroundColor: theme.palette.background.default,\n border: `1px solid ${theme.palette.text.hint}`,\n borderRadius: '10px',\n boxShadow: 'none',\n boxSizing: 'border-box',\n color: theme.palette.text.primary,\n display: 'flex',\n height: '40px',\n outline: 'none',\n padding: '2px 4px',\n width: '258px',\n },\n submit: {\n borderRadius: 5,\n color: theme.palette.common.white,\n fontSize: 17,\n height: 48,\n letterSpacing: '0',\n lineHeight: '30px',\n margin: theme.spacing(0),\n\n textAlign: 'center',\n\n textTransform: 'none',\n // minWidth: '126px',\n width: '100%',\n },\n textbox: {\n marginLeft: '25%',\n marginRight: '25%',\n marginTop: '5%',\n },\n underlined: {\n textDecorationLine: 'underline',\n },\n userList: {\n fontSize: 20,\n fontWeight: 'bold',\n letterSpacing: '0',\n lineHeight: '30px',\n marginTop: theme.spacing(3),\n textAlign: 'center',\n textTransform: 'capitalize',\n },\n}));\n\nexport default useStyles;\n","import { TextField } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback, useEffect, useState } from 'react';\n\nimport { MainContainer } from '../../../components/Display';\nimport { useCustomStore } from '../../../hooks';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport useStyles from './AppTextToolsStyles';\n\ntype appProps = {\n title: string;\n isSubmitting: boolean;\n handleAfterSubmit: (error?: string) => void;\n};\nconst AppTextToolsForm = (props: appProps): React.ReactElement => {\n const { title, isSubmitting, handleAfterSubmit } = props;\n const classes = useStyles();\n const { userStore } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [textsLoading, setTextsLoading] = useState(false);\n const [currText, setCurrText] = useState('');\n const [, setOriginalText] = useState('');\n const getAppTexts = useCallback(\n async (title: string) => {\n if (title) {\n setTextsLoading(true);\n const getTextResp = await userStore.fetchAllTexts({\n isDraft: false,\n type: title,\n });\n if (!getTextResp.isOk()) {\n setCurrText('');\n setOriginalText('');\n enqueueSnackbar(getTextResp.error.message, SnackBarConfig('e'));\n } else {\n setCurrText(getTextResp.value.value);\n setOriginalText(getTextResp.value.value);\n }\n }\n setTextsLoading(false);\n },\n [userStore, enqueueSnackbar],\n );\n\n const changeAppText = useCallback(\n async (title, text) => {\n setTextsLoading(true);\n const getTextResp = await userStore.createNewText({\n isDraft: false,\n text,\n type: title,\n });\n if (!getTextResp.isOk()) {\n enqueueSnackbar(getTextResp.error.message, SnackBarConfig('e'));\n handleAfterSubmit(getTextResp.error.message);\n } else {\n enqueueSnackbar(\n 'Text has been updated successfully.',\n SnackBarConfig('s'),\n );\n }\n handleAfterSubmit();\n setTextsLoading(false);\n },\n [userStore, enqueueSnackbar, handleAfterSubmit],\n );\n\n useEffect(() => {\n getAppTexts(title);\n }, [getAppTexts, title]);\n\n useEffect(() => {\n if (isSubmitting) {\n changeAppText(title, currText);\n }\n }, [changeAppText, currText, title, isSubmitting]);\n return (\n \n
\n
\n setCurrText(e.target.value)}\n inputProps={{\n className: classes.innerTextbox,\n }}\n />\n
\n
\n
\n );\n};\nexport default AppTextToolsForm;\n","import { Button } from '@material-ui/core';\nimport React, { useState } from 'react';\n\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport AppTextToolsForm from './AppTextToolsForm';\n\nconst tabs = [\n {\n value: 'Terms & Conditions',\n },\n {\n value: 'Privacy Policy',\n },\n {\n value: 'Compliance',\n },\n {\n value: 'Accessibility',\n },\n {\n value: 'FAQs',\n },\n {\n value: 'User Manual',\n },\n];\n\nconst AppTextTools = (): React.ReactElement => {\n const [selectedTab, setSelectedTab] = useState(null);\n const [isSubmitting, setSubmitting] = useState(false);\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n // const selectView = () => {\n // const tab = tabs.find((x) => x.value === selectedTab);\n // getAppTexts(tab?.value);\n // };\n const onSave = () => {\n setSubmitting(true);\n };\n\n const afterSubmit = (error?: string) => {\n if (error) {\n // error handling\n }\n setSubmitting(false);\n };\n\n return (\n \n \n \n \n Save & Publish\n \n \n \n \n );\n};\n\nexport default AppTextTools;\n","import { useSnackbar } from 'notistack';\nimport { useCallback, useEffect, useState } from 'react';\n\nimport { AdvertisementDTO } from '../../core/types/ProvidersDTO';\nimport {\n checkDownloadResponse,\n checkResponse,\n // checkUploadResponse,\n} from '../../utils/ApiResponseValidator';\nimport { SnackBarConfig } from '../../utils/SnackBarConfig';\nimport { useCustomStore } from '../store';\n\nexport const useFetchAdvertisements = (\n params: any,\n): {\n advertisements: AdvertisementDTO;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const [advertisements, setAdvertisements] = useState(\n null,\n );\n\n const fetchAdvertisements = useCallback(async () => {\n // setAdvertisements(null);\n setLoading(true);\n const providersResp = await advertisementsApiStore.getAllAdvertisements(\n params,\n );\n checkResponse(\n providersResp,\n setLoading,\n setAdvertisements,\n enqueueSnackbar,\n );\n }, [advertisementsApiStore, enqueueSnackbar, params]);\n\n useEffect(() => {\n fetchAdvertisements();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n const reload = () => {\n fetchAdvertisements();\n };\n return { advertisements, loading, reload };\n};\n\nexport const useFetchAdMetrics = (\n adId: string,\n): {\n Metrics: any;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const [Metrics, setMetrics] = useState(null);\n\n const fetchMetrics = useCallback(async () => {\n // setAdvertisements(null);\n setLoading(true);\n if (adId) {\n const providersResp = await advertisementsApiStore.getAdMetrics(adId);\n checkResponse(providersResp, setLoading, setMetrics, enqueueSnackbar);\n }\n }, [adId, advertisementsApiStore, enqueueSnackbar]);\n\n useEffect(() => {\n fetchMetrics();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const reload = () => {\n fetchMetrics();\n };\n return { Metrics, loading, reload };\n};\n\nexport const useDownloadAdMetrics = (): {\n downloadAdMetrics: (id: any) => void;\n loading: boolean;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadAdMetrics = useCallback(\n async (id: string) => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const metricsResp: any = await advertisementsApiStore.downloadAdMetrics(\n id,\n );\n checkDownloadResponse(\n metricsResp,\n setLoading,\n enqueueSnackbar,\n `ad-${id ? id : ''}.xlsx`,\n );\n };\n await download();\n },\n [advertisementsApiStore, enqueueSnackbar],\n );\n\n return { downloadAdMetrics, loading };\n};\n\nexport const useDownloadCompleteAdMetrics = (): {\n downloadAdMetrics: () => void;\n loading: boolean;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const downloadAdMetrics = useCallback(async () => {\n enqueueSnackbar(\n 'Please Wait While Downloading Your File',\n SnackBarConfig('s'),\n );\n const download = async () => {\n const metricsResp: any =\n await advertisementsApiStore.downloadCompleteAdMetrics();\n checkDownloadResponse(\n metricsResp,\n setLoading,\n enqueueSnackbar,\n 'ads-metrics.xlsx',\n );\n };\n await download();\n }, [advertisementsApiStore, enqueueSnackbar]);\n\n return { downloadAdMetrics, loading };\n};\n\nexport const useFetchMetrics = (): {\n Metrics: any;\n loading: boolean;\n reload: () => void;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const [Metrics, setMetrics] = useState(null);\n\n const fetchMetrics = useCallback(async () => {\n // setAdvertisements(null);\n setLoading(true);\n const providersResp = await advertisementsApiStore.getMetrics();\n checkResponse(providersResp, setLoading, setMetrics, enqueueSnackbar);\n }, [advertisementsApiStore, enqueueSnackbar]);\n\n useEffect(() => {\n fetchMetrics();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const reload = () => {\n fetchMetrics();\n };\n return { Metrics, loading, reload };\n};\n\nexport const useFetchDeviceHealth = (): {\n deviceHealth: any;\n loading: boolean;\n reload: () => void;\n updateDeviceHealth: (data: any, id: string) => void;\n deleteDeviceHealth: (id: string) => void;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [deviceHealth, setDeviceHealth] = useState(null);\n\n const fetchDeviceHealth = useCallback(async () => {\n setLoading(true);\n const providersResp = await advertisementsApiStore.getDeviceHealth();\n checkResponse(providersResp, setLoading, setDeviceHealth, enqueueSnackbar);\n }, [advertisementsApiStore, enqueueSnackbar]);\n\n const updateDeviceHealth = useCallback(\n async (data, id) => {\n setLoading(true);\n const providersResp = await advertisementsApiStore.updateDeviceHealth(\n data,\n id,\n );\n if (providersResp.isOk()) {\n enqueueSnackbar('Updated Companies Successfully.', SnackBarConfig('s'));\n }\n checkResponse(\n providersResp,\n setLoading,\n setDeviceHealth,\n enqueueSnackbar,\n );\n },\n [advertisementsApiStore, enqueueSnackbar],\n );\n const reload = useCallback(() => {\n fetchDeviceHealth();\n }, [fetchDeviceHealth]);\n\n const deleteDeviceHealth = useCallback(\n async (id) => {\n setLoading(true);\n const providersResp = await advertisementsApiStore.deleteDeviceHealth(id);\n if (providersResp.isOk()) {\n enqueueSnackbar('Deleted Successfully.', SnackBarConfig('s'));\n reload();\n }\n checkResponse(\n providersResp,\n setLoading,\n setDeviceHealth,\n enqueueSnackbar,\n );\n },\n [advertisementsApiStore, enqueueSnackbar, reload],\n );\n\n useEffect(() => {\n fetchDeviceHealth();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n return {\n deleteDeviceHealth,\n deviceHealth,\n loading,\n reload,\n updateDeviceHealth,\n };\n};\n\nexport const useUploadAd = (): {\n uploadAd: (data: FormData) => void;\n updateAd: (data: FormData, adId: string) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const uploadAd = useCallback(\n async (data: FormData) => {\n setLoading(true);\n enqueueSnackbar(\n 'Please Wait While Uploading Your File.',\n SnackBarConfig('s'),\n );\n const upload = async () => {\n const adResp: any = await advertisementsApiStore.createAdNew(data);\n checkResponse(adResp, setLoading, setResponse, enqueueSnackbar);\n };\n await upload();\n },\n [advertisementsApiStore, enqueueSnackbar],\n );\n const updateAd = useCallback(\n async (data: FormData, adId: string) => {\n setLoading(true);\n enqueueSnackbar(\n 'Please Wait While Updating Your Ad.',\n SnackBarConfig('s'),\n );\n const upload = async () => {\n const adResp: any = await advertisementsApiStore.updateAd(data, adId);\n checkResponse(adResp, setLoading, setResponse, enqueueSnackbar);\n };\n await upload();\n },\n [advertisementsApiStore, enqueueSnackbar],\n );\n return { loading, response, updateAd, uploadAd };\n};\n\nexport const useChangeStatus = (): {\n changeStatus: (status: 'active' | 'archived', adId: string) => void;\n loading: boolean;\n response: any;\n} => {\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n const [response, setResponse] = useState(null);\n const changeStatus = useCallback(\n async (status: 'active' | 'archived', adId: string) => {\n setLoading(true);\n enqueueSnackbar(\n 'Please Wait While Uploading Your File',\n SnackBarConfig('s'),\n );\n const change = async () => {\n const adResp: any = await advertisementsApiStore.changeStatus(\n { status },\n adId,\n );\n checkResponse(adResp, setLoading, setResponse, enqueueSnackbar);\n };\n await change();\n },\n [advertisementsApiStore, enqueueSnackbar],\n );\n\n return { changeStatus, loading, response };\n};\n","import { makeStyles } from '@material-ui/core';\nimport { InputAdornment } from '@material-ui/core';\nimport { IconButton } from '@material-ui/core';\nimport TextField from '@material-ui/core/TextField';\nimport DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport SearchIcon from '@material-ui/icons/Search';\nimport Autocomplete from '@material-ui/lab/Autocomplete';\nimport clsx from 'clsx';\nimport React, { useEffect, useState } from 'react';\n\nimport Loader from '../../../components/Loader/Loader';\n// import { SearchInput } from '../../../components/Forms';\nimport { SortData } from '../../../components/Table/Sorter';\nimport { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\nimport { useFetchAllCompanies } from '../../../hooks/companies/companiesServices';\nimport { AppStyles, TextStyles } from '../../../style/variable';\n\nconst CompanySelector: React.FC<{\n showShadow?: boolean;\n noPadding?: boolean;\n addedCompanies?: any[];\n isDefaultAd?: boolean;\n onCompanyChange?: (val: any[]) => void;\n}> = ({\n showShadow,\n noPadding,\n onCompanyChange,\n addedCompanies,\n isDefaultAd,\n}) => {\n const useStyles = makeStyles(() => ({\n companySelector: {\n '& .description': {\n color: TextStyles.color.primary,\n },\n '& h5': {\n color: TextStyles.color.primary,\n fontFamily: AppStyles.font.bold,\n fontSize: '16px',\n marginBottom: '10px',\n },\n background: 'white',\n borderRadius: '10px',\n boxShadow: showShadow ? '0px 2px 4px 0px rgb(0 0 0 / 10%)' : 'none',\n height: 'min-content',\n padding: noPadding ? '20px 0px' : '30px',\n paddingBottom: noPadding ? '0px' : '30px',\n },\n loader: {\n color: '#8F9CA1',\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '20px',\n textAlign: 'center',\n },\n outlined: {\n '& #combo-box-demo': {\n padding: '4.5px 4px',\n },\n '& .App1-MuiInputBase-input': {\n background: 'white',\n },\n '& .App1-MuiOutlinedInput-root': {\n background: 'white',\n borderRadius: '12px',\n height: '50px',\n overflow: 'hidden',\n },\n borderRadius: '12px',\n },\n selectedCompany: {\n alignItems: 'center',\n background: '#F5F5F5',\n borderRadius: '10px',\n boxShadow: '0px 2px 4px 0px rgb(0 0 0 / 10%)',\n color: '#241A2E',\n display: 'flex',\n fontFamily: AppStyles.font.bold,\n fontSize: '16px',\n height: '54px',\n justifyContent: 'space-between',\n marginTop: '10px',\n padding: '0px',\n paddingLeft: '20px',\n width: '100%',\n },\n }));\n const { admins: me } = useFetchMe();\n let hasCompany = false;\n if (me) {\n const routepage = me?.permissions;\n if (routepage.includes('companies')) {\n hasCompany = true;\n }\n }\n\n const classes = useStyles();\n const [selectedCompanies, setSelectedCompanies] = useState([]);\n const [currentSort] = useState({\n name: '',\n order: '',\n });\n useEffect(() => {\n onCompanyChange && onCompanyChange(selectedCompanies);\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectedCompanies]);\n\n const { companies, loading } = useFetchAllCompanies(currentSort);\n useEffect(() => {\n if (companies?.length) {\n setSelectedCompanies(\n companies\n .filter((val) => addedCompanies?.includes(val.id))\n .map((el) => {\n return { id: el.id, label: el.name };\n }),\n );\n addedCompanies;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [companies]);\n if (!hasCompany) {\n return
;\n } else {\n return (\n
\n {isDefaultAd ? (\n <>\n \n Default Ad\n
\n \n This is the default ad and can not be removed.\n \n \n ) : (\n <>\n {hasCompany ? (\n <>\n
Companies
\n \n All companies will see this ad unless you list out the\n participating companies. Do you want to apply this to certian\n companies only?\n \n \n {\n return {\n id: val.id,\n label: val.name,\n };\n }) || []\n }\n onChange={(event, newValue) => {\n if (\n newValue &&\n !JSON.stringify(selectedCompanies).includes(\n JSON.stringify(newValue),\n )\n ) {\n setSelectedCompanies([...selectedCompanies, newValue]);\n // onCompanyChange && onCompanyChange(selectedCompanies);\n }\n }}\n getOptionLabel={(option: any) => option.label}\n style={{ width: 300 }}\n renderInput={(params: any) => (\n \n \n \n ),\n }}\n />\n )}\n />\n {loading && }\n {selectedCompanies.map((val: any) => {\n return (\n
\n {val.label}\n {\n setSelectedCompanies(\n selectedCompanies.filter(\n (element) => element.id !== val.id,\n ),\n );\n // onCompanyChange && onCompanyChange(selectedCompanies);\n }}>\n \n \n
\n );\n })}\n
\n \n ) : (\n <>\n )}\n \n )}\n \n );\n }\n};\n\nCompanySelector.defaultProps = {\n showShadow: true,\n};\nexport default CompanySelector;\n","import { Grid, TableFooter, TablePagination } from '@material-ui/core';\nimport Paper from '@material-ui/core/Paper';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Table from '@material-ui/core/Table';\nimport TableBody from '@material-ui/core/TableBody';\nimport TableContainer from '@material-ui/core/TableContainer';\nimport TableHead from '@material-ui/core/TableHead';\nimport TableRow from '@material-ui/core/TableRow';\nimport { observer } from 'mobx-react-lite';\n// import moment from 'moment';\nimport momenttz from 'moment-timezone';\nimport React, { useEffect, useState } from 'react';\n\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { SearchStore } from '../../../hooks';\nimport { useSearchAdmins } from '../../../hooks/adminUsers/adminUsersService';\nimport { useFetchAdMetrics } from '../../../hooks/advertisements/advertisements';\n\nconst useStyles = makeStyles({\n iconButton: {\n padding: 0,\n },\n table: {\n minWidth: 650,\n },\n});\n\nconst MetricsTable: React.FC = observer(\n (props: any, ref) => {\n const { adId } = props;\n const { Metrics, loading } = useFetchAdMetrics(adId);\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n\n const classes = useStyles();\n\n const {\n searchAdmins,\n loading: searchLoading,\n admins: searchResp,\n } = useSearchAdmins(currentSort);\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n // if (!searchApplied) {\n // setPage(0);\n // }\n // setSearchApplied(true);\n searchAdmins(SearchStore.searchTerm, 'active', {\n limit: rowsPerPage,\n offset: page,\n });\n } else {\n // if (searchApplied) {\n // setPage(0);\n // // setSearchApplied(false);\n // }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch, page, rowsPerPage]);\n\n const renderTable = (data: any) => {\n return data && data.length ? (\n data\n .map((val: any) => {\n return {\n date: momenttz.tz(val.date, 'America/Chicago').format('MMM DD'),\n percSkip: (val.skipCount / val.viewCount) * 100,\n skipCount: val.skipCount,\n viewCount: val.viewCount,\n };\n })\n .map((row: any, i: number) => (\n \n \n {row.date}\n \n {row.viewCount}\n {row.skipCount}\n \n {(row.percSkip as string) + '%'}\n \n \n \n ))\n ) : (\n

No Metrics Data Found

\n );\n };\n const renderFooter = (count: any) => {\n return count ? (\n \n \n \n \n \n ) : null;\n };\n return (\n <>\n \n \n \n \n \n \n DAY\n handleSortChange(e)}\n />\n \n \n \n \n # OF VIEWS\n handleSortChange(e)}\n />\n \n \n\n \n \n # OF SKIPS\n handleSortChange(e)}\n />\n \n \n \n \n % OF SKIPS\n handleSortChange(e)}\n />\n \n \n \n \n \n <>\n {renderTable(Metrics)}\n {renderFooter(Metrics?.count)}\n \n \n \n\n {(loading || searchLoading) && adId && (\n \n )}\n \n );\n },\n { forwardRef: true },\n);\n\nexport default MetricsTable;\n","import { makeStyles } from '@material-ui/core';\nimport React, { useRef, useState } from 'react';\n\nimport { AppStyles } from '../../../style/variable';\n\nconst useStyles = makeStyles(() => ({\n bottomSection: {\n display: 'flex',\n justifyContent: 'space-between',\n marginTop: '10px',\n },\n bottomText: {\n color: '#565757',\n cursor: 'pointer',\n fontFamily: AppStyles.font.semiBold,\n opacity: '76%',\n textDecoration: 'underline',\n textUnderlineOffset: '1px',\n },\n container: {\n display: 'flex',\n flexDirection: 'column',\n },\n imagePreview: {\n maxWidth: '100%',\n width: '100%',\n },\n uploader: {\n '& .upload-section': {\n alignItems: 'center',\n border: '4px dotted #8F9CA1',\n borderRadius: '8px',\n display: 'flex',\n flexDirection: 'row',\n height: '100%',\n justifyContent: 'center',\n overflow: 'hidden',\n },\n '& .upload-text': {\n color: '#8F9CA1',\n fontFamily: AppStyles.font.regular,\n fontSize: '16px',\n textDecoration: 'underline',\n },\n background: 'white',\n borderRadius: '10px',\n boxShadow: '0px 2px 4px 0px rgb(0 0 0 / 10%)',\n cursor: 'pointer',\n height: '530px',\n padding: '20px',\n },\n}));\n\nconst Uploader: React.FC<{\n onFileUpload?: (file: File) => void;\n selectedImage?: string;\n type?: 'video' | 'image';\n}> = ({ onFileUpload, selectedImage, type }) => {\n const classes = useStyles();\n const [selectedMedia, setSelectedMedia] = useState(null);\n const fileInputRef = useRef(null);\n const onFileInputChange = (event: React.ChangeEvent) => {\n const { files } = event.target;\n if (files) {\n const file = {\n blob: URL.createObjectURL(files[0]),\n fileName: files[0].name,\n path: files[0],\n };\n\n if (\n files[0].type.startsWith('image') ||\n files[0].type.startsWith('video/mp4')\n ) {\n type = files[0].type.startsWith('video/mp4') ? 'video' : 'image';\n\n setSelectedMedia(file);\n onFileUpload && onFileUpload(files[0]);\n }\n }\n };\n\n const onTargetClick = () => {\n fileInputRef?.current?.click();\n };\n\n return (\n
\n
\n
\n {(selectedImage || selectedMedia?.blob) && type === 'image' && (\n \n )}\n {(selectedImage || selectedMedia?.blob) &&\n (type === 'video' ||\n selectedMedia?.path?.type?.startsWith('video/mp4')) && (\n \n )}\n {\n event.currentTarget.value = '';\n }}\n hidden\n accept=\"image/*,video/mp4\"\n />\n {!selectedMedia?.blob && !selectedImage && (\n Upload Image or Video Ad\n )}\n
\n
\n {(selectedImage || selectedMedia?.blob) && (\n
\n Preview\n \n Replace Image\n \n
\n )}\n
\n );\n};\n\nUploader.defaultProps = {\n type: 'image',\n};\n\nexport default Uploader;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, makeStyles, styled, TextField } from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { SecondaryTabs } from '../../../components/Navs';\nimport {\n useDownloadAdMetrics,\n useUploadAd,\n} from '../../../hooks/advertisements/advertisements';\nimport { AppStyles, TextStyles } from '../../../style/variable';\nimport CompanySelector from './CompanySelector';\nimport MetricsTable from './MetricsTable';\nimport Uploader from './Uploader';\n\ntype CreateAdDTO = {\n title: string;\n link: string;\n skipTime: number;\n replayIn: number;\n};\nconst ModButton = styled(Button)({\n '&:hover': {\n background: '#1AB23D',\n },\n background: '#1AB23D',\n});\nconst useStyles = makeStyles(() => ({\n cancel: {\n color: '#565757',\n cursor: 'pointer',\n fontFamily: AppStyles.font.semiBold,\n marginRight: '30px',\n opacity: '76%',\n textDecoration: 'underline',\n textUnderlineOffset: '1px',\n },\n goBack: {\n color: TextStyles.color.primary,\n cursor: 'pointer',\n display: 'block',\n fontSize: '18px',\n marginBottom: '30px',\n textDecoration: 'underline',\n },\n wrapper: {\n display: 'grid',\n gap: '30px',\n gridTemplateColumns: 'repeat(3, 1fr)',\n marginBottom: '30px',\n marginTop: '30px',\n },\n}));\n\nconst CreateHomePageAds: React.FC<{\n goBack?: () => void;\n reload?: () => void;\n redirectTo?: 'Edit' | 'Metrics';\n editData?: any;\n}> = ({ goBack, editData, reload, redirectTo }) => {\n const classes = useStyles();\n const schema = yup.object().shape({\n link: yup.string().required(),\n skipTime: yup.number().required(),\n title: yup.string().required(),\n });\n const { downloadAdMetrics } = useDownloadAdMetrics();\n const { uploadAd, updateAd, loading, response } = useUploadAd();\n const [selectedState, setSelectedState] = useState(redirectTo);\n const [companies, setCompanies] = useState([]);\n const [companyUpdated, setCompanyUpdated] = useState(false);\n const history = useHistory();\n useEffect(() => {\n if (response) {\n (goBack && goBack()) || history.push('/ads/Home Page Ad');\n reload && reload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [goBack, response]);\n const {\n handleSubmit,\n formState: { errors, isValid, isDirty },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n link: editData?.referenceLink || '',\n replayIn: 0,\n skipTime: editData?.skipTime || 0,\n title: editData?.title || '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n const [file, setFile] = useState(\n editData ? 'old' : null,\n );\n const submitAd = (data: CreateAdDTO) => {\n const formData = new FormData();\n if (!editData) {\n file && formData.append('file', file as File);\n formData.append('title', `${data.title}`);\n formData.append('companies', companies.join(',') || '[]');\n formData.append('skipTime', `${data.skipTime}`);\n formData.append('replayTime', `${data.replayIn}`);\n formData.append('adType', 'homePage');\n formData.append('status', 'active');\n formData.append(\n 'fileType',\n file\n ? (file as File).type?.startsWith('video/mp4')\n ? 'video'\n : 'image'\n : 'image',\n );\n formData.append('referenceLink', data.link);\n formData.append('adStatus', 'publish');\n uploadAd(formData);\n } else {\n file && file !== 'old' && formData.append('file', file as File);\n formData.append('title', `${data.title}`);\n formData.append('companies', companies.join(',') || '[]');\n formData.append('skipTime', `${data.skipTime}`);\n formData.append('replayTime', `${data.replayIn}`);\n formData.append('adType', 'homePage');\n formData.append('status', 'active');\n formData.append(\n 'fileType',\n file\n ? (file as File).type?.startsWith('video/mp4')\n ? 'video'\n : 'image'\n : 'image',\n );\n formData.append('referenceLink', data.link);\n formData.append('adStatus', 'publish');\n\n updateAd(formData, editData?.id);\n }\n };\n return (\n <>\n {\n (goBack && goBack()) || history.push('/ads/Home Page Ad');\n }}>\n Back to Home Page Ads\n \n\n val && setSelectedState(val as 'Edit' | 'Metrics')}\n data={[{ value: 'Edit' }, { value: 'Metrics' }]}>\n {editData && selectedState !== 'Metrics' && (\n \n Archive Ad\n \n )}\n {selectedState === 'Metrics' && (\n Filter\n )}\n {selectedState !== 'Metrics' && (\n Cancel\n )}\n\n {selectedState === 'Metrics' && (\n downloadAdMetrics(editData?.id)}\n style={{ marginRight: '10px' }}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n Download\n \n )}\n {editData && selectedState !== 'Metrics' && (\n \n Save Draft\n \n )}\n {selectedState !== 'Metrics' && (\n \n Save & Publish\n \n )}\n \n {selectedState === 'Metrics' && }\n {selectedState !== 'Metrics' && (\n
\n {\n setFile(file);\n }}\n type={editData?.fileType}\n />\n
\n
\n (\n \n )}\n />\n\n (\n \n )}\n />\n\n (\n \n )}\n />\n \n
\n {\n setCompanies(val.map((el) => el.id));\n setCompanyUpdated(true);\n }}\n />\n
\n )}\n \n );\n};\n\nexport default CreateHomePageAds;\n","import { makeStyles } from '@material-ui/core/styles';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback } from 'react';\nimport { Route, Switch, useRouteMatch } from 'react-router-dom';\n\nimport { AdsPreviewTile } from '../../../components/Display';\nimport Loader from '../../../components/Loader/Loader';\nimport { AdvertisementDTO } from '../../../core/types/ProvidersDTO';\nimport { useCustomStore } from '../../../hooks';\nimport { useFetchAdvertisements } from '../../../hooks/advertisements/advertisements';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport CreateHomePageAds from './CreateHomePageAds';\n\nconst useStyles = makeStyles(() => ({\n loader: {\n color: '#8F9CA1',\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '100px',\n textAlign: 'center',\n },\n wrapper: {\n display: 'grid',\n gap: '30px',\n gridTemplateColumns: 'repeat(3, 1fr)',\n marginBottom: '30px',\n marginTop: '30px',\n // gridAutoRows: '100px',\n },\n}));\n\nconst ArchivedAd: React.FC = () => {\n const { path } = useRouteMatch();\n const { advertisements, loading, reload } = useFetchAdvertisements({\n adStatus: 'publish',\n // adType: 'homePage',\n status: 'archived',\n });\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const archive = useCallback(\n async (adId: string) => {\n enqueueSnackbar(\n 'Turning On The Selected Ad To Active.',\n SnackBarConfig('s'),\n );\n const adResp: any = await advertisementsApiStore.changeStatus(\n { status: 'active' },\n adId,\n );\n if (adResp.isOk()) {\n reload();\n }\n },\n [advertisementsApiStore, enqueueSnackbar, reload],\n );\n const classes = useStyles();\n return (\n \n \n {loading && }\n {advertisements && advertisements.count < 1 && (\n
No Ad Found
\n )}\n
\n {advertisements?.data.map((element: AdvertisementDTO) => (\n {\n // setEditData(element);\n // hideNav(true);\n // }}\n onArchiveActivate={() => {\n archive(element.id);\n }}\n />\n ))}\n {/* \n\n \n \n \n \n */}\n
\n
\n \n \n \n
\n );\n};\n\nexport default ArchivedAd;\n","import React, { useState } from 'react';\n\nimport CompanySelector from '../../../screens/admin/Ads/CompanySelector';\nimport PrimaryPopupDialog from '../PrimaryPopupDialog';\n\nconst AdCompanyDialog: React.FC<{\n open: boolean;\n addedCompanies?: any[];\n onClose?: (companies: any[]) => void;\n}> = ({ open, onClose, addedCompanies }) => {\n const [companies, setCompanies] = useState([]);\n const handleClose = () => {\n onClose && onClose(companies);\n };\n\n return (\n \n {\n setCompanies(val);\n }}\n addedCompanies={addedCompanies || []}\n showShadow={false}\n noPadding={true}\n />\n \n );\n};\n\nexport default AdCompanyDialog;\n","import { Grid } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport React from 'react';\n\nimport {\n CancelButtonContained,\n DeleteButtonContained,\n} from '../../../components/Buttons';\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\n\nconst ConfirmDelete: React.FC<{\n open: boolean;\n deleteHealth: (status: boolean) => void;\n onClose: () => void;\n}> = ({ onClose, open, deleteHealth }) => {\n const title = 'Are you sure you want to delete?';\n const handleClose = () => {\n onClose && onClose();\n };\n const actionButtons = (\n <>\n \n }\n onClick={() => {\n deleteHealth(true), handleClose();\n }}\n type=\"submit\">\n Yes, Confirm\n \n \n \n \n No, Cancel\n \n \n \n );\n return (\n \n );\n};\n\nexport default ConfirmDelete;\n","import { TextField } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport { makeStyles } from '@material-ui/styles';\nimport clsx from 'clsx';\nimport React, { useState } from 'react';\n\nimport { DeleteButtonContained } from '../../../components/Buttons';\nimport AdCompanyDialog from '../../../components/Dialog/AdCompanyDialog/AdCompanyDialog';\nimport Loader from '../../../components/Loader/Loader';\n// import DeleteForeverIcon from '@material-ui/icons/DeleteForever';\nimport { useFetchDeviceHealth } from '../../../hooks/advertisements/advertisements';\nimport { useFetchAllCompanies } from '../../../hooks/companies/companiesServices';\nimport { AppStyles, TextStyles } from '../../../style/variable';\nimport ConfirmDelete from './ConfirmDelete';\n\nconst useStyles = makeStyles(() => ({\n cancel: {\n color: '#565757',\n fontFamily: AppStyles.font.semiBold,\n marginRight: '20px',\n opacity: '76%',\n textDecoration: 'underline',\n textUnderlineOffset: '1px',\n },\n companyNames: {\n color: '#241A2E',\n fontSize: '18px',\n },\n container: {\n background: 'white',\n borderRadius: '10px',\n boxShadow: '0px 2px 4px 0px rgb(0 0 0 / 10%)',\n display: 'flex',\n flexDirection: 'row',\n marginTop: '20px',\n padding: '10px',\n position: 'relative',\n },\n edit: {\n color: '#00B1EF',\n cursor: 'pointer',\n fontFamily: AppStyles.font.regular,\n fontSize: '13px',\n marginLeft: '10px',\n textDecoration: 'underline',\n },\n goBack: {\n color: TextStyles.color.primary,\n cursor: 'pointer',\n display: 'block',\n fontSize: '18px',\n marginBottom: '30px',\n textDecoration: 'underline',\n },\n halfWidth: {\n flexGrow: 1,\n width: '100%',\n },\n headers: {\n color: '#241A2E',\n fontFamily: AppStyles.font.bold,\n fontSize: '16px',\n },\n linkBox: {\n // transform: 'scale(0.8)',\n // transformOrigin: 0,\n margin: '10px 20px',\n\n position: 'relative',\n },\n loader: {\n color: '#8F9CA1',\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '100px',\n textAlign: 'center',\n },\n outlined: {\n '& .App1-MuiInputBase-input': {\n background: 'white',\n },\n '& .App1-MuiInputLabel-root': {\n fontFamily: AppStyles.font.bold,\n fontSize: '16px !important',\n },\n '& .App1-MuiOutlinedInput-root': {\n background: 'white',\n // borderRadius: '12px',\n height: '50px',\n overflow: 'hidden',\n },\n borderRadius: '12px',\n },\n rightSection: {\n display: 'flex',\n flexDirection: 'column',\n },\n}));\nconst DeviceHealthPanel: React.FC<{ data: any }> = ({ data }) => {\n const { companies: companyList, loading: companyLoading } =\n useFetchAllCompanies({\n name: '',\n order: '',\n });\n const { updateDeviceHealth, deleteDeviceHealth } = useFetchDeviceHealth();\n const classes = useStyles();\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const [companies, setCompanies] = useState(data.companies);\n const [modalOpen, setModalOpen] = useState(false);\n const [companySelectOpen, setCompanySelectOpen] = useState(false);\n\n const handleDelete = (id: string) => {\n deleteDeviceHealth(id);\n };\n const handleCompanySelector = () => {\n setCompanySelectOpen(true);\n };\n return (\n <>\n {modalOpen && (\n {\n handleDelete(data.id);\n }}\n onClose={() => setModalOpen(false)}\n />\n )}\n {companySelectOpen && (\n {\n setCompanySelectOpen(false);\n setCompanies(vals.map((val: any) => val.id));\n updateDeviceHealth(\n { ...data, companies: vals.map((val: any) => val.id) },\n data.id,\n );\n }}\n open={companySelectOpen}\n />\n )}\n
\n
\n \n \n \n
\n\n \n
\n Companies\n handleCompanySelector()}\n className={classes.edit}>\n Edit\n \n
\n \n {companyLoading && }\n {!companyLoading && (\n \n {companies.length\n ? companies\n .map(\n (val: string) =>\n companyList?.filter((val2) => val === val2.id)[0]\n .name,\n )\n .join(',')\n : 'All'}\n \n )}\n\n }\n onClick={() => setModalOpen(true)}\n type=\"submit\">\n Delete\n \n
\n \n \n \n );\n};\n\nexport default DeviceHealthPanel;\n","import { makeStyles } from '@material-ui/core';\nimport React from 'react';\n\nimport Loader from '../../../components/Loader/Loader';\nimport { useFetchDeviceHealth } from '../../../hooks/advertisements/advertisements';\nimport DeviceHealthPanel from './DeviceHealthPanel';\n\nconst useStyles = makeStyles(() => ({\n loader: {\n color: '#8F9CA1',\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '100px',\n textAlign: 'center',\n },\n}));\n\nconst DeviceHealth: React.FC = () => {\n const { deviceHealth, loading } = useFetchDeviceHealth();\n\n const classes = useStyles();\n return (\n
\n {loading && }\n {deviceHealth &&\n deviceHealth.data.map((val: any, i: number) => (\n \n ))}\n
\n );\n};\n\nexport default DeviceHealth;\n","import { makeStyles } from '@material-ui/core/styles';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback, useState } from 'react';\nimport { Route, Switch, useRouteMatch } from 'react-router-dom';\n\nimport { AdsPreviewTile } from '../../../components/Display';\nimport Loader from '../../../components/Loader/Loader';\nimport { AdvertisementDTO } from '../../../core/types/ProvidersDTO';\nimport { useCustomStore } from '../../../hooks';\nimport { useFetchAdvertisements } from '../../../hooks/advertisements/advertisements';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport CreateHomePageAds from './CreateHomePageAds';\n\nconst useStyles = makeStyles(() => ({\n loader: {\n color: '#8F9CA1',\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '100px',\n textAlign: 'center',\n },\n wrapper: {\n display: 'grid',\n gap: '30px',\n gridTemplateColumns: 'repeat(3, 1fr)',\n marginBottom: '30px',\n marginTop: '30px',\n // gridAutoRows: '100px',\n },\n}));\n\nconst HomePageAd: React.FC<{ hideNav: (state: boolean) => void }> = ({\n hideNav,\n}) => {\n const { path } = useRouteMatch();\n const [redirect, setRedirect] = useState<'Edit' | 'Metrics'>('Edit');\n const classes = useStyles();\n const [editData, setEditData] = useState(null);\n const { advertisements, loading, reload } = useFetchAdvertisements({\n adStatus: 'publish',\n adType: 'homePage',\n status: 'active',\n });\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n const { enqueueSnackbar } = useSnackbar();\n const archive = useCallback(\n async (adId: string) => {\n enqueueSnackbar(\n 'Moving The Selected Ad To Archive.',\n SnackBarConfig('s'),\n );\n const adResp: any = await advertisementsApiStore.changeStatus(\n { status: 'archived' },\n adId,\n );\n if (adResp.isOk()) {\n reload();\n }\n },\n [advertisementsApiStore, enqueueSnackbar, reload],\n );\n return (\n \n \n {!editData && (\n <>\n {' '}\n {loading && }\n {advertisements && advertisements.count < 1 && (\n
No Ad Found
\n )}\n
\n {advertisements?.data.map((element: AdvertisementDTO) => (\n {\n setRedirect('Edit');\n setEditData(element);\n hideNav(true);\n }}\n onShowMetrics={() => {\n setRedirect('Metrics');\n setEditData(element);\n hideNav(true);\n }}\n onArchiveActivate={() => {\n archive(element.id);\n }}\n />\n ))}\n
\n \n )}\n\n {editData && (\n {\n setEditData(null);\n hideNav(false);\n reload();\n }}\n />\n )}\n
\n \n \n \n
\n );\n};\n\nexport default HomePageAd;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport { Button, makeStyles, styled, TextField } from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useEffect, useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useHistory } from 'react-router-dom';\nimport * as yup from 'yup';\n\nimport { SecondaryTabs } from '../../../components/Navs';\nimport {\n useDownloadAdMetrics,\n useUploadAd,\n} from '../../../hooks/advertisements/advertisements';\nimport { AppStyles, TextStyles } from '../../../style/variable';\nimport CompanySelector from './CompanySelector';\nimport MetricsTable from './MetricsTable';\nimport Uploader from './Uploader';\n\ntype CreateAdDTO = {\n title: string;\n link: string;\n skipTime: number;\n replayIn: number;\n};\nconst ModButton = styled(Button)({\n '&:hover': {\n background: '#1AB23D',\n },\n background: '#1AB23D',\n});\nconst useStyles = makeStyles(() => ({\n cancel: {\n color: '#565757',\n cursor: 'pointer',\n fontFamily: AppStyles.font.semiBold,\n marginRight: '30px',\n opacity: '76%',\n textDecoration: 'underline',\n textUnderlineOffset: '1px',\n },\n goBack: {\n color: TextStyles.color.primary,\n cursor: 'pointer',\n display: 'block',\n fontSize: '18px',\n marginBottom: '30px',\n textDecoration: 'underline',\n },\n wrapper: {\n display: 'grid',\n gap: '30px',\n gridTemplateColumns: 'repeat(3, 1fr)',\n marginBottom: '30px',\n marginTop: '30px',\n },\n}));\n\nconst CreateLaunchAds: React.FC<{\n goBack?: () => void;\n reload?: () => void;\n editData?: any;\n redirectTo?: 'Edit' | 'Metrics';\n}> = ({ goBack, editData, reload, redirectTo }) => {\n const classes = useStyles();\n const [file, setFile] = useState(\n editData ? 'old' : null,\n );\n const [selectedState, setSelectedState] = useState(redirectTo);\n const [companyUpdated, setCompanyUpdated] = useState(false);\n const [companies, setCompanies] = useState([]);\n\n const schema = yup.object().shape({\n link: yup.string().required(),\n replayIn: yup.number().required(),\n skipTime: yup.number().required(),\n title: yup.string().required(),\n });\n const { uploadAd, updateAd, response, loading } = useUploadAd();\n const history = useHistory();\n const { downloadAdMetrics } = useDownloadAdMetrics();\n useEffect(() => {\n if (response) {\n (goBack && goBack()) || history.push('/ads/Launch Ad');\n reload && reload();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [goBack, response]);\n\n const submitAd = (data: CreateAdDTO) => {\n const formData = new FormData();\n if (!editData) {\n file && formData.append('file', file);\n formData.append('title', `${data.title}`);\n formData.append('companies', companies.join(',') || '[]');\n formData.append('skipTime', `${data.skipTime}`);\n formData.append('replayTime', `${data.replayIn}`);\n formData.append('adType', 'launchPage');\n formData.append('status', 'active');\n formData.append('isDefaultAd', editData?.isDefaultAd);\n formData.append(\n 'fileType',\n file\n ? (file as File).type?.startsWith('video/mp4')\n ? 'video'\n : 'image'\n : 'image',\n );\n formData.append('referenceLink', data.link);\n formData.append('adStatus', 'publish');\n uploadAd(formData);\n } else {\n file && file !== 'old' && formData.append('file', file as File);\n formData.append('title', `${data.title}`);\n formData.append('companies', companies.join(',') || '[]');\n formData.append('skipTime', `${data.skipTime}`);\n formData.append('replayTime', `${data.replayIn}`);\n formData.append('adType', 'launchPage');\n formData.append('status', 'active');\n formData.append(\n 'fileType',\n file\n ? (file as File).type?.startsWith('video/mp4')\n ? 'video'\n : 'image'\n : 'image',\n );\n formData.append('referenceLink', data.link);\n formData.append('adStatus', 'publish');\n\n updateAd(formData, editData?.id);\n }\n };\n\n const {\n handleSubmit,\n formState: { errors, isValid, isDirty },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n link: editData?.referenceLink || '',\n replayIn: editData?.replayTime || 0,\n skipTime: editData?.skipTime || 0,\n title: editData?.title || '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n return (\n <>\n {\n (goBack && goBack()) || history.push('/ads/Launch Ad');\n }}>\n Back to Launch Ads\n \n val && setSelectedState(val as 'Edit' | 'Metrics')}\n data={[{ value: 'Edit' }, { value: 'Metrics' }]}>\n {editData && selectedState !== 'Metrics' && !editData?.isDefaultAd && (\n \n Archive Ad\n \n )}\n {selectedState !== 'Metrics' && (\n {\n (goBack && goBack()) || history.push('/ads/Launch Ad');\n }}\n className={classes.cancel}>\n Cancel\n \n )}\n {selectedState === 'Metrics' && (\n Filter\n )}\n {selectedState === 'Metrics' && (\n downloadAdMetrics(editData?.id)}\n style={{ marginRight: '10px' }}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n Download\n \n )}\n {/* {editData && selectedState !== 'Metrics' && (\n \n Save Draft\n \n )} */}\n {selectedState !== 'Metrics' && (\n \n Save & Publish\n \n )}\n \n {selectedState === 'Metrics' && }\n {selectedState === 'Edit' && (\n
\n {\n setFile(file);\n }}\n type={editData?.fileType}\n />\n
\n
\n (\n \n )}\n />\n\n (\n \n )}\n />\n\n (\n \n )}\n />\n\n (\n \n )}\n />\n \n
\n {\n setCompanies(val.map((el) => el.id));\n setCompanyUpdated(true);\n }}\n isDefaultAd={editData?.isDefaultAd}\n />\n
\n )}\n \n );\n};\n\nexport default CreateLaunchAds;\n","import { makeStyles } from '@material-ui/core/styles';\nimport { useSnackbar } from 'notistack';\nimport React, { useCallback, useState } from 'react';\nimport { Route, Switch, useRouteMatch } from 'react-router-dom';\n\nimport { AdsPreviewTile } from '../../../components/Display';\nimport Loader from '../../../components/Loader/Loader';\nimport { useCustomStore } from '../../../hooks';\nimport { useFetchAdvertisements } from '../../../hooks/advertisements/advertisements';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\nimport CreateLaunchAds from './CreateLaunchAds';\n\nconst useStyles = makeStyles(() => ({\n loader: {\n color: '#8F9CA1',\n fontSize: '20px',\n fontWeight: 'bold',\n marginTop: '100px',\n textAlign: 'center',\n },\n wrapper: {\n display: 'grid',\n gap: '30px',\n gridTemplateColumns: 'repeat(3, 1fr)',\n marginBottom: '30px',\n marginTop: '30px',\n },\n}));\n\nconst LaunchAd: React.FC<{ hideNav: any }> = ({ hideNav }) => {\n const { path } = useRouteMatch();\n const [redirect, setRedirect] = useState('Edit');\n const [editData, setEditData] = useState(null);\n const classes = useStyles();\n const {\n apiStore: { advertisementsApiStore },\n } = useCustomStore();\n\n const { advertisements, loading, reload } = useFetchAdvertisements({\n adStatus: 'publish',\n adType: 'launchPage',\n status: 'active',\n });\n const { enqueueSnackbar } = useSnackbar();\n const archive = useCallback(\n async (adId) => {\n enqueueSnackbar(\n 'Moving The Selected Ad To Archive.',\n SnackBarConfig('s'),\n );\n const adResp = await advertisementsApiStore.changeStatus(\n { status: 'archived' },\n adId,\n );\n if (adResp.isOk()) {\n reload();\n }\n },\n [advertisementsApiStore, enqueueSnackbar, reload],\n );\n\n return (\n \n \n {!editData && (\n <>\n {loading && }\n {advertisements && advertisements.count < 1 && (\n
No Ad Found
\n )}\n\n
\n {advertisements?.data\n .filter((element: any) => element.isDefaultAd)\n .map((element: any) => (\n {\n setRedirect('Edit');\n setEditData(element);\n hideNav(true);\n }}\n onShowMetrics={() => {\n setRedirect('Metrics');\n setEditData(element);\n hideNav(true);\n }}\n onArchiveActivate={() => {\n archive(element.id);\n }}\n />\n ))}\n\n {advertisements?.data\n .filter((element: any) => !element.isDefaultAd)\n .map((element: any) => (\n {\n setRedirect('Edit');\n setEditData(element);\n hideNav(true);\n }}\n onShowMetrics={() => {\n setRedirect('Metrics');\n setEditData(element);\n hideNav(true);\n }}\n onArchiveActivate={() => {\n archive(element.id);\n }}\n />\n ))}\n
\n \n )}\n {editData && redirect && (\n {\n setEditData(null);\n hideNav(false);\n reload();\n }}\n />\n )}\n
\n \n \n \n
\n );\n};\n\nexport default LaunchAd;\n","import { makeStyles } from '@material-ui/core';\nimport React, { useEffect, useState } from 'react';\n\nimport Loader from '../../../components/Loader/Loader';\nimport { useFetchMetrics } from '../../../hooks/advertisements/advertisements';\nimport { AppStyles } from '../../../style/variable';\n\nconst useStyles = makeStyles(() => ({\n category: {\n display: 'helo',\n flexGrow: 1,\n fontFamily: AppStyles.font.regular,\n fontSize: '15px',\n textTransform: 'uppercase',\n },\n categoryWrapper: {\n color: '#241A2E',\n // marginTop: '10px',\n display: 'flex',\n },\n header: {\n color: '#00B1EF',\n fontFamily: AppStyles.font.bold,\n fontSize: '20px',\n textTransform: 'uppercase',\n },\n items: {\n margin: '20px 0px',\n },\n metricsCard: {\n background: 'white',\n color: '#8F9CA1',\n // paddingTop: '0px',\n marginBottom: '20px',\n\n marginTop: '20px',\n\n padding: '20px',\n\n paddingBottom: '0px',\n width: '315px',\n },\n values: {\n display: 'hello',\n flexGrow: 1,\n },\n wrapper: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n height: '180px',\n justifyContent: 'space-between',\n },\n}));\nconst Metrics: React.FC = () => {\n const classes = useStyles();\n const { Metrics, loading } = useFetchMetrics();\n const [skipPerc, setSkipPerc] = useState(null);\n\n useEffect(() => {\n let todayPerc =\n Metrics &&\n Metrics.viewCount &&\n !isNaN(+Metrics.skipCount.todayCount / +Metrics.viewCount.todayCount)\n ? (+Metrics.skipCount.todayCount / +Metrics.viewCount.todayCount) * 100\n : '-';\n todayPerc =\n todayPerc === '-'\n ? '-'\n : +todayPerc % 1 === 0\n ? `${+todayPerc}%`\n : `${(+todayPerc).toFixed(2)}%`;\n\n let weekPerc =\n Metrics &&\n Metrics.viewCount &&\n !isNaN(+Metrics.skipCount.weekCount / +Metrics.viewCount.weekCount)\n ? (+Metrics.skipCount.weekCount / +Metrics.viewCount.weekCount) * 100\n : '-';\n\n weekPerc =\n weekPerc === '-'\n ? '-'\n : +weekPerc % 1 === 0\n ? `${+weekPerc}%`\n : `${(+weekPerc).toFixed(2)}%`;\n\n let monthPerc =\n Metrics &&\n Metrics.viewCount &&\n !isNaN(+Metrics.skipCount.monthCount / +Metrics.viewCount.monthCount)\n ? (+Metrics.skipCount.monthCount / +Metrics.viewCount.monthCount) * 100\n : '-';\n\n monthPerc =\n monthPerc === '-'\n ? '-'\n : +monthPerc % 1 === 0\n ? `${+monthPerc}%`\n : `${(+monthPerc).toFixed(2)}%`;\n\n setSkipPerc({ month: monthPerc, today: todayPerc, week: weekPerc });\n return () => {};\n }, [Metrics]);\n\n return (\n <>\n {loading && !Metrics && }\n {!loading && Metrics && (\n
\n
\n

# of views

\n
\n
\n
Daily
\n
Weekly
\n
Monthly
\n
\n
\n
\n {Metrics?.viewCount.todayCount}\n
\n
\n {Metrics?.viewCount.weekCount}\n
\n
\n {Metrics?.viewCount.monthCount}\n
\n
\n
\n
\n\n
\n

# of Skips

\n
\n
\n
Daily
\n
Weekly
\n
Monthly
\n
\n
\n
\n {Metrics?.skipCount.todayCount}\n
\n
\n {Metrics?.skipCount.weekCount}\n
\n
\n {Metrics?.skipCount.monthCount}\n
\n
\n
\n
\n\n
\n

% of Skips

\n
\n
\n
Daily
\n
Weekly
\n
Monthly
\n
\n
\n
\n {skipPerc && skipPerc.today}\n
\n
{skipPerc && skipPerc.week}
\n
\n {skipPerc && skipPerc.month}\n
\n
\n
\n
\n
\n )}\n \n );\n};\n\nexport default Metrics;\n","import { Button, Grid } from '@material-ui/core';\nimport React, { useCallback, useState } from 'react';\nimport {\n Redirect,\n Route,\n Switch,\n useHistory,\n useLocation,\n useRouteMatch,\n} from 'react-router-dom';\n\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\nimport { useDownloadCompleteAdMetrics } from '../../../hooks/advertisements/advertisements';\nimport { AppStyles } from '../../../style/variable';\nimport ArchivedAd from './ArchivedAd';\nimport DeviceHealth from './DeviceHealth';\nimport HomePageAd from './HomePageAd';\nimport LaunchAd from './LaunchAd';\nimport Metrics from './Metrics';\n\nconst AdsContainer: React.FC = () => {\n const { url } = useRouteMatch();\n const [hideNav, setHideNav] = useState(false);\n const location = useLocation();\n const history = useHistory();\n // useEffect(() => {\n // alert(location.pathname.split('/')[2]);\n // }, [location.pathname]);\n const { admins: me } = useFetchMe();\n let tab_list = [\n { value: 'Launch Ad' },\n { value: 'Home Page Ad' },\n { value: 'Archived' },\n ];\n if (me) {\n const routepage = me?.permissions;\n if (routepage.includes('companies')) {\n tab_list = [\n { value: 'Launch Ad' },\n { value: 'Home Page Ad' },\n { value: 'Device Health' },\n { value: 'Archived' },\n { value: 'Metrics' },\n ];\n }\n }\n\n const [selectedTab, setSelectedTab] = useState(\n location.pathname.split('/')[2],\n );\n const { downloadAdMetrics } = useDownloadCompleteAdMetrics();\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n const handleNavChange = useCallback(\n (route: string) => {\n if (route !== selectedTab) {\n history.push(`${url}/${route}`);\n }\n },\n [history, selectedTab, url],\n );\n\n return (\n \n {location.pathname.split('/').length < 4 && !hideNav && (\n <>\n \n \n \n \n \n\n {\n navHandler(val);\n handleNavChange(val as string);\n }}\n data={tab_list}>\n {['Launch Ad', 'Home Page Ad'].includes(\n selectedTab || 'Launch Ad',\n ) && (\n {\n history.push(`${location.pathname}/New Ad`);\n }}\n type=\"button\">\n Add Ad\n \n )}\n {selectedTab === 'Metrics' && (\n \n Cancel\n \n )}\n {selectedTab === 'Metrics' && (\n downloadAdMetrics()}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n Download\n \n )}\n \n \n )}\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n } />\n \n \n );\n};\n\nexport default React.memo(AdsContainer);\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst useStyles = makeStyles((theme) => ({\n container: {\n backgroundColor: '#241A2E',\n fontColor: 'white',\n height: '100%',\n minHeight: '100vh',\n padding: '30px',\n width: '100%',\n },\n noBg: {\n backgroundColor: '#241A2E',\n borderBottom: '0px',\n color: '#A1A1A1',\n },\n noPadding: {\n padding: '0px',\n },\n titleFont: {\n fontFamily: 'MavenProMedium',\n },\n whiteFont: {\n color: 'white',\n },\n}));\n\nexport default useStyles;\n","import {\n IconButton,\n Table,\n TableBody,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\n\nimport Loader from '../../../components/Loader/Loader';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport { AlarmTypeEnum } from '../../../constants/AlarmTypesEnum';\nimport { AlarmsTypes } from '../../../core/types';\nimport { useFetchCompanyPatientAlarmsTypes } from '../../../hooks/alarms/alarmsServices';\nimport useStyles from './AlarmsListStyles';\n\nconst AlarmsListUser: React.FC = () => {\n const { alarmsTypes, loading } = useFetchCompanyPatientAlarmsTypes();\n const classes = useStyles();\n return (\n
\n \n Alarms List\n \n {loading && }\n {loading || (\n \n \n \n \n \n Type\n \n \n Amount\n \n \n \n \n {alarmsTypes &&\n alarmsTypes?.map(\n (val: { type_count: number; alarm_type: AlarmsTypes }) => {\n return (\n \n \n \n \n \n {AlarmTypeEnum[val.alarm_type]}\n \n \n {val.type_count}\n \n \n );\n },\n )}\n \n
\n
\n )}\n
\n );\n};\n\nexport default AlarmsListUser;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport {\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\n\nimport { OutlinedTableButton } from '../../../components/Buttons';\nimport { DeviceInfoDialog, ViewAlarmsDialog } from '../../../components/Dialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport { AlarmDTO } from '../../../core/types';\nimport {\n useDownloadDeviceAlarms,\n useFetchCompanyAlarmsPatient,\n} from '../../../hooks/alarms/alarmsServices';\nimport { AppStyles } from '../../../style/variable';\n\nconst useStyles = makeStyles({\n amount: {\n alignItems: 'center',\n color: '#0062FF',\n fontFamily: AppStyles.font.bold,\n fontSize: '14px',\n },\n table: {\n minWidth: 650,\n },\n timefield: {\n color: '#8F9CA1',\n // display: 'block',\n fontFamily: AppStyles.font.bold,\n wrap: 'nowrap',\n },\n timestamp: {\n fontFamily: AppStyles.font.regular,\n },\n});\n\nconst AlarmsTableViewUser: React.FC<{ month: string }> = ({ month }) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [selectedDevice, setSelectedDevice] = useState('');\n const [deviceInfoOpen, setDeviceInfoOpen] = useState(false);\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const classes = useStyles();\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n reload(month, { limit: rowsPerPage, offset: page });\n };\n\n useEffect(() => {\n setPage(0);\n }, [month]);\n\n const { alarms, loading, reload } = useFetchCompanyAlarmsPatient(\n month,\n rowsPerPage,\n page,\n currentSort,\n );\n const handleDeviceInfoClose = () => {\n setDeviceInfoOpen(false);\n };\n\n const handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n };\n const handleDownloadDeviceAlarms = () => {\n handleClose();\n downloadDeviceAlarms(selectedDevice, '', '');\n };\n\n const handleClick = (\n event: React.MouseEvent,\n deviceId: string,\n ) => {\n setAnchorEl(event.currentTarget);\n setSelectedDevice(deviceId);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n\n const [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadDeviceAlarms, value: 'Download Alarms' },\n ];\n\n return (\n <>\n {deviceInfoOpen && (\n \n )}\n\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={selectedDevice || ''}\n />\n )}\n\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n \n \n \n \n \n \n \n User\n \n \n \n \n \n \n Phone\n \n \n \n \n \n \n Gender\n \n \n \n \n \n \n Serial\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n LAST ALARM TYPE\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n ALARM DESCRIPTION\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n TIME\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n AMOUNT\n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n \n {loading || (\n <>\n \n {alarms &&\n alarms.data.map((row: AlarmDTO, i) => (\n setHoveredRow(i)}\n key={i}>\n \n {row.name}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.phone}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.gender}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.deviceNumber}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n \n \n \n \n \n \n \n
\n {row.description}\n
\n
\n \n
\n {row.description}\n \n {moment(row.created_at).format('MMM DD | h:ma')}\n \n \n {row.amount || '-'}\n \n \n {\n setSelectedDevice(row.deviceId);\n handleViewAlarms();\n }}>\n View Details\n \n \n \n {hoveredRow === i && (\n handleClick(e, row.deviceId)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))}\n
\n \n \n \n \n \n \n )}\n
\n \n {loading && }\n \n );\n};\n\nexport default AlarmsTableViewUser;\n","// import { makeStyles } from '@material-ui/core/styles';\nimport { Grid } from '@material-ui/core';\nimport DeleteIcon from '@material-ui/icons/Delete';\nimport React, { useEffect } from 'react';\n\nimport { useUnbindDevice } from '../../hooks/devices/devicesServices';\nimport { CancelButtonContained, DeleteButtonContained } from '../Buttons';\nimport { PrimaryPopupDialog } from '.';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: string) => void;\n type?: string | null;\n deviceId: string;\n}\n\nconst LostUserDevice: React.FC = ({\n open,\n onClose,\n type,\n deviceId,\n}) => {\n const title = 'Are You Sure This User Has Lost The Device?';\n const handleClose = () => {\n onClose && onClose();\n };\n\n const {\n loading: accountLoading,\n response: accountResp,\n unbindDevice,\n } = useUnbindDevice();\n\n useEffect(() => {\n accountResp?.message === 'Success' && onClose && onClose('Success');\n }, [accountResp, onClose]);\n\n const handleClear = () => {\n unbindDevice(deviceId);\n };\n\n return (\n \n \n \n }\n disabled={accountLoading}\n onClick={handleClear}>\n Yes, Lost\n \n \n \n \n No, Cancel\n \n \n \n \n );\n};\n\nexport default LostUserDevice;\n\nLostUserDevice.defaultProps = {\n type: '',\n};\n","import {\n Chip,\n Grid,\n IconButton,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { useSnackbar } from 'notistack';\nimport React, { useEffect, useState } from 'react';\n\n// import { useParams } from 'react-router-dom';\nimport {\n DeviceInfoDialog,\n TransferDialog,\n ViewAlarmsDialog,\n} from '../../../components/Dialog';\nimport LostUserDevice from '../../../components/Dialog/LostUserDevice';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\n// import { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\nimport { useDownloadDeviceAlarms } from '../../../hooks/alarms/alarmsServices';\nimport {\n useFetchCompanyDevicesByPatient,\n useGetDeviceTransferInfo,\n} from '../../../hooks/devices/devicesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 650,\n },\n});\n\nconst DevicesTableViewUser: React.FC = () => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [selectedDevice, setSelectedDevice] = useState('');\n const [selectedDeviceInfo, setselectedDeviceInfo] = useState({});\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const [deviceInfoOpen, setDeviceInfoOpen] = useState(false);\n const [transfersOpen, setTransfersOpen] = useState(false);\n const [hoveredRow, setHoveredRow] = useState(0);\n\n const handleDeviceInfoClose = () => {\n setDeviceInfoOpen(false);\n };\n\n const handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n };\n\n const handleDownloadDeviceAlarms = () => {\n handleClose();\n downloadDeviceAlarms(selectedDevice, '', '');\n };\n\n const handleClick = (\n event: React.MouseEvent,\n deviceId: string,\n ) => {\n setAnchorEl(event.currentTarget);\n setSelectedDevice(deviceId);\n };\n\n const [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n\n const [lostUserDevice, setLostUserDevice] = useState(false);\n // const { id } = useParams();\n\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n const { devices, loading, reload } = useFetchCompanyDevicesByPatient(\n rowsPerPage,\n page,\n currentSort,\n );\n const { response: transferDeviceResponse, DeviceInfo } =\n useGetDeviceTransferInfo();\n const { enqueueSnackbar } = useSnackbar();\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const handleTransfersClose = (e: string | undefined) => {\n if (e && e === 'Success') {\n enqueueSnackbar(\n 'Data Access Permission Authorized Successfully',\n SnackBarConfig('s'),\n );\n reload({ limit: rowsPerPage, offset: page });\n }\n setTransfersOpen(false);\n handleClose();\n };\n\n const handleLostUserDevice = () => {\n handleClose();\n setLostUserDevice(true);\n reload({ limit: rowsPerPage, offset: page });\n };\n const handleTransfers = () => {\n handleClose();\n DeviceInfo(selectedDevice);\n };\n useEffect(() => {\n if (transferDeviceResponse?.deviceId) {\n setselectedDeviceInfo(transferDeviceResponse);\n setTransfersOpen(true);\n }\n }, [transferDeviceResponse]);\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadDeviceAlarms, value: 'Download Alarms' },\n { handler: handleTransfers, value: 'Transfer' },\n { handler: handleLostUserDevice, value: 'Lost Device' },\n ];\n\n const classes = useStyles();\n\n return (\n <>\n {deviceInfoOpen && (\n \n )}\n {transfersOpen && (\n \n )}\n {lostUserDevice && (\n setLostUserDevice(false)}\n open={lostUserDevice}\n type={'device'}\n deviceId={selectedDevice || ''}\n />\n )}\n\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={selectedDevice || ''}\n />\n )}\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n Device Number\n handleSortChange(e)}\n />\n \n \n \n \n Device Name\n handleSortChange(e)}\n />\n \n \n \n \n Status\n handleSortChange(e)}\n />\n \n \n \n Hours Used\n \n \n \n \n {loading || (\n <>\n \n {devices &&\n devices.map((row: any, i) => (\n setHoveredRow(i)}\n key={i}>\n \n {row.deviceId}\n \n \n {row.name}\n \n \n \n \n \n {row.hoursUsed || '-'}\n \n \n {hoveredRow === i && (\n handleClick(e, row.id)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))}\n \n \n \n \n \n \n \n )}\n
\n \n {loading && }\n \n );\n};\n\nexport default DevicesTableViewUser;\n","import { Button, Grid, Typography } from '@material-ui/core';\n// import ArrowLeftSharpIcon from '@material-ui/icons/ArrowLeftSharp';\n// import GetAppIcon from '@material-ui/icons/GetApp';\nimport React, { useState } from 'react';\n\nimport downloadButton from '../../../assets/images/icons/download.png';\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { FilterDropDownsV1 } from '../../../components/Forms';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\nimport { useDownloadPatientAlarms } from '../../../hooks/alarms/alarmsServices';\nimport { useDownloadPatientDeviceInfo } from '../../../hooks/devices/devicesServices';\nimport { getPast12MontsFilter } from '../../../utils/DateUtils';\nimport AlarmsListUser from './AlarmsListUser';\nimport AlarmsTableViewUser from './AlarmsTableViewUser';\nimport DevicesTableViewUser from './DevicesTableViewUser';\n\ntype ActionButtons = Array<{\n text: string;\n view: string;\n handler: (e: MouseEvent) => void;\n}>;\n\n// const useStyles = makeStyles({\n// link: {\n// alignItems: 'center',\n// display: 'flex',\n// fontFamily: 'SourceSansProSemiBold',\n// fontSize: '16px',\n// },\n// });\n\nconst CompaniesAlarmView: React.FC = () => {\n // const history = useHistory();\n // const classes = useStyles();\n const { admins: me } = useFetchMe();\n\n const [selectedTab, setSelectedTab] = useState(null);\n const { downloadPatientAlarms } = useDownloadPatientAlarms();\n // const navigateCompanies = () => {\n // history.push('/companies');\n // };\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n const [monthFilter, setMonthFilter] = useState('');\n const monthFilters = getPast12MontsFilter();\n const { downloadPatientDeviceInfo } = useDownloadPatientDeviceInfo();\n const downloadDevices = (e: MouseEvent) => {\n e.stopPropagation();\n if (me) {\n downloadPatientDeviceInfo(monthFilter === 'All' ? '' : monthFilter);\n }\n };\n const downloadAlarms = (e: MouseEvent) => {\n e.stopPropagation();\n if (me) {\n downloadPatientAlarms(monthFilter === 'All' ? '' : monthFilter);\n }\n };\n\n const actionButtons: ActionButtons = [\n {\n handler: downloadDevices,\n text: 'Device Info',\n view: 'Alarms',\n },\n { handler: downloadAlarms, text: 'Alarms', view: 'Alarms' },\n ];\n const selectView = () => {\n switch (selectedTab) {\n case 'Alarms':\n return ;\n case 'Devices':\n return ;\n default:\n return 'loading';\n }\n };\n return (\n <>\n \n \n \n \n
\n \n {me?.type == '3' ? me?.companyName : me?.first_name}\n \n
\n\n \n \n \n {selectedTab === 'Alarms' && (\n {\n setMonthFilter(val);\n }}\n data={monthFilters}\n />\n )}\n \n\n {actionButtons.map((val, i) => {\n return (\n selectedTab === val.view && (\n \n {\n val.handler(e);\n }}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n {val.view !== 'Devices' && (\n \n )}\n {val.text}\n \n \n )\n );\n })}\n
\n \n {selectView()}\n \n
\n {selectedTab === 'Alarms' && (\n \n \n \n )}\n \n \n );\n};\n\nexport default CompaniesAlarmView;\n","import { yupResolver } from '@hookform/resolvers/yup';\nimport {\n Button,\n createStyles,\n FormControl,\n makeStyles,\n TextField,\n Theme,\n} from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { useState } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport * as yup from 'yup';\n\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useCustomStore } from '../../../hooks';\n// import { useFetchAllCompanies } from '../../../hooks/companies/companiesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: any) => void;\n}\n\ntype AddDeviceDialogDTO = {\n name?: string | null;\n deviceId?: string | null;\n};\nconst useStyles = makeStyles((theme: Theme) =>\n createStyles({\n formControl: {\n margin: theme.spacing(1),\n minWidth: 120,\n },\n listLabel: {\n marginTop: '20px',\n transform: 'none',\n },\n selectEmpty: {\n marginTop: theme.spacing(2),\n },\n }),\n);\nconst AddDeviceDialog: React.FC = ({ open, onClose }) => {\n const {\n apiStore: { devicesApi },\n } = useCustomStore();\n\n const title = 'Add Device';\n const classes = useStyles();\n // const { companies } = useFetchAllCompanies({ name: '', order: '' });\n const { enqueueSnackbar } = useSnackbar();\n const [loading, setLoading] = useState(false);\n\n const submitDevice = async (data: AddDeviceDialogDTO) => {\n setLoading(true);\n const companyResp = await devicesApi.addDeviceByThird(data);\n if (companyResp.isErr()) {\n enqueueSnackbar(companyResp.error.message, SnackBarConfig('e'));\n setLoading(false);\n } else {\n enqueueSnackbar('Add Device Successfully', SnackBarConfig('s'));\n onClose && onClose('success');\n }\n };\n\n const schema = yup.object().shape({\n deviceId: yup.string().required(),\n });\n\n const {\n handleSubmit,\n formState: { errors },\n control,\n } = useForm({\n criteriaMode: 'all',\n defaultValues: {\n deviceId: '',\n name: '',\n },\n mode: 'all',\n reValidateMode: 'onChange',\n resolver: yupResolver(schema),\n });\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const actionButtons = (\n \n Add\n \n );\n\n return (\n \n
\n \n (\n \n )}\n />\n \n \n \n );\n};\n\nexport default AddDeviceDialog;\n","import { Button, Grid } from '@material-ui/core';\nimport { useSnackbar } from 'notistack';\nimport React, { DragEvent, useEffect, useState } from 'react';\n\nimport { PrimaryPopupDialog } from '../../../components/Dialog';\nimport { useUploadDeviceThird } from '../../../hooks/devices/devicesServices';\nimport { SnackBarConfig } from '../../../utils/SnackBarConfig';\n\nexport interface SimpleDialogProps {\n open: boolean;\n onClose?: (e?: any) => void;\n}\n\nconst AddDevicesDialog: React.FC = ({ open, onClose }) => {\n const title = 'Import Device(s)';\n const fileTypes = ['xls', 'xlsx'];\n\n const [dragOver, setDragOver] = useState(false);\n const [files, setFiles] = useState(null);\n const [filesList, setFilesList] = useState(null);\n\n const { uploadDeviceThird, response, loading } = useUploadDeviceThird();\n const { enqueueSnackbar } = useSnackbar();\n useEffect(() => {\n if (response === 'success') {\n enqueueSnackbar('Uploaded Device Successfully', SnackBarConfig('s'));\n onClose && onClose('success');\n }\n }, [response, onClose, enqueueSnackbar]);\n\n const handleClose = () => {\n onClose && onClose();\n };\n\n const dragOverHandler = (e: any) => {\n e.preventDefault();\n setDragOver(true);\n };\n const dragLeaveHandler = () => {\n setDragOver(false);\n };\n\n const dropHandler = (e: DragEvent) => {\n setDragOver(false);\n e.preventDefault();\n const filesList = [];\n const files = [];\n const formData = new FormData();\n const { length } = e.dataTransfer.files;\n for (let i = 0; i < length; i++) {\n if (\n e.dataTransfer.files[i].name.endsWith(fileTypes[0]) ||\n e.dataTransfer.files[i].name.endsWith(fileTypes[1])\n ) {\n files.push(e.dataTransfer.files[i]);\n filesList.push(e.dataTransfer.files[i].name);\n formData.append('file', e.dataTransfer.files[i]);\n }\n }\n setFilesList(filesList);\n setFiles(formData);\n };\n\n const handleUpload = () => {\n if (files != null) {\n uploadDeviceThird(files);\n }\n };\n return (\n \n \n e.preventDefault()}\n style={{\n color: dragOver ? 'white' : 'black',\n fontSize: dragOver ? '20px' : '15px',\n fontWeight: dragOver ? 'bold' : 'normal',\n }}>\n {dragOver\n ? 'Drop It To Upload'\n : filesList\n ? filesList.map((val, i) =>
{val}
)\n : 'Drag and Drop File'}\n \n \n\n \n Upload\n \n
\n );\n};\n\nexport default AddDevicesDialog;\n","import {\n IconButton,\n Table,\n TableBody,\n TableContainer,\n TableHead,\n TableRow,\n Typography,\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React from 'react';\n\nimport Loader from '../../../components/Loader/Loader';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport { AlarmTypeEnum } from '../../../constants/AlarmTypesEnum';\nimport { AlarmsTypes } from '../../../core/types';\nimport { useFetchCompanyThirdAlarmsTypes } from '../../../hooks/alarms/alarmsServices';\nimport useStyles from './AlarmsListStyles';\n\nconst AlarmsList: React.FC = () => {\n const { alarmsTypes, loading } = useFetchCompanyThirdAlarmsTypes();\n const classes = useStyles();\n return (\n
\n \n Alarms List\n \n {loading && }\n {loading || (\n \n \n \n \n \n Type\n \n \n Amount\n \n \n \n \n {alarmsTypes &&\n alarmsTypes?.map(\n (val: { type_count: number; alarm_type: AlarmsTypes }) => {\n return (\n \n \n \n \n \n {AlarmTypeEnum[val.alarm_type]}\n \n \n {val.type_count}\n \n \n );\n },\n )}\n \n
\n
\n )}\n
\n );\n};\n\nexport default AlarmsList;\n","import {\n Grid,\n IconButton,\n TableFooter,\n TablePagination,\n} from '@material-ui/core';\nimport {\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableHead,\n TableRow,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport moment from 'moment';\nimport React, { useEffect, useState } from 'react';\n\nimport { OutlinedTableButton } from '../../../components/Buttons';\nimport { DeviceInfoDialog, ViewAlarmsDialog } from '../../../components/Dialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { AlarmTypeIcons2x } from '../../../constants/AlarmIcon';\nimport { AlarmDTO } from '../../../core/types';\nimport { SearchStore } from '../../../hooks';\nimport {\n useDownloadDeviceAlarms,\n useFetchCompanyAlarmsThird,\n} from '../../../hooks/alarms/alarmsServices';\n// import { useSearchAlarms } from '../../../hooks/devices/devicesServices';\nimport { AppStyles } from '../../../style/variable';\n\nconst useStyles = makeStyles({\n amount: {\n alignItems: 'center',\n color: '#0062FF',\n fontFamily: AppStyles.font.bold,\n fontSize: '14px',\n },\n table: {\n minWidth: 650,\n },\n timefield: {\n color: '#8F9CA1',\n // display: 'block',\n fontFamily: AppStyles.font.bold,\n wrap: 'nowrap',\n },\n timestamp: {\n fontFamily: AppStyles.font.regular,\n },\n});\n// @ts-ignore\nconst AlarmsTableView: React.FC = observer(\n (props: any, ref) => {\n // const AlarmsTableView: React.FC<{ month: string }> = ({ month }) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const [selectedDevice, setSelectedDevice] = useState('');\n const [deviceInfoOpen, setDeviceInfoOpen] = useState(false);\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const classes = useStyles();\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n reload(\n props.month,\n { limit: rowsPerPage, offset: page },\n SearchStore.searchTerm,\n );\n // reload(mouth, { limit: rowsPerPage, offset: page });\n };\n useEffect(() => {\n SearchStore.initSearch('companyAlarms');\n }, []);\n\n // useEffect(() => {\n // console.log(SearchStore);\n // setPage(0);\n // }, [month]);\n\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n // searchAlarms(SearchStore.searchTerm);\n reload(\n props.month,\n { limit: rowsPerPage, offset: page },\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n props.month,\n SearchStore.searchMode,\n SearchStore.startSearch,\n page,\n rowsPerPage,\n ]);\n\n const { alarms, loading, reload } = useFetchCompanyAlarmsThird(\n props.month,\n SearchStore.searchTerm,\n rowsPerPage,\n page,\n currentSort,\n );\n const handleDeviceInfoClose = () => {\n setDeviceInfoOpen(false);\n };\n\n const handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n };\n\n const handleDownloadDeviceAlarms = () => {\n handleClose();\n downloadDeviceAlarms(selectedDevice, '', '');\n };\n\n const handleClick = (\n event: React.MouseEvent,\n deviceId: string,\n ) => {\n setAnchorEl(event.currentTarget);\n setSelectedDevice(deviceId);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n\n const [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadDeviceAlarms, value: 'Download Alarms' },\n ];\n\n return (\n <>\n {deviceInfoOpen && (\n \n )}\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={selectedDevice || ''}\n />\n )}\n\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n \n \n \n \n \n \n \n User\n \n \n \n \n \n \n Phone\n \n \n \n \n \n \n Gender\n \n \n \n \n \n \n Serial\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n LAST ALARM TYPE\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n ALARM DESCRIPTION\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n TIME\n \n \n handleSortChange(e)}\n />\n \n \n \n \n \n AMOUNT\n \n handleSortChange(e)}\n />\n \n \n \n \n \n \n \n {loading || (\n <>\n \n {alarms &&\n alarms.data.map((row: AlarmDTO, i) => (\n setHoveredRow(i)}\n key={i}>\n \n {row.first_name || ' '}\n {'_'}\n {row.last_name || ' '}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.phone}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.gender}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n {row.deviceNumber}\n \n {/* {row.deviceId.timeStamp || '-'} */}\n \n \n \n \n \n \n \n \n \n \n
\n {row.description}\n
\n
\n \n
\n {row.description}\n \n {moment(row.created_at).format('MMM DD | h:ma')}\n \n \n {row.amount || '-'}\n \n \n {\n setSelectedDevice(row.deviceId);\n handleViewAlarms();\n }}>\n View Details\n \n \n \n {hoveredRow === i && (\n handleClick(e, row.deviceId)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))}\n
\n \n \n \n \n \n \n )}\n \n \n {loading && }\n \n );\n },\n { forwardRef: true },\n);\nexport default AlarmsTableView;\n","import {\n Chip,\n Grid,\n IconButton,\n makeStyles,\n Paper,\n Table,\n TableBody,\n TableContainer,\n TableFooter,\n TableHead,\n TablePagination,\n TableRow,\n} from '@material-ui/core';\nimport EditIcon from '@material-ui/icons/Edit';\nimport { observer } from 'mobx-react-lite';\nimport React, { useEffect, useImperativeHandle, useState } from 'react';\n\n// import { useParams } from 'react-router-dom';\nimport { DeviceInfoDialog, ViewAlarmsDialog } from '../../../components/Dialog';\nimport { ActionMenu, ActionMenuItem } from '../../../components/Dropdowns';\nimport Loader from '../../../components/Loader/Loader';\nimport { Sorter } from '../../../components/Table';\nimport {\n StyledTableCell,\n StyledTableRow,\n} from '../../../components/Table/CustomTableComponents';\nimport { SortData } from '../../../components/Table/Sorter';\nimport TablePaginationActions from '../../../components/Table/TablePaginationActions';\nimport { SearchStore } from '../../../hooks';\n// import { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\nimport { useDownloadDeviceAlarms } from '../../../hooks/alarms/alarmsServices';\nimport { useFetchCompanyDevicesByThird } from '../../../hooks/devices/devicesServices';\n\nconst useStyles = makeStyles({\n table: {\n minWidth: 650,\n },\n});\n\nconst DevicesTableView: React.FC = observer(\n (props: any, ref) => {\n const [anchorEl, setAnchorEl] = useState(null);\n // const { admins: me } = useFetchMe();\n const [selectedDevice, setSelectedDevice] = useState('');\n const { downloadDeviceAlarms } = useDownloadDeviceAlarms();\n const [deviceInfoOpen, setDeviceInfoOpen] = useState(false);\n const handleDeviceInfoClose = () => {\n setDeviceInfoOpen(false);\n };\n\n const handleDeviceInfo = () => {\n handleClose();\n setDeviceInfoOpen(true);\n };\n\n const handleDownloadDeviceAlarms = () => {\n handleClose();\n downloadDeviceAlarms(selectedDevice, '', '');\n };\n\n const handleClick = (\n event: React.MouseEvent,\n deviceId: string,\n ) => {\n setAnchorEl(event.currentTarget);\n setSelectedDevice(deviceId);\n };\n const [hoveredRow, setHoveredRow] = useState(0);\n\n const [viewAlarmsOpen, setViewAlarmsOpen] = React.useState(false);\n\n // const { id } = useParams();\n\n const [page, setPage] = React.useState(0),\n [rowsPerPage, setRowsPerPage] = React.useState(10),\n handleChangePage = (\n event: React.MouseEvent | null,\n newPage: number,\n ) => {\n setPage(newPage);\n },\n handleChangeRowsPerPage = (\n event: React.ChangeEvent,\n ) => {\n setRowsPerPage(parseInt(event.target.value, 10));\n setPage(0);\n };\n\n const [currentSort, setCurrentSort] = useState({\n name: '',\n order: '',\n });\n const handleSortChange = (e: SortData) => {\n setCurrentSort(e);\n setPage(0);\n };\n const { devices, loading, reload } = useFetchCompanyDevicesByThird(\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n rowsPerPage,\n page,\n currentSort,\n );\n useImperativeHandle(\n ref,\n () => ({\n reloadDevices() {\n reload(SearchStore.searchTerm ? SearchStore.searchTerm : '');\n },\n }),\n [reload],\n );\n const handleViewAlarms = () => {\n handleClose();\n setViewAlarmsOpen(true);\n };\n useEffect(() => {\n if (SearchStore.searchMode && SearchStore.startSearch) {\n reload(SearchStore.searchTerm ? SearchStore.searchTerm : '');\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [SearchStore.searchMode, SearchStore.startSearch, page, rowsPerPage]);\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const menuItems = [\n { handler: handleViewAlarms, value: 'View Alarms' },\n { handler: handleDeviceInfo, value: 'View Device Info' },\n { handler: handleDownloadDeviceAlarms, value: 'Download Alarms' },\n ];\n\n const classes = useStyles();\n\n return (\n <>\n {deviceInfoOpen && (\n \n )}\n\n {viewAlarmsOpen && (\n {\n setViewAlarmsOpen(false);\n }}\n open={viewAlarmsOpen}\n deviceId={selectedDevice || ''}\n />\n )}\n \n {menuItems.map((item, i) => (\n \n {item.value}\n \n ))}\n \n\n \n \n \n \n \n \n Device Number\n handleSortChange(e)}\n />\n \n \n \n \n Device Name\n handleSortChange(e)}\n />\n \n \n \n \n Status\n handleSortChange(e)}\n />\n \n \n \n Hours Used\n \n \n \n \n {loading || (\n <>\n \n {devices &&\n devices.data.map((row: any, i) => (\n setHoveredRow(i)}\n key={i}>\n \n {row.deviceId}\n \n \n {row.name}\n \n \n \n \n \n {row.hoursUsed || '-'}\n \n \n {hoveredRow === i && (\n handleClick(e, row.id)}\n aria-controls=\"simple-menu\"\n aria-haspopup=\"true\"\n aria-label=\"Edit\">\n \n \n )}\n \n \n ))}\n \n \n \n \n \n \n \n )}\n \n \n {loading && }\n \n );\n },\n { forwardRef: true },\n);\nexport default DevicesTableView;\n","import { Button, Grid, Typography } from '@material-ui/core';\n// import ArrowLeftSharpIcon from '@material-ui/icons/ArrowLeftSharp';\n// import GetAppIcon from '@material-ui/icons/GetApp';\nimport clsx from 'clsx';\nimport React, { useRef, useState } from 'react';\n\nimport downloadButton from '../../../assets/images/icons/download.png';\nimport { MainContainer, MainHeader } from '../../../components/Display';\nimport { FilterDropDownsV1, SearchInput } from '../../../components/Forms';\nimport { SecondaryTabs } from '../../../components/Navs';\nimport { SearchStore } from '../../../hooks';\n// import { SearchStore } from '../../../hooks';\nimport { useFetchMe } from '../../../hooks/adminUsers/adminUsersService';\nimport { useDownloadThirdCompanyAlarms } from '../../../hooks/alarms/alarmsServices';\nimport { useFetchCompanyByThird } from '../../../hooks/companies/companiesServices';\nimport { useDownloadThirdDeviceInfo } from '../../../hooks/devices/devicesServices';\nimport { getPast12MontsFilter } from '../../../utils/DateUtils';\nimport AddDeviceDialog from './AddDeviceDialog';\nimport AddDevicesDialog from './AddDevicesDialog';\nimport AlarmsList from './AlarmsList';\nimport AlarmsTableView from './AlarmsTableView';\nimport DevicesTableView from './DevicesTableView';\n\ntype ActionButtons = Array<{\n text: string;\n view: string;\n handler: (e: MouseEvent) => void;\n}>;\n\n// const useStyles = makeStyles({\n// link: {\n// alignItems: 'center',\n// display: 'flex',\n// fontFamily: 'SourceSansProSemiBold',\n// fontSize: '16px',\n// },\n// });\n\nconst CompaniesAlarmView: React.FC = () => {\n // const history = useHistory();\n // const classes = useStyles();\n const { admins: me } = useFetchMe();\n const { company, loading } = useFetchCompanyByThird();\n const [selectedTab, setSelectedTab] = useState(null);\n const { downloadThirdCompanyAlarms } = useDownloadThirdCompanyAlarms();\n // const navigateCompanies = () => {\n // history.push('/companies');\n // };\n const navHandler = (val: string | number | undefined) => {\n setSelectedTab(val);\n };\n const [monthFilter, setMonthFilter] = useState('');\n const monthFilters = getPast12MontsFilter();\n const [addDeviceOpen, setAddDeviceOpen] = React.useState(false);\n const [addDevicesOpen, setAddDevicesOpen] = React.useState(false);\n const { downloadThirdDeviceInfo } = useDownloadThirdDeviceInfo();\n const handleAddDeviceClose = () => {\n setAddDeviceOpen(false);\n if (selectedTab === 'Devices') {\n deviceRef && deviceRef.current?.reloadDevices();\n }\n };\n const handleAddDevicesClose = () => {\n setAddDevicesOpen(false);\n if (selectedTab === 'Devices') {\n deviceRef && deviceRef.current?.reloadDevices();\n }\n };\n const downloadDevices = (e: MouseEvent) => {\n e.stopPropagation();\n downloadThirdDeviceInfo(\n monthFilter === 'All' ? '' : monthFilter,\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n );\n };\n const downloadAlarms = (e: MouseEvent) => {\n e.stopPropagation();\n downloadThirdCompanyAlarms(\n monthFilter === 'All' ? '' : monthFilter,\n SearchStore.searchTerm ? SearchStore.searchTerm : '',\n );\n };\n\n const addDevice = (e: MouseEvent) => {\n e.stopPropagation();\n setAddDeviceOpen(true);\n };\n const addDevices = (e: MouseEvent) => {\n e.stopPropagation();\n setAddDevicesOpen(true);\n };\n const actionButtons: ActionButtons = [\n {\n handler: downloadDevices,\n text: 'Device Info',\n view: 'Alarms',\n },\n { handler: downloadAlarms, text: 'Alarms', view: 'Alarms' },\n {\n handler: addDevice,\n text: 'Add Device',\n view: 'Devices',\n },\n {\n handler: addDevices,\n text: 'Import Device(s)',\n view: 'Devices',\n },\n ];\n const deviceRef = useRef();\n const selectView = () => {\n switch (selectedTab) {\n case 'Alarms':\n return ;\n case 'Devices':\n return ;\n default:\n return 'loading';\n }\n };\n return (\n <>\n {addDeviceOpen && (\n \n )}\n {addDevicesOpen && (\n \n )}\n \n \n \n \n \n \n \n \n \n \n \n
\n \n {me?.type == '3' ? me?.companyName : me?.first_name}\n \n
\n\n \n \n \n {selectedTab === 'Alarms' && (\n {\n setMonthFilter(val);\n }}\n data={monthFilters}\n />\n )}\n \n\n {actionButtons.map((val, i) => {\n return (\n selectedTab === val.view && (\n \n {\n val.handler(e);\n }}\n size=\"medium\"\n disableElevation\n variant=\"contained\"\n color=\"primary\"\n type=\"button\">\n {val.view !== 'Devices' && (\n \n )}\n {val.text}\n \n \n )\n );\n })}\n
\n \n {selectView()}\n \n
\n {selectedTab === 'Alarms' && (\n \n \n \n )}\n \n \n );\n};\n\nexport default CompaniesAlarmView;\n","import * as Screens from '../../screens';\n\nclass NavRoutes {\n static PUBLIC = {\n FORGOT_PASSWORD: 'forgot-password',\n LOGIN: 'login',\n RESET_PASSWORD: 'reset',\n SIGNUP: 'signup',\n };\n\n static PRIVATE = {\n ADMIN_USERS: 'admin-users',\n ADS: 'ads',\n APP_TEXT_TOOLS: 'app-text-tools',\n CLIENTS: 'clients',\n COMPANIES: 'companies',\n DEVICE: 'device',\n DEVICES: 'devices',\n PATIENTS: 'patients',\n PROVIDERS: 'providers',\n };\n\n static PUBLIC_NAVS = [\n {\n component: Screens.ForgotPassword,\n route: NavRoutes.PUBLIC.FORGOT_PASSWORD,\n value: 'Forgot Password',\n },\n {\n component: Screens.Login,\n route: NavRoutes.PUBLIC.LOGIN,\n value: 'Login',\n },\n {\n component: Screens.ResetPassword,\n route: NavRoutes.PUBLIC.RESET_PASSWORD,\n value: 'Reset Password',\n },\n {\n component: Screens.SignUp,\n route: NavRoutes.PUBLIC.SIGNUP,\n value: 'Signup',\n },\n ];\n\n static ADMIN_NAVS = [\n {\n component: Screens.Companies,\n route: NavRoutes.PRIVATE.COMPANIES,\n value: 'Companies',\n },\n {\n component: Screens.Device,\n route: NavRoutes.PRIVATE.DEVICE,\n value: 'Device',\n },\n {\n component: Screens.Devices,\n route: NavRoutes.PRIVATE.DEVICES,\n value: 'Devices',\n },\n {\n component: Screens.Providers,\n route: NavRoutes.PRIVATE.PROVIDERS,\n value: 'Personal Health',\n },\n {\n component: Screens.AdminUsers,\n route: NavRoutes.PRIVATE.ADMIN_USERS,\n value: 'Admin Users',\n },\n {\n component: Screens.AppTextTools,\n route: NavRoutes.PRIVATE.APP_TEXT_TOOLS,\n value: 'App Text Tools',\n },\n {\n component: Screens.AdsContainer,\n route: NavRoutes.PRIVATE.ADS,\n value: 'Ads',\n },\n ];\n}\n\nexport default NavRoutes;\n","import { Config } from './Constants';\n\n// export const baseUrl = 'http://10.1.10.42:3000/api/';\nexport const baseUrl = Config.BASE_URL;\n\nexport const version = '/v1';\n\nexport enum HttpMethod {\n GET = 'GET',\n POST = 'POST',\n PUT = 'PUT',\n PATCH = 'PATCH',\n DELETE = 'DELETE',\n}\n\nexport const ApiRoutes = {\n AdminUsers: {\n GetAdminUsers: {\n Endpoint: version + '/admin/all',\n Method: HttpMethod.GET,\n },\n GetMe: {\n Endpoint: version + '/admin/me',\n Method: HttpMethod.GET,\n },\n register: {\n Endpoint: version + '/admin/register/platform/user',\n Method: HttpMethod.POST,\n },\n searchAdmins: {\n Endpoint: (\n searchTerm: string,\n status: 'active' | 'inactive' | 'initiated',\n sortby: string,\n sortOrder: string,\n ) =>\n version +\n `/admin/search?searchTerm=${searchTerm}&status=${status}&sortby=${sortby}&sortOrder=${sortOrder}`,\n Method: HttpMethod.GET,\n },\n },\n\n // ?limit=0&offset=0&sortby=title&sortOrder=DESC&adType=launchPage&status=active&adStatus=publish\n Advertisement: {\n ArchiveActive: {\n Endpoint: (adId: string) =>\n version + `/advertisement/archive-or-active/${adId}`,\n Method: HttpMethod.PUT,\n },\n Create: {\n Endpoint: version + '/advertisement',\n Method: HttpMethod.POST,\n },\n Get: {\n Endpoint: version + '/advertisement',\n Method: HttpMethod.GET,\n },\n GetDeviceHealth: {\n Endpoint: version + '/device-health',\n Method: HttpMethod.GET,\n },\n Post: {\n Endpoint: version + '/advertisement',\n Method: HttpMethod.POST,\n },\n Put: {\n Endpoint: (adId: string) => version + `/advertisement/${adId}`,\n Method: HttpMethod.PUT,\n },\n deleteDeviceHealth: {\n Endpoint: (id: string) => version + `/device-health/${id}`,\n Method: HttpMethod.DELETE,\n },\n postDeviceHealth: {\n Endpoint: version + '/device-health',\n Method: HttpMethod.POST,\n },\n putDeviceHealth: {\n Endpoint: (id: string) => version + `/device-health/${id}`,\n Method: HttpMethod.PUT,\n },\n },\n Alarms: {\n DownloadCompanyAlarms: {\n Endpoint: (companyId: string, date: string, keyword: string) =>\n version +\n `/alarms/download/company/${companyId}?date=${date}&keyword=${keyword}`,\n Method: HttpMethod.GET,\n },\n DownloadDeviceAlarms: {\n Endpoint: (deviceId: string, filter: string, date: string) =>\n version +\n `/alarms/download/device/${deviceId}?filter=${filter}&date=${date}`,\n Method: HttpMethod.GET,\n },\n DownloadPatientCompanyAlarms: {\n Endpoint: (date: string) =>\n version + `/alarms/download/third-party/patient?date=${date}`,\n Method: HttpMethod.GET,\n },\n DownloadThirdCompanyAlarms: {\n Endpoint: (date: string, keyword: string) =>\n version +\n `/alarms/download/third-party/company?date=${date}&keyword=${keyword}`,\n Method: HttpMethod.GET,\n },\n DownloadUsersAlarms: {\n Endpoint: (userId: string) => version + `/alarms/download/user/${userId}`,\n Method: HttpMethod.GET,\n },\n GetAlarms: {\n Endpoint: version + '/alarms/all',\n Method: HttpMethod.GET,\n },\n GetCompanyAlarms: {\n Endpoint: (id: string) => version + `/alarms/company/${id}`,\n Method: HttpMethod.GET,\n },\n GetCompanyAlarmsTypes: {\n Endpoint: (companyId: string) =>\n version + `/alarms/types/company/${companyId}`,\n Method: HttpMethod.GET,\n },\n GetDeviceAlarms: {\n Endpoint: (id: string) => version + `/alarms/device/${id}`,\n Method: HttpMethod.GET,\n },\n GetPatientCompanyAlarms: {\n Endpoint: version + '/alarms/third-party/patient',\n Method: HttpMethod.GET,\n },\n GetPatientCompanyAlarmsTypes: {\n Endpoint: version + '/alarms/types/third-party/patient',\n Method: HttpMethod.GET,\n },\n GetThirdCompanyAlarms: {\n Endpoint: version + '/alarms/third-party/company',\n Method: HttpMethod.GET,\n },\n GetThirdCompanyAlarmsTypes: {\n Endpoint: version + '/alarms/types/third-party/company',\n Method: HttpMethod.GET,\n },\n GetUserAlarms: {\n Endpoint: (id: string) => version + `/alarms/user/${id}`,\n Method: HttpMethod.GET,\n },\n GetUserByClientId: {\n Endpoint: (id: string) => version + `/user/${id}`,\n Method: HttpMethod.GET,\n },\n GetUserByDeviceId: {\n Endpoint: (id: string) => version + `/user/device/${id}`,\n Method: HttpMethod.GET,\n },\n },\n Auth: {\n Code: {\n Endpoint: version + '/admin/sendCode',\n Method: HttpMethod.POST,\n },\n Login: {\n Endpoint: version + '/auth/admin/login',\n Method: HttpMethod.POST,\n },\n },\n\n Clients: {\n ClearAccountPersonalData: {\n Endpoint: (userId: string) => version + `/user/${userId}`,\n Method: HttpMethod.DELETE,\n },\n\n ClearPersonalData: {\n Endpoint: (userId: string) => version + `/user/${userId}`,\n Method: HttpMethod.PUT,\n },\n\n GetClients: {\n Endpoint: version + '/user/all',\n Method: HttpMethod.GET,\n },\n\n GetDeleteRequests: {\n Endpoint: version + '/requests/all',\n Method: HttpMethod.GET,\n },\n\n UpdateRequests: {\n Endpoint: (id: string) => version + `/requests/${id}`,\n Method: HttpMethod.PUT,\n },\n\n searchClients: {\n Endpoint: (searchTerm: string, status: 'active' | 'inactive') =>\n version + `/user/search?searchTerm=${searchTerm}&status=${status}`,\n Method: HttpMethod.GET,\n },\n },\n\n Companies: {\n CreateCompany: {\n Endpoint: version + '/companies',\n Method: HttpMethod.POST,\n },\n GetArchivedCompany: {\n Endpoint: version + '/companies/archived',\n Method: HttpMethod.GET,\n },\n GetCompanies: {\n Endpoint: version + '/companies/all',\n Method: HttpMethod.GET,\n },\n GetCompaniesByType: {\n Endpoint: version + '/companies/type/all',\n Method: HttpMethod.GET,\n },\n GetCompaniesDashboardTotals: {\n Endpoint: version + '/companies/dashboard/totals',\n Method: HttpMethod.GET,\n },\n GetCompaniesTotals: {\n Endpoint: version + '/companies/totals',\n Method: HttpMethod.GET,\n },\n GetCompany: {\n Endpoint: (id: string) => version + `/companies/${id}`,\n Method: HttpMethod.GET,\n },\n GetCompanyThird: {\n Endpoint: version + '/companies/thirdParty/companyId',\n Method: HttpMethod.GET,\n },\n queryCompanyType: {\n Endpoint: version + '/companies/queryCompanyType',\n Method: HttpMethod.GET,\n },\n searchCompanies: {\n Endpoint: (searchTerm: string) =>\n version + `/companies/search?searchTerm=${searchTerm}`,\n Method: HttpMethod.GET,\n },\n },\n\n Dashboard: {\n GetELC: {\n Endpoint: version + '/elcs',\n Method: HttpMethod.GET,\n },\n },\n\n DeviceLogs: {\n DownloadDeviceInfo: {\n Endpoint: (id: string, date: string, keyword: string) =>\n version +\n `/devicelogs/download/company/${id}?date=${date}&keyword=${keyword}`,\n Method: HttpMethod.GET,\n },\n DownloadPatientDeviceInfo: {\n Endpoint: (date: string) =>\n version + `/devicelogs/download/third-party/patient?date=${date}`,\n Method: HttpMethod.GET,\n },\n DownloadThirdDeviceInfo: {\n Endpoint: (date: string, keyword: string) =>\n version +\n `/devicelogs/download/third-party/company?date=${date}&keyword=${keyword}`,\n Method: HttpMethod.GET,\n },\n GetDeviceInfo: {\n Endpoint: (deviceId: string) =>\n version + `/devicelogs/deviceinfo/${deviceId}`,\n Method: HttpMethod.GET,\n },\n },\n\n Devices: {\n AddDevice: {\n Endpoint: version + '/devices/platform',\n Method: HttpMethod.POST,\n },\n AddDeviceByThird: {\n Endpoint: version + '/devices/platform',\n Method: HttpMethod.POST,\n },\n CreateDevice: {\n Endpoint: version + '/devices',\n Method: HttpMethod.POST,\n },\n GetCompanyDevices: {\n Endpoint: (id: string) => version + `/devices/company/${id}`,\n Method: HttpMethod.GET,\n },\n GetCompanyDevicesByPatient: {\n Endpoint: version + '/devices/patient',\n Method: HttpMethod.GET,\n },\n GetCompanyDevicesByThird: {\n Endpoint: version + '/devices/third-party/company',\n Method: HttpMethod.GET,\n },\n GetDevices: {\n Endpoint: version + '/devices/all',\n Method: HttpMethod.GET,\n },\n GetTransferDevice: {\n Endpoint: (deviceId: string) =>\n version + `/transfers/userDeviceRelationCompany/${deviceId}`,\n Method: HttpMethod.GET,\n },\n TransferDevice: {\n Endpoint: version + '/transfers',\n Method: HttpMethod.POST,\n },\n TransferDeviceThird: {\n Endpoint: version + '/transfers/userDeviceBindingCompany',\n Method: HttpMethod.PUT,\n },\n TransferDeviceUser: {\n Endpoint: version + '/transfers/user',\n Method: HttpMethod.POST,\n },\n UnbindDevice: {\n Endpoint: version + '/devices/platform/remove-device',\n Method: HttpMethod.PUT,\n },\n UploadDevice: {\n Endpoint: (companyId: string) => version + `/devices/upload/${companyId}`,\n Method: HttpMethod.POST,\n },\n UploadDeviceThird: {\n Endpoint: version + '/devices/third-party/upload',\n Method: HttpMethod.POST,\n },\n },\n\n Elc: {\n Add: {\n Endpoint: version + '/elcs',\n Method: HttpMethod.POST,\n },\n Delete: {\n Endpoint: (id: string) => version + `elcs/${id}`,\n Method: HttpMethod.DELETE,\n },\n Get: {\n Endpoint: version + '/elcs',\n Method: HttpMethod.GET,\n },\n },\n\n Metrics: {\n Download: {\n Endpoint: version + '/advertisement/metrics',\n Method: HttpMethod.GET,\n },\n Export: {\n Endpoint: `${version}/advertisement/metrics/export`,\n Method: HttpMethod.GET,\n },\n ExportByAd: {\n Endpoint: (id: string) => `${version}/advertisement/metrics/export/${id}`,\n Method: HttpMethod.GET,\n },\n Get: {\n Endpoint: version + '/advertisement/metrics',\n Method: HttpMethod.GET,\n },\n GetByAd: {\n Endpoint: (id: string) => `${version}/advertisement/metrics/${id}`,\n Method: HttpMethod.GET,\n },\n },\n Providers: {\n DownloadProviders: {\n Endpoint: (params: { deviceId?: string[] }) => {\n return (\n version +\n '/provider/export' +\n // eslint-disable-next-line @typescript-eslint/restrict-template-expressions\n (params.deviceId ? '?deviceId=' + `${params?.deviceId}` : '')\n );\n },\n Method: HttpMethod.GET,\n },\n GetEnvironmentalData: {\n Endpoint: (deviceId: string) =>\n version + `/provider/environmental/all/${deviceId}`,\n Method: HttpMethod.GET,\n },\n GetPeripheralData: {\n Endpoint: (deviceId: string) =>\n version + `/provider/peripheral/all/${deviceId}`,\n Method: HttpMethod.GET,\n },\n GetProviders: {\n Endpoint: version + '/provider/all',\n Method: HttpMethod.GET,\n },\n GetProvidersByPatient: {\n Endpoint: version + '/provider/third-party/patient',\n Method: HttpMethod.GET,\n },\n GetProvidersByThird: {\n Endpoint: version + '/provider/third-party/all',\n Method: HttpMethod.GET,\n },\n // GetMe: {\n // Endpoint: '/admin/me',\n // Method: HttpMethod.GET,\n // },\n searchProviders: {\n Endpoint: (searchTerm: string, status: 'active' | 'inactive') =>\n version + `/admin/search?searchTerm=${searchTerm}&status=${status}`,\n Method: HttpMethod.GET,\n },\n },\n User: {\n Add: {\n Endpoint: version + '/admin',\n Method: HttpMethod.POST,\n },\n AddTextTools: {\n Endpoint: version + '/texttools',\n Method: HttpMethod.POST,\n },\n ForgotPassword: {\n Endpoint: version + '/auth/admin/forgot',\n Method: HttpMethod.POST,\n },\n GetTextTools: {\n Endpoint: version + '/texttools',\n Method: HttpMethod.GET,\n },\n GetUsers: {\n Endpoint: version + '/admin/all',\n Method: HttpMethod.GET,\n },\n ResendInvite: {\n Endpoint: (userId: string) => version + `admin/${userId}`,\n Method: HttpMethod.PUT,\n },\n ResetPassword: {\n Endpoint: version + '/auth/admin/reset',\n Method: HttpMethod.POST,\n },\n SendConfirmation: {\n Endpoint: (userId: string) => version + `/admin/email/${userId}`,\n Method: HttpMethod.PUT,\n },\n SignUp: {\n Endpoint: version + '/admin/sign-up',\n Method: HttpMethod.POST,\n },\n Update: {\n Endpoint: (userId: string) => version + `/admin/${userId}`,\n Method: HttpMethod.PUT,\n },\n },\n};\n","import NavRoutes from '../constants/routes/NavRoutes';\n\n// export const Config = {\n// API_URL: 'http://192.168.1.207:3000/',\n// BASE_URL: process.env.REACT_APP_BASEURL || 'http://192.168.1.207:3000/api/',\n// REACT_APP_PRIVACY_POLICY: process.env.REACT_APP_PRIVACY_POLICY,\n// REACT_APP_TERMS: process.env.REACT_APP_TERMS,\n// };\nexport const Config = {\n API_URL: 'https://belluscura-dev.azurewebsites.net/',\n BASE_URL:\n process.env.REACT_APP_BASEURL ||\n 'https://belluscura-dev.azurewebsites.net/api/',\n REACT_APP_PRIVACY_POLICY: process.env.REACT_APP_PRIVACY_POLICY,\n REACT_APP_TERMS: process.env.REACT_APP_TERMS,\n};\n\nexport const DEFAULT_DATE_FORMAT = 'MM/DD/YYYY';\n\n// export const DashboardRoutes = {\n// DASHBOARD: `/${NavRoutes.PRIVATE.LEFT_NAV.DASHBOARD}`,`${process.env.REACT_APP_APIURL!}`\n// };\n//\n// export const ProfileRoutes = {\n// PROFILE: `/${NavRoutes.PRIVATE.PROFILE}`,\n// };\n\n// export const UsersRoutes = {\n// ACTIVE: `/${NavRoutes.PRIVATE.LEFT_NAV.USERS}/${NavRoutes.PRIVATE.USER_ROUTES.ACTIVE}`,\n// INACTIVE: `/${NavRoutes.PRIVATE.LEFT_NAV.USERS}/${NavRoutes.PRIVATE.USER_ROUTES.INACTIVE}`,\n// };\n//\n// export const AppTextRoutes = {\n// ACCESSIBILITY: `/${NavRoutes.PRIVATE.APP_TEXT_TOOLS}`,\n// COMPLIANCE: `/${NavRoutes.PRIVATE.APP_TEXT_TOOLS}`,\n// FAQS: `/${NavRoutes.PRIVATE.APP_TEXT_TOOLS}`,\n// PRIVACYPOLICY: `/${NavRoutes.PRIVATE.APP_TEXT_TOOLS}`,\n// TERMCONDITIONS: `/${NavRoutes.PRIVATE.APP_TEXT_TOOLS}`,\n// USERMANUAL: `/${NavRoutes.PRIVATE.APP_TEXT_TOOLS}`,\n// };\n\nexport const PublicRoutes = {\n FORGOT_PASSWORD: `/${NavRoutes.PUBLIC.FORGOT_PASSWORD}`,\n LOGIN: `/${NavRoutes.PUBLIC.LOGIN}`,\n RESET_PASSWORD: `/${NavRoutes.PUBLIC.RESET_PASSWORD}`,\n SIGNUP: `/${NavRoutes.PUBLIC.SIGNUP}`,\n};\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { AdminUsersDTO } from '../../core/types/AdminUsersDTO';\nimport {\n /* GetUserInput,*/ PaginationOptions,\n UserStatusInput,\n} from '../../types';\nimport { RootStore } from '..';\n\nexport class AdminUsersApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getMe = () => {\n const {\n GetMe: { Endpoint, Method },\n } = ApiRoutes.AdminUsers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n searchAdmins = (\n searchTerm: string,\n status: 'active' | 'inactive' | 'initiated',\n pagination: PaginationOptions,\n sortby: string,\n sortOrder: string,\n ) => {\n const {\n searchAdmins: { Endpoint, Method },\n } = ApiRoutes.AdminUsers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params: pagination,\n url: Endpoint(searchTerm, status, sortby, sortOrder),\n });\n };\n\n getAllAdminUsers = (params: any) => {\n const {\n GetAdminUsers: { Endpoint, Method },\n } = ApiRoutes.AdminUsers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n\n sendConfirmation = (userId: string) => {\n const {\n SendConfirmation: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n method: Method,\n url: Endpoint(userId),\n });\n };\n\n updateAdminStatus = (values: UserStatusInput) => {\n const {\n Update: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n data: { status: values.status },\n method: Method,\n url: Endpoint(values.id),\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { AdvertisementsDTO } from '../../core/types/ProvidersDTO';\n// import { /* GetUserInput,*/ PaginationOptions } from '../../types';\nimport { RootStore } from '..';\n\nexport class AdvertisementsApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getMetrics = () => {\n const {\n Get: { Endpoint, Method },\n } = ApiRoutes.Metrics;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n getAdMetrics = (adId: string) => {\n const {\n GetByAd: { Endpoint, Method },\n } = ApiRoutes.Metrics;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(adId),\n });\n };\n\n downloadAdMetrics = (id: any) => {\n const {\n ExportByAd: { Endpoint, Method },\n } = ApiRoutes.Metrics;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(id),\n });\n };\n\n downloadCompleteAdMetrics = () => {\n const {\n Export: { Endpoint, Method },\n } = ApiRoutes.Metrics;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint,\n });\n };\n\n getAllAdvertisements = (params: any) => {\n const {\n Get: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n\n createAd = (data: FormData) => {\n const {\n Post: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n headers: {\n 'Content-type': 'multipart/form-data',\n },\n method: Method,\n url: Endpoint,\n });\n };\n createAdNew = (data: FormData) => {\n const {\n Create: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n headers: {\n 'Content-type': 'multipart/form-data',\n },\n method: Method,\n url: Endpoint,\n });\n };\n\n updateAd = (data: FormData, adId: string) => {\n const {\n Put: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n headers: {\n 'Content-type': 'multipart/form-data',\n },\n method: Method,\n url: Endpoint(adId),\n });\n };\n\n getDeviceHealth = () => {\n const {\n GetDeviceHealth: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n deleteDeviceHealth = (id: string) => {\n const {\n deleteDeviceHealth: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(id),\n });\n };\n\n updateDeviceHealth = (data: any, id: string) => {\n const {\n putDeviceHealth: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n method: Method,\n url: Endpoint(id),\n });\n };\n\n changeStatus = (data: { status: string }, adId: string) => {\n const {\n ArchiveActive: { Endpoint, Method },\n } = ApiRoutes.Advertisement;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n method: Method,\n url: Endpoint(adId),\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { AlarmsDTO, AlarmsTypesDTO } from '../../core/types';\nimport { RootStore } from '..';\n\nexport class AlarmsApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getAllAlarms = () => {\n const {\n GetAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n\n method: Method,\n url: Endpoint,\n });\n };\n\n getCompanyAlarms = (params: any) => {\n const {\n GetCompanyAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint(params.id),\n });\n };\n getPatientCompanyAlarms = (params: any) => {\n const {\n GetPatientCompanyAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getThirdCompanyAlarms = (params: any) => {\n const {\n GetThirdCompanyAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getUserNameByClientId = (id: any) => {\n const {\n GetUserByClientId: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(id),\n });\n };\n\n getUserNameByDeviceId = (id: any) => {\n const {\n GetUserByDeviceId: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(id),\n });\n };\n\n getDeviceAlarms = (id: string, params: any) => {\n const {\n GetDeviceAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint(id),\n });\n };\n\n getUserAlarms = (id: string, params: any) => {\n const {\n GetUserAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint(id),\n });\n };\n\n downloadCompanyAlarms = (id: any, month: string, keyword: string) => {\n const {\n DownloadCompanyAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(id, month, keyword),\n });\n };\n downloadPatientCompanyAlarms = (month: string) => {\n const {\n DownloadPatientCompanyAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(month),\n });\n };\n downloadThirdCompanyAlarms = (month: string, keyword: string) => {\n const {\n DownloadThirdCompanyAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(month, keyword),\n });\n };\n downloadDeviceAlarms = (id: any, type: string, month: string) => {\n const {\n DownloadDeviceAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(id, type, month),\n });\n };\n\n downloadUsersAlarms = (id: any) => {\n const {\n DownloadUsersAlarms: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(id),\n });\n };\n\n getCompanyAlarmsTypes = (id: any) => {\n const {\n GetCompanyAlarmsTypes: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n\n method: Method,\n url: Endpoint(id),\n });\n };\n getPatientCompanyAlarmsTypes = () => {\n const {\n GetPatientCompanyAlarmsTypes: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n getThirdCompanyAlarmsTypes = () => {\n const {\n GetThirdCompanyAlarmsTypes: { Endpoint, Method },\n } = ApiRoutes.Alarms;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport {\n LoginDTO,\n registerDTO,\n SignUpDTO,\n SignUpFormInputs,\n} from '../../types';\nimport { RootStore } from '..';\n\nexport class AuthApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n getCode = (params: { phone: string }) => {\n const { phone } = params;\n const {\n Code: { Endpoint, Method },\n } = ApiRoutes.Auth;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: {\n phone,\n },\n method: Method,\n url: Endpoint,\n });\n };\n login = (params: { email: string; password: string }) => {\n const { email, password } = params;\n const {\n Login: { Endpoint, Method },\n } = ApiRoutes.Auth;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: {\n email,\n password,\n },\n method: Method,\n url: Endpoint,\n });\n };\n register = (values: registerDTO) => {\n const {\n register: { Endpoint, Method },\n } = ApiRoutes.AdminUsers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n signUp = (values: SignUpFormInputs) => {\n const {\n SignUp: { Endpoint, Method },\n } = ApiRoutes.User;\n\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { PaginationOptions } from '../../types';\n// import { PaginationOptions } from '../../types';\nimport { RootStore } from '..';\n\nexport class ClientsApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getAllClients = (params: any) => {\n const {\n GetClients: { Endpoint, Method },\n } = ApiRoutes.Clients;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n\n updateDeleteRequests = (id: string, status: string) => {\n const {\n UpdateRequests: { Endpoint, Method },\n } = ApiRoutes.Clients;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: { status },\n method: Method,\n url: Endpoint(id),\n });\n };\n\n getAllDeleteRequests = (params: any) => {\n const {\n GetDeleteRequests: { Endpoint, Method },\n } = ApiRoutes.Clients;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n\n clearPersonalData = (userId: string) => {\n const {\n ClearPersonalData: { Endpoint, Method },\n } = ApiRoutes.Clients;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(userId),\n });\n };\n\n searchClients = (\n searchTerm: string,\n status: 'active' | 'inactive',\n pagination: PaginationOptions,\n ) => {\n const {\n searchClients: { Endpoint, Method },\n } = ApiRoutes.Clients;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params: pagination,\n url: Endpoint(searchTerm, status),\n });\n };\n\n clearAccountPersonalData = (userId: string) => {\n const {\n ClearAccountPersonalData: { Endpoint, Method },\n } = ApiRoutes.Clients;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(userId),\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { CompaniesDashboardDTO, CompaniesDTO } from '../../core/types';\nimport {\n CompaniesTotalsDTO,\n CompanyCreateDTO,\n} from '../../core/types/CompaniesDTO';\nimport { RootStore } from '..';\n\nexport class CompaniesApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getAllCompanies = (params: any) => {\n const {\n GetCompanies: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getAllCompaniesByType = (params: any) => {\n const {\n GetCompaniesByType: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getCompanyDashBoardTotals = () => {\n const {\n GetCompaniesDashboardTotals: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n getCompanyTotals = () => {\n const {\n GetCompaniesTotals: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n searchCompanies = (searchTerm: string) => {\n const {\n searchCompanies: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(searchTerm),\n });\n };\n\n createCompany = (values: CompanyCreateDTO) => {\n const {\n CreateCompany: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n\n getArchivedCompanies = () => {\n const {\n GetArchivedCompany: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n queryCompanyTypes = () => {\n const {\n queryCompanyType: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n getCompany = (id: string) => {\n const {\n GetCompany: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(id),\n });\n };\n getCompanyThird = () => {\n const {\n GetCompanyThird: { Endpoint, Method },\n } = ApiRoutes.Companies;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\n// import { ApiRoutes } from '../../constants/ApiRoutes';\nimport { RootStore } from '..';\n\nexport type DashboardApiInstance = InstanceType;\n\nexport class DashboardApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getELC = () => {};\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { DeviceLogsDTO } from '../../core/types';\nimport { RootStore } from '..';\n\nexport class DeviceLogsApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getDeviceInfo = (deviceId: string) => {\n const {\n GetDeviceInfo: { Endpoint, Method },\n } = ApiRoutes.DeviceLogs;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(deviceId),\n });\n };\n\n // downloadDeviceInfo = (id: string) => {\n // const {\n // GetCompanyDevices: { Endpoint, Method },\n // } = ApiRoutes.Devices;\n\n // return this.rootStore.apiStore.call({\n // baseUrl: Config.API_URL,\n // method: Method,\n // url: Endpoint(id),\n // });\n // };\n // }\n\n downloadDeviceInfo = (id: any, month: string, keyword: string) => {\n const {\n DownloadDeviceInfo: { Endpoint, Method },\n } = ApiRoutes.DeviceLogs;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(id, month, keyword),\n });\n };\n downloadPatientDeviceInfo = (month: string) => {\n const {\n DownloadPatientDeviceInfo: { Endpoint, Method },\n } = ApiRoutes.DeviceLogs;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(month),\n });\n };\n downloadThirdDeviceInfo = (month: string, keyword: string) => {\n const {\n DownloadThirdDeviceInfo: { Endpoint, Method },\n } = ApiRoutes.DeviceLogs;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n url: Endpoint(month, keyword),\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport { DevicesDTO } from '../../core/types';\nimport { RootStore } from '..';\n\nexport class DevicesApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getAllDevices = () => {\n const {\n GetDevices: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n\n method: Method,\n url: Endpoint,\n });\n };\n\n addDevice = (params: {\n name?: string | null;\n deviceId?: string | null;\n companyId: string;\n }) => {\n const { name, deviceId, companyId } = params;\n const {\n AddDevice: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call<{ name: string; status: string }>({\n baseUrl: Config.API_URL,\n data: { companyId, deviceId, name },\n method: Method,\n url: Endpoint,\n });\n };\n addDeviceByThird = (params: {\n name?: string | null;\n deviceId?: string | null;\n }) => {\n const { name, deviceId } = params;\n const {\n AddDeviceByThird: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call<{ name: string; status: string }>({\n baseUrl: Config.API_URL,\n data: { deviceId, name },\n method: Method,\n url: Endpoint,\n });\n };\n createDevice = (params: { name: string }) => {\n const { name } = params;\n const {\n CreateDevice: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call<{ name: string; status: string }>({\n baseUrl: Config.API_URL,\n data: { name },\n method: Method,\n url: Endpoint,\n });\n };\n transferDevice = (params: {\n deviceId: string;\n companyId?: string;\n userId?: boolean;\n }) => {\n const { companyId, deviceId } = params;\n const {\n TransferDevice: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call<{ name: string; status: string }>({\n baseUrl: Config.API_URL,\n data: { companyId, deviceId },\n method: Method,\n url: Endpoint,\n });\n };\n\n transferDeviceBindCompany = (params: {\n deviceId: string;\n distributorCompanyId: string;\n physicianCompanyId?: string;\n accessDataStatus: boolean;\n }) => {\n const {\n TransferDeviceThird: { Endpoint, Method },\n } = ApiRoutes.Devices;\n return this.rootStore.apiStore.call<{ name: string; status: string }>({\n baseUrl: Config.API_URL,\n data: params,\n method: Method,\n url: Endpoint,\n });\n };\n getTransferDevice = (deviceId: string) => {\n const {\n GetTransferDevice: { Endpoint, Method },\n } = ApiRoutes.Devices;\n return this.rootStore.apiStore.call<{\n deviceId: string;\n distributorCompanyId: string;\n physicianCompanyId: string;\n accessDataStatus: boolean;\n }>({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint(deviceId),\n });\n };\n transferTransferDeviceUser = (params: {\n companyId?: string;\n deviceId?: string | null | undefined;\n userId?: string | null | undefined;\n }) => {\n const { companyId, userId } = params;\n const {\n TransferDeviceUser: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: { companyId, userId },\n method: Method,\n url: Endpoint,\n });\n };\n\n getCompanyDevices = (id: string, params: any) => {\n const {\n GetCompanyDevices: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint(id),\n });\n };\n\n getCompanyDevicesByThird = (params: any) => {\n const {\n GetCompanyDevicesByThird: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getCompanyDevicesByPatient = (params: any) => {\n const {\n GetCompanyDevicesByPatient: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n\n searchCompanyDevices = (params: any) => {\n const {\n GetCompanyDevicesByPatient: { Endpoint, Method },\n } = ApiRoutes.Devices;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n unbindDevices = (deviceId: string) => {\n const {\n UnbindDevice: { Endpoint, Method },\n } = ApiRoutes.Devices;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data: { deviceId },\n method: Method,\n url: Endpoint,\n });\n };\n\n uploadDevices = (data: FormData, companyId: string) => {\n const {\n UploadDevice: { Endpoint, Method },\n } = ApiRoutes.Devices;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n headers: {\n 'Content-type': 'multipart/form-data',\n },\n method: Method,\n url: Endpoint(companyId),\n });\n };\n uploadDevicesThird = (data: FormData) => {\n const {\n UploadDeviceThird: { Endpoint, Method },\n } = ApiRoutes.Devices;\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n data,\n headers: {\n 'Content-type': 'multipart/form-data',\n },\n method: Method,\n url: Endpoint,\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport { Config } from '../../constants/Constants';\nimport {\n EnvironmentalsDTO,\n PeripheralsDTO,\n ProvidersDTO,\n} from '../../core/types/ProvidersDTO';\nimport { /* GetUserInput,*/ PaginationOptions } from '../../types';\nimport { RootStore } from '..';\n\nexport class ProvidersApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n getMe = () => {\n const {\n GetMe: { Endpoint, Method },\n } = ApiRoutes.AdminUsers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n url: Endpoint,\n });\n };\n\n searchProviders = (\n searchTerm: string,\n status: 'active' | 'inactive',\n pagination: PaginationOptions,\n sortby: string | '',\n sortOrder: string | '',\n ) => {\n const {\n searchAdmins: { Endpoint, Method },\n } = ApiRoutes.AdminUsers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params: pagination,\n url: Endpoint(searchTerm, status, sortby, sortOrder),\n });\n };\n\n getAllProviders = (params: any) => {\n const {\n GetProviders: { Endpoint, Method },\n } = ApiRoutes.Providers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getAllProvidersByPatient = (params: any) => {\n const {\n GetProvidersByPatient: { Endpoint, Method },\n } = ApiRoutes.Providers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n getAllProvidersByThird = (params: any) => {\n const {\n GetProvidersByThird: { Endpoint, Method },\n } = ApiRoutes.Providers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint,\n });\n };\n downloadProviders = (params: any = null) => {\n const {\n DownloadProviders: { Endpoint, Method },\n } = ApiRoutes.Providers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n headers: {\n 'Content-Type':\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',\n },\n method: Method,\n responseType: 'blob',\n // params,\n url: Endpoint(params),\n });\n };\n\n getAllDeviceInfo = (params: any, deviceId: any) => {\n const {\n GetPeripheralData: { Endpoint, Method },\n } = ApiRoutes.Providers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint(deviceId),\n });\n };\n\n getAllEnvironmentalInfo = (params: any, deviceId: any) => {\n const {\n GetEnvironmentalData: { Endpoint, Method },\n } = ApiRoutes.Providers;\n\n return this.rootStore.apiStore.call({\n baseUrl: Config.API_URL,\n method: Method,\n params,\n url: Endpoint(deviceId),\n });\n };\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { ApiRoutes } from '../../constants/ApiRoutes';\nimport {\n AddTextDataItem,\n AddUserDTO,\n AddUserFormInput,\n ForgotPasswordFormInputs,\n GetTextDataItem,\n GetTextInput,\n GetUserInput,\n GetUsersDTO,\n ResetPasswordFormInputs,\n UpdateUserInput,\n} from '../../types';\nimport { RootStore } from '..';\n\nexport type UserApiInstance = InstanceType;\n\nexport class UserApiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n addUser = (values: AddUserFormInput) => {\n const {\n Add: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n\n getUsers = (params: GetUserInput) => {\n const {\n GetUsers: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n method: Method,\n params: params,\n url: Endpoint,\n });\n };\n\n resetPassword = (values: ResetPasswordFormInputs) => {\n const {\n ResetPassword: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n\n forgotPassword = (values: ForgotPasswordFormInputs) => {\n const {\n ForgotPassword: { Endpoint, Method },\n } = ApiRoutes.User;\n\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n\n updateUser = (values: UpdateUserInput) => {\n const {\n Update: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint(values.id),\n });\n };\n\n resendInvite = (values: UpdateUserInput) => {\n return true;\n /* const {\n ResendInvite: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint(values.id),\n });*/\n };\n\n addText = (values: AddTextDataItem) => {\n const {\n AddTextTools: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n data: values,\n method: Method,\n url: Endpoint,\n });\n };\n\n getTextTools = (params: GetTextInput) => {\n const {\n GetTextTools: { Endpoint, Method },\n } = ApiRoutes.User;\n return this.rootStore.apiStore.call({\n method: Method,\n params: params,\n url: Endpoint,\n });\n };\n}\n","import axios, { AxiosError, AxiosInstance } from 'axios';\nimport { makeAutoObservable } from 'mobx';\nimport { Err, err, ok, Result } from 'neverthrow';\n\nimport { AuthErrorType } from '../../backendError.types';\nimport { Config } from '../../constants/Constants';\nimport { ApiError } from '../../types';\nimport { RootStore } from '..';\nimport { AdminUsersApiStore } from './adminUsers.api';\nimport { AdvertisementsApiStore } from './advertisements';\nimport { AlarmsApiStore } from './alarms.api';\nimport { AuthApiStore } from './auth.api';\nimport { ClientsApiStore } from './clients.api';\nimport { CompaniesApiStore } from './companies.api';\nimport { DashboardApiStore } from './dashboard.api';\nimport { DeviceLogsApiStore } from './deviceLogs.api';\nimport { DevicesApiStore } from './devices.api';\nimport { ProvidersApiStore } from './providers.api';\nimport { UserApiStore } from './user.api';\n\nexport class ApiStore {\n private _httpClient!: AxiosInstance;\n\n authApi: AuthApiStore;\n dashboardApi: DashboardApiStore;\n userApi: UserApiStore;\n companiesApi: CompaniesApiStore;\n alarmsApi: AlarmsApiStore;\n devicesApi: DevicesApiStore;\n clientsApi: ClientsApiStore;\n adminUsersApi: AdminUsersApiStore;\n deviceLogsApi: DeviceLogsApiStore;\n providersApi: ProvidersApiStore;\n advertisementsApiStore: AdvertisementsApiStore;\n\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, {\n authApi: false,\n dashboardApi: false,\n rootStore: false,\n userApi: false,\n });\n\n this.authApi = new AuthApiStore(rootStore);\n this.dashboardApi = new DashboardApiStore(rootStore);\n this.userApi = new UserApiStore(rootStore);\n this.companiesApi = new CompaniesApiStore(rootStore);\n this.alarmsApi = new AlarmsApiStore(rootStore);\n this.devicesApi = new DevicesApiStore(rootStore);\n this.clientsApi = new ClientsApiStore(rootStore);\n this.adminUsersApi = new AdminUsersApiStore(rootStore);\n this.deviceLogsApi = new DeviceLogsApiStore(rootStore);\n this.providersApi = new ProvidersApiStore(rootStore);\n this.advertisementsApiStore = new AdvertisementsApiStore(rootStore);\n this.initialize();\n }\n\n initialize = () => {\n this._httpClient = axios.create({\n baseURL: Config.API_URL,\n });\n\n this._httpClient.interceptors.request.use((config) => {\n const accessToken = this.rootStore.authStore.tokens?.accessToken;\n const authHeaders = accessToken\n ? { Authorization: `Bearer ${accessToken}` }\n : {};\n\n config.headers = {\n ...config.headers,\n ...authHeaders,\n };\n\n return config;\n });\n\n this._httpClient.interceptors.response.use(\n undefined,\n (error: AxiosError) => {\n const { response } = error;\n throw new ApiError({\n actions: response?.data?.actions,\n message:\n response?.data?.message ??\n response?.statusText ??\n 'Please check your internet connection!',\n status: response?.status,\n type: response?.data?.type,\n });\n },\n );\n };\n\n exchangeTokenApiCall(refreshToken: string | null) {\n return this._httpClient({\n data: {\n refreshToken,\n },\n method: 'POST',\n url: 'tokens/exchange',\n });\n }\n\n async call(options: {\n baseUrl?: string;\n url: string;\n method: 'POST' | 'GET' | 'DELETE' | 'PUT' | 'PATCH';\n headers?: any;\n data?: any;\n params?: any;\n responseType?: any;\n }): Promise | Err> {\n const initialAuthCount = this.rootStore.authStore.authCount;\n try {\n const { data, headers } = await this._httpClient(options);\n if (headers && headers['content-disposition']) {\n data.fileName = headers['content-disposition'].replace(\n 'attachment; filename=',\n '',\n );\n }\n return ok(data as T);\n } catch (e) {\n const er = e as ApiError;\n if (er.actions.exchange) {\n try {\n // await exchange the token only once.\n initialAuthCount === this.rootStore.authStore.authCount &&\n (await this.rootStore.authStore.exchangeOnlyOnce());\n // on success - call the api again.\n return await this.call(options);\n } catch (e) {\n // logout only once\n await this.rootStore.authStore.logout();\n }\n } else if (er.type === AuthErrorType.NoAccessToUser) {\n return err(er);\n } else if (er.actions.authFailed || er.status === 401) {\n await this.rootStore.authStore.logout();\n }\n return err(er);\n }\n }\n}\n","import * as CryptoJS from 'crypto-js';\n\nconst isEncryptLocalStorage = true;\nconst key = 'f74808fb03f94ef8f64350a37918c1b0518c';\n\nexport const encrypt = (value: string): string => {\n return isEncryptLocalStorage\n ? CryptoJS.AES.encrypt(value, key).toString()\n : value;\n};\n\nexport const decrypt = (value: string | null): string => {\n return value\n ? isEncryptLocalStorage\n ? CryptoJS.AES.decrypt(value, key).toString(CryptoJS.enc.Utf8)\n : value\n : '';\n};\n","/* eslint-disable */\nimport { decrypt, encrypt } from './LocalStorage';\nimport { AuthTokenType } from '../types';\nimport jwt_decode from 'jwt-decode';\n\nclass Storage {\n static KEYS = {\n AUTH_TOKEN: 'AUTH_TOKEN',\n };\n\n static setItem = (key: string, value: any): void => {\n if (!value) {\n value = '';\n }\n\n if (typeof value !== 'string') {\n value = JSON.stringify(value);\n }\n localStorage.setItem(encrypt(key), encrypt(value));\n };\n\n static getItem = (key: string, shouldParse?: boolean): string | null => {\n const keyVal = decrypt(localStorage.getItem(Storage.searchKey(key)));\n\n if (shouldParse && keyVal) {\n return JSON.parse(keyVal);\n }\n\n return keyVal;\n };\n\n static getAccessTokenData = (): any => {\n // console.log(jwt_decode(Storage.getItem('AUTH_TOKEN') || ''));\n return jwt_decode(Storage.getItem('AUTH_TOKEN') || '');\n };\n\n static searchKey(key: string): string {\n const keys = Object.keys(localStorage);\n let i = keys.length;\n\n while (i--) {\n try {\n if (decrypt(keys[i]) === key) {\n return keys[i];\n }\n } catch (e) {\n localStorage.removeItem(keys[i]);\n }\n }\n\n return '';\n }\n\n static removeItem = (key: string): void => {\n localStorage.removeItem(Storage.searchKey(key));\n };\n\n static clear = (): void => {\n localStorage.clear();\n };\n\n static getTokens = async () => {\n try {\n const appAuth = await Storage.getItem(Storage.KEYS.AUTH_TOKEN);\n return appAuth ? (JSON.parse(appAuth) as AuthTokenType) : null;\n } catch (e) {\n return null;\n }\n };\n}\n\nexport default Storage;\n","import { makeAutoObservable } from 'mobx';\n\n// import { PublicRoutes } from '../constants/Constants';\nimport { AuthTokenType, registerDTO, SignUpFormInputs } from '../types';\nimport Storage from '../utils/Storage';\nimport { RootStore } from '.';\n\nexport class AuthStore {\n private _authCount = 0;\n\n private _tokens: AuthTokenType | null = null;\n\n _logoutPromise: Promise | null = null;\n\n _exchangePromise: Promise | null = null;\n\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n setLogoutPromise(promise: any | null) {\n this._logoutPromise = promise;\n }\n\n setExchangePromise(promise: Promise | null) {\n this._exchangePromise = promise;\n }\n\n setTokens(tokens: AuthTokenType | null) {\n this._authCount++;\n this._tokens = tokens;\n }\n\n get authCount() {\n return this._authCount;\n }\n\n get tokens() {\n return this._tokens ? { ...this._tokens } : null;\n }\n\n async fetchTokens() {\n const appAuth = await Storage.getTokens();\n this.setTokens(appAuth);\n }\n\n initTokens(tokens: AuthTokenType) {\n if (tokens) {\n Storage.setItem(Storage.KEYS.AUTH_TOKEN, JSON.stringify(tokens));\n } else {\n Storage.removeItem(Storage.KEYS.AUTH_TOKEN);\n }\n this.setTokens(tokens);\n }\n\n async logout() {\n if (this._logoutPromise) {\n return this._logoutPromise;\n }\n\n try {\n this.setLogoutPromise(this._authLogout());\n await this._logoutPromise!;\n // console.log(PublicRoutes);\n window.location.href = '/';\n } catch (e) {\n // console.error(e);\n } finally {\n this.setLogoutPromise(null);\n }\n }\n\n private _authLogout() {\n if (this.isLoggedIn) {\n this.removeTokens();\n }\n }\n\n get isLoggedIn() {\n return !!this._tokens;\n }\n\n removeTokens() {\n Storage.removeItem(Storage.KEYS.AUTH_TOKEN);\n this.setTokens(null);\n }\n\n async exchangeOnlyOnce() {\n if (this._exchangePromise) {\n return this._exchangePromise;\n }\n\n try {\n this.setExchangePromise(this._exchangeToken());\n await this._exchangePromise!;\n } finally {\n this.setExchangePromise(null);\n }\n }\n\n private async _exchangeToken() {\n const refreshToken = this.tokens?.refreshToken;\n\n const { data } = await this.rootStore.apiStore.exchangeTokenApiCall(\n refreshToken || null,\n );\n this.removeTokens();\n this.initTokens({\n accessToken: data.accessToken,\n refreshToken: data.refreshToken,\n userId: data.id,\n userRole: data.role,\n });\n return data;\n }\n\n async getCode(options: { phone: string }) {\n const codeResp = await this.rootStore.apiStore.authApi.getCode(options);\n return codeResp;\n }\n async login(options: { email: string; password: string }) {\n const loginResp = await this.rootStore.apiStore.authApi.login(options);\n if (loginResp.isOk()) {\n const { accessToken, refreshToken, id, role } = loginResp.value;\n this.initTokens({\n accessToken,\n refreshToken,\n userId: id,\n userRole: role,\n });\n }\n return loginResp;\n }\n\n async register(options: registerDTO) {\n const signUpResp = await this.rootStore.apiStore.authApi.register(options);\n if (signUpResp.isOk()) {\n const { accessToken, refreshToken, id, role } = signUpResp.value;\n this.initTokens({\n accessToken,\n refreshToken,\n userId: id,\n userRole: role,\n });\n }\n return signUpResp;\n }\n async signUp(options: SignUpFormInputs) {\n const signUpResp = await this.rootStore.apiStore.authApi.signUp(options);\n if (signUpResp.isOk()) {\n const { accessToken, refreshToken, id, role } = signUpResp.value;\n this.initTokens({\n accessToken,\n refreshToken,\n userId: id,\n userRole: role,\n });\n }\n return signUpResp;\n }\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { RootStore } from '.';\n\nexport class DashboardStore {\n // private _limit = 10;\n // private _elcList: DashboardELCData[] = [];\n private _showLoader = false;\n\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n setShowLoader(value: boolean) {\n this._showLoader = value;\n }\n\n get ShowLoader() {\n return this._showLoader;\n }\n\n // get ElcList() {\n // return this._elcList;\n // }\n\n async fetchELC() {\n // const params: GetDashboardELCInput = {\n // limit: this._limit,\n // offset: 0,\n // status: ELCStatus.Open,\n // };\n // const response = await this.rootStore.apiStore.dashboardApi.getELC(params);\n // if (response.isOk()) {\n // const { results } = response.value;\n // this.setElcList(results);\n // }\n // // set Dashboard ELC Json\n // this.setElcList(DashboardELCJson);\n // return response;\n }\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { RootStore } from '.';\n\nexport class ProviderStore {\n private _selectedProvider: string[] = [];\n\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n set selectedProvider(value: string[]) {\n this._selectedProvider = value;\n }\n\n get selectedProvider() {\n return this._selectedProvider;\n }\n\n addSelected(val: string) {\n this.selectedProvider = [...this.selectedProvider, val];\n }\n removeSelected(val: string) {\n this.selectedProvider = this.selectedProvider.filter(\n (data) => data !== val,\n );\n }\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport { RootStore } from '..';\n\nexport class UiStore {\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, {});\n }\n}\n","import { makeAutoObservable } from 'mobx';\n\nimport {\n AddTextDataItem,\n GetTextInput,\n GetUsersData,\n GetUsersDataItem,\n UserRole,\n} from '../types';\nimport { RootStore } from '.';\nimport { UserApiInstance } from './api/user.api';\n\nexport class UserStore {\n private _currentSortField: 'email' | 'lastName' | 'firstName' | '' = '';\n private _currentSortOrder: 1 | -1 = -1;\n private _searchText = '';\n private _nextOffset = 0;\n private _limit = 10;\n private _hasMoreResults = true;\n private _userListData: GetUsersData = [];\n private _currentStatus = true;\n private _adminList: GetUsersDataItem[] = [];\n private _userByRolesList: GetUsersDataItem[] = [];\n public processedTypes: any = {\n accessibility: 'Accessibility',\n compliance: 'Compliance',\n faqs: 'FAQs',\n privacypolicy: 'Privacy Policy',\n termsandconditions: 'Terms & Conditions',\n usermanual: 'User Manual',\n };\n\n constructor(public rootStore: RootStore) {\n makeAutoObservable(this, { rootStore: false });\n }\n\n setCurrentSortOrder(sortOrder: 1 | -1) {\n this._currentSortOrder = sortOrder;\n }\n\n setCurrentSortField(sortField: 'email' | 'lastName' | 'firstName') {\n this._currentSortField = sortField;\n }\n\n setSearchText(searchText: string) {\n this._searchText = searchText;\n }\n\n setStatus(state: boolean) {\n this._currentStatus = state;\n }\n\n setHasMoreResults(hasMoreResults: boolean) {\n this._hasMoreResults = hasMoreResults;\n }\n\n setNextstart(val: number) {\n this._nextOffset = val;\n }\n\n setUsers(data: GetUsersData | null) {\n this._userListData = data!;\n }\n\n setAdminList(data: GetUsersDataItem[] | null) {\n this._adminList = data!;\n }\n\n setUserByRolesList(data: GetUsersDataItem[] | null) {\n this._userByRolesList = data!;\n }\n\n get UserByRolesList() {\n return this._userByRolesList;\n }\n\n get AdminList() {\n return this._adminList;\n }\n\n get searchText() {\n return this._searchText;\n }\n\n get UsersList() {\n return this._userListData;\n }\n\n get HasMoreResults() {\n return this._hasMoreResults;\n }\n\n get status() {\n return this._currentStatus;\n }\n\n get selectedSortOrder() {\n return this._currentSortOrder;\n }\n get selectedSortField() {\n return this._currentSortField;\n }\n\n toggleSortOrder() {\n this.setCurrentSortOrder(this._currentSortOrder === 1 ? -1 : 1);\n }\n async fetchUsers(options: Parameters[0]) {\n const params = {\n active: options.active || this._currentStatus,\n limit: this._limit,\n offset: 0,\n search: options.search ? this._searchText || '' : undefined,\n sortField: options.sortField ? options.sortField : undefined,\n sortOrder:\n options.sortField && options.sortOrder ? options.sortOrder : undefined,\n };\n\n const response = await this.rootStore.apiStore.userApi.getUsers(params);\n if (response.isOk()) {\n const { results, completed, nextOffset } = response.value;\n this.setUsers(results);\n this.setNextstart(nextOffset);\n this.setHasMoreResults(!completed);\n if (!options.sortField) {\n this._currentSortField = '';\n }\n }\n\n return response;\n }\n\n async fetchMoreUsers() {\n const params = {\n active: this._currentStatus,\n limit: this._limit,\n offset: this._nextOffset,\n search: this._searchText || undefined,\n sortField: this._currentSortField || undefined,\n sortOrder: this._currentSortField\n ? this._currentSortOrder || undefined\n : undefined,\n };\n\n const response = await this.rootStore.apiStore.userApi.getUsers(params);\n if (response.isOk()) {\n const { results, completed, nextOffset } = response.value;\n // handling adding duplicate records\n const mergedIds: any = [];\n const mergedData: any = [];\n this._userListData.filter((e) => {\n mergedIds.push(e.id);\n mergedData.push(e);\n });\n\n results.filter((e) => {\n if (mergedIds.indexOf(e.id) === -1) {\n mergedData.push(e);\n mergedIds.push(e.id);\n }\n });\n this.setUsers(mergedData);\n this.setNextstart(nextOffset);\n this.setHasMoreResults(!completed);\n }\n return response;\n }\n\n async createNewText({\n type,\n text,\n isDraft,\n }: {\n type: string;\n text: string;\n isDraft: boolean;\n }) {\n const data: AddTextDataItem = {\n isDraft,\n type,\n value: text,\n };\n const response = await this.rootStore.apiStore.userApi.addText(data);\n return response;\n }\n\n async fetchAllTexts({ type, isDraft }: { type: string; isDraft: boolean }) {\n const params: GetTextInput = { isDraft, type };\n const response = await this.rootStore.apiStore.userApi.getTextTools(params);\n return response;\n }\n\n async toggleUserStatus({ id, active }: { id: string; active: boolean }) {\n const response = await this.rootStore.apiStore.userApi.updateUser({\n active,\n id,\n });\n if (response.isOk()) {\n const updatedUserListData = this._userListData.filter(\n (item) => item.id !== id,\n );\n this.setUsers(updatedUserListData);\n }\n return response;\n }\n\n async editUserDetails(data: Parameters[0]) {\n const response = await this.rootStore.apiStore.userApi.updateUser(data);\n if (response.isOk()) {\n const updatedList = [...this._userListData];\n\n const selectedIndex = this._userListData.findIndex(\n (item) => item.id === data.id,\n );\n if (selectedIndex > -1) {\n const updatedItem = {\n ...this._userListData[selectedIndex],\n firstName: data.first_name as string,\n lastName: data.last_name as string,\n notes: data.notes as string,\n phoneNumber: data.phoneNumber as string,\n };\n updatedList[selectedIndex] = updatedItem;\n this.setUsers(updatedList);\n }\n }\n return response;\n }\n\n async fetchAdmin() {\n const params = {\n active: true,\n role: [UserRole.Admin],\n };\n const response = await this.rootStore.apiStore.userApi.getUsers(params);\n if (response.isOk()) {\n const { results } = response.value;\n this.setAdminList(results);\n }\n return response;\n }\n\n async fetchUserByRoles(userRoles: UserRole[]) {\n const params = {\n active: true,\n role: userRoles,\n };\n const response = await this.rootStore.apiStore.userApi.getUsers(params);\n if (response.isOk()) {\n const { results } = response.value;\n this.setUserByRolesList(results);\n }\n return response;\n }\n}\n","import { ApiStore } from './api';\nimport { ProvidersApiStore } from './api/providers.api';\nimport { AuthStore } from './auth';\nimport { DashboardStore } from './dashboard';\nimport { ProviderStore } from './provider';\nimport { UiStore } from './uiStore';\nimport { UserStore } from './user';\n\nexport class RootStore {\n public apiStore: ApiStore;\n public authStore: AuthStore;\n public dashboardStore: DashboardStore;\n public uiStore: UiStore;\n public userStore: UserStore;\n public providersApiStore: ProvidersApiStore;\n public providerStore: ProviderStore;\n\n constructor() {\n this.apiStore = new ApiStore(this);\n this.authStore = new AuthStore(this);\n this.dashboardStore = new DashboardStore(this);\n this.uiStore = new UiStore(this);\n this.userStore = new UserStore(this);\n this.providersApiStore = new ProvidersApiStore(this);\n this.providerStore = new ProviderStore(this);\n }\n}\n\nexport const rootStore = new RootStore();\n","import { createContext } from 'react';\n\nimport { RootStore, rootStore } from '../../store';\n\nexport const StoreContext = createContext(rootStore);\n","import { useContext } from 'react';\n\nimport { StoreContext } from '../context/store';\n\nexport const useCustomStore = () => useContext(StoreContext);\n","import { makeAutoObservable } from 'mobx';\n\nclass SearchStore {\n startSearch = false;\n searchTerm = '';\n searchScreen = '';\n\n constructor() {\n makeAutoObservable(this);\n }\n\n setSearchScreen = (val: string) => {\n this.searchScreen = val;\n };\n\n setSearch = (val: string) => {\n this.startSearch = false;\n this.searchTerm = val;\n };\n\n get searchMode() {\n return this.searchTerm !== '';\n }\n\n triggerSearch = () => {\n this.startSearch = true;\n };\n\n initSearch = (screen: string) => {\n this.setSearch('');\n this.startSearch = false;\n this.setSearchScreen(screen);\n };\n}\n\nexport default new SearchStore();\n","import { makeStyles } from '@material-ui/core/styles';\n\nconst drawerWidth = 260;\n\nconst useStyles = makeStyles((theme) => ({\n drawerPaper: {\n '@media screen and (max-width: 280px)': {\n width: 230,\n },\n width: drawerWidth,\n },\n root: {\n background: '#f5f5f5',\n display: 'flex',\n minHeight: '100vh',\n },\n toolbar: theme.mixins.toolbar,\n}));\n\nexport default useStyles;\n","import React from 'react';\nimport { useLocation } from 'react-router-dom';\n\nimport LeftNav from '../../../components/Navs/LeftNav';\nimport useStyles from './HomeStyles';\n\nconst Home: React.FC = ({ children }) => {\n const location = useLocation().pathname;\n const classes = useStyles();\n return (\n
\n {location !== '/providers' && }\n {children!}\n
\n );\n};\n\nexport default Home;\n","import React from 'react';\n// import React, { useCallback, useEffect } from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\n\n// import { useCustomStore } from '../../hooks';\n// import Dashboard from '../screens/admin/Dashboard/Dashboard';\n// import Home from '../screens/admin/Home/Home';\n// import Profile from '../screens/admin/Profile/Profile';\n// import ActiveUsers from '../screens/admin/Users/ActiveUsers';\n// import InActiveUsers from '../screens/admin/Users/InActiveUsers';\n// import {\n// DashboardRoutes,\n// ProfileRoutes,\n// UsersRoutes,\n// } from '../constants/Constants';\nimport NavRoutes from '../constants/routes/NavRoutes';\nimport { useFetchMe } from '../hooks/adminUsers/adminUsersService';\nimport Home from '../screens/admin/Home/Home';\nimport Storage from '../utils/Storage';\n// import * as Pages from '../screens';\nconst AdminRoute = (): React.ReactElement => {\n const { admins: me } = useFetchMe();\n // const routepage = me?.role || [''];\n // const { authStore } = useCustomStore();\n\n // const handleAppEntry = useCallback(async () => {\n // await authStore.fetchTokens();\n // }, [authStore]);\n\n // useEffect(() => {\n // handleAppEntry();\n // }, [handleAppEntry]);\n\n // const hasTokenAndUserId = !!authStore.tokens;\n // console.log(hasTokenAndUserId);\n // if (routepage.includes(path.route)) {\n // }\n const NAVS = NavRoutes.ADMIN_NAVS;\n const NAVS_role: any = [];\n if (me) {\n const routepage = me?.permissions;\n NAVS.map((path) => {\n if (routepage.includes(path.route)) {\n NAVS_role.push(path);\n }\n });\n }\n let home_path = '';\n if (NAVS_role[0]) {\n home_path = NAVS_role[0].route;\n }\n return (\n \n \n \n \n {NAVS_role.map((nav: any, index: number) => {\n const route: string = nav.route;\n return (\n \n {React.createElement(nav.component)}\n \n );\n })}\n \n );\n};\n\nexport default AdminRoute;\n","import React from 'react';\nimport { Redirect, Route, Switch } from 'react-router-dom';\n\nimport { PublicRoutes } from '../constants/Constants';\nimport ForgotPassword from '../screens/public/ForgotPassword/ForgotPassword';\nimport Login from '../screens/public/Login/Login';\nimport ResetPassword from '../screens/public/ResetPassword/ResetPassword';\nimport SignUp from '../screens/public/SignUp/SignUp';\n\nconst PublicRoute: React.FC = () => {\n return (\n \n \n \n \n \n \n\n \n \n \n {/* } /> */}\n \n );\n};\n\nexport default PublicRoute;\n","import './style/style.scss';\nimport 'react-app-polyfill/stable';\n\nimport { observer } from 'mobx-react-lite';\nimport React, { useCallback, useEffect, useState } from 'react';\nimport { BrowserRouter as Router } from 'react-router-dom';\n\nimport Loader from './components/Loader/Loader';\nimport { useCustomStore } from './hooks';\nimport AdminRoute from './routes/AdminRoute';\n// import OwnerRoute from './constants/routes/OwnerRoute';\nimport PublicRoute from './routes/PublicRoute';\n// import { UserRole } from './types';\n\nconst App: React.FC = () => {\n const { authStore } = useCustomStore();\n const [isReady, setReady] = useState(false);\n\n const handleAppEntry = useCallback(async () => {\n await authStore.fetchTokens();\n setReady(true);\n }, [authStore]);\n\n useEffect(() => {\n handleAppEntry();\n }, [handleAppEntry]);\n\n if (isReady) {\n // const userRole = authStore.tokens?.userRole;\n const hasTokenAndUserId = !!authStore.tokens;\n // console.log(authStore.tokens);\n // console.log(userRole);\n return (\n \n {!hasTokenAndUserId && }\n {/* */}\n {hasTokenAndUserId && }\n \n );\n }\n\n return ;\n};\n\nexport default observer(App);\n","import { colors } from '@material-ui/core';\nimport { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\nimport { AppStyles } from '../style/variable';\n\nconst paletteDark: ThemeOptions['palette'] = {\n background: {\n default: AppStyles.background.secondary,\n paper: AppStyles.background.primary,\n },\n\n common: {\n black: AppStyles.color.black,\n white: AppStyles.color.white,\n },\n divider: colors.grey[200],\n error: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.tertiary,\n light: AppStyles.color.tertiary,\n main: AppStyles.color.tertiary,\n },\n // icon: AppStyles.iconsBgColor.primary,\n info: {\n contrastText: AppStyles.color.white,\n dark: colors.blue[900],\n light: colors.blue[400],\n main: colors.blue[600],\n },\n primary: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.primary,\n light: AppStyles.color.primary,\n main: AppStyles.color.primary,\n },\n secondary: {\n contrastText: AppStyles.color.white,\n dark: colors.blue[900],\n light: colors.blue['A400'],\n main: colors.blue['A400'],\n },\n success: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.secondary,\n light: AppStyles.color.secondary,\n main: AppStyles.color.secondary,\n },\n text: {\n disabled: AppStyles.color.white,\n hint: AppStyles.color.white,\n primary: AppStyles.color.white,\n secondary: AppStyles.color.white,\n },\n type: 'dark',\n warning: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.tertiary,\n light: AppStyles.color.tertiary,\n main: AppStyles.color.tertiary,\n },\n};\n\nexport default paletteDark;\n","import { colors } from '@material-ui/core';\nimport { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\nimport { AppStyles } from '../style/variable';\n\nconst paletteLight: ThemeOptions['palette'] = {\n background: {\n default: AppStyles.background.primary,\n paper: AppStyles.background.primary,\n },\n common: {\n black: AppStyles.color.black,\n white: AppStyles.color.white,\n },\n divider: colors.grey[200],\n error: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.tertiary,\n light: AppStyles.color.tertiary,\n main: AppStyles.color.tertiary,\n },\n // icon: AppStyles.iconsBgColor.primary,\n info: {\n contrastText: AppStyles.color.white,\n dark: colors.blue[900],\n light: colors.blue[400],\n main: colors.blue[600],\n },\n primary: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.primary,\n light: AppStyles.color.lightBlue,\n main: AppStyles.color.primary,\n },\n secondary: {\n contrastText: AppStyles.color.white,\n dark: colors.blue[900],\n light: colors.blue['A400'],\n main: colors.blue['A400'],\n },\n success: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.secondary,\n light: AppStyles.color.secondary,\n main: AppStyles.color.secondary,\n },\n text: {\n disabled: AppStyles.fontColor.tertiary,\n hint: AppStyles.fontColor.lightGray,\n primary: AppStyles.fontColor.primary,\n secondary: AppStyles.fontColor.secondary,\n },\n warning: {\n contrastText: AppStyles.color.white,\n dark: AppStyles.color.tertiary,\n light: AppStyles.color.tertiary,\n main: AppStyles.color.tertiary,\n },\n};\n\nexport default paletteLight;\n","import { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\n// import { themeObj } from '../types';\nimport paletteDark from './PaletteDark';\nimport paletteLight from './PaletteLight';\n\nexport default function getTheme(theme: string): ThemeOptions['palette'] {\n return theme === 'dark' ? paletteDark : paletteLight;\n}\n","import { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\nimport { ComponentStyles } from '../style/variable';\n\nconst overrides: ThemeOptions['overrides'] = {\n MuiButton: {\n containedPrimary: {\n '& .MuiTouchRipple-child': {\n backgroundColor: `${ComponentStyles.button.background.ripple} !important`,\n },\n borderRadius: '8px',\n boxShadow: ComponentStyles.button.shadow.primary,\n fontFamily: `${ComponentStyles.button.font.primary} !important`,\n // fontSize: '20px !important',\n },\n root: {\n textTransform: 'none',\n },\n },\n MuiFormHelperText: {\n contained: {\n margin: '0px',\n marginLeft: '0px',\n marginRight: '0px',\n position: 'relative',\n },\n },\n MuiInputLabel: {\n outlined: {\n color: ComponentStyles.label.color.primary,\n fontFamily: ComponentStyles.label.font.primary,\n fontSize: '20px',\n marginBottom: '10px',\n position: 'inherit',\n },\n shrink: {\n transform: 'none !important',\n },\n },\n MuiOutlinedInput: {\n input: {\n background: ComponentStyles.input.background.primaryColor,\n fontSize: '20px',\n },\n notchedOutline: {\n '& legend': {\n display: 'none',\n },\n border: ComponentStyles.input.border.primary,\n borderColor: ComponentStyles.input.border.primaryColor,\n top: '0px',\n },\n root: {\n borderRadius: '0px',\n },\n },\n\n MuiTextField: {\n root: {},\n },\n};\n\nexport default overrides;\n","import { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\nconst props: ThemeOptions['props'] = {\n MuiOutlinedInput: {\n notched: false,\n },\n MuiTextField: {\n InputLabelProps: {\n disableAnimation: true,\n // margin: 'dense',\n shrink: true,\n },\n },\n};\n\nexport default props;\n","import { ThemeOptions } from '@material-ui/core/styles/createMuiTheme';\n\n// import { PaletteOptions } from '@material-ui/core/styles/createPalette';\nimport { AppStyles } from '../style/variable';\nimport GetTheme from './GetTheme';\n\nconst currentTheme = window.localStorage.getItem('currentTheme') || 'light';\nconst palette: ThemeOptions['palette'] = GetTheme(currentTheme);\nconst typography: ThemeOptions['typography'] = {\n body1: {\n color: palette?.text?.primary,\n fontSize: '1rem',\n letterSpacing: '0.00938rem',\n lineHeight: 1.125,\n },\n body2: {\n color: palette?.text?.secondary,\n fontSize: '1rem',\n letterSpacing: '0.00938rem',\n lineHeight: 1.125,\n },\n button: {\n color: palette?.text?.primary,\n fontSize: '0.875rem',\n },\n caption: {\n color: palette?.text?.secondary,\n fontSize: '0.6875rem',\n letterSpacing: '0.33px',\n },\n fontFamily: AppStyles.font.regular,\n\n h1: {\n color: palette?.text?.primary,\n fontFamily: AppStyles.font.semiBold,\n fontSize: '36px',\n fontWeight: 500,\n },\n h2: {\n color: palette?.text?.primary,\n fontFamily: AppStyles.font.bold,\n fontSize: '28px',\n fontWeight: 500,\n },\n h3: {\n color: palette?.text?.primary,\n fontSize: '1.5rem',\n fontWeight: 500,\n },\n h4: {\n color: palette?.text?.primary,\n fontSize: '1.25rem',\n fontWeight: 500,\n },\n h5: {\n color: palette?.text?.primary,\n fontSize: '1rem',\n fontWeight: 500,\n },\n h6: {\n color: palette?.text?.primary,\n fontSize: '0.875rem',\n fontWeight: 500,\n },\n overline: {\n color: palette?.text?.secondary,\n fontSize: '0.6875rem',\n fontWeight: 500,\n letterSpacing: '0.33px',\n },\n subtitle1: {\n color: palette?.text?.primary,\n fontSize: '1rem',\n },\n subtitle2: {\n color: palette?.text?.secondary,\n fontSize: '0.875rem',\n fontWeight: 400,\n },\n};\n\nexport default typography;\n","import {\n responsiveFontSizes,\n unstable_createMuiStrictModeTheme as createMuiTheme,\n} from '@material-ui/core/styles';\n\nimport GetTheme from './GetTheme';\nimport overrides from './Overrides';\nimport props from './Props';\nimport typography from './Typography';\n\nconst currentTheme = window.localStorage.getItem('currentTheme') || 'light';\nconst palette = GetTheme(currentTheme);\nlet theme = createMuiTheme({\n overrides,\n palette,\n props,\n typography,\n});\ntheme = responsiveFontSizes(theme);\n\nexport default theme;\n","import { ReportHandler } from 'web-vitals';\n\nconst reportWebVitals = (onPerfEntry?: ReportHandler): void => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import {\n createGenerateClassName,\n CssBaseline,\n IconButton,\n StylesProvider,\n ThemeProvider,\n} from '@material-ui/core';\nimport { Cancel } from '@material-ui/icons';\nimport { SnackbarKey, SnackbarProvider } from 'notistack';\nimport React from 'react';\nimport ReactDOM from 'react-dom';\n\nimport App from './App';\nimport theme from './materialtheme';\nimport reportWebVitals from './reportWebVitals';\nimport { MAX_SNACKBARS } from './utils/SnackBarConfig';\n\nconst generateClassName = createGenerateClassName({\n seed: 'App1',\n});\n\nconst Index = (): React.ReactElement => {\n const notistackRef = React.createRef();\n\n const onClickDismiss = (key: SnackbarKey) => () => {\n if (notistackRef?.current?.closeSnackbar) {\n notistackRef.current.closeSnackbar(key);\n }\n };\n\n // set currentTheme\n window.localStorage.setItem('currentTheme', 'light');\n\n return (\n \n \n \n {\n return (\n \n \n \n );\n }}\n maxSnack={MAX_SNACKBARS}\n hideIconVariant\n preventDuplicate>\n \n \n \n \n \n \n );\n};\nReactDOM.render(, document.getElementById('root'));\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n"],"sourceRoot":""}