# Class RxapFormGroup<T, E>

#### Type Parameters

- T = any
- E extends ValidationErrors = any

#### Hierarchy

- UntypedFormGroup
  - RxapFormGroup

- Defined in packages/angular/forms/src/lib/form-group.ts:49

#####
Index

### Constructors

constructor

### Properties

_readonly
_rxapFormDefinition?
controlId
controls
dirty$
dirtyChanges
disabled$
enabled$
errors
errors$
events
pristine
status
status$
statusChanges
touch$
touchChanges
touched
value
value$
valueChanges

### Accessors

asyncValidator
controlPath
dirty
disabled
enabled
fullControlPath
invalid
parent
pending
readonly
root
rxapFormDefinition
untouched
updateOn
valid
validator

### Methods

_patchValue
addAsyncValidators
addControl
addValidators
clearAsyncValidators
clearValidators
contains
disable
disabledWhile
enable
enabledWhile
get
getControl
getError
getRawValue
hasAsyncValidator
hasError
hasErrorAndDirty
hasErrorAndTouched
hasValidator
markAllAsDirty
markAllAsPristine
markAllAsTouched
markAllAsUntouched
markAsDirty
markAsPending
markAsPristine
markAsTouched
markAsUntouched
mergeAsyncValidators
mergeValidators
patchValue
registerControl
removeAsyncValidators
removeControl
removeValidators
reset
select
setAsyncValidators
setControl
setDisable
setEnable
setErrors
setParent
setValidators
setValue
updateValueAndValidity
validateOn

## Constructors

### constructor

- new RxapFormGroup<T, E>(controls, options): RxapFormGroup<T, E>

- #### Type Parameters

  - T = any
  - E extends ValidationErrors = any

  #### Parameters

  - controls: ExtractAbstractControl<KeyValueControls<T>, T>
  - options: FormGroupOptions

  #### Returns RxapFormGroup<T, E>

  Overrides UntypedFormGroup.constructor

  - Defined in packages/angular/forms/src/lib/form-group.ts:128

## Properties

### `Private` _readonly

_readonly: boolean = false

- Defined in packages/angular/forms/src/lib/form-group.ts:68

### `Private` `Optional` `Internal` _rxapFormDefinition

_rxapFormDefinition?: Partial<FormDefinition<T, any, any>> & {
[K in string | number | symbol]: T[K] extends U[]
? FormDefinitionArray<FormType<U>> | FormDefinitionArray<RxapFormControl<U, any, any>> | RxapFormArray<U, any, any> | RxapFormControl<any[any], any, any>
: T[K] extends Record<string, any>
? Partial<FormDefinition<T[K], any, any>> & {
[K in string | number | symbol]: T[K][K] extends U[]
? FormDefinitionArray<FormType<(...)>> | FormDefinitionArray<RxapFormControl<(...), (...), (...)>> | RxapFormArray<U, any, any> | RxapFormControl<any[any], any, any>
: (...)[(...)][K] extends Record<string, any>
? (...) & (...) & (...) | RxapFormControl<(...), (...), (...)>
: RxapFormControl<NonEmpty<(...)>, any, any>
} & Partial<FormDefinition<T[K], any, any>> | RxapFormControl<T[K], any, any>
: RxapFormControl<NonEmpty<T[K]>, any, any>
} & FormDefinition<T, any, any>

- Defined in packages/angular/forms/src/lib/form-group.ts:82

### `Readonly` controlId

controlId: string

- Defined in packages/angular/forms/src/lib/form-group.ts:102

### controls

controls: ExtractAbstractControl<KeyValueControls<T>, T>

Inherited from UntypedFormGroup.controls

- Defined in packages/angular/forms/src/lib/form-group.ts:129

### dirty$

dirty$: Observable<boolean> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:94

### `Private` dirtyChanges

dirtyChanges: Subject<boolean> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:91

### `Readonly` disabled$

disabled$: Observable<boolean> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:97

### `Readonly` enabled$

enabled$: Observable<boolean> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:98

### `Readonly` errors

errors: E

Overrides UntypedFormGroup.errors

- Defined in packages/angular/forms/src/lib/form-group.ts:85

### `Readonly` errors$

errors$: Observable<E> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:100

### `Readonly` events

events: Observable<ControlEvent<any>>

A multicasting observable that emits an event every time the state of the control changes. It emits for value, status, pristine or touched changes.

Note: On value change, the emit happens right after a value of this control is updated. The value of a parent control (for example if this FormControl is a part of a FormGroup) is updated later, so accessing a value of a parent control (using the `value` property) from the callback of this event might result in getting a value that has not been updated yet. Subscribe to the `events` of the parent control instead. For other event types, the events are emitted after the parent control has been updated.

Inherited from UntypedFormGroup.events

- Defined in node_modules/@angular/forms/index.d.ts:190

### `Readonly` pristine

pristine: boolean

