import { AbstractControl, ValidatorFn } from '@angular/forms'; import { isNotEmpty } from '../empty.util'; /** * Returns a validator function to check if the control's value is in a given list * @param list The list to look in */ export function inListValidator(list: string[]): ValidatorFn { return (control: AbstractControl): { [key: string]: any } | null => { const hasValue = isNotEmpty(control.value); let inList = true; if (isNotEmpty(list)) { inList = list.indexOf(control.value) > -1; } return (hasValue && inList) ? null : { inList: { value: control.value } } }; }