| import { FormGroup, FormArray, AbstractControl } from '@angular/forms'; | 
| import { Injectable } from '@angular/core'; | 
|   | 
| @Injectable() | 
| export class ToolsService { | 
|       public static markAsDirty(controlSet:FormGroup|FormArray){ | 
|          const controls = controlSet.controls; | 
|          Object.values(controls).forEach( | 
|              (control:AbstractControl) => { | 
|                     if(control instanceof FormGroup || control instanceof FormArray){ | 
|                         ToolsService.markAsDirty(control); | 
|                     }else{ | 
|                           control.markAsDirty(); | 
|                     } | 
|              } | 
|          ) | 
|       } | 
|       public static removePrivate(obj:object){ | 
|             Object.keys(obj).forEach( | 
|                  (key:string) => { | 
|                         if(key.startsWith('_')){ | 
|                             delete obj[key]; | 
|                         }else{ | 
|                             if(obj[key] instanceof Object){ | 
|                                 ToolsService.removePrivate(obj[key]); | 
|                             } | 
|                         } | 
|                  } | 
|                 ); | 
|       } | 
| } |