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

65 lines
2.0 KiB
TypeScript

import { DataModel } from '../../entities/DataModel';
import { Component, Input } from '@angular/core';
import { FormGroup } from '@angular/forms';
import { FieldBase } from './field-base';
import { GroupBase } from '../../form/dynamic-form-group/group-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){
// let group:GroupBase<any>;
// group = this.dataModel.groups.find(x => x.key === field.group);
// group.groupFields.forEach(element => {debugger;
// if (element.order == (field.order + 1)){
// element.rules.forEach(element => {
// if (element.target == field.id){
// console.log (element);
// }
// });
// }
// });
// console.log(this.dataModel);
}
}