@jsbailey/reactive-form-validators
Version:
[](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [](https://gitter.im/rxweb-project/rxweb?utm_source=badge
44 lines (43 loc) • 6.26 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";
import { DateProvider } from "../util/index";
/**
* @param {?} config
* @return {?}
*/
export function maxDateValidator(config) {
return function (control) {
/** @type {?} */
var dateProvider = new DateProvider();
/** @type {?} */
var controlValue = control.value;
/** @type {?} */
var formGroupValue = ApplicationUtil.getParentObjectValue(control);
config = ApplicationUtil.getConfigObject(config);
/** @type {?} */
var parentObject = (control.parent) ? control.parent.value : undefined;
if (Linq.IsPassed(formGroupValue, config.conditionalExpression, parentObject)) {
if (RegexValidator.isNotBlank(controlValue)) {
if (dateProvider.isValid(controlValue)) {
/** @type {?} */
var maxDate = config.value;
/** @type {?} */
var currentValueDate = dateProvider.getDate(controlValue);
if (!(maxDate >= currentValueDate))
return ObjectMaker.toJson(AnnotationTypes["maxDate"], config.message || null, [control.value]);
}
else
return ObjectMaker.toJson(AnnotationTypes["maxDate"], config.message || null, [control.value]);
}
}
return ObjectMaker.null();
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF4RGF0ZS52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanNiYWlsZXkvcmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzLyIsInNvdXJjZXMiOlsicmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzL21heERhdGUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFJQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFekQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUNwQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQWEsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQUV4RCxNQUFNLDJCQUEyQixNQUFpQjtJQUM5QyxNQUFNLENBQUMsVUFBQyxPQUF3Qjs7UUFDNUIsSUFBSSxZQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQzs7UUFDdEMsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzs7UUFDbkMsSUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztRQUNqRCxJQUFNLFlBQVksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN6RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMxQyxFQUFFLENBQUMsQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQzs7b0JBQ3JDLElBQUksT0FBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUM7O29CQUMzQixJQUFJLGdCQUFnQixHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUM7b0JBQzFELEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksZ0JBQWdCLENBQUMsQ0FBQzt3QkFDL0IsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxhQUFVLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7aUJBQ2xHO2dCQUFDLElBQUk7b0JBQ0YsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsZUFBZSxhQUFVLE1BQU0sQ0FBQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUE7YUFFbEc7U0FDSjtRQUNELE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDN0IsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIFZhbGlkYXRvckZuLFxyXG4gICAgQWJzdHJhY3RDb250cm9sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSBcIi4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yXCI7XHJcbmltcG9ydCB7IERhdGVDb25maWcgfSBmcm9tIFwiLi4vbW9kZWxzL2NvbmZpZy9kYXRlLWNvbmZpZ1wiO1xyXG5pbXBvcnQgeyBMaW5xIH0gZnJvbSBcIi4uL3V0aWwvbGlucVwiO1xyXG5pbXBvcnQgeyBBcHBsaWNhdGlvblV0aWwgfSBmcm9tIFwiLi4vdXRpbC9hcHAtdXRpbFwiO1xyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBEZWNvcmF0b3JOYW1lIH0gZnJvbSBcIi4uL3V0aWwvZGVjb3JhdG9yLW5hbWVcIjtcclxuaW1wb3J0IHsgQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIi4uL2NvcmUvdmFsaWRhdG9yLnN0YXRpY1wiO1xyXG5pbXBvcnQgeyBSZWdFeFJ1bGUsIERhdGVQcm92aWRlciB9IGZyb20gXCIuLi91dGlsL2luZGV4XCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gbWF4RGF0ZVZhbGlkYXRvcihjb25maWc6RGF0ZUNvbmZpZyk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgICAgdmFyIGRhdGVQcm92aWRlciA9IG5ldyBEYXRlUHJvdmlkZXIoKTtcclxuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGZvcm1Hcm91cFZhbHVlID0gQXBwbGljYXRpb25VdGlsLmdldFBhcmVudE9iamVjdFZhbHVlKGNvbnRyb2wpO1xyXG4gICAgICAgIGNvbmZpZyA9IEFwcGxpY2F0aW9uVXRpbC5nZXRDb25maWdPYmplY3QoY29uZmlnKTtcclxuICAgICAgICBjb25zdCBwYXJlbnRPYmplY3QgPSAoY29udHJvbC5wYXJlbnQpID8gY29udHJvbC5wYXJlbnQudmFsdWUgOiB1bmRlZmluZWQ7XHJcbiAgICAgICAgaWYgKExpbnEuSXNQYXNzZWQoZm9ybUdyb3VwVmFsdWUsIGNvbmZpZy5jb25kaXRpb25hbEV4cHJlc3Npb24sIHBhcmVudE9iamVjdCkpIHtcclxuICAgICAgICAgICAgaWYgKFJlZ2V4VmFsaWRhdG9yLmlzTm90QmxhbmsoY29udHJvbFZhbHVlKSkge1xyXG4gICAgICAgICAgICAgICAgaWYgKGRhdGVQcm92aWRlci5pc1ZhbGlkKGNvbnRyb2xWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgbWF4RGF0ZSA9IGNvbmZpZy52YWx1ZTtcclxuICAgICAgICAgICAgICAgICAgICBsZXQgY3VycmVudFZhbHVlRGF0ZSA9IGRhdGVQcm92aWRlci5nZXREYXRlKGNvbnRyb2xWYWx1ZSk7XHJcbiAgICAgICAgICAgICAgICAgICAgaWYgKCEobWF4RGF0ZSA+PSBjdXJyZW50VmFsdWVEYXRlKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubWF4RGF0ZSwgY29uZmlnLm1lc3NhZ2UgfHwgbnVsbCwgW2NvbnRyb2wudmFsdWVdKVxyXG4gICAgICAgICAgICAgICAgfSBlbHNlXHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMubWF4RGF0ZSwgY29uZmlnLm1lc3NhZ2UgfHwgbnVsbCwgW2NvbnRyb2wudmFsdWVdKVxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLm51bGwoKTtcclxuICAgIH1cclxufVxyXG4iXX0=