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

42 lines (41 loc) 5.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { RegexValidator } from "../util/regex-validator"; import { RegExRule } from "../util/regex-rules"; import { ObjectMaker } from "../util/object-maker"; import { Linq } from "../util/linq"; import { ApplicationUtil } from "../util/app-util"; import { AnnotationTypes } from "../core/validator.static"; /** * @param {?} config * @param {?} conditionalValidationProps * @return {?} */ export function timeValidator(config, conditionalValidationProps) { return function (control) { /** @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)) { /** @type {?} */ var testResult = false; /** @type {?} */ var valueLength = 5; if (config.allowSeconds) valueLength = 8; testResult = RegexValidator.isValid(controlValue, RegExRule["time"]) && controlValue.length == valueLength; if (!testResult) return ObjectMaker.toJson(AnnotationTypes["time"], config.message || null, [controlValue]); } } return ObjectMaker.null(); }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZS52YWxpZGF0b3IuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanNiYWlsZXkvcmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzLyIsInNvdXJjZXMiOlsicmVhY3RpdmUtZm9ybS12YWxpZGF0b3JzL3RpbWUudmFsaWRhdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFLQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRWhELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sY0FBYyxDQUFDO0FBQ3BDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQUUzRCxNQUFNLHdCQUF3QixNQUFrQixFQUFFLDBCQUFtQztJQUNqRixNQUFNLENBQUMsVUFBQyxPQUF3Qjs7UUFDNUIsSUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQzs7UUFDbkMsSUFBTSxjQUFjLEdBQUcsZUFBZSxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLE1BQU0sR0FBRyxlQUFlLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDOztRQUNqRCxJQUFNLFlBQVksR0FBRyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUN6RSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLGNBQWMsRUFBRSxNQUFNLENBQUMscUJBQXFCLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzVFLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDOztnQkFDMUMsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDOztnQkFDdkIsSUFBSSxXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDO29CQUNwQixXQUFXLEdBQUcsQ0FBQyxDQUFDO2dCQUNwQixVQUFVLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsU0FBUyxTQUFNLElBQUksWUFBWSxDQUFDLE1BQU0sSUFBSSxXQUFXLENBQUM7Z0JBQ3hHLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO29CQUNaLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLGVBQWUsVUFBTyxNQUFNLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7YUFDL0Y7U0FDSjtRQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7S0FDL0IsQ0FBQTtDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICAgIFZhbGlkYXRvckZuLFxyXG4gICAgQWJzdHJhY3RDb250cm9sXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5pbXBvcnQgeyBSZWdleFZhbGlkYXRvciB9IGZyb20gXCIuLi91dGlsL3JlZ2V4LXZhbGlkYXRvclwiO1xyXG5pbXBvcnQgeyBSZWdFeFJ1bGUgfSBmcm9tIFwiLi4vdXRpbC9yZWdleC1ydWxlc1wiO1xyXG5pbXBvcnQgeyBEZWNvcmF0b3JOYW1lIH0gZnJvbSBcIi4uL3V0aWwvZGVjb3JhdG9yLW5hbWVcIlxyXG5pbXBvcnQgeyBPYmplY3RNYWtlciB9IGZyb20gXCIuLi91dGlsL29iamVjdC1tYWtlclwiO1xyXG5pbXBvcnQgeyBUaW1lQ29uZmlnIH0gZnJvbSBcIi4uL21vZGVscy9jb25maWcvdGltZS1jb25maWdcIjtcclxuaW1wb3J0IHsgTGlucSB9IGZyb20gXCIuLi91dGlsL2xpbnFcIjtcclxuaW1wb3J0IHsgQXBwbGljYXRpb25VdGlsIH0gZnJvbSBcIi4uL3V0aWwvYXBwLXV0aWxcIjtcclxuaW1wb3J0IHsgQW5ub3RhdGlvblR5cGVzIH0gZnJvbSBcIi4uL2NvcmUvdmFsaWRhdG9yLnN0YXRpY1wiO1xyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIHRpbWVWYWxpZGF0b3IoY29uZmlnOiBUaW1lQ29uZmlnLCBjb25kaXRpb25hbFZhbGlkYXRpb25Qcm9wczpzdHJpbmdbXSk6IFZhbGlkYXRvckZuIHtcclxuICAgIHJldHVybiAoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9PiB7XHJcbiAgICAgICAgY29uc3QgY29udHJvbFZhbHVlID0gY29udHJvbC52YWx1ZTtcclxuICAgICAgICBjb25zdCBmb3JtR3JvdXBWYWx1ZSA9IEFwcGxpY2F0aW9uVXRpbC5nZXRQYXJlbnRPYmplY3RWYWx1ZShjb250cm9sKTtcclxuICAgICAgICBjb25maWcgPSBBcHBsaWNhdGlvblV0aWwuZ2V0Q29uZmlnT2JqZWN0KGNvbmZpZyk7XHJcbiAgICAgICAgY29uc3QgcGFyZW50T2JqZWN0ID0gKGNvbnRyb2wucGFyZW50KSA/IGNvbnRyb2wucGFyZW50LnZhbHVlIDogdW5kZWZpbmVkO1xyXG4gICAgICAgIGlmIChMaW5xLklzUGFzc2VkKGZvcm1Hcm91cFZhbHVlLCBjb25maWcuY29uZGl0aW9uYWxFeHByZXNzaW9uLCBwYXJlbnRPYmplY3QpKSB7XHJcbiAgICAgICAgICAgIGlmIChSZWdleFZhbGlkYXRvci5pc05vdEJsYW5rKGNvbnRyb2xWYWx1ZSkpIHtcclxuICAgICAgICAgICAgICAgIHZhciB0ZXN0UmVzdWx0ID0gZmFsc2U7XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsdWVMZW5ndGggPSA1O1xyXG4gICAgICAgICAgICAgICAgaWYgKGNvbmZpZy5hbGxvd1NlY29uZHMpXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWVMZW5ndGggPSA4O1xyXG4gICAgICAgICAgICAgICAgdGVzdFJlc3VsdCA9IFJlZ2V4VmFsaWRhdG9yLmlzVmFsaWQoY29udHJvbFZhbHVlLCBSZWdFeFJ1bGUudGltZSkgJiYgY29udHJvbFZhbHVlLmxlbmd0aCA9PSB2YWx1ZUxlbmd0aDtcclxuICAgICAgICAgICAgICAgIGlmICghdGVzdFJlc3VsdClcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gT2JqZWN0TWFrZXIudG9Kc29uKEFubm90YXRpb25UeXBlcy50aW1lLCBjb25maWcubWVzc2FnZSB8fCBudWxsLCBbY29udHJvbFZhbHVlXSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9IHJldHVybiBPYmplY3RNYWtlci5udWxsKCk7XHJcbiAgICB9XHJcbn1cclxuIl19