@syncfusion/ej2-querybuilder 27.1.48 → 27.1.52

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
  }
@@ -2025,7 +2027,9 @@ let QueryBuilder = class QueryBuilder extends Component {
2025
2027
  if (isNaN(value) && elem.value.indexOf(decimalSeparator) !== -1) {
2026
2028
  value = this.intl.getNumberParser({ format: 'n' })(elem.value);
2027
2029
  }
2028
- numericTextBoxObj.value = value;
2030
+ if (!isNaN(value)) {
2031
+ numericTextBoxObj.value = value;
2032
+ }
2029
2033
  this.isNumInput = true;
2030
2034
  }
2031
2035
  }
@@ -2401,11 +2405,13 @@ let QueryBuilder = class QueryBuilder extends Component {
2401
2405
  }
2402
2406
  const height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2403
2407
  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
- });
2408
+ if (rule.operator) {
2409
+ operatorList.forEach((obj) => {
2410
+ if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2411
+ operator = obj.value;
2412
+ }
2413
+ });
2414
+ }
2409
2415
  let value = operator ? operator : operatorList[0].value;
2410
2416
  let ddlIdx = 0;
2411
2417
  if (!this.autoSelectOperator) {
@@ -3181,6 +3187,10 @@ let QueryBuilder = class QueryBuilder extends Component {
3181
3187
  }
3182
3188
  target.nextElementSibling.innerHTML = '';
3183
3189
  }
3190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3191
+ if (this.isAngular && !isNullOrUndefined(prevItemData.key) && this.fieldMode === 'DropdownTree') {
3192
+ delete prevItemData.template;
3193
+ }
3184
3194
  }
3185
3195
  if (isRender) {
3186
3196
  this.validateValue(rule, closest(target, '.e-rule-container'));
@@ -3220,6 +3230,10 @@ let QueryBuilder = class QueryBuilder extends Component {
3220
3230
  }
3221
3231
  }
3222
3232
  this.renderControls(target, itemData, rule, tempRule, isTempRendered);
3233
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3234
+ if (this.isAngular && !isNullOrUndefined(itemData.key) && itemData.template && this.fieldMode === 'DropdownTree') {
3235
+ delete itemData.template;
3236
+ }
3223
3237
  }
3224
3238
  }
3225
3239
  else {
@@ -5064,6 +5078,7 @@ let QueryBuilder = class QueryBuilder extends Component {
5064
5078
  * @returns {RuleModel} - Valid rule or rules collection
5065
5079
  */
5066
5080
  getValidRules(currentRule) {
5081
+ this.isValueEmpty = true;
5067
5082
  if (!currentRule) {
5068
5083
  currentRule = this.getRules();
5069
5084
  }
@@ -5073,6 +5088,7 @@ let QueryBuilder = class QueryBuilder extends Component {
5073
5088
  const rule = !isNullOrUndefined(currentRule.isLocked) ?
5074
5089
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :
5075
5090
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);
5091
+ this.isValueEmpty = false;
5076
5092
  return rule;
5077
5093
  }
5078
5094
  getRuleCollection(rule, isValidRule) {
@@ -5102,8 +5118,9 @@ let QueryBuilder = class QueryBuilder extends Component {
5102
5118
  rule.value = null;
5103
5119
  }
5104
5120
  }
5105
- if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
5106
- rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
5121
+ if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&
5122
+ (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||
5123
+ (customObj && customObj.isQuestion)) {
5107
5124
  const condition = rule.condition;
5108
5125
  const lockedRule = rule.isLocked;
5109
5126
  rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };