PluginProbe
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / 2.12.8
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz v2.12.8
2.12.8 2.12.7 2.12.6 2.12.5 2.12.4 2.12.3 2.12.2 2.12.1 2.12.0 2.11.1 2.11.0 2.10.1 2.10.0 2.9.1 2.9.0 2.8.2 2.8.1 2.7.0 2.7.1 2.8.0 trunk 0.0.10 0.0.11 0.0.12 0.0.13 All 98 releases
← All changes | assets/js/minified/form-submit.min.js +1 -1 2.9.0 → 2.12.8 View file →
@@ -1 +1 @@
1 -import{fieldValidation,initializeInlineFieldValidation,handleScrollAndFocusOnError,handleCaptchaValidation,srfmFields}from"./validation";import{handleFormPayment}from"./payment";import{applyFilters}from"@wordpress/hooks";import{__}from"@wordpress/i18n";let pendingRecaptchaForm=null,srfmFormInstanceCounter=(document.addEventListener("srfm_initialize_validation",e=>{var e=e?.detail?.fields;e&&Array.isArray(e)?(e=e.filter(e=>srfmFields().includes(e)),initializeInlineFieldValidation(e)):initializeInlineFieldValidation()}),0);function initializeFormHandlers(){initializeInlineFieldValidation();for(let v of Array.from(document.querySelectorAll(".srfm-form"))){v.hasAttribute("data-srfm-instance")||v.setAttribute("data-srfm-instance",String(++srfmFormInstanceCounter)),document.dispatchEvent(new CustomEvent("srfm_form_before_submission",{detail:{form:v}}));let{formId:r,submitType:s,successUrl:o,ajaxUrl:a,submitToken:i,loader:n,successContainer:m,successElement:c,recaptchaType:l,afterSubmission:u,captchaErrorElement:d,hCaptchaDiv:f,turnstileDiv:b,hasLoginBlock:p}=extractFormAttributesAndElements(v),h="v2-checkbox"===l||!!f||!!b;"v3-reCAPTCHA"!==l||v.hasAttribute("data-srfm-v3-click-handler")||(v.setAttribute("data-srfm-v3-click-handler","true"),v.addEventListener("click",function(e){e=e.target.closest("#srfm-submit-btn, .srfm-custom-button");e&&e.classList.contains("g-recaptcha")&&(pendingRecaptchaForm=v)},!0)),v.addEventListener("submit",async e=>{e.preventDefault();e=e.target;if("FORM"===e?.tagName){var t=(e?.closest(".srfm-form-container"))?.classList.contains("srfm-submit-button-hidden"),e=e?.querySelector("button.srfm-custom-button");if(t&&!e)return void console.warn("Form submission is disabled because the submit button is hidden.")}p&&!v.__loginSuccess?(t=new CustomEvent("srfm_login_request",{cancelable:!0,detail:{form:v}}),v.dispatchEvent(t)):applyFilters("srfm.handleCustomFormSubmission",!0,{form:v})&&(handleFormSubmission(v,r,a,i,n,o,m,c,s,u,h?l:void 0,h?f:void 0,h?b:void 0,h?d:void 0),v.__loginSuccess=!0)}),document.dispatchEvent(new CustomEvent("srfm_form_after_initialization",{detail:{form:v}}))}}function prepareAddressesData(e){e=e.querySelectorAll(".srfm-address-block");if(!e)return null;let r={};return e.forEach(e=>{var t=e.getAttribute("data-slug");t&&(e=e.querySelectorAll(".srfm-input-input, .srfm-dropdown-input"),e=Array.from(e).map(e=>e?.value?.trim()).filter(Boolean).join(", "),r[t]=e)}),0<Object.keys(r).length?r:null}async function submitFormData(e){var t=new FormData(e);let r=new FormData;var s,o,a=e.getAttribute("data-submit-token"),i=["srfm-email-confirm","srfm-password-confirm"];for([s,o]of t.entries())i.includes(s)||(""!==o&&((e.querySelector(`[name="${s}"]`)?.closest(".srfm-block-single"))?.classList.contains("hide-element")&&(o=""),o=applyFilters("srfm.filterFieldValue",o,{key:s,form:e})),applyFilters("srfm.shouldSkipField",!1,{key:s,value:o,form:e}))||r.append(s,o);t=prepareAddressesData(e);t&&r.append("srfm_addresses",JSON.stringify(t));let n=applyFilters("srfm.prepareAdditionalFormData",{},e);Object.keys(n).forEach(e=>{null!=n[e]&&r.append(e,JSON.stringify(n[e]))});try{return await wp.apiFetch({path:"sureforms/v1/submit-form",method:"POST",body:r,headers:{"X-WP-Submit-Token":a}})}catch(e){console.error(e)}}async function afterSubmit(e){var t=e.data.submission_id,e=e.data.after_submit_nonce;try{await wp.apiFetch({path:`/sureforms/v1/after-submission/${t}?after_submit_nonce=`+encodeURIComponent(e),method:"GET"})}catch(e){console.error(e)}}function showSuccessMessage(e,t,r,s,o,a,i){a=new CustomEvent("srfm_on_show_success_message",{cancelable:!0,detail:{form:s,element:t,message:r,submitType:a,container:e,loader:i}});document.dispatchEvent(a)&&(enableSubmitButton(s),"hide form"===o?(s.style.opacity=1,s.style.display="none",setTimeout(()=>{t.style.opacity=1},500)):"reset form"===o&&s.reset(),t.innerHTML=r,e.classList.add("srfm-active"),window?.srfm?.handleInstantFormWrapperHeight(),applyFilters("srfm.enableScrollOnSuccess",!0))&&s.parentElement.scrollIntoView({behavior:"smooth"})}function redirectToUrl(e){window.location.assign(e)}function dispatchErrorEvent(e){var{form:e,message:t="",position:r="footer",log_message:s=null}=e.detail||{};e&&(s&&console.warn(s),s=t||__("An error occurred while submitting your form. Please try again.","sureforms"),t=e.querySelector(".srfm-common-error-message."+("header"===r?"srfm-head-error":"srfm-footer-error")))&&(t.querySelector(".srfm-error-content").innerHTML=s,t.removeAttribute("hidden"),handleScrollAndFocusOnError({firstErrorInput:t,scrollElement:t}))}function showErrorMessage(e){var{form:e,message:t="",position:r="footer",log_message:s=null}=e,e=new CustomEvent("srfm_show_common_form_error",{detail:{form:e,message:t,position:r,log_message:s}});document.dispatchEvent(e)}function hideErrorMessage(e){e.querySelectorAll(".srfm-common-error-message").forEach(e=>{e.setAttribute("hidden","")})}function enableSubmitButton(e){var t=e.querySelector('#srfm-submit-btn, button[type="submit"], .srfm-custom-button'),t=(t&&(t.disabled=!1,t.style.pointerEvents=""),new CustomEvent("srfm_form_submission_stop",{cancelable:!0,detail:{form:e}}));document.dispatchEvent(t)}async function handleFormSubmission(t,r,e,s,o,a,i,n,m,c,l,u,d,f){try{o.classList.add("srfm-active");var b,p,h,v,g=new CustomEvent("srfm_form_submission_start",{cancelable:!0,detail:{form:t,loader:o,formId:r,submitType:m,successElement:n,successContainer:i}}),y=(document.dispatchEvent(g),t.querySelector('#srfm-submit-btn, button[type="submit"], .srfm-custom-button')),E=(y&&(y.disabled=!0,y.style.pointerEvents="none"),hideErrorMessage(t),await fieldValidation(r,e,s,t)),_=handleCaptchaValidation(l,u,d,f);E?.validateResult||!_?(o.classList.remove("srfm-active"),enableSubmitButton(t),E?.validateResult?handleScrollAndFocusOnError(E):_||handleScrollAndFocusOnError({firstErrorInput:f,scrollElement:f})):(b=new CustomEvent("srfm_on_trigger_form_submission",{cancelable:!0,detail:{form:t,loader:o,formId:r,submitType:m,successElement:n,successContainer:i}}),document.dispatchEvent(b)?(p=await handleFormPayment(t))?.valid?(h=await submitFormData(t))?.success?(emitFormSubmitSuccess({...h,formId:r}),v=m,m=h?.data?.submission_settings?.submission_mode||v,c=h?.data?.submission_settings?.after_submission||c,"same page"===m?(showSuccessMessage(i,n,h?.message??"",t,c,m),o.classList.remove("srfm-active"),enableSubmitButton(t)):["different page","custom url"].includes(m)?(h?.redirect_url&&redirectToUrl(h?.redirect_url),o.classList.remove("srfm-active"),enableSubmitButton(t)):showSuccessMessage(i,n,h?.message??"",t,c,m,o),h?.data?.after_submit&&afterSubmit(h)):(showErrorMessage({form:t,...h?.data||{}}),o.classList.remove("srfm-active"),enableSubmitButton(t)):(showErrorMessage({form:t,message:p?.message}),o.classList.remove("srfm-active"),enableSubmitButton(t)):(o.classList.remove("srfm-active"),enableSubmitButton(t)))}catch(e){g=new CustomEvent("srfm_on_trigger_form_submission_failure",{detail:{form:t,error:e,loader:o,formId:r,submitType:m,successElement:n,successContainer:i}});document.dispatchEvent(g),o.classList.remove("srfm-active"),enableSubmitButton(t),showErrorMessage({form:t})}}function extractFormAttributesAndElements(e){var t=e.getAttribute("form-id"),r=e.getAttribute("message-type"),s=e.getAttribute("success-url"),o=e.getAttribute("ajaxurl"),a=e.getAttribute("data-submit-token"),i=e.querySelector(".srfm-loader"),n=e.parentElement.querySelector(".srfm-single-form.srfm-success-box"),m=n?.querySelector(".srfm-success-box-description"),c=e.querySelector("#srfm-submit-btn"),l=e.getAttribute("after-submission"),u=e.querySelector(".g-recaptcha");return{formId:t,submitType:r,successUrl:s,ajaxUrl:o,submitToken:a,loader:i,successContainer:n,successElement:m,submitBtn:c,siteKey:u?.getAttribute("data-sitekey"),recaptchaType:u?.getAttribute("recaptcha-type"),afterSubmission:l,captchaErrorElement:e.querySelector("#captcha-error"),hCaptchaDiv:e.querySelector(".h-captcha"),turnstileDiv:e.querySelector(".cf-turnstile"),hasLoginBlock:e.querySelector(".srfm-login-block")}}function recaptchaCallback(e=""){if(e&&pendingRecaptchaForm){var e=pendingRecaptchaForm,{formId:t,submitType:r,ajaxUrl:s,submitToken:o,loader:a,successUrl:i,successContainer:n,successElement:m,recaptchaType:c,afterSubmission:l}=(pendingRecaptchaForm=null,extractFormAttributesAndElements(e));if("v3-reCAPTCHA"===c)return a.classList.add("srfm-active"),void handleFormSubmission(e,t,s,o,a,i,n,m,r,l)}Array.from(document.querySelectorAll(".srfm-form")).forEach(e=>{let{formId:t,submitType:r,successUrl:s,ajaxUrl:o,submitToken:a,loader:i,successContainer:n,successElement:m,submitBtn:c,siteKey:l,recaptchaType:u,afterSubmission:d}=extractFormAttributesAndElements(e),f=!1;"v2-invisible"===u&&(grecaptcha.render(c,{sitekey:l,callback:()=>{handleFormSubmission(e,t,o,a,i,s,n,m,r,d),f=!0},"error-callback":()=>{showErrorMessageOnRecaptchaError({containerSelector:'.g-recaptcha[recaptcha-type="v2-invisible"]:not(.captcha-error-added)',message:srfm_submit?.messages?.srfm_google_captcha_error_message})}}),c.addEventListener("click",()=>{i.classList.add("srfm-active"),f&&handleFormSubmission(e,t,o,a,i,s,n,m,r,d)}))})}function showErrorMessageOnRecaptchaError(e){let{containerSelector:t,message:r=""}=e;e=document.querySelectorAll(t);e&&e.forEach(e=>{var t=e.closest(".srfm-form");t&&(showErrorMessage({form:t,message:r}),e.classList.add("captcha-error-added"))})}function emitFormSubmitSuccess(e){e=new CustomEvent("srfm_form_submission_success",{detail:{formId:"srfm-form-"+e.formId}});document.dispatchEvent(e)}document.addEventListener("DOMContentLoaded",function(){initializeFormHandlers()}),document.addEventListener("srfm_show_common_form_error",dispatchErrorEvent),window.recaptchaCallback=recaptchaCallback,window.showErrorMessage=showErrorMessage,window.handleBricksPreviewFormSubmission=function(){var e;for(e of Array.from(document.querySelectorAll(".srfm-form")))e.addEventListener("submit",async function(e){e.preventDefault()})},window.addEventListener("elementor/popup/show",function(e){e?.detail?.instance?.$element?.[0]?.querySelector(".srfm-form-container")&&initializeFormHandlers()}),document.addEventListener("srfm_form_initialize",function(){initializeFormHandlers()});
1 +import{fieldValidation,initializeInlineFieldValidation,handleScrollAndFocusOnError,handleCaptchaValidation,srfmFields}from"./validation";import{handleFormPayment}from"./payment";import{applyFilters}from"@wordpress/hooks";import{__}from"@wordpress/i18n";let pendingRecaptchaForm=null,srfmFormInstanceCounter=(document.addEventListener("srfm_initialize_validation",e=>{var e=e?.detail?.fields;e&&Array.isArray(e)?(e=e.filter(e=>srfmFields().includes(e)),initializeInlineFieldValidation(e)):initializeInlineFieldValidation()}),0);function initializeFormHandlers(){initializeInlineFieldValidation();var e=Array.from(document.querySelectorAll(".srfm-form"));for(let v of e){v.hasAttribute("data-srfm-instance")||v.setAttribute("data-srfm-instance",String(++srfmFormInstanceCounter)),document.dispatchEvent(new CustomEvent("srfm_form_before_submission",{detail:{form:v}}));let{formId:s,submitType:o,successUrl:a,ajaxUrl:i,submitToken:n,loader:m,successContainer:c,successElement:l,recaptchaType:u,afterSubmission:d,captchaErrorElement:f,hCaptchaDiv:b,turnstileDiv:h,hasLoginBlock:p}=extractFormAttributesAndElements(v),g="v2-checkbox"===u||!!b||!!h;"v3-reCAPTCHA"!==u||v.hasAttribute("data-srfm-v3-click-handler")||(v.setAttribute("data-srfm-v3-click-handler","true"),v.addEventListener("click",function(e){e=e.target.closest("#srfm-submit-btn, .srfm-custom-button");e&&e.classList.contains("g-recaptcha")&&(pendingRecaptchaForm=v)},!0)),v.addEventListener("submit",async e=>{e.preventDefault();e=e.target;if("FORM"===e?.tagName){var t=(e?.closest(".srfm-form-container"))?.classList.contains("srfm-submit-button-hidden"),e=e?.querySelector("button.srfm-custom-button"),r=e?.closest(".srfm-custom-button-ctn")?.classList.contains("hide-element");if(t&&(!e||r))return void console.warn("Form submission is disabled because the submit button is hidden.")}p&&!v.__loginSuccess?(t=new CustomEvent("srfm_login_request",{cancelable:!0,detail:{form:v}}),v.dispatchEvent(t)):applyFilters("srfm.handleCustomFormSubmission",!0,{form:v})&&(handleFormSubmission(v,s,i,n,m,a,c,l,o,d,g?u:void 0,g?b:void 0,g?h:void 0,g?f:void 0),v.__loginSuccess=!0)}),document.dispatchEvent(new CustomEvent("srfm_form_after_initialization",{detail:{form:v}}))}trackFormViews(e)}let srfmViewObserver=null,srfmCountedFormIds=new Set;function srfmSendViewBeacon(e,t){var r,s=window.srfm_view_beacon?.url;s&&(srfmCountedFormIds.add(e),r=new URLSearchParams(window.location.search).has("live_mode")?"1":"0",fetch(s,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json","X-WP-Submit-Token":t},body:JSON.stringify({form_id:e,live_preview:r})}).catch(()=>{}))}function trackFormViews(e){if("1"===String(window.srfm_view_beacon?.enabled??"0")&&void 0!==window.IntersectionObserver){srfmViewObserver=srfmViewObserver||new window.IntersectionObserver(e=>{for(var t of e){var r;t.isIntersecting&&(!(r=t.intersectionRect)||r.width<=0||r.height<=0||(srfmViewObserver.unobserve(t.target),r=Number(t.target.getAttribute("form-id")),t=t.target.getAttribute("data-view-token"),!srfmCountedFormIds.has(r)&&t&&srfmSendViewBeacon(r,t)))}},{threshold:0});for(var t of e){var r;t.hasAttribute("data-srfm-view-observed")||(r=Number(t.getAttribute("form-id")),!Number.isInteger(r))||r<1||!t.getAttribute("data-view-token")||(t.setAttribute("data-srfm-view-observed","1"),srfmViewObserver.observe(t))}}}function prepareAddressesData(e){e=e.querySelectorAll(".srfm-address-block");if(!e)return null;let r={};return e.forEach(e=>{var t=e.getAttribute("data-slug");t&&(e=e.querySelectorAll(".srfm-input-input, .srfm-dropdown-input"),e=Array.from(e).map(e=>e?.value?.trim()).filter(Boolean).join(", "),r[t]=e)}),0<Object.keys(r).length?r:null}document.addEventListener("DOMContentLoaded",function(){initializeFormHandlers()});let srfmLog={entries:[],isOn(){return!!window.srfm_submit?.logging_enabled},add(e){this.isOn()&&this.entries.length<10&&this.entries.push(e)},flush(e){var t,r;this.isOn()&&this.entries.length&&(t=window.srfm_submit?.log_error_url,r=e?.getAttribute("data-submit-token")??"",e=Number(e?.getAttribute("form-id"))||0,t?(e=JSON.stringify({form_id:e,entries:this.entries}),this.entries=[],fetch(t,{method:"POST",keepalive:!0,headers:{"Content-Type":"application/json","X-WP-Submit-Token":r||""},body:e}).catch(()=>{})):this.entries=[])}};async function parseRestResponse(t){let e=null;try{var r,s=srfmLog.isOn()?t.clone():null;try{e=await t.json()}catch(e){throw s&&(r=await s.text().catch(()=>""),srfmLog.add({type:"response",status:t.status,message:"Response was not JSON: "+(e?.message??""),body:String(r).slice(0,500)})),e}}catch(e){if(t.ok)return null;throw e}if(t.ok)return e;throw e}async function submitFormData(e){var t=window.srfm_submit?.submit_form_url;if(!t)return{success:!1,data:{message:__("This form could not be submitted. Please refresh the page and try again.","sureforms"),log_message:"SureForms: srfm_submit.submit_form_url is unavailable, so the submission was never sent."}};var r=new FormData(e);let s=new FormData;var o,a,i=e.getAttribute("data-submit-token"),n=["srfm-email-confirm","srfm-password-confirm"];for([o,a]of r.entries())n.includes(o)||(""!==a&&((e.querySelector(`[name="${o}"]`)?.closest(".srfm-block-single"))?.classList.contains("hide-element")&&(a=""),a=applyFilters("srfm.filterFieldValue",a,{key:o,form:e})),applyFilters("srfm.shouldSkipField",!1,{key:o,value:a,form:e}))||s.append(o,a);r=prepareAddressesData(e);r&&s.append("srfm_addresses",JSON.stringify(r));let m=applyFilters("srfm.prepareAdditionalFormData",{},e);Object.keys(m).forEach(e=>{null!=m[e]&&s.append(e,JSON.stringify(m[e]))});r=performance.now();try{var c=await fetch(t,{method:"POST",body:s,headers:{"X-WP-Submit-Token":i}}),l=c.status,u=c.headers.get("content-type")??"",d=Math.round(performance.now()-r);let e=await parseRestResponse(c);if(!c.ok||!1===e?.success){var f=Object.keys(e?.data?.field_errors??{}),b=e?.data?.log_message??e?.data?.message??e?.message??"",h=e?.data?.api_response?.["error-codes"],p=Array.isArray(h)?` [${h.join(", ")}]`:"",g=e?.data?.code?` (${e.data.code})`:"";if(f.length)return e;srfmLog.add({type:"network",status:l,duration_ms:d,message:`Submission responded ${l} (${u})${g}: `+b+p,body:(()=>{try{return JSON.stringify(e).slice(0,500)}catch(e){return""}})(),field_keys:[...s.keys()]})}return e}catch(e){return console.error(e),srfmLog.add({type:"error",duration_ms:Math.round(performance.now()-r),message:`${e?.name??"Error"}: `+("string"==typeof e?.message?e.message:"")+(e?.code?` (${e.code})`:"")}),{success:!1,data:{message:"string"==typeof e?.message?e.message:"",log_message:e?.code?`SureForms submission failed (${e.code}).`:null}}}}async function afterSubmit(e,t){e=e?.data?.after_submit_url;if(e){var r=performance.now();try{var s=await fetch(e,{method:"GET",keepalive:!0}),o=s.status,a=Math.round(performance.now()-r);await parseRestResponse(s),s.ok||(srfmLog.add({type:"after_submission",status:o,duration_ms:a,message:"After-submission step responded "+o,body:await s.clone().text().then(e=>String(e).slice(0,500)).catch(()=>"")}),srfmLog.flush(t))}catch(e){console.error(e),srfmLog.add({type:"after_submission",duration_ms:Math.round(performance.now()-r),message:`After-submission step failed: ${e?.name??"Error"}: `+("string"==typeof e?.message?e.message:"")}),srfmLog.flush(t)}}}function showSuccessMessage(e,t,r,s,o,a,i){a=new CustomEvent("srfm_on_show_success_message",{cancelable:!0,detail:{form:s,element:t,message:r,submitType:a,container:e,loader:i}});document.dispatchEvent(a)&&(enableSubmitButton(s),"hide form"===o?(s.style.opacity=1,s.style.display="none",setTimeout(()=>{t.style.opacity=1},500)):"reset form"===o&&(s.reset(),document.dispatchEvent(new CustomEvent("srfm_form_reset",{detail:{form:s}}))),t.innerHTML=r,e.classList.add("srfm-active"),window?.srfm?.handleInstantFormWrapperHeight(),applyFilters("srfm.enableScrollOnSuccess",!0))&&s.parentElement.scrollIntoView({behavior:"smooth"})}function redirectToUrl(e){window.location.assign(e)}function dispatchErrorEvent(e){var{form:e,message:t="",position:r="footer",log_message:s=null}=e.detail||{};e&&(s&&console.warn(s),s=t||__("An error occurred while submitting your form. Please try again.","sureforms"),t=e.querySelector(".srfm-common-error-message."+("header"===r?"srfm-head-error":"srfm-footer-error")))&&(t.querySelector(".srfm-error-content").innerHTML=s,t.removeAttribute("hidden"),handleScrollAndFocusOnError({firstErrorInput:t,scrollElement:t}))}function showErrorMessage(e){var{form:e,message:t="",position:r="footer",log_message:s=null}=e,e=new CustomEvent("srfm_show_common_form_error",{detail:{form:e,message:t,position:r,log_message:s}});document.dispatchEvent(e)}function hideErrorMessage(e){e.querySelectorAll(".srfm-common-error-message").forEach(e=>{e.setAttribute("hidden","")})}function enableSubmitButton(e){var t=e.querySelector('#srfm-submit-btn, button[type="submit"], .srfm-custom-button'),t=(t&&(t.disabled=!1,t.style.pointerEvents=""),new CustomEvent("srfm_form_submission_stop",{cancelable:!0,detail:{form:e}}));document.dispatchEvent(t)}async function handleFormSubmission(t,r,e,s,o,a,i,n,m,c,l,u,d,f){try{o.classList.add("srfm-active");var b,h,p,g,v=new CustomEvent("srfm_form_submission_start",{cancelable:!0,detail:{form:t,loader:o,formId:r,submitType:m,successElement:n,successContainer:i}}),y=(document.dispatchEvent(v),t.querySelector('#srfm-submit-btn, button[type="submit"], .srfm-custom-button')),w=(y&&(y.disabled=!0,y.style.pointerEvents="none"),hideErrorMessage(t),await fieldValidation(r,e,s,t)),_=handleCaptchaValidation(l,u,d,f);w?.validateResult||!_?(o.classList.remove("srfm-active"),enableSubmitButton(t),w?.validateResult?handleScrollAndFocusOnError(w):_||handleScrollAndFocusOnError({firstErrorInput:f,scrollElement:f})):(b=new CustomEvent("srfm_on_trigger_form_submission",{cancelable:!0,detail:{form:t,loader:o,formId:r,submitType:m,successElement:n,successContainer:i}}),document.dispatchEvent(b)?(h=await handleFormPayment(t))?.valid?(p=await submitFormData(t))?.success?(p?.data?.after_submit&&afterSubmit(p,t),emitFormSubmitSuccess({...p,formId:r}),g=m,m=p?.data?.submission_settings?.submission_mode||g,c=p?.data?.submission_settings?.after_submission||c,"same page"===m?(showSuccessMessage(i,n,p?.message??"",t,c,m),o.classList.remove("srfm-active"),enableSubmitButton(t)):["different page","custom url"].includes(m)?(p?.redirect_url&&redirectToUrl(p?.redirect_url),o.classList.remove("srfm-active"),enableSubmitButton(t)):showSuccessMessage(i,n,p?.message??"",t,c,m,o)):(showErrorMessage({form:t,...p?.data||{}}),o.classList.remove("srfm-active"),srfmLog.flush(t),enableSubmitButton(t)):(showErrorMessage({form:t,message:h?.message}),o.classList.remove("srfm-active"),enableSubmitButton(t)):(o.classList.remove("srfm-active"),enableSubmitButton(t)))}catch(e){srfmLog.add({type:"error",message:`Submission aborted: ${e?.name??"Error"}: `+("string"==typeof e?.message?e.message:""),source:String(e?.stack??"").split("\n")[1]?.trim()?.slice(0,200)}),srfmLog.flush(t);v=new CustomEvent("srfm_on_trigger_form_submission_failure",{detail:{form:t,error:e,loader:o,formId:r,submitType:m,successElement:n,successContainer:i}});document.dispatchEvent(v),o.classList.remove("srfm-active"),enableSubmitButton(t),showErrorMessage({form:t})}}function extractFormAttributesAndElements(e){var t=e.getAttribute("form-id"),r=e.getAttribute("message-type"),s=e.getAttribute("success-url"),o=e.getAttribute("ajaxurl"),a=e.getAttribute("data-submit-token"),i=e.querySelector(".srfm-loader"),n=e.parentElement.querySelector(".srfm-single-form.srfm-success-box"),m=n?.querySelector(".srfm-success-box-description"),c=e.querySelector("#srfm-submit-btn"),l=e.getAttribute("after-submission"),u=e.querySelector(".g-recaptcha");return{formId:t,submitType:r,successUrl:s,ajaxUrl:o,submitToken:a,loader:i,successContainer:n,successElement:m,submitBtn:c,siteKey:u?.getAttribute("data-sitekey"),recaptchaType:u?.getAttribute("recaptcha-type"),afterSubmission:l,captchaErrorElement:e.querySelector("#captcha-error"),hCaptchaDiv:e.querySelector(".h-captcha"),turnstileDiv:e.querySelector(".cf-turnstile"),hasLoginBlock:e.querySelector(".srfm-login-block")}}function recaptchaCallback(e=""){if(e&&pendingRecaptchaForm){var e=pendingRecaptchaForm,{formId:t,submitType:r,ajaxUrl:s,submitToken:o,loader:a,successUrl:i,successContainer:n,successElement:m,recaptchaType:c,afterSubmission:l}=(pendingRecaptchaForm=null,extractFormAttributesAndElements(e));if("v3-reCAPTCHA"===c)return a.classList.add("srfm-active"),void handleFormSubmission(e,t,s,o,a,i,n,m,r,l)}Array.from(document.querySelectorAll(".srfm-form")).forEach(e=>{let{formId:t,submitType:r,successUrl:s,ajaxUrl:o,submitToken:a,loader:i,successContainer:n,successElement:m,submitBtn:c,siteKey:l,recaptchaType:u,afterSubmission:d}=extractFormAttributesAndElements(e),f=!1;"v2-invisible"===u&&(grecaptcha.render(c,{sitekey:l,callback:()=>{handleFormSubmission(e,t,o,a,i,s,n,m,r,d),f=!0},"error-callback":()=>{showErrorMessageOnRecaptchaError({containerSelector:'.g-recaptcha[recaptcha-type="v2-invisible"]:not(.captcha-error-added)',message:srfm_submit?.messages?.srfm_google_captcha_error_message})}}),c.addEventListener("click",()=>{i.classList.add("srfm-active"),f&&handleFormSubmission(e,t,o,a,i,s,n,m,r,d)}))})}function showErrorMessageOnRecaptchaError(e){let{containerSelector:t,message:r=""}=e;e=document.querySelectorAll(t);e&&e.forEach(e=>{var t=e.closest(".srfm-form");t&&(showErrorMessage({form:t,message:r}),e.classList.add("captcha-error-added"))})}function emitFormSubmitSuccess(e){e=new CustomEvent("srfm_form_submission_success",{detail:{formId:"srfm-form-"+e.formId}});document.dispatchEvent(e)}document.addEventListener("srfm_show_common_form_error",dispatchErrorEvent),window.recaptchaCallback=recaptchaCallback,window.showErrorMessage=showErrorMessage,window.handleBricksPreviewFormSubmission=function(){var e;for(e of Array.from(document.querySelectorAll(".srfm-form")))e.addEventListener("submit",async function(e){e.preventDefault()})},window.addEventListener("elementor/popup/show",function(e){e?.detail?.instance?.$element?.[0]?.querySelector(".srfm-form-container")&&initializeFormHandlers()}),document.addEventListener("srfm_form_initialize",function(){initializeFormHandlers()});