ngx-custom-validators
Version:
Angular custom directives for validation
14 lines • 2.11 kB
JavaScript
export const equalTo = (equalControl) => {
let subscribe = false;
return (control) => {
if (!subscribe) {
subscribe = true;
equalControl.valueChanges.subscribe(() => {
control.updateValueAndValidity();
});
}
const v = control.value;
return equalControl.value === v ? null : { equalTo: { control: equalControl, value: equalControl.value } };
};
};
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6Ii4uLy4uLy4uLyIsInNvdXJjZXMiOlsic3JjL2FwcC9lcXVhbC10by92YWxpZGF0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHLENBQUMsWUFBNkIsRUFBZSxFQUFFO0lBQ3BFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztJQUV0QixPQUFPLENBQUMsT0FBd0IsRUFBb0IsRUFBRTtRQUNwRCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsU0FBUyxHQUFHLElBQUksQ0FBQztZQUNqQixZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZDLE9BQU8sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO1lBQ25DLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxNQUFNLENBQUMsR0FBVyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBRWhDLE9BQU8sWUFBWSxDQUFDLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxZQUFZLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztJQUM3RyxDQUFDLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRpb25FcnJvcnMsIFZhbGlkYXRvckZuIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5leHBvcnQgY29uc3QgZXF1YWxUbyA9IChlcXVhbENvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IFZhbGlkYXRvckZuID0+IHtcbiAgbGV0IHN1YnNjcmliZSA9IGZhbHNlO1xuXG4gIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyA9PiB7XG4gICAgaWYgKCFzdWJzY3JpYmUpIHtcbiAgICAgIHN1YnNjcmliZSA9IHRydWU7XG4gICAgICBlcXVhbENvbnRyb2wudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIGNvbnRyb2wudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgY29uc3Qgdjogc3RyaW5nID0gY29udHJvbC52YWx1ZTtcblxuICAgIHJldHVybiBlcXVhbENvbnRyb2wudmFsdWUgPT09IHYgPyBudWxsIDogeyBlcXVhbFRvOiB7IGNvbnRyb2w6IGVxdWFsQ29udHJvbCwgdmFsdWU6IGVxdWFsQ29udHJvbC52YWx1ZSB9IH07XG4gIH07XG59O1xuIl19