UNPKG

ngx-age-validator

Version:

angular custom validator to validate a given age using momentjs

20 lines 2.56 kB
import * as moment from 'moment'; export function NgxAgeValidator(min, max) { return (control) => { const birthday = control.value; // console.log("birthday", birthday); if (birthday !== undefined) { const years = moment().diff(birthday, 'years'); // console.log("years", years); if (min && min > years) { return { 'tooJung': true }; } if (max && max < years) { return { 'tooOld': true }; } return null; } return { 'ageValidation': true }; }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWFnZS12YWxpZGF0b3Ivc3JjL2xpYi92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFFakMsTUFBTSxVQUFVLGVBQWUsQ0FBQyxHQUFZLEVBQUUsR0FBWTtJQUN4RCxPQUFPLENBQUMsT0FBd0IsRUFBcUMsRUFBRTtRQUNyRSxNQUFNLFFBQVEsR0FBUyxPQUFPLENBQUMsS0FBYSxDQUFDO1FBQzdDLHFDQUFxQztRQUNyQyxJQUFJLFFBQVEsS0FBSyxTQUFTLEVBQUU7WUFDMUIsTUFBTSxLQUFLLEdBQUcsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUMvQywrQkFBK0I7WUFDL0IsSUFBSSxHQUFHLElBQUksR0FBRyxHQUFHLEtBQUssRUFBRTtnQkFDdEIsT0FBTyxFQUFDLFNBQVMsRUFBRSxJQUFJLEVBQUMsQ0FBQTthQUN6QjtZQUNELElBQUksR0FBRyxJQUFJLEdBQUcsR0FBRyxLQUFLLEVBQUU7Z0JBQ3RCLE9BQU8sRUFBQyxRQUFRLEVBQUUsSUFBSSxFQUFDLENBQUE7YUFDeEI7WUFDRCxPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsT0FBTyxFQUFDLGVBQWUsRUFBRSxJQUFJLEVBQUMsQ0FBQztJQUNqQyxDQUFDLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuXG5leHBvcnQgZnVuY3Rpb24gTmd4QWdlVmFsaWRhdG9yKG1pbj86IG51bWJlciwgbWF4PzogbnVtYmVyKTogVmFsaWRhdG9yRm4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYm9vbGVhbiB9IHwgbnVsbCA9PiB7XG4gICAgY29uc3QgYmlydGhkYXk6IERhdGUgPSBjb250cm9sLnZhbHVlIGFzIERhdGU7XG4gICAgLy8gY29uc29sZS5sb2coXCJiaXJ0aGRheVwiLCBiaXJ0aGRheSk7XG4gICAgaWYgKGJpcnRoZGF5ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIGNvbnN0IHllYXJzID0gbW9tZW50KCkuZGlmZihiaXJ0aGRheSwgJ3llYXJzJyk7XG4gICAgICAvLyBjb25zb2xlLmxvZyhcInllYXJzXCIsIHllYXJzKTtcbiAgICAgIGlmIChtaW4gJiYgbWluID4geWVhcnMpIHtcbiAgICAgICAgcmV0dXJuIHsndG9vSnVuZyc6IHRydWV9XG4gICAgICB9XG4gICAgICBpZiAobWF4ICYmIG1heCA8IHllYXJzKSB7XG4gICAgICAgIHJldHVybiB7J3Rvb09sZCc6IHRydWV9XG4gICAgICB9XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgcmV0dXJuIHsnYWdlVmFsaWRhdGlvbic6IHRydWV9O1xuICB9O1xufVxuIl19