ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
21 lines (20 loc) • 2.03 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
/**
* An array selection must have
* at least x items
* @param {?=} max
* @return {?}
*/
export function xmatMaxListSelection(max = 1) {
return (formArray) => {
/** @type {?} */
const totalSelected = formArray.controls
.map(control => control.value)
.reduce((prev, next) => next ? prev + next : prev, 0);
return totalSelected > max ? { max: true } : null;
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC1tYXgtbGlzdC1zZWxlY3Rpb24udmFsaWRhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1tYXQtbGliLyIsInNvdXJjZXMiOlsibGliL3ZhbGlkYXRvcnMveG1hdC1tYXgtbGlzdC1zZWxlY3Rpb24udmFsaWRhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7O0FBTUEsTUFBTSxVQUFVLG9CQUFvQixDQUFDLE1BQWMsQ0FBQztJQUNoRCxPQUFPLENBQUMsU0FBb0IsRUFBRSxFQUFFOztRQUM1QixNQUFNLGFBQWEsR0FBRyxTQUFTLENBQUMsUUFBUTthQUN2QyxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO2FBQzdCLE1BQU0sQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRXRELE9BQU8sYUFBYSxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBQyxHQUFHLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQztLQUNuRCxDQUFDO0NBRUwiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1ZhbGlkYXRvckZuLCBGb3JtQXJyYXl9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuXG4vKipcbiAqIEFuIGFycmF5IHNlbGVjdGlvbiBtdXN0IGhhdmVcbiAqIGF0IGxlYXN0IHggaXRlbXNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHhtYXRNYXhMaXN0U2VsZWN0aW9uKG1heDogbnVtYmVyID0gMSk6IFZhbGlkYXRvckZuIHtcbiAgICByZXR1cm4gKGZvcm1BcnJheTogRm9ybUFycmF5KSA9PiB7XG4gICAgICAgIGNvbnN0IHRvdGFsU2VsZWN0ZWQgPSBmb3JtQXJyYXkuY29udHJvbHNcbiAgICAgICAgLm1hcChjb250cm9sID0+IGNvbnRyb2wudmFsdWUpXG4gICAgICAgIC5yZWR1Y2UoKHByZXYsIG5leHQpID0+IG5leHQgPyBwcmV2ICsgbmV4dCA6IHByZXYsIDApO1xuXG4gICAgICAgIHJldHVybiB0b3RhbFNlbGVjdGVkID4gbWF4ID8ge21heDogdHJ1ZX0gOiBudWxsO1xuICAgIH07XG5cbn1cblxuIl19