{"version":3,"file":"HubspotFormTarget.DRUSUXCM.mjs","names":[],"sources":["https:/framerusercontent.com/modules/SxEipUg4jBckUrlM1E6w/XpZju9HIIfx8croZktW7/HubspotFormTarget.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";// El ID del contenedor que Framer ya tiene en tu página\nconst targetContainerId=\"form-target-unique\";export default function CallTrackingLogic(props){const isFormLoaded=useRef(false);useEffect(()=>{// 1. Cargar la librería externa de HubSpot (si no está ya en el Head)\nconst scriptUrl=\"//js.hsforms.net/forms/embed/v2.js\";if(!document.querySelector(`script[src*=\"${scriptUrl}\"]`)){const script=document.createElement(\"script\");script.src=scriptUrl;script.type=\"text/javascript\";script.charset=\"utf-8\";document.head.appendChild(script);}// 2. Insertar el formulario de HubSpot\nconst interval=setInterval(()=>{// Esperar a que hbspt esté disponible\nif(window.hbspt&&!isFormLoaded.current){clearInterval(interval);window.hbspt.forms.create({portalId:\"24262448\",formId:\"4ce4dfc7-5a7b-4490-98e2-26f5ae24efc5\",region:\"na1\",// ¡IMPORTANTE! El formulario se inserta en tu Capa de Framer\ntarget:`#${targetContainerId}`,onFormReady:function($form){isFormLoaded.current=true;// Asegúrate de que el formulario esté oculto para el usuario\n$form.hide();console.log(\"HubSpot Form Ready and Hidden.\");}});}},100);return()=>clearInterval(interval);},[]);return(// Este componente actúa como un contenedor de scripts.\n// Ocultarlo visualmente en el panel de diseño de Framer.\n/*#__PURE__*/_jsx(motion.div,{style:{display:\"none\"},...props,children:/*#__PURE__*/_jsx(\"div\",{id:targetContainerId})}));}// ------------------------------------------------------------------\n// LÓGICA DEL BOTÓN: Función que debes llamar al hacer clic\n// ------------------------------------------------------------------\n// Debes usar esta función como un \"Override\" en el botón \"Llámanos\"\nexport function CallAndTrack(Component){return props=>{const handleCall=()=>{// 1. Busca el formulario cargado en la página\nconst formContainer=document.querySelector(`#${targetContainerId}`);if(formContainer){// 2. Busca el formulario generado por HubSpot (que es un div o form con clases hs)\nconst hsForm=formContainer.querySelector(\"form\");if(hsForm){// 3. (OPCIONAL) Rellenar campo si HubSpot lo requiere (p.ej., Email falso)\n// Busca un campo de Email invisible y lo rellena para que HubSpot acepte el envío.\nconst emailInput=hsForm.querySelector('input[name=\"email\"]');if(emailInput){emailInput.value=`call-track-${Date.now()}@hubspot.com`;}// 4. Fuerza el envío del formulario\nhsForm.submit();// 5. La llamada telefónica (se disparará después de que el formulario se envíe,\n// ya sea por la redirección de HubSpot o por esta línea)\n// Usaremos un pequeño retraso para asegurar que el envío HTTP salga primero.\nsetTimeout(()=>{window.location.href=\"tel:+18627012097\";},500);}else{// Si el formulario no se encuentra, llama directamente (sin rastreo)\nwindow.location.href=\"tel:+18627012097\";}}else{// Si el contenedor no se encuentra, llama directamente\nwindow.location.href=\"tel:+18627012097\";}};return /*#__PURE__*/_jsx(Component,{...props,onClick:handleCall});};}\nexport const __FramerMetadata__ = {\"exports\":{\"CallAndTrack\":{\"type\":\"reactComponent\",\"name\":\"CallAndTrack\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"default\":{\"type\":\"reactComponent\",\"name\":\"CallTrackingLogic\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./HubspotFormTarget.map"],"mappings":"mKAYA,SAAgB,EAAa,EAAU,CAAC,MAAO,IAAO,CAAC,IAAM,MAAe,CAC5E,IAAM,EAAc,SAAS,cAAc,IAAI,IAAoB,CAAC,GAAG,EAAc,CACrF,IAAM,EAAO,EAAc,cAAc,OAAO,CAAC,GAAG,EAAO,CAE3D,IAAM,EAAW,EAAO,cAAc,sBAAsB,CAAI,IAAY,EAAW,MAAM,cAAc,KAAK,KAAK,CAAC,eACtH,EAAO,QAAQ,CAGf,eAAe,CAAC,EAAO,SAAS,KAAK,oBAAqB,IAAI,MAC9D,EAAO,SAAS,KAAK,wBACrB,EAAO,SAAS,KAAK,oBAAsB,OAAoB,EAAK,EAAU,CAAC,GAAG,EAAM,QAAQ,EAAW,CAAC,yBAtBjE,IAAoC,IAAkC,CAC3G,EAAkB"}