{"version":3,"file":"SendFormButton_class.CpCLcInr.mjs","names":["useRef","useMemo","useCallback"],"sources":["https:/framerusercontent.com/modules/B7F9nQlpbRw2SfZhMk7l/6rMIxod4Y3Yw50EJWBos/SendFormButton_class.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{forwardRef,useCallback,useEffect,useMemo,useRef}from\"react\";const SUCCESS_VISIBLE_DURATION_MS=6e3;const SCROLL_LOCK_WINDOW_MS=1800;const SCROLL_RESTORE_INTERVAL_MS=50;export function withClass(Component){return /*#__PURE__*/forwardRef(function WithClass(props,ref){const wrapperRef=useRef(null);const buttonRef=useRef(null);const attachedFormRef=useRef(null);const mergedRef=useMemo(()=>node=>{buttonRef.current=node;if(typeof ref===\"function\")ref(node);else if(ref&&typeof ref===\"object\"){ref.current=node;}},[ref]);const submitStartedAtRef=useRef(0);const successHoldUntilRef=useRef(0);const baselineSnapshotRef=useRef(null);const successSnapshotRef=useRef(null);const successObservedRef=useRef(false);const lockStateRef=useRef({x:0,y:0,active:false,unlockTimer:null,intervalId:null,restoreScrollBehavior:null});const clearScrollLock=useCallback(()=>{if(typeof window===\"undefined\")return;const lock=lockStateRef.current;lock.active=false;window.removeEventListener(\"scroll\",restoreScrollPosition,true);if(lock.intervalId!==null){window.clearInterval(lock.intervalId);lock.intervalId=null;}if(lock.unlockTimer!==null){window.clearTimeout(lock.unlockTimer);lock.unlockTimer=null;}if(lock.restoreScrollBehavior){lock.restoreScrollBehavior();lock.restoreScrollBehavior=null;}},[]);const restoreScrollPosition=useCallback(()=>{if(typeof window===\"undefined\")return;const lock=lockStateRef.current;if(!lock.active)return;if(window.scrollX!==lock.x||window.scrollY!==lock.y){window.scrollTo(lock.x,lock.y);}},[]);const beginScrollLock=useCallback(durationMs=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;clearScrollLock();const lock=lockStateRef.current;lock.x=window.scrollX;lock.y=window.scrollY;lock.active=true;const htmlEl=document.documentElement;const bodyEl=document.body;const prevHtmlBehavior=htmlEl.style.scrollBehavior;const prevBodyBehavior=bodyEl.style.scrollBehavior;htmlEl.style.scrollBehavior=\"auto\";bodyEl.style.scrollBehavior=\"auto\";lock.restoreScrollBehavior=()=>{htmlEl.style.scrollBehavior=prevHtmlBehavior;bodyEl.style.scrollBehavior=prevBodyBehavior;};window.addEventListener(\"scroll\",restoreScrollPosition,true);lock.intervalId=window.setInterval(restoreScrollPosition,SCROLL_RESTORE_INTERVAL_MS);lock.unlockTimer=window.setTimeout(()=>{clearScrollLock();},durationMs);},[clearScrollLock,restoreScrollPosition]);const captureSuccessSnapshot=useCallback(el=>{return{className:el.className??\"\",html:el.innerHTML,text:el.textContent??\"\",ariaLabel:el.getAttribute(\"aria-label\"),disabled:el.disabled??false};},[]);const captureBaselineSnapshot=useCallback(el=>{baselineSnapshotRef.current={html:el.innerHTML,text:el.textContent??\"\"};},[]);const applySuccessSnapshot=useCallback(el=>{const snapshot=successSnapshotRef.current;if(!snapshot)return;el.className=snapshot.className;el.innerHTML=snapshot.html;if(snapshot.ariaLabel!==null){el.setAttribute(\"aria-label\",snapshot.ariaLabel);}if(\"disabled\"in el){el.disabled=snapshot.disabled;}},[]);useEffect(()=>{if(typeof window===\"undefined\"||typeof document===\"undefined\")return;const root=wrapperRef.current;if(!root)return;const getCurrentButton=()=>{const directButton=buttonRef.current;if(directButton&&document.contains(directButton)){return directButton;}const queriedButton=root.querySelector(\"button, [type='submit']\");if(queriedButton)return queriedButton;return root.firstElementChild;};const getCurrentForm=()=>{const currentButton=getCurrentButton();if(!currentButton)return null;return currentButton.closest(\"form\");};const onSubmitCapture=()=>{const currentButton=getCurrentButton();if(!currentButton)return;const currentForm=currentButton.closest(\"form\");if(!currentForm)return;submitStartedAtRef.current=Date.now();successHoldUntilRef.current=submitStartedAtRef.current+SUCCESS_VISIBLE_DURATION_MS;successObservedRef.current=false;successSnapshotRef.current=null;captureBaselineSnapshot(currentButton);beginScrollLock(SCROLL_LOCK_WINDOW_MS);};const bindSubmitListener=()=>{const nextForm=getCurrentForm();if(!nextForm)return false;if(attachedFormRef.current&&attachedFormRef.current!==nextForm){attachedFormRef.current.removeEventListener(\"submit\",onSubmitCapture,true);}if(attachedFormRef.current!==nextForm){nextForm.addEventListener(\"submit\",onSubmitCapture,true);attachedFormRef.current=nextForm;}return true;};if(!bindSubmitListener())return;const initialButton=getCurrentButton();if(initialButton){captureBaselineSnapshot(initialButton);}const observer=new MutationObserver(()=>{bindSubmitListener();const submitStartedAt=submitStartedAtRef.current;if(submitStartedAt<=0)return;const now=Date.now();const holdUntil=successHoldUntilRef.current;const baselineSnapshot=baselineSnapshotRef.current;if(!baselineSnapshot||holdUntil<=0)return;const currentButton=getCurrentButton();if(!currentButton)return;const currentSnapshot=captureSuccessSnapshot(currentButton);const differsFromBaseline=currentSnapshot.html!==baselineSnapshot.html||currentSnapshot.text!==baselineSnapshot.text;if(!successObservedRef.current&&differsFromBaseline){successObservedRef.current=true;successSnapshotRef.current=currentSnapshot;beginScrollLock(Math.max(SCROLL_LOCK_WINDOW_MS,holdUntil-now));return;}if(differsFromBaseline){successSnapshotRef.current=currentSnapshot;return;}if(successObservedRef.current&&holdUntil>now&&successSnapshotRef.current){const snapshot=successSnapshotRef.current;if(currentButton.innerHTML!==snapshot.html||currentButton.className!==snapshot.className){applySuccessSnapshot(currentButton);}}});observer.observe(root,{attributes:true,childList:true,characterData:true,subtree:true});return()=>{observer.disconnect();if(attachedFormRef.current){attachedFormRef.current.removeEventListener(\"submit\",onSubmitCapture,true);attachedFormRef.current=null;}clearScrollLock();};},[applySuccessSnapshot,beginScrollLock,captureBaselineSnapshot,captureSuccessSnapshot,clearScrollLock]);if(typeof props.className===\"string\"){props.className+=\" partners_sendForm\"// Remember to add a space\n;}else{props.className=\"partners_sendForm\";}return /*#__PURE__*/_jsx(\"span\",{ref:wrapperRef,style:{display:\"contents\"},children:/*#__PURE__*/_jsx(Component,{ref:mergedRef,...props})});});}\nexport const __FramerMetadata__ = {\"exports\":{\"withClass\":{\"type\":\"reactHoc\",\"name\":\"withClass\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./SendFormButton_class.map"],"mappings":"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"}