芝麻web文件管理V1.00
编辑当前文件:/home/ephorei/www/wp-content/plugins/sureforms/assets/js/minified/validation.min.js
async function getUniqueValidationData(e,t,r,o){let s="action=validation_ajax_action&nonce="+encodeURIComponent(o)+"&id="+encodeURIComponent(t);Object.keys(e).forEach(t=>{s+="&"+encodeURIComponent(t)+"="+encodeURIComponent(e[t])});try{var i=await fetch(r,{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:s});if(i.ok)return(await i.json()).data}catch(t){console.error(t)}}async function fieldValidation(t,e,r,o,s=!1){let n=!1,i=null,l=null,a={};const c=(t,e,r={})=>{i||(i=t,l=e,a=r)};let m=null;var f=document.querySelectorAll('input[data-unique="true"]');if(0!==f.length){var u={};for(const L of f){var d=L.name,g=L.value;u[d]=g}m=await getUniqueValidationData(u,t,e,r)}for(const _ of s?[o]:Array.from(o.querySelectorAll(".srfm-block-single"))){let e=!1;if(Array.isArray(window.sureforms?.skipValidationCallbacks)&&window.sureforms.skipValidationCallbacks.forEach(t=>{"function"==typeof t&&(e=e||t(_))}),!e){var w=_.closest("form").getAttribute("form-id");if(w===t){let t,e;e=!0===_.classList.contains("srfm-phone-block")?(t=_.querySelector(".srfm-input-phone"))?.nextElementSibling?.value:(t=_.querySelector("input, textarea, select")).value;var b,p,S,y,w=t.getAttribute("data-required"),k=t.getAttribute("data-unique");let r=t.getAttribute("name");const x=_.querySelector(".srfm-error-message");if(r=r&&r.replace(/_/g," "),w&&"hidden"!==t.type&&("true"!==w||e?t&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1):(t&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0),x&&(x.textContent=x.getAttribute("data-error-msg")),n=!0,c(t,t.closest(".srfm-block"))),t.addEventListener("input",()=>{window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1)})),"true"===k&&""!==e&&(m?.some(t=>"not unique"===t[r])?(t&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0),x.style.display="block",x.textContent=x.getAttribute("data-unique-msg"),n=!0,c(t,t.closest(".srfm-block"))):t&&(window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1),x.style.display="none")),_.classList.contains("srfm-multi-choice-block")||_.classList.contains("srfm-checkbox-block")||_.classList.contains("srfm-gdpr-block")){var E=_.querySelectorAll("input"),k=E[0].getAttribute("data-required");let e=!1,r=null;for(let t=0;t
{t.addEventListener("input",()=>{window?.srfm?.toggleErrorState(_,!1)})})}if(_.classList.contains("srfm-url-block")&&(k=_.querySelector("input"),_.classList.contains("srfm-url-error")&&(window?.srfm?.toggleErrorState(_,!0),n=!0,c(k,_)),k.addEventListener("input",()=>{window?.srfm?.toggleErrorState(_,!1)})),_.classList.contains("srfm-phone-block")&&(k=_.querySelectorAll("input")[1],_.classList.contains("srfm-phone-error")&&(window?.srfm?.toggleErrorState(_,!0),n=!0,c(k,_)),_.querySelectorAll("input").forEach(t=>{t.addEventListener("input",()=>{window?.srfm?.toggleErrorState(_,!1)})})),_.classList.contains("srfm-password-block-wrap")&&(k=_)&&(k=k.querySelector(".srfm-password-confirm-block"))&&(p=k.querySelector(".srfm-input-password-confirm").value,b=k.querySelector(".srfm-error-message"),!p&&b&&"true"===w?(b.textContent=b.getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(k,!0),c(p,k),n=!0):p!==e?(window?.srfm?.toggleErrorState(k,!0),b.textContent=window?.srfm_submit?.messages?.srfm_confirm_password_same,c(p,k),n=!0):window?.srfm?.toggleErrorState(k,!1)),_.classList.contains("srfm-email-block-wrap")){const C=_;if(C){const I=C.querySelector(".srfm-email-confirm-block");C.classList.contains("srfm-valid-email-error")&&(c(t,C),n=!0),I&&(b=I.querySelector(".srfm-input-email-confirm"),p=I.querySelector(".srfm-input-email-confirm").value,k=I.querySelector(".srfm-error-message"),!p&&k&&"true"===w?(k.textContent=k.getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(I,!0),c(b,I),n=!0):p!==e?(window?.srfm?.toggleErrorState(I,!0),k.textContent=window?.srfm_submit?.messages?.srfm_confirm_email_same,c(b,I),n=!0):window?.srfm?.toggleErrorState(I,!1),b.addEventListener("input",()=>{window?.srfm?.toggleErrorState(I,!1)})),C.querySelector(".srfm-input-email").addEventListener("input",()=>{window?.srfm?.toggleErrorState(C,!1)})}}if(_.classList.contains("srfm-upload-block")&&("true"!==(S=(k=_.querySelector(".srfm-input-upload")).getAttribute("data-required"))||k.value?t&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1):("true"===S&&x&&(x.textContent=x.getAttribute("data-error-msg")),t&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0),n=!0,c(k,_)),k.addEventListener("input",()=>{t&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1)})),_.classList.contains("srfm-number-block")&&(S=t.getAttribute("min"),k=t.getAttribute("max"),y=t.getAttribute("format-type"),e)&&(y="eu-style"===y?parseFloat(e.replace(/\./g,"").replace(",",".")):parseFloat(e.replace(/,/g,"")),S&&(""!==S&&Number(y)
Number(k)?(window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0),x&&(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_input_max_value,k))):window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1)),_.classList.contains("srfm-rating-block")&&("true"!==(y=_.querySelector(".srfm-input-rating")).getAttribute("data-required")||y.value?window?.srfm?.toggleErrorState(y.closest(".srfm-block"),!1):(window?.srfm?.toggleErrorState(y.closest(".srfm-block"),!0),n=!0,c(_.querySelector(".srfm-icon"),_))),_.classList.contains("srfm-slider-block")){var k=_.getAttribute("data-required"),v=_.querySelector(".srfm-input-slider"),q=_.querySelector(".srfm-text-slider"),h=_.getAttribute("data-default");if("true"===k){let t=!1;(t=(!v||v.dataset.interacted||h&&"false"!==h)&&(!q||q.dataset.interacted||h&&"false"!==h)?t:!0)?(window?.srfm?.toggleErrorState(_,!0),n=!0,c(v,_)):window?.srfm?.toggleErrorState(_,!1)}}if(_.classList.contains("srfm-dropdown-block")){k=_.querySelectorAll(".srfm-input-dropdown-hidden");const V=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;k.forEach(t=>{const e=t.getAttribute("data-required");var r,o,s,i=t.getAttribute("name");"true"!==e||t.value?t.value?(s=t.getAttribute("data-min-selection"),r=t.getAttribute("data-max-selection"),(s||r)&&(o=t.value.split(","),s&&o.length
r&&(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_dropdown_max_selections,r),window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0),n=!0))):window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1):(x.textContent=x.getAttribute("data-error-msg"),window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0),n=!0),n&&(s=window?.srfm?.[i]||t,c(s,t.closest(".srfm-block"),{shouldDelayOnFocus:!0})),new V(()=>{t.value?window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!1):"true"===e&&window?.srfm?.toggleErrorState(t.closest(".srfm-block"),!0)}).observe(t,{attributes:!0,attributeFilter:["value"]})})}if(_.classList.contains("srfm-multi-choice-block")){var A=_.querySelectorAll("input"),q=A[0].getAttribute("data-min-selection"),h=A[0].getAttribute("data-max-selection");let e=null,r=0,t=!1;for(let t=0;t
h&&(x.textContent=window?.srfm?.srfmSprintfString(window?.srfm_submit?.messages?.srfm_multi_choice_max_selections,h),t=!0),t?(window?.srfm?.toggleErrorState(_,!0),c(e,_),n=!0):w||window?.srfm?.toggleErrorState(_,!1))}}}}return!!n&&{validateResult:n,firstErrorInput:i,scrollElement:l,...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(t=>addBlurListener(t,"."+t))}function addBlurListener(e,r){var t=Array.from(document.getElementsByClassName(e));if(t)for(const o of t){let t=o.querySelector("input")||o.querySelector("textarea")||o.querySelector("select");if("srfm-upload-block"===e&&(t=o.querySelector('input[type="file"]')),"srfm-rating-block"===e&&addRatingBlurListener(t,o,r),"srfm-multi-choice-block"===e&&addMultiChoiceBlurListener(t,o,r),"srfm-email-block-wrap"===e&&addEmailBlurListener(o,r),"srfm-slider-block"===e&&addSliderBlurListener(t,o,r),"srfm-dropdown-block"===e){const s=t.getAttribute("name");setTimeout(()=>{window?.srfm?.[s]?.on("blur",function(){fieldValidationInit(t,r)})},500)}(t="srfm-phone-block"===e?o.querySelector(".srfm-input-phone"):t)&&t.addEventListener("blur",async function(){fieldValidationInit(t,r)})}}function addRatingBlurListener(t,e,r){e.querySelectorAll(".srfm-icon").forEach(t=>{t.addEventListener("blur",async function(){fieldValidationInit(t,r)})})}function addMultiChoiceBlurListener(t,e,r){e.querySelectorAll(".srfm-input-multi-choice-single").forEach(t=>{t.addEventListener("blur",async function(){fieldValidationInit(t,r)})})}function addEmailBlurListener(t,e){var r=t.querySelectorAll("input");const n=t.closest(e);r.forEach(i=>{i.addEventListener("input",async function(){i.value=i.value.trim().toLowerCase();let t=!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)&&(t=!0);var e=i.classList.contains("srfm-input-email-confirm")?n.querySelector(".srfm-email-confirm-block"):n.querySelector(".srfm-email-block"),r=e.querySelector(".srfm-error-message");if(i.value||(r.style.display="none",e.classList.remove("srfm-valid-email-error")),i.classList.contains("srfm-input-email-confirm")){var o=n.querySelector(".srfm-input-email"),s=n.querySelector(".srfm-email-confirm-block").querySelector(".srfm-error-message");if(o.value!==i.value)return s.style.display="block",s.textContent=window?.srfm_submit?.messages?.srfm_confirm_email_same,void window?.srfm?.toggleErrorState(n,!0);window?.srfm?.toggleErrorState(n,!1),s.textContent="",s.style.display="none"}t?(r.style.display="none",e.parentElement.classList.remove("srfm-valid-email-error"),r.removeAttribute("id")):(e.parentElement.classList.add("srfm-valid-email-error"),r.style.display="block",r.innerHTML=window?.srfm_submit?.messages?.srfm_valid_email,r.id=r.getAttribute("data-srfm-id"))})})}function addSliderBlurListener(t,e,r){const o=e.querySelector(".srfm-input-slider");e=e.querySelector(".srfm-text-slider");if(o&&o.addEventListener("blur",async function(){fieldValidationInit(o,r)}),e){const s=e.querySelector(".srfm-slider-thumb");s&&s.addEventListener("blur",async function(){fieldValidationInit(s,r)})}}const fieldValidationInit=async(t,e)=>{t=t.closest(e),e=t.closest("form");await fieldValidation(e.getAttribute("form-id"),e.getAttribute("ajaxurl"),e.getAttribute("nonce"),t,!0)},handleScrollAndFocusOnError=t=>{var e,r,o;t?.firstErrorInput&&(t?.scrollElement&&(e=t.scrollElement.getBoundingClientRect().top,r=window.pageYOffset,o=window.innerHeight,window.scroll({top:e+r-o/2,behavior:"smooth"})),t?.shouldDelayOnFocus?setTimeout(()=>{t.firstErrorInput.focus({preventScroll:!0})},500):t.firstErrorInput.focus({preventScroll:!0}))};export{fieldValidation,initializeInlineFieldValidation,handleScrollAndFocusOnError};