A control is `pristine` if the user has not yet changed the value in the UI.

#### Returns

True if the user has not yet changed the value in the UI; compare `dirty`. Programmatic changes to a control's value do not mark it dirty.

Inherited from UntypedFormGroup.pristine

- Defined in node_modules/@angular/forms/index.d.ts:155

### `Readonly` status

status: ControlState

Overrides UntypedFormGroup.status

- Defined in packages/angular/forms/src/lib/form-group.ts:87

### `Readonly` status$

status$: Observable<ControlState> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:99

### `Readonly` statusChanges

statusChanges: Observable<ControlState>

Overrides UntypedFormGroup.statusChanges

- Defined in packages/angular/forms/src/lib/form-group.ts:88

### touch$

touch$: Observable<boolean> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:93

### `Private` touchChanges

touchChanges: Subject<boolean> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:90

### `Readonly` touched

touched: boolean

True if the control is marked as `touched`.

A control is marked `touched` once the user has triggered a `blur` event on it.

Inherited from UntypedFormGroup.touched

- Defined in node_modules/@angular/forms/index.d.ts:170

### `Readonly` value

value: T

Overrides UntypedFormGroup.value

- Defined in packages/angular/forms/src/lib/form-group.ts:84

### `Readonly` value$

value$: Observable<T> = ...

- Defined in packages/angular/forms/src/lib/form-group.ts:96

### `Readonly` valueChanges

valueChanges: Observable<T>

Overrides UntypedFormGroup.valueChanges

- Defined in packages/angular/forms/src/lib/form-group.ts:86

## Accessors

### asyncValidator

- get asyncValidator(): AsyncValidatorFn

- Returns the function that is used to determine the validity of this control asynchronously. If multiple validators have been added, this will be a single composed function. See `Validators.compose()` for additional information.

  #### Returns AsyncValidatorFn

  Inherited from UntypedFormGroup.asyncValidator

  - Defined in node_modules/@angular/forms/index.d.ts:79
- set asyncValidator(asyncValidatorFn): void

- #### Parameters

  - asyncValidatorFn: AsyncValidatorFn

  #### Returns void

  Inherited from UntypedFormGroup.asyncValidator

  - Defined in node_modules/@angular/forms/index.d.ts:80

### controlPath

- get controlPath(): string

- #### Returns string

  - Defined in packages/angular/forms/src/lib/form-group.ts:104

### dirty

- get dirty(): boolean

- A control is `dirty` if the user has changed the value in the UI.

  #### Returns boolean

  True if the user has changed the value of this control in the UI; compare `pristine`. Programmatic changes to a control's value do not mark it dirty.

  Inherited from UntypedFormGroup.dirty

  - Defined in node_modules/@angular/forms/index.d.ts:163

### disabled

- get disabled(): boolean

- A control is `disabled` when its `status` is `DISABLED`.

  Disabled controls are exempt from validation checks and are not included in the aggregate value of their ancestor controls.

  #### Returns boolean

  True if the control is disabled, false otherwise.

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.disabled

  - Defined in node_modules/@angular/forms/index.d.ts:132

### enabled

- get enabled(): boolean

- A control is `enabled` as long as its `status` is not `DISABLED`.

  #### Returns boolean

  True if the control has any status other than 'DISABLED', false if the status is 'DISABLED'.

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.enabled

  - Defined in node_modules/@angular/forms/index.d.ts:142

### fullControlPath

- get fullControlPath(): string

- #### Returns string

  - Defined in packages/angular/forms/src/lib/form-group.ts:118

### invalid

- get invalid(): boolean

- A control is `invalid` when its `status` is `INVALID`.

  #### Returns boolean

  True if this control has failed one or more of its validation checks, false otherwise.

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.invalid

  - Defined in node_modules/@angular/forms/index.d.ts:111

### parent

- get parent(): FormGroup<any> | FormArray<any>

- The parent control.

  #### Returns FormGroup<any> | FormArray<any>

  Inherited from UntypedFormGroup.parent

  - Defined in node_modules/@angular/forms/index.d.ts:84

### pending

- get pending(): boolean

- A control is `pending` when its `status` is `PENDING`.

  #### Returns boolean

  True if this control is in the process of conducting a validation check, false otherwise.

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.pending

  - Defined in node_modules/@angular/forms/index.d.ts:120

### readonly

- get readonly(): boolean

- #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:70
- set readonly(value): void

- #### Parameters

  - value: boolean

  #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:74

### root

- get root(): AbstractControl<any, any>

- Retrieves the top-level ancestor of this control.

  #### Returns AbstractControl<any, any>

  Inherited from UntypedFormGroup.root

  - Defined in node_modules/@angular/forms/index.d.ts:674

### rxapFormDefinition

