UNPKG

@jsbailey/reactive-form-validators

Version:

[![npm version](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators.svg)](https://badge.fury.io/js/%40rxweb%2Freactive-form-validators) [![Gitter](https://badges.gitter.im/rx-web/Lobby.svg)](https://gitter.im/rxweb-project/rxweb?utm_source=badge

28 lines (27 loc) 4.01 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { RegexValidator } from "../util/regex-validator"; import { ObjectMaker } from "../util/object-maker"; import { AnnotationTypes } from "../core/validator.static"; /** * @param {?} config * @return {?} */ export function compareValidator(config) { return (control) => { /** @type {?} */ const compareControl = control.root.get([config.fieldName]); /** @type {?} */ const controlValue = control.value; /** @type {?} */ const compareControlValue = (compareControl) ? compareControl.value : ''; if (RegexValidator.isNotBlank(controlValue)) { if (!(compareControl && compareControl.value === controlValue)) return ObjectMaker.toJson(AnnotationTypes["compare"], config.message || null, [controlValue, compareControlValue]); } return ObjectMaker.null(); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGFyZS52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanNiYWlsZXkvcmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzLyIsInNvdXJjZXMiOlsicmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzL2NvbXBhcmUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFTQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFHekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBR25ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFFM0QsTUFBTSwyQkFBMkIsTUFBb0I7SUFDakQsTUFBTSxDQUFDLENBQUMsT0FBa0IsRUFBMEIsRUFBRTs7UUFDbEQsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzs7UUFDNUQsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzs7UUFDbkMsTUFBTSxtQkFBbUIsR0FBRyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDekUsRUFBRSxDQUFDLENBQUMsY0FBYyxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDMUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLGNBQWMsSUFBSSxjQUFjLENBQUMsS0FBSyxLQUFLLFlBQVksQ0FBQyxDQUFDO2dCQUMzRCxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxlQUFlLGFBQVUsTUFBTSxDQUFDLE9BQU8sSUFBSSxJQUFJLEVBQUUsQ0FBQyxZQUFZLEVBQUUsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO1NBQ3ZIO1FBQ0QsTUFBTSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztLQUM3QixDQUFBO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gICAgRm9ybUdyb3VwLFxyXG4gICAgRm9ybUJ1aWxkZXIsXHJcbiAgICBWYWxpZGF0b3JzLFxyXG4gICAgVmFsaWRhdG9yLFxyXG4gICAgVmFsaWRhdG9yRm4sXHJcbiAgICBBYnN0cmFjdENvbnRyb2xcclxufSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuXHJcbmltcG9ydCB7IFJlZ2V4VmFsaWRhdG9yIH0gZnJvbSBcIi4uL3V0aWwvcmVnZXgtdmFsaWRhdG9yXCI7XHJcbmltcG9ydCB7IFJlZ0V4UnVsZSB9IGZyb20gXCIuLi91dGlsL3JlZ2V4LXJ1bGVzXCI7XHJcbmltcG9ydCB7IERlY29yYXRvck5hbWUgfSBmcm9tIFwiLi4vdXRpbC9kZWNvcmF0b3ItbmFtZVwiXHJcbmltcG9ydCB7IE9iamVjdE1ha2VyIH0gZnJvbSBcIi4uL3V0aWwvb2JqZWN0LW1ha2VyXCI7XHJcbmltcG9ydCB7IElOVkFMSUQgfSBmcm9tIFwiLi4vY29uc3QvdmFsaWRhdG9yLmNvbnN0XCJcclxuaW1wb3J0IHsgQ29tcGFyZUNvbmZpZyB9IGZyb20gXCIuLi9tb2RlbHMvY29uZmlnL2NvbXBhcmUtY29uZmlnXCI7XHJcbmltcG9ydCB7IEFubm90YXRpb25UeXBlcyB9IGZyb20gXCIuLi9jb3JlL3ZhbGlkYXRvci5zdGF0aWNcIjtcclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBjb21wYXJlVmFsaWRhdG9yKGNvbmZpZzpDb21wYXJlQ29uZmlnKTogVmFsaWRhdG9yRm4ge1xyXG4gICAgcmV0dXJuIChjb250cm9sOiBGb3JtR3JvdXApOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcclxuICAgICAgICBjb25zdCBjb21wYXJlQ29udHJvbCA9IGNvbnRyb2wucm9vdC5nZXQoW2NvbmZpZy5maWVsZE5hbWVdKTtcclxuICAgICAgICBjb25zdCBjb250cm9sVmFsdWUgPSBjb250cm9sLnZhbHVlO1xyXG4gICAgICAgIGNvbnN0IGNvbXBhcmVDb250cm9sVmFsdWUgPSAoY29tcGFyZUNvbnRyb2wpID8gY29tcGFyZUNvbnRyb2wudmFsdWUgOiAnJztcclxuICAgICAgICBpZiAoUmVnZXhWYWxpZGF0b3IuaXNOb3RCbGFuayhjb250cm9sVmFsdWUpKSB7XHJcbiAgICAgICAgICAgIGlmICghKGNvbXBhcmVDb250cm9sICYmIGNvbXBhcmVDb250cm9sLnZhbHVlID09PSBjb250cm9sVmFsdWUpKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIE9iamVjdE1ha2VyLnRvSnNvbihBbm5vdGF0aW9uVHlwZXMuY29tcGFyZSwgY29uZmlnLm1lc3NhZ2UgfHwgbnVsbCwgW2NvbnRyb2xWYWx1ZSwgY29tcGFyZUNvbnRyb2xWYWx1ZV0pO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIubnVsbCgpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==