ngx-custom-validators
Version:
Angular custom directives for validation
17 lines • 2.28 kB
JavaScript
import { Validators } from '@angular/forms';
import { isPresent } from '../util/lang';
export const notIncludedIn = (includedInArr) => {
return (control) => {
if (!isPresent(includedInArr)) {
return null;
}
if (isPresent(Validators.required(control))) {
return null;
}
if (includedInArr.indexOf(control.value) >= 0) {
return { notIncludedIn: { value: control.value, reason: includedInArr } };
}
return null;
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLyIsInNvdXJjZXMiOlsic3JjL2FwcC9ub3QtaW5jbHVkZWQtaW4vdmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBa0QsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6QyxNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxhQUF5QixFQUFlLEVBQUU7SUFDdEUsT0FBTyxDQUFDLE9BQXdCLEVBQW9CLEVBQUU7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsRUFBRTtZQUM3QixPQUFPLElBQUksQ0FBQztTQUNiO1FBQ0QsSUFBSSxTQUFTLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxFQUFFO1lBQzNDLE9BQU8sSUFBSSxDQUFDO1NBQ2I7UUFFRCxJQUFJLGFBQWEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLEVBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBQyxFQUFDLENBQUM7U0FDMUU7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUMsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yRm4sIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBpc1ByZXNlbnQgfSBmcm9tICcuLi91dGlsL2xhbmcnO1xuXG5leHBvcnQgY29uc3Qgbm90SW5jbHVkZWRJbiA9IChpbmNsdWRlZEluQXJyOiBBcnJheTxhbnk+KTogVmFsaWRhdG9yRm4gPT4ge1xuICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xuICAgIGlmICghaXNQcmVzZW50KGluY2x1ZGVkSW5BcnIpKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG4gICAgaWYgKGlzUHJlc2VudChWYWxpZGF0b3JzLnJlcXVpcmVkKGNvbnRyb2wpKSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgaWYgKGluY2x1ZGVkSW5BcnIuaW5kZXhPZihjb250cm9sLnZhbHVlKSA+PSAwKSB7XG4gICAgICAgIHJldHVybiB7IG5vdEluY2x1ZGVkSW46IHt2YWx1ZTogY29udHJvbC52YWx1ZSwgcmVhc29uOiBpbmNsdWRlZEluQXJyfX07XG4gICAgfVxuICAgIHJldHVybiBudWxsO1xuICB9O1xufTtcbiJdfQ==