2019-09-05 03:47:09 +00:00
|
|
|
import { Injectable } from '@angular/core';
|
|
|
|
import { FormArray, FormBuilder, FormGroup } from '@angular/forms';
|
|
|
|
import { Contact } from '@nested-forms/contact';
|
|
|
|
|
|
|
|
@Injectable({
|
|
|
|
providedIn: 'root',
|
|
|
|
})
|
|
|
|
export class ContactFormService {
|
|
|
|
constructor(private fb: FormBuilder) {}
|
|
|
|
|
|
|
|
public createForm(model: Contact): FormGroup {
|
|
|
|
const name = model.name;
|
|
|
|
|
|
|
|
const addresses: FormArray = this.fb.array([]);
|
|
|
|
|
|
|
|
const group = this.fb.group({
|
2019-09-08 01:33:49 +00:00
|
|
|
name: this.fb.group({
|
2019-09-05 03:47:09 +00:00
|
|
|
firstName: [name ? name.firstName : ''],
|
|
|
|
lastName: [name ? name.lastName : ''],
|
|
|
|
middleName: [name ? name.middleName : ''],
|
|
|
|
prefix: [name ? name.prefix : ''],
|
|
|
|
suffix: [name ? name.suffix : ''],
|
|
|
|
}),
|
|
|
|
addresses: addresses,
|
|
|
|
});
|
|
|
|
|
|
|
|
if (model.addresses) {
|
|
|
|
model.addresses.forEach(addr => {
|
|
|
|
addresses.push(
|
|
|
|
this.fb.group({
|
2019-09-08 22:49:36 +00:00
|
|
|
line1: [addr ? addr.line1 : ''],
|
|
|
|
line2: [addr ? addr.line2 : ''],
|
2019-09-05 03:47:09 +00:00
|
|
|
city: [addr ? addr.city : ''],
|
|
|
|
state: [addr ? addr.state : ''],
|
|
|
|
postalCode: [addr ? addr.postalCode : ''],
|
|
|
|
}),
|
|
|
|
);
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
return group;
|
|
|
|
}
|
|
|
|
}
|