{"version":3,"file":"WithCustomHandler.M5TMll90.mjs","names":["useRef"],"sources":["https:/framerusercontent.com/modules/AFIws5nWakYCNJdYXGCD/ud32v8WD8eLYN00M43N3/WithCustomHandler.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}`);}console.log(`Data sent successfully to: ${handlerUrl}`);}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);}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;console.log(form);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});});// Устанавливаем displayName для лучшей отладки\nWrappedComponent.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=./WithCustomHandler.map"],"mappings":"kNAAilE,SAAgB,EAAqB,EAAU,CAAC,IAAM,EAA8B,GAAY,EAAM,IAAM,CAAC,IAAM,EAAgBA,EAAO,KAAK,CAAO,EAAQ,GAAK,EAAsB,EAAa,KAAM,IAAO,CAAC,EAAM,gBAAgB,CAAC,IAAM,EAAK,EAAQ,QAA0B,GAAlB,QAAQ,IAAI,EAAK,CAAI,CAAC,EAAK,CAAC,QAAQ,KAAK,yCAAyC,CAAC,OAAQ,IAAM,EAAa,EAAK,cAAc,8CAA8C,CAAI,IAAc,EAAa,SAAS,IAAM,MAAM,EAAqB,EAAK,EAAM,UAAU,EAAiP,OAA9O,MAAc,CAAC,IAAM,EAAK,EAAQ,QAAQ,GAAG,CAAC,EAAK,CAAC,QAAQ,KAAK,qCAAqC,CAAC,OAAqD,OAA7C,EAAK,iBAAiB,SAAS,EAAa,KAAW,CAAC,EAAK,oBAAoB,SAAS,EAAa,GAAK,CAAC,EAAM,UAAU,CAAC,CAAqB,EAAK,EAAU,CAAC,GAAG,EAAM,IAAI,EAAQ,CAAC,EAAG,CACvyF,MAA3G,GAAiB,YAAY,wBAAwB,EAAU,aAAa,EAAU,MAAM,YAAY,GAAU,iCADvE,IAA+C,CAAM,EAA0B,GAAa,CAAC,IAAM,EAAM,EAAY,MAAM,+CAA+C,CAAC,OAAO,IAAQ,GAAG,mBAAmB,EAAM,GAAG,CAAC,YAAmB,EAAuB,GAAa,EAAI,MAAM,IAAI,CAAC,KAAK,EAAE,WAAmB,EAAa,KAAM,IAAa,CAAC,GAAG,CAAC,IAAM,EAAS,MAAM,MAAM,EAAY,CAAC,GAAG,CAAC,EAAS,GAAI,MAAU,MAAM,oBAAoB,EAAS,aAAa,CAAE,IAAM,EAAY,EAAS,QAAQ,IAAI,sBAAsB,CAAK,EAAS,WAAW,AAA6F,EAA1F,GAAa,SAAS,YAAY,CAAW,EAA0B,EAAY,CAAgB,EAAuB,EAAY,CAAE,IAAM,EAAK,MAAM,EAAS,MAAM,CAAO,EAAU,IAAI,gBAAgB,EAAK,CAAO,EAAK,SAAS,cAAc,IAAI,CAAC,EAAK,KAAK,EAAU,EAAK,SAAS,EAAS,SAAS,KAAK,YAAY,EAAK,CAAC,EAAK,OAAO,CAAC,SAAS,KAAK,YAAY,EAAK,CAAC,IAAI,gBAAgB,EAAU,OAAQ,EAAM,CAAyD,MAAxD,EAAO,KAAK,EAAY,SAAS,sBAAsB,CAAO,IAAe,EAAe,MAAM,EAAW,IAAW,CAAC,GAAG,CAAC,IAAM,EAAS,MAAM,MAAM,EAAW,CAAC,OAAO,OAAO,QAAQ,CAAC,eAAe,oCAAoC,CAAC,KAAK,EAAS,KAAK,UAAU,CAAC,CAAC,GAAG,EAAS,OAAO,UAAU,CAAC,EAAS,GAAI,MAAU,MAAM,6BAA6B,EAAS,aAAa,CAAE,QAAQ,IAAI,8BAA8B,IAAa,OAAQ,EAAM,CAAkD,MAAjD,QAAQ,MAAM,4BAA4B,EAAM,CAAO,IAAe,EAAqB,MAAM,EAAK,IAAY,CAAC,IAAM,EAAS,IAAI,SAAS,EAAK,CAAO,EAAQ,IAAI,gBAAoB,EAAiB,GAAO,EAAa,GAAG,IAAI,GAAK,CAAC,EAAI,KAAS,EAAS,SAAS,CAAC,CAAC,IAAM,EAAY,OAAO,EAAM,CAAC,EAAQ,OAAO,EAAI,EAAY,CAAI,IAAM,gBAAiB,EAAiB,EAAqB,IAAM,iBAAgB,EAAa,GAAc,GAAG,CAAI,GAAkB,MAAM,EAAe,EAAiB,EAAQ,CAAK,IAAc,KAAa,CAAC,MAAM,EAAa,EAAa,QAAS,EAAM,CAAC,QAAQ,MAAM,yBAAyB,EAAM,CAAC,KAAa"}