@syncfusion/ej2-querybuilder 26.2.11 → 27.1.50

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 (131) hide show
  1. package/README.md +1 -1
  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 +285 -259
  6. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  7. package/dist/es6/ej2-querybuilder.es5.js +286 -259
  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.js +285 -258
  14. package/styles/bootstrap-dark-lite.css +728 -0
  15. package/styles/bootstrap-dark-lite.scss +15 -0
  16. package/styles/bootstrap-dark.css +114 -170
  17. package/styles/bootstrap-dark.scss +1 -0
  18. package/styles/bootstrap-lite.css +713 -0
  19. package/styles/bootstrap-lite.scss +15 -0
  20. package/styles/bootstrap.css +106 -162
  21. package/styles/bootstrap.scss +1 -0
  22. package/styles/bootstrap4-lite.css +781 -0
  23. package/styles/bootstrap4-lite.scss +15 -0
  24. package/styles/bootstrap4.css +120 -231
  25. package/styles/bootstrap4.scss +1 -0
  26. package/styles/bootstrap5-dark-lite.css +764 -0
  27. package/styles/bootstrap5-dark-lite.scss +15 -0
  28. package/styles/bootstrap5-dark.css +109 -165
  29. package/styles/bootstrap5-dark.scss +1 -0
  30. package/styles/bootstrap5-lite.css +764 -0
  31. package/styles/bootstrap5-lite.scss +15 -0
  32. package/styles/bootstrap5.3-lite.css +775 -0
  33. package/styles/bootstrap5.3-lite.scss +15 -0
  34. package/styles/bootstrap5.3.css +959 -0
  35. package/styles/bootstrap5.3.scss +16 -0
  36. package/styles/bootstrap5.css +109 -165
  37. package/styles/bootstrap5.scss +1 -0
  38. package/styles/fabric-dark-lite.css +690 -0
  39. package/styles/fabric-dark-lite.scss +15 -0
  40. package/styles/fabric-dark.css +108 -156
  41. package/styles/fabric-dark.scss +1 -0
  42. package/styles/fabric-lite.css +679 -0
  43. package/styles/fabric-lite.scss +15 -0
  44. package/styles/fabric.css +102 -143
  45. package/styles/fabric.scss +1 -0
  46. package/styles/fluent-dark-lite.css +759 -0
  47. package/styles/fluent-dark-lite.scss +15 -0
  48. package/styles/fluent-dark.css +111 -159
  49. package/styles/fluent-dark.scss +1 -0
  50. package/styles/fluent-lite.css +759 -0
  51. package/styles/fluent-lite.scss +15 -0
  52. package/styles/fluent.css +111 -159
  53. package/styles/fluent.scss +1 -0
  54. package/styles/fluent2-lite.css +771 -0
  55. package/styles/fluent2-lite.scss +15 -0
  56. package/styles/fluent2.css +114 -151
  57. package/styles/fluent2.scss +1 -0
  58. package/styles/highcontrast-light-lite.css +773 -0
  59. package/styles/highcontrast-light-lite.scss +15 -0
  60. package/styles/highcontrast-light.css +101 -135
  61. package/styles/highcontrast-light.scss +1 -0
  62. package/styles/highcontrast-lite.css +801 -0
  63. package/styles/highcontrast-lite.scss +15 -0
  64. package/styles/highcontrast.css +122 -156
  65. package/styles/highcontrast.scss +1 -0
  66. package/styles/material-dark-lite.css +725 -0
  67. package/styles/material-dark-lite.scss +15 -0
  68. package/styles/material-dark.css +105 -131
  69. package/styles/material-dark.scss +1 -0
  70. package/styles/material-lite.css +731 -0
  71. package/styles/material-lite.scss +15 -0
  72. package/styles/material.css +105 -152
  73. package/styles/material.scss +1 -0
  74. package/styles/material3-dark-lite.css +738 -0
  75. package/styles/material3-dark-lite.scss +15 -0
  76. package/styles/material3-dark.css +101 -157
  77. package/styles/material3-dark.scss +1 -0
  78. package/styles/material3-lite.css +740 -0
  79. package/styles/material3-lite.scss +15 -0
  80. package/styles/material3.css +101 -157
  81. package/styles/material3.scss +1 -0
  82. package/styles/query-builder/_bigger.scss +208 -0
  83. package/styles/query-builder/_bootstrap5.3-definition.scss +1 -1
  84. package/styles/query-builder/_layout.scss +5 -210
  85. package/styles/query-builder/_theme.scss +10 -3
  86. package/styles/query-builder/bootstrap-dark.css +114 -170
  87. package/styles/query-builder/bootstrap-dark.scss +1 -0
  88. package/styles/query-builder/bootstrap.css +106 -162
  89. package/styles/query-builder/bootstrap.scss +1 -0
  90. package/styles/query-builder/bootstrap4.css +120 -231
  91. package/styles/query-builder/bootstrap4.scss +1 -0
  92. package/styles/query-builder/bootstrap5-dark.css +109 -165
  93. package/styles/query-builder/bootstrap5-dark.scss +1 -0
  94. package/styles/query-builder/bootstrap5.3.css +959 -0
  95. package/styles/query-builder/bootstrap5.3.scss +16 -0
  96. package/styles/query-builder/bootstrap5.css +109 -165
  97. package/styles/query-builder/bootstrap5.scss +1 -0
  98. package/styles/query-builder/fabric-dark.css +108 -156
  99. package/styles/query-builder/fabric-dark.scss +1 -0
  100. package/styles/query-builder/fabric.css +102 -143
  101. package/styles/query-builder/fabric.scss +1 -0
  102. package/styles/query-builder/fluent-dark.css +111 -159
  103. package/styles/query-builder/fluent-dark.scss +1 -0
  104. package/styles/query-builder/fluent.css +111 -159
  105. package/styles/query-builder/fluent.scss +1 -0
  106. package/styles/query-builder/fluent2.css +114 -151
  107. package/styles/query-builder/fluent2.scss +1 -0
  108. package/styles/query-builder/highcontrast-light.css +101 -135
  109. package/styles/query-builder/highcontrast-light.scss +1 -0
  110. package/styles/query-builder/highcontrast.css +122 -156
  111. package/styles/query-builder/highcontrast.scss +1 -0
  112. package/styles/query-builder/material-dark.css +105 -131
  113. package/styles/query-builder/material-dark.scss +1 -0
  114. package/styles/query-builder/material.css +105 -152
  115. package/styles/query-builder/material.scss +1 -0
  116. package/styles/query-builder/material3-dark.css +101 -157
  117. package/styles/query-builder/material3-dark.scss +1 -0
  118. package/styles/query-builder/material3.css +101 -157
  119. package/styles/query-builder/material3.scss +1 -0
  120. package/styles/query-builder/tailwind-dark.css +100 -137
  121. package/styles/query-builder/tailwind-dark.scss +1 -0
  122. package/styles/query-builder/tailwind.css +100 -137
  123. package/styles/query-builder/tailwind.scss +1 -0
  124. package/styles/tailwind-dark-lite.css +726 -0
  125. package/styles/tailwind-dark-lite.scss +15 -0
  126. package/styles/tailwind-dark.css +100 -137
  127. package/styles/tailwind-dark.scss +1 -0
  128. package/styles/tailwind-lite.css +726 -0
  129. package/styles/tailwind-lite.scss +15 -0
  130. package/styles/tailwind.css +100 -137
  131. package/styles/tailwind.scss +1 -0
@@ -1,4 +1,4 @@
1
- import { Property, ChildProperty, Collection, closest, isNullOrUndefined, extend, remove, getComponent, removeClass, Animation, addClass, select, append, detach, rippleEffect, getInstance, getValue, getNumericObject, Browser, classList, Internationalization, getUniqueID, L10n, Draggable, compile, EventHandler, cldrData, Event, Complex, NotifyPropertyChanges, Component } from '@syncfusion/ej2-base';
1
+ import { Property, ChildProperty, Collection, getComponent, removeClass, isNullOrUndefined, Animation, extend, closest, addClass, select, append, detach, rippleEffect, getInstance, getValue, getNumericObject, Browser, classList, Internationalization, getUniqueID, L10n, Draggable, remove, compile, EventHandler, cldrData, Event, Complex, NotifyPropertyChanges, Component } from '@syncfusion/ej2-base';
2
2
  import { Button, CheckBox, RadioButton } from '@syncfusion/ej2-buttons';
3
3
  import { MultiSelect, CheckBoxSelection, DropDownList, DropDownTree } from '@syncfusion/ej2-dropdowns';
4
4
  import { Query, DataManager, Deferred, Predicate } from '@syncfusion/ej2-data';
@@ -205,233 +205,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
205
205
  _this.isMiddleGroup = false;
