@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.78 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 lessThanEqualToValidator(config) {
return (control) => {
/** @type {?} */
const matchControl = control.root.get([config.fieldName]);
/** @type {?} */
const controlValue = control.value;
/** @type {?} */
const matchControlValue = (matchControl) ? matchControl.value : '';
/** @type {?} */
const formGroupValue = ApplicationUtil.getParentObjectValue(control);
/** @type {?} */
const 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["lessThanEqualTo"], config.message || null, [controlValue, matchControlValue]);
}
}
return ObjectMaker.null();
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGVzcy10aGFuLWVxdWFsLXRvLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bqc2JhaWxleS9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvIiwic291cmNlcyI6WyJyZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvbGVzcy10aGFuLWVxdWFsLXRvLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBU0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBR3pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFM0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7O0FBRW5ELE1BQU0sbUNBQW1DLE1BQWdDO0lBQ3JFLE1BQU0sQ0FBQyxDQUFDLE9BQWtCLEVBQTBCLEVBQUU7O1FBQ2xELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7O1FBQzFELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7O1FBQ25DLE1BQU0saUJBQWlCLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOztRQUNuRSxNQUFNLGNBQWMsR0FBRyxlQUFlLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7O1FBQ3JFLE1BQU0sWUFBWSxHQUFHLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1FBQ3pFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxFQUFFLE1BQU0sQ0FBQyxxQkFBcUIsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDNUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxJQUFJLGNBQWMsQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDNUYsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksSUFBSSxVQUFVLENBQUMsWUFBWSxDQUFDLElBQUksVUFBVSxDQUFDLGlCQUFpQixDQUFDLENBQUMsQ0FBQztvQkFDN0UsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxxQkFBa0IsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxDQUFDO2FBQzdIO1NBQ0o7UUFDRCxNQUFNLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0tBQzdCLENBQUE7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBGb3JtR3JvdXAsXHJcbiAgICBGb3JtQnVpbGRlcixcclxuICAgIFZhbGlkYXRvcnMsXHJcbiAgICBWYWxpZGF0b3IsXHJcbiAgICBWYWxpZGF0b3JGbixcclxuICAgIEFic3RyYWN0Q29udHJvbFxyXG59IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5cclxuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tIFwiLi4vdXRpbC9yZWdleC12YWxpZGF0b3JcIjtcclxuaW1wb3J0IHsgUmVnRXhSdWxlIH0gZnJvbSBcIi4uL3V0aWwvcmVnZXgtcnVsZXNcIjtcclxuaW1wb3J0IHsgRGVjb3JhdG9yTmFtZSB9IGZyb20gXCIuLi91dGlsL2RlY29yYXRvci1uYW1lXCJcclxuaW1wb3J0IHsgT2JqZWN0TWFrZXIgfSBmcm9tIFwiLi4vdXRpbC9vYmplY3QtbWFrZXJcIjtcclxuaW1wb3J0IHsgSU5WQUxJRCB9IGZyb20gXCIuLi9jb25zdC92YWxpZGF0b3IuY29uc3RcIlxyXG5pbXBvcnQgeyBBbm5vdGF0aW9uVHlwZXMgfSBmcm9tIFwiLi4vY29yZS92YWxpZGF0b3Iuc3RhdGljXCI7XHJcbmltcG9ydCB7IFJlbGF0aW9uYWxPcGVyYXRvckNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvY29uZmlnL3JlbGF0aW9uYWwtb3BlcmF0b3ItY29uZmlnXCI7XHJcbmltcG9ydCB7IExpbnEgfSBmcm9tIFwiLi4vdXRpbC9saW5xXCI7XHJcbmltcG9ydCB7IEFwcGxpY2F0aW9uVXRpbCB9IGZyb20gXCIuLi91dGlsL2FwcC11dGlsXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbGVzc1RoYW5FcXVhbFRvVmFsaWRhdG9yKGNvbmZpZzogUmVsYXRpb25hbE9wZXJhdG9yQ29uZmlnKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBGb3JtR3JvdXApOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgICBjb25zdCBtYXRjaENvbnRyb2wgPSBjb250cm9sLnJvb3QuZ2V0KFtjb25maWcuZmllbGROYW1lXSk7XHJcbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgICBjb25zdCBtYXRjaENvbnRyb2xWYWx1ZSA9IChtYXRjaENvbnRyb2wpID8gbWF0Y2hDb250cm9sLnZhbHVlIDogJyc7XHJcbiAgICAgICAgY29uc3QgZm9ybUdyb3VwVmFsdWUgPSBBcHBsaWNhdGlvblV0aWwuZ2V0UGFyZW50T2JqZWN0VmFsdWUoY29udHJvbCk7XHJcbiAgICAgICAgY29uc3QgcGFyZW50T2JqZWN0ID0gKGNvbnRyb2wucGFyZW50KSA/IGNvbnRyb2wucGFyZW50LnZhbHVlIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmIChMaW5xLklzUGFzc2VkKGZvcm1Hcm91cFZhbHVlLCBjb25maWcuY29uZGl0aW9uYWxFeHByZXNzaW9uLCBwYXJlbnRPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIGlmICgoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayhjb250cm9sVmFsdWUpICYmIFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsobWF0Y2hDb250cm9sVmFsdWUpKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCEobWF0Y2hDb250cm9sICYmIHBhcnNlRmxvYXQoY29udHJvbFZhbHVlKSA8PSBwYXJzZUZsb2F0KG1hdGNoQ29udHJvbFZhbHVlKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubGVzc1RoYW5FcXVhbFRvLCBjb25maWcubWVzc2FnZSB8fCBudWxsLCBbY29udHJvbFZhbHVlLCBtYXRjaENvbnRyb2xWYWx1ZV0pOyAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLm51bGwoKTtcclxuICAgIH1cclxufVxyXG4iXX0=