@syncfusion/ej2-querybuilder 29.1.39 → 29.1.41

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1079,8 +1079,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1079
1079
  this.disableRuleCondition(target, rules, isNewRuleAdded);
1080
1080
  }
1081
1081
  changeRuleTemplate(column, element) {
1082
- const operVal = this.selectedColumn.operators;
1083
- if (column.ruleTemplate) {
1082
+ if (column && column.ruleTemplate) {
1084
1083
  return;
1085
1084
  }
1086
1085
  else {
@@ -1091,9 +1090,14 @@ let QueryBuilder = class QueryBuilder extends Component {
1091
1090
  this.clearQBTemplate([parentId]);
1092
1091
  }
1093
1092
  if (column) {
1093
+ const operVal = this.selectedColumn.operators;
1094
1094
  const rule = { field: column.field, label: column.label, operator: operVal[0].value, value: '' };
1095
1095
  this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);
1096
1096
  }
1097
+ else {
1098
+ const rule = { field: '', label: '', operator: '', value: '' };
1099
+ this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);
1100
+ }
1097
1101
  }
1098
1102
  }
1099
1103
  renderToolTip(element) {
@@ -1886,11 +1890,20 @@ let QueryBuilder = class QueryBuilder extends Component {
1886
1890
  let prevOper;
1887
1891
  switch (type) {
1888
1892
  case 'field':
1889
- rule.field = value;
1890
- rule.label = this.selectedColumn.label;
1891
- rule.type = this.selectedColumn.type;
1892
- rule.value = '';
1893
- rule.operator = operVal[0].value;
1893
+ if (isNullOrUndefined(value)) {
1894
+ rule.field = '';
1895
+ rule.label = '';
1896
+ rule.type = '';
1897
+ rule.value = '';
1898
+ rule.operator = '';
1899
+ }
1900
+ else {
1901
+ rule.field = value;
1902
+ rule.label = this.selectedColumn.label;
1903
+ rule.type = this.selectedColumn.type;
1904
+ rule.value = '';
1905
+ rule.operator = operVal[0].value;
1906
+ }
1894
1907
  break;
1895
1908
  case 'operator':
1896
1909
  prevOper = rule.operator;
@@ -3370,8 +3383,11 @@ let QueryBuilder = class QueryBuilder extends Component {
3370
3383
  }
3371
3384
  rule.value[i] = textboxValue;
3372
3385
  }
3373
- else {
3374
- rule.value = textboxValue;
3386
+ else if (['in', 'notin'].some((op) => rule.operator.indexOf(op) !== -1)
3387
+ && rule.operator.indexOf('contains') === -1) {
3388
+ rule.value = textboxValue ?
3389
+ (rule.type === 'string' ? textboxValue.split(',').map((val) => val.trim()) :
3390
+ textboxValue.split(',').map(Number)) : [];
3375
3391
  }
3376
3392
  break;
3377
3393
  case 'dropdownlist':