@syncfusion/ej2-querybuilder 33.2.3 → 33.2.4

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 33.2.3
3
+ * version : 33.2.4
4
4
  * Copyright Syncfusion Inc. 2001 - 2025. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-querybuilder",
3
- "version": "33.2.3",
3
+ "version": "33.2.4",
4
4
  "description": "Essential JS 2 QueryBuilder",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -10,9 +10,9 @@
10
10
  "dependencies": {
11
11
  "@syncfusion/ej2-base": "~33.2.3",
12
12
  "@syncfusion/ej2-buttons": "~33.2.3",
13
- "@syncfusion/ej2-calendars": "~33.2.3",
14
- "@syncfusion/ej2-dropdowns": "~33.2.3",
15
- "@syncfusion/ej2-inputs": "~33.2.3",
13
+ "@syncfusion/ej2-calendars": "~33.2.4",
14
+ "@syncfusion/ej2-dropdowns": "~33.2.4",
15
+ "@syncfusion/ej2-inputs": "~33.2.4",
16
16
  "@syncfusion/ej2-splitbuttons": "~33.2.3"
17
17
  },
18
18
  "devDependencies": {},
@@ -355,6 +355,8 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
355
355
  private initialID;
356
356
  private ddTree;
357
357
  private boundResizeHandler;
358
+ private isPopupScroll;
359
+ private boundScrollHandler;
358
360
  /**
359
361
  * Triggers when the component is created.
360
362
  *
@@ -776,6 +778,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
776
778
  private templateParser;
777
779
  private executeDataManager;
778
780
  private initControl;
781
+ private scrollEventHandler;
779
782
  protected wireEvents(): void;
780
783
  protected unWireEvents(): void;
781
784
  private getParentGroup;
@@ -222,6 +222,7 @@ var QueryBuilder = /** @class */ (function (_super) {
222
222
  _this.isRuleClicked = false;
223
223
  _this.groupCloned = false;
224
224
  _this.isRequestSent = false;
225
+ _this.isPopupScroll = false;
225
226
  MultiSelect.Inject(CheckBoxSelection);
226
227
  return _this;
227
228
  }
@@ -1358,6 +1359,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1358
1359
  }
1359
1360
  };
1360
1361
  QueryBuilder.prototype.renderToolTip = function (element) {
1362
+ var _this = this;
1361
1363
  var tooltip = new Tooltip({
1362
1364
  content: this.l10n.getConstant('ValidationMessage'),
1363
1365
  position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {
@@ -1367,6 +1369,10 @@ var QueryBuilder = /** @class */ (function (_super) {
1367
1369
  if (tooltipCloseElement) {
1368
1370
  tooltipCloseElement.style.display = 'none';
1369
1371
  }
1372
+ }, beforeClose: function (args) {
1373
+ if (_this.isPopupScroll) {
1374
+ args.cancel = true;
1375
+ }
1370
1376
  }
1371
1377
  });
1372
1378
  tooltip.appendTo(element);
@@ -4989,6 +4995,11 @@ var QueryBuilder = /** @class */ (function (_super) {
4989
4995
  groupRule = groupRule.properties;
4990
4996
  }
4991
4997
  var groupElem = closest(targetGroup, '.e-group-container');
4998
+ var cloneGroupElem = groupElem.cloneNode(true);
4999
+ var isRuleArea = false;
5000
+ if (closest(e.target, '.e-group-container') && closest(e.target, '.e-group-container').id === this.initialID + '_group0') {
5001
+ isRuleArea = true;
5002
+ }
4992
5003
  var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
4993
5004
  nestGrpElem.forEach(function (ele) {
4994
5005
  if (_this.element.querySelector('#' + ele.id)) {
@@ -5006,11 +5017,25 @@ var QueryBuilder = /** @class */ (function (_super) {
5006
5017
  ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
5007
5018
  }
5008
5019
  this.deleteRules(ruleIds);
5020
+ // Calculate index considering both groups and rules in the overall rules collection
5021
+ var overallDropIndex = 0;
5022
+ var ruleListElem = cloneGroupElem.querySelector('.e-rule-list');
5023
+ if (ruleListElem) {
5024
+ var droppedElement = void 0;
5025
+ for (var j = 0; j < ruleListElem.children.length; j++) {
5026
+ var child = ruleListElem.children[j];
5027
+ if (child.classList.contains('e-drag-rule-top-line') || child.classList.contains('e-drag-rule-bottom-line')) {
5028
+ droppedElement = child;
5029
+ overallDropIndex = j;
5030
+ break;
5031
+ }
5032
+ }
5033
+ }
5009
5034
  if (targetGroup.classList.contains('e-drag-rule-top-line')) {
5010
- groupRule.rules.splice(dropInd, 0, rule);
5035
+ groupRule.rules.splice(isRuleArea ? overallDropIndex : dropInd, 0, rule);
5011
5036
  }
5012
5037
  else {
5013
- groupRule.rules.splice(dropInd + 1, 0, rule);
5038
+ groupRule.rules.splice(isRuleArea ? overallDropIndex + 1 : dropInd + 1, 0, rule);
5014
5039
  }
5015
5040
  groupRule.rules.forEach(function (rule) {
5016
5041
  if (_this.enableSeparateConnector) {
@@ -5210,12 +5235,24 @@ var QueryBuilder = /** @class */ (function (_super) {
5210
5235
  this.initWrapper();
5211
5236
  this.wireEvents();
5212
5237
  };
5238
+ QueryBuilder.prototype.scrollEventHandler = function (e) {
5239
+ var target = e.target;
5240
+ if (target && ((target.closest && target.closest('.e-popup')))) {
5241
+ this.isPopupScroll = true;
5242
+ }
5243
+ else {
5244
+ this.isPopupScroll = false;
5245
+ }
5246
+ };
5213
5247
  QueryBuilder.prototype.wireEvents = function () {
5214
5248
  var wrapper = this.getWrapper();
5215
5249
  EventHandler.add(wrapper, 'click', this.clickEventHandler, this);
5216
5250
  EventHandler.add(wrapper, 'focusout', this.focusEventHandler, this);
5217
5251
  EventHandler.add(wrapper, 'focusin', this.focusEventHandler, this);
5218
5252
  EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);
5253
+ this.boundScrollHandler = this.scrollEventHandler.bind(this);
5254
+ document.addEventListener('wheel', this.boundScrollHandler);
5255
+ document.addEventListener('scroll', this.boundScrollHandler);
5219
5256
  if (this.allowDragAndDrop) {
5220
5257
  EventHandler.add(document, 'keydown', this.keyBoardHandler, this);
5221
5258
  }
@@ -5228,6 +5265,9 @@ var QueryBuilder = /** @class */ (function (_super) {
5228
5265
  EventHandler.remove(wrapper, 'focusout', this.focusEventHandler);
5229
5266
  EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);
5230
5267
  EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
5268
+ document.removeEventListener('wheel', this.boundScrollHandler);
5269
+ document.removeEventListener('scroll', this.boundScrollHandler);
5270
+ this.boundScrollHandler = null;
5231
5271
  EventHandler.remove(document, 'keydown', this.keyBoardHandler);
5232
5272
  if (this.boundResizeHandler) {
5233
5273
  window.removeEventListener('resize', this.boundResizeHandler);