PluginProbe
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz / 0.0.10
SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz v0.0.10
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
sureforms / assets / js / minified / validation.min.js

validation.min.js in SureForms – Contact Form Builder, AI Forms, Payment Form, Survey & Quiz 0.0.10, at assets/js/minified/validation.min.js

1 lines 9.1 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 async function getUniqueValidationData(r,e,t,s){let o="action=validation_ajax_action&nonce="+encodeURIComponent(s)+"&id="+encodeURIComponent(e);Object.keys(r).forEach(e=>{o+="&"+encodeURIComponent(e)+"="+encodeURIComponent(r[e])});try{var i=await fetch(t,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:o});if(i.ok)return(await i.json()).data}catch(e){console.error(e)}}async function fieldValidation(e,r,t,s,o=!1){let i=!1,a=null;var l=e=>{a=a||e};let n=null;var c=document.querySelectorAll('input[data-unique="true"]');if(0!==c.length){var m={};for(const q of c){var u=q.name,f=q.value;m[u]=f}n=await getUniqueValidationData(m,e,r,t)}for(const S of o?[s]:Array.from(s.querySelectorAll(".srfm-block-single"))){let r=!1;if(Array.isArray(window.sureforms?.skipValidationCallbacks)&&window.sureforms.skipValidationCallbacks.forEach(e=>{"function"==typeof e&&(r=r||e(S))}),!r){var d=S.closest("form").getAttribute("form-id");if(d===e){const A=S.querySelector("input, textarea, select");var d=A.getAttribute("aria-required"),b=A.getAttribute("data-unique");let r=A.getAttribute("name");var L,p,v=A.value,y=S.querySelector(".srfm-error-message");if(r=r&&r.replace(/_/g," "),d&&"hidden"!==A.type&&("true"!==d||v?A&&A.closest(".srfm-block").classList.remove("srfm-error"):(A&&A.closest(".srfm-block").classList.add("srfm-error"),y&&(y.textContent=y.getAttribute("data-error-msg")),i=!0,l(A)),A.addEventListener("input",()=>{A.closest(".srfm-block").classList.remove("srfm-error")})),"true"===b&&""!==v&&(n?.some(e=>"not unique"===e[r])?(A&&A.closest(".srfm-block").classList.add("srfm-error"),y.textContent=y.getAttribute("data-unique-msg"),i=!0,l(A)):A&&A.closest(".srfm-block").classList.remove("srfm-error")),S.classList.contains("srfm-multi-choice-block")||S.classList.contains("srfm-checkbox-block")||S.classList.contains("srfm-gdpr-block")){var k=S.querySelectorAll("input"),b=k[0].getAttribute("aria-required");let r=!1,t=null;for(let e=0;e<k.length;e++)if(t||"hidden"===k[e].type||(t=k[e]),k[e].checked){r=!0;break}"true"!==b||r?y&&S.classList.remove("srfm-error"):(y&&S.classList.add("srfm-error"),i=!0,l(t)),k.forEach(e=>{e.addEventListener("input",()=>{S.classList.remove("srfm-error")})})}if(S.classList.contains("srfm-url-block")&&(b=S.querySelector("input"),S.classList.contains("srfm-url-error")&&(S.classList.add("srfm-error"),i=!0,l(b)),b.addEventListener("input",()=>{S.classList.remove("srfm-error")})),S.classList.contains("srfm-phone-block")&&(b=S.querySelectorAll("input")[1],S.classList.contains("srfm-phone-error")&&(S.classList.add("srfm-error"),i=!0,l(b)),S.querySelectorAll("input").forEach(e=>{e.addEventListener("input",()=>{S.classList.remove("srfm-error")})})),S.classList.contains("srfm-password-block-wrap")&&(b=S)&&(b=b.querySelector(".srfm-password-confirm-block"))&&(p=b.querySelector(".srfm-input-password-confirm").value,L=b.querySelector(".srfm-error-message"),!p&&L&&"true"===d?(L.textContent=L.getAttribute("data-error-msg"),b.classList.add("srfm-error"),l(p),i=!0):p!==v?(b.classList.add("srfm-error"),L.textContent="Confirmation Password is not the same",l(p),i=!0):b.classList.remove("srfm-error")),S.classList.contains("srfm-email-block-wrap")){const h=S;if(h){const w=h.querySelector(".srfm-email-confirm-block");h.classList.contains("srfm-valid-email-error")&&(a=a||A,i=!0),w&&(L=w.querySelector(".srfm-input-email-confirm"),p=w.querySelector(".srfm-input-email-confirm").value,b=w.querySelector(".srfm-error-message"),!p&&b&&"true"===d?(b.textContent=b.getAttribute("data-error-msg"),w.classList.add("srfm-error"),l(L),i=!0):p!==v?(w.classList.add("srfm-error"),b.textContent="Confirmation email is not the same",l(L),i=!0):w.classList.remove("srfm-error"),L.addEventListener("input",()=>{w.classList.remove("srfm-error")})),h.querySelector(".srfm-input-email").addEventListener("input",()=>{h.classList.remove("srfm-error")})}}if(S.classList.contains("srfm-upload-block")&&("true"!==(b=(d=S.querySelector(".srfm-input-upload")).getAttribute("aria-required"))||d.value?A&&A.closest(".srfm-block").classList.remove("srfm-error"):("true"===b&&y&&(y.textContent=y.getAttribute("data-error-msg")),A&&A.closest(".srfm-block").classList.add("srfm-error"),i=!0,l(d)),d.addEventListener("input",()=>{A&&A.closest(".srfm-block").classList.remove("srfm-error")})),S.classList.contains("srfm-number-block")&&(b=A.getAttribute("min"),d=A.getAttribute("max"),g=A.getAttribute("format-type"),v)&&(g="eu-style"===g?parseFloat(v.replace(/\./g,"").replace(",",".")):parseFloat(v.replace(/,/g,"")),b&&(""!==b&&Number(g)<Number(b)?(A.closest(".srfm-block").classList.add("srfm-error"),y&&(y.textContent="Minimum value is "+b)):A.closest(".srfm-block").classList.remove("srfm-error")),d)&&(""!==d&&Number(g)>Number(d)?(A.closest(".srfm-block").classList.add("srfm-error"),y&&(y.textContent="Maximum value is "+d)):A.closest(".srfm-block").classList.remove("srfm-error")),S.classList.contains("srfm-rating-block")&&("true"!==(v=S.querySelector(".srfm-input-rating")).getAttribute("aria-required")||v.value?v.closest(".srfm-block").classList.remove("srfm-error"):(v.closest(".srfm-block").classList.add("srfm-error"),i=!0,l(S.querySelector(".srfm-icon")))),S.classList.contains("srfm-slider-block")){var b=S.getAttribute("data-required"),g=S.querySelector(".srfm-input-slider"),y=S.querySelector(".srfm-text-slider"),d=S.getAttribute("data-default");if("true"===b){let e=!1;(e=(!g||g.dataset.interacted||d&&"false"!==d)&&(!y||y.dataset.interacted||d&&"false"!==d)?e:!0)?(S.classList.add("srfm-error"),i=!0,a=a||g):S.classList.remove("srfm-error")}}if(S.classList.contains("srfm-dropdown-block")){v=S.querySelectorAll(".srfm-input-dropdown-hidden");const E=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;v.forEach(e=>{const r=e.getAttribute("aria-required");"true"!==r||e.value?e.closest(".srfm-block").classList.remove("srfm-error"):(e.closest(".srfm-block").classList.add("srfm-error"),i=!0),new E(()=>{e.value?e.closest(".srfm-block").classList.remove("srfm-error"):"true"===r&&e.closest(".srfm-block").classList.add("srfm-error")}).observe(e,{attributes:!0,attributeFilter:["value"]})})}}}}return i&&[i,a]}function initializeInlineFieldValidation(){["srfm-input-block","srfm-email-block-wrap","srfm-url-block","srfm-phone-block","srfm-checkbox-block","srfm-gdpr-block","srfm-number-block","srfm-multi-choice-block","srfm-datepicker-block","srfm-upload-block","srfm-rating-block","srfm-textarea-block","srfm-dropdown-block","srfm-slider-block"].forEach(e=>addBlurListener(e,"."+e))}function addBlurListener(r,t){var e=Array.from(document.getElementsByClassName(r));if(e)for(const s of e){let e=s.querySelector("input")||s.querySelector("textarea")||s.querySelector("select");"srfm-upload-block"===r&&(e=s.querySelector('input[type="file"]')),"srfm-rating-block"===r&&addRatingBlurListener(e,s,t),"srfm-multi-choice-block"===r&&addMultiChoiceBlurListener(e,s,t),"srfm-email-block-wrap"===r&&addEmailBlurListener(s,t),"srfm-slider-block"===r&&addSliderBlurListener(e,s,t),e&&e.addEventListener("blur",async function(){fieldValidationInit(e,t)})}}function addRatingBlurListener(t,e,s){(t=e.querySelectorAll(".srfm-icon")).forEach((e,r)=>{r===t.length-1&&e.addEventListener("blur",async function(){fieldValidationInit(e,s)})})}function addMultiChoiceBlurListener(e,r,t){r.querySelectorAll(".srfm-input-multi-choice-single").forEach(e=>{e.addEventListener("blur",async function(){fieldValidationInit(e,t)})})}function addEmailBlurListener(e,r){var t=e.querySelectorAll("input");const a=e.closest(r);t.forEach(i=>{i.addEventListener("input",async function(){i.value=i.value.trim().toLowerCase();let e=!1;/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(i.value)&&(e=!0);var r=i.classList.contains("srfm-input-email-confirm")?a.querySelector(".srfm-email-confirm-block"):a.querySelector(".srfm-email-block"),t=r.querySelector(".srfm-error-message");if(i.value||(t.style.display="none",r.classList.remove("srfm-valid-email-error")),i.classList.contains("srfm-input-email-confirm")){var s=a.querySelector(".srfm-input-email"),o=a.querySelector(".srfm-email-confirm-block").querySelector(".srfm-error-message");if(s.value!==i.value)return o.style.display="block",o.textContent="Confirmation email is not the same",void a.classList.add("srfm-error");a.classList.remove("srfm-error"),o.textContent="",o.style.display="none"}e?(t.style.display="none",r.parentElement.classList.remove("srfm-valid-email-error")):(r.parentElement.classList.add("srfm-valid-email-error"),t.style.display="block",t.innerHTML="Please enter a valid email address")})})}function addSliderBlurListener(e,r,t){const s=r.querySelector(".srfm-input-slider");r=r.querySelector(".srfm-text-slider");if(s&&s.addEventListener("blur",async function(){fieldValidationInit(s,t)}),r){const o=r.querySelector(".srfm-slider-thumb");o&&o.addEventListener("blur",async function(){fieldValidationInit(o,t)})}}const fieldValidationInit=async(e,r)=>{e=e.closest(r),r=e.closest("form");await fieldValidation(r.getAttribute("form-id"),r.getAttribute("ajaxurl"),r.getAttribute("nonce"),e,!0)};export{fieldValidation,initializeInlineFieldValidation};