Skip to content

Commit

Permalink
refactor(forms): renamed FormState to FormControlState
Browse files Browse the repository at this point in the history
Because the FormState type is actually intended for FormControl constructor,
FormState is renamed to FormControlState.
  • Loading branch information
KostyaTretyak committed Jun 6, 2020
1 parent 35eaeef commit fee6974
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 28 deletions.
23 changes: 10 additions & 13 deletions goldens/public-api/forms/forms.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -181,10 +181,7 @@ export declare class FormArray<Item = any> extends AbstractControl<Item[]> {
}): void;
push(control: AbstractControl<Item>): void;
removeAt(index: number): void;
reset(value?: (Item | {
value: Item;
disabled: boolean;
})[], options?: {
reset(value?: FormControlState<Item>[], options?: {
onlySelf?: boolean;
emitEvent?: boolean;
}): void;
Expand All @@ -209,7 +206,7 @@ export declare class FormArrayName extends ControlContainer implements OnInit, O

export declare class FormBuilder {
array<Item = any>(controlsConfig: FormControlConfig<Item>[], validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null): FormArray;
control<T = any>(formState: FormState<T>, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null): FormControl;
control<T = any>(formState: FormControlState<T>, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null): FormControl;
group<T extends object = any>(controlsConfig: {
[key in keyof T]: FormControlConfig<T[key]>;
}, options?: AbstractControlOptions | {
Expand All @@ -218,7 +215,7 @@ export declare class FormBuilder {
}

export declare class FormControl<T = any> extends AbstractControl<T> {
constructor(formState?: FormState<T>, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);
constructor(formState?: FormControlState<T>, validatorOrOpts?: ValidatorFn | ValidatorFn[] | AbstractControlOptions | null, asyncValidator?: AsyncValidatorFn | AsyncValidatorFn[] | null);
patchValue(value: null | T, options?: {
onlySelf?: boolean;
emitEvent?: boolean;
Expand All @@ -227,7 +224,7 @@ export declare class FormControl<T = any> extends AbstractControl<T> {
}): void;
registerOnChange(fn: Function): void;
registerOnDisabledChange(fn: (isDisabled: boolean) => void): void;
reset(formState?: FormState<T>, options?: {
reset(formState?: FormControlState<T>, options?: {
onlySelf?: boolean;
emitEvent?: boolean;
}): void;
Expand All @@ -239,7 +236,7 @@ export declare class FormControl<T = any> extends AbstractControl<T> {
}): void;
}

export declare type FormControlConfig<T> = AbstractControl<T> | FormState<T> | [FormState<T>, (ValidatorFn | ValidatorFn[] | AbstractControlOptions)?, (AsyncValidatorFn | AsyncValidatorFn[])?];
export declare type FormControlConfig<T> = AbstractControl<T> | FormControlState<T> | [FormControlState<T>, (ValidatorFn | ValidatorFn[] | AbstractControlOptions)?, (AsyncValidatorFn | AsyncValidatorFn[])?];

export declare class FormControlDirective extends NgControl implements OnChanges {
get asyncValidator(): AsyncValidatorFn | null;
Expand Down Expand Up @@ -272,6 +269,11 @@ export declare class FormControlName extends NgControl implements OnChanges, OnD
viewToModelUpdate(newValue: any): void;
}

export declare type FormControlState<T> = null | T | {
value: null | T;
disabled: boolean;
};

export declare class FormGroup<T extends object = any> extends AbstractControl<T> {
controls: {
[key in keyof T]: AbstractControl<T[key]>;
Expand Down Expand Up @@ -334,11 +336,6 @@ export declare class FormGroupName extends AbstractFormGroupDirective implements
export declare class FormsModule {
}

export declare type FormState<T> = null | T | {
value: null | T;
disabled: boolean;
};

export declare class MaxLengthValidator implements Validator, OnChanges {
maxlength: string | number;
ngOnChanges(changes: SimpleChanges): void;
Expand Down
8 changes: 4 additions & 4 deletions packages/forms/src/form_builder.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
import {Injectable} from '@angular/core';

import {AsyncValidatorFn, ValidatorFn} from './directives/validators';
import {AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup, FormHooks, FormState} from './model';
import {AbstractControl, AbstractControlOptions, FormArray, FormControl, FormControlState, FormGroup, FormHooks} from './model';

function isAbstractControlOptions(options: AbstractControlOptions|
{[key: string]: any}): options is AbstractControlOptions {
Expand All @@ -23,9 +23,9 @@ function isAbstractControlOptions(options: AbstractControlOptions|
*/
export type FormControlConfig<T> =
| AbstractControl<T>
| FormState<T>
| FormControlState<T>
| [
FormState<T>,
FormControlState<T>,
(ValidatorFn | ValidatorFn[] | AbstractControlOptions)?,
(AsyncValidatorFn | AsyncValidatorFn[])?
];
Expand Down Expand Up @@ -114,7 +114,7 @@ export class FormBuilder {
* </code-example>
*/
control<T = any>(
formState: FormState<T>,
formState: FormControlState<T>,
validatorOrOpts?: ValidatorFn|ValidatorFn[]|AbstractControlOptions|null,
asyncValidator?: AsyncValidatorFn|AsyncValidatorFn[]|null): FormControl {
return new FormControl(formState, validatorOrOpts, asyncValidator);
Expand Down
2 changes: 1 addition & 1 deletion packages/forms/src/forms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ export {SelectMultipleControlValueAccessor} from './directives/select_multiple_c
export {ɵNgSelectMultipleOption} from './directives/select_multiple_control_value_accessor';
export {AsyncValidator, AsyncValidatorFn, CheckboxRequiredValidator, EmailValidator, MaxLengthValidator, MinLengthValidator, PatternValidator, RequiredValidator, ValidationErrors, Validator, ValidatorFn} from './directives/validators';
export {FormBuilder, FormControlConfig} from './form_builder';
export {AbstractControl, AbstractControlOptions, FormArray, FormControl, FormGroup, FormState} from './model';
export {AbstractControl, AbstractControlOptions, FormArray, FormControl, FormControlState, FormGroup} from './model';
export {NG_ASYNC_VALIDATORS, NG_VALIDATORS, Validators} from './validators';
export {VERSION} from './version';

Expand Down
16 changes: 6 additions & 10 deletions packages/forms/src/model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import {toObservable} from './validators';
/**
* @publicApi
*/
export type FormState<T> = null|T|{
export type FormControlState<T> = null|T|{
value: null|T;
disabled: boolean
};
Expand Down Expand Up @@ -1052,7 +1052,7 @@ export class FormControl<T = any> extends AbstractControl<T> {
*
*/
constructor(
formState: FormState<T> = null,
formState: FormControlState<T> = null,
validatorOrOpts?: ValidatorFn|ValidatorFn[]|AbstractControlOptions|null,
asyncValidator?: AsyncValidatorFn|AsyncValidatorFn[]|null) {
super(
Expand Down Expand Up @@ -1137,8 +1137,8 @@ export class FormControl<T = any> extends AbstractControl<T> {
* When false, no events are emitted.
*
*/
reset(formState: FormState<T> = null, options: {onlySelf?: boolean, emitEvent?: boolean} = {}):
void {
reset(formState: FormControlState<T> = null, options: {onlySelf?: boolean,
emitEvent?: boolean} = {}): void {
this._applyFormState(formState);
this.markAsPristine(options);
this.markAsUntouched(options);
Expand Down Expand Up @@ -1970,12 +1970,8 @@ export class FormArray<Item = any> extends AbstractControl<Item[]> {
* The configuration options are passed to the {@link AbstractControl#updateValueAndValidity
* updateValueAndValidity} method.
*/
reset(
value: (Item|{
value: Item;
disabled: boolean
})[] = [],
options: {onlySelf?: boolean, emitEvent?: boolean} = {}): void {
reset(value: FormControlState<Item>[] = [], options: {onlySelf?: boolean,
emitEvent?: boolean} = {}): void {
this._forEachChild((control: AbstractControl, index: number) => {
control.reset(value[index], {onlySelf: true, emitEvent: options.emitEvent});
});
Expand Down

0 comments on commit fee6974

Please sign in to comment.