@syncfusion/ej2-querybuilder 32.2.3 → 32.2.7

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 : 32.2.3
3
+ * version : 32.2.7
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": "32.2.3",
3
+ "version": "32.2.7",
4
4
  "description": "Essential JS 2 QueryBuilder",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -8,12 +8,12 @@
8
8
  "module": "./index.js",
9
9
  "es2015": "./dist/es6/ej2-querybuilder.es5.js",
10
10
  "dependencies": {
11
- "@syncfusion/ej2-base": "~32.2.3",
12
- "@syncfusion/ej2-buttons": "~32.2.3",
13
- "@syncfusion/ej2-calendars": "~32.2.3",
14
- "@syncfusion/ej2-dropdowns": "~32.2.3",
15
- "@syncfusion/ej2-inputs": "~32.2.3",
16
- "@syncfusion/ej2-splitbuttons": "~32.2.3"
11
+ "@syncfusion/ej2-base": "~32.2.6",
12
+ "@syncfusion/ej2-buttons": "~32.2.7",
13
+ "@syncfusion/ej2-calendars": "~32.2.7",
14
+ "@syncfusion/ej2-dropdowns": "~32.2.7",
15
+ "@syncfusion/ej2-inputs": "~32.2.7",
16
+ "@syncfusion/ej2-splitbuttons": "~32.2.7"
17
17
  },
18
18
  "devDependencies": {},
