import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core'; import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms'; import { element } from 'protractor'; @Component({ selector: 'bcac-common-form', templateUrl: './common-form.component.html', styleUrls: ['./common-form.component.scss'], host: { '[class.bcac-form-sm]': `formSize === 'small'`, } }) export class CommonFormComponent implements OnInit { constructor( private fb: FormBuilder ) { } ngOnInit() { } @Output() bcacFormEmit = new EventEmitter(); validateForm: FormGroup = this.fb.group({}); formSize = "small"; @Input() set bcacSize(value: string) { this.formSize = value; } fieldList: any[] =[] @Input() set bcacFields(fields) { this.fieldList = fields; this.fieldList.forEach(element=> { let formControl: FormControl = new FormControl(); if (element.required) { formControl.setValidators(Validators.required); } this.validateForm.addControl(element.value, formControl); }); } submit() { console.log("submit"); this.fieldList.forEach(element=> { if (element.type === "tree") { this.validateForm.get(element.value).setValue(element.nodes); } }); this.bcacFormEmit.emit(this.validateForm); } resetForm() { this.validateForm.reset(); } }