{"version":3,"sources":["globalComponents/form/components/useForm.js","globalComponents/form/components/validate.js","globalComponents/form/components/demoForm.js","globalComponents/form/containers/index.js","constants/index.js","login/loginAdmin/actions/loginAdminAction.js","login/loginAdmin/services/loginAdminService.js","login/components/errorMessages.js","login/loginAdmin/components/formLoginAdmin.js","login/components/avisoPrivacidad.js","login/loginAdmin/containers/index.js","login/resetPassword/actions/resetPasswordAction.js","login/resetPassword/services/resetPasswordService.js","login/resetPassword/components/formCorreoRecuperacion.js","login/resetPassword/containers/index.js","login/resetPassword/components/errorMessages.js","login/resetPassword/components/formCorreoRecuperacionToken.js","login/resetPassword/containers/resetPasswordTokenContainer.js","management/menu/resources/menu.svg","management/menu/resources/Usuario_on-01.svg","management/menu/resources/Notificaciones_on-15.svg","management/menu/resources/Inicio-12.svg","management/menu/services/index.js","management/menu/action/index.js","management/menu/selector/index.js","helpers/capabilitiesControl.js","management/menu/navBar.js","management/menu/resources/Usuarios_off-06.svg","management/menu/resources/Log out_off-10.svg","management/menu/resources/Admin_off-17.svg","management/menu/resources/Opciones_off-19.svg","management/menu/resources/Planes_off-08.svg","management/menu/sideBar.js","management/resources/Exportar-01.svg","management/home/actions/index.js","management/home/services/index.js","management/home/selectors/index.js","management/pointsMonthExcel/actions/getPuntosGeneradosAction.js","management/pointsMonthExcel/services/getPuntosGeneradosService.js","management/home/components/exportToExcel.js","management/pointsMonthExcel/components/formPuntosGenerados.js","management/pointsMonthExcel/containers/puntosGeneradosContainer.js","management/pointsMonthExcel/actions/getPuntosGastadosAction.js","management/pointsMonthExcel/services/getPuntosGastadosService.js","management/pointsMonthExcel/components/formPuntosGastados.js","management/pointsMonthExcel/containers/puntosGastadosContainer.js","globalComponents/modal/modal.js","management/home/containers/index.js","management/createUserEmp/actions/index.js","management/createUserEmp/services/index.js","management/createUserEmp/container/index.js","management/listUserEmp/resources/icons8-search.svg","globalComponents/table.js","management/listUserEmp/services/index.js","management/listUserEmp/actions/index.js","management/listUserEmp/selectors/index.js","management/listUserEmp/components/modalError.js","management/listUserEmp/components/usersTable.js","management/listUserEmp/container/index.js","globalComponents/buttons/containers/primary/buttonPrimary.js","globalComponents/buttons/containers/secondary/buttonSecondary.js","globalComponents/buttons/containers/red/buttonRed.js","democomponent.js","management/editUserEmp/actions/index.js","management/editUserEmp/services/index.js","management/editUserEmp/selectors/index.js","management/editUserEmp/components/index.js","management/editUserEmp/container/index.js","management/seeUserEmp/actions/index.js","management/seeUserEmp/services/index.js","management/seeUserEmp/selectors/index.js","management/seeUserEmp/components/index.js","management/seeUserEmp/container/index.js","management/usersAdmin/services/listarUsersAdminService.js","management/usersAdmin/actions/listarUsersAdminAction.js","management/usersAdmin/actions/eliminarUserAdminAction.js","management/usersAdmin/services/eliminarUserAdminService.js","management/usersAdmin/components/modalError.js","management/usersAdmin/components/tablaUsersAdmin.js","management/usersAdmin/selectors/index.js","management/usersAdmin/containers/listarUsersAdminContainer.js","management/usersAdmin/actions/agregarNuevoUserAdminAction.js","management/usersAdmin/services/agregarNuevoUserAdminService.js","management/usersAdmin/components/formAddUsersAdmin.js","management/usersAdmin/containers/agregarUserAdminContainer.js","management/usersAdmin/actions/actualizarUserAdminAction.js","management/usersAdmin/services/actualizarUserAdminService.js","management/usersAdmin/components/formEditUsersAdmin.js","management/usersAdmin/services/getUserAdminService.js","management/usersAdmin/actions/getUserAdminAction.js","management/usersAdmin/containers/editarUserAdminContainer.js","management/usersAdmin/actions/actualizarAdminPassAction.js","management/usersAdmin/services/actualizarAdminPassService.js","management/usersAdmin/components/visualizarUserAdmin.js","management/usersAdmin/containers/verUserAdminContainer.js","management/planesAdmin/actions/consultarPlanesAdminAction.js","management/planesAdmin/services/consultarPlanesAdminService.js","management/planesAdmin/selectors/index.js","management/planesAdmin/actions/eliminarPlanAdminAction.js","management/planesAdmin/services/eliminarPlanAdminService.js","management/planesAdmin/components/modalError.js","management/planesAdmin/components/tablaPlanesAdmin.js","management/planesAdmin/containers/listarPlanesAdminContainer.js","management/planesAdmin/actions/agregarPlanAdminAction.js","management/planesAdmin/services/agregarPlanAdminService.js","management/planesAdmin/components/formNewPlanAdmin.js","management/planesAdmin/containers/agregaPlanAdminContainer.js","management/planesAdmin/actions/actualizarPlanAdminAction.js","management/planesAdmin/services/actualizarPlanAdminService.js","management/planesAdmin/components/formActualizarPlanAdmin.js","management/planesAdmin/services/getPlanAdminService.js","management/planesAdmin/actions/getPlanAdminAction.js","management/planesAdmin/containers/actualizarPlanAdminContainer.js","management/planesAdmin/components/visualizarPlanAdmin.js","management/planesAdmin/containers/verPlanAdminContainer.js","checkPoints/actions/index.js","checkPoints/services/index.js","checkPoints/selectors/index.js","checkPoints/content/checkCard.js","checkPoints/content/checkPoints.js","management/listCustomers/services/index.js","management/listCustomers/actions/index.js","management/listCustomers/selectors/index.js","management/listCustomers/components/modalError.js","management/listCustomers/components/customersTable.js","management/listCustomers/container/index.js","management/addCustomer/actions/index.js","management/addCustomer/services/index.js","management/addCustomer/selectors/index.js","management/addCustomer/container/index.js","management/editCustomer/actions/index.js","management/editCustomer/services/index.js","management/editCustomer/selectors/index.js","management/editCustomer/components/formCustomer.js","management/editCustomer/container/index.js","management/seeCustomer/actions/index.js","management/seeCustomer/services/index.js","management/seeCustomer/selectors/index.js","management/seeCustomer/components/formCustomer.js","management/seeCustomer/container/index.js","management/logout/container/index.js","management/adminProfile/actions/actualizarUserAdminAction.js","management/adminProfile/services/actualizarUserAdminService.js","management/adminProfile/components/formEditUsersAdmin.js","management/adminProfile/services/getUserAdminService.js","management/adminProfile/actions/getUserAdminAction.js","management/adminProfile/selectors/index.js","management/adminProfile/container/index.js","helpers/accessControl.js","App.js","reducers/menuAdmin.js","reducers/users.js","reducers/usersAdmin.js","reducers/customerAdmin.js","reducers/membership.js","reducers/planesAdmin.js","reducers/points.js","reducers/statistics.js","reducers/index.js","store/index.js","registerServiceWorker.js","index.js"],"names":["useForm","callback","validate","values","setValues","useState","errors","setErrors","isSubmitting","setIsSubmitting","useEffect","Object","keys","length","handleChange","event","persist","_objectSpread","target","name","value","handleSubmit","preventDefault","lastName","email","test","age","DemoForm","React","createElement","Container","className","id","onSubmit","Form","Row","Col","Group","type","disabled","onChange","Label","TiInfoOutline","Button","form","FormDemo","Component","render","URL_API","loginAdminAction","data","Promise","resolve","reject","response","url","URLSearchParams","map","key","join","res","fetch","method","headers","body","then","json","responser","catch","error","loginAdminService","ErrorMessages","errorLogin","this","props","username","password","nickEmpresa","undefined","FormLoginAdmin","constructor","super","state","visibleHelp","bind","ayuda","cerrar","olvidePassword","r","code","setState","message","ok","localStorage","setItem","JSON","stringify","token","history","push","placeholder","src","alt","onClick","withRouter","AvisoPrivacidad","avisoPrivacidad","window","open","href","rel","LoginContainerAdmin","notifySession","toast","warn","IoMdInformationCircleOutline","position","POSITION","TOP_RIGHT","notifyPolicies","TOP_CENTER","autoClose","classCycle","randomNumber","Math","floor","random","classToAdd","componentDidMount","getItem","match","params","tokenStatus","policies","ToastContainer","resetPasswordAction","resetPasswordService","changePasswordAction","changePasswordService","FormCorreoRecuperacion","IoIosCheckmarkCircle","ResetPasswordContainer","passwordConfirm","sinCoincidencia","FormCorreoRecuperacionToken","onCloseToast","valuesSend","onClose","ResetPasswordTokenContainer","_style","_g","_excluded","_extends","assign","n","e","arguments","t","hasOwnProperty","call","apply","SvgMenu","_ref","svgRef","title","o","i","includes","_objectWithoutPropertiesLoose","getOwnPropertySymbols","s","propertyIsEnumerable","_objectWithoutProperties","x","y","viewBox","style","enableBackground","xmlSpace","ref","d","ForwardRef","forwardRef","SvgUsuarioOn01","SvgNotificacionesOn15","_path","SvgInicio12","changeMenuState","createAction","array","menuState","getMenuState","CurrentUserCan","capabilities","root","admin","user","movile","loginData","parse","role","CurrentUserIs","CurrentUserIsActive","active","Nav","showMenu","showNotif","closeMenu","closeNotif","activeOptionPerfil","changeMenu","toProfile","document","addEventListener","dropdownMenu","contains","removeEventListener","dropdownNotif","activeOptionNotif","MenuIcon","Link","to","HomeIcon","NotificIcon","aria-labelledby","element","Usericon","defaultProps","height","width","connect","stateMenu","SvgUsuariosOff06","SvgLogoutOff10","SvgAdminOff17","SvgOpcionesOff19","SvgPlanesOff08","optionHome","option","optionAdmins","optionUsers","optionOptions","optionPlanes","optionRootUser","SideBar","ocultarMenu","menuSize","innerHeight","innerWidth","componentDidUpdate","toString","classNameDivs","classSize","Usersicon","AdminsIcon","PlanesIcon","Optionsicon","LogoutIcon","SvgExportar01","getStatisticsAction","getStatisticsServices","getStatisticsProductsAction","getStatisticsProductsServices","getStatisticsPerHourAction","getStatisticsPerHourServices","acceptPolicyAction","obj","respuesta","concat","Headers","acceptPolicyService","statistics","getPStatisticsState","statisticsProducts","getPStatisticsProductsState","statisticsPerHour","getStatisticsPerHourState","getPuntosGeneradosAction","idEmpresa","fechaInicio","firstDate","fechaFin","lastDate","status","getPuntosGeneradosService","Workbook","SheetNames","Sheets","s2ab","buf","ArrayBuffer","view","Uint8Array","charCodeAt","XLSX","wb","ws","utils","json_to_sheet","wch","wbout","write","bookType","bookSST","download","a","click","URL","revokeObjectURL","createObjectURL","Blob","FormPuntosGenerados","errorSubmit","buscando","_id","informacion","objetoInfo","Nombre","Fecha_Nacimiento","Telefono","Numero_de_Tarjeta","Puntos","Expendio","Producto","Cantidad","Unidad","Fecha","cliente","fechaNacimiento","telefono","puntos","tarjeta","expendio","producto","cantidad","unidades","fecha","exportToExcel","success","today","Date","dd","getDate","mm","getMonth","yyyy","getFullYear","max","ExportarIcon","PuntosGeneradosContainer","getPuntosGastadosAction","getPuntosGastadosService","FormPuntosGastados","Total","Puntos_Disponibles","puntosDisponibles","total","PuntosGastadosContainer","ModalCustom","Modal","showCloseIcon","close","center","styles","overlay","backgroundColor","modal","color","boxShadow","borderTop","borderBottom","textAlign","tittle","contentModal","closeText","acceptText","onclickAccept","HomeContainerAdmin","handleClick2","htmlToImage","getElementById","dataUrl","createFormattingWorkbook","handleClick1","handleClick3","showpointsP","showpointsTop","showpointsHour","pointsP","pointsTop","pointsHour","pointsP_EXCEL","pointsTop_EXCEL","pointsHour_EXCEL","maxRangeWP","maxRangeWTop","maxRangeHour","imageP","policyMessage","onOpenModal","onCloseModal","acceptPolicy","terms_use","dataExcel","payload","forEach","puntosTotal","data2","data2Excel","max2","points","data3","data3Excel","max3","hour","pol","_prevProps","prevstate","equal","terms","resp","chartDomain","chartDomainTop","chartDomainHour","axisStyleBlack","stroke","onclickClose","XYPlot","xType","yDomain","margin","bottom","left","top","VerticalBarSeries","barWidth","XAxis","ticks","fontSize","tickLabelAngle","YAxis","LabelSeries","label","labelAnchorX","labelAnchorY","listStatistics","listStatisticsProducts","listStatisticsPerHour","addNewUser","addNewUserService","createUser","notifySuccess","notifyError","IoIosCloseCircle","openModal","closeModal","add","fluid","xl","minLength","maxLength","pattern","lg","xs","md","sm","SvgIcons8Search","fill","TableRender","thead","th","index","tbody","tr","td","listUsersAction","getUserByIDADmin","datos","deleteUserAction","idAdmin","idUser","deleteUserService","getUsersList","usersState","ModalError","modalTitle","modalContent","modalAcceptText","eliminarUserAdmin","idAEliminar","usersList","UsersTable","modalTitleDel","modalContentDel","modalAcceptTextDel","modalDel","idEliminar","deleteUser","openModalDelete","search","DATA","users","actions","toLowerCase","nameAEliminar","consultarPlanesAdminAction","listUsers","SearchIcon","ButtonPrimary","ButtonSecondary","ButtonRed","democomponent","PureComponent","notify","texto","info","iconmodal","getUsersAction","getUser","updateUserAction","updateUserService","getUserState","userState","UpdateUser","editUser","userId","mapStateToProps","updatePasswordUsersAction","updatePasswordUsersService","Showuserinf","changePass","newPass","actualizado","textUpdate","textUp","newdata","required","SeeUser","getData","listarUsersAdminAction","listarUsersAdminService","eliminarUserAdminAction","eliminarUserAdminService","TablaUsersAdmin","eliminado","eliminarUser","editarUser","verUser","demoData","sort","max_users","listUsersAdmin","usersAdminState","getUserAdmin","ListarUsersAdminContainer","nuevoUser","usersAdminList","agregarNuevoUserAdminAction","agregarNuevoUserAdminService","buscarEmpresaPorUsernameAction","buscarEmpresaPorUsernameService","FormAddUsersAdmin","maxUsers","agregando","volver","AgregarUserAdminContainer","actualizarUserAdminAction","actualizarUserAdminService","FormEditUsersAdmin","userAdmin","actualizando","getUserAdminAction","getUserAdminService","EditarUserAdminContainer","userName","actualizarAdminPassAction","actualizarAdminPassService","VisualizarUserAdmin","cambiar","VerUserAdminContainer","consultarPlanesAdminService","clearPlanesAdminAction","consultPlanesAdmin","planesAdminState","getPlanAdmin","planAdminState","eliminarPlanAdminAction","idPlan","eliminarPlanAdminService","TablaPlanesAdmin","verPlan","editarPlan","eliminarPlan","percent","ListarPlanesAdminContainer","agregarPlan","planesAdminList","agregarPlanAdminAction","agregarPlanAdminService","FormNewPlanAdmin","id_company","AgregaPlanAdminContainer","actualizarPlanAdminAction","actualizarPlanAdminService","FormActualizarPlanAdmin","planAdmin","actualizarPlanAuto","auto_update","auto_degrade","visitasH","conditions","visits","puntosH","comprasH","purchase_amount","cantidadHV","required_amount","cantidadHP","cantidadHC","cantidadBV","cantidadBP","cantidadBC","rangoDiasH","days","rangoDiasB","idPlanH","id_plan_update","idPlanB","id_plan_degrade","disableMax","disableMin","disableStatusVisit","disableStatusPoint","disableStatusBuy","disableStatus","minValue","maxValue","percents","parseFloat","min","defaultValueH","defaultValueB","FormGroup","row","FormControlLabel","control","Checkbox","checked","filter","htmlFor","getPlanAdminAction","getPlanAdminService","ActualizarPlanAdminContainer","planAdminActual","VisualizarPlanAdmin","planAutoUpdate","planAutoDegrade","FaCheck","VerPlanAdminContainer","getPointsAction","cardNumber","getPoinstsServices","clearPointsAction","getPointsState","checkCard","cardvalue","showData","aviablePoints","expire","asignar","removeItem","prevProps","pointsState","available_points","infoD","card_number","redems","checkPoints","cardN","tableDataOrigin","tableData","point","redem","detail","element2","FaChevronCircleUp","updatedAt","AiOutlineDownCircle","b","dateA","ind","date","replace","month","day","year","formatDate","results","listCustomersAction","getCustomers","customers","deleteCustomerAction","idCustom","deleteCustomerService","getCustomersList","customersState","customersListrRefresh","CustomersTable","deleteCustomers","completeName","lastname","birthday","membership","ListCustomers","customersList","insertCustomerAction","insertCustomerService","listMembershipsAction","getgetMembershipService","getMembershipsList","membershipState","AddCustomer","gender","street","neigboorhood","number","county","_state","zip","telephone","id_membership","membership_percent","membership_name","handleChangeGender","jsonData","memberships","c","getCustomerAction","idCustomer","getCustomerService","clearCustomerAction","updateCustomerAction","updateCustomerService","getCustomerState","getcustomerState","FormCustomer","customerInfo","address","customId","EditCustomer","FormCustomerLabel","SeeCustomer","logoutCont","isLogged","minutes","seconds","clear","updatePasswordAction","updatePasswordAdminService","newPassword","profileAdminEdit","fakeAuthAdm","isAuthenticated","authenticate","cb","setTimeout","signout","PrivateRouteAdmin","_ref2","component","rest","_excluded2","Route","Redirect","pathname","from","location","fakeAuthRoot","PrivateRouteRoot","_ref3","_excluded3","fakeAuthManagement","PrivateRouteManagement","_ref4","_excluded4","App","Router","Switch","exact","path","handleActions","action","u","combineReducers","reduxForm","composeEchancers","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","compose","store","createStore","reducers","applyMiddleware","promiseMiddleware","isLocalhost","Boolean","hostname","registerValidSW","swUrl","navigator","serviceWorker","register","registration","onupdatefound","installingWorker","installing","onstatechange","controller","console","log","rootComponent","Provider","ReactDOM","process","origin","get","indexOf","ready","unregister","reload","checkValidServiceWorker","registerServiceWorker"],"mappings":"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","file":"static/js/main.cdca300d.chunk.js","sourcesContent":["import { useState, useEffect } from 'react';\n\nconst useForm = (callback, validate) => {\n\n const [values, setValues] = useState({});\n const [errors, setErrors] = useState({});\n const [isSubmitting, setIsSubmitting] = useState(false);\n\n useEffect(() => {\n if (Object.keys(errors).length === 0 && isSubmitting) {\n callback();\n }\n }, [errors, callback, isSubmitting]);\n\n const handleSubmit = (event) => {\n if (event) event.preventDefault();\n setErrors(validate(values));\n setIsSubmitting(true);\n };\n\n const handleChange = (event) => {\n event.persist();\n //setErrors(validate(values));\n setValues(values => ({ ...values, [event.target.name]: event.target.value }));\n };\n\n return {\n handleChange,\n handleSubmit,\n values,\n errors,\n };\n};\n\nexport default useForm;\n","/* eslint-disable no-dupe-else-if */\nexport default function validate(values) {\n let errors = {};\n //console.log(values);\n if (!values.lastName || values.lastName==='') {\n errors.lastName = 'lastName is required';\n }\n\n if (!values.email || values.email==='') {\n errors.email = 'Email address is required';\n } else if (!/\\S+@\\S+\\.\\S+/.test(values.email)) {\n errors.email = 'Email address is invalid';\n }\n\n if (!values.age || values.age==='' ) {\n errors.age = 'Age is required';\n } else if (values.age < 18) {\n errors.age = 'Age must be 18 or more';\n }\n\n //console.log(errors);\n return errors;\n}\n","/* eslint-disable no-dupe-else-if */\nimport React from 'react';\n//import PropTypes from 'prop-types';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport Button from 'react-bootstrap/Button';\nimport useForm from './useForm';\nimport validate from './validate';\n\nimport Container from 'react-bootstrap/Container';\n\nimport { TiInfoOutline } from 'react-icons/ti';\nimport './form.css';\n\nconst DemoForm = () => {\n\n const {\n values,\n errors,\n handleChange,\n handleSubmit,\n } = useForm(login, validate);\n\n function login() {\n //No errors, submit callback called!\n }\n\n return (\n \n
\n \n \n \n \n \n \n Name\n {errors.name && (\n {errors.name}\n )}\n \n \n \n \n \n \n \n Last Name\n {errors.lastName && (\n {errors.lastName}\n )}\n \n \n \n \n \n \n \n \n \n Age\n {errors.age && (\n {errors.age}\n )}\n \n \n \n \n \n \n \n Email\n {errors.email && (\n {errors.email}\n )}\n \n \n \n \n
\n
\n );\n};\n\nDemoForm.propTypes = {\n\n};\n\nexport default DemoForm;\n","/* eslint-disable no-dupe-else-if */\nimport React, { Component } from 'react';\nimport DemoForm from './../components/demoForm';\n\nclass FormDemo extends Component {\n\n render() {\n return (\n \n );\n }\n}\n\nFormDemo.propTypes = {};\n\nexport default (FormDemo);\n","//export const URL_API = 'https://reward-cards-system.herokuapp.com/v1/';\n//export const URL_API = 'http://rewardcard-env.eba-pzfmv4hm.us-east-2.elasticbeanstalk.com/v1/';\nexport const URL_API = 'https://api.nubentum.com/v1/';\n//export const URL_API = 'https://rewardcard-env.nubentum.com/v1/';\nexport const URL_LOCAL_API = 'https://rewardcard-env.nubentum.com/v1/';\n\n//ESTATUS\nexport const STATUS = 'STATUS';\n\n//MENU\nexport const MENU = 'MENU';\n\n//USERS\nexport const USERS = 'USERS';\nexport const LIST_USERS = 'LIST_USERS';\nexport const GET_USER = 'GET_USER';\nexport const DELETE_USER = 'DELETE_USER';\n\n//CUSTOMERS\nexport const GET_CUSTOMER = 'GET_CUSTOMER';\nexport const DELETE_CUSTOMER = 'DELETE_CUSTOMER';\n\n//USERS_ADMIN\nexport const LIST_USERS_ADMIN = 'LIST_USERS_ADMIN';\nexport const GET_USER_ADMIN = 'GET_USER_ADMIN';\nexport const DELETE_USERS_ADMIN = 'DELETE_USERS_ADMIN';\n\n//CUSTOMERS_ADMIN\nexport const LIST_CUSTOMERS_ADMIN = 'LIST_CUSTOMERS_ADMIN';\n\n//Memberships\nexport const LIST_MEMBERSHIPS = 'LIST_MEMBERSHIPS';\n\n//PLANES\nexport const LIST_PLANES_ADMIN = 'LIST_PLANES_ADMIN';\nexport const GET_PLAN_ADMIN = 'GET_PLAN_ADMIN';\n\n//POINTS\nexport const GET_POINTS = 'GET_POINTS';\nexport const GET_PUNTOS_GENERADOS = 'GET_PUNTOS_GENERADOS';\n\n//STATISTICS\nexport const GET_STATISTICS = 'GET_STATISTICS';\nexport const GET_STATISTICS_PRODUCTS = 'GET_STATISTICS_PRODUCTS';\nexport const GET_STATISTICS_PERHOUR = 'GET_STATISTICS_PERHOUR';\n\n//VALUES\nexport const GET_MAXVALUE = 'GET_MAXVALUE';\nexport const GET_MINVALUE = 'GET_MINVALUE';\n","import { loginAdminService } from './../services/loginAdminService';\nimport { URL_API } from './../../../constants';\n\nexport function loginAdminAction(data) {\n return new Promise((resolve, reject) => {\n var response = loginAdminService(URL_API, data);\n response ? resolve(response) : reject('error');\n });\n}\n","export function loginAdminService(url, data) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'auth/login/admin', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n },\n body: URLSearchParams\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { TiInfoOutline } from 'react-icons/ti';\n\nclass ErrorMessages extends Component {\n render() {\n let { errors, errorLogin } = this.props;\n\n return (\n
\n {\n ( Object.keys(errors).length > 0) ?\n (\n
\n {\n (errors.email) ?\n (\n

{(errors.email)}

\n ) :\n (\n
\n )\n }\n {\n (errors.username) ?\n (\n

{(errors.username)}

\n ) :\n (\n
\n )\n }\n {\n (errors.password) ?\n (\n

{(errors.password)}

\n ) :\n (\n
\n )\n }\n {\n (errors.nickEmpresa) ?\n (\n

{(errors.nickEmpresa)}

\n ) :\n (\n
\n )\n }\n
\n ) :\n (\n
\n )\n }\n {\n (errorLogin !== '') ?\n (\n (errorLogin !== undefined ) ?\n (\n
\n

{(errorLogin)}

\n
\n ) :\n (
)\n ) :\n (\n
\n )\n }\n
\n );\n }\n}\n\nErrorMessages.propTypes = {\n errors: PropTypes.object.isRequired,\n errorLogin: PropTypes.string,\n};\n\nexport default ErrorMessages;\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport { loginAdminAction } from './../actions/loginAdminAction';\nimport ErrorMessages from './../../components/errorMessages';\n\nimport './../../../globalComponents/buttons/containers/primary/buttonPrimary.css';\n\nclass FormLoginAdmin extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n email: '',\n password: '',\n errors: {},\n errorLogin: '',\n visibleHelp: false\n };\n\n this.isSubmitting = this.isSubmitting.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.ayuda = this.ayuda.bind(this);\n this.cerrar = this.cerrar.bind(this);\n this.olvidePassword = this.olvidePassword.bind(this);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n\n if (Object.keys(errors).length === 0 ) {\n return loginAdminAction(values).then(r => {\n if(r.code === 400) {\n this.setState({\n errorLogin: r.message\n });\n } else\n if (r.ok) {\n localStorage.setItem('loginData', JSON.stringify(r.data));\n localStorage.setItem('token', JSON.stringify(r.token));\n this.setState({\n errorLogin: ''\n });\n this.props.history.push('/admin/home');\n } else\n if (!r.ok) {\n this.setState({\n errorLogin: r.message\n });\n }\n });\n }\n\n }\n\n handleSubmit(event){\n event.preventDefault();\n\n let values = {\n email: this.state.email,\n password: this.state.password\n };\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.email || values.email==='') {\n errors.email = 'Por favor, introduce tu correo.';\n } else if (!/\\S+@\\S+\\.\\S+/.test(values.email)) {\n errors.email = 'Lo sentimos, correo inválido. Por favor intenta nuevamente';\n }\n\n if (!values.password || values.password==='' ) {\n errors.password = 'Por favor, introduce tu contraseña';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n ayuda() {\n this.setState({\n visibleHelp: true\n });\n }\n\n cerrar() {\n this.setState({\n visibleHelp: false\n });\n }\n\n olvidePassword() {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/reset-password');\n }\n\n render() {\n return (\n
\n
\n
\n \n
\n
\n
\n this.setState({ email: event.target.value })}\n className={this.state.errors.email && ('input-errorLine')}/>\n \n
\n \"iconUser\"\n
\n \n \n
\n
\n
\n
\n
\n
\n this.setState({ password: event.target.value })}\n className={this.state.errors.password && ('input-errorLine')}/>\n \n
\n \"iconPass\"\n
\n \n \n
\n
\n
\n
\n
\n
\n Olvide mi contraseña\n
\n
\n
\n
\n
\n Ayuda\n
\n
\n \n
\n
\n {\n ( this.state.visibleHelp ) ?\n (\n
\n
\n \n Si olvidaste tu contraseña, favor de dar click en el enlace de arriba,\n si continuas con problemas favor de enviar un correo a hola@girasolo.com\n \n
\n
\n

X

\n
\n
\n ) :\n (\n
\n )\n }\n
\n );\n }\n}\n\nFormLoginAdmin.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(FormLoginAdmin);\n","import React, { Component } from 'react';\n\nimport './footerAvisos.css';\n\nclass AvisoPrivacidad extends Component {\n\n constructor(props) {\n super(props);\n\n this.avisoPrivacidad = this.avisoPrivacidad.bind(this);\n }\n\n avisoPrivacidad() {\n window.open('/assets/login/avisoPrivacidad/Aviso_Privacidad_Girasolo_Abril_2020.pdf', '_blank');\n }\n\n render() {\n return (\n
\n
\n Aviso de privacidad\n
\n
\n \n Derechos reservados\n \n

\n \n nubentum@girasolo.com\n \n

\n
\n
\n );\n }\n}\n\nexport default AvisoPrivacidad;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport FormLoginAdmin from './../components/formLoginAdmin';\nimport AvisoPrivacidad from './../../components/avisoPrivacidad';\n\nimport './../../components/login.css';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoMdInformationCircleOutline\n} from 'react-icons/io';\n\nclass LoginContainerAdmin extends Component {\n\n constructor(props) {\n super(props);\n var classCycle = ['fondo1', 'fondo2', 'fondo3'];\n\n var randomNumber = Math.floor(Math.random() * classCycle.length);\n\n this.state = {\n classToAdd: classCycle[randomNumber]\n };\n\n }\n\n componentDidMount() {\n if (!localStorage.getItem('ok')) {\n if (this.props.match.params.tokenStatus === 'true') {\n this.notifySession();\n localStorage.setItem('ok', 'true');\n }\n if (this.props.match.params.policies === 'true') {\n this.notifyPolicies();\n localStorage.setItem('ok', 'true');\n }\n }\n }\n\n notifySession = () => {\n toast.warn(
Tu sesión ha expirado
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyPolicies = () => {\n toast.warn(
Para poder usar NUBENTUM, debes aceptar nuestros terminos y condiciones
, {\n position: toast.POSITION.TOP_CENTER,\n autoClose: 8000\n });\n };\n\n render() {\n return (\n
\n \n
\n
\n
\n
\n \"logotipo\"\n
\n
\n
\n
\n
\n
\n Iniciar sesión\n
\n
\n \n
\n
\n
\n
\n\n \n\n
\n );\n }\n}\n\nLoginContainerAdmin.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n tokenStatus: PropTypes.string,\n policies: PropTypes.string,\n })\n })\n};\nexport default LoginContainerAdmin;\n","import { resetPasswordService, changePasswordService } from './../services/resetPasswordService';\nimport { URL_API } from './../../../constants';\n\nexport function resetPasswordAction(data) {\n return new Promise((resolve, reject) => {\n var response = resetPasswordService(URL_API, data);\n response ? resolve(response) : reject('error');\n });\n}\n\nexport function changePasswordAction(data) {\n return new Promise((resolve, reject) => {\n var response = changePasswordService(URL_API, data);\n response ? resolve(response) : reject('error');\n });\n}\n","export function resetPasswordService(url, data) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'auth/reset/password/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n },\n body: URLSearchParams\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n\nexport function changePasswordService(url, data) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'auth/update/password/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n },\n body: URLSearchParams\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n\n","import React, { Component } from 'react';\n//import PropTypes from 'prop-types';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport { resetPasswordAction } from './../actions/resetPasswordAction';\nimport ErrorMessages from './../../components/errorMessages';\n\nimport 'react-toastify/dist/ReactToastify.css';\n\nclass FormCorreoRecuperacion extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n email: '',\n errors: {},\n errorLogin: '',\n isSubmitting: false\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n }\n\n handleSubmit(event){\n event.preventDefault();\n\n let values = {\n email: this.state.email\n };\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n\n if (!values.email || values.email==='') {\n errors.email = 'Por favor, introduce tu correo.';\n } else if (!/\\S+@\\S+\\.\\S+/.test(values.email)) {\n errors.email = 'Lo sentimos, correo inválido. Por favor intenta nuevamente';\n }\n\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n\n if (Object.keys(errors).length === 0 ) {\n this.setState({\n isSubmitting: true\n });\n return resetPasswordAction(values).then(r => {\n if (r.ok) {\n\n toast.warn(
    {'Correo enviado. Por favor, revisa tu correo electrónico.'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n\n this.setState({\n errorLogin: ''\n });\n } else\n if (!r.ok) {\n this.setState({\n errorLogin: r.message\n });\n }\n });\n }\n\n }\n\n render() {\n return (\n
\n
\n
\n \n
\n
\n
\n this.setState({ email: event.target.value })}\n className={this.state.errors.email && ('input-errorLine')}/>\n \n
\n \"iconUser\"\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n {(!this.state.isSubmitting) ? (\n \n ) : (\n
\n )}\n\n
\n
\n \n
\n );\n }\n}\n\nFormCorreoRecuperacion.propTypes = {\n\n};\n\nexport default FormCorreoRecuperacion;\n","import React, { Component } from 'react';\n//import PropTypes from 'prop-types';\n\nimport AvisoPrivacidad from './../../components/avisoPrivacidad';\nimport FormCorreoRecuperacion from './../components/formCorreoRecuperacion';\n\nclass ResetPasswordContainer extends Component {\n\n constructor(props){\n super(props);\n var classCycle=['fondo1','fondo2', 'fondo3'];\n\n var randomNumber = Math.floor(Math.random() * classCycle.length);\n\n this.state = {\n classToAdd: classCycle[randomNumber]\n };\n\n }\n\n render() {\n return (\n
\n
\n
\n
\n
\n \"simulacion-logotipo\"\n
\n
\n
\n
\n
\n
\n Iniciar sesión\n
\n
\n \n
\n
\n
\n
\n\n \n\n
\n );\n }\n}\n\nResetPasswordContainer.propTypes = {\n\n};\n\nexport default ResetPasswordContainer;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport { TiInfoOutline } from 'react-icons/ti';\n\nclass ErrorMessages extends Component {\n render() {\n let { errors, errorLogin } = this.props;\n return (\n
\n {\n ( Object.keys(errors).length > 0) ?\n (\n
\n {\n (errors.email) ?\n (\n

{(errors.email)}

\n ) :\n (\n \n )\n }\n {\n (errors.password) ?\n (\n

{(errors.password)}

\n ) :\n (\n \n )\n }\n {\n (errors.passwordConfirm) ?\n (\n

{(errors.passwordConfirm)}

\n ) :\n (\n \n )\n }\n {\n (errors.sinCoincidencia) ?\n (\n

{(errors.sinCoincidencia)}

\n ) :\n (\n \n )\n }\n
\n ) :\n (\n
\n )\n }\n {\n (errorLogin !== '') ?\n (\n (errorLogin !== undefined ) ?\n (\n
\n

{(errorLogin)}

\n
\n ) :\n (
)\n ) :\n (\n
\n )\n }\n
\n );\n }\n}\nErrorMessages.propTypes = {\n errors: PropTypes.object.isRequired,\n errorLogin: PropTypes.string,\n};\n\nexport default ErrorMessages;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport ErrorMessages from './errorMessages';\nimport {changePasswordAction} from './../actions/resetPasswordAction';\n\nimport 'react-toastify/dist/ReactToastify.css';\n\nclass FormCorreoRecuperacionToken extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n password: '',\n passwordConfirm: '',\n errors: {},\n errorLogin: '',\n isSubmitting: false\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.onCloseToast = this.onCloseToast.bind(this);\n }\n\n handleSubmit(event){\n event.preventDefault();\n\n let values = {\n password: this.state.password,\n passwordConfirm: this.state.passwordConfirm\n };\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n\n if (!values.password || values.password==='' ) {\n errors.password = 'Por favor, introduce tu contraseña';\n } else if (values.password.length < 6) {\n errors.password = 'Por favor, introduce por lo menos 6 caracteres.';\n } else if (!values.passwordConfirm || values.passwordConfirm==='' ) {\n errors.passwordConfirm = 'Por favor, confirma tu contraseña';\n } else if (values.password !== values.passwordConfirm ) {\n errors.sinCoincidencia = 'Las contraseñas no coinciden.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n\n if (Object.keys(errors).length === 0 ) {\n const token = this.props.match.params.token;\n\n const valuesSend = {\n token: token,\n password: values.password\n };\n\n this.setState({\n isSubmitting: true\n });\n\n return changePasswordAction(valuesSend).then(r => {\n if(r.ok){\n this.setState({\n errorLogin: ''\n });\n\n toast.warn(
        {' Tu contraseña se ha actualizado correctamente.'}
, {\n position: toast.POSITION.TOP_RIGHT,\n onClose: this.onCloseToast,\n autoClose: 5000,\n });\n\n } else if(!r.ok){\n this.setState({\n errorLogin: 'La liga no es correcta o ha caducado, por favor realiza el proceso nuevamente'\n });\n }\n });\n }\n\n }\n\n onCloseToast() {\n this.props.history.push('/login/admin');\n }\n\n render() {\n\n return (\n
\n
\n
\n \n
\n
\n
\n this.setState({ password: event.target.value })}\n className={this.state.errors.password && ('input-errorLine')}/>\n \n
\n \"iconPass\"\n
\n \n \n
\n
\n this.setState({ passwordConfirm: event.target.value })}\n className={this.state.errors.passwordConfirm && ('input-errorLine')}/>\n \n
\n \"iconPass\"\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n {(!this.state.isSubmitting) ? (\n \n ) : (\n
\n )}\n\n
\n
\n \n
\n );\n }\n}\n\nFormCorreoRecuperacionToken.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n token: PropTypes.string.isRequired,\n })\n }),\n history:PropTypes.object,\n};\n\nexport default withRouter(FormCorreoRecuperacionToken);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nimport AvisoPrivacidad from '../../components/avisoPrivacidad';\nimport FormCorreoRecuperacionToken from './../components/formCorreoRecuperacionToken';\n\nclass ResetPasswordTokenContainer extends Component {\n\n constructor(props){\n super(props);\n var classCycle=['fondo1','fondo2', 'fondo3'];\n\n var randomNumber = Math.floor(Math.random() * classCycle.length);\n\n this.state = {\n classToAdd: classCycle[randomNumber]\n };\n }\n\n render() {\n return (\n
\n
\n
\n
\n
\n \"simulacion-logotipo\"\n
\n
\n
\n
\n
\n
\n Iniciar sesión\n
\n
\n \n
\n
\n
\n
\n\n \n\n
\n );\n }\n}\n\nResetPasswordTokenContainer.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n token: PropTypes.string.isRequired,\n })\n })\n};\n\nexport default ResetPasswordTokenContainer;\n","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgMenu = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 55 55\",\n style: {\n enableBackground: \"new 0 0 55 55\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#FFFFFF;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M50.3,14.5H4.7c-2.1,0-3.7-1.7-3.7-3.7C1,8.7,2.7,7,4.7,7h45.6c2.1,0,3.7,1.7,3.7,3.7 C54,12.8,52.3,14.5,50.3,14.5z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M50.3,31.2H4.7c-2.1,0-3.7-1.7-3.7-3.7s1.7-3.7,3.7-3.7h45.6c2.1,0,3.7,1.7,3.7,3.7S52.3,31.2,50.3,31.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M50.3,48H4.7C2.7,48,1,46.3,1,44.3s1.7-3.7,3.7-3.7h45.6c2.1,0,3.7,1.7,3.7,3.7S52.3,48,50.3,48z\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgMenu, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/menu.42ef440d.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgUsuarioOn01 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 50 50\",\n style: {\n enableBackground: \"new 0 0 50 50\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{opacity:0.6;}\\n\\t.st1{fill:#FFFFFF;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M31.9,22.1c2.5-2,4.1-5.2,4.1-8.7C36,7.6,31.2,2.7,25.4,2.5C19.2,2.3,14,7.3,14,13.5c0,3.5,1.6,6.6,4.1,8.6 c0.7,0.6,0.5,1.8-0.5,2c-1.3,0.2-2.8,0.6-3.7,1c-5.1,2.4-8.7,7.6-8.7,13.6v8.9h39.5v-8.9c0-6.1-3.7-11.4-9-13.7 c-0.8-0.4-2.1-0.6-3.4-0.8C31.5,23.9,31.2,22.7,31.9,22.1z\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgUsuarioOn01, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Usuario_on-01.c86c4f41.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgNotificacionesOn15 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 40 45\",\n style: {\n enableBackground: \"new 0 0 40 45\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{opacity:0.6;}\\n\\t.st1{fill:#FFFFFF;}\\n\\t.st2{fill:#BCBCBC;}\\n\\t.st3{fill:#006E95;}\\n\\t.st4{fill:#5BC8AF;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M14.4,37.9c-0.1,1.7,1,3.4,2.7,3.9c1.8,0.5,3.6-0.3,4.4-1.9c-1.2-0.2-2.4-0.5-3.6-0.8 C16.7,38.8,15.5,38.4,14.4,37.9z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M33.8,32.8c-1.2-2.3-3.7-6.9-1.9-17.6c0.5-3.1-0.6-6.2-3-7.8c0.4-0.3,0.6-0.7,0.8-1.2c0.4-1.3-0.4-2.7-1.7-3.1 c-1.3-0.4-2.7,0.4-3.1,1.7c-0.1,0.5-0.1,1,0,1.4c-3,0.1-5.6,2.1-6.5,5.1C15.8,19.9,7.8,24.2,6.1,26.6c-0.2,0.3-0.4,0.6-0.5,0.9 c-0.9,3.3,4.8,7.8,12.7,10c7.9,2.2,15.1,1.3,16-2C34.6,34.7,34.4,33.7,33.8,32.8z M26.9,6.7c-0.6-0.2-1-0.8-0.8-1.5 c0.2-0.6,0.8-1,1.5-0.8c0.6,0.2,1,0.8,0.8,1.5S27.6,6.9,26.9,6.7z\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgNotificacionesOn15, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Notificaciones_on-15.fb507099.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _path;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgInicio12 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 50 45\",\n style: {\n enableBackground: \"new 0 0 50 45\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{opacity:0.6;}\\n\\t.st1{fill:#FFFFFF;}\\n\\t.st2{fill:#BCBCBC;}\\n\\t.st3{fill:#006E95;}\\n\\t.st4{fill:#5BC8AF;}\\n\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st4\",\n d: \"M45.6,17.9l-20-13.4c-0.5-0.3-1.1-0.3-1.5,0L4.4,17.9c-1.1,0.8-0.6,2.5,0.8,2.5h1.9v20.4h9.6 c1.4,0,2.6-1.2,2.6-2.6V25.6c0-3.1,2.5-5.7,5.7-5.7h0c3.1,0,5.7,2.5,5.7,5.7v12.6c0,1.4,1.2,2.6,2.6,2.6h9.6V20.4h1.9 C46.2,20.4,46.7,18.6,45.6,17.9z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgInicio12, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Inicio-12.fcdfaa16.svg\";\nexport { ForwardRef as ReactComponent };","export const menuState = (state) => () => {\n var array=[];\n array.push(!state);\n return array;\n};\n","import {\n MENU\n} from './../../../constants';\nimport { createAction } from 'redux-actions';\nimport { menuState } from './../services';\n\nexport const changeMenuState = createAction(MENU,\n (state) => menuState(state)());\n","export const getMenuState = state => state.menuState;\n","\n\nexport function CurrentUserCan(data) {\n\n const capabilities = {\n root: ['MANAGE', 'CREATE', 'DELETE', 'EDIT', 'READ'],\n admin: ['CREATE', 'DELETE', 'EDIT', 'READ'],\n user: ['READ'],\n movile: ['READ'],\n };\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n if (loginData) {\n\n if (loginData.role === 'root') {\n if (capabilities.root.includes(data)) {\n return true;\n }\n return false;\n\n } else if (loginData.role === 'admin') {\n if (capabilities.admin.includes(data)) {\n return true;\n }\n return false;\n } else if (loginData.role === 'user') {\n if (capabilities.user.includes(data)) {\n return true;\n }\n return false;\n }\n }\n return false;\n}\nexport function CurrentUserIs(data) {\n\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n if (loginData) {\n if (loginData.role === data) {\n return true;\n }\n return false;\n } return false;\n}\n\nexport function CurrentUserIsActive() {\n\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n if (loginData.active) {\n if (loginData.active.active) {\n return true;\n }\n }\n return false;\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport './style.css';\nimport { ReactComponent as MenuIcon } from './resources/menu.svg';\nimport { ReactComponent as Usericon } from './resources/Usuario_on-01.svg';\nimport { ReactComponent as NotificIcon } from './resources/Notificaciones_on-15.svg';\nimport { ReactComponent as HomeIcon } from './resources/Inicio-12.svg';\nimport { changeMenuState } from './action';\nimport { getMenuState } from './selector';\nimport { CurrentUserIs } from './../../helpers/capabilitiesControl';\n\nclass Nav extends Component {\n constructor() {\n super();\n this.state = {\n menuState: true,\n showMenu: false,\n showNotif: false,\n error: null,\n };\n this.showMenu = this.showMenu.bind(this);\n this.closeMenu = this.closeMenu.bind(this);\n this.showNotif = this.showNotif.bind(this);\n this.closeNotif = this.closeNotif.bind(this);\n this.activeOptionPerfil = this.activeOptionPerfil.bind(this);\n this.changeMenu = this.changeMenu.bind(this);\n this.toProfile = this.toProfile.bind(this);\n }\n\n showMenu(event) {\n event.preventDefault();\n this.setState({ showMenu: true }, () => {\n document.addEventListener('click', this.closeMenu);\n });\n }\n\n closeMenu(event) {\n if (!this.dropdownMenu.contains(event.target)) {\n this.setState({ showMenu: false }, () => {\n document.removeEventListener('click', this.closeMenu);\n });\n }\n }\n showNotif(event) {\n event.preventDefault();\n this.setState({ showNotif: true }, () => {\n document.addEventListener('click', this.closeNotif);\n });\n }\n\n closeNotif(event) {\n event.preventDefault();\n try {\n if (!this.dropdownNotif.contains(event.target)) {\n this.setState({ showNotif: false }, () => {\n document.removeEventListener('click', this.closeNotif);\n });\n }\n } catch (error) {\n this.setState({error: error});\n }\n }\n\n activeOptionNotif() {\n if (this.state.showNotif) {\n return 'nav-active active-icon-nav';\n }\n return '';\n }\n activeOptionPerfil() {\n if (this.state.showMenu) {\n return 'nav-active active-icon-nav';\n }\n return '';\n }\n\n changeMenu() {\n this.props.changeMenuState(this.state.menuState);\n this.setState({ menuState: !this.state.menuState });\n }\n toProfile() {\n this.props.history.push('/admin/profile');\n }\n\n render() {\n return (\n \n );\n }\n}\n\nNav.propTypes = {\n changeMenuState: PropTypes.func.isRequired,\n stateMenu: PropTypes.any,\n history: PropTypes.object,\n};\n\nNav.defaultProps = {\n data: [],\n height: '500px',\n width: '500px',\n};\n\nconst mapStateToProps = state => ({\n stateMenu: getMenuState(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { changeMenuState })(Nav));\n","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgUsuariosOff06 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 57 50\",\n style: {\n enableBackground: \"new 0 0 57 50\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{opacity:0.6;}\\n\\t.st1{fill:#FFFFFF;}\\n\\t.st2{fill:#BCBCBC;}\\n\\t.st3{fill:#006E95;}\\n\\t.st4{fill:#5BC8AF;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M17.7,23.2c0.5-0.2,1.2-0.4,2.1-0.6c-1.8-1.9-2.9-4.4-2.9-7c0-4.8,3.4-8.8,7.9-9.8c-1.5-1.8-3.7-3-6.2-3.1 c-4.9-0.2-8.9,3.7-8.9,8.6c0,2.7,1.2,5.1,3.2,6.7c0.6,0.5,0.4,1.4-0.4,1.5c-1,0.2-2.2,0.4-2.8,0.7C5.8,22,3,26.1,3,30.8v6.9h7.1V35 C10.1,30,13.1,25.3,17.7,23.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M54,40.2c0-4.8-2.9-8.8-7-10.6c-0.6-0.3-1.7-0.5-2.6-0.6c-0.7-0.1-1-1-0.4-1.5c2-1.6,3.2-4,3.2-6.8 c-0.1-4.5-3.8-8.3-8.2-8.4C34,12.1,30,16,30,20.9c0,2.7,1.3,5.1,3.2,6.6c0.6,0.5,0.4,1.4-0.4,1.5c-1,0.2-2.2,0.4-2.8,0.8 c-4,1.9-6.7,5.9-6.7,10.6l0,6.9L54,47.2L54,40.2z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M28.7,28.5c0.5-0.2,1.2-0.4,2.1-0.6c-1.8-1.9-2.9-4.4-2.9-7c0-4.5,3-8.3,7.1-9.6c-1.4-2.4-4-4.1-7-4.3 c-4.9-0.2-8.9,3.7-8.9,8.6c0,2.7,1.2,5.1,3.2,6.7c0.6,0.5,0.4,1.4-0.4,1.5c-1,0.2-2.2,0.4-2.8,0.7c-4,1.8-6.7,5.9-6.7,10.6V42h8.8 v-1.6C21.1,35.2,24.1,30.6,28.7,28.5z\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgUsuariosOff06, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Usuarios_off-06.f06f93ca.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgLogoutOff10 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 57 50\",\n style: {\n enableBackground: \"new 0 0 57 50\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{opacity:0.6;}\\n\\t.st1{fill:#FFFFFF;}\\n\\t.st2{fill:#BCBCBC;}\\n\\t.st3{fill:#006E95;}\\n\\t.st4{fill:#5BC8AF;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M52,23l-4.1-2.4l-4.1-2.4c-1.5-0.9-3.5,0.2-3.5,2v1.4c0,0.3-0.2,0.5-0.5,0.5H23.3c-1.6,0-2.9,1.3-2.9,2.9 c0,1.6,1.3,2.9,2.9,2.9h16.5c0.3,0,0.5,0.2,0.5,0.5v1.4c0,1.8,1.9,2.9,3.5,2l4.1-2.4L52,27C53.5,26.1,53.5,23.9,52,23z\"\n }), /*#__PURE__*/React.createElement(\"path\", {\n className: \"st2\",\n d: \"M21.3,37.2c-6.7,0-12.2-5.5-12.2-12.2s5.5-12.2,12.2-12.2c5.1,0,9.5,3.1,11.3,7.6h5.5 c-2-7.4-8.8-12.8-16.8-12.8C11.7,7.5,3.9,15.4,3.9,25c0,9.6,7.8,17.5,17.5,17.5c8,0,14.8-5.4,16.8-12.8h-5.5 C30.8,34.1,26.4,37.2,21.3,37.2z\"\n }))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgLogoutOff10, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Log out_off-10.f2189a58.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgAdminOff17 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 50 50\",\n style: {\n enableBackground: \"new 0 0 50 50\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#006E95;}\\n\\t.st1{fill:#BCBCBC;}\\n\\t.st2{fill:#2E396A;}\\n\\t.st3{opacity:0.6;}\\n\\t.st4{fill:#FFFFFF;}\\n\\t.st5{fill:#5C948E;}\\n\\t.st6{fill:#5BC8AF;}\\n\\t.st7{fill:#5FB0B7;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M40.9,36.3l2.6-1.6l-1.3-2.1c0.7-0.7,1.3-1.5,1.7-2.4l2.4,0.6l0.7-2.9l-2.4-0.6c0-1-0.1-2-0.5-2.9l2.1-1.3 l-1.6-2.6l-2.1,1.3c-0.7-0.7-1.5-1.3-2.4-1.7l0.6-2.4L37.8,17l-0.6,2.4c-1,0-2,0.1-2.9,0.5l-1.3-2.1l-2.6,1.6l1.3,2.1 c-0.7,0.7-1.3,1.5-1.7,2.4l-2.4-0.6l-0.7,2.9l2.4,0.6c0,1,0.1,2,0.5,2.9l-2.1,1.3l1.6,2.6l2.1-1.3c0.7,0.7,1.5,1.3,2.4,1.7 l-0.6,2.4l2.9,0.7l0.6-2.4c1,0,2-0.1,2.9-0.5L40.9,36.3z M33,29.5c-0.6-1.1-0.8-2.3-0.5-3.5c0.3-1.2,1-2.2,2.1-2.9 c1.1-0.6,2.3-0.8,3.5-0.5c1.2,0.3,2.2,1,2.9,2.1c0.6,1.1,0.8,2.3,0.5,3.5c-0.3,1.2-1,2.2-2.1,2.9c-1.1,0.6-2.3,0.8-3.5,0.5 C34.7,31.3,33.6,30.5,33,29.5z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M32.8,37.8c-0.8-0.2-1.3-1-1.1-1.8l0.3-1.3c-0.3-0.2-0.6-0.4-0.9-0.7L30,34.8c-0.2,0.1-0.5,0.2-0.8,0.2 c-0.1,0-0.2,0-0.3,0c-0.4-0.1-0.7-0.3-0.9-0.7l-1.6-2.6c-0.4-0.7-0.2-1.6,0.5-2l1.2-0.7c-0.1-0.4-0.1-0.7-0.2-1.1l-1.3-0.3 c-0.8-0.2-1.3-1-1.1-1.8l0.3-1.4c-0.5-0.1-0.9-0.2-1.4-0.3c-0.7-0.1-1-1.1-0.4-1.5c2-1.6,3.2-4.1,3.2-6.9 c-0.1-4.6-3.8-8.4-8.4-8.6c-5-0.2-9,3.8-9,8.7c0,2.7,1.3,5.2,3.3,6.8c0.6,0.5,0.4,1.4-0.4,1.5c-1.1,0.2-2.2,0.4-2.9,0.8 C5.8,26.9,3,31,3,35.8l0,7l31.2-0.1l0-4.5L32.8,37.8z\"\n })))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgAdminOff17, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Admin_off-17.3d36c3c0.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _path;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgOpcionesOff19 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 50 50\",\n style: {\n enableBackground: \"new 0 0 50 50\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#006E95;}\\n\\t.st1{fill:#BCBCBC;}\\n\\t.st2{fill:#2E396A;}\\n\\t.st3{opacity:0.6;}\\n\\t.st4{fill:#FFFFFF;}\\n\\t.st5{fill:#5C948E;}\\n\\t.st6{fill:#5BC8AF;}\\n\\t.st7{fill:#5FB0B7;}\\n\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M32.4,42.7l4.9-3l-2.4-4c1.4-1.3,2.5-2.8,3.3-4.5l4.6,1.1l1.4-5.6l-4.6-1.1c0.1-1.9-0.2-3.8-0.9-5.6l4-2.4 l-3-4.9l-4,2.4c-1.3-1.4-2.8-2.5-4.5-3.3l1.1-4.6l-5.6-1.4l-1.1,4.6c-1.9-0.1-3.8,0.2-5.6,0.9l-2.4-4l-4.9,3l2.4,4 c-1.4,1.3-2.5,2.8-3.3,4.5l-4.6-1.1l-1.4,5.6l4.6,1.1c-0.1,1.9,0.2,3.8,0.9,5.6l-4,2.4l3,4.9l4-2.4c1.3,1.4,2.8,2.5,4.5,3.3 l-1.1,4.6l5.6,1.4l1.1-4.6c1.9,0.1,3.8-0.2,5.6-0.9L32.4,42.7z M17.5,29.6c-1.2-2-1.6-4.4-1-6.7c0.6-2.3,2-4.2,4-5.5 c2-1.2,4.4-1.6,6.7-1c2.3,0.6,4.2,2,5.5,4s1.6,4.4,1,6.7c-0.6,2.3-2,4.2-4,5.5s-4.4,1.6-6.7,1C20.6,33,18.7,31.6,17.5,29.6z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgOpcionesOff19, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Opciones_off-19.157765e4.svg\";\nexport { ForwardRef as ReactComponent };","var _style, _path;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgPlanesOff08 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 65 65\",\n style: {\n enableBackground: \"new 0 0 65 65\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{opacity:0.6;}\\n\\t.st1{fill:#FFFFFF;}\\n\\t.st2{fill:#5FB0B7;}\\n\\t.st3{fill:#5BC8AF;}\\n\\t.st4{clip-path:url(#SVGID_2_);}\\n\\t.st5{fill:#006E95;}\\n\\t.st6{opacity:0.59;}\\n\\t.st7{fill:none;stroke:#006E95;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:10;}\\n\\t.st8{clip-path:url(#SVGID_4_);}\\n\\t.st9{fill:#25276F;}\\n\\t.st10{clip-path:url(#SVGID_6_);}\\n\\t.st11{fill:#036F96;}\\n\\t.st12{fill:#036F96;stroke:#036F96;stroke-width:0.35;stroke-miterlimit:10;}\\n\\t.st13{clip-path:url(#SVGID_8_);}\\n\\t.st14{fill:#BCBCBC;}\\n\")), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n className: \"st14\",\n d: \"M40.6,8.4v7h7L40.6,8.4z M21.5,54c2.7-3.2,2-7.3,1.9-7.7c0-0.2,0-0.5,0.2-0.6c0.1-0.2,0.4-0.3,0.6-0.3h24.8 V16.9h-9.8V8.1H7.9v37.6c0,5.7,4.6,10.4,10.4,10.4h0.4C19.6,55.7,20.6,55,21.5,54z M17.9,22.1h22c0.5,0,1,0.5,1,1s-0.5,1-1,1h-22 c-0.5,0-1-0.5-1-1S17.3,22.1,17.9,22.1z M17.9,29.1h14c0.5,0,1,0.5,1,1s-0.5,1-1,1h-14c-0.5,0-1-0.5-1-1S17.3,29.1,17.9,29.1z M17.9,38.1c-0.5,0-1-0.5-1-1s0.5-1,1-1h22c0.5,0,1,0.5,1,1s-0.5,1-1,1H17.9z M24.9,46.9c0.2,1.7,0.2,5.2-2.4,8.1 c-0.7,0.8-1.5,1.4-2.2,1.9h28.8c4.4,0,8-3.7,8-8.2v-1.9H24.9z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgPlanesOff08, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Planes_off-08.ac9a2c32.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter, Link } from 'react-router-dom';\nimport './style.css';\nimport { getMenuState } from './selector';\nimport { ReactComponent as Usersicon } from './resources/Usuarios_off-06.svg';\n//import { ReactComponent as NewsIcon } from './resources/Noticias_off-08.svg';\nimport { ReactComponent as LogoutIcon } from './resources/Log out_off-10.svg';\nimport { ReactComponent as HomeIcon } from './resources/Inicio-12.svg';\nimport { ReactComponent as AdminsIcon } from './resources/Admin_off-17.svg';\nimport { ReactComponent as Optionsicon } from './resources/Opciones_off-19.svg';\nimport { ReactComponent as PlanesIcon } from './resources/Planes_off-08.svg';\n\nimport { CurrentUserIs } from './../../helpers/capabilitiesControl';\n\nfunction optionHome(option) {\n if (option === 'home' || !option) {\n return 'activeIcon';\n }\n return 'inactiveIcon';\n}\nfunction optionAdmins(option) {\n if (option === 'admins') {\n return 'activeIcon';\n }\n return 'inactiveIcon';\n}\nfunction optionUsers(option) {\n if (option === 'users') {\n return 'activeIcon';\n }\n return 'inactiveIcon';\n}\nfunction optionOptions(option) {\n if (option === 'Options') {\n return 'activeIcon';\n }\n return 'inactiveIcon';\n}\nfunction optionPlanes(option) {\n if (option === 'planes') {\n return 'activeIcon';\n }\n return 'inactiveIcon';\n}\n\nfunction optionRootUser(option) {\n if (option === 'rootuser' ) {\n return 'activeIconRoot';\n }\n return 'inactiveIcon';\n}\n/*function optionRootNews(option) {\n if (option === 'news') {\n return 'activeIconRoot';\n }\n return 'inactiveIcon';\n}*/\n\nclass SideBar extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n menuState: true,\n height: props.height,\n width: props.width,\n };\n this.ocultarMenu = this.ocultarMenu.bind(this);\n this.changeMenu = this.changeMenu.bind(this);\n this.menuSize = this.menuSize.bind(this);\n }\n componentDidMount() {\n this.setState({ height: window.innerHeight + 'px' });\n this.setState({ width: window.innerWidth + 'px' });\n this.setState({ menuState: !this.props.stateMenu[0] });\n }\n componentDidUpdate() {\n if (this.props.stateMenu[0] !== undefined) {\n if (this.state.menuState.toString() !== this.props.stateMenu[0].toString()) {\n this.setState({ menuState: this.props.stateMenu[0] });\n }\n }\n }\n changeMenu() {\n this.setState({ menuState: !this.state.menuState });\n }\n\n ocultarMenu() {\n this.setState({ menuState: false });\n }\n menuSize() {\n return 'sidebar-expanded d-none d-md-block box-shadow-r';\n\n }\n\n render() {\n const classNameDivs = this.state.menuState ? 'sidebar-expanded sidebar-show' : 'sidebar-expanded sidebar-hide';\n const classSize = this.state.menuState ? 'a-link ' : 'a-link-s ';\n const { option } = this.props;\n return (\n \n );\n }\n}\n\nSideBar.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n option: PropTypes.string,\n stateMenu: PropTypes.array.isRequired,\n history: PropTypes.object,\n};\n\nSideBar.defaultProps = {\n height: '500px',\n width: '500px',\n stateMenu: [false],\n};\nconst mapStateToProps = state => ({\n stateMenu: getMenuState(state)\n});\n\nexport default withRouter(connect(mapStateToProps)(SideBar));\n","var _style, _g;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgExportar01 = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n id: \"Capa_1\",\n x: \"0px\",\n y: \"0px\",\n viewBox: \"0 0 55 55\",\n style: {\n enableBackground: \"new 0 0 55 55\"\n },\n xmlSpace: \"preserve\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _style || (_style = /*#__PURE__*/React.createElement(\"style\", {\n type: \"text/css\"\n }, \"\\n\\t.st0{fill:#5FB0B7;}\\n\\t.st1{fill:none;stroke:#5FB0B7;stroke-width:0.25;stroke-miterlimit:10;}\\n\")), _g || (_g = /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M40,25.3c-1.2,0-2.2,1-2.2,2.2v17.8c0,0.4-0.4,0.8-0.8,0.8H9.5c-0.4,0-0.8-0.4-0.8-0.8V17.7 c0-0.4,0.4-0.8,0.8-0.8h17.8c1.2,0,2.2-1,2.2-2.2s-1-2.2-2.2-2.2H9.5c-2.8,0-5.1,2.3-5.1,5.1v27.5c0,2.8,2.3,5.1,5.1,5.1h27.5 c2.8,0,5.1-2.3,5.1-5.1V27.4C42.2,26.2,41.2,25.3,40,25.3z\"\n }), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st0\",\n d: \"M47.2,4.7L36.4,7.6c-2,0.5-2.7,3.1-1.2,4.6l1.2,1.2c0.2,0.2,0.2,0.6,0,0.8L21.1,29.4c-1.3,1.3-1.3,3.5,0,4.8 c1.3,1.3,3.5,1.3,4.8,0l15.2-15.2c0.2-0.2,0.6-0.2,0.8,0l1.2,1.2c1.5,1.5,4,0.8,4.6-1.2l2.9-10.8C51.1,6,49.2,4.2,47.2,4.7z\"\n })), /*#__PURE__*/React.createElement(\"g\", null, /*#__PURE__*/React.createElement(\"path\", {\n className: \"st1\",\n d: \"M47.2,4.7L36.4,7.6c-2,0.5-2.7,3.1-1.2,4.6l1.2,1.2c0.2,0.2,0.2,0.6,0,0.8L21.1,29.4c-1.3,1.3-1.3,3.5,0,4.8 c1.3,1.3,3.5,1.3,4.8,0l15.2-15.2c0.2-0.2,0.6-0.2,0.8,0l1.2,1.2c1.5,1.5,4,0.8,4.6-1.2l2.9-10.8C51.1,6,49.2,4.2,47.2,4.7z\"\n }))))));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgExportar01, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/Exportar-01.bdd78d6e.svg\";\nexport { ForwardRef as ReactComponent };","import {\n getStatisticsServices,\n getStatisticsProductsServices,\n getStatisticsPerHourServices,\n acceptPolicyService\n} from '../services';\nimport {\n URL_API,\n GET_STATISTICS,\n GET_STATISTICS_PRODUCTS,\n GET_STATISTICS_PERHOUR\n} from './../../../constants';\nimport { createAction } from 'redux-actions';\n\nexport const getStatisticsAction = createAction(GET_STATISTICS,\n (token, id) => getStatisticsServices(URL_API, token, id)());\n\nexport const getStatisticsProductsAction = createAction(GET_STATISTICS_PRODUCTS,\n (token, id) => getStatisticsProductsServices(URL_API, token, id)());\n\nexport const getStatisticsPerHourAction = createAction(GET_STATISTICS_PERHOUR,\n (token, id) => getStatisticsPerHourServices(URL_API, token, id)());\n\nexport function acceptPolicyAction(token, id, obj) {\n return new Promise((resolve, reject) => {\n var response = acceptPolicyService(URL_API, token, id, obj);\n response ? resolve(response) : reject('error');\n });\n}\n","\nexport const getStatisticsServices = (url, token, id) => () =>\n fetch(url + 'statistics/points/admin/' + id, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n let error = [];\n error.push(responser);\n return error;\n }).catch((error) => {\n return error;\n });\n\nexport const getStatisticsProductsServices = (url, token, id) => () =>\n fetch(url + 'statistics/points/products/' + id, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n let error = [];\n error.push(responser);\n return error;\n }).catch((error) => {\n return error;\n });\n\n\nexport const getStatisticsPerHourServices = (url, token, id) => () =>\n fetch(url + 'statistics/points/hourly/' + id, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n let error = [];\n error.push(responser);\n return error;\n }).catch((error) => {\n return error;\n });\n\nexport function acceptPolicyService(url, token, id, obj) {\n\n return new Promise((resolve, reject) => {\n var respuesta = fetch(`${url}company/terms/${id}`, {\n method: 'PUT',\n body: JSON.stringify(obj),\n headers: new Headers({ 'Content-type': 'application/json', 'Authorization': token })\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n respuesta ? resolve(respuesta) : reject('error-');\n });\n}\n","export const statistics = state => state.getPStatisticsState;\nexport const statisticsProducts = state => state.getPStatisticsProductsState;\nexport const statisticsPerHour = state => state.getStatisticsPerHourState;\n","import { getPuntosGeneradosService } from './../services/getPuntosGeneradosService';\nimport { URL_API } from '../../../constants';\n\nexport function getPuntosGeneradosAction(data, idEmpresa, token) {\n return new Promise((resolve, reject) => {\n var response = getPuntosGeneradosService(URL_API, data, idEmpresa, token);\n response ? resolve(response) : reject('error');\n });\n}\n","export function getPuntosGeneradosService(url, data, token) {\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'points/getPointsByDate?' + new URLSearchParams({\n id: data.id,\n fechaInicio: data.firstDate,\n fechaFin: data.lastDate,\n }).toString(), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status === 200){\n return response.json();\n } else if(status === 401){\n return res;\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","function Workbook() {\n if (!(this instanceof Workbook))\n return new Workbook();\n\n this.SheetNames = [];\n\n this.Sheets = {};\n}\n\nconst download = (url, name) => {\n let a = document.createElement('a');\n a.href = url;\n a.download = name;\n a.click();\n\n window.URL.revokeObjectURL(url);\n};\n\n\nfunction s2ab(s) {\n const buf = new ArrayBuffer(s.length);\n\n const view = new Uint8Array(buf);\n\n for (let i = 0; i !== s.length; ++i)\n view[i] = s.charCodeAt(i) & 0xFF;\n\n return buf;\n}\n\nexport default (data, name) => {\n import('xlsx').then(XLSX => {\n const wb = new Workbook();\n const ws = XLSX.utils.json_to_sheet(data);\n\n wb.SheetNames.push('');\n var wscols = [\n { wch: 20 },\n { wch: 20 }\n ];\n ws['!cols'] = wscols;\n wb.Sheets[''] = ws;\n\n const wbout = XLSX.write(wb, { bookType: 'xlsx', bookSST: true, type: 'binary' });\n\n let url = window.URL.createObjectURL(new Blob([s2ab(wbout)], { type: 'application/octet-stream' }));\n\n download(url, name + '.xlsx');\n });\n};\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { toast, ToastContainer } from 'react-toastify';\n\nimport {getPuntosGeneradosAction} from './../actions/getPuntosGeneradosAction';\nimport exportToExcel from './../../home/components/exportToExcel';\n\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle, IoMdInformationCircleOutline } from 'react-icons/io';\nimport { ReactComponent as ExportarIcon } from './../../resources/Exportar-01.svg';\nimport './../stylePointsMonthExcel.css';\n\n\nclass FormPuntosGenerados extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n firstDate: '',\n lastDate: '',\n errors: {},\n errorSubmit: '',\n buscando: false,\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n }\n\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n firstDate: this.state.firstDate,\n lastDate: this.state.lastDate\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n\n if (!values.firstDate || values.firstDate==='' ) {\n errors.firstDate = 'Por favor, introduce la fecha inicial.';\n }\n\n if (!values.lastDate || values.lastDate==='' ) {\n errors.lastDate = 'Por favor, introduce la fecha final.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n this.setState({\n buscando: true\n });\n if (Object.keys(errors).length === 0 ) {\n const token = JSON.parse(localStorage.getItem('token'));\n const idEmpresa = loginData._id;\n\n const data = {\n firstDate: values.firstDate,\n lastDate: values.lastDate,\n id: idEmpresa\n };\n\n return getPuntosGeneradosAction(data, token).then(r => {\n \n if (r.ok) {\n \n let data = r.data;\n let informacion = [];\n for ( let i = 0; data.length > i; i++ ) {\n let objetoInfo = {\n Nombre: '',\n Fecha_Nacimiento: '',\n Telefono: '',\n Numero_de_Tarjeta: '',\n Puntos: 0,\n Expendio: '',\n Producto:'',\n Cantidad:0,\n Unidad:'',\n Fecha: '',\n };\n \n objetoInfo.Nombre = data[ i ].cliente;\n objetoInfo.Fecha_Nacimiento = data[ i ].fechaNacimiento;\n objetoInfo.Telefono = data[ i ].telefono;\n objetoInfo.Puntos = data[ i ].puntos;\n objetoInfo.Numero_de_Tarjeta = data[ i ].tarjeta;\n objetoInfo.Expendio = data[ i ].expendio;\n objetoInfo.Producto = data[ i ].producto;\n objetoInfo.Cantidad = data[ i ].cantidad;\n objetoInfo.Unidad = data[ i ].unidades;\n objetoInfo.Fecha = data[ i ].fecha;\n \n informacion.push(objetoInfo);\n }\n\n if(data.length > 0){\n exportToExcel(informacion, 'Puntos generados de '+this.state.firstDate+' a '+this.state.lastDate);\n toast.success(
{'Reporte generado correctamente.'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n } else {\n toast.warn(
\n {'No se encontro información en esas fechas'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n }\n\n this.setState({\n firstDate: '',\n lastDate: '',\n errors: {},\n errorSubmit: '',\n buscando: false,\n });\n } else\n if (!r.ok) {\n if(r.error){\n if(r.error === 401){\n this.props.history.push('/admin/logout/true');\n }\n } else if(r.error.message) {\n this.setState({\n errorSubmit: r.error.message,\n buscando: false\n });\n }\n }\n });\n }\n this.setState({\n buscando: false\n });\n\n }\n\n\n render() {\n let today = new Date();\n var dd = today.getDate();\n var mm = today.getMonth()+1; //January is 0!\n var yyyy = today.getFullYear();\n if(dd<10){\n dd='0'+dd;\n }\n if(mm<10){\n mm='0'+mm;\n }\n\n today = yyyy+'-'+mm+'-'+dd;\n\n return (\n
\n
\n
\n
\n
\n
\n this.setState({ firstDate: event.target.value })}\n className={this.state.errors.firstDate && ('input-errorLine')}\n max={today}\n />\n \n \n \n {this.state.errors.firstDate && (\n {this.state.errors.firstDate}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ lastDate: event.target.value })}\n className={this.state.errors.lastDate && ('input-errorLine')}\n max={today}/>\n \n \n \n {this.state.errors.lastDate && (\n {this.state.errors.lastDate}\n )}\n
\n
\n
\n
\n {\n this.state.buscando ?\n \n

Descargar Excel

\n \n \n :\n \n

Descargar Excel

\n \n \n }\n
\n
\n
\n \n
\n );\n }\n}\n\nFormPuntosGenerados.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(FormPuntosGenerados);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport './../stylePointsMonthExcel.css';\n\nimport FormPuntosGenerados from './../components/formPuntosGenerados';\n\nclass PuntosGeneradosContainer extends Component {\n render() {\n return (\n
\n
\n Puntos generados\n
\n \n
\n );\n }\n}\n\nPuntosGeneradosContainer.propTypes = {};\n\nexport default withRouter(PuntosGeneradosContainer);\n","import { getPuntosGastadosService } from './../services/getPuntosGastadosService';\nimport { URL_API } from '../../../constants';\n\nexport function getPuntosGastadosAction(data, idEmpresa, token) {\n return new Promise((resolve, reject) => {\n var response = getPuntosGastadosService(URL_API, data, idEmpresa, token);\n response ? resolve(response) : reject('error');\n });\n}\n","export function getPuntosGastadosService(url, data, idEmpresa, token) {\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'reedem/getReedemByDate?' + new URLSearchParams({\n id: idEmpresa,\n fechaInicio: data.firstDate,\n fechaFin: data.lastDate,\n }).toString(), {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status === 200){\n return response.json();\n } else if(status === 401){\n return res;\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport { ToastContainer, toast } from 'react-toastify';\n\nimport {getPuntosGastadosAction} from './../actions/getPuntosGastadosAction';\nimport exportToExcel from './../../home/components/exportToExcel';\n\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle, IoMdInformationCircleOutline } from 'react-icons/io';\nimport { ReactComponent as ExportarIcon } from './../../resources/Exportar-01.svg';\nimport './../stylePointsMonthExcel.css';\n\nclass FormPuntosGastados extends Component {\n constructor(props){\n super(props);\n\n this.state = {\n firstDate: '',\n lastDate: '',\n errors: {},\n errorSubmit: '',\n buscando: false,\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n }\n\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n firstDate: this.state.firstDate,\n lastDate: this.state.lastDate\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n\n if (!values.firstDate || values.firstDate==='' ) {\n errors.firstDate = 'Por favor, introduce la fecha inicial.';\n }\n\n if (!values.lastDate || values.lastDate==='' ) {\n errors.lastDate = 'Por favor, introduce la fecha final.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n this.setState({\n buscando: true\n });\n if (Object.keys(errors).length === 0 ) {\n const token = JSON.parse(localStorage.getItem('token'));\n const idEmpresa = loginData._id;\n\n const data = {\n firstDate: values.firstDate,\n lastDate: values.lastDate,\n };\n\n return getPuntosGastadosAction(data, idEmpresa, token).then(r => {\n if (r.ok) {\n\n let data = r.data;\n let informacion = [];\n \n for ( let i = 0; data.length > i; i++ ) {\n let objetoInfo = {\n Nombre: '',\n Numero_de_Tarjeta: '',\n Total: 0,\n Puntos: 0,\n Puntos_Disponibles: 0,\n Expendio: '',\n Fecha: '',\n };\n\n objetoInfo.Nombre = data[ i ].cliente;\n objetoInfo.Puntos = data[ i ].puntos;\n objetoInfo.Puntos_Disponibles = data[ i ].puntosDisponibles;\n objetoInfo.Total = data[ i ].total;\n objetoInfo.Numero_de_Tarjeta = data[ i ].tarjeta;\n objetoInfo.Expendio = data[ i ].expendio;\n objetoInfo.Fecha = data[ i ].fecha;\n\n informacion.push(objetoInfo);\n }\n\n if(data.length > 0){\n exportToExcel(informacion, 'Puntos gastados de '+this.state.firstDate+' a '+this.state.lastDate);\n toast.success(
{'Reporte generado correctamente.'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n } else {\n toast.warn(
\n {'No se encontro información en esas fechas'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n }\n\n\n this.setState({\n firstDate: '',\n lastDate: '',\n errors: {},\n errorSubmit: '',\n buscando: false,\n });\n } else\n if (!r.ok) {\n if(r.error){\n if(r.error === 401){\n this.props.history.push('/admin/logout/true');\n }\n } else if(r.error.message) {\n this.setState({\n errorSubmit: r.error.message,\n buscando: false\n });\n }\n }\n });\n }\n this.setState({\n buscando: false\n });\n\n\n }\n\n render() {\n let today = new Date();\n var dd = today.getDate();\n var mm = today.getMonth()+1; //January is 0!\n var yyyy = today.getFullYear();\n if(dd<10){\n dd='0'+dd;\n }\n if(mm<10){\n mm='0'+mm;\n }\n\n today = yyyy+'-'+mm+'-'+dd;\n\n return (\n
\n
\n
\n
\n
\n
\n this.setState({ firstDate: event.target.value })}\n className={this.state.errors.firstDate && ('input-errorLine')}\n max={today}\n />\n \n \n \n {this.state.errors.firstDate && (\n {this.state.errors.firstDate}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ lastDate: event.target.value })}\n className={this.state.errors.lastDate && ('input-errorLine')}\n max={today}/>\n \n \n \n {this.state.errors.lastDate && (\n {this.state.errors.lastDate}\n )}\n
\n
\n
\n
\n {\n this.state.buscando ?\n \n

Descargar Excel

\n \n \n :\n \n

Descargar Excel

\n \n \n }\n\n
\n
\n
\n \n
\n );\n }\n}\n\nFormPuntosGastados.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(FormPuntosGastados);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\n\nimport FormPuntosGastados from './../components/formPuntosGastados';\n\nimport './../stylePointsMonthExcel.css';\n\nclass PuntosGastadosContainer extends Component {\n render() {\n return (\n
\n
\n Puntos gastados\n
\n \n
\n );\n }\n}\n\nPuntosGastadosContainer.propTypes = {\n\n};\n\nexport default withRouter(PuntosGastadosContainer);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-responsive-modal';\n\n\nclass ModalCustom extends Component {\n render() {\n const modalStyle = {\n overlay: {\n backgroundColor: 'rgba(255, 255, 255, 0.4)'\n },\n modal: {\n backgroundColor: 'rgba(255, 255, 255, 1)',\n color: '#000000',\n boxShadow: '0 0 0 rgba(0, 0, 0, 0.25)',\n borderTop: '5px solid #950024',\n borderBottom: '5px solid #950024',\n textAlign: 'center'\n }\n };\n return (\n \n
\n

{this.props.tittle}

\n
{this.props.contentModal}
\n {this.props.closeText && this.props.acceptText ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : ('')}\n {\n this.props.closeText && !this.props.acceptText? (\n
\n
\n \n
\n
\n ) : ('')\n }\n {this.props.acceptText && !this.props.closeText? (\n
\n
\n \n
\n
\n ) : ('')}\n
\n
\n\n );\n }\n}\n\nModalCustom.propTypes = {\n open: PropTypes.bool.isRequired,\n close: PropTypes.any.isRequired,\n tittle: PropTypes.string,\n contentModal: PropTypes.any,\n onclickClose: PropTypes.any.isRequired,\n onclickAccept: PropTypes.any.isRequired,\n closeText: PropTypes.string,\n acceptText: PropTypes.string,\n};\n\nexport default ModalCustom;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport './../style.css';\n\nimport { ReactComponent as ExportarIcon } from './../../resources/Exportar-01.svg';\n\nimport {\n XYPlot,\n //LineSeries,\n //VerticalGridLines,\n //HorizontalGridLines,\n XAxis,\n YAxis,\n VerticalBarSeries,\n //MarkSeries,\n //GradientDefs,\n //Crosshair,\n //LineMarkSeries,\n //Highlight,\n //ArcSeries,\n LabelSeries\n //ChartLabel\n} from 'react-vis';\n//import { generateSeededRandom, EXTENDED_DISCRETE_COLOR_RANGE as COLORS } from './showcase-utils';\n\nimport {\n getStatisticsAction,\n getStatisticsProductsAction,\n getStatisticsPerHourAction,\n acceptPolicyAction\n} from './../actions';\nimport { statistics, statisticsProducts, statisticsPerHour } from './../selectors';\n\n//import ReactHTMLTableToExcel from 'react-html-table-to-excel';\n//import html2canvas from 'html2canvas';\n//import { LineChart, Line, CartesianGrid, XAxis as XXAxis, YAxis as YYAxis } from 'recharts';\n//import ExcelJS from 'exceljs/dist/es5/exceljs.browser.js';\n//import { saveAs } from 'file-saver';\n//import { fs } from 'fs';\n//import { Chart } from 'react-charts'\n\nimport * as htmlToImage from 'html-to-image';\n\nimport PuntosGeneradosContainer from './../../pointsMonthExcel/containers/puntosGeneradosContainer';\nimport PuntosGastadosContainer from './../../pointsMonthExcel/containers/puntosGastadosContainer';\nimport exportToExcel from './../components/exportToExcel';\nimport ModalCustom from '../../../globalComponents/modal/modal';\nimport equal from 'fast-deep-equal';\n\nclass HomeContainerAdmin extends Component {\n constructor() {\n super();\n this.state = {\n showpointsP: false,\n showpointsTop: false,\n showpointsHour: false,\n pointsP: [],\n pointsTop: [],\n pointsHour: [],\n pointsP_EXCEL: [],\n pointsTop_EXCEL: [],\n pointsHour_EXCEL: [],\n maxRangeWP: 0,\n maxRangeWTop: 0,\n maxRangeHour: 0,\n imageP: '',\n error: '',\n open: false,\n policies: false,\n policyMessage: ''\n };\n this.onOpenModal = this.onOpenModal.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n this.acceptPolicy = this.acceptPolicy.bind(this);\n }\n\n componentDidMount() {\n let loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n //loginData.terms_use=false;\n if (loginData) {\n if (loginData.terms_use) {\n this.setState({ policies: true });\n this.props.getStatisticsAction(token, loginData._id).then(\n response => {\n const data = [];\n const dataExcel = [];\n let max = 0;\n if (response.payload) {\n response.payload.forEach(element => {\n if (element.puntosTotal > max) {\n max = element.puntosTotal;\n }\n data.push({ x: element.expendio, y: element.puntosTotal });\n dataExcel.push({ 'Punto de venta': element.expendio, 'Puntos generados': element.puntosTotal });\n });\n if (response.payload) {\n this.setState({ showpointsP: true, pointsP: data, maxRangeWP: max, pointsP_EXCEL: dataExcel });\n }\n }\n\n if (response.payload) {\n if (response.payload[0]) {\n if (response.payload[0].error) {\n if (response.payload[0].error.name === 'TokenExpiredError') {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n }\n }\n\n );\n\n this.props.getStatisticsProductsAction(token, loginData._id).then(\n response => {\n const data2 = [];\n const data2Excel = [];\n let max2 = 0;\n\n if (response.payload) {\n response.payload.forEach(element => {\n if (element.points > max2) {\n max2 = element.points;\n }\n data2.push({ x: element.name, y: element.points });\n data2Excel.push({ 'Productos': element.name, 'Puntos generados': element.points });\n });\n if (response.payload.length > 0) {\n this.setState({ showpointsTop: true, pointsTop: data2, maxRangeWTop: max2, pointsTop_EXCEL: data2Excel });\n }\n }\n if (response.payload) {\n if (response.payload[0]) {\n if (response.payload[0].error) {\n if (response.payload[0].error.name === 'TokenExpiredError') {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n }\n\n }\n );\n\n this.props.getStatisticsPerHourAction(token, loginData._id).then(\n response => {\n const data3 = [];\n const data3Excel = [];\n let max3 = 0;\n\n if (response.payload) {\n response.payload.forEach(element => {\n if (element.points > max3) {\n max3 = element.points;\n }\n data3.push({ x: element.hour + 'hr', y: element.points });\n data3Excel.push({ 'Hora': element.hour + 'hr', 'Puntos generados': element.points });\n });\n if (response.payload.length > 0) {\n this.setState({ showpointsHour: true, pointsHour: data3, maxRangeHour: max3, pointsHour_EXCEL: data3Excel });\n }\n }\n\n if (response.payload) {\n if (response.payload[0]) {\n if (response.payload[0].error) {\n if (response.payload[0].error.name === 'TokenExpiredError') {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n }\n\n }\n );\n } else {\n this.setState({ open: true });\n }\n } else {\n this.props.history.push('/admin/logout/false');\n }\n\n let pol=
\n

LICENCIA GENERAL: NUBENTUM.

\n

Versión 1, Julio 2020

\n

2020 Copyright (C) Big Pink de Girasolo S.A. de C.V.

\n

Girasolo S.A. de C.V. RFC: GIR150303JE5, Mariano Jiménez #132 Int. 7-A; Se permite la copia y distribución del presente documento, sin embargo,no está permitida su modificación.

\n

LICENCIA PÚBLICA GENERAL NUBENTUM CONDICIONES PARA LA COPIA, DISTRIBUCIÓN Y MODIFICACIÓN.

\n \n
;\n this.setState({policyMessage: pol});\n\n }\n\n componentDidUpdate(_prevProps, prevstate) {\n let loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n if (!equal(this.state.policies, prevstate.policies)) {\n if (this.state.policies) {\n this.setState({ policies: true });\n this.props.getStatisticsAction(token, loginData._id).then(\n response => {\n const data = [];\n const dataExcel = [];\n let max = 0;\n if (response.payload) {\n response.payload.forEach(element => {\n if (element.puntosTotal > max) {\n max = element.puntosTotal;\n }\n data.push({ x: element.expendio, y: element.puntosTotal });\n dataExcel.push({ 'Punto de venta': element.expendio, 'Puntos generados': element.puntosTotal });\n });\n \n if (response.payload) {\n this.setState({ showpointsP: true, pointsP: data, maxRangeWP: max, pointsP_EXCEL: dataExcel });\n }\n }\n\n\n if (response.payload) {\n if (response.payload[0]) {\n if (response.payload[0].error) {\n if (response.payload[0].error.name === 'TokenExpiredError') {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n }\n }\n\n );\n\n this.props.getStatisticsProductsAction(token, loginData._id).then(\n response => {\n const data2 = [];\n const data2Excel = [];\n let max2 = 0;\n\n if (response.payload) {\n response.payload.forEach(element => {\n if (element.points > max2) {\n max2 = element.points;\n }\n data2.push({ x: element.name, y: element.points });\n data2Excel.push({ 'Productos': element.name, 'Puntos generados': element.points });\n });\n if (response.payload.length > 0) {\n this.setState({ showpointsTop: true, pointsTop: data2, maxRangeWTop: max2, pointsTop_EXCEL: data2Excel });\n }\n }\n if (response.payload) {\n if (response.payload[0]) {\n if (response.payload[0].error) {\n if (response.payload[0].error.name === 'TokenExpiredError') {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n }\n\n }\n );\n\n this.props.getStatisticsPerHourAction(token, loginData._id).then(\n response => {\n const data3 = [];\n const data3Excel = [];\n let max3 = 0;\n\n if (response.payload) {\n response.payload.forEach(element => {\n if (element.points > max3) {\n max3 = element.points;\n }\n data3.push({ x: element.hour + 'hr', y: element.points });\n data3Excel.push({ 'Hora': element.hour + 'hr', 'Puntos generados': element.points });\n });\n if (response.payload.length > 0) {\n this.setState({ showpointsHour: true, pointsHour: data3, maxRangeHour: max3, pointsHour_EXCEL: data3Excel });\n }\n }\n\n if (response.payload) {\n if (response.payload[0]) {\n if (response.payload[0].error) {\n if (response.payload[0].error.name === 'TokenExpiredError') {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n }\n\n }\n );\n }\n }\n }\n\n acceptPolicy(){\n let loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n let terms = {\n terms: JSON.stringify(this.state.policyMessage)\n };\n\n return acceptPolicyAction(token, loginData._id, terms).then(resp=>{\n if(resp.response.ok){\n this.setState({ open: false, policies: true});\n loginData.terms_use = true;\n localStorage.setItem('loginData', JSON.stringify(loginData));\n }\n });\n }\n onOpenModal() {\n this.setState({ open: true });\n }\n\n onCloseModal() {\n this.setState({ open: false });\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/false/true');\n }\n handleClick2 = () => {\n /*htmlToImage.toBlob(document.getElementById('svg-chart'))\n .then(function (blob) {\n console.log('blob');\n console.log(blob);\n\n window.saveAs(blob, 'svg-chart.png');\n });*/\n\n htmlToImage.toPng(document.getElementById('svg-chart2'))\n .then(function (dataUrl) {\n window.createFormattingWorkbook(dataUrl, 'productos que generan mas puntos');\n return dataUrl;\n }).catch(function (error) {\n this.setState({ error: error });\n });\n };\n handleClick1 = () => {\n htmlToImage.toPng(document.getElementById('svg-chart1'))\n .then(function (dataUrl) {\n window.createFormattingWorkbook(dataUrl, 'puntos generados por punto de venta');\n return dataUrl;\n }).catch(function (error) {\n this.setState({ error: error });\n });\n };\n handleClick3 = () => {\n htmlToImage.toPng(document.getElementById('svg-chart3'))\n .then(function (dataUrl) {\n window.createFormattingWorkbook(dataUrl, 'Puntos generados por hora');\n return dataUrl;\n }).catch(function (error) {\n this.setState({ error: error });\n });\n };\n\n render() {\n\n const chartWidth = 950;\n const chartHeight = 800;\n const chartDomain = [0, (this.state.maxRangeWP + 30)];\n const chartDomainTop = [0, (this.state.maxRangeWTop + 30)];\n const chartDomainHour = [0, (this.state.maxRangeHour + 30)];\n const axisStyle = {\n ticks: {\n fontSize: '15px'\n },\n stroke: 'rgb(56, 56, 56)'\n };\n const axisStyleBlack = {\n stroke: 'rgb(56, 56, 56)'\n };\n\n let today = new Date();\n var dd = today.getDate();\n var mm = today.getMonth()+1; //January is 0!\n var yyyy = today.getFullYear();\n if(dd<10){\n dd='0'+dd;\n }\n if(mm<10){\n mm='0'+mm;\n }\n\n today = yyyy+'-'+mm+'-'+dd;\n return (\n
\n \n {this.state.policies?(\n
):(
)}\n
\n );\n }\n}\nHomeContainerAdmin.propTypes = {\n getStatisticsAction: PropTypes.func.isRequired,\n getStatisticsProductsAction: PropTypes.func.isRequired,\n getStatisticsPerHourAction: PropTypes.func.isRequired,\n history: PropTypes.object,\n};\n\nHomeContainerAdmin.defaultProps = {\n listStatistics: {},\n listStatisticsProducts: {},\n listStatisticsPerHour: {},\n\n};\n\nconst mapStateToProps = state => ({\n listStatistics: statistics(state),\n listStatisticsProducts: statisticsProducts(state),\n listStatisticsPerHour: statisticsPerHour(state),\n});\n\nexport default withRouter(connect(mapStateToProps, { getStatisticsAction, getStatisticsProductsAction, getStatisticsPerHourAction })(HomeContainerAdmin));\n","import { addNewUserService } from './../services';\nimport { URL_API } from './../../../constants';\n\nexport function addNewUser(token, data, id) {\n return new Promise((resolve, reject) => {\n var response = addNewUserService(URL_API, token, data, id);\n response ? resolve(response) : reject('error');\n });\n}\n","export function addNewUserService(url, token, data, id) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'auth/register/'+id, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\n//import PropTypes from 'prop-types';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\nimport Container from 'react-bootstrap/Container';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\n//Col3, Col9\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { addNewUser } from './../actions';\n//import ModalCustom from './../../../globalComponents/modal/modal';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass createUser extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: '',\n password: '',\n errors: '',\n message: 'message',\n modal: false,\n };\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n username: this.state.username,\n password: this.state.password\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.username || values.username === '') {\n errors.username = 'Por favor, introduce tu usuario.';\n }\n\n if (!values.password || values.password === '') {\n errors.password = 'Por favor, introduce tu contraseña';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values) {\n event.preventDefault();\n\n if (Object.keys(errors).length === 0) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n\n return addNewUser(token, values, loginData._id).then(r => {\n\n if (r.code === 404) {\n let errors = {};\n errors.add = 'Lo sentimos, ah ocurrido un error al registrar los datos';\n this.setState({\n errorLogin: errors,\n message: 'Lo sentimos, ah ocurrido un error al registrar los datos'\n });\n this.notifyError();\n\n } else if (r.ok) {\n //this.openModal();\n this.setState({\n errors: '',\n username: '',\n password: ''\n });\n this.notifySuccess();\n\n } else if (r.errors) {\n let errors = {};\n errors.add = 'Error al registrar, verifique los datos';\n this.setState({\n errors: errors,\n message: 'Error al registrar, verifique los datos'\n });\n this.notifyError();\n\n } else if (r.error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else if (r.error) {\n let errors = {};\n errors.add = r.error.name;\n this.setState({\n errors: errors,\n message: r.error.name\n });\n this.notifyError();\n\n }\n }).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n }\n\n notifySuccess = () => {\n toast.success(
Usuario agregado correctamente.
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
{this.state.message}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n\n render() {\n\n return (\n
\n
\n );\n }\n}\n\ncreateUser.propTypes = {\n};\nexport default withRouter(createUser);\n","var _path;\nconst _excluded = [\"svgRef\", \"title\"];\nfunction _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }\nfunction _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var s = Object.getOwnPropertySymbols(e); for (r = 0; r < s.length; r++) o = s[r], t.includes(o) || {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }\nfunction _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (e.includes(n)) continue; t[n] = r[n]; } return t; }\nimport React from \"react\";\nconst SvgIcons8Search = _ref => {\n let {\n svgRef,\n title\n } = _ref,\n props = _objectWithoutProperties(_ref, _excluded);\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n fill: \"#000000\",\n viewBox: \"0 0 32 32\",\n width: \"64px\",\n height: \"64px\",\n ref: svgRef\n }, props), title ? /*#__PURE__*/React.createElement(\"title\", null, title) : null, _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M 19 3 C 13.488281 3 9 7.488281 9 13 C 9 15.394531 9.839844 17.589844 11.25 19.3125 L 3.28125 27.28125 L 4.71875 28.71875 L 12.6875 20.75 C 14.410156 22.160156 16.605469 23 19 23 C 24.511719 23 29 18.511719 29 13 C 29 7.488281 24.511719 3 19 3 Z M 19 5 C 23.429688 5 27 8.570313 27 13 C 27 17.429688 23.429688 21 19 21 C 14.570313 21 11 17.429688 11 13 C 11 8.570313 14.570313 5 19 5 Z\"\n })));\n};\nconst ForwardRef = /*#__PURE__*/React.forwardRef((props, ref) => /*#__PURE__*/React.createElement(SvgIcons8Search, _extends({\n svgRef: ref\n}, props)));\nexport default __webpack_public_path__ + \"static/media/icons8-search.bb29bfd6.svg\";\nexport { ForwardRef as ReactComponent };","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport './table-style.css';\nclass TableRender extends Component {\n\n render() {\n\n return (\n
\n \n \n \n {\n this.props.data ? (\n this.props.data.thead ? (\n this.props.data.thead.length > -1 ? (\n this.props.data.thead.map((th, index) =>\n \n )\n ) : ()\n ) : ()\n ) : ()\n }\n \n \n \n {\n this.props.data ? (\n this.props.data.tbody ? (\n this.props.data.tbody.length > -1 ? (\n this.props.data.tbody.map((tr, index) =>\n \n {\n tr.map((td) =>\n \n )\n }\n \n )\n ) : ()\n ) : ()\n ) : ()\n }\n \n
{th}no datano datano data
{td}
no data
no data
no data
\n
\n\n );\n }\n}\nTableRender.propTypes = {\n data: PropTypes.any.isRequired,\n};\nTableRender.defaultProps = {\n data: [],\n};\nexport default TableRender;\n","export const getUserByIDADmin = (url, token, id) => () =>\n fetch(url + 'company/' + id, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.error);\n return datos;\n }).catch((error) => {\n return error;\n });\n\nexport const deleteUserService = (url, token, idAdmin, idUser) => () =>\n fetch(url + 'company/' + idAdmin + '/user/' + idUser, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n var datos = [];\n datos.push(responser);\n return datos;\n }).catch((error) => {\n return error;\n });\n","import {\n URL_API,\n LIST_USERS,\n DELETE_USER,\n} from './../../../constants';\nimport {\n getUserByIDADmin,\n deleteUserService\n} from './../services';\nimport { createAction } from 'redux-actions';\n\nexport const listUsersAction = createAction(LIST_USERS,\n (token, id) => getUserByIDADmin(URL_API, token, id)());\n\nexport const deleteUserAction = createAction(DELETE_USER,\n (token, idAdmin, idUser) => deleteUserService(URL_API, token, idAdmin, idUser)());\n","export const getUsersList = state => state.usersState;\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-responsive-modal';\nimport { connect } from 'react-redux';\n\nimport { deleteUserAction, listUsersAction } from './../actions';\nimport { getUsersList } from './../selectors';\nimport ModalCustom from './../../../globalComponents/modal/modal';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass ModalError extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n modal: false,\n };\n this.eliminarUserAdmin = this.eliminarUserAdmin.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.openModal = this.openModal.bind(this);\n }\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({\n modal: false\n });\n }\n eliminarUserAdmin() {\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n this.props.close();\n\n this.props.deleteUserAction(token, loginData._id, this.props.idAEliminar).then(\n (resp) => {\n if (resp.payload[0]) {\n if (resp.payload[0].data) {\n if (resp.payload[0].data.ok) {\n /*this.setState({\n modalTitle: 'Eliminado',\n modalContent: 'El usuario se ha eliminado correctamente',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();*/\n this.notifySuccess();\n this.props.listUsersAction(token, loginData._id);\n }\n } else if (resp.payload[0].error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n } else {\n /*this.setState({\n modalTitle: 'Error al eliminar',\n modalContent: 'verifique su conexion',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();*/\n this.notifyError();\n }\n }\n );\n\n }\n\n notifySuccess = () => {\n toast.success(

El usuario se ha eliminado correctamente

, {\n position: toast.POSITION.TOP_RIGHT,\n className: 'success-toast-custom'\n });\n };\n\n notifyError = () => {\n toast.error(
Error al eliminar el usuario
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n\n render() {\n\n const modalStyle = {\n overlay: {\n backgroundColor: 'rgba(255, 255, 255, 0.4)'\n },\n modal: {\n backgroundColor: 'rgba(255, 255, 255, 1)',\n color: '#000000',\n boxShadow: '0 0 0 rgba(0, 0, 0, 0.25)',\n borderTop: '5px solid #950024',\n borderBottom: '5px solid #950024',\n textAlign: 'center'\n }\n };\n\n return (\n
\n \n \n \n
\n
\n {'¿Seguro que desea eliminarlo'}
\n {/*\n {'\"' + this.props.nameAEliminar + '\"'}{'?'}\n */}\n
\n {\n this.props.acceptText ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : ('')\n }\n
\n
\n
\n );\n }\n}\n\nModalError.propTypes = {\n nameAEliminar: PropTypes.string.isRequired,\n idAEliminar: PropTypes.string.isRequired,\n open: PropTypes.bool.isRequired,\n close: PropTypes.any.isRequired,\n onclickClose: PropTypes.any.isRequired,\n acceptText: PropTypes.string,\n closeText: PropTypes.string,\n history: PropTypes.object,\n deleteUserAction: PropTypes.func.isRequired,\n listUsersAction: PropTypes.func.isRequired,\n};\n\nModalError.defaultProps = {\n usersList: []\n};\n\nconst mapStateToProps = state => ({\n usersList: getUsersList(state)\n});\n\nexport default withRouter(\n connect(\n mapStateToProps, {\n listUsersAction,\n deleteUserAction\n })(ModalError));\n\n","\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport TableRender from './../../../globalComponents/table';\nimport { deleteUserAction, listUsersAction } from './../actions';\nimport { getUsersList } from './../selectors';\nimport ModalCustom from './../../../globalComponents/modal/modal';\nimport ModalError from './modalError';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nclass UsersTable extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n modal: false,\n modalTitleDel: '',\n modalContentDel: '',\n modalAcceptTextDel: '',\n modalDel: false,\n idEliminar: ''\n };\n this.deleteUser = this.deleteUser.bind(this);\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.openModalDelete = this.openModalDelete.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n onCloseModal() {\n this.setState({\n modalDel: false\n });\n }\n openModalDelete(idUser) {\n this.setState({\n modalDel: true,\n idEliminar: idUser\n });\n }\n\n closeModal() {\n this.setState({ modal: false });\n }\n\n deleteUser(idUser) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n\n this.props.deleteUserAction(token, loginData._id, idUser).then(\n (resp) => {\n if (resp.payload[0]) {\n if (resp.payload[0].data) {\n if (resp.payload[0].data.ok) {\n this.setState({\n modalTitle: 'Eliminado',\n modalContent: 'El usuario se ha eliminado correctamente',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();\n\n this.props.listUsersAction(token, loginData._id);\n }\n } else if (resp.payload[0].error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n } else {\n this.setState({\n modalTitle: 'Error al eliminar',\n modalContent: 'verifique su conexion',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();\n }\n }\n ).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n render() {\n const { data, search } = this.props;\n\n let DATA = {\n thead: [\n 'Nombre de Usuario', 'Rol', 'Accion'\n ],\n tbody: [\n\n ]\n };\n if (data[0]) {\n if (data[0].users) {\n\n data[0].users.forEach(element => {\n\n let actions =
\n \n \"iconVer\"\n \n     \n \n \"iconVer\"\n     \n \n this.openModalDelete(element._id)} src=\"/assets/tablas/eliminar.svg\" className=\"iconTabla-planes-SA\" alt=\"iconVer\" />\n
;\n\n if (search) {\n if (element.username.includes(search.toLowerCase())) {\n if (CurrentUserIsActive()) {\n DATA.tbody.push([element.username, element.role, actions]);\n } else {\n DATA.tbody.push([element.username, element.role, '']);\n }\n }\n } else if (CurrentUserIsActive()) {\n DATA.tbody.push([element.username, element.role, actions]);\n } else {\n DATA.tbody.push([element.username, element.role, '']);\n }\n });\n }\n }\n\n\n return (\n
\n \n \n \n
\n );\n }\n}\nUsersTable.propTypes = {\n listUsersAction: PropTypes.func.isRequired,\n deleteUserAction: PropTypes.func.isRequired,\n usersList: PropTypes.array,\n data: PropTypes.array.isRequired,\n search: PropTypes.string\n};\nUsersTable.defaultProps = {\n usersList: []\n};\nconst mapStateToProps = state => ({\n usersList: getUsersList(state)\n});\nexport default withRouter(\n connect(\n mapStateToProps, {\n listUsersAction,\n deleteUserAction\n })(UsersTable));\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\n\nimport { ReactComponent as SearchIcon } from './../resources/icons8-search.svg';\nimport UsersTable from './../components/usersTable';\nimport { listUsersAction } from './../actions';\nimport { getUsersList } from './../selectors';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nclass listUsers extends Component {\n constructor(props) {\n super(props);\n this.state = {\n search: ''\n };\n\n }\n\n componentDidMount() {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.listUsersAction(token, loginData._id).then(\n response => {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n\n render() {\n return (\n
\n
\n );\n }\n\n\n}\n\nlistUsers.propTypes = {\n listUsersAction: PropTypes.func.isRequired,\n usersList: PropTypes.array.isRequired,\n};\n\nlistUsers.defaultProps = {\n usersList: []\n};\n\nconst mapStateToProps = state => ({\n usersList: getUsersList(state)\n});\nexport default withRouter(connect(mapStateToProps, { listUsersAction })(listUsers));\n","/* eslint-disable no-dupe-else-if */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'react-bootstrap/Button';\n\nimport './buttonPrimary.css';\n\nclass ButtonPrimary extends Component {\n render() {\n return (\n \n );\n }\n}\n\nButtonPrimary.propTypes = {\n title: PropTypes.string\n};\n\nexport default ButtonPrimary;\n","/* eslint-disable no-dupe-else-if */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'react-bootstrap/Button';\n\nimport './buttonSecondary.css';\n\n\nclass ButtonSecondary extends Component {\n render() {\n return (\n \n );\n }\n}\n\nButtonSecondary.propTypes = {\n title: PropTypes.string\n};\n\nexport default ButtonSecondary;\n","/* eslint-disable no-dupe-else-if */\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Button from 'react-bootstrap/Button';\n\nimport './buttonRed.css';\n\n\nclass ButtonRed extends Component {\n render() {\n return (\n \n );\n }\n}\n\nButtonRed.propTypes = {\n title: PropTypes.string\n};\n\nexport default ButtonRed;\n","import React, { PureComponent } from 'react';\nimport ButtonPrimary from './globalComponents/buttons/containers/primary/buttonPrimary';\nimport ButtonSecondary from './globalComponents/buttons/containers/secondary/buttonSecondary';\nimport ButtonRed from './globalComponents/buttons/containers/red/buttonRed';\nimport TableRender from './globalComponents/table';\nimport { CurrentUserCan } from './helpers/capabilitiesControl';\nimport ModalCustom from './globalComponents/modal/modal';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\n\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle,\n IoMdInformationCircleOutline\n} from 'react-icons/io';\n\n\nexport default class democomponent extends PureComponent {\n\n constructor(props) {\n super(props);\n this.state = { open: false, iconmodal: false };\n this.onOpenModal = this.onOpenModal.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n\n }\n onOpenModal() {\n this.setState({ open: true });\n }\n\n onCloseModal() {\n this.setState({ open: false });\n }\n\n\n notify = () => {\n //toast(\"Default Notification !\");\n let texto =
Success Notification !
;\n\n toast.success(texto, {\n position: toast.POSITION.TOP_RIGHT,\n });\n\n toast.error(
Error Notification !
, {\n position: toast.POSITION.TOP_RIGHT\n });\n\n toast.warn(
Warning Notification !
, {\n position: toast.POSITION.TOP_RIGHT\n });\n\n toast.info(
Info Notification !
, {\n position: toast.POSITION.TOP_RIGHT\n });\n\n };\n\n render() {\n\n var demoData = {\n thead: [\n 'NAME', 'EMAIL', 'PHONE'\n ],\n tbody: [\n ['dato 1', 'dato 2', 'dato 3'],\n ['dato 4', 'dato 5', 'dato 6'],\n ['dato 7', 'dato 8', 'dato 9']\n ]\n };\n\n return (\n
\n\n \n {CurrentUserCan('MANAGE') ? ('puede gestionar') : ('sin perminsos suficientes')}\n

\n {CurrentUserCan('EDIT') ? ('puede editar') : ('sin perminsos suficientes')}\n

\n \n\n \n
\n

\n
\n \n \n \n
\n

\n \n \n\n

\n
\n
\n );\n }\n}\n/*\n//rafc\nimport React from 'react'\n\nexport const democomponent = () => {\n return (\n
\n\n
\n )\n}\n//rafce\nimport React from 'react'\n\nconst democomponent = () => {\n return (\n
\n\n
\n )\n}\n//rafcp\nexport default democomponent\n\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\nconst democomponent = props => {\n return (\n
\n\n
\n )\n}\n\ndemocomponent.propTypes = {\n\n}\n\nexport default democomponent\n\n//rcc 2\nimport React, { Component } from 'react';\n\nclass democomponent extends Component {\n render() {\n return (\n
\n\n
\n );\n }\n}\n\nexport default democomponent;\n\n//rccp 2\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass democomponent extends Component {\n render() {\n return (\n
\n\n
\n );\n }\n}\n\ndemocomponent.propTypes = {\n\n};\n\nexport default democomponent;\n\n//rce\nimport React, { Component } from 'react'\n\nexport class democomponent extends Component {\n render() {\n return (\n
\n\n
\n )\n }\n}\n\nexport default democomponent\n\n//recp\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\n\nexport class democomponent extends Component {\n static propTypes = {\n\n }\n\n render() {\n return (\n
\n\n
\n )\n }\n}\n\nexport default democomponent\n\n//rcfc\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\n\nclass democomponent extends Component {\n constructor(props) {\n super(props);\n\n }\n\n componentWillMount() {\n\n }\n\n componentDidMount() {\n\n }\n\n componentWillReceiveProps(nextProps) {\n\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n\n }\n\n componentWillUpdate(nextProps, nextState) {\n\n }\n\n componentDidUpdate(prevProps, prevState) {\n\n }\n\n componentWillUnmount() {\n\n }\n\n render() {\n return (\n
\n\n
\n );\n }\n}\n\ndemocomponent.propTypes = {\n\n};\n\nexport default democomponent;\n\n//rconst\nconstructor(props) {\n super(props)\n\n this.state = {\n\n }\n}\n\n\n//rcreduxp\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\n\nexport class democomponent extends Component {\n static propTypes = {\n prop: PropTypes\n }\n\n render() {\n return (\n
\n\n
\n )\n }\n}\n\nconst mapStateToProps = (state) => ({\n\n})\n\nconst mapDispatchToProps = {\n\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(democomponent)\n\n//reduxmap\nconst mapStateToProps = (state) => ({\n\n})\n\nconst mapDispatchToProps = {\n\n}\n\n//ren 2\nrender() {\n return (\n
\n\n
\n );\n}\n\n//rfc\nimport React from 'react'\n\nexport default function democomponent() {\n return (\n
\n\n
\n )\n}\n\n//rfce\nimport React from 'react'\n\nfunction democomponent() {\n return (\n
\n\n
\n )\n}\n\nexport default democomponent\n\n//rfcp\nimport React from 'react'\nimport PropTypes from 'prop-types'\n\nfunction democomponent(props) {\n return (\n
\n\n
\n )\n}\n\ndemocomponent.propTypes = {\n\n}\n\nexport default democomponent\n\n//rmcp\nimport React, { memo } from 'react'\nimport PropTypes from 'prop-types'\n\nconst democomponent = memo(function democomponent(props) {\n return (\n
\n\n
\n )\n})\n\ndemocomponent.propTypes = {\n\n}\n\nexport default democomponent\n\n//rnce\nimport React, { Component } from 'react'\nimport { Text, View } from 'react-native'\n\nexport class democomponent extends Component {\n render() {\n return (\n \n textInComponent \n \n )\n }\n}\n\nexport default democomponent\n\n//rpc\nimport React, { PureComponent } from 'react';\nimport PropTypes from 'prop-types';\n\nclass democomponent extends PureComponent {\n render() {\n return (\n
\n\n
\n );\n }\n}\n\ndemocomponent.propTypes = {\n\n};\n\nexport default democomponent;\n\n//rscpm\nimport React, { memo } from 'react';\nimport PropTypes from 'prop-types';\n\nconst democomponent = memo((props) => {\n return (\n
\n\n
\n );\n});\n\ndemocomponent.propTypes = {\n\n};\n\nexport default democomponent;\n\n//rxconst\nexport const constantName = 'constantName'\n\n//rxselect\nimport { createSelector } from 'reselect'\n\nexport const selectorName = state => state.selector\n*/\n","import {\n URL_API,\n GET_USER,\n} from './../../../constants';\nimport {\n getUser,\n updateUserService\n} from './../services';\nimport { createAction } from 'redux-actions';\n\nexport const getUsersAction = createAction(GET_USER,\n (token, idAdmin, idUser) => getUser(URL_API, token, idAdmin, idUser)());\n\nexport function updateUserAction(token, idAdmin, idUser, data) {\n return new Promise((resolve, reject) => {\n var response = updateUserService(URL_API, token, idAdmin, idUser, data);\n response ? resolve(response) : reject('error');\n });\n}\n","export const getUser = (url, token, idAdmin, idUser) => () =>\n fetch(url + 'company/' + idAdmin + '/user/' + idUser, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.error);\n return datos;\n }).catch((error) => {\n return error;\n });\n\n\nexport function updateUserService(url, token, idAdmin, idUser, data) {\n const URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'company/' + idAdmin + '/user/' + idUser, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n },\n body: URLSearchParams\n }).then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n var datos = [];\n datos.push(responser);\n return datos;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","export const getUserState = state => state.userState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport './../style.css';\nimport Container from 'react-bootstrap/Container';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport { TiInfoOutline } from 'react-icons/ti';\n//import ModalCustom from './../../../globalComponents/modal/modal';\nimport { updateUserAction } from './../actions';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass UpdateUser extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: '',\n errors: '',\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n modal: false,\n };\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n\n componentDidMount() {\n\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n username: this.state.username\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.username || values.username === '') {\n errors.username = 'Por favor, introduce un nuevo nombre de usuario valido.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values) {\n event.preventDefault();\n\n if (Object.keys(errors).length === 0) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n const { data } = this.props;\n\n let datos = {\n 'username': values.username,\n };\n\n updateUserAction(token, loginData._id, data[0]._id, datos).then(\n res => {\n if (res[0]) {\n if (res[0].ok) {\n this.setState({\n modalContent: 'El usuario se ha actualizado correctamente'\n });\n this.notifySuccess();\n } else if (res[0].error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else {\n this.setState({\n modalContent: res[0].data.message\n });\n this.notifyError();\n\n }\n } else {\n this.setState({\n modalContent: 'verifique los datos y que no existan repetidos'\n });\n this.notifyError();\n\n }\n\n\n }, error => {\n this.setState({\n modalContent: 'verifique los datos y que no existan repetidos'\n });\n this.notifyError();\n this.errors = error;\n }\n );\n }\n }\n\n notifySuccess = () => {\n toast.success(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n render() {\n const { data } = this.props;\n let username = '';\n if (data[0]) {\n if (data[0].username) {\n username = data[0].username;\n }\n }\n\n return (\n
\n
\n
\n
\n
\n

Usuarios / Nuevo Usuario

\n
\n
\n

Realiza los cambios que desees

\n
\n\n \n\n \n
\n
\n
\n \n \n {this.state.errors.add && (\n {this.state.errors.add}\n )}\n \n \n \n \n \n \n this.setState({ username: event.target.value })}\n className={(this.state.errors.username && ('input-errorLine')) + ' input-form'}\n minLength=\"3\" maxLength=\"40\" pattern=\"[A-Za-z0-9]+\" />\n \n \n Nombre de Usuario\n {this.state.errors.username && (\n {this.state.errors.username}\n )}\n \n \n \n \n\n \n \n {CurrentUserIsActive() ? (\n \n
\n
\n
\n
\n \n Volver\n \n \n \n \n
\n
\n
\n
\n \n ) : ('')}\n\n
\n\n
\n
\n
\n
\n
\n );\n }\n}\n\nUpdateUser.propTypes = {\n data: PropTypes.array.isRequired\n};\nUpdateUser.defaultProps = {\n data: [],\n};\n\nexport default withRouter(UpdateUser);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\nimport { getUsersAction } from './../actions';\nimport { getUserState } from './../selectors';\nimport UpdateUser from './../components';\n\n\nclass editUser extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: '',\n errors: '',\n modal: false,\n };\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n\n componentDidMount() {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n\n this.props.getUsersAction(token, loginData._id, this.props.match.params.userId).then(\n response => {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n ).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n\n\n render() {\n return (\n
\n
\n );\n }\n}\n\neditUser.propTypes = {\n getUsersAction: PropTypes.func.isRequired,\n data: PropTypes.array.isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n })\n })\n};\neditUser.defaultProps = {\n data: [],\n};\nconst mapStateToProps = (state, props) => ({\n data: getUserState(state, props),\n});\n\nexport default withRouter(connect(mapStateToProps, {\n getUsersAction,\n})(editUser));\n","import {\n URL_API,\n GET_USER,\n} from './../../../constants';\nimport {\n getUser,\n updateUserService,\n updatePasswordUsersService\n} from './../services';\nimport { createAction } from 'redux-actions';\n\nexport const getUsersAction = createAction(GET_USER,\n (token, idAdmin, idUser) => getUser(URL_API, token, idAdmin, idUser)());\n\nexport function updateUserAction(token, idAdmin, idUser, data) {\n return new Promise((resolve, reject) => {\n var response = updateUserService(URL_API, token, idAdmin, idUser, data);\n response ? resolve(response) : reject('error');\n });\n}\nexport function updatePasswordUsersAction(token, idUser, data) {\n return new Promise((resolve, reject) => {\n var response = updatePasswordUsersService(URL_API, token, idUser, data);\n response ? resolve(response) : reject('error');\n });\n}\n","export const getUser = (url, token, idAdmin, idUser) => () =>\n fetch(url + 'company/' + idAdmin + '/user/' + idUser, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.error);\n return datos;\n }).catch((error) => {\n return error;\n });\n\n\nexport function updateUserService(url, token, idAdmin, idUser, data) {\n const URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'company/' + idAdmin + '/user/' + idUser, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n },\n body: URLSearchParams\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n var datos = [];\n datos.push(responser);\n return datos;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n\nexport function updatePasswordUsersService(url, token, idUser, data) {\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var respuesta = fetch(`${url}auth/update/password/` + idUser, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n respuesta ? resolve(respuesta) : reject('error-');\n });\n}\n","export const getUserState = state => state.userState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport './../style.css';\nimport Container from 'react-bootstrap/Container';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport Row from 'react-bootstrap/Row';\nimport { updatePasswordUsersAction } from './../actions';\n//import ModalCustom from './../../../globalComponents/modal/modal';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass Showuserinf extends Component {\n constructor(props) {\n super(props);\n this.state = {\n changePass: false,\n newPass: '',\n errors: {},\n actualizado: false,\n modal: false,\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n textUpdate: 'Aceptar'\n };\n this.changePass = this.changePass.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n }\n changePass() {\n let textUp = '';\n if (this.state.changePass) {\n textUp = 'Aceptar';\n } else {\n textUp = 'Actualizar';\n }\n this.setState({\n changePass: !this.state.changePass,\n textUpdate: textUp\n });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n onCloseModal() {\n this.setState({ modal: true });\n }\n\n handleSubmit(event) {\n event.preventDefault();\n if (this.state.changePass) {\n let values = {\n newPass: this.state.newPass\n };\n\n this.validate(event, values);\n } else {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/list_users');\n }\n }\n validate(event, values) {\n let errors = {};\n if (this.state.changePass) {\n if (!values.newPass || values.newPass === '') {\n errors.newPass = 'Por favor, introduce una contraseña.';\n }\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors);\n }\n\n isSubmitting(event, errors) {\n event.preventDefault();\n\n if (Object.keys(errors).length === 0) {\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n\n //eslint-disable no-else-return\n if (this.state.changePass) {\n let newdata = {\n id: loginData._id,\n password: this.state.newPass,\n userId: this.props.match.params.userId\n };\n\n return updatePasswordUsersAction(token, loginData._id, newdata).then(\n response => {\n\n if (response.ok) {\n this.setState({\n actualizado: true,\n changePass: false,\n newPass: '',\n modalContent: 'El usuario se actualizo correctamente',\n modal: true,\n textUpdate: 'Aceptar'\n });\n this.notifySuccess();\n\n } else if (response.error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else {\n this.setState({\n modal: true,\n modalContent: 'Error al actualizar, intente mas tarde'\n });\n this.notifyError();\n\n }\n }\n );\n\n }\n this.setState({\n actualizado: true\n });\n }\n }\n\n notifySuccess = () => {\n toast.success(
{this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
{this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n render() {\n const { data } = this.props;\n\n let username = '';\n let password = '********';\n let role = '';\n if (data[0]) {\n if (data[0].username) {\n username = data[0].username;\n }\n if (data[0].role) {\n role = data[0].role;\n }\n }\n\n return (\n
\n
\n
\n
\n
\n

Usuarios / Ver Usuario

\n
\n
\n

Visualiza y/o edita los datos de este usaurio

\n
\n\n \n\n \n
\n
\n
\n
\n
\n
\n \n \n

Nombre de usuario: {username}

\n \n
\n \n \n

Contraseña: {!this.state.changePass ? ({password}) : ('')}         [Cambiar]

\n \n {\n this.state.changePass ? (\n this.setState({ newPass: event.target.value })} required\n className={' input-form custom-input ' + (this.state.errors.newPass && ('input-errorLine'))} />\n ) : ('')\n }\n \n \n
\n {\n this.state.changePass ? (\n \n

La contraseña debe tener minimo 8 caracteres, al menos un dígito y al menos una mayúscula, se aceptan caracteres especiales.

\n
) : ('')\n }\n \n \n

Rol: {role}

\n \n
\n\n \n \n {CurrentUserIsActive()?(\n \n
\n
\n
\n
\n \n Volver\n \n \n \n \n
\n
\n
\n
\n \n ):(\n \n
\n
\n
\n
\n \n Volver\n \n
\n
\n
\n
\n \n )}\n\n
\n\n
\n
\n
\n\n
\n
\n );\n }\n}\n\nShowuserinf.propTypes = {\n data: PropTypes.array.isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n })\n })\n};\nShowuserinf.defaultProps = {\n data: [],\n};\n\nexport default withRouter(Showuserinf);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\nimport { getUsersAction } from './../actions';\nimport { getUserState } from './../selectors';\nimport Showuserinf from './../components';\n\n\nclass SeeUser extends Component {\n constructor(props) {\n super(props);\n this.state = {\n username: '',\n errors: '',\n modal: false,\n };\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.getData = this.getData.bind(this);\n }\n\n componentDidMount() {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n\n this.props.getUsersAction(token, loginData._id, this.props.match.params.userId).then(\n response => {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n );\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n\n\n getData() {\n\n }\n\n render() {\n return (\n
\n
\n );\n }\n}\n\nSeeUser.propTypes = {\n getUsersAction: PropTypes.func.isRequired,\n data: PropTypes.array.isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n userId: PropTypes.string.isRequired,\n })\n })\n};\nSeeUser.defaultProps = {\n data: [],\n};\nconst mapStateToProps = (state, props) => ({\n data: getUserState(state, props),\n});\n\nexport default withRouter(connect(mapStateToProps, {\n getUsersAction,\n})(SeeUser));\n","export const listarUsersAdminService = (url, token) => () =>\n\n fetch(url + 'company', {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n }).then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status === 200){\n return response.json();\n } else if(status === 401){\n return res;\n }\n }).then(function (responser) {\n let data = [];\n if( !responser.ok ) {\n data.push(responser);\n return data;\n } else\n if( responser.ok ) {\n return responser.data;\n }\n }).catch((error) => {\n return error;\n });\n\n","import { listarUsersAdminService } from './../services/listarUsersAdminService';\nimport { URL_API } from './../../../constants';\nimport { LIST_USERS_ADMIN } from './../../../constants';\nimport { createAction } from 'redux-actions';\n\nexport const listarUsersAdminAction = createAction(LIST_USERS_ADMIN,\n (token) => listarUsersAdminService(URL_API, token)());\n","import { eliminarUserAdminService } from '../services/eliminarUserAdminService';\nimport { URL_API } from '../../../constants';\n\nexport function eliminarUserAdminAction(token, idEmpresa) {\n return new Promise((resolve, reject) => {\n var response = eliminarUserAdminService(URL_API, token, idEmpresa);\n response ? resolve(response) : reject('error');\n });\n}\n","/* eslint-disable no-else-return */\nexport function eliminarUserAdminService(url, token, idEmpresa) { //El id de la empresa es el id del usuario\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'company/'+idEmpresa, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, status: status};\n if(status === 401){\n return res;\n } else {\n return response.json();\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-responsive-modal';\n\nimport {eliminarUserAdminAction} from './../actions/eliminarUserAdminAction';\n\nclass ModalError extends Component {\n\n constructor(props) {\n super(props);\n\n this.eliminarUserAdmin = this.eliminarUserAdmin.bind(this);\n }\n\n eliminarUserAdmin(){\n const token = JSON.parse(localStorage.getItem('token'));\n\n return eliminarUserAdminAction(token, this.props.idAEliminar).then(r => {\n if (r.ok) {\n this.props.close();\n this.props.listarUsersAdminAction(token);\n } else\n if (!r.ok) {\n if(r.status) {\n if(r.status === 401)\n this.props.history.push('/admin/logout/true');\n }\n }\n });\n }\n\n render() {\n\n const modalStyle = {\n overlay: {\n backgroundColor: 'rgba(255, 255, 255, 0.4)'\n },\n modal: {\n backgroundColor: 'rgba(255, 255, 255, 1)',\n color: '#000000',\n boxShadow: '0 0 0 rgba(0, 0, 0, 0.25)',\n borderTop: '5px solid #950024',\n borderBottom: '5px solid #950024',\n textAlign: 'center'\n }\n };\n\n return (\n \n
\n
\n {'¿Seguro que desea eliminar al usuario '}
\n {'\"' + this.props.nameAEliminar +'\"'}{'?'}\n
\n {\n this.props.acceptText ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : ('')\n }\n
\n
\n );\n }\n}\n\nModalError.propTypes = {\n nameAEliminar: PropTypes.string.isRequired,\n idAEliminar: PropTypes.string.isRequired,\n open: PropTypes.bool.isRequired,\n close: PropTypes.any.isRequired,\n onclickClose: PropTypes.any.isRequired,\n acceptText: PropTypes.string,\n closeText: PropTypes.string,\n listarUsersAdminAction:PropTypes.func.isRequired,\n history: PropTypes.object,\n};\n\nexport default withRouter(ModalError);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport ModalError from './modalError';\n\nclass TablaUsersAdmin extends Component {\n\n constructor(props) {\n super(props);\n\n this.state={\n eliminado: false,\n idAEliminar: '',\n nameAEliminar: ''\n };\n\n this.eliminarUser = this.eliminarUser.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n this.editarUser = this.editarUser.bind(this);\n this.verUser = this.verUser.bind(this);\n }\n\n eliminarUser(id, name){\n this.setState({\n eliminado: true,\n idAEliminar: id,\n nameAEliminar: name\n });\n }\n\n onCloseModal(){\n this.setState({\n eliminado: false\n });\n }\n\n editarUser(username){\n this.props.history.push('/admin/usuarios/edit/'+username);\n }\n\n verUser(username){\n this.props.history.push('/admin/usuarios/see/'+username);\n }\n\n render() {\n let {demoData, search} = this.props;\n return (\n
\n
\n \n \n \n {\n demoData ? (\n demoData.thead.length > -1 ? (\n demoData.thead.map((th, index) =>\n \n )\n ) : ()\n ) : ('')\n }\n \n \n \n {\n demoData ? (\n demoData.tbody.length > -1 ? (\n demoData.tbody[0].sort((x, y)=>(x.active.active === y.active.active)? 0 : x.active.active? -1 : 1).map((tr, index) =>\n search ?\n (\n (tr.name.toLowerCase().includes(search.toLowerCase()) || tr.max_users.toLowerCase().includes(search.toLowerCase())) ?\n (\n tr.active.active ?\n (\n \n \n \n \n \n ):\n (\n \n \n \n \n \n )\n ):\n (\n \n )\n ) :\n (\n tr.active.active ?\n (\n \n \n \n \n \n ):\n (\n \n \n \n \n \n )\n )\n )\n ) : (no existen datos)\n ) : ('')\n }\n \n
{th}no data
{tr.max_users}{tr.name}\n \"iconVer\"\n \"iconVer\"\n \"iconVer\"\n
{tr.max_users}{tr.name}\n \"iconVer\"/\n \"iconVer\"/\n \"iconVer\"/\n
{tr.max_users}{tr.name}\n \"iconVer\"\n \"iconVer\"\n \"iconVer\"\n
{tr.max_users}{tr.name}\n \"iconVer\"/\n \"iconVer\"/\n \"iconVer\"/\n
\n
\n\n \n\n
\n );\n }\n}\n\nTablaUsersAdmin.propTypes = {\n history: PropTypes.object,\n demoData: PropTypes.object.isRequired,\n listarUsersAdminAction: PropTypes.func.isRequired,\n search: PropTypes.string\n};\n\nexport default withRouter(TablaUsersAdmin);\n","export const listUsersAdmin = state => state.usersAdminState;\nexport const getUserAdmin = state => state.usersAdminState;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\n\nimport {listarUsersAdminAction} from '../actions/listarUsersAdminAction';\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport TablaUsersAdmin from '../components/tablaUsersAdmin';\nimport {listUsersAdmin} from './../selectors';\n\n\nimport './usersAdmin.css';\n\nclass ListarUsersAdminContainer extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n search: ''\n };\n\n this.nuevoUser = this.nuevoUser.bind(this);\n\n }\n\n componentDidMount() {\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.listarUsersAdminAction(token).then(\n response => {\n if (response.payload[0].error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n nuevoUser() {\n this.props.history.push('usuarios/nuevo');\n }\n\n render() {\n let usersAdminList = [];\n\n if(this.props.usersAdminList.length > 0){\n if(this.props.usersAdminList[0].error === 401) {\n this.props.history.push('/admin/logout/true');\n } else {\n usersAdminList = this.props.usersAdminList;\n }\n }\n\n var demoData = {\n thead: [\n 'Usuarios maximos', 'Nombre', 'Acciones'\n ],\n tbody: [\n usersAdminList\n ]\n };\n\n return (\n
\n
\n );\n }\n}\n\nListarUsersAdminContainer.propTypes = {\n history: PropTypes.object,\n usersAdminList: PropTypes.array.isRequired,\n listarUsersAdminAction: PropTypes.func.isRequired,\n};\n\n\nListarUsersAdminContainer.defaultProps = {\n usersAdminList: []\n};\n\nconst mapStateToProps = state => ({\n usersAdminList: listUsersAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { listarUsersAdminAction })(ListarUsersAdminContainer));\n","import { agregarNuevoUserAdminService, buscarEmpresaPorUsernameService } from './../services/agregarNuevoUserAdminService';\nimport { URL_API } from './../../../constants';\n\nexport function agregarNuevoUserAdminAction(data, token) {\n return new Promise((resolve, reject) => {\n var response = agregarNuevoUserAdminService(URL_API, data, token);\n response ? resolve(response) : reject('error');\n });\n}\n\nexport function buscarEmpresaPorUsernameAction(data) {\n return new Promise((resolve, reject) => {\n var response = buscarEmpresaPorUsernameService(URL_API, data);\n response ? resolve(response) : reject('error');\n });\n}\n","/* eslint-disable no-else-return */\nexport function agregarNuevoUserAdminService(url, data, token) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'auth/register/admin', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n }).then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, status: status};\n if(status === 401){\n return res;\n } else {\n return response.json();\n }\n }).then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n\nexport function buscarEmpresaPorUsernameService(url, data) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'company/company', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n },\n body: URLSearchParams\n })\n .then(function (response) {\n return response.json();\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport {agregarNuevoUserAdminAction, buscarEmpresaPorUsernameAction} from './../actions/agregarNuevoUserAdminAction';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport 'react-toastify/dist/ReactToastify.css';\nclass FormAddUsersAdmin extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n email: '',\n password: '',\n username: '',\n name: '',\n maxUsers: '',\n errors: {},\n errorSubmit: '',\n agregando: false,\n visibleHelp: false\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.volver = this.volver.bind(this);\n\n }\n\n handleSubmit(event){\n event.preventDefault();\n\n let values = {\n email: this.state.email,\n password: this.state.password,\n username: this.state.username,\n name: this.state.name,\n maxUsers: this.state.maxUsers,\n };\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.email || values.email==='') {\n errors.email = 'Por favor, introduce tu correo.';\n } else if (!/\\S+@\\S+\\.\\S+/.test(values.email)) {\n errors.email = 'Lo sentimos, correo inválido.';\n }\n\n if (!values.password || values.password==='' ) {\n errors.password = 'Por favor, introduce tu contraseña.';\n } else if (!/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/.test(values.password)) {\n errors.password = 'Por favor, introduce por lo menos 8 caracteres, con al menos una mayúscula, una minúscula y un número.';\n }\n\n if (!values.username || values.username==='' ) {\n errors.username = 'Por favor, introduce el nombre de usuario que tendrá la empresa.';\n }\n\n if (!values.name || values.name==='' ) {\n errors.name = 'Por favor, introduce el nombre de la empresa.';\n }\n\n if (!values.maxUsers || values.maxUsers==='' ) {\n errors.maxUsers = 'Por favor, introduce la cantidad máxima de usuarios.';\n } else if (values.maxUsers < 1) {\n errors.maxUsers = 'Por favor, introduce numeros mayores que 0.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n\n this.setState({\n agregando: true\n });\n\n if (Object.keys(errors).length === 0 ) {\n const token = JSON.parse(localStorage.getItem('token'));\n const username = {\n username: values.username\n };\n return buscarEmpresaPorUsernameAction(username).then(response => {\n if(response.data.length === 0) {\n return agregarNuevoUserAdminAction(values, token).then(r => {\n if(r.status) {\n if(r.status === 401)\n this.props.history.push('/admin/logout/true');\n } else if(r.code === 500) {\n if(r.message.includes('company validation failed: email: Error')){\n this.setState({\n errors: {\n email: 'El correo ya existe, por favor introduce otro.'\n },\n agregando: false\n });\n }\n } else\n if (r._id) {\n toast.success(
{'Usuario agregado correctamente.'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n this.setState({\n email: '',\n password: '',\n username: '',\n name: '',\n maxUsers: '',\n errorSubmit: '',\n agregando: false\n });\n } else\n if (!r.ok) {\n this.setState({\n errorSubmit: r.error.message,\n agregando: false\n });\n }\n });\n } else\n if (response.data[0] !== undefined) {\n this.setState({\n errors: {\n username: 'El nickname de la empresa ya existe, por favor agrega otro.'\n },\n agregando: false\n });\n }\n });\n }\n\n }\n\n volver(){\n this.props.history.push('/admin/usuarios');\n }\n\n render() {\n\n return (\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ email: event.target.value })}\n className={this.state.errors.email && ('input-errorLine')}/>\n \n \n \n {this.state.errors.email && (\n {this.state.errors.email}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ name: event.target.value })}\n className={this.state.errors.name && ('input-errorLine')}/>\n \n \n \n {this.state.errors.name && (\n {this.state.errors.name}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ username: event.target.value })}\n className={this.state.errors.username && ('input-errorLine')}/>\n \n \n \n {this.state.errors.username && (\n {this.state.errors.username}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ maxUsers: event.target.value })}\n className={this.state.errors.maxUsers && ('input-errorLine')}/>\n \n \n \n {this.state.errors.maxUsers && (\n {this.state.errors.maxUsers}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ password: event.target.value })}\n className={this.state.errors.password && ('input-errorLine')}/>\n \n \n \n {this.state.errors.password && (\n {this.state.errors.password}\n )}\n
\n
\n
\n
\n
\n\n
\n
\n
\n \n {\n this.state.agregando ?\n (\n \n ) :\n (\n \n )\n }\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n\nFormAddUsersAdmin.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(FormAddUsersAdmin);\n","import React, { Component } from 'react';\nimport { Link } from 'react-router-dom';\n//import PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport FormAddUsersAdmin from './../components/formAddUsersAdmin';\n\nclass AgregarUserAdminContainer extends Component {\n render() {\n return (\n
\n
\n );\n }\n}\n\nAgregarUserAdminContainer.propTypes = {\n\n};\n\nexport default AgregarUserAdminContainer;\n","import { actualizarUserAdminService } from '../services/actualizarUserAdminService';\nimport { URL_API } from './../../../constants';\n\nexport function actualizarUserAdminAction(data, id, token) {\n return new Promise((resolve, reject) => {\n var response = actualizarUserAdminService(URL_API, data, id, token);\n response ? resolve(response) : reject('error');\n });\n}\n","/* eslint-disable no-else-return */\nexport function actualizarUserAdminService(url, data, id, token) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'company/'+id, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, status: status};\n if(status === 401){\n return res;\n } else {\n return response.json();\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport { actualizarUserAdminAction } from './../actions/actualizarUserAdminAction';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport 'react-toastify/dist/ReactToastify.css';\n\nclass FormEditUsersAdmin extends Component {\n\n constructor(props){\n\n super(props);\n\n this.state = {\n idEmpresa: props.userAdmin._id,\n email: props.userAdmin.email,\n username: props.userAdmin.username,\n name: props.userAdmin.name,\n maxUsers: props.userAdmin.max_users,\n errors: {},\n errorSubmit: {},\n actualizando: false\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.volver = this.volver.bind(this);\n\n }\n\n handleSubmit(event){\n event.preventDefault();\n\n let values = {\n email: this.state.email,\n username: this.state.username,\n name: this.state.name,\n max_users: this.state.maxUsers,\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.email || values.email==='') {\n errors.email = 'Por favor, introduce tu correo.';\n } else if (!/\\S+@\\S+\\.\\S+/.test(values.email)) {\n errors.email = 'Lo sentimos, correo inválido.';\n }\n\n if (!values.username || values.username==='' ) {\n errors.username = 'Por favor, introduce el nombre de usuario que tendrá la empresa.';\n }\n\n if (!values.name || values.name==='' ) {\n errors.name = 'Por favor, introduce el nombre de la empresa.';\n }\n\n if (!values.max_users || values.max_users==='' ) {\n errors.max_users = 'Por favor, introduce la cantidad máxima de usuarios.';\n } else if (values.max_users < 1) {\n errors.max_users = 'Por favor, introduce numeros mayores que 0.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n this.setState({\n actualizando: true\n });\n\n if (Object.keys(errors).length === 0 ) {\n const token = JSON.parse(localStorage.getItem('token'));\n return actualizarUserAdminAction(values, this.state.idEmpresa, token).then(r => {\n if(r.ok){\n if(r.data.ok){\n toast.success(
{'Usuario actualizado correctamente'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n this.setState({\n actualizando: false\n });\n } else\n if( ! r.data.ok){\n if(Object.keys(r.data).length === 1) {\n if( r.data.message ) {\n this.setState({\n actualizando: false,\n errors: {\n email: 'Este correo ya existe para otro usuario.'\n }\n });\n }\n if( r.data.message.errors.username ) {\n this.setState({\n actualizando: false,\n errors: {\n username: 'Este nickname ya existe para otro usuario.'\n }\n });\n }\n } else {\n this.setState({\n actualizando: false\n });\n }\n }\n } else if(r.status) {\n if(r.status === 401)\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n }\n\n volver(){\n this.props.history.push('/admin/usuarios');\n }\n\n render() {\n return (\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ email: event.target.value })}\n className={this.state.errors.email && ('input-errorLine')}/>\n \n \n \n {this.state.errors.email && (\n {this.state.errors.email}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ name: event.target.value })}\n className={this.state.errors.name && ('input-errorLine')}/>\n \n \n \n {this.state.errors.name && (\n {this.state.errors.name}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ username: event.target.value })}\n className={this.state.errors.username && ('input-errorLine')}/>\n \n \n \n {this.state.errors.username && (\n {this.state.errors.username}\n )}\n
\n
\n
\n
\n
\n
\n this.setState({ maxUsers: event.target.value })}\n className={this.state.errors.max_users && ('input-errorLine')}/>\n \n \n \n {this.state.errors.max_users && (\n {this.state.errors.max_users}\n )}\n
\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n
\n
\n
\n\n
\n
\n
\n \n {\n this.state.actualizando ?\n (\n \n ) :\n (\n \n )\n }\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n\nFormEditUsersAdmin.propTypes = {\n userAdmin: PropTypes.object.isRequired,\n history: PropTypes.object,\n};\n\nexport default withRouter(FormEditUsersAdmin);\n","export const getUserAdminService = (url, data) => () => {\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return fetch(url + 'company/company', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n },\n body: URLSearchParams\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.data) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.data);\n return datos;\n }).catch((error) => {\n return error;\n });\n};\n\n\n\n","import { getUserAdminService } from './../services/getUserAdminService';\nimport { URL_API } from './../../../constants';\nimport { GET_USER_ADMIN } from './../../../constants';\nimport { createAction } from 'redux-actions';\n\nexport const getUserAdminAction = createAction(GET_USER_ADMIN,\n (data) => getUserAdminService(URL_API, data)());\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport FormEditUsersAdmin from './../components/formEditUsersAdmin';\nimport { getUserAdminAction } from './../actions/getUserAdminAction';\nimport {getUserAdmin} from './../selectors';\n\nclass EditarUserAdminContainer extends Component {\n\n componentDidMount() {\n const data = {\n username: this.props.match.params.userName\n };\n this.props.getUserAdminAction(data);\n }\n\n render() {\n\n const userName = this.props.match.params.userName;\n const userAdmin = this.props.userAdmin;\n\n return (\n
\n
\n );\n }\n}\n\nEditarUserAdminContainer.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n userName: PropTypes.string.isRequired,\n })\n }),\n userAdmin: PropTypes.array.isRequired,\n getUserAdminAction: PropTypes.func.isRequired,\n};\n\nEditarUserAdminContainer.defaultProps = {\n userAdmin: []\n};\n\nconst mapStateToProps = state => ({\n userAdmin: getUserAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { getUserAdminAction })(EditarUserAdminContainer));\n","import { actualizarAdminPassService } from '../services/actualizarAdminPassService';\nimport { URL_API } from './../../../constants';\n\nexport function actualizarAdminPassAction(data, token) {\n return new Promise((resolve, reject) => {\n var response = actualizarAdminPassService(URL_API, data, token);\n response ? resolve(response) : reject('error');\n });\n}\n","export function actualizarAdminPassService(url, data, token) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'auth/update/admin/password/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, status: status};\n if(status === 401){\n return res;\n // eslint-disable-next-line no-else-return\n } else {\n return response.json();\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\n\nimport {actualizarAdminPassAction} from './../actions/actualizarAdminPassAction';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport 'react-toastify/dist/ReactToastify.css';\nclass VisualizarUserAdmin extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n id: props.userAdmin._id,\n password: '',\n errors: {},\n errorSubmit: '',\n cambiar: false,\n actualizando: false\n };\n\n this.changePass = this.changePass.bind(this);\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.volver = this.volver.bind(this);\n }\n\n changePass() {\n this.setState({\n cambiar: true\n });\n }\n\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n id: this.state.id,\n password: this.state.password\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n\n if (!values.password || values.password==='' ) {\n errors.password = 'Por favor, introduce tu contraseña.';\n } else if (!/^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{8,}$/.test(values.password)) {\n errors.password = 'Por favor, introduce por lo menos 8 caracteres, con al menos una mayúscula, una minúscula y un número.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n this.setState({\n actualizando: true\n });\n if (Object.keys(errors).length === 0 ) {\n const token = JSON.parse(localStorage.getItem('token'));\n\n return actualizarAdminPassAction(values, token).then(r => {\n if(r.status) {\n if(r.status === 401)\n this.props.history.push('/admin/logout/true');\n } else if (r.ok) {\n toast.success(
{'Contraseña actualizada correctamente'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n this.setState({\n password: '',\n errors: {},\n errorSubmit: '',\n actualizando: false,\n cambiar: false\n });\n } else if (!r.ok) {\n this.setState({\n errorSubmit: r.error.message,\n actualizando: false,\n cambiar: false\n });\n }\n });\n }\n\n }\n\n volver(){\n this.props.history.push('/admin/usuarios');\n }\n\n render() {\n //let idEmpresa = this.props.userAdmin._id;\n let { username, email, name, max_users } = this.props.userAdmin;\n\n return (\n
\n
\n
\n
\n\n
\n
\n Empresa: \n { name || '' } \n
\n
\n\n
\n
\n Admin: \n { username || '' } \n
\n
\n Correo electrónico: \n { email || '' } \n
\n
\n\n
\n {\n this.state.cambiar ?\n (\n
\n
\n
\n
\n
\n this.setState({ password: event.target.value })}\n className={this.state.errors.password && ('input-errorLine')}/>\n \n \n \n {this.state.errors.password && (\n {this.state.errors.password}\n )}\n
\n
\n
\n
\n
\n ) :\n (\n
\n Contraseña: \n {'••••••••••'} \n {' [Cambiar]'} \n
\n )\n }\n
\n\n
\n
\n Usuarios maximos: \n { max_users || '' } \n
\n
\n\n
\n\n
\n
\n
\n \n {\n this.state.cambiar ?\n (\n this.state.actualizando ?\n (\n \n ) :\n (\n \n )\n ) :\n (\n \n )\n }\n
\n
\n
\n
\n \n
\n
\n );\n }\n}\n\nVisualizarUserAdmin.propTypes = {\n history: PropTypes.object,\n userAdmin: PropTypes.object.isRequired,\n};\n\nexport default withRouter(VisualizarUserAdmin);\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport { getUserAdminAction } from './../actions/getUserAdminAction';\nimport {getUserAdmin} from './../selectors';\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport VisualizarUserAdmin from './../components/visualizarUserAdmin';\n\nclass VerUserAdminContainer extends Component {\n\n componentDidMount() {\n const data = {\n username: this.props.match.params.userName\n };\n this.props.getUserAdminAction(data);\n }\n\n render() {\n\n const userName = this.props.match.params.userName;\n const userAdmin = this.props.userAdmin;\n\n return (\n
\n
\n );\n }\n}\n\nVerUserAdminContainer.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n userName: PropTypes.string.isRequired,\n })\n }),\n userAdmin: PropTypes.array.isRequired,\n getUserAdminAction: PropTypes.func.isRequired,\n};\n\nVerUserAdminContainer.defaultProps = {\n userAdmin: []\n};\n\nconst mapStateToProps = state => ({\n userAdmin: getUserAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { getUserAdminAction })(VerUserAdminContainer));\n","import { consultarPlanesAdminService, clearPlanesAdminService } from './../services/consultarPlanesAdminService';\nimport { URL_API, LIST_PLANES_ADMIN, GET_PLAN_ADMIN } from './../../../constants';\nimport { createAction } from 'redux-actions';\n\nexport const consultarPlanesAdminAction = createAction(LIST_PLANES_ADMIN,\n (idEmpresa, token) => consultarPlanesAdminService(URL_API, idEmpresa, token)());\n\nexport const clearPlanesAdminAction = createAction(GET_PLAN_ADMIN,\n () => clearPlanesAdminService());\n","export const consultarPlanesAdminService = (url, idEmpresa, token) => () =>\n\n fetch(url + 'plans/company/' + idEmpresa, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n }).then(function (response) {\n let status = response.status;\n let res = { ok: response.ok, error: status };\n if (status === 200) {\n return response.json();\n } else if (status === 401) {\n return res;\n }\n }).then(function (responser) {\n let data = [];\n if (!responser.ok) {\n data.push(responser);\n return data;\n } else\n if (responser.ok) {\n return responser.data;\n }\n }).catch((error) => {\n return error;\n });\n\nexport function clearPlanesAdminService() {\n return [];\n}\n","export const consultPlanesAdmin = state => state.planesAdminState;\nexport const getPlanAdmin = state => state.planAdminState;\n","import { eliminarPlanAdminService } from '../services/eliminarPlanAdminService';\nimport { URL_API } from '../../../constants';\n\nexport function eliminarPlanAdminAction(token, idPlan) {\n return new Promise((resolve, reject) => {\n var response = eliminarPlanAdminService(URL_API, token, idPlan);\n response ? resolve(response) : reject('error');\n });\n}\n","export function eliminarPlanAdminService(url, token, idPlan) { //El id de la empresa es el id del usuario\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'plans/'+idPlan, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status !== 401){\n return response.json();\n } else if(status === 401){\n return res;\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-responsive-modal';\n\nimport { eliminarPlanAdminAction } from './../actions/eliminarPlanAdminAction';\n\nclass ModalError extends Component {\n\n constructor(props) {\n super(props);\n\n this.eliminarUserAdmin = this.eliminarUserAdmin.bind(this);\n }\n\n eliminarUserAdmin(){\n const token = JSON.parse(localStorage.getItem('token'));\n\n return eliminarPlanAdminAction(token, this.props.idAEliminar).then(r => {\n if (r.ok) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const idEmpresa = loginData._id;\n this.props.close();\n this.props.consultarPlanesAdminAction(idEmpresa, token);\n } else\n if (!r.ok) {\n if(r.error){\n if(r.error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n }\n }\n });\n }\n\n render() {\n\n const modalStyle = {\n overlay: {\n backgroundColor: 'rgba(255, 255, 255, 0.4)'\n },\n modal: {\n backgroundColor: 'rgba(255, 255, 255, 1)',\n color: '#000000',\n boxShadow: '0 0 0 rgba(0, 0, 0, 0.25)',\n borderTop: '5px solid #950024',\n borderBottom: '5px solid #950024',\n textAlign: 'center'\n }\n };\n\n return (\n \n
\n
\n {'¿Seguro que desea eliminar el plan '}
\n {'\"' + this.props.nameAEliminar +'\"'}{'?'}\n
\n {\n this.props.acceptText ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : ('')\n }\n
\n
\n );\n }\n}\n\nModalError.propTypes = {\n nameAEliminar: PropTypes.string.isRequired,\n idAEliminar: PropTypes.string.isRequired,\n open: PropTypes.bool.isRequired,\n close: PropTypes.any.isRequired,\n onclickClose: PropTypes.any.isRequired,\n acceptText: PropTypes.string,\n closeText: PropTypes.string,\n consultarPlanesAdminAction:PropTypes.func.isRequired,\n history: PropTypes.object,\n active: PropTypes.bool.isRequired,\n};\n\nexport default withRouter(ModalError);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport ModalError from './modalError';\n\nclass TablaPlanesAdmin extends Component {\n\n constructor(props) {\n super(props);\n\n this.state={\n eliminado: false,\n idAEliminar: '',\n nameAEliminar: ''\n };\n\n this.verPlan = this.verPlan.bind(this);\n this.editarPlan = this.editarPlan.bind(this);\n this.eliminarPlan = this.eliminarPlan.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n }\n\n verPlan(idPlan) {\n this.props.history.push('/admin/planes/see/'+idPlan);\n }\n\n editarPlan(idPlan){\n this.props.history.push('/admin/planes/edit/'+idPlan);\n }\n\n eliminarPlan(idPlan, name){\n this.setState({\n eliminado: true,\n idAEliminar: idPlan,\n nameAEliminar: name\n });\n }\n\n onCloseModal(){\n this.setState({\n eliminado: false\n });\n }\n\n\n render() {\n let {demoData, search, active} = this.props;\n\n return (\n
\n \n \n \n {\n demoData ? (\n demoData.thead.length > -1 ? (\n demoData.thead.map((th, index) =>\n \n )\n ) : ()\n ) : ('')\n }\n \n \n \n {\n demoData ? (\n demoData.tbody.length > -1 ? (\n demoData.tbody[0].map((tr, index) => //console.log(tr)\n search ?\n (\n (tr.name.toLowerCase().includes(search.toLowerCase()) || tr.percent.toLowerCase().includes(search.toLowerCase())) ?\n (\n \n \n \n {\n active ?\n (\n \n ) :\n (\n \n )\n }\n \n ):\n (\n \n )\n ) :\n (\n \n \n \n {\n active ?\n (\n \n ) :\n (\n \n )\n }\n \n )\n )\n ) : (no existen datos)\n ) : ('')\n }\n \n
{th}no data
{tr.name}{tr.percent}\n \"iconVer\"\n \"iconVer\"\n \"iconVer\"\n \n \"iconVer\"/\n \"iconVer\"/\n \"iconVer\"/\n
{tr.name}{tr.percent}\n \"iconVer\"\n \"iconVer\"\n \"iconVer\"\n \n \"iconVer\"/\n \"iconVer\"/\n \"iconVer\"/\n
\n \n
\n );\n }\n}\n\nTablaPlanesAdmin.propTypes = {\n history: PropTypes.object,\n demoData: PropTypes.object.isRequired,\n consultarPlanesAdminAction: PropTypes.func.isRequired,\n search: PropTypes.string,\n active: PropTypes.bool.isRequired,\n};\n\nexport default withRouter(TablaPlanesAdmin);\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport { consultarPlanesAdminAction, clearPlanesAdminAction} from './../actions/consultarPlanesAdminAction';\nimport { consultPlanesAdmin } from './../selectors';\nimport TablaPlanesAdmin from './../components/tablaPlanesAdmin';\n\nclass ListarPlanesAdminContainer extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n search: ''\n };\n\n this.agregarPlan = this.agregarPlan.bind(this);\n }\n\n componentDidMount() {\n this.props.clearPlanesAdminAction();\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const idEmpresa = loginData._id;\n this.props.consultarPlanesAdminAction(idEmpresa, token).then(\n response => {\n if (response.payload.length > 0)\n if (response.payload[0].error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n agregarPlan() {\n this.props.history.push('/admin/planes/nuevo');\n }\n\n render() {\n let planesAdminList = [];\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n let active = loginData.active.active;\n\n if (this.props.planesAdminList.length > 0) {\n planesAdminList = this.props.planesAdminList;\n }\n var demoData = {\n thead: [\n 'Nombre', '%', 'Acciones'\n ],\n tbody: [\n planesAdminList\n ]\n };\n //console.log(this.props.planesAdminList);\n return (\n
\n
\n );\n }\n}\n\nListarPlanesAdminContainer.propTypes = {\n history: PropTypes.object,\n planesAdminList: PropTypes.array.isRequired,\n consultarPlanesAdminAction: PropTypes.func.isRequired,\n clearPlanesAdminAction: PropTypes.func.isRequired,\n};\n\nListarPlanesAdminContainer.defaultProps = {\n planesAdminList: []\n};\n\nconst mapStateToProps = state => ({\n planesAdminList: consultPlanesAdmin(state)\n});\nexport default withRouter(connect(mapStateToProps, { consultarPlanesAdminAction,clearPlanesAdminAction })(ListarPlanesAdminContainer));\n","import { agregarPlanAdminService } from './../services/agregarPlanAdminService';\nimport { URL_API } from './../../../constants';\n\nexport function agregarPlanAdminAction(data, token) {\n return new Promise((resolve, reject) => {\n var response = agregarPlanAdminService(URL_API, data, token);\n response ? resolve(response) : reject('error');\n });\n}\n","export function agregarPlanAdminService(url, data, token) {\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'plans/', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: data\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status === 200){\n return response.json();\n } else if(status === 401){\n return res;\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport { agregarPlanAdminAction } from './../actions/agregarPlanAdminAction';\n\nimport 'react-toastify/dist/ReactToastify.css';\n\nclass FormNewPlanAdmin extends Component {\n\n constructor(props){\n super(props);\n\n this.state = {\n name: '',\n percent: '',\n errors: {},\n errorSubmit: '',\n agregando: false,\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.volver = this.volver.bind(this);\n }\n\n handleSubmit(event) {\n event.preventDefault();\n\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n\n let values = {\n name: this.state.name,\n percent: this.state.percent,\n id_company: loginData._id\n };\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n\n if (!values.percent || values.percent==='' ) {\n errors.percent = 'Por favor, introduce el porcentaje.';\n } else if (values.percent > 100 || values.percent < 0) {\n errors.percent = 'Por favor, introduce un porcentaje válido.';\n }\n\n if (!values.name || values.name==='' ) {\n errors.name = 'Por favor, introduce el nombre del plan.';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values){\n event.preventDefault();\n this.setState({\n agregando: true\n });\n if (Object.keys(errors).length === 0 ) {\n const token = JSON.parse(localStorage.getItem('token'));\n const data = (JSON.stringify(values));\n\n return agregarPlanAdminAction(data, token).then(r => {\n if (r.ok) {\n\n toast.success(
{'Plan agregado correctamente.'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n\n this.setState({\n name: '',\n percent: '',\n errors: {},\n errorSubmit: '',\n agregando: false\n });\n } else\n if (!r.ok) {\n if(r.error){\n if(r.error === 401){\n this.props.history.push('/admin/logout/true');\n }\n } else if(r.error.message) {\n this.setState({\n errorSubmit: r.error.message,\n agregando: false\n });\n }\n }\n });\n }\n\n }\n\n volver(){\n this.props.history.push('/admin/planes/');\n }\n\n render() {\n return (\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ name: event.target.value })}\n className={this.state.errors.name && ('input-errorLine')}/>\n \n \n \n {this.state.errors.name && (\n {this.state.errors.name}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ percent: event.target.value })}\n className={this.state.errors.percent && ('input-errorLine')}/>\n \n \n \n {this.state.errors.percent && (\n {this.state.errors.percent}\n )}\n
\n
\n
\n
\n
\n
\n
\n
\n
\n \n {\n this.state.agregando ?\n (\n \n ):\n (\n \n )\n }\n
\n
\n
\n \n
\n
\n );\n }\n}\n\nFormNewPlanAdmin.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(FormNewPlanAdmin);\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport FormNewPlanAdmin from './../components/formNewPlanAdmin';\n\nimport './planesAdmin.css';\n\nclass AgregaPlanAdminContainer extends Component {\n render() {\n return (\n
\n
\n );\n }\n}\n\nAgregaPlanAdminContainer.propTypes = {\n history: PropTypes.object,\n};\n\nexport default withRouter(AgregaPlanAdminContainer);\n","import { actualizarPlanAdminService } from '../services/actualizarPlanAdminService';\nimport { URL_API } from './../../../constants';\n\nexport function actualizarPlanAdminAction(data, idPlan, token) {\n return new Promise((resolve, reject) => {\n var response = actualizarPlanAdminService(URL_API, data, idPlan, token);\n response ? resolve(response) : reject('error');\n });\n}\n","export function actualizarPlanAdminService(url, data, idPlan, token) {\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'plans/'+idPlan, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/json',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: data\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status !== 401){\n return response.json();\n } else if(status === 401){\n return res;\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport { connect } from 'react-redux';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport FormGroup from '@material-ui/core/FormGroup';\nimport FormControlLabel from '@material-ui/core/FormControlLabel';\nimport Checkbox from '@material-ui/core/Checkbox';\nimport { ToastContainer, toast } from 'react-toastify';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { IoIosCheckmarkCircle } from 'react-icons/io';\n\nimport { consultarPlanesAdminAction } from './../actions/consultarPlanesAdminAction';\nimport { actualizarPlanAdminAction } from './../actions/actualizarPlanAdminAction';\nimport { consultPlanesAdmin } from './../selectors';\n\nimport 'react-toastify/dist/ReactToastify.css';\nimport equal from 'fast-deep-equal';\n\nclass FormActualizarPlanAdmin extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n idPlan: props.planAdmin._id,\n name: props.planAdmin.name,\n percent: props.planAdmin.percent,\n actualizarPlanAuto: props.planAdmin.auto_update.active || props.planAdmin.auto_degrade.active,\n visitasH: props.planAdmin.auto_update.conditions.visits.active || props.planAdmin.auto_degrade.conditions.visits.active,\n puntosH: props.planAdmin.auto_update.conditions.points.active || props.planAdmin.auto_degrade.conditions.points.active,\n comprasH: props.planAdmin.auto_update.conditions.purchase_amount.active || props.planAdmin.auto_degrade.conditions.purchase_amount.active,\n cantidadHV: props.planAdmin.auto_update.conditions.visits.required_amount,\n cantidadHP: props.planAdmin.auto_update.conditions.points.required_amount,\n cantidadHC: props.planAdmin.auto_update.conditions.purchase_amount.required_amount,\n cantidadBV: props.planAdmin.auto_degrade.conditions.visits.required_amount,\n cantidadBP: props.planAdmin.auto_degrade.conditions.points.required_amount,\n cantidadBC: props.planAdmin.auto_degrade.conditions.purchase_amount.required_amount,\n rangoDiasH: props.planAdmin.auto_update.days,\n rangoDiasB: props.planAdmin.auto_degrade.days,\n idPlanH: props.planAdmin.auto_update.id_plan_update,\n idPlanB: props.planAdmin.auto_degrade.id_plan_degrade || props.planAdmin._id,\n errors: {},\n errorSubmit: '',\n actualizando: false,\n disableMax: false,\n disableMin: false,\n disableStatusVisit: true,\n disableStatusPoint: true,\n disableStatusBuy: true,\n disableStatus: true\n\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.volver = this.volver.bind(this);\n }\n\n componentDidMount() {\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const idEmpresa = loginData._id;\n this.props.consultarPlanesAdminAction(idEmpresa, token).then(\n response => {\n let minValue = 0;\n let maxValue = 0;\n let percents = [];\n for (let i = 0; i < response.payload.length; i++) {\n if (i < response.payload.length) {\n percents.push(parseFloat(response.payload[i].percent));\n }\n }\n minValue = Math.min(...percents);\n maxValue = Math.max(...percents);\n\n if (parseFloat(this.props.planAdmin.percent) === minValue) {\n this.setState({ disableMin: true });\n }\n if (parseFloat(this.props.planAdmin.percent) === maxValue) {\n this.setState({ disableMax: true });\n }\n }\n );\n\n }\n\n handleSubmit(event) {\n event.preventDefault();\n\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n\n let values = {};\n\n if (this.state.disableMin && this.state.disableMax) {\n values = {\n _id: this.state.idPlan,\n name: this.state.name,\n percent: this.state.percent,\n id_company: loginData._id\n };\n } else if (this.state.disableMin && !this.state.disableMax) {\n values = {\n _id: this.state.idPlan,\n name: this.state.name,\n percent: this.state.percent,\n id_company: loginData._id,\n auto_update: {\n active: this.state.actualizarPlanAuto,\n days: this.state.rangoDiasH,\n id_plan_update: this.state.idPlanH,\n conditions: {\n points: {\n active: this.state.puntosH,\n required_amount: this.state.cantidadHP\n },\n purchase_amount: {\n active: this.state.comprasH,\n required_amount: this.state.cantidadHC\n },\n visits: {\n active: this.state.visitasH,\n required_amount: this.state.cantidadHV\n }\n }\n }\n };\n } else if (!this.state.disableMin && this.state.disableMax) {\n values = {\n _id: this.state.idPlan,\n name: this.state.name,\n percent: this.state.percent,\n id_company: loginData._id,\n auto_degrade: {\n active: this.state.actualizarPlanAuto,\n days: this.state.rangoDiasB,\n id_plan_degrade: this.state.idPlanB,\n conditions: {\n points: {\n active: this.state.puntosH,\n required_amount: this.state.cantidadBP\n },\n purchase_amount: {\n active: this.state.comprasH,\n required_amount: this.state.cantidadBC\n },\n visits: {\n active: this.state.visitasH,\n required_amount: this.state.cantidadBV\n }\n }\n }\n };\n } else {\n values = {\n _id: this.state.idPlan,\n name: this.state.name,\n percent: this.state.percent,\n id_company: loginData._id,\n auto_update: {\n active: this.state.actualizarPlanAuto,\n days: this.state.rangoDiasH,\n id_plan_update: this.state.idPlanH,\n conditions: {\n points: {\n active: this.state.puntosH,\n required_amount: this.state.cantidadHP\n },\n purchase_amount: {\n active: this.state.comprasH,\n required_amount: this.state.cantidadHC\n },\n visits: {\n active: this.state.visitasH,\n required_amount: this.state.cantidadHV\n }\n }\n },\n auto_degrade: {\n active: this.state.actualizarPlanAuto,\n days: this.state.rangoDiasB,\n id_plan_degrade: this.state.idPlanB,\n conditions: {\n points: {\n active: this.state.puntosH,\n required_amount: this.state.cantidadBP\n },\n purchase_amount: {\n active: this.state.comprasH,\n required_amount: this.state.cantidadBC\n },\n visits: {\n active: this.state.visitasH,\n required_amount: this.state.cantidadBV\n }\n }\n }\n };\n }\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n\n let errors = {};\n if (!values.percent || values.percent === '') {\n errors.percent = 'Por favor, introduce el porcentaje.';\n } else if (values.percent > 100 || values.percent < 0) {\n errors.percent = 'Por favor, introduce un porcentaje válido.';\n }\n\n if (!values.name || values.name === '') {\n errors.name = 'Por favor, introduce el nombre del plan.';\n }\n\n if (!this.state.disableMax && !this.state.disableMin) {\n if (values.auto_degrade.active || values.auto_update.active) {\n if (!values.auto_update.days || values.auto_update.days === '' || values.auto_update.days === 0 || values.auto_update.days === '0') {\n errors.rangoDiasH = 'Por favor, introduce el rango de días.';\n } else if (values.auto_update.days < 0) {\n errors.rangoDiasH = 'Por favor, introduce una cantidad válida.';\n }\n\n if (!values.auto_degrade.days || values.auto_degrade.days === '' || values.auto_degrade.days === 0 || values.auto_degrade.days === '0') {\n errors.rangoDiasB = 'Por favor, introduce el rango de días.';\n } else if (values.auto_degrade.days < 0) {\n errors.rangoDiasB = 'Por favor, introduce una cantidad válida.';\n }\n\n if (!values.auto_update.id_plan_update || values.auto_update.id_plan_update === '' || values.auto_update.id_plan_update === undefined) {\n errors.idPlanH = 'Por favor, selecciona un plan.';\n }\n\n if (!values.auto_degrade.id_plan_degrade || values.auto_degrade.id_plan_degrade === '' || values.auto_degrade.id_plan_degrade === undefined) {\n errors.idPlanB = 'Por favor, selecciona un plan.';\n }\n\n if (values.auto_update.conditions.visits.required_amount !== ''\n && values.auto_update.conditions.visits.required_amount !== '0'\n && values.auto_update.conditions.visits.required_amount !== 0\n && values.auto_degrade.conditions.visits.required_amount !== ''\n && values.auto_degrade.conditions.visits.required_amount !== '0'\n && values.auto_degrade.conditions.visits.required_amount !== 0) {\n if (!values.auto_update.conditions.visits.active || !values.auto_degrade.conditions.visits.active) {\n this.setState({ visitasH: true });\n if (values.auto_update.conditions.visits.required_amount === '') {\n errors.cantidadHV = 'Por favor, introduce una cantidad.';\n }\n if (values.auto_degrade.conditions.visits.required_amount === '') {\n errors.cantidadBV = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_update.conditions.visits.active || values.auto_degrade.conditions.visits.active) {\n if (values.auto_update.conditions.visits.required_amount === ''\n || values.auto_update.conditions.visits.required_amount === '0'\n || values.auto_update.conditions.visits.required_amount === 0) {\n errors.cantidadHV = 'Por favor, introduce una cantidad.';\n }\n if (values.auto_degrade.conditions.visits.required_amount === ''\n || values.auto_degrade.conditions.visits.required_amount === '0'\n || values.auto_degrade.conditions.visits.required_amount === 0) {\n errors.cantidadBV = 'Por favor, introduce una cantidad.';\n }\n }\n\n if (values.auto_update.conditions.points.required_amount !== ''\n && values.auto_update.conditions.points.required_amount !== '0'\n && values.auto_update.conditions.points.required_amount !== 0\n && values.auto_degrade.conditions.points.required_amount !== ''\n && values.auto_degrade.conditions.points.required_amount !== '0'\n && values.auto_degrade.conditions.points.required_amount !== 0) {\n if (!values.auto_update.conditions.points.active || !values.auto_degrade.conditions.points.active) {\n this.setState({ puntosH: true });\n if (values.auto_update.conditions.points.required_amount === '') {\n errors.cantidadHP = 'Por favor, introduce una cantidad.';\n }\n if (values.auto_degrade.conditions.points.required_amount === '') {\n errors.cantidadBP = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_update.conditions.points.active || values.auto_degrade.conditions.points.active) {\n if (values.auto_update.conditions.points.required_amount === ''\n || values.auto_update.conditions.points.required_amount === '0'\n || values.auto_update.conditions.points.required_amount === 0) {\n errors.cantidadHP = 'Por favor, introduce una cantidad.';\n }\n if (values.auto_degrade.conditions.points.required_amount === ''\n || values.auto_degrade.conditions.points.required_amount === '0'\n || values.auto_degrade.conditions.points.required_amount === 0) {\n errors.cantidadBP = 'Por favor, introduce una cantidad.';\n }\n }\n\n if (values.auto_update.conditions.purchase_amount.required_amount !== ''\n && values.auto_update.conditions.purchase_amount.required_amount !== '0'\n && values.auto_update.conditions.purchase_amount.required_amount !== 0\n && values.auto_degrade.conditions.purchase_amount.required_amount !== ''\n && values.auto_degrade.conditions.purchase_amount.required_amount !== '0'\n && values.auto_degrade.conditions.purchase_amount.required_amount !== 0) {\n if (!values.auto_update.conditions.purchase_amount.active || !values.auto_degrade.conditions.purchase_amount.active) {\n this.setState({ comprasH: true });\n if (values.auto_update.conditions.purchase_amount.required_amount === '') {\n errors.cantidadHC = 'Por favor, introduce una cantidad.';\n }\n if (values.auto_degrade.conditions.purchase_amount.required_amount === '') {\n errors.cantidadBC = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_update.conditions.purchase_amount.active || values.auto_degrade.conditions.purchase_amount.active) {\n if (values.auto_update.conditions.purchase_amount.required_amount === ''\n || values.auto_update.conditions.purchase_amount.required_amount === '0'\n || values.auto_update.conditions.purchase_amount.required_amount === 0) {\n errors.cantidadHC = 'Por favor, introduce una cantidad.';\n }\n if (values.auto_degrade.conditions.purchase_amount.required_amount === ''\n || values.auto_degrade.conditions.purchase_amount.required_amount === '0'\n || values.auto_degrade.conditions.purchase_amount.required_amount === 0) {\n errors.cantidadBC = 'Por favor, introduce una cantidad.';\n }\n }\n }\n } else if (!this.state.disableMax && this.state.disableMin) {\n if (values.auto_update.active) {\n if (!values.auto_update.days || values.auto_update.days === '' || values.auto_update.days === 0 || values.auto_update.days === '0') {\n errors.rangoDiasH = 'Por favor, introduce el rango de días.';\n } else if (values.auto_update.days < 0) {\n errors.rangoDiasH = 'Por favor, introduce una cantidad válida.';\n }\n\n if (!values.auto_update.id_plan_update || values.auto_update.id_plan_update === '' || values.auto_update.id_plan_update === undefined) {\n errors.idPlanH = 'Por favor, selecciona un plan.';\n }\n\n\n if (values.auto_update.conditions.visits.required_amount !== ''\n && values.auto_update.conditions.visits.required_amount !== '0'\n && values.auto_update.conditions.visits.required_amount !== 0) {\n if (!values.auto_update.conditions.visits.active) {\n this.setState({ visitasH: true });\n if (values.auto_update.conditions.visits.required_amount === '') {\n errors.cantidadHV = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_update.conditions.visits.active) {\n if (values.auto_update.conditions.visits.required_amount === ''\n || values.auto_update.conditions.visits.required_amount === '0'\n || values.auto_update.conditions.visits.required_amount === 0) {\n errors.cantidadHV = 'Por favor, introduce una cantidad.';\n }\n }\n\n if (values.auto_update.conditions.points.required_amount !== ''\n && values.auto_update.conditions.points.required_amount !== '0'\n && values.auto_update.conditions.points.required_amount !== 0) {\n if (!values.auto_update.conditions.points.active) {\n this.setState({ puntosH: true });\n if (values.auto_update.conditions.points.required_amount === '') {\n errors.cantidadHP = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_update.conditions.points.active) {\n if (values.auto_update.conditions.points.required_amount === ''\n || values.auto_update.conditions.points.required_amount === '0'\n || values.auto_update.conditions.points.required_amount === 0) {\n errors.cantidadHP = 'Por favor, introduce una cantidad.';\n }\n }\n\n if (values.auto_update.conditions.purchase_amount.required_amount !== ''\n && values.auto_update.conditions.purchase_amount.required_amount !== '0'\n && values.auto_update.conditions.purchase_amount.required_amount !== 0) {\n if (!values.auto_update.conditions.purchase_amount.active) {\n this.setState({ comprasH: true });\n if (values.auto_update.conditions.purchase_amount.required_amount === '') {\n errors.cantidadHC = 'Por favor, introduce una cantidad.';\n }\n\n }\n }\n\n if (values.auto_update.conditions.purchase_amount.active) {\n if (values.auto_update.conditions.purchase_amount.required_amount === ''\n || values.auto_update.conditions.purchase_amount.required_amount === '0'\n || values.auto_update.conditions.purchase_amount.required_amount === 0) {\n errors.cantidadHC = 'Por favor, introduce una cantidad.';\n }\n\n }\n }\n } else if (this.state.disableMax && !this.state.disableMin) {\n if (values.auto_degrade.active) {\n\n if (!values.auto_degrade.days || values.auto_degrade.days === '' || values.auto_degrade.days === 0 || values.auto_degrade.days === '0') {\n errors.rangoDiasB = 'Por favor, introduce el rango de días.';\n } else if (values.auto_degrade.days < 0) {\n errors.rangoDiasB = 'Por favor, introduce una cantidad válida.';\n }\n\n if (!values.auto_degrade.id_plan_degrade || values.auto_degrade.id_plan_degrade === '' || values.auto_degrade.id_plan_degrade === undefined) {\n errors.idPlanB = 'Por favor, selecciona un plan.';\n }\n\n if (values.auto_degrade.conditions.visits.required_amount !== ''\n && values.auto_degrade.conditions.visits.required_amount !== '0'\n && values.auto_degrade.conditions.visits.required_amount !== 0) {\n if (!values.auto_degrade.conditions.visits.active) {\n this.setState({ visitasH: true });\n if (values.auto_degrade.conditions.visits.required_amount === '') {\n errors.cantidadBV = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_degrade.conditions.visits.active) {\n\n if (values.auto_degrade.conditions.visits.required_amount === ''\n || values.auto_degrade.conditions.visits.required_amount === '0'\n || values.auto_degrade.conditions.visits.required_amount === 0) {\n errors.cantidadBV = 'Por favor, introduce una cantidad.';\n }\n }\n\n if (values.auto_degrade.conditions.points.required_amount !== ''\n && values.auto_degrade.conditions.points.required_amount !== '0'\n && values.auto_degrade.conditions.points.required_amount !== 0) {\n if (!values.auto_degrade.conditions.points.active) {\n this.setState({ puntosH: true });\n\n if (values.auto_degrade.conditions.points.required_amount === '') {\n errors.cantidadBP = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_degrade.conditions.points.active) {\n\n if (values.auto_degrade.conditions.points.required_amount === ''\n || values.auto_degrade.conditions.points.required_amount === '0'\n || values.auto_degrade.conditions.points.required_amount === 0) {\n errors.cantidadBP = 'Por favor, introduce una cantidad.';\n }\n }\n\n if (values.auto_degrade.conditions.purchase_amount.required_amount !== ''\n && values.auto_degrade.conditions.purchase_amount.required_amount !== '0'\n && values.auto_degrade.conditions.purchase_amount.required_amount !== 0) {\n if (!values.auto_degrade.conditions.purchase_amount.active) {\n this.setState({ comprasH: true });\n\n if (values.auto_degrade.conditions.purchase_amount.required_amount === '') {\n errors.cantidadBC = 'Por favor, introduce una cantidad.';\n }\n }\n }\n\n if (values.auto_degrade.conditions.purchase_amount.active) {\n\n if (values.auto_degrade.conditions.purchase_amount.required_amount === ''\n || values.auto_degrade.conditions.purchase_amount.required_amount === '0'\n || values.auto_degrade.conditions.purchase_amount.required_amount === 0) {\n errors.cantidadBC = 'Por favor, introduce una cantidad.';\n }\n }\n }\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n\n }\n\n isSubmitting(event, errors, values) {\n event.preventDefault();\n this.setState({\n actualizando: true\n });\n if (Object.keys(errors).length === 0) {\n\n const token = JSON.parse(localStorage.getItem('token'));\n const data = (JSON.stringify(values));\n return actualizarPlanAdminAction(data, values._id, token).then(r => {\n if (r.ok) {\n\n toast.success(
{'Plan actualizado correctamente.'}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n\n this.setState({\n errors: {},\n errorSubmit: '',\n actualizando: false\n });\n } else\n if (!r.ok) {\n if (r.error) {\n if (r.error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n } else if (r.error.message) {\n this.setState({\n errorSubmit: r.error.message,\n actualizando: false\n });\n }\n }\n });\n }\n }\n\n volver() {\n this.props.history.push('/admin/planes');\n }\n\n componentDidUpdate(_prevProps, prevstate) {\n if (equal(this.state.disableStatusVisit, prevstate.disableStatusVisit)) {\n if (this.state.visitasH && this.state.disableStatusVisit) {\n this.setState({ disableStatusVisit: false, disableStatus: false });\n }\n }\n if (equal(this.state.disableStatusPoint, prevstate.disableStatusPoint)) {\n if (this.state.puntosH && this.state.disableStatusPoint) {\n this.setState({ disableStatusPoint: false, disableStatus: false });\n }\n }\n if (equal(this.state.disableStatusBuy, prevstate.disableStatusBuy)) {\n if (this.state.comprasH && this.state.disableStatusBuy) {\n this.setState({ disableStatusBuy: false, disableStatus: false });\n }\n }\n\n if (!equal(this.state.visitasH, prevstate.visitasH)) {\n if (this.state.visitasH) {\n this.setState({ disableStatusVisit: false });\n } else {\n this.setState({\n disableStatusVisit: true,\n cantidadHV: '0',\n cantidadBV: '0'\n });\n }\n }\n if (!equal(this.state.puntosH, prevstate.puntosH)) {\n if (this.state.puntosH) {\n this.setState({ disableStatusPoint: false });\n } else {\n this.setState({\n disableStatusPoint: true,\n cantidadHP: '0',\n cantidadBP: '0'\n });\n }\n }\n if (!equal(this.state.comprasH, prevstate.comprasH)) {\n if (this.state.comprasH) {\n this.setState({ disableStatusBuy: false });\n } else {\n this.setState({\n disableStatusBuy: true,\n cantidadHC: '0',\n cantidadBC: '0'\n });\n }\n }\n if (!equal(this.state.visitasH, prevstate.visitasH) ||\n !equal(this.state.puntosH, prevstate.puntosH) ||\n !equal(this.state.comprasH, prevstate.comprasH)) {\n if (this.state.visitasH || this.state.puntosH || this.state.comprasH) {\n this.setState({\n disableStatus: false\n });\n }\n if (!this.state.visitasH && !this.state.puntosH && !this.state.comprasH) {\n this.setState({\n disableStatus: true,\n rangoDiasB: '0',\n rangoDiasH: '0'\n });\n }\n }\n\n\n }\n\n render() {\n\n let { active } = this.props;\n let defaultValueH = this.state.idPlanH;\n let defaultValueB = this.state.idPlanB;\n\n if (this.props.planesAdminList.length > -1) {\n for (let i = 0; this.props.planesAdminList.length > i; i++) {\n if (this.props.planesAdminList[i]._id === this.state.idPlanH) {\n defaultValueH = this.props.planesAdminList[i]._id;\n }\n if (this.props.planesAdminList[i]._id === this.state.idPlanB) {\n defaultValueB = this.props.planesAdminList[i]._id;\n }\n }\n }\n\n return (\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ name: event.target.value })}\n className={this.state.errors.name && ('input-errorLine')} />\n \n \n \n {this.state.errors.name && (\n {this.state.errors.name}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ percent: event.target.value })}\n className={this.state.errors.percent && ('input-errorLine')} />\n \n \n \n {this.state.errors.percent && (\n {this.state.errors.percent}\n )}\n
\n
\n
\n
\n\n
\n
\n \n this.setState({ actualizarPlanAuto: event.target.checked })}\n name=\"actualizarPlanAuto\"\n />\n }\n label=\"Actualizar plan automáticamente\"\n />\n \n
\n
\n\n {\n this.state.actualizarPlanAuto ?\n (\n
\n
\n
\n
\n
\n Habilitar por:\n
\n
\n
\n
\n
\n
\n \n this.setState({ visitasH: event.target.checked })}\n name=\"visitasH\"\n />\n }\n label=\"Visitas\"\n />\n \n
\n {!this.state.disableMax ? (\n
\n
\n this.setState({ cantidadHV: event.target.value })}\n className={this.state.errors.cantidadHV && ('input-errorLine')} disabled={this.state.disableStatusVisit} />\n \n \n \n {this.state.errors.cantidadHV && (\n {this.state.errors.cantidadHV}\n )}\n
\n
\n ) : ('')}\n
\n
\n\n
\n
\n
\n \n this.setState({ puntosH: event.target.checked })}\n name=\"puntosH\"\n />\n }\n label=\"Puntos\"\n />\n \n
\n {!this.state.disableMax ? (\n
\n
\n this.setState({ cantidadHP: event.target.value })}\n className={this.state.errors.cantidadHP && ('input-errorLine')} disabled={this.state.disableStatusPoint} />\n \n \n \n {this.state.errors.cantidadHP && (\n {this.state.errors.cantidadHP}\n )}\n
\n
\n ) : ('')}\n\n
\n
\n\n\n
\n
\n
\n \n this.setState({ comprasH: event.target.checked })}\n name=\"comprasH\"\n />\n }\n label=\"Compras\"\n />\n \n
\n {!this.state.disableMax ? (\n
\n
\n this.setState({ cantidadHC: event.target.value })}\n className={this.state.errors.cantidadHC && ('input-errorLine')} disabled={this.state.disableStatusBuy} />\n \n \n \n {this.state.errors.cantidadHC && (\n {this.state.errors.cantidadHC}\n )}\n
\n
\n ) : ('')}\n
\n
\n\n {!this.state.disableMax ? (\n
\n
\n
\n
\n
\n this.setState({ rangoDiasH: event.target.value })}\n className={this.state.errors.rangoDiasH && ('input-errorLine')} disabled={this.state.disableStatus} />\n \n \n \n {this.state.errors.rangoDiasH && (\n {this.state.errors.rangoDiasH}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n \n {this.state.errors.idPlanH && (\n {this.state.errors.idPlanH}\n )}\n
\n
\n
\n
\n
\n ) : ('')}\n
\n {!this.state.disableMin ? (\n
\n
\n
\n
\n Baja:\n
\n
\n
\n\n
\n\n
\n
\n
\n this.setState({ cantidadBV: event.target.value })}\n className={this.state.errors.cantidadBV && ('input-errorLine')} disabled={this.state.disableStatusVisit} />\n \n \n \n {this.state.errors.cantidadBV && (\n {this.state.errors.cantidadBV}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ cantidadBP: event.target.value })}\n className={this.state.errors.cantidadBP && ('input-errorLine')} disabled={this.state.disableStatusPoint} />\n \n \n \n {this.state.errors.cantidadBP && (\n {this.state.errors.cantidadBP}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ cantidadBC: event.target.value })}\n className={this.state.errors.cantidadBC && ('input-errorLine')} disabled={this.state.disableStatusBuy} />\n \n \n \n {this.state.errors.cantidadBC && (\n {this.state.errors.cantidadBC}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ rangoDiasB: event.target.value })}\n className={this.state.errors.rangoDiasB && ('input-errorLine')} disabled={this.state.disableStatus} />\n \n \n \n {this.state.errors.rangoDiasB && (\n {this.state.errors.rangoDiasB}\n )}\n
\n
\n
\n
\n\n
\n
\n
\n
\n \n \n \n \n {this.state.errors.idPlanB && (\n {this.state.errors.idPlanB}\n )}\n
\n
\n
\n
\n\n
\n ) : ('')}\n
\n ) :\n (\n
\n )\n }\n\n
\n
\n
\n
\n
\n \n {\n this.state.actualizando ?\n (\n \n ) :\n (\n \n )\n }\n
\n
\n
\n
\n \n
\n );\n }\n}\n\nFormActualizarPlanAdmin.propTypes = {\n history: PropTypes.object,\n planAdmin: PropTypes.object.isRequired,\n planesAdminList: PropTypes.array.isRequired,\n consultarPlanesAdminAction: PropTypes.func.isRequired,\n active: PropTypes.bool.isRequired,\n};\n\nFormActualizarPlanAdmin.defaultProps = {\n planesAdminList: []\n};\n\nconst mapStateToProps = state => ({\n planesAdminList: consultPlanesAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { consultarPlanesAdminAction })(FormActualizarPlanAdmin));\n","export const getPlanAdminService = (url, idPlan, token) => () => {\n\n return fetch(url + 'plans/' + idPlan, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n }\n }).then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, error: status};\n if(status !== 401){\n return response.json();\n } else if(status === 401){\n return res;\n }\n }).then(function (responser) {\n let data = [];\n if( !responser.ok ) {\n data.push(responser);\n return data;\n } else\n if( responser.ok ) {\n data.push(responser.data);\n return data;\n }\n }).catch((error) => {\n return error;\n });\n};\n","import { getPlanAdminService } from './../services/getPlanAdminService';\nimport { URL_API } from './../../../constants';\nimport { GET_PLAN_ADMIN } from './../../../constants';\nimport { createAction } from 'redux-actions';\n\nexport const getPlanAdminAction = createAction(GET_PLAN_ADMIN,\n (idPlan, token) => getPlanAdminService(URL_API, idPlan, token)());\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport FormActualizarPlanAdmin from './../components/formActualizarPlanAdmin';\nimport { getPlanAdminAction } from './../actions/getPlanAdminAction';\nimport { getPlanAdmin } from './../selectors';\n\nclass ActualizarPlanAdminContainer extends Component {\n\n componentDidMount() {\n const data = {\n idPlan: this.props.match.params.idPlan\n };\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.getPlanAdminAction(data.idPlan, token).then(\n response => {\n if (response.payload[0].error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n render() {\n\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n let active = loginData.active.active;\n const idPlan = this.props.match.params.idPlan;\n const planAdmin = this.props.planAdmin;\n let planAdminActual = {};\n if(planAdmin.length > 0) {\n for(let i = 0; planAdmin.length > i; i++){\n if(planAdmin[i]._id === idPlan) {\n planAdminActual = planAdmin[i];\n }\n }\n }\n\n return (\n
\n
\n );\n }\n}\n\nActualizarPlanAdminContainer.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n idPlan: PropTypes.string.isRequired,\n })\n }),\n planAdmin: PropTypes.array.isRequired,\n getPlanAdminAction: PropTypes.func.isRequired,\n history: PropTypes.object,\n};\n\nActualizarPlanAdminContainer.defaultProps = {\n planAdmin: []\n};\n\nconst mapStateToProps = state => ({\n planAdmin: getPlanAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { getPlanAdminAction })(ActualizarPlanAdminContainer));\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport { FaCheck } from 'react-icons/fa';\n\nclass VisualizarPlanAdmin extends Component {\n\n constructor(props) {\n super(props);\n\n this.state = {\n idPlan: props.planAdmin._id,\n name: props.planAdmin.name,\n percent: props.planAdmin.percent,\n actualizarPlanAuto: props.planAdmin.auto_update.active || props.planAdmin.auto_degrade.active,\n visitasH: props.planAdmin.auto_update.conditions.visits.active || props.planAdmin.auto_degrade.conditions.visits.active,\n puntosH: props.planAdmin.auto_update.conditions.points.active || props.planAdmin.auto_degrade.conditions.points.active,\n comprasH: props.planAdmin.auto_update.conditions.purchase_amount.active || props.planAdmin.auto_degrade.conditions.purchase_amount.active,\n cantidadHV: props.planAdmin.auto_update.conditions.visits.required_amount,\n cantidadHP: props.planAdmin.auto_update.conditions.points.required_amount,\n cantidadHC: props.planAdmin.auto_update.conditions.purchase_amount.required_amount,\n cantidadBV: props.planAdmin.auto_degrade.conditions.visits.required_amount,\n cantidadBP: props.planAdmin.auto_degrade.conditions.points.required_amount,\n cantidadBC: props.planAdmin.auto_degrade.conditions.purchase_amount.required_amount,\n rangoDiasH: props.planAdmin.auto_update.days,\n rangoDiasB: props.planAdmin.auto_degrade.days,\n idPlanH: props.planAdmin.auto_update.id_plan_update,\n idPlanB: props.planAdmin.auto_degrade.id_plan_degrade,\n errors: {},\n errorSubmit: '',\n actualizado: false,\n minValue: 0,\n maxValue: 0,\n disableMax: false,\n disableMin: false\n };\n\n this.volver = this.volver.bind(this);\n }\n\n componentDidMount() {\n\n let minValue = 0;\n let maxValue = 0;\n let percents = [];\n for (let i = 0; i < this.props.planesAdminList.length; i++) {\n if (i < this.props.planesAdminList.length) {\n percents.push(parseFloat(this.props.planesAdminList[i].percent));\n }\n }\n minValue = Math.min(...percents);\n maxValue = Math.max(...percents);\n\n if (parseFloat(this.state.percent) === minValue) {\n this.setState({ disableMin: true });\n }\n if (parseFloat(this.state.percent) === maxValue) {\n this.setState({ disableMax: true });\n }\n this.setState({ minValue: minValue, maxValue: maxValue });\n }\n\n volver() {\n this.props.history.push('/admin/planes');\n }\n\n render() {\n const planesAdminList = this.props.planesAdminList;\n let planAutoUpdate = '';\n let planAutoDegrade = '';\n for (let i = 0; planesAdminList.length > i; i++) {\n if (planesAdminList[i]._id === this.state.idPlanH) {\n planAutoUpdate = planesAdminList[i].name;\n }\n if (planesAdminList[i]._id === this.state.idPlanB) {\n planAutoDegrade = planesAdminList[i].name;\n }\n }\n return (\n
\n
\n
\n
\n\n
\n
\n Plan: \n {this.state.name || ''} \n
\n
\n Porcentaje: \n {this.state.percent + '%' || ''} \n
\n
\n\n
\n
\n Actualizar plan automáticamente: \n \n {\n this.state.actualizarPlanAuto ?\n ('Activado') :\n ('Desactivado')\n }\n \n
\n
\n\n
\n\n {\n this.state.actualizarPlanAuto ?\n (\n
\n
\n
\n Habilitado por:\n
\n {\n this.state.visitasH ?\n (\n
\n
\n Visitas: \n \n
\n {!this.state.disableMax ? (\n
\n Cantidad: \n {this.state.cantidadHV || ''} \n
\n ) : (
)}\n\n
\n ) :\n (\n
\n )\n }\n {\n this.state.puntosH ?\n (\n
\n
\n Puntos: \n \n
\n {!this.state.disableMax ? (\n
\n Cantidad: \n {this.state.cantidadHP || ''} \n
\n ) : (
)}\n
\n ) :\n (\n
\n )\n }\n {\n this.state.comprasH ?\n (\n
\n
\n Compras: \n \n
\n {!this.state.disableMax ? (\n
\n Cantidad: \n {this.state.cantidadHC || ''} \n
\n ) : (
)}\n
\n ) :\n (\n
\n )\n }\n {!this.state.disableMax ? (\n
\n
\n
\n Rango de días: \n {this.state.rangoDiasH || ''} \n
\n
\n
\n
\n Plan a actualizar automáticamente: \n {planAutoUpdate || ''} \n
\n
\n
\n ) : (
)}\n\n
\n {!this.state.disableMin ? (\n
\n
\n Baja:\n
\n {\n this.state.visitasH ?\n (\n
\n
\n Cantidad: \n {this.state.cantidadBV || ''} \n
\n
\n ) :\n (\n
\n )\n }\n {\n this.state.puntosH ?\n (\n
\n
\n Cantidad: \n {this.state.cantidadBP || ''} \n
\n
\n ) :\n (\n
\n )\n }\n {\n this.state.comprasH ?\n (\n
\n
\n Cantidad: \n {this.state.cantidadBC || ''} \n
\n
\n ) :\n (\n
\n )\n }\n\n
\n
\n Rango de días: \n {this.state.rangoDiasB || ''} \n
\n
\n
\n
\n Plan a actualizar automáticamente: \n {planAutoDegrade || ''} \n
\n
\n
\n ) : (
)}\n
\n ) :\n (\n
\n )\n }\n\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n
\n );\n }\n}\n\nVisualizarPlanAdmin.propTypes = {\n history: PropTypes.object,\n planAdmin: PropTypes.object.isRequired,\n planesAdminList: PropTypes.array.isRequired\n};\n\nexport default withRouter(VisualizarPlanAdmin);\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport VisualizarPlanAdmin from './../components/visualizarPlanAdmin';\nimport { getPlanAdminAction } from './../actions/getPlanAdminAction';\nimport { consultarPlanesAdminAction } from './../actions/consultarPlanesAdminAction';\nimport { getPlanAdmin, consultPlanesAdmin } from './../selectors';\n\nclass VerPlanAdminContainer extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n minValue: 0,\n maxValue: 0\n };\n }\n\n componentDidMount() {\n const data = {\n idPlan: this.props.match.params.idPlan\n };\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n\n const idEmpresa = loginData._id;\n this.props.getPlanAdminAction(data.idPlan, token).then(\n response => {\n if (response.payload[0].error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n });\n this.props.consultarPlanesAdminAction(idEmpresa, token).then(\n response => {\n if (response.payload[0].error === 401) {\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n render() {\n const idPlan = this.props.match.params.idPlan;\n const planAdmin = this.props.planAdmin;\n let planAdminActual = {};\n\n if (planAdmin.length > 0) {\n for (let i = 0; planAdmin.length > i; i++) {\n if (planAdmin[i]._id === idPlan) {\n planAdminActual = planAdmin[i];\n }\n }\n }\n\n return (\n
\n
\n );\n }\n}\n\nVerPlanAdminContainer.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n idPlan: PropTypes.string.isRequired,\n })\n }),\n history: PropTypes.object,\n planAdmin: PropTypes.array.isRequired,\n getPlanAdminAction: PropTypes.func.isRequired,\n planesAdminList: PropTypes.array.isRequired,\n consultarPlanesAdminAction: PropTypes.func.isRequired\n};\n\nVerPlanAdminContainer.defaultProps = {\n planAdmin: [],\n planesAdminList: []\n};\n\nconst mapStateToProps = state => ({\n planAdmin: getPlanAdmin(state),\n planesAdminList: consultPlanesAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { getPlanAdminAction, consultarPlanesAdminAction })(VerPlanAdminContainer));\n","import {\n URL_API,\n GET_POINTS\n} from './../../constants';\nimport {\n getPoinstsServices,\n clearPoinstsServices\n} from '../services';\nimport { createAction } from 'redux-actions';\n\nexport const getPointsAction = createAction(GET_POINTS,\n (cardNumber) => getPoinstsServices(URL_API, cardNumber)());\n\nexport const clearPointsAction = createAction(GET_POINTS,\n () => clearPoinstsServices());\n","\nexport const getPoinstsServices = (url, cardNumber) => () =>\n fetch(url + 'customers/statement/' + cardNumber, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n let error=[];\n error.push(responser);\n return error;\n }).catch((error) => {\n return error;\n });\nexport function clearPoinstsServices() {\n return {};\n}\n","export const getPointsState = state => state.getPointsState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\n/*\nimport {\n XYPlot,\n XAxis,\n YAxis,\n VerticalBarSeries\n} from 'react-vis';\n*/\nimport './../style.css';\n\nimport { getPointsAction, clearPointsAction } from './../actions';\nimport { getPointsState } from './../selectors';\nimport equal from 'fast-deep-equal';\n\nclass checkCard extends Component {\n constructor(props) {\n super(props);\n this.state = {\n cardNumber: '',\n cardvalue: '',\n showData: false,\n name: 'pr',\n aviablePoints: '1',\n expire: '*Vencen el 2 de mayo del 2020'\n };\n this.handleSubmit = this.handleSubmit.bind(this);\n this.asignar = this.asignar.bind(this);\n }\n componentDidMount() {\n localStorage.removeItem('dataP');\n localStorage.removeItem('dataR');\n localStorage.removeItem('infoD');\n }\n handleSubmit(event) {\n event.preventDefault();\n this.props.clearPointsAction();\n localStorage.removeItem('dataP');\n localStorage.removeItem('dataR');\n localStorage.removeItem('infoD');\n this.props.getPointsAction(this.state.cardvalue).then(resp => {\n if (resp.payload[0]) {\n if (resp.payload[0]._id) {\n this.setState({\n error: '',\n showData: true\n });\n } else {\n this.setState({\n error: 'No se encontraron datos'\n });\n }\n } else {\n this.setState({\n error: 'No se encontraron datos o hubo un error de conexion'\n });\n }\n\n });\n }\n componentDidUpdate(prevProps) {\n if (!equal(this.props.pointsState, prevProps.pointsState)) {\n if (this.props.pointsState[0]) {\n this.asignar(this.props.pointsState);\n }\n }\n }\n asignar(data) {\n this.setState({\n name: data[0].name,\n aviablePoints: data[0].available_points\n });\n let infoD = {\n name: data[0].name,\n available_points: data[0].available_points,\n card_number: data[0].card_number\n };\n localStorage.setItem('dataP', JSON.stringify(data[0].points));\n localStorage.setItem('dataR', JSON.stringify(data[0].redems));\n localStorage.setItem('infoD', JSON.stringify(infoD));\n\n }\n\n render() {\n\n return (\n
\n
\n {this.state.showData > 0 ? (\n
\n
\n

Nubentum

\n
\n
\n
\n
\n
\n

Bienvenido(a), {this.state.name}

\n
\n
\n

Cuentas con:

\n
\n
\n

{this.state.aviablePoints} puntos*

\n {this.state.expire}\n
\n
\n Ver historial >\n
\n
\n
\n
\n
\n
\n\n ) : (\n
\n
\n

Nubentum

\n
\n
\n
\n

Consulta tus puntos

\n
\n
\n
\n
\n {this.state.error ? (\n

{this.state.error}

\n ) : ('')\n }\n
\n this.setState({ cardvalue: event.target.value })}\n name=\"tarjeta\" pattern='{4,16}'\n placeholder='0000 0000 0000 0000' required>\n \n \n
\n
\n
\n
\n
)\n }\n
\n
\n );\n }\n}\n\ncheckCard.propTypes = {\n getPointsAction: PropTypes.func.isRequired,\n clearPointsAction: PropTypes.func.isRequired,\n pointsState: PropTypes.object.isRequired,\n};\n\ncheckCard.defaultProps = {\n pointsState: {}\n};\n\nconst mapStateToProps = state => ({\n pointsState: getPointsState(state)\n});\nexport default withRouter(connect(mapStateToProps, { getPointsAction, clearPointsAction })(checkCard));\n","import React, { PureComponent } from 'react';\nimport TableRender from './../../globalComponents/table';\n\nimport { ReactComponent as SearchIcon } from './../../management/listUserEmp/resources/icons8-search.svg';\n\nimport { withRouter } from 'react-router-dom';\n\nimport { FaChevronCircleUp } from 'react-icons/fa';\nimport { AiOutlineDownCircle } from 'react-icons/ai';\nimport equal from 'fast-deep-equal';\n\nfunction formatDate(date) {\n\n if (date.includes('T00:00:00.000Z')) {\n date = date.replace('T00:00:00.000Z', '');\n return date;\n }\n let d = new Date(date),\n month = '' + (d.getMonth() + 1),\n day = '' + (d.getDate()),\n year = (d.getFullYear());\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [year, month, day].join('-');\n}\nclass checkPoints extends PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n search: '',\n name: '',\n cardN: '',\n points: '',\n tableDataOrigin: [],\n tableData: []\n };\n\n }\n\n componentDidMount() {\n let body = [];\n const point = JSON.parse(localStorage.getItem('dataP'));\n const redem = JSON.parse(localStorage.getItem('dataR'));\n const infoD = JSON.parse(localStorage.getItem('infoD'));\n\n point.forEach(element => {\n element.detail.forEach(element2 => {\n body.push([, (element2.updatedAt), element2.name, infoD.card_number, element2.points]);\n });\n });\n redem.forEach(element => {\n element.detail.forEach(element2 => {\n body.push([, (element.updatedAt), element2.name, infoD.card_number, element2.points]);\n });\n });\n\n body.sort(function compare(a, b) {\n var dateA = new Date(a[1]);\n var dateB = new Date(b[1]);\n return dateB - dateA;\n });\n\n body.forEach((element, ind) => {\n body[ind][1] = formatDate(element[1]);\n });\n\n this.setState({\n tableData: body,\n tableDataOrigin: body,\n name: infoD.name,\n points: infoD.available_points,\n });\n\n }\n\n componentDidUpdate(_prevProps, prevstate) {\n\n if (!equal(this.state.search, prevstate.search)) {\n\n let data = this.state.tableDataOrigin;\n let results = [];\n if (this.state.search !== '') {\n data.forEach(element => {\n if (\n element[1].includes(this.state.search.toLowerCase()) ||\n element[2].includes(this.state.search.toLowerCase()) ||\n element[3].includes(this.state.search.toLowerCase()) ||\n element[4].includes(this.state.search.toLowerCase())) {\n results.push(element);\n }\n });\n this.setState({ tableData: results });\n } else {\n this.setState({ tableData: this.state.tableDataOrigin });\n }\n\n }\n\n }\n\n render() {\n let demoData = {\n thead: [\n 'Accion', 'Fecha', 'Descripción', 'Lugar', 'Puntos'\n ],\n tbody: this.state.tableData\n };\n return (\n
\n
\n
\n

Nubentum

\n
\n
\n

{this.state.name}, aquí está el registro de tus movimientos

\n
\n
\n
\n\n
\n
\n
\n
\n this.setState({ search: event.target.value })}\n className=' input-form input-search' placeholder='Buscar' />\n \n \n
\n
\n \n
\n
\n
\n

Total

\n

{this.state.points} puntos

\n
\n
\n
\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
\n
\n
\n
\n );\n }\n}\n\ncheckPoints.propTypes = {\n\n};\n\nexport default withRouter(checkPoints);\n","export const getCustomers = (url, token, id) => () =>\n fetch(url + 'customers/company/' + id, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n const customers = [];\n customers.push(responser.error);\n return customers;\n }).catch((error) => {\n return error;\n });\n\nexport const deleteCustomerService = (url, token, idCustom) => () =>\n fetch(url + 'customers/' + idCustom, {\n method: 'DELETE',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n var datos = [];\n datos.push(responser);\n return datos;\n }).catch((error) => {\n return error;\n });\n","import {\n URL_API,\n LIST_CUSTOMERS_ADMIN,\n DELETE_CUSTOMER\n} from './../../../constants';\nimport {\n getCustomers,\n deleteCustomerService\n} from './../services';\nimport { createAction } from 'redux-actions';\n\nexport const listCustomersAction = createAction(LIST_CUSTOMERS_ADMIN,\n (token, id) => getCustomers(URL_API, token, id)());\n\nexport const deleteCustomerAction = createAction(DELETE_CUSTOMER,\n (token, idCustom) => deleteCustomerService(URL_API, token, idCustom)());\n","export const getCustomersList = state => state.customersState;\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport Modal from 'react-responsive-modal';\nimport { connect } from 'react-redux';\n\nimport { deleteCustomerAction, listCustomersAction } from './../actions';\nimport { getCustomersList } from './../selectors';\n\n//import ModalCustom from '../../../globalComponents/modal/modal';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass ModalError extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n modal: false,\n };\n this.eliminarUserAdmin = this.eliminarUserAdmin.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.openModal = this.openModal.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n }\n openModal() {\n this.setState({ modal: true });\n }\n onCloseModal() {\n this.setState({\n modalDel: false\n });\n }\n closeModal() {\n this.setState({\n modal: false\n });\n }\n eliminarUserAdmin() {\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n this.props.close();\n\n this.props.deleteCustomerAction(token, this.props.idAEliminar).then(\n (resp) => {\n if (resp.payload[0]) {\n if (resp.payload[0].ok) {\n this.setState({\n modalContent: 'El usuario se ha eliminado correctamente'\n });\n this.notifySuccess();\n\n this.props.listCustomersAction(token, loginData._id);\n } else if (resp.payload[0].error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else {\n this.setState({\n modalContent: 'Error al eliminar, verifique su conexion'\n });\n this.notifyError();\n\n }\n } else {\n this.setState({\n modalContent: 'Error al eliminar, verifique su conexion'\n });\n this.notifyError();\n\n }\n }\n ).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n\n }\n\n notifySuccess = () => {\n toast.success(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n render() {\n\n const modalStyle = {\n overlay: {\n backgroundColor: 'rgba(255, 255, 255, 0.4)'\n },\n modal: {\n backgroundColor: 'rgba(255, 255, 255, 1)',\n color: '#000000',\n boxShadow: '0 0 0 rgba(0, 0, 0, 0.25)',\n borderTop: '5px solid #950024',\n borderBottom: '5px solid #950024',\n textAlign: 'center'\n }\n };\n\n return (\n
\n \n\n \n
\n
\n {'¿Seguro que desea eliminarlo?'}
\n {/*\n {'\"' + this.props.nameAEliminar + '\"'}{'?'}\n */}\n
\n {\n this.props.acceptText ? (\n
\n
\n \n
\n
\n \n
\n
\n ) : ('')\n }\n
\n
\n
\n );\n }\n}\n\nModalError.propTypes = {\n nameAEliminar: PropTypes.string.isRequired,\n idAEliminar: PropTypes.string.isRequired,\n open: PropTypes.bool.isRequired,\n close: PropTypes.any.isRequired,\n onclickClose: PropTypes.any.isRequired,\n acceptText: PropTypes.string,\n closeText: PropTypes.string,\n history: PropTypes.object,\n deleteCustomerAction: PropTypes.func.isRequired,\n listCustomersAction: PropTypes.func.isRequired,\n};\n\nModalError.defaultProps = {\n customersListrRefresh: []\n};\n\nconst mapStateToProps = state => ({\n customersListrRefresh: getCustomersList(state)\n});\n\nexport default withRouter(\n connect(\n mapStateToProps, {\n listCustomersAction,\n deleteCustomerAction\n })(ModalError));\n","\nimport React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport TableRender from '../../../globalComponents/table';\n\nimport { deleteCustomerAction, listCustomersAction } from './../actions';\nimport { getCustomersList } from './../selectors';\n\nimport ModalCustom from '../../../globalComponents/modal/modal';\nimport ModalError from './modalError';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\n\nfunction formatDate(date) {\n\n if (date.includes('T00:00:00.000Z')) {\n date = date.replace('T00:00:00.000Z', '');\n return date;\n }\n var d = new Date(date),\n month = '' + (d.getMonth() + 1),\n day = '' + (d.getDate()),\n year = (d.getFullYear());\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [year, month, day].join('-');\n}\n\nclass CustomersTable extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n modal: false,\n modalTitleDel: '',\n modalContentDel: '',\n modalAcceptTextDel: '',\n modalDel: false,\n idEliminar: '',\n };\n this.deleteCustomers = this.deleteCustomers.bind(this);\n this.openModal = this.openModal.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.openModalDelete = this.openModalDelete.bind(this);\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n onCloseModal() {\n this.setState({\n modalDel: false\n });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n openModalDelete(id) {\n this.setState({\n modalDel: true,\n idEliminar: id\n });\n }\n\n deleteCustomers(idUser) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n\n this.props.deleteCustomerAction(token, idUser).then(\n (resp) => {\n if (resp.payload[0]) {\n if (resp.payload[0].ok) {\n this.setState({\n modalTitle: 'Eliminado',\n modalContent: 'El usuario se ha eliminado correctamente',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();\n this.props.listCustomersAction(token, loginData._id);\n } else if (resp.payload[0].error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else {\n this.setState({\n modalTitle: 'Error al eliminar1',\n modalContent: 'verifique su conexion',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();\n }\n } else {\n this.setState({\n modalTitle: 'Error al eliminar',\n modalContent: 'verifique su conexion',\n modalAcceptText: 'Aceptar'\n });\n this.openModal();\n }\n\n\n }\n ).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n\n }\n render() {\n const { data, search } = this.props;\n\n let DATA = {\n thead: [\n 'Nombre', 'Cumpleaños', 'Numero de Tarjeta', 'Plan', '% del plan', 'ACCION'\n ],\n tbody: []\n };\n\n if (data) {\n data.forEach(element => {\n if (element._id) {\n\n let actions =
\n \n \"iconVer\"\n \n     \n \n \"iconVer\"\n     \n \n this.openModalDelete(element._id)} src=\"/assets/tablas/eliminar.svg\" className=\"iconTabla-planes-SA\" alt=\"iconVer\" />\n \n
;\n let completeName = element.name + ' ' + element.lastname;\n\n if (search) {\n if (completeName.includes(search.toLowerCase()) ||\n formatDate(element.birthday).includes(search.toLowerCase()) ||\n element.card_number.includes(search) ||\n element.card_number.toLowerCase().includes(search.toLowerCase()) ||\n element.membership.name.includes(search.toLowerCase()) ||\n element.membership.percent.includes(search.toLowerCase())) {\n if (CurrentUserIsActive()) {\n DATA.tbody.push([\n completeName,\n formatDate(element.birthday),\n element.card_number,\n element.membership.name,\n element.membership.percent,\n actions]);\n } else {\n DATA.tbody.push([\n completeName,\n formatDate(element.birthday),\n element.card_number,\n element.membership.name,\n element.membership.percent,\n '']);\n }\n\n }\n } else if (CurrentUserIsActive()) {\n DATA.tbody.push([\n completeName,\n formatDate(element.birthday),\n element.card_number,\n element.membership.name,\n element.membership.percent,\n actions]);\n } else {\n DATA.tbody.push([\n completeName,\n formatDate(element.birthday),\n element.card_number,\n element.membership.name,\n element.membership.percent,\n '']);\n }\n }\n });\n\n }\n\n return (\n
\n \n \n \n
\n );\n }\n}\n\nCustomersTable.propTypes = {\n customersList: PropTypes.array,\n customersListrRefresh: PropTypes.array,\n deleteCustomerAction: PropTypes.func.isRequired,\n listCustomersAction: PropTypes.func.isRequired,\n data: PropTypes.array.isRequired,\n search: PropTypes.string\n};\n\nCustomersTable.defaultProps = {\n customersListrRefresh: []\n};\nconst mapStateToProps = state => ({\n customersListrRefresh: getCustomersList(state)\n});\nexport default withRouter(\n connect(\n mapStateToProps, {\n listCustomersAction,\n deleteCustomerAction\n })(CustomersTable));\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport { withRouter, Link } from 'react-router-dom';\nimport './../style.css';\n\nimport { ReactComponent as SearchIcon } from './../../listUserEmp/resources/icons8-search.svg';\nimport { listCustomersAction } from './../actions';\nimport { getCustomersList } from './../selectors';\nimport CustomersTable from './../components/customersTable';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nclass ListCustomers extends Component {\n constructor(props) {\n super(props);\n this.state = {\n search: ''\n };\n this.deleteCustomers = this.deleteCustomers.bind(this);\n }\n\n componentDidMount() {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.listCustomersAction(token, loginData._id).then(\n response => {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n ).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n deleteCustomers(id) {\n let idcustomer = id;\n if (idcustomer) {\n return true;\n }\n return false;\n }\n\n render() {\n\n return (\n
\n
\n );\n }\n}\n\nListCustomers.propTypes = {\n listCustomersAction: PropTypes.func.isRequired,\n customersList: PropTypes.array.isRequired,\n};\n\nListCustomers.defaultProps = {\n customersList: []\n};\n\nconst mapStateToProps = state => ({\n customersList: getCustomersList(state)\n});\nexport default withRouter(connect(mapStateToProps, { listCustomersAction })(ListCustomers));\n","import { URL_API, LIST_MEMBERSHIPS } from './../../../constants';\nimport { insertCustomerService, getgetMembershipService } from './../services';\nimport { createAction } from 'redux-actions';\n\nexport function insertCustomerAction(token, id, obj) {\n return new Promise((resolve, reject) => {\n var response = insertCustomerService(URL_API, token, id, obj);\n //var response = updateUserId(URL_BASE, id, data);\n response ? resolve(response) : reject('error');\n });\n}\n\n\nexport const listMembershipsAction = createAction(LIST_MEMBERSHIPS,\n (token, id) => getgetMembershipService(URL_API, token, id)());\n","\nexport function insertCustomerService(url, token, id, obj) {\n\n return new Promise((resolve, reject) => {\n var respuesta = fetch(`${url}customers/company/${id}`, {\n method: 'POST',\n body: JSON.stringify(obj),\n headers: new Headers({ 'Content-type': 'application/json', 'Authorization': token })\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n respuesta ? resolve(respuesta) : reject('error-');\n });\n}\n\nexport const getgetMembershipService = (url, token, id) => () =>\n fetch(url + 'plans/company/' + id, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n let error=[];\n error.push(responser.error);\n return error;\n }).catch((error) => {\n return error;\n });\n","\nexport const getMembershipsList = state => state.membershipState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\nimport Container from 'react-bootstrap/Container';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport { insertCustomerAction, listMembershipsAction } from './../actions';\nimport { getMembershipsList } from './../selectors';\n\n//import ModalCustom from './../../../globalComponents/modal/modal';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass AddCustomer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n name: '',\n lastname: '',\n birthday: '',\n gender: '',\n street: '',\n neigboorhood: '',\n number: '',\n county: '',\n _state: '',\n zip: '',\n telephone: '',\n email: '',\n card_number: '',\n id_membership: 0,\n membership_percent: 0,\n membership_name: '',\n errors: '',\n modal: false,\n value: '',\n modalContent: ''\n };\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeGender = this.handleChangeGender.bind(this);\n }\n\n componentDidMount() {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.listMembershipsAction(token, loginData._id).then(\n response => {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n );\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n name: this.state.name,\n lastname: this.state.lastname,\n birthday: this.state.birthday,\n gender: this.state.gender,\n card_number: this.state.card_number,\n id_membership: this.state.id_membership\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.name || values.name === '') {\n errors.name = 'Por favor, introduce el nombre.';\n }\n\n if (!values.lastname || values.lastname === '') {\n errors.lastname = 'Por favor, introduce los apellidos';\n }\n if (!values.birthday || values.birthday === '') {\n errors.birthday = 'Por favor, una fecha valida';\n }\n if (!values.gender || values.gender === '') {\n errors.gender = 'Por favor, seleccione un genero';\n }\n if (!values.card_number || values.card_number === '') {\n errors.card_number = 'Por favor, introduce el numero de tarjeta';\n }\n if (values.card_number.length < 4) {\n errors.card_number = 'Por favor, introduce por lo menos 4 caracteres';\n }\n if (values.card_number.length > 16) {\n errors.card_number = 'Por favor, introduce menos de 17 caracteres';\n }\n if (!values.id_membership || values.id_membership === 0 || values.id_membership.length < 10) {\n errors.membership_name = 'Por favor, selecciona un plan valido';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors);\n }\n\n isSubmitting(event, errors) {\n event.preventDefault();\n\n if (Object.keys(errors).length === 0) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n let jsonData = {};\n if (this.state.email !== '') {\n jsonData = {\n 'name': this.state.name,\n 'lastname': this.state.lastname,\n 'birthday': this.state.birthday,\n 'gender': this.state.gender,\n 'address': {\n 'street': this.state.street,\n 'neigboorhood': this.state.neigboorhood,\n 'number': this.state.number,\n 'county': this.state.county,\n 'state': this.state._state,\n 'zip': this.state.zip\n },\n 'telephone': this.state.telephone,\n 'email': this.state.email,\n 'card_number': this.state.card_number,\n 'membership': {\n 'id_membership': this.state.id_membership,\n 'percent': this.state.membership_percent,\n 'name': this.state.membership_name\n },\n 'id_company': loginData._id\n };\n } else {\n jsonData = {\n 'name': this.state.name,\n 'lastname': this.state.lastname,\n 'birthday': this.state.birthday,\n 'gender': this.state.gender,\n 'address': {\n 'street': this.state.street,\n 'neigboorhood': this.state.neigboorhood,\n 'number': this.state.number,\n 'county': this.state.county,\n 'state': this.state._state,\n 'zip': this.state.zip\n },\n 'telephone': this.state.telephone,\n 'card_number': this.state.card_number,\n 'membership': {\n 'id_membership': this.state.id_membership,\n 'percent': this.state.membership_percent,\n 'name': this.state.membership_name\n },\n 'id_company': loginData._id\n };\n }\n\n\n return insertCustomerAction(token, loginData._id, jsonData).then(r => {\n\n if (r.code === 404) {\n let errors = {};\n errors.add = 'Lo sentimos, ah ocurrido un error al registrar los datos';\n this.setState({\n errorLogin: errors,\n modalContent: 'Error al registrar los datos'\n });\n this.notifyError();\n\n } else if (r.ok) {\n this.setState({\n name: '',\n lastname: '',\n birthday: '',\n gender: '',\n street: '',\n neigboorhood: '',\n number: '',\n county: '',\n _state: '',\n zip: '',\n telephone: '',\n email: '',\n card_number: '',\n id_membership: '',\n membership_percent: '',\n membership_name: '',\n errors: '',\n });\n this.notifySuccess();\n\n } else if (r.errors) {\n let errors = {};\n errors.add = 'Error al registrar, verifique los datos';\n this.setState({\n errors: errors,\n modalContent: 'Error al registrar, verifique los datos'\n });\n this.notifyError();\n\n } else if (r.error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else if (r.error) {\n let errors = {};\n errors.add = r.error.name;\n this.setState({\n errors: errors,\n modalContent: errors.add\n });\n this.notifyError();\n\n }\n });\n }\n }\n\n handleChange(event) {\n this.setState({ id_membership: event.target.value });\n this.props.memberships.forEach(element => {\n if (element._id === event.target.value) {\n this.setState({\n membership_name: element.name,\n membership_percent: element.percent\n });\n }\n });\n }\n\n handleChangeGender(event) {\n this.setState({ gender: event.target.value });\n }\n\n notifySuccess = () => {\n toast.success(
    El usuario se agregó correctamente
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n render() {\n\n return (\n
\n
\n );\n }\n}\n\nAddCustomer.propTypes = {\n listMembershipsAction: PropTypes.func.isRequired,\n memberships: PropTypes.array.isRequired\n};\nAddCustomer.defaultProps = {\n memberships: []\n};\n\nconst mapStateToProps = state => ({\n memberships: getMembershipsList(state)\n});\nexport default withRouter(connect(mapStateToProps, { listMembershipsAction })(AddCustomer));\n","import {\n URL_API,\n GET_CUSTOMER,\n} from '../../../constants';\nimport {\n getCustomerService,\n updateCustomerService,\n clearCustomerService\n} from '../services';\nimport { createAction } from 'redux-actions';\n\nexport const getCustomerAction = createAction(GET_CUSTOMER,\n (token, idCustomer) => getCustomerService(URL_API, token, idCustomer)());\n\nexport const clearCustomerAction = createAction(GET_CUSTOMER,\n () => clearCustomerService());\n\nexport function updateCustomerAction(token, idCustomer, obj) {\n return new Promise((resolve, reject) => {\n var response = updateCustomerService(URL_API, token, idCustomer, obj);\n response ? resolve(response) : reject('error');\n });\n}\n","export function updateCustomerService(url, token, idCustomer, obj) {\n\n return new Promise((resolve, reject) => {\n var respuesta = fetch(`${url}customers/${idCustomer}`, {\n method: 'PUT',\n body: JSON.stringify(obj),\n headers: new Headers({ 'Content-type': 'application/json', 'Authorization': token })\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n respuesta ? resolve(respuesta) : reject('error-');\n });\n}\nexport const getCustomerService = (url, token, idCustomer) => () =>\n fetch(url + 'customers/' + idCustomer, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.error);\n return datos;\n }).catch((error) => {\n return error;\n });\n\nexport function clearCustomerService() {\n return {};\n}\n","export const getCustomerState = state => state.getcustomerState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport './../style.css';\nimport Container from 'react-bootstrap/Container';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport { TiInfoOutline } from 'react-icons/ti';\n\n//import ModalCustom from './../../../globalComponents/modal/modal';\nimport equal from 'fast-deep-equal';\nimport { updateCustomerAction } from './../actions';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\n\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nfunction formatDate(date) {\n\n if (date.includes('T00:00:00.000Z')) {\n date = date.replace('T00:00:00.000Z', '');\n return date;\n }\n let d = new Date(date),\n month = '' + (d.getMonth() + 1),\n day = '' + (d.getDate()),\n year = (d.getFullYear());\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [year, month, day].join('-');\n}\n\nclass FormCustomer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n name: '',\n lastname: '',\n birthday: '',\n gender: '',\n street: '',\n neigboorhood: '',\n number: '',\n county: '',\n _state: '',\n zip: '',\n telephone: '',\n email: '',\n card_number: '',\n id_membership: 0,\n membership_percent: 0,\n membership_name: '',\n errors: '',\n modal: false,\n value: '',\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n };\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.openModal = this.openModal.bind(this);\n this.closeModal = this.closeModal.bind(this);\n this.handleChange = this.handleChange.bind(this);\n this.handleChangeGender = this.handleChangeGender.bind(this);\n this.asignar = this.asignar.bind(this);\n }\n\n openModal() {\n this.setState({ modal: true });\n }\n closeModal() {\n this.setState({ modal: false });\n }\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n name: this.state.name,\n lastname: this.state.lastname,\n birthday: this.state.birthday,\n gender: this.state.gender,\n card_number: this.state.card_number,\n id_membership: this.state.id_membership\n };\n\n this.validate(event, values);\n }\n\n validate(event, values) {\n let errors = {};\n if (!values.name || values.name === '') {\n errors.name = 'Por favor, introduce el nombre.';\n }\n\n if (!values.lastname || values.lastname === '') {\n errors.lastname = 'Por favor, introduce los apellidos';\n }\n if (!values.birthday || values.birthday === '') {\n errors.birthday = 'Por favor, una fecha valida';\n }\n if (!values.gender || values.gender === '') {\n errors.gender = 'Por favor, seleccione un genero';\n }\n if (!values.card_number || values.card_number === '' || values.card_number.length < 4) {\n errors.card_number = 'Por favor, introduce el numero de tarjeta';\n }\n if (values.card_number.length < 4) {\n errors.card_number = 'Por favor, introduce por lo menos 4 caracteres';\n }\n if (values.card_number.length > 16) {\n errors.card_number = 'Por favor, introduce menos de 17 caracteres';\n }\n if (!values.id_membership || values.id_membership === 0 || values.id_membership.length < 10) {\n errors.membership_name = 'Por favor, selecciona un plan valido';\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors);\n }\n\n isSubmitting(event, errors) {\n event.preventDefault();\n\n if (Object.keys(errors).length === 0) {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n let jsonData = {};\n if (this.state.email !== '') {\n jsonData = {\n 'name': this.state.name,\n 'lastname': this.state.lastname,\n 'birthday': this.state.birthday,\n 'gender': this.state.gender,\n 'address': {\n 'street': this.state.street,\n 'neigboorhood': this.state.neigboorhood,\n 'number': this.state.number,\n 'county': this.state.county,\n 'state': this.state._state,\n 'zip': this.state.zip\n },\n 'telephone': this.state.telephone,\n 'email': this.state.email,\n 'card_number': this.state.card_number,\n 'membership': {\n 'id_membership': this.state.id_membership,\n 'percent': this.state.membership_percent,\n 'name': this.state.membership_name\n },\n 'id_company': loginData._id\n };\n } else {\n jsonData = {\n 'name': this.state.name,\n 'lastname': this.state.lastname,\n 'birthday': this.state.birthday,\n 'gender': this.state.gender,\n 'address': {\n 'street': this.state.street,\n 'neigboorhood': this.state.neigboorhood,\n 'number': this.state.number,\n 'county': this.state.county,\n 'state': this.state._state,\n 'zip': this.state.zip\n },\n 'telephone': this.state.telephone,\n 'card_number': this.state.card_number,\n 'membership': {\n 'id_membership': this.state.id_membership,\n 'percent': this.state.membership_percent,\n 'name': this.state.membership_name\n },\n 'id_company': loginData._id\n };\n }\n\n\n return updateCustomerAction(token, this.props.customerInfo._id, jsonData).then(r => {\n\n if (r.code === 404) {\n this.setState({\n modalTitle: 'Error',\n modalContent: 'Error al registrar los datos',\n modalAcceptText: 'Aceptar'\n });\n this.notifyError();\n\n } else if (r.ok) {\n this.setState({\n modalTitle: 'Actualizado',\n modalContent: 'El usuario se actualizo correctamente',\n modalAcceptText: 'Aceptar'\n });\n this.notifySuccess();\n\n } else if (r.error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else if (r.errors) {\n this.setState({\n modalTitle: 'Error',\n modalContent: 'Error al registrar, verifique los datos',\n modalAcceptText: 'Aceptar'\n });\n this.notifyError();\n\n } else if (r.error) {\n this.setState({\n modalTitle: 'Error',\n modalContent: JSON.stringify(r.error),\n modalAcceptText: 'Aceptar'\n });\n this.notifyError();\n\n }\n\n });\n\n }\n\n }\n\n handleChange(event) {\n this.setState({ id_membership: event.target.value });\n this.props.memberships.forEach(element => {\n if (element._id === event.target.value) {\n this.setState({\n membership_name: element.name,\n membership_percent: element.percent\n });\n }\n });\n }\n handleChangeGender(event) {\n this.setState({ gender: event.target.value });\n }\n\n componentDidUpdate(prevProps) {\n\n if (!equal(this.props.customerInfo, prevProps.customerInfo)) {\n this.asignar(this.props.customerInfo);\n }\n }\n\n asignar(data) {\n\n if (data._id) {\n this.setState({\n name: data.name,\n lastname: data.lastname,\n birthday: formatDate(data.birthday),\n gender: data.gender,\n street: data.address.street,\n neigboorhood: data.address.neigboorhood,\n number: data.address.number,\n county: data.address.county,\n _state: data.address.state,\n zip: data.address.zip,\n telephone: data.telephone,\n email: data.email,\n card_number: data.card_number,\n id_membership: data.membership.id_membership,\n membership_percent: data.membership.percent,\n membership_name: data.membership.name,\n });\n }\n }\n\n notifySuccess = () => {\n toast.success(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
    {this.state.modalContent}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n render() {\n\n return (\n\n
\n
\n
\n
\n
\n

Clientes / Editar Cliente

\n
\n
\n

Ingresa los datos del nuevo cliente para crearlo

\n
\n\n \n\n \n
\n
\n
\n \n \n {this.state.errors.add && (\n {this.state.errors.add}\n )}\n \n \n \n \n \n \n this.setState({ name: event.target.value })}\n className={(this.state.errors.name && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Nombre*\n {this.state.errors.name && (\n {this.state.errors.name}\n )}\n \n \n \n \n \n this.setState({ lastname: event.target.value })}\n className={(this.state.errors.lastname && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Apellidos*\n {this.state.errors.lastname && (\n {this.state.errors.lastname}\n )}\n \n \n \n \n \n \n \n \n this.setState({ birthday: event.target.value })}\n className={(this.state.errors.birthday && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Fecha de nacimiento*\n {this.state.errors.birthday && (\n {this.state.errors.birthday}\n )}\n \n \n \n \n \n \n \n Genero*\n {this.state.errors.gender && (\n {this.state.errors.gender}\n )}\n \n \n \n \n \n this.setState({ street: event.target.value })}\n className={(this.state.errors.street && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n domicilio\n {this.state.errors.street && (\n {this.state.errors.street}\n )}\n \n \n \n \n \n \n \n this.setState({ number: event.target.value })}\n className={(this.state.errors.number && ('input-errorLine')) + ' input-form'}\n minLength=\"1\" maxLength=\"100\" />\n \n \n Número\n {this.state.errors.number && (\n {this.state.errors.number}\n )}\n \n \n \n \n \n this.setState({ neigboorhood: event.target.value })}\n className={(this.state.errors.neigboorhood && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Zona\n {this.state.errors.neigboorhood && (\n {this.state.errors.neigboorhood}\n )}\n \n \n \n \n \n this.setState({ county: event.target.value })}\n className={(this.state.errors.county && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Pais\n {this.state.errors.county && (\n {this.state.errors.county}\n )}\n \n \n \n \n \n \n \n this.setState({ _state: event.target.value })}\n className={(this.state.errors._state && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Estado\n {this.state.errors._state && (\n {this.state.errors._state}\n )}\n \n \n \n \n \n this.setState({ zip: event.target.value })}\n className={(this.state.errors.zip && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Codigo postal\n {this.state.errors.zip && (\n {this.state.errors.zip}\n )}\n \n \n \n \n \n this.setState({ telephone: event.target.value })}\n className={(this.state.errors.telephone && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Telefono\n {this.state.errors.telephone && (\n {this.state.errors.telephone}\n )}\n \n \n \n \n \n \n \n this.setState({ email: event.target.value })}\n className={(this.state.errors.email && ('input-errorLine')) + ' input-form'}\n minLength=\"2\" maxLength=\"40\" />\n \n \n Correo electronico\n {this.state.errors.email && (\n {this.state.errors.email}\n )}\n \n \n \n \n \n this.setState({ card_number: event.target.value })}\n className={(this.state.errors.card_number && ('input-errorLine')) + ' input-form'}\n minLength=\"4\" maxLength=\"16\" />\n \n \n Numero de tarjeta*\n {this.state.errors.card_number && (\n {this.state.errors.card_number}\n )}\n \n \n \n \n {this.props.memberships ? (\n \n ) : ('')}\n \n \n Plan*\n {this.state.errors.membership_name && (\n {this.state.errors.membership_name}\n )}\n \n \n \n\n \n \n {CurrentUserIsActive()?(\n \n
\n
\n
\n
\n \n Volver\n \n \n \n \n
\n
\n
\n
\n \n ):('')}\n\n
\n
\n
\n
\n
\n
\n );\n }\n}\n\nFormCustomer.propTypes = {\n memberships: PropTypes.array.isRequired,\n customerInfo: PropTypes.object.isRequired,\n customId: PropTypes.string.isRequired,\n};\nFormCustomer.defaultProps = {\n memberships: [],\n customerInfo: {},\n customId: 0,\n};\n\nexport default withRouter(FormCustomer);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\nimport { listMembershipsAction } from './../../addCustomer/actions';\nimport { getCustomerAction, clearCustomerAction } from '../actions';\nimport { getMembershipsList } from './../../addCustomer/selectors';\nimport { getCustomerState } from './../selectors';\n\nimport FormCustomer from './../components/formCustomer';\n\nclass EditCustomer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n errors: ''\n };\n\n }\n\n componentDidMount() {\n this.props.clearCustomerAction();\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.listMembershipsAction(token, loginData._id).then(\n response=> {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n ).catch(error => {\n\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n this.props.getCustomerAction(token, this.props.match.params.customId).then(\n response=>{\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n ).catch(error => {\n\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n render() {\n\n return (\n
\n
\n );\n }\n}\n\nEditCustomer.propTypes = {\n listMembershipsAction: PropTypes.func.isRequired,\n getCustomerAction: PropTypes.func.isRequired,\n clearCustomerAction: PropTypes.func.isRequired,\n memberships: PropTypes.array.isRequired,\n customerInfo: PropTypes.object.isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n customId: PropTypes.string.isRequired,\n })\n })\n};\nEditCustomer.defaultProps = {\n memberships: [],\n customerInfo: {}\n};\n\nconst mapStateToProps = state => ({\n memberships: getMembershipsList(state),\n customerInfo: getCustomerState(state)\n});\nexport default withRouter(connect(mapStateToProps,\n {\n listMembershipsAction,\n getCustomerAction,\n clearCustomerAction\n })(EditCustomer));\n","import {\n URL_API,\n GET_CUSTOMER,\n} from '../../../constants';\nimport {\n getCustomerService,\n clearCustomerService\n} from '../services';\nimport { createAction } from 'redux-actions';\n\nexport const getCustomerAction = createAction(GET_CUSTOMER,\n (token, idCustomer) => getCustomerService(URL_API, token, idCustomer)());\n\nexport const clearCustomerAction = createAction(GET_CUSTOMER,\n () => clearCustomerService());\n\n","\nexport const getCustomerService = (url, token, idCustomer) => () =>\n fetch(url + 'customers/' + idCustomer, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Authorization': token\n }\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.ok) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.error);\n return datos;\n }).catch((error) => {\n return error;\n });\n\nexport function clearCustomerService() {\n return {};\n}\n","export const getCustomerState = state => state.getcustomerState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport PropTypes from 'prop-types';\nimport './../style.css';\nimport Container from 'react-bootstrap/Container';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\nimport { TiInfoOutline } from 'react-icons/ti';\n\nimport equal from 'fast-deep-equal';\n\nfunction formatDate(date) {\n\n if (date.includes('T00:00:00.000Z')) {\n date = date.replace('T00:00:00.000Z', '');\n return date;\n }\n let d = new Date(date),\n month = '' + (d.getMonth() + 1),\n day = '' + (d.getDate()),\n year = (d.getFullYear());\n\n if (month.length < 2)\n month = '0' + month;\n if (day.length < 2)\n day = '0' + day;\n\n return [year, month, day].join('-');\n}\n\nclass FormCustomerLabel extends Component {\n constructor(props) {\n super(props);\n this.state = {\n name: '',\n lastname: '',\n birthday: '',\n gender: '',\n street: '',\n neigboorhood: '',\n number: '',\n county: '',\n _state: '',\n zip: '',\n telephone: '',\n email: '',\n card_number: 0,\n id_membership: 0,\n membership_percent: 0,\n membership_name: '',\n errors: '',\n modal: false,\n value: '',\n modalTitle: '',\n modalContent: '',\n modalAcceptText: '',\n };\n\n this.asignar = this.asignar.bind(this);\n }\n\n componentDidUpdate(prevProps) {\n if (!equal(this.props.customerInfo, prevProps.customerInfo)) {\n this.asignar(this.props.customerInfo);\n }\n }\n\n asignar(data) {\n\n if (data._id) {\n this.setState({\n name: data.name,\n lastname: data.lastname,\n birthday: formatDate(data.birthday),\n gender: data.gender,\n street: data.address.street,\n neigboorhood: data.address.neigboorhood,\n number: data.address.number,\n county: data.address.county,\n _state: data.address.state,\n zip: data.address.zip,\n telephone: data.telephone,\n email: data.email,\n card_number: data.card_number,\n id_membership: data.membership.id_membership,\n membership_percent: data.membership.percent,\n membership_name: data.membership.name,\n });\n }\n }\n\n render() {\n\n return (\n\n
\n
\n
\n
\n
\n

Clientes / Ver Cliente

\n
\n
\n
\n
\n
\n\n \n
\n
\n \n \n {this.state.errors.add && (\n {this.state.errors.add}\n )}\n \n \n \n \n \n

Nombre: {this.state.name}

\n
\n \n \n \n

Apellidos: {this.state.lastname}

\n
\n \n \n
\n \n \n \n

Fecha de nacimiento: {this.state.birthday}

\n
\n \n \n \n

Genero: {this.state.gender}

\n
\n \n \n \n

Domicilio: {this.state.street}

\n
\n \n
\n \n \n \n

Número: {this.state.number}

\n
\n \n \n \n

Zona: {this.state.neigboorhood}

\n
\n \n \n \n

Pais: {this.state.county}

\n
\n \n
\n \n \n \n

Estado: {this.state._state}

\n
\n \n \n \n

Codigo postal: {this.state.zip}

\n
\n \n \n \n

Telefono: {this.state.telephone}

\n
\n \n
\n \n \n \n

Correo electronico: {this.state.email}

\n
\n \n \n \n

Numero de tarjeta: {this.state.card_number}

\n
\n \n \n \n

Plan: {this.state.membership_name}

\n
\n \n
\n\n \n \n \n
\n
\n
\n
\n \n \n Volver\n \n
\n
\n
\n
\n \n
\n\n
\n
\n\n
\n
\n\n );\n }\n}\n\nFormCustomerLabel.propTypes = {\n customerInfo: PropTypes.object.isRequired,\n customId: PropTypes.string.isRequired,\n};\nFormCustomerLabel.defaultProps = {\n customerInfo: {},\n customId: 0,\n};\n\nexport default withRouter(FormCustomerLabel);\n","import React, { Component } from 'react';\nimport { withRouter } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport Nav from './../../menu/navBar';\nimport SideBar from './../../menu/sideBar';\nimport './../style.css';\nimport { getCustomerAction, clearCustomerAction } from '../actions';\nimport { getCustomerState } from './../selectors';\n\nimport FormCustomerLabel from './../components/formCustomer';\n\nclass SeeCustomer extends Component {\n constructor(props) {\n super(props);\n this.state = {\n errors: ''\n };\n\n }\n\n componentDidMount() {\n this.props.clearCustomerAction();\n const token = JSON.parse(localStorage.getItem('token'));\n this.props.getCustomerAction(token, this.props.match.params.customId).then(\n response => {\n if (response.payload[0].name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n }\n ).catch(error => {\n if (error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n\n render() {\n\n return (\n
\n
\n );\n }\n}\n\nSeeCustomer.propTypes = {\n getCustomerAction: PropTypes.func.isRequired,\n clearCustomerAction: PropTypes.func.isRequired,\n customerInfo: PropTypes.object.isRequired,\n match: PropTypes.shape({\n params: PropTypes.shape({\n customId: PropTypes.string.isRequired,\n })\n })\n};\nSeeCustomer.defaultProps = {\n customerInfo: {}\n};\n\nconst mapStateToProps = state => ({\n customerInfo: getCustomerState(state)\n});\nexport default withRouter(connect(mapStateToProps,\n {\n getCustomerAction,\n clearCustomerAction\n })(SeeCustomer));\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter } from 'react-router-dom';\nimport './../style.css';\nimport { TiInfoOutline } from 'react-icons/ti';\n\nclass logoutCont extends Component {\n\n constructor(props) {\n super(props);\n this.state = {\n isLogged: false,\n minutes: 0,\n seconds: 4\n };\n }\n\n componentDidMount() {\n localStorage.removeItem('loginData');\n localStorage.removeItem('token');\n localStorage.clear();\n\n if (this.props.match.params.tokenStatus !== 'true') {\n if(this.props.match.params.policies !== 'true'){\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/login/admin');\n } else {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/login/admin/false/true');\n }\n } else {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/login/admin/true');\n /*this.myInterval = setInterval(() => {\n const { seconds, minutes } = this.state;\n if (seconds > 0) {\n this.setState(({ seconds }) => ({\n seconds: seconds - 1\n }));\n }\n if (seconds === 0) {\n if (minutes === 0) {\n clearInterval(this.myInterval);\n } else {\n this.setState(({ minutes }) => ({\n minutes: minutes - 1,\n seconds: 59\n }));\n }\n }\n }, 1000);*/\n }\n }\n\n componentDidUpdate() {\n localStorage.removeItem('loginData');\n localStorage.removeItem('token');\n localStorage.clear();\n\n if (this.props.match.params.tokenStatus !== 'true') {\n //clearInterval(this.myInterval);\n if(this.props.match.params.policies !== 'true'){\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/login/admin');\n } else {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/login/admin/false/true');\n }\n } else if (this.state.seconds === 0) {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/login/admin');\n }\n }\n\n render() {\n\n return (\n
\n {this.props.match.params.tokenStatus ?\n (

Tu Sesión ha expirado

) : ('')}\n
\n );\n }\n}\n\nlogoutCont.propTypes = {\n match: PropTypes.shape({\n params: PropTypes.shape({\n tokenStatus: PropTypes.string,\n policies: PropTypes.string,\n })\n })\n};\n\nexport default withRouter(logoutCont);\n\n","import {\n actualizarUserAdminService,\n updatePasswordAdminService\n} from '../services/actualizarUserAdminService';\nimport { URL_API } from './../../../constants';\n\nexport function actualizarUserAdminAction(data, id, token) {\n return new Promise((resolve, reject) => {\n var response = actualizarUserAdminService(URL_API, data, id, token);\n response ? resolve(response) : reject('error');\n });\n}\n\nexport function updatePasswordAction(token, data) {\n return new Promise((resolve, reject) => {\n var response = updatePasswordAdminService(URL_API, token, data);\n response ? resolve(response) : reject('error');\n });\n}\n","/* eslint-disable no-else-return */\nexport function actualizarUserAdminService(url, data, id, token) {\n\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var res = fetch(url + 'company/'+id, {\n method: 'PUT',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n })\n .then(function (response) {\n let status = response.status;\n let res = {ok: response.ok, status: status};\n if(status === 401){\n return res;\n } else {\n return response.json();\n }\n })\n .then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n res ? resolve(res) : reject('error-');\n });\n}\n\nexport function updatePasswordAdminService(url, token, data) {\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return new Promise((resolve, reject) => {\n var respuesta = fetch(`${url}auth/update/admin/password`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n 'Authorization': token\n },\n body: URLSearchParams\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n return responser;\n }).catch((error) => {\n return error;\n });\n respuesta ? resolve(respuesta) : reject('error-');\n });\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport { withRouter, Link } from 'react-router-dom';\n\nimport {\n actualizarUserAdminAction,\n updatePasswordAction\n} from './../actions/actualizarUserAdminAction';\n//import ModalSucces from './modalSucces';\nimport { TiInfoOutline } from 'react-icons/ti';\nimport Form from 'react-bootstrap/Form';\nimport Col from 'react-bootstrap/Col';\n//import ModalCustom from './../../../globalComponents/modal/modal';\nimport { CurrentUserIsActive } from './../../../helpers/capabilitiesControl';\nimport { ToastContainer, toast } from 'react-toastify';\nimport 'react-toastify/dist/ReactToastify.css';\nimport {\n IoIosCheckmarkCircle,\n IoIosCloseCircle\n} from 'react-icons/io';\n\nclass FormEditUsersAdmin extends Component {\n\n constructor(props) {\n\n super(props);\n\n this.state = {\n idEmpresa: props.userAdmin._id,\n email: props.userAdmin.email,\n username: props.userAdmin.username,\n name: props.userAdmin.name,\n maxUsers: props.userAdmin.max_users,\n newPassword: '',\n changePass: false,\n errors: {},\n errorSubmit: {},\n actualizado: false,\n modal: false,\n message: ''\n };\n\n this.handleSubmit = this.handleSubmit.bind(this);\n this.validate = this.validate.bind(this);\n this.isSubmitting = this.isSubmitting.bind(this);\n this.onCloseModal = this.onCloseModal.bind(this);\n this.changePass = this.changePass.bind(this);\n this.closeModal = this.closeModal.bind(this);\n }\n\n handleSubmit(event) {\n event.preventDefault();\n\n let values = {\n email: this.state.email,\n name: this.state.name\n };\n\n this.validate(event, values, this.state.newPassword);\n }\n closeModal() {\n this.setState({ modal: false });\n }\n validate(event, values, newPassword) {\n let errors = {};\n if (!values.email || values.email === '') {\n errors.email = 'Por favor, introduce tu correo.';\n } else if (!/\\S+@\\S+\\.\\S+/.test(values.email)) {\n errors.email = 'Lo sentimos, correo inválido.';\n }\n\n if (!values.name || values.name === '') {\n errors.name = 'Por favor, introduce el nombre de la empresa.';\n }\n if (this.state.changePass) {\n if (!newPassword || newPassword === '') {\n errors.newPassword = 'Por favor, introduce una contraseña.';\n }\n }\n\n this.setState({ errors });\n this.isSubmitting(event, errors, values);\n }\n\n isSubmitting(event, errors, values) {\n event.preventDefault();\n\n if (Object.keys(errors).length === 0) {\n const token = JSON.parse(localStorage.getItem('token'));\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n\n return actualizarUserAdminAction(values, this.state.idEmpresa, token).then(r => {\n if (r.ok) {\n if (r.data.ok) {\n //eslint-disable no-else-return\n if (this.state.changePass) {\n let newdata = {\n id: loginData._id,\n password: this.state.newPassword\n };\n\n return updatePasswordAction(token, newdata).then(\n response => {\n if (response.ok) {\n this.setState({\n actualizado: true,\n changePass: false,\n newPassword: '',\n message:'Datos actualizados'\n });\n this.notifySuccess();\n } else if (response.error.name === 'TokenExpiredError') {\n // eslint-disable-next-line react/prop-types\n this.props.history.push('/admin/logout/true');\n } else {\n this.setState({\n modal: true,\n message:'La acción no pudo completarse correctamente'\n });\n this.notifyError();\n }\n }\n );\n }\n this.setState({\n actualizado: true,\n message:'Datos actualizados'\n });\n this.notifySuccess();\n\n } else\n if (!r.data.ok) {\n if (Object.keys(r.data).length === 1) {\n if (r.data.message) {\n this.setState({\n actualizado: false,\n errors: {\n email: 'Este correo ya existe para otro usuario.'\n },\n message: 'Este correo ya existe para otro usuario.'\n });\n this.notifyError();\n\n }\n } else if (Object.keys(r.data).length === 2) {\n if (r.data.message.errors.username) {\n this.setState({\n actualizado: false,\n errors: {\n username: 'Este nickname ya existe para otro usuario.'\n },\n message: 'Este nickname ya existe para otro usuario.'\n });\n this.notifyError();\n\n }\n } else {\n this.setState({\n actualizado: false,\n message: 'Error actualizando.'\n });\n this.notifyError();\n }\n }\n } else if (r.status) {\n if (r.status === 401)\n this.props.history.push('/admin/logout/true');\n }\n });\n }\n\n }\n\n changePass() {\n this.setState({\n changePass: !this.state.changePass\n });\n }\n\n onCloseModal() {\n this.setState({\n actualizado: false\n });\n }\n\n notifySuccess = () => {\n toast.success(
    {this.state.message}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n notifyError = () => {\n toast.error(
    {this.state.message}
, {\n position: toast.POSITION.TOP_RIGHT\n });\n };\n\n\n render() {\n return (\n
\n
\n
\n
\n \n\n
\n\n\n \n \n \n \n this.setState({ email: event.target.value })} required\n className={(this.state.errors.email && ('input-errorLine')) + ' input-form'}\n minLength=\"1\" maxLength=\"90\" />\n \n \n Correo electrónico*\n {this.state.errors.email && (\n {this.state.errors.email}\n )}\n \n \n \n \n \n this.setState({ name: event.target.value })} required\n className={(this.state.errors.name && ('input-errorLine')) + ' input-form'}\n minLength=\"1\" maxLength=\"90\" />\n \n \n Nombre de la empresa*\n {this.state.errors.name && (\n {this.state.errors.name}\n )}\n \n \n \n \n \n \n
\n
\n \n \n \n \n \n \n Nickname de la empresa\n {this.state.errors.username && (\n {this.state.errors.username}\n )}\n \n \n \n \n \n \n \n Usuarios máximos\n {this.state.errors.maxUsers && (\n {this.state.errors.maxUsers}\n )}\n \n \n \n \n {\n this.state.changePass ? (\n this.setState({ newPassword: event.target.value })}\n className={' input-form custom-input ' + (this.state.errors.newPassword && ('input-errorLine'))} />\n ) : (\n \n )\n }\n \n \n Contraseña         [Cambiar]\n {this.state.errors.newPassword && (\n {this.state.errors.newPassword}\n )}\n \n \n \n\n \n \n {CurrentUserIsActive() ? (\n \n
\n
\n
\n
\n \n Volver\n \n \n \n \n
\n
\n
\n
\n \n ) : ('')}\n\n
\n\n
\n
\n
\n\n
\n\n\n\n
\n );\n }\n}\n\nFormEditUsersAdmin.propTypes = {\n userAdmin: PropTypes.object.isRequired,\n updatePasswordAction: PropTypes.func,\n history: PropTypes.object,\n};\n\nexport default withRouter(FormEditUsersAdmin);\n","export const getUserAdminService = (url, data) => () => {\n var URLSearchParams = Object.keys(data).map((key) => {\n return (key) + '=' + (data[key]);\n }).join('&');\n\n return fetch(url + 'company/company', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded',\n 'Accept': '*/*',\n },\n body: URLSearchParams\n }).then(function (response) {\n return response.json();\n }).then(function (responser) {\n if (responser.data) {\n return responser.data;\n }\n const datos = [];\n datos.push(responser.data);\n return datos;\n }).catch((error) => {\n return error;\n });\n};\n\n\n\n","import { getUserAdminService } from './../services/getUserAdminService';\nimport { URL_API } from './../../../constants';\nimport { GET_USER_ADMIN } from './../../../constants';\nimport { createAction } from 'redux-actions';\n\nexport const getUserAdminAction = createAction(GET_USER_ADMIN,\n (data) => getUserAdminService(URL_API, data)());\n","export const listUsersAdmin = state => state.usersAdminState;\nexport const getUserAdmin = state => state.usersAdminState;\n","import React, { Component } from 'react';\nimport { withRouter, Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\n\nimport Nav from '../../menu/navBar';\nimport SideBar from '../../menu/sideBar';\nimport FormEditUsersAdmin from './../components/formEditUsersAdmin';\nimport { getUserAdminAction } from './../actions/getUserAdminAction';\nimport { getUserAdmin } from './../selectors';\nimport './../style.css';\n\nclass profileAdminEdit extends Component {\n\n componentDidMount() {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n\n const data = {\n username: loginData.username\n };\n this.props.getUserAdminAction(data);\n }\n\n render() {\n const userAdmin = this.props.userAdmin;\n\n return (\n
\n
\n );\n }\n}\n\nprofileAdminEdit.propTypes = {\n userAdmin: PropTypes.array.isRequired,\n getUserAdminAction: PropTypes.func.isRequired,\n};\n\nprofileAdminEdit.defaultProps = {\n userAdmin: []\n};\n\nconst mapStateToProps = state => ({\n userAdmin: getUserAdmin(state)\n});\n\nexport default withRouter(connect(mapStateToProps, { getUserAdminAction })(profileAdminEdit));\n","import React from 'react';\nimport {\n Route, Redirect\n} from 'react-router-dom';\nimport PropTypes from 'prop-types';\n\nconst fakeAuthUser = {\n isAuthenticated: false,\n authenticate(cb) {\n this.isAuthenticated = true;\n setTimeout(cb, 100);\n },\n signout(cb) {\n this.isAuthenticated = false;\n setTimeout(cb, 100);\n }\n};\n\n//only rol user\nconst PrivateRouteUser = ({ component: Component, ...rest }) => {\n const loginData = JSON.parse(localStorage.getItem('loginData'));\n const token = JSON.parse(localStorage.getItem('token'));\n\n if (loginData !== null && token !== null) {\n if (token && loginData.role === 'user') {\n fakeAuthUser.authenticate();\n } else {\n fakeAuthUser.signout();\n }\n } else {\n fakeAuthUser.signout();\n }\n\n return (\n (\n fakeAuthUser.isAuthenticated === true\n ? \n : \n )} />\n );\n};\n\nPrivateRouteUser.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n\n\nconst fakeAuthAdm = {\n isAuthenticated: false,\n authenticate(cb) {\n this.isAuthenticated = true;\n setTimeout(cb, 100);\n },\n signout(cb) {\n this.isAuthenticated = false;\n setTimeout(cb, 100);\n }\n};\n\n//only rol admin\nconst PrivateRouteAdmin = ({ component: Component, ...rest }) => {\n const token = JSON.parse(localStorage.getItem('token'));\n const data = JSON.parse(localStorage.getItem('loginData'));\n if (data !== null && token !== null) {\n if (token && data.role === 'admin') {\n fakeAuthAdm.authenticate();\n } else {\n fakeAuthAdm.signout();\n }\n } else {\n fakeAuthAdm.signout();\n }\n\n return (\n (\n fakeAuthAdm.isAuthenticated === true\n ? \n : \n )} />\n );\n};\n\nPrivateRouteAdmin.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n\nconst fakeAuthRoot = {\n isAuthenticated: false,\n authenticate(cb) {\n this.isAuthenticated = true;\n setTimeout(cb, 100);\n },\n signout(cb) {\n this.isAuthenticated = false;\n setTimeout(cb, 100);\n }\n};\n\n//only rol Root\nconst PrivateRouteRoot = ({ component: Component, ...rest }) => {\n const token = JSON.parse(localStorage.getItem('token'));\n const data = JSON.parse(localStorage.getItem('loginData'));\n if (data !== null && token !== null) {\n if (token && data.role === 'root') {\n fakeAuthRoot.authenticate();\n } else {\n fakeAuthRoot.signout();\n }\n } else {\n fakeAuthRoot.signout();\n }\n\n return (\n (\n fakeAuthRoot.isAuthenticated === true\n ? \n : \n )} />\n );\n};\n\nPrivateRouteRoot.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n\n\nconst fakeAuthManagement = {\n isAuthenticated: false,\n authenticate(cb) {\n this.isAuthenticated = true;\n setTimeout(cb, 100);\n },\n signout(cb) {\n this.isAuthenticated = false;\n setTimeout(cb, 100);\n }\n};\n\n//only managements rol\nconst PrivateRouteManagement = ({ component: Component, ...rest }) => {\n const token = JSON.parse(localStorage.getItem('token'));\n const data = JSON.parse(localStorage.getItem('loginData'));\n if (data !== null && token !== null) {\n if (token && (data.role === 'root' || data.role === 'admin')) {\n fakeAuthManagement.authenticate();\n } else {\n fakeAuthManagement.signout();\n }\n } else {\n fakeAuthManagement.signout();\n }\n\n return (\n (\n fakeAuthManagement.isAuthenticated === true\n ? \n : \n )} />\n );\n};\n\nPrivateRouteManagement.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n\n\nconst fakeAuth = {\n isAuthenticated: false,\n authenticate(cb) {\n this.isAuthenticated = true;\n setTimeout(cb, 100);\n },\n signout(cb) {\n this.isAuthenticated = false;\n setTimeout(cb, 100);\n }\n};\nconst PrivateRoute = ({ component: Component, ...rest }) => {\n const token = JSON.parse(localStorage.getItem('token'));\n const data = JSON.parse(localStorage.getItem('loginData'));\n if (data !== null && token) {\n if (token && data.rol) {\n fakeAuth.authenticate();\n } else {\n fakeAuth.signout();\n }\n } else {\n fakeAuth.signout();\n }\n\n return (\n (\n fakeAuth.isAuthenticated === true\n ? \n : \n )} />\n );\n};\n\nPrivateRoute.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n/*\nconst fakeAuthPublic = {\n isAuthenticated: false,\n routeLog: '/',\n authenticateStd(cb) {\n this.isAuthenticated = true;\n this.routeLog = '/user/home';\n setTimeout(cb, 100);\n },\n authenticateAdm(cb) {\n this.isAuthenticated = true;\n this.routeLog = '/admin/students';\n setTimeout(cb, 100);\n },\n signout(cb) {\n this.isAuthenticated = false;\n setTimeout(cb, 100);\n }\n};\n\nconst PublicRoute = ({ component: Component, ...rest }) => {\n\n const data = JSON.parse(localStorage.getItem('loginData'));\n if (data !== null) {\n if (data.token && data.user) {\n if (data.user.role === 'user') {\n fakeAuthPublic.authenticateStd();\n } else if (data.user.role === 'admin') {\n fakeAuthPublic.authenticateAdm();\n } else {\n fakeAuthPublic.signout();\n }\n } else {\n fakeAuthPublic.signout();\n }\n } else {\n fakeAuthPublic.signout();\n }\n\n return (\n (\n fakeAuthPublic.isAuthenticated === true ?\n \n : \n )} />\n );\n};\n\nPublicRoute.propTypes = {\n component: PropTypes.any,\n location: PropTypes.any,\n};\n*/\n\nexport { PrivateRoute, PrivateRouteUser, PrivateRouteAdmin, PrivateRouteRoot, PrivateRouteManagement };\n","/* eslint-disable no-dupe-else-if */\nimport React from 'react';\nimport { BrowserRouter as Router, Route, Switch } from 'react-router-dom';\nimport './App.css';\n\nimport FormDemo from './globalComponents/form/containers';\nimport LoginContainerAdmin from './login/loginAdmin/containers';\n//import LoginContainerUser from './login/loginUser/containers';\n//import FormLoginUserEmpresaContainer from './login/loginUser/containers/formLoginUserEmpresaContainer';\nimport ResetPasswordContainer from './login/resetPassword/containers';\nimport ResetPasswordTokenContainer from './login/resetPassword/containers/resetPasswordTokenContainer';\n\nimport HomeContainerAdmin from './management/home/containers';\nimport createUser from './management/createUserEmp/container';\nimport listUsers from './management/listUserEmp/container';\nimport democomponent from './democomponent';\nimport editUser from './management/editUserEmp/container';\nimport SeeUser from './management/seeUserEmp/container';\n\nimport ListarUsersAdminContainer from './management/usersAdmin/containers/listarUsersAdminContainer';\nimport AgregarUserAdminContainer from './management/usersAdmin/containers/agregarUserAdminContainer';\nimport EditarUserAdminContainer from './management/usersAdmin/containers/editarUserAdminContainer';\nimport VerUserAdminContainer from './management/usersAdmin/containers/verUserAdminContainer';\nimport ListarPlanesAdminContainer from './management/planesAdmin/containers/listarPlanesAdminContainer';\nimport AgregaPlanAdminContainer from './management/planesAdmin/containers/agregaPlanAdminContainer';\nimport ActualizarPlanAdminContainer from './management/planesAdmin/containers/actualizarPlanAdminContainer';\nimport VerPlanAdminContainer from './management/planesAdmin/containers/verPlanAdminContainer';\n\nimport 'bootstrap/dist/css/bootstrap.min.css';\n\nimport checkCard from './checkPoints/content/checkCard';\nimport checkPoints from './checkPoints/content/checkPoints';\nimport ListCustomers from './management/listCustomers/container';\nimport AddCustomer from './management/addCustomer/container';\nimport EditCustomer from './management/editCustomer/container';\nimport SeeCustomer from './management/seeCustomer/container';\nimport logoutCont from './management/logout/container';\nimport profileAdminEdit from './management/adminProfile/container';\nimport {\n PrivateRouteRoot, // only ROOt\n PrivateRouteAdmin, // only ADMIN\n PrivateRouteManagement, // for ROOT or ADMIN\n //PrivateRouteUser, // only user\n //PrivateRoute // only need session\n} from './helpers/accessControl';\n\nfunction App() {\n\n return (\n
\n \n \n \n {\n /*\n \n \n */\n }\n \n \n \n \n\n \n \n \n \n \n\n \n\n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n
\n );\n\n}\n\nexport default App;\n","import { handleActions } from 'redux-actions';\nimport { MENU } from './../constants';\n\nexport const menuState = handleActions({\n [MENU]: (state, action) => [...action.payload],\n}, []);\n","import { handleActions } from 'redux-actions';\nimport { LIST_USERS, GET_USER } from './../constants';\n\nexport const usersState = handleActions({\n [LIST_USERS]: (state, action) => [...action.payload],\n}, []);\nexport const userState = handleActions({\n [GET_USER]: (state, action) => [...action.payload],\n}, []);\n","import { handleActions } from 'redux-actions';\nimport { LIST_USERS_ADMIN, DELETE_USERS_ADMIN, GET_USER_ADMIN } from './../constants';\n\nexport const usersAdminState = handleActions({\n [LIST_USERS_ADMIN]: (state, action) => [...action.payload],\n [GET_USER_ADMIN]: (state, action) => [...action.payload],\n [DELETE_USERS_ADMIN]: (state, action) => {\n return (state.filter(u => u._id !== action.payload));\n }\n}, []);\n","import { handleActions } from 'redux-actions';\nimport { LIST_CUSTOMERS_ADMIN, GET_CUSTOMER } from './../constants';\n\nexport const customersState = handleActions({\n [LIST_CUSTOMERS_ADMIN]: (state, action) => [...action.payload],\n}, []);\n\nexport const getcustomerState = handleActions({\n [GET_CUSTOMER]: (state, action) => {\n return {...action.payload};\n },\n}, {});\n","import { handleActions } from 'redux-actions';\nimport { LIST_MEMBERSHIPS } from '../constants';\n\nexport const membershipState = handleActions({\n [LIST_MEMBERSHIPS]: (state, action) => [...action.payload],\n}, []);\n","import { handleActions } from 'redux-actions';\nimport { LIST_PLANES_ADMIN, GET_PLAN_ADMIN } from './../constants';\n\nexport const planesAdminState = handleActions({\n [LIST_PLANES_ADMIN]: (state, action) => [...action.payload],\n}, []);\nexport const planAdminState = handleActions({\n [GET_PLAN_ADMIN]: (state, action) => [...action.payload],\n}, []);\n","import { handleActions } from 'redux-actions';\nimport { GET_POINTS } from './../constants';\n\nexport const getPointsState = handleActions({\n [GET_POINTS]: (state, action) => {\n return {...action.payload};\n },\n}, {});\n","import { handleActions } from 'redux-actions';\nimport { GET_STATISTICS, GET_STATISTICS_PRODUCTS, GET_STATISTICS_PERHOUR } from './../constants';\n\nexport const getPStatisticsState = handleActions({\n [GET_STATISTICS]: (state, action) => {\n return { ...action.payload };\n },\n}, {});\n\nexport const getPStatisticsProductsState = handleActions({\n [GET_STATISTICS_PRODUCTS]: (state, action) => {\n return { ...action.payload };\n },\n}, {});\n\nexport const getStatisticsPerHourState = handleActions({\n [GET_STATISTICS_PERHOUR]: (state, action) => {\n return { ...action.payload };\n },\n}, {});\n","/* eslint-disable no-dupe-else-if */\nimport { combineReducers } from 'redux';\nimport { reducer as reduxForm } from 'redux-form';\nimport { menuState } from './menuAdmin';\nimport { usersState, userState } from './users';\nimport { usersAdminState } from './usersAdmin';\nimport { customersState, getcustomerState } from './customerAdmin';\nimport { membershipState } from './membership';\nimport { planesAdminState, planAdminState } from './planesAdmin';\nimport { getPointsState } from './points';\nimport {\n getPStatisticsState,\n getPStatisticsProductsState,\n getStatisticsPerHourState\n} from './statistics';\n\nexport default combineReducers({\n menuState,\n usersState,\n userState,\n usersAdminState,\n customersState,\n getcustomerState,\n membershipState,\n planesAdminState,\n planAdminState,\n getPointsState,\n getPStatisticsState,\n getPStatisticsProductsState,\n getStatisticsPerHourState,\n form: reduxForm\n});\n","/* eslint-disable no-dupe-else-if */\nimport { createStore, compose, applyMiddleware } from 'redux';\nimport promiseMiddleware from 'redux-promise';\nimport reducers from './../reducers';\n\nconst composeEchancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose;\nexport const store = createStore(reducers, {}, composeEchancers(applyMiddleware(promiseMiddleware)));\n\n","/* eslint-disable no-dupe-else-if */\n// In production, we register a service worker to serve assets from local cache.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on the \"N+1\" visit to a page, since previously\n// cached resources are updated in the background.\n\n// To learn more about the benefits of this model, read https://goo.gl/KwvDNy.\n// This link also includes instructions on opting out of this behavior.\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.1/8 is considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport default function register() {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebookincubator/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Lets check if a service worker still exists or not.\n checkValidServiceWorker(swUrl);\n } else {\n // Is not local host. Just register service worker\n registerValidSW(swUrl);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the old content will have been purged and\n // the fresh content will have been added to the cache.\n // It's the perfect time to display a \"New content is\n // available; please refresh.\" message in your web app.\n // eslint-disable-next-line no-console\n console.log('New content is available; please refresh.');\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n // eslint-disable-next-line no-console\n console.log('Content is cached for offline use.');\n }\n }\n };\n };\n })\n .catch(error => {\n // eslint-disable-next-line no-console\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl)\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n if (\n response.status === 404 ||\n response.headers.get('content-type').indexOf('javascript') === -1\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl);\n }\n })\n .catch(() => {\n // eslint-disable-next-line no-console\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister();\n });\n }\n}\n","/* eslint-disable no-dupe-else-if */\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport './index.css';\nimport './globalComponents/buttons/containers/primary/buttonPrimary.css';\nimport './globalComponents/buttons/containers/secondary/buttonSecondary.css';\nimport './globalComponents/buttons/containers/red/buttonRed.css';\n\nimport App from './App';\nimport { Provider } from 'react-redux';\nimport { store } from './store';\nimport registerServiceWorker from './registerServiceWorker';\nconst rootComponent = (\n \n \n \n);\nReactDOM.render(rootComponent, document.getElementById('root'));\nregisterServiceWorker();\n/*\nReactDOM.render(, document.getElementById('root'));\n*/\n"],"sourceRoot":""}