@syncfusion/ej2-querybuilder 23.2.7 → 24.1.43

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.
@@ -181,7 +181,7 @@ let QueryBuilder = class QueryBuilder extends Component {
181
181
  }
182
182
  bodyElem.appendChild(this.createElement('div', { attrs: { class: 'e-rule-list' } }));
183
183
  this.levelColl[this.element.id + '_group0'] = [0];
184
- this.rule = { condition: 'and', not: false, rules: [] };
184
+ this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);
185
185
  this.disableRuleCondition(bodyElem.parentElement);
186
186
  }
187
187
  getWrapper() {
@@ -822,7 +822,7 @@ let QueryBuilder = class QueryBuilder extends Component {
822
822
  if (rule.rules[index].value instanceof Array) {
823
823
  valArray = rule.rules[index].value;
824
824
  }
825
- if (excludeOprs.indexOf(rule.rules[index].operator) < 0 &&
825
+ if (excludeOprs.indexOf(rule.rules[index].operator) < -1 &&
826
826
  (isNullOrUndefined(rule.rules[index].value) &&
827
827
  rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
828
828
  (rule.rules[index].value instanceof Array && valArray.length < 1)) {
@@ -1274,12 +1274,20 @@ let QueryBuilder = class QueryBuilder extends Component {
1274
1274
  const groupID = groupElem && groupElem.id.replace(this.element.id + '_', '');
1275
1275
  const ruleID = ruleElem.id.replace(this.element.id + '_', '');
1276
1276
  const dateElement = args;
1277
+ let dropDownObj;
1277
1278
  if (dateElement.element && dateElement.element.className.indexOf('e-datepicker') > -1) {
1278
1279
  element = dateElement.element;
1280
+ dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdownlist');
1281
+ if (dropDownObj) {
1282
+ this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
1283
+ }
1284
+ dropDownObj = getComponent(closest(element, '.e-rule-container').querySelector('.e-filter-input'), 'dropdowntree');
1285
+ if (dropDownObj) {
1286
+ this.selectedColumn = this.getColumn(dropDownObj.value[0]);
1287
+ }
1279
1288
  }
1280
1289
  let value;
1281
1290
  let rbValue;
1282
- let dropDownObj;
1283
1291
  if (element.className.indexOf('e-radio') > -1) {
1284
1292
  // eslint-disable-next-line
1285
1293
  rbValue = parseInt(element.id.split('valuekey')[1], 0);
@@ -1564,7 +1572,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1564
1572
  this.GetRootColumnName(rule.field) === this.GetRootColumnName(this.previousColumn.field))) {
1565
1573
  const subField = this.selectedColumn.columns;
1566
1574
  for (let i = 0; i < subField.length; i++) {
1567
- if (rule.field === subField[i].field) {
1575
+ if (rule.field === subField[i].field || rule.field.indexOf(subField[i].field) > -1) {
1568
1576
  dropDownList.value = subField[i].field;
1569
1577
  this.selectedColumn = subField[i];
1570
1578
  subFieldValue = true;
@@ -2392,7 +2400,7 @@ let QueryBuilder = class QueryBuilder extends Component {
2392
2400
  }
2393
2401
  const operator = tempRule.operator.toString();
2394
2402
  let isTempRendered = false;
2395
- if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {
2403
+ if (!(operator.indexOf('null') > -1 || operator.indexOf('isempty') > -1 || operator.indexOf('isnotempty') > -1)) {
2396
2404
  const parentId = closest(target, '.e-rule-container').id;
2397
2405
  prevItemData = this.getPreviousItemData(prevItemData, column);
2398
2406
  if (prevItemData && prevItemData.template === undefined) {
@@ -2520,7 +2528,6 @@ let QueryBuilder = class QueryBuilder extends Component {
2520
2528
  const valElemColl = this.columnTemplateFn(args, this, ruleID, templateID);
2521
2529
  valElem = (valElemColl[0].nodeType === 3) ? valElemColl[1] : valElemColl[0];
2522
2530
  target.nextElementSibling.appendChild(valElem);
2523
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2524
2531
  }
2525
2532
  else if (this.isVue3) {
2526
2533
  valElem = this.columnTemplateFn(args, this, 'Template', templateID);
@@ -3101,7 +3108,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3101
3108
  this.groupElem.querySelector('.e-qb-toggle').remove();
3102
3109
  }
3103
3110
  }
3104
- this.rule = this.checkNotGroup(this.rule);
3111
+ this.setProperties({ rule: this.checkNotGroup(this.rule) }, true);
3105
3112
  this.initWrapper();
3106
3113
  }
3107
3114
  notGroupRtl() {
@@ -3222,7 +3229,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3222
3229
  if (this.rule.rules.length == 0 && !isNullOrUndefined(this.rule)) {
3223
3230
  this.reset();
3224
3231
  }
3225
- this.rule = newProp.rule;
3232
+ this.setProperties({ rule: newProp.rule }, true);
3226
3233
  newProp.rule = this.getRuleCollection(this.rule, false);
3227
3234
  this.setRules(this.rule);
3228
3235
  break;
@@ -3627,7 +3634,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3627
3634
  this.groupIdCounter = 1;
3628
3635
  this.ruleIdCounter = 0;
3629
3636
  this.isImportRules = true;
3630
- this.rule = rule;
3637
+ this.setProperties({ rule: rule }, true);
3631
3638
  rule = this.getRuleCollection(this.rule, false);
3632
3639
  this.importRules(this.rule, this.element.querySelector('.e-group-container'), true, this.rule.not, isRoot);
3633
3640
  this.isImportRules = false;
@@ -4586,7 +4593,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4586
4593
  getRulesFromSql(sqlString, sqlLocale) {
4587
4594
  this.parser = [];
4588
4595
  this.sqlParser(sqlString, sqlLocale);
4589
- this.rule = { condition: 'and', not: false, rules: [] };
4596
+ this.setProperties({ rule: { condition: 'and', not: false, rules: [] } }, true);
4590
4597
  const rule = this.processParser(this.parser, this.rule, [0], sqlLocale);
4591
4598
  if (this.enableNotCondition) {
4592
4599
  return { condition: rule.condition, not: rule.not, rules: rule.rules };
@@ -4767,9 +4774,14 @@ let QueryBuilder = class QueryBuilder extends Component {
4767
4774
  }
4768
4775
  else {
4769
4776
  const secParser = this.parser[this.parser.length - 2];
4777
+ const betweenParser = this.parser[this.parser.length - 3];
4770
4778
  if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {
4771
4779
  return true;
4772
4780
  }
4781
+ const betweenOperator = 'between';
4782
+ if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf(betweenOperator) < 0)) {
4783
+ return true;
4784
+ }
4773
4785
  }
4774
4786
  return false;
4775
4787
  }