{"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","getAllGroups","programId","Promise","resolve","reject","path","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","_user$programas$selec3","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","e","newValue","MenuProps","maxHeight","i","_e$comsTypes","_e$comsTypes2","comsTypes","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","AlertWarning","_config$device_settin101","_config$device_settin102","_config$device_settin103","_config$device_settin104","_config$device_settin105","_config$device_settin106","_config$device_settin107","_config$device_settin108","newVersion","handleAlertWarningChange","handleAlertTimeChange","current_alert_time","alertFrequency","setAlertFrequency","version_current","device_setting","misc","alert_warning","alert_warning_obj","beep_auto_test","_e$target5","handleAlertChange","emit_msg","EnergyModule","_config$device_settin109","_config$device_settin110","setConfig","checkType","errorLabel","isAdult","shocks","DeviceSetupForm","_config$device_settin40","_config$device_settin41","_config$device_settin42","_config$device_settin43","_config$device_settin44","_config$device_settin45","_config$device_settin46","_config$device_settin47","_config$device_settin48","_config$device_settin49","_config$device_settin50","_config$device_settin51","_config$device_settin52","_config$device_settin53","_config$device_settin54","_config$device_settin55","_config$device_settin56","_config$device_settin57","_config$device_settin58","_config$device_settin59","_groupData$comsTypes2","_groupData$comsTypes7","_groupData$comsTypes8","_config$device_settin63","_config$device_settin64","_config$device_settin65","_config$device_settin69","_config$device_settin70","_config$device_settin71","_config$device_settin72","_config$device_settin73","_config$device_settin74","_config$device_settin78","_config$device_settin79","_config$device_settin80","_config$device_settin81","_config$device_settin82","_config$device_settin86","_config$device_settin87","_config$device_settin89","_config$device_settin90","_config$device_settin92","_config$device_settin93","_config$device_settin95","_config$device_settin96","_config$device_settin98","_config$device_settin99","groupData","setGroupData","isConfigLoaded","setIsConfigLoaded","isError","setIsError","openAlert","setOpenAlert","confOptions","setConfOptions","isConfOptions","setIsConfOptions","listLangs","setListLangs","isFormChanged","setIsFormChanged","isFormValid","setIsFormValid","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","filter","_lang_combinations2","xi","requestVersionUpdate","_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","energy2_adult","energy1_adult","energy3_adult","energy3_pediatric","energy2_pediatric","fullScreen","TransitionComponent","Transition","edge","groupName","is_available","NewReleasesIcon","Checkbox","_config$device_settin20","_config$device_settin21","_config$device_settin22","_config$device_settin23","mains_filter","_confOptions$combinat","cpr","cpr1","cpr2","msg_long","metronome","ratio_adult","ratio_pediatric","rate","consecutive_shocks","patient","patient_type","COMS","transmission_mode","priority","_config$device_settin66","_config$device_settin67","_config$device_settin68","_groupData$comsTypes9","_groupData$comsTypes10","_groupData$comsTypes11","_groupData$comsTypes12","_groupData$comsTypes13","_groupData$comsTypes14","transmit_frequency","_config$device_settin75","_config$device_settin76","_config$device_settin77","gps_enable","_config$device_settin83","_config$device_settin84","_config$device_settin85","_config$device_settin88","_config$device_settin91","_e$target3","utc_time","_config$device_settin94","_e$target4","UTC_TIMELIST","volume","_config$device_settin97","alert_patient","_config$device_settin100","_config$device_settin13","_e$target","_config$device_settin14","_config$device_settin15","_config$device_settin16","_e$target2","time_active","time_no_1","time_no_2","time_no_3","_config$device_settin17","_config$device_settin18","_config$device_settin19","currentAlertTime","_config$device_settin","_config$device_settin2","_config$device_settin3","_config$device_settin4","_config$device_settin5","_config$device_settin6","_config$device_settin7","_config$device_settin8","_config$device_settin9","_config$device_settin10","_config$device_settin11","_config$device_settin12","alert_off","alert_5_min","alert_10_min","alert_20_min","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","concat","Set","_response4","_response4$errors","uniqueMap","Map","obj","set","Array","from","newCodes","errorCode","only","properties_mapping","alert","trainner_mode","warning_alert_time","units","energy1_pediatric","alert_time_list","DeviceUpdateStatus","property","placement","arrow","DeviceSettingLang","list_langs","haslangUpdate","groupLangs","grey","textDecorationLine","_groupLangs$list","DeviceSettingShocks","_ref4","groupValue","properties","shift","DeviceSettingItem","property_label","DeviceSettingWarningAlert","_ref5","time_selected","_ref6","parse_value","DeviceInfoItem","_ref7","loading","outOfDate","warning","DataNotAvailable","DeviceAccesoryItem","_ref8","syncOutOfDate","isConnected","demo","demoPadsInNormalMode","unknownBattery","exDate","now","padsConnectedByTime","estimatedWarning","ExpirationDateicon","timeGap","AccesoryNoConnected","_ref9","Error","Warning","DeviceGeneralSettings","_ref10","_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","_ref11","_device$config6","_device$config7","_groupSettings$proper","_groupSettings$proper2","_groupSettings$proper3","_groupSettings$proper4","_ref13","_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","_ref12","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","_statusErrors$errors3","_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","isPadsTestMode","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","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","deviceStatus","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","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","_episodeInfo$conf$dow","_episodeInfo$conf","_episodeInfo$conf$dow2","_episodeInfo$conf2","pad","n","z","ms","conf","downSampling","secs","mins","hrs","total_time","msToTime","stopPropagation","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.7cd57e29.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) => {})\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.15\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 \r\n const currentAlertTime = () => {\r\n if(config?.device_setting?.misc?.alert_warning_obj?.alert_off === 1) return 0;\r\n else if(config?.device_setting?.misc?.alert_warning_obj?.alert_5_min === 1) return 1;\r\n else if(config?.device_setting?.misc?.alert_warning_obj?.alert_10_min === 1) return 2;\r\n else if(config?.device_setting?.misc?.alert_warning_obj?.alert_20_min === 1) return 3;\r\n }\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 handleAlertWarningChange = (e, type) => {\r\n if(type === \"alert_warning\") {\r\n setConfig({\r\n ...config,\r\n device_setting: {\r\n ...config?.device_setting,\r\n misc: {\r\n ...config?.device_setting?.misc, alert_warning: e?.target?.value,},},});\r\n }\r\n else {\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_obj: {\r\n ...config?.device_setting?.misc?.alert_warning_obj,\r\n [type]: e?.target?.value,\r\n }},},});}\r\n };\r\n \r\n const handleAlertTimeChange = (time_active, time_no_1, time_no_2, time_no_3) => {\r\n //console.log(\"Time Conf \", time_active, time_no_1, time_no_2, time_no_3);\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_obj: {\r\n ...config?.device_setting?.misc?.alert_warning_obj,\r\n [time_active]: 1,\r\n [time_no_1]: 0,\r\n [time_no_2]: 0,\r\n [time_no_3]: 0,\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\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 \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 AlertWarning = ({ newVersion, config, t, handleAlertWarningChange, handleAlertTimeChange, current_alert_time}) => {\r\n const [alertFrequency, setAlertFrequency] = useState(current_alert_time);\r\n \r\n\r\n const handleAlertChange = (e) => {\r\n const value = e?.target?.value;\r\n switch(value) {\r\n case 0:\r\n handleAlertTimeChange(\"alert_off\", \"alert_5_min\", \"alert_10_min\", \"alert_20_min\");\r\n break;\r\n case 1:\r\n handleAlertTimeChange(\"alert_5_min\", \"alert_off\", \"alert_10_min\", \"alert_20_min\");\r\n break;\r\n case 2:\r\n handleAlertTimeChange(\"alert_10_min\", \"alert_5_min\", \"alert_off\", \"alert_20_min\" );\r\n break;\r\n case 3:\r\n handleAlertTimeChange(\"alert_20_min\", \"alert_5_min\", \"alert_10_min\", \"alert_off\");\r\n break;\r\n }\r\n\r\n setAlertFrequency(value);\r\n }\r\n \r\n return (<>\r\n {(parseInt(newVersion?.version_current) >= 209 && parseInt(newVersion?.version_current) < 211) ? (\r\n \r\n handleAlertWarningChange(e, \"alert_warning\") }\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 handleAlertWarningChange(e, \"beep_auto_test\") }\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 handleAlertChange(e)}\r\n kv\r\n values={[\r\n { key: 0, value: t(\"devices.setUp.alerts.off\") },\r\n { key: 1, value: t(\"devices.setUp.alert_warning_obj.alert_5_min\") },\r\n { key: 2, value: t(\"devices.setUp.alert_warning_obj.alert_10_min\") },\r\n { key: 3, value: t(\"devices.setUp.alert_warning_obj.alert_20_min\") },\r\n ]}\r\n />\r\n \r\n \r\n handleAlertWarningChange(e, \"emit_msg\") }\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\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: [\r\n \"devices.setUp.trans_mode.frequency.send_everyday\", \r\n \"devices.setUp.trans_mode.frequency.send_4_30_days\", \r\n \"devices.setUp.trans_mode.frequency.send_1_30_days\"],\r\n gps_enable: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n beep_auto_test: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n emit_msg: [\"device.details.values.enable0\", \"device.details.values.enable1\"],\r\n warning_alert_time: [\r\n \"device.details.values.enable0\", \r\n \"devices.setUp.alert_warning_obj.alert_5_min\",\r\n \"devices.setUp.alert_warning_obj.alert_10_min\", \r\n \"devices.setUp.alert_warning_obj.alert_20_min\"]\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 alert_time_list = [\"alert_off\", \"alert_5_min\", \"alert_10_min\", \"alert_20_min\"];\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 {(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 DeviceSettingWarningAlert = ({ property, data, groupValue }) => {\r\n const { t } = useTranslation();\r\n let properties = Object.keys(data);\r\n\r\n const time_selected = (obj) => {\r\n if(obj?.alert_off === 1 || \r\n (obj?.alert_5_min === 0 && obj?.alert_10_min === 0 && obj?.alert_20_min === 0))\r\n { \r\n return 0;\r\n }\r\n\r\n if(obj?.alert_5_min + obj?.alert_10_min + obj?.alert_20_min > 1) return 3;\r\n if(obj?.alert_5_min === 1) return 1;\r\n if(obj?.alert_10_min === 1) return 2;\r\n if(obj?.alert_20_min === 1) return 3;\r\n }\r\n\r\n return (\r\n <>\r\n {properties.map((value) => \r\n !alert_time_list.includes(value) && (\r\n \r\n ))}\r\n {\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 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 propiedades\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\" && value !== \"alert_warning_obj\") ? \r\n \r\n : (value === \"alert_warning_obj\" && (\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 !== \"0210\") {\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\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\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 const isPadsTestMode = statusErrors?.errors?.some((s) => s?.id == 53);\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 {(demoPadsInNormalBattery && !isPadsTestMode) && {` · Demo`}}\r\n {isPadsTestMode && {` · Trainer`}}\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 &&\r\n !isPadsTestMode &&\r\n // 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 { (!isPadsTestMode && !demoPadsInNormalBattery) && syncOutOfDate && moment(dev_status?.padsStatus?.expiration_date).format(\"YYYY-MM\") !== \"0001-01\" && moment().isSameOrAfter(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 {\r\n demoPadsInNormalBattery\r\n ? t(\"error_eREG_23\")\r\n : isPadsTestMode\r\n ? t(\"trainner_pads\")\r\n : status?.is_demo\r\n ? t(\"common.demoMode\")\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 || isPadsTestMode || 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\nimport TypeSync from \"../TypeSync\";\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 % (episodeInfo?.conf?.downSampling ?? 1000);\r\n s = (s - ms) / (episodeInfo?.conf?.downSampling ?? 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 \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 \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 e.stopPropagation();\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 { episodes.map((e, i) => )}\r\n { !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":""}