@syncfusion/ej2-querybuilder 27.1.48 → 27.1.50

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.
@@ -159,6 +159,7 @@ let QueryBuilder = class QueryBuilder extends Component {
159
159
  this.cloneGrpBtnClick = false;
160
160
  this.isMiddleGroup = false;
161
161
  this.cloneRuleBtnClick = false;
162
+ this.isValueEmpty = false;
162
163
  MultiSelect.Inject(CheckBoxSelection);
163
164
  }
164
165
  getPersistData() {
@@ -948,13 +949,14 @@ let QueryBuilder = class QueryBuilder extends Component {
948
949
  .filter((filteredChild) => filteredChild !== null);
949
950
  this.changeDataSource(matchedDataSource);
950
951
  setTimeout(() => {
951
- if (!isNullOrUndefined(proxy.ddTree)) {
952
+ if (!isNullOrUndefined(proxy.ddTree) && !isNullOrUndefined(proxy.ddTree.treeObj)) {
952
953
  proxy.ddTree.treeObj.expandAll();
953
954
  }
954
955
  }, 100);
955
956
  }
956
957
  }
957
958
  changeDataSource(data) {
959
+ this.updateDropdowntreeDS(data);
958
960
  this.ddTree.treeObj.fields = {
959
961
  dataSource: data,
960
962
  value: 'field',
@@ -988,7 +990,7 @@ let QueryBuilder = class QueryBuilder extends Component {
988
990
  }
989
991
  dropdownTreeClose() {
990
992
  if (this.ddTree) {
991
- this.changeDataSource(this.columns);
993
+ this.changeDataSource(extend([], this.columns, [], true));
992
994
  }
993
995
  this.ddTree = null;
994
996
  }
@@ -2401,11 +2403,13 @@ let QueryBuilder = class QueryBuilder extends Component {
2401
2403
  }
2402
2404
  const height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2403
2405
  let operator;
2404
- operatorList.forEach((obj) => {
2405
- if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2406
- operator = obj.value;
2407
- }
2408
- });
2406
+ if (rule.operator) {
2407
+ operatorList.forEach((obj) => {
2408
+ if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2409
+ operator = obj.value;
2410
+ }
2411
+ });
2412
+ }
2409
2413
  let value = operator ? operator : operatorList[0].value;
2410
2414
  let ddlIdx = 0;
2411
2415
  if (!this.autoSelectOperator) {
@@ -5064,6 +5068,7 @@ let QueryBuilder = class QueryBuilder extends Component {
5064
5068
  * @returns {RuleModel} - Valid rule or rules collection
5065
5069
  */
5066
5070
  getValidRules(currentRule) {
5071
+ this.isValueEmpty = true;
5067
5072
  if (!currentRule) {
5068
5073
  currentRule = this.getRules();
5069
5074
  }
@@ -5073,6 +5078,7 @@ let QueryBuilder = class QueryBuilder extends Component {
5073
5078
  const rule = !isNullOrUndefined(currentRule.isLocked) ?
5074
5079
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :
5075
5080
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);
5081
+ this.isValueEmpty = false;
5076
5082
  return rule;
5077
5083
  }
5078
5084
  getRuleCollection(rule, isValidRule) {
@@ -5102,8 +5108,9 @@ let QueryBuilder = class QueryBuilder extends Component {
5102
5108
  rule.value = null;
5103
5109
  }
5104
5110
  }
5105
- if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
5106
- rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
5111
+ if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&
5112
+ (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||
5113
+ (customObj && customObj.isQuestion)) {
5107
5114
  const condition = rule.condition;
5108
5115
  const lockedRule = rule.isLocked;
5109
5116
  rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };