ngx-mat-lib
Version:
A bunch of utilities and components to use in your Angular 7+ apps!
31 lines (30 loc) • 3.14 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, reverse) {
if (controlKey === void 0) { controlKey = void 0; }
if (reverse === void 0) { reverse = false; }
return function (control) {
/** @type {?} */
var value = controlKey ? control.value[controlKey] : control.value;
if (!value) {
return null;
}
/** @type {?} */
var matchIndex = indexOf(sourceOptions, value);
/** @type {?} */
var isValid = reverse ? matchIndex < 0 : matchIndex > -1;
return isValid ? null : { "invalidListSelection": { value: control.value } };
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieG1hdC12YWxpZC1saXN0LXNlbGVjdGlvbi52YWxpZGF0aW9uLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LW1hdC1saWIvIiwic291cmNlcyI6WyJsaWIvdmFsaWRhdG9ycy94bWF0LXZhbGlkLWxpc3Qtc2VsZWN0aW9uLnZhbGlkYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUNBLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztBQU1qQyxNQUFNLFVBQVUsc0JBQXNCLENBQUMsYUFBb0IsRUFBRSxVQUEyQixFQUFFLE9BQXdCO0lBQXJELDJCQUFBLEVBQUEsa0JBQTBCLENBQUM7SUFBRSx3QkFBQSxFQUFBLGVBQXdCO0lBRTlHLE9BQU8sVUFBQyxPQUF3Qjs7UUFDNUIsSUFBTSxLQUFLLEdBQUcsVUFBVSxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFDUixPQUFPLElBQUksQ0FBQztTQUNmOztRQUNELElBQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxhQUFhLEVBQUUsS0FBSyxDQUFDLENBQUM7O1FBQ2pELElBQU0sT0FBTyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTNELE9BQU8sT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsc0JBQXNCLEVBQUUsRUFBRSxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUM7S0FDaEYsQ0FBQztDQUNMIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBWYWxpZGF0b3JGbiB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHsgaW5kZXhPZiB9IGZyb20gXCJsb2Rhc2hcIjtcblxuLyoqXG4gKiBBIHNlbGVjdGlvbiBtdXN0IG1hdGNoIChvciBtdXN0IG5vdClcbiAqIG9uZSBvZiBhIGdpdmVuIGxpc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHhtYXRWYWxpZExpc3RTZWxlY3Rpb24oc291cmNlT3B0aW9uczogYW55W10sIGNvbnRyb2xLZXk6IHN0cmluZyA9IHZvaWQgMCwgcmV2ZXJzZTogYm9vbGVhbiA9IGZhbHNlKTogVmFsaWRhdG9yRm4ge1xuXG4gICAgcmV0dXJuIChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0+IHtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBjb250cm9sS2V5ID8gY29udHJvbC52YWx1ZVtjb250cm9sS2V5XSA6IGNvbnRyb2wudmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IG1hdGNoSW5kZXggPSBpbmRleE9mKHNvdXJjZU9wdGlvbnMsIHZhbHVlKTtcbiAgICAgICAgY29uc3QgaXNWYWxpZCA9IHJldmVyc2UgPyBtYXRjaEluZGV4IDwgMCA6IG1hdGNoSW5kZXggPiAtMTtcblxuICAgICAgICByZXR1cm4gaXNWYWxpZCA/IG51bGwgOiB7IFwiaW52YWxpZExpc3RTZWxlY3Rpb25cIjogeyB2YWx1ZTogY29udHJvbC52YWx1ZSB9IH07XG4gICAgfTtcbn1cbiJdfQ==