ngrx-forms
Version:
Proper integration of forms in Angular 4 applications using ngrx
44 lines • 3.85 kB
JavaScript
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==