- get rxapFormDefinition(): Partial<FormDefinition<T, any, any>> & {
  [K in string | number | symbol]: T[K] extends U[]
  ? FormDefinitionArray<FormType<U>> | FormDefinitionArray<RxapFormControl<U, any, any>> | RxapFormArray<U, any, any> | RxapFormControl<any[any], any, any>
  : T[K] extends Record<string, any>
  ? Partial<FormDefinition<T[K], any, any>> & {
  [K in string | number | symbol]: T[K][K] extends U[]
  ? FormDefinitionArray<FormType<(...)>> | FormDefinitionArray<RxapFormControl<(...), (...), (...)>> | RxapFormArray<U, any, any> | RxapFormControl<any[any], any, any>
  : (...)[(...)][K] extends Record<string, any>
  ? (...) & (...) & (...) | RxapFormControl<(...), (...), (...)>
  : RxapFormControl<NonEmpty<(...)>, any, any>
  } & Partial<FormDefinition<T[K], any, any>> | RxapFormControl<T[K], any, any>
  : RxapFormControl<NonEmpty<T[K]>, any, any>
  } & FormDefinition<T, any, any>
- `Internal`

  #### Returns Partial<FormDefinition<T, any, any>> & {
  [K in string | number | symbol]: T[K] extends U[]
  ? FormDefinitionArray<FormType<U>> | FormDefinitionArray<RxapFormControl<U, any, any>> | RxapFormArray<U, any, any> | RxapFormControl<any[any], any, any>
  : T[K] extends Record<string, any>
  ? Partial<FormDefinition<T[K], any, any>> & {
  [K in string | number | symbol]: T[K][K] extends U[]
  ? FormDefinitionArray<FormType<(...)>> | FormDefinitionArray<RxapFormControl<(...), (...), (...)>> | RxapFormArray<U, any, any> | RxapFormControl<any[any], any, any>
  : (...)[(...)][K] extends Record<string, any>
  ? (...) & (...) & (...) | RxapFormControl<(...), (...), (...)>
  : RxapFormControl<NonEmpty<(...)>, any, any>
  } & Partial<FormDefinition<T[K], any, any>> | RxapFormControl<T[K], any, any>
  : RxapFormControl<NonEmpty<T[K]>, any, any>
  } & FormDefinition<T, any, any>

  - Defined in packages/angular/forms/src/lib/form-group.ts:56

### untouched

- get untouched(): boolean

- True if the control has not been marked as touched

  A control is `untouched` if the user has not yet triggered a `blur` event on it.

  #### Returns boolean

  Inherited from UntypedFormGroup.untouched

  - Defined in node_modules/@angular/forms/index.d.ts:177

### updateOn

- get updateOn(): FormHooks

- Reports the update strategy of the `AbstractControl` (meaning the event on which the control updates itself). Possible values: `'change'` | `'blur'` | `'submit'` Default value: `'change'`

  #### Returns FormHooks

  Inherited from UntypedFormGroup.updateOn

  - Defined in node_modules/@angular/forms/index.d.ts:221

### valid

- get valid(): boolean

- A control is `valid` when its `status` is `VALID`.

  #### Returns boolean

  True if the control has passed all of its validation tests, false otherwise.

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.valid

  - Defined in node_modules/@angular/forms/index.d.ts:102

### validator

- get validator(): ValidatorFn

- Returns the function that is used to determine the validity of this control synchronously. If multiple validators have been added, this will be a single composed function. See `Validators.compose()` for additional information.

  #### Returns ValidatorFn

  Inherited from UntypedFormGroup.validator

  - Defined in node_modules/@angular/forms/index.d.ts:72
- set validator(validatorFn): void

- #### Parameters

  - validatorFn: ValidatorFn

  #### Returns void

  Inherited from UntypedFormGroup.validator

  - Defined in node_modules/@angular/forms/index.d.ts:73

## Methods

### `Private` _patchValue

- _patchValue(value, options?): void

- #### Parameters

  - value: T
  - `Optional` options: ControlEventOptions

  #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:221

### addAsyncValidators

- addAsyncValidators(validators): void

- Add an asynchronous validator or validators to this control, without affecting other validators.

  When you add or remove a validator at run time, you must call `updateValueAndValidity()` for the new validation to take effect.

  Adding a validator that already exists will have no effect.

  #### Parameters

  - validators: AsyncValidatorFn | AsyncValidatorFn[]

    The new asynchronous validator function or functions to add to this control.

  #### Returns void

  Inherited from UntypedFormGroup.addAsyncValidators

  - Defined in node_modules/@angular/forms/index.d.ts:268

### addControl

- addControl<K>(name, control): void

- #### Type Parameters

  - K extends string

  #### Parameters

  - name: K
  - control: AbstractControl<T[K]>

  #### Returns void

  Overrides UntypedFormGroup.addControl

  - Defined in packages/angular/forms/src/lib/form-group.ts:183

### addValidators

- addValidators(validators): void

