UNPKG

ngx-mat-lib

Version:

A bunch of utilities and components to use in your Angular 7+ apps!

27 lines (26 loc) 2.88 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,uselessCode} checked by tsc */ import { sumBy } from "lodash"; /** * Accepts a validator and a quantity. * Applies the validator and checks if at least n fields of the formGroup are valid * @param {?} validator * @param {?=} howMany * @return {?} */ export function xmatValidatorForAtLeast(validator, howMany = 1) { return (group) => { if (group && group.controls) { /** @type {?} */ const validCount = sumBy(Object.keys(group.controls), (key) => { /** @type {?} */ const ctrl = group.controls[key]; return +!validator(ctrl); }); return validCount >= howMany ? null : { valuesFillAtLeastValidation: true }; } }; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1maWxsLWF0LWxlYXN0LnZhbGlkYXRpb24uanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtbWF0LWxpYi8iLCJzb3VyY2VzIjpbImxpYi92YWxpZGF0b3JzL3htYXQtZmlsbC1hdC1sZWFzdC52YWxpZGF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7OztBQVEvQixNQUFNLFVBQVUsdUJBQXVCLENBQUMsU0FBc0IsRUFBRSxVQUFrQixDQUFDO0lBRS9FLE9BQU8sQ0FBQyxLQUFnQixFQUFvQixFQUFFO1FBQzFDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxRQUFRLEVBQUU7O1lBQ3pCLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxFQUFFOztnQkFDMUQsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDakMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzVCLENBQUMsQ0FBQztZQUNILE9BQU8sVUFBVSxJQUFJLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxDQUFDO1NBQy9FO0tBRUosQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JGbiwgVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgc3VtQnkgfSBmcm9tIFwibG9kYXNoXCI7XG5cbi8qKlxuICogQWNjZXB0cyBhIHZhbGlkYXRvciBhbmQgYSBxdWFudGl0eS5cbiAqIEFwcGxpZXMgdGhlIHZhbGlkYXRvciBhbmQgY2hlY2tzIGlmIGF0IGxlYXN0IG4gZmllbGRzIG9mIHRoZSBmb3JtR3JvdXAgYXJlIHZhbGlkXG4gKiBAcGFyYW0gdmFsaWRhdG9yXG4gKiBAcGFyYW0gaG93TWFueVxuICovXG5leHBvcnQgZnVuY3Rpb24geG1hdFZhbGlkYXRvckZvckF0TGVhc3QodmFsaWRhdG9yOiBWYWxpZGF0b3JGbiwgaG93TWFueTogbnVtYmVyID0gMSk6IFZhbGlkYXRvckZuIHtcblxuICAgIHJldHVybiAoZ3JvdXA6IEZvcm1Hcm91cCk6IFZhbGlkYXRpb25FcnJvcnMgPT4ge1xuICAgICAgICBpZiAoZ3JvdXAgJiYgZ3JvdXAuY29udHJvbHMpIHtcbiAgICAgICAgICAgIGNvbnN0IHZhbGlkQ291bnQgPSBzdW1CeShPYmplY3Qua2V5cyhncm91cC5jb250cm9scyksIChrZXkpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjdHJsID0gZ3JvdXAuY29udHJvbHNba2V5XTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKyF2YWxpZGF0b3IoY3RybCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiB2YWxpZENvdW50ID49IGhvd01hbnkgPyBudWxsIDogeyB2YWx1ZXNGaWxsQXRMZWFzdFZhbGlkYXRpb246IHRydWUgfTtcbiAgICAgICAgfVxuXG4gICAgfTtcbn1cbiJdfQ==