{"version":3,"file":"TransferBasicFormData.Cl3NZK3J.mjs","names":["useRef","__esmMin","init_npm_react_18_3_1","de","init_jsx_runtime","c","ce","getCookie","m","name","withCaptureFields","ref","root","form","ensureHutkField","hutk","field","handleSubmit","vorname","nachname","email","Component","props","init_TransferBasicFormData"],"sources":["https:/framerusercontent.com/modules/0dP7f88tBrJThRC0yKtm/HIkSFepgXAmvx7qIP0ws/TransferBasicFormData.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect,useRef}from\"react\";// Liest einen Cookie-Wert aus (z.B. hubspotutk)\nfunction getCookie(name){const m=document.cookie.match(new RegExp(\"(?:^|;\\\\s*)\"+name+\"=([^;]+)\"));return m?decodeURIComponent(m[1]):\"\";}// ============================================================\n// Override 1 — auf der /kontakt-Seite dem FORM-Layer zuweisen\n// Liest Vorname/Nachname/Email beim Absenden aus und merkt sie\n// in sessionStorage. Schreibt zusaetzlich den hubspotutk-Cookie\n// in ein verstecktes Feld \"hutk\", damit Framers Webhook-Submit\n// ihn mit an n8n / HubSpot schickt (fuer Attribution).\n// Framers Webhook-Submit bleibt ansonsten unangetastet.\n// ============================================================\nexport function withCaptureFields(Component){return props=>{const ref=useRef(null);useEffect(()=>{const root=ref.current;if(!root)return;const form=root.querySelector(\"form\");if(!form)return;// --- hutk: verstecktes Feld anlegen/befuellen ---------------\n// Framer nimmt alle <input name=\"...\"> automatisch in den\n// Webhook-Payload. Wir sorgen dafuer, dass ein Feld \"hutk\"\n// existiert und den aktuellen Cookie-Wert traegt.\nconst ensureHutkField=()=>{const hutk=getCookie(\"hubspotutk\");if(!hutk)return;// kein Consent / kein Cookie -> nichts tun\nlet field=form.querySelector('input[name=\"hutk\"]');if(!field){field=document.createElement(\"input\");field.type=\"hidden\";field.name=\"hutk\";form.appendChild(field);}field.value=hutk;};// einmal beim Laden setzen ...\nensureHutkField();const handleSubmit=()=>{// ... und direkt vor dem Absenden nochmal aktualisieren\nensureHutkField();const vorname=form.querySelector('input[name=\"Vorname\"]')?.value||\"\";const nachname=form.querySelector('input[name=\"Nachname\"]')?.value||\"\";const email=form.querySelector('input[name=\"Email\"]')?.value||\"\";sessionStorage.setItem(\"meetingPrefill\",JSON.stringify({firstName:vorname,lastName:nachname,email:email}));};form.addEventListener(\"submit\",handleSubmit,true);return()=>form.removeEventListener(\"submit\",handleSubmit,true);},[]);return /*#__PURE__*/_jsx(\"div\",{ref:ref,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{...props})});};}// ============================================================\n// Override 2 — unveraendert.\n// Auf der /anfrage-erhalten-Seite einem oberen Layer zuweisen.\n// Findet den HubSpot-Meetings-iframe und haengt die gemerkten\n// Werte an dessen src, sodass der Scheduler First name /\n// Last name / Email vorausfuellt.\n// ============================================================\nexport function withApplyPrefill(Component){return props=>{useEffect(()=>{const raw=sessionStorage.getItem(\"meetingPrefill\");if(!raw)return;let data;try{data=JSON.parse(raw);}catch(_){return;}const applyToIframe=()=>{const iframe=Array.from(document.querySelectorAll(\"iframe\")).find(f=>(f.getAttribute(\"src\")||\"\").includes(\"meetings-eu1.hubspot.com\"));if(!iframe)return false;const currentSrc=iframe.getAttribute(\"src\")||\"\";if(currentSrc.includes(\"firstName=\")){sessionStorage.removeItem(\"meetingPrefill\");return true;}const url=new URL(currentSrc);if(data.firstName)url.searchParams.set(\"firstName\",data.firstName);if(data.lastName)url.searchParams.set(\"lastName\",data.lastName);if(data.email)url.searchParams.set(\"email\",data.email);iframe.setAttribute(\"src\",url.toString());sessionStorage.removeItem(\"meetingPrefill\");return true;};let tries=0;const interval=setInterval(()=>{tries++;if(applyToIframe()||tries>30){clearInterval(interval);}},300);return()=>clearInterval(interval);},[]);return /*#__PURE__*/_jsx(Component,{...props});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withApplyPrefill\":{\"type\":\"reactHoc\",\"name\":\"withApplyPrefill\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"withCaptureFields\":{\"type\":\"reactHoc\",\"name\":\"withCaptureFields\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./TransferBasicFormData.map"],"mappings":"A,yHACA,SAASO,EAAU,EAAK,CAAC,IAAMC,EAAE,SAAS,OAAO,MAAU,OAAO,cAAcC,EAAK,UAAU,CAAC,EAAE,OAAOD,EAAE,mBAAmBA,EAAE,EAAE,EAAE,EAAG,CAQvI,SAAgBE,EAAkB,EAAU,CAAC,MAAO,IAAO,CAAC,IAAMC,EAAIX,EAAO,IAAI,EAOkX,OAPhXM,MAAc,CAAC,IAAMM,EAAKD,EAAI,QAAQ,GAAG,CAACC,EAAK,OAAO,IAAMC,EAAKD,EAAK,cAAc,MAAM,EAAE,GAAG,CAACC,EAAK,OAIxL,IAAMC,MAAoB,CAAC,IAAMC,EAAKR,EAAU,YAAY,EAAE,GAAG,CAACQ,EAAK,OACvE,IAAIC,EAAMH,EAAK,cAAc,oBAAoB,EAAMG,IAAO,EAAM,SAAS,cAAc,OAAO,EAAE,EAAM,KAAK,SAAS,EAAM,KAAK,OAAOH,EAAK,YAAYG,CAAK,GAAG,EAAM,MAAMD,CAAK,EACpLD,EAAgB,EAAE,IAAMG,MAAiB,CACzCH,EAAgB,EAAE,IAAMI,EAAQL,EAAK,cAAc,uBAAuB,CAAC,EAAE,OAAO,GAASM,EAASN,EAAK,cAAc,wBAAwB,CAAC,EAAE,OAAO,GAASO,EAAMP,EAAK,cAAc,qBAAqB,CAAC,EAAE,OAAO,GAAG,eAAe,QAAQ,iBAAiB,KAAK,UAAU,CAAC,UAAUK,EAAQ,SAASC,EAAe,OAAK,CAAC,CAAC,CAAE,EAAoD,OAAlDN,EAAK,iBAAiB,SAASI,EAAa,EAAI,MAAYJ,EAAK,oBAAoB,SAASI,EAAa,EAAI,CAAE,EAAE,CAAC,CAAC,EAAsB,gBAAK,MAAM,CAAK,MAAI,MAAM,CAAC,QAAQ,UAAU,EAAE,SAAsB,gBAAKI,EAAU,CAAC,GAAGC,CAAK,CAAC,CAAC,CAAC,CAAE,CAAE,C"}