@syncfusion/ej2-querybuilder 19.4.38 → 19.4.48

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.
@@ -732,12 +732,19 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
732
732
  else {
733
733
  groupElem = closest(target, '.e-group-container');
734
734
  rules = this.getParentGroup(groupElem);
735
+ var custom = rule.custom;
735
736
  if (Object.keys(rule).length) {
736
737
  rules.rules.push({
737
738
  'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
738
739
  });
740
+ if (custom) {
741
+ rules.rules[rules.rules.length - 1].custom = custom;
742
+ }
739
743
  }
740
744
  else {
745
+ if (custom) {
746
+ newRule.custom = custom;
747
+ }
741
748
  rules.rules.push(newRule);
742
749
  }
743
750
  }
@@ -1358,6 +1365,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1358
1365
  ruleElem = ruleElem.previousElementSibling;
1359
1366
  index++;
1360
1367
  }
1368
+ rules.rules[index].value = '';
1361
1369
  this.changeRule(rules.rules[index], args);
1362
1370
  }
1363
1371
  }
@@ -1447,6 +1455,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1447
1455
  getComponent(tooltipElem[i], 'tooltip').destroy();
1448
1456
  }
1449
1457
  if (!args.cancel) {
1458
+ if (this.selectedColumn === null) {
1459
+ return;
1460
+ }
1450
1461
  tempRule.type = this.selectedColumn.type;
1451
1462
  if (ruleElem.querySelector('.e-template')) {
1452
1463
  rule.value = '';
@@ -1481,7 +1492,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1481
1492
  tempElem.appendChild(subFieldElem);
1482
1493
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
1483
1494
  var subFieldData = Object.keys(this.selectedColumn.columns[0]);
1484
- var dropDownList = new DropDownList({
1495
+ var ddlField;
1496
+ ddlField = {
1485
1497
  dataSource: this.selectedColumn.columns,
1486
1498
  fields: this.fields,
1487
1499
  placeholder: this.l10n.getConstant('SelectField'),
@@ -1489,7 +1501,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1489
1501
  change: this.changeField.bind(this),
1490
1502
  index: 0,
1491
1503
  open: this.popupOpen.bind(this, false)
1492
- });
1504
+ };
1505
+ if (this.fieldModel) {
1506
+ ddlField = __assign({}, ddlField, this.fieldModel);
1507
+ }
1508
+ var dropDownList = new DropDownList(ddlField);
1493
1509
  dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);
1494
1510
  if (this.isImportRules) {
1495
1511
  var subField = this.selectedColumn.columns;
@@ -1887,8 +1903,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1887
1903
  };
1888
1904
  QueryBuilder.prototype.closePopup = function (i, args) {
1889
1905
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
1890
- var value = getComponent(element, 'multiselect').value;
1891
- this.updateRules(element, value, i);
1906
+ if (element) {
1907
+ var value = getComponent(element, 'multiselect').value;
1908
+ this.updateRules(element, value, i);
1909
+ }
1892
1910
  };
1893
1911
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
1894
1912
  var container = closest(target, '.e-rule-container');
@@ -3441,7 +3459,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3441
3459
  }
3442
3460
  }
3443
3461
  var isTemplateRendered = clnruleElem.querySelector('.e-template-value');
3444
- detach(clnruleElem);
3462
+ try {
3463
+ detach(clnruleElem);
3464
+ }
3465
+ catch (err) {
3466
+ }
3445
3467
  if (column && column.ruleTemplate) {
3446
3468
  this.clearQBTemplate([clnruleElem.id]);
3447
3469
  }
@@ -3561,10 +3583,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3561
3583
  }
3562
3584
  }
3563
3585
  if ((this.isRefreshed && this.enablePersistence) || (this.rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
3564
- rule.value !== undefined))) {
3586
+ rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
3587
+ var condition = rule.condition;
3565
3588
  rule = {
3566
3589
  'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value
3567
3590
  };
3591
+ if (condition) {
3592
+ rule.condition = condition;
3593
+ }
3568
3594
  if (customObj) {
3569
3595
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3570
3596
  rule.custom = customObj;
@@ -3873,6 +3899,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3873
3899
  break;
3874
3900
  }
3875
3901
  }
3902
+ else if (field.indexOf(this.separator) > -1) {
3903
+ if (columns[i].field === field.split(this.separator)[0]) {
3904
+ column = columns[i];
3905
+ break;
3906
+ }
3907
+ }
3876
3908
  }
3877
3909
  return column;
3878
3910
  };
@@ -3962,7 +3994,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3962
3994
  }
3963
3995
  if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {
3964
3996
  for (var j = 0, jLen = value.length; j < jLen; j++) {
3965
- if (value[j] !== '') {
3997
+ if (value[j] !== '' || ((operator === 'in' || operator === 'notin') && column.type === 'string')) {
3966
3998
  if (j === 0) {
3967
3999
  var gte = 'greaterthanorequal';
3968
4000
  switch (operator) {
@@ -4104,7 +4136,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4104
4136
  if (!isNullOrUndefined(ruleColl)) {
4105
4137
  for (var i = 0, len = ruleColl.length; i < len; i++) {
4106
4138
  var keys = Object.keys(ruleColl[i]);
4107
- if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1) {
4139
+ if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1 && (ruleColl[i].rules.length !== 0)) {
4108
4140
  parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);
4109
4141
  parentElem = this.importRules(ruleColl[i], parentElem, true);
4110
4142
  }
@@ -4341,8 +4373,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4341
4373
  }
4342
4374
  queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
4343
4375
  }
4376
+ if (rule.condition && rule.condition != '') {
4377
+ condition = rule.condition;
4378
+ }
4344
4379
  }
4345
4380
  if (j !== jLen - 1) {
4381
+ if (condition === '') {
4382
+ condition = rules.rules[j].condition;
4383
+ }
4346
4384
  queryStr += ' ' + condition.toUpperCase() + ' ';
4347
4385
  }
4348
4386
  }