@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
33 lines (32 loc) • 4.64 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { RegexValidator } from "../util/regex-validator";
import { Linq } from "../util/linq";
import { ApplicationUtil } from "../util/app-util";
import { ObjectMaker } from "../util/object-maker";
import { AnnotationTypes } from "../core/validator.static";
/**
* @param {?} config
* @return {?}
*/
export function maxNumberValidator(config) {
return (control) => {
/** @type {?} */
const controlValue = control.value;
/** @type {?} */
const formGroupValue = ApplicationUtil.getParentObjectValue(control);
config = ApplicationUtil.getConfigObject(config);
/** @type {?} */
const parentObject = (control.parent) ? control.parent.value : undefined;
if (Linq.IsPassed(formGroupValue, config.conditionalExpression, parentObject)) {
if (RegexValidator.isNotBlank(controlValue)) {
if (!(parseFloat(controlValue) <= config.value))
return ObjectMaker.toJson(AnnotationTypes["maxNumber"], config.message || null, [controlValue]);
}
}
return ObjectMaker.null();
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4TnVtYmVyLnZhbGlkYXRvci5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bqc2JhaWxleS9yZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvIiwic291cmNlcyI6WyJyZWFjdGl2ZS1mb3JtLXZhbGlkYXRvcnMvbWF4TnVtYmVyLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBR0EsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXpELE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDcEMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7O0FBRTNELE1BQU0sNkJBQTZCLE1BQW1CO0lBQ2xELE1BQU0sQ0FBQyxDQUFDLE9BQXdCLEVBQTBCLEVBQUU7O1FBQ3hELE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUM7O1FBQ25DLE1BQU0sY0FBYyxHQUFHLGVBQWUsQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNyRSxNQUFNLEdBQUcsZUFBZSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsQ0FBQzs7UUFDakQsTUFBTSxZQUFZLEdBQUcsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7UUFDekUsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLEVBQUUsTUFBTSxDQUFDLHFCQUFxQixFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUM1RSxFQUFFLENBQUMsQ0FBQyxjQUFjLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDMUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7b0JBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGVBQWUsZUFBWSxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUE7YUFDbkc7U0FDSjtRQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDN0IsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIFZhbGlkYXRvckZuLFxyXG4gICAgQWJzdHJhY3RDb250cm9sfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgUmVnZXhWYWxpZGF0b3IgfSBmcm9tIFwiLi4vdXRpbC9yZWdleC12YWxpZGF0b3JcIjtcclxuaW1wb3J0IHsgTnVtYmVyQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9jb25maWcvbnVtYmVyLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBMaW5xIH0gZnJvbSBcIi4uL3V0aWwvbGlucVwiO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvblV0aWwgfSBmcm9tIFwiLi4vdXRpbC9hcHAtdXRpbFwiO1xyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBEZWNvcmF0b3JOYW1lIH0gZnJvbSBcIi4uL3V0aWwvZGVjb3JhdG9yLW5hbWVcIjtcclxuaW1wb3J0IHsgQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIi4uL2NvcmUvdmFsaWRhdG9yLnN0YXRpY1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIG1heE51bWJlclZhbGlkYXRvcihjb25maWc6TnVtYmVyQ29uZmlnKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cFZhbHVlID0gQXBwbGljYXRpb25VdGlsLmdldFBhcmVudE9iamVjdFZhbHVlKGNvbnRyb2wpO1xyXG4gICAgICAgIGNvbmZpZyA9IEFwcGxpY2F0aW9uVXRpbC5nZXRDb25maWdPYmplY3QoY29uZmlnKTtcclxuICAgICAgICBjb25zdCBwYXJlbnRPYmplY3QgPSAoY29udHJvbC5wYXJlbnQpID8gY29udHJvbC5wYXJlbnQudmFsdWUgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKExpbnEuSXNQYXNzZWQoZm9ybUdyb3VwVmFsdWUsIGNvbmZpZy5jb25kaXRpb25hbEV4cHJlc3Npb24sIHBhcmVudE9iamVjdCkpIHtcclxuICAgICAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsoY29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKCEocGFyc2VGbG9hdChjb250cm9sVmFsdWUpIDw9IGNvbmZpZy52YWx1ZSkpXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubWF4TnVtYmVyLCBjb25maWcubWVzc2FnZSB8fCBudWxsLCBbY29udHJvbFZhbHVlXSlcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIubnVsbCgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==