UNPKG

ngrx-forms

Version:

Proper integration of forms in Angular 4 applications using ngrx

44 lines 3.85 kB
import { unbox } from 'ngrx-forms'; /** * A validation function that requires the value to be `false`. Considers `null` and * `undefined` as valid. Combine this function with the `required` validation * function if `null` or `undefined` should be considered invalid. * * The validation error returned by this validation function has the following shape: * ```typescript { required: { actual: boolean; }; } ``` * * Usually you would use this validation function in conjunction with the `validate` * update function to perform synchronous validation in your reducer: * ```typescript updateGroup<MyFormValue>({ disagreeWithTermsOfService: validate(requiredFalse), }) ``` * * Note that this function is generic to allow the compiler to properly infer the type * of the `validate` function for both optional and non-optional controls. */ export function requiredFalse(value) { value = unbox(value); // tslint:disable-next-line:strict-type-predicates if (value === null || value === undefined) { return {}; } if (!value) { return {}; } return { required: { actual: value, }, }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVxdWlyZWQtZmFsc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi92YWxpZGF0aW9uL3NyYy9yZXF1aXJlZC1mYWxzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQVMsS0FBSyxFQUFvQixNQUFNLFlBQVksQ0FBQztBQUU1RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0EwQkc7QUFDSCxNQUFNLFVBQVUsYUFBYSxDQUF3RCxLQUFRO0lBQzNGLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFvQyxDQUFDO0lBRXhELGtEQUFrRDtJQUNsRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRTtRQUN6QyxPQUFPLEVBQUUsQ0FBQztLQUNYO0lBRUQsSUFBSSxDQUFDLEtBQUssRUFBRTtRQUNWLE9BQU8sRUFBRSxDQUFDO0tBQ1g7SUFFRCxPQUFPO1FBQ0wsUUFBUSxFQUFFO1lBQ1IsTUFBTSxFQUFFLEtBQUs7U0FDZDtLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQm94ZWQsIHVuYm94LCBWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnbmdyeC1mb3Jtcyc7XHJcblxyXG4vKipcclxuICogQSB2YWxpZGF0aW9uIGZ1bmN0aW9uIHRoYXQgcmVxdWlyZXMgdGhlIHZhbHVlIHRvIGJlIGBmYWxzZWAuIENvbnNpZGVycyBgbnVsbGAgYW5kXHJcbiAqIGB1bmRlZmluZWRgIGFzIHZhbGlkLiBDb21iaW5lIHRoaXMgZnVuY3Rpb24gd2l0aCB0aGUgYHJlcXVpcmVkYCB2YWxpZGF0aW9uXHJcbiAqIGZ1bmN0aW9uIGlmIGBudWxsYCBvciBgdW5kZWZpbmVkYCBzaG91bGQgYmUgY29uc2lkZXJlZCBpbnZhbGlkLlxyXG4gKlxyXG4gKiBUaGUgdmFsaWRhdGlvbiBlcnJvciByZXR1cm5lZCBieSB0aGlzIHZhbGlkYXRpb24gZnVuY3Rpb24gaGFzIHRoZSBmb2xsb3dpbmcgc2hhcGU6XHJcbiAqXHJcbmBgYHR5cGVzY3JpcHRcclxue1xyXG4gIHJlcXVpcmVkOiB7XHJcbiAgICBhY3R1YWw6IGJvb2xlYW47XHJcbiAgfTtcclxufVxyXG5gYGBcclxuICpcclxuICogVXN1YWxseSB5b3Ugd291bGQgdXNlIHRoaXMgdmFsaWRhdGlvbiBmdW5jdGlvbiBpbiBjb25qdW5jdGlvbiB3aXRoIHRoZSBgdmFsaWRhdGVgXHJcbiAqIHVwZGF0ZSBmdW5jdGlvbiB0byBwZXJmb3JtIHN5bmNocm9ub3VzIHZhbGlkYXRpb24gaW4geW91ciByZWR1Y2VyOlxyXG4gKlxyXG5gYGB0eXBlc2NyaXB0XHJcbnVwZGF0ZUdyb3VwPE15Rm9ybVZhbHVlPih7XHJcbiAgZGlzYWdyZWVXaXRoVGVybXNPZlNlcnZpY2U6IHZhbGlkYXRlKHJlcXVpcmVkRmFsc2UpLFxyXG59KVxyXG5gYGBcclxuICpcclxuICogTm90ZSB0aGF0IHRoaXMgZnVuY3Rpb24gaXMgZ2VuZXJpYyB0byBhbGxvdyB0aGUgY29tcGlsZXIgdG8gcHJvcGVybHkgaW5mZXIgdGhlIHR5cGVcclxuICogb2YgdGhlIGB2YWxpZGF0ZWAgZnVuY3Rpb24gZm9yIGJvdGggb3B0aW9uYWwgYW5kIG5vbi1vcHRpb25hbCBjb250cm9scy5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiByZXF1aXJlZEZhbHNlPFQgZXh0ZW5kcyBib29sZWFuIHwgQm94ZWQ8Ym9vbGVhbj4gfCBudWxsIHwgdW5kZWZpbmVkPih2YWx1ZTogVCk6IFZhbGlkYXRpb25FcnJvcnMge1xyXG4gIHZhbHVlID0gdW5ib3godmFsdWUpIGFzIGJvb2xlYW4gfCBudWxsIHwgdW5kZWZpbmVkIGFzIFQ7XHJcblxyXG4gIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpzdHJpY3QtdHlwZS1wcmVkaWNhdGVzXHJcbiAgaWYgKHZhbHVlID09PSBudWxsIHx8IHZhbHVlID09PSB1bmRlZmluZWQpIHtcclxuICAgIHJldHVybiB7fTtcclxuICB9XHJcblxyXG4gIGlmICghdmFsdWUpIHtcclxuICAgIHJldHVybiB7fTtcclxuICB9XHJcblxyXG4gIHJldHVybiB7XHJcbiAgICByZXF1aXJlZDoge1xyXG4gICAgICBhY3R1YWw6IHZhbHVlLFxyXG4gICAgfSxcclxuICB9O1xyXG59XHJcbiJdfQ==