All files / lib/dynamic-form-control dynamic-form-control-evaluator.ts

100% Statements 4/4
100% Branches 2/2
100% Functions 3/3
100% Lines 4/4

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31                                          5x 5x     10x   5x      
import { DynamicFormFieldEvaluator } from '../dynamic-form-field/dynamic-form-field-evaluator';
import { DynamicFormFieldEvaluatorFn } from '../dynamic-form-field/dynamic-form-field-evaluator-type';
import { DynamicFormInput } from '../dynamic-form-input/dynamic-form-input';
import { DynamicFormControl } from './dynamic-form-control';
 
export type DynamicFormControlEvaluatorFn<
  Value = any,
  Input extends DynamicFormInput<Value> = DynamicFormInput<Value>,
  Field extends DynamicFormControl<Value, Input> = DynamicFormControl<Value, Input>
> = DynamicFormFieldEvaluatorFn<Field>;
 
export class DynamicFormControlEvaluator<
  Value = any,
  Input extends DynamicFormInput<Value> = DynamicFormInput<Value>,
  Field extends DynamicFormControl<Value, Input> = DynamicFormControl<Value, Input>,
  EvaluatorFn extends DynamicFormControlEvaluatorFn<Value, Input, Field> = DynamicFormControlEvaluatorFn<Value, Input, Field>
> extends DynamicFormFieldEvaluator<Field, EvaluatorFn> {
 
  private _inputType: string;
 
  constructor(key: string, type: string, inputType: string, field: Field, func: EvaluatorFn) {
    super(key, type, field, func);
    this._inputType = inputType;
  }
 
  get inputType(): string { return this._inputType; }
  get enabled(): boolean {
    return this.inputType ? this.inputType === this.field.inputType : true;
  }
}