ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
29 lines (28 loc) • 3.01 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { indexOf } from "lodash";
/**
* A selection must match (or must not)
* one of a given list
* @param {?} sourceOptions
* @param {?=} controlKey
* @param {?=} reverse
* @return {?}
*/
export function xmatValidListSelection(sourceOptions, controlKey = void 0, reverse = false) {
return (control) => {
/** @type {?} */
const value = controlKey ? control.value[controlKey] : control.value;
if (!value) {
return null;
}
/** @type {?} */
const matchIndex = indexOf(sourceOptions, value);
/** @type {?} */
const isValid = reverse ? matchIndex < 0 : matchIndex > -1;
return isValid ? null : { "invalidListSelection": { value: control.value } };
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC12YWxpZC1saXN0LXNlbGVjdGlvbi52YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvdmFsaWRhdG9ycy94bWF0LXZhbGlkLWxpc3Qtc2VsZWN0aW9uLnZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztBQU1qQyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsYUFBb0IsRUFBRSxhQUFxQixLQUFLLENBQUMsRUFBRSxVQUFtQixLQUFLO0lBRTlHLE9BQU8sQ0FBQyxPQUF3QixFQUEwQixFQUFFOztRQUN4RCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUM7UUFDckUsSUFBSSxDQUFDLEtBQUssRUFBRTtZQUNSLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7O1FBQ0QsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQzs7UUFDakQsTUFBTSxPQUFPLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFM0QsT0FBTyxPQUFPLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxzQkFBc0IsRUFBRSxFQUFFLEtBQUssRUFBRSxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQztLQUNoRixDQUFDO0NBQ0wiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIFZhbGlkYXRvckZuIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBpbmRleE9mIH0gZnJvbSBcImxvZGFzaFwiO1xuXG4vKipcbiAqIEEgc2VsZWN0aW9uIG11c3QgbWF0Y2ggKG9yIG11c3Qgbm90KVxuICogb25lIG9mIGEgZ2l2ZW4gbGlzdFxuICovXG5leHBvcnQgZnVuY3Rpb24geG1hdFZhbGlkTGlzdFNlbGVjdGlvbihzb3VyY2VPcHRpb25zOiBhbnlbXSwgY29udHJvbEtleTogc3RyaW5nID0gdm9pZCAwLCByZXZlcnNlOiBib29sZWFuID0gZmFsc2UpOiBWYWxpZGF0b3JGbiB7XG5cbiAgICByZXR1cm4gKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGNvbnRyb2xLZXkgPyBjb250cm9sLnZhbHVlW2NvbnRyb2xLZXldIDogY29udHJvbC52YWx1ZTtcbiAgICAgICAgaWYgKCF2YWx1ZSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgbWF0Y2hJbmRleCA9IGluZGV4T2Yoc291cmNlT3B0aW9ucywgdmFsdWUpO1xuICAgICAgICBjb25zdCBpc1ZhbGlkID0gcmV2ZXJzZSA/IG1hdGNoSW5kZXggPCAwIDogbWF0Y2hJbmRleCA+IC0xO1xuXG4gICAgICAgIHJldHVybiBpc1ZhbGlkID8gbnVsbCA6IHsgXCJpbnZhbGlkTGlzdFNlbGVjdGlvblwiOiB7IHZhbHVlOiBjb250cm9sLnZhbHVlIH0gfTtcbiAgICB9O1xufVxuIl19