@syncfusion/ej2-querybuilder 21.2.4 → 22.1.37

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/.eslintrc.json +1 -0
  2. package/CHANGELOG.md +3 -4
  3. package/dist/ej2-querybuilder.min.js +2 -2
  4. package/dist/ej2-querybuilder.umd.min.js +2 -2
  5. package/dist/ej2-querybuilder.umd.min.js.map +1 -1
  6. package/dist/es6/ej2-querybuilder.es2015.js +27 -12
  7. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  8. package/dist/es6/ej2-querybuilder.es5.js +27 -12
  9. package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
  10. package/dist/global/ej2-querybuilder.min.js +2 -2
  11. package/dist/global/ej2-querybuilder.min.js.map +1 -1
  12. package/dist/global/index.d.ts +1 -1
  13. package/package.json +11 -11
  14. package/src/query-builder/query-builder-model.d.ts +6 -3
  15. package/src/query-builder/query-builder.d.ts +7 -3
  16. package/src/query-builder/query-builder.js +27 -12
  17. package/styles/bootstrap-dark.css +1 -1
  18. package/styles/bootstrap.css +1 -1
  19. package/styles/bootstrap4.css +1 -1
  20. package/styles/bootstrap5-dark.css +1 -1
  21. package/styles/bootstrap5.css +1 -1
  22. package/styles/fluent-dark.css +1 -1
  23. package/styles/fluent.css +1 -1
  24. package/styles/material-dark.css +1 -1
  25. package/styles/material.css +1 -1
  26. package/styles/material3-dark.css +821 -0
  27. package/styles/material3-dark.scss +3 -0
  28. package/styles/material3.css +877 -0
  29. package/styles/material3.scss +3 -0
  30. package/styles/query-builder/_layout.scss +76 -16
  31. package/styles/query-builder/_material3-dark-definition.scss +1 -0
  32. package/styles/query-builder/_material3-definition.scss +110 -0
  33. package/styles/query-builder/bootstrap-dark.css +1 -1
  34. package/styles/query-builder/bootstrap.css +1 -1
  35. package/styles/query-builder/bootstrap4.css +1 -1
  36. package/styles/query-builder/bootstrap5-dark.css +1 -1
  37. package/styles/query-builder/bootstrap5.css +1 -1
  38. package/styles/query-builder/fluent-dark.css +1 -1
  39. package/styles/query-builder/fluent.css +1 -1
  40. package/styles/query-builder/icons/_material3-dark.scss +1 -0
  41. package/styles/query-builder/material-dark.css +1 -1
  42. package/styles/query-builder/material.css +1 -1
  43. package/styles/query-builder/material3-dark.css +821 -0
  44. package/styles/query-builder/material3-dark.scss +16 -0
  45. package/styles/query-builder/material3.css +877 -0
  46. package/styles/query-builder/material3.scss +16 -0
  47. package/styles/query-builder/tailwind-dark.css +1 -1
  48. package/styles/query-builder/tailwind.css +1 -1
  49. package/styles/tailwind-dark.css +1 -1
  50. package/styles/tailwind.css +1 -1
@@ -1014,17 +1014,24 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1014
1014
  if (!args.cancel && (this.element.querySelectorAll('.e-group-container').length <= this.maxGroupCount)) {
1015
1015
  var target = eventTarget;
1016
1016
  var dltGroupBtn = void 0;
1017
+ var groupID = '';
1018
+ if (target.className.indexOf('e-group-container') < 0) {
1019
+ groupID = target.querySelector('.e-group-container') && target.querySelector('.e-group-container').id;
1020
+ }
1021
+ else {
1022
+ groupID = target.id;
1023
+ }
1017
1024
  var groupElem = this.groupElem.cloneNode(true);
1018
1025
  groupElem.setAttribute('id', this.element.id + '_group' + this.groupIdCounter);
1019
1026
  if (this.headerTemplate) {
1020
1027
  if (isRoot) {
1021
1028
  isGroup = false;
1022
1029
  groupElem.setAttribute('id', this.element.id + '_group0');
1023
- this.headerTemplateFn(groupElem, not, condition, rule);
1030
+ this.headerTemplateFn(groupElem, not, condition, rule, groupID);
1024
1031
  this.groupIdCounter = 0;
1025
1032
  }
1026
1033
  else {
1027
- this.headerTemplateFn(groupElem, not, condition, rule);
1034
+ this.headerTemplateFn(groupElem, not, condition, rule, groupID);
1028
1035
  }
1029
1036
  }
1030
1037
  this.groupIdCounter++;
@@ -1118,14 +1125,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1118
1125
  }
1119
1126
  }
1120
1127
  };
1121
- QueryBuilder.prototype.headerTemplateFn = function (groupElem, not, condition, rule) {
1128
+ QueryBuilder.prototype.headerTemplateFn = function (groupElem, not, condition, rule, groupID) {
1122
1129
  var template;
1123
1130
  var templateID = this.element.id + '_header';
1124
1131
  var args;
1125
1132
  var groupHdr = groupElem.querySelector('.e-group-header');
1126
1133
  if (this.headerTemplate) {
1127
1134
  args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
1128
- notCondition: this.enableNotCondition ? not : undefined, condition: condition, rule: this.getRuleCollection(rule, true) };
1135
+ notCondition: this.enableNotCondition ? not : undefined, condition: condition, rule: this.getRuleCollection(rule, true), groupID: groupID };
1129
1136
  this.trigger('actionBegin', args);
1130
1137
  this.headerFn = this.templateParser(this.headerTemplate);
1131
1138
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2055,7 +2062,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2055
2062
  getValue(template.write, window)({ elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,
2056
2063
  operator: tempRule.operator, field: column.field, dataSource: column.values });
2057
2064
  }
2058
- else {
2065
+ else if (typeof itemData.template !== 'function') {
2059
2066
  itemData.template.write({ elements: tempElements.length > 1 ? tempElements : tempElements[0],
2060
2067
  values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values });
2061
2068
  }
@@ -2547,7 +2554,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2547
2554
  QueryBuilder.prototype.actionBeginSuccessCallBack = function (args, itemData, ruleID, field, target) {
2548
2555
  if (args.renderTemplate) {
2549
2556
  var valElem = void 0;
2550
- this.columnTemplateFn = this.templateParser(itemData.template);
2557
+ this.columnTemplateFn = this.templateParser(typeof itemData.template === 'function' ? itemData.template : itemData.template);
2551
2558
  var templateID = this.element.id + field;
2552
2559
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2553
2560
  if (this.isReact) {
@@ -3418,7 +3425,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3418
3425
  QueryBuilder.prototype.templateParser = function (template) {
3419
3426
  if (template) {
3420
3427
  try {
3421
- if (document.querySelectorAll(template).length) {
3428
+ if (typeof template !== 'function' && document.querySelectorAll(template).length) {
3422
3429
  return compile(document.querySelector(template).innerHTML.trim());
3423
3430
  }
3424
3431
  else {
@@ -3751,7 +3758,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3751
3758
  rule.value = null;
3752
3759
  }
3753
3760
  }
3754
- if ((this.isRefreshed && this.enablePersistence) || (this.rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
3761
+ if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
3755
3762
  rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
3756
3763
  var condition = rule.condition;
3757
3764
  rule = {
@@ -3791,6 +3798,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3791
3798
  else {
3792
3799
  rule = { 'condition': rule.condition, 'rules': rule.rules };
3793
3800
  }
3801
+ if (customObj) {
3802
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3803
+ rule.custom = customObj;
3804
+ }
3794
3805
  if (rule.rules.length === 0) {
3795
3806
  rule = {};
3796
3807
  }
@@ -4565,8 +4576,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4565
4576
  }
4566
4577
  }
4567
4578
  if (j !== jLen - 1) {
4568
- if (condition === '') {
4569
- condition = rules.rules[j].condition;
4579
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4580
+ var rule = rules.rules[j];
4581
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4582
+ if (condition === '' || (rule && rule.condition !== '' && rule.custom && rule.custom.isCustom)) {
4583
+ condition = rule.condition;
4570
4584
  }
4571
4585
  condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
4572
4586
  queryStr += ' ' + condition + ' ';
@@ -4714,7 +4728,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4714
4728
  // eslint-disable-next-line
4715
4729
  if (/^`?([a-z_][a-z0-9_.\[\]\(\)]{0,}(\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)) {
4716
4730
  // eslint-disable-next-line
4717
- matchValue = /^`?([a-z_][a-z0-9_.\[\]\(\)]{0,}(\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)[1];
4731
+ matchValue = /^`?([a-zåäö_][a-z0-9åäö_.\[\]\(\)]{0,}(\:(number|float|string|date|boolean))?)`?/i.exec(sqlString)[1];
4718
4732
  this.parser.push(['Literal', matchValue]);
4719
4733
  return matchValue.length;
4720
4734
  }
@@ -4910,7 +4924,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4910
4924
  var isLeftOpened = false;
4911
4925
  for (var i = 0, iLen = parser.length; i < iLen; i++) {
4912
4926
  if (parser[i][0] === 'Literal') {
4913
- rule = { label: parser[i][1], field: parser[i][1] };
4927
+ var column = this.getColumn(parser[i][1]);
4928
+ rule = { label: (column && column.label) ? column.label : parser[i][1], field: parser[i][1] };
4914
4929
  if (parser[i + 1][0] === 'SubOperators') {
4915
4930
  if (parser[i + 1][1].indexOf('null') > -1 || parser[i + 1][1].indexOf('empty') > -1) {
4916
4931
  rule.operator = this.getOperator(' ', parser[i + 1][1], sqlLocale);