import { CompareType } from '../enum/compare-type.enum'; import { ValueType } from '../enum/value-type.enum'; import { RelationType } from '../enum/relation-type.enum'; export class CheckboxGroupHandler{ convert(qc) { const cbgv = (qc.value); if(Object.keys(cbgv).length === 0 || Object.keys(cbgv.value).length === 0) return []; let CheckboxArr = []; if(qc.control.controltype == 'bool-check'){ return [{ 'FilterField' : qc.labelCode, 'Compare' : CompareType.Equal, 'Value' : cbgv.value[0], 'Relation' : RelationType.And, 'Expresstype': ValueType.Value }] } else if(cbgv.value.length === 1){ return [{ 'FilterField' : qc.labelCode, 'Compare' : CompareType.Equal, 'Value' : (cbgv.value[0]), 'Relation' : RelationType.And, 'Expresstype': ValueType.Value }] } cbgv.value.forEach(value => { CheckboxArr.push({ 'FilterField' : qc.labelCode, 'Compare' : CompareType.Equal, 'Value' : value, 'Relation' : RelationType.Or, 'Expresstype': ValueType.Value }) }); CheckboxArr[0]['Lbracket'] = '('; CheckboxArr[CheckboxArr.length - 1]['Rbracket'] = ')'; CheckboxArr[CheckboxArr.length -1]['Relation'] = RelationType.And; return CheckboxArr; } }