{"version":3,"file":"js/landings-8a3a370ecb75efaab513.js","mappings":"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","sources":["webpack://granatrio/./app/javascript/misc/axios-config.js","webpack://granatrio/./app/javascript/info/LabelWFeedback.js","webpack://granatrio/./app/javascript/info/App.js","webpack://granatrio/./app/javascript/elements/Tooltip.js","webpack://granatrio/./app/javascript/infobubble/App.js","webpack://granatrio/./app/javascript/packs/landings.js"],"sourcesContent":["import axios from 'axios'\naxios.defaults.headers.common['X-CSRF-TOKEN'] = document.querySelector('[name=csrf-token]')?.content;\n\nif(process.env.RAILS_ENV == 'test'){\n window.axios_pending_requests = 0\n\n axios.interceptors.request.use(config => {\n window.axios_pending_requests++\n return config\n }, Promise.reject)\n\n axios.interceptors.response.use(\n response => {\n window.axios_pending_requests--\n return response\n },\n error => {\n window.axios_pending_requests--\n return Promise.reject(error)\n }\n )\n}\n","import React from 'react';\n\nconst LabelWFeedback = ({ label, feedback, children })=>{\n return (\n \n )\n}\n\nexport default LabelWFeedback;\n","import React, { useState, useEffect, useRef } from 'react';\nimport axios from 'axios';\nimport Mailcheck from 'mailcheck';\nimport LabelWFeedback from './LabelWFeedback';\n\nMailcheck.defaultTopLevelDomains.push('mx', 'com.mx');\n\nlet intervals = {};\n\nconst App = (props) => {\n let steps = props.config?.steps || [['nombre', 'email', 'telefono']];\n steps = [null, ...steps];\n const [currentStep, setCurrentStep] = useState(1);\n const [validFields, setValidFields] = useState([]);\n const [statusOnFields, setStatusOnFields] = useState({});\n const [fieldsDisabled, setFieldsDisabled] = useState(false);\n const [formSent, setFormSent] = useState(false);\n const [nombre, setNombre] = useState(null);\n const [telefono, setTelefono] = useState(null);\n const [email, setEmail] = useState(null);\n\n const itemsRef = useRef([]);\n\n const handleNombreChange = (ev) => {\n setNombre(ev.target.value);\n ev.target.setCustomValidity('');\n };\n const handleTelefonoChange = (ev) => {\n setTelefono(ev.target.value);\n ev.target.setCustomValidity('');\n };\n const handleEmailChange = (ev) => {\n setEmail(ev.target.value);\n ev.target.setCustomValidity('');\n };\n\n useEffect(() => {\n setValidFields((prev) => {\n if (nombre === null) return prev;\n prev = prev.filter((e) => e !== 'nombre');\n let slug = nombre.replace(/([^a-z\\s])*/gi, '').replace(/\\s\\s+/g, ' ');\n let err = [];\n if (slug.split(' ').filter((k) => k.length >= 2).length < 2) {\n err.push('Debes incluir nombre y apellidos');\n }\n if (slug.length < 3) {\n err.push('Escribe tu nombre');\n }\n setStatusOnFields((status_prev) => {\n return {\n ...status_prev,\n nombre: {\n status: err.length ? 'error' : 'ok',\n uxStatus: 'wait',\n message: err.splice(-1),\n element: itemsRef.current.nombre\n }\n };\n });\n clearTimeout(intervals.nombre);\n intervals.nombre = setTimeout(() => {\n setStatusOnFields((status_prev) => {\n return { ...status_prev, nombre: { ...status_prev.nombre, uxStatus: status_prev.nombre.status } };\n });\n }, 1100);\n if (!err.length) {\n return [...prev, 'nombre'];\n }\n return prev;\n });\n }, [nombre]);\n\n useEffect(() => {\n setValidFields((prev) => {\n if (email === null) return prev;\n prev = prev.filter((e) => e !== 'email');\n let err = [];\n if (\n !/^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/.test(\n email\n )\n ) {\n err.push('Tu email tiene que ser válido');\n }\n if (email.length < 3) {\n err.push('Escribe tu email');\n }\n let emailcheck = Mailcheck.run({ email: email });\n if (emailcheck?.domain.match(/(gmail|hotmail)\\./i)) {\n err.push(`Tu email parece ser incorrecto, ¿tal vez quisiste escribir ${emailcheck.full}?`);\n }\n setStatusOnFields((status_prev) => {\n return {\n ...status_prev,\n email: {\n status: err.length ? 'error' : 'ok',\n uxStatus: 'wait',\n message: err.splice(-1),\n element: itemsRef.current.email\n }\n };\n });\n clearTimeout(intervals.email);\n intervals.email = setTimeout(() => {\n setStatusOnFields((status_prev) => {\n return { ...status_prev, email: { ...status_prev.email, uxStatus: status_prev.email.status } };\n });\n }, 1100);\n if (!err.length) {\n return [...prev, 'email'];\n }\n return prev;\n });\n }, [email]);\n\n useEffect(() => {\n setValidFields((prev) => {\n if (telefono === null) return prev;\n prev = prev.filter((e) => e !== 'telefono');\n let err = [];\n if (telefono.replace(/([^\\d]+)/g, '').length != 10) {\n err.push('Debe ser a 10 dígitos');\n }\n if (telefono.length < 3) {\n err.push('Escribe tu teléfono');\n }\n setStatusOnFields((status_prev) => {\n return {\n ...status_prev,\n telefono: {\n status: err.length ? 'error' : 'ok',\n uxStatus: 'wait',\n message: err.splice(-1),\n element: itemsRef.current.telefono\n }\n };\n });\n clearTimeout(intervals.telefono);\n intervals.telefono = setTimeout(() => {\n setStatusOnFields((status_prev) => {\n return { ...status_prev, telefono: { ...status_prev.telefono, uxStatus: status_prev.telefono.status } };\n });\n }, 1100);\n if (!err.length) {\n return [...prev, 'telefono'];\n }\n return prev;\n });\n }, [telefono]);\n\n useEffect(() => {\n const itemsForStep = { ...itemsRef.current };\n const firstInput = Object.values(itemsForStep).find((it) => it);\n if (currentStep != 1)\n setTimeout(() => {\n firstInput?.focus();\n }, 100);\n }, [currentStep]);\n\n const formSubmit = async (ev) => {\n ev.preventDefault();\n let fieldsForStep = steps\n .slice(0)\n .splice(1, currentStep)\n .flat();\n if (validFields.length < fieldsForStep.length) {\n let input = Object.keys(statusOnFields)\n .map((key) => {\n return statusOnFields[key];\n })\n .find((item) => item.status === 'error');\n if (input) {\n input?.element.setCustomValidity(input.message[0]);\n input?.element.focus();\n } else {\n input = Object.values(itemsRef.current).find((t) => t);\n input?.setCustomValidity('Completa todos los campos');\n input?.focus();\n }\n ev.target.reportValidity();\n return;\n }\n\n setFieldsDisabled(true);\n try {\n const response = await axios.post('/api/lead', {\n lead: {\n nombre,\n telefono,\n email\n }\n });\n if (currentStep < steps.length - 1) {\n setCurrentStep(currentStep + 1);\n } else {\n setFormSent(true);\n }\n } catch (error) {\n alert(\n 'Hubo un error en el envío de tus datos, favor de intentarlo más tarde o contactarnos por teléfono o WhatsApp.'\n );\n console.log(error.response);\n } finally {\n setFieldsDisabled(false);\n }\n };\n\n return (\n <>\n {!formSent ? (\n
\n ) : (\n <>\n {props.config.stepContent.after ? (\n \n ) : (\n Tus datos han sido enviados correctamente\n )}\n >\n )}\n >\n );\n};\n\nexport default App;\n","import React from 'react';\nimport { Tooltip as Tippy } from 'react-tippy';\nimport { createUseStyles } from 'react-jss'\nimport 'react-tippy/dist/tippy.css';\n\nconst useStyles = createUseStyles({\n container: {\n width: 250,\n textAlign: 'left'\n }\n});\n\nconst Tooltip = (props) => {\n const classes = useStyles();\n return (\n