File

src/lib/mixins/extract-control.mixin.ts

Index

Properties
Methods

Properties

Protected Optional control
Type : RxapFormControl
Protected Optional matFormField
Type : MatFormField | null
Protected ngControl
Type : NgControl | AbstractControlDirective | null

Methods

Protected extractControl
extractControl(ngControl: NgControl | AbstractControlDirective | null)
Parameters :
Name Type Optional Default value
ngControl NgControl | AbstractControlDirective | null No this.ngControl ?? this.matFormField?._control?.ngControl ?? null
Returns : RxapFormControl
import {
  AbstractControlDirective,
  NgControl,
} from '@angular/forms';
import { MatFormField } from '@angular/material/form-field';
import { RxapFormControl } from '@rxap/forms';

export class ExtractControlMixin {

  protected ngControl!: NgControl | AbstractControlDirective | null;

  protected matFormField?: MatFormField | null;

  protected control?: RxapFormControl;

  protected extractControl(ngControl: NgControl | AbstractControlDirective | null = this.ngControl ??
  this.matFormField?._control?.ngControl ??
  null): RxapFormControl {

    if (!ngControl) {
      throw new Error('The ngControl is not defined!');
    }

    this.ngControl = ngControl;

    const control = this.ngControl.control;

    if (!(control instanceof RxapFormControl)) {
      throw new Error('Control is not a RxapFormControl!');
    }

    return this.control = control;
  }

}

results matching ""

    No results matching ""