import { Injectable } from '@angular/core'; import { FormGroup, Validators } from '@angular/forms'; import { AddressFormGroup } from '@core/components/address-block/address-block.component'; import { Address, TypeSafeFormBuilder, TypeSafeFormGroup } from '@yourcause/common'; @Injectable({ providedIn: 'root' }) export class FormBuilderFactoryService { constructor ( private formBuilder: TypeSafeFormBuilder ) { } createAddressGroup (address: Address): TypeSafeFormGroup { return this.formBuilder.group({ name: address.name, address1: [address.address1, Validators.required], address2: address.address2, city: [address.city, Validators.required], stateProvRegCode: [address.stateProvRegCode, Validators.required], countryCode: [address.countryCode || 'US', Validators.required], postalCode: [address.postalCode, Validators.required] }); } markAsRequired ( formGroup: FormGroup, controlName: string ) { if (formGroup) { const control = formGroup.get(controlName); if (control) { control.markAsDirty(); control.setValue(control.value); } } } }