@syncfusion/ej2-querybuilder 20.4.48 → 21.1.35

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.
Files changed (50) hide show
  1. package/CHANGELOG.md +3 -8
  2. package/dist/ej2-querybuilder.min.js +2 -2
  3. package/dist/ej2-querybuilder.umd.min.js +2 -2
  4. package/dist/ej2-querybuilder.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-querybuilder.es2015.js +57 -18
  6. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  7. package/dist/es6/ej2-querybuilder.es5.js +57 -18
  8. package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
  9. package/dist/global/ej2-querybuilder.min.js +2 -2
  10. package/dist/global/ej2-querybuilder.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +12 -12
  13. package/src/query-builder/query-builder.d.ts +20 -10
  14. package/src/query-builder/query-builder.js +57 -18
  15. package/styles/bootstrap-dark.css +17 -9
  16. package/styles/bootstrap.css +9 -9
  17. package/styles/bootstrap4.css +10 -10
  18. package/styles/bootstrap5-dark.css +11 -11
  19. package/styles/bootstrap5.css +11 -11
  20. package/styles/fabric-dark.css +15 -9
  21. package/styles/fabric.css +9 -9
  22. package/styles/fluent-dark.css +12 -12
  23. package/styles/fluent.css +12 -12
  24. package/styles/highcontrast-light.css +9 -30
  25. package/styles/highcontrast.css +9 -9
  26. package/styles/material-dark.css +9 -9
  27. package/styles/material.css +9 -9
  28. package/styles/query-builder/_bootstrap5-definition.scss +3 -3
  29. package/styles/query-builder/_fluent-definition.scss +3 -3
  30. package/styles/query-builder/_layout.scss +13 -3
  31. package/styles/query-builder/_tailwind-definition.scss +3 -3
  32. package/styles/query-builder/_theme.scss +14 -14
  33. package/styles/query-builder/bootstrap-dark.css +17 -9
  34. package/styles/query-builder/bootstrap.css +9 -9
  35. package/styles/query-builder/bootstrap4.css +10 -10
  36. package/styles/query-builder/bootstrap5-dark.css +11 -11
  37. package/styles/query-builder/bootstrap5.css +11 -11
  38. package/styles/query-builder/fabric-dark.css +15 -9
  39. package/styles/query-builder/fabric.css +9 -9
  40. package/styles/query-builder/fluent-dark.css +12 -12
  41. package/styles/query-builder/fluent.css +12 -12
  42. package/styles/query-builder/highcontrast-light.css +9 -30
  43. package/styles/query-builder/highcontrast.css +9 -9
  44. package/styles/query-builder/material-dark.css +9 -9
  45. package/styles/query-builder/material.css +9 -9
  46. package/styles/query-builder/tailwind-dark.css +9 -9
  47. package/styles/query-builder/tailwind.css +9 -9
  48. package/styles/tailwind-dark.css +9 -9
  49. package/styles/tailwind.css +9 -9
  50. package/styles/query-builder/_material3-definition.scss +0 -108