- Add a synchronous validator or validators to this control, without affecting other validators.

  When you add or remove a validator at run time, you must call `updateValueAndValidity()` for the new validation to take effect.

  Adding a validator that already exists will have no effect. If duplicate validator functions are present in the `validators` array, only the first instance would be added to a form control.

  #### Parameters

  - validators: ValidatorFn | ValidatorFn[]

    The new validator function or functions to add to this control.

  #### Returns void

  Inherited from UntypedFormGroup.addValidators

  - Defined in node_modules/@angular/forms/index.d.ts:256

### clearAsyncValidators

- clearAsyncValidators(): void

- Empties out the async validator list.

  When you add or remove a validator at run time, you must call `updateValueAndValidity()` for the new validation to take effect.

  #### Returns void

  Inherited from UntypedFormGroup.clearAsyncValidators

  - Defined in node_modules/@angular/forms/index.d.ts:359

### clearValidators

- clearValidators(): void

- Empties out the synchronous validator list.

  When you add or remove a validator at run time, you must call `updateValueAndValidity()` for the new validation to take effect.

  #### Returns void

  Inherited from UntypedFormGroup.clearValidators

  - Defined in node_modules/@angular/forms/index.d.ts:351

### contains

- contains(controlName): boolean

- #### Parameters

  - controlName: ExtractStrings<T>

  #### Returns boolean

  Overrides UntypedFormGroup.contains

  - Defined in packages/angular/forms/src/lib/form-group.ts:194

### disable

- disable(opts?): void

- Disables the control. This means the control is exempt from validation checks and excluded from the aggregate value of any parent. Its status is `DISABLED`.

  If the control has children, all children are also disabled.

  #### Parameters

  - `Optional` opts: {
    emitEvent?: boolean;
    onlySelf?: boolean;
    }

    Configuration options that determine how the control propagates changes and emits events after the control is disabled.

    - `onlySelf`: When true, mark only this control. When false or not supplied, marks all direct ancestors. Default is false.
    - `emitEvent`: When true or not supplied (the default), the `statusChanges`, `valueChanges` and `events` observables emit events with the latest status and value when the control is disabled. When false, no events are emitted.

    - ##### `Optional` emitEvent?: boolean

    - ##### `Optional` onlySelf?: boolean

  #### Returns void

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.disable

  - Defined in node_modules/@angular/forms/index.d.ts:496

### disabledWhile

- disabledWhile(observable, options?): Subscription

- #### Parameters

  - observable: Observable<boolean>
  - `Optional` options: ControlOptions

  #### Returns Subscription

  - Defined in packages/angular/forms/src/lib/form-group.ts:267

### enable

- enable(opts?): void

- Enables the control. This means the control is included in validation checks and the aggregate value of its parent. Its status recalculates based on its value and its validators.

  By default, if the control has children, all children are enabled.

  #### Parameters

  - `Optional` opts: {
    emitEvent?: boolean;
    onlySelf?: boolean;
    }

    Configure options that control how the control propagates changes and emits events when marked as untouched

    - `onlySelf`: When true, mark only this control. When false or not supplied, marks all direct ancestors. Default is false.
    - `emitEvent`: When true or not supplied (the default), the `statusChanges`, `valueChanges` and `events` observables emit events with the latest status and value when the control is enabled. When false, no events are emitted.

    - ##### `Optional` emitEvent?: boolean

    - ##### `Optional` onlySelf?: boolean

  #### Returns void

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.enable

  - Defined in node_modules/@angular/forms/index.d.ts:518

### enabledWhile

- enabledWhile(observable, options?): Subscription

- #### Parameters

  - observable: Observable<boolean>
  - `Optional` options: ControlOptions

  #### Returns Subscription

  - Defined in packages/angular/forms/src/lib/form-group.ts:274

### get

- get<K1>(path): AbstractControl<T[K1]>

- #### Type Parameters

  - K1 extends string | number | symbol

  #### Parameters

  - path: [K1]

  #### Returns AbstractControl<T[K1]>

  Overrides UntypedFormGroup.get

  - Defined in packages/angular/forms/src/lib/form-group.ts:144
- get<K1, K2>(path): AbstractControl<T[K1][K2]>

- #### Type Parameters

  - K1 extends string | number | symbol
  - K2 extends string | number | symbol

  #### Parameters

  - path: [K1, K2]

  #### Returns AbstractControl<T[K1][K2]>

  Overrides UntypedFormGroup.get

  - Defined in packages/angular/forms/src/lib/form-group.ts:145
- get<K1, K2, K3>(path): AbstractControl<T[K1][K2][K3]>

- #### Type Parameters

  - K1 extends string | number | symbol
  - K2 extends string | number | symbol
  - K3 extends string | number | symbol

  #### Parameters

  - path: [K1, K2, K3]

  #### Returns AbstractControl<T[K1][K2][K3]>

  Overrides UntypedFormGroup.get

  - Defined in packages/angular/forms/src/lib/form-group.ts:148
