65 lines
2.0 KiB
TypeScript
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);
|
|
|
|
|
|
}
|
|
} |