206
206
  _this.cloneRuleBtnClick = false;
207
207
  _this.isValueEmpty = false;
208
- _this.dragStopHandler = function (e) {
209
- if (_this.isDragEventPrevent) {
210
- return;
211
- }
212
- var targetGroup = closest(e.target, '.e-rule-container');
213
- if (isNullOrUndefined(targetGroup) && e.target.parentElement &&
214
- e.target.parentElement.classList.contains('e-btn-group') && _this.enableSeparateConnector) {
215
- targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');
216
- }
217
- var isPreventelem = closest(e.helper, '.e-notallowedcur');
218
- var prevRule;
219
- if (!isPreventelem) {
220
- var targetGrp = closest(e.target, '.e-group-container');
221
- var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
222
- : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };
223
- _this.trigger('drop', dropEventArgs);
224
- if (dropEventArgs.cancel) {
225
- isPreventelem = true;
226
- }
227
- prevRule = _this.getValidRules();
228
- }
229
- _this.prvtEvtTgrDaD = true;
230
- var tgrt = _this.enableSeparateConnector && e.target.parentElement &&
231
- e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;
232
- if (targetGroup && !isPreventelem) {
233
- var groupId_1 = targetGroup.id.split(_this.element.id + '_')[1].split('_')[0];
234
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||
235
- _this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
236
- var rule = void 0;
237
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
238
- rule = _this.getGroup(_this.draggedRule);
239
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
240
- }
241
- else {
242
- rule = _this.getRule(_this.draggedRule);
243
- _this.deleteRule(_this.draggedRule);
244
- }
245
- var groupRule = extend([], _this.getGroup(targetGroup), [], true);
246
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
247
- if (groupRule.properties) {
248
- groupRule = groupRule.properties;
249
- }
250
- var groupElem = closest(targetGroup, '.e-group-container');
251
- var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
252
- nestGrpElem.forEach(function (ele) {
253
- if (_this.element.querySelector('#' + ele.id)) {
254
- _this.deleteGroup(ele);
255
- }
256
- });
257
- var ruleElems = groupElem.querySelectorAll('.e-rule-container');
258
- var ruleIds = [];
259
- var dropInd = void 0;
260
- for (var i = 0; i < ruleElems.length; i++) {
261
- if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||
262
- ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {
263
- dropInd = i;
264
- }
265
- ruleIds.push(ruleElems[i].id.split(_this.element.id + '_')[1]);
266
- }
267
- _this.deleteRules(ruleIds);
268
- if (targetGroup.classList.contains('e-drag-rule-top-line')) {
269
- groupRule.rules.splice(dropInd, 0, rule);
270
- }
271
- else {
272
- groupRule.rules.splice(dropInd + 1, 0, rule);
273
- }
274
- groupRule.rules.forEach(function (rule) {
275
- if (_this.enableSeparateConnector) {
276
- if (!rule.rules) {
277
- _this.addRules([rule], groupId_1);
278
- }
279
- else {
280
- _this.addGroups([rule], groupId_1);
281
- }
282
- }
283
- else {
284
- if (rule.condition) {
285
- _this.addGroups([rule], groupId_1);
286
- }
287
- else {
288
- _this.addRules([rule], groupId_1);
289
- }
290
- }
291
- });
292
- }
293
- }
294
- else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {
295
- var groupElem = closest(tgrt, '.e-group-container');
296
- var groupId = groupElem.id.split(_this.element.id + '_')[1].split('_')[0];
297
- var rule = void 0;
298
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
299
- rule = _this.getGroup(_this.draggedRule);
300
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
301
- }
302
- else {
303
- rule = _this.getRule(_this.draggedRule);
304
- _this.deleteRule(_this.draggedRule);
305
- }
306
- if (_this.enableSeparateConnector) {
307
- if (!rule.rules) {
308
- _this.addRules([rule], groupId);
309
- }
310
- else {
311
- _this.addGroups([rule], groupId);
312
- }
313
- }
314
- else {
315
- if (rule.condition) {
316
- _this.addGroups([rule], groupId);
317
- }
318
- else {
319
- _this.addRules([rule], groupId);
320
- }
321
- }
322
- }
323
- else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {
324
- var groupElem = closest(tgrt, '.e-group-container');
325
- var groupId_2 = groupElem.id.split(_this.element.id + '_')[1].split('_')[0];
326
- var rule = void 0;
327
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
328
- rule = _this.getGroup(_this.draggedRule);
329
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
330
- }
331
- else {
332
- rule = _this.getRule(_this.draggedRule);
333
- _this.deleteRule(_this.draggedRule);
334
- }
335
- var groupRule = extend([], _this.getGroup(tgrt), [], true);
336
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
337
- if (groupRule.properties) {
338
- groupRule = groupRule.properties;
339
- }
340
- var groupElems = tgrt.querySelectorAll('.e-group-container');
341
- groupElems.forEach(function (ele) {
342
- if (_this.element.querySelector('#' + ele.id)) {
343
- _this.deleteGroup(ele);
344
- }
345
- });
346
- var ruleElems = groupElem.querySelectorAll('.e-rule-container');
347
- ruleElems.forEach(function (ele) {
348
- if (_this.element.querySelector('#' + ele.id)) {
349
- _this.deleteRule(ele);
350
- }
351
- });
352
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
353
- _this.addGroups([rule], groupId_2);
354
- }
355
- else {
356
- _this.addRules([rule], groupId_2);
357
- }
358
- groupRule.rules.forEach(function (rule) {
359
- if (_this.enableSeparateConnector) {
360
- if (!rule.rules) {
361
- _this.addRules([rule], groupId_2);
362
- }
363
- else {
364
- _this.addGroups([rule], groupId_2);
365
- }
366
- }
367
- else {
368
- if (rule.condition) {
369
- _this.addGroups([rule], groupId_2);
370
- }
371
- else {
372
- _this.addRules([rule], groupId_2);
373
- }
374
- }
375
- });
376
- }
377
- else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {
378
- var rule = void 0;
379
- targetGroup = closest(e.target, '.e-group-container');
380
- if (!targetGroup && e.target.classList.contains('e-group-container')) {
381
- targetGroup = e.target;
382
- }
383
- var groupId = targetGroup.id.split(_this.element.id + '_')[1].split('_')[0];
384
- if (groupId === 'group0') {
385
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
386
- rule = _this.getGroup(_this.draggedRule);
387
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
388
- }
389
- else {
390
- rule = _this.getRule(_this.draggedRule);
391
- _this.deleteRule(_this.draggedRule);
392
- }
393
- if (_this.enableSeparateConnector) {
394
- if (!rule.rules) {
395
- _this.addRules([rule], groupId);
396
- }
397
- else {
398
- _this.addGroups([rule], groupId);
399
- }
400
- }
401
- else {
402
- if (rule.condition) {
403
- _this.addGroups([rule], groupId);
404
- }
405
- else {
406
- _this.addRules([rule], groupId);
407
- }
408
- }
409
- }
410
- }
411
- if (!isPreventelem) {
412
- _this.trigger('ruleChange', { previousRule: prevRule, rule: _this.getValidRules(), type: 'drag-and-drop' });
413
- }
414
- _this.prvtEvtTgrDaD = false;
415
- document.body.classList.remove('e-prevent-select');
416
- var borderLineElem = _this.element.querySelectorAll('.e-drag-rule-bottom-line');
417
- borderLineElem.forEach(function (ele) {
418
- ele.classList.remove('e-drag-rule-bottom-line');
419
- });
420
- borderLineElem = _this.element.querySelectorAll('.e-drag-rule-top-line');
421
- borderLineElem.forEach(function (ele) {
422
- ele.classList.remove('e-drag-rule-top-line');
423
- });
424
- borderLineElem = _this.element.querySelectorAll('.e-qb-dragging-rule');
425
- borderLineElem.forEach(function (ele) {
426
- ele.classList.remove('e-qb-dragging-rule');
427
- });
428
- if (e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {
429
- remove(e.helper);
430
- }
431
- if (_this.enableSeparateConnector) {
432
- _this.refresh();
433
- }
434
- };
435
208
  MultiSelect.Inject(CheckBoxSelection);