- get(path): AbstractControl<any>

- #### Parameters

  - path: string

  #### Returns AbstractControl<any>

  Overrides UntypedFormGroup.get

  - Defined in packages/angular/forms/src/lib/form-group.ts:153

### getControl

- getControl<P1>(prop1): AbstractControl<T[P1]>

- #### Type Parameters

  - P1 extends string | number | symbol

  #### Parameters

  - prop1: P1

  #### Returns AbstractControl<T[P1]>

  - Defined in packages/angular/forms/src/lib/form-group.ts:158
- getControl<P1, P2>(prop1, prop2): AbstractControl<T[P1][P2]>

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol

  #### Parameters

  - prop1: P1
  - prop2: P2

  #### Returns AbstractControl<T[P1][P2]>

  - Defined in packages/angular/forms/src/lib/form-group.ts:159
- getControl<P1, P2, P3>(prop1, prop2, prop3): AbstractControl<T[P1][P2][P3]>

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol
  - P3 extends string | number | symbol

  #### Parameters

  - prop1: P1
  - prop2: P2
  - prop3: P3

  #### Returns AbstractControl<T[P1][P2][P3]>

  - Defined in packages/angular/forms/src/lib/form-group.ts:163
- getControl<P1, P2, P3, P4>(prop1, prop2, prop3, prop4): AbstractControl<T[P1][P2][P3][P4]>

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol
  - P3 extends string | number | symbol
  - P4 extends string | number | symbol

  #### Parameters

  - prop1: P1
  - prop2: P2
  - prop3: P3
  - prop4: P4

  #### Returns AbstractControl<T[P1][P2][P3][P4]>

  - Defined in packages/angular/forms/src/lib/form-group.ts:168

### getError

- getError<K, K1>(errorCode, path?): E[K]

- #### Type Parameters

  - K extends string | number | symbol
  - K1 extends string | number | symbol

  #### Parameters

  - errorCode: K
  - `Optional` path: [K1]

  #### Returns E[K]

  Overrides UntypedFormGroup.getError

  - Defined in packages/angular/forms/src/lib/form-group.ts:375
- getError<K, K1, K2>(errorCode, path?): E[K]

- #### Type Parameters

  - K extends string | number | symbol
  - K1 extends string | number | symbol
  - K2 extends string | number | symbol

  #### Parameters

  - errorCode: K
  - `Optional` path: [K1, K2]

  #### Returns E[K]

  Overrides UntypedFormGroup.getError

  - Defined in packages/angular/forms/src/lib/form-group.ts:379
- getError<K, K1, K2, K3>(errorCode, path?): E[K]

- #### Type Parameters

  - K extends string | number | symbol
  - K1 extends string | number | symbol
  - K2 extends string | number | symbol
  - K3 extends string | number | symbol

  #### Parameters

  - errorCode: K
  - `Optional` path: [K1, K2, K3]

  #### Returns E[K]

  Overrides UntypedFormGroup.getError

  - Defined in packages/angular/forms/src/lib/form-group.ts:384
- getError<K>(errorCode, path?): E[K]

- #### Type Parameters

  - K extends string | number | symbol

  #### Parameters

  - errorCode: K
  - `Optional` path: string

  #### Returns E[K]

  Overrides UntypedFormGroup.getError

  - Defined in packages/angular/forms/src/lib/form-group.ts:390

### getRawValue

- getRawValue(): T

- #### Returns T

  Overrides UntypedFormGroup.getRawValue

  - Defined in packages/angular/forms/src/lib/form-group.ts:140

### hasAsyncValidator

- hasAsyncValidator(validator): boolean

- Check whether an asynchronous validator function is present on this control. The provided validator must be a reference to the exact same function that was provided.

  #### Parameters

  - validator: AsyncValidatorFn

    The asynchronous validator to check for presence. Compared by function reference.

  #### Returns boolean

  Whether the provided asynchronous validator was found on this control.

  Inherited from UntypedFormGroup.hasAsyncValidator

  - Defined in node_modules/@angular/forms/index.d.ts:343

### hasError

- hasError<K1>(errorCode, path?): boolean

- #### Type Parameters

  - K1 extends string | number | symbol

  #### Parameters

  - errorCode: ExtractStrings<E>
  - `Optional` path: [K1]

  #### Returns boolean

  Overrides UntypedFormGroup.hasError

  - Defined in packages/angular/forms/src/lib/form-group.ts:353
- hasError<K1, K2>(errorCode, path?): boolean

- #### Type Parameters

  - K1 extends string | number | symbol
  - K2 extends string | number | symbol

  #### Parameters

  - errorCode: ExtractStrings<E>
  - `Optional` path: [K1, K2]

  #### Returns boolean

  Overrides UntypedFormGroup.hasError

  - Defined in packages/angular/forms/src/lib/form-group.ts:357
