| | |
| | | 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 getValueFormControl(controlSet: FormGroup, name: string) { |
| | | return controlSet.controls[name].value; |
| | | } |
| | | public static setValueToControl(controlSet: FormGroup, name: string, value: any) { |
| | | controlSet.controls[name].setValue(value); |
| | | controlSet.controls[name].updateValueAndValidity(); |
| | | } |
| | | 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]); |
| | | } |
| | | } |
| | | } |
| | | ); |
| | | } |
| | | public static toThousands(number: string): string { |
| | | let num = (number || 0).toString(), result = ''; |
| | | while (num.length > 3) { |
| | | result = ',' + num.slice(-3) + result; |
| | | num = num.slice(0, num.length - 3); |
| | | } |
| | | if (num) { result = num + result; } |
| | | return result; |
| | | } |
| | | } |