diff --git a/packages/forms/src/forms.ts b/packages/forms/src/forms.ts index 81caaa2dca..2f6f27c8a4 100644 --- a/packages/forms/src/forms.ts +++ b/packages/forms/src/forms.ts @@ -40,7 +40,7 @@ export {NgSelectOption, SelectControlValueAccessor} from './directives/select_co export {SelectMultipleControlValueAccessor} from './directives/select_multiple_control_value_accessor'; export {AsyncValidator, AsyncValidatorFn, CheckboxRequiredValidator, EmailValidator, MaxLengthValidator, MinLengthValidator, PatternValidator, RequiredValidator, ValidationErrors, Validator, ValidatorFn} from './directives/validators'; export {FormBuilder} from './form_builder'; -export {AbstractControl, FormArray, FormControl, FormGroup} from './model'; +export {AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup} from './model'; export {NG_ASYNC_VALIDATORS, NG_VALIDATORS, Validators} from './validators'; export {VERSION} from './version'; diff --git a/packages/forms/src/model.ts b/packages/forms/src/model.ts index a9e18c08c8..1fa3b9cdda 100644 --- a/packages/forms/src/model.ts +++ b/packages/forms/src/model.ts @@ -80,10 +80,24 @@ function coerceToAsyncValidator( export type FormHooks = 'change' | 'blur' | 'submit'; +/** + * @whatItDoes Interface for options provided to an {@link AbstractControl}. + * + * @experimental + */ export interface AbstractControlOptions { + /** + * List of validators applied to control. + */ validators?: ValidatorFn|ValidatorFn[]|null; + /** + * List of async validators applied to control. + */ asyncValidators?: AsyncValidatorFn|AsyncValidatorFn[]|null; - updateOn?: FormHooks; + /** + * The event name for control to update upon. + */ + updateOn?: 'change'|'blur'|'submit'; } diff --git a/tools/public_api_guard/forms/forms.d.ts b/tools/public_api_guard/forms/forms.d.ts index a3e676d08e..793758f3b2 100644 --- a/tools/public_api_guard/forms/forms.d.ts +++ b/tools/public_api_guard/forms/forms.d.ts @@ -86,6 +86,13 @@ export declare abstract class AbstractControlDirective { reset(value?: any): void; } +/** @experimental */ +export interface AbstractControlOptions { + asyncValidators?: AsyncValidatorFn | AsyncValidatorFn[] | null; + updateOn?: 'change' | 'blur' | 'submit'; + validators?: ValidatorFn | ValidatorFn[] | null; +} + /** @stable */ export declare class AbstractFormGroupDirective extends ControlContainer implements OnInit, OnDestroy { readonly asyncValidator: AsyncValidatorFn | null;