PageSourceSearch

https://resources.armedservicesministry.org/cdn/shop/t/9/assets/va…?v=69813901987509599521707492023

js armedservicesministry.org collected 2026-10-02 19:02:51 UTC 3,058 bytes, 1 lines download raw bytes

1class ValidationService extends HTMLElement{constructor(){super(),this.classes={success:"is-success",error:"is-error"},this.passwordValue="",this.passwordEventListeners=[]}getInputId(s){return s.dataset.id||s.id}localizationErrors(s){s="select-one"===s.type?s.dataset.field:this.getInputId(s);return window?.localization?.error_message[s]}sendResults(s,e){return{id:s.dataset.id||s.id,status:e}}checkRequired(s,e){let t;var r=this.getInputId(s),e=e?e.dataset.id||e.id:r;return s.required&&r===e?""===s.value.trim()?(e=this.localizationErrors(s)?.blank,this.showError(s,e),t=this.sendResults(s,!1)):(t=this.checkName(s),"password"!==r&&"password_confirmation"!==r||("password"===r&&(this.passwordValue=s.value),t=this.checkLength(s,5,25)),"password_confirmation"===r&&(t=this.checkFit(s)),"email"===r&&(t=this.checkEmail(s))):t=this.sendResults(s,!0),t}checkFit(s){let e;return e=this.passwordValue!==s.value?(this.showError(s,this.localizationErrors(s).fit),this.sendResults(s,!1)):(this.showSuccess(s),this.sendResults(s,!0))}checkLength(s,e,t){let r;return r=s.value.length<e?(this.showError(s,this.localizationErrors(s).short),this.sendResults(s,!1)):s.value.length>t?(this.showError(s,this.localizationErrors(s).long),this.sendResults(s,!1)):(this.showSuccess(s),this.sendResults(s,!0))}showSuccess(s){var e=s.closest('[data-element="field"]');e.classList.remove(this.classes.error),e.classList.add(this.classes.success),s.removeAttribute("aria-invalid"),s.removeAttribute("aria-describedby")}showError(s,e){var t=s.closest('[data-element="field"]');t.classList.remove(this.classes.success),t.classList.add(this.classes.error),s.setAttribute("aria-invalid",!0),s.setAttribute("aria-describedby",s.id+"-error"),t.querySelector("p").innerHTML=e}checkName(s){let e;var t="tel"===s.type?/^[0-9]{3}-[0-9]{3}-[0-9]{4}$/.test(s.value.trim()):!/[\u0401\u0451\u0457\u0456\u0454\u0410-\u044f]/g.test(s.value.trim());return e=t?(this.showSuccess(s),this.sendResults(s,!0)):(t=this.localizationErrors(s).symbols,this.showError(s,t),this.sendResults(s,!1))}checkEmail(s){let e;var t;return e=/^(([^<>()\[\]\\.,;:\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(s.value.trim())?(this.showSuccess(s),this.sendResults(s,!0)):(t=this.localizationErrors(s).invalid,this.showError(s,t),this.sendResults(s,!1))}showPasswordHandler(s){this.removePasswordHandlers(),s.querySelectorAll('[data-element="toggle-password"]').forEach(s=>{var e=function(s){var e,t;s.preventDefault(),"Enter"!==s.key&&"click"!==s.type||(e=(s=s.currentTarget).previousElementSibling,t=s.classList.contains("is-active"),s.classList.toggle("is-active",!t),e.setAttribute("type",t?"password":"text"))}.bind(this);s.addEventListener("click",e),this.passwordEventListeners.push({item:s,listener:e})})}removePasswordHandlers(){this.passwordEventListeners.forEach(({item:s,listener:e})=>{s.removeEventListener("click",e)}),this.passwordEventListeners=[]}}customElements.define("validation-service",ValidationService);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.