import { Type } from '@angular/core'; import { DxFormControl, FormControlSelectorsMap } from '../form-control'; import { DxFormArray } from '../form-array'; import { DxFormGroup } from '../form-group'; import { ValidationFn, ProjectFn2, FormState, FormGroupState, FormControlValueTypes, Unboxed } from 'ngrx-forms'; import { MemoizedSelector } from '@ngrx/store'; export interface DxFormAsyncValidatorDefinition { propertyKey: string; controlId: string; controlPaths: string[]; validatorErrorTemplate: string; } export interface DxFormControlDefinition { name: string; control: Type>; placeholder: string; validators: Array>; readonly: boolean; disabled: boolean; disabledSelector: MemoizedSelector; disabledFunction: (value: Unboxed, state: FormGroupState) => boolean; required: boolean; label: string; boxed: boolean; propertyKey: string; fxFlex: string; fxHide: boolean; fxHideSelector: MemoizedSelector; userDefinedProperties: { [key: string]: any; }; selectors: FormControlSelectorsMap; internal: boolean; } export interface DxFormArrayDefinition { name: string; group: Type>; array: Type>; propertyKey: string; } export interface DxFormEffect { propertyKey: string; dispatch: boolean; resubscribeOnError: boolean; } export interface DxFormGroupDefinition { name: string; group: Type>; propertyKey: string; } export interface DxFormOnSetValueDefinition { propertyKey: string; controlPaths: string[]; } export interface DxFormValidatorDefinition { controlId: string; validator?: ProjectFn2, FormGroupState>; propertyKey: string; validatorErrorTemplate?: string; name: string; parameters: { [key: string]: any; }; } export interface DxFormOnDefinition { propertyKey: string; order: number; }