@syncfusion/ej2-querybuilder 20.4.38 → 20.4.40

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.
@@ -153,7 +153,10 @@ let QueryBuilder = class QueryBuilder extends Component {
153
153
  let bodyElem = this.element.querySelector('.e-group-body');
154
154
  const inputElement = this.element.querySelectorAll('input.e-control');
155
155
  for (let i = 0, len = inputElement.length; i < len; i++) {
156
- if (inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {
156
+ if (inputElement[i].className.indexOf('e-tooltip') > -1) {
157
+ getComponent(inputElement[i], 'tooltip').destroy();
158
+ }
159
+ else if (inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {
157
160
  getComponent(inputElement[i].parentElement, 'tooltip').destroy();
158
161
  }
159
162
  }
@@ -752,23 +755,25 @@ let QueryBuilder = class QueryBuilder extends Component {
752
755
  let tempElem;
753
756
  let rule;
754
757
  const ruleElemCln = this.element.querySelectorAll('.e-rule-container');
755
- let validateRule;
756
758
  for (i = 0, len = ruleElemCln.length; i < len; i++) {
759
+ let validateRule;
757
760
  groupElem = closest(ruleElemCln[i], '.e-group-container');
758
761
  rule = this.getParentGroup(groupElem);
759
762
  index = 0;
760
763
  indexElem = tempElem = ruleElemCln[i];
761
764
  if (this.fieldMode === 'DropdownTree') {
762
- dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdowntree');
763
- if (dropDownTreeObj.value && dropDownTreeObj.value.length) {
765
+ dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdowntree'), 'dropdowntree');
766
+ if (dropDownTreeObj && dropDownTreeObj.value && dropDownTreeObj.value.length) {
764
767
  this.selectedColumn = this.getColumn(dropDownTreeObj.value[0]);
765
768
  validateRule = this.selectedColumn.validation;
766
769
  }
767
770
  }
768
771
  else {
769
- dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
770
- this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
771
- validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
772
+ dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdownlist'), 'dropdownlist');
773
+ if (dropDownObj && dropDownObj.value) {
774
+ this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
775
+ validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
776
+ }
772
777
  }
773
778
  fieldElem = tempElem.querySelector('.e-rule-field input.e-control');
774
779
  if (validateRule && validateRule.isRequired) {
@@ -811,8 +816,8 @@ let QueryBuilder = class QueryBuilder extends Component {
811
816
  else if ((dropDownObj && dropDownObj.element && isNullOrUndefined(dropDownObj.index)) ||
812
817
  (dropDownTreeObj && dropDownTreeObj.element && (isNullOrUndefined(dropDownTreeObj.value) ||
813
818
  dropDownTreeObj.value.length < 1))) {
814
- if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
815
- this.renderToolTip(fieldElem.parentElement);
819
+ if (fieldElem.className.indexOf('e-tooltip') < 0) {
820
+ this.renderToolTip(fieldElem);
816
821
  }
817
822
  isValid = false;
818
823
  }
@@ -1471,6 +1476,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1471
1476
  }
1472
1477
  }
1473
1478
  createSubFields(filterElem, rule, tempRule, ddlArgs) {
1479
+ let subFieldValue = false;
1474
1480
  const fieldElem = closest(filterElem, '.e-rule-field');
1475
1481
  const tempElem = this.createElement('div', { attrs: { class: 'e-rule-sub-filter', id: 'subfilter' + this.subFilterCounter } });
1476
1482
  fieldElem.insertBefore(tempElem, fieldElem.querySelector('.e-rule-operator'));
@@ -1500,6 +1506,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1500
1506
  if (rule.field === subField[i].field || rule.field.indexOf(subField[i].field) > -1) {
1501
1507
  dropDownList.value = subField[i].field;
1502
1508
  this.selectedColumn = subField[i];
1509
+ subFieldValue = true;
1503
1510
  break;
1504
1511
  }
1505
1512
  }
@@ -1508,7 +1515,10 @@ let QueryBuilder = class QueryBuilder extends Component {
1508
1515
  this.subFieldElem = subFieldElem;
1509
1516
  // eslint-disable-next-line
1510
1517
  ddlArgs.itemData = ddlArgs.itemData;
1511
- if (!this.isImportRules) {
1518
+ if (!this.isImportRules || (!subFieldValue && this.selectedColumn.columns)) {
1519
+ if (!subFieldValue && this.isImportRules) {
1520
+ dropDownList.value = null;
1521
+ }
1512
1522
  this.selectedColumn = this.selectedColumn.columns[0];
1513
1523
  }
1514
1524
  if (!this.selectedColumn.columns) {
@@ -2291,7 +2301,7 @@ let QueryBuilder = class QueryBuilder extends Component {
2291
2301
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2292
2302
  prevItemData = this.getColumn(prevItemData.value);
2293
2303
  }
2294
- if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
2304
+ if (column && column.template && prevItemData && Object.keys(prevItemData).length < 4) {
2295
2305
  prevItemData.template = column.template;
2296
2306
  }
2297
2307
  return prevItemData;
@@ -2347,7 +2357,9 @@ let QueryBuilder = class QueryBuilder extends Component {
2347
2357
  this.validateValue(rule, closest(target, '.e-rule-container'));
2348
2358
  this.destroyControls(target);
2349
2359
  }
2350
- itemData.template = column.template;
2360
+ if (column) {
2361
+ itemData.template = column.template;
2362
+ }
2351
2363
  if (itemData.template) {
2352
2364
  addClass([target.nextElementSibling], 'e-template-value');
2353
2365
  itemData.template = column.template;
@@ -2595,8 +2607,8 @@ let QueryBuilder = class QueryBuilder extends Component {
2595
2607
  if (!this.isImportRules) {
2596
2608
  this.trigger('change', eventsArgs);
2597
2609
  }
2598
- if (this.allowValidation && rule.rules[index].field && target.parentElement.className.indexOf('e-tooltip') > -1) {
2599
- getComponent(target.parentElement, 'tooltip').destroy();
2610
+ if (this.allowValidation && rule.rules[index].field && target.className.indexOf('e-tooltip') > -1) {
2611
+ getComponent(target, 'tooltip').destroy();
2600
2612
  }
2601
2613
  this.filterRules(beforeRules, this.getValidRules(this.rule), 'field');
2602
2614
  }