@@ -664,7 +664,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
664
664
  if (!column || (column && !column.ruleTemplate) || !rule.field) {
665
665
  if (this.fieldMode === 'Default') {
666
666
  var ddlField = void 0;
667
- var ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;
667
+ var ddlValue = void 0;
668
+ if (this.separator && rule.field) {
669
+ ddlValue = this.GetRootColumnName(rule.field);
670
+ }
671
+ else {
672
+ ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;
673
+ }
668
674
  ddlField = {
669
675
  dataSource: this.columns,
670
676
  fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),
@@ -676,8 +682,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
676
682
  }
677
683
  dropDownList = new DropDownList(ddlField);
678
684
  dropDownList.appendTo('#' + ruleElem.id + '_filterkey');
679
- var ddlVal = this.isImportRules ?
680
- this.GetRootColumnName(rule.field) : dropDownList.value;
685
+ var ddlVal = void 0;
686
+ if (this.separator && rule.field) {
687
+ ddlVal = this.GetRootColumnName(rule.field);
688
+ }
689
+ else {
690
+ ddlVal = this.isImportRules ? this.GetRootColumnName(rule.field) : dropDownList.value;
691
+ }
681
692
  this.selectedColumn = dropDownList.getDataByValue(ddlVal);
682
693
  if (Object.keys(rule).length) {
683
694
  this.changeRule(rule, {
@@ -693,7 +704,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
693
704
  value: 'field', text: 'label', child: 'columns', expanded: 'expanded' },
694
705
  placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
695
706
  popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
696
- change: this.changeField.bind(this), value: this.isImportRules ? [ddlValue] : null,
707
+ change: this.changeField.bind(this), value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,
697
708
  open: this.popupOpen.bind(this, false)
698
709
  };
699
710
  if (this.fieldModel) {
@@ -706,7 +717,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
706
717
  dropdowntree.element.value = value;
707
718
  }
708
719
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
709
- var ddlVal = this.isImportRules ?
720
+ var ddlVal = !isNullOrUndefined(rule.field) ?
710
721
  this.GetRootColumnName(rule.field) : dropdowntree.value;
711
722
  this.selectedColumn = this.getColumn(ddlVal);
712
723
  if (Object.keys(rule).length) {
@@ -783,7 +794,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
783
794
  var tooltip = new Tooltip({ content: this.l10n.getConstant('ValidationMessage'),
784
795
  position: 'BottomCenter', cssClass: 'e-querybuilder-error' });
785
796
  tooltip.appendTo(element);
786
- // eslint-disable-next-line
787
797
  tooltip.open(element);
788
798
  };
789
799
  /**
@@ -1121,7 +1131,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1121
1131
  return groupElem;
1122
1132
  };
1123
1133
  /**
1124
- * notify the changes to component.
1134
+ * Notify the changes to component.
1125
1135
  *
1126
1136
  * @param {string | number | boolean | Date | string[] | number[] | Date[]} value - 'value' to be passed to update the rule value.
1127
1137
  * @param {Element} element - 'element' to be passed to update the rule.
@@ -1401,6 +1411,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1401
1411
  if (column && column.ruleTemplate) {
1402
1412
  this.templateChange(args.element, column.field, 'field');
1403
1413
  }
1414
+ else if (column && column.columns && column.columns[0].ruleTemplate) {
1415
+ this.templateChange(args.element, column.columns[0].field, 'field');
1416
+ }
1404
1417
  else {
1405
1418
  var groupElem = closest(args.element, '.e-group-container');
1406
1419
  var rules = this.getParentGroup(groupElem);
@@ -1556,7 +1569,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1556
1569
  }
1557
1570
  var dropDownList = new DropDownList(ddlField);
1558
1571
  dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);
1559
- if (this.isImportRules) {
1572
+ if (this.isImportRules || (this.previousColumn && this.previousColumn.ruleTemplate &&
1573
+ this.GetRootColumnName(rule.field) === this.GetRootColumnName(this.previousColumn.field))) {
1560
1574
  var subField = this.selectedColumn.columns;
1561
1575
  for (var i = 0; i < subField.length; i++) {
1562
1576
  if (rule.field === subField[i].field || rule.field.indexOf(subField[i].field) > -1) {
@@ -1571,12 +1585,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1571
1585
  this.subFieldElem = subFieldElem;
1572
1586
  // eslint-disable-next-line
1573
1587
  ddlArgs.itemData = ddlArgs.itemData;
1574
- if (!this.isImportRules || (!subFieldValue && this.selectedColumn.columns)) {
1588
+ if (!subFieldValue && this.selectedColumn.columns) {
1575
1589
  if (!subFieldValue && this.isImportRules) {
1576
1590
  dropDownList.value = null;
1577
1591
  }
1578
1592
  this.selectedColumn = this.selectedColumn.columns[0];
1579
1593
  }
1594
+ this.previousColumn = this.selectedColumn;
1580
1595
  if (!this.selectedColumn.columns) {
1581
1596
  this.changeRuleValues(tempElem, rule, tempRule, ddlArgs);
1582
1597
  }
@@ -1788,7 +1803,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1788
1803
  }
1789
1804
  };
1790
1805
  /**
1791
- * return values bound to the column.
1806
+ * Return values bound to the column.
1792
1807
  *
1793
1808
  * @param {string} field - 'field' to be passed to get the field values.
1794
1809
  * @returns {object[]} - Values bound to the column
@@ -3850,7 +3865,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3850
3865
  }
3851
3866
  };
3852
3867
  /**
3853
- * return the Query from current rules collection.
3868
+ * Return the Query from current rules collection.
3854
3869
  *
3855
3870
  * @returns {Promise} - Query from current rules collection
3856
3871
  * @blazorType object
@@ -4008,7 +4023,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4008
4023
  }
4009
4024
  }
4010
4025
  if (this.dataSource instanceof DataManager) {
4011
- if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'notnull')) {
4026
+ if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'isnotnull')) {
4012
4027
  pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';
4013
4028
  }
4014
4029
  }
@@ -4050,7 +4065,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4050
4065
  };
4051
4066
  /* eslint-disable */
4052
4067
  /**
4053
- * return the operator bound to the column.
4068
+ * Return the operator bound to the column.
4054
4069
  *
4055
4070
  * @returns {[key: string]: Object}[] - Operator bound to the column
4056
4071
  */
@@ -4122,7 +4137,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4122
4137
  pred = new Predicate(ruleColl.field, 'isnull', nullValue);
4123
4138
  break;
4124
4139
  case 'isnotnull':
4125
- pred = new Predicate(ruleColl.field, 'notnull', nullValue);
4140
+ pred = new Predicate(ruleColl.field, 'isnotnull', nullValue);
4126
4141
  break;
4127
4142
  case 'isempty':
4128
4143
  pred = new Predicate(ruleColl.field, 'equal', '');
@@ -4698,10 +4713,22 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4698
4713
  if (/^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)) {
4699
4714
  // eslint-disable-next-line
4700
4715
  matchValue = /^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)[0];
4716
+ if (matchValue[matchValue.length - 2] === '(') {
4717
+ var isClosed = false;
4718
+ for (var j = matchValue.length; j < sqlString.length; j++) {
4719
+ matchValue += sqlString[j];
4720
+ if (sqlString[j] === ')') {
4721
+ isClosed = true;
4722
+ }
4723
+ if (isClosed && sqlString[j] === '\'') {
4724
+ break;
4725
+ }
4726
+ }
4727
+ }
4701
4728
  this.parser.push(['String', matchValue]);
4702
4729
  return matchValue.length;
4703
4730
  }
4704
- //Double String
4731
+ // Double String
4705
4732
  // eslint-disable-next-line
4706
4733
  if (/^"([^\\"]*(?:\\.[^\\"]*)*)"/.exec(sqlString)) {
4707
4734
  // eslint-disable-next-line
@@ -4898,7 +4925,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4898
4925
  break;
4899
4926
  }
4900
4927
  if (operator.indexOf('like') > -1 && parser[j][0] === 'String') {
4901
- var val = parser[j][1] ? parser[j][1].replace(/'/g, '').replace(/%/g, '') : parser[j][1];
4928
+ var val = parser[j][1];
4929
+ if (parser[j][1] && parser[j][1][0] === '\'') {
4930
+ val = parser[j][1].substring(1, parser[j][1].length - 1);
4931
+ }
4932
+ val = val ? val.replace(/%/g, '') : parser[j][1];
4902
4933
  rule.value = val;
4903
4934
  rule.type = 'string';
4904
4935
  }
@@ -4910,7 +4941,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4910
4941
  numVal.push(Number(parser[j][1]));
4911
4942
  }
4912
4943
  else if (parser[j][0] === 'String') {
4913
- strVal.push(parser[j][1].replace(/'/g, ''));
4944
+ var val = parser[j][1];
4945
+ if (parser[j][1] && parser[j][1][0] === '\'') {
4946
+ val = parser[j][1].substring(1, parser[j][1].length - 1);
4947
+ }
4948
+ strVal.push(val);
4914
4949
  }
4915
4950
  }
4916
4951
  else {
@@ -4918,7 +4953,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4918
4953
  numVal.push(Number(parser[j][1]));
4919
4954
  }
4920
4955
  else if (parser[j][0] === 'String') {
4921
- strVal.push(parser[j][1].replace(/'/g, ''));
4956
+ var val = parser[j][1];
4957
+ if (parser[j][1] && parser[j][1][0] === '\'') {
4958
+ val = parser[j][1].substring(1, parser[j][1].length - 1);
4959
+ }
4960
+ strVal.push(val);
4922
4961
  }
4923
4962
  }
4924
4963
  rule.type = this.getTypeFromColumn(rule);