| 1 |
var validateForm=function(){"use strict";let e,t,i={},n=[];const r=t=>window?.bf_globals?.[e].inits?.[t],o=(e,t,i)=>{const n=Number(i)>1?`${e}[${i}]`:e;return t.inits&&!t.inits[n]?e:n},l=e=>{const n=e.replace(/\[\d*\]/g,"");if(i[n])return i[n];const r=Object.entries(t);for(let e=0;e<r.length;e+=1){const[t,o]=r[e];if(o?.fieldName===n)return i[n]=t,t}return""},d=()=>{const n=new FormData(bfSelect(`#form-${e}`)),r={},o=Array.from(n.entries());return i={},o.forEach((([e,i])=>{const n=l(e),o=e.replace("[]","");n in t&&(r[o]?(Array.isArray(r[o])||(r[o]=[r[o]]),r[o].push(i)):r[o]=i)})),r},a=(t,i,r,o="")=>{const l=bfSelect(`#form-${e} ${o} .${i}-err-wrp`),d=bfSelect(`.${i}-err-txt`,l),a=bfSelect(`.${i}-err-msg`,l);let f=!1;try{f="grid"===getComputedStyle(l).display,f&&(l.style.removeProperty("opacity"),l.style.removeProperty("height"),a.style.removeProperty("display"))}catch(e){f=!1}const s=bfSelect(`#form-${e} ${o} .${i}-fld`),c=bfSelect(`#form-${e} ${o} .${i}-cc[role="group"], #form-${e} ${o} .${i}-cc[role="radiogroup"]`);if(d&&"err"in(r||{}))if(t&&r?.err?.[t]?.show){const{custom:e,msg:o,dflt:u}=r.err[t];d.innerHTML=e&&o?o:u,f?setStyleProperty(l,"grid-template-rows","1fr"):setTimeout((()=>{a.style.removeProperty("display"),setStyleProperty(l,"height",`${d.offsetHeight}px`),setStyleProperty(l,"opacity",1)}),100),n.push(i),s&&s.setAttribute("aria-invalid","true"),c&&c.setAttribute("aria-invalid","true")}else d.innerHTML="",f?setStyleProperty(l,"grid-template-rows","0fr"):(setStyleProperty(l,"height",0),setStyleProperty(l,"opacity",0),setStyleProperty(a,"display","none")),s&&s.removeAttribute("aria-invalid"),c&&c.removeAttribute("aria-invalid")};return function({form:i,input:f},{step:s,otherOptions:c}={}){i?e=i:f?.form?.id&&([,e]=f.form.id.split("form-"));const u=window?.bf_globals?.[e];if(void 0===u)return!1;let p={};n=[];const y=u.configs.bf_separator;if(s){let e=u.layout[s-1];if(!e)return!1;e=e?.layout||e;const i=e.lg.map((e=>e.i)),n=u.nestedLayout||{};Object.entries(n).forEach((([e,t])=>{if(i.includes(e)){const e=t.lg.map((e=>e.i));i.push(...e)}})),t=i.reduce(((e,t)=>({...e,[t]:u.fields[t]})),{})}else t=u.fields;const{modifiedFields:m}=u;if(m&&Object.assign(t,m),i)p=d();else if(f){if(!u.validateFocusLost&&!c?.validateOnInput)return!0;const e=l(f.name);p=d(),t={[e]:t[e]}}let h=!0;const F=Object.entries(t);let{length:b}=F;for(;b--;){const[t,i]=F[b];let n=[""];if("undefined"!=typeof checkRepeatedField){const e=checkRepeatedField(t,u);n=getRepeatedIndexes(e,u,f)}for(let l=0;l<n.length;l+=1){const d=n[l],f=d?`${i.fieldName}[${d}]`:i.fieldName,s=`#form-${e}`,c=d?`.rpt-index-${d}`:"",m=i.typ,F="string"==typeof p[f]?p[f].trim():p[f],b=o(t,u,d);if(bfSelect(`${s} ${c} .${t}.fld-hide, ${s} .fld-hide ${c} .${t}`)){a("",t,i,c);continue}let g="";"check"!==m&&"image-select"!==m||(g="undefined"!=typeof checkFldValidation?checkFldValidation(F,i):""),"check"!==m&&"radio"!==m||g||"undefined"==typeof customOptionValidation||(g=customOptionValidation(e,t,i)),F||g||"0"===F||(g="undefined"!=typeof requiredFldValidation?requiredFldValidation(i):null),a(g,t,i,c),g?h=!1:(["password","email"].includes(m)&&i?.parentFieldKey&&!i?.isDeactive&&"undefined"!=typeof confirmFldMatch&&(g=confirmFldMatch(F,i,p,u.fields,d)),a(g,t,i,c),g?h=!1:"email-otp"!==m||"undefined"==typeof emailOtpFldValidation?F&&("number"===m&&"undefined"!=typeof nmbrFldValidation?g=nmbrFldValidation(F,i):"email"===m&&"undefined"!=typeof emailFldValidation?g=emailFldValidation(F,i):"url"===m&&"undefined"!=typeof urlFldValidation?g=urlFldValidation(F,i):["decision-box","gdpr"].includes(m)&&"undefined"!=typeof dcsnbxFldValidation?g=dcsnbxFldValidation(F,i):["check","select","image-select"].includes(m)&&"undefined"!=typeof checkMinMaxOptions?g=checkMinMaxOptions(F,i,y):"range"===m&&"undefined"!=typeof checkMinMaxValue?g=checkMinMaxValue(F,i):"file-up"===m&&"undefined"!=typeof fileupFldValidation?g=fileupFldValidation(r(b),F,i):"advanced-file-up"===m&&"undefined"!=typeof advanceFileUpFldValidation?g=advanceFileUpFldValidation(r(b),i):"phone-number"===m&&"undefined"!=typeof phoneNumberFldValidation?g=phoneNumberFldValidation(r(b),i):"currency"===m&&"undefined"!=typeof currencyFldValidation&&(g=currencyFldValidation(r(b),i)),g||"undefined"==typeof bfDatetimeFldValidation||(g=bfDatetimeFldValidation(r(b),F,i)),i?.valid?.inputMask&&!g&&(g="undefined"!=typeof inputMaskValidation?inputMaskValidation(e,t,F,i):null),i?.valid?.regexr&&!g&&(g="undefined"!=typeof regexPatternValidation?regexPatternValidation(F,i):null),g||"undefined"==typeof textLengthValidation||(g=textLengthValidation(F,i)),a(g,t,i,c),g&&(h=!1)):(g=emailOtpFldValidation(r(b),i),a(g,t,i,c),g&&(h=!1)))}}return i&&(moveToFirstErrFld(u,n),h||(t=>{if(0===t)return;const i=bfSelect(`#${e}`),n=i?.querySelector(".bf-live-region");if(!n)return;const r=1===t?"Form has 1 validation error. Please correct it before submitting.":`Form has ${t} validation errors. Please correct them before submitting.`;n.textContent=r,setTimeout((()=>{n.textContent=""}),3e3)})(n.length)),h}}(); |