Files

1 line
11 KiB
JavaScript
Raw Permalink Normal View History

(function(){"use strict";window.kadenceAdvancedForm={error_item:1,clearForm(a){a.reset()},ensureLiveRegion(a){let b=a.querySelector(".kb-form-live-region");return b||(b=document.createElement("div"),b.className="kb-form-live-region",b.setAttribute("aria-live","polite"),b.setAttribute("aria-atomic","true"),b.setAttribute("role","status"),b.style.position="absolute",b.style.left="-10000px",b.style.width="1px",b.style.height="1px",b.style.overflow="hidden",a.appendChild(b)),b},announceMessage(a,b,c="polite"){const d=window.kadenceAdvancedForm.ensureLiveRegion(a);d.textContent="",d.setAttribute("aria-live",c),setTimeout(()=>{d.textContent=b},100)},insertAfter(a,b){b.parentNode.insertBefore(a,b.nextSibling)},markError(a,b,c,d=null,e=null){let f="";if(c.classList.contains("kb-adv-form-has-error")||c.classList.add("kb-adv-form-has-error"),a.classList.add("has-error"),b){switch(b){case"required":const c=a.getAttribute("data-kb-required-message");if(c&&""!==c){f=c;break}f=a.getAttribute("data-required-message"),f&&""!==f&&void 0!==f||(f=a.getAttribute("data-label"),(!f||""===f||void 0===f)&&(f=kb_adv_form_params.item),f=f+" "+kb_adv_form_params[b]);break;case"mismatch":f=a.getAttribute("data-mismatch-message"),f&&""!==f&&void 0!==f||(f=a.getAttribute("data-label"),(!f||""===f||void 0===f)&&(f=kb_adv_form_params.item),f=f+" "+kb_adv_form_params[b]);break;case"validation":f=a.getAttribute("data-validation-message"),f&&""!==f&&void 0!==f||(f=a.getAttribute("data-label"),(!f||""===f||void 0===f)&&(f=kb_adv_form_params.item),f=f+" "+kb_adv_form_params[b]);break;case"custom":const d=e?.message;f=d?d:a.getAttribute("data-label")+" has an issue"}const c=a.parentNode.querySelector(".kb-adv-form-error-msg");c&&c.remove();const g=a.getAttribute("name")+"-error";a.setAttribute("aria-describedby",g),a.setAttribute("aria-invalid","true");const h=document.createElement("div");h.id=g,h.classList.add("kb-adv-form-error-msg"),h.classList.add("kb-adv-form-message"),h.classList.add("kb-adv-form-warning"),h.innerHTML=window.kadenceAdvancedForm.strip_tags(f,"<div><a><b><i><u><p><ol><ul>"),a.classList.contains("kb-accept-field")?a.parentNode.parentNode.append(h):a.classList.contains("kb-checkbox-field")||a.classList.contains("kb-radio-field")?a.parentNode.append(h):window.kadenceAdvancedForm.insertAfter(h,a),d&&f&&d.push({message:f,item:a})}window.kadenceAdvancedForm.error_item++},addErrorNotice(a,b=[],c=""){let d=a.getAttribute("data-error-message");d&&""!==d&&void 0!==d||(d=kb_adv_form_params.error_message);const e=c||d;let f="<h2 class=\"kb-adv-form-error-title\">"+e+"</h2>";console.log(f),0<b.length&&(f+="<ol class=\"kb-adv-form-field-errors\">",b.forEach(function(a){const b=a.message,c=a.item,d=c.getAttribute("id")||c.getAttribute("name");f+=d?"<li><a href=\"#"+d+"\" class=\"kb-adv-form-error-link\" data-field-id=\""+d+"\">"+window.kadenceAdvancedForm.strip_tags(b,"<div><a><b><i><u><p><ol><ul>")+"</a></li>":"<li>"+window.kadenceAdvancedForm.strip_tags(b,"<div><a><b><i><u><p><ol><ul>")+"</li>"}),f+="</ol>");const g=document.createElement("div");g.classList.add("kb-adv-form-message"),g.classList.add("kb-adv-form-warning"),g.setAttribute("role","alert"),g.setAttribute("aria-live","assertive"),g.setAttribute("tabindex","-1"),g.innerHTML=window.kadenceAdvancedForm.strip_tags(f,"<div><a><b><i><u><p><ol><ul><li><h2><h3><h4><h5><h6>"),a.parentNode.insertBefore(g,a),g.focus()},isValidEmail(a){const b=new RegExp(/^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\u