{"version":3,"file":"WithFormValidation.Dql38sps.mjs","names":[],"sources":["https:/framerusercontent.com/modules/jjxXtXRvp9ltdzhjb05W/2w1tNumwJzbl19iuNUAV/WithFormValidation.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useEffect}from\"react\";/**\n * @framerDisableUnlink\n * @framerIntrinsicWidth 100\n * @framerIntrinsicHeight 100\n */export function withFormValidation(Component){return function FormValidationHOC(props){useEffect(()=>{// Function to add event listeners safely\nconst addValidation=(selector,validateFn)=>{const input=document.querySelector(selector);if(input){input.addEventListener(\"input\",validateFn);return()=>input.removeEventListener(\"input\",validateFn)// Cleanup\n;}return()=>{}// No-op cleanup function\n;};// Phone number validation function\nconst validatePhoneNumber=event=>{const phoneInput=event.target;if(!phoneInput)return;const phonePattern=/^(?:\\+\\d{1,3})?0?\\d{7,10}$/;const value=phoneInput.value;if(/[^\\d+]/.test(value)){phoneInput.setCustomValidity(\"Invalid format - Only numbers are allowed\");}else if(value&&!phonePattern.test(value)){phoneInput.setCustomValidity(\"Invalid format: Include a prefix (e.g., +972 or +1) followed by 7-10 digits, no spaces\");}else{phoneInput.setCustomValidity(\"\");}};// Email validation function\nconst validateEmail=event=>{const emailInput=event.target;if(!emailInput)return;const emailPattern=/^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.(com|net|org|gov|edu|mil|co|il|uk|de|jp|fr|au|us|ru|ch|it|nl|se|no|es|ca|br|in|ar|mx|cn|za|gr|dk|fi|pl|be|pt|tr|xyz|info|biz|me|io|co\\.il)$/;const value=emailInput.value;if(value===\"\"){emailInput.setCustomValidity(\"\");}else if(!emailPattern.test(value)){emailInput.setCustomValidity(\"Invalid email format. Ensure it follows user@domain.TLD format with a recognized TLD.\");}else{emailInput.setCustomValidity(\"\");}};// Name validation function\nconst validateName=event=>{const nameInput=event.target;if(!nameInput)return;const namePattern=/^[a-zA-Z\\s\\-]+$/// Only letters, spaces, and dashes allowed\n;const value=nameInput.value;if(value===\"\"){nameInput.setCustomValidity(\"\");}else if(!namePattern.test(value)){nameInput.setCustomValidity(\"Invalid name format - Only letters, spaces, and dashes are allowed.\");}else if(value.length>25){nameInput.setCustomValidity(\"Name cannot exceed 25 characters.\");}else{nameInput.setCustomValidity(\"\");}};// Attach event listeners and return cleanup functions\nconst removePhoneValidation=addValidation(\"input[name='phone']\",validatePhoneNumber);const removeEmailValidation=addValidation(\"input[name='email']\",validateEmail);const removeNameValidation=addValidation(\"input[name='name']\",validateName);// Cleanup event listeners on component unmount\nreturn()=>{removePhoneValidation();removeEmailValidation();removeNameValidation();};},[])// Run only once on mount\n;return /*#__PURE__*/_jsx(Component,{...props});};}\nexport const __FramerMetadata__ = {\"exports\":{\"withFormValidation\":{\"type\":\"reactHoc\",\"name\":\"withFormValidation\",\"annotations\":{\"framerIntrinsicHeight\":\"100\",\"framerContractVersion\":\"1\",\"framerDisableUnlink\":\"* @framerIntrinsicWidth 100\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./WithFormValidation.map"],"mappings":"2JAIG,SAAgB,EAAmB,EAAU,CAAC,OAAO,SAA2B,EAAM,CAUxF,OAVyF,MAAc,CACxG,IAAM,GAAe,EAAS,IAAa,CAAC,IAAM,EAAM,SAAS,cAAc,EAAS,CACtF,OAD0F,GAAO,EAAM,iBAAiB,QAAQ,EAAW,KAAW,EAAM,oBAAoB,QAAQ,EAAW,MACzL,IAEN,EAAoB,GAAO,CAAC,IAAM,EAAW,EAAM,OAAO,GAAG,CAAC,EAAW,OAAO,IAAM,EAAa,6BAAmC,EAAM,EAAW,MAAS,SAAS,KAAK,EAAM,CAAE,EAAW,kBAAkB,4CAA4C,CAAU,GAAO,CAAC,EAAa,KAAK,EAAM,CAAE,EAAW,kBAAkB,yFAAyF,CAAO,EAAW,kBAAkB,GAAG,EACxc,EAAc,GAAO,CAAC,IAAM,EAAW,EAAM,OAAO,GAAG,CAAC,EAAW,OAAO,IAAM,EAAa,iLAAuL,EAAM,EAAW,MAAS,IAAQ,IAA+C,EAAa,KAAK,EAAM,CAAnE,EAAW,kBAAkB,GAAG,CAAqC,EAAW,kBAAkB,wFAAwF,EACpf,EAAa,GAAO,CAAC,IAAM,EAAU,EAAM,OAAO,GAAG,CAAC,EAAU,OAAO,IAAM,EAAY,kBACxF,EAAM,EAAU,MAAS,IAAQ,GAAI,EAAU,kBAAkB,GAAG,CAAW,EAAY,KAAK,EAAM,CAA8G,EAAM,OAAO,GAAI,EAAU,kBAAkB,oCAAoC,CAAO,EAAU,kBAAkB,GAAG,CAAnO,EAAU,kBAAkB,sEAAsE,EAC3M,EAAsB,EAAc,sBAAsB,EAAoB,CAAO,EAAsB,EAAc,sBAAsB,EAAc,CAAO,EAAqB,EAAc,qBAAqB,EAAa,CAC/O,UAAU,CAAC,GAAuB,CAAC,GAAuB,CAAC,GAAsB,GAAK,EAAE,CAAC,CACpE,EAAK,EAAU,CAAC,GAAG,EAAM,CAAC,mBAdJ,IAA6B"}