@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.
@@ -209,6 +209,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
209
209
  _this.isRuleClicked = false;
210
210
  _this.groupCloned = false;
211
211
  _this.isRequestSent = false;
212
+ _this.isPopupScroll = false;
212
213
  MultiSelect.Inject(CheckBoxSelection);
213
214
  return _this;
214
215
  }
@@ -1344,6 +1345,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1344
1345
  }
1345
1346
  };
1346
1347
  QueryBuilder.prototype.renderToolTip = function (element) {
1348
+ var _this = this;
1347
1349
  var tooltip = new Tooltip({
1348
1350
  content: this.l10n.getConstant('ValidationMessage'),
1349
1351
  position: 'BottomCenter', cssClass: 'e-querybuilder-error', afterClose: function () {
@@ -1353,6 +1355,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1353
1355
  if (tooltipCloseElement) {
1354
1356
  tooltipCloseElement.style.display = 'none';
1355
1357
  }
1358
+ }, beforeClose: function (args) {
1359
+ if (_this.isPopupScroll) {
1360
+ args.cancel = true;
1361
+ }
1356
1362
  }
1357
1363
  });
1358
1364
  tooltip.appendTo(element);
@@ -4975,6 +4981,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4975
4981
  groupRule = groupRule.properties;
4976
4982
  }
4977
4983
  var groupElem = closest(targetGroup, '.e-group-container');
4984
+ var cloneGroupElem = groupElem.cloneNode(true);
4985
+ var isRuleArea = false;
4986
+ if (closest(e.target, '.e-group-container') && closest(e.target, '.e-group-container').id === this.initialID + '_group0') {
4987
+ isRuleArea = true;
4988
+ }
4978
4989
  var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
4979
4990
  nestGrpElem.forEach(function (ele) {
4980
4991
  if (_this.element.querySelector('#' + ele.id)) {
@@ -4992,11 +5003,23 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4992
5003
  ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
4993
5004
  }
4994
5005
  this.deleteRules(ruleIds);
5006
+ // Calculate index considering both groups and rules in the overall rules collection
5007
+ var overallDropIndex = 0;
5008
+ var ruleListElem = cloneGroupElem.querySelector('.e-rule-list');
5009
+ if (ruleListElem) {
5010
+ for (var j = 0; j < ruleListElem.children.length; j++) {
5011
+ var child = ruleListElem.children[j];
5012
+ if (child.classList.contains('e-drag-rule-top-line') || child.classList.contains('e-drag-rule-bottom-line')) {
5013
+ overallDropIndex = j;
5014
+ break;
5015
+ }
5016
+ }
5017
+ }
4995
5018
  if (targetGroup.classList.contains('e-drag-rule-top-line')) {
4996
- groupRule.rules.splice(dropInd, 0, rule);
5019
+ groupRule.rules.splice(isRuleArea ? overallDropIndex : dropInd, 0, rule);
4997
5020
  }
4998
5021
  else {
4999
- groupRule.rules.splice(dropInd + 1, 0, rule);
5022
+ groupRule.rules.splice(isRuleArea ? overallDropIndex + 1 : dropInd + 1, 0, rule);
5000
5023
  }
5001
5024
  groupRule.rules.forEach(function (rule) {
5002
5025
  if (_this.enableSeparateConnector) {
@@ -5196,12 +5219,24 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5196
5219
  this.initWrapper();
5197
5220
  this.wireEvents();
5198
5221
  };
5222
+ QueryBuilder.prototype.scrollEventHandler = function (e) {
5223
+ var target = e.target;
5224
+ if (target && ((target.closest && target.closest('.e-popup')))) {
5225
+ this.isPopupScroll = true;
5226
+ }
5227
+ else {
5228
+ this.isPopupScroll = false;
5229
+ }
5230
+ };
5199
5231
  QueryBuilder.prototype.wireEvents = function () {
5200
5232
  var wrapper = this.getWrapper();
5201
5233
  EventHandler.add(wrapper, 'click', this.clickEventHandler, this);
5202
5234
  EventHandler.add(wrapper, 'focusout', this.focusEventHandler, this);
5203
5235
  EventHandler.add(wrapper, 'focusin', this.focusEventHandler, this);
5204
5236
  EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);
5237
+ this.boundScrollHandler = this.scrollEventHandler.bind(this);
5238
+ document.addEventListener('wheel', this.boundScrollHandler);
5239
+ document.addEventListener('scroll', this.boundScrollHandler);
5205
5240
  if (this.allowDragAndDrop) {
5206
5241
  EventHandler.add(document, 'keydown', this.keyBoardHandler, this);
5207
5242
  }
@@ -5214,6 +5249,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5214
5249
  EventHandler.remove(wrapper, 'focusout', this.focusEventHandler);
5215
5250
  EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);
5216
5251
  EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
5252
+ document.removeEventListener('wheel', this.boundScrollHandler);
5253
+ document.removeEventListener('scroll', this.boundScrollHandler);
5254
+ this.boundScrollHandler = null;
5217
5255
  EventHandler.remove(document, 'keydown', this.keyBoardHandler);
5218
5256
  if (this.boundResizeHandler) {
5219
5257
  window.removeEventListener('resize', this.boundResizeHandler);