{"version":3,"sources":["constants/routes.js","components/DataNet/DataNet.js","components/Session/context.js","components/DataNet/DataNetAuth.js","components/Navigation/LangSelect.js","i18n/index.js","components/Session/withAuthentication.js","assets/images/0_6_BEXEN_Cardio_Vertic.png","components/LoadingPage/index.js","components/Session/withAuthorization.js","assets/images/0_3_BEXEN_Cardio_Horiz.png","components/SignIn/SignInForm.js","assets/images/login.jpg","components/SignIn/index.js","components/Home/index.js","constants/theme.js","components/Navigation/AuthDrawer.js","components/SignOut/SingOutMenuItem.js","components/Navigation/User.js","components/Navigation/SelectList.js","assets/images/BEXEN_Cardio_Horiz_Blanco.png","components/Navigation/index.js","components/ErrorDialog/index.js","components/AddDevice/ModelSelect.js","constants/apiKeys.js","components/ButtonLoader/index.js","components/R100ConfigChangedModal/index.js","constants/comsTypes.js","functions/getDeviceComunications.js","components/MoveDeviceSelec/index.js","components/AddDevice/DeviceHourEditor.js","components/AddDevice/DeviceForm.js","components/DeviceSetupForm/SelectConfig.js","components/DeviceSetupForm/index.js","components/EditDevice/index.js","functions/BatteryChargeCalc.js","functions/getDeviceStatus.js","components/DeviceTabs/Licenses.js","components/DeviceTabs/DeviceDetailTab.js","components/AddDevice/Confirmation.js","constants/comsPriority.js","components/GroupsModals/AddGroupModal.js","components/AddDevice/GroupNotCompatibleModal.js","components/AddDevice/index.js","components/MapDialog/index.js","components/PageHeader/AllGroups.js","components/PageHeader/Programs.js","components/PageHeader/AllDevices.js","components/PageHeader/ProgramLink.js","components/PageHeader/GroupDevice.js","components/PageHeader/ProgramGroups.js","components/PageHeader/ProgramDevices.js","components/PageHeader/AllAccessories.js","components/PageHeader/GroupAccessories.js","components/PageHeader/ProgramAccessories.js","components/PageHeader/AllUsers.js","components/PageHeader/ProgramUsers.js","components/PageHeader/GroupUsers.js","components/PageHeader/Sources.js","components/PageHeader/ReleaseNotes.js","components/PageHeader/index.js","assets/images/Parches_2.png","components/DeviceStatusModal/DeviceStatus.js","components/DeviceStatusModal/DeviceStatusOthers.js","components/DeviceStatusModal/index.js","components/DeviceUseEventModal/DeviceUsageStatus.js","components/DeviceUseEventModal/DeviceUsageHistory.js","components/DeviceUseEventModal/index.js","assets/images/sigfox-logo-vector.png","pages/DevicesPage.js","components/GroupCard/index.js","components/GorupSkeletonCard/index.js","components/GroupsModals/FilterModal.js","components/GroupsModals/MapModal.js","components/GroupsModals/index.js","components/GroupsModals/GroupForm.js","pages/GroupsPage.js","assets/images/r100_s.jpg","components/ProgramsCard/index.js","components/ProgramForm/ClientEmailForm.js","components/ProgramForm/NotEmptyProgramDialog.js","components/ProgramForm/FormBase.js","components/ProgramForm/ProgramDialog.js","components/ProgramForm/DeleteDialog.js","components/ProgramsCard/LoadingProgramCard.js","pages/ProgramsPage.js","assets/images/alertExample.PNG","components/DeviceTabInfoHeader/index.js","components/DeviceTabs/DeviceAlertTab.js","assets/documents/20210728_163102585_a2.pdf","functions/useWindowDimensions.js","components/ECG/index.js","components/ECG/FakeECG.js","components/ECG/AcordionECG.js","components/DeviceTabs/DeviceEpisodesTab.js","pages/DevicePage.js","components/AddAccessory/index.js","pages/AccessoriesPage.js","components/AddUser/index.js","pages/UsersPage.js","components/RequestPasswordButton/index.js","pages/UserPage.js","components/SourceCard/index.js","pages/SourcesPage.js","pages/AccountValidationPage.js","constants/validations.js","components/CreateAccount/CreateAccountForm.js","components/CreateAccount/index.js","pages/NewAccount.js","constants/images/logo_color_Cardio_Protecccion.png","pages/RequestNewPasswordPage.js","pages/ResetPassword.js","components/ProgramForm/ExpiredTokenModal.js","pages/RegisterUserFrom.js","pages/ReleasesNotes.js","components/App/index.js","reportWebVitals.js","index.js"],"names":["window","location","origin","SIGN_IN","ACCOUNT_NEW","DEVICE","PROGRAMS","USER","SOURCES","GROUPS","GROUPS_IN_PROGRAM","DEVICES","DEVICES_IN_GROUP","DEVICES_IN_PROGRAM","ACCESSORIES","ACCES_IN_PROG","ACCES_IN_GROUP","USERS","USERS_IN_GROUP","USERS_IN_PROGRAM","REQUEST_NEW_PASSWROD","RELEASE_NOTES","config","urlBase","getAllGroups","programId","Promise","resolve","reject","path","concat","undefined","makeAndManageRequest","getGroup","groupId","getDevices","editDevice","devices","id","console","log","newVersionGroup","groupid","method","body","GET","fetch","DELETE","PUT","JSON","stringify","headers","POST","then","response","ok","redirected","json","status","data","catch","err","msg","AuthUserContext","React","createContext","require","w3cwebsocket","currentUser","LangSelect","_ref","icon","anchor","setanchor","useState","anchorEl","setAnchorEl","open","Boolean","t","i18n","useTranslation","onChangeLanguaje","lang","changeLanguage","moment","locale","langsLocale","updateUserLanguaje","snap","_jsxs","_Fragment","children","Button","type","onClick","event","currentTarget","variant","color","_jsx","Language","style","marginRight","ExpandMore","Menu","anchorOrigin","vertical","horizontal","keepMounted","transformOrigin","onClose","handleClose","MenuItem","button","ListItemText","es","months","split","monthsShort","monthsParseExact","weekdays","weekdaysShort","weekdaysMin","weekdaysParseExact","longDateFormat","LT","LTS","L","LL","LLL","LLLL","calendar","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","relativeTime","future","past","s","m","mm","h","hh","d","dd","M","MM","y","yy","dayOfMonthOrdinalParse","ordinal","number","meridiemParse","isPM","input","charAt","meridiem","hours","minutes","isLower","week","dow","doy","it","resources","en","translation","enTranslation","esTranslation","itTranslation","use","LanguageDetector","initReactI18next","init","detection","order","lookupQuerystring","fallbackLng","keySeparator","interpolation","escapeValue","v","localeCode","language","_","withAuthentication","Component","WithAuthentication","constructor","props","super","this","state","authUser","loaded","reload","componentDidMount","setState","r","setInterval","isEqual","componentWillUnmount","clearInterval","render","Provider","value","LoadingPage","Grid","container","justify","alignItems","direction","height","src","BexenCardioLogo","width","marginBottom","CircularProgress","thickness","minHeight","minWidth","withAuthorization","condition","WithAuthorization","reaload","self","history","push","ROUTES","pathname","Consumer","withRouter","INITIAL_STATE","SignInForm","useHistory","classes","useStyles","email","setemail","emailError","setEmailError","password","setpassword","error","setError","isSessionLoading","setIsSessionLoading","showPassword","setShowPassword","isInvalid","onSubmit","onsubmit","spacing","item","xs","className","title","Typography","component","gutterBottom","fontWeight","fontSize","alignContent","marginTop","sm","md","xl","TextField","name","onBlur","checkEmail","RegExp","test","onChange","target","trim","label","fullWidth","InputProps","startAdornment","InputAdornment","position","AccountCircle","FormHelperText","Lock","endAdornment","IconButton","handleClickShowPassword","onMouseDown","preventDefault","Visibility","VisibilityOff","j","size","disabled","doLogIn","user","textTransform","Link","to","textDecoration","scrollTo","Divider","Twitter","Instagram","LinkedIn","makeStyles","theme","breakpoints","down","marginLeft","SignInPage","program","length","Hidden","xsDown","lg","Paper","borderRadius","borderTopLeftRadius","borderBottomLeftRadius","smDown","backgroundPosition","backgroundSize","login_img","padding","smUp","HomePage","useEffect","createMuiTheme","typography","fontFamily","fontWeightLight","fontWeightRegular","fontWeightMedium","palette","primary","main","secondary","AuthDrawer","_user$total_sources","_user$total_sources2","_user$total_sources3","_user$total_sources5","_user$total_sources6","currentLang","setopen","useLocation","customRoute","endPoint","url","l","lastPathItem","pop","List","subheader","ListSubheader","programas","ListItem","selected","includes","ListItemIcon","NavigatordBadge","badgeContent","total_sources","num_programs","School","primaryTypographyProps","goToGroups","num_groups","GroupWork","num_devices","Devices","num_users","showZero","People","num_resources","Folder","bottom","right","withStyles","badge","border","background","paper","Badge","SingOutMenuItem","isClicked","setIsClicked","PowerSettingsNew","User","Avatar","avatar","toUpperCase","avatarIcon","last_name","backgroundColor","SelectList","list","category","userSelectOptions","setUserSelectOption","setvalue","getLocationKey","join","items","forEach","p","groups","g","search","FormControl","InputLabel","formControl","Select","labelId","defaultValue","placeholder","map","root","display","drawerContainer","overflow","content","flexGrow","menuButton","up","shape","fade","common","white","maxWidth","searchIcon","pointerEvents","justifyContent","inputRoot","inputInput","paddingLeft","transition","transitions","create","Navigation","openDrawer","setopenDrawer","currentLoc","AppBar","appBar","elevation","Toolbar","lgUp","BexenCardioLogoColorH","logo","flex","SwipeableDrawer","drawer","drawerPaper","onOpen","mdDown","Drawer","zIndex","flexShrink","overflowX","verticalAlign","ErrorDialog","errorMsg","clearError","Dialog","DialogTitle","DialogContent","DialogContentText","DialogActions","ModelSelect","models","model","setModel","setGroup","group","setGroups","selectedGroup","setSelectedGroup","isSelectedGroup","setIsSelectedGroup","useParams","connectionErrorMsg","setConnectionErrorMsg","toString","DATANETAPI","key","Skeleton","margin","selectEmpty","MAPS_API_KEY","ButtonLoader","top","left","R100ConfigChangedModal","isNew","orange","autoFocus","WIFI","STANDALONE","SIGFOX","getDeviceComunications","options","coms","wifi","COMNS","sigfox","MoveDeviceSelect","_device$groupid","_user$programas$selec3","_user$programas$selec4","_user$programas","_user$programas$selec5","device","setNewGroup","selectedProgram","setSelectedProgram","isLoading","setIsLoading","responseState","setResponseState","responseMSG","setResponseMSG","openWarningSettingsModal","setOpenWarningSettingsModal","isFormInitialized","setisFormInitialized","programList","programid","findIndex","confirmMove","confirm","_user$programas$selec","DATANET","_user$programas$selec2","filter","comsTypes","e","newValue","MenuProps","maxHeight","i","_e$comsTypes","_e$comsTypes2","every","Tooltip","moveGroup","Snackbar","severity","Alert","DeviceHourEditor","openingTime","setOpeningTime","editable","is24Open","setIs24Open","editorOpen","setEditorOpen","isClose","setIsClose","customschedule","setCustomSchedule","periods","setPeriods","selectedDay","setSelectedDay","originalTime","setOriginalTime","days","setDays","resetDialog","start","end","lineHeight","k","paddingTop","paddingBottom","paddingRight","blueGrey","original","DayTimeText","alignSelf","toFixed","replace","editDay","Edit","scroll","overflowY","blue","RadioGroup","FormControlLabel","control","Radio","checked","focused","per","parseInt","splice","Close","newPeriods","saveChanges","sort","a","b","aux","Math","max","auxOpening","_ref2","green","red","textDecorationColor","textAlign","DeviceForm","currentposition","setFormValues","setisFormValid","editForm","unabizRegex","expirationDateBatt","setExpirationDateBatt","add","expirationDatePads","setExpirationDatePads","isMarkerSet","setisMarkerSet","setLocation","latitude","longitude","formErrors","setFormErrors","setname","code","setCode","setMap","locationName","setLocationName","locationDescription","setLocationDescription","description","serialNumber","setserialNumber","serial","modelName","setmodelName","manufacturer","setmanufacturer","DEFAULT_OPENINGTIME","unabizId","setUnabizId","unabiz_id","unabizAlert","setUnabizAlert","unabiz_alert","groupList","setGroupList","checkDate","date","isSameOrAfter","Date","isValid","checkColcation","itemName","getFormData","arguments","values","update_source","SN_FORMAT_REGEX","format","SN_PLACEHOLDER","getGroupList","group_list","roles","some","x","find","isNumber","panTo","lat","isNaN","parseFloat","lng","areFieldsValid","checkLocation","Object","keys","formcontainer","required","helperText","checkName","checkManufacturer","checkModel","checkSerialNumber","checkCode","MuiPickersUtilsProvider","utils","MomentUtils","KeyboardDatePicker","autoOk","inputVariant","views","minDate","InputAdornmentProps","AuthUser","MoveDeviceSelec","borderColor","GoogleMapReact","bootstrapURLKeys","API_KEYS","defaultCenter","yesIWantToUseGoogleMapApiInternals","defaultZoom","streetViewControl","mapTypeId","mapTypeControl","fullscreenControl","onGoogleApiLoaded","_ref3","maps","handleApiLoaded","LocationOn","transform","other","SelectConfig","info","auto","kv","plusone","EnergyModule","_config$device_settin91","_config$device_settin92","setConfig","checkType","errorLabel","isAdult","device_setting","shocks","DeviceSetupForm","_config$device_settin21","_config$device_settin22","_config$device_settin23","_config$device_settin24","_config$device_settin25","_config$device_settin26","_config$device_settin27","_config$device_settin28","_config$device_settin29","_config$device_settin30","_config$device_settin31","_config$device_settin32","_config$device_settin33","_config$device_settin34","_config$device_settin35","_config$device_settin36","_config$device_settin37","_config$device_settin38","_config$device_settin39","_config$device_settin40","_groupData$comsTypes2","_groupData$comsTypes7","_groupData$comsTypes8","_config$device_settin44","_config$device_settin45","_config$device_settin46","_config$device_settin50","_config$device_settin51","_config$device_settin52","_config$device_settin53","_config$device_settin54","_config$device_settin55","_config$device_settin59","_config$device_settin60","_config$device_settin61","_config$device_settin62","_config$device_settin63","_config$device_settin67","_config$device_settin68","_config$device_settin70","_config$device_settin71","_config$device_settin73","_config$device_settin74","_config$device_settin76","_config$device_settin77","_config$device_settin85","_config$device_settin86","_config$device_settin88","_config$device_settin89","groupData","setGroupData","isConfigLoaded","setIsConfigLoaded","isError","setIsError","openAlert","setOpenAlert","confOptions","setConfOptions","isConfOptions","setIsConfOptions","listLangs","setListLangs","isFormChanged","setIsFormChanged","isFormValid","setIsFormValid","newVersion","setNewVersion","isNewVersion","setIsNewVersion","toUpdate","setToUpdate","openNotCompatible","setOpenNotCompatible","isSaving","setIsSaving","resetForm","_backendGroups$config","_backendGroups$config2","_backendGroups$config3","_backendGroups$config4","_backendGroups$config5","_backendGroups$config6","_backendGroups$config7","_backendGroups$config8","_backendGroups$config9","backendGroups","config_current","langs","combination","default_lang","_snap$data","_lang_combinations","lang_combinations","combinations","_lang_combinations2","xi","requestVersionUpdate","_config$device_settin5","_config$device_settin6","_config$device_settin7","_config$device_settin8","_config$device_settin9","_config$device_settin10","_config$device_settin11","_config$device_settin12","_config$device_settin13","_config$device_settin14","_config$device_settin15","_config$device_settin16","_config$device_settin17","_config$device_settin18","_config$device_settin19","_config$device_settin20","energy2_adult","energy1_adult","energy3_adult","energy3_pediatric","energy2_pediatric","fullScreen","TransitionComponent","Transition","edge","groupName","is_available","NewReleasesIcon","Checkbox","_config$device_settin","_config$device_settin2","_config$device_settin3","_config$device_settin4","version_current","misc","mains_filter","alert_warning","_confOptions$combinat","cpr","cpr1","cpr2","msg_long","metronome","ratio_adult","ratio_pediatric","rate","consecutive_shocks","patient","patient_type","COMS","transmission_mode","priority","_config$device_settin47","_config$device_settin48","_config$device_settin49","_groupData$comsTypes9","_groupData$comsTypes10","_groupData$comsTypes11","_groupData$comsTypes12","_groupData$comsTypes13","_groupData$comsTypes14","transmit_frequency","_config$device_settin56","_config$device_settin57","_config$device_settin58","gps_enable","_config$device_settin64","_config$device_settin65","_config$device_settin66","_config$device_settin69","_config$device_settin72","_e$target","utc_time","_config$device_settin75","_e$target2","UTC_TIMELIST","volume","_config$device_settin78","alert_patient","_config$device_settin87","_config$device_settin90","_e$target3","closeButton","_groupData$comsTypes","_conf_update$config","_conf_update$config$d","_conf_update$config$d2","conf_update","new_update","new_version","old_version","opt_version","version_new","editConfig","configuration","modal","boxShadow","shadows","instructions","forwardRef","ref","Slide","EditDevice","userData","formValues","isEdited","setIsEdited","isWattingForBK","setIsWattingForBK","setProgramId","Container","devicesModelsBack","indexOf","handleSubmit","date_pads","deviceForm","_f","setMonth","getMonth","toJSON","backButton","batteryRemainingCalc","hasComs","syncDate","software","battery","updateSource","remaining_percentage","batteryDate","manufacture_date","expiration_date","subtract","batt","diff","H34","I34","round","J34","params","discharge_standby","nTest_Monthly","nTest_Daily","discharge_running","discharge_run_HV","discharge_open_cover","standalone","M34","deviceBatteryOption","remainingBattery","reduce","acc","current","min","getDeviceStatus","outOfSync","_device_status$alertS","_device_status$alertS2","_moment","_device_status$alertS5","_device_status$alertS6","device_status","update","getErrorCodes","statusResult","errors","sourceErrorStatus","isCoverOpen","alertStatus","coverStatus","isOpen","_device_status$alertS3","_device_status$alertS4","coverAlertChange","lastChange","lastStateUpdate","updateDate","isAfter","open_cover","CODES","pendingUpdates","US","_response3","_response3$errors","_response","_response$errors","_response2","elimininarDuplicados","Set","_response4","_response4$errors","uniqueMap","Map","obj","set","Array","from","newCodes","errorCode","only","properties_mapping","alert","trainner_mode","units","energy1_pediatric","DeviceUpdateStatus","property","placement","arrow","DeviceSettingLang","list_langs","haslangUpdate","groupLangs","grey","textDecorationLine","_groupLangs$list","DeviceSettingShocks","_ref4","groupValue","properties","shift","DeviceSettingItem","property_label","_ref5","parse_value","DeviceInfoItem","_ref6","loading","outOfDate","warning","DataNotAvailable","DeviceAccesoryItem","_ref7","syncOutOfDate","isConnected","demo","demoPadsInNormalMode","unknownBattery","exDate","now","padsConnectedByTime","estimatedWarning","ExpirationDateicon","timeGap","AccesoryNoConnected","_ref8","Error","Warning","DeviceGeneralSettings","_ref9","_device$status","_device$status$update","_device$status2","_device$status2$updat","_device$config2","_device$config3","_device$status3","_device$status3$updat","_device$config4","groupSettings","_device$config","_device$config$device","_device$config$device2","has_new_audio","_device$config5","DeviceGeneralSettingsComms","_ref10","_device$config6","_device$config7","_groupSettings$proper","_groupSettings$proper2","_groupSettings$proper3","_groupSettings$proper4","_ref12","_device$status4","_device$status4$devic","_device$status5","_device$status5$devic","_device$status8","_device$status8$devic","_device$status9","_device$status9$devic","_device$status10","_device$status10$devi","_device$status11","_device$status11$devi","_device$status12","_device$status15","_device$status16","_authUser$programas","_authUser$programas$f","_device$status17","_device$status17$devi","_generalStatusValue$e","_device$status18","_device$status19","_device$status19$devi","_device$status19$devi2","_device$status20","_generalStatusValue$e2","isNewDevice","IsPermanentLoading","useTheme","isMobile","useMediaQuery","deviceSetupOpen","setDeviceSetupOpen","deviceEditOpen","setDeviceEditOpen","hasUpdate","setHasUpdate","setGroupSettings","connectivity","_device$status6","haspendingUpdate","u","_device$status7","_snap$data$config_cur","alert_mode","alert_move","soft_version","batteryCalc","batteryStatus","generalStatusValue","SvgIcon","cursor","href","_device$status13","_device$status14","AssignmentOutlined","is_demo","Chip","lastSync","pads","padsStatus","is_connected","GoogleMap","center","_ref11","setOptions","has_new_cfg","Settings","syncCard","Confirmation","DeviceDetailTab","coms_priority_ENUM","INITAL_ERROR_EDIT_STATE","def","address","require_rescuers","location_name","location_marker","INITAL_ERROR_ADD_STATE","INITAL_STATE","coordinators","AddGroupModal","_groupData$comsTypes$","_groupData$comsTypes$2","_groupData$comsTypes$3","_groupData$comsTypes3","deviceComs","isForNewDevice","setIsNew","errorForm","setErrorForm","errorId","setErrorId","modalSuccess","setModalSuccess","openError","setOpenError","setIsvalid","isFormModified","setIsFormModified","newGroupId","setNewGroupId","deleteModal","setDeleteModal","setGroupName","isDelete","setIsDelete","isRequestLoading","setIsRequestLoading","isDeleting","setIsDeleting","nameErrorText","setNameErrorText","locationExpanded","setLocationExpanded","comunicationsType","setComunicationsType","Standalone","Wifi","Sigfox","devicesCommonComsAvailable","setDevicesCommonComsAvailable","groupComsPriority","setGroupComsPriority","program_id","handleNameChange","handleCloseError","handleComsType","_groupData$comsTypes4","_groupData$comsTypes5","_groupData$comsTypes6","_groupDevices$","groupDevices","commonDeviceComs","_current$comsTypes","_snap$data$config_cur2","_snap$data$config_cur3","_snap$data$config_cur4","processHttpResponse","is_delete","_snap$data2","_snap$data3","entries","GroupWorkOutlined","DescriptionOutlined","multiline","FormLabel","ExpandLess","Collapse","expandedContainer","in","timeout","unmountOnExit","Fade","BusinessOutlined","LocationOnOutlined","colors","Card","aling","renderErrorMessage","errorText","deleteGroup","ADD_NEW_GROUP","GroupNotCompatibleModal","setOpen","cancel","nextStep","isCreateGroupOpend","setIsCreateGroupOpend","isGroupCreated","setIsGroupCreated","temporalGroup","setTemporalGroup","cancelAdd","closeGroupModal","newGroupID","next","setTimeout","handleSelect","handleAccept","_user$programas$filte","_user$programas$filte2","_g$comsTypes","_g$comsTypes2","AddDevice","selectedGroupID","topRef","useRef","activeStep","setActiveStep","iscomplete","setIscomplete","openAlertProccess","setOpenAlertProccess","devicesModels","setdevicesModels","setdevice","setcurrentposition","DEFAULT_GPS_POSITION","isFinish","setIsFinish","errorIdLimbo","setErrorIdLimbo","errorIdMove","setErrorIdMove","errorIdCreate","setErrorIdCreate","firstInteraction","setFirstInteraction","openR100ConfingWarning","setOpenR100ConfingWarning","errorOnCreate","seterrorOnCreate","isGroupCompatible","setIsGroupCompatible","groupNotCompatibleModalOpen","setGroupNotCompatibleModalOpen","isNewGroupCreated","setIsNewGroupCreated","steps","handleNext100","async","_topRef$current","scrollIntoView","_authUser$groups","_authUser$groups$filt","groupComsTypes","_groupRequestData$dat","_groupRequestData$dat2","groupRequestData","ct","_groupComsTypes","prevActiveStep","finishR100Register","finish","handleNext","_topRef$current2","closeXButton","toClose","navigator","geolocation","getCurrentPosition","coords","Stepper","alternativeLabel","Step","StepLabel","behavior","errorOnGetLimbo","errorOnMoveLimbo","errorOncreateNoR100Device","MapDialog","setisMapOpen","date_modification","caontainer","disableDefaultUI","panControl","text","AllGroups","Breadcrumbs","Programs","AllDevices","ProgramLink","role","GroupDevice","programsList","ProgramGroups","ProgramDevices","AllAccessories","GroupAccessories","ProgramAccessories","AllUsers","ProgramUsers","GroupUsers","Sources","ReleaseNotesHeader","PageHeader","match","useRouteMatch","parse","programsData","UpdateTimeItem","utc","local","DeviceStatusChips","unit","is_id","DeviceStatusText","batteryResult","BatteryItem","ICONSIZE","BatteryUnknown","BatteryFull","Battery90","lightGreen","Battery80","lime","Battery60","yellow","Battery50","amber","Battery30","Battery20","deepOrange","BatteryAlert","deviceStatus","_statusErrors$errors","_statusErrors$errors2","_dev_status$padsStatu","_dev_status$padsStatu2","_dev_status$padsStatu3","_dev_status$padsStatu4","_dev_status$padsStatu5","_dev_status$padsStatu6","_dev_status$padsStatu7","_dev_status$padsStatu8","_dev_status$padsStatu9","_dev_status$padsStatu10","_dev_status$padsStatu11","dev_status","type_error","statusErrors","wrongBattery","doNotWhowBattery","demoPadsInNormalBattery","flexDirection","lastFullUpdateUsb","testType","Sync","nowValue","Pads_Icon","BatteryDate","expiration_state","PadsDate","DeviceStatusItem","Check","DeviceStatusOthers","getExpirationState","epiration_timestamp","current_timestamp","getTime","mainState","bat_state","pads_state","DeviceStatusModal","isStatusModalOpen","setisStatusModalOpen","DeviceStatus","UseNotification","Notifications","DeviceUsageStatus","active_notifications","reverse","creation_date","EmptyNotification","FlashOn","DeviceUsageHistory","notifications","DeviceUseEventModal","isUseEventModalOpen","currentNotifications","setisUseEventModalOpen","isNotificationsLoaded","pending","setPending","setUseEventAsReviewed","TRASNMISSION_FREC","gap","LoadingRows","ind","TableRow","hover","TableCell","align","TransmissionCheckItem","deviceData","_deviceData$transmiss","_deviceData$transmiss2","_deviceData$status","_deviceData$status$de","transmission","deviceLasttransmission","WifiOff","StatusIcon","row","DevicesPage","isMapOpen","deviceLocation","setDeviceLocation","setDevices","areDevicesLoaded","setAreDevicesLoaded","isFiltered","setisFiltered","addNewOpen","setaddNewOpen","setdeviceSetupOpen","setDeviceStatus","useEventModalOpen","usageNotifications","setUsageNotifications","notificationsHistory","setNotificationsHistory","isNotificationsHisLoaded","setIsNotificationHisLoaded","filterValue","setFilterValue","newInterval","setNewInterval","isInitialLoadDone","setIsInitialLoadDone","filterDevices","event_value","list_devices","filteredDevices","loadDevices","loadNotificationHistory","devicesBack","dev","statusCount","getNotificationHistory","prev","clearTimeout","Search","enterDelay","NewReleases","Add","table","TableContainer","LinearProgress","Table","TableHead","TableBody","index","_row$status","_row$status2","_row$status3","_row$status4","_row$status4$device_s","_row$status5","_row$status5$device_s","_row$status6","_row$status7","_row$status7$device_s","_row$status8","_row$status8$device_s","_row$status9","_row$status$update","_row$status$update2","_row$status$update3","isBefore","scope","hasOwnProperty","has_new_soft","SyncProblem","notification","device_info","displayMap","InfoOutlined","Description","Zoom","Fab","GroupCard","_data$comsTypes","_data$comsTypes2","edit","openAddDevice","setOpenAddDevice","card","CardContent","whiteSpace","MoreVert","interactive","tooltip","dense","coordinator","lastname","user_name","devicesnumber","media","expand","duration","shortest","expandOpen","chip","GroupSkeletonCard","CardActions","FilterModal","coordinatorsList","maxDevices","maxRescuers","setFilter","filterObject","setCorrdinator","devicesNumber","setDevicesNumber","rescuersNumber","setrescuersNumber","rescuers","groupState","setGroupState","valuetext","handleCoordinatorChange","userid","ListItemAvatar","Slider","devicesHandleChange","valueLabelDisplay","getAriaValueText","rescuersHandleChange","itemn","MapModal","setlocation","isLoaded","setisLoaded","gr","GroupsModals","Modal","closeAfterTransition","BackdropProps","GroupForm","filterModalOpen","setfilterModalOpen","mapModalOpen","setmapModalOpen","addModalOpen","setAddModalOpen","updatedData","setUpdatedData","setfilterObject","editModalOpen","seteditModalOpen","inputText","setinputText","areGroupsLoaded","setAreGroupsLoaded","setErrorMsg","editGroup","updateData","isUpdated","filteredGroups","isCoordinatorinGroup","statusCheck","resetfilters","Delete","CardActionArea","AddRounded","ProgramsCard","_groups$find","_groups$find$groups","imageUrl","remove","canDelete","setHover","slice","count","editButton","emailPattern","ClientEmailForm","updateEmail","generalError","initialEmail","setEmail","repeatEmail","setRepeatEmail","repeatEmailError","setRepeatEmailError","autoComplete","inputMode","checkRepeatemail","NotEmptyProgramDialog","close","programID","FormBase","_data$contact_descrip","_data$contact_descrip2","_data$contact_descrip3","limiteTextInput","hasClientOnEdit","client_email","setName","setDescription","nameError","setnameError","descriptionError","setDescriptionError","hasLocation","sethasLocation","successRequest","setSuccessRequest","setGeneralError","isChanged","setIsChanged","generatedProgramId","setGeneratedProgramId","clientEmail","setClientEmail","addClient","setAddClient","clientName","setClientName","client_name","contactEmail","setContactEmail","contact_email","contactDescription","setContactDescription","contact_description","clientNameError","setClientNameError","contactEmailError","setContactEmailError","contactDescriptionError","setContactDescriptionError","clientLang","setClientLang","companyName","setCompanyName","isContactEmailLoaded","setIsContactEmailLoaded","emptyProgramModalOpen","setEmptyProgramModalOpen","checkDescription","new_contact_description","hasChanged","proccessRequest","isClientValid","Accordion","expanded","AccordionSummary","AccordionDetails","checkClientName","checkContactemail","checContactDescription","WarningOutlined","old","new","send","newClient","editedData","client_new","editProgram","has_location","ProgramDialog","setIsOpen","editingData","DeleteDialog","inputvalue","setInputvalue","errorDescription","setErrorDescription","LoadingProgramCard","animation","ProgramsTable","programs","filterName","handleEdit","handleDelete","setPrograms","areProgramsLoaded","setAreProgramsLoaded","setFilterName","listMode","setListMode","openProgramModal","setOpenProgramModal","seteditProgram","editinId","setEditinId","opendeleteModal","setOpendeleteModal","loadData","handleCreate","userPrograms","_userPrograms$find","_userPrograms$find$gr","ViewList","ViewModule","opacity","justifySelf","DeviceTabInfoHeader","Property","cl","propertyText","heading","pxToRem","flexBasis","secondaryHeading","lastHeading","DeviceAlertTab","deviceId","startDate","setStartDate","endDate","setEndDate","setLoading","openExampleModal","setOpenExampleModal","alerts","setAlerts","openFilterMenu","setOpenFilterMenu","filteredDates","setFilteredDates","getAlerts","getDeviceEvents","events","FilterListRounded","ArrowDropDownRounded","CheckRounded","DatePicker","openTo","maxDate","DateRangeOutlined","minDateMessage","searchAlerts","letterSpacing","font","SkeletonAlertCard","event_type","ReportProblem","Usb","SettingsInputAntennaIcon","Info","event_datetime","event_sigfox_version","event_id","exampleImage","getWindowDimensions","innerWidth","innerHeight","useWindowDimensions","windowDimensions","setWindowDimensions","handleResize","addEventListener","removeEventListener","ECG","pdf_uri","setData","numPages","setNumPages","pageNumber","setPageNumber","pdfWidth","setPdfWidth","pdfjs","GlobalWorkerOptions","workerSrc","version","random","executeScroll","breakP","BP","Document","file","onLoadSuccess","onLoadError","Page","NavigateBefore","total","NavigateNext","uv","time","FakeECG","ecgDoc","AcordionECG","episodeInfo","firstOpen","setfirstOpen","expandIcon","episode_datetime","pad","n","z","ms","secs","mins","hrs","total_time","msToTime","pdf","episode_id","Print","DeviceEpisodesTab","episodes","isEpisodesLoaded","has_episodes","TabPanel","hidden","DevicePage","setValue","setDevice","isDeviceLoaded","setIsDeviceLoaded","setEpisodes","setIsEpisodesLoaded","deviceName","setDeviceName","isDeviceFound","setIsDeviceFound","canDelete100","setCanDelete100","handleChange","getData","deviceBack","deviceid","deleteDevice","name_id","setupDeletePrivileges","goBack","ArrowBack","Tabs","indicatorColor","Tab","TrafficOutlined","conectivity","used","compatibility","reference","default","eap","ssid","pass","AddAccessory","accType","setaccType","expirationDate","setExpirationDate","isExpirationDateCorrect","setisExpirationDateCorrect","setCompatibility","setTotal","setserial","setreference","handleCompatibility","onInvalid","invalidDateMessage","FormGroup","AccessoriesPage","accessories","setAccessories","newAccesoryType","setNewAccesoryType","areAccessoriesLoaded","setAreAccesoriesLoaded","batteryFilter","setBatteryFilter","padsFilter","setPadsFilter","filteredaccs","accesoriesBack","getAccessories","Nfc","NfcOutlined","c","AddUser","UsersPage","users","setUsers","areUsersLoaded","setAreUsersLoaded","getUsers","usersBack","filteredUsers","telephone","mdUp","RequestPasswordButton","reusable","isPasswordResetCorrect","setIsPasswordResetCorrect","openSnackBar","setOpenSnackBar","isRequestSent","setIsRequestSent","handlePassworChange","sendPasswordResetEmail","post_body","DATANETAUTH","showsnackBar","isCorrect","CheckCircleOutlineOutlined","CancelOutlined","Snack","autoHideDuration","INI_ERROR","hasThis","elements","element","has","initPrograms","posible","initGroups","uid","userForm","setUserForm","setIsValid","isUserForm","setIsUserForm","passForm","setPassForm","setUserPrograms","posiblePrograms","setPosiblePrograms","areProgramsLoad","setAreProgramsLoad","isDataModified","setIsDataModified","isPasswordCorrectSend","setIsPasswordCorrectSend","checkGroup","checkProgram","userNewPrograms","pp","pg","progrmas","groups_temp","userId","editUser","avatarCard","large","Person","userMainIcon","iscorrectSend","pattern","SourceCard","source","subtitle","buttons","disableElevation","has_link","Android","Apple","link","SourcesPage","SourcesCard","AccountValidationPage","passwordPattern","surnames","phone","program_name","confirmation_email","repeat_password","conditions","INITIAL_ERROR_STATE","CreateAccount","accountForm","setAccountForm","showRepeatPassword","setShowRepeatPassword","handleLangChange","handleMouseDownPassword","validEmail","field","eForm","validEmails","validPassword","psw","validRepeatPassword","MailOutline","LockOutlined","VisibilityOutlined","VisibilityOffOutlined","is_valid","PersonOutline","validPhone","rege1","rege2","isEmpty","validformat","PhoneOutlined","is_correct","SchoolOutlined","validSerial","FavoriteBorderOutlined","VpnKeyOutlined","CreateAccountForm","NewAccount","RequestPasswordChange","firebase","cardioLogo","toLowerCase","ResetPassword","viewPassword","setviewPassword","psw1","setPsw1","psw2","setPsw2","isCodeExpired","setIsCodeExpired","snakError","setrSnakError","onchange","changePassword","confirmPasswordReset","token","password_1","password_2","Token","errorCodes","htmlFor","OutlinedInput","labelWidth","onKeyDown","ExpiredTokenModal","setValidToken","request_uuid","isRequestingNewToken","setIsRequestingNewToken","requestNewTokenStatus","setRequestNewTokenStatus","attemps","setAttemps","requestNewToken","requestNewAccountToken","requestUid","token_hash","res","manageResponse","RegisterUserFrom","LoggedUser","RegisterUserForm","firstName","setFirstName","setPassword","passwordRepeat","setPasswordRepeat","policy","setpolicy","passwordvisible","setPasswordvisible","aceptManagement","setAceptManagement","isCreattingAccount","setIsCreattingAccount","userPhone","setUserPhone","expiredToken","setExpiredToken","openTokenExpiredModal","setOpenTokenExpiredModal","generalErrorMsg","setGeneralErrorMsg","policyModalOpen","setPolicyModalOpen","userCreatedModalOpen","setUserCreatedModalOpen","requestError","setRequestError","worngTokenModalError","setWorngTokenModalError","setNameError","firstNameError","setFirstNameError","passwordError","setPasswordError","repeatPasswordError","setRepeatPasswordError","userPhoneError","setUserPhoneError","mainPaper","checkFirstName","checkPhone","EmailOutlined","checkPassword","checkPasswordRepeat","handleSubmint","ERROR_CODES","createAccountFromToken","accept_management","ReleasesNotes","App","BrowserRouter","ThemeProvider","Switch","Route","exact","GroupsPage","ProgramsPage","UserPage","Redirect","reportWebVitals","onPerfEntry","Function","getCLS","getFID","getFCP","getLCP","getTTFB","ReactDOM","StrictMode","document","getElementById"],"mappings":"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","file":"static/js/main.bdb270e0.chunk.js","sourcesContent":["export const DATANET_BASE = window.location.origin + \"/app\";\r\n\r\nexport const HOME = \"/\";\r\nexport const SIGN_IN = \"/login\";\r\nexport const ACCOUNT_NEW = \"/accountnew\";\r\n\r\nexport const DEVICE = \"/devices\";\r\nexport const PROGRAMS = \"/programs\";\r\n\r\nexport const USER = \"/users\";\r\nexport const SOURCES = \"/sources\";\r\nexport const SOURCES_IN_PROGRAM = \"/programs/:programId/sources\";\r\nexport const SOURCES_IN_GROUP = \"/programs/:programId/groups/:groupId/sources\";\r\nexport const GROUPS = \"/groups\";\r\nexport const GROUPS_IN_PROGRAM = \"/programs/:programId/groups\";\r\nexport const DEVICES = \"/devices\";\r\nexport const DEVICES_IN_GROUP = \"/programs/:programId/groups/:groupId/devices\";\r\nexport const DEVICES_IN_PROGRAM = \"/programs/:programId/devices\";\r\nexport const ACCESSORIES = \"/accessories\";\r\nexport const ACCES_IN_PROG = \"/programs/:programId/accessories\";\r\nexport const ACCES_IN_GROUP = \"/programs/:programId/groups/:groupId/accessories\";\r\nexport const USERS = \"/users\";\r\nexport const USERS_IN_GROUP = \"/programs/:programId/groups/:groupId/users\";\r\nexport const USERS_IN_PROGRAM = \"/programs/:programId/users\";\r\nexport const RESCUERS = \"/formacion/formulario-inscripcion/:lang\";\r\nexport const ACCOUNT_VALIDATION = \"/accountvalidation/:status\";\r\nexport const REQUEST_NEW_PASSWROD = \"/pw_forget\";\r\nexport const PASSWOR_DCHANGE = \"/passwordReset/:Token\";\r\nexport const REGISTER_USER_FROM_PROGRAM = \"/userRegistration/:token_hash/:request_uuid\";\r\n\r\nexport const RELEASE_NOTES = \"/releasesnotes\";\r\n","import * as API from \"../../constants/routes\";\r\n\r\n/* test API */\r\nconst config = {\r\n urlBase: window.location.origin + \"/app\", // \"http://192.168.1.145:5000/app\",\r\n};\r\n\r\nconst getAllProgramsByUser = () =>\r\n new Promise((resolve, reject) => {\r\n const path = `${config.urlBase}/programs`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getAllGroups = (programId) =>\r\n new Promise((resolve, reject) => {\r\n let path = `${config.urlBase}/groups`;\r\n if (programId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/groups`;\r\n }\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getGroup = (groupId) =>\r\n new Promise((resolve, reject) => {\r\n if (groupId !== undefined) {\r\n var path = `${config.urlBase}/groups/${groupId}`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n }\r\n });\r\n\r\nconst getRegisteredRescuers = () =>\r\n new Promise((resolve, reject) => {\r\n var path = `${config.urlBase}/rescuers`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getAvailableCoordinators = (programId) =>\r\n new Promise((resolve, reject) => {\r\n let path = `${config.urlBase}/coordinators`;\r\n if (programId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/coordinators`;\r\n }\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getAccessories = (programId, groupId) =>\r\n new Promise((resolve, reject) => {\r\n let path = `${config.urlBase}/accessories`;\r\n if (programId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/accessories`;\r\n if (groupId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/groups/${groupId}/accessories`;\r\n }\r\n }\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getUsers = (programId, groupId) =>\r\n new Promise((resolve, reject) => {\r\n var path = `${config.urlBase}/users`;\r\n if (programId !== undefined) {\r\n var path = `${config.urlBase}/programs/${programId}/users`;\r\n if (groupId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/groups/${groupId}/users`;\r\n }\r\n }\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getUser = (userId) =>\r\n new Promise((resolve, reject) => {\r\n if (userId !== undefined) {\r\n var path = `${config.urlBase}/users/${userId}`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n } else {\r\n console.log(\"No se ha pasado ningun userId\");\r\n resolve({});\r\n }\r\n });\r\n\r\nconst getDevices = (programId, groupId) =>\r\n new Promise((resolve, reject) => {\r\n let path = `${config.urlBase}/devices`;\r\n if (programId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/devices`;\r\n if (groupId !== undefined) {\r\n path = `${config.urlBase}/programs/${programId}/groups/${groupId}/devices`;\r\n }\r\n }\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n });\r\n\r\nconst getDevice = (deviceId) =>\r\n new Promise((resolve, reject) => {\r\n if (deviceId !== undefined) {\r\n var path = `${config.urlBase}/devices/${deviceId}`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n } else {\r\n console.log(\"No se ha pasado ningun deviceId\");\r\n resolve({});\r\n }\r\n });\r\n\r\nconst getDeviceEvents = (deviceId, filter) =>\r\n new Promise((resolve, reject) => {\r\n //console.log(\"entro\");\r\n const path = `${config.urlBase}/devices/${deviceId}/events`;\r\n\r\n if (!!deviceId && !filter) {\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n } else if (filter !== undefined) {\r\n const path = `${config.urlBase}/devices/${deviceId}/events`;\r\n resolve(makeAndManageRequest(path, \"POST\", filter));\r\n }\r\n });\r\n\r\nconst createGroup = (group) =>\r\n new Promise((resolve, reject) => {\r\n if (group !== undefined) {\r\n var path = `${config.urlBase}/groups/add`;\r\n resolve(makeAndManageRequest(path, \"POST\", group));\r\n }\r\n });\r\n\r\nconst deleteGroup = (id) =>\r\n new Promise((resolve, reject) => {\r\n if (id != undefined) {\r\n var path = `${config.urlBase}/groups/${id}`;\r\n resolve(makeAndManageRequest(path, \"DELETE\"));\r\n }\r\n resolve({ status: 5 });\r\n });\r\n\r\nconst editGroup = (group) =>\r\n new Promise((resolve, reject) => {\r\n if (group !== undefined) {\r\n var path = `${config.urlBase}/groups/edit`;\r\n resolve(makeAndManageRequest(path, \"POST\", group));\r\n }\r\n });\r\n\r\nconst createDevice = (devices) =>\r\n new Promise((resolve, reject) => {\r\n //console.log(devices);\r\n if (devices !== undefined) {\r\n var path = `${config.urlBase}/devices/`;\r\n resolve(makeAndManageRequest(path, \"POST\", devices));\r\n } else {\r\n resolve();\r\n }\r\n });\r\n\r\nconst getLimboDevice = (device) =>\r\n new Promise((resolve, reject) => {\r\n if (device !== undefined) {\r\n var path = `${config.urlBase}/devices/add/R100/`;\r\n resolve(makeAndManageRequest(path, \"POST\", device));\r\n } else {\r\n console.log(\"no se ha pasado información del dispositivo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst moveLimboDevice = (device) =>\r\n new Promise((resolve, reject) => {\r\n if (device !== undefined) {\r\n var path = `${config.urlBase}/devices/add/R100/`;\r\n resolve(makeAndManageRequest(path, \"PUT\", device));\r\n } else {\r\n console.log(\"no se ha pasado información del dispositivo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst editDevice = (devices, id) =>\r\n new Promise((resolve, reject) => {\r\n if (!!devices && !!id) {\r\n var path = `${config.urlBase}/devices/${id}`;\r\n resolve(makeAndManageRequest(path, \"PUT\", devices));\r\n } else {\r\n console.log(\"no se ha pasado información del dispositivo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst deleteDevice = (id, model) =>\r\n new Promise((resolve, reject) => {\r\n if (!!id) {\r\n const path = model == \"Reanibex 100\" ? `${config.urlBase}/devices/${id}/R100` : `${config.urlBase}/devices/${id}`;\r\n resolve(makeAndManageRequest(path, \"DELETE\"));\r\n } else {\r\n console.log(\"no se ha pasado información del dispositivo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst moveDevice = (id, moveForm) =>\r\n new Promise((resolve, reject) => {\r\n if (id != undefined) {\r\n const path = `${config.urlBase}/devices/${id}/move`;\r\n resolve(makeAndManageRequest(path, \"PUT\", moveForm));\r\n } else {\r\n console.log(\"no se ha pasado el idtenificador del dispositivo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst addRescuer = (rescuer) =>\r\n new Promise((resolve, reject) => {\r\n if (rescuer !== undefined) {\r\n const path = `${config.urlBase}/rescuers`;\r\n resolve(makeAndManageRequest(path, \"POST\", rescuer));\r\n } else {\r\n console.log(\"No se han psado datos del rescatador\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst editConfig = (configuration, groupId) =>\r\n new Promise((resolve, reject) => {\r\n if (groupId !== undefined) {\r\n const path = `${config.urlBase}/groups/${groupId}/conf/edit`;\r\n resolve(makeAndManageRequest(path, \"POST\", configuration));\r\n } else {\r\n console.log(\"No se han pasado datos del groupID\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst currentUser = () => {\r\n const path = `${config.urlBase}/session/user`;\r\n return makeAndManageRequest(path, \"GET\");\r\n};\r\n\r\nconst editUser = (user, userId) =>\r\n new Promise((resolve, reject) => {\r\n if (user !== undefined && userId !== undefined) {\r\n const path = `${config.urlBase}/users/${userId}`;\r\n resolve(makeAndManageRequest(path, \"POST\", user));\r\n } else {\r\n console.log(\"no se han pasado datos del usuario y/O del userID\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst changePassword = (passForm, userId) =>\r\n new Promise((resolve, reject) => {\r\n if (passForm !== undefined && userId !== undefined) {\r\n var path = `${config.urlBase}/users/${userId}/changepassword`;\r\n fetch(path, {\r\n method: \"POST\",\r\n body: JSON.stringify(passForm),\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return { status: -1 };\r\n }\r\n })\r\n .then((data) => resolve(data))\r\n .catch((data) => reject(data));\r\n }\r\n });\r\n\r\nconst createAccount = (accountForm) =>\r\n new Promise((resolve, reject) => {\r\n if (accountForm !== undefined) {\r\n const path = `${config.urlBase}/account/create`;\r\n resolve(makeAndManageRequest(path, \"POST\", accountForm));\r\n } else {\r\n console.log(\"falta datos del formulario\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst getConfOptions = (groupid) =>\r\n new Promise((resolve, reject) => {\r\n if (groupid !== null) {\r\n const path = `${config.urlBase}/groups/${groupid}/conf/options`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n } else {\r\n console.log(\"falta datos del grupo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst newVersionGroup = (groupid) =>\r\n new Promise((resolve, reject) => {\r\n if (!!groupid) {\r\n const path = `${config.urlBase}/groups/${groupid}/checkVersion`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n } else {\r\n console.log(\"falta datos del grupo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst updateUserLanguaje = (lang) => {\r\n const path = `${config.urlBase}/users/langs`;\r\n return makeAndManageRequest(path, \"POST\", { lang: lang });\r\n};\r\n\r\nconst getEpisodes = (deviceid) =>\r\n new Promise((resolve, reject) => {\r\n if (deviceid !== undefined) {\r\n const path = `${config.urlBase}/devices/${deviceid}/episodes`;\r\n resolve(makeAndManageRequest(path, \"GET\"));\r\n } else {\r\n console.log(\"falta datos del dispositivo\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst getNotificationHistory = () => {\r\n const path = `${config.urlBase}/users/notifications/history`;\r\n return makeAndManageRequest(path, \"GET\");\r\n};\r\n\r\nconst setReviewNofitifications = (notifications) =>\r\n new Promise((resolve, reject) => {\r\n if (notifications !== undefined) {\r\n const path = `${config.urlBase}/users/notifications/review`;\r\n resolve(makeAndManageRequest(path, \"POST\", notifications));\r\n } else {\r\n console.log(\"falta datos de notificación\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst editProgram = (program_id, data) =>\r\n new Promise((resolve, reject) => {\r\n if (!!program_id) {\r\n const path = `${config.urlBase}/programs/${program_id}`;\r\n resolve(makeAndManageRequest(path, \"PUT\", data));\r\n } else {\r\n console.log(\"falta datos de programa\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst createProgram = (data) =>\r\n new Promise((resolve, reject) => {\r\n const path = `${config.urlBase}/programs/add`;\r\n resolve(makeAndManageRequest(path, \"POST\", data));\r\n });\r\n\r\nconst removeProgram = (program_id) =>\r\n new Promise((resolve, reject) => {\r\n if (!!program_id) {\r\n const path = `${config.urlBase}/programs/${program_id}`;\r\n resolve(makeAndManageRequest(path, \"DELETE\"));\r\n } else {\r\n console.log(\"falta datos id del programa\");\r\n resolve();\r\n }\r\n });\r\n\r\nconst createAccountFromToken = (userData) => {\r\n const path = `${config.urlBase}/account/registration`;\r\n return makeAndManageRequest(path, \"POST\", userData);\r\n};\r\n\r\nconst requestNewAccountToken = (token, requestUid) => {\r\n const path = `${config.urlBase}/account/resetTokenRegistration`;\r\n return makeAndManageRequest(path, \"POST\", { token_hash: token, request_uuid: requestUid });\r\n};\r\n\r\nconst makeAndManageRequest = (path, method, body) => {\r\n return new Promise((resolve, reject) => {\r\n try {\r\n const m = {\r\n GET: () => fetch(path),\r\n DELETE: () => fetch(path, { method: \"DELETE\" }),\r\n PUT: () => fetch(path, { method: method, body: JSON.stringify(body ?? {}), headers: { \"Content-Type\": \"application/json\" } }),\r\n POST: () => fetch(path, { method: method, body: JSON.stringify(body ?? {}), headers: { \"Content-Type\": \"application/json\" } }),\r\n };\r\n const f = m[method]();\r\n f.then((response) => {\r\n if (response.ok || response.redirected) {\r\n return response.json();\r\n } else {\r\n return { status: -1 };\r\n }\r\n })\r\n .then((data) => resolve(data))\r\n .catch((err) => resolve({ status: -2, msg: err }));\r\n } catch (err) {\r\n resolve({ status: -2, msg: err });\r\n }\r\n });\r\n};\r\n\r\nexport {\r\n getAllProgramsByUser,\r\n getAllGroups,\r\n getGroup,\r\n getAvailableCoordinators,\r\n getAccessories,\r\n getUsers,\r\n getUser,\r\n getDevices,\r\n getDevice,\r\n createGroup,\r\n editGroup,\r\n getRegisteredRescuers,\r\n addRescuer,\r\n editConfig,\r\n editDevice,\r\n createDevice,\r\n currentUser,\r\n editUser,\r\n changePassword,\r\n getLimboDevice,\r\n moveLimboDevice,\r\n createAccount,\r\n getConfOptions,\r\n newVersionGroup,\r\n updateUserLanguaje,\r\n getDeviceEvents,\r\n getEpisodes,\r\n deleteDevice,\r\n moveDevice,\r\n deleteGroup,\r\n getNotificationHistory,\r\n setReviewNofitifications,\r\n makeAndManageRequest,\r\n editProgram,\r\n createProgram,\r\n removeProgram,\r\n createAccountFromToken,\r\n requestNewAccountToken,\r\n};\r\n","import React from \"react\";\r\n\r\nconst AuthUserContext = React.createContext(null);\r\n\r\nexport default AuthUserContext;\r\n","import { makeAndManageRequest } from \"./DataNet\";\r\n\r\n/*import app from \"firebase/app\";\r\nimport \"firebase/auth\";\r\nimport \"firebase/database\";*/\r\nvar W3CWebSocket = require(\"websocket\").w3cwebsocket;\r\n\r\n//export const client = new W3CWebSocket(\"ws://localhost:8000\");\r\n\r\nconst config = {\r\n urlBase: window.location.origin + \"/app\", // \"http://192.168.1.145:5000/app\",\r\n};\r\n\r\nexport var loggedUser = null;\r\n/* test API */\r\n\r\nexport const testConexion = () =>\r\n new Promise((resolve, reject) => {\r\n fetch(`${config.urlBase}/groups`)\r\n .then((response) => response.json())\r\n .then((data) => resolve(data))\r\n .catch((data) => reject(data));\r\n });\r\n\r\nexport const currentUser = () => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`${config.urlBase}/session/user`)\r\n .then((response) => response.json())\r\n .then((data) => {\r\n resolve(data);\r\n loggedUser = data;\r\n })\r\n .catch((err) => {\r\n loggedUser = null;\r\n resolve(null);\r\n //reject(err);\r\n });\r\n });\r\n};\r\n\r\nexport const doLogIn = (user, password) => {\r\n return new Promise((resolve, reject) => {\r\n fetch(`${config.urlBase}/session/login`, {\r\n method: \"POST\",\r\n body: JSON.stringify({ email: user, password: password }),\r\n headers: {\r\n \"Content-Type\": \"application/json\",\r\n },\r\n })\r\n .then((response) => response.json())\r\n .then((data) => {\r\n //console.log(\"respuesta login\", data);\r\n data.status.error !== 0 && reject(data.status.error);\r\n loggedUser = data.status.error === 0 ? data : null;\r\n data.status.error === 0 && resolve(data);\r\n })\r\n .catch((err) => {\r\n // console.log(\"error\", err);\r\n reject(-1);\r\n });\r\n });\r\n};\r\n\r\nexport const singOut = () => {\r\n fetch(`${config.urlBase}/session/logout`).then(() => {});\r\n};\r\n\r\nexport const sendPasswordResetEmail = (email, lang) => {\r\n return new Promise((resolve, reject) => {\r\n if (email != undefined) {\r\n var path = `${config.urlBase}/account/password/recovery`;\r\n var post_body = { email: email, lang: lang };\r\n fetch(path, {\r\n method: \"POST\",\r\n body: JSON.stringify(post_body),\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return { data: { status: 5 } };\r\n }\r\n })\r\n .then((data) => resolve(data))\r\n .catch((data) => reject(data));\r\n }\r\n /*setTimeout(() => {\r\n Math.random() < 0.5 ? resolve() : reject({ code: \"algomal\" });\r\n }, 5000);*/\r\n });\r\n};\r\n\r\nexport const confirmPasswordReset = (email, token, password_1, password_2) => {\r\n return new Promise((resolve, reject) => {\r\n if (email != undefined) {\r\n var path = `${config.urlBase}/account/password/reset`;\r\n var post_body = {\r\n email: email,\r\n token: token,\r\n password_1: password_1,\r\n password_2: password_2,\r\n };\r\n fetch(path, {\r\n method: \"POST\",\r\n body: JSON.stringify(post_body),\r\n headers: { \"Content-Type\": \"application/json\" },\r\n })\r\n .then((response) => {\r\n if (response.ok) {\r\n return response.json();\r\n } else {\r\n return { data: { status: 5 } };\r\n }\r\n })\r\n .then((data) => resolve(data))\r\n .catch((data) => reject(data));\r\n }\r\n });\r\n /*return new Promise((resolve, reject) => {\r\n setTimeout(() => {\r\n Math.random() < 0.5 ? resolve() : reject({ code: \"algomal\" });\r\n }, 5000);\r\n });*/\r\n};\r\n","import { Button, IconButton, ListItemText, Menu, MenuItem } from \"@material-ui/core\";\r\nimport { AccountCircle, ExpandMore, Language } from \"@material-ui/icons\";\r\nimport moment from \"moment\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { updateUserLanguaje } from \"../DataNet/DataNet\";\r\n\r\nconst LangSelect = ({ icon }) => {\r\n const [anchor, setanchor] = useState(false);\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const open = Boolean(anchorEl);\r\n const { t, i18n } = useTranslation();\r\n\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n const onChangeLanguaje = (lang) => {\r\n i18n.changeLanguage(lang);\r\n moment.locale(lang, langsLocale[lang]);\r\n updateUserLanguaje(lang)\r\n .catch((err) => console.log(\"error al actualizar el idioma\", err))\r\n .then((snap) => {});\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n (onChangeLanguaje(\"es\"), setAnchorEl(false))}>\r\n {t(\"navigation.languaje.es\")}\r\n \r\n (onChangeLanguaje(\"en\"), setAnchorEl(false))}>\r\n {t(\"navigation.languaje.en\")}\r\n \r\n (onChangeLanguaje(\"it\"), setAnchorEl(false))}>\r\n {t(\"navigation.languaje.it\")}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LangSelect;\r\n\r\nexport const langsLocale = {\r\n es: {\r\n months: \"Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre\".split(\"_\"),\r\n monthsShort: \"Ene_Feb_Mar_Abr_May_Jun_Jul_Ago_Sep_Oct_Nov_Dic\".split(\"_\"),\r\n monthsParseExact: true,\r\n weekdays: \"Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado\".split(\"_\"),\r\n weekdaysShort: \"Dom_Lun_Mar_Mié_Jue_Vie_Sáb\".split(\"_\"),\r\n weekdaysMin: \"Do_Lu_Ma_Mi_Ju_Vi_Sá\".split(\"_\"),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: \"HH:mm\",\r\n LTS: \"HH:mm:ss\",\r\n L: \"DD/MM/YYYY\",\r\n LL: \"D [de] MMMM [de] YYYY\",\r\n LLL: \"D [de] MMMM [de] YYYY HH:mm\",\r\n LLLL: \"dddd D [de] MMMM [de] YYYY HH:mm\",\r\n },\r\n calendar: {\r\n sameDay: \"[Hoy a] LT\",\r\n nextDay: \"[Mañana a] LT\",\r\n nextWeek: \"dddd [a] LT\",\r\n lastDay: \"[Ayer a] LT\",\r\n lastWeek: \"dddd [pasado a] LT\",\r\n sameElse: \"L\",\r\n },\r\n relativeTime: {\r\n future: \"en %s\",\r\n past: \"hace %s\",\r\n s: \"unos segundos\",\r\n m: \"un minuto\",\r\n mm: \"%d minutos\",\r\n h: \"una hora\",\r\n hh: \"%d horas\",\r\n d: \"un día\",\r\n dd: \"%d días\",\r\n M: \"un mes\",\r\n MM: \"%d meses\",\r\n y: \"un año\",\r\n yy: \"%d años\",\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}(er|o)/,\r\n ordinal: function (number) {\r\n return number + (number === 1 ? \"er\" : \"o\");\r\n },\r\n meridiemParse: /AM|PM/,\r\n isPM: function (input) {\r\n return input.charAt(0) === \"P\";\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n return hours < 12 ? \"AM\" : \"PM\";\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // Used to determine first week of the year.\r\n },\r\n },\r\n it: {\r\n months: \"Gennaio_Febbraio_Marzo_Aprile_Maggio_Giugno_Luglio_Agosto_Settembre_Ottobre_Novembre_Dicembre\".split(\"_\"),\r\n monthsShort: \"Gen_Feb_Mar_Apr_Mag_Giu_Lug_Ago_Set_Ott_Nov_Dic\".split(\"_\"),\r\n monthsParseExact: true,\r\n weekdays: \"Domenica_Lunedì_Martedì_Mercoledì_Giovedì_Venerdì_Sabato\".split(\"_\"),\r\n weekdaysShort: \"Dom_Lun_Mar_Mer_Gio_Ven_Sab\".split(\"_\"),\r\n weekdaysMin: \"Do_Lu_Ma_Mi_Gi_Ve_Sa\".split(\"_\"),\r\n weekdaysParseExact: true,\r\n longDateFormat: {\r\n LT: \"HH:mm\",\r\n LTS: \"HH:mm:ss\",\r\n L: \"DD/MM/YYYY\",\r\n LL: \"D [di] MMMM [di] YYYY\",\r\n LLL: \"D [di] MMMM [di] YYYY HH:mm\",\r\n LLLL: \"dddd D [di] MMMM [di] YYYY HH:mm\",\r\n },\r\n calendar: {\r\n sameDay: \"[Oggi alle] LT\",\r\n nextDay: \"[Domani alle] LT\",\r\n nextWeek: \"dddd [alle] LT\",\r\n lastDay: \"[Ieri alle] LT\",\r\n lastWeek: \"dddd [scorso alle] LT\",\r\n sameElse: \"L\",\r\n },\r\n relativeTime: {\r\n future: \"tra %s\",\r\n past: \"%s fa\",\r\n s: \"alcuni secondi\",\r\n m: \"un minuto\",\r\n mm: \"%d minuti\",\r\n h: \"un\" + \"ora\",\r\n hh: \"%d ore\",\r\n d: \"un giorno\",\r\n dd: \"%d giorni\",\r\n M: \"un mese\",\r\n MM: \"%d mesi\",\r\n y: \"un anno\",\r\n yy: \"%d anni\",\r\n },\r\n dayOfMonthOrdinalParse: /\\d{1,2}º/,\r\n ordinal: \"%dº\",\r\n meridiemParse: /AM|PM/,\r\n isPM: function (input) {\r\n return input.charAt(0) === \"P\";\r\n },\r\n meridiem: function (hours, minutes, isLower) {\r\n return hours < 12 ? \"AM\" : \"PM\";\r\n },\r\n week: {\r\n dow: 1, // Monday is the first day of the week.\r\n doy: 4, // Used to determine first week of the year.\r\n },\r\n },\r\n};\r\n","import i18n from \"i18next\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport LanguageDetector from \"i18next-browser-languagedetector\";\r\n\r\nimport enTranslation from \"./en.json\";\r\nimport esTranslation from \"./es.json\";\r\nimport euTranslation from \"./eus.json\";\r\nimport itTranslation from \"./it.json\";\r\n\r\nimport moment from \"moment\";\r\nimport { langsLocale } from \"../components/Navigation/LangSelect\";\r\n\r\n// the translations\r\n// (tip move them in a JSON file and import them)\r\nconst resources = {\r\n en: {\r\n translation: enTranslation,\r\n },\r\n es: {\r\n translation: esTranslation,\r\n },\r\n it: {\r\n translation: itTranslation,\r\n },\r\n};\r\n\r\nconst options = {\r\n order: [\"cookie\", \"navigator\"],\r\n lookupQuerystring: \"lng\",\r\n};\r\n\r\ni18n\r\n .use(LanguageDetector)\r\n .use(initReactI18next) // passes i18n down to react-i18next\r\n .init({\r\n resources,\r\n detection: options,\r\n fallbackLng: \"en\",\r\n keySeparator: false, // we do not use keys in form messages.welcome\r\n interpolation: {\r\n escapeValue: false, // react already safes from xss\r\n },\r\n })\r\n .then((v) => {\r\n const localeCode = i18n.language.split(\"-\")[0];\r\n moment.locale(localeCode, langsLocale[localeCode]);\r\n });\r\n\r\nexport default i18n;\r\n","import React from \"react\";\r\n\r\nimport AuthUserContext from \"./context\";\r\nimport { currentUser, client } from \"../DataNet/DataNetAuth\";\r\nimport { CircularProgress, Grid } from \"@material-ui/core\";\r\nimport moment from \"moment\";\r\nimport i18n from \"../../i18n\";\r\n\r\nconst signalR = require(\"@microsoft/signalr\");\r\nvar _ = require(\"lodash\");\r\n\r\nconst withAuthentication = (Component) => {\r\n class WithAuthentication extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n authUser: null,\r\n loaded: false,\r\n reload: null,\r\n };\r\n }\r\n\r\n componentDidMount() {\r\n let self = this;\r\n\r\n currentUser().then((authUser) => {\r\n this.setState({ authUser: authUser, loaded: true });\r\n !!authUser && i18n.changeLanguage(authUser?.lang);\r\n });\r\n\r\n let r = setInterval(() => {\r\n currentUser().then((authUser) => {\r\n !_.isEqual(authUser, this.state.authUser) && this.setState({ authUser: authUser });\r\n });\r\n }, 10000);\r\n\r\n this.setState({\r\n reload: r,\r\n });\r\n\r\n /*client.onmessage = (message) => {\r\n console.log(\"datos recividos\", message.data);\r\n //let authUser = message.data === \"\" ? null : JSON.parse(message.data);\r\n //console.log(authUser);\r\n this.setState({ authUser: JSON.parse(message.data).authUser });\r\n };*/\r\n\r\n /**\r\n * enviar\r\n */\r\n //this.setState({ authUser: null });\r\n /*this.listener = this.props.firebase.auth.onAuthStateChanged(\r\n (authUser) => {\r\n authUser\r\n ? this.setState({ authUser })\r\n : this.setState({ authUser: null });\r\n }\r\n );*/\r\n }\r\n\r\n componentWillUnmount() {\r\n clearInterval(this.state.reload);\r\n }\r\n\r\n render() {\r\n //console.log(\"valor\", this.state.authUser);\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n\r\n return WithAuthentication;\r\n};\r\n\r\nexport default withAuthentication;\r\n","export default __webpack_public_path__ + \"static/media/0_6_BEXEN_Cardio_Vertic.aa08b94d.png\";","import { CircularProgress, Grid } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport BexenCardioLogo from \"../../assets/images/0_6_BEXEN_Cardio_Vertic.png\";\r\n\r\nconst LoadingPage = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoadingPage;\r\n","import React from \"react\";\r\nimport { useHistory, withRouter } from \"react-router-dom\";\r\n\r\nimport AuthUserContext from \"./context\";\r\nimport { currentUser, client } from \"../DataNet/DataNetAuth\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport LoadingPage from \"../LoadingPage\";\r\n\r\n// Roles\r\n\r\n/**\r\n * Viewer => sin rol asignado, con estar logeado es suficietne\r\n * trainingManager => puede gestionar el acceso al training de los usuarios a su cargo (ya se vera que usuarios son)\r\n * groupManager => ademas de ver, podra gestionar todas las cosas referentes a los grupos, ABM y gestionar usuarios\r\n * programManager => Ademas de ver y gestionar grupos podra gestionar los programas y todos los elementos\r\n * datanetAdmin => puede gestionar todos los contenidos del sistema\r\n */\r\n\r\nconst withAuthorization = (condition) => (Component) => {\r\n class WithAuthorization extends React.Component {\r\n constructor(props) {\r\n super(props);\r\n\r\n this.state = {\r\n reaload: null,\r\n };\r\n }\r\n componentDidMount() {\r\n //** Web socket para la sesión */\r\n\r\n const self = this;\r\n currentUser().then((authUser) => {\r\n if (!condition(authUser)) {\r\n self.props.history.push(ROUTES.SIGN_IN);\r\n }\r\n });\r\n let r = setInterval(() => {\r\n currentUser().then((authUser) => {\r\n var path = self.props.history.location.pathname;\r\n if (!condition(authUser) && path !== ROUTES.ACCOUNT_NEW && path !== ROUTES.REQUEST_NEW_PASSWROD) {\r\n self.props.history.push(ROUTES.SIGN_IN);\r\n }\r\n });\r\n }, 10000);\r\n\r\n this.setState({ reload: r });\r\n\r\n //console.log(\"autorizacion\", onAuthStateChange );\r\n /*client.onmessage = (message) => {\r\n //console.log(\"mensaje autorizacion\", message.data);\r\n let authUser = message.data === \"\" ? null : JSON.parse(message.data);\r\n var path = self.props.history.location.pathname;\r\n if (!condition(authUser) && path !== ROUTES.ACCOUNT_NEW) {\r\n self.props.history.push(ROUTES.SIGN_IN);\r\n }\r\n };*/\r\n\r\n /*console.log(JSON.parse(message.data));\r\n let user = JSON.parse(message.data);\r\n var path = self.props.history.location.pathname;\r\n if (!condition(user) && path !== ROUTES.ACCOUNT_NEW) {\r\n self.props.history.push(ROUTES.SIGN_IN);\r\n }*/\r\n }\r\n componentWillUnmount() {\r\n clearInterval(this.state.reaload);\r\n }\r\n\r\n render() {\r\n return (\r\n \r\n {(authUser) =>\r\n condition(authUser) ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )\r\n }\r\n \r\n );\r\n }\r\n }\r\n\r\n return withRouter(WithAuthorization);\r\n};\r\n\r\nexport default withAuthorization;\r\n","export default __webpack_public_path__ + \"static/media/0_3_BEXEN_Cardio_Horiz.aff45142.png\";","import React, { Component, useState } from \"react\";\r\nimport { withRouter, Link } from \"react-router-dom\";\r\n//import { compose } from \"recompose\";\r\n\r\n//import { withFirebase } from \"../Firebase\";\r\nimport { doLogIn } from \"../DataNet/DataNetAuth\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Button, CircularProgress, Divider, Grid, IconButton, InputAdornment, TextField, Typography, FormHelperText, makeStyles } from \"@material-ui/core\";\r\nimport { AccountCircle, Instagram, LinkedIn, Lock, Twitter, Visibility, VisibilityOff } from \"@material-ui/icons\";\r\n\r\nimport { useHistory } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport BexenCardioLogo from \"../../assets/images/0_3_BEXEN_Cardio_Horiz.png\";\r\n\r\nconst INITIAL_STATE = {\r\n email: \"\",\r\n password: \"\",\r\n error: null,\r\n};\r\n\r\nconst SignInForm = () => {\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n\r\n const [email, setemail] = useState(INITIAL_STATE.email);\r\n const [emailError, setEmailError] = useState(null);\r\n const [password, setpassword] = useState(INITIAL_STATE.password);\r\n const [error, setError] = useState(INITIAL_STATE.error);\r\n const [isSessionLoading, setIsSessionLoading] = useState(false);\r\n const [showPassword, setShowPassword] = useState(false);\r\n\r\n const onSubmit = (event) => {\r\n setIsSessionLoading(true);\r\n\r\n doLogIn(email, password)\r\n .then((snap) => {})\r\n .catch((error) => {\r\n setIsSessionLoading(false);\r\n switch (error) {\r\n case 1:\r\n setError(t(\"signIn.error.wrongLogin\"));\r\n break;\r\n case 3:\r\n setError(t(\"signIn.error.wrongLogin\"));\r\n break;\r\n case 2:\r\n setError(t(\"signIn.error.userBlock\"));\r\n break;\r\n case -1:\r\n setError(t(\"signIn.error.serverError\"));\r\n break;\r\n }\r\n });\r\n\r\n event.preventDefault();\r\n };\r\n\r\n const checkEmail = () => {\r\n const emailPattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n !new RegExp(emailPattern).test(email) && email !== \"\" && setEmailError(t(\"account.error.format_email\"));\r\n };\r\n\r\n const onEmailChange = (event) => {\r\n setemail(event.target.value.trim());\r\n setError(null);\r\n setEmailError(null);\r\n };\r\n\r\n const onPasswordChange = (event) => {\r\n setpassword(event.target.value);\r\n };\r\n\r\n const handleClickShowPassword = () => {\r\n setShowPassword(!showPassword);\r\n };\r\n\r\n const handleMouseDownPassword = (event) => {\r\n event.preventDefault();\r\n };\r\n\r\n const isInvalid = password === \"\" || email === \"\" || !!emailError;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n REANIBEX DATA NET\r\n \r\n \r\n \r\n \r\n by\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n {emailError}\r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n endAdornment: (\r\n \r\n {showPassword ? : }\r\n \r\n ),\r\n }}\r\n />\r\n \r\n {error && (\r\n \r\n \r\n {error}\r\n \r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {isSessionLoading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n {\r\n window.scrollTo(0, 0);\r\n }}\r\n >\r\n {t(\"common.createAccount\")}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n \r\n }\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n window.open(\"https://twitter.com/BexenCardio\", \"_blank\")}>\r\n \r\n \r\n \r\n \r\n window.open(\"https://www.instagram.com/bexencardio/\", \"_blank\")}>\r\n \r\n \r\n \r\n \r\n window.open(\"https://www.linkedin.com/company/bexen-cardio/\", \"_blank\")}>\r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SignInForm;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n marginLeft: theme.spacing(2),\r\n },\r\n },\r\n}));\r\n","export default __webpack_public_path__ + \"static/media/login.97ee7218.jpg\";","import { Grid, makeStyles, Paper, Button, Hidden } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { AuthUserContext, withAuthentication } from \"../Session\";\r\nimport SignInForm from \"./SignInForm\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport login_img from \"../../assets/images/login.jpg\";\r\n\r\nconst SignInPage = () => {\r\n const history = useHistory();\r\n\r\n const { t } = useTranslation();\r\n\r\n const goToUserHome = (user) => {\r\n user.program.length > 1 ? history.push(ROUTES.PROGRAMS) : history.push(`${ROUTES.PROGRAMS}/${user.program[0].id}${ROUTES.GROUPS}`);\r\n };\r\n\r\n return (\r\n <>\r\n {{(authUser) => !!authUser && goToUserHome(authUser)}}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withAuthentication(SignInPage);\r\n","import React, { useEffect } from \"react\";\r\nimport { AuthUserContext, withAuthentication } from \"../Session\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { loggedUser } from \"../DataNet/DataNetAuth\";\r\n\r\nconst HomePage = () => {\r\n const history = useHistory();\r\n\r\n useEffect(() => {\r\n if (!!!loggedUser) {\r\n //loggedUser.roles.includes(\"admin\") && history.push(ROUTES.PROGRAMS);\r\n //loggedUser.roles.includes(\"coordinator\") && history.push(ROUTES.GROUPS);\r\n } else {\r\n //history.push(ROUTES.SIGN_IN);\r\n }\r\n }, []);\r\n\r\n return <>;\r\n};\r\n\r\n// && !!authUser.roles.includes(\"Admin\");\r\n\r\nexport default withAuthentication(HomePage);\r\n","import { createMuiTheme } from \"@material-ui/core/styles\";\r\n\r\nconst theme = createMuiTheme({\r\n typography: {\r\n //fontFamily: '\"Google Sans\"',\r\n fontFamily: \"Manrope\",\r\n fontWeightLight: 400,\r\n fontWeightRegular: 400,\r\n fontWeightMedium: 500,\r\n },\r\n palette: {\r\n primary: {\r\n main: \"#8f53a1\",\r\n },\r\n secondary: {\r\n main: \"#023f88\",\r\n },\r\n },\r\n});\r\n\r\nexport default theme;\r\n","import { Badge, List, ListItem, ListItemIcon, ListItemText, ListSubheader, Typography, withStyles } from \"@material-ui/core\";\r\nimport BexenCardioLogoColorH from \"../../assets/images/0_3_BEXEN_Cardio_Horiz.png\";\r\nimport { Devices, GroupWork, People, School, ShoppingBasketOutlined, Folder, NewReleases } from \"@material-ui/icons\";\r\n\r\nimport React, { useEffect, useState } from \"react\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst AuthDrawer = ({ user, setanchor, currentLang }) => {\r\n const [open, setopen] = useState(false);\r\n const history = useHistory();\r\n const location = useLocation();\r\n const { t, i18n } = useTranslation();\r\n\r\n const customRoute = (endPoint) => {\r\n let url = \"\";\r\n const l = location.pathname.split(\"/\");\r\n url = l.length >= 4 ? ROUTES.PROGRAMS + `/${l[2]}` : \"\";\r\n url += l.length == 6 ? ROUTES.GROUPS + `/${l[4]}` + endPoint : endPoint;\r\n window.scrollTo(0, 0);\r\n history.push(url);\r\n };\r\n\r\n const goToGroups = () => {\r\n let url = \"\";\r\n const l = location.pathname.split(\"/\");\r\n if (!(l.length >= 4) && user.program.length == 1) {\r\n url = ROUTES.PROGRAMS + `/${user.program[0].id}` + ROUTES.GROUPS;\r\n } else {\r\n url = l.length >= 4 ? ROUTES.PROGRAMS + `/${l[2]}` + ROUTES.GROUPS : ROUTES.GROUPS;\r\n }\r\n window.scrollTo(0, 0);\r\n history.push(url);\r\n };\r\n\r\n var lastPathItem = location.pathname.split(\"/\").pop();\r\n\r\n return (\r\n
\r\n setanchor(false)}\r\n style={{ width: 250 }}\r\n subheader={\r\n \r\n {t(\"navigation.management\")}\r\n \r\n }\r\n >\r\n {user.programas.length > 1 && (\r\n {\r\n window.scrollTo(0, 0);\r\n history.push(ROUTES.PROGRAMS);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setanchor(false)}\r\n style={{ width: 250 }}\r\n subheader={\r\n \r\n {t(\"navigation.elements\")}\r\n \r\n }\r\n >\r\n {\r\n customRoute(ROUTES.DEVICES);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {false && (\r\n {\r\n customRoute(ROUTES.ACCESSORIES);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n )}\r\n\r\n {\r\n customRoute(ROUTES.USERS);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n setanchor(false)}\r\n style={{ width: 250 }}\r\n subheader={\r\n \r\n {t(\"navigation.support\")}\r\n \r\n }\r\n >\r\n {\r\n history.push(ROUTES.SOURCES);\r\n window.scrollTo(0, 0);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {/* {\r\n history.push(ROUTES.RELEASE_NOTES);\r\n window.scrollTo(0, 0);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n */}\r\n \r\n\r\n \r\n V 2.0.0.13\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AuthDrawer;\r\n\r\nconst NavigatordBadge = withStyles((theme) => ({\r\n badge: {\r\n right: -4,\r\n border: `2px solid ${theme.palette.background.paper}`,\r\n padding: \"0 4px\",\r\n },\r\n}))(Badge);\r\n","import {\r\n ListItemIcon,\r\n ListItemText,\r\n MenuItem,\r\n CircularProgress,\r\n} from \"@material-ui/core\";\r\nimport { PowerSettingsNew } from \"@material-ui/icons\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { singOut } from \"../DataNet/DataNetAuth\";\r\n\r\nconst SingOutMenuItem = () => {\r\n const { t } = useTranslation();\r\n const [isClicked, setIsClicked] = useState(false);\r\n return (\r\n (singOut(), setIsClicked(true))}>\r\n \r\n {isClicked ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n {t(\"common.singOut\")}\r\n \r\n );\r\n};\r\n\r\nexport default SingOutMenuItem;\r\n","import { Avatar, IconButton, ListItemIcon, ListItemText, makeStyles, Menu, MenuItem } from \"@material-ui/core\";\r\nimport { grey } from \"@material-ui/core/colors\";\r\nimport React, { useState } from \"react\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport SingOutMenuItem from \"../SignOut/SingOutMenuItem\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport LangSelect from \"./LangSelect\";\r\n\r\nconst User = ({ user }) => {\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const open = Boolean(anchorEl);\r\n const classes = useStyles();\r\n const history = useHistory();\r\n\r\n const handleMenu = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n return (\r\n <>\r\n \r\n {user.name[0].toUpperCase()}\r\n \r\n \r\n {\r\n window.scrollTo(0, 0);\r\n history.push(`${ROUTES.USER}/${user.id}`);\r\n }}\r\n >\r\n \r\n {user.name[0].toUpperCase()}\r\n \r\n \r\n {user.name} {user.last_name}\r\n \r\n \r\n\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default User;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n avatar: {\r\n width: theme.spacing(4),\r\n height: theme.spacing(4),\r\n background: \"#023f88\",\r\n\r\n fontWeight: 500,\r\n },\r\n avatarIcon: {\r\n width: theme.spacing(3),\r\n height: theme.spacing(3),\r\n backgroundColor: \"#023f88\",\r\n },\r\n}));\r\n","import { FormControl, InputLabel, Select, MenuItem } from \"@material-ui/core\";\r\nimport { makeStyles, fade } from \"@material-ui/core/styles\";\r\n\r\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { purple } from \"@material-ui/core/colors\";\r\n\r\nconst SelectList = ({ list, category }) => {\r\n const classes = useStyles();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const { t } = useTranslation();\r\n const [userSelectOptions, setUserSelectOption] = useState([]);\r\n const [value, setvalue] = useState(\"-1\");\r\n\r\n const onSelectChange = (event) => {\r\n let path = event.target.value == category ? \"\" : event.target.value;\r\n history.push(path + \"/\" + category);\r\n setvalue(event.target.value);\r\n };\r\n\r\n const getLocationKey = () => {\r\n if (location.pathname.split(\"/\").length == 2) {\r\n return category;\r\n } else {\r\n let l = location.pathname.split(\"/\");\r\n l.pop();\r\n return l.join(\"/\");\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n setvalue(getLocationKey);\r\n }, [category]);\r\n\r\n useEffect(() => {\r\n let items =\r\n category === \"groups\"\r\n ? [{t(\"breadcrumbs.allGroups\")}]\r\n : location.pathname.includes(\"devices\")\r\n ? [{t(\"breadcrumbs.allDevices\")}]\r\n : [{t(\"breadcrumbs.allUsers\")}];\r\n list.forEach((p) => {\r\n location.pathname.split(\"/\").length <= 4 /*Impide mostar los programas en paginas donde se está a nivel de grupo */ &&\r\n items.push({p.name});\r\n category !== \"groups\" &&\r\n p.groups.forEach((g) => {\r\n items.push({` ${p.name} | ${g.name}`});\r\n });\r\n });\r\n setUserSelectOption(items);\r\n setvalue(getLocationKey);\r\n }, [category]);\r\n\r\n return (\r\n
\r\n \r\n \r\n {location.pathname.split(\"/\").length <= 4 ? t(\"common.program\") : t(\"common.group\")}\r\n \r\n \r\n {\r\n //* Si solo tiene una opcción se elimina la opción todos */\r\n /*\r\n userSelectOptions.length > 1 && (\r\n {t(\"common.all\")}\r\n )*/\r\n }\r\n\r\n {userSelectOptions.map((p) => p)}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default SelectList;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n formControl: {\r\n color: theme.palette.primary.main,\r\n },\r\n drawerContainer: {\r\n overflow: \"auto\",\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 0.2,\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n minWidth: 120,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginLeft: 20,\r\n //width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(1),\r\n minWidth: 140,\r\n },\r\n [theme.breakpoints.down(\"xs\")]: {\r\n marginLeft: theme.spacing(1),\r\n maxWidth: 140,\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n // vertical padding + font size from searchIcon\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"12ch\",\r\n \"&:focus\": {\r\n width: \"20ch\",\r\n },\r\n },\r\n },\r\n}));\r\n","export default __webpack_public_path__ + \"static/media/BEXEN_Cardio_Horiz_Blanco.2ddfb6c4.png\";","import React, { useState } from \"react\";\r\nimport { AppBar, Drawer, IconButton, Grid, Toolbar, Typography, Hidden, SwipeableDrawer, Avatar } from \"@material-ui/core\";\r\nimport { makeStyles, fade } from \"@material-ui/core/styles\";\r\nimport { Menu } from \"@material-ui/icons\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport AuthDrawer from \"./AuthDrawer\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport User from \"./User\";\r\nimport SelectList from \"./SelectList\";\r\nimport LangSelect from \"./LangSelect\";\r\nimport { grey, purple } from \"@material-ui/core/colors\";\r\nimport BexenCardioLogoH from \"../../assets/images/BEXEN_Cardio_Horiz_Blanco.png\";\r\nimport BexenCardioLogoColorH from \"../../assets/images/0_3_BEXEN_Cardio_Horiz.png\";\r\n\r\nconst Navigation = ({}) => {\r\n const classes = useStyles();\r\n\r\n const [anchor, setanchor] = useState(false);\r\n const [openDrawer, setopenDrawer] = useState(false);\r\n\r\n const location = useLocation();\r\n const history = useHistory();\r\n\r\n var currentLoc = location.pathname.split(\"/\").pop();\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n setopenDrawer(true)}>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n
\r\n\r\n {!ROUTES.SOURCES.includes(currentLoc) &&\r\n (ROUTES.DEVICES.includes(currentLoc) || ROUTES.USERS.includes(currentLoc) || ROUTES.GROUPS.includes(currentLoc)) /*||\r\n ROUTES.PROGRAMS.includes(currentLoc)*/ && {(authUser) => }}\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {(authUser) => authUser && }\r\n
\r\n
\r\n\r\n {/**drawer para versiones moviles y tablets */}\r\n\r\n \r\n setopenDrawer(true)}\r\n onClose={() => setopenDrawer(false)}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n\r\n {(authUser) => authUser && }\r\n \r\n \r\n\r\n {/**ocultar el drawer para versiones moviles y tablets */}\r\n \r\n \r\n \r\n {(authUser) => authUser && }\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Navigation;\r\n\r\nconst drawerWidth = 251;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n appBar: {\r\n zIndex: theme.zIndex.drawer + 1,\r\n background: \"white\",\r\n [theme.breakpoints.up(\"sm\")]: {},\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n overflowX: \"hidden\",\r\n },\r\n drawerContainer: {\r\n overflow: \"auto\",\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(3),\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 0.2,\r\n marginRight: 20,\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n },\r\n\r\n logo: {\r\n maxWidth: 164,\r\n verticalAlign: \"bottom\",\r\n },\r\n\r\n search: {\r\n position: \"relative\",\r\n borderRadius: theme.shape.borderRadius,\r\n backgroundColor: fade(theme.palette.common.white, 0.15),\r\n \"&:hover\": {\r\n backgroundColor: fade(theme.palette.common.white, 0.25),\r\n },\r\n marginLeft: 0,\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: theme.spacing(1),\r\n width: 150,\r\n },\r\n },\r\n searchIcon: {\r\n padding: theme.spacing(0, 2),\r\n height: \"100%\",\r\n position: \"absolute\",\r\n pointerEvents: \"none\",\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n },\r\n inputRoot: {\r\n color: \"inherit\",\r\n },\r\n inputInput: {\r\n padding: theme.spacing(1, 1, 1, 0),\r\n paddingLeft: `calc(1em + ${theme.spacing(4)}px)`,\r\n transition: theme.transitions.create(\"width\"),\r\n width: \"100%\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n width: \"12ch\",\r\n \"&:focus\": {\r\n width: \"20ch\",\r\n },\r\n },\r\n },\r\n}));\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst ErrorDialog = ({ errorMsg, clearError }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n {t(\"error.connection.title\")}\r\n \r\n {errorMsg}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ErrorDialog;\r\n","import { FormControl, makeStyles, MenuItem, Select, InputLabel, Grid, Zoom } from \"@material-ui/core\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\n\r\nconst ModelSelect = ({ models, model, setModel, setGroup, group }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n const [groups, setGroups] = useState([]);\r\n const [selectedGroup, setSelectedGroup] = useState(\"\");\r\n const [isSelectedGroup, setIsSelectedGroup] = useState(false);\r\n const { programId, groupId } = useParams();\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n\r\n const handleChange = (event) => {\r\n setModel(event.target.value);\r\n };\r\n\r\n const handleGroup = (event) => {\r\n setSelectedGroup(event.target.value);\r\n setGroup(event.target.value);\r\n };\r\n\r\n useEffect(() => {\r\n if (groups.length === 1) {\r\n //console.log(\"entro a actualziar\", groups[0].id);\r\n setSelectedGroup(groups[0].id.toString());\r\n setGroup(groups[0].id.toString());\r\n }\r\n }, [groups]);\r\n\r\n useEffect(() => {\r\n let groups = [];\r\n if (groupId !== undefined) {\r\n DATANETAPI.getGroup(groupId).then((snap) => {\r\n if (snap.status >= 0) {\r\n groups.push({ id: snap.data.groupid, name: snap.data.name });\r\n setGroups(groups);\r\n setIsSelectedGroup(true);\r\n } else {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n }\r\n });\r\n } else {\r\n DATANETAPI.getAllGroups(programId).then((snap) => {\r\n snap.data.forEach((group) => {\r\n groups.push({ id: group.groupid, name: group.name });\r\n });\r\n setGroups(groups);\r\n setIsSelectedGroup(true);\r\n });\r\n }\r\n !!group && setSelectedGroup(group);\r\n }, []);\r\n\r\n return (\r\n \r\n {!isSelectedGroup ? (\r\n <>\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n {t(\"common.group\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"common.model\")}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n setConnectionErrorMsg(\"\")} />\r\n \r\n );\r\n};\r\n\r\nexport default ModelSelect;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formControl: {\r\n margin: theme.spacing(1),\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n","export const MAPS_API_KEY = \"AIzaSyDXA2Hl0LLmYdaZqD7K-w5l4_NU97_0n-U\";","import { CircularProgress } from \"@material-ui/core\";\r\nimport React from \"react\";\r\n\r\nconst ButtonLoader = () => {\r\n return (\r\n \r\n );\r\n};\r\n\r\nexport default ButtonLoader;\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle } from \"@material-ui/core\";\r\nimport { orange } from \"@material-ui/core/colors\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport const R100ConfigChangedModal = ({ open, handleClose, isNew }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {t(\"Cuidado\")}\r\n \r\n \r\n {t(\"groupMove.settings.text\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n","export const WIFI = \"Wifi\";\r\nexport const STANDALONE = \"Standalone\";\r\nexport const SIGFOX = \"Sigfox\";\r\n","import * as COMNS from \"../constants/comsTypes\";\r\n\r\nconst getDeviceComunications = (options) => {\r\n let coms = [];\r\n if (options?.wifi == 1) coms.push(COMNS.WIFI);\r\n if (options?.sigfox == 1) coms.push(COMNS.SIGFOX);\r\n return coms.length === 0 ? [COMNS.STANDALONE] : coms;\r\n};\r\n\r\nexport default getDeviceComunications;\r\n","import { FormControl, Select, MenuItem, InputLabel, Snackbar, List, ListSubheader, ListItem, ListItemText, Grid, Button, Tooltip } from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as DATANET from \"../DataNet/DataNet\";\r\nimport { Alert, AlertTitle } from \"@material-ui/lab\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport { R100ConfigChangedModal } from \"../R100ConfigChangedModal\";\r\nimport getDeviceComunications from \"../../functions/getDeviceComunications\";\r\n\r\nconst MoveDeviceSelect = ({ device, user, setNewGroup }) => {\r\n const { t } = useTranslation();\r\n\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [selectedGroup, setSelectedGroup] = useState(device?.groupid ?? 0);\r\n const [selectedProgram, setSelectedProgram] = useState(0);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [responseState, setResponseState] = useState(0); // 0 off, -1 err , 1 ok\r\n const [responseMSG, setResponseMSG] = useState(\"\");\r\n const [openWarningSettingsModal, setOpenWarningSettingsModal] = useState(false);\r\n const [isFormInitialized, setisFormInitialized] = useState(false);\r\n\r\n const handleGroup = (e) => {\r\n setSelectedGroup(e.target.value);\r\n setResponseState(0);\r\n };\r\n\r\n const handleProgram = (e) => {\r\n const newValue = e.target.value;\r\n if (newValue !== selectedProgram) setSelectedGroup(0);\r\n setSelectedProgram(newValue);\r\n setResponseState(0);\r\n };\r\n\r\n function findProgram(id, programList) {\r\n setisFormInitialized(true);\r\n return programList.findIndex((p) => p.id === id);\r\n }\r\n\r\n useEffect(() => {\r\n console.log(\"voy a cambiar los datos del programa\", !!user && !!device);\r\n !!user && !!device && !isFormInitialized && setSelectedProgram(findProgram(device.programid, user.programas));\r\n }, [user, device]);\r\n\r\n const moveGroup = () => {\r\n setIsLoading(true);\r\n if (device.model == \"Reanibex 100\") {\r\n setOpenWarningSettingsModal(true);\r\n } else {\r\n confirmMove(true);\r\n }\r\n };\r\n\r\n const confirmMove = (confirm) => {\r\n setOpenWarningSettingsModal(false);\r\n if (confirm) {\r\n DATANET.editDevice({ device: { ...device, groupid: selectedGroup, programid: user?.programas[selectedProgram]?.id }, groupid: device.groupid, programid: device.programid }, device.id).then(\r\n (snap) => {\r\n console.log(\"consulta de mover\", snap);\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n setIsLoading(false);\r\n if (snap.status != 1) {\r\n setResponseState(snap.status);\r\n setResponseMSG(t(`moveDeviceStatus_${snap.status}`));\r\n } else {\r\n setNewGroup(selectedGroup, user?.programas[selectedProgram]?.id);\r\n setResponseState(1);\r\n setResponseMSG(t(\"El equipo se ha movido correctamente\"));\r\n }\r\n }\r\n }\r\n );\r\n } else {\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n console.log(\"Tipo de coms del grupo\", selectedGroup, user?.programas[selectedProgram], user?.programas[selectedProgram]?.groups.filter((g) => g.id == selectedGroup)[0]?.comsTypes);\r\n\r\n return (\r\n <>\r\n \r\n \r\n {t(\"common.program\")}\r\n \r\n {/*!!groupList && groupList.map((e) => e.program_id == device.programid && {e.name})*/}\r\n {user?.programas?.map((e, i) => (\r\n {e.name}\r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"common.group\")}\r\n \r\n \r\n {t(\"seleccione grupo\")}\r\n \r\n\r\n {user?.programas[selectedProgram]?.groups.map((e) => (\r\n getDeviceComunications(device?.options).includes(t))}>\r\n {console.log(\"select\", e.comsTypes, getDeviceComunications(device?.options))}\r\n {e.name}\r\n {!e.comsTypes?.every((t) => getDeviceComunications(device?.options).includes(t)) && \" · Tipos no compatibles\"}\r\n \r\n ))}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n {isLoading && }\r\n {t(\"mover\")}\r\n \r\n \r\n \r\n\r\n \r\n setResponseState(0)} severity={responseState == 1 ? \"success\" : \"error\"}>\r\n {responseMSG}\r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default MoveDeviceSelect;\r\n","import { Button, Checkbox, Dialog, DialogActions, DialogContent, DialogTitle, FormControlLabel, Grid, IconButton, Radio, RadioGroup, TextField, Typography } from \"@material-ui/core\";\r\nimport { blue, blueGrey, green, red } from \"@material-ui/core/colors\";\r\nimport { Close, Edit, FormatListNumberedRtlRounded } from \"@material-ui/icons\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nconst _ = require(\"lodash\");\r\n\r\nconst DeviceHourEditor = ({ openingTime, setOpeningTime, editable }) => {\r\n const { t } = useTranslation();\r\n\r\n const [is24Open, setIs24Open] = useState(false);\r\n const [editorOpen, setEditorOpen] = useState(false);\r\n const [isClose, setIsClose] = useState(false);\r\n const [customschedule, setCustomSchedule] = useState(false);\r\n const [periods, setPeriods] = useState([]);\r\n const [selectedDay, setSelectedDay] = useState();\r\n const [originalTime, setOriginalTime] = useState(openingTime);\r\n const [days, setDays] = useState([false, false, false, false, false, false, false]);\r\n const resetDialog = () => {\r\n setEditorOpen(false);\r\n };\r\n\r\n const saveChanges = () => {\r\n let per = periods;\r\n per = per.map((p) => ({\r\n start: parseInt(p.start.replace(\":\", \"\")),\r\n end: parseInt(p.end.replace(\":\", \"\")),\r\n }));\r\n per.sort((a, b) => (a.start > b.start ? 1 : b.start > a.start ? -1 : 0));\r\n let aux = per;\r\n if (per.length > 1) {\r\n for (let i = 1; i < per.length; i++) {\r\n if (per[i].start < per[1 - 1].end) {\r\n aux[i - 1].end = Math.max(per[i - 1].end, per[i].end);\r\n aux.splice(i, 1);\r\n }\r\n }\r\n per = aux;\r\n }\r\n\r\n let auxOpening = {\r\n days: [],\r\n original: openingTime.original ? openingTime.original : [],\r\n };\r\n openingTime.days.map((d, k) => {\r\n if (days[k]) {\r\n if (isClose) {\r\n auxOpening.days[k] = {\r\n periods: [],\r\n is24Open: false,\r\n };\r\n } else if (is24Open) {\r\n auxOpening.days[k] = {\r\n periods: [],\r\n is24Open: true,\r\n };\r\n } else {\r\n auxOpening.days[k] = {\r\n periods: per,\r\n is24Open: false,\r\n };\r\n }\r\n auxOpening.original[k] = originalTime.days[k];\r\n } else {\r\n auxOpening.days[k] = openingTime.days[k];\r\n }\r\n });\r\n setOpeningTime(auxOpening);\r\n resetDialog();\r\n };\r\n\r\n const editDay = (k) => {\r\n setEditorOpen(true);\r\n setSelectedDay(k);\r\n setDays(days.map((d, i) => i == k));\r\n setIsClose(openingTime.days[k].periods.length == 0 && !openingTime.days[k].is24Open);\r\n setIs24Open(openingTime.days[k].is24Open);\r\n setPeriods(\r\n openingTime.days[k].periods.map((p) => ({\r\n start: `${(p.start / 100).toFixed(2).toString().replace(\".\", \":\")}`,\r\n end: `${(p.end / 100).toFixed(2).toString().replace(\".\", \":\")}`,\r\n }))\r\n );\r\n };\r\n\r\n useEffect(() => {\r\n if (isClose || is24Open) {\r\n //setPeriods([]);\r\n } else {\r\n if (periods.length == 0) {\r\n setPeriods([{ start: \"\", end: \"\" }]);\r\n }\r\n }\r\n }, [isClose, is24Open, customschedule]);\r\n\r\n useEffect(() => {\r\n if (editorOpen) {\r\n if (isClose || is24Open) {\r\n setCustomSchedule(false);\r\n } else {\r\n setCustomSchedule(true);\r\n }\r\n }\r\n }, [editorOpen]);\r\n\r\n return (\r\n <>\r\n {editable && (\r\n \r\n \r\n {t(\"device.location.availability\")}\r\n \r\n \r\n )}\r\n \r\n {openingTime.days.map((d, k) => (\r\n \r\n \r\n \r\n {t(`day${k}`)}\r\n \r\n \r\n \r\n \r\n {editable && !!openingTime.original && !!openingTime.original[k] && }\r\n \r\n \r\n \r\n {editable && (\r\n editDay(k)}>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"device.timeEditor.title\")}\r\n \r\n \r\n \r\n {[t(\"common.day.L\"), t(\"common.day.M\"), t(\"common.day.X\"), t(\"common.day.J\"), t(\"common.day.V\"), t(\"common.day.S\"), t(\"common.day.D\")].map((d, k) => (\r\n {\r\n days[k] = !days[k];\r\n setDays(days.map((d) => d));\r\n }}\r\n >\r\n {d}\r\n \r\n ))}\r\n \r\n \r\n \r\n }\r\n checked={is24Open}\r\n label={t(\"24Open\")}\r\n onClick={() => {\r\n setIsClose(false);\r\n setIs24Open(true);\r\n setCustomSchedule(false);\r\n }}\r\n />\r\n }\r\n checked={isClose}\r\n label={t(\"closed\")}\r\n onClick={() => {\r\n setIsClose(true);\r\n setIs24Open(false);\r\n setCustomSchedule(false);\r\n }}\r\n />\r\n }\r\n checked={customschedule}\r\n label={t(\"customSchedule\")}\r\n onClick={() => {\r\n setIsClose(false);\r\n setIs24Open(false);\r\n setCustomSchedule(true);\r\n }}\r\n />\r\n \r\n \r\n {!is24Open &&\r\n !isClose &&\r\n periods.map((p, k) => (\r\n <>\r\n \r\n \r\n {\r\n let per = periods;\r\n per[k].start = e.target.value;\r\n setPeriods(per.map((m) => m));\r\n }}\r\n />\r\n \r\n \r\n parseInt(p.end)}\r\n onChange={(e) => {\r\n let per = periods;\r\n per[k].end = e.target.value;\r\n setPeriods(per.map((m) => m));\r\n }}\r\n />\r\n \r\n \r\n \r\n {\r\n if (periods.length > 0) {\r\n let per = periods;\r\n per.splice(k, 1);\r\n setPeriods(per.map((e) => e));\r\n }\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n ))}\r\n\r\n {!is24Open && !isClose && (\r\n \r\n {\r\n let newPeriods = periods;\r\n newPeriods.push({ start: \"\", end: \"\" });\r\n setPeriods(newPeriods.map((e) => e));\r\n }}\r\n >\r\n {t(\"addTime\")}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeviceHourEditor;\r\n\r\nconst DayTimeText = ({ d, t, original }) =>\r\n d.periods.length == 0 ? (\r\n \r\n \r\n {d.is24Open ? t(\"24Open\") : t(`closed`)}\r\n \r\n \r\n ) : (\r\n \r\n {d.periods.map((p) => (\r\n \r\n {`${(p.start / 100).toFixed(2).toString().replace(\".\", \":\")} - ${(p.end / 100).toFixed(2).toString().replace(\".\", \":\")}`}\r\n \r\n ))}\r\n \r\n );\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { FormControl, Grid, makeStyles, TextField, Typography, FormHelperText, IconButton, Select, MenuItem, InputLabel } from \"@material-ui/core\";\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport * as API_KEYS from \"../../constants/apiKeys\";\r\nimport { Edit, LocationOn } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { blueGrey, deepPurple, red } from \"@material-ui/core/colors\";\r\nimport MomentUtils from \"@date-io/moment\";\r\nimport MoveDeviceSelec from \"../MoveDeviceSelec\";\r\nimport { isNumber } from \"lodash\";\r\nimport DeviceHourEditor from \"./DeviceHourEditor\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport moment from \"moment\";\r\n\r\nconst DeviceForm = ({ currentposition, setFormValues, value, setisFormValid, editForm, isNew, user, programId }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n const unabizRegex = /^[0-9a-fA-F]{8}$/;\r\n\r\n const [expirationDateBatt, setExpirationDateBatt] = useState(!!!value.expirationDateBatt ? moment().add(1, \"M\") : value.expirationDateBatt);\r\n const [expirationDatePads, setExpirationDatePads] = useState(!!!value.expirationDatePads ? moment().add(1, \"M\") : value.expirationDatePads);\r\n const [isMarkerSet, setisMarkerSet] = useState(!!value);\r\n const [location, setLocation] = useState(!!!value.location ? { latitude: \"\", longitude: \"\" } : value.location);\r\n const [formErrors, setFormErrors] = useState({});\r\n const [name, setname] = useState(!!value.name ? value.name : \"\");\r\n const [code, setCode] = useState(!!value.code ? value.code : \"\");\r\n const [map, setMap] = useState(null);\r\n const [locationName, setLocationName] = useState(value.location !== undefined && !!value.location.name ? value.location.name : \"\");\r\n const [locationDescription, setLocationDescription] = useState(value.location !== undefined && !!value.location.description ? value.location.description : \"\");\r\n const [serialNumber, setserialNumber] = useState(!!value.serial ? value.serial : \"\");\r\n const [modelName, setmodelName] = useState(value.model != \"other\" ? value.model : \"\");\r\n const [manufacturer, setmanufacturer] = useState(value.model !== \"other\" ? value.manufacturer : \"\");\r\n const [openingTime, setOpeningTime] = useState(value.openingTime ? value.openingTime : DEFAULT_OPENINGTIME);\r\n\r\n const [unabizId, setUnabizId] = useState(value.unabiz_id ? value.unabiz_id : \"\");\r\n const [unabizAlert, setUnabizAlert] = useState(value.unabiz_alert ? value.unabiz_alert : false);\r\n const [groupList, setGroupList] = useState(!!user ? user.groupList : \"\");\r\n\r\n const getGroupList = () => {\r\n var group_list = [];\r\n if (!!user && user !== undefined) {\r\n var group_list = user.groups;\r\n\r\n // Program_Manager_L1\r\n if (user.roles.some((x) => (x.id = \"1162af87-cd83-4dc6-8110-4ab68d19de33\"))) {\r\n var program = user.programas.find((x) => x.id == programId);\r\n group_list = program.groups;\r\n }\r\n }\r\n return group_list;\r\n };\r\n\r\n const mapClickHandler = ({ x, y, lat, lng, event }) => {\r\n setFormErrors({ ...formErrors, latitude: null, longitude: null });\r\n setLocation({\r\n ...location,\r\n latitude: lat,\r\n longitude: lng,\r\n });\r\n setisMarkerSet(true);\r\n };\r\n\r\n const handleModel = (event) => {\r\n setmodelName(event.target.value);\r\n };\r\n\r\n const checkDate = (date) => {\r\n let msg = null;\r\n if (!!!date) {\r\n msg = t(\"account.error.empty\");\r\n } else {\r\n msg = !date.isSameOrAfter(new Date()) ? t(\"accessories.new.invalidDateMin\") : msg;\r\n msg = !date.isValid() ? t(\"accessories.new.invalidDate\") : msg;\r\n }\r\n return msg;\r\n };\r\n\r\n const handleDateChangeBatt = (date) => {\r\n setExpirationDateBatt(date);\r\n setFormErrors({ ...formErrors, expirationDateBatt: checkDate(date) });\r\n };\r\n\r\n const handleDateChangePads = (date) => {\r\n setExpirationDatePads(date);\r\n setFormErrors({ ...formErrors, expirationDatePads: checkDate(date) });\r\n };\r\n\r\n const handleName = (event) => {\r\n setname(event.target.value);\r\n };\r\n\r\n const handleCode = (event) => {\r\n setCode(event.target.value);\r\n };\r\n\r\n const handleManufacturer = (event) => {\r\n setmanufacturer(event.target.value);\r\n };\r\n\r\n const handleSerialNumber = (event) => {\r\n setserialNumber(event.target.value);\r\n };\r\n const checkSerialNumber = () => {\r\n /** para nuestros modelos, tenemos que comprobar\r\n * cada uno de los formatos, para otros,\r\n * solo es requerido el campo\r\n */\r\n var msg =\r\n serialNumber === \"\"\r\n ? t(\"account.error.empty\")\r\n : new RegExp(SN_FORMAT_REGEX[value.model]).test(serialNumber)\r\n ? null\r\n : t(\"account.error.format_sn\", {\r\n format: SN_PLACEHOLDER[value.model],\r\n });\r\n setFormErrors({ ...formErrors, serialNumber: msg });\r\n };\r\n\r\n const checkName = () => {\r\n setFormErrors({\r\n ...formErrors,\r\n name: name === \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n };\r\n\r\n const checkManufacturer = () => {\r\n setFormErrors({\r\n ...formErrors,\r\n manufacturer: manufacturer === \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n };\r\n\r\n const checkCode = () => {\r\n setFormErrors({\r\n ...formErrors,\r\n code: code === \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n };\r\n\r\n const checkModel = () => {\r\n setFormErrors({\r\n ...formErrors,\r\n model: modelName === \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n };\r\n\r\n const checkColcation = (itemName, value) => {\r\n setFormErrors({\r\n ...formErrors,\r\n [itemName]: value === \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n };\r\n\r\n const getFormData = (groupid = value?.groupid, programid = value?.programid) => {\r\n const values = {\r\n programid: programid,\r\n groupid: groupid,\r\n name: name,\r\n serial: serialNumber,\r\n manufacturer: manufacturer,\r\n disabled: false,\r\n model: modelName,\r\n location: {\r\n ...location,\r\n update_source: 5,\r\n name: locationName,\r\n description: locationDescription,\r\n },\r\n expirationDateBatt: expirationDateBatt,\r\n expirationDatePads: expirationDatePads,\r\n code: code,\r\n openingTime: { days: openingTime.days, is24Open: false },\r\n unabiz_id: unabizId,\r\n unabiz_alert: unabizAlert,\r\n };\r\n setisFormValid(true);\r\n setFormValues(values);\r\n };\r\n\r\n useEffect(() => {\r\n /* cuando se vuelve al formulario otra vez,\r\n se verifican los campos para ver que son correctos */\r\n if (!isNew) {\r\n var msg =\r\n serialNumber === \"\"\r\n ? t(\"account.error.empty\")\r\n : new RegExp(SN_FORMAT_REGEX[value.model]).test(serialNumber)\r\n ? null\r\n : t(\"account.error.format_sn\", {\r\n format: SN_PLACEHOLDER[value.model],\r\n });\r\n setFormErrors({\r\n ...formErrors,\r\n serialNumber: msg,\r\n name: name === \"\" ? t(\"account.error.empty\") : null,\r\n manufacturer: manufacturer === \"\" ? t(\"account.error.empty\") : null,\r\n model: modelName === \"\" ? t(\"account.error.empty\") : null,\r\n code: value.model == \"Reanibex 100\" && code === \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n setGroupList(getGroupList());\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isNumber(location.longitude) && isNumber(location.latitude)) {\r\n !!map &&\r\n map.panTo({\r\n lat: isNaN(location.latitude) ? 0 : parseFloat(location.latitude),\r\n lng: isNaN(location.longitude) ? 0 : parseFloat(location.longitude),\r\n });\r\n setisMarkerSet(true);\r\n } else {\r\n setisMarkerSet(false);\r\n }\r\n }, [location]);\r\n\r\n useEffect(() => {\r\n const areFieldsValid = name !== \"\" && serialNumber !== \"\" && manufacturer !== \"\" && modelName !== \"\" && locationName !== \"\" && locationDescription !== \"\" && isMarkerSet;\r\n if (value.model == \"Reanibex 100\") {\r\n if (!isNew) formErrors[\"code\"] = null;\r\n checkLocation(location) && (isNew ? code !== \"\" : true) && Object.keys(formErrors).every((e) => !!!formErrors[e]) && areFieldsValid //&& name !== \"\" && !!!formErrors.serialNumber\r\n ? getFormData()\r\n : setisFormValid(false);\r\n } else {\r\n // console.log(unabizId, unabizAlert, unabizRegex.test(unabizId));\r\n checkLocation(location) && (unabizAlert ? unabizRegex.test(unabizId) : true) && Object.keys(formErrors).every((e) => !!!formErrors[e]) && areFieldsValid //&& !!!formErrors.expirationDateBatt && !!!formErrors.expirationDatePads && name !== \"\" && !!!formErrors.serialNumber && manufacturer !== \"\" && modelName !== \"\"\r\n ? getFormData()\r\n : setisFormValid(false);\r\n }\r\n }, [name, serialNumber, manufacturer, modelName, location, code, expirationDatePads, expirationDateBatt, formErrors, locationName, locationDescription, openingTime, unabizId, unabizAlert]);\r\n\r\n const checkLocation = () => !isNaN(location.latitude) && !isNaN(location.longitude);\r\n\r\n const validateUnabiz = () => {\r\n setFormErrors({\r\n ...formErrors,\r\n unabizId: unabizAlert && !unabizRegex.test(unabizId) ? t(\"El campo tiene que tener 8 caracteres en hexadecimal, numeros y letras de la A la F\") : null,\r\n });\r\n };\r\n\r\n const handleApiLoaded = (map, maps) => {\r\n setMap(map);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"devices.new.title.form\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {value.model === \"Reanibex 100\" && !editForm && (\r\n \r\n \r\n \r\n )}\r\n\r\n {value.model !== \"Reanibex 100\" && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n {!isNew && !!user && (\r\n <>\r\n \r\n \r\n {t(\"grupo vinculado\")}\r\n \r\n \r\n\r\n {(AuthUser) => }\r\n \r\n )}\r\n\r\n \r\n \r\n {t(\"devices.new.location\")}\r\n \r\n\r\n {value.model === \"Reanibex 100\" && (\r\n \r\n {t(\"devices.new.location.r100Connected\")}\r\n \r\n )}\r\n \r\n\r\n \r\n checkColcation(\"locationName\", locationName)}\r\n onChange={(e) => {\r\n setLocationName(e.target.value);\r\n }}\r\n fullWidth\r\n />\r\n \r\n \r\n checkColcation(\"locationDescription\", locationDescription)}\r\n onChange={(e) => {\r\n setLocationDescription(e.target.value);\r\n }}\r\n fullWidth\r\n />\r\n \r\n\r\n \r\n {\r\n setFormErrors({\r\n ...formErrors,\r\n latitude: e.target.value == \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n\r\n setLocation({\r\n ...location,\r\n latitude: parseFloat(e.target.value),\r\n });\r\n }}\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setFormErrors({\r\n ...formErrors,\r\n longitude: e.target.value == \"\" ? t(\"account.error.empty\") : null,\r\n });\r\n setLocation({\r\n ...location,\r\n longitude: parseFloat(e.target.value),\r\n });\r\n }}\r\n fullWidth\r\n />\r\n \r\n \r\n handleApiLoaded(map, maps)}\r\n >\r\n {isMarkerSet && (\r\n \r\n )}\r\n \r\n \r\n\r\n \r\n\r\n {value.model !== \"Reanibex 100\" && (\r\n <>\r\n \r\n \r\n {t(\"devices.new.unabiz.title\")}\r\n \r\n \r\n \r\n setUnabizId(e.target.value)}\r\n onBlur={() => validateUnabiz()}\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n {t(\"device.unabiz.alert.label\")}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeviceForm;\r\n\r\nconst SN_FORMAT_REGEX = {\r\n \"Reanibex 100\": \"^(2007|A001)[0-9]{5}$\",\r\n \"Reanibex 200\": \"^2001[0-9]{4,4}$\",\r\n \"Reanibex 300\": \"^2004[0-9]{4,4}$\",\r\n \"Reanibex 500\": \"^2005[0-9]{4,4}$\",\r\n other: \"[sS]*\",\r\n};\r\n\r\nconst SN_PLACEHOLDER = {\r\n \"Reanibex 100\": \"\",\r\n \"Reanibex 200\": \"2001XXXX\",\r\n \"Reanibex 300\": \"2004XXXX\",\r\n \"Reanibex 500\": \"2005XXXX\",\r\n other: \"SN\",\r\n};\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formcontainer: {\r\n padding: 24,\r\n },\r\n formControl: {\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst DEFAULT_OPENINGTIME = {\r\n days: [\r\n {\r\n is24Open: true,\r\n periods: [],\r\n },\r\n {\r\n is24Open: true,\r\n periods: [],\r\n },\r\n {\r\n is24Open: true,\r\n periods: [],\r\n },\r\n {\r\n is24Open: true,\r\n periods: [],\r\n },\r\n {\r\n is24Open: true,\r\n periods: [],\r\n },\r\n { is24Open: false, periods: [] },\r\n {\r\n is24Open: false,\r\n periods: [],\r\n },\r\n ],\r\n is24Open: false,\r\n};\r\n","import React from \"react\";\r\nimport { MenuItem, Select, InputLabel, FormControl, FormHelperText } from \"@material-ui/core\";\r\n\r\nconst SelectConfig = ({ values, value, onChange, label, info, auto, kv, plusone, error, helperText }) => {\r\n return (\r\n \r\n {label}\r\n \r\n {helperText}\r\n \r\n );\r\n};\r\n\r\nexport default SelectConfig;\r\n","import {\r\n Dialog,\r\n AppBar,\r\n Toolbar,\r\n IconButton,\r\n Typography,\r\n makeStyles,\r\n Slide,\r\n Grid,\r\n Button,\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n DialogActions,\r\n Checkbox,\r\n FormControlLabel,\r\n} from \"@material-ui/core\";\r\nimport Icon from \"@material-ui/core/Icon\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport SelectConfig from \"./SelectConfig\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport * as COMS from \"../../constants/comsTypes\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport LoadingPage from \"../LoadingPage\";\r\nimport { red, orange } from \"@material-ui/core/colors\";\r\nimport { styles } from \"@material-ui/pickers/views/Calendar/Calendar\";\r\nimport NewReleasesIcon from \"@material-ui/icons/NewReleases\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\n\r\nconst DeviceSetupForm = ({ open, handleClose, groupId }) => {\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n //const { groupId } = useParams();\r\n const [groupData, setGroupData] = useState({});\r\n const [config, setConfig] = useState([]);\r\n const [isConfigLoaded, setIsConfigLoaded] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [openAlert, setOpenAlert] = useState(false);\r\n const [confOptions, setConfOptions] = useState([]);\r\n const [isConfOptions, setIsConfOptions] = useState(false);\r\n const [listLangs, setListLangs] = useState([]);\r\n const [isFormChanged, setIsFormChanged] = useState(false);\r\n const [isFormValid, setIsFormValid] = useState(false);\r\n const [newVersion, setNewVersion] = useState([]);\r\n const [isNewVersion, setIsNewVersion] = useState(false);\r\n const [toUpdate, setToUpdate] = useState(false);\r\n const [openNotCompatible, setOpenNotCompatible] = useState(false);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [isSaving, setIsSaving] = useState(false);\r\n\r\n const resetForm = () => {\r\n handleClose(false);\r\n setOpenAlert(false);\r\n setIsError(false);\r\n };\r\n\r\n const updateConfig = (e) => {\r\n if (!isFormChanged && !toUpdate) {\r\n /** si el formualio no se ha cambiado que no actualice nada */\r\n handleClose(false);\r\n } else {\r\n setIsSaving(true);\r\n e.preventDefault();\r\n if (newVersion?.version_current == \"0100\") {\r\n setOpenNotCompatible(true);\r\n } else {\r\n if (groupId !== undefined) {\r\n var conf_update = {\r\n new_update: toUpdate && newVersion !== null,\r\n new_version: \"\",\r\n old_version: \"\",\r\n opt_version: \"\",\r\n config: config,\r\n };\r\n\r\n if (toUpdate && newVersion !== null) {\r\n conf_update.new_version = newVersion?.version_new;\r\n conf_update.old_version = newVersion?.version_current;\r\n conf_update.opt_version = newVersion?.opt_version;\r\n }\r\n /* comprobar que los parametros en standalone van a 0 en las comunicaciones */\r\n if (groupData?.comsTypes?.includes(COMS.STANDALONE) && !!conf_update?.config?.device_setting?.misc?.transmission_mode) {\r\n conf_update.config.device_setting.misc.transmission_mode = { priority: 0, gps_enable: 0, transmit_frequency: 0 };\r\n }\r\n // console.log(\"datos que se van a subir\", conf_update.config.device_setting.misc.transmission_mode);\r\n DATANETAPI.editConfig(conf_update, groupId).then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setIsSaving(false);\r\n } else {\r\n if (snap != undefined) {\r\n setIsSaving(false);\r\n setOpenAlert(true);\r\n if (snap.status === 1) {\r\n setIsError(false);\r\n requestVersionUpdate();\r\n } else {\r\n setIsError(true);\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n setIsError(true);\r\n setIsSaving(false);\r\n }\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n /** revisar cuando se actualiza el formulario para salir sin hacer la petición */\r\n if (!isFormChanged && isConfigLoaded && isConfOptions) {\r\n setIsFormChanged(true);\r\n }\r\n }, [config, listLangs, confOptions]);\r\n\r\n useEffect(() => {\r\n /** se comprueba que el identificador del grupo existe\r\n * si no existe quiere decir que se está mostrando la lista\r\n * de dispositivos de un programa en general o bien todos los dispositivos\r\n * del usuario\r\n */\r\n\r\n if (groupId !== undefined) {\r\n DATANETAPI.getGroup(groupId).then((snap) => {\r\n var backendGroups = snap.data;\r\n if (backendGroups !== undefined) {\r\n setGroupData(backendGroups);\r\n\r\n if (backendGroups?.config_current?.device_setting?.langs?.combination === \"en-fr-de-es-it-pl\" || backendGroups?.config_current?.device_setting?.langs?.combination === \"en-fr-de-es-lt-pl\") {\r\n backendGroups.config_current.device_setting.langs.combination = \"en-fr-de-el-lt-pl\";\r\n backendGroups.config_current.device_setting.langs.list = [\"02_EN\", \"03_FR\", \"10_DE\", \"13_EL\", \"12_LT\", \"11_PL\"];\r\n backendGroups.config_current.device_setting.langs.default_lang = 1;\r\n }\r\n\r\n setListLangs(backendGroups?.config_current?.device_setting?.langs?.list);\r\n setConfig(backendGroups?.config_current);\r\n\r\n setIsConfigLoaded(true);\r\n } else {\r\n setConfig([]);\r\n setIsConfigLoaded(true);\r\n }\r\n });\r\n\r\n DATANETAPI.getConfOptions(groupId).then((snap) => {\r\n if (snap?.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap?.status}`));\r\n setListLangs([]);\r\n setConfOptions([]);\r\n setIsConfOptions(false);\r\n } else {\r\n if (snap.data !== undefined) {\r\n var lang_combinations = snap?.data?.combinations.map((x) => {\r\n if (x.name === \"en-fr-de-es-it-pl\") {\r\n x.name = \"en-fr-de-el-lt-pl\";\r\n x.list = [\"02_EN\", \"03_FR\", \"10_DE\", \"13_EL\", \"12_LT\", \"11_PL\"];\r\n }\r\n return x;\r\n });\r\n\r\n lang_combinations = lang_combinations?.filter((x, i, self) => {\r\n return lang_combinations?.findIndex((xi) => xi?.name === x?.name) === i;\r\n });\r\n\r\n snap.data.combinations = lang_combinations;\r\n setConfOptions(snap.data);\r\n\r\n setIsConfOptions(true);\r\n } else {\r\n setListLangs([]);\r\n setConfOptions([]);\r\n setIsConfOptions(false);\r\n }\r\n }\r\n });\r\n\r\n requestVersionUpdate();\r\n }\r\n }, [groupId]);\r\n\r\n const requestVersionUpdate = () => {\r\n DATANETAPI.newVersionGroup(groupId).then((snap) => {\r\n if (snap?.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setIsNewVersion(false);\r\n setNewVersion([]);\r\n } else {\r\n if (snap.status === 1) {\r\n setNewVersion(snap.data);\r\n setIsNewVersion(true);\r\n } else {\r\n setIsNewVersion(false);\r\n setNewVersion([]);\r\n }\r\n }\r\n });\r\n };\r\n\r\n const handleCombinationChange = (event) => {\r\n var filter = confOptions?.combinations?.filter((x) => x.name === event.target.value);\r\n\r\n if (filter.length > 0) {\r\n setListLangs(filter[0].list);\r\n config.device_setting.langs.list = filter[0].list;\r\n setConfig(config);\r\n\r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n langs: {\r\n ...config.device_setting.langs,\r\n combination: event.target.value,\r\n },\r\n },\r\n });\r\n }\r\n };\r\n\r\n const handleUpdateToNew = (event) => {\r\n setToUpdate(event.target.checked);\r\n if (event.target.checked) {\r\n if (parseInt(newVersion?.version_current) >= 202) {\r\n if (config?.device_setting?.misc?.mains_filter == 0) {\r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: { ...config?.device_setting?.misc, mains_filter: 1 },\r\n },\r\n });\r\n }\r\n }\r\n\r\n if (parseInt(newVersion?.version_current) >= 203) {\r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: { ...config?.device_setting?.misc, alert_warning: 1 },\r\n },\r\n });\r\n }\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n if (isConfigLoaded) {\r\n let error = false;\r\n error = config?.device_setting?.shocks?.energy2_adult < config?.device_setting?.shocks?.energy1_adult ? true : error;\r\n error = config?.device_setting?.shocks?.energy3_adult < config?.device_setting?.shocks?.energy2_adult ? true : error;\r\n error = config?.device_setting?.shocks?.energy3_pediatric < config?.device_setting?.shocks?.energy2_pediatric ? true : error;\r\n error = config?.device_setting?.shocks?.energy3_pediatric < config?.device_setting?.shocks?.energy2_pediatric ? true : error;\r\n setIsFormValid(!error);\r\n }\r\n }, [config, toUpdate]);\r\n\r\n return (\r\n \r\n \r\n \r\n handleClose(false)} aria-label=\"close\">\r\n \r\n \r\n \r\n {t(\"devices.setUp.title\", { groupName: groupData?.name })}\r\n \r\n \r\n \r\n {(!isConfigLoaded || !isConfOptions || !isNewVersion) && }\r\n {isConfigLoaded && isConfOptions && isNewVersion && (\r\n \r\n \r\n \r\n \r\n {groupData?.name}\r\n \r\n {t(\"devices.setUp.info.onlyConnectedDevices\")}\r\n \r\n {isNewVersion && newVersion?.is_available && (\r\n \r\n \r\n \r\n \r\n \r\n } label={t(\"devices.setUp.info.update_opt\")} />\r\n \r\n \r\n )}\r\n \r\n \r\n {t(\"common.languaje\")}\r\n \r\n \r\n \r\n {\r\n return { key: v.name, value: v.name.toUpperCase() };\r\n })}\r\n />\r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n langs: {\r\n ...config.device_setting.langs,\r\n default_lang: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={listLangs?.map((v, i) => {\r\n return { key: i + 1, value: t(\"common.lang.\" + v) };\r\n })}\r\n />\r\n \r\n \r\n \r\n {t(\"devices.setUp.crpTitle\")}\r\n \r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n cpr: {\r\n ...config.device_setting.cpr,\r\n cpr1: parseInt(e.target.value),\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 60, value: \"60 sec\" },\r\n { key: 120, value: \"120 sec\" },\r\n { key: 150, value: \"150 sec\" },\r\n { key: 180, value: \"180 sec\" },\r\n ]}\r\n />\r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n cpr: {\r\n ...config.device_setting.cpr,\r\n cpr2: parseInt(e.target.value.split(\" \")[0]),\r\n },\r\n },\r\n })\r\n }\r\n values={[\"60 sec\", \"120 sec\", \"150 sec\", \"180 sec\"]}\r\n />\r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n cpr: {\r\n ...config.device_setting.cpr,\r\n msg_long: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"common.short\") },\r\n { key: 1, value: t(\"common.long\") },\r\n ]}\r\n />\r\n \r\n \r\n \r\n {t(\"devices.setUp.metronome.title\")}\r\n \r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n metronome: {\r\n ...config.device_setting.metronome,\r\n ratio_adult: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.ratioAdultValue0\") },\r\n { key: 1, value: t(\"devices.setUp.ratioAdultValue1\") },\r\n { key: 2, value: t(\"devices.setUp.ratioAdultValue2\") },\r\n ]}\r\n />\r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n metronome: {\r\n ...config.device_setting.metronome,\r\n ratio_pediatric: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.ratioAdultValue0\") },\r\n { key: 1, value: t(\"devices.setUp.ratioAdultValue1\") },\r\n { key: 2, value: t(\"devices.setUp.ratioAdultValue2\") },\r\n ]}\r\n />\r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n metronome: {\r\n ...config.device_setting.metronome,\r\n rate: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"cpm\", { value: 100 }) },\r\n { key: 1, value: t(\"cpm\", { value: 110 }) },\r\n { key: 2, value: t(\"cpm\", { value: 120 }) },\r\n ]}\r\n />\r\n \r\n \r\n \r\n {t(\"devices.setUp.shock.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n shocks: {\r\n ...config.device_setting.shocks,\r\n consecutive_shocks: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n values={[1, 2, 3, 4]}\r\n />\r\n \r\n \r\n \r\n {t(\"devices.setUp.patient.title\")}\r\n \r\n \r\n \r\n setConfig({ ...config, device_setting: { ...config.device_setting, patient: { ...config.device_setting.patient, patient_type: e.target.value } } })}\r\n auto\r\n values={[t(\"common.pediatric\"), t(\"common.adult\")]}\r\n />\r\n \r\n\r\n {parseInt(newVersion?.version_current) >= 210 && !groupData?.comsTypes?.includes(COMS.STANDALONE) && (\r\n \r\n \r\n {t(`devices.setUp.comms.title`)}\r\n \r\n \r\n )}\r\n {false && parseInt(newVersion?.version_current) >= 210 && (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n alert_mode: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={(() => {\r\n let list = [{ key: 0, value: t(\"devices.setUp.alert_mode.none\") }];\r\n groupData?.comsTypes?.includes(COMS.SIGFOX) && list.push({ key: 1, value: t(\"devices.setUp.alert_mode.Sigfox\") });\r\n groupData?.comsTypes?.includes(COMS.WIFI) && list.push({ key: 2, value: t(\"devices.setUp.alert_mode.WiFi\") });\r\n groupData?.comsTypes?.includes(COMS.SIGFOX) && groupData?.comsTypes?.includes(COMS.WIFI) && list.push({ key: 3, value: t(\"devices.setUp.alert_mode.both\") });\r\n return list;\r\n })()}\r\n />\r\n \r\n )}\r\n\r\n {parseInt(newVersion?.version_current) >= 210 && (groupData?.comsTypes?.includes(COMS.SIGFOX) || groupData?.comsTypes?.includes(COMS.WIFI)) && (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n transmission_mode: {\r\n ...config?.device_setting?.misc?.transmission_mode,\r\n priority: e.target.value,\r\n },\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={(() => {\r\n let list = [{ key: 0, value: t(\"common.off\") }];\r\n groupData?.comsTypes?.includes(COMS.SIGFOX) && list.push({ key: 1, value: t(\"devices.setUp.trans_mode.priority.sigfox_only\") });\r\n groupData?.comsTypes?.includes(COMS.SIGFOX) && groupData?.comsTypes?.includes(COMS.WIFI) && list.push({ key: 2, value: t(\"devices.setUp.trans_mode.priority.sigfox_first\") });\r\n groupData?.comsTypes?.includes(COMS.WIFI) && list.push({ key: 3, value: t(\"devices.setUp.trans_mode.priority.wifi_only\") });\r\n groupData?.comsTypes?.includes(COMS.SIGFOX) && groupData?.comsTypes?.includes(COMS.WIFI) && list.push({ key: 4, value: t(\"devices.setUp.trans_mode.priority.wifi_first\") });\r\n return list;\r\n })()}\r\n />\r\n \r\n )}\r\n {parseInt(newVersion?.version_current) >= 210 &&\r\n config?.device_setting?.misc?.transmission_mode?.priority >= 3 /* solo se permite para los que tengan prioridad wiifi, ya que paras las demás opciones no se puede elegir*/ && (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n transmission_mode: {\r\n ...config?.device_setting?.misc?.transmission_mode,\r\n transmit_frequency: e.target.value,\r\n },\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.trans_mode.frequency.send_everyday\") },\r\n { key: 1, value: t(\"devices.setUp.trans_mode.frequency.send_4_30_days\") },\r\n { key: 2, value: t(\"devices.setUp.trans_mode.frequency.send_1_30_days\") },\r\n ]}\r\n />\r\n \r\n )}\r\n\r\n {parseInt(newVersion?.version_current) >= 210 && config?.device_setting?.misc?.transmission_mode?.priority >= 1 && (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n transmission_mode: {\r\n ...config?.device_setting?.misc?.transmission_mode,\r\n gps_enable: e.target.value,\r\n },\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.alerts.off\") },\r\n { key: 1, value: t(\"devices.setUp.alerts.on\") },\r\n ]}\r\n />\r\n \r\n )}\r\n \r\n \r\n {t(\"devices.setUp.misc.title\")}\r\n \r\n \r\n {parseInt(newVersion?.version_current) <= 201 ? (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n mains_filter: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[{ key: 0, value: t(\"devices.setUp.mains_filter0\") }]}\r\n />\r\n \r\n ) : (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n mains_filter: e?.target?.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.mains_filter0\") },\r\n { key: 1, value: \"50 Hz\" },\r\n { key: 2, value: \"60 Hz\" },\r\n ]}\r\n />\r\n \r\n )}\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n utc_time: e?.target?.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={UTC_TIMELIST}\r\n />\r\n \r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n volume: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n values={[1, 2, 3, 4, 5, 6, 7, 8]}\r\n />\r\n \r\n {false &&\r\n /** se oculta para la versión de lanzamiento */\r\n (parseInt(newVersion?.version_current) >= 203 || (newVersion.is_available && parseInt(newVersion?.version_current) >= 203 && toUpdate)) && (\r\n <>\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n alert_warning: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.alerts.off\") },\r\n { key: 1, value: t(\"devices.setUp.alerts.on\") },\r\n ]}\r\n />\r\n \r\n \r\n )}\r\n {false && ( // no está disponible para la versión del wifi\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n alert_move: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.alerts.off\") },\r\n { key: 1, value: t(\"devices.setUp.alerts.on\") },\r\n ]}\r\n />\r\n \r\n )}\r\n\r\n {parseInt(newVersion?.version_current) >= 210 && (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n alert_patient: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.alerts.off\") },\r\n { key: 1, value: t(\"devices.setUp.alerts.on\") },\r\n ]}\r\n />\r\n \r\n )}\r\n {parseInt(newVersion?.version_current) >= 209 && (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc,\r\n alert_warning: e?.target?.value,\r\n },\r\n },\r\n })\r\n }\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.alerts.off\") },\r\n { key: 1, value: t(\"devices.setUp.alerts.on\") },\r\n ]}\r\n />\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n setConnectionErrorMsg(\"\")} />\r\n\r\n \r\n {isError ? t(\"devices.setUp.dialog.title.error\") : t(\"devices.setUp.dialog.title\")}\r\n \r\n {isError ? t(\"devices.setUp.dialog.description.error\") : t(\"devices.setUp.dialog.descriptionWithSync\")}\r\n \r\n \r\n {\r\n setOpenAlert(false);\r\n !isError && resetForm();\r\n }}\r\n variant=\"outlined\"\r\n color=\"primary\"\r\n >\r\n {!isError ? t(\"devices.setUp.dialog.agree\") : t(\"devices.setUp.dialog.agree\")}\r\n \r\n \r\n \r\n\r\n \r\n {t(\"devices.setUp.dialog.notcompatibe.title\")}\r\n \r\n {t(\"devices.setUp.dialog.notcompatibe.description\")}\r\n \r\n \r\n {\r\n setOpenNotCompatible(false);\r\n }}\r\n variant=\"text\"\r\n color=\"primary\"\r\n >\r\n {t(\"devices.setUp.dialog.agree\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst EnergyModule = ({ label, setConfig, config, type, checkType, errorLabel, isAdult }) => {\r\n let values = isAdult\r\n ? [\r\n { key: 150, value: \"150 J\" },\r\n { key: 175, value: \"175 J\" },\r\n { key: 200, value: \"200 J\" },\r\n ]\r\n : [\r\n { key: 50, value: \"50 J\" },\r\n { key: 65, value: \"65 J\" },\r\n { key: 75, value: \"75 J\" },\r\n { key: 90, value: \"90 J\" },\r\n { key: 100, value: \"100 J\" },\r\n ];\r\n\r\n return (\r\n \r\n \r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n shocks: {\r\n ...config.device_setting.shocks,\r\n [type]: e.target.value,\r\n },\r\n },\r\n })\r\n }\r\n error={config.device_setting.shocks[type] < config.device_setting.shocks[checkType]}\r\n helperText={config.device_setting.shocks[type] < config.device_setting.shocks[checkType] && errorLabel}\r\n kv\r\n values={values}\r\n />\r\n \r\n );\r\n};\r\n\r\nexport default DeviceSetupForm;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n root: {\r\n width: \"100%\",\r\n },\r\n closeButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n formcontainer: {\r\n padding: 24,\r\n },\r\n formControl: {\r\n minWidth: 120,\r\n },\r\n selectEmpty: {\r\n marginTop: theme.spacing(2),\r\n },\r\n}));\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst UTC_TIMELIST = [\r\n { key: -12, value: \"UTC-12\" },\r\n { key: -11, value: \"UTC-11\" },\r\n { key: -10, value: \"UTC-10\" },\r\n { key: -9, value: \"UTC-9\" },\r\n { key: -8, value: \"UTC-8\" },\r\n { key: -7, value: \"UTC-7\" },\r\n { key: -6, value: \"UTC-6\" },\r\n { key: -5, value: \"UTC-5\" },\r\n { key: -4, value: \"UTC-4\" },\r\n { key: -3, value: \"UTC-3\" },\r\n { key: -2, value: \"UTC-2\" },\r\n { key: -1, value: \"UTC-1\" },\r\n { key: 0, value: \"UTC 0\" },\r\n { key: 1, value: \"UTC+1\" },\r\n { key: 2, value: \"UTC+2\" },\r\n { key: 3, value: \"UTC+3\" },\r\n { key: 4, value: \"UTC+4\" },\r\n { key: 5, value: \"UTC+5\" },\r\n { key: 6, value: \"UTC+6\" },\r\n { key: 7, value: \"UTC+7\" },\r\n { key: 8, value: \"UTC+8\" },\r\n { key: 9, value: \"UTC+9\" },\r\n { key: 10, value: \"UTC+10\" },\r\n { key: 11, value: \"UTC+11\" },\r\n { key: 12, value: \"UTC+12\" },\r\n { key: 13, value: \"UTC+13\" },\r\n { key: 14, value: \"UTC+14\" },\r\n];\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n makeStyles,\r\n Container,\r\n Grid,\r\n Dialog,\r\n AppBar,\r\n Toolbar,\r\n Slide,\r\n Button,\r\n Typography,\r\n IconButton,\r\n DialogActions,\r\n DialogContentText,\r\n DialogTitle,\r\n DialogContent,\r\n CircularProgress,\r\n} from \"@material-ui/core\";\r\nimport { Close } from \"@material-ui/icons\";\r\n\r\nimport DeviceForm from \"../AddDevice/DeviceForm\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\n\r\nconst EditDevice = ({ open, handleClose, data, userData }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n const [isFormValid, setisFormValid] = useState(false);\r\n const [formValues, setFormValues] = useState({});\r\n const [isError, setIsError] = useState(false);\r\n const [openAlert, setOpenAlert] = useState(false);\r\n const [isEdited, setIsEdited] = useState(false);\r\n const [isWattingForBK, setIsWattingForBK] = useState(false);\r\n const [programId, setProgramId] = useState(!!data ? data.programid : \"00000000-0000-0000-0000-000000000000\");\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n\r\n const loadFormValues = (values) => {\r\n !isEdited && !!formValues && setIsEdited(true);\r\n setFormValues(values);\r\n setProgramId(data.programid);\r\n };\r\n\r\n const resetForm = () => {\r\n handleClose(false);\r\n setOpenAlert(false);\r\n setIsError(false);\r\n setFormValues({});\r\n setIsEdited(false);\r\n };\r\n\r\n const handleSubmit = () => {\r\n if (isEdited) {\r\n setIsWattingForBK(true);\r\n if (isFormValid) {\r\n var deviceForm = {\r\n device: formValues,\r\n };\r\n if (!(typeof deviceForm.device.expirationDatePads === \"string\") && \"_f\" in deviceForm.device.expirationDatePads && deviceForm.device.expirationDatePads._f === \"MM/yyyy\") {\r\n var date_pads = new Date(formValues.expirationDatePads);\r\n date_pads.setMonth(date_pads.getMonth() + 1);\r\n deviceForm.device.expirationDatePads = date_pads.toJSON();\r\n }\r\n\r\n if (!(typeof deviceForm.device.expirationDateBatt === \"string\") && \"_f\" in deviceForm.device.expirationDateBatt && deviceForm.device.expirationDateBatt._f === \"MM/yyyy\") {\r\n var date_pads = new Date(formValues.expirationDateBatt);\r\n date_pads.setMonth(date_pads.getMonth() + 1);\r\n deviceForm.device.expirationDateBatt = date_pads.toJSON();\r\n }\r\n\r\n deviceForm.device.programid = data.programid;\r\n deviceForm.device.groupid = data.groupid;\r\n DATANETAPI.editDevice({ ...deviceForm, programId: data.programid, groupid: data.groupid }, data.id).then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n setIsWattingForBK(false);\r\n if (snap != undefined) {\r\n setOpenAlert(true);\r\n if (snap.status === 1) {\r\n setIsError(false);\r\n } else {\r\n setIsError(true);\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n setIsError(true);\r\n }\r\n } else {\r\n resetForm();\r\n }\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n handleClose(false);\r\n }}\r\n aria-label=\"close\"\r\n >\r\n \r\n \r\n \r\n {t(\"devices.edit.title\") + \" \" + data.name}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {isWattingForBK && }\r\n \r\n \r\n \r\n \r\n \r\n\r\n setConnectionErrorMsg(\"\")} />\r\n\r\n \r\n {!isError ? t(\"devices.setUp.dialog.title\") : t(\"devices.setUp.dialog.title.error\")}\r\n \r\n {!isError ? t(\"devices.setUp.dialog.description\") : t(\"devices.setUp.dialog.description.error\")}\r\n \r\n \r\n {\r\n setOpenAlert(false);\r\n !isError && resetForm();\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n {t(\"devices.new.dialog.agree\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default EditDevice;\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n root: {\r\n width: \"100%\",\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst deviceDataBack = {\r\n id: 6,\r\n name: \"R200 Ayuntamiento\",\r\n serial: \"2020/20202414\",\r\n manufacturer: \"Bexen Cardio\",\r\n disabled: false,\r\n conectivity: false,\r\n model: \"Reanibex 200\",\r\n status: { main: 0 },\r\n location: {\r\n name: \"Osatu S.coop\",\r\n latitude: 43.1854194,\r\n longitude: -2.5099712,\r\n },\r\n battery: {\r\n type: \"t_battery\",\r\n id: 114125,\r\n serial: \"2016/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 200\"],\r\n },\r\n pads: {\r\n type: \"t_pads\",\r\n id: 154127,\r\n serial: \"50623-0773\",\r\n reference: \"KSA 0501 B\",\r\n expiration_date: \"2021-02-05T11:00:07.865465\",\r\n total: 5,\r\n used: 3,\r\n compatibility: [\"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n};\r\n\r\nconst devicesModelsBack = [\"Reanibex 100\", \"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"];\r\n","import moment from \"moment\";\r\n\r\nconst batteryRemainingCalc = ({ hasComs = true, syncDate = moment(), software, battery, updateSource }) => {\r\n if (parseInt(software) >= 207) return battery?.remaining_percentage;\r\n // como los equipos antiguis envian por sigfox la fechad e expiración, hay que coger ese dato siempre que se envia por sifgox que es updateSource != 0\r\n\r\n const batteryDate = !!battery?.manufacture_date && updateSource == 1 ? moment(battery?.manufacture_date) : moment(battery?.expiration_date).subtract(5, \"years\");\r\n\r\n const batt = syncDate.diff(batteryDate, \"days\");\r\n const D22 = 3990;\r\n const TABLEE10 = 4000; //current mA\r\n const TABLEE11 = 8; //time in seconds\r\n const H34 = batt; // dias con la batería\r\n const D19 = 77; // 0.077754521; //discharge_standBy_new\r\n const I34 = Math.round(parseInt(((H34 / 365) * 12).toFixed(0)));\r\n\r\n const J34 = batt - I34;\r\n\r\n // datos variables\r\n const K34 = 4; // datos de partida de fábrica\r\n const L34 = I34; //cargas del condensador en test mensual\r\n const M34 = 4; // datos de partida de fábrica\r\n\r\n const params = {\r\n coms: {\r\n discharge_standby: (H34 * 24 * D19) / (D22 * 10),\r\n nTest_Monthly: (I34 * 4000) / (D22 * 10),\r\n nTest_Daily: (J34 * 650) / (D22 * 10),\r\n discharge_running: 0, // (K34 * 86 * 10) / (D22 * 6),\r\n discharge_run_HV: (L34 * TABLEE11 * TABLEE10) / (D22 * 36),\r\n discharge_open_cover: 0, //(M34 * 20 * 630) / (D22 * 600),\r\n },\r\n standalone: {\r\n discharge_standby: (H34 * 24 * D19) / (D22 * 10),\r\n nTest_Monthly: (I34 * 270) / (D22 * 10),\r\n nTest_Daily: (J34 * 83) / (D22 * 10),\r\n discharge_running: 0, //(K34 * 86 * 10) / (D22 * 6),\r\n discharge_run_HV: (L34 * TABLEE11 * TABLEE10) / (D22 * 36),\r\n discharge_open_cover: (M34 * 20 * 630) / (D22 * 600),\r\n },\r\n };\r\n //console.log(\"bateria\", batt, params.coms);\r\n\r\n const deviceBatteryOption = hasComs ? params.coms : params.standalone;\r\n const remainingBattery = 100 - Object.keys(deviceBatteryOption).reduce((acc, current) => acc + deviceBatteryOption[current], 0);\r\n\r\n return Math.min(100, Math.max(Math.min(Math.round(remainingBattery), battery?.remaining_percentage), 0));\r\n};\r\n\r\nexport default batteryRemainingCalc;\r\n","import moment from \"moment\";\r\n\r\nconst getDeviceStatus = (device, outOfSync, battery = 100, software) => {\r\n //console.log(device, outOfSync, battery);\r\n const { device_status, update } = device;\r\n /**\r\n * updateSource\r\n * 0 Fábrica\r\n * 1 USB_Sync\r\n * 2 SIGFOX\r\n * 3 WIFI\r\n */\r\n const UPDATE_STATE = {\r\n 1: \"errorStatus\",\r\n 2: \"sigfoxNewErrorStatus\",\r\n 3: \"wifiErrorStatus\",\r\n 4: \"sigfoxNewErrorStatus\",\r\n };\r\n\r\n const ErrorCodesByVersion = getErrorCodes(software);\r\n\r\n const low_Battery = 15;\r\n const replace_Battery = 10;\r\n\r\n /* puede darse el caso que el equipo no haya sido sincronizado o hace mucho que no se sincroniza\r\n , se muestra el error de sincronización pendiente , y se revisa si hay actualizaciones pendientes*/\r\n if (device_status?.updateSource == 0 || outOfSync) {\r\n return {\r\n statusResult: 1,\r\n errors: [\r\n /*{ ...CODES[0], id: 0 }*/\r\n ],\r\n };\r\n }\r\n\r\n /* sen analiza el estado de la tapa para comprobar si realmente está abierta o no*/\r\n const sourceErrorStatus = device_status?.[UPDATE_STATE[device_status?.updateSource]];\r\n\r\n let isCoverOpen = device_status?.alertStatus?.coverStatus?.isOpen;\r\n\r\n if (isCoverOpen) {\r\n // si se ha actualizado despues de la detección dea tapa abierta, se revisa los datos de la comunicación para ver si sigue la tapa abierta\r\n\r\n const coverAlertChange = moment(device_status?.alertStatus?.coverStatus?.lastChange);\r\n const lastStateUpdate = moment(device_status?.updateDate);\r\n\r\n isCoverOpen = coverAlertChange.isAfter(lastStateUpdate) ? isCoverOpen : sourceErrorStatus?.open_cover === 1;\r\n }\r\n\r\n let response = { statusResult: 0, errors: isCoverOpen ? [{ ...CODES[256], id: 256, date: moment(device_status?.alertStatus?.coverStatus?.lastChange)?.format(\"DD/MM/YYYY\") }] : [] };\r\n let pendingUpdates = false;\r\n\r\n if (!!update) {\r\n /* Como en el estado se muestrar los eventos de actualizaciones,\r\n esto solo se utiliza para ver si hay acguan actualización pendiente para poner el statusResult a 1 */\r\n pendingUpdates = Object.keys(update).some((US) => update[US] == 1);\r\n }\r\n\r\n /* se analiza el calculo de la batería para asegurarse de dar los avisos de bateria */\r\n if (battery <= replace_Battery) {\r\n response.errors.push({ ...CODES[33], id: 33 });\r\n } else if (battery <= low_Battery) {\r\n response.errors.push({ ...CODES[32], id: 32 });\r\n }\r\n try {\r\n if (device_status?.updateSource !== 0) {\r\n // se filtran los erores para que el 0 no aparezca como error, se trata del \"error\" sin errores\r\n let errors = Object.keys(sourceErrorStatus)\r\n .filter((k) => k.includes(\"error\") && sourceErrorStatus[k] != 0)\r\n .map((k) => ({ ...CODES[sourceErrorStatus[k]], id: sourceErrorStatus[k] }));\r\n\r\n let statusResult = 0;\r\n if (errors.length > 0) {\r\n statusResult = errors.every((e) => e.type === \"warning\") ? 1 : 2;\r\n } else {\r\n statusResult = response?.errors?.every((e) => e.type === \"warning\") && response?.errors.length > 0 ? 1 : pendingUpdates ? 1 : 0;\r\n }\r\n // se filtra para evitar codigos duplicados\r\n\r\n response = { statusResult: statusResult, errors: elimininarDuplicados(response?.errors?.concat([...new Set(errors.map((item) => item.id))].map((id) => errors.find((item) => item.id === id)))) };\r\n } else {\r\n response.errors = [];\r\n response.statusResult = response?.errors?.every((e) => e.type === \"warning\") ? 1 : 2;\r\n }\r\n\r\n return response;\r\n } catch (error) {\r\n return response;\r\n }\r\n};\r\n\r\nexport default getDeviceStatus;\r\n\r\nconst elimininarDuplicados = (data) => {\r\n const uniqueMap = new Map();\r\n Object.values(data).forEach((obj) => {\r\n uniqueMap.set(obj.id, obj);\r\n });\r\n return Array.from(uniqueMap.values());\r\n};\r\n\r\nconst getErrorCodes = (software) => {\r\n if (software <= 209) return CODES;\r\n // para modificar los codigos de error originales se hacen las modificaciones para la version 210 o superior\r\n let newCodes = { ...CODES };\r\n newCodes[63].type = \"warning\";\r\n return newCodes;\r\n};\r\n\r\nconst CODES = {\r\n \"-1\": { errorCode: \"eERR_Factory_data\", type: \"warning\" }, // este error lo da el RDN no el equipo\r\n 0: { errorCode: \"eERR_NONE\", type: \"warning\" },\r\n 1: { errorCode: \"eERR_OPTION_DISABLED\", type: \"warning\" },\r\n 2: { errorCode: \"eERR_NV_SZ\", type: \"error\" },\r\n 4: { errorCode: \"eERR_NFC_INFO\", type: \"error\" },\r\n 5: { errorCode: \"eERR_ZP_DATA\", type: \"error\" },\r\n 6: { errorCode: \"eERR_AUDIO_MAX\", type: \"error\" },\r\n 10: { errorCode: \"eERR_DEF_CHARGING_FAST\", type: \"error\" },\r\n 11: { errorCode: \"eERR_DEF_CHARGING_SLOW\", type: \"error\" },\r\n 12: { errorCode: \"eERR_DEF_DISCHARGING_H\", type: \"error\" },\r\n 13: { errorCode: \"eERR_DEF_DISCHARGING_R\", type: \"error\" },\r\n 14: { errorCode: \"eERR_DEF_SHOCK\", type: \"error\" },\r\n 15: { errorCode: \"eERR_DEF_CURRENT_SENSE\", type: \"error\" },\r\n 20: { errorCode: \"eERR_ELECTRODE_EXPIRED\", type: \"warning\" },\r\n 21: { errorCode: \"eERR_ELECTRODE_USED\", type: \"warning\" },\r\n 22: { errorCode: \"eERR_ELECTRODE_NOT_CONNECTED\", type: \"warning\" },\r\n 23: { errorCode: \"eERR_ELECTRODE_WRONG\", type: \"warning\" }, //v210\r\n 30: { errorCode: \"eERR_BATTERY_EXPIRED\", type: \"warning\" },\r\n 31: { errorCode: \"eERR_BATTERY_UNKNOWN\", type: \"warning\" },\r\n 32: { errorCode: \"eERR_BATTERY_LOW\", type: \"warning\" },\r\n 33: { errorCode: \"eERR_BATTERY_REPLACE\", type: \"warning\" },\r\n 34: { errorCode: \"eERR_BATTERY_TEMP_OUT_RANGE\", type: \"warning\" },\r\n 35: { errorCode: \"eERR_BATTERY_TEMP_OUT_RANGE_OFF\", type: \"warning\" },\r\n 36: { errorCode: \"eRR_RTC\", type: \"warning\" }, //v210\r\n 40: { errorCode: \"eERR_SMON_DCMAIN_TOO_HIGH\", type: \"error\" },\r\n 41: { errorCode: \"eERR_SMON_DCMAIN_TOO_LOW\", type: \"error\" },\r\n 42: { errorCode: \"eERR_SMON_18V_TOO_HIGH\", type: \"error\" },\r\n 43: { errorCode: \"eERR_SMON_18V_TOO_LOW\", type: \"error\" },\r\n 50: { errorCode: \"eERR_ADS_DEVICE_ID\", type: \"error\" },\r\n 51: { errorCode: \"eERR_ADS_DEVICE_ACCESS\", type: \"error\" },\r\n 52: { errorCode: \"eERR_ADS_CALIBRATION\", type: \"error\" },\r\n 53: { errorCode: \"eERR_ADS_PAT_CONNECTED\", type: \"warning\" },\r\n 60: { errorCode: \"eERR_BOOT_PROCESSOR\", type: \"error\" },\r\n 61: { errorCode: \"eERR_BOOT_NO_UPDATE\", type: \"warning\" }, //v210 Eliminado\r\n 62: { errorCode: \"eERR_BOOT_PROCESSOR_UPDATE\", type: \"warning\" },\r\n 63: { errorCode: \"eERR_BOOT_SPI_MEMORY\", type: \"error\" }, //v210 se modifica a warning\r\n 70: { errorCode: \"eERR_AUDIO_PLAYER\", type: \"warning\" },\r\n 71: { errorCode: \"eERR_AUDIO_QUEUE_FULL\", type: \"warning\" },\r\n 80: { errorCode: \"eERR_COMM_UART_SELECT\", type: \"warning\" },\r\n 81: { errorCode: \"eERR_COMM_UART_BAUD_RATE\", type: \"warning\" },\r\n 82: { errorCode: \"eERR_COMM_UART_RX_ERROR\", type: \"warning\" },\r\n //90-99 · se eliminarn por no uso\r\n 100: { errorCode: \"eERR_COMM_WIFI_INIT\", type: \"warning\" },\r\n 101: { errorCode: \"eERR_COMM_WIFI_CHECK_STATUS\", type: \"warning\" },\r\n 102: { errorCode: \"eERR_COMM_WIFI_INIT_SYNC\", type: \"warning\" },\r\n 103: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_DATA\", type: \"warning\" },\r\n 104: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_BAUD\", type: \"warning\" },\r\n 105: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_FLOW\", type: \"warning\" },\r\n 106: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_PARITY\", type: \"warning\" },\r\n 107: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_STOP\", type: \"warning\" },\r\n 108: { errorCode: \"eERR_COMM_WIFI_INIT_GET_MAC_ADDRESS\", type: \"warning\" },\r\n 109: { errorCode: \"eERR_COMM_WIFI_INIT_GET_IP_ADDRESS\", type: \"warning\" },\r\n 110: { errorCode: \"eERR_COMM_WIFI_INIT_OPEN\", type: \"warning\" },\r\n 111: { errorCode: \"eERR_COMM_WIFI_CERT_CLIENT_ROUTER\", type: \"warning\" },\r\n 112: { errorCode: \"eERR_COMM_WIFI_CERT_CLIENT_ROUTER_CA\", type: \"warning\" },\r\n 113: { errorCode: \"eERR_COMM_WIFI_CERT_CLIENT_ROUTER_KEY\", type: \"warning\" },\r\n 114: { errorCode: \"eERR_COMM_WIFI_CERT_EAP_CONFIG\", type: \"warning\" },\r\n 115: { errorCode: \"eERR_COMM_WIFI_CERT_SERVER_TLS_CA\", type: \"warning\" },\r\n 116: { errorCode: \"eERR_COMM_WIFI_CERT_SERVER_TLS_CONFIG\", type: \"warning\" },\r\n 117: { errorCode: \"eERR_COMM_WIFI_CERT_LIST\", type: \"warning\" },\r\n 118: { errorCode: \"eERR_COMM_WIFI_CERT_RESET_STORE\", type: \"warning\" },\r\n //119 · se eliminarn por no uso\r\n 120: { errorCode: \"eERR_COMM_WIFI_OPEN_TCP\", type: \"warning\" },\r\n 121: { errorCode: \"eERR_COMM_WIFI_CLOSE_TCP\", type: \"warning\" },\r\n 122: { errorCode: \"eERR_COMM_WIFI_OPEN_UDP\", type: \"warning\" },\r\n 123: { errorCode: \"eERR_COMM_WIFI_CLOSE_UDP\", type: \"warning\" },\r\n 124: { errorCode: \"eERR_COMM_WIFI_OPEN_UDP_SERVER\", type: \"warning\" },\r\n 125: { errorCode: \"eERR_COMM_WIFI_CLOSE_UDP_SERVER\", type: \"warning\" },\r\n 126: { errorCode: \"eERR_COMM_WIFI_OPEN_TLS\", type: \"warning\" },\r\n 127: { errorCode: \"eERR_COMM_WIFI_CLOSE_TLS\", type: \"warning\" }, //v210\r\n 129: { errorCode: \"eERR_COMM_WIFI_SERVER_ALIVE\", type: \"warning\" }, //v210\r\n 130: { errorCode: \"eERR_COMM_WIFI_SEND_FRAME_TEST\", type: \"warning\" }, //v210\r\n 131: { errorCode: \"eERR_COMM_WIFI_SEND_FRAME_ALERT\", type: \"warning\" }, //v210\r\n 132: { errorCode: \"eERR_COMM_WIFI_SEND_FRAME_GPS\", type: \"warning\" }, //v210\r\n 133: { errorCode: \"eERR_COMM_WIFI_SEND_EPISODE\", type: \"warning\" }, //v210\r\n 134: { errorCode: \"eERR_COMM_WIFI_SEND_TEST\", type: \"warning\" }, //v210\r\n 135: { errorCode: \"eERR_COMM_WIFI_SEND_DATA\", type: \"warning\" }, //v210\r\n 136: { errorCode: \"eERR_COMM_WIFI_RECEIVE_UPGRADE_FILE\", type: \"warning\" }, //v210\r\n 137: { errorCode: \"eERR_COMM_WIFI_RECEIVE_CONFIG_FILE\", type: \"warning\" }, //v210\r\n 139: { errorCode: \"eRR_COMM_WIFI_SERVER_RPS_ER\", type: \"warning\" }, //v210\r\n 140: { errorCode: \"eERR_COMM_SIGFOX\", type: \"warning\" },\r\n 141: { errorCode: \"eERR_COMM_SIGFOX_STATUS\", type: \"warning\" },\r\n 142: { errorCode: \"eERR_COMM_SIGFOX_MAX_POWER\", type: \"warning\" },\r\n 143: { errorCode: \"eERR_COMM_SIGFOX_RX\", type: \"warning\" },\r\n 144: { errorCode: \"eERR_COMM_SIGFOX_TEST_TX_FREQ\", type: \"warning\" },\r\n 145: { errorCode: \"eERR_COMM_SIGFOX_TEST_RX_FREQ\", type: \"warning\" },\r\n 146: { errorCode: \"eERR_COMM_SIGFOX_CW_TEST_START\", type: \"warning\" },\r\n 147: { errorCode: \"eERR_COMM_SIGFOX_CW_TEST_STOP\", type: \"warning\" },\r\n 148: { errorCode: \"eERR_COMM_SIGFOX_RX_GFSK_TEST\", type: \"warning\" },\r\n 150: { errorCode: \"eERR_COMM_GPS\", type: \"warning\" },\r\n 160: { errorCode: \"eERR_COMM_ACC\", type: \"warning\" },\r\n 161: { errorCode: \"eERR_COMM_ACC_PRESENCE\", type: \"warning\" },\r\n 162: { errorCode: \"eERR_COMM_ACC_CONFIGURATION\", type: \"warning\" },\r\n 163: { errorCode: \"eERR_COMM_ACC_INTERRUPT\", type: \"warning\" },\r\n //164-175 · Eliminados por no uso v210\r\n 180: { errorCode: \"eERR_KEYS\", type: \"error\" },\r\n 181: { errorCode: \"eERR_LEDS\", type: \"error\" },\r\n 189: { errorCode: \"eRR_CRYPTO_AUTH\", type: \"warning\" }, //V210\r\n 190: { errorCode: \"eRR_EXPIRED_CERT_TLS\", type: \"warning\" },\r\n 191: { errorCode: \"eRR_EXPIRED_SOON_CERT_TLS\", type: \"warning\" },\r\n 192: { errorCode: \"eRR_EXPIRED_WPA_EAP\", type: \"warning\" },\r\n 193: { errorCode: \"eRR_EXPIRED_SOON_WPA_EAP\", type: \"warning\" },\r\n\r\n /* detección de tapa abierta\r\n * Para evitar hacer modificaciones, se añade como un warning en la posición 256, que no puede ser ocupada por errores del equipo (MAX 255)\r\n */\r\n 256: { errorCode: \"eERR_COVER_OPEN\", type: \"warning\" },\r\n //300: { errorCode: \"eERR_BAD_TEST_FORMAT\", type: \"warning\" }, // error cuando se validan los test durante los procesos de sincronización\r\n};\r\n\r\nconst CODES209 = {\r\n 0: { errorCode: \"eERR_NONE\", type: \"warning\" },\r\n 1: { errorCode: \"eERR_OPTION_DISABLED\", type: \"warning\" },\r\n 2: { errorCode: \"eERR_NV_SZ\", type: \"error\" },\r\n 4: { errorCode: \"eERR_NFC_INFO\", type: \"error\" },\r\n 5: { errorCode: \"eERR_ZP_DATA\", type: \"error\" },\r\n 6: { errorCode: \"eERR_AUDIO_MAX\", type: \"error\" },\r\n 10: { errorCode: \"eERR_DEF_CHARGING_FAST\", type: \"error\" },\r\n 11: { errorCode: \"eERR_DEF_CHARGING_SLOW\", type: \"error\" },\r\n 12: { errorCode: \"eERR_DEF_DISCHARGING_H\", type: \"error\" },\r\n 13: { errorCode: \"eERR_DEF_DISCHARGING_R\", type: \"error\" },\r\n 14: { errorCode: \"eERR_DEF_SHOCK\", type: \"error\" },\r\n 15: { errorCode: \"eERR_DEF_CURRENT_SENSE\", type: \"error\" },\r\n 20: { errorCode: \"eERR_ELECTRODE_EXPIRED\", type: \"warning\" },\r\n 21: { errorCode: \"eERR_ELECTRODE_USED\", type: \"warning\" },\r\n 22: { errorCode: \"eERR_ELECTRODE_NOT_CONNECTED\", type: \"warning\" },\r\n //23\r\n 30: { errorCode: \"eERR_BATTERY_EXPIRED\", type: \"warning\" },\r\n 31: { errorCode: \"eERR_BATTERY_UNKNOWN\", type: \"warning\" },\r\n 32: { errorCode: \"eERR_BATTERY_LOW\", type: \"warning\" },\r\n 33: { errorCode: \"eERR_BATTERY_REPLACE\", type: \"warning\" },\r\n 34: { errorCode: \"eERR_BATTERY_TEMP_OUT_RANGE\", type: \"warning\" },\r\n 35: { errorCode: \"eERR_BATTERY_TEMP_OUT_RANGE_OFF\", type: \"warning\" },\r\n //36\r\n 40: { errorCode: \"eERR_SMON_DCMAIN_TOO_HIGH\", type: \"error\" },\r\n 41: { errorCode: \"eERR_SMON_DCMAIN_TOO_LOW\", type: \"error\" },\r\n 42: { errorCode: \"eERR_SMON_18V_TOO_HIGH\", type: \"error\" },\r\n 43: { errorCode: \"eERR_SMON_18V_TOO_LOW\", type: \"error\" },\r\n 50: { errorCode: \"eERR_ADS_DEVICE_ID\", type: \"error\" },\r\n 51: { errorCode: \"eERR_ADS_DEVICE_ACCESS\", type: \"error\" },\r\n 52: { errorCode: \"eERR_ADS_CALIBRATION\", type: \"error\" },\r\n 53: { errorCode: \"eERR_ADS_PAT_CONNECTED\", type: \"warning\" },\r\n 60: { errorCode: \"eERR_BOOT_PROCESSOR\", type: \"error\" },\r\n 61: { errorCode: \"eERR_BOOT_NO_UPDATE\", type: \"warning\" },\r\n 62: { errorCode: \"eERR_BOOT_PROCESSOR_UPDATE\", type: \"warning\" },\r\n 63: { errorCode: \"eERR_BOOT_SPI_MEMORY\", type: \"error\" }, //\r\n 70: { errorCode: \"eERR_AUDIO_PLAYER\", type: \"warning\" },\r\n 71: { errorCode: \"eERR_AUDIO_QUEUE_FULL\", type: \"warning\" },\r\n 80: { errorCode: \"eERR_COMM_UART_SELECT\", type: \"warning\" },\r\n 81: { errorCode: \"eERR_COMM_UART_BAUD_RATE\", type: \"warning\" },\r\n 82: { errorCode: \"eERR_COMM_UART_RX_ERROR\", type: \"warning\" },\r\n 90: { errorCode: \"eERR_COMM_WIFI_INIT\", type: \"warning\" }, //\r\n 91: { errorCode: \"eERR_COMM_WIFI_CHECK_STATUS\", type: \"warning\" }, //\r\n 92: { errorCode: \"eERR_COMM_WIFI_INIT_FACTORY_RESET_MAC\", type: \"warning\" }, //\r\n 93: { errorCode: \"eERR_COMM_WIFI_INIT_SYNC\", type: \"warning\" }, //\r\n 94: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_HEADER\", type: \"warning\" }, //\r\n 95: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_DATA\", type: \"warning\" }, //\r\n 96: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_BAUD\", type: \"warning\" }, //\r\n 97: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_FLOW\", type: \"warning\" }, //\r\n 98: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_PARITY\", type: \"warning\" }, //\r\n 99: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_STOP\", type: \"warning\" }, //\r\n 100: { errorCode: \"eERR_COMM_WIFI_INIT_GET_MAC_ADDRESS\", type: \"warning\" },\r\n 101: { errorCode: \"eERR_COMM_WIFI_INIT_CHECK_STATUS\", type: \"warning\" },\r\n 102: { errorCode: \"eERR_COMM_WIFI_INIT_GET_VERSION\", type: \"warning\" },\r\n 103: { errorCode: \"eERR_COMM_WIFI_INIT_NETWORK_UP\", type: \"warning\" },\r\n 104: { errorCode: \"eERR_COMM_WIFI_INIT_NETWORK_DOWN\", type: \"warning\" },\r\n 105: { errorCode: \"eERR_COMM_WIFI_INIT_SAVE_VARIABLES\", type: \"warning\" },\r\n 106: { errorCode: \"eERR_COMM_WIFI_INIT_GET_IP_ADDRESS\", type: \"warning\" },\r\n 107: { errorCode: \"eERR_COMM_WIFI_INIT_CACERT_FILE\", type: \"warning\" },\r\n 108: { errorCode: \"eERR_COMM_WIFI_INIT_CACERT_OPEN\", type: \"warning\" },\r\n 109: { errorCode: \"eERR_COMM_WIFI_INIT_CACERT_LENGTH\", type: \"warning\" },\r\n 110: { errorCode: \"eERR_COMM_WIFI_INIT_CACERT_READ\", type: \"warning\" },\r\n 111: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_TLS_CACERT\", type: \"warning\" },\r\n 112: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_TLS_CACERT_OPEN\", type: \"warning\" },\r\n 113: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_TLS_CACERT_CLOSE\", type: \"warning\" },\r\n 114: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_TLS_CACERT_CREATE\", type: \"warning\" },\r\n 115: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_TLS_CACERT_DELETE\", type: \"warning\" },\r\n 116: { errorCode: \"eERR_COMM_WIFI_TX_RX\", type: \"warning\" },\r\n 117: { errorCode: \"eERR_COMM_WIFI_TX_RX_GET_SERVER_ALIVE\", type: \"warning\" },\r\n 118: { errorCode: \"eERR_COMM_WIFI_TX_RX_POST_INFO_DATA\", type: \"warning\" },\r\n 119: { errorCode: \"eERR_COMM_WIFI_TX_RX_GET_UPGRADE_FILE\", type: \"warning\" }, //\r\n 120: { errorCode: \"eERR_COMM_WIFI_TX_RX_UPGRADE_FILE_OPEN\", type: \"warning\" },\r\n 121: { errorCode: \"eERR_COMM_WIFI_TX_RX_UPGRADE_FILE_WRITE\", type: \"warning\" },\r\n 122: { errorCode: \"eERR_COMM_WIFI_TX_RX_UPGRADE_FILE_FLUSH\", type: \"warning\" },\r\n 123: { errorCode: \"eERR_COMM_WIFI_TX_RX_SEND_TCP_DATA\", type: \"warning\" },\r\n 124: { errorCode: \"eERR_COMM_WIFI_TX_RX_SEND_UDP_DATA\", type: \"warning\" },\r\n 125: { errorCode: \"eERR_COMM_WIFI_TX_RX_SEND_TLS_DATA\", type: \"warning\" },\r\n 126: { errorCode: \"eERR_COMM_WIFI_TX_RX_GET_CONF_FILE\", type: \"warning\" },\r\n //27\r\n //29-37\r\n //39\r\n 140: { errorCode: \"eERR_COMM_SIGFOX\", type: \"warning\" },\r\n 141: { errorCode: \"eERR_COMM_SIGFOX_STATUS\", type: \"warning\" },\r\n 142: { errorCode: \"eERR_COMM_SIGFOX_MAX_POWER\", type: \"warning\" },\r\n 143: { errorCode: \"eERR_COMM_SIGFOX_RX\", type: \"warning\" },\r\n 144: { errorCode: \"eERR_COMM_SIGFOX_TEST_TX_FREQ\", type: \"warning\" },\r\n 145: { errorCode: \"eERR_COMM_SIGFOX_TEST_RX_FREQ\", type: \"warning\" },\r\n 146: { errorCode: \"eERR_COMM_SIGFOX_CW_TEST_START\", type: \"warning\" },\r\n 147: { errorCode: \"eERR_COMM_SIGFOX_CW_TEST_STOP\", type: \"warning\" },\r\n 148: { errorCode: \"eERR_COMM_SIGFOX_RX_GFSK_TEST\", type: \"warning\" },\r\n 150: { errorCode: \"eERR_COMM_GPS\", type: \"warning\" },\r\n 160: { errorCode: \"eERR_COMM_ACCELEROMETER\", type: \"warning\" },\r\n 161: { errorCode: \"eERR_COMM_ACC_WRITE_CTRL_REG1\", type: \"warning\" },\r\n 162: { errorCode: \"eERR_COMM_ACC_WRITE_CTRL_REG2\", type: \"warning\" },\r\n 163: { errorCode: \"eERR_COMM_ACC_WRITE_CTRL_REG4\", type: \"warning\" },\r\n 164: { errorCode: \"eERR_COMM_ACC_WRITE_CTRL_REG5\", type: \"warning\" }, //\r\n 165: { errorCode: \"eERR_COMM_ACC_WRITE_CTRL_REG6\", type: \"warning\" }, //\r\n 166: { errorCode: \"eERR_COMM_ACC_WRITE_INT2_CFG\", type: \"warning\" }, //\r\n 167: { errorCode: \"eERR_COMM_ACC_WRITE_INT2_THS\", type: \"warning\" }, //\r\n 168: { errorCode: \"eERR_COMM_ACC_WRITE_INT2_DURATION\", type: \"warning\" }, //\r\n 169: { errorCode: \"eERR_COMM_ACC_WRITE_INT1_CFG\", type: \"warning\" }, //\r\n 170: { errorCode: \"eERR_COMM_ACC_WRITE_INT1_THS\", type: \"warning\" }, //\r\n 171: { errorCode: \"eERR_COMM_ACC_WRITE_INT1_DURATION\", type: \"warning\" }, //\r\n 172: { errorCode: \"eERR_COMM_ACC_READ\", type: \"warning\" }, //\r\n 173: { errorCode: \"eERR_COMM_ACC_READ_PRESENCE\", type: \"warning\" }, //\r\n 174: { errorCode: \"eERR_COMM_ACC_READ_XYZ_DATA\", type: \"warning\" }, //\r\n 175: { errorCode: \"eERR_COMM_ACC_INT2\", type: \"warning\" }, //\r\n 180: { errorCode: \"eERR_KEYS\", type: \"error\" },\r\n 181: { errorCode: \"eERR_LEDS\", type: \"error\" },\r\n //89\r\n 190: { errorCode: \"eRR_EXPIRED_CERT_TLS\", type: \"warning\" },\r\n 191: { errorCode: \"eRR_EXPIRED_WPA_EAP\", type: \"warning\" },\r\n 192: { errorCode: \"eRR_NO_LOAD_CERT_TLS\", type: \"warning\" },\r\n 193: { errorCode: \"eRR_NO_LOAD_WPA_EAP\", type: \"warning\" },\r\n};\r\n\r\nconst CODES210 = {\r\n 0: { errorCode: \"eERR_NONE\", type: \"warning\" },\r\n 1: { errorCode: \"eERR_OPTION_DISABLED\", type: \"warning\" },\r\n 2: { errorCode: \"eERR_NV_SZ\", type: \"error\" },\r\n 4: { errorCode: \"eERR_NFC_INFO\", type: \"error\" },\r\n 5: { errorCode: \"eERR_ZP_DATA\", type: \"error\" },\r\n 6: { errorCode: \"eERR_AUDIO_MAX\", type: \"error\" },\r\n 10: { errorCode: \"eERR_DEF_CHARGING_FAST\", type: \"error\" },\r\n 11: { errorCode: \"eERR_DEF_CHARGING_SLOW\", type: \"error\" },\r\n 12: { errorCode: \"eERR_DEF_DISCHARGING_H\", type: \"error\" },\r\n 13: { errorCode: \"eERR_DEF_DISCHARGING_R\", type: \"error\" },\r\n 14: { errorCode: \"eERR_DEF_SHOCK\", type: \"error\" },\r\n 15: { errorCode: \"eERR_DEF_CURRENT_SENSE\", type: \"error\" },\r\n 20: { errorCode: \"eERR_ELECTRODE_EXPIRED\", type: \"warning\" },\r\n 21: { errorCode: \"eERR_ELECTRODE_USED\", type: \"warning\" },\r\n 22: { errorCode: \"eERR_ELECTRODE_NOT_CONNECTED\", type: \"warning\" },\r\n 23: { errorCode: \"eERR_ELECTRODE_WRONG\", type: \"warning\" },\r\n 30: { errorCode: \"eERR_BATTERY_EXPIRED\", type: \"warning\" },\r\n 31: { errorCode: \"eERR_BATTERY_UNKNOWN\", type: \"warning\" },\r\n 32: { errorCode: \"eERR_BATTERY_LOW\", type: \"warning\" },\r\n 33: { errorCode: \"eERR_BATTERY_REPLACE\", type: \"warning\" },\r\n 34: { errorCode: \"eERR_BATTERY_TEMP_OUT_RANGE\", type: \"warning\" },\r\n 35: { errorCode: \"eERR_BATTERY_TEMP_OUT_RANGE_OFF\", type: \"warning\" },\r\n 36: { errorCode: \"eRR_RTC\", type: \"warning\" },\r\n 40: { errorCode: \"eERR_SMON_DCMAIN_TOO_HIGH\", type: \"error\" },\r\n 41: { errorCode: \"eERR_SMON_DCMAIN_TOO_LOW\", type: \"error\" },\r\n 42: { errorCode: \"eERR_SMON_18V_TOO_HIGH\", type: \"error\" },\r\n 43: { errorCode: \"eERR_SMON_18V_TOO_LOW\", type: \"error\" },\r\n 50: { errorCode: \"eERR_ADS_DEVICE_ID\", type: \"error\" },\r\n 51: { errorCode: \"eERR_ADS_DEVICE_ACCESS\", type: \"error\" },\r\n 52: { errorCode: \"eERR_ADS_CALIBRATION\", type: \"error\" },\r\n 53: { errorCode: \"eERR_ADS_PAT_CONNECTED\", type: \"warning\" },\r\n 60: { errorCode: \"eERR_BOOT_PROCESSOR\", type: \"warning\" },\r\n 61: { errorCode: \"eERR_BOOT_PROCESSOR_UPDATE\", type: \"warning\" },\r\n 62: { errorCode: \"eERR_BOOT_SPI_MEMORY\", type: \"warning\" },\r\n 70: { errorCode: \"eERR_AUDIO_PLAYER\", type: \"warning\" },\r\n 71: { errorCode: \"eERR_AUDIO_QUEUE_FULL\", type: \"warning\" },\r\n 80: { errorCode: \"eERR_COMM_UART_SELECT\", type: \"warning\" },\r\n 81: { errorCode: \"eERR_COMM_UART_BAUD_RATE\", type: \"warning\" },\r\n 82: { errorCode: \"eERR_COMM_UART_RX_ERROR\", type: \"warning\" },\r\n 100: { errorCode: \"eERR_COMM_WIFI_INIT\", type: \"warning\" },\r\n 101: { errorCode: \"eERR_COMM_WIFI_CHECK_STATUS\", type: \"warning\" },\r\n 102: { errorCode: \"eERR_COMM_WIFI_INIT_SYNC\", type: \"warning\" },\r\n 103: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_DATA\", type: \"warning\" },\r\n 104: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_BAUD\", type: \"warning\" },\r\n 105: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_FLOW\", type: \"warning\" },\r\n 106: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_PARITY\", type: \"warning\" },\r\n 107: { errorCode: \"eERR_COMM_WIFI_INIT_CONFIG_UART_STOP\", type: \"warning\" },\r\n 108: { errorCode: \"eERR_COMM_WIFI_INIT_GET_MAC_ADDRESS\", type: \"warning\" },\r\n 109: { errorCode: \"eERR_COMM_WIFI_INIT_GET_IP_ADDRESS\", type: \"warning\" },\r\n 110: { errorCode: \"eERR_COMM_WIFI_INIT_OPEN\", type: \"warning\" },\r\n 111: { errorCode: \"eERR_COMM_WIFI_CERT_CLIENT_ROUTER\", type: \"warning\" },\r\n 112: { errorCode: \"eERR_COMM_WIFI_CERT_CLIENT_ROUTER_CA\", type: \"warning\" },\r\n 113: { errorCode: \"eERR_COMM_WIFI_CERT_CLIENT_ROUTER_KEY\", type: \"warning\" },\r\n 114: { errorCode: \"eERR_COMM_WIFI_CERT_EAP_CONFIG\", type: \"warning\" },\r\n 115: { errorCode: \"eERR_COMM_WIFI_CERT_SERVER_TLS_CA\", type: \"warning\" },\r\n 116: { errorCode: \"eERR_COMM_WIFI_CERT_SERVER_TLS_CONFIG\", type: \"warning\" },\r\n 117: { errorCode: \"eERR_COMM_WIFI_CERT_LIST\", type: \"warning\" },\r\n 118: { errorCode: \"eERR_COMM_WIFI_CERT_RESET_STORE\", type: \"warning\" },\r\n 120: { errorCode: \"eERR_COMM_WIFI_OPEN_TCP\", type: \"warning\" },\r\n 121: { errorCode: \"eERR_COMM_WIFI_CLOSE_TCP\", type: \"warning\" },\r\n 122: { errorCode: \"eERR_COMM_WIFI_OPEN_UDP\", type: \"warning\" },\r\n 123: { errorCode: \"eERR_COMM_WIFI_CLOSE_UDP\", type: \"warning\" },\r\n 124: { errorCode: \"eERR_COMM_WIFI_OPEN_UDP_SERVER\", type: \"warning\" },\r\n 125: { errorCode: \"eERR_COMM_WIFI_CLOSE_UDP_SERVER\", type: \"warning\" },\r\n 126: { errorCode: \"eERR_COMM_WIFI_OPEN_TLS\", type: \"warning\" },\r\n 127: { errorCode: \"eERR_COMM_WIFI_CLOSE_TLS\", type: \"warning\" },\r\n 129: { errorCode: \"eERR_COMM_WIFI_SERVER_ALIVE\", type: \"warning\" },\r\n 130: { errorCode: \"eERR_COMM_WIFI_SEND_FRAME_TEST\", type: \"warning\" },\r\n 131: { errorCode: \"eERR_COMM_WIFI_SEND_FRAME_ALERT\", type: \"warning\" },\r\n 132: { errorCode: \"eERR_COMM_WIFI_SEND_FRAME_GPS\", type: \"warning\" },\r\n 133: { errorCode: \"eERR_COMM_WIFI_SEND_EPISODE\", type: \"warning\" },\r\n 134: { errorCode: \"eERR_COMM_WIFI_SEND_TEST\", type: \"warning\" },\r\n 135: { errorCode: \"eERR_COMM_WIFI_SEND_DATA\", type: \"warning\" },\r\n 136: { errorCode: \"eERR_COMM_WIFI_RECEIVE_UPGRADE_FILE\", type: \"warning\" },\r\n 137: { errorCode: \"eERR_COMM_WIFI_RECEIVE_CONFIG_FILE\", type: \"warning\" },\r\n 139: { errorCode: \"eRR_COMM_WIFI_SERVER_RPS_ER\", type: \"warning\" },\r\n 140: { errorCode: \"eERR_COMM_SIGFOX\", type: \"warning\" },\r\n 141: { errorCode: \"eERR_COMM_SIGFOX_STATUS\", type: \"warning\" },\r\n 142: { errorCode: \"eERR_COMM_SIGFOX_MAX_POWER\", type: \"warning\" },\r\n 143: { errorCode: \"eERR_COMM_SIGFOX_RX\", type: \"warning\" },\r\n 144: { errorCode: \"eERR_COMM_SIGFOX_TEST_TX_FREQ\", type: \"warning\" },\r\n 145: { errorCode: \"eERR_COMM_SIGFOX_TEST_RX_FREQ\", type: \"warning\" },\r\n 146: { errorCode: \"eERR_COMM_SIGFOX_CW_TEST_START\", type: \"warning\" },\r\n 147: { errorCode: \"eERR_COMM_SIGFOX_CW_TEST_STOP\", type: \"warning\" },\r\n 148: { errorCode: \"eERR_COMM_SIGFOX_RX_GFSK_TEST\", type: \"warning\" },\r\n 150: { errorCode: \"eERR_COMM_GPS\", type: \"warning\" },\r\n 160: { errorCode: \"eERR_COMM_ACC\", type: \"warning\" },\r\n 161: { errorCode: \"eERR_COMM_ACC_PRESENCE\", type: \"warning\" },\r\n 162: { errorCode: \"eERR_COMM_ACC_CONFIGURATION\", type: \"warning\" },\r\n 163: { errorCode: \"eERR_COMM_ACC_INTERRUPT\", type: \"warning\" },\r\n 180: { errorCode: \"eERR_KEYS\", type: \"error\" },\r\n 181: { errorCode: \"eERR_LEDS\", type: \"error\" },\r\n 189: { errorCode: \"eRR_CRYPTO_AUTH\", type: \"warning\" },\r\n 190: { errorCode: \"eRR_EXPIRED_CERT_TLS\", type: \"warning\" },\r\n 191: { errorCode: \"eRR_EXPIRED_SOON_CERT_TLS\", type: \"warning\" },\r\n 192: { errorCode: \"eRR_EXPIRED_WPA_EAP\", type: \"warning\" },\r\n 193: { errorCode: \"eRR_EXPIRED_SOON_WPA_EAP\", type: \"warning\" },\r\n};\r\n","import { Button, Chip, Grid, IconButton, Paper, Tooltip, Typography, makeStyles } from \"@material-ui/core\";\r\nimport { green, orange, red } from \"@material-ui/core/colors\";\r\nimport { Android, AndroidRounded, Apple, GetApp, GetAppOutlined, GetAppRounded, LocalPlayOutlined, PhoneIphone } from \"@material-ui/icons\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport moment from \"moment\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst Licenses = ({ isLoading, serialNumber, licences }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n console.log(licences);\r\n return (\r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n {isLoading ? : \"Licencias\"}\r\n \r\n {(licences.some((l) => !l?.active) || licences.length == 0) && (\r\n \r\n {t(\"device.licence.HowToEnable\", { sn: serialNumber })}\r\n \r\n )}\r\n \r\n \r\n {licences.map((e, i) => (\r\n \r\n \r\n \r\n \r\n \r\n {isLoading ? : t(e.type)}\r\n \r\n {!isLoading && e.type == \"NFC Reader\" && e.active && (\r\n window.open(\"https://play.google.com/store/apps/details?id=com.bexencardio.conf_nfc2&hl=es&gl=US\", \"_blank\")}\r\n style={{ textTransform: \"none\", marginLeft: 9, justifySelf: \"flex-end\" }}\r\n startIcon={}\r\n >\r\n {t(\"Android\")}\r\n \r\n\r\n /* window.open(\"https://play.google.com/store/apps/details?id=com.bexencardio.conf_nfc2&hl=es&gl=US\", \"_blank\")}\r\n />*/\r\n )}\r\n \r\n \r\n {e.active ? (\r\n \r\n {isLoading ? : `${t(\"active\")} ${e.permanent ? \" · \" + t(\"permanent\") : \"\"}`}\r\n \r\n ) : (\r\n {t(\"license.updateToActive\")}}>\r\n \r\n {isLoading ? : t(\"notActive\")}\r\n \r\n \r\n )}\r\n\r\n \r\n {isLoading ? (\r\n <>\r\n \r\n \r\n \r\n ) : e.type === \"NFC Reader\" ? (\r\n t(\"licenses.nfc.description\")\r\n ) : (\r\n t(\"licenses.RDNPLUS.description\")\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n );\r\n};\r\n\r\nexport default Licenses;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n borderRadius: 16,\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.only(\"xs\")]: {\r\n padding: theme.spacing(2),\r\n\r\n boxShadow: \"0 0\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n },\r\n}));\r\n","import { Grid, Paper, Typography, IconButton, Tooltip, makeStyles, SvgIcon, Link, useTheme, useMediaQuery, Chip } from \"@material-ui/core\";\r\nimport { AssignmentOutlined, Edit, Error, LocationOn, Settings, SyncOutlined, SystemUpdateRounded, Warning } from \"@material-ui/icons\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport GoogleMap from \"google-map-react\";\r\nimport * as API_KEYS from \"../../constants/apiKeys\";\r\nimport { green, grey, orange, red } from \"@material-ui/core/colors\";\r\nimport Skeleton from \"@material-ui/lab/Skeleton\";\r\nimport moment from \"moment\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport DeviceSetupForm from \"../DeviceSetupForm\";\r\nimport EditDevice from \"../EditDevice\";\r\nimport { AuthUserContext, withAuthentication, withAuthorization } from \"../Session\";\r\nimport DeviceHourEditor from \"../AddDevice/DeviceHourEditor\";\r\nimport batteryRemainingCalc from \"../../functions/BatteryChargeCalc\";\r\nimport getDeviceStatus from \"../../functions/getDeviceStatus\";\r\nimport Licenses from \"./Licenses\";\r\nimport getDeviceComunications from \"../../functions/getDeviceComunications\";\r\n\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport * as COMNS from \"../../constants/comsTypes\";\r\n\r\nconst properties_mapping = {\r\n msg_long: [\"device.details.values.msglength0\", \"device.details.values.msglength1\"],\r\n alert: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n trainner_mode: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n ratio_adult: [\"device.details.values.ratio0\", \"device.details.values.ratio1\", \"device.details.values.ratio2\"],\r\n ratio_pediatric: [\"device.details.values.ratio0\", \"device.details.values.ratio1\", \"device.details.values.ratio2\"],\r\n rate: [100, 110, 120],\r\n patient_type: [\"device.details.values.patient_ped\", \"device.details.values.patient_adult\"],\r\n alert_warning: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n alert_patient: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n mains_filter: [0, 50, 60],\r\n priority: [\r\n \"common.off\",\r\n \"devices.setUp.trans_mode.priority.sigfox_only\",\r\n \"devices.setUp.trans_mode.priority.sigfox_first\",\r\n \"devices.setUp.trans_mode.priority.wifi_only\",\r\n \"devices.setUp.trans_mode.priority.wifi_first\",\r\n ],\r\n transmit_frequency: [\"devices.setUp.trans_mode.frequency.send_everyday\", \"devices.setUp.trans_mode.frequency.send_4_30_days\", \"devices.setUp.trans_mode.frequency.send_1_30_days\"],\r\n gps_enable: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n};\r\n\r\nconst units = {\r\n cpr1: \"device.details.units.msc\",\r\n cpr2: \"device.details.units.msc\",\r\n ratio_adult: \"\",\r\n ratio_pediatric: \"\",\r\n rate: \"device.details.units.copresions_minute\",\r\n energy1_adult: \"device.details.units.energy\",\r\n energy2_adult: \"device.details.units.energy\",\r\n energy3_adult: \"device.details.units.energy\",\r\n energy1_pediatric: \"device.details.units.energy\",\r\n energy2_pediatric: \"device.details.units.energy\",\r\n energy3_pediatric: \"device.details.units.energy\",\r\n mains_filter: \"device.details.units.filter\",\r\n};\r\n\r\nconst DeviceUpdateStatus = ({ property, value }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n {t(\"newUpdateAvailableTitle\")}}>\r\n \r\n \r\n {value == 2 ? \"Error\" : t(\"new\")}\r\n \r\n\r\n \r\n \r\n {property}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceSettingLang = ({ default_lang, list_langs, haslangUpdate, groupLangs }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {t(\"device.details.config.langs.list\")}\r\n \r\n groupLangs?.list[i] !== x) ? { color: grey[500], textDecorationLine: \"line-through\" } : {}}>\r\n {list_langs.map((x, i) => (i !== list_langs.length - 1 ? `${t(\"common.lang.\" + x)}, ` : t(\"common.lang.\" + x)))}\r\n \r\n {list_langs.some((x, i) => groupLangs?.list[i] !== x) && (\r\n \r\n {groupLangs?.list.map((x, i) => (i !== groupLangs?.list?.length - 1 ? `${t(\"common.lang.\" + x)}, ` : t(\"common.lang.\" + x)))}\r\n \r\n )}\r\n \r\n \r\n \r\n {t(\"device.details.config.langs.default_lang\")}\r\n \r\n groupLangs?.list[i] !== x) ? { color: grey[500], textDecorationLine: \"line-through\" } : {}}\r\n >\r\n {t(\"common.lang.\" + list_langs[default_lang - 1])}\r\n \r\n {console.log(list_langs, groupLangs?.list)}\r\n {(default_lang != groupLangs?.default_lang || list_langs.some((x, i) => groupLangs?.list[i] !== x)) && (\r\n \r\n {t(\"common.lang.\" + groupLangs?.list[groupLangs?.default_lang - 1 ?? 0])}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceSettingShocks = ({ property, data, groupValue }) => {\r\n const { t } = useTranslation();\r\n let properties = Object.keys(data);\r\n properties.shift(); //primer elemento eliminado que es los shocks consecutivos\r\n\r\n return (\r\n <>\r\n {properties.map((value) => (\r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceSettingItem = ({ property, property_label, value, groupValue }) => {\r\n const { t } = useTranslation();\r\n\r\n /** Componente general donde se renderizan las caracteristicas */\r\n const parse_value = (property, value) => {\r\n var msg = \"\";\r\n try {\r\n if (property === \"utc_time\" && value > 0) return \"+\" + value;\r\n if (properties_mapping[property] !== undefined) {\r\n msg = t(properties_mapping[property][value]);\r\n } else {\r\n msg = value;\r\n }\r\n\r\n if (units[property] !== undefined) {\r\n msg = msg + \" \" + t(units[property]);\r\n }\r\n\r\n if (property === \"mains_filter\" && value === 0) {\r\n msg = t(\"devices.setUp.alert_mode.none\");\r\n }\r\n } catch (error) {\r\n // console.log(error);\r\n }\r\n return msg;\r\n };\r\n\r\n //console.log(property_label, value, groupValue, !!groupValue);\r\n\r\n return (\r\n \r\n \r\n {property_label}\r\n \r\n \r\n {parse_value(property, value)}\r\n \r\n {groupValue != value && (\r\n \r\n {parse_value(property, groupValue)}\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst DeviceInfoItem = ({ property, value, loading, outOfDate = false, warning = 0 }) => {\r\n return (\r\n \r\n \r\n {loading ? : property}\r\n \r\n \r\n {loading ? : outOfDate ? : value}\r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceAccesoryItem = ({ type, info, loading, model, syncOutOfDate = false, isConnected = true, battery, demo, demoPadsInNormalMode = false, unknownBattery = false }) => {\r\n const { t } = useTranslation();\r\n let exDate = moment(info.expiration_date).format(\"YYYY / MM\");\r\n let now = moment(new Date()).format(\"YYYY/MM\");\r\n const padsConnectedByTime = moment(info?.expiration_date).format(\"YYYY-MM\") !== \"0001-01\"; // parches con fecha \"default\" son parches no conectados\r\n const estimatedWarning = type == \"pads\" ? moment(info?.expiration_date).format(\"YYYY-MM\") !== \"0001-01\" && moment().isAfter(moment(info?.expiration_date)) : false;\r\n return (\r\n <>\r\n \r\n \r\n {!loading && !syncOutOfDate && type !== \"battery\" && model == \"Reanibex 100\" && }\r\n \r\n {loading ? : t(`common.${type}`)}{\" \"}\r\n \r\n {!loading && type == \"pads\" && estimatedWarning && !demo && (\r\n {t(\"pads.mightExpired.tooltip\")}} placement=\"top\">\r\n \r\n {` · ${t(\"pads.mightExpired\")}`}\r\n \r\n \r\n )}\r\n \r\n \r\n {(type === \"pads\" || (type === \"battery\" && model !== \"Reanibex 100\")) && (\r\n <>\r\n \r\n {loading ? : t(\"device.details.accesories.expirationDate\")}\r\n \r\n \r\n {loading ? (\r\n \r\n ) : (!syncOutOfDate || model !== \"Reanibex 100\") && isConnected && padsConnectedByTime ? (\r\n demo ? (\r\n t(\"common.demoMode\")\r\n ) : demoPadsInNormalMode ? (\r\n t(\"error_eREG_23\")\r\n ) : (\r\n exDate\r\n )\r\n ) : !isConnected || !padsConnectedByTime ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n {type === \"battery\" && model === \"Reanibex 100\" && (\r\n \r\n \r\n {loading ? : t(\"status.simple.battery_charge\")}\r\n \r\n \r\n {loading ? : !syncOutOfDate && !unknownBattery ? `${battery} %` : unknownBattery ? t(\"error_eREG_31.min\") : }\r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst ExpirationDateicon = ({ timeGap }) => {\r\n if (timeGap < 0) {\r\n return (\r\n \r\n );\r\n } else {\r\n /** seleccionar cuando se quiere mostar el warning de caducidad proxima*/\r\n if (timeGap <= 3) {\r\n return (\r\n \r\n );\r\n } else {\r\n return <>;\r\n }\r\n }\r\n};\r\n\r\nconst DeviceGeneralSettings = ({ device, property, groupSettings }) => {\r\n const { t } = useTranslation();\r\n\r\n if (property == \"misc\") {\r\n /* hay que evitar enviar este dato Se elimina a mano para que no aparezca en la lista de propiedaes\r\n */\r\n delete device?.config?.device_setting?.misc?.trainner_mode;\r\n }\r\n return (\r\n <>\r\n \r\n {property === \"langs\" && device?.status?.update?.has_new_audio !== 0 && (\r\n {t(\"deviceLangnotsyncTitle\")}} placement=\"top\">\r\n \r\n \r\n )}\r\n \r\n {t(`device.details.config.title.${property}`)}\r\n \r\n\r\n \r\n {property === \"langs\" && (\r\n \r\n )}\r\n {property === \"shocks\" && }\r\n {property !== \"shocks\" &&\r\n property !== \"langs\" &&\r\n Object.keys(device?.config?.device_setting[property]).map(\r\n (value) =>\r\n value !== \"transmission_mode\" && (\r\n \r\n )\r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceGeneralSettingsComms = ({ device, property, groupSettings }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n {t(`devices.setUp.comms.title`)}\r\n \r\n\r\n \r\n {property !== \"shocks\" &&\r\n property !== \"langs\" &&\r\n Object.keys(device?.config?.device_setting[property]).map(\r\n (value) =>\r\n value === \"transmission_mode\" &&\r\n Object.keys(device?.config?.device_setting[property][value]).map((x) => {\r\n /* se comprueba la prioridad cuando se quiere mostrar la frecuencia de transmision para evitar mostrarla cuando no se puede modificar */\r\n const priority = device.config.device_setting.misc.transmission_mode.priority;\r\n\r\n if (x == \"transmit_frequency\") {\r\n if (priority == 3 || priority == 4) {\r\n return (\r\n \r\n );\r\n } else {\r\n return <>;\r\n }\r\n } else {\r\n return (\r\n \r\n );\r\n }\r\n })\r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceDetailTab = (props) => {\r\n const { device, isNewDevice, IsPermanentLoading, reload, authUser } = props;\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const isMobile = useMediaQuery(theme.breakpoints.down(\"md\"));\r\n\r\n const [deviceSetupOpen, setDeviceSetupOpen] = useState(false);\r\n const [deviceEditOpen, setDeviceEditOpen] = useState(false);\r\n const [isLoading, setIsLoading] = useState(true);\r\n const [hasUpdate, setHasUpdate] = useState(false);\r\n const [groupSettings, setGroupSettings] = useState(null);\r\n\r\n const syncOutOfDate =\r\n device.model === \"Reanibex 100\"\r\n ? moment().diff(device?.status?.device_status?.updateDate, \"months\") >= (device?.connectivity ? 3 : 12) || device?.status?.device_status?.updateSource === 0\r\n : false;\r\n\r\n useEffect(() => {\r\n if (!IsPermanentLoading && !deviceSetupOpen) {\r\n setIsLoading(false);\r\n if (!isNewDevice) {\r\n let haspendingUpdate = false;\r\n Object.keys(device?.status?.update).forEach((u) => {\r\n haspendingUpdate = haspendingUpdate || device?.status?.update[u] !== 0;\r\n });\r\n setHasUpdate(haspendingUpdate);\r\n }\r\n //se cargan los datos del grupo para ver la diferencia de configuración del equipo\r\n\r\n if (device?.groupid) {\r\n DATANETAPI.getGroup(device?.groupid).then((snap) => {\r\n if (snap?.status == 1) {\r\n setGroupSettings(snap?.data?.config_current?.device_setting);\r\n }\r\n });\r\n }\r\n }\r\n }, [device, deviceSetupOpen]);\r\n\r\n useEffect(() => {\r\n /* cuando se cierre la edición se recaarga la info del equipo */\r\n if (!deviceEditOpen && !IsPermanentLoading && !isNewDevice) {\r\n reload();\r\n setIsLoading(true);\r\n }\r\n }, [deviceEditOpen]);\r\n\r\n /* --------------- eliminar en el futuro------------- */\r\n /* Se eliminan las 3 propiedades que se tienen que mostrar en la siguiente versión */\r\n if (!IsPermanentLoading) {\r\n if (!!device.config) {\r\n delete device.config.device_setting.misc.alert_mode;\r\n delete device.config.device_setting.misc.alert_move;\r\n if (device.soft_version < \"0210\") {\r\n delete device.config.device_setting.misc.alert_patient;\r\n }\r\n if (device.soft_version < \"0209\") {\r\n delete device.config.device_setting.misc.alert_warning;\r\n }\r\n /** eliminado el Alertas activas? */\r\n delete device.config.device_setting.misc.alert;\r\n }\r\n }\r\n\r\n const batteryCalc =\r\n device.model === \"Reanibex 100\" &&\r\n batteryRemainingCalc({\r\n hasComs: device?.connectivity,\r\n syncDate: moment(device?.status?.device_status?.updateDate),\r\n software: device?.soft_version,\r\n battery: device?.status?.device_status?.batteryStatus,\r\n updateSource: device?.status?.device_status?.updateSource,\r\n });\r\n\r\n const generalStatusValue = !isLoading && device.model === \"Reanibex 100\" ? getDeviceStatus(device?.status, syncOutOfDate, batteryCalc, device?.soft_version) : 0;\r\n\r\n return (\r\n \r\n {!isNewDevice && (\r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n device.model === \"Reanibex 100\" && (\r\n \r\n \r\n \r\n )\r\n )}\r\n\r\n \r\n {isLoading ? : device.model === \"Reanibex 100\" && t(\"updates\")}\r\n \r\n \r\n {syncOutOfDate && device?.model == \"Reanibex 100\" && !IsPermanentLoading && !isLoading && (\r\n \r\n \r\n \r\n {t(\"sincronización necesaria\")}\r\n \r\n\r\n \r\n \r\n {t(`NotSync.deviceDetailCard.${device?.status?.device_status?.updateSource === 0 ? \"Default\" : device?.connectivity ? \"coms\" : \"Nocoms\"}`)} \r\n (window.location.href = \"https://usbsync.blob.core.windows.net/app/REANIBEX_USB_SYNC.exe\")}>\r\n {t(\"common.DawnloadUSB_Sync\")}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!IsPermanentLoading &&\r\n !isLoading &&\r\n device.model == \"Reanibex 100\" &&\r\n Object.keys(device?.status?.update).map((u) => device?.status?.update[u] != 0 && )}\r\n\r\n {(isLoading || IsPermanentLoading) && (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {!hasUpdate && !isLoading && !IsPermanentLoading && device.model == \"Reanibex 100\" && !syncOutOfDate && (\r\n \r\n {t(\"deviceIsUpdated\")}}>\r\n \r\n \r\n {t(\"deviceIsUpdated\")}\r\n \r\n\r\n \r\n {t(\"deviceHasAllUpdates\")}\r\n \r\n \r\n \r\n \r\n )}\r\n \r\n )}\r\n\r\n {!IsPermanentLoading && device.model == \"Reanibex 100\" /*&& !!device.licences */ && false && }\r\n\r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n {isLoading ? : t(\"device.details.title.description\")}\r\n \r\n\r\n {device?.status?.is_demo && (\r\n \r\n  \r\n {!isLoading && \"· Demo\"}\r\n \r\n )}\r\n \r\n \r\n {isNewDevice ? t(\"device.details.edit.disabled\") : t(\"device.details.edit.enabled\")}}>\r\n \r\n setDeviceEditOpen(true)} disabled={isNewDevice}>\r\n {isLoading ? : }\r\n \r\n \r\n \r\n {{(authUser) => }}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n {isLoading ? : t(\"device.details.title.deviceDetails\")}\r\n \r\n \r\n \r\n p?.id == device?.programid)?.name} loading={isLoading} />\r\n \r\n \r\n \r\n \r\n (\r\n \r\n )) /*t(\"device.details.conectivity\") */\r\n : t(\"device.details.noconectivity\")\r\n }\r\n loading={isLoading}\r\n />\r\n {(device.model === \"Reanibex 100\" || device.model === \"R100\") && (\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n {isLoading ? : t(\"common.accessories\")}\r\n \r\n \r\n \r\n s?.id == 31)}\r\n demo={device?.status?.is_demo}\r\n />\r\n s?.id == 23) : false}\r\n />\r\n \r\n \r\n\r\n \r\n \r\n \r\n {isLoading ? : t(\"common.location\")}\r\n \r\n \r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n map.setOptions({\r\n mapTypeControl: true,\r\n mapTypeId: \"satellite\",\r\n streetViewControl: true,\r\n })\r\n }\r\n >\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {isLoading ? : t(\"device.location.availability\")}\r\n \r\n \r\n \r\n {!isLoading && }\r\n \r\n \r\n \r\n \r\n\r\n {(device.model === \"Reanibex 100\" || device.model === \"R100\") && (!!device.config || !!device.config.device_setting) && (\r\n \r\n \r\n \r\n {device.status.update.has_new_cfg !== 0 ? (\r\n {t(\"deviceCfgnotsyncTitle\")}} placement=\"top\">\r\n \r\n \r\n ) : (\r\n \r\n )}\r\n\r\n \r\n {t(\"device.details.title.configuration\")} {device.status.update.has_new_cfg !== 0 && <>*}\r\n \r\n \r\n {device.status.update.has_new_cfg !== 0 && (\r\n \r\n \r\n {t(\"device.details.title.configuration.update_pending\")}\r\n \r\n \r\n )}\r\n \r\n {!isNewDevice && (\r\n {isNewDevice ? t(\"device.setUp.edit.disabled\") : t(\"device.setUp.edit.enabled\")}}>\r\n \r\n setDeviceSetupOpen(true)}>\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {Object.keys(device.config.device_setting).map((property) => (\r\n <>\r\n {property !== \"wifi\" && property !== \"pcb_hw_opt\" && (\r\n <>\r\n {property === \"misc\" && device.soft_version >= \"0210\" && !getDeviceComunications(device?.options).includes(COMNS.STANDALONE) && (\r\n \r\n )}\r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nconst DataNotAvailable = (type, value) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n {t(\"common.updateWithUSBSync\")}}>\r\n \r\n {t(\"common.NotAvailable\")}\r\n \r\n \r\n );\r\n};\r\n\r\nconst AccesoryNoConnected = ({ loading }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n {loading ? : t(\"pads.Noconnected\")}\r\n \r\n \r\n );\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(DeviceDetailTab);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n borderRadius: 16,\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.only(\"xs\")]: {\r\n padding: theme.spacing(2),\r\n border: \"0px\",\r\n boxShadow: \"0 0\",\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(8),\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n },\r\n syncCard: {\r\n marginLeft: 0,\r\n [theme.breakpoints.up(\"sm\")]: {\r\n marginLeft: -40,\r\n },\r\n },\r\n}));\r\n","import React from \"react\";\r\nimport { Grid } from \"@material-ui/core\";\r\nimport DeviceDetailTab from \"../DeviceTabs/DeviceDetailTab\";\r\n\r\nconst Confirmation = ({ device }) => {\r\n return (\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Confirmation;\r\n","import { SIGFOX, STANDALONE, WIFI } from \"./comsTypes\";\r\n\r\nexport const coms_priority_ENUM = {\r\n 0: STANDALONE,\r\n 1: SIGFOX,\r\n 2: SIGFOX,\r\n 3: WIFI,\r\n 4: WIFI,\r\n};\r\n","import {\r\n Button,\r\n Grid,\r\n makeStyles,\r\n Paper,\r\n TextField,\r\n Typography,\r\n InputAdornment,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n DialogActions,\r\n Card,\r\n colors,\r\n Collapse,\r\n IconButton,\r\n Fade,\r\n FormControlLabel,\r\n Checkbox,\r\n FormLabel,\r\n Icon,\r\n} from \"@material-ui/core\";\r\nimport { GroupWorkOutlined, LocationCityOutlined, BusinessOutlined, LocationOnOutlined, DescriptionOutlined, PeopleAltOutlined, ExpandLess, ExpandMore, WarningOutlined } from \"@material-ui/icons\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport * as API_KEYS from \"../../constants/apiKeys\";\r\nimport { LocationOn } from \"@material-ui/icons\";\r\nimport { orange, red } from \"@material-ui/core/colors\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport getDeviceComunications from \"../../functions/getDeviceComunications\";\r\nimport * as COMS from \"../../constants/comsTypes\";\r\nimport { coms_priority_ENUM } from \"../../constants/comsPriority\";\r\n\r\nconst INITAL_ERROR_EDIT_STATE = {\r\n name: false,\r\n def: false,\r\n address: false,\r\n require_rescuers: false,\r\n location_name: false,\r\n location: false,\r\n location_marker: false,\r\n};\r\n\r\nconst INITAL_ERROR_ADD_STATE = {\r\n name: false,\r\n def: false,\r\n address: false,\r\n require_rescuers: false,\r\n location_name: false,\r\n location_marker: false,\r\n};\r\n\r\nconst INITAL_STATE = {\r\n name: \"\",\r\n def: \"\",\r\n address: \"\",\r\n type: [],\r\n require_rescuers: 0,\r\n location: {\r\n name: \"\",\r\n latitude: 43.1854194,\r\n longitude: -2.5099712,\r\n },\r\n coordinators: [],\r\n};\r\n\r\nconst AddGroupModal = (props) => {\r\n const { handleClose, currentposition, groupData, currentUser, deviceComs, isForNewDevice } = props;\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const [isNew, setIsNew] = useState(!groupData);\r\n const [group, setGroup] = useState(!!groupData ? groupData : INITAL_STATE);\r\n const [errorForm, setErrorForm] = useState(!groupData ? INITAL_ERROR_ADD_STATE : INITAL_ERROR_EDIT_STATE);\r\n const [errorId, setErrorId] = useState(0);\r\n const [modalSuccess, setModalSuccess] = useState(false);\r\n const [openError, setOpenError] = useState(false);\r\n const [isValid, setIsvalid] = useState(false);\r\n const { groupId, programId } = useParams();\r\n const [isFormModified, setIsFormModified] = useState(false);\r\n const [newGroupId, setNewGroupId] = useState(\"\");\r\n const [deleteModal, setDeleteModal] = useState(false);\r\n const [groupName, setGroupName] = useState(\"\");\r\n const [isDelete, setIsDelete] = useState(false);\r\n const [isRequestLoading, setIsRequestLoading] = useState(false);\r\n const [isDeleting, setIsDeleting] = useState(false);\r\n const [nameErrorText, setNameErrorText] = useState(\"\");\r\n const [locationExpanded, setLocationExpanded] = useState(false);\r\n const [comunicationsType, setComunicationsType] = useState({\r\n Standalone: groupData?.comsTypes?.includes(COMS.STANDALONE) ?? false,\r\n Wifi: groupData?.comsTypes?.includes(COMS.WIFI) ?? false,\r\n Sigfox: groupData?.comsTypes?.includes(COMS.SIGFOX) ?? false,\r\n });\r\n const [devicesCommonComsAvailable, setDevicesCommonComsAvailable] = useState([]);\r\n const [groupComsPriority, setGroupComsPriority] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if (isNew) {\r\n if (currentUser?.groups.filter((g) => g.name == group.name && g.program_id == programId).length > 0) {\r\n setErrorForm({ ...errorForm, name: true });\r\n setNameErrorText(t(\"group.name.sameName\"));\r\n } else {\r\n if (errorForm.name) {\r\n handleNameChange(group.name);\r\n } else {\r\n errorForm.name = false;\r\n }\r\n }\r\n } else {\r\n if (currentUser?.groups.filter((g) => g.name == group.name && g.program_id == programId && groupData.groupid != g.id).length > 0) {\r\n setErrorForm({ ...errorForm, name: true });\r\n setNameErrorText(t(\"group.name.sameName\"));\r\n } else {\r\n if (errorForm.name) {\r\n handleNameChange(group.name);\r\n } else {\r\n errorForm.name = false;\r\n }\r\n }\r\n }\r\n }, [group.name]);\r\n\r\n useEffect(() => {\r\n // se neceista saber cual es la información del dispositivo que está obligando a crear el grupo para que el grupo tenga esas comunicaciones y no se puedan modificar\r\n if (!!deviceComs && isForNewDevice) {\r\n setComunicationsType({\r\n Standalone: deviceComs.includes(COMS.STANDALONE),\r\n Wifi: deviceComs.includes(COMS.WIFI),\r\n Sigfox: deviceComs.includes(COMS.SIGFOX),\r\n });\r\n }\r\n }, [deviceComs]);\r\n\r\n useEffect(() => {\r\n // console.log(comunicationsType);\r\n setIsvalid(!Object.keys(errorForm).some((x) => errorForm[x]) && group.name !== \"\" && group.def !== \"\" && Object.values(comunicationsType).some((v) => v));\r\n }, [errorForm, comunicationsType]);\r\n\r\n const handleCloseError = () => {\r\n setOpenError(false);\r\n if (modalSuccess) {\r\n // se manda el id del grupo creado, para que cuando se está creando un equipo se pueda asiciar en luneo equipo al grupo.\r\n handleClose(group?.id);\r\n }\r\n };\r\n\r\n const handleComsType = (e) => {\r\n setComunicationsType({ ...comunicationsType, [e.target.name]: e.target.checked });\r\n };\r\n\r\n useEffect(() => {\r\n if (!!groupData) {\r\n delete groupData[\"med_agency\"];\r\n }\r\n }, []);\r\n\r\n useEffect(() => {\r\n (group != groupData ||\r\n comunicationsType.Standalone !== groupData?.comsTypes?.includes(COMS.STANDALONE) ||\r\n comunicationsType.Wifi !== groupData?.comsTypes?.includes(COMS.WIFI) ||\r\n comunicationsType.Sigfox !== groupData?.comsTypes?.includes(COMS.SIGFOX)) &&\r\n setIsFormModified(true);\r\n }, [group, comunicationsType]);\r\n\r\n useEffect(() => {\r\n // cargamos los datos de los equipos para saber si es posible cambiar el tipo de comunicación del grupo\r\n if (!isNew) {\r\n if (!!!group.groupid || !!!group.programid) {\r\n /* Buscamos los ids en los datos del usuario */\r\n }\r\n const groupId = group.groupid;\r\n const programId = group.programid;\r\n DATANETAPI.getDevices(programId, groupId).then((snap) => {\r\n if (snap?.status === 1) {\r\n if (snap.data.length > 0) {\r\n const groupDevices = snap.data.map((g) => ({\r\n ...g,\r\n comsTypes: getDeviceComunications(g?.options),\r\n }));\r\n const commonDeviceComs = groupDevices.reduce((acc, current) => acc.filter((t) => current?.comsTypes?.includes(t)), groupDevices[0]?.comsTypes); // tipo de comunicaciones que comparten todos los dispositivos\r\n if (groupDevices.length === 0) {\r\n setDevicesCommonComsAvailable([COMS.SIGFOX, COMS.STANDALONE, COMS.WIFI]);\r\n } else {\r\n setDevicesCommonComsAvailable(commonDeviceComs);\r\n }\r\n } else {\r\n // el grupo puede cambiar a cualquiera de los tipos porque no tiene equipos dentro\r\n setDevicesCommonComsAvailable([COMS.SIGFOX, COMS.STANDALONE, COMS.WIFI]);\r\n }\r\n } else {\r\n /** no ha ido bien la petición */\r\n }\r\n });\r\n // para indicar al usuario que al cambiar el tipo de comunicacion se cambia la configuración, se obtiene la configuración del grupo\r\n DATANETAPI.getGroup(groupId).then((snap) => {\r\n setGroupComsPriority(coms_priority_ENUM[snap?.data?.config_current?.device_setting?.misc?.transmission_mode?.priority]);\r\n });\r\n } else {\r\n /* Se inicializan todas las opciones de comunicaciones dipponibles */\r\n setDevicesCommonComsAvailable([COMS.SIGFOX, COMS.STANDALONE, COMS.WIFI]);\r\n }\r\n }, []);\r\n\r\n const mapClickHandler = ({ x, y, lat, lng, event }) => {\r\n setGroup({\r\n ...group,\r\n location: {\r\n ...group.location,\r\n latitude: lat,\r\n longitude: lng,\r\n },\r\n });\r\n setErrorForm({ ...errorForm, location_marker: false });\r\n setIsFormModified(true);\r\n };\r\n\r\n const createGroup = (e) => {\r\n setIsRequestLoading(true);\r\n e.preventDefault();\r\n group.address = group.address === \"\" ? \"--\" : group.address;\r\n group.location.name = group.location.name === \"\" ? \"--\" : group.location.name;\r\n group.comsTypes = Object.entries(comunicationsType)\r\n .filter(([key, value]) => value === true)\r\n .map(([key, value]) => key);\r\n\r\n if (isNew) {\r\n if (programId !== undefined) {\r\n group.programid = programId;\r\n }\r\n // console.log(\"datos del grupo a crear\", group);\r\n DATANETAPI.createGroup(group).then((snap) => {\r\n processHttpResponse(snap, false);\r\n });\r\n } else {\r\n if (programId !== undefined) {\r\n group.programid = programId;\r\n }\r\n if (groupId !== undefined) {\r\n group.groupid = groupId;\r\n }\r\n DATANETAPI.editGroup(group).then((snap) => {\r\n processHttpResponse(snap, false);\r\n });\r\n }\r\n };\r\n\r\n const deleteGroup = () => {\r\n setIsDeleting(true);\r\n DATANETAPI.deleteGroup(group.groupid).then((snap) => {\r\n processHttpResponse(snap, true);\r\n setIsDeleting(false);\r\n });\r\n };\r\n\r\n const processHttpResponse = (snap, is_delete) => {\r\n if (snap.status !== undefined) {\r\n setIsDelete(is_delete);\r\n // request finished\r\n if (snap.status === 1) {\r\n // SUCCESS\r\n !!snap.data && setNewGroupId(snap?.data?.groupid);\r\n !snap.data && setNewGroupId(group?.groupid);\r\n\r\n /* Si el grupo es creado al añadir un dispositivo, no mostrar el dialogo para evitar tener */\r\n if (isForNewDevice) {\r\n handleClose(snap?.data?.groupid);\r\n } else {\r\n setModalSuccess(true);\r\n setErrorId(1);\r\n setOpenError(true);\r\n }\r\n } else {\r\n // ERROR\r\n //console.log(\"error -1\");\r\n setModalSuccess(false);\r\n setErrorId(snap.status);\r\n setOpenError(true);\r\n }\r\n } else {\r\n //error during request\r\n setModalSuccess(false);\r\n setErrorId(-1);\r\n setOpenError(true);\r\n }\r\n if (is_delete) setDeleteModal(false);\r\n setIsRequestLoading(false);\r\n };\r\n\r\n const renderErrorMessage = () => {\r\n if (errorId >= 0) {\r\n if (!modalSuccess) {\r\n let errorText;\r\n if (isNew) {\r\n errorText = \"groups.new.err_\";\r\n } else if (isDelete) {\r\n errorText = \"groups.delete.error_\";\r\n } else {\r\n errorText = \"groups.edit.err_\";\r\n }\r\n return t(errorText + errorId);\r\n } else {\r\n if (isDelete) return t(\"groups.delete.error_\" + errorId);\r\n if (isNew) return t(\"groups.created_\" + errorId, { name: group.name });\r\n return t(\"groups.err_\" + errorId, { name: group.name });\r\n }\r\n } else {\r\n return t(`error.connection_${errorId}`);\r\n }\r\n };\r\n\r\n const handleNameChange = (value) => {\r\n const isError = !(value.length > 0 && value.length <= 50);\r\n setErrorForm({\r\n ...errorForm,\r\n name: isError,\r\n });\r\n isError && setNameErrorText(t(\"groups.error.name\"));\r\n };\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n {t(\"group_title\")}\r\n \r\n \r\n \r\n {\r\n setGroup({ ...group, name: e.target.value });\r\n handleNameChange(e.target.value);\r\n }}\r\n error={errorForm.name}\r\n helperText={errorForm.name && nameErrorText}\r\n placeholder={t(\"common.name\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n setGroup({ ...group, def: e.target.value });\r\n const length = e.target.value.length;\r\n setErrorForm({\r\n ...errorForm,\r\n def: !(length > 0 && length < 100),\r\n });\r\n }}\r\n error={errorForm.def}\r\n helperText={!errorForm.def ? \"\" : t(\"groups.error.def\")}\r\n placeholder={t(\"groups.new.description.placeholder\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n multiline\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n {t(\"group_form_coms_label\")}\r\n \r\n \r\n }\r\n label=\"Standalone\"\r\n />\r\n \r\n }\r\n label=\"Wifi\"\r\n />\r\n \r\n }\r\n label=\"Sigfox\"\r\n />\r\n \r\n {false && !!groupComsPriority && !comunicationsType[groupComsPriority] && devicesCommonComsAvailable.length != 3 && (\r\n \r\n \r\n \r\n \r\n \r\n Cuidado se cambiarán las prioridades de comunicación del grupo\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {t(\"common.location\")}\r\n \r\n setLocationExpanded(!locationExpanded)}>{locationExpanded ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"grous_form_location\")}\r\n \r\n \r\n \r\n {\r\n const length = e.target.value.length;\r\n setErrorForm({ ...errorForm, address: length > 50 });\r\n setGroup({ ...group, address: e.target.value });\r\n }}\r\n error={errorForm.address}\r\n helperText={!errorForm.address ? \"\" : t(\"groups.error.address\")}\r\n placeholder={t(\"common.address\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n \r\n {\r\n const length = e.target.value.length;\r\n setGroup({ ...group, location: { ...group.location, name: e.target.value } });\r\n setErrorForm({ ...errorForm, location_name: length > 50 });\r\n }}\r\n error={errorForm.location_name}\r\n helperText={!errorForm.location_name ? \"\" : t(\"groups.error.location\")}\r\n placeholder={t(\"groups.new.location.placeholder\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n {!errorForm.location_marker && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {!isNew && (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"actions\")}\r\n \r\n \r\n\r\n \r\n \r\n {t(\"groups.delete.action\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {modalSuccess ? {t(\"groups.success_title\")} : {t(\"groups.err_title\")}}\r\n\r\n \r\n \r\n {renderErrorMessage()}\r\n \r\n \r\n \r\n {isDelete && (\r\n <>\r\n \r\n \r\n )}\r\n {!isDelete && (\r\n <>\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n\r\n setDeleteModal(false)} open={deleteModal}>\r\n {t(\"groups.delete.title\")}\r\n \r\n {t(\"groups.delete.body\", { name: group.name })}\r\n \r\n setGroupName(e.target.value)} style={{ marginTop: 6 }} />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nexport default AddGroupModal;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n formcontainer: {\r\n padding: 24,\r\n },\r\n expandedContainer: {\r\n paddingRight: theme.spacing(2),\r\n paddingLeft: theme.spacing(2),\r\n marginBottom: theme.spacing(3),\r\n },\r\n}));\r\n","import React, { useState } from \"react\";\r\nimport AddGroupModal from \"../GroupsModals/AddGroupModal\";\r\nimport { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, FormControl, Grid, InputLabel, MenuItem, Select, Typography } from \"@material-ui/core\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { orange } from \"@material-ui/core/colors\";\r\n\r\nconst ADD_NEW_GROUP = \"AddGroup\";\r\n\r\nconst GroupNotCompatibleModal = ({ open, setOpen, cancel, deviceComs, setNewGroupId, nextStep, programId, user }) => {\r\n const { t } = useTranslation();\r\n\r\n const [isCreateGroupOpend, setIsCreateGroupOpend] = useState(false);\r\n const [isGroupCreated, setIsGroupCreated] = useState(false);\r\n const [temporalGroup, setTemporalGroup] = useState(\"\");\r\n const [isLoading, setIsLoading] = useState(false);\r\n\r\n const cancelAdd = () => {\r\n setOpen(false);\r\n cancel();\r\n };\r\n\r\n const closeGroupModal = (newGroupID) => {\r\n //console.log(\"datos del grupo creado\", newGroupID);\r\n /* Si viene id, es que se ha creado un nuevo grupo, sino el grupo no se ha creado */\r\n if (!!newGroupID) {\r\n //console.log(\"mando la info al padre\", newGroupID);\r\n setNewGroupId(newGroupID);\r\n setIsGroupCreated(true);\r\n setTemporalGroup(newGroupID);\r\n }\r\n setIsCreateGroupOpend(false);\r\n };\r\n\r\n const next = () => {\r\n //console.log(\"next\");\r\n setIsLoading(true);\r\n DATANETAPI.getGroup(temporalGroup).then((snap) => {\r\n //console.log(\"sanp del next\", snap);\r\n if (!!snap?.data?.comsTypes) {\r\n nextStep();\r\n setOpen(false);\r\n setTemporalGroup(\"\");\r\n setIsGroupCreated(false);\r\n setIsLoading(false);\r\n } else {\r\n setTimeout(() => {\r\n next();\r\n }, 500);\r\n }\r\n });\r\n };\r\n\r\n const handleSelect = (e) => {\r\n setTemporalGroup(e.target.value);\r\n };\r\n\r\n const handleAccept = () => {\r\n if (temporalGroup !== \"\") {\r\n if (temporalGroup === ADD_NEW_GROUP) {\r\n setIsCreateGroupOpend(true);\r\n } else {\r\n closeGroupModal(temporalGroup);\r\n }\r\n }\r\n };\r\n\r\n if (isGroupCreated) {\r\n return (\r\n \r\n {t(\"incompatibleGroup.deviceAdded\")}\r\n\r\n \r\n \r\n {t(\"add.compatibleGroup.assignedGroupTile\")}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n }\r\n if (isCreateGroupOpend) {\r\n return (\r\n \r\n {t(\"create.newGroup\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {t(\"incompatibleGroup\")}\r\n \r\n \r\n \r\n {t(\"addDevice.newCompatible.GroupDesc\")}\r\n {deviceComs?.map((v) => v)}.\r\n \r\n {t(\"addDevice.incompatibleGroup.SelectGroup\")}\r\n \r\n {t(\"compatibleGroup\")}\r\n \r\n \r\n \r\n {temporalGroup !== \"\" && temporalGroup !== ADD_NEW_GROUP && t(\"groupMove.settings.text\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default GroupNotCompatibleModal;\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport {\r\n makeStyles,\r\n Container,\r\n Grid,\r\n Dialog,\r\n AppBar,\r\n Toolbar,\r\n Slide,\r\n Button,\r\n Typography,\r\n IconButton,\r\n Step,\r\n Stepper,\r\n StepLabel,\r\n DialogActions,\r\n DialogContentText,\r\n DialogTitle,\r\n DialogContent,\r\n} from \"@material-ui/core\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport ModelSelect from \"./ModelSelect\";\r\nimport DeviceForm from \"./DeviceForm\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport Confirmation from \"./Confirmation\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\nimport LoadingPage from \"../LoadingPage\";\r\nimport { R100ConfigChangedModal } from \"../R100ConfigChangedModal\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport GroupNotCompatibleModal from \"./GroupNotCompatibleModal\";\r\nimport getDeviceComunications from \"../../functions/getDeviceComunications\";\r\nimport * as COMS from \"../../constants/comsTypes\";\r\n\r\nconst AddDevice = ({ open, handleClose, authUser, selectedGroupID }) => {\r\n const history = useHistory();\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n const topRef = useRef(null);\r\n\r\n const [activeStep, setActiveStep] = useState(0);\r\n const [iscomplete, setIscomplete] = useState(false);\r\n const [openAlert, setOpenAlert] = useState(false);\r\n const [openAlertProccess, setOpenAlertProccess] = useState(false);\r\n const [devicesModels, setdevicesModels] = useState(devicesModelsBack);\r\n const [isFormValid, setisFormValid] = useState(false);\r\n const [formValues, setFormValues] = useState({ model: devicesModelsBack[0], manufacturer: \"Bexen Cardio\" });\r\n const [device, setdevice] = useState([]);\r\n const [group, setGroup] = useState(selectedGroupID ?? null);\r\n const [currentposition, setcurrentposition] = useState(DEFAULT_GPS_POSITION);\r\n const [isFinish, setIsFinish] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [errorIdLimbo, setErrorIdLimbo] = useState(-1);\r\n const [errorIdMove, setErrorIdMove] = useState(-1);\r\n const [errorIdCreate, setErrorIdCreate] = useState(-1);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [firstInteraction, setFirstInteraction] = useState(true);\r\n const [groupName, setGroupName] = useState(\"\");\r\n const [programId, setProgramId] = useState(\"\");\r\n const [model, setModel] = useState(0);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [openR100ConfingWarning, setOpenR100ConfingWarning] = useState(false);\r\n const [errorOnCreate, seterrorOnCreate] = useState(0);\r\n const [isGroupCompatible, setIsGroupCompatible] = useState(false);\r\n const [groupNotCompatibleModalOpen, setGroupNotCompatibleModalOpen] = useState(false);\r\n const [isNewGroupCreated, setIsNewGroupCreated] = useState(false);\r\n const steps = [t(\"devices.new.stepper.one\"), t(\"devices.new.stepper.two\"), t(\"devices.new.stepper.three\")];\r\n\r\n const handleModelSelect = (value) => {\r\n if (value == \"other\") {\r\n setFormValues({ ...formValues, model: value, manufacturer: \"\" });\r\n } else {\r\n setFormValues({\r\n ...formValues,\r\n model: devicesModelsBack[value],\r\n manufacturer: \"Bexen Cardio\",\r\n });\r\n }\r\n setModel(value);\r\n };\r\n\r\n useEffect(() => {\r\n !!group &&\r\n DATANETAPI.getGroup(group).then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n setGroupName(snap?.data?.name);\r\n setProgramId(snap?.data?.programid);\r\n //setProgramId(authUser?.programas?.filter((p) => p.groups.some((g) => g.id == group))[0]?.id);\r\n }\r\n });\r\n }, [group]);\r\n\r\n const handleNext100 = () => {\r\n if (activeStep === 1) {\r\n //console.log(\"STEP 1 -> \", activeStep);\r\n setIsLoading(true);\r\n var R100 = {\r\n groupid: group,\r\n programid: programId,\r\n device: {\r\n name: formValues.name,\r\n serial: formValues.serial,\r\n model: formValues.model,\r\n groupName: groupName,\r\n programid: programId,\r\n manufacturer: formValues.manufacturer,\r\n code: formValues.code,\r\n location: {\r\n latitude: formValues.location.latitude,\r\n longitude: formValues.location.longitude,\r\n update_source: formValues.location.update_source,\r\n name: formValues.location.name,\r\n description: formValues.location.description,\r\n },\r\n openingTime: formValues.openingTime,\r\n },\r\n };\r\n\r\n DATANETAPI.getLimboDevice(R100).then(async (snap) => {\r\n topRef?.current?.scrollIntoView();\r\n console.log(\"----------\", snap);\r\n\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap != undefined) {\r\n //console.log(\"GET LIMBO STATUS ->\", snap.status);\r\n setIsLoading(false);\r\n if (snap.status === 1) {\r\n //console.log(\"GET LIMBO DATA ->\", snap.data);\r\n /* si no se añade, del limbro se trae el grupo 0000-00... */\r\n let device = snap.data;\r\n device[\"groupid\"] = group;\r\n device.groupName = groupName;\r\n device.programid = programId;\r\n\r\n /**-------------------- TEST --------------------*/\r\n device.comsTypes = getDeviceComunications(device?.options);\r\n setdevice(device);\r\n /*\r\n Hay que cambiar el objeto por el que viene del usuario para que pueda coger los datos de las comunicaciones del grupo \r\n */\r\n\r\n //se revisa si hay coincidencias en el grupo para determinar si son compatibles\r\n\r\n let groupComsTypes = authUser?.groups?.filter((g) => g.id === group)[0]?.comsTypes;\r\n /* puede ser que al crear el grupo durante el proceso de registro, no de tiempo a actualizar los datos del usuario\r\n por ese motivo, si no está el grupo, se hace una petición para obtener los datos del grupo \r\n */\r\n\r\n if (!!!groupComsTypes) {\r\n const groupRequestData = await DATANETAPI.getGroup(group);\r\n\r\n groupComsTypes = groupRequestData?.data?.comsTypes;\r\n device.programid = groupRequestData?.data?.programid;\r\n setdevice(device);\r\n }\r\n\r\n /* hay que revisar las coms del grupo por si hubiera algun error */\r\n\r\n if (device?.comsTypes.every((ct) => groupComsTypes?.includes(ct))) {\r\n //añadimos los parametros encesarios para poner los datos de fabrica (para evitar errores en el procesamiento de los datos)\r\n // ya que cuando se trae los datos del equipo, a no ser que se haya eliminado, no tiene los datos\r\n\r\n device.status.device_status = { updateSource: 0 };\r\n /* ------------------- */\r\n //setdevice(device);\r\n\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n setIsFinish(true);\r\n setIsGroupCompatible(true);\r\n setGroupNotCompatibleModalOpen(false);\r\n } else {\r\n setGroupNotCompatibleModalOpen(true);\r\n setIsGroupCompatible(false);\r\n setIsFinish(true);\r\n }\r\n /**-------------------------------------------- */\r\n } else {\r\n //console.log(\"Error Getting 100 -> \");\r\n setOpenAlert(true);\r\n setIsError(true);\r\n setErrorIdLimbo(snap.status);\r\n }\r\n }\r\n }\r\n });\r\n } else if (activeStep === 2) {\r\n setIsLoading(true);\r\n /**\r\n * Es necesario confirmar que se quiere añadir al grupo, ya que se le va a cambiar\r\n * la configuración al sincronizar una vez añadido al nuevo grupo\r\n */\r\n if (!isNewGroupCreated) {\r\n DATANETAPI.getDevices(programId, group).then((snap) => {\r\n if (snap?.data?.length === 0) {\r\n finishR100Register(true);\r\n } else {\r\n setOpenR100ConfingWarning(true);\r\n }\r\n });\r\n } else {\r\n finishR100Register(true);\r\n }\r\n } else {\r\n //console.log(\"STEP ANYOTHER -> \", activeStep);\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n }\r\n };\r\n\r\n const finishR100Register = (finish) => {\r\n setOpenR100ConfingWarning(false);\r\n setIsFinish(false);\r\n if (finish) {\r\n var R100 = {\r\n groupid: group,\r\n programid: programId,\r\n device: {\r\n name: formValues.name,\r\n serial: formValues.serial,\r\n groupid: group,\r\n groupName: groupName,\r\n model: formValues.model,\r\n manufacturer: formValues.manufacturer,\r\n code: formValues.code,\r\n location: {\r\n latitude: formValues.location.latitude,\r\n longitude: formValues.location.longitude,\r\n update_source: formValues.location.update_source,\r\n name: formValues.location.name,\r\n description: formValues.location.description,\r\n },\r\n openingTime: formValues.openingTime,\r\n },\r\n };\r\n\r\n DATANETAPI.moveLimboDevice(R100).then((snap) => {\r\n //console.log(\"datos respuesta limbo 2--\", snap);\r\n setIsLoading(false);\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap != undefined) {\r\n if (snap.status === 1) {\r\n setOpenAlert(true);\r\n setIsError(false);\r\n } else {\r\n //console.log(\"Error Getting 100 -> \");\r\n setOpenAlert(true);\r\n setIsError(true);\r\n setErrorIdMove(snap.status);\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n history.push(ROUTES.PROGRAMS + \"/\" + programId + ROUTES.GROUPS);\r\n }\r\n };\r\n\r\n const handleNext = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep + 1);\r\n\r\n topRef?.current?.scrollIntoView();\r\n if (activeStep === 0) {\r\n //console.log(\"STEP 0 -- NOT REANIBEX 100\");\r\n } else if (activeStep === 1) {\r\n //console.log(\"STEP 1 -- NOT REANIBEX 100\");\r\n setdevice({\r\n name: formValues.name,\r\n serial: formValues.serial,\r\n programid: programId,\r\n groupid: group,\r\n groupName: groupName,\r\n model: formValues.model,\r\n manufacturer: formValues.manufacturer,\r\n battery: {\r\n expiration_date: formValues.expirationDateBatt,\r\n },\r\n pads: {\r\n expiration_date: formValues.expirationDatePads,\r\n },\r\n location: {\r\n latitude: formValues.location.latitude,\r\n longitude: formValues.location.longitude,\r\n update_source: formValues.location.update_source,\r\n name: formValues.location.name,\r\n description: formValues.location.description,\r\n },\r\n openingTime: formValues.openingTime,\r\n });\r\n setIsFinish(true);\r\n } else if (activeStep === 2) {\r\n //console.log(\"STEP 2 -- NOT REANIBEX 100\");\r\n if (isFormValid) {\r\n var deviceForm = {\r\n groupid: group,\r\n programid: programId,\r\n device: formValues,\r\n };\r\n DATANETAPI.createDevice(deviceForm).then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap != undefined) {\r\n setOpenAlert(true);\r\n if (snap?.status === 1) {\r\n setIsError(false);\r\n } else {\r\n /* revisar estado de error */\r\n seterrorOnCreate(snap?.status);\r\n setIsError(true);\r\n setActiveStep(1);\r\n setErrorIdCreate(snap?.status);\r\n }\r\n }\r\n }\r\n });\r\n } else {\r\n setIsError(true);\r\n }\r\n } else {\r\n setIsFinish(true);\r\n }\r\n if (activeStep + 1 === 3) {\r\n setOpenAlertProccess(false);\r\n }\r\n };\r\n\r\n const resetForm = () => {\r\n handleClose(false);\r\n setActiveStep(0);\r\n setIscomplete(false);\r\n setOpenAlert(false);\r\n setErrorIdLimbo(-1);\r\n setErrorIdMove(-1);\r\n setErrorIdCreate(-1);\r\n setdevicesModels(devicesModelsBack);\r\n setisFormValid(false);\r\n setFormValues({ model: devicesModelsBack[0], manufacturer: \"Bexen Cardio\" });\r\n setdevice({});\r\n setGroup(null);\r\n setIsFinish(false);\r\n setFirstInteraction(true);\r\n setModel(0);\r\n };\r\n\r\n const handleBack = () => {\r\n setActiveStep((prevActiveStep) => prevActiveStep - 1);\r\n setIsFinish(false); // cambia el estado del boton de finalizar a siguiente\r\n setFirstInteraction(false);\r\n };\r\n\r\n const closeXButton = (toClose) => {\r\n resetForm();\r\n handleClose(toClose);\r\n };\r\n\r\n useEffect(() => {\r\n navigator.geolocation.getCurrentPosition(function (position) {\r\n setcurrentposition({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n /**\r\n * cuando se actualizan los valores del formulario generar\r\n * el JSON device si el formulario es valido\r\n *\r\n */\r\n if (isFormValid) {\r\n }\r\n }, [isFormValid]);\r\n\r\n const setCreatedNewGroupId = (id) => {\r\n setGroup(id);\r\n setIsNewGroupCreated(true);\r\n };\r\n\r\n var isValid = false;\r\n\r\n isValid = activeStep === 0 && formValues.model !== \"\" && !!formValues.model && !!group ? true : false;\r\n isValid = activeStep === 1 && isFormValid ? true : isValid;\r\n isValid = activeStep === 2 ? true : isValid;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n closeXButton(false)} aria-label=\"close\">\r\n \r\n \r\n \r\n {t(\"devices.new.title.add\")}\r\n \r\n \r\n \r\n\r\n
\r\n \r\n {steps.map((label) => (\r\n \r\n {label}\r\n \r\n ))}\r\n \r\n
\r\n {activeStep === steps.length ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {activeStep === 0 && }\r\n {activeStep === 1 && (\r\n \r\n )}\r\n {activeStep === 2 && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n {\r\n window.scrollTo({ top: 0, behavior: \"smooth\" });\r\n handleBack();\r\n }}\r\n className={classes.backButton}\r\n >\r\n {t(\"common.back\")}\r\n \r\n \r\n\r\n \r\n {\r\n formValues.model === devicesModelsBack[0] ? handleNext100() : handleNext();\r\n window.scrollTo(0, 0);\r\n }}\r\n disabled={!isValid || isLoading}\r\n >\r\n {isLoading && }\r\n {isFinish ? t(\"common.finish\") : t(\"common.next\")}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n\r\n \r\n {isError ? t(\"device.new.dialog.title.error\") : t(\"device.new.dialog.title\")}\r\n \r\n \r\n {isError ? (\r\n <>\r\n {errorIdLimbo !== -1 && t(errorOnGetLimbo[errorIdLimbo])}\r\n {errorIdMove !== -1 && t(errorOnMoveLimbo[errorIdMove])}\r\n {errorOnCreate !== -1 && t(errorOncreateNoR100Device[errorOnCreate])}\r\n \r\n ) : (\r\n t(\"device.new.dialog.description\")\r\n )}\r\n \r\n \r\n \r\n {\r\n setOpenAlert(false);\r\n !isError && resetForm();\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n autoFocus\r\n >\r\n {t(\"devices.setUp.dialog.agree\")}\r\n \r\n \r\n\r\n \r\n {t(\"devices.new.dialog.title\")}\r\n \r\n {t(\"devices.new.dialog.description\")}\r\n \r\n \r\n {\r\n setOpenAlertProccess(false);\r\n resetForm();\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n autoFocus\r\n >\r\n {t(\"devices.new.dialog.agree\")}\r\n \r\n \r\n \r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddDevice;\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n root: {\r\n width: \"100%\",\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n\r\nconst errorOncreateNoR100Device = {\r\n 2: \"device.new.dialog.description.error\",\r\n 3: \"create.device.error.notFoundOrpermission\",\r\n 4: \"create.device.error.duplicateSN\",\r\n};\r\n\r\nconst errorOnGetLimbo = {\r\n 2: \"device.new.dialog.description.error\",\r\n 3: \"create.device.error.notFoundOrpermission\",\r\n 4: \"create.device.error.duplicateSN\",\r\n 5: \"device.new.dialog.description.error_in_use\",\r\n 6: \"device.new.dialog.description.error_wrong_key\",\r\n 7: \"device.new.dialog.description.error_wrong_device\",\r\n};\r\n\r\nconst errorOnMoveLimbo = {\r\n 2: \"device.new.dialog.description.error\",\r\n 3: \"create.device.error.notFoundOrpermission\",\r\n 4: \"create.device.error.duplicateSN\",\r\n 5: \"create.device.error.invalidGroup_coms\",\r\n};\r\n\r\nconst devicesModelsBack = [\"Reanibex 100\", \"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"];\r\n\r\nconst DEFAULT_GPS_POSITION = {\r\n lat: 43.1858435,\r\n lng: -2.5094801,\r\n};\r\n","import { Dialog, DialogTitle, DialogContent, Fade, Popper, DialogActions, Button, Paper, Grid } from \"@material-ui/core\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport * as API_KEYS from \"../../constants/apiKeys\";\r\nimport React, { useState } from \"react\";\r\nimport { LocationOn } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport moment from \"moment\";\r\n\r\nconst MapDialog = ({ isOpen, location, setisMapOpen }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n setisMapOpen(false)}>\r\n {`${t(\"location.modal.title\")} (${moment(location.date_modification).format(\"DD/MM/YYYY · HH:mm\")})`}\r\n \r\n \r\n \r\n \r\n map.setOptions({\r\n disableDefaultUI: false,\r\n panControl: true,\r\n mapTypeControl: true,\r\n mapTypeId: \"satellite\",\r\n streetViewControl: true,\r\n })\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MapDialog;\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst AllGroups = () => {\r\n const { t } = useTranslation();\r\n return (\r\n <>\r\n \r\n {t(\"breadcrumbs.allGroups\")}\r\n \r\n \r\n {t(\"navigation.groups\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AllGroups;\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\n\r\nconst Programs = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(\"breadcrumbs.allPrograms\")}\r\n \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Programs;\r\n/** \r\n \r\n {t(\"breadcrumbs.allPrograms\")}\r\n \r\n */\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst AllDevices = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(\"breadcrumbs.allDevices\")}\r\n \r\n \r\n {t(\"navigation.devices\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AllDevices;\r\n/** \r\n \r\n {t(\"navigation.devices\")}\r\n \r\n \r\n {t(\"breadcrumbs.allDevices\")}\r\n \r\n */\r\n","import React from \"react\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Link } from \"react-router-dom/cjs/react-router-dom\";\r\nimport { Typography } from \"@material-ui/core\";\r\n\r\nconst roles = [\r\n { id: \"915c8c3c-849a-49e0-8032-ac4f9feb2956\", name: \"PROGRAMS_DELETE\" },\r\n { id: \"7fc44b6a-c81d-4423-beb9-ba92417ab865\", name: \"PROGRAMS_ADD\" },\r\n { id: \"7b309536-cf4c-47b3-8a97-71fe2f1a475e\", name: \"PROGRAMS_UPDATE\" },\r\n { id: \"26c214da-3bf8-410e-a861-804ddfb814d9\", name: \"DEVICE_ADD\" },\r\n];\r\n\r\nconst ProgramLink = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n {(authUser) => {\r\n if (authUser.roles.some((role) => roles.some((r) => role.id === r.id))) {\r\n return (\r\n \r\n {t(\"navigation.programs\")}\r\n \r\n );\r\n }\r\n return {t(\"navigation.programs\")};\r\n }}\r\n \r\n );\r\n};\r\n\r\nexport default ProgramLink;\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst GroupDevice = ({ programId, groupId, programsList }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {programsList[programId]}\r\n \r\n {programsList[groupId]}\r\n \r\n \r\n {t(\"navigation.devices\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupDevice;\r\n\r\n/** \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n {programsList[programId]}\r\n \r\n\r\n \r\n {t(\"navigation.groups\")}\r\n \r\n\r\n \r\n {programsList[groupId]}\r\n \r\n\r\n \r\n {t(\"breadcrumbs.allDevices\")}\r\n \r\n */\r\n","import React from \"react\";\r\nimport { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst ProgramGroups = ({ programsList }) => {\r\n const { t } = useTranslation();\r\n const { programId } = useParams();\r\n return (\r\n <>\r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"navigation.groups\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProgramGroups;\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst ProgramDevices = ({ programId, programsList }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"navigation.devices\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProgramDevices;\r\n\r\n/**\r\n \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"breadcrumbs.allDevices\")}\r\n \r\n */\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst AllAccessories = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(\"breadcrumbs.allAccessories\")}\r\n \r\n \r\n {t(\"navigation.accessories\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AllAccessories;\r\n\r\n/** \r\n \r\n {t(\"navigation.accessories\")}\r\n \r\n \r\n {t(\"breadcrumbs.allAccessories\")}\r\n \r\n */\r\n","import React from \"react\";\r\nimport { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst GroupAccessories = ({ programsList }) => {\r\n const { t } = useTranslation();\r\n const { programId, groupId } = useParams();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n {programsList[programId]}\r\n \r\n {programsList[groupId]}\r\n \r\n \r\n {t(\"navigation.accessories\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupAccessories;\r\n\r\n/** \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n {programsList[programId]}\r\n \r\n\r\n \r\n {t(\"navigation.groups\")}\r\n \r\n\r\n \r\n {programsList[groupId]}\r\n \r\n\r\n \r\n {t(\"breadcrumbs.allAccessories\")}\r\n \r\n */\r\n","import React from \"react\";\r\nimport { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst ProgramAccessories = ({ programsList }) => {\r\n const { t } = useTranslation();\r\n const { programId } = useParams();\r\n return (\r\n <>\r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"navigation.accessories\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProgramAccessories;\r\n\r\n/** \r\n \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"breadcrumbs.allAccessories\")}\r\n \r\n */\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst AllUsers = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(\"breadcrumbs.allUsers\")}\r\n \r\n \r\n {t(\"navigation.users\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default AllUsers;\r\n","import React from \"react\";\r\nimport { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst ProgramUsers = ({ programsList }) => {\r\n const { t } = useTranslation();\r\n const { programId } = useParams();\r\n return (\r\n <>\r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"navigation.users\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ProgramUsers;\r\n\r\n/** \r\n \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n \r\n {programsList[programId]}\r\n \r\n \r\n {t(\"breadcrumbs.allUsers\")}\r\n \r\n */\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport ProgramLink from \"./ProgramLink\";\r\n\r\nconst GroupUsers = ({ programsList }) => {\r\n const { t } = useTranslation();\r\n const { programId, groupId } = useParams();\r\n return (\r\n <>\r\n \r\n \r\n \r\n {programsList[programId]}\r\n \r\n {programsList[groupId]}\r\n \r\n \r\n {t(\"navigation.users\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupUsers;\r\n\r\n/** \r\n \r\n {t(\"navigation.programs\")}\r\n \r\n \r\n {programsList[programId]}\r\n \r\n\r\n \r\n {t(\"navigation.groups\")}\r\n \r\n\r\n \r\n {programsList[groupId]}\r\n \r\n\r\n \r\n {t(\"breadcrumbs.allUsers\")}\r\n \r\n */\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst Sources = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(\"navigation.sources\")}\r\n \r\n \r\n {t(\"sources.title\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Sources;\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { Link } from \"react-router-dom\";\r\n\r\nconst ReleaseNotesHeader = () => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <>\r\n \r\n {t(\"navigation.releasesNotes\")}\r\n \r\n \r\n {t(\"releaseNotes.title\")}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReleaseNotesHeader;\r\n","import { Breadcrumbs, Typography } from \"@material-ui/core\";\r\nimport React, { useEffect } from \"react\";\r\nimport { Link, useLocation, useParams, useRouteMatch } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport AllGroups from \"./AllGroups\";\r\nimport Programs from \"./Programs\";\r\nimport Devices from \"./AllDevices\";\r\nimport GroupDevice from \"./GroupDevice\";\r\nimport ProgramGroups from \"./ProgramGroups\";\r\nimport ProgramDevices from \"./ProgramDevices\";\r\nimport AllDevices from \"./AllDevices\";\r\nimport AllAccessories from \"./AllAccessories\";\r\nimport GroupAccessories from \"./GroupAccessories\";\r\nimport ProgramAccessories from \"./ProgramAccessories\";\r\nimport AllUsers from \"./AllUsers\";\r\nimport ProgramUsers from \"./ProgramUsers\";\r\nimport GroupUsers from \"./GroupUsers\";\r\nimport { AuthUserContext, withAuthentication } from \"../Session\";\r\nimport Sources from \"./Sources\";\r\nimport ReleaseNotesHeader from \"./ReleaseNotes\";\r\n\r\nconst PageHeader = (props) => {\r\n const location = useLocation();\r\n const params = useParams();\r\n const match = useRouteMatch();\r\n\r\n const parse = (programsData) => {\r\n var obj = {};\r\n programsData.forEach((p) => {\r\n obj[p.id] = p.name;\r\n p.groups.forEach((g) => {\r\n obj[g.id] = g.name;\r\n });\r\n });\r\n return obj;\r\n };\r\n\r\n return (\r\n
\r\n {match.path == ROUTES.DEVICES_IN_GROUP && (\r\n {(user) => }\r\n )}\r\n {match.path == ROUTES.DEVICES_IN_PROGRAM && (\r\n {(user) => }\r\n )}\r\n {match.path == ROUTES.DEVICES && {(user) => }}\r\n {match.path == ROUTES.PROGRAMS && {(user) => }}\r\n {match.path == ROUTES.GROUPS && {(user) => }}\r\n {match.path === ROUTES.GROUPS_IN_PROGRAM && {(user) => }}\r\n {match.path === ROUTES.ACCESSORIES && {(user) => }}\r\n {match.path === ROUTES.ACCES_IN_GROUP && {(user) => }}\r\n {match.path === ROUTES.ACCES_IN_PROG && {(user) => }}\r\n {match.path === ROUTES.USERS && {(user) => }}\r\n {match.path === ROUTES.USERS_IN_GROUP && {(user) => }}\r\n {match.path === ROUTES.USERS_IN_PROGRAM && {(user) => }}\r\n {match.path === ROUTES.SOURCES && {(user) => }}\r\n {match.path === ROUTES.RELEASE_NOTES && {(user) => }}\r\n
\r\n );\r\n};\r\n\r\nexport default PageHeader;\r\n","export default __webpack_public_path__ + \"static/media/Parches_2.984fe117.png\";","import { Button, Card, CardActionArea, CardActions, CardContent, CardMedia, Chip, Divider, Grid, IconButton, Paper, SvgIcon, Tooltip, Typography } from \"@material-ui/core\";\r\nimport { green, orange, red, lightGreen, lime, yellow, amber, deepOrange, blueGrey, purple, pink, grey } from \"@material-ui/core/colors\";\r\nimport {\r\n Error,\r\n Check,\r\n Warning,\r\n BatteryFull,\r\n Battery90,\r\n Battery80,\r\n Battery60,\r\n Battery50,\r\n Battery30,\r\n Battery20,\r\n BatteryAlert,\r\n FlashOn,\r\n BatteryUnknown,\r\n CropPortrait,\r\n Sync,\r\n Face,\r\n} from \"@material-ui/icons\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport getDeviceStatus from \"../../functions/getDeviceStatus\";\r\nimport Pads_Icon from \"../../assets/images/Parches_2.png\";\r\nimport batteryRemainingCalc from \"../../functions/BatteryChargeCalc\";\r\n\r\nconst deviceStatus = ({ status, t, hasComs, software }) => {\r\n //console.log(\"DEV STATUS ->\", status);\r\n var dev_status = status.device_status; //dev_status_ini;\r\n var type_error = status.main;\r\n\r\n const syncOutOfDate = moment().diff(dev_status?.updateDate, \"months\") >= (hasComs ? 3 : 12) || dev_status?.updateSource === 0;\r\n const batteryResult = batteryRemainingCalc({\r\n hasComs: hasComs,\r\n syncDate: moment(dev_status?.updateDate),\r\n battery: dev_status?.batteryStatus,\r\n software: software,\r\n updateSource: dev_status?.updateSource,\r\n });\r\n const statusErrors = getDeviceStatus(status, syncOutOfDate, batteryResult, software);\r\n const wrongBattery = dev_status?.batteryStatus.name !== \"BEXENCARDIO\" && dev_status?.batteryStatus.name !== \"DEMO\";\r\n const doNotWhowBattery = statusErrors?.errors?.some((s) => s?.id == 31) || wrongBattery;\r\n const demoPadsInNormalBattery = statusErrors?.errors?.some((s) => s?.id == 23);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"device.statusmodal.title\")}\r\n  \r\n {\"·\"}\r\n  \r\n \r\n {status?.is_demo && (\r\n \r\n {\"Demo ·\"}\r\n  \r\n \r\n )}\r\n\r\n \r\n {syncOutOfDate && !wrongBattery && (\r\n \r\n {t(`NotSync.deviceDetailCard.${dev_status?.updateSource === 0 ? (hasComs ? \"DefaultComs\" : \"Default\") : hasComs ? \"coms\" : \"Nocoms\"}`)} \r\n \r\n )}\r\n {wrongBattery && (\r\n \r\n \r\n \r\n {t(\"status.simple.battery_unknown\")}\r\n \r\n \r\n \r\n )}\r\n \r\n\r\n {!!status?.update &&\r\n Object.keys(status?.update).map(\r\n (k, i) => status?.update[k] == 1 && } style={{ margin: 3, backgroundColor: orange[50] }} label={t(k)} />\r\n )}\r\n {!syncOutOfDate &&\r\n getDeviceStatus(status, syncOutOfDate, batteryResult, software).errors.map((err, i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"status.simple.update_date\")}\r\n \r\n  \r\n {\"·\"}\r\n  \r\n {dev_status?.updateSource === 1 && wrongBattery ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {t(`status.simple.update_source_${dev_status?.updateSource}`)}\r\n \r\n\r\n \r\n {t(\"status.simple.test_type\")}\r\n  \r\n {\"·\"}\r\n  \r\n {\r\n // para que no aparezcan datos del test cuando son datos de fábrica, se oculta este campo\r\n dev_status?.updateSource !== 0 ? t(`status.simple.test_type_${dev_status?.testType}`) : t(`status.simple.update_source_${dev_status?.updateSource}`)\r\n }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n {/* */}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {t(\"navigation.accessories\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"common.battery\")}\r\n  \r\n \r\n {status?.is_demo && {` · Demo`}}\r\n {batteryResult < 10 && !syncOutOfDate && !doNotWhowBattery && (\r\n \r\n  \r\n {`· ${t(\"error_eREG_33\")}`}\r\n \r\n )}\r\n {batteryResult > 10 && batteryResult <= 15 && !syncOutOfDate && doNotWhowBattery && (\r\n \r\n  \r\n {`· ${t(\"error_eREG_32\")}`}\r\n \r\n )}\r\n {doNotWhowBattery && (\r\n \r\n  \r\n {`· ${t(\"error_eREG_31.min\")}`}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {syncOutOfDate || doNotWhowBattery ? t(\"common.NotAvailable\") : ` ${batteryResult}% `}\r\n \r\n {t(\"status.simple.battery_charge\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n {t(\"common.pads\")}\r\n \r\n \r\n  {\" \"}\r\n {moment().isAfter(moment(dev_status?.padsStatus?.expiration_date)) && // parches expirados\r\n dev_status?.padsStatus?.is_connected && // parches conectados\r\n !syncOutOfDate && // sincronización realizada\r\n !demoPadsInNormalBattery && // no hay parches demo conectados\r\n moment(dev_status?.padsStatus?.expiration_date).format(\"YYYY-MM\") !== \"0001-01\" && // fecha de los parches no válida\r\n `· ${t(\"error_eREG_20\")}`}\r\n \r\n {syncOutOfDate && moment(dev_status?.padsStatus?.expiration_date).format(\"YYYY-MM\") !== \"0001-01\" && moment().isAfter(moment(dev_status?.padsStatus?.expiration_date)) && (\r\n {t(\"pads.mightExpired.tooltip\")}} placement=\"top\">\r\n {`· ${t(\"pads.mightExpired\")}`}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {status?.is_demo\r\n ? t(\"common.demoMode\")\r\n : demoPadsInNormalBattery\r\n ? t(\"error_eREG_23\")\r\n : syncOutOfDate\r\n ? t(\"common.NotAvailable\")\r\n : dev_status?.padsStatus?.is_connected && moment(dev_status?.padsStatus?.expiration_date).format(\"YYYY-MM-DD\") !== \"0001-01-01\"\r\n ? moment(dev_status?.padsStatus?.expiration_date).format(\"YYYY-MM\")\r\n : t(\"pads.Noconnected\")}\r\n \r\n \r\n {!dev_status?.padsStatus?.is_connected || status?.is_demo || demoPadsInNormalBattery || moment(dev_status?.padsStatus?.expiration_date).format(\"YYYY-MM-DD\") == \"0001-01-01\"\r\n ? \"\"\r\n : t(\"device.details.accesories.expirationDate\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\n//\r\nconst UpdateTimeItem = ({ value, updateSource }) => {\r\n const { t } = useTranslation();\r\n const time = () => {\r\n if (updateSource >= 2 && updateSource <= 4) {\r\n return moment.utc(value).local().format(\"YYYY-MM-DD HH:mm:ss\");\r\n } else {\r\n return moment.utc(value).format(\"YYYY-MM-DD HH:mm:ss\");\r\n }\r\n };\r\n\r\n return time();\r\n};\r\n\r\nconst DeviceStatusChips = ({ property, value, unit, is_id, type, date }) => {\r\n const { t } = useTranslation();\r\n return (\r\n : }\r\n style={{ margin: 3, background: type == \"warning\" ? orange[50] : red[50] }}\r\n label={is_id ? t(property + \"_\" + value, { date: date }) : `${value} ${unit}`}\r\n />\r\n );\r\n};\r\n\r\nconst DeviceStatusText = ({ status, syncOutOfDate, batteryResult, software }) => {\r\n const { t } = useTranslation();\r\n\r\n const [state, setState] = useState(0);\r\n\r\n useEffect(() => {\r\n if (!!status) {\r\n const errors = getDeviceStatus(status, syncOutOfDate, batteryResult, software);\r\n /* Para evitar mostar el estado de los test si está desincronizado, \r\n se comprueba primero la fecha de la sincronización */\r\n if (syncOutOfDate) {\r\n setState(errors.statusResult >= 2 ? errors.statusResult : 1);\r\n } else {\r\n setState(errors.statusResult);\r\n }\r\n }\r\n }, [status]);\r\n\r\n return (\r\n {` ${t(\"status.simple.state_\" + state)} `}\r\n );\r\n};\r\n\r\nconst BatteryItem = ({ value, syncOutOfDate }) => {\r\n const ICONSIZE = 48;\r\n if (syncOutOfDate) {\r\n return ;\r\n } else {\r\n return (\r\n <>\r\n {value === 100 && }\r\n {value !== 100 && value >= 90 && }\r\n {value < 90 && value >= 80 && }\r\n {value < 80 && value >= 60 && }\r\n {value < 60 && value >= 50 && }\r\n {value < 50 && value > 20 && }\r\n {value <= 20 && value > 10 && }\r\n {value <= 10 && }\r\n \r\n );\r\n }\r\n};\r\n\r\nexport default deviceStatus;\r\n\r\nvar dev_status_ini = {\r\n updateDate: \"29/07/2021\",\r\n updateSource: 4, // 0: Unknown, 1: USB, 2: Sigfox, 3: Wifi, SigfoxNew:4\r\n testType: 40, // type of test\r\n Temperature: 35,\r\n errorNum: 0,\r\n testResult: 0, // 0: Ok\r\n batteryStatus: {\r\n expiration_date: \"20/03/2026\",\r\n nominal_capacity: \"4200\",\r\n remaining_percentage: \"50\",\r\n is_connected: true,\r\n },\r\n padsStatus: {\r\n expiration_date: \"20/09/2023\",\r\n is_connected: false,\r\n event_time: \"11:21:45\",\r\n envent_id: 0,\r\n },\r\n\r\n commsStatus: {\r\n accelerometer: 0,\r\n wifi: 0,\r\n sigfox: 0,\r\n gps: 0,\r\n },\r\n errorStatus: {\r\n error_id: 0,\r\n test_result: 0,\r\n },\r\n\r\n sigfoxNewErrorStatus: {\r\n error_code_defib: 5,\r\n error_code_ADS: 34,\r\n error_code_dc_18v: 0,\r\n error_code_dc_main: 0,\r\n error_code_audio: 0,\r\n error_electrodes: 0,\r\n battery_soc: 0,\r\n battery_volt: 0,\r\n battery_Tmax: 0,\r\n battery_Tmin: 0,\r\n },\r\n};\r\n","import { Button, Card, CardActionArea, CardActions, CardContent, CardMedia, Divider, Grid, IconButton, Paper, Typography } from \"@material-ui/core\";\r\nimport { green, orange, red, lightGreen, lime, yellow, amber, deepOrange, blueGrey } from \"@material-ui/core/colors\";\r\nimport { Error, Check, Warning, BatteryFull, BatteryAlert, FlashOn, CropPortrait } from \"@material-ui/icons\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport moment from \"moment\";\r\nimport Pads_Icon from \"../../assets/images/Parches_2.png\";\r\n\r\nconst DeviceStatusOthers = ({ device }) => {\r\n const getExpirationState = (expiration_date) => {\r\n var epiration_timestamp = Date.parse(expiration_date);\r\n var current_timestamp = new Date().getTime();\r\n\r\n if (epiration_timestamp <= current_timestamp) {\r\n return 2; // ERROR\r\n } else if (epiration_timestamp <= current_timestamp + 7776000000) {\r\n return 1; // WARNING\r\n }\r\n return 0; // SUCCESS\r\n };\r\n\r\n const mainState = () => {\r\n var bat_state = getExpirationState(device.expirationDateBatt);\r\n var pads_state = getExpirationState(device.expirationDatePads);\r\n\r\n if (bat_state === 2 || pads_state === 2) return 2;\r\n if (bat_state === 1 || pads_state === 1) return 1;\r\n return 0;\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst BatteryDate = ({ expiration_state, expiration_date }) => {\r\n const { t } = useTranslation();\r\n //console.log(expiration_state);\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"common.battery\")}\r\n \r\n   {expiration_state === 2 && `· ${t(\"error_eREG_30\")}`}\r\n \r\n \r\n \r\n \r\n {expiration_date}\r\n \r\n {t(\"device.details.accesories.expirationDate\")}\r\n \r\n \r\n {expiration_state === 2 && }\r\n {expiration_state === 1 && }\r\n {expiration_state === 0 && }\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst PadsDate = ({ expiration_state, expiration_date }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"common.pads\")}\r\n \r\n   {expiration_state === 2 && `· ${t(\"error_eREG_20\")}`}\r\n \r\n \r\n \r\n \r\n {expiration_date}\r\n \r\n {t(\"device.details.accesories.expirationDate\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst DeviceStatusItem = ({ device_status }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n {device_status === 0 && }\r\n {device_status === 1 && }\r\n {device_status === 2 && }\r\n\r\n \r\n {t(\"status.simple.state_\" + device_status)}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeviceStatusOthers;\r\n","import { Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Grid, Typography } from \"@material-ui/core\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport * as API_KEYS from \"../../constants/apiKeys\";\r\nimport React, { useState } from \"react\";\r\nimport { LocationOn } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { orange, red } from \"@material-ui/core/colors\";\r\nimport DeviceStatus from \"../../components/DeviceStatusModal/DeviceStatus\";\r\nimport DeviceStatusOthers from \"../../components/DeviceStatusModal/DeviceStatusOthers\";\r\nimport LoadingPage from \"../LoadingPage\";\r\n\r\nconst DeviceStatusModal = ({ isStatusModalOpen, device, setisStatusModalOpen }) => {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n setisStatusModalOpen(false)}>\r\n {device.name}\r\n \r\n {device?.status && device?.status?.device_status && device?.model == \"Reanibex 100\" ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeviceStatusModal;\r\n","import React, { useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { FlashOn, Notifications } from \"@material-ui/icons\";\nimport { red } from \"@material-ui/core/colors\";\nimport moment, { utc } from \"moment\";\n\nconst DeviceUsageStatus = ({ active_notifications }) => {\n const { t } = useTranslation();\n\n return (\n <>\n \n \n {t(\"use_notifications.pending.title\")}\n \n \n {[...active_notifications].reverse().map((x) => (\n \n ))}\n \n );\n};\n\nconst UseNotification = ({ date, type, t }) => (\n \n \n \n {t(\"use_notifications.item\")}\n \n \n {moment.utc(date).local().format(\"YYYY-MM-DD HH:mm:ss\")}\n \n \n);\n\nexport default DeviceUsageStatus;\n","import React, { useEffect, useState } from \"react\";\nimport { useTranslation } from \"react-i18next\";\nimport { Grid, Typography } from \"@material-ui/core\";\nimport { FlashOn, Notifications } from \"@material-ui/icons\";\nimport { red, grey } from \"@material-ui/core/colors\";\nimport LoadingPage from \"../LoadingPage\";\nimport moment from \"moment\";\n// getNotificationHistory\n\nconst DeviceUsageHistory = ({ notifications }) => {\n const { t } = useTranslation();\n\n return (\n <>\n \n \n {t(\"use_notifications.history.title\")}\n \n \n {/*!isNotificationsLoaded && */}\n {notifications.length === 0 ? (\n \n ) : (\n <>\n {[...notifications].reverse().map((x) => (\n \n ))}\n \n )}\n \n );\n};\n\nconst EmptyNotification = ({ t }) => {\n return (\n \n \n {t(\"use_notifications.history.empty\")}\n \n \n );\n};\n\nconst UseNotification = ({ date, t }) => (\n \n \n \n {t(\"use_notifications.item\")}\n \n \n {moment.utc(date).local().format(\"YYYY-MM-DD HH:mm:ss\")}\n \n \n);\n\nexport default DeviceUsageHistory;\n","import { Button, DialogActions, Dialog, DialogContent, Grid, Typography } from \"@material-ui/core\";\nimport { useTranslation } from \"react-i18next\";\nimport DeviceUsageStatus from \"../../components/DeviceUseEventModal/DeviceUsageStatus\";\nimport DeviceUsageHistory from \"../../components/DeviceUseEventModal/DeviceUsageHistory\";\nimport React, { useEffect, useState } from \"react\";\nimport * as DATANETAPI from \"../../components/DataNet/DataNet\";\nimport LoadingPage from \"../LoadingPage\";\n\nconst DeviceUseEventModal = ({ isUseEventModalOpen, currentNotifications, setisUseEventModalOpen, notifications, isNotificationsLoaded, serial }) => {\n const { t } = useTranslation();\n const [pending, setPending] = useState(true);\n\n const setUseEventAsReviewed = () => {\n DATANETAPI.setReviewNofitifications(notifications).then((snap) => {\n //console.log(\"NOTIFICATION REVIEW\", snap);\n if (snap.status == 1) {\n setPending(false);\n }\n });\n };\n return (\n setisUseEventModalOpen(false)}>\n \n \n {currentNotifications.length > 0 && pending && }\n {!isNotificationsLoaded ? (\n \n ) : (\n <>\n {currentNotifications.length === 0 || !pending || (currentNotifications.length > 0 && notifications.length > 0) ? (\n \n ) : (\n <>\n )}\n \n )}\n \n \n \n {currentNotifications.length > 0 && pending && (\n \n )}\n \n \n \n );\n};\n\nexport default DeviceUseEventModal;\n","export default __webpack_public_path__ + \"static/media/sigfox-logo-vector.62bbbe08.png\";","import {\r\n Container,\r\n Grid,\r\n IconButton,\r\n InputAdornment,\r\n LinearProgress,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip,\r\n Hidden,\r\n Typography,\r\n Fab,\r\n makeStyles,\r\n Zoom,\r\n Badge,\r\n Chip,\r\n} from \"@material-ui/core\";\r\nimport { green, orange, red, grey, purple, blueGrey } from \"@material-ui/core/colors\";\r\nimport { Add, Check, LocationOn, Search, Wifi, WifiOff, Error, Settings, NewReleases, Description, FlashOn, Warning, SyncProblem, Event, RemoveRedEye, InfoOutlined } from \"@material-ui/icons\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport AddDevice from \"../components/AddDevice\";\r\nimport MapDialog from \"../components/MapDialog\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport DeviceSetupForm from \"../components/DeviceSetupForm\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport * as DATANETAPI from \"../components/DataNet/DataNet\";\r\nimport DeviceStatusModal from \"../components/DeviceStatusModal\";\r\nimport { AuthUserContext } from \"../components/Session\";\r\nimport DeviceUseEventModal from \"../components/DeviceUseEventModal\";\r\nimport { set } from \"lodash\";\r\nimport ErrorDialog from \"../components/ErrorDialog\";\r\nimport moment from \"moment\";\r\nimport getDeviceStatus from \"../functions/getDeviceStatus\";\r\nimport Pads_Icon from \"../assets/images/Parches_2.png\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport batteryRemainingCalc from \"../functions/BatteryChargeCalc\";\r\nimport SigfoxLogo from \"../assets/images/sigfox-logo-vector.png\";\r\nimport getDeviceComunications from \"../functions/getDeviceComunications\";\r\n\r\n/* valores de periodos para dar mensaje de error de conexión */\r\nconst TRASNMISSION_FREC = {\r\n 0: { gap: 3, type: \"d\" },\r\n 1: { gap: 2, type: \"w\" },\r\n 2: { gap: 1, type: \"M\" },\r\n};\r\n\r\nconst DevicesPage = () => {\r\n const history = useHistory();\r\n const { programId, groupId } = useParams();\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n\r\n const [isMapOpen, setisMapOpen] = useState(false);\r\n const [deviceLocation, setDeviceLocation] = useState({});\r\n const [devices, setDevices] = useState([]);\r\n const [areDevicesLoaded, setAreDevicesLoaded] = useState(false);\r\n const [isFiltered, setisFiltered] = useState(false);\r\n const [addNewOpen, setaddNewOpen] = useState(false);\r\n const [deviceSetupOpen, setdeviceSetupOpen] = useState(false);\r\n const [isNewVersion, setIsNewVersion] = useState(false);\r\n const [isStatusModalOpen, setisStatusModalOpen] = useState(false);\r\n const [deviceStatus, setDeviceStatus] = useState({});\r\n const [useEventModalOpen, setisUseEventModalOpen] = useState(false);\r\n const [usageNotifications, setUsageNotifications] = useState({});\r\n const [notificationsHistory, setNotificationsHistory] = useState([]);\r\n const [isNotificationsHisLoaded, setIsNotificationHisLoaded] = useState(false);\r\n const [filterValue, setFilterValue] = useState(\"\");\r\n const [newInterval, setNewInterval] = useState(0);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [isInitialLoadDone, setIsInitialLoadDone] = useState(false);\r\n\r\n const filterDevices = (event_value, list_devices) => {\r\n let filteredDevices = [];\r\n list_devices.forEach((device) => {\r\n if (device.name.toUpperCase().concat(device.serial.toUpperCase()).concat(device.model.toUpperCase()).includes(event_value.toUpperCase())) {\r\n filteredDevices.push(device);\r\n }\r\n });\r\n setDevices(filteredDevices);\r\n };\r\n\r\n useEffect(() => {\r\n loadDevices();\r\n loadNotificationHistory();\r\n }, [newInterval]);\r\n\r\n useEffect(() => {\r\n filterValue !== \"\" && setisFiltered(true);\r\n filterDevices(filterValue, devicesBack);\r\n }, [filterValue]);\r\n\r\n const displayMap = (location) => {\r\n setDeviceLocation(location);\r\n setisMapOpen(true);\r\n };\r\n\r\n const loadDevices = () => {\r\n setAreDevicesLoaded(false);\r\n if (!addNewOpen) {\r\n DATANETAPI.getDevices(programId, groupId).then((snap) => {\r\n if (snap.status >= 0) {\r\n if (snap.data !== undefined) {\r\n if ((devicesBack.length !== 0 && snap.data.length !== 0) || devicesBack.length === 0) {\r\n devicesBack = snap.data;\r\n }\r\n\r\n devicesBack.forEach((dev) => {\r\n if (dev.status.main !== 2 && dev.model === \"Reanibex 100\") {\r\n let statusCount = 0;\r\n Object.keys(dev.status.update).map((u) => {\r\n statusCount += dev.status.update[u];\r\n });\r\n if (statusCount > 0) {\r\n dev.status.main = 1;\r\n }\r\n }\r\n });\r\n filterDevices(filterValue, devicesBack);\r\n setAreDevicesLoaded(true);\r\n setIsInitialLoadDone(true);\r\n } else {\r\n setDevices([]);\r\n setAreDevicesLoaded(true);\r\n setIsInitialLoadDone(true);\r\n }\r\n } else {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setDevices([]);\r\n setAreDevicesLoaded(true);\r\n setIsInitialLoadDone(true);\r\n }\r\n });\r\n }\r\n };\r\n\r\n const loadNotificationHistory = () => {\r\n DATANETAPI.getNotificationHistory().then((snap) => {\r\n if (snap !== undefined && snap.data !== null && snap.data !== undefined && snap.data.history !== undefined && snap.data.history.notifications !== undefined) {\r\n if (snap.data.history.notifications.length > 0) {\r\n setNotificationsHistory(snap.data.history.notifications);\r\n } else {\r\n setNotificationsHistory([]);\r\n }\r\n setIsNotificationHisLoaded(true);\r\n } else {\r\n snap?.status < 0 && setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setIsNotificationHisLoaded(true);\r\n setNotificationsHistory([]);\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let reaload = setInterval(() => {\r\n setNewInterval((prev) => !prev);\r\n }, 40 * 1000);\r\n\r\n return () => {\r\n clearTimeout(reaload);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setDevices([]);\r\n devicesBack = [];\r\n loadDevices();\r\n loadNotificationHistory();\r\n }, [groupId, programId, addNewOpen]);\r\n\r\n useEffect(() => {\r\n DATANETAPI.newVersionGroup(groupId).then((snap) => {\r\n if (snap?.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setIsNewVersion(false);\r\n } else {\r\n if (snap?.status === 1) {\r\n setIsNewVersion(snap.data.is_available);\r\n } else {\r\n setIsNewVersion(false);\r\n }\r\n }\r\n });\r\n }, [deviceSetupOpen, programId, groupId]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n setFilterValue(e.target.value);\r\n }}\r\n margin=\"dense\"\r\n placeholder={t(\"common.search\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n {(devices.some((d) => d.model === \"Reanibex 100\") || isNewVersion) && (\r\n \r\n \r\n {t(\"devices.toolbar.tooltip.settingsDisabled\")}\r\n \r\n ) : (\r\n \r\n {isNewVersion ? t(\"devices.setUp.info.update_opt\") : t(\"devices.toolbar.tooltip.settingsEnabled\")}\r\n \r\n )\r\n }\r\n >\r\n \r\n setdeviceSetupOpen(true)}>\r\n {isNewVersion ? : }\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n {t(\"devices.toolbar.tooltip.addDevice\")}\r\n \r\n }\r\n >\r\n setaddNewOpen(true)}>\r\n \r\n \r\n \r\n {{(authUser) => }}\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!areDevicesLoaded && }\r\n \r\n \r\n \r\n {t(\"common.state\")}\r\n \r\n {t(\"common.name\")}\r\n \r\n {t(\"common.serialNumber\")}\r\n\r\n \r\n {t(\"common.model\")}\r\n \r\n \r\n {t(\"common.software\")}\r\n \r\n \r\n {t(\"common.usage\")}\r\n \r\n\r\n \r\n {t(\"common.location\")}\r\n \r\n \r\n {t(\"common.communications\")}\r\n \r\n \r\n {t(\"common.connected\")}\r\n \r\n {t(\"description\")}\r\n \r\n \r\n \r\n {!isInitialLoadDone\r\n ? [0, 1, 2, 3, 4, 5, 6, 7, 8, 9].map((i) => )\r\n : devices.map((row, index) => (\r\n = (row?.connectivity ? 3 : 12),\r\n batteryRemainingCalc({\r\n software: row?.soft_version,\r\n syncDate: moment(row?.status?.updateDate),\r\n battery: row?.status?.device_status?.batteryStatus,\r\n updateSource: row?.status?.device_status?.updateSource,\r\n })\r\n ).statusResult > 0 && red[50]\r\n : (moment(row?.expirationDatePads).isBefore(moment().add(90, \"days\")) || moment(row?.expirationDateBatt).isBefore(moment().add(90, \"days\"))) && red[50],\r\n }}\r\n >\r\n \r\n {row.model === \"Reanibex 100\" ? (\r\n {\r\n setDeviceStatus(row);\r\n setisStatusModalOpen(true);\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n {\r\n setDeviceStatus(row);\r\n setisStatusModalOpen(true);\r\n }}\r\n >\r\n {moment(row?.expirationDatePads).isBefore(moment()) || moment(row?.expirationDateBatt).isBefore(moment()) ? (\r\n \r\n ) : moment(row?.expirationDatePads).isBefore(moment().add(90, \"days\")) || moment(row?.expirationDateBatt).isBefore(moment().add(90, \"days\")) ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {row?.status?.is_demo && (\r\n \r\n DEMO\r\n \r\n )}\r\n {` ${row.name}`}\r\n \r\n \r\n\r\n {row.serial}\r\n\r\n \r\n {row.model}\r\n \r\n\r\n \r\n \r\n {!row.soft_version ? (\r\n -\r\n ) : (\r\n <>\r\n {!row.status ? (\r\n -\r\n ) : !row.status.hasOwnProperty(\"update\") ? (\r\n <>{row.soft_version}\r\n ) : (\r\n <>\r\n {row?.status.update?.has_new_audio || row.status.update?.has_new_cfg || row?.status.update?.has_new_soft ? (\r\n \r\n {\r\n setDeviceStatus(row);\r\n setisStatusModalOpen(true);\r\n }}\r\n >\r\n \r\n \r\n  {row.soft_version} \r\n \r\n \r\n \r\n ) : (\r\n <>{row.soft_version}\r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n \r\n \r\n {row.model === \"Reanibex 100\" && row.soft_version !== undefined && row.soft_version > \"0206\" ? (\r\n \r\n {(authUser) => (\r\n <>\r\n {!authUser.active_notifications || !authUser.active_notifications.hasOwnProperty(\"notification\") ? (\r\n {\r\n setDeviceStatus(row);\r\n setisStatusModalOpen(true);\r\n }}\r\n >\r\n \r\n \r\n ) : (\r\n <>\r\n {authUser.active_notifications.notification.some((x) => x.device_info.serial == row.serial && x.type == 1) ? (\r\n {\r\n setDeviceStatus(row);\r\n setisUseEventModalOpen(true);\r\n setUsageNotifications(authUser.active_notifications.notification.filter((x) => x.device_info.serial == row.serial && x.type == 1));\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n ) : (\r\n {\r\n setDeviceStatus(row);\r\n setisUseEventModalOpen(true);\r\n setUsageNotifications([]);\r\n }}\r\n >\r\n \r\n \r\n )}\r\n \r\n )}\r\n \r\n )}\r\n \r\n ) : (\r\n \"-\"\r\n )}\r\n \r\n \r\n \r\n\r\n \r\n \r\n displayMap(row.location)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n\r\n {row.model === \"Reanibex 100\" ? (\r\n getDeviceComunications(row.options).map((v, i) => )\r\n ) : row.unabiz_alert ? (\r\n <>\r\n {t(\"unabiz.standalone.desc\")}} placement=\"top\">\r\n }\r\n onClick={() => {}}\r\n size=\"small\"\r\n color=\"secondary\"\r\n style={{ borderRadius: 9, marginRight: 6 }}\r\n />\r\n \r\n \r\n ) : (\r\n t(\"not_available\")\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n history.push(ROUTES.DEVICE + \"/\" + row.id);\r\n window.scrollTo(0, 0);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n ))}\r\n \r\n
\r\n {devices.length === 0 && areDevicesLoaded && (\r\n \r\n \r\n {t(\"devices.notFound\")}\r\n \r\n \r\n )}\r\n
\r\n\r\n \r\n \r\n x.device_info.serial === deviceStatus.serial && x.type === 1)}\r\n isNotificationsLoaded={isNotificationsHisLoaded}\r\n serial={deviceStatus.serial}\r\n />\r\n
\r\n
\r\n setConnectionErrorMsg(\"\")} />\r\n 0 && devices.some((d) => d.model === \"Reanibex 100\") && !!groupId} timeout={250} unmountOnExit>\r\n setdeviceSetupOpen(true)}>\r\n \r\n {t(\"group.r100Conf.button\")}\r\n \r\n \r\n
\r\n );\r\n};\r\n\r\nconst LoadingRows = ({ ind }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n\r\nconst TransmissionCheckItem = ({ deviceData }) => {\r\n const { t } = useTranslation();\r\n console.log(deviceData);\r\n if (!deviceData.connectivity) {\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n const transmission = !!deviceData?.transmission_mode?.transmit_frequency ? TRASNMISSION_FREC[deviceData?.transmission_mode?.transmit_frequency] : TRASNMISSION_FREC[0];\r\n console.log('Transmission data is incomplete:', transmission);\r\n const deviceLasttransmission = deviceData?.status?.device_status?.updateDate;\r\n if (!moment().subtract(transmission?.gap, transmission?.type).isAfter(moment(deviceLasttransmission))) {\r\n return (\r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n \r\n \r\n );\r\n }\r\n }\r\n};\r\n\r\nconst StatusIcon = ({ row, battery }) => {\r\n const { status, connectivity } = row;\r\n const outOfSync = moment().diff(status?.updateDate, \"months\") >= (connectivity ? 3 : 12);\r\n\r\n if (!!status) {\r\n const state = getDeviceStatus(status, outOfSync, battery).statusResult;\r\n if (state === 0) return ;\r\n else if (state === 1) return ;\r\n else return ;\r\n } else {\r\n return ;\r\n }\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(DevicesPage);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n Fab: {\r\n color: blueGrey[50],\r\n position: \"fixed\",\r\n bottom: theme.spacing(3),\r\n right: theme.spacing(3),\r\n borderRadius: 19,\r\n textTransform: \"none\",\r\n },\r\n table: {\r\n [theme.breakpoints.down(\"md\")]: {\r\n marginBottom: theme.spacing(7),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n marginBottom: theme.spacing(3),\r\n },\r\n },\r\n}));\r\n\r\nvar devicesBack = [];\r\n","import {\r\n Avatar,\r\n Button,\r\n Card,\r\n CardActionArea,\r\n CardActions,\r\n CardContent,\r\n CardMedia,\r\n Chip,\r\n Collapse,\r\n Divider,\r\n Grid,\r\n IconButton,\r\n List,\r\n ListItem,\r\n ListItemAvatar,\r\n ListItemText,\r\n ListSubheader,\r\n makeStyles,\r\n Menu,\r\n MenuItem,\r\n Paper,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { Add, Edit, Info, InfoOutlined, InfoRounded, More, MoreVert, Settings } from \"@material-ui/icons\";\r\nimport { Error, ExpandMore, Image, Person, Room, WarningOutlined, DeleteRounded } from \"@material-ui/icons\";\r\nimport clsx from \"clsx\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport * as COMS from \"../../constants/comsTypes\";\r\nimport MapDialog from \"../MapDialog\";\r\nimport { blueGrey, orange, purple, red } from \"@material-ui/core/colors\";\r\nimport DeviceSetupForm from \"../DeviceSetupForm\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport AddDevice from \"../AddDevice\";\r\n\r\nconst GroupCard = ({ data, edit, index }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [deviceSetupOpen, setDeviceSetupOpen] = useState(false);\r\n const [openAddDevice, setOpenAddDevice] = useState(false);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {data.name}\r\n \r\n \r\n {data.def}\r\n \r\n \r\n\r\n \r\n edit(data.groupid)}*/>\r\n \r\n \r\n \r\n {\r\n handleClose();\r\n edit(data.groupid);\r\n }}\r\n >\r\n \r\n {t(\"common.edit\")}\r\n \r\n {\r\n handleClose();\r\n setOpenAddDevice(true);\r\n }}\r\n >\r\n \r\n {t(\"devices.toolbar.tooltip.addDevice\")}\r\n \r\n {\r\n setDeviceSetupOpen(true);\r\n handleClose();\r\n }}\r\n >\r\n \r\n {t(\"group.r100Conf.button\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"GourCard.Coms\")}\r\n \r\n {t(\"groudCard.typeComsDesc\")}\r\n {COMS.STANDALONE}\r\n \r\n }\r\n >\r\n \r\n \r\n \r\n\r\n {data?.comsTypes?.map((v, i) => (\r\n \r\n ))}\r\n {(!!!data?.comsTypes || data?.comsTypes?.length == 0) && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n {t(\"groups.card.coordinators\")}\r\n \r\n }\r\n style={{ marginTop: 16, fontWeight: 600 }}\r\n >\r\n {data.coordinators.map((coordinator, i) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n window.scrollTo(0, 0);\r\n history.push(`${ROUTES.PROGRAMS}/${data.programid + ROUTES.GROUPS}/${data.groupid + ROUTES.DEVICES}`);\r\n }}\r\n >\r\n {t(\"groupsCard.ViewDevices\", { number: data.devicesnumber })}\r\n \r\n \r\n {{(authUser) => }}\r\n {deviceSetupOpen && (\r\n \r\n )}\r\n \r\n );\r\n};\r\n\r\nexport default GroupCard;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n //padding: 6,\r\n borderRadius: 12,\r\n background: \"#f7f8fa\",\r\n },\r\n media: {\r\n height: 140,\r\n },\r\n expand: {\r\n transform: \"rotate(0deg)\",\r\n marginLeft: \"auto\",\r\n transition: theme.transitions.create(\"transform\", {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: \"rotate(180deg)\",\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5),\r\n },\r\n}));\r\n","import React from \"react\";\r\nimport { Card, CardActionArea, CardContent, CardMedia, Divider, Grid, Button, Typography, CardActions, makeStyles, IconButton, List, ListItem, ListItemText } from \"@material-ui/core\";\r\nimport { ExpandMore, Room, Person, Edit } from \"@material-ui/icons\";\r\nimport Skeleton from \"@material-ui/lab/Skeleton\";\r\nimport clsx from \"clsx\";\r\n\r\nconst GroupSkeletonCard = ({ i }) => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {[0, 1].map((v, i) => (\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n }\r\n style={{ marginTop: 16 }}\r\n >\r\n {[0].map((coordinator) => (\r\n \r\n } secondary={} />\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n\r\n {/*} */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupSkeletonCard;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n //padding: 6,\r\n borderRadius: 12,\r\n background: \"#f7f8fa\",\r\n },\r\n media: {\r\n height: 140,\r\n },\r\n expand: {\r\n transform: \"rotate(0deg)\",\r\n marginLeft: \"auto\",\r\n transition: theme.transitions.create(\"transform\", {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: \"rotate(180deg)\",\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5),\r\n },\r\n}));\r\n","import {\r\n Avatar,\r\n Button,\r\n Container,\r\n FormControl,\r\n Grid,\r\n InputAdornment,\r\n InputLabel,\r\n ListItemAvatar,\r\n ListItemText,\r\n ListItem,\r\n makeStyles,\r\n MenuItem,\r\n Paper,\r\n Select,\r\n Slider,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { AccountCircle } from \"@material-ui/icons\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst FilterModal = (props) => {\r\n const {\r\n coordinatorsList,\r\n maxDevices,\r\n maxRescuers,\r\n setFilter,\r\n handleClose,\r\n filterObject,\r\n } = props;\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n\r\n const [coordinator, setCorrdinator] = useState(\r\n !!filterObject ? filterObject.coordinator : \"\"\r\n );\r\n const [devicesNumber, setDevicesNumber] = useState(\r\n !!filterObject\r\n ? [filterObject.devices.min, filterObject.devices.max]\r\n : [0, maxDevices]\r\n );\r\n const [rescuersNumber, setrescuersNumber] = useState(\r\n !!filterObject\r\n ? [filterObject.rescuers.min, filterObject.rescuers.max]\r\n : [0, maxRescuers]\r\n );\r\n const [groupState, setGroupState] = useState(\r\n !!filterObject ? filterObject.status : -1\r\n );\r\n\r\n const handleCoordinatorChange = (event, newValue) => {\r\n // console.log(\"nuevo valor\", event.target.value);\r\n setCorrdinator(event.target.value);\r\n };\r\n\r\n const handleStateChange = (event) => {\r\n setGroupState(event.target.value);\r\n };\r\n\r\n const devicesHandleChange = (event, newValue) => {\r\n setDevicesNumber(newValue);\r\n };\r\n\r\n const rescuersHandleChange = (event, newValue) => {\r\n setrescuersNumber(newValue);\r\n };\r\n\r\n const valuetext = (value) => {\r\n return `${value}`;\r\n };\r\n\r\n const filter = () => {\r\n let filterObject = {};\r\n filterObject.coordinator = coordinator !== null && coordinator;\r\n filterObject.devices = { min: devicesNumber[0], max: devicesNumber[1] };\r\n filterObject.rescuers = { min: rescuersNumber[0], max: rescuersNumber[1] };\r\n filterObject.status = groupState;\r\n setFilter(filterObject);\r\n handleClose(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"groups.filter.title\")} \r\n \r\n \r\n \r\n \r\n {t(\"common.coordinator\")}\r\n \r\n \r\n \r\n None\r\n \r\n {coordinatorsList.map((coordinator) => (\r\n \r\n \r\n \r\n \r\n {coordinator.name.charAt(0).toUpperCase()}\r\n \r\n \r\n \r\n \r\n {coordinator.email}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"common.state\")}\r\n \r\n \r\n {t(\"common.all\")}\r\n {t(\"common.correct\")}\r\n {t(\"common.warning\")}\r\n {t(\"common.actionrequired\")}\r\n \r\n \r\n \r\n \r\n
\r\n \r\n {t(\"groups.filter.deviceNumber\")}\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n \r\n {t(\"groups.filter.rescuerNumber\")}\r\n \r\n \r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default FilterModal;\r\n\r\nconst useStyles = makeStyles({\r\n formcontainer: {\r\n padding: 24,\r\n },\r\n});\r\n","import React, { useEffect, useState } from \"react\";\r\nimport GoogleMapReact from \"google-map-react\";\r\nimport * as API_KEYS from \"../../constants/apiKeys\";\r\nimport { Button, Grid, Paper, Typography, makeStyles } from \"@material-ui/core\";\r\nimport { LocationOn } from \"@material-ui/icons\";\r\nimport LoadingPage from \"../LoadingPage\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst MapModal = (props) => {\r\n const classes = useStyles();\r\n\r\n const { handleClose, groups } = props;\r\n const [location, setlocation] = useState({});\r\n const [isLoaded, setisLoaded] = useState(false);\r\n const { t } = useTranslation();\r\n\r\n useEffect(() => {\r\n let lat = 0;\r\n let lng = 0;\r\n groups.map((group) => {\r\n lat += group.location.latitude;\r\n lng += group.location.longitude;\r\n });\r\n setlocation({ lat: lat / groups.length, lng: lng / groups.length });\r\n setisLoaded(true);\r\n }, []);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {!isLoaded ? (\r\n \r\n ) : (\r\n \r\n {groups.map((gr) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default MapModal;\r\n\r\nconst useStyles = makeStyles({\r\n formcontainer: {\r\n padding: 24,\r\n },\r\n});\r\n","import { Modal, Fade, Paper, makeStyles, Container, Grid, Dialog, AppBar, Toolbar, Slide, Button, Typography, IconButton } from \"@material-ui/core\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport AddGroupModal from \"./AddGroupModal\";\r\nimport FilterModal from \"./FilterModal\";\r\nimport MapModal from \"./MapModal\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst GroupsModals = (props) => {\r\n const classes = useStyles();\r\n const { open, handleClose, type } = props;\r\n const { t } = useTranslation();\r\n\r\n if (type == \"add\") {\r\n return (\r\n \r\n \r\n \r\n handleClose(false)} aria-label=\"close\">\r\n \r\n \r\n \r\n {t(\"groups.new.title.add\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n handleClose(false)}\r\n closeAfterTransition\r\n //BackdropComponent={Backdrop}\r\n BackdropProps={{\r\n timeout: 500,\r\n }}\r\n >\r\n \r\n \r\n {type == \"map\" && }\r\n {type == \"filter\" && }\r\n {type == \"add\" && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default GroupsModals;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n}));\r\n","import React from \"react\";\r\nimport { Modal, Paper, makeStyles, Container, Grid, Dialog, AppBar, Toolbar, Slide, Button, Typography, IconButton } from \"@material-ui/core\";\r\nimport AddGroupModal from \"./AddGroupModal\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst GroupForm = (props) => {\r\n const classes = useStyles();\r\n const { open, handleClose, type, isNew } = props;\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n handleClose(false)} aria-label=\"close\">\r\n \r\n \r\n \r\n {isNew ? t(\"groups.new.title.add\") : t(\"groups.new.title.edit\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default GroupForm;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n}));\r\n","import { Chip, Container, Fade, Grid, IconButton, InputAdornment, Tooltip, Paper, TextField, Typography, Avatar, Card, CardActionArea } from \"@material-ui/core\";\r\nimport { AddRounded, Delete, Add, Map, Search } from \"@material-ui/icons\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useParams } from \"react-router-dom\";\r\n//import { DATAgetAllGroups, getAvailableGroups} from \"../components/DataNet/DataNet\";\r\nimport * as DATANETAPI from \"../components/DataNet/DataNet\";\r\nimport GroupCard from \"../components/GroupCard\";\r\nimport GroupSkeletonCard from \"../components/GorupSkeletonCard\";\r\nimport GroupsModals from \"../components/GroupsModals\";\r\nimport GroupForm from \"../components/GroupsModals/GroupForm\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport ErrorDialog from \"../components/ErrorDialog\";\r\n\r\nconst GroupsPage = (props) => {\r\n const { t } = useTranslation();\r\n const { programId } = useParams();\r\n const { authUser } = props;\r\n\r\n const [filterModalOpen, setfilterModalOpen] = useState(false);\r\n const [mapModalOpen, setmapModalOpen] = useState(false);\r\n const [addModalOpen, setAddModalOpen] = useState(false);\r\n const [updatedData, setUpdatedData] = useState(0);\r\n const [groups, setGroups] = useState([]);\r\n //const [coordinators, setCoordinators] = useState([]);\r\n const [isFiltered, setisFiltered] = useState(false);\r\n const [filterObject, setfilterObject] = useState(null);\r\n const [currentposition, setcurrentposition] = useState();\r\n const [editModalOpen, seteditModalOpen] = useState(false);\r\n const [selectedGroup, setSelectedGroup] = useState({});\r\n const [inputText, setinputText] = useState(\"\");\r\n const [areGroupsLoaded, setAreGroupsLoaded] = useState(false);\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n\r\n const searchHandler = (event) => {\r\n setinputText(event.target.value);\r\n let filteredGroups = [];\r\n backendGroups.forEach((group) => {\r\n if (group.name.toUpperCase().includes(event.target.value.toUpperCase())) {\r\n filteredGroups.push(group);\r\n }\r\n });\r\n event.target.value !== \"\" && setisFiltered(true);\r\n setGroups(filteredGroups);\r\n };\r\n\r\n const filter = (filterObject) => {\r\n let filteredGroups = [];\r\n backendGroups.forEach((group) => {\r\n let isValid = true;\r\n let isCoordinatorinGroup = true;\r\n if (!!filterObject.coordinator) {\r\n isCoordinatorinGroup = false;\r\n group.coordinators.forEach((coordinator) => {\r\n if (coordinator.userid === filterObject.coordinator) {\r\n isCoordinatorinGroup = true;\r\n }\r\n });\r\n }\r\n let statusCheck = filterObject.status === -1 ? true : group.status === filterObject.status;\r\n isValid =\r\n isCoordinatorinGroup &&\r\n group.devicesnumber >= filterObject.devices.min &&\r\n group.devicesnumber <= filterObject.devices.max &&\r\n group.require_rescuers >= filterObject.rescuers.min &&\r\n group.require_rescuers <= filterObject.rescuers.max &&\r\n statusCheck;\r\n\r\n isValid && filteredGroups.push(group);\r\n setfilterObject(filterObject);\r\n });\r\n setGroups(filteredGroups);\r\n setisFiltered(true);\r\n };\r\n\r\n const resetfilters = () => {\r\n setinputText(\"\");\r\n setGroups(backendGroups);\r\n setfilterObject(null);\r\n setisFiltered(false);\r\n };\r\n\r\n const editGroup = (groupid) => {\r\n seteditModalOpen(true);\r\n groups.forEach((group) => {\r\n group.groupid === groupid && setSelectedGroup(group);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n navigator.geolocation.getCurrentPosition(function (position) {\r\n setcurrentposition({\r\n lat: position.coords.latitude,\r\n lng: position.coords.longitude,\r\n });\r\n });\r\n\r\n DATANETAPI.getAllGroups(programId).then((snap) => {\r\n if (snap.status < 0) {\r\n setGroups([]);\r\n setAreGroupsLoaded(true);\r\n // console.log(\"error en peticion getAllGroups\");\r\n setErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n backendGroups = snap.data;\r\n // console.log(\"datos de los grupos\", backendGroups);\r\n if (backendGroups !== undefined) {\r\n setGroups(\r\n Object.values(backendGroups).map((v) => ({\r\n ...v,\r\n // comsTypes: Math.random() < 0.3 ? [\"Standalone\"] : [\"Sigfox\", \"Wifi\"].sort(() => Math.random() - 0.5).slice(0, Math.floor(Math.random() * 2) + 1),\r\n }))\r\n );\r\n setAreGroupsLoaded(true);\r\n } else {\r\n setGroups([]);\r\n setAreGroupsLoaded(true);\r\n }\r\n }\r\n });\r\n }, [programId, updatedData]);\r\n\r\n const updateData = (isUpdated) => {\r\n setAddModalOpen(isUpdated);\r\n seteditModalOpen(isUpdated);\r\n setUpdatedData(1 + updatedData);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n {/* setfilterModalOpen(true)}>\r\n \r\n */}\r\n \r\n \r\n \r\n {isFiltered && (\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"groups.toolbar.tooltip.map\")}\r\n \r\n }\r\n >\r\n \r\n setmapModalOpen(true)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"groups.toolbar.tooltip.add\")}\r\n \r\n }\r\n >\r\n \r\n setAddModalOpen(true)}>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {isFiltered && !!filterObject && (\r\n \r\n {!!filterObject.coordinator && #} label={`Coordinador del grupo ${filterObject.coordinator}`} style={{ margin: 8 }} />}\r\n #} label={`Dispositivos ${filterObject.devices.min} - ${filterObject.devices.max}`} style={{ margin: 8 }} />\r\n #} label={`Rescatadores ${filterObject.rescuers.min} - ${filterObject.rescuers.max}`} style={{ margin: 8 }} />\r\n #} label={`Estado del grupo ${filterObject.status}`} style={{ margin: 8 }} />\r\n \r\n )}\r\n\r\n \r\n {!areGroupsLoaded && [0, 1, 2, 3, 4, 5].map((i) => )}\r\n\r\n {groups.map((group, i) => (\r\n \r\n \r\n \r\n ))}\r\n\r\n {!isFiltered && (\r\n \r\n \r\n setAddModalOpen(true)}>\r\n \r\n \r\n \r\n {t(\"groups.add.new\")}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n {groups.length === 0 && areGroupsLoaded && (\r\n \r\n \r\n {t(\"groups.notFound\")}\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n setErrorMsg(\"\")} />\r\n \r\n );\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(GroupsPage);\r\n\r\nvar backendGroups = [];\r\n\r\nvar coordinatorsList = [];\r\n","export default __webpack_public_path__ + \"static/media/r100_s.b3b4d0b8.jpg\";","import { Card, CardActionArea, CardMedia, CardContent, Typography, CardActions, Button, Paper, Grid, Tooltip, makeStyles, IconButton, Menu, MenuItem } from \"@material-ui/core\";\r\nimport { blueGrey, grey, purple, red } from \"@material-ui/core/colors\";\r\nimport { Delete, DescriptionOutlined, Edit, MoreVert, Settings, ShopOutlined } from \"@material-ui/icons\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport login_img from \"../../assets/images/r100_s.jpg\";\r\n\r\nconst ProgramsCard = ({ imageUrl, title, description, id, edit, remove, canDelete, groups }) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n\r\n const [hover, setHover] = useState(false);\r\n const classes = useStyles();\r\n\r\n const [anchorEl, setAnchorEl] = useState(null);\r\n const [deviceSetupOpen, setDeviceSetupOpen] = useState(false);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {description.charAt(0).toUpperCase() + description.slice(1)}\r\n \r\n \r\n \r\n edit(data.groupid)}*/>\r\n \r\n \r\n \r\n {\r\n handleClose();\r\n edit();\r\n }}\r\n >\r\n \r\n {t(\"common.edit\")}\r\n \r\n\r\n {\r\n remove();\r\n handleClose();\r\n }}\r\n >\r\n {canDelete ? t(\"Eliminar programa\") : t(\"Elimina los grupos para poder eliminar el programa\")}}>\r\n \r\n \r\n {t(\"delete\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n window.scrollTo(0, 0);\r\n history.push(ROUTES.PROGRAMS + \"/\" + id + ROUTES.GROUPS);\r\n }}\r\n >\r\n {t(\"programCard.viewGroupsCount\", { count: groups.find((p) => p.id === id)?.groups?.length })}\r\n \r\n \r\n \r\n /*\r\n \r\n \r\n history.push(ROUTES.PROGRAMS + \"/\" + id + ROUTES.GROUPS)}>\r\n \r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {description.charAt(0).toUpperCase() + description.slice(1)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {canDelete ? t(\"Eliminar programa\") : t(\"Elimina los grupos para poder eliminar el programa\")}}>\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n
*/\r\n );\r\n /*return (\r\n setHover(true)}\r\n onMouseLeave={() => setHover(false)}\r\n >\r\n \r\n history.push(ROUTES.PROGRAMS + \"/\" + id + ROUTES.GROUPS)}>\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {description.charAt(0).toUpperCase() + description.slice(1)}\r\n \r\n \r\n \r\n \r\n {canDelete ? t(\"Eliminar programa\") : t(\"Elimina los grupos para poder eliminar el programa\")}}>\r\n
\r\n \r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n );*/\r\n};\r\n\r\nexport default ProgramsCard;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n padding: 0,\r\n borderRadius: 12,\r\n background: \"#f7f8fa\",\r\n },\r\n media: {\r\n height: 140,\r\n },\r\n expand: {\r\n transform: \"rotate(0deg)\",\r\n marginLeft: \"auto\",\r\n transition: theme.transitions.create(\"transform\", {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: \"rotate(180deg)\",\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5),\r\n },\r\n editButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}));\r\n","import { FormHelperText, Grid, TextField } from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst emailPattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\nconst ClientEmailForm = ({ updateEmail, generalError, initialEmail = \"\" }) => {\r\n const { t } = useTranslation();\r\n\r\n const [email, setEmail] = useState(initialEmail);\r\n const [repeatEmail, setRepeatEmail] = useState(initialEmail);\r\n const [emailError, setEmailError] = useState(\"\");\r\n const [repeatEmailError, setRepeatEmailError] = useState(\"\");\r\n\r\n const checkEmail = () => {\r\n if (email == \"\") {\r\n setEmailError(t(\"El campo no puede estar vacío\"));\r\n } else if (!email.match(emailPattern)) {\r\n setEmailError(t(\"Introduce un email válido\"));\r\n } else if (email !== repeatEmail && repeatEmail != \"\") {\r\n setEmailError(t(\"Los correos son diferentes\"));\r\n setRepeatEmailError(t(\"Los correos son diferentes\"));\r\n } else {\r\n setEmailError(\"\");\r\n setRepeatEmailError(\"\");\r\n updateEmail(email);\r\n }\r\n };\r\n const checkRepeatemail = () => {\r\n if (email == \"\") {\r\n if (repeatEmail === \"\") {\r\n setRepeatEmailError(t(\"El campo no puede estar vacío\"));\r\n } else {\r\n if (!repeatEmail.match(emailPattern)) {\r\n setRepeatEmailError(t(\"Introduce un email válido\"));\r\n } else {\r\n setEmailError(t(\"El campo no puede estar vacío\"));\r\n setRepeatEmailError(t(\"Los correos son diferentes\"));\r\n }\r\n }\r\n } else {\r\n if (email !== repeatEmail) {\r\n setEmailError(t(\"Los correos son diferentes\"));\r\n setRepeatEmailError(t(\"Los correos son diferentes\"));\r\n } else {\r\n if (repeatEmail.match(emailPattern)) {\r\n setEmailError(\"\");\r\n } else {\r\n setRepeatEmailError(t(\"Introduce un email válido\"));\r\n }\r\n }\r\n }\r\n if (email == repeatEmail && repeatEmail.match(emailPattern)) {\r\n updateEmail(email);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n \r\n {\r\n setEmail(e.target.value);\r\n setEmailError(\"\");\r\n updateEmail(\"\");\r\n }}\r\n onBlur={checkEmail}\r\n error={emailError !== \"\" || generalError !== \"\"}\r\n helperText={emailError}\r\n label={t(\"common.email\")}\r\n variant=\"outlined\"\r\n autoComplete=\"email\"\r\n type=\"email\"\r\n inputMode=\"email\"\r\n />\r\n \r\n \r\n {\r\n setRepeatEmail(e.target.value);\r\n setRepeatEmailError(\"\");\r\n updateEmail(\"\");\r\n }}\r\n error={repeatEmailError !== \"\" || generalError !== \"\"}\r\n helperText={repeatEmailError}\r\n label={t(\"common.repemail\")}\r\n autoComplete=\"email\"\r\n type=\"email\"\r\n variant=\"outlined\"\r\n inputMode=\"email\"\r\n />\r\n \r\n \r\n );\r\n};\r\n\r\nexport default ClientEmailForm;\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogTitle } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\n\r\nconst NotEmptyProgramDialog = ({ close, open, programID }) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n\r\n return (\r\n \r\n {t(\"Programa sin grupo\")}\r\n {t(\"Para poder añadir un cliente, es necesario tener al menos un grupo asignado al programa.\")}\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default NotEmptyProgramDialog;\r\n","import {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Button,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n FormControl,\r\n FormHelperText,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n Paper,\r\n Select,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport * as DATANET from \"../DataNet/DataNet\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport ClientEmailForm from \"./ClientEmailForm\";\r\nimport NotEmptyProgramDialog from \"./NotEmptyProgramDialog\";\r\nimport { WarningOutlined } from \"@material-ui/icons\";\r\n\r\nconst emailPattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\nconst FormBase = ({ edit = true, cancel, data }) => {\r\n const limiteTextInput = 50;\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n\r\n const hasClientOnEdit = edit && !!data?.client_email && data?.client_email != \"\";\r\n\r\n const [name, setName] = useState(edit ? data?.name : \"\");\r\n const [description, setDescription] = useState(edit ? data?.def : \"\");\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [nameError, setnameError] = useState(false);\r\n const [descriptionError, setDescriptionError] = useState(false);\r\n const [hasLocation, sethasLocation] = useState(false);\r\n const [location, setLocation] = useState({ latitude: 0, longitude: 0 });\r\n const [successRequest, setSuccessRequest] = useState(false);\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [generalError, setGeneralError] = useState(t(\"Revise los campos y vuelva a enviar el formulario\"));\r\n const [isChanged, setIsChanged] = useState(false);\r\n const [generatedProgramId, setGeneratedProgramId] = useState(\"\");\r\n const [clientEmail, setClientEmail] = useState(hasClientOnEdit ? data?.client_email : \"\");\r\n const [addClient, setAddClient] = useState(hasClientOnEdit);\r\n const [clientName, setClientName] = useState(hasClientOnEdit ? data?.client_name : \"\");\r\n const [contactEmail, setContactEmail] = useState(hasClientOnEdit ? data?.contact_email : \"\");\r\n const [contactDescription, setContactDescription] = useState(hasClientOnEdit ? data?.contact_description?.split(\" - \")[0] : \"\");\r\n const [clientNameError, setClientNameError] = useState(\"\");\r\n const [contactEmailError, setContactEmailError] = useState(\"\");\r\n const [contactDescriptionError, setContactDescriptionError] = useState(\"\");\r\n const [clientLang, setClientLang] = useState(hasClientOnEdit ? data?.lang : \"\");\r\n const [companyName, setCompanyName] = useState(hasClientOnEdit && data?.contact_description?.includes(\" - \") ? data?.contact_description?.split(\" - \")[1] : \"\");\r\n const [isContactEmailLoaded, setIsContactEmailLoaded] = useState(hasClientOnEdit);\r\n const [emptyProgramModalOpen, setEmptyProgramModalOpen] = useState(false);\r\n\r\n /*const [first, setfirst] = useState(\"\");\r\n const [fistAlertRange, setfistAlertRange] = useState(0);\r\n const [maxAlertRange, setMaxAlertRange] = useState(0);\r\n const [AEDSInstalled, setAEDSInstalled] = useState(false);\r\n const [isPublic, setpublic] = useState(false);\r\n const [hastCP, setHastCP] = useState(false);*/\r\n\r\n const handleName = (e) => {\r\n const v = e.target.value;\r\n v?.length <= limiteTextInput && setName(v);\r\n setnameError(\"\");\r\n setIsChanged(true);\r\n setGeneralError(\"\");\r\n };\r\n const handleDescription = (e) => {\r\n const v = e.target.value;\r\n v?.length <= limiteTextInput && setDescription(v);\r\n setDescriptionError(\"\");\r\n setIsChanged(true);\r\n };\r\n\r\n const send = () => {\r\n setIsLoading(true);\r\n\r\n if (edit) {\r\n // let newClient = addClient ? data?.client_email === clientEmail : false;\r\n // no añadir los datos de usuario para ver que pasa con el null\r\n let newClient = addClient ? data?.client_email === clientEmail || clientEmail !== \"\" : false;\r\n let editedData = {\r\n name: name.trim(),\r\n def: description.trim(),\r\n client_email: newClient ? clientEmail : \"\",\r\n client_new: newClient,\r\n };\r\n if (newClient) {\r\n editedData = {\r\n ...editedData,\r\n lang: clientLang,\r\n client_new: newClient,\r\n contact_email: contactEmail,\r\n contact_description: `${contactDescription}${companyName != \"\" || !!companyName ? ` - ${companyName}` : \"\"}`,\r\n client_name: clientName,\r\n };\r\n }\r\n\r\n DATANET.editProgram(data?.programId, editedData).then((snap) => proccessRequest(snap));\r\n } else {\r\n let data = {\r\n name: name.trim(),\r\n def: description.trim(),\r\n client_email: addClient ? clientEmail : \"\",\r\n client_new: addClient,\r\n location: { name: \"---\", latitude: location.latitude, longitude: location.longitude, has_location: hasLocation },\r\n };\r\n if (addClient) {\r\n data = {\r\n ...data,\r\n lang: clientLang,\r\n contact_email: contactEmail,\r\n contact_description: `${contactDescription}${companyName != \"\" || !!companyName ? ` - ${companyName}` : \"\"}`,\r\n client_name: clientName,\r\n };\r\n }\r\n DATANET.createProgram(data).then((snap) => proccessRequest(snap));\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n navigator.geolocation.getCurrentPosition((position) => {\r\n setLocation(position.coords);\r\n sethasLocation(true);\r\n });\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (isChanged) {\r\n checkName();\r\n }\r\n }, [name]);\r\n\r\n useEffect(() => {\r\n if (isChanged) {\r\n checkDescription();\r\n }\r\n }, [description]);\r\n\r\n useEffect(() => {\r\n setGeneralError(\"\");\r\n /* si no tiene pero se añade, tambien hay que modificar el haschanged */\r\n if (hasClientOnEdit || (!hasClientOnEdit && addClient)) {\r\n const new_contact_description = companyName === \"\" ? contactDescription : `${contactDescription} - ${companyName}`;\r\n\r\n const hasChanged =\r\n isChanged ||\r\n clientName !== data.client_name ||\r\n clientEmail !== data.client_email ||\r\n contactEmail !== data.contact_email ||\r\n clientLang !== data.lang ||\r\n new_contact_description !== data.contact_description;\r\n setIsChanged(hasChanged);\r\n }\r\n }, [name, description, clientName, clientEmail, contactEmail, contactDescription, companyName, clientLang]);\r\n\r\n useEffect(() => {\r\n hasClientOnEdit && !addClient && setIsChanged(true);\r\n }, [addClient]);\r\n\r\n const proccessRequest = (snap) => {\r\n if (snap.status <= 0) {\r\n setErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap.status === 1) {\r\n setSuccessRequest(true);\r\n // console.log(\"programa creado correctamente\", snap);\r\n !edit && setGeneratedProgramId(snap?.data.programid);\r\n } else if (snap.status === 2) {\r\n checkName();\r\n checkDescription();\r\n setGeneralError(t(\"Los datos introducidos no son correctos\"));\r\n } else if (snap.status === 3 || snap.status === 4) {\r\n setGeneralError(t(\"No tienes privilegios para realizar esta operación\"));\r\n setErrorMsg(t(\"No tienes privilegios para realizar esta operación\"));\r\n } else if (snap.status === 9) {\r\n setEmptyProgramModalOpen(true);\r\n } else {\r\n setErrorMsg(t(`Error en la solicitud`));\r\n }\r\n }\r\n setIsLoading(false);\r\n setIsChanged(false);\r\n };\r\n\r\n const checkName = () => setnameError(name?.length > 0 && name?.length <= limiteTextInput ? \"\" : t(\"El campo tiene que tener ente x e y\", { min: 0, max: 50 }));\r\n const checkDescription = () => setDescriptionError(description?.length > 0 && description?.length <= limiteTextInput ? \"\" : t(\"El campo tiene que tener ente x e y\", { min: 0, max: 50 }));\r\n const checkClientName = () => setClientNameError(clientName?.length > 0 && clientName?.length <= 100 ? \"\" : t(\"El campo tiene que tener ente x e y\", { min: 0, max: 100 }));\r\n const checContactDescription = () =>\r\n setContactDescriptionError(contactDescription?.length > 0 && contactDescription?.length <= 100 ? \"\" : t(\"El campo tiene que tener ente x e y\", { min: 0, max: 100 }));\r\n const checkContactemail = () => {\r\n if (contactEmail == \"\") {\r\n setContactEmailError(t(\"El campo no puede estar vacío\"));\r\n } else if (!contactEmail?.match(emailPattern)) {\r\n setContactEmailError(t(\"Introduce un email válido\"));\r\n } else {\r\n setContactEmailError(\"\");\r\n }\r\n };\r\n\r\n const isClientValid = addClient\r\n ? clientName?.length > 0 &&\r\n clientName?.length <= 100 &&\r\n clientEmail?.match(emailPattern) &&\r\n contactEmail?.match(emailPattern) &&\r\n contactDescription?.length > 0 &&\r\n contactDescription?.length <= 100\r\n : true;\r\n\r\n const isValid = name !== \"\" && name?.length <= limiteTextInput && description !== \"\" && description?.length <= limiteTextInput && isClientValid;\r\n return (\r\n \r\n \r\n \r\n {edit ? t(\"Editar programa\") : t(\"Crear programa\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {generalError}\r\n \r\n\r\n {/* -------------------------------------------------------------------------------------------------------------------------------------- */}\r\n\r\n {/* Añadir una opcion para no mostrar la sección de añadir un nuevo usuario */}\r\n \r\n \r\n setAddClient(!addClient)}\r\n color={\"primary\"}\r\n style={{ color: addClient && red[500], margin: 0, height: \"100%\", borderColor: addClient && red[700] }}\r\n >\r\n {addClient ? t(\"Eliminar cliente\") : t(\"Añadir cliente\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"Datos del cliente\")}\r\n \r\n\r\n \r\n {\r\n setClientName(e.target.value);\r\n setClientNameError(\"\");\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n {t(\"Idioma del cliente\")}\r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n {t(\"Datos del distribuidor\")}\r\n \r\n\r\n \r\n \r\n {(authUser) => {\r\n if (!isContactEmailLoaded) {\r\n setIsContactEmailLoaded(true);\r\n !hasClientOnEdit && setContactEmail(authUser.email);\r\n !hasClientOnEdit && setClientLang(authUser.lang);\r\n }\r\n }}\r\n \r\n {\r\n setContactEmail(e.target.value);\r\n setContactEmailError(\"\");\r\n }}\r\n />\r\n \r\n \r\n {\r\n setContactDescription(e.target.value);\r\n setContactDescriptionError(\"\");\r\n }}\r\n />\r\n \r\n \r\n setCompanyName(e.target.value)} />\r\n \r\n \r\n {generalError}\r\n \r\n \r\n \r\n \r\n {hasClientOnEdit && (!addClient || data.client_email !== clientEmail) && (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"Cuidado\")}\r\n \r\n \r\n\r\n \r\n {!addClient ? (\r\n {t(\"Se va a eliminar el acceso al usuario\", { email: data?.client_email })}\r\n ) : (\r\n {t(\"Se va a quitar el acceso al programa\", { old: data?.client_email, new: clientEmail })}\r\n )}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n cancel()}\r\n disabled={isLoading}\r\n style={{ marginRight: 9, color: !isLoading && red[500], borderColor: !isLoading && red[700], textTransform: \"none\" }}\r\n >\r\n {t(\"common.close\")}\r\n \r\n\r\n \r\n \r\n \r\n setSuccessRequest(false)} aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\">\r\n {edit ? t(\"Editar programa\") : t(\"Crear programa\")}\r\n \r\n \r\n {edit ? t(\"El programa se ha editado correctamente, se han creado un grupo por defecto\") : t(\"El programa se ha creado correctamente, se han creado un grupo por defecto\")}\r\n \r\n \r\n \r\n {\r\n setSuccessRequest(false);\r\n cancel();\r\n }}\r\n style={{ textTransform: \"none\" }}\r\n >\r\n {t(\"common.close\")}\r\n \r\n {!edit && (\r\n {\r\n setSuccessRequest(false);\r\n cancel();\r\n history.push(ROUTES.PROGRAMS + \"/\" + generatedProgramId + ROUTES.GROUPS);\r\n }}\r\n color=\"primary\"\r\n autoFocus\r\n style={{ textTransform: \"none\" }}\r\n >\r\n {t(\"Ver programa\")}\r\n \r\n )}\r\n \r\n \r\n setErrorMsg(\"\")} />\r\n setEmptyProgramModalOpen(false)} programID={data?.programId} />\r\n \r\n );\r\n};\r\n\r\nexport default FormBase;\r\n","import { AppBar, Button, Dialog, Grid, IconButton, Slide, Toolbar, Typography } from \"@material-ui/core\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport FormBase from \"./FormBase\";\r\n\r\nfunction ProgramDialog({ isOpen, setIsOpen, edit = true, editingData }) {\r\n const { t } = useTranslation();\r\n const handleClose = () => {\r\n setIsOpen(false);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {edit ? t(\"Editar programa\") : t(\"Crear programa\")}\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ProgramDialog;\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, FormHelperText, Grid, TextField, Typography } from \"@material-ui/core\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport * as DATANET from \"../DataNet/DataNet\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\n\r\nconst DeleteDialog = ({ isOpen, close, data }) => {\r\n const { t } = useTranslation();\r\n\r\n const [inputvalue, setInputvalue] = useState(\"\");\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [errorDescription, setErrorDescription] = useState(\"\");\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [generalError, setGeneralError] = useState(\"\");\r\n const [successRequest, setSuccessRequest] = useState(false);\r\n\r\n const handleClose = () => {\r\n close();\r\n setInputvalue(\"\");\r\n };\r\n\r\n const handleChange = (e) => setInputvalue(e.target.value);\r\n\r\n const remove = () => {\r\n setIsLoading(true);\r\n DATANET.removeProgram(data.programId).then((snap) => proccessRequest(snap));\r\n };\r\n\r\n const proccessRequest = (snap) => {\r\n if (snap.status <= 0) {\r\n setErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap.status === 1) {\r\n setSuccessRequest(true);\r\n } else if (snap.status === 3 || snap.status === 4) {\r\n setGeneralError(t(\"No tienes privilegios para realizar esta operación\"));\r\n } else {\r\n setErrorMsg(t(`error.connection_${snap.status}`));\r\n }\r\n }\r\n setInputvalue(\"\");\r\n setIsLoading(false);\r\n };\r\n\r\n const isValid = data.name === inputvalue && inputvalue !== \"\";\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"Va a eliminar el programa\", { name: data.name })}\r\n {generalError}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"delete\")}\r\n {isLoading && }\r\n \r\n \r\n \r\n \r\n setErrorMsg(\"\")} />\r\n setSuccessRequest(false)} aria-labelledby=\"alert-dialog-title\" aria-describedby=\"alert-dialog-description\">\r\n {t(\"Programa eliminado\")}\r\n \r\n {t(\"El programa se ha eliminado correctamente\")}\r\n \r\n \r\n {\r\n setSuccessRequest(false);\r\n close();\r\n }}\r\n style={{ textTransform: \"none\" }}\r\n >\r\n {t(\"common.close\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeleteDialog;\r\n","import { Card, CardActionArea, CardActions, CardContent, CardMedia, Grid, Typography, makeStyles } from \"@material-ui/core\";\r\nimport { blueGrey } from \"@material-ui/core/colors\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport React from \"react\";\r\n\r\nconst LoadingProgramCard = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoadingProgramCard;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n card: {\r\n padding: 0,\r\n borderRadius: 12,\r\n background: \"#f7f8fa\",\r\n },\r\n media: {\r\n height: 140,\r\n },\r\n expand: {\r\n transform: \"rotate(0deg)\",\r\n marginLeft: \"auto\",\r\n transition: theme.transitions.create(\"transform\", {\r\n duration: theme.transitions.duration.shortest,\r\n }),\r\n },\r\n expandOpen: {\r\n transform: \"rotate(180deg)\",\r\n },\r\n chip: {\r\n margin: theme.spacing(0.5),\r\n },\r\n editButton: {\r\n marginLeft: theme.spacing(1),\r\n },\r\n}));\r\n","import {\r\n Button,\r\n Container,\r\n Grid,\r\n IconButton,\r\n InputAdornment,\r\n LinearProgress,\r\n Paper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableContainer,\r\n TableHead,\r\n TableRow,\r\n TextField,\r\n Tooltip,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport ProgramsCard from \"../components/ProgramsCard\";\r\nimport { AuthUserContext, withAuthorization } from \"../components/Session\";\r\nimport { getAllProgramsByUser } from \"../components/DataNet/DataNet\";\r\nimport ErrorDialog from \"../components/ErrorDialog\";\r\nimport { Add, Cancel, Check, Delete, Edit, Opacity, Remove, Search, ViewList, ViewModule, Visibility } from \"@material-ui/icons\";\r\nimport ProgramDialog from \"../components/ProgramForm/ProgramDialog\";\r\nimport DeleteDialog from \"../components/ProgramForm/DeleteDialog\";\r\nimport { useHistory } from \"react-router-dom\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport { grey, purple } from \"@material-ui/core/colors\";\r\nimport LoadingProgramCard from \"../components/ProgramsCard/LoadingProgramCard\";\r\n\r\nconst ProgramsPage = (props) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n\r\n const roles = [\r\n { id: \"915c8c3c-849a-49e0-8032-ac4f9feb2956\", name: \"PROGRAMS_DELETE\" },\r\n { id: \"7fc44b6a-c81d-4423-beb9-ba92417ab865\", name: \"PROGRAMS_ADD\" },\r\n { id: \"7b309536-cf4c-47b3-8a97-71fe2f1a475e\", name: \"PROGRAMS_UPDATE\" },\r\n { id: \"26c214da-3bf8-410e-a861-804ddfb814d9\", name: \"DEVICE_ADD\" },\r\n ];\r\n\r\n const [programs, setPrograms] = useState([]);\r\n const [errorMsg, setErrorMsg] = useState(\"\");\r\n const [areProgramsLoaded, setAreProgramsLoaded] = useState(false);\r\n const [filterName, setFilterName] = useState(\"\");\r\n const [listMode, setListMode] = useState(true);\r\n const [openProgramModal, setOpenProgramModal] = useState(false);\r\n const [editProgram, seteditProgram] = useState(false);\r\n const [editinId, setEditinId] = useState(\"\");\r\n const [opendeleteModal, setOpendeleteModal] = useState(false);\r\n\r\n useEffect(() => {\r\n loadData();\r\n }, []);\r\n\r\n useEffect(() => {\r\n !openProgramModal && loadData();\r\n }, [openProgramModal]);\r\n\r\n useEffect(() => {\r\n !opendeleteModal && loadData();\r\n }, [opendeleteModal]);\r\n\r\n const loadData = () => {\r\n setAreProgramsLoaded(false);\r\n getAllProgramsByUser().then((snap) => {\r\n if (snap.status < 0) {\r\n setErrorMsg(t(`error.connection_${snap.status}`));\r\n setPrograms([]);\r\n } else {\r\n setPrograms(snap.data);\r\n }\r\n setAreProgramsLoaded(true);\r\n });\r\n };\r\n\r\n const handleCreate = () => {\r\n seteditProgram(false);\r\n setOpenProgramModal(true);\r\n };\r\n\r\n const handleEdit = (id) => {\r\n seteditProgram(true);\r\n setOpenProgramModal(true);\r\n setEditinId(programs.filter((p) => p?.programId == id)[0]);\r\n };\r\n\r\n const handleDelete = (id) => {\r\n setOpendeleteModal(true);\r\n setOpenProgramModal(false);\r\n setEditinId(programs.filter((p) => p?.programId == id)[0]);\r\n };\r\n\r\n const canDelete = (id, userPrograms) => {\r\n return !userPrograms.find((p) => p.id === id)?.groups?.length > 0;\r\n };\r\n\r\n return (\r\n \r\n {(authUser) =>\r\n authUser.roles.some((role) => roles.some((r) => role.id === r.id)) ? (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setFilterName(e.target.value)}\r\n placeholder={t(\"common.search\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n setListMode(!listMode)}>\r\n {!listMode ? : }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {programs.length > 0 ? (\r\n listMode ? (\r\n programs?.filter((k) => filterName === \"\" || k?.name.toUpperCase().includes(filterName.toUpperCase())).length > 0 ? (\r\n programs\r\n ?.filter((k) => filterName === \"\" || k?.name.toUpperCase().includes(filterName.toUpperCase()))\r\n .map((p, i) => (\r\n \r\n handleEdit(p.programId)}\r\n remove={() => handleDelete(p.programId)}\r\n canDelete={canDelete(p.programId, authUser.programas)}\r\n groups={authUser.programas}\r\n />\r\n \r\n ))\r\n ) : (\r\n \r\n \r\n {t(\"programs.notFound\")}\r\n \r\n \r\n )\r\n ) : (\r\n \r\n )\r\n ) : areProgramsLoaded ? (\r\n \r\n \r\n {t(\"No se han podido cargar los programas\")}\r\n \r\n \r\n \r\n ) : (\r\n [0, 1, 2, 3, 4, 5].map((i) => (\r\n \r\n \r\n \r\n ))\r\n )}\r\n \r\n\r\n setErrorMsg(\"\")} />\r\n \r\n \r\n \r\n ) : (\r\n <>{history.push(ROUTES.PROGRAMS + \"/\" + authUser.programas[0].id + \"/groups\")}\r\n )\r\n }\r\n \r\n );\r\n};\r\n\r\nconst ProgramsTable = ({ programs, filterName, history, authUser, handleEdit, canDelete, handleDelete, t }) => (\r\n \r\n \r\n \r\n \r\n {t(\"common.name\")}\r\n {t(\"common.description\")}\r\n \r\n {t(\"common.actions\")}\r\n \r\n \r\n \r\n \r\n {programs\r\n ?.filter((k) => filterName === \"\" || k?.name.toUpperCase().includes(filterName.toUpperCase()))\r\n .map((p, i) => (\r\n \r\n {p.name}\r\n {p.def}\r\n \r\n history.push(ROUTES.PROGRAMS + \"/\" + p.programId + ROUTES.GROUPS)}>\r\n \r\n \r\n\r\n handleEdit(i)} style={{ marginRight: 6, marginLeft: 6 }}>\r\n \r\n \r\n\r\n {canDelete(p.programId, authUser.programas) ? t(\"Eliminar programa\") : t(\"Elimina los grupos para poder eliminar el programa\")}}\r\n >\r\n
\r\n handleDelete(i)} disabled={!canDelete(p.programId, authUser.programas)}>\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n ))}\r\n
\r\n
\r\n
\r\n);\r\n\r\nconst condition = (authUser) => !!authUser; //(authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(ProgramsPage);\r\n","export default __webpack_public_path__ + \"static/media/alertExample.63e2a72b.PNG\";","import { makeStyles, Paper, Grid, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst DeviceTabInfoHeader = ({ device }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {t(\"devices.new.title.form\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeviceTabInfoHeader;\r\n\r\nconst Property = ({ property, value, cl }) => (\r\n \r\n \r\n {property}\r\n \r\n \r\n {value}\r\n \r\n \r\n);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n marginBottom: theme.spacing(3),\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"30.33%\",\r\n flexShrink: 0,\r\n },\r\n secondaryHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n color: theme.palette.text.secondary,\r\n },\r\n lastHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n color: theme.palette.text.secondary,\r\n },\r\n paper: {\r\n borderRadius: 16,\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: 2,\r\n },\r\n [theme.breakpoints.up(\"xs\")]: {\r\n padding: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(3),\r\n paddingTop: theme.spacing(2),\r\n paddingBottom: theme.spacing(2),\r\n },\r\n },\r\n propertyText: {\r\n marginLeft: theme.spacing(1),\r\n marginBottom: 2,\r\n },\r\n propertyText: {\r\n marginLeft: theme.spacing(1),\r\n marginBottom: 2,\r\n },\r\n}));\r\n","import { Button, Grid, IconButton, LinearProgress, Paper, Dialog, Typography, Menu, MenuItem } from \"@material-ui/core\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport { ArrowDropDownRounded, CheckRounded, DateRangeOutlined, FilterListRounded, Info, ReportProblem, Search, Usb, Wifi, FlashOn, OfflineBoltRounded } from \"@material-ui/icons\";\r\nimport SettingsInputAntennaIcon from \"@material-ui/icons/SettingsInputAntenna\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport moment from \"moment\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport MomentUtils from \"@date-io/moment\";\r\nimport { DatePicker, MuiPickersUtilsProvider } from \"@material-ui/pickers\";\r\nimport { Skeleton } from \"@material-ui/lab\";\r\nimport exampleImage from \"../../assets/images/alertExample.PNG\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport DeviceTabInfoHeader from \"../DeviceTabInfoHeader\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\n\r\nconst DeviceAlertTab = ({ deviceId, device }) => {\r\n const { t, i18n } = useTranslation();\r\n const [startDate, setStartDate] = useState(new Date());\r\n const [endDate, setEndDate] = useState(new Date());\r\n const [loading, setLoading] = useState(true);\r\n const [openExampleModal, setOpenExampleModal] = useState(false);\r\n const [alerts, setAlerts] = useState([]);\r\n const [openFilterMenu, setOpenFilterMenu] = useState(false);\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n const [filteredDates, setFilteredDates] = useState({ start: new Date(), end: new Date() });\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n\r\n const searchAlerts = () => {\r\n /*setFilteredDates( { start: startDate, end: endDate })*/\r\n setLoading(true);\r\n getAlerts();\r\n };\r\n\r\n useEffect(() => {\r\n getAlerts();\r\n }, []);\r\n\r\n const handleFilterMenuClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n setOpenFilterMenu(true);\r\n };\r\n\r\n const getAlerts = () => {\r\n /**Modificar para que pille las fechas de inicio y fin */\r\n /** los datos de inicio y fin estan en el obeto del estado \"filteredDates\" */\r\n\r\n DATANETAPI.getDeviceEvents(deviceId, filteredDates).then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setAlerts([]);\r\n } else {\r\n if (snap.data !== null && snap.data !== undefined && snap.status === 1) {\r\n setAlerts(snap.data.events);\r\n } else {\r\n setAlerts([]);\r\n }\r\n }\r\n setLoading(false);\r\n });\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
{loading && }
\r\n \r\n \r\n \r\n \r\n setOpenFilterMenu(false)}>\r\n setOpenFilterMenu(false)}>\r\n \r\n {t(\"alerts.allAlerts\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {\r\n setStartDate(value);\r\n setFilteredDates({ ...filteredDates, start: value });\r\n }}\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n setEndDate(value);\r\n setFilteredDates({ ...filteredDates, end: value });\r\n }}\r\n />\r\n \r\n\r\n {/* \r\n \r\n {t(\"availableLastAlerts\")}\r\n \r\n */}\r\n \r\n \r\n \r\n {t(\"search\")}\r\n \r\n \r\n \r\n
\r\n \r\n \r\n\r\n \r\n \r\n {loading ? : `${moment(filteredDates.start).format(\"MMMM YYYY\")} - ${moment(filteredDates.end).format(\"MMMM YYYY\")}`}\r\n \r\n \r\n
\r\n\r\n {alerts.length === 0 && !loading && (\r\n \r\n setOpenExampleModal(true)}>\r\n \r\n \r\n \r\n {t(\"device.tab.alerts.fake\")}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n {loading && [0, 1, 2, 3, 4, 5].map(() => )}\r\n {!loading &&\r\n alerts.map((alert) => (\r\n <>\r\n {alert.event_type > 1 && alert.event_type <= 6 && (\r\n \r\n \r\n \r\n \r\n {alert.event_type == 4 && }\r\n {alert.event_type == 1 && }\r\n {alert.event_type == 2 && }\r\n {alert.event_type == 3 && }\r\n {alert.event_type == 6 && }\r\n {(alert.event_type < 1 || alert.event_type > 4) && alert.event_type != 6 && }\r\n \r\n \r\n \r\n \r\n \r\n {t(\"device.tab.alerts.date\")}\r\n \r\n \r\n {moment(alert.event_datetime).format(\"YYYY / MM / DD\")}\r\n \r\n \r\n \r\n \r\n {t(\"device.tab.alerts.time\")}\r\n \r\n\r\n \r\n {alert.event_type == 2 || alert.event_type == 6 ? moment.utc(alert.event_datetime).local().format(\"HH : mm : ss\") : moment(alert.event_datetime).format(\"HH : mm : ss\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"device.tab.alerts.desciption\")}\r\n \r\n {alert.event_type == 2 && (\r\n <>\r\n {alert.event_sigfox_version == undefined || alert.event_sigfox_version == 0 ? (\r\n {t(\"device.tab.alerts.eSYGFOX_1_\" + alert.event_id)}\r\n ) : (\r\n {t(\"device.tab.alerts.eSYGFOX_\" + alert.event_sigfox_version + \"_\" + alert.event_id)}\r\n )}\r\n \r\n )}\r\n {alert.event_type == 4 && {t(\"device.tab.alerts.eERR_\" + alert.event_id)}}\r\n {alert.event_type == 6 && {t(\"device.tab.alerts.patient_usage\")}}\r\n {alert.event_type != 4 && alert.event_type != 2 && alert.event_type != 6 && {t(\"device.tab.alerts.eREG_\" + alert.event_id)}}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n ))}\r\n \r\n setOpenExampleModal(false)}>\r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n );\r\n};\r\n\r\nexport default DeviceAlertTab;\r\n\r\nconst SkeletonAlertCard = () => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n);\r\n","export default __webpack_public_path__ + \"static/media/20210728_163102585_a2.a60b1daf.pdf\";","import { useState, useEffect } from \"react\";\r\n\r\nfunction getWindowDimensions() {\r\n const { innerWidth: width, innerHeight: height } = window;\r\n return {\r\n width,\r\n height,\r\n };\r\n}\r\n\r\nexport default function useWindowDimensions() {\r\n const [windowDimensions, setWindowDimensions] = useState(\r\n getWindowDimensions()\r\n );\r\n\r\n useEffect(() => {\r\n function handleResize() {\r\n setWindowDimensions(getWindowDimensions());\r\n }\r\n\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => window.removeEventListener(\"resize\", handleResize);\r\n }, []);\r\n\r\n return windowDimensions;\r\n}\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Grid, IconButton } from \"@material-ui/core\";\r\nimport { Document, Page, pdfjs } from \"react-pdf/dist/esm/entry.webpack\";\r\nimport ecgDoc from \"../../assets/documents/20210728_163102585_a2.pdf\";\r\n//import { Worker } from \"@react-pdf-viewer/core\";\r\nimport useWindowDimensions from \"../../functions/useWindowDimensions\";\r\nimport { NavigateNext, NavigateBefore } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst ECG = ({ container, pdf_uri }) => {\r\n const { t } = useTranslation();\r\n\r\n const [data, setData] = useState([\r\n [\"Time stamp\", \"\"],\r\n [0, 0],\r\n ]);\r\n const [numPages, setNumPages] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n const [pdfWidth, setPdfWidth] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\n useEffect(() => {\r\n let data = [[\"x\", \"ECG\"]];\r\n for (let i = 0; i < 120; i++) {\r\n data.push([i, Math.round(Math.random() * 2) - 1]);\r\n }\r\n setData(data);\r\n }, []);\r\n\r\n const onDocumentLoadSuccess = ({ numPages }) => {\r\n setNumPages(numPages);\r\n };\r\n const executeScroll = () => container.current.scrollIntoView();\r\n\r\n useEffect(() => {\r\n let breakP;\r\n if (width <= 600) {\r\n breakP = BP.xs;\r\n } else if (width < 960) {\r\n breakP = BP.sm;\r\n } else if (width <= 1280) {\r\n breakP = BP.md;\r\n } else if (width < 1920) {\r\n breakP = BP.lg;\r\n } else {\r\n breakP = BP.xl;\r\n }\r\n setPdfWidth(width * breakP);\r\n }, [width]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n executeScroll();\r\n setPageNumber(pageNumber - 1);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {t(\"pageCounter\", { current: pageNumber, total: numPages })}\r\n \r\n \r\n = numPages}\r\n onClick={() => {\r\n setPageNumber(pageNumber + 1);\r\n executeScroll();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ECG;\r\n\r\nconst options = {\r\n scales: {},\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n point: {\r\n radius: 0,\r\n pointStyle: \"line\",\r\n },\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n};\r\n\r\nconst ECG_DATA = {\r\n status: 1,\r\n userStatus: {\r\n userId: \"ee5851d2-49c6-4e21-86b6-2067ea6ab4c6\",\r\n isLogged: true,\r\n hasRole: true,\r\n hasModule: true,\r\n error: 0,\r\n },\r\n data: {\r\n episodeid: \"00000000-0000-0000-0000-000000000000\",\r\n creation_time: \"0001-01-01T00:00:00\",\r\n ecg: [\r\n 0, 1.25, 3.375, 4.625, 5.5, 6.25, 6.875, 7.375, 7.75, 8.125, 8.375, 8.625, 8.75, 8.875, 9, 9.125, 9.25, 9.25, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.25,\r\n 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.125, 9.125, 9.125, 9, 9, 9, 9, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 8.625, 8.625,\r\n 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.375, 8.375, 8.375, 8.375, 8.375, 8.375, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.125, 8.125, 8.125, 8.125, 8.125, 8.125, 8.125, 8, 8, 8, 8, 7.875, 7.875,\r\n 7.875, 7.875, 7.75, 7.75, 7.75, 7.75, 7.875, 8.375, 8.625, 8.875, 9.125, 9.25, 9.375, 9.5, 9.625, 9.625, 9.75, 9.75, 9.75, 9.875, 9.875, 9.875, 9.875, 9.875, 9.875, 9.875, 9.75, 9.75, 9.75,\r\n 9.625, 9.625, 9.625, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.375, 9.375, 9.375, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.125, 9.125, 9.125, 9.125, 9.125, 9, 9, 9, 9, 9, 9, 9,\r\n 8.875, 8.875, 8.875, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 8.625, 8.625, 8.625, 8.625, 8.625, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.375, 8.375, 8.375, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.125,\r\n 8.125, 8.125, 8.125, 8, 8, 8, 7.875, 7.875, 7.875, 7.875, 7.875, 7.875, 7.875, 7.875, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.625, 7.625, 7.625, 7.625, 7.625, 7.5,\r\n 7.5, 7.5, 7.5, 7.5, 7.375, 7.375, 7.375, 7.375, 7.25, 7.25, 7.25, 7.25, 7.25, 7.125, 7.125, 7.125, 7.125, 7.125, 7.125, 7, 7, 7, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875,\r\n 6.875, 6.875, 6.875, 6.75, 6.75, 6.75, 6.75, 6.75, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.375, 6.375, 6.375, 6.375, 6.375,\r\n 6.375, 6.375, 6.375, 6.375, 6.25, 6.25, 6.125, 6.125, 6.125, 6.125, 6.125, 6.125, 6.125, 6.125, 6, 6, 6.125, 6.125, 6.25, 6.375, 6.5, 6.5, 6.5, 6.625, 6.75, 6.75, 6.875, 6.875, 7, 7, 7, 7, 7,\r\n 7.125, 7.125, 7.125, 7.25, 7.375, 7.375, 7.375, 7.5, 7.5, 7.5, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.5, 7.375, 7.375, 7.25, 7.125,\r\n 7.125, 7, 6.875, 6.875, 6.75, 6.625, 6.625, 6.625, 6.625, 6.5, 6.5, 6.5, 6.5, 6.375, 6.25, 6.125, 6, 5.875, 5.75, 5.625, 5.5, 5.375, 5.25, 5.25, 5.125, 5.125, 5, 5, 4.875, 4.875, 4.75, 4.75,\r\n 4.75, 4.75, 4.625, 4.625, 4.75, 4.625, 4.625, 4.625, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.25, 4.375, 4.125, 2.625, 0.625, 0, 0, 0.25,\r\n 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.25, 1.375, 1.375, 1.5, 1.5, 1.5, 1.625, 1.625, 1.625, 1.625, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.625, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5,\r\n 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.375, 1.375, 1.375, 1.25, 1.25, 1.25, 1.125, 1.25, 1.125, 1.25, 1.375, 1.375, 1.5, 1.75, 2.125, 2.375, 2.75, 3.125, 3.5, 3.875, 4.375, 4.875, 5.375, 6, 6.625,\r\n 7.125, 7.75, 8.5, 9.125, 9.875, 10.625, 11.25, 12, 12.75, 13.5, 14.25, 15, 15.625, 16.25, 16.75, 17.125, 17.375, 17.375, 17.375, 17.25, 17, 16.625, 16.25, 15.75, 15.125, 14.625, 14, 13.25, 12.5,\r\n 11.875, 11.125, 10.5, 9.875, 9.25, 8.625, 8, 7.5, 7, 6.5, 6, 5.5, 5, 4.5, 4.125, 3.75, 3.375, 3.125, 2.75, 2.375, 2.125, 1.875, 1.625, 1.375, 1.25, 1.125, 1, 0.875, 0.625, 0.625, 0.5, 0.375,\r\n 0.25, 0.25, 0.125, 0.125, 0.125, 0.125, 0.125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n ],\r\n events: [\r\n {\r\n time_stamp: 0,\r\n id: 21,\r\n id_str: null,\r\n shock_energy: 0,\r\n },\r\n ],\r\n status: [\r\n {\r\n time_stamp: 0,\r\n temperature: 0,\r\n batt_charge: 0,\r\n batt_voltage: 13978,\r\n capacitor_voltage: 0,\r\n shock_energy: 0,\r\n rcp_time: 0,\r\n error_code: 0,\r\n rythm_type: 0,\r\n },\r\n ],\r\n },\r\n};\r\n\r\nvar data2 = ECG_DATA.data.ecg.map((i, k) => ({ uv: i, time: k }));\r\n\r\n/*ECG_DATA.data.ecg.map((i, k) => {\r\n k % 250 == 0 && console.log(k);\r\n});*/\r\n\r\nconst BP = {\r\n xs: 0.85,\r\n sm: 0.8,\r\n md: 0.6,\r\n lg: 0.55,\r\n xl: 0.5,\r\n};\r\n","import React, { useEffect, useRef, useState } from \"react\";\r\nimport { Grid, IconButton } from \"@material-ui/core\";\r\nimport { Document, Page, pdfjs } from \"react-pdf/dist/esm/entry.webpack\";\r\nimport ecgDoc from \"../../assets/documents/20210728_163102585_a2.pdf\";\r\n//import { Worker } from \"@react-pdf-viewer/core\";\r\nimport useWindowDimensions from \"../../functions/useWindowDimensions\";\r\nimport { NavigateNext, NavigateBefore } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst FakeECG = ({ container, pdf_uri }) => {\r\n const { t } = useTranslation();\r\n\r\n const [data, setData] = useState([\r\n [\"Time stamp\", \"\"],\r\n [0, 0],\r\n ]);\r\n const [numPages, setNumPages] = useState(null);\r\n const [pageNumber, setPageNumber] = useState(1);\r\n const [pdfWidth, setPdfWidth] = useState(0);\r\n const { height, width } = useWindowDimensions();\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\n useEffect(() => {\r\n let data = [[\"x\", \"ECG\"]];\r\n for (let i = 0; i < 120; i++) {\r\n data.push([i, Math.round(Math.random() * 2) - 1]);\r\n }\r\n setData(data);\r\n }, []);\r\n\r\n const onDocumentLoadSuccess = ({ numPages }) => {\r\n setNumPages(numPages);\r\n };\r\n const executeScroll = () => container.current.scrollIntoView();\r\n\r\n useEffect(() => {\r\n let breakP;\r\n if (width <= 600) {\r\n breakP = BP.xs;\r\n } else if (width < 960) {\r\n breakP = BP.sm;\r\n } else if (width <= 1280) {\r\n breakP = BP.md;\r\n } else if (width < 1920) {\r\n breakP = BP.lg;\r\n } else {\r\n breakP = BP.xl;\r\n }\r\n setPdfWidth(width * breakP);\r\n }, [width]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {\r\n executeScroll();\r\n setPageNumber(pageNumber - 1);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n {t(\"pageCounter\", { current: pageNumber, total: numPages })}\r\n \r\n \r\n = numPages}\r\n onClick={() => {\r\n setPageNumber(pageNumber + 1);\r\n executeScroll();\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default FakeECG;\r\n\r\nconst options = {\r\n scales: {},\r\n elements: {\r\n line: {\r\n tension: 0,\r\n },\r\n point: {\r\n radius: 0,\r\n pointStyle: \"line\",\r\n },\r\n },\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n};\r\n\r\nconst ECG_DATA = {\r\n status: 1,\r\n userStatus: {\r\n userId: \"ee5851d2-49c6-4e21-86b6-2067ea6ab4c6\",\r\n isLogged: true,\r\n hasRole: true,\r\n hasModule: true,\r\n error: 0,\r\n },\r\n data: {\r\n episodeid: \"00000000-0000-0000-0000-000000000000\",\r\n creation_time: \"0001-01-01T00:00:00\",\r\n ecg: [\r\n 0, 1.25, 3.375, 4.625, 5.5, 6.25, 6.875, 7.375, 7.75, 8.125, 8.375, 8.625, 8.75, 8.875, 9, 9.125, 9.25, 9.25, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.375, 9.25,\r\n 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.125, 9.125, 9.125, 9, 9, 9, 9, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.875, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 8.625, 8.625,\r\n 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.375, 8.375, 8.375, 8.375, 8.375, 8.375, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.125, 8.125, 8.125, 8.125, 8.125, 8.125, 8.125, 8, 8, 8, 8, 7.875, 7.875,\r\n 7.875, 7.875, 7.75, 7.75, 7.75, 7.75, 7.875, 8.375, 8.625, 8.875, 9.125, 9.25, 9.375, 9.5, 9.625, 9.625, 9.75, 9.75, 9.75, 9.875, 9.875, 9.875, 9.875, 9.875, 9.875, 9.875, 9.75, 9.75, 9.75,\r\n 9.625, 9.625, 9.625, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.5, 9.375, 9.375, 9.375, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.25, 9.125, 9.125, 9.125, 9.125, 9.125, 9, 9, 9, 9, 9, 9, 9,\r\n 8.875, 8.875, 8.875, 8.75, 8.75, 8.75, 8.75, 8.75, 8.75, 8.625, 8.625, 8.625, 8.625, 8.625, 8.5, 8.5, 8.5, 8.5, 8.5, 8.5, 8.375, 8.375, 8.375, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.25, 8.125,\r\n 8.125, 8.125, 8.125, 8, 8, 8, 7.875, 7.875, 7.875, 7.875, 7.875, 7.875, 7.875, 7.875, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.75, 7.625, 7.625, 7.625, 7.625, 7.625, 7.5,\r\n 7.5, 7.5, 7.5, 7.5, 7.375, 7.375, 7.375, 7.375, 7.25, 7.25, 7.25, 7.25, 7.25, 7.125, 7.125, 7.125, 7.125, 7.125, 7.125, 7, 7, 7, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875, 6.875,\r\n 6.875, 6.875, 6.875, 6.75, 6.75, 6.75, 6.75, 6.75, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.625, 6.5, 6.5, 6.5, 6.5, 6.5, 6.5, 6.375, 6.375, 6.375, 6.375, 6.375,\r\n 6.375, 6.375, 6.375, 6.375, 6.25, 6.25, 6.125, 6.125, 6.125, 6.125, 6.125, 6.125, 6.125, 6.125, 6, 6, 6.125, 6.125, 6.25, 6.375, 6.5, 6.5, 6.5, 6.625, 6.75, 6.75, 6.875, 6.875, 7, 7, 7, 7, 7,\r\n 7.125, 7.125, 7.125, 7.25, 7.375, 7.375, 7.375, 7.5, 7.5, 7.5, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.625, 7.5, 7.375, 7.375, 7.25, 7.125,\r\n 7.125, 7, 6.875, 6.875, 6.75, 6.625, 6.625, 6.625, 6.625, 6.5, 6.5, 6.5, 6.5, 6.375, 6.25, 6.125, 6, 5.875, 5.75, 5.625, 5.5, 5.375, 5.25, 5.25, 5.125, 5.125, 5, 5, 4.875, 4.875, 4.75, 4.75,\r\n 4.75, 4.75, 4.625, 4.625, 4.75, 4.625, 4.625, 4.625, 4.5, 4.5, 4.5, 4.5, 4.5, 4.5, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.375, 4.25, 4.375, 4.125, 2.625, 0.625, 0, 0, 0.25,\r\n 0.5, 0.625, 0.75, 0.875, 1, 1.125, 1.25, 1.25, 1.375, 1.375, 1.5, 1.5, 1.5, 1.625, 1.625, 1.625, 1.625, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.625, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5,\r\n 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.5, 1.375, 1.375, 1.375, 1.25, 1.25, 1.25, 1.125, 1.25, 1.125, 1.25, 1.375, 1.375, 1.5, 1.75, 2.125, 2.375, 2.75, 3.125, 3.5, 3.875, 4.375, 4.875, 5.375, 6, 6.625,\r\n 7.125, 7.75, 8.5, 9.125, 9.875, 10.625, 11.25, 12, 12.75, 13.5, 14.25, 15, 15.625, 16.25, 16.75, 17.125, 17.375, 17.375, 17.375, 17.25, 17, 16.625, 16.25, 15.75, 15.125, 14.625, 14, 13.25, 12.5,\r\n 11.875, 11.125, 10.5, 9.875, 9.25, 8.625, 8, 7.5, 7, 6.5, 6, 5.5, 5, 4.5, 4.125, 3.75, 3.375, 3.125, 2.75, 2.375, 2.125, 1.875, 1.625, 1.375, 1.25, 1.125, 1, 0.875, 0.625, 0.625, 0.5, 0.375,\r\n 0.25, 0.25, 0.125, 0.125, 0.125, 0.125, 0.125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,\r\n ],\r\n events: [\r\n {\r\n time_stamp: 0,\r\n id: 21,\r\n id_str: null,\r\n shock_energy: 0,\r\n },\r\n ],\r\n status: [\r\n {\r\n time_stamp: 0,\r\n temperature: 0,\r\n batt_charge: 0,\r\n batt_voltage: 13978,\r\n capacitor_voltage: 0,\r\n shock_energy: 0,\r\n rcp_time: 0,\r\n error_code: 0,\r\n rythm_type: 0,\r\n },\r\n ],\r\n },\r\n};\r\n\r\nvar data2 = ECG_DATA.data.ecg.map((i, k) => ({ uv: i, time: k }));\r\n\r\n/*ECG_DATA.data.ecg.map((i, k) => {\r\n k % 250 == 0 && console.log(k);\r\n});*/\r\n\r\nconst BP = {\r\n xs: 0.85,\r\n sm: 0.8,\r\n md: 0.6,\r\n lg: 0.55,\r\n xl: 0.5,\r\n};\r\n","import React, { useRef, useState } from \"react\";\r\nimport {\r\n Grid,\r\n Typography,\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n makeStyles,\r\n IconButton,\r\n} from \"@material-ui/core\";\r\nimport { ExpandMore, Print } from \"@material-ui/icons\";\r\nimport ECG from \"./index\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { grey } from \"@material-ui/core/colors\";\r\nimport ecgDoc from \"../../assets/documents/20210728_163102585_a2.pdf\";\r\nimport FakeECG from \"./FakeECG\";\r\n\r\nconst AcordionECG = ({ episodeInfo, is_demo, top, bottom }) => {\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const container = useRef(null);\r\n var moment = require(\"moment\");\r\n const [firstOpen, setfirstOpen] = useState(false);\r\n\r\n const msToTime = (s) => {\r\n // Pad to 2 or 3 digits, default is 2\r\n function pad(n, z) {\r\n z = z || 2;\r\n return (\"00\" + n).slice(-z);\r\n }\r\n\r\n var ms = s % 1000;\r\n s = (s - ms) / 1000;\r\n var secs = s % 60;\r\n s = (s - secs) / 60;\r\n var mins = s % 60;\r\n var hrs = (s - mins) / 60;\r\n var total_time = \"\";\r\n\r\n if (hrs !== 0) {\r\n total_time += `${pad(hrs)} ${t(\"common.hours\")} `;\r\n //total_time += total_time + \" \" + pad(hrs) + \" \" + t(\"common.hours\");\r\n }\r\n\r\n if (mins !== 0) {\r\n total_time += `${pad(mins)} ${t(\"common.minutes\")} `;\r\n //total_time = total_time + \" \" + pad(mins) + \" \" + t(\"common.minutes\");\r\n }\r\n\r\n if (secs !== 0) {\r\n total_time += `${pad(secs)}.${pad(ms, 1)} ${t(\"common.seconds\")}`;\r\n //total_time = total_time + \" \" + pad(secs) + \" \" + t(\"common.seconds\");\r\n } else {\r\n total_time += `00.${pad(ms, 3)[0]} ${t(\"common.seconds\")}`;\r\n }\r\n\r\n return total_time; //+ \" \" + pad(ms,3) + \" \" + t(\"common.miliseconds\");\r\n\r\n //return pad(hrs) + ':' + pad(mins) + ':' + pad(secs) + '.' + pad(ms, 3);\r\n };\r\n\r\n return (\r\n setfirstOpen(true)}\r\n style={{\r\n borderRadius: `${top ? \"16px\" : \"0px\"} ${top ? \"16px\" : \"0px\"} ${\r\n bottom ? \"16px\" : \"0px\"\r\n } ${bottom ? \"16px\" : \"0px\"}`,\r\n }}\r\n >\r\n }>\r\n \r\n {t(\"device.episode.date\", {\r\n date: moment(episodeInfo.episode_datetime).format(\"DD/MM/YYYY\"),\r\n })}\r\n \r\n \r\n {t(\"device.episode.time\", {\r\n time: moment(episodeInfo.episode_datetime).format(\"HH:mm:ss\"),\r\n })}\r\n \r\n \r\n {t(\"duration\", { time: msToTime(episodeInfo.duration) })}\r\n \r\n \r\n {\r\n var pdf = `${window.location.origin}/app/episodes/${episodeInfo.episode_id}/pdf`;\r\n if (is_demo) {\r\n pdf = ecgDoc;\r\n }\r\n window.open(pdf, episodeInfo.episode_id);\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n {is_demo && (\r\n \r\n )}\r\n {!is_demo && firstOpen && (\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AcordionECG;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n marginBottom: theme.spacing(3),\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n alignSelf: \"center\",\r\n flexBasis: \"30.33%\",\r\n flexShrink: 0,\r\n },\r\n secondaryHeading: {\r\n alignSelf: \"center\",\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n color: theme.palette.text.secondary,\r\n },\r\n lastHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n alignSelf: \"center\",\r\n flexBasis: \"33.33%\",\r\n color: theme.palette.text.secondary,\r\n },\r\n paper: {\r\n marginTop: theme.spacing(1),\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: 2,\r\n paddingTop: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up(\"xs\")]: {\r\n padding: theme.spacing(4),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(8),\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n },\r\n}));\r\n","import { Grid, makeStyles, Paper, Typography } from \"@material-ui/core\";\r\n\r\nimport React, { useRef } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport AcordionECG from \"../ECG/AcordionECG\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport LoadingPage from \"../LoadingPage\";\r\nimport DeviceTabInfoHeader from \"../DeviceTabInfoHeader\";\r\n\r\nconst DeviceEpisodesTab = ({ device, episodes, isEpisodesLoaded }) => {\r\n const { t } = useTranslation();\r\n\r\n const container = useRef(null);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n\r\n \r\n {!isEpisodesLoaded && }\r\n {(device.serial == \"200700047\" || device.serial == \"200700075\") && [0].map(() => )}\r\n {device.serial != \"200700047\" && device.has_episodes && episodes.map((e, i) => )}\r\n {device.serial != \"200700047\" && device.serial != \"200700075\" && !device.has_episodes && (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"device.episodes.licence_Disabled.title\")}\r\n \r\n \r\n {t(\"device.episodes.has_episode_false\")}\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeviceEpisodesTab;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n title: {\r\n marginBottom: theme.spacing(3),\r\n },\r\n heading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"30.33%\",\r\n flexShrink: 0,\r\n },\r\n secondaryHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n color: theme.palette.text.secondary,\r\n },\r\n lastHeading: {\r\n fontSize: theme.typography.pxToRem(15),\r\n flexBasis: \"33.33%\",\r\n color: theme.palette.text.secondary,\r\n },\r\n paper: {\r\n marginTop: theme.spacing(1),\r\n [theme.breakpoints.down(\"sm\")]: {\r\n padding: 2,\r\n paddingTop: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up(\"xs\")]: {\r\n padding: theme.spacing(4),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(8),\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n },\r\n propertyText: {\r\n marginLeft: theme.spacing(1),\r\n marginBottom: 2,\r\n },\r\n}));\r\n\r\nconst episodeInfo = {\r\n episode_datetime: \"2021-03-24T02:29:37\",\r\n duration: 2000,\r\n episode_id: \"71137a7d-1124-4110-a97b-e259beccf357\",\r\n};\r\n","import { Container, Grid, Tabs, Tab, Paper, Button, Dialog, DialogTitle, DialogContent, DialogActions, TextField, DialogContentText, Typography, makeStyles } from \"@material-ui/core\";\r\nimport React, { useEffect, useRef, useState } from \"react\";\r\nimport { useHistory, useLocation, useParams } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport DeviceAlertTab from \"../components/DeviceTabs/DeviceAlertTab\";\r\nimport DeviceDetailTab from \"../components/DeviceTabs/DeviceDetailTab\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport { ArrowBack, TrafficOutlined } from \"@material-ui/icons\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport DeviceEpisodesTab from \"../components/DeviceTabs/DeviceEpisodesTab\";\r\nimport * as DATANETAPI from \"../components/DataNet/DataNet\";\r\nimport { AuthUserContext, withAuthentication } from \"../components/Session\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport { DEVICE_DELETE_R100 } from \"../constants/roles\";\r\nimport ErrorDialog from \"../components/ErrorDialog\";\r\nimport ButtonLoader from \"../components/ButtonLoader\";\r\nvar _ = require(\"lodash/core\");\r\n\r\nconst DevicePage = () => {\r\n const history = useHistory();\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const { id } = useParams();\r\n\r\n const [value, setValue] = useState(0);\r\n const [device, setDevice] = useState();\r\n const [isDeviceLoaded, setIsDeviceLoaded] = useState(false);\r\n const [episodes, setEpisodes] = useState([]);\r\n const [isEpisodesLoaded, setIsEpisodesLoaded] = useState(false);\r\n const [deleteModal, setDeleteModal] = useState(false);\r\n const [deviceName, setDeviceName] = useState(\"\");\r\n const [isError, setIsError] = useState(false);\r\n const [openAlert, setOpenAlert] = useState(false);\r\n const [isDeviceFound, setIsDeviceFound] = useState(false);\r\n const [canDelete100, setCanDelete100] = useState(false);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [isDeleting, setIsDeleting] = useState(false);\r\n\r\n const handleChange = (event, newValue) => {\r\n setValue(newValue);\r\n };\r\n\r\n const getData = () => {\r\n DATANETAPI.getDevice(id)\r\n .then((snap) => {\r\n if (snap?.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setDevice();\r\n setIsDeviceFound(false);\r\n setIsDeviceLoaded(true);\r\n } else {\r\n if (snap.data !== undefined) {\r\n deviceBack = snap.data;\r\n\r\n DATANETAPI.getGroup(snap.data.groupid).then((snap) => {\r\n if (snap.status >= 0) {\r\n deviceBack.groupName = snap.data.name;\r\n setIsDeviceFound(true);\r\n setDevice(deviceBack);\r\n setIsDeviceLoaded(true);\r\n } else {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n }\r\n });\r\n } else {\r\n setDevice();\r\n setIsDeviceFound(false);\r\n setIsDeviceLoaded(true);\r\n }\r\n }\r\n })\r\n .catch((err) => {\r\n setDevice();\r\n setIsDeviceFound(false);\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let reaload = setInterval(() => {\r\n getData();\r\n }, 40 * 1000);\r\n\r\n return () => {\r\n clearTimeout(reaload);\r\n };\r\n }, []);\r\n\r\n useEffect(() => {\r\n setIsDeviceLoaded(false);\r\n getData();\r\n\r\n DATANETAPI.getEpisodes(id).then((snap) => {\r\n if (snap?.data !== null && snap?.data !== undefined && snap?.status === 1) {\r\n setEpisodes(snap.data);\r\n setIsEpisodesLoaded(true);\r\n } else {\r\n snap?.status < 0 && setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setIsEpisodesLoaded(false);\r\n setEpisodes([]);\r\n }\r\n });\r\n }, [id]);\r\n\r\n const deleteDevice = () => {\r\n /** eliminar el dispositivo */\r\n setIsDeleting(true);\r\n DATANETAPI.deleteDevice(id, device.model).then((snap) => {\r\n if (snap?.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap.data !== undefined) {\r\n if (snap.status == 1) {\r\n setOpenAlert(true);\r\n setIsError(false);\r\n } else {\r\n setOpenAlert(true);\r\n setIsError(true);\r\n }\r\n } else {\r\n //alert(\"Error API Request\");\r\n }\r\n }\r\n setIsDeleting(false);\r\n });\r\n setDeleteModal(false);\r\n };\r\n\r\n const setupDeletePrivileges = (authUser) => {\r\n setCanDelete100(authUser.roles.some((x) => x.name_id === \"DELETE_DEVICE_R100\"));\r\n };\r\n\r\n if (isDeviceLoaded) {\r\n if (isDeviceFound) {\r\n /** dispositivo cargado y encontrado */\r\n return (\r\n \r\n {{(authUser) => !!authUser && setupDeletePrivileges(authUser)}}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {(device.model !== \"Reanibex 100\" || canDelete100) && (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"actions\")}\r\n \r\n \r\n \r\n {t(\"deletedevice\")}\r\n \r\n \r\n setDeleteModal(TrafficOutlined)}\r\n >\r\n {t(\"delete\")}\r\n {(isDeleting || deleteModal) && }\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n setDeleteModal(false)} open={deleteModal}>\r\n {t(\"device.delete.title\")}\r\n \r\n {t(\"device.delete.body\", { name: device.name })}\r\n \r\n {\r\n setDeviceName(e.target.value);\r\n }}\r\n style={{ marginTop: 6 }}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n {!isError ? t(\"devices.delete.dialog.title\") : t(\"devices.delete.dialog.title.error\")}\r\n \r\n {!isError ? t(\"devices.delete.dialog.description\") : t(\"devices.delete.dialog.description.error\")}\r\n \r\n \r\n {\r\n setOpenAlert(false);\r\n if (!isError) history.goBack();\r\n }}\r\n variant=\"contained\"\r\n color=\"primary\"\r\n >\r\n {t(\"devices.new.dialog.agree\")}\r\n \r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n );\r\n } else {\r\n /* dispositivo cargado pero no encontrado */\r\n return (\r\n \r\n \r\n \r\n {t(\"deviceNotFoundTitle\")}\r\n \r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n );\r\n }\r\n } else {\r\n /** dispositivo no cargado */\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n );\r\n }\r\n};\r\n\r\nfunction TabPanel(props) {\r\n const { children, value, index, ...other } = props;\r\n\r\n return (\r\n \r\n );\r\n}\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(DevicePage);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n paper: {\r\n borderRadius: 16,\r\n borderColor: red[200],\r\n padding: theme.spacing(2),\r\n [theme.breakpoints.up(\"xs\")]: {\r\n padding: theme.spacing(4),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(8),\r\n paddingTop: theme.spacing(4),\r\n paddingBottom: theme.spacing(4),\r\n },\r\n },\r\n}));\r\n\r\nvar deviceBack = {\r\n id: 6,\r\n name: \"R100 I+D\",\r\n serial: \"2020/20202414\",\r\n manufacturer: \"Bexen Cardio\",\r\n disabled: false,\r\n conectivity: false,\r\n model: \"Reanibex 100\",\r\n status: { main: 0 },\r\n location: {\r\n name: \"Osatu S.coop\",\r\n latitude: 43.1854194,\r\n longitude: -2.5099712,\r\n },\r\n battery: {\r\n type: \"t_battery\",\r\n id: 124125,\r\n serial: \"2415/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 1,\r\n compatibility: [\"Reanibex 100\"],\r\n },\r\n pads: {\r\n type: \"t_pads\",\r\n id: 154127,\r\n serial: \"50623-0773\",\r\n reference: \"KSA 0501 B\",\r\n expiration_date: \"2021-02-05T11:00:07.865465\",\r\n total: 5,\r\n used: 3,\r\n compatibility: [\"Reanibex 100\"],\r\n },\r\n config: {\r\n device_setting: {\r\n langs: {\r\n default: 1,\r\n list: [\"02_EN\", \"01_ES\"],\r\n },\r\n cpr: {\r\n cpr1: 120,\r\n cpr2: 120,\r\n msg_long: 1,\r\n },\r\n metronome: {\r\n ratio_adult: 1,\r\n ratio_pediatric: 0,\r\n rate: 1,\r\n },\r\n shocks: {\r\n consecutive_shocks: 1,\r\n energy1_adult: 200,\r\n energy2_adult: 200,\r\n energy3_adult: 200,\r\n energy1_pediatric: 50,\r\n energy2_pediatric: 75,\r\n energy3_pediatric: 90,\r\n },\r\n patient: {\r\n patient_type: 1,\r\n },\r\n misc: {\r\n mains_filter: 50,\r\n utc_time: 1,\r\n volume: 2,\r\n },\r\n wifi: {\r\n eap: 1,\r\n ssid: \"\",\r\n pass: \"\",\r\n },\r\n },\r\n },\r\n\r\n alerts: [\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-17T14:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-18T12:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-16T18:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-16T11:45:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-15T18:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 4,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-14T18:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 2,\r\n date: \"2021/3/12\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-14T10:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-13T13:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-13T06:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-11T22:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 1,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-11T12:35:45\",\r\n event_id: 5,\r\n },\r\n {\r\n event_type: 2,\r\n date: \"2020/2/17\",\r\n time: \"25:07\",\r\n event_datetime: \"2020-02-08T14:35:45\",\r\n event_id: 5,\r\n },\r\n ],\r\n};\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { makeStyles, Grid, Dialog, AppBar, Toolbar, Slide, Typography, IconButton, TextField, Checkbox, FormControlLabel, FormGroup, FormControl, FormLabel, Button } from \"@material-ui/core\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport { MuiPickersUtilsProvider, KeyboardDatePicker } from \"@material-ui/pickers\";\r\nimport moment from \"moment\";\r\nimport MomentUtils from \"@date-io/moment\";\r\n\r\nconst AddAccessory = ({ open, type, models, handleClose }) => {\r\n const classes = useStyles();\r\n const { t } = useTranslation();\r\n\r\n const [accType, setaccType] = useState(type);\r\n const [expirationDate, setExpirationDate] = useState(new Date());\r\n const [isExpirationDateCorrect, setisExpirationDateCorrect] = useState(true);\r\n const [compatibility, setCompatibility] = useState([]);\r\n const [total, setTotal] = useState(1);\r\n //const [isTotalCorrect, setisTotalCorrect] = useState(false);\r\n const [serial, setserial] = useState(\"\");\r\n const [reference, setreference] = useState(\"\");\r\n\r\n const handleDateChange = (date) => {\r\n setExpirationDate(date);\r\n setisExpirationDateCorrect(true);\r\n };\r\n\r\n const handleTotal = (event) => {\r\n const value = event.target.value;\r\n //setisTotalCorrect(value >= 0);\r\n setTotal(value < 1 ? 1 : value);\r\n };\r\n\r\n const handleReference = (event) => {\r\n setreference(event.target.value);\r\n };\r\n\r\n const handleCompatibility = (event) => {\r\n const name = event.target.name;\r\n event.target.checked ? compatibility.push(event.target.name) : compatibility.splice(compatibility.indexOf(name));\r\n setCompatibility(compatibility);\r\n };\r\n\r\n const handleSerial = (event) => {\r\n setserial(event.target.value);\r\n };\r\n\r\n var isFormValid = compatibility.length > 0 && total > 0 && serial !== \"\" && isExpirationDateCorrect;\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n handleClose(false)} aria-label=\"close\">\r\n \r\n \r\n \r\n {t(\"accessories.new.title\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {type == \"t_battery\" ? t(\"accessories.new.battery\") : t(\"accessories.new.pads\")}\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n {type == \"t_pads\" && (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n setisExpirationDateCorrect(false)}\r\n views={[\"year\", \"month\"]}\r\n invalidDateMessage={t(\"accessories.new.invalidDate\")}\r\n minDateMessage={t(\"accessories.new.invalidDateMin\")}\r\n minDate={new Date()}\r\n value={expirationDate}\r\n onChange={handleDateChange}\r\n InputAdornmentProps={{ position: \"start\" }}\r\n />\r\n \r\n \r\n \r\n \r\n {t(\"common.compatibility\")}\r\n \r\n \r\n \r\n \r\n \r\n {models.map((model) => (\r\n } label={model} />\r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/*\r\n \r\n \r\n {t(\"devices.new.dialog.title\")}\r\n \r\n \r\n \r\n {t(\"devices.new.dialog.description\")}\r\n \r\n \r\n \r\n \r\n {\r\n setOpenAlert(false);\r\n resetForm();\r\n }}\r\n variant=\"contained\"\r\n style={{ backgroundColor: red[500], color: \"white\" }}\r\n autoFocus\r\n >\r\n {t(\"devices.new.dialog.agree\")}\r\n \r\n \r\n */}\r\n \r\n );\r\n};\r\n\r\nexport default AddAccessory;\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n modal: {\r\n display: \"flex\",\r\n },\r\n paper: {\r\n backgroundColor: theme.palette.background.paper,\r\n boxShadow: theme.shadows[5],\r\n padding: theme.spacing(2, 4, 3),\r\n },\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n root: {\r\n width: \"100%\",\r\n },\r\n backButton: {\r\n marginRight: theme.spacing(1),\r\n },\r\n instructions: {\r\n marginTop: theme.spacing(1),\r\n marginBottom: theme.spacing(1),\r\n },\r\n}));\r\n","import {\r\n Container,\r\n Grid,\r\n Tabs,\r\n Tab,\r\n Paper,\r\n TextField,\r\n InputAdornment,\r\n IconButton,\r\n TableContainer,\r\n Table,\r\n TableRow,\r\n TableCell,\r\n TableHead,\r\n TableBody,\r\n Typography,\r\n LinearProgress,\r\n} from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useLocation, useParams } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport DeviceAlertTab from \"../components/DeviceTabs/DeviceAlertTab\";\r\nimport DeviceDetailTab from \"../components/DeviceTabs/DeviceDetailTab\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport moment from \"moment\";\r\nimport { Add, BatteryCharging30TwoTone, FilterList, Search, NfcOutlined, BatteryFull, AccessAlarms, Nfc } from \"@material-ui/icons\";\r\nimport AddAccessory from \"../components/AddAccessory\";\r\nimport { unmountComponentAtNode } from \"react-dom\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport * as DATANETAPI from \"../components/DataNet/DataNet\";\r\n\r\nconst AccessoriesPage = () => {\r\n const location = useLocation();\r\n const { programId, groupId } = useParams();\r\n const { t } = useTranslation();\r\n\r\n const [inputText, setinputText] = useState(\"\");\r\n const [accessories, setAccessories] = useState([]);\r\n const [isFiltered, setisFiltered] = useState(false);\r\n const [addModalOpen, setAddModalOpen] = useState(false);\r\n const [newAccesoryType, setNewAccesoryType] = useState(\"\");\r\n const [areAccessoriesLoaded, setAreAccesoriesLoaded] = useState(false);\r\n const [batteryFilter, setBatteryFilter] = useState(false);\r\n const [padsFilter, setPadsFilter] = useState(false);\r\n\r\n const searchHandler = (event) => {\r\n console.log(event);\r\n setinputText(event.target.value);\r\n filter(event.target.value, padsFilter, batteryFilter);\r\n };\r\n\r\n const filter = (inputText, pads, battery) => {\r\n let filteredaccs = [];\r\n accesoriesBack.forEach((acc) => {\r\n if (\r\n acc.serial\r\n .toUpperCase()\r\n .concat(acc.reference ? acc.reference.toUpperCase() : \"-\")\r\n .includes(inputText.toUpperCase())\r\n ) {\r\n acc.type == \"t_pads\" && !pads && filteredaccs.push(acc);\r\n acc.type == \"t_battery\" && !battery && filteredaccs.push(acc);\r\n }\r\n });\r\n inputText !== \"\" && setisFiltered(true);\r\n setAccessories(filteredaccs);\r\n };\r\n\r\n useEffect(() => {\r\n setAreAccesoriesLoaded(false);\r\n DATANETAPI.getAccessories(programId, groupId).then((snap) => {\r\n accesoriesBack = snap.data;\r\n if (snap.data !== undefined) {\r\n accesoriesBack = snap.data;\r\n setAccessories(accesoriesBack);\r\n setAreAccesoriesLoaded(true);\r\n } else {\r\n setAccessories([]);\r\n setAreAccesoriesLoaded(true);\r\n // console.log(\"Not accessories available\");\r\n }\r\n });\r\n }, [programId, groupId]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n />\r\n \r\n {\r\n setBatteryFilter(!batteryFilter);\r\n filter(inputText, padsFilter, !batteryFilter);\r\n }}\r\n >\r\n \r\n \r\n\r\n {\r\n setPadsFilter(!padsFilter);\r\n filter(inputText, !padsFilter, batteryFilter);\r\n }}\r\n color={!padsFilter ? \"primary\" : \"textSecondary\"}\r\n style={{ paddingLeft: 8 }}\r\n >\r\n \r\n \r\n \r\n\r\n \r\n \r\n
\r\n \r\n \r\n {t(\"accessories.new.addNew\")}\r\n \r\n \r\n {\r\n setAddModalOpen(true);\r\n setNewAccesoryType(\"t_battery\");\r\n }}\r\n >\r\n \r\n \r\n {\r\n setAddModalOpen(true);\r\n setNewAccesoryType(\"t_pads\");\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n {!areAccessoriesLoaded && }\r\n \r\n \r\n \r\n {t(\"accessories.type\")}\r\n {t(\"device.details.accesories.lot\")}\r\n {t(\"device.details.accesories.ref\")}\r\n {t(\"device.details.accesories.expirationDate\")}\r\n {t(\"device.details.accessories.remaining\")}\r\n {t(\"common.compatibility\")}\r\n \r\n \r\n \r\n {accessories.map((row) => (\r\n \r\n \r\n \r\n {row.type === \"t_battery\" ? : }\r\n \r\n {\" \" + t(\"common.\" + row.type)}\r\n \r\n \r\n \r\n {row.serial}\r\n {row.reference ? row.reference : \"-\"}\r\n {moment(row.expiration_date).format(\"MMM Do YY\")}\r\n {row.total - row.used}\r\n {row.compatibility.map((c, i) => (i !== row.compatibility.length - 1 ? c + \", \" : c))}\r\n \r\n ))}\r\n \r\n
\r\n {accessories.length === 0 && areAccessoriesLoaded && (\r\n
\r\n {t(\"accessories.notFound\")}\r\n
\r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(AccessoriesPage);\r\n\r\nconst devicesModelsBack = [\"Reanibex 100\", \"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"];\r\n\r\nvar accesoriesBack = [\r\n {\r\n type: \"t_pads\",\r\n id: 154127,\r\n serial: \"50623-0773\",\r\n reference: \"KSA 0501 B\",\r\n expiration_date: \"2021-02-05T11:00:07.865465\",\r\n total: 5,\r\n used: 3,\r\n compatibility: [\"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_pads\",\r\n id: 154128,\r\n serial: \"50623-0777\",\r\n reference: \"KSA 0501 B\",\r\n expiration_date: \"2023-02-05T11:00:07.865465\",\r\n total: 10,\r\n used: 3,\r\n compatibility: [\"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_pads\",\r\n id: 154129,\r\n serial: \"50625-0777\",\r\n reference: \"KSA 0501 B\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 10,\r\n used: 3,\r\n compatibility: [\"Reanibex 200\", \"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 154125,\r\n serial: \"2015/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 114125,\r\n serial: \"2016/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 200\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 124125,\r\n serial: \"2415/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 153125,\r\n serial: \"2015/21410356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 1545254,\r\n serial: \"2015/33070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 944125,\r\n serial: \"2015/270356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 754125,\r\n serial: \"12015/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 1034125,\r\n serial: \"82015/21070356\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 0,\r\n compatibility: [\"Reanibex 200\"],\r\n },\r\n {\r\n type: \"t_battery\",\r\n id: 924125,\r\n serial: \"prueba\",\r\n expiration_date: \"2022-02-05T11:00:07.865465\",\r\n total: 1,\r\n used: 1,\r\n compatibility: [\"Reanibex 300\", \"Reanibex 500\"],\r\n },\r\n];\r\n","import React, { useEffect, useState } from \"react\";\r\nimport {\r\n makeStyles,\r\n Grid,\r\n Dialog,\r\n AppBar,\r\n Toolbar,\r\n Slide,\r\n Typography,\r\n IconButton,\r\n TextField,\r\n Checkbox,\r\n FormControlLabel,\r\n FormGroup,\r\n FormControl,\r\n FormLabel,\r\n Button,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n} from \"@material-ui/core\";\r\nimport { Close } from \"@material-ui/icons\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { red } from \"@material-ui/core/colors\";\r\n\r\nconst AddUser = ({ open, handleClose }) => {\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const [email, setEmail] = useState();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n handleClose(false)}\r\n aria-label=\"close\"\r\n >\r\n \r\n \r\n \r\n {t(\"user.new.title\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n {t(\"user.new.userDate\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"user.info.edit.role.label\")}\r\n \r\n \r\n Admin\r\n Coordinaor\r\n usuario\r\n \r\n \r\n \r\n \r\n \r\n {t(\"user.new.asignedGroup.title\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AddUser;\r\n\r\nconst Transition = React.forwardRef(function Transition(props, ref) {\r\n return ;\r\n});\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n appBar: {\r\n position: \"relative\",\r\n },\r\n title: {\r\n marginLeft: theme.spacing(2),\r\n flex: 1,\r\n },\r\n}));\r\n","import { Container, Grid, InputAdornment, Paper, Table, TableRow, TableBody, TableCell, TableContainer, TableHead, TextField, Typography, Avatar, LinearProgress, Hidden } from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { AccountCircle, Search, SupervisedUserCircle, VerifiedUser } from \"@material-ui/icons\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport AddUser from \"../components/AddUser\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport * as DATANETAPI from \"../components/DataNet/DataNet\";\r\nimport LoadingPage from \"../components/LoadingPage\";\r\nimport * as ROLES from \"../constants/roles\";\r\n\r\nconst UsersPage = () => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const { programId, groupId } = useParams();\r\n\r\n const [inputText, setinputText] = useState(\"\");\r\n const [addModalOpen, setAddModalOpen] = useState(false);\r\n const [users, setUsers] = useState([]);\r\n const [areUsersLoaded, setAreUsersLoaded] = useState(false);\r\n\r\n const searchHandler = (event) => {\r\n setinputText(event.target.value);\r\n let filteredUsers = [];\r\n usersBack.forEach((user) => {\r\n if (\r\n /**Filtar por, email, nombre, apellido y telefono */\r\n user.email.toUpperCase().concat(user.name.toUpperCase()).concat(user.last_name.toUpperCase()).concat(user.telephone.toUpperCase()).includes(event.target.value.toUpperCase())\r\n ) {\r\n filteredUsers.push(user);\r\n }\r\n });\r\n //event.target.value !== \"\" && setisFiltered(true);\r\n setUsers(filteredUsers);\r\n };\r\n\r\n useEffect(() => {\r\n setAreUsersLoaded(false);\r\n DATANETAPI.getUsers(programId, groupId).then((snap) => {\r\n //console.log(\"USERSSSSS!!!!!\", snap.data);\r\n usersBack = snap.data;\r\n if (snap.data !== undefined) {\r\n usersBack = snap.data;\r\n setUsers(usersBack);\r\n setAreUsersLoaded(true);\r\n } else {\r\n setUsers([]);\r\n setAreUsersLoaded(true);\r\n // console.log(\"Not users available\");\r\n }\r\n });\r\n }, [programId, groupId]);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n ),\r\n }}\r\n variant=\"outlined\"\r\n />\r\n \r\n \r\n \r\n \r\n {/* \r\n {t(\"users.toolbar.tooltip.add\")}\r\n \r\n }\r\n >\r\n \r\n {\r\n setAddModalOpen(true);\r\n }}\r\n >\r\n \r\n \r\n \r\n */}\r\n \r\n \r\n {/*\r\n \r\n \r\n {t(\"users.toolbar.tooltip.shop\")}\r\n \r\n }\r\n >\r\n \r\n {\r\n window.open(\r\n \"https://bexencardio-desfibrilador.com/\",\r\n \"_blank\"\r\n );\r\n }}\r\n >\r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {!areUsersLoaded && }\r\n\r\n \r\n \r\n \r\n {t(\"users.table.email\")}\r\n\r\n {t(\"users.table.name\")}\r\n \r\n {t(\"users.table.last_name\")}\r\n \r\n \r\n {t(\"users.table.telephone\")}\r\n \r\n \r\n {t(\"users.table.groups\")}\r\n \r\n \r\n \r\n \r\n {users.map((row) => (\r\n {\r\n history.push(ROUTES.USER + \"/\" + row.id);\r\n window.scrollTo(0, 0);\r\n }}\r\n //style={{ background: row.status.main == 2 && red[100] }} //para los expirados\r\n >\r\n {/*\r\n \r\n {row.roles.some((x) => x.name_id === ROLES.PROGRAMS_SELECT) && }\r\n {row.roles.some((x) => x.name_id === \"PROGRAM ADMINISTRATOR\" || x.name_id === \"MASTER ADMINISTRATOR\") && }\r\n {row.roles[0].name_id == \"GROUP COORDINATOR\" && }\r\n {row.roles[0].name_id == \"TRAINED RESCUERS\" && }\r\n \r\n */}\r\n \r\n \r\n \r\n {row.email}\r\n \r\n \r\n \r\n {`${row.email}`}\r\n \r\n \r\n\r\n {row.name}\r\n\r\n \r\n {row.last_name}{\" \"}\r\n \r\n \r\n {row.telephone}\r\n \r\n \r\n {row.groups.map((g, i) => (i !== row.groups.length - 1 ? g.name + \" · \" : g.name))}\r\n \r\n \r\n ))}\r\n \r\n
\r\n {users.length === 0 && areUsersLoaded && (\r\n \r\n \r\n {t(\"users.notFound\")}\r\n \r\n \r\n )}\r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(UsersPage);\r\n\r\nvar usersBack = [\r\n {\r\n id: 10,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"c\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 11,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 12,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"a\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 13,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 14,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 15,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n\r\n {\r\n id: 16,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 17,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 18,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 19,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 20,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"c\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n {\r\n id: 21,\r\n email: \"argiosa@bexencardio.com\",\r\n name: \"Argi\",\r\n last_name: \"Osa\",\r\n roles: [\"u\"],\r\n telephone: \"+34 698542154\",\r\n groups: [\"Ermua Centro\"],\r\n },\r\n];\r\n","import React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as DATANETAUTH from \"../DataNet/DataNetAuth\";\r\n\r\nimport { Button, Snackbar, Grid } from \"@material-ui/core\";\r\nimport { CancelOutlined, CheckCircleOutlineOutlined } from \"@material-ui/icons\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport { green, red } from \"@material-ui/core/colors\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\n\r\nconst RequestPasswordButton = ({ reusable, email }) => {\r\n const { t } = useTranslation();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [isPasswordResetCorrect, setIsPasswordResetCorrect] = useState(false);\r\n const [openSnackBar, setOpenSnackBar] = useState(false);\r\n const [isRequestSent, setIsRequestSent] = useState(false);\r\n\r\n /** Solicitar el cambio de contraseña */\r\n /** de momento esta con u aleatorio para sacar todas las opciones */\r\n const handlePassworChange = () => {\r\n setIsLoading(true);\r\n DATANETAUTH.sendPasswordResetEmail(email)\r\n .then((snap) => {\r\n // console.log(snap);\r\n // console.log(\"succes\");\r\n showsnackBar(snap.status == 1);\r\n })\r\n .catch((err) => {\r\n // console.log(\"error\", err);\r\n showsnackBar(false);\r\n });\r\n };\r\n\r\n const showsnackBar = (isCorrect) => {\r\n if (isCorrect) {\r\n setOpenSnackBar(true);\r\n setIsPasswordResetCorrect(true);\r\n setIsLoading(false);\r\n setIsRequestSent(true);\r\n } else {\r\n setOpenSnackBar(true);\r\n setIsPasswordResetCorrect(false);\r\n setIsLoading(false);\r\n setIsRequestSent(true);\r\n }\r\n };\r\n\r\n if (!reusable && isRequestSent) {\r\n return (\r\n <>\r\n {isPasswordResetCorrect ? : }\r\n \r\n \r\n );\r\n } else {\r\n return (\r\n <>\r\n handlePassworChange()}\r\n disabled={!email.match(/^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/i) || isLoading}\r\n >\r\n {t(\"requestPasswordChange\")}\r\n {isLoading && }\r\n \r\n\r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default RequestPasswordButton;\r\n\r\nconst Snack = ({ openSnackBar, setOpenSnackBar, isPasswordResetCorrect, t }) => (\r\n {\r\n setOpenSnackBar(false);\r\n }}\r\n >\r\n {\r\n setOpenSnackBar(false);\r\n }}\r\n severity={isPasswordResetCorrect ? \"success\" : \"error\"}\r\n >\r\n {t(isPasswordResetCorrect ? \"checkEmail\" : \"checkEmailError\")}\r\n \r\n \r\n);\r\n","import {\r\n Container,\r\n Divider,\r\n Grid,\r\n Paper,\r\n Typography,\r\n Avatar,\r\n makeStyles,\r\n TextField,\r\n Button,\r\n FormGroup,\r\n FormControlLabel,\r\n Checkbox,\r\n FormControl,\r\n MenuItem,\r\n Select,\r\n InputLabel,\r\n LinearProgress,\r\n Hidden,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n CircularProgress,\r\n Snackbar,\r\n DialogActions,\r\n} from \"@material-ui/core\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport { green, purple } from \"@material-ui/core/colors\";\r\nimport { ArrowBack, GroupAdd, Person } from \"@material-ui/icons\";\r\nimport React, { useState, useEffect } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory, useLocation } from \"react-router-dom\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport * as DATANETAPI from \"../components/DataNet/DataNet\";\r\nimport * as DATANETAUTH from \"../components/DataNet/DataNetAuth\";\r\nimport LoadingPage from \"../components/LoadingPage\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { red } from \"@material-ui/core/colors\";\r\nimport RequestPasswordButton from \"../components/RequestPasswordButton\";\r\nimport ErrorDialog from \"../components/ErrorDialog\";\r\n\r\nconst INI_ERROR = {\r\n name: true,\r\n last_name: true,\r\n telephone: true,\r\n groups: true,\r\n programs: true,\r\n};\r\n\r\nconst UserPage = (props) => {\r\n /** revisar que los grupos y los programas no esten vacios */\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const location = useLocation();\r\n const classes = useStyles();\r\n const { uid } = useParams();\r\n let isgroupAsigned = false;\r\n\r\n const { authUser } = props;\r\n\r\n const [userForm, setUserForm] = useState([]);\r\n const [errorForm, setErrorForm] = useState(INI_ERROR);\r\n const [isValid, setIsValid] = useState(true);\r\n const [isUserForm, setIsUserForm] = useState(false);\r\n const [passForm, setPassForm] = useState([]);\r\n const [userPrograms, setUserPrograms] = useState([]);\r\n const [openAlert, setOpenAlert] = useState(false);\r\n const [isError, setIsError] = useState(false);\r\n const [posiblePrograms, setPosiblePrograms] = useState([]);\r\n const [areProgramsLoad, setAreProgramsLoad] = useState(false);\r\n const [groups, setGroups] = useState([]);\r\n const [programs, setPrograms] = useState([]);\r\n const [isDataModified, setIsDataModified] = useState(false);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [isPasswordCorrectSend, setIsPasswordCorrectSend] = useState(false);\r\n\r\n useEffect(() => {\r\n /** hook de efecto para comprobar si se ha cambiado el formulario */\r\n setIsDataModified(true);\r\n }, [groups, userForm, programs]);\r\n\r\n const checkGroup = (event) => {\r\n setGroups({ ...groups, [event.target.name]: event.target.checked });\r\n };\r\n\r\n const checkProgram = (event) => {\r\n setPrograms({\r\n ...programs,\r\n [event.target.name]: {\r\n ...programs[event.target.name],\r\n checked: event.target.checked,\r\n },\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setIsValid(Object.keys(errorForm).filter((x) => errorForm[x] === false).length === 0);\r\n }, [errorForm]);\r\n\r\n useEffect(() => {\r\n let userNewPrograms = [];\r\n Object.keys(programs).map((p) => {\r\n if (programs[p].checked) {\r\n userNewPrograms.push({ id: p, name: programs[p].name });\r\n } else {\r\n posiblePrograms.map((pp) => {\r\n pp.id == p &&\r\n pp.groups.map((pg) => {\r\n groups[pg.id] = false;\r\n });\r\n });\r\n }\r\n });\r\n setUserPrograms(userNewPrograms);\r\n setErrorForm({ ...errorForm, progrmas: userNewPrograms.length > 0 });\r\n setErrorForm({\r\n ...errorForm,\r\n groups: Object.keys(groups).filter((x) => x === true).length > 0,\r\n });\r\n }, [programs]);\r\n\r\n useEffect(() => {\r\n var groups_temp = [];\r\n\r\n Object.keys(groups).forEach((x) => {\r\n if (groups[x]) {\r\n var p = posiblePrograms.filter((p) => p.groups.filter((g) => g.id === x).length > 0)[0];\r\n if (p !== undefined) {\r\n var group = p.groups.filter((g) => g.id === x)[0];\r\n groups_temp.push({\r\n id: x,\r\n name_id: group.name,\r\n program_id: group.program_id,\r\n });\r\n }\r\n }\r\n });\r\n userForm.groups = groups_temp;\r\n setErrorForm({ ...errorForm, groups: groups_temp.length > 0 });\r\n }, [groups]);\r\n\r\n useEffect(() => {\r\n if (isUserForm) {\r\n DATANETAPI.currentUser().then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n setPosiblePrograms([]);\r\n setAreProgramsLoad(false);\r\n setIsDataModified(false);\r\n } else {\r\n if (snap.programas !== undefined) {\r\n setPosiblePrograms(snap.programas);\r\n var a = initPrograms(snap.programas, userForm.program);\r\n setPrograms(a);\r\n var b = initGroups(snap.programas, userForm.groups);\r\n setGroups(b);\r\n setAreProgramsLoad(true);\r\n setIsDataModified(false);\r\n } else {\r\n setPosiblePrograms([]);\r\n setAreProgramsLoad(false);\r\n setIsDataModified(false);\r\n }\r\n }\r\n });\r\n }\r\n }, [isUserForm]);\r\n\r\n useEffect(() => {\r\n if (uid !== undefined) {\r\n DATANETAPI.getUser(uid).then((snap) => {\r\n if (snap.data !== undefined) {\r\n setUserForm(snap.data);\r\n setIsUserForm(true);\r\n setIsDataModified(false);\r\n } else {\r\n setIsUserForm(false);\r\n setUserForm([]);\r\n setIsDataModified(false);\r\n }\r\n });\r\n }\r\n }, []);\r\n\r\n const handleSubmit = () => {\r\n DATANETAPI.editUser(userForm, uid).then((snap) => {\r\n if (snap.status < 0) {\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap != undefined) {\r\n setOpenAlert(true);\r\n if (snap.status === 1) {\r\n setIsError(false);\r\n } else {\r\n setIsError(true);\r\n }\r\n }\r\n }\r\n });\r\n };\r\n\r\n const canChangePrograms = (userroles = [{}]) => {\r\n return false; // es necesario revisar las condiciones para evitar dejar programas sin usuarios\r\n // return userroles.some((r) => r.id === \"f4a134d5-bbd7-4a49-95b2-72f6e1096f41\");\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n {\r\n history.goBack();\r\n }}\r\n >\r\n \r\n {\" \" + t(\"common.goBack\")}\r\n \r\n \r\n \r\n \r\n {!isUserForm && }\r\n {isUserForm && && (\r\n <>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {userForm.name + \" \" + userForm.last_name}\r\n \r\n \r\n \r\n \r\n {userForm.email}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"user.info.telephone\")}\r\n \r\n \r\n \r\n {userForm.telephone}\r\n \r\n \r\n \r\n {t(\"users.table.role\")}\r\n \r\n \r\n \r\n {t(canChangePrograms(userForm?.roles) ? \"mantenance_rol\" : \"standard_rol\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"user.info.passwordChange.title\")}\r\n \r\n \r\n \r\n \r\n {isPasswordCorrectSend\r\n ? t(\"pasword.reset.request.correct\")\r\n : t(\"requestPasswordChangeText\", {\r\n email: userForm.name,\r\n })}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {authUser?.email == userForm.email && (\r\n \r\n \r\n \r\n {t(\"common.others\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n {!areProgramsLoad && }\r\n\r\n {areProgramsLoad && (\r\n <>\r\n \r\n {t(\"user.info.edit.title\") + \" \" + userForm.name}\r\n \r\n \r\n \r\n \r\n {t(\"user.info.edit.basic.title\")}\r\n \r\n \r\n \r\n \r\n setUserForm({ ...userForm, name: e.target.value })}\r\n onBlur={(e) =>\r\n setErrorForm({\r\n ...errorForm,\r\n name: e.target.value !== \"\",\r\n })\r\n }\r\n label={t(\"user.info.edit.name\")}\r\n placeholder={t(\"user.info.edit.name.placeholder\")}\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n setUserForm({\r\n ...userForm,\r\n last_name: e.target.value,\r\n })\r\n }\r\n onBlur={(e) =>\r\n setErrorForm({\r\n ...errorForm,\r\n last_name: e.target.value !== \"\",\r\n })\r\n }\r\n label={t(\"user.info.edit.last_name\")}\r\n placeholder={t(\"user.info.edit.last_name.placeholder\")}\r\n variant=\"outlined\"\r\n fullWidth\r\n />\r\n \r\n \r\n \r\n setUserForm({\r\n ...userForm,\r\n telephone: e.target.value,\r\n })\r\n }\r\n onBlur={(e) =>\r\n setErrorForm({\r\n ...errorForm,\r\n telephone: e.target.value !== \"\",\r\n })\r\n }\r\n label={t(\"user.info.edit.phone\")}\r\n placeholder={t(\"user.info.edit.phone.placeholder\")}\r\n variant=\"outlined\"\r\n type=\"tel\"\r\n pattern=\"[0-9]*\"\r\n fullWidth\r\n />\r\n \r\n \r\n\r\n \r\n \r\n {t(\"user.info.edit.programs.title\")}\r\n \r\n \r\n \r\n {\r\n \r\n \r\n {posiblePrograms.map((g, i) => (\r\n }\r\n label={g.name}\r\n disabled={!canChangePrograms(userForm?.roles)}\r\n />\r\n ))}\r\n \r\n \r\n }\r\n \r\n\r\n {!canChangePrograms(userForm?.roles) && (\r\n <>\r\n \r\n \r\n {t(\"user.info.edit.groups.title\")}\r\n \r\n \r\n \r\n \r\n \r\n {false && t(\"user.info.edit.selectAtLeastOneProgram\")}\r\n {posiblePrograms.map((p, i) => {\r\n if (hasThis(userPrograms, p)) {\r\n return p.groups.map((g) => {\r\n return } label={g.name} />;\r\n });\r\n }\r\n })}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n \r\n )}\r\n\r\n setConnectionErrorMsg(\"\")} />\r\n\r\n \r\n {isError ? t(\"devices.setUp.dialog.title.error\") : t(\"devices.setUp.dialog.title\")}\r\n \r\n {isError ? t(\"devices.setUp.dialog.description.error\") : t(\"devices.setUp.dialog.description\")}\r\n \r\n \r\n {\r\n setOpenAlert(false);\r\n }}\r\n variant=\"text\"\r\n color=\"primary\"\r\n autoFocus\r\n >\r\n {t(\"devices.setUp.dialog.agree\")}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst hasThis = (elements, element) => {\r\n let has = false;\r\n elements.forEach((g) => {\r\n if (g.id === element.id) {\r\n has = true;\r\n }\r\n });\r\n return has;\r\n};\r\n\r\nconst initPrograms = (posible, user) => {\r\n let checked = {};\r\n posible.map((p, i) => {\r\n checked[p.id] = { checked: hasThis(user, p), name: p.name, id: p.id };\r\n });\r\n return checked;\r\n};\r\n\r\nconst initGroups = (posible, user) => {\r\n let checked = {};\r\n posible.map((p, i) => {\r\n p.groups.map((g) => (checked[g.id] = hasThis(user, g)));\r\n });\r\n return checked;\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(UserPage);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n avatarCard: { background: \"#f7f8fa\", borderRadius: 9, borderRadius: 19 },\r\n large: {\r\n width: theme.spacing(20),\r\n height: theme.spacing(20),\r\n backgroundColor: \"#fff\",\r\n },\r\n userMainIcon: {\r\n fontSize: theme.spacing(18),\r\n },\r\n}));\r\n\r\nconst posibleProgramsBack = [\r\n {\r\n id: \"1\",\r\n name: \"Ermua\",\r\n groups: [\r\n { id: \"11\", name: \"Ermua centro\" },\r\n { id: \"12\", name: \"Ermua Sur\" },\r\n { id: \"13\", name: \"Ermua Norte\" },\r\n ],\r\n },\r\n {\r\n id: \"2\",\r\n name: \"UPV/EHU\",\r\n groups: [\r\n { id: \"21\", name: \"UPV/EHU Bilbao\" },\r\n { id: \"22\", name: \"UPV/EHU Donosti\" },\r\n { id: \"23\", name: \"UPV/EHU Vitoria\" },\r\n ],\r\n },\r\n];\r\n\r\nconst roles = [\r\n {\r\n id: \"046cdcd2-4bca-411e-bc52-ceed874401e5\",\r\n name_id: \"PROGRAM ADMINISTRATOR\",\r\n },\r\n /* {id : \"046cdcd2-4bca-411e-bc52-ceed874401e5\", name_id : \"PROGRAM ADMINISTRATOR\"},\r\n {id : \"18649469-6482-4646-aec5-e78c5cb64687\", name_id : \"PROGRAM COORDINATOR\"},\r\n {id : \"1ca88a60-f755-4508-abda-58c449ffeb0e\", name_id : \"GROUP ADMINISTRATOR\"},\r\n {id : \"21ebfeed-43d9-458e-b0c5-485dfbc353bb\", name_id : \"TRAINING COORDINATOR\"},\r\n {id : \"32501649-0217-4590-b64b-c80bf1798faf\", name_id : \"GLOBAL ADMINISTRATOR\"},\r\n {id : \"58b2b660-c2d6-42f0-b0b0-ae97968ba1a3\", name_id : \"GROUP COORDINATOR\"},\r\n {id : \"8322d0e1-ca01-4d1c-8034-e213cd840e3b\", name_id : \"MASTER ADMINISTRATOR\"},\r\n {id : \"84da3594-87bb-4541-8eb6-ef940551db04\", name_id : \"AED INSPECTION COORDINATOR\"},\r\n {id : \"a5c2bb91-ba6a-4f2c-b572-cab977ef931d\", name_id : \"AED INSPECTOR\"},\r\n {id : \"e639c76b-9709-4ad8-9121-5298d9cfe3c7\", name_id : \"TRAINED RESCUERS\"}*/\r\n];\r\n","import { Card, CardActionArea, CardMedia, CardContent, Typography, CardActions, Button, Paper, Grid } from \"@material-ui/core\";\r\nimport { purple } from \"@material-ui/core/colors\";\r\nimport { Android, Apple, DescriptionOutlined, ShopOutlined, Web } from \"@material-ui/icons\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nconst SourceCard = ({ source }) => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n {source.title}\r\n \r\n \r\n {t(source.subtitle)}\r\n \r\n \r\n \r\n\r\n \r\n {!!source.buttons ? (\r\n source.buttons.map((b) => (\r\n {\r\n e.preventDefault();\r\n if (source.has_link) {\r\n window.open(b.url, \"_blank\");\r\n } else {\r\n window.location.href = b.url;\r\n }\r\n }}\r\n >\r\n {b.type == \"android\" ? : }\r\n {source.type === \"app\" && t(\"sources.download.App\")}\r\n {source.type === \"web\" && t(\"sources.download.web\")}\r\n {source.type === \"document\" && t(\"sources.download.Document\")}\r\n \r\n ))\r\n ) : (\r\n {\r\n e.preventDefault();\r\n if (source.has_link) {\r\n window.open(source.link, \"_blank\");\r\n } else {\r\n window.location.href = source.link;\r\n }\r\n }}\r\n >\r\n {source.type === \"app\" && t(\"sources.download.App\")}\r\n {source.type === \"web\" && t(\"sources.download.web\")}\r\n {source.type === \"document\" && t(\"sources.download.Document\")}\r\n \r\n )}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default SourceCard;\r\n","import { Container, Grid } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport PageHeader from \"../components/PageHeader\";\r\nimport { withAuthorization } from \"../components/Session\";\r\nimport SourcesCard from \"../components/SourceCard\";\r\n\r\nconst SourcesPage = () => {\r\n const { t } = useTranslation();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {src.map((s) => (\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n );\r\n};\r\n\r\nconst condition = (authUser) => !!authUser;\r\n\r\nexport default withAuthorization(condition)(SourcesPage);\r\n\r\nconst src = [\r\n {\r\n title: \"Reanibex USB SYNC\",\r\n url: \"\",\r\n type: \"app\",\r\n link: \"https://usbsync.blob.core.windows.net/app/REANIBEX_USB_SYNC.exe\",\r\n has_link: false,\r\n subtitle: \"source.rdn.subtitle\",\r\n },\r\n {\r\n title: \"Reanibex NFC Reader\",\r\n url: \"\",\r\n type: \"app\",\r\n link: \"https://play.google.com/store/apps/details?id=com.bexencardio.conf_nfc2&pcampaignid=web_share\",\r\n has_link: false,\r\n subtitle: \"source.nfc.subtitle\",\r\n buttons: [\r\n { url: \"https://apps.apple.com/es/app/reanibex-nfc-reader/id6698870383\", type: \"ios\" },\r\n { url: \"https://play.google.com/store/apps/details?id=com.bexencardio.conf_nfc2\", type: \"android\" },\r\n ],\r\n },\r\n {\r\n title: \"Reanibex Alert\",\r\n url: \"\",\r\n type: \"app\",\r\n link: \"https://play.google.com/store/apps/details?id=com.reanibex_alert&gl=ES\",\r\n has_link: true,\r\n subtitle: \"source.alert.subtitle\",\r\n buttons: [\r\n { url: \"https://apps.apple.com/es/app/reanibex-alert/id6445820800\", type: \"ios\" },\r\n { url: \"https://play.google.com/store/apps/details?id=com.reanibex_alert&gl=ES\", type: \"android\" },\r\n ],\r\n },\r\n {\r\n title: \"Reanibex training\",\r\n url: \"\",\r\n type: \"web\",\r\n link: \"https://reanibex-training.web.app/\",\r\n has_link: true,\r\n subtitle: \"source.training.subtitle\",\r\n },\r\n {\r\n title: \"Release Note\",\r\n url: \"https://epirepository.blob.core.windows.net/imgs/Release_Note_REANIBEX_100_v2_10_ENG.pdf\",\r\n type: \"app\",\r\n has_link: true,\r\n link: \"https://epirepository.blob.core.windows.net/imgs/Release_Note_REANIBEX_100_v2_10_ENG.pdf\",\r\n subtitle: \"source.release.subtitle\",\r\n },\r\n];\r\n","import React from \"react\";\r\nimport { useParams, Link } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport * as ROUTES from \"../constants/routes\";\r\n\r\nimport { Grid, Dialog, DialogTitle, DialogContent, DialogActions, DialogContentText, Button } from \"@material-ui/core\";\r\n\r\nconst AccountValidationPage = () => {\r\n const { t } = useTranslation();\r\n const { status } = useParams();\r\n\r\n return (\r\n \r\n \r\n {status === \"1\" ? (\r\n {t(\"account.validation.success.title\")}\r\n ) : (\r\n {t(\"account.validation.error.title\")}\r\n )}\r\n \r\n \r\n {status === \"1\" ?

{t(\"account.validation.success.desc\")}

:

{t(\"account.validation.error.desc\")}

}\r\n
\r\n
\r\n \r\n {status === \"1\" ? (\r\n <>\r\n \r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default AccountValidationPage;\r\n","export const passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!\"#$%&()*,-./:;<=>@[\\\\\\]^_`{|}~¬'¿?¡€ºª·])[a-zA-Z\\d!\"#$%&()*,-./:;<=>@[\\\\\\]^_`{|}~¬'¿?¡€ºª·]{8,}$/;\r\n","import React, { useEffect, useState } from \"react\";\r\n\r\nimport {\r\n Button,\r\n Grid,\r\n InputAdornment,\r\n TextField,\r\n Typography,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogContentText,\r\n DialogActions,\r\n FormControlLabel,\r\n Checkbox,\r\n IconButton,\r\n Hidden,\r\n CircularProgress,\r\n} from \"@material-ui/core\";\r\nimport { MailOutline, PersonOutline, PhoneOutlined, SchoolOutlined, FavoriteBorderOutlined, VpnKeyOutlined, LockOutlined, VisibilityOutlined, VisibilityOffOutlined } from \"@material-ui/icons\";\r\n\r\nimport { useHistory, Link } from \"react-router-dom\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { grey, red } from \"@material-ui/core/colors\";\r\nimport * as DATANETAPI from \"../DataNet/DataNet\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport LangSelect from \"../Navigation/LangSelect\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\nimport { passwordPattern } from \"../../constants/validations\";\r\nimport { Document, Page, pdfjs } from \"react-pdf/dist/esm/entry.webpack\";\r\nimport useWindowDimensions from \"../../functions/useWindowDimensions\";\r\n\r\nconst emailPattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n\r\nconst INITIAL_STATE = {\r\n email: \"\",\r\n name: \"\",\r\n surnames: \"\",\r\n serial: \"\",\r\n key: \"\",\r\n phone: \"\",\r\n program_name: \"\",\r\n confirmation_email: \"\",\r\n password: \"\",\r\n repeat_password: \"\",\r\n conditions: false,\r\n lang: \"es\",\r\n};\r\n\r\nconst INITIAL_ERROR_STATE = {\r\n email: null,\r\n confirmation_email: null,\r\n name: null,\r\n surnames: null,\r\n serial: null,\r\n key: null,\r\n phone: null,\r\n program_name: null,\r\n password: null,\r\n repeat_password: null,\r\n conditions: false, //para la validación\r\n};\r\n\r\nconst CreateAccount = () => {\r\n const history = useHistory();\r\n const { t, i18n } = useTranslation();\r\n const { height, width } = useWindowDimensions();\r\n\r\n const [accountForm, setAccountForm] = useState(INITIAL_STATE);\r\n const [errorId, setErrorId] = useState(0);\r\n const [modalSuccess, setModalSuccess] = useState(false);\r\n const [openError, setOpenError] = useState(false);\r\n const [errorForm, setErrorForm] = useState(INITIAL_ERROR_STATE);\r\n const [isValid, setIsvalid] = useState(false);\r\n const [open, setOpen] = React.useState(false);\r\n const [showPassword, setShowPassword] = useState(false);\r\n const [showRepeatPassword, setShowRepeatPassword] = useState(false);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [pdfWidth, setPdfWidth] = useState(0);\r\n\r\n pdfjs.GlobalWorkerOptions.workerSrc = `//cdnjs.cloudflare.com/ajax/libs/pdf.js/${pdfjs.version}/pdf.worker.js`;\r\n\r\n const handleCloseError = () => {\r\n setOpenError(false);\r\n if (modalSuccess) {\r\n setAccountForm(INITIAL_STATE);\r\n setErrorForm(INITIAL_ERROR_STATE);\r\n history.push(ROUTES.SIGN_IN);\r\n }\r\n };\r\n\r\n const handleLangChange = (lang) => {\r\n setAccountForm({\r\n ...accountForm,\r\n lang: lang,\r\n });\r\n };\r\n\r\n const handleClickOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleClickShowPassword = () => {\r\n setShowPassword(!showPassword);\r\n setShowRepeatPassword(!showPassword);\r\n };\r\n\r\n const handleMouseDownPassword = (event) => {\r\n event.preventDefault();\r\n };\r\n useEffect(() => {\r\n let breakP;\r\n if (width <= 600) {\r\n breakP = BP.xs;\r\n } else if (width < 960) {\r\n breakP = BP.sm;\r\n } else if (width <= 1280) {\r\n breakP = BP.md;\r\n } else if (width < 1920) {\r\n breakP = BP.lg;\r\n } else {\r\n breakP = BP.xl;\r\n }\r\n setPdfWidth(width * breakP);\r\n }, [width]);\r\n\r\n const onSubmit = (e) => {\r\n setIsLoading(true);\r\n e.preventDefault();\r\n //createAccount\r\n handleLangChange(i18n.language.split(\"-\")[0]);\r\n DATANETAPI.createAccount({ ...accountForm, lang: i18n.language }).then((snap) => {\r\n setIsLoading(false);\r\n if (snap?.status < 0) {\r\n setModalSuccess(false);\r\n setErrorId(4);\r\n setOpenError(true);\r\n setConnectionErrorMsg(t(`error.connection_${snap.status}`));\r\n } else {\r\n if (snap.status !== undefined) {\r\n // request finished\r\n if (snap.status === 1) {\r\n // SUCCESSn\r\n setModalSuccess(true);\r\n setErrorId(1);\r\n setOpenError(true);\r\n } else {\r\n // ERROR\r\n setModalSuccess(false);\r\n setErrorId(snap.status);\r\n setOpenError(true);\r\n if (snap.status === 3 || snap.status === 4) {\r\n setErrorForm((errorForm) => ({\r\n ...errorForm,\r\n key: t(\"account.validation.error.3-4\"),\r\n serial: t(\"account.validation.error.3-4\"),\r\n }));\r\n }\r\n if (snap.status === 6) {\r\n setErrorForm((errorForm) => ({\r\n ...errorForm,\r\n email: t(\"account.validation.error.6\"),\r\n confirmation_email: t(\"account.validation.error.6\"),\r\n }));\r\n }\r\n if (snap.status === 5) {\r\n setErrorForm((errorForm) => ({\r\n ...errorForm,\r\n serial: t(\"account.validation.error.3-4\"),\r\n }));\r\n }\r\n }\r\n } else {\r\n //error during request\r\n setModalSuccess(false);\r\n setErrorId(4);\r\n setOpenError(true);\r\n }\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n let isValid = true;\r\n Object.keys(errorForm).forEach((x) => {\r\n if (x == \"conditions\") {\r\n isValid = accountForm.conditions && isValid;\r\n } else if (x == \"phone\") {\r\n isValid = !errorForm[x] && isValid;\r\n } else {\r\n isValid = !errorForm[x] && accountForm[x] !== \"\" && isValid;\r\n }\r\n });\r\n setIsvalid(isValid);\r\n }, [errorForm]);\r\n\r\n useEffect(() => {\r\n handleLangChange(i18n.language.split(\"-\")[0]);\r\n }, []);\r\n\r\n const validEmail = (field) => {\r\n var email = accountForm[field];\r\n if (email !== \"\") {\r\n var errorMsg = new RegExp(emailPattern).test(email) ? null : t(\"account.error.format_email\");\r\n var eForm = { ...errorForm, [field]: errorMsg };\r\n setErrorForm(eForm);\r\n if (accountForm.email != \"\" && accountForm.confirmation_email != \"\" && !!!errorMsg) {\r\n validEmails();\r\n }\r\n } else {\r\n setErrorForm({ ...errorForm, [field]: t(\"account.error.empty\") });\r\n }\r\n };\r\n\r\n const validEmails = () => {\r\n var errorMsg = accountForm.email === accountForm.confirmation_email ? null : t(\"account.error.repeat_email\");\r\n\r\n var eForm = { ...errorForm, confirmation_email: errorMsg, email: errorMsg };\r\n setErrorForm(eForm);\r\n };\r\n\r\n const validPassword = (field) => {\r\n const psw = accountForm[field];\r\n var msg;\r\n if (psw != \"\") {\r\n msg = new RegExp(passwordPattern).test(psw) && psw.length > 8 ? null : t(\"account.error.password\");\r\n\r\n if (msg == null && accountForm.password != \"\" && accountForm.repeat_password != \"\" && accountForm.password.length < 72) {\r\n validRepeatPassword();\r\n } else if (accountForm.password.length >= 72) {\r\n msg = t(\"account.error.too_long\");\r\n setErrorForm({ ...errorForm, [field]: msg });\r\n } else {\r\n setErrorForm({ ...errorForm, [field]: msg });\r\n }\r\n } else {\r\n msg = t(\"account.error.empty\");\r\n\r\n setErrorForm({ ...errorForm, [field]: msg });\r\n }\r\n };\r\n\r\n const validRepeatPassword = () => {\r\n var errorMsg = accountForm.password === accountForm.repeat_password ? null : t(\"account.error.repeat_password\");\r\n\r\n setErrorForm({\r\n ...errorForm,\r\n repeat_password: errorMsg,\r\n password: errorMsg,\r\n });\r\n };\r\n\r\n const validPhone = () => {\r\n const rege1 = new RegExp(\"/^[+]?[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4,6}$/im\");\r\n const rege2 = new RegExp(\"^([+]*[(][0-9]{1,3}[)])?[\\\\s]?([0-9]{2,4}[\\\\s.-]?){2,4}$\");\r\n const isEmpty = accountForm.phone === \"\";\r\n\r\n var validformat = rege1.test(accountForm.phone) || rege2.test(accountForm.phone);\r\n\r\n setErrorForm((errorForm) => ({\r\n ...errorForm,\r\n phone: !isEmpty ? (validformat ? null : t(\"account.error.format_phone\")) : t(\"account.error.empty\"),\r\n }));\r\n };\r\n\r\n const validSerial = () => {\r\n var msg = accountForm.serial === \"\" ? t(\"account.error.empty\") : new RegExp(\"^2007[0-9]{5,5}$\").test(accountForm.serial) ? null : t(\"account.error.format_sn\");\r\n setErrorForm((errorForm) => ({ ...errorForm, serial: msg }));\r\n };\r\n\r\n return (\r\n <>\r\n \r\n \r\n {t(\"account.wellcome\")}\r\n \r\n \r\n \r\n {t(\"account.title\")}\r\n \r\n\r\n \r\n
\r\n
\r\n
\r\n
\r\n\r\n {/** contenedor de los fileds */}\r\n \r\n \r\n \r\n setAccountForm({\r\n ...accountForm,\r\n email: e.target.value.trim(),\r\n })\r\n }\r\n onBlur={() => validEmail(\"email\")}\r\n error={!!errorForm.email}\r\n helperText={errorForm.email}\r\n placeholder=\"email@mail.com\"\r\n type=\"text\"\r\n required\r\n label={t(\"common.email\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n setAccountForm({\r\n ...accountForm,\r\n confirmation_email: e.target.value,\r\n })\r\n }\r\n onBlur={() => validEmail(\"confirmation_email\")}\r\n error={!!errorForm.confirmation_email}\r\n helperText={errorForm.confirmation_email}\r\n type=\"text\"\r\n required\r\n label={t(\"common.repemail\")}\r\n placeholder=\"email@mail.com\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n \r\n setAccountForm({\r\n ...accountForm,\r\n password: e.target.value,\r\n })\r\n }\r\n onBlur={() => validPassword(\"password\")}\r\n error={!!errorForm.password}\r\n helperText={errorForm.password}\r\n type={showPassword ? \"text\" : \"password\"}\r\n label={t(\"common.password\")}\r\n placeholder=\"XXXXXXXXXXXXXXX\"\r\n required\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n endAdornment: (\r\n \r\n \r\n {showPassword ? : }\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n\r\n \r\n \r\n setAccountForm({\r\n ...accountForm,\r\n repeat_password: e.target.value,\r\n })\r\n }\r\n onBlur={() => validPassword(\"repeat_password\")}\r\n error={!!errorForm.repeat_password}\r\n helperText={errorForm.repeat_password}\r\n type={showRepeatPassword ? \"text\" : \"password\"}\r\n label={t(\"common.repeat_password\")}\r\n placeholder=\"XXXXXXXXXXXXXXX\"\r\n required\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n endAdornment: (\r\n \r\n \r\n {showRepeatPassword ? : }\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setAccountForm({\r\n ...accountForm,\r\n name: e.target.value.toUpperCase(),\r\n });\r\n }}\r\n onBlur={() => {\r\n var is_valid = accountForm.name != \"\" && accountForm.name.length < 50;\r\n setErrorForm({\r\n ...errorForm,\r\n name: is_valid ? null : t(\"account.error.name\"),\r\n });\r\n }}\r\n error={!!errorForm.name}\r\n helperText={errorForm.name}\r\n required\r\n type=\"text\"\r\n label={t(\"common.name\")}\r\n placeholder={t(\"common.name\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n setAccountForm({\r\n ...accountForm,\r\n surnames: e.target.value.toUpperCase(),\r\n });\r\n }}\r\n onBlur={() => {\r\n var is_valid = accountForm.surnames != \"\" && accountForm.surnames.length < 100;\r\n setErrorForm({\r\n ...errorForm,\r\n surnames: is_valid ? null : t(\"account.error.surnames\"),\r\n });\r\n }}\r\n error={!!errorForm.surnames}\r\n helperText={errorForm.surnames}\r\n required\r\n type=\"text\"\r\n label={t(\"common.surnames\")}\r\n placeholder={t(\"common.surnames\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n\r\n \r\n setAccountForm({ ...accountForm, phone: e.target.value })}\r\n required\r\n onBlur={validPhone}\r\n error={!!errorForm.phone}\r\n helperText={errorForm.phone}\r\n type=\"tel\"\r\n label={t(\"common.phone\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n\r\n \r\n {\r\n setAccountForm({\r\n ...accountForm,\r\n program_name: e.target.value,\r\n });\r\n }}\r\n required\r\n onBlur={() => {\r\n var is_correct = accountForm.program_name != \"\" && accountForm.program_name.length <= 39;\r\n setErrorForm({\r\n ...errorForm,\r\n program_name: is_correct ? null : t(\"account.error.program\"),\r\n });\r\n }}\r\n error={!!errorForm.program_name}\r\n helperText={errorForm.program_name}\r\n type=\"text\"\r\n label={t(\"account.program\")}\r\n placeholder={t(\"common.program_placeholder\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n\r\n \r\n setAccountForm({ ...accountForm, serial: e.target.value })}\r\n onBlur={validSerial}\r\n error={!!errorForm.serial}\r\n helperText={errorForm.serial}\r\n type=\"text\"\r\n label={t(\"common.serialNumber\")}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n\r\n \r\n setAccountForm({ ...accountForm, key: e.target.value })}\r\n error={!!errorForm.key}\r\n onBlur={() =>\r\n setErrorForm({\r\n ...errorForm,\r\n key: accountForm.key != \"\" ? null : t(\"account.error.empty\"),\r\n })\r\n }\r\n helperText={errorForm.key}\r\n type=\"text\"\r\n label={t(\"common.code\")}\r\n placeholder=\"XXXXXXXXXXXXXXX\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n\r\n \r\n {\r\n setAccountForm({\r\n ...accountForm,\r\n conditions: e.target.checked,\r\n });\r\n setErrorForm({\r\n ...errorForm,\r\n conditions: e.target.checked,\r\n });\r\n }}\r\n color=\"primary\"\r\n />\r\n }\r\n label={\r\n {\r\n e.preventDefault();\r\n window.open(t(\"Privacy_Policy.pdf\"), \"_blank\");\r\n // handleClickOpen();\r\n }}\r\n style={{\r\n fontSize: 16,\r\n color: grey[600],\r\n marginBottom: 0,\r\n }}\r\n >\r\n {t(\"rescuers.register.aceptConditions\")}\r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n\r\n \r\n {\r\n window.scrollTo(0, 0);\r\n }}\r\n >\r\n {t(\"common.home\")}\r\n \r\n \r\n ·\r\n \r\n \r\n {t(\"common.reportCreteAccountError\")}\r\n \r\n \r\n ·\r\n \r\n \r\n bexencardio.com\r\n \r\n ·\r\n \r\n \r\n {t(\"rescuers.register.privacity\")}\r\n \r\n \r\n

{t(\"rescuers.register.privacydescriptionI\")}

\r\n

{t(\"rescuers.register.privacydescriptionI1\")}

\r\n

{t(\"rescuers.register.privacydescriptionII\")}

\r\n

{t(\"rescuers.register.privacydescriptionIII\")}

\r\n

{t(\"rescuers.register.privacydescriptionIV\")}

\r\n

{t(\"rescuers.register.privacydescriptionV\")}

\r\n

{t(\"rescuers.register.privacydescriptionVI\")}

\r\n
\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n {modalSuccess ? t(\"account.success_title\") : t(\"account.err_title\")}\r\n\r\n \r\n \r\n {t(\"account.err_\" + errorId)}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n \r\n );\r\n};\r\n\r\nexport default CreateAccount;\r\n\r\nconst BP = {\r\n xs: 0.8,\r\n sm: 0.8,\r\n md: 0.65,\r\n lg: 0.55,\r\n xl: 0.5,\r\n};\r\n","import { Grid, Hidden, Paper } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport CreateAccount from \"./CreateAccountForm\";\r\nimport { red, grey, blue } from \"@material-ui/core/colors\";\r\n\r\nconst CreateAccountForm = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default CreateAccountForm;\r\n","import React from \"react\";\r\nimport CreateAccount from \"../components/CreateAccount/\";\r\n\r\nconst NewAccount = () => {\r\n return ;\r\n};\r\n\r\nexport default NewAccount;\r\n","export default __webpack_public_path__ + \"static/media/logo_color_Cardio_Protecccion.845559ee.png\";","import {\r\n Container,\r\n FormHelperText,\r\n Grid,\r\n Paper,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport cardioLogo from \"../constants/images/logo_color_Cardio_Protecccion.png\";\r\nimport { Link } from \"react-router-dom\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport * as DATANET_AUth from \"../components/DataNet/DataNetAuth\";\r\nimport RequestPasswordButton from \"../components/RequestPasswordButton\";\r\n\r\nconst RequestPasswordChange = ({ firebase }) => {\r\n const { t } = useTranslation();\r\n const [email, setEmail] = useState(\"\");\r\n const [error, setError] = useState(null);\r\n\r\n const onchange = (e) => {\r\n setEmail(e.target.value.toLowerCase().trim());\r\n !!error && setError(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"resetPasswordTitleEmail\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"resetPasswordTextEmail\")}\r\n \r\n \r\n\r\n \r\n \r\n {!!error && {t(error)}}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"home\")}\r\n \r\n \r\n ·\r\n \r\n \r\n {t(\"help\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default RequestPasswordChange;\r\n","import {\r\n Button,\r\n CircularProgress,\r\n Container,\r\n FormControl,\r\n FormHelperText,\r\n Grid,\r\n IconButton,\r\n InputAdornment,\r\n InputLabel,\r\n OutlinedInput,\r\n Paper,\r\n Snackbar,\r\n TextField,\r\n Typography,\r\n} from \"@material-ui/core\";\r\nimport { Visibility, VisibilityOff } from \"@material-ui/icons\";\r\nimport Alert from \"@material-ui/lab/Alert\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useHistory, useParams } from \"react-router-dom\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport * as DATANET_AUTH from \"../components/DataNet/DataNetAuth\";\r\nimport cardioLogo from \"../constants/images/logo_color_Cardio_Protecccion.png\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { passwordPattern } from \"../constants/validations\";\r\n\r\nconst ResetPassword = ({ firebase }) => {\r\n const { t } = useTranslation();\r\n const history = useHistory();\r\n const params = useParams();\r\n\r\n const [openSnackBar, setOpenSnackBar] = useState(false);\r\n const [error, setError] = useState(null);\r\n const [viewPassword, setviewPassword] = useState(false);\r\n const [psw1, setPsw1] = useState(\"\");\r\n const [psw2, setPsw2] = useState(\"\");\r\n const [isCodeExpired, setIsCodeExpired] = useState(false);\r\n const [isLoading, setIsLoading] = useState(false);\r\n const [snakError, setrSnakError] = useState(null);\r\n\r\n const onchange = (e) => {\r\n if (e.target.name == \"psw1\") {\r\n setPsw1(e.target.value);\r\n } else {\r\n setPsw2(e.target.value);\r\n }\r\n };\r\n\r\n const changePassword = (e) => {\r\n e.preventDefault();\r\n setIsLoading(true);\r\n if (psw1 !== \"\" && psw1 == psw2) {\r\n if (!psw1.match(passwordPattern)) {\r\n setError(\"account.error.password\");\r\n setIsLoading(false);\r\n } else {\r\n setError(null);\r\n DATANET_AUTH.confirmPasswordReset(\"email\", params.Token, psw1, psw2)\r\n .then((snap) => {\r\n //history.push(ROUTES.SIGN_IN);\r\n setError(errorCodes[snap.status]);\r\n // console.log(snap.status);\r\n setOpenSnackBar(true);\r\n setIsLoading(false);\r\n setPsw1(\"\");\r\n setPsw2(\"\");\r\n })\r\n .catch((error) => {\r\n setError(\"auth.\" + error.code);\r\n setIsLoading(false);\r\n });\r\n }\r\n } else {\r\n setError(\"passwordNotSame\");\r\n setIsLoading(false);\r\n }\r\n };\r\n\r\n const isValid = psw1 !== \"\" && psw1 == psw2;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"resetPasswordTitleEmail\")}\r\n \r\n \r\n \r\n\r\n \r\n \r\n {t(\"resetPasswordTextPassword\")}\r\n \r\n \r\n\r\n \r\n \r\n \r\n {t(\"password\")}\r\n {\r\n setError(null);\r\n }}\r\n endAdornment={\r\n \r\n {\r\n setviewPassword(!viewPassword);\r\n }}\r\n onMouseDown={() => {\r\n setviewPassword(!viewPassword);\r\n }}\r\n edge=\"end\"\r\n >\r\n {viewPassword ? : }\r\n \r\n \r\n }\r\n />\r\n \r\n \r\n \r\n \r\n {t(\"repeatPassword\")}\r\n {\r\n setError(null);\r\n }}\r\n endAdornment={\r\n \r\n {\r\n setviewPassword(!viewPassword);\r\n }}\r\n onMouseDown={() => {\r\n setviewPassword(!viewPassword);\r\n }}\r\n edge=\"end\"\r\n >\r\n {viewPassword ? : }\r\n \r\n \r\n }\r\n />\r\n \r\n {!!error && {t(error)}}\r\n \r\n \r\n \r\n \r\n {isLoading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"home\")}\r\n \r\n \r\n ·\r\n \r\n \r\n {t(\"help\")}\r\n \r\n \r\n \r\n \r\n \r\n {\r\n setOpenSnackBar(false);\r\n }}\r\n >\r\n {\r\n setOpenSnackBar(false);\r\n }}\r\n severity={error === \"passwordErrorCode_1\" ? \"success\" : \"error\"}\r\n >\r\n {t(error)}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ResetPassword;\r\n\r\nconst errorCodes = {\r\n 0: \"passwordErrorCode_0\",\r\n 1: \"passwordErrorCode_1\",\r\n 2: \"passwordErrorCode_2\",\r\n 3: \"passwordErrorCode_2\",\r\n 4: \"passwordErrorCode_2\",\r\n 5: \"passwordErrorCode_2\",\r\n 6: \"passwordErrorCode_2\",\r\n};\r\n","import { Button, Dialog, DialogActions, DialogContent, DialogTitle, Typography } from \"@material-ui/core\";\r\nimport React, { useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport ButtonLoader from \"../ButtonLoader\";\r\nimport { green, red } from \"@material-ui/core/colors\";\r\nimport { requestNewAccountToken } from \"../DataNet/DataNet\";\r\nimport ErrorDialog from \"../ErrorDialog\";\r\n\r\nconst ExpiredTokenModal = ({ close, open, setValidToken, token, request_uuid }) => {\r\n const { t } = useTranslation();\r\n\r\n const [isRequestingNewToken, setIsRequestingNewToken] = useState(false);\r\n const [requestNewTokenStatus, setRequestNewTokenStatus] = useState(0);\r\n const [attemps, setAttemps] = useState(0);\r\n\r\n const requestNewToken = () => {\r\n setIsRequestingNewToken(true);\r\n requestNewAccountToken(token, request_uuid).then((res) => {\r\n manageResponse(res);\r\n });\r\n };\r\n\r\n const manageResponse = (res) => {\r\n setIsRequestingNewToken(false);\r\n setAttemps(attemps + 1);\r\n //console.log(\"estado de la solicitud del nuevo token\", res);\r\n if (res.status < 0) {\r\n // console.log(\"error de conexión estado -2\");\r\n setRequestNewTokenStatus(-2);\r\n } else if (res.status === 0 || res.status === 2 || res.status === 4 || res.status === 6) {\r\n // console.log(\"error interno\");\r\n setRequestNewTokenStatus(-1);\r\n } else if (res.status === 3) {\r\n // console.log(\"token no válido\");\r\n } else if (res.status === 5) {\r\n // console.log(\"el token sigue siendo válido\");\r\n setRequestNewTokenStatus(5);\r\n } else {\r\n // console.log(\"petición correcta\");\r\n setRequestNewTokenStatus(1);\r\n }\r\n };\r\n\r\n if (requestNewTokenStatus === 0) {\r\n return (\r\n \r\n {t(\"Tiempo expirado\")}\r\n \r\n \r\n {t(\"Para poder crear una cuenta de usuario, es necesario volver a enviar la solicitud. Pulsa en el boton 'Nueva solicitud' y te enviaremos un nuevo enlace a tu cuenta\")}{\" \"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (requestNewTokenStatus === -1) {\r\n return (\r\n \r\n {t(\"Error en la solicitud\")}\r\n \r\n {attemps >= 3 ? (\r\n {t(\"Se han realizado demasiados intentos, pongase en contacto con el distribuidor\")}\r\n ) : (\r\n {t(\"Se ha producido un error, intentelo de nuevo, pulsa en el boton 'Nueva solicitud' y le enviaremos un nuevo enlace a su cuenta\")}\r\n )}\r\n {isRequestingNewToken && (\r\n \r\n {t(\"Solicitando nuevo formulario...\")}\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n } else if (requestNewTokenStatus === -2) {\r\n return setRequestNewTokenStatus(0)} />;\r\n } else if (requestNewTokenStatus === 5) {\r\n return (\r\n \r\n {t(\"Nuevo enlace no necesario\")}\r\n \r\n \r\n {t(\"El formulario aún no ha expirado, intente crear el usuario nuevamente\")}\r\n \r\n \r\n \r\n {\r\n close();\r\n setValidToken();\r\n }}\r\n >\r\n {t(\"common.close\")}\r\n \r\n \r\n \r\n );\r\n } else {\r\n return (\r\n \r\n {t(\"Solicitud enviada\")}\r\n \r\n \r\n {t(\"Se ha enviado un nuevo enlace a la cuenta, complete el formulario antes de que expire.\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n }\r\n};\r\n\r\nexport default ExpiredTokenModal;\r\n","import {\r\n Button,\r\n Checkbox,\r\n Dialog,\r\n DialogActions,\r\n DialogContent,\r\n DialogContentText,\r\n DialogTitle,\r\n FormControlLabel,\r\n FormHelperText,\r\n Grid,\r\n IconButton,\r\n InputAdornment,\r\n Link,\r\n Paper,\r\n TextField,\r\n Typography,\r\n createTheme,\r\n makeStyles,\r\n useTheme,\r\n} from \"@material-ui/core\";\r\nimport React, { useEffect, useState } from \"react\";\r\nimport { AuthUserContext } from \"../components/Session\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { Email, EmailOutlined, LockOutlined, Person, PersonOutline, Phone, PhoneOutlined, Visibility, VisibilityOff } from \"@material-ui/icons\";\r\nimport LangSelect from \"../components/Navigation/LangSelect\";\r\nimport theme from \"../constants/theme\";\r\nimport ButtonLoader from \"../components/ButtonLoader\";\r\nimport { createAccountFromToken } from \"../components/DataNet/DataNet\";\r\nimport { useHistory, useParams } from \"react-router-dom/cjs/react-router-dom.min\";\r\nimport ErrorDialog from \"../components/ErrorDialog\";\r\nimport ExpiredTokenModal from \"../components/ProgramForm/ExpiredTokenModal\";\r\nimport { grey, red } from \"@material-ui/core/colors\";\r\nimport * as ROUTES from \"../constants/routes\";\r\nimport { passwordPattern } from \"../constants/validations\";\r\n\r\nconst RegisterUserFrom = () => {\r\n return (\r\n \r\n {(authUser) => (!!!authUser ? : )}\r\n \r\n );\r\n};\r\n\r\nexport default RegisterUserFrom;\r\n\r\nconst LoggedUser = () => (\r\n \r\n \r\n \r\n \r\n Se requeire cerrar sesión\r\n \r\n Para poder crear una cuenta se tiene que cerrar la actual sesión. Una vez se cierre, vuelva a acceder mediante el enlace.\r\n \r\n \r\n \r\n);\r\n\r\nconst emailPattern = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n//const passwordPattern = /^(?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[!@#$%^&*()_\\-=[\\]{};':\"\\\\|,.<>/?])[a-zA-Z\\d!@#$%^&*()_\\-=[\\]{};':\"\\\\|,.<>/?]{8,}$/;\r\nconst rege1 = new RegExp(\"/^[+]?[(]?[0-9]{3}[)]?[-s.]?[0-9]{3}[-s.]?[0-9]{4,6}$/im\");\r\nconst rege2 = new RegExp(\"^([+]*[(][0-9]{1,3}[)])?[\\\\s]?([0-9]{2,4}[\\\\s.-]?){2,4}$\");\r\n\r\nconst RegisterUserForm = () => {\r\n const { t } = useTranslation();\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const history = useHistory();\r\n const { token_hash, request_uuid } = useParams();\r\n\r\n const [name, setName] = useState(\"\");\r\n const [firstName, setFirstName] = useState(\"\");\r\n const [email, setEmail] = useState(\"\");\r\n const [repeatEmail, setRepeatEmail] = useState(\"\");\r\n const [password, setPassword] = useState(\"\");\r\n const [passwordRepeat, setPasswordRepeat] = useState(\"\");\r\n const [policy, setpolicy] = useState(false);\r\n const [passwordvisible, setPasswordvisible] = useState(false);\r\n const [aceptManagement, setAceptManagement] = useState(true);\r\n const [isCreattingAccount, setIsCreattingAccount] = useState(false);\r\n const [userPhone, setUserPhone] = useState(\"\");\r\n const [expiredToken, setExpiredToken] = useState(false);\r\n const [openTokenExpiredModal, setOpenTokenExpiredModal] = useState(false);\r\n const [connectionErrorMsg, setConnectionErrorMsg] = useState(\"\");\r\n const [generalErrorMsg, setGeneralErrorMsg] = useState(\"\");\r\n const [policyModalOpen, setPolicyModalOpen] = useState(false);\r\n const [userCreatedModalOpen, setUserCreatedModalOpen] = useState(false);\r\n const [requestError, setRequestError] = useState(false);\r\n const [worngTokenModalError, setWorngTokenModalError] = useState(false);\r\n\r\n const [nameError, setNameError] = useState(\"\");\r\n const [firstNameError, setFirstNameError] = useState(\"\");\r\n const [passwordError, setPasswordError] = useState(\"\");\r\n const [repeatPasswordError, setRepeatPasswordError] = useState(\"\");\r\n const [emailError, setEmailError] = useState(\"\");\r\n const [repeatEmailError, setRepeatEmailError] = useState(\"\");\r\n const [userPhoneError, setUserPhoneError] = useState(\"\");\r\n\r\n const checkName = () => (!(name.length > 0 && name.length < 100) ? setNameError(\"nombre incorrecto\") : setNameError(\"\"));\r\n const checkFirstName = () => (!(firstName.length > 0 && firstName.length < 100) ? setFirstNameError(\"nombre incorrecto\") : setFirstNameError(\"\"));\r\n const checkPhone = () => setUserPhoneError(rege1.test(userPhone) || rege2.test(userPhone) ? \"\" : \"Introduce un formato válido\");\r\n const checkEmail = () => {\r\n if (email == \"\") {\r\n setEmailError(t(\"El campo no puede estar vacío\"));\r\n } else if (!email.match(emailPattern)) {\r\n setEmailError(t(\"Introduce un email válido\"));\r\n } else if (email !== repeatEmail && repeatEmail != \"\") {\r\n setEmailError(t(\"Los correos son diferentes\"));\r\n setRepeatEmailError(t(\"Los correos son diferentes\"));\r\n } else {\r\n setEmailError(\"\");\r\n setRepeatEmailError(\"\");\r\n }\r\n };\r\n const checkRepeatemail = () => {\r\n if (email == \"\") {\r\n if (repeatEmail === \"\") {\r\n setRepeatEmailError(t(\"El campo no puede estar vacío\"));\r\n } else {\r\n if (!repeatEmail.match(emailPattern)) {\r\n setRepeatEmailError(t(\"Introduce un email válido\"));\r\n } else {\r\n setEmailError(t(\"El campo no puede estar vacío\"));\r\n setRepeatEmailError(t(\"Los correos son diferentes\"));\r\n }\r\n }\r\n } else {\r\n if (email !== repeatEmail) {\r\n setEmailError(t(\"Los correos son diferentes\"));\r\n setRepeatEmailError(t(\"Los correos son diferentes\"));\r\n } else {\r\n if (repeatEmail.match(emailPattern)) {\r\n setEmailError(\"\");\r\n } else {\r\n setRepeatEmailError(t(\"Introduce un email válido\"));\r\n }\r\n }\r\n }\r\n };\r\n\r\n const checkPassword = () => {\r\n if (password.length < 8) {\r\n setPasswordError(t(\"la contraseña es demasiado corta\"));\r\n } else if (password.length >= 72) {\r\n setPasswordError(t(\"la contraseña es demasiado larga\"));\r\n } else if (!password.match(passwordPattern)) {\r\n setPasswordError(t(\"account.error.password\"));\r\n } else {\r\n if (passwordRepeat !== \"\") {\r\n if (password !== passwordRepeat) {\r\n setPasswordError(t(\"account.error.repeat_password\"));\r\n setRepeatPasswordError(t(\"account.error.repeat_password\"));\r\n } else {\r\n setPasswordError(\"\");\r\n setRepeatPasswordError(\"\");\r\n }\r\n } else {\r\n setPasswordError(\"\");\r\n }\r\n }\r\n };\r\n\r\n const checkPasswordRepeat = () => {\r\n if (password === \"\") {\r\n if (passwordRepeat.length < 8) {\r\n setRepeatPasswordError(t(\"la contraseña es demasiado corta\"));\r\n } else if (passwordRepeat.length >= 72) {\r\n setRepeatPasswordError(t(\"la contraseña es demasiado larga\"));\r\n } else if (!passwordRepeat.match(passwordPattern)) {\r\n setRepeatPasswordError(t(\"account.error.password\"));\r\n } else {\r\n setRepeatPasswordError(\"\");\r\n }\r\n } else {\r\n if (password != passwordRepeat) {\r\n setPasswordError(t(\"account.error.repeat_password\"));\r\n setRepeatPasswordError(t(\"account.error.repeat_password\"));\r\n } else {\r\n if (!passwordRepeat.match(passwordPattern)) {\r\n setRepeatPasswordError(t(\"account.error.password\"));\r\n } else {\r\n setPasswordError(\"\");\r\n setRepeatPasswordError(\"\");\r\n }\r\n }\r\n }\r\n };\r\n\r\n const handleSubmint = () => {\r\n setIsCreattingAccount(true);\r\n const ERROR_CODES = {\r\n 0: () => setRequestError(true),\r\n 2: () => setWorngTokenModalError(true),\r\n 3: () => setRequestError(true),\r\n 4: () => setGeneralErrorMsg(t(\"Revise los campos y vuelva a enviar el formulario\")),\r\n 5: () => {\r\n setEmailError(t(\"El email ya está en uso\"));\r\n setRepeatEmailError(t(\"El email ya está en uso\"));\r\n },\r\n 6: () => {\r\n setExpiredToken(true);\r\n setOpenTokenExpiredModal(true);\r\n },\r\n };\r\n const userData = {\r\n name: name,\r\n surnames: firstName,\r\n email: email,\r\n password: password,\r\n accept_management: policy,\r\n token: token_hash,\r\n request_uuid: request_uuid,\r\n phone: userPhone,\r\n };\r\n\r\n /* setTimeout(() => {\r\n ERROR_CODES[6]();\r\n setIsCreattingAccount(false);\r\n setUserCreatedModalOpen(true);\r\n }, 2500);*/\r\n\r\n createAccountFromToken(userData).then((response) => {\r\n setIsCreattingAccount(false);\r\n if (response.status < 0) {\r\n // setErrorMsg(t(`error.connection_${response.status}`));\r\n } else {\r\n if (response.status == 1) {\r\n //console.log(\"respuesta correcta\");\r\n setUserCreatedModalOpen(true);\r\n } else {\r\n //console.log(response.status);\r\n ERROR_CODES[response.status]();\r\n }\r\n }\r\n });\r\n };\r\n\r\n useEffect(() => {\r\n setGeneralErrorMsg(\"\");\r\n }, [name, firstName, userPhone, email, repeatEmail, password, passwordRepeat]);\r\n\r\n const isValid =\r\n name.length > 0 &&\r\n name.length < 100 &&\r\n firstName.length > 0 &&\r\n firstName.length < 100 &&\r\n email.match(emailPattern) &&\r\n email === repeatEmail &&\r\n password.match(passwordPattern) &&\r\n password === passwordRepeat &&\r\n (rege1.test(userPhone) || rege2.test(userPhone)) &&\r\n policy &&\r\n emailError == \"\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n {t(\"account.wellcome\")}\r\n \r\n \r\n {t(\"account.title\")}\r\n \r\n \r\n\r\n \r\n {\r\n setName(e.target.value);\r\n setNameError(\"\");\r\n }}\r\n onBlur={checkName}\r\n variant=\"outlined\"\r\n autoComplete=\"username\"\r\n error={nameError != \"\" || generalErrorMsg}\r\n helperText={nameError}\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setFirstName(e.target.value);\r\n setFirstNameError(\"\");\r\n }}\r\n onBlur={checkFirstName}\r\n label={t(\"common.surnames\")}\r\n error={firstNameError != \"\" || generalErrorMsg}\r\n helperText={firstNameError}\r\n variant=\"outlined\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setUserPhone(e.target.value);\r\n setUserPhoneError(\"\");\r\n }}\r\n onBlur={checkPhone}\r\n label={t(\"common.phone\")}\r\n error={userPhoneError != \"\" || generalErrorMsg}\r\n helperText={userPhoneError}\r\n variant=\"outlined\"\r\n type=\"tel\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setEmail(e.target.value);\r\n setEmailError(\"\");\r\n }}\r\n onBlur={checkEmail}\r\n error={emailError !== \"\" || generalErrorMsg}\r\n helperText={emailError}\r\n required\r\n label={t(\"common.email\")}\r\n variant=\"outlined\"\r\n autoComplete=\"email\"\r\n type=\"email\"\r\n inputMode=\"email\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setRepeatEmail(e.target.value);\r\n setRepeatEmailError(\"\");\r\n }}\r\n error={repeatEmailError !== \"\" || generalErrorMsg}\r\n helperText={repeatEmailError}\r\n label=\"Confirm email address\"\r\n autoComplete=\"email\"\r\n type=\"email\"\r\n variant=\"outlined\"\r\n inputMode=\"email\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setPassword(e.target.value);\r\n setPasswordError(\"\");\r\n }}\r\n error={passwordError !== \"\" || generalErrorMsg}\r\n helperText={passwordError}\r\n onBlur={checkPassword}\r\n variant=\"outlined\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n endAdornment: (\r\n \r\n setPasswordvisible(!passwordvisible)}\r\n onMouseDown={(e) => e.preventDefault()}\r\n >\r\n {passwordvisible ? : }\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n \r\n {\r\n setPasswordRepeat(e.target.value);\r\n setRepeatPasswordError(\"\");\r\n }}\r\n onBlur={checkPasswordRepeat}\r\n error={repeatPasswordError !== \"\" || generalErrorMsg}\r\n helperText={repeatPasswordError}\r\n variant=\"outlined\"\r\n InputProps={{\r\n startAdornment: (\r\n \r\n \r\n \r\n ),\r\n endAdornment: (\r\n \r\n setPasswordvisible(!passwordvisible)}\r\n onMouseDown={(e) => e.preventDefault()}\r\n >\r\n {passwordvisible ? : }\r\n \r\n \r\n ),\r\n }}\r\n />\r\n \r\n {generalErrorMsg && (\r\n \r\n {generalErrorMsg}\r\n \r\n )}\r\n\r\n \r\n setpolicy(!policy)} name=\"policity\" color=\"primary\" />}\r\n label={\r\n {\r\n e.preventDefault();\r\n setPolicyModalOpen(true);\r\n }}\r\n style={{ fontSize: 16, color: grey[600], marginBottom: 0 }}\r\n >\r\n {t(\"rescuers.register.aceptConditions\")}\r\n \r\n }\r\n />\r\n setAceptManagement(!aceptManagement)} name=\"policity\" color=\"primary\" />}\r\n label={t(\"Acepto que distribuidor pueda ver el contenido del programa\")}\r\n />\r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n window.scrollTo(0, 0)}>\r\n {t(\"common.home\")}\r\n \r\n \r\n ·\r\n \r\n \r\n {t(\"common.reportCreteAccountError\")}\r\n \r\n \r\n ·\r\n \r\n \r\n bexencardio.com\r\n \r\n ·\r\n \r\n \r\n \r\n \r\n \r\n setConnectionErrorMsg(\"\")} />\r\n setOpenTokenExpiredModal()} setValidToken={() => setExpiredToken(false)} token={token_hash} request_uuid={request_uuid} />\r\n \r\n {t(\"El enlace no es válido\")}\r\n \r\n {t(\"El enlace del formulario no es válido, pongase en contacto con el distribuidor\")}\r\n \r\n \r\n \r\n \r\n \r\n \r\n {t(\"Usuario creado\")}\r\n \r\n \r\n {t(\"El usuario se ha creado correctamente. Inicie sesión para acceder a la plataforma\")}\r\n \r\n \r\n \r\n {\r\n setUserCreatedModalOpen(false);\r\n history.push(ROUTES.SIGN_IN);\r\n }}\r\n color=\"primary\"\r\n variant=\"outlined\"\r\n >\r\n {t(\"common.ok\")}\r\n \r\n \r\n \r\n \r\n {t(\"Error en la petición\")}\r\n {t(\"Se ha produdico un error durante la solicitud\")}\r\n \r\n \r\n \r\n \r\n \r\n {t(\"rescuers.register.privacity\")}\r\n \r\n \r\n

{t(\"rescuers.register.privacydescriptionI\")}

\r\n

{t(\"rescuers.register.privacydescriptionI1\")}

\r\n

{t(\"rescuers.register.privacydescriptionII\")}

\r\n

{t(\"rescuers.register.privacydescriptionIII\")}

\r\n

{t(\"rescuers.register.privacydescriptionIV\")}

\r\n

{t(\"rescuers.register.privacydescriptionV\")}

\r\n

{t(\"rescuers.register.privacydescriptionVI\")}

\r\n
\r\n
\r\n \r\n {\r\n setPolicyModalOpen(false);\r\n setpolicy(false);\r\n }}\r\n variant=\"outlined\"\r\n >\r\n {t(\"common.cancel\")}\r\n \r\n {\r\n setPolicyModalOpen(false);\r\n setpolicy(true);\r\n }}\r\n color=\"primary\"\r\n variant=\"outlined\"\r\n >\r\n {t(\"common.ok\")}\r\n \r\n \r\n
\r\n
\r\n );\r\n};\r\n\r\nconst useStyles = makeStyles({\r\n mainPaper: {\r\n width: \"100%\",\r\n padding: theme.spacing(3),\r\n borderRadius: 9,\r\n marginTop: theme.spacing(8),\r\n [theme.breakpoints.down(\"md\")]: {\r\n marginTop: -32,\r\n border: 0,\r\n },\r\n },\r\n});\r\n","import { Container, Divider, Grid, Typography } from \"@material-ui/core\";\r\nimport React from \"react\";\r\nimport PageHeader from \"../components/PageHeader\";\r\n\r\nconst ReleasesNotes = () => {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Historial de cambios\r\n \r\n \r\n {[0, 1, 2, 3, 4, 5].map((x, i) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n {i == 0 && (\r\n \r\n Nuevo\r\n \r\n )}\r\n \r\n Versión de software Reanibex 100 · 209\r\n \r\n \r\n \r\n 9 de Enero 2024\r\n \r\n \r\n \r\n ))}\r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default ReleasesNotes;\r\n","import DataNet from \"./../DataNet/DataNet\";\r\nimport SignInPage from \"../SignIn\";\r\nimport HomePage from \"../Home\";\r\nimport { BrowserRouter, BrowserRouter as Router, Redirect, Route, Switch } from \"react-router-dom\";\r\nimport withAuthentication from \"../Session/withAuthentication\";\r\nimport theme from \"../../constants/theme\";\r\nimport { makeStyles, ThemeProvider } from \"@material-ui/core/styles\";\r\nimport * as ROUTES from \"../../constants/routes\";\r\nimport Navigation from \"../Navigation\";\r\nimport { AuthUserContext } from \"../Session\";\r\nimport \"../../i18n\";\r\n\r\nimport DevicesPage from \"../../pages/DevicesPage\";\r\nimport GroupsPage from \"../../pages/GroupsPage\";\r\nimport ProgramsPage from \"../../pages/ProgramsPage\";\r\nimport DevicePage from \"../../pages/DevicePage\";\r\nimport AccessoriesPage from \"../../pages/AccessoriesPage\";\r\nimport UsersPage from \"../../pages/UsersPage\";\r\nimport UserPage from \"../../pages/UserPage\";\r\nimport SourcesPage from \"../../pages/SourcesPage\";\r\nimport AccountValidationPage from \"../../pages/AccountValidationPage\";\r\nimport NewAccount from \"../../pages/NewAccount\";\r\nimport RequestPasswordChange from \"../../pages/RequestNewPasswordPage\";\r\nimport ResetPassword from \"../../pages/ResetPassword\";\r\nimport RegisterUserFrom from \"../../pages/RegisterUserFrom\";\r\nimport ReleasesNotes from \"../../pages/ReleasesNotes\";\r\n\r\nconst App = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n \r\n \r\n
\r\n {(authUser) => !!authUser && }\r\n\r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/**/}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/** redirigir cuando no se encuentre una ruta */}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withAuthentication(App);\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n content: {\r\n flexGrow: 1,\r\n overflowX: \"hidden\",\r\n [theme.breakpoints.up(\"xs\")]: {\r\n padding: theme.spacing(2),\r\n },\r\n [theme.breakpoints.down(\"xs\")]: {\r\n padding: theme.spacing(1),\r\n paddingTop: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up(\"md\")]: {\r\n padding: theme.spacing(4),\r\n paddingTop: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up(\"lg\")]: {\r\n padding: theme.spacing(6),\r\n paddingTop: theme.spacing(2),\r\n },\r\n [theme.breakpoints.up(\"xl\")]: {\r\n padding: theme.spacing(10),\r\n paddingTop: theme.spacing(2),\r\n },\r\n },\r\n root: {\r\n display: \"flex\",\r\n marginTop: 32,\r\n },\r\n}));\r\n","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from \"react\";\r\nimport ReactDOM from \"react-dom\";\r\nimport \"./index.css\";\r\nimport App from \"./components/App\";\r\nimport reportWebVitals from \"./reportWebVitals\";\r\nimport \"./i18n\";\r\n\r\nReactDOM.render(\r\n \r\n \r\n ,\r\n document.getElementById(\"root\")\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n"],"sourceRoot":""}