@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
36 lines (35 loc) • 5.71 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { RegexValidator } from "../util/regex-validator";
import { ObjectMaker } from "../util/object-maker";
import { AnnotationTypes } from "../core/validator.static";
import { Linq } from "../util/linq";
import { ApplicationUtil } from "../util/app-util";
/**
* @param {?} config
* @return {?}
*/
export function lessThanValidator(config) {
return function (control) {
/** @type {?} */
var matchControl = control.root.get([config.fieldName]);
/** @type {?} */
var controlValue = control.value;
/** @type {?} */
var matchControlValue = (matchControl) ? matchControl.value : '';
/** @type {?} */
var formGroupValue = ApplicationUtil.getParentObjectValue(control);
/** @type {?} */
var parentObject = (control.parent) ? control.parent.value : undefined;
if (Linq.IsPassed(formGroupValue, config.conditionalExpression, parentObject)) {
if ((RegexValidator.isNotBlank(controlValue) && RegexValidator.isNotBlank(matchControlValue))) {
if (!(matchControl && parseFloat(controlValue) < parseFloat(matchControlValue)))
return ObjectMaker.toJson(AnnotationTypes["lessThan"], config.message || null, [controlValue, matchControlValue]);
}
}
return ObjectMaker.null();
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVzcy10aGFuLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bqc2JhaWxleS9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvIiwic291cmNlcyI6WyJyZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvbGVzcy10aGFuLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBU0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBRW5ELE1BQU0sNEJBQTRCLE1BQWdDO0lBQzlELE1BQU0sQ0FBQyxVQUFDLE9BQWtCOztRQUN0QixJQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDOztRQUMxRCxJQUFNLFlBQVksR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDOztRQUNuQyxJQUFNLGlCQUFpQixHQUFHLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs7UUFDbkUsSUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDOztRQUNyRSxJQUFNLFlBQVksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN6RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVFLEVBQUUsQ0FBQyxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxjQUFjLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzVGLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLElBQUksVUFBVSxDQUFDLFlBQVksQ0FBQyxHQUFHLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7b0JBQzVFLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGVBQWUsY0FBVyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFlBQVksRUFBRSxpQkFBaUIsQ0FBQyxDQUFDLENBQUM7YUFDdEg7U0FDSjtRQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7S0FFN0IsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIEZvcm1Hcm91cCxcclxuICAgIEZvcm1CdWlsZGVyLFxyXG4gICAgVmFsaWRhdG9ycyxcclxuICAgIFZhbGlkYXRvcixcclxuICAgIFZhbGlkYXRvckZuLFxyXG4gICAgQWJzdHJhY3RDb250cm9sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gXCIuLi91dGlsL3JlZ2V4LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgeyBSZWdFeFJ1bGUgfSBmcm9tIFwiLi4vdXRpbC9yZWdleC1ydWxlc1wiO1xyXG5pbXBvcnQgeyBEZWNvcmF0b3JOYW1lIH0gZnJvbSBcIi4uL3V0aWwvZGVjb3JhdG9yLW5hbWVcIlxyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBJTlZBTElEIH0gZnJvbSBcIi4uL2NvbnN0L3ZhbGlkYXRvci5jb25zdFwiXHJcbmltcG9ydCB7IEFubm90YXRpb25UeXBlcyB9IGZyb20gXCIuLi9jb3JlL3ZhbGlkYXRvci5zdGF0aWNcIjtcclxuaW1wb3J0IHsgUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9jb25maWcvcmVsYXRpb25hbC1vcGVyYXRvci1jb25maWdcIjtcclxuaW1wb3J0IHsgTGlucSB9IGZyb20gXCIuLi91dGlsL2xpbnFcIjtcclxuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSBcIi4uL3V0aWwvYXBwLXV0aWxcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBsZXNzVGhhblZhbGlkYXRvcihjb25maWc6IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogRm9ybUdyb3VwKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hDb250cm9sID0gY29udHJvbC5yb290LmdldChbY29uZmlnLmZpZWxkTmFtZV0pO1xyXG4gICAgICAgIGNvbnN0IGNvbnRyb2xWYWx1ZSA9IGNvbnRyb2wudmFsdWU7XHJcbiAgICAgICAgY29uc3QgbWF0Y2hDb250cm9sVmFsdWUgPSAobWF0Y2hDb250cm9sKSA/IG1hdGNoQ29udHJvbC52YWx1ZSA6ICcnO1xyXG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cFZhbHVlID0gQXBwbGljYXRpb25VdGlsLmdldFBhcmVudE9iamVjdFZhbHVlKGNvbnRyb2wpO1xyXG4gICAgICAgIGNvbnN0IHBhcmVudE9iamVjdCA9IChjb250cm9sLnBhcmVudCkgPyBjb250cm9sLnBhcmVudC52YWx1ZSA6IHVuZGVmaW5lZDtcclxuICAgICAgICBpZiAoTGlucS5Jc1Bhc3NlZChmb3JtR3JvdXBWYWx1ZSwgY29uZmlnLmNvbmRpdGlvbmFsRXhwcmVzc2lvbiwgcGFyZW50T2JqZWN0KSkge1xyXG4gICAgICAgICAgICBpZiAoKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsoY29udHJvbFZhbHVlKSAmJiBSZWdleFZhbGlkYXRvci5pc05vdEJsYW5rKG1hdGNoQ29udHJvbFZhbHVlKSkpIHtcclxuICAgICAgICAgICAgICAgIGlmICghKG1hdGNoQ29udHJvbCAmJiBwYXJzZUZsb2F0KGNvbnRyb2xWYWx1ZSkgPCBwYXJzZUZsb2F0KG1hdGNoQ29udHJvbFZhbHVlKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubGVzc1RoYW4sIGNvbmZpZy5tZXNzYWdlIHx8IG51bGwsIFtjb250cm9sVmFsdWUsIG1hdGNoQ29udHJvbFZhbHVlXSk7ICAgICAgICBcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIubnVsbCgpO1xyXG4gICAgICAgIFxyXG4gICAgfVxyXG59XHJcbiJdfQ==