@syncfusion/ej2-querybuilder 29.1.33 → 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.
@@ -220,7 +220,10 @@ let QueryBuilder = class QueryBuilder extends Component {
220
220
  return modules;
221
221
  }
222
222
  GetRootColumnName(field) {
223
- return this.separator ? field.split(this.separator)[0] : field;
223
+ if (!isNullOrUndefined(field)) {
224
+ return this.separator ? field.split(this.separator)[0] : field;
225
+ }
226
+ return '';
224
227
  }
225
228
  initialize() {
226
229
  if (this.dataColl.length) {
@@ -1076,8 +1079,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1076
1079
  this.disableRuleCondition(target, rules, isNewRuleAdded);
1077
1080
  }
1078
1081
  changeRuleTemplate(column, element) {
1079
- const operVal = this.selectedColumn.operators;
1080
- if (column.ruleTemplate) {
1082
+ if (column && column.ruleTemplate) {
1081
1083
  return;
1082
1084
  }
1083
1085
  else {
@@ -1088,9 +1090,14 @@ let QueryBuilder = class QueryBuilder extends Component {
1088
1090
  this.clearQBTemplate([parentId]);
1089
1091
  }
1090
1092
  if (column) {
1093
+ const operVal = this.selectedColumn.operators;
1091
1094
  const rule = { field: column.field, label: column.label, operator: operVal[0].value, value: '' };
1092
1095
  this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);
1093
1096
  }
1097
+ else {
1098
+ const rule = { field: '', label: '', operator: '', value: '' };
1099
+ this.addRuleElement(parentGroup, rule, column, 'change', parentId, true);
1100
+ }
1094
1101
  }
1095
1102
  }
1096
1103
  renderToolTip(element) {
@@ -1883,11 +1890,20 @@ let QueryBuilder = class QueryBuilder extends Component {
1883
1890
  let prevOper;
1884
1891
  switch (type) {
1885
1892
  case 'field':
1886
- rule.field = value;
1887
- rule.label = this.selectedColumn.label;
1888
- rule.type = this.selectedColumn.type;
1889
- rule.value = '';
1890
- 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
+ }
1891
1907
  break;
1892
1908
  case 'operator':
1893
1909
  prevOper = rule.operator;
@@ -3367,8 +3383,11 @@ let QueryBuilder = class QueryBuilder extends Component {
3367
3383
  }
3368
3384
  rule.value[i] = textboxValue;
3369
3385
  }
3370
- else {
3371
- 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)) : [];
3372
3391
  }
3373
3392
  break;
3374
3393
  case 'dropdownlist':