19
19
  "keywords": [
@@ -351,7 +351,9 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
351
351
  private isPropChange;
352
352
  private isRuleClicked;
353
353
  private groupCloned;
354
+ private isRequestSent;
354
355
  private ddTree;
356
+ private boundResizeHandler;
355
357
  /**
356
358
  * Triggers when the component is created.
357
359
  *
@@ -221,6 +221,7 @@ var QueryBuilder = /** @class */ (function (_super) {
221
221
  _this.isPropChange = false;
222
222
  _this.isRuleClicked = false;
223
223
  _this.groupCloned = false;
224
+ _this.isRequestSent = false;
224
225
  MultiSelect.Inject(CheckBoxSelection);
225
226
  return _this;
226
227
  }
@@ -3095,29 +3096,34 @@ var QueryBuilder = /** @class */ (function (_super) {
3095
3096
  ? userQuery.clone()
3096
3097
  : new Query();
3097
3098
  dataQuery.select([value]);
3098
- var data = this.dataManager.executeQuery(dataQuery);
3099
- multiselectObj.hideSpinner();
3100
- this.createSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
3101
- showSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
3102
- data.then(function (e) {
3103
- if (e.actual && e.actual.result) {
3104
- dummyData = e.actual.result;
3105
- }
3106
- else {
3107
- dummyData = e.result;
3108
- }
3109
- _this.dataColl = extend(_this.dataColl, dummyData, [], true);
3110
- var newData = _this.getDistinctValues(_this.dataColl, value);
3111
- var current = multiselectObj.dataSource;
3112
- if ((current.length !== newData.length &&
3113
- (JSON.stringify(current) !== JSON.stringify(newData)))) {
3114
- multiselectObj.dataSource = newData;
3115
- }
3116
- _this.isGetNestedData = true;
3117
- hideSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
3118
- }).catch(function (e) {
3119
- deferred.reject(e);
3120
- });
3099
+ if (!this.isRequestSent) {
3100
+ var data = this.dataManager.executeQuery(dataQuery);
3101
+ this.isRequestSent = true;
3102
+ multiselectObj.hideSpinner();
3103
+ this.createSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
3104
+ showSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
3105
+ data.then(function (e) {
3106
+ _this.isRequestSent = false;
3107
+ if (e.actual && e.actual.result) {
3108
+ dummyData = e.actual.result;
3109
+ }
3110
+ else {
3111
+ dummyData = e.result;
3112
+ }
3113
+ _this.dataColl = extend(_this.dataColl, dummyData, [], true);
3114
+ var newData = _this.getDistinctValues(_this.dataColl, value);
3115
+ var current = multiselectObj.dataSource;
3116
+ if ((current.length !== newData.length &&
3117
+ (JSON.stringify(current) !== JSON.stringify(newData)))) {
3118
+ multiselectObj.dataSource = newData;
3119
+ }
3120
+ _this.isGetNestedData = true;
3121
+ hideSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
3122
+ }).catch(function (e) {
3123
+ _this.isRequestSent = false;
3124
+ deferred.reject(e);
3125
+ });
3126
+ }
3121
3127
  };
3122
3128
  QueryBuilder.prototype.createSpinner = function (element) {
3123
3129
  var spinnerElem = this.createElement('span', { attrs: { class: 'e-qb-spinner' } });
@@ -4192,6 +4198,29 @@ var QueryBuilder = /** @class */ (function (_super) {
4192
4198
  if (this.portals && this.portals.length) {
4193
4199
  this.clearQBTemplate();
4194
4200
  }
4201
+ var qbDdlElems = this.element.querySelectorAll('.qb-dropdownlist');
4202
+ if (!qbDdlElems || qbDdlElems.length === 0) {
4203
+ qbDdlElems = document.querySelectorAll('.qb-dropdownlist');
4204
+ }
4205
+ for (i = 0; i < qbDdlElems.length; i++) {
4206
+ var ddlElem = qbDdlElems[i];
4207
+ var targetInput = ddlElem.tagName === 'INPUT' ? ddlElem : ddlElem.querySelector('input');
4208
+ if (targetInput) {
4209
+ var ddlInst = getComponent(targetInput, 'dropdownlist');
4210
+ if (ddlInst) {
4211
+ if (ddlInst.close) {
4212
+ ddlInst.close = null;
4213
+ }
4214
+ if (ddlInst.open) {
4215
+ ddlInst.open = null;
4216
+ }
4217
+ if (ddlInst.change) {
4218
+ ddlInst.change = null;
4219
+ }
4220
+ ddlInst.destroy();
4221
+ }
4222
+ }
4223
+ }
4195
4224
  var popupElement = document.querySelectorAll('.qb-dropdownlist.e-popup');
4196
4225
  if (popupElement) {
4197
4226
  for (i = 0; i < popupElement.length; i++) {
@@ -4255,7 +4284,7 @@ var QueryBuilder = /** @class */ (function (_super) {
4255
4284
  this.getGroup(this.target).rules.length > 1) {
4256
4285
  var parent_1 = this.element.querySelector('#' + groupID);
4257
4286
  var topLevelGroups = parent_1.querySelectorAll(':scope > .e-group-body > .e-rule-list > .e-group-container');
4258
- if (groupID !== 'querybuilder_group0') {
4287
+ if (groupID !== 'querybuilder_group0' && !(this.isAngular && groupID === 'ej2-querybuilder_0_group0')) {
4259
4288
  this.groupIndex = topLevelGroups.length > 1 ? topLevelGroups.length - 1 : 0;
4260
4289
  }
4261
4290
  }
@@ -5160,7 +5189,8 @@ var QueryBuilder = /** @class */ (function (_super) {
5160
5189
  if (this.allowDragAndDrop) {
5161
5190
  EventHandler.add(document, 'keydown', this.keyBoardHandler, this);
5162
5191
  }
5163
- window.addEventListener('resize', this.windowResizeHandler.bind(this));
5192
+ this.boundResizeHandler = this.windowResizeHandler.bind(this);
5193
+ window.addEventListener('resize', this.boundResizeHandler);
5164
5194
  };
5165
5195
  QueryBuilder.prototype.unWireEvents = function () {
5166
5196
  var wrapper = this.getWrapper();
@@ -5169,7 +5199,10 @@ var QueryBuilder = /** @class */ (function (_super) {
5169
5199
  EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);
5170
5200
  EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
5171
5201
  EventHandler.remove(document, 'keydown', this.keyBoardHandler);
5172
- window.removeEventListener('resize', this.windowResizeHandler);
5202
+ if (this.boundResizeHandler) {
5203
+ window.removeEventListener('resize', this.boundResizeHandler);
5204
+ this.boundResizeHandler = null;
5205
+ }
5173
5206
  };
5174
5207
  QueryBuilder.prototype.getParentGroup = function (target, isParent) {
5175
5208
  var groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl["" + target];