1 |
59057
|
argiro.kok
|
import {Directive, Input} from '@angular/core';
|
2 |
|
|
import { AbstractControl, NG_VALIDATORS, ValidationErrors, Validator, ValidatorFn } from '@angular/forms';
|
3 |
58105
|
konstantin
|
|
4 |
|
|
|
5 |
59057
|
argiro.kok
|
export function rangeRequired( enabled:boolean): ValidatorFn {
|
6 |
|
|
return (control: AbstractControl): ValidationErrors | null => {
|
7 |
|
|
const yearFrom = control.get('yearFrom');
|
8 |
|
|
const yearTo = control.get('yearTo');
|
9 |
|
|
return ((yearFrom && yearTo && enabled && (yearFrom.value == "" || yearTo.value == "")) ? { 'rangeRequired': true } : null);
|
10 |
|
|
};
|
11 |
|
|
}
|
12 |
58105
|
konstantin
|
|
13 |
59057
|
argiro.kok
|
|
14 |
58105
|
konstantin
|
@Directive({
|
15 |
59057
|
argiro.kok
|
selector: '[rangeRequired]',
|
16 |
|
|
providers: [{ provide: NG_VALIDATORS, useExisting: RangeYearsRequiredDirective, multi: true }]
|
17 |
58105
|
konstantin
|
})
|
18 |
59057
|
argiro.kok
|
export class RangeYearsRequiredDirective implements Validator {
|
19 |
|
|
@Input('rangeRequired') enabled:boolean = false;
|
20 |
58105
|
konstantin
|
validate(control: AbstractControl): ValidationErrors {
|
21 |
59057
|
argiro.kok
|
return rangeRequired(this.enabled)(control)
|
22 |
58105
|
konstantin
|
}
|
23 |
|
|
}
|