1(function(){'use strict';var Validator=function(form,options){this.form=form;this.options=$.extend({errorClass:'mage-error',errorTextTag:'<div>',errorTextClass:'mage-error'},options||{});$(form).attr('novalidate',true);};Validator.prototype={isValid:function(elements,silent){return this.validate(elements,silent).valid;},validate:function(elements,silent){var self=this,result={valid:true,errors:[]};if(elements===true){silent=true;elements=false;} 2elements=this._elements(elements);this.reset(elements);$(elements).each(function(){var res=self._validateElement(this);if(res.valid){return;} 3result.valid=false;result.errors.push(res);if(!silent){self._showErrors(res.field,res.errors);}});if(result.errors.length){result.errors[0].field.focus();} 4if(result.valid&&this.options.onValid){this.options.onValid.call(this,result);}else if(!result.valid&&this.options.onInvalid){this.options.onInvalid.call(this,result);} 5$(this.form).trigger('validateAfter',{result:result});return result;},reset:function(elements){var self=this;elements=this._elements(elements);$(elements).each(function(){self.removeErrorClass(this);self._overridable('removeErrorNodes',[this]);});}
5,_validateElement:function(element){var self=this,value=this._getElementValue(element),result={valid:true,field:element,errors:[]};this._validators(element).some(function(validator){var message=validator.message;if(validator.fn.call(self,value,element,validator.settings)){return false;} 6if(typeof message==='function'){message=message.call(self,value,element,validator.settings);} 7result.valid=false;result.errors.push(message);return true;});return result;},_getElementValue:function(element){var type=$(element).attr('type'),value=$(element).val(),elements;if(type==='radio'||type==='checkbox'){elements=$('input[name="'+$(element).attr('name')+'"]:checked');value=elements.val();if(elements.length&&!value){return'*';} 8return value;} 9if(typeof value==='string'){return value.replace(/\r/g,'');} 10return value;},_validators:function(element){var result=[],validators=$.validator.validators,native=['required','minlength','maxlength','min','max','pattern'],data=$(element).data('validate')||{};if(typeof data==='string'){try{data=eval('('+data+')');}catch(e){console.error('Cannot read validation rules: '+data);data={};}} 11$.each(native,function(i,attr){var value=$(element).attr(attr);if(value!==undefined&&!data[attr]){data[attr]=value;}});element.classList.forEach(function(name){if(!validators[name]){return;} 12data[name]=true;});$.each(data,function(name,settings){var validator=validators[name];while(typeof validator==='string'){validator=validators[validator];} 13if(settings===false||!validator){return;} 14result.push({fn:validator[0],message:validator[1],settings:settings});});return result;},_elements:function(elements){var added={};elements=elements||this.form;elements=$(elements);if($(elements[0]).is('form')){elements=$(elements[0]).find('input:not([type=hidden]):not([type=submit]), select, textarea').not('[disabled]').filter(function(){if(!this.name||this.name in added||$(this).width()<=0||$(this).height()<=0){return false;} 15added[this.name]=true;return true;});} 16return elements;},_showErrors:function(element,errors){this.addErrorClass(element);this._overridable('addErrorNodes',[element,this.createErrorNodes(element,errors)]);},_overridable:function(methodName,args){if(this.options[methodName]){this.options[methodName].apply(this,args);}else{this[methodName].apply(this,args);}},addErrorClass:function(element){$(element).addClass(this.options.errorClass);},removeErrorClass:function(element){$(element).removeClass(this.options.errorClass);},createErrorNodes:function(element,errors){var self=this,nodes=$([]);$.each(errors,function(){var node=$(self.options.errorTextTag);if(element.id){node.attr('for',element.id);node.attr('id',element.id+'-error');} 17node.text(this).attr('generated',true).addClass(['error-text',self.options.errorClass,self.options.errorTextClass].join(' '));nodes=nodes.add(node.get(0));});return nodes;},addErrorNodes:function(element,errorNodes){var anchor=$(element),next=$(element).nextAll().last();if(next.length){anchor=next;} 18anchor.after(errorNodes);},removeErrorNodes:function(element){$(element).parent().find('.error-text[generated]').remove();}};$.validator=function(element,options){return new Validator(element,options);};$.validator.validators={};})();
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.