File

src/lib/validators/is-equal-to.ts

Implements

Validator

Metadata

Index

Methods
Inputs
Accessors

Inputs

rxapIsEqualTo
Type : any
Required :  true

Methods

Public registerOnValidatorChange
registerOnValidatorChange(fn: () => void)

Registers a callback function to call when the validator inputs change.

Parameters :
Name Type Optional Description
fn function No

The callback function

Returns : void
Public validate
validate(control: AbstractControl)
Parameters :
Name Type Optional
control AbstractControl No
Returns : ValidationErrors | null

Accessors

equalTo
setequalTo(value: any)
Parameters :
Name Type Optional
value any No
Returns : void
import {
  Directive,
  forwardRef,
  Input,
} from '@angular/core';
import {
  AbstractControl,
  NG_VALIDATORS,
  ValidationErrors,
  Validator,
} from '@angular/forms';
import { Required } from '@rxap/utilities';

@Directive({
  selector: '[rxapIsEqualTo]',
  providers: [
    {
      provide: NG_VALIDATORS,
      multi: true,
      useExisting: forwardRef(() => IsEqualToDirective),
    },
  ],
  standalone: true,
})
export class IsEqualToDirective implements Validator {

  @Input({
    required: true,
    alias: 'rxapIsEqualTo',
  })
  public set equalTo(value: any) {
    this._equalTo = value;
    if (this._onChange) {
      this._onChange();
    }
  }

  private _onChange!: () => void;


  private _equalTo!: any;

  public validate(control: AbstractControl): ValidationErrors | null {
    if (this._equalTo === null || this._equalTo === control.value) {
      return null;
    }
    return {
      isEqualTo: {
        value: this._equalTo,
        actualValue: control.value,
      },
    };
  }

  /**
   * @description
   * Registers a callback function to call when the validator inputs change.
   *
   * @param fn The callback function
   */
  public registerOnValidatorChange(fn: () => void): void {
    this._onChange = fn;
  }

}


results matching ""

    No results matching ""