- hasError<K1, K2, K3>(errorCode, path?): boolean

- #### Type Parameters

  - K1 extends string | number | symbol
  - K2 extends string | number | symbol
  - K3 extends string | number | symbol

  #### Parameters

  - errorCode: ExtractStrings<E>
  - `Optional` path: [K1, K2, K3]

  #### Returns boolean

  Overrides UntypedFormGroup.hasError

  - Defined in packages/angular/forms/src/lib/form-group.ts:361
- hasError(errorCode, path?): boolean

- #### Parameters

  - errorCode: ExtractStrings<E>
  - `Optional` path: string

  #### Returns boolean

  Overrides UntypedFormGroup.hasError

  - Defined in packages/angular/forms/src/lib/form-group.ts:366

### hasErrorAndDirty

- hasErrorAndDirty<P1>(error, prop1?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:425
- hasErrorAndDirty<P1, P2>(error, prop1?, prop2?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1
  - `Optional` prop2: P2

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:429
- hasErrorAndDirty<P1, P2, P3>(error, prop1?, prop2?, prop3?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol
  - P3 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1
  - `Optional` prop2: P2
  - `Optional` prop3: P3

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:434
- hasErrorAndDirty<P1, P2, P3, P4>(error, prop1?, prop2?, prop3?, prop4?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol
  - P3 extends string | number | symbol
  - P4 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1
  - `Optional` prop2: P2
  - `Optional` prop3: P3
  - `Optional` prop4: P4

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:439

### hasErrorAndTouched

- hasErrorAndTouched<P1>(error, prop1?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:395
- hasErrorAndTouched<P1, P2>(error, prop1?, prop2?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1
  - `Optional` prop2: P2

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:399
- hasErrorAndTouched<P1, P2, P3>(error, prop1?, prop2?, prop3?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol
  - P3 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1
  - `Optional` prop2: P2
  - `Optional` prop3: P3

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:404
- hasErrorAndTouched<P1, P2, P3, P4>(error, prop1?, prop2?, prop3?, prop4?): boolean

- #### Type Parameters

  - P1 extends string | number | symbol
  - P2 extends string | number | symbol
  - P3 extends string | number | symbol
  - P4 extends string | number | symbol

  #### Parameters

  - error: ExtractStrings<E>
  - `Optional` prop1: P1
  - `Optional` prop2: P2
  - `Optional` prop3: P3
  - `Optional` prop4: P4

  #### Returns boolean

  - Defined in packages/angular/forms/src/lib/form-group.ts:409

### hasValidator

- hasValidator(validator): boolean

- Check whether a synchronous validator function is present on this control. The provided validator must be a reference to the exact same function that was provided.

  #### Parameters

  - validator: ValidatorFn

    The validator to check for presence. Compared by function reference.

  #### Returns boolean

  Whether the provided validator was found on this control.

  #### Usage Notes

  ### Reference to a ValidatorFn

      // Reference to the RequiredValidator
      const ctrl = new FormControl<number | null>(0, Validators.required);
      expect(ctrl.hasValidator(Validators.required)).toEqual(true)

      // Reference to anonymous function inside MinValidator
      const minValidator = Validators.min(3);
      const ctrl = new FormControl<number | null>(0, minValidator);
      expect(ctrl.hasValidator(minValidator)).toEqual(true)
      expect(ctrl.hasValidator(Validators.min(3))).toEqual(false)

  Inherited from UntypedFormGroup.hasValidator

  - Defined in node_modules/@angular/forms/index.d.ts:334

### markAllAsDirty

- markAllAsDirty(): void

- #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:313

### markAllAsPristine

- markAllAsPristine(): void

- #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:317

### markAllAsTouched

- markAllAsTouched(opts?): void

- Marks the control and all its descendant controls as `touched`.

  #### Parameters

  - `Optional` opts: {
    emitEvent?: boolean;
    }

    Configuration options that determine how the control propagates changes and emits events after marking is applied.

    - `emitEvent`: When true or not supplied (the default), the `events` observable emits a `TouchedChangeEvent` with the `touched` property being `true`. When false, no events are emitted.

    - ##### `Optional` emitEvent?: boolean

  #### Returns void

  #### See

  ()

  Inherited from UntypedFormGroup.markAllAsTouched

  - Defined in node_modules/@angular/forms/index.d.ts:390

### markAllAsUntouched

- markAllAsUntouched(): void

- #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:321

### markAsDirty

- markAsDirty(opts?): void

- #### Parameters

  - `Optional` opts: OnlySelf

  #### Returns void

  Overrides UntypedFormGroup.markAsDirty

  - Defined in packages/angular/forms/src/lib/form-group.ts:308

### markAsPending

- markAsPending(opts?): void

- Marks the control as `pending`.

  A control is pending while the control performs async validation.

  #### Parameters

  - `Optional` opts: {
    emitEvent?: boolean;
    onlySelf?: boolean;
    }

    Configuration options that determine how the control propagates changes and emits events after marking is applied.

    - `onlySelf`: When true, mark only this control. When false or not supplied, marks all direct ancestors. Default is false.
    - `emitEvent`: When true or not supplied (the default), the `statusChanges` observable emits an event with the latest status the control is marked pending and the `events` observable emits a `StatusChangeEvent` with the `status` property being `PENDING` When false, no events are emitted.

    - ##### `Optional` emitEvent?: boolean

    - ##### `Optional` onlySelf?: boolean

  #### Returns void

  #### See

  AbstractControl.status

  Inherited from UntypedFormGroup.markAsPending

  - Defined in node_modules/@angular/forms/index.d.ts:475

### markAsPristine

- markAsPristine(opts?): void

- #### Parameters

  - `Optional` opts: OnlySelf

  #### Returns void

  Overrides UntypedFormGroup.markAsPristine

  - Defined in packages/angular/forms/src/lib/form-group.ts:303

### markAsTouched

- markAsTouched(opts?): void

- #### Parameters

  - `Optional` opts: OnlySelf

  #### Returns void

  Overrides UntypedFormGroup.markAsTouched

  - Defined in packages/angular/forms/src/lib/form-group.ts:293

### markAsUntouched

- markAsUntouched(opts?): void

- #### Parameters

  - `Optional` opts: OnlySelf

  #### Returns void

  Overrides UntypedFormGroup.markAsUntouched

  - Defined in packages/angular/forms/src/lib/form-group.ts:298

### mergeAsyncValidators

- mergeAsyncValidators(validators): void

- #### Parameters

  - validators: AsyncValidator

  #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:285

### mergeValidators

- mergeValidators(validators): void

- #### Parameters

  - validators: Validator

  #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:281

### patchValue

- patchValue(valueOrObservable, options?): Subscription

- #### Parameters

  - valueOrObservable: Observable<Partial<T>>
  - `Optional` options: ControlEventOptions

  #### Returns Subscription

  Overrides UntypedFormGroup.patchValue

  - Defined in packages/angular/forms/src/lib/form-group.ts:245
- patchValue(valueOrObservable, options?): void

- #### Parameters

  - valueOrObservable: Partial<T>
  - `Optional` options: ControlEventOptions

  #### Returns void

  Overrides UntypedFormGroup.patchValue

  - Defined in packages/angular/forms/src/lib/form-group.ts:249

### registerControl

- registerControl<K>(name, control): any

- Registers a control with the group's list of controls. In a strongly-typed group, the control must be in the group's type (possibly as an optional key).

  This method does not update the value or validity of the control. Use FormGroup#addControl addControl instead.

  #### Type Parameters

  - K extends string

  #### Parameters

  - name: K

    The control name to register in the collection

  - control: any

    Provides the control for the given name

  #### Returns any

  Inherited from UntypedFormGroup.registerControl

  - Defined in node_modules/@angular/forms/index.d.ts:2648
- registerControl(this, name, control): AbstractControl<any, any>

- #### Parameters

  - this: FormGroup<{
    [key: string]: AbstractControl<any>;
    }>
  - name: string
  - control: AbstractControl<any, any>

  #### Returns AbstractControl<any, any>

  Inherited from UntypedFormGroup.registerControl

  - Defined in node_modules/@angular/forms/index.d.ts:2649

### removeAsyncValidators

- removeAsyncValidators(validators): void

- Remove an asynchronous validator from this control, without affecting other validators. Validators are compared by function reference; you must pass a reference to the exact same validator function as the one that was originally set. If a provided validator is not found, it is ignored.

  When you add or remove a validator at run time, you must call `updateValueAndValidity()` for the new validation to take effect.

  #### Parameters

  - validators: AsyncValidatorFn | AsyncValidatorFn[]

    The asynchronous validator or validators to remove.

  #### Returns void

  Inherited from UntypedFormGroup.removeAsyncValidators

  - Defined in node_modules/@angular/forms/index.d.ts:310

### removeControl

- removeControl(name): void

- #### Parameters

  - name: ExtractStrings<T>

  #### Returns void

  Overrides UntypedFormGroup.removeControl

  - Defined in packages/angular/forms/src/lib/form-group.ts:190

### removeValidators

- removeValidators(validators): void

- Remove a synchronous validator from this control, without affecting other validators. Validators are compared by function reference; you must pass a reference to the exact same validator function as the one that was originally set. If a provided validator is not found, it is ignored.

  #### Parameters

  - validators: ValidatorFn | ValidatorFn[]

    The validator or validators to remove.

  #### Returns void

  #### Usage Notes

  ### Reference to a ValidatorFn

      // Reference to the RequiredValidator
      const ctrl = new FormControl<string | null>('', Validators.required);
      ctrl.removeValidators(Validators.required);

      // Reference to anonymous function inside MinValidator
      const minValidator = Validators.min(3);
      const ctrl = new FormControl<string | null>('', minValidator);
      expect(ctrl.hasValidator(minValidator)).toEqual(true)
      expect(ctrl.hasValidator(Validators.min(3))).toEqual(false)

      ctrl.removeValidators(minValidator);

  When you add or remove a validator at run time, you must call `updateValueAndValidity()` for the new validation to take effect.

  Inherited from UntypedFormGroup.removeValidators

  - Defined in node_modules/@angular/forms/index.d.ts:298

### reset

- reset(formState?, options?): void

- #### Parameters

  - `Optional` formState: Partial<T>
  - `Optional` options: ControlEventOptions

  #### Returns void

  Overrides UntypedFormGroup.reset

  - Defined in packages/angular/forms/src/lib/form-group.ts:325

### select

- select<R>(mapFn): Observable<R>

- #### Type Parameters

  - R

  #### Parameters

  - mapFn: ((state) => R)
    - - (state): R

      - #### Parameters

        - state: T

        #### Returns R

  #### Returns Observable<R>

  - Defined in packages/angular/forms/src/lib/form-group.ts:136

### setAsyncValidators

- setAsyncValidators(newValidator, updateValueAndValidity?): void

- #### Parameters

  - newValidator: AsyncValidator
  - updateValueAndValidity: boolean = true

  #### Returns void

  Overrides UntypedFormGroup.setAsyncValidators

  - Defined in packages/angular/forms/src/lib/form-group.ts:339

### setControl

- setControl<K>(name, control): void

- #### Type Parameters

  - K extends string

  #### Parameters

  - name: K
  - control: AbstractControl<T[K]>

  #### Returns void

  Overrides UntypedFormGroup.setControl

  - Defined in packages/angular/forms/src/lib/form-group.ts:198

### setDisable

- setDisable(disable?, opts?): void

- #### Parameters

  - disable: boolean = true
  - `Optional` opts: ControlEventOptions

  #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:459

### setEnable

- setEnable(enable?, opts?): void

- #### Parameters

  - enable: boolean = true
  - `Optional` opts: ControlEventOptions

  #### Returns void

  - Defined in packages/angular/forms/src/lib/form-group.ts:455

### setErrors

- setErrors(errors, opts?): void

- #### Parameters

  - errors: Partial<E>
  - opts: EmitEvent = {}

  #### Returns void

  Overrides UntypedFormGroup.setErrors

  - Defined in packages/angular/forms/src/lib/form-group.ts:371

### setParent

- setParent(parent): void

- Sets the parent of the control

  #### Parameters

  - parent: FormGroup<any> | FormArray<any>

    The new parent.

  #### Returns void

  Inherited from UntypedFormGroup.setParent

  - Defined in node_modules/@angular/forms/index.d.ts:528

### setValidators

- setValidators(newValidator, updateValueAndValidity?): void

- #### Parameters

  - newValidator: Validator
  - updateValueAndValidity: boolean = true

  #### Returns void

  Overrides UntypedFormGroup.setValidators

  - Defined in packages/angular/forms/src/lib/form-group.ts:329

### setValue

- setValue(valueOrObservable, options?): Subscription

- #### Parameters

  - valueOrObservable: Observable<T>
  - `Optional` options: ControlEventOptions

  #### Returns Subscription

  Overrides UntypedFormGroup.setValue

  - Defined in packages/angular/forms/src/lib/form-group.ts:205
- setValue(valueOrObservable, options?): void

- #### Parameters

  - valueOrObservable: T
  - `Optional` options: ControlEventOptions

  #### Returns void

  Overrides UntypedFormGroup.setValue

  - Defined in packages/angular/forms/src/lib/form-group.ts:209

### updateValueAndValidity

- updateValueAndValidity(opts?): void

- Recalculates the value and validation status of the control.

  By default, it also updates the value and validity of its ancestors.

  #### Parameters

  - `Optional` opts: {
    emitEvent?: boolean;
    onlySelf?: boolean;
    }

    Configuration options determine how the control propagates changes and emits events after updates and validity checks are applied.

    - `onlySelf`: When true, only update this control. When false or not supplied, update all direct ancestors. Default is false.
    - `emitEvent`: When true or not supplied (the default), the `statusChanges`, `valueChanges` and `events` observables emit events with the latest status and value when the control is updated. When false, no events are emitted.

    - ##### `Optional` emitEvent?: boolean

    - ##### `Optional` onlySelf?: boolean

  #### Returns void

  Inherited from UntypedFormGroup.updateValueAndValidity

  - Defined in node_modules/@angular/forms/index.d.ts:560

### validateOn

- validateOn(observableValidation): Subscription

- #### Parameters

  - observableValidation: Observable<object>

  #### Returns Subscription

  - Defined in packages/angular/forms/src/lib/form-group.ts:349