argos/dmp-frontend/src/app/form/fields/dynamic-form-field.componen...

52 lines
1.5 KiB
TypeScript

import { DataModel } from '../../entities/DataModel';
import { Component, Input } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { FieldBase } from './field-base';
@Component({
selector: 'df-field',
templateUrl: './dynamic-form-field.component.html'
})
export class DynamicFormFieldComponent {
@Input() dataModel: DataModel;
@Input() field: FieldBase<any>;
@Input() form: FormGroup;
get isValid() {
return true; //return this.form.controls[this.field.key].valid;
}
ruleVisibleMethod(field, rule, dataModel){ //visibility rule -- checks if target field is visible
dataModel.fields.forEach(fld => {
if (fld.label == rule._target && fld.visible == true)
field.visible = true;
});
if(field.visible == true)
return true;
}
FieldValueRuleMethod(field, rule, dataModel){ //fieldValue rule -- checks the value of target
if (rule._ruleStyle == "range"){
dataModel.fields.forEach(fld => {
if (fld.key == rule._target && rule._from< fld.value <rule._to){
console.log("visible"+ fld.value)
field.visible = true;
}
});
}
return false;
}
toggleVisibility(e, field){
console.log(this.dataModel.groups.find(x => x.order === field.group));
console.log(this.dataModel);
}
}