{"version":3,"file":"ngx-typesafe-forms.mjs","sources":["../../../projects/ngx-typesafe-forms/src/lib/internals/map-to-opposite.operator.ts","../../../projects/ngx-typesafe-forms/src/lib/internals/toggle-control.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-pristine.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-dirty.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-enabled.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-disabled.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-errors.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-valid.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-invalid.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-status.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-value.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/streams/control-raw-value.stream.ts","../../../projects/ngx-typesafe-forms/src/lib/default-control-value-accessor.ts","../../../projects/ngx-typesafe-forms/src/lib/form-array.ts","../../../projects/ngx-typesafe-forms/src/lib/form-control.ts","../../../projects/ngx-typesafe-forms/src/lib/form-group.ts","../../../projects/ngx-typesafe-forms/src/ngx-typesafe-forms.ts"],"sourcesContent":["import { OperatorFunction } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function mapToOpposite(): OperatorFunction<boolean, boolean> {\n  return (source$) => {\n    return source$.pipe(\n      map((b) => !b)\n    );\n  };\n}\n","import { AbstractControl } from '@angular/forms';\n\nexport function setEnabled(control: AbstractControl, enabled: boolean = true): void {\n  if (enabled) {\n    control.enable();\n  } else {\n    control.disable();\n  }\n}\n\nexport function setDisabled(control: AbstractControl, disabled: boolean = true): void {\n  setEnabled(control, !disabled);\n}\n","import { AbstractControl } from '@angular/forms';\nimport { defer, merge, of, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport function formControlPristine$(formControl: AbstractControl): Observable<boolean> {\n  return merge(\n    defer(() => of(formControl.pristine)),\n    formControl.valueChanges.pipe(\n      map(() => formControl.pristine),\n      distinctUntilChanged()\n    )\n  );\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { mapToOpposite } from '../internals';\n\nimport { formControlPristine$ } from './control-pristine.stream';\n\nexport function abstractControlDirty$(formControl: AbstractControl): Observable<boolean> {\n  return formControlPristine$(formControl).pipe(mapToOpposite());\n}\n","import { AbstractControl } from '@angular/forms';\nimport { defer, merge, of, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport function formControlEnabled$(formControl: AbstractControl): Observable<boolean> {\n  return merge(\n    defer(() => of(formControl.enabled)),\n    formControl.statusChanges.pipe(\n      map(() => formControl.enabled),\n      distinctUntilChanged()\n    )\n  );\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { mapToOpposite } from '../internals';\n\nimport { formControlEnabled$ } from './control-enabled.stream';\n\nexport function abstractControlDisabled$(formControl: AbstractControl): Observable<boolean> {\n  return formControlEnabled$(formControl).pipe(mapToOpposite());\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\nimport { defer, merge, of, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport function formControlErrors$(formControl: AbstractControl): Observable<ValidationErrors | null> {\n  return merge(\n    defer(() => of(formControl.errors)),\n    formControl.valueChanges.pipe(\n      map(() => formControl.errors),\n      distinctUntilChanged()\n    )\n  );\n}\n","import { AbstractControl } from '@angular/forms';\nimport { defer, merge, of, Observable } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport function formControlValid$(formControl: AbstractControl): Observable<boolean> {\n  return merge(\n    defer(() => of(formControl.valid)),\n    formControl.statusChanges.pipe(\n      map(() => formControl.valid),\n      distinctUntilChanged()\n    )\n  );\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Observable } from 'rxjs';\n\nimport { mapToOpposite } from '../internals';\n\nimport { formControlValid$ } from './control-valid.stream';\n\nexport function formControlInvalid$(formControl: AbstractControl): Observable<boolean> {\n  return formControlValid$(formControl).pipe(mapToOpposite());\n}\n","import { AbstractControl, FormControlStatus } from '@angular/forms';\nimport { defer, merge, of, Observable } from 'rxjs';\nimport { map } from 'rxjs/operators';\n\nexport function formControlStatus$(formControl: AbstractControl): Observable<FormControlStatus> {\n  return merge(\n    defer(() => of(formControl.status)),\n    formControl.statusChanges.pipe(\n      map(() => formControl.status)\n    )\n  );\n}\n","import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { Observable, defer, merge, of } from 'rxjs';\n\nexport type ControlsFor<T> = {\n  [K in keyof T]: AbstractControl<unknown>;\n};\n\nexport function formControlValue$<TValue, CONTROL extends FormControl<TValue>>(\n  formControl: FormControl<TValue>\n): Observable<CONTROL['value']> {\n  return merge(\n    defer(() => of(formControl.value)),\n    formControl.valueChanges\n  );\n}\n\nexport function formGroupValue$<TValue extends ControlsFor<TValue>, GROUP extends FormGroup<TValue>>(\n  formGroup: FormGroup<TValue>\n): Observable<GROUP['value']> {\n  return merge(\n    defer(() => of(formGroup.value)),\n    formGroup.valueChanges\n  );\n}\n\nexport function formArrayValue$<TControl extends AbstractControl, ARRAY extends FormArray<TControl>>(\n  formArray: FormArray<TControl>\n): Observable<ARRAY['value']> {\n  return merge(\n    defer(() => of(formArray.value)),\n    formArray.valueChanges\n  );\n}\n","import { AbstractControl } from '@angular/forms';\nimport { Observable, defer, merge, of } from 'rxjs';\nimport { distinctUntilChanged, map } from 'rxjs/operators';\n\nexport function formControlRawValue$<TValue = any, TRawValue extends TValue = TValue>(\n  formControl: AbstractControl<TValue, TRawValue>\n): Observable<TRawValue> {\n  return merge(\n    defer(() => of(formControl.getRawValue())),\n    merge(formControl.statusChanges, formControl.valueChanges).pipe(\n      map(() => formControl.getRawValue()),\n      distinctUntilChanged()\n    )\n  );\n}\n","import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { ControlValueAccessor } from './control-value-accessor';\n\n/**\n * A default ControlValueAccessor implementation\n */\nexport abstract class DefaultControlValueAccessor<TValue> implements ControlValueAccessor<TValue> {\n  public abstract readonly control: AbstractControl;\n\n  public writeValue(value: TValue): void {\n    this.control.setValue(value, { emitEvent: false });\n  }\n\n  public registerOnChange(onChange: (value: TValue) => void): void {\n    this.control.valueChanges.subscribe(onChange);\n  }\n\n  public registerOnTouched(): void {}\n\n  public setDisabledState(disabled: boolean): void {\n    disabled ? this.control.disable({ emitEvent: false }) : this.control.enable({ emitEvent: false });\n  }\n\n  public validate(): ValidationErrors | null {\n    return this.control.invalid ? { invalid: true } : null;\n  }\n}\n","import {\n  AbstractControl,\n  FormArray as AngularFormArray, FormControlStatus,\n  ValidationErrors\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport {\n  abstractControlDirty$,\n  abstractControlDisabled$, formArrayValue$,\n  formControlEnabled$,\n  formControlErrors$,\n  formControlInvalid$,\n  formControlPristine$,\n  formControlRawValue$,\n  formControlStatus$,\n  formControlValid$,\n} from './streams';\nimport { RawValue, setDisabled, setEnabled, TypedOrUntyped, Value } from './internals';\nimport { AsyncValidatorFn, ValidatorFn } from './validation';\n\nexport type FormArrayValue<T extends AbstractControl> =\n  TypedOrUntyped<T, Value<T>[], any[]>;\n\nexport type FormArrayRawValue<T extends AbstractControl> =\n  TypedOrUntyped<T, RawValue<T>[], any[]>;\n\nexport class FormArray<TControl extends AbstractControl> extends AngularFormArray<TControl> {\n  public readonly value$: Observable<FormArrayValue<TControl>> = formArrayValue$(this);\n\n  public readonly rawValue$: Observable<FormArrayRawValue<TControl>> = formControlRawValue$(this);\n\n  public readonly errors$: Observable<ValidationErrors | null> = formControlErrors$(this);\n\n  public readonly enabled$: Observable<boolean> = formControlEnabled$(this);\n\n  public readonly pristine$: Observable<boolean> = formControlPristine$(this);\n\n  public readonly valid$: Observable<boolean> = formControlValid$(this);\n\n  public readonly status$: Observable<FormControlStatus> = formControlStatus$(this);\n\n  public readonly disabled$: Observable<boolean> = abstractControlDisabled$(this);\n\n  public readonly dirty$: Observable<boolean> = abstractControlDirty$(this);\n\n  public readonly invalid$: Observable<boolean> = formControlInvalid$(this);\n\n  public readonly validValue$: Observable<FormArrayValue<TControl>> = this.value$.pipe(filter(() => this.valid));\n\n  public setValidators(newValidator: ValidatorFn<FormArrayValue<TControl>> | ValidatorFn<FormArrayValue<TControl>>[] | null): void {\n    super.setValidators(newValidator);\n  }\n\n  public setAsyncValidators(\n    newValidator: AsyncValidatorFn<FormArrayValue<TControl>> | AsyncValidatorFn<FormArrayValue<TControl>>[] | null\n  ): void {\n    super.setAsyncValidators(newValidator);\n  }\n\n  public setEnabled(enabled: boolean = true): void {\n    setEnabled(this, enabled);\n  }\n\n  public setDisabled(disabled: boolean = true): void {\n    setDisabled(this, disabled);\n  }\n}\n","import {\n  FormControl as AngularFormControl,\n  FormControlState, FormControlStatus,\n  ValidationErrors\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport {\n  abstractControlDirty$,\n  abstractControlDisabled$,\n  formControlEnabled$,\n  formControlErrors$,\n  formControlInvalid$,\n  formControlPristine$,\n  formControlStatus$,\n  formControlValid$,\n  formControlValue$\n} from './streams';\nimport { setDisabled, setEnabled } from './internals';\nimport { AbstractControlOptions, AsyncValidatorFn, ValidatorFn } from './validation';\n\nexport interface FormControlOptions<T> extends AbstractControlOptions<T> {\n  nonNullable?: boolean;\n  initialValueIsDefault?: boolean;\n}\n\nexport interface FormControl<TValue = any> extends AngularFormControl<TValue> {\n  value$: Observable<TValue>;\n  errors$: Observable<ValidationErrors | null>;\n  enabled$: Observable<boolean>;\n  pristine$: Observable<boolean>;\n  valid$: Observable<boolean>;\n  status$: Observable<FormControlStatus>;\n  disabled$: Observable<boolean>;\n  dirty$: Observable<boolean>;\n  invalid$: Observable<boolean>;\n  validValue$: Observable<TValue>;\n\n  setValidators(newValidator: ValidatorFn<TValue> | ValidatorFn<TValue>[] | null): void;\n  setAsyncValidators(newValidator: AsyncValidatorFn<TValue> | AsyncValidatorFn<TValue>[] | null): void;\n  setEnabled(enabled: boolean): void;\n  setDisabled(disabled: boolean): void;\n}\n\ntype FormControlInterface<T = any> = FormControl<T>;\n\n// tslint:disable-next-line:class-name\nexport interface _FormControlCtor {\n  prototype: FormControl;\n\n  new(): FormControl;\n\n  new<T = any>(value: FormControlState<T> | T, opts: FormControlOptions<T> & { nonNullable: true }): FormControl<T>;\n\n  new<T = any>(\n    value: FormControlState<T | null> | T,\n    validatorOrOpts?: ValidatorFn<T | null> | ValidatorFn<T | null>[] | FormControlOptions<T | null> | null,\n    asyncValidator?: AsyncValidatorFn<T | null> | AsyncValidatorFn<T | null>[] | null\n  ): FormControl<T | null>;\n}\n\nexport const FormControl: _FormControlCtor =\n  // tslint:disable-next-line:no-shadowed-variable\n  (class FormControl<TValue> extends AngularFormControl implements FormControlInterface<TValue> {\n      public readonly value$: Observable<TValue> = formControlValue$(this);\n\n      public readonly errors$: Observable<ValidationErrors | null> = formControlErrors$(this);\n\n      public readonly enabled$: Observable<boolean> = formControlEnabled$(this);\n\n      public readonly pristine$: Observable<boolean> = formControlPristine$(this);\n\n      public readonly valid$: Observable<boolean> = formControlValid$(this);\n\n      public readonly status$: Observable<FormControlStatus> = formControlStatus$(this);\n\n      public readonly disabled$: Observable<boolean> = abstractControlDisabled$(this);\n\n      public readonly dirty$: Observable<boolean> = abstractControlDirty$(this);\n\n      public readonly invalid$: Observable<boolean> = formControlInvalid$(this);\n\n      public readonly validValue$: Observable<TValue> = this.value$.pipe(filter(() => this.valid));\n\n      public setValidators(newValidator: ValidatorFn<TValue> | ValidatorFn<TValue>[] | null): void {\n        super.setValidators(newValidator);\n      }\n\n      public setAsyncValidators(newValidator: AsyncValidatorFn<TValue> | AsyncValidatorFn<TValue>[] | null): void {\n        super.setAsyncValidators(newValidator);\n      }\n\n      public setEnabled(enabled: boolean = true): void {\n        setEnabled(this, enabled);\n      }\n\n      public setDisabled(disabled: boolean = true): void {\n        setDisabled(this, disabled);\n      }\n    }\n  );\n","import {\n  AbstractControl,\n  FormControlStatus,\n  FormGroup as AngularFormGroup,\n  ValidationErrors\n} from '@angular/forms';\nimport { Observable } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\nimport {\n  abstractControlDirty$,\n  abstractControlDisabled$,\n  formControlEnabled$,\n  formControlErrors$,\n  formControlInvalid$,\n  formControlPristine$, formControlRawValue$,\n  formControlStatus$,\n  formControlValid$,\n  formGroupValue$\n} from './streams';\nimport { RawValue, setDisabled, setEnabled, TypedOrUntyped, Value } from './internals';\nimport { AsyncValidatorFn, ValidatorFn } from './validation';\n\nexport type FormGroupRawValue<T extends { [K in keyof T]?: AbstractControl }> =\n  TypedOrUntyped<T, { [K in keyof T]: RawValue<T[K]> }, { [key: string]: any }>;\n\nexport type FormGroupValue<T extends { [K in keyof T]?: AbstractControl }> =\n  TypedOrUntyped<T, Partial<{ [K in keyof T]: Value<T[K]> }>, { [key: string]: any }>;\n\nexport class FormGroup<TControl extends { [K in keyof TControl]: AbstractControl } = any> extends AngularFormGroup<TControl> {\n\n  public readonly value$: Observable<FormGroupValue<TControl>> = formGroupValue$(this);\n\n  public readonly rawValue$: Observable<FormGroupRawValue<TControl>> = formControlRawValue$(this);\n\n  public readonly errors$: Observable<ValidationErrors | null> = formControlErrors$(this);\n\n  public readonly enabled$: Observable<boolean> = formControlEnabled$(this);\n\n  public readonly pristine$: Observable<boolean> = formControlPristine$(this);\n\n  public readonly valid$: Observable<boolean> = formControlValid$(this);\n\n  public readonly status$: Observable<FormControlStatus> = formControlStatus$(this);\n\n  public readonly disabled$: Observable<boolean> = abstractControlDisabled$(this);\n\n  public readonly dirty$: Observable<boolean> = abstractControlDirty$(this);\n\n  public readonly invalid$: Observable<boolean> = formControlInvalid$(this);\n\n  public readonly validValue$: Observable<FormGroupValue<TControl>> = this.value$.pipe(filter(() => this.valid));\n\n  public setValidators(newValidator: ValidatorFn<FormGroupValue<TControl>> | ValidatorFn<FormGroupValue<TControl>>[] | null): void {\n    super.setValidators(newValidator);\n  }\n\n  public setAsyncValidators(\n    newValidator: AsyncValidatorFn<FormGroupValue<TControl>> | AsyncValidatorFn<FormGroupValue<TControl>>[] | null\n  ): void {\n    super.setAsyncValidators(newValidator);\n  }\n\n  public setEnabled(enabled: boolean = true): void {\n    setEnabled(this, enabled);\n  }\n\n  public setDisabled(disabled: boolean = true): void {\n    setDisabled(this, disabled);\n  }\n}\n\nexport class FormRecord<TControl extends AbstractControl<Value<TControl>, RawValue<TControl>> = AbstractControl>\n  extends FormGroup<{ [key: string]: TControl }> {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["AngularFormArray","AngularFormControl","AngularFormGroup"],"mappings":"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"}