Skip to content
Snippets Groups Projects
form.service.ts 1.34 KiB
Newer Older
  • Learn to ignore specific revisions
  • import { Injectable } from '@angular/core';
    import { Observable, Subject } from 'rxjs';
    
      FormControlElement, FormControlValidators, ChildFormGroup, ValueChangeElement
    
    } from './form';
    
    
    @Injectable({
      providedIn: 'root'
    })
    export class FormService {
    
      private _elementValueChanged = new Subject<ValueChangeElement>();
      private _controlAdded = new Subject<FormControlElement>();
    
      private _groupAdded = new Subject<ChildFormGroup>();
    
    jojohoch's avatar
    jojohoch committed
      private _validatorsAdded = new Subject<FormControlValidators>();
    
      get elementValueChanged(): Observable<ValueChangeElement> {
    
    jojohoch's avatar
    jojohoch committed
        return this._elementValueChanged.asObservable();
    
      get controlAdded(): Observable<FormControlElement> {
    
    jojohoch's avatar
    jojohoch committed
        return this._controlAdded.asObservable();
    
      get groupAdded(): Observable<ChildFormGroup> {
    
        return this._groupAdded.asObservable();
      }
    
    
    jojohoch's avatar
    jojohoch committed
      get validatorsAdded(): Observable<FormControlValidators> {
        return this._validatorsAdded.asObservable();
    
      changeElementValue(elementValues: ValueChangeElement): void {
    
    jojohoch's avatar
    jojohoch committed
        this._elementValueChanged.next(elementValues);
    
      registerFormControl(control: FormControlElement): void {
        this._controlAdded.next(control);
    
      registerFormGroup(group: ChildFormGroup): void {
    
        this._groupAdded.next(group);
      }
    
    
      setValidators(validations: FormControlValidators): void {
    
        this._validatorsAdded.next(validations);