436
209
  return _this;
437
210
  }
@@ -937,7 +710,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
937
710
  elem = template;
938
711
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
939
712
  append(elem, ruleElem);
940
- ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
713
+ if (ruleElem.children.length) {
714
+ ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
715
+ }
941
716
  }
942
717
  else {
943
718
  template = this.ruleTemplateFn(args, this, 'Template', templateID)[0];
@@ -1227,11 +1002,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1227
1002
  .filter(function (filteredChild) { return filteredChild !== null; });
1228
1003
  this.changeDataSource(matchedDataSource);
1229
1004
  setTimeout(function () {
1230
- proxy.ddTree.treeObj.expandAll();
1005
+ if (!isNullOrUndefined(proxy.ddTree) && !isNullOrUndefined(proxy.ddTree.treeObj)) {
1006
+ proxy.ddTree.treeObj.expandAll();
1007
+ }
1231
1008
  }, 100);
1232
1009
  }
1233
1010
  };
1234
1011
  QueryBuilder.prototype.changeDataSource = function (data) {
1012
+ this.updateDropdowntreeDS(data);
1235
1013
  this.ddTree.treeObj.fields = {
1236
1014
  dataSource: data,
1237
1015
  value: 'field',
@@ -1266,7 +1044,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1266
1044
  };
1267
1045
  QueryBuilder.prototype.dropdownTreeClose = function () {
1268
1046
  if (this.ddTree) {
1269
- this.changeDataSource(this.columns);
1047
+ this.changeDataSource(extend([], this.columns, [], true));
1270
1048
  }
1271
1049
  this.ddTree = null;
1272
1050
  };
@@ -1970,7 +1748,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1970
1748
  if (this.headerTemplate) {
1971
1749
  args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
1972
1750
  notCondition: this.enableNotCondition ? not : undefined,
1973
- condition: condition, rule: this.getRuleCollection(rule, true), groupID: groupID };
1751
+ condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID };
1974
1752
  this.trigger('actionBegin', args);
1975
1753
  if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
1976
1754
  args.requestType = 'rule-template-create';
@@ -2006,6 +1784,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2006
1784
  }
2007
1785
  else if (this.isVue3) {
2008
1786
  template = this.headerFn(args, this, groupElem.id, templateID);
1787
+ if (this.enableSeparateConnector && (isInitialRule || groupElem.id.indexOf('rule') !== -1)) {
1788
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1789
+ for (var i = 0; i < template.length; i++) {
1790
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1791
+ if (template[i].nodeName === 'DIV') {
1792
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1793
+ template = template[i];
1794
+ break;
1795
+ }
1796
+ }
1797
+ }
2009
1798
  if (this.enableSeparateConnector && isInitialRule) {
2010
1799
  this.enableSeparateConnectorInitialRule(groupElem, template);
2011
1800
  }
@@ -2209,7 +1998,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2209
1998
  var _this = this;
2210
1999
  var element;
2211
2000
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2212
- if (this.isNumInput && typeof args.value === 'number') {
2001
+ if ((this.isNumInput && typeof args.value === 'number') || (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox'))
2002
+ && (this.selectedColumn.validation.max !== Number.MAX_VALUE || this.selectedColumn.validation.min > 0)) {
2213
2003
  this.isNumInput = false;
2214
2004
  return;
2215
2005
  }
@@ -2222,7 +2012,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2222
2012
  element = args.event.target;
2223
2013
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2224
2014
  }
2225
- else if (args.type === 'input' && args.currentTarget) {
2015
+ else if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2226
2016
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2227
2017
  element = args.currentTarget;
2228
2018
  }
@@ -2284,7 +2074,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2284
2074
  else {
2285
2075
  value = args.value;
2286
2076
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2287
- if (args.type === 'input' && args.currentTarget) {
2077
+ if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2288
2078
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2289
2079
  value = Number(args.currentTarget.value);
2290
2080
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2334,7 +2124,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2334
2124
  this.isFieldClose = true;
2335
2125
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2336
2126
  var ddl = getComponent(id, 'dropdownlist');
2337
- var item = ddl.popupObj.element.querySelector('.e-active');
2127
+ var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
2338
2128
  var itemData = ddl.getItemData();
2339
2129
  ddl.value = itemData.value;
2340
2130
  var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
@@ -2673,13 +2463,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2673
2463
  }
2674
2464
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2675
2465
  var operator_2;
2676
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2677
- operatorList.forEach(function (obj) {
2678
- if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2679
- operator_2 = obj.value;
2680
- }
2681
- });
2682
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2466
+ if (rule.operator) {
2467
+ operatorList.forEach(function (obj) {
2468
+ if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2469
+ operator_2 = obj.value;
2470
+ }
2471
+ });
2472
+ }
2683
2473
  var value = operator_2 ? operator_2 : operatorList[0].value;
2684
2474
  var ddlIdx = 0;
2685
2475
  if (!this.autoSelectOperator) {
@@ -3014,8 +2804,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3014
2804
  QueryBuilder.prototype.closePopup = function (i, args) {
3015
2805
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
3016
2806
  if (element) {
3017
- var value = getComponent(element, 'multiselect').value;
3018
- this.updateRules(element, value, i);
2807
+ var ms = getComponent(element, 'multiselect');
2808
+ if (ms) {
2809
+ var value = ms.value;
2810
+ this.updateRules(element, value, i);
2811
+ }
3019
2812
  }
3020
2813
  };
3021
2814
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
@@ -4647,6 +4440,237 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4647
4440
  this.trigger('drag', dragEventArgs);
4648
4441
  this.isDragEventPrevent = dragEventArgs.cancel;
4649
4442
  };
4443
+ QueryBuilder.prototype.dragStopHandler = function (e) {
4444
+ var _this = this;
4445
+ if (this.isDragEventPrevent) {
4446
+ return;
4447
+ }
4448
+ var targetGroup = closest(e.target, '.e-rule-container');
4449
+ if (isNullOrUndefined(targetGroup) && e.target.parentElement &&
4450
+ e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector) {
4451
+ targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');
4452
+ }
4453
+ var isPreventelem;
4454
+ if (!isNullOrUndefined(e.helper)) {
4455
+ isPreventelem = closest(e.helper, '.e-notallowedcur');
4456
+ }
4457
+ var prevRule;
4458
+ if (!isPreventelem) {
4459
+ var targetGrp = closest(e.target, '.e-group-container');
4460
+ var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
4461
+ : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };
4462
+ this.trigger('drop', dropEventArgs);
4463
+ if (dropEventArgs.cancel) {
4464
+ isPreventelem = true;
4465
+ }
4466
+ prevRule = this.getValidRules();
4467
+ }
4468
+ this.prvtEvtTgrDaD = true;
4469
+ var tgrt = this.enableSeparateConnector && e.target.parentElement &&
4470
+ e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;
4471
+ if (targetGroup && !isPreventelem) {
4472
+ var groupId_1 = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4473
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||
4474
+ this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4475
+ var rule = void 0;
4476
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4477
+ rule = this.getGroup(this.draggedRule);
4478
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4479
+ }
4480
+ else {
4481
+ rule = this.getRule(this.draggedRule);
4482
+ this.deleteRule(this.draggedRule);
4483
+ }
4484
+ var groupRule = extend([], this.getGroup(targetGroup), [], true);
4485
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4486
+ if (groupRule.properties) {
4487
+ groupRule = groupRule.properties;
4488
+ }
4489
+ var groupElem = closest(targetGroup, '.e-group-container');
4490
+ var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
4491
+ nestGrpElem.forEach(function (ele) {
4492
+ if (_this.element.querySelector('#' + ele.id)) {
4493
+ _this.deleteGroup(ele);
4494
+ }
4495
+ });
4496
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4497
+ var ruleIds = [];
4498
+ var dropInd = void 0;
4499
+ for (var i = 0; i < ruleElems.length; i++) {
4500
+ if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||
4501
+ ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {
4502
+ dropInd = i;
4503
+ }
4504
+ ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
4505
+ }
4506
+ this.deleteRules(ruleIds);
4507
+ if (targetGroup.classList.contains('e-drag-rule-top-line')) {
4508
+ groupRule.rules.splice(dropInd, 0, rule);
4509
+ }
4510
+ else {
4511
+ groupRule.rules.splice(dropInd + 1, 0, rule);
4512
+ }
4513
+ groupRule.rules.forEach(function (rule) {
4514
+ if (_this.enableSeparateConnector) {
4515
+ if (!rule.rules) {
4516
+ _this.addRules([rule], groupId_1);
4517
+ }
4518
+ else {
4519
+ _this.addGroups([rule], groupId_1);
4520
+ }
4521
+ }
4522
+ else {
4523
+ if (rule.condition) {
4524
+ _this.addGroups([rule], groupId_1);
4525
+ }
4526
+ else {
4527
+ _this.addRules([rule], groupId_1);
4528
+ }
4529
+ }
4530
+ });
4531
+ }
4532
+ }
4533
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {
4534
+ var groupElem = closest(tgrt, '.e-group-container');
4535
+ var groupId = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4536
+ var rule = void 0;
4537
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4538
+ rule = this.getGroup(this.draggedRule);
4539
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4540
+ }
4541
+ else {
4542
+ rule = this.getRule(this.draggedRule);
4543
+ this.deleteRule(this.draggedRule);
4544
+ }
4545
+ if (this.enableSeparateConnector) {
4546
+ if (!rule.rules) {
4547
+ this.addRules([rule], groupId);
4548
+ }
4549
+ else {
4550
+ this.addGroups([rule], groupId);
4551
+ }
4552
+ }
4553
+ else {
4554
+ if (rule.condition) {
4555
+ this.addGroups([rule], groupId);
4556
+ }
4557
+ else {
4558
+ this.addRules([rule], groupId);
4559
+ }
4560
+ }
4561
+ }
4562
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {
4563
+ var groupElem = closest(tgrt, '.e-group-container');
4564
+ var groupId_2 = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4565
+ var rule = void 0;
4566
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4567
+ rule = this.getGroup(this.draggedRule);
4568
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4569
+ }
4570
+ else {
4571
+ rule = this.getRule(this.draggedRule);
4572
+ this.deleteRule(this.draggedRule);
4573
+ }
4574
+ var groupRule = extend([], this.getGroup(tgrt), [], true);
4575
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4576
+ if (groupRule.properties) {
4577
+ groupRule = groupRule.properties;
4578
+ }
4579
+ var groupElems = tgrt.querySelectorAll('.e-group-container');
4580
+ groupElems.forEach(function (ele) {
4581
+ if (_this.element.querySelector('#' + ele.id)) {
4582
+ _this.deleteGroup(ele);
4583
+ }
4584
+ });
4585
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4586
+ ruleElems.forEach(function (ele) {
4587
+ if (_this.element.querySelector('#' + ele.id)) {
4588
+ _this.deleteRule(ele);
4589
+ }
4590
+ });
4591
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4592
+ this.addGroups([rule], groupId_2);
4593
+ }
4594
+ else {
4595
+ this.addRules([rule], groupId_2);
4596
+ }
4597
+ groupRule.rules.forEach(function (rule) {
4598
+ if (_this.enableSeparateConnector) {
4599
+ if (!rule.rules) {
4600
+ _this.addRules([rule], groupId_2);
4601
+ }
4602
+ else {
4603
+ _this.addGroups([rule], groupId_2);
4604
+ }
4605
+ }
4606
+ else {
4607
+ if (rule.condition) {
4608
+ _this.addGroups([rule], groupId_2);
4609
+ }
4610
+ else {
4611
+ _this.addRules([rule], groupId_2);
4612
+ }
4613
+ }
4614
+ });
4615
+ }
4616
+ else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {
4617
+ var rule = void 0;
4618
+ targetGroup = closest(e.target, '.e-group-container');
4619
+ if (!targetGroup && e.target.classList.contains('e-group-container')) {
4620
+ targetGroup = e.target;
4621
+ }
4622
+ var groupId = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4623
+ if (groupId === 'group0') {
4624
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4625
+ rule = this.getGroup(this.draggedRule);
4626
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4627
+ }
4628
+ else {
4629
+ rule = this.getRule(this.draggedRule);
4630
+ this.deleteRule(this.draggedRule);
4631
+ }
4632
+ if (this.enableSeparateConnector) {
4633
+ if (!rule.rules) {
4634
+ this.addRules([rule], groupId);
4635
+ }
4636
+ else {
4637
+ this.addGroups([rule], groupId);
4638
+ }
4639
+ }
4640
+ else {
4641
+ if (rule.condition) {
4642
+ this.addGroups([rule], groupId);
4643
+ }
4644
+ else {
4645
+ this.addRules([rule], groupId);
4646
+ }
4647
+ }
4648
+ }
4649
+ }
4650
+ if (!isPreventelem) {
4651
+ this.trigger('ruleChange', { previousRule: prevRule, rule: this.getValidRules(), type: 'drag-and-drop' });
4652
+ }
4653
+ this.prvtEvtTgrDaD = false;
4654
+ document.body.classList.remove('e-prevent-select');
4655
+ var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');
4656
+ borderLineElem.forEach(function (ele) {
4657
+ ele.classList.remove('e-drag-rule-bottom-line');
4658
+ });
4659
+ borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');
4660
+ borderLineElem.forEach(function (ele) {
4661
+ ele.classList.remove('e-drag-rule-top-line');
4662
+ });
4663
+ borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');
4664
+ borderLineElem.forEach(function (ele) {
4665
+ ele.classList.remove('e-qb-dragging-rule');
4666
+ });
4667
+ if (e.helper && e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {
4668
+ remove(e.helper);
4669
+ }
4670
+ if (this.enableSeparateConnector) {
4671
+ this.refresh();
4672
+ }
4673
+ };
4650
4674
  QueryBuilder.prototype.templateParser = function (template) {
4651
4675
  if (template) {
4652
4676
  try {
@@ -4722,10 +4746,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4722
4746
  if (typeof target === 'string') {
4723
4747
  groupId = this.element.id + '_' + target;
4724
4748
  target = document.getElementById(groupId);
4749
+ groupId = groupId.replace(this.element.id + '_', '');
4725
4750
  }
4726
4751
  else {
4727
4752
  groupId = groupElem.id.replace(this.element.id + '_', '');
4728
4753
  }
4754
+ if (groupId === 'group0' || !target) {
4755
+ return;
4756
+ }
4729
4757
  var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };
4730
4758
  if (!this.isImportRules && !this.prvtEvtTgrDaD) {
4731
4759
  this.trigger('beforeChange', args, function (observedChangeArgs) {
@@ -5091,7 +5119,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5091
5119
  }
5092
5120
  }
5093
5121
  }
5094
- else if (!isNewRuleAdded) {
5122
+ else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {
5095
5123
  andElem.checked = false;
5096
5124
  andElem.disabled = true;
5097
5125
  orElem.checked = false;
@@ -5309,6 +5337,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5309
5337
  var len = groupIdColl.length;
5310
5338
  var groupID;
5311
5339
  for (i = 0; i < len; i++) {
5340
+ if (groupIdColl[i] === 'group0') {
5341
+ continue;
5342
+ }
5312
5343
  groupID = this.element.id + '_' + groupIdColl[i];
5313
5344
  this.deleteGroup(document.getElementById(groupID));
5314
5345
  }
@@ -6430,9 +6461,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
6430
6461
  return matchValue.length + 2;
6431
6462
  }
6432
6463
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
6433
- matchValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString)[0];
6434
- this.parser.push(['Literal', matchValue]);
6435
- return matchValue.length;
6464
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6465
+ var regExValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString);
6466
+ if (regExValue) {
6467
+ matchValue = regExValue[0];
6468
+ this.parser.push(['Literal', matchValue]);
6469
+ return matchValue.length;
6470
+ }
6436
6471
  }
6437
6472
  //String
6438
6473
  var singleString = this.getSingleQuoteString(sqlString);
@@ -6846,16 +6881,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
6846
6881
  */
6847
6882
  QueryBuilder.prototype.groupClone = function (target) {
6848
6883
  var groupElem = target.closest('.e-rule-list').closest('.e-group-container');
6849
- var targetGrpId;
6850
- var groupId;
6851
- if (typeof target === 'string') {
6852
- groupId = this.element.id + '_' + target;
6853
- target = document.getElementById(groupId);
6854
- }
6855
- else {
6856
- targetGrpId = target.id.replace(this.element.id + '_', '');
6857
- groupId = groupElem.id.replace(this.element.id + '_', '');
6858
- }
6884
+ var targetGrpId = target.id.replace(this.element.id + '_', '');
6885
+ var groupId = groupElem.id.replace(this.element.id + '_', '');
6859
6886
  var group = this.getGroup(targetGrpId);
6860
6887
  this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));
6861
6888
  this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);