1function FormValidator(t){this._formFields=this._getFormFields(t),this._valid=!0,this._validateRequired=function(t){return t.length>0},this._validateEmail=function(t){return/^(([^<>()\[\]\\.,;:\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(t)},this._validateMin=function(t,a){return t>=a},this._validateMax=function(t,a){return t<=a},this._validateActions={valRequired:this._validateRequired,valEmail:this._validateEmail,valMin:this._validateMin,valMax:this._validateMax},this._formFields.forEach(function(t){t.addEventListener("blur",function(t){this.validateField(t.target)}.bind(this))}.bind(this))}FormValidator.prototype._getFormFields=function(t){return Array.prototype.slice.call(t.querySelectorAll(["[data-val-required]","[data-val-email]","[data-val-min]","[data-val-max]"]))},FormValidator.prototype.validateForm=function(){return this._valid=!0,this._formFields.forEach(function(t){this.validateField(t)}.bind(this)),this._valid},FormValidator.prototype.validateField=function(t){Object.keys($(t).data()).filter(function(t){return"val"!==t}).forEach(function(a){this._validateActions[a](t.value,$(t).data(a))?this.toggleError(a,t.name,"hide"):(this._valid=!1,this.toggleError(a,t.name,"show"))}.bind(this))},FormValidator.prototype.toggleError=function(t,a,i){var e;"valRequired"===t&&(e=document.querySelector('[data-val-required-for="'+a+'"]')),"valEmail"===t&&(e=document.querySelector('[data-val-email-for="'+a+'"]')),"valMin"===t&&(e=document.querySelector('[data-val-min-for="'+a+'"]')),"valMax"===t&&(e=document.querySelector('[data-val-max-for="'+a+'"]')),e&&("show"===i?e.style.display="block":"hide"===i&&(e.style.display="none"))};
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.