{"version":3,"file":"WithCustomHandlerFreeGuide.BtQDMyd8.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/0tifIRzRuLE2Gq1HJbkz/fVQB1qCGbGTdBDhWoxpg/WithCustomHandlerFreeGuide.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useEffect,forwardRef}from\"react\";const extractFilenameFromHeader=disposition=>{const match=disposition.match(/filename\\*?=(?:UTF-8'')?[\"']?([^\"';]+)[\"']?/i);return match?.[1]?decodeURIComponent(match[1]):\"download\";};const extractFilenameFromUrl=url=>{return url.split(\"/\").pop()||\"download\";};const downloadFile=async downloadUrl=>{try{const response=await fetch(downloadUrl);if(!response.ok){throw new Error(`Download failed: ${response.statusText}`);}const disposition=response.headers.get(\"Content-Disposition\");let filename=\"download\";if(disposition?.includes(\"filename=\")){filename=extractFilenameFromHeader(disposition);}else{filename=extractFilenameFromUrl(downloadUrl);}const blob=await response.blob();const objectUrl=URL.createObjectURL(blob);const link=document.createElement(\"a\");link.href=objectUrl;link.download=filename;document.body.appendChild(link);link.click();document.body.removeChild(link);URL.revokeObjectURL(objectUrl);}catch(error){window.open(downloadUrl,\"_blank\",\"noopener,noreferrer\");throw error;}};const submitToPardot=async(handlerUrl,formData)=>{try{const response=await fetch(handlerUrl,{method:\"POST\",headers:{\"Content-Type\":\"application/x-www-form-urlencoded\"},body:formData,mode:\"no-cors\"});if(response.type!==\"opaque\"&&!response.ok){throw new Error(`Pardot submission failed: ${response.statusText}`);}}catch(error){console.error(\"Pardot submission failed:\",error);throw error;}};const handleFormSubmission=async(form,onSuccess)=>{const formData=new FormData(form);const entries=new URLSearchParams;let pardotHandlerUrl=\"\";let downloadLink=\"\";for(const[key,value]of formData.entries()){const stringValue=String(value);entries.append(key,stringValue);if(key===\"pardotHandler\"){pardotHandlerUrl=stringValue;}else if(key===\"downloadLink\"){downloadLink=stringValue;}}try{if(pardotHandlerUrl){await submitToPardot(pardotHandlerUrl,entries);}window.dataLayer=window.dataLayer||[];window.dataLayer.push({event:\"GAEvent\",event_params:{eventCategory:\"form\",eventAction:\"success\",eventLabel:\"freeguide\",data:\"form_success_freeguide\"}});window?.analytics?.formData(\"form\",Object.fromEntries(entries));if(downloadLink){onSuccess?.();await downloadFile(downloadLink);}}catch(error){console.error(\"Form submission error:\",error);onSuccess?.();}};export function withCustomFormSubmit(Component){const WrappedComponent=/*#__PURE__*/forwardRef((props,ref)=>{const internalFormRef=useRef(null);const formRef=ref||internalFormRef;const handleSubmit=async event=>{event.preventDefault();const form=formRef.current;if(!form){console.warn(\"Form reference is null - cannot submit\");return;}const submitButton=form.querySelector('button[type=\"submit\"], input[type=\"submit\"]');if(submitButton){submitButton.disabled=true;}await handleFormSubmission(form,props.onSuccess);};useEffect(()=>{const form=formRef.current;if(!form){console.warn(\"Form not found during effect setup\");return;}form.addEventListener(\"submit\",handleSubmit);return()=>{form.removeEventListener(\"submit\",handleSubmit);};},[props.onSuccess]);return /*#__PURE__*/_jsx(Component,{...props,ref:formRef});});WrappedComponent.displayName=`withCustomFormSubmit(${Component.displayName||Component.name||\"Component\"})`;return WrappedComponent;}\nexport const __FramerMetadata__ = {\"exports\":{\"withCustomFormSubmit\":{\"type\":\"reactHoc\",\"name\":\"withCustomFormSubmit\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WithCustomHandlerFreeGuide.map"],"mappings":"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"}