-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathegkyron-core.min.js
1 lines (1 loc) · 5.34 KB
/
egkyron-core.min.js
1
angular.module("egkyron",[]),angular.module("egkyron").factory("Constraint",[function(){function t(t,n,e){this.key=t,this.validator=n,this.params=e}return t}]),angular.module("egkyron").controller("ValidateController",["$scope","$attrs","ValidationContext",function(t,n,e){function r(e,r,i){if(f=e,y=r,!f)throw new Error("the ngModel is required");if(!y)throw new Error("the validator is required");g=y.introspectionStrategy.processModelExpression(n.ngModel),f.$validators.validate=o,V=i?i.getChildType():y.introspectionStrategy.findType(),C=g.propNameGetter(t),_=y.introspectionStrategy.findType(null,v.getType(),C)}function i(){c||(c=t.$watch(function(){var t=l(f.$modelValue,!0);return p(t)},function(t,n){t!==n&&f.$validate()}))}function a(){angular.isFunction(c)&&(c(),c=null)}function o(t,n){var e,r,i,a=l(t||n,!1);i=a&&a._validity?a._validity:m;for(e in i)i.hasOwnProperty(e)&&(r=i[e],f.$setValidity(e,r.isValid),v.handleMessage(e,r));return p(a)}function l(n,r){var i,a=new e;return i=y.introspectionStrategy.prepareValidationFromScope(t,g,v.getType()),y.evaluateConstraints(a,i.constraints,i.ctxObject,n,r),a.result}function s(t,n){}function u(){return V}function d(){return _}function h(){_&&_.indexOf("[]")===_.length-2&&(_=_.substring(0,_.length-2))}function p(t){return null==t||t._thisValid&&(angular.isUndefined(t._childrenValid)||t._childrenValid===!0)}var c,f,g,y,m={},v=this,V=null,_=null,C=null;angular.extend(this,{configure:r,watchValidity:i,unwatchValidity:a,handleMessage:s,getType:u,getChildType:d,skipIndex:h})}]),angular.module("egkyron").factory("ValidationContext",["ValidationResult",function(t){function n(){this.constraintName=null,this.result={_thisValid:!0,_validity:null,_children:null},this.message=null,this.messageParams=null,this.path=[this.result]}return n.prototype.setCurrentConstraintName=function(t){this.constraintName=t,this.message=null,this.messageParams=null},n.prototype.addResult=function(n){var e,r,i;if(r=this.path[this.path.length-1],i=new t(n,this.message,this.messageParams),r._validity||(r._validity={}),r._validity[this.constraintName]=i,!n)for(r._thisValid=!1,e=this.path.length-2;e>=0;e--)this.path[e]._childrenValid=!1},n.prototype.setMessage=function(t){this.message=t},n.prototype.setMessageParams=function(t){this.messageParams=t},n.prototype.pushPath=function(t){var n=this.path[this.path.length-1],e={_thisValid:!0,_validity:null,_children:null};n._children||(n._children="number"==typeof t?[]:{}),"undefined"==typeof n._childrenValid&&(n._childrenValid=!0),n._children[t]=e,this.path.push(e)},n.prototype.popPath=function(){this.path.pop()},n.prototype.hasValidationErrors=function(t){var n=t||this.result;return n?!n._thisValid||n._childrenValid===!1:!1},n}]),angular.module("egkyron").factory("ValidationResult",[function(){function t(t,n,e){this.isValid=!!t,this.message=n,this.params=e}return t}]),angular.module("egkyron").factory("Validator",["Constraint","ValidationContext",function(t,n){function e(t,n){this.validatorRegistry=t,this.introspectionStrategy=n}function r(t){if(null==t)return null;var n,e=[];for(n=0;n<t.length;n++)null!=t[n]&&e.push(t[n]);return e.length>0?e:null}function i(t,n){var e,r=t.params.groups;for(e=0;e<r.length;e++)if(n.indexOf(r[e])>=0)return!0;return!1}return e.DEFAULT_GROUPS=["default"],e.prototype.validate=function(t,e,r){var i,a=new n,o=3,l=e,s=r;return null!=t&&(Array.isArray(l)&&(s=l,l=!1,o-=1),Array.isArray(s)||(s=null,o-=1),"boolean"!=typeof l&&(l=!1,o-=1),i=arguments.length>o?Array.prototype.slice.call(arguments,o):null,this.validateProperties(a,t,this.introspectionStrategy.findType(a,null,null),l,s,i)),a},e.prototype.validateProperties=function(t,n,e,i,a,o){var l=this;return o=r(o),this.introspectionStrategy.enumerateProps(t,n,e,function(r){var s,u,d;if(null==o||o.indexOf(r)>=0){if(u=l.introspectionStrategy.extractConstraintsFromContext(t,n,e,r),d=l.introspectionStrategy.evaluate(n,r,e,t),t.pushPath(r),l.evaluateConstraints(t,u,n,d,i,a),!(i&&t.hasValidationErrors()||null==d||"object"!=typeof d)&&!(d instanceof Date)&&("function"!=typeof l.introspectionStrategy.shouldDescend||l.introspectionStrategy.shouldDescend(n,r,e,t))&&(s=l.validateProperties(t,d,l.introspectionStrategy.findType(t,e,r),i,a),s===!1))return!1;if(t.popPath(),i&&t.hasValidationErrors())return!1}})},e.prototype.evaluateConstraints=function(t,n,r,a,o,l){var s,u,d;if(n)for(null==l&&(l=e.DEFAULT_GROUPS),n=this.normalizeConstraints(n),s=0;s<n.length&&(d=n[s],!i(d,l)||(t.setCurrentConstraintName(d.key),u=d.validator.call(r,a,d.params,t),"boolean"==typeof u&&t.addResult(u),t.setCurrentConstraintName(null),!o||u!==!1));s++);},e.prototype.normalizeConstraints=function(t){var n;if(!t._normalized)for(t._normalized=[],n=0;n<t.length;n++)t._normalized.push(this.normalizeConstraint(t[n]));return t._normalized},e.prototype.normalizeConstraint=function(n){var r;if("string"==typeof n&&(n=[n,n]),"object"==typeof n[1]&&null==n[2]&&(n[2]=n[1],n[1]=n[0]),"string"==typeof n[1]&&(r=n[1],n[1]=this.validatorRegistry.getRegisteredValidator(r),!n[1]))throw new Error("no validator registered as "+r);return null==n[2]&&(n[2]={}),null==n[2].groups&&(n[2].groups=e.DEFAULT_GROUPS.slice()),"string"==typeof n[2].groups&&(n[2].groups=[n[2].groups]),new t(n[0],n[1],n[2])},e}]),angular.module("egkyron").directive("validator",function(){return{restrict:"A",scope:!1,controller:["$scope","$parse","$attrs",function(t,n,e){var r=n(e.validator)(t);this.getValidator=function(){return r}}]}});