@syncfusion/ej2-querybuilder 26.2.11 → 27.1.48

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 (132) 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 +278 -259
  6. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  7. package/dist/es6/ej2-querybuilder.es5.js +279 -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 +13 -12
  13. package/src/query-builder/query-builder.d.ts +0 -1
  14. package/src/query-builder/query-builder.js +278 -258
  15. package/styles/bootstrap-dark-lite.css +728 -0
  16. package/styles/bootstrap-dark-lite.scss +15 -0
  17. package/styles/bootstrap-dark.css +114 -170
  18. package/styles/bootstrap-dark.scss +1 -0
  19. package/styles/bootstrap-lite.css +713 -0
  20. package/styles/bootstrap-lite.scss +15 -0
  21. package/styles/bootstrap.css +106 -162
  22. package/styles/bootstrap.scss +1 -0
  23. package/styles/bootstrap4-lite.css +781 -0
  24. package/styles/bootstrap4-lite.scss +15 -0
  25. package/styles/bootstrap4.css +120 -231
  26. package/styles/bootstrap4.scss +1 -0
  27. package/styles/bootstrap5-dark-lite.css +764 -0
  28. package/styles/bootstrap5-dark-lite.scss +15 -0
  29. package/styles/bootstrap5-dark.css +109 -165
  30. package/styles/bootstrap5-dark.scss +1 -0
  31. package/styles/bootstrap5-lite.css +764 -0
  32. package/styles/bootstrap5-lite.scss +15 -0
  33. package/styles/bootstrap5.3-lite.css +775 -0
  34. package/styles/bootstrap5.3-lite.scss +15 -0
  35. package/styles/bootstrap5.3.css +959 -0
  36. package/styles/bootstrap5.3.scss +16 -0
  37. package/styles/bootstrap5.css +109 -165
  38. package/styles/bootstrap5.scss +1 -0
  39. package/styles/fabric-dark-lite.css +690 -0
  40. package/styles/fabric-dark-lite.scss +15 -0
  41. package/styles/fabric-dark.css +108 -156
  42. package/styles/fabric-dark.scss +1 -0
  43. package/styles/fabric-lite.css +679 -0
  44. package/styles/fabric-lite.scss +15 -0
  45. package/styles/fabric.css +102 -143
  46. package/styles/fabric.scss +1 -0
  47. package/styles/fluent-dark-lite.css +759 -0
  48. package/styles/fluent-dark-lite.scss +15 -0
  49. package/styles/fluent-dark.css +111 -159
  50. package/styles/fluent-dark.scss +1 -0
  51. package/styles/fluent-lite.css +759 -0
  52. package/styles/fluent-lite.scss +15 -0
  53. package/styles/fluent.css +111 -159
  54. package/styles/fluent.scss +1 -0
  55. package/styles/fluent2-lite.css +771 -0
  56. package/styles/fluent2-lite.scss +15 -0
  57. package/styles/fluent2.css +113 -150
  58. package/styles/fluent2.scss +1 -0
  59. package/styles/highcontrast-light-lite.css +773 -0
  60. package/styles/highcontrast-light-lite.scss +15 -0
  61. package/styles/highcontrast-light.css +101 -135
  62. package/styles/highcontrast-light.scss +1 -0
  63. package/styles/highcontrast-lite.css +801 -0
  64. package/styles/highcontrast-lite.scss +15 -0
  65. package/styles/highcontrast.css +122 -156
  66. package/styles/highcontrast.scss +1 -0
  67. package/styles/material-dark-lite.css +725 -0
  68. package/styles/material-dark-lite.scss +15 -0
  69. package/styles/material-dark.css +105 -131
  70. package/styles/material-dark.scss +1 -0
  71. package/styles/material-lite.css +731 -0
  72. package/styles/material-lite.scss +15 -0
  73. package/styles/material.css +105 -152
  74. package/styles/material.scss +1 -0
  75. package/styles/material3-dark-lite.css +738 -0
  76. package/styles/material3-dark-lite.scss +15 -0
  77. package/styles/material3-dark.css +101 -157
  78. package/styles/material3-dark.scss +1 -0
  79. package/styles/material3-lite.css +740 -0
  80. package/styles/material3-lite.scss +15 -0
  81. package/styles/material3.css +101 -157
  82. package/styles/material3.scss +1 -0
  83. package/styles/query-builder/_bigger.scss +208 -0
  84. package/styles/query-builder/_bootstrap5.3-definition.scss +1 -1
  85. package/styles/query-builder/_layout.scss +5 -210
  86. package/styles/query-builder/_theme.scss +10 -3
  87. package/styles/query-builder/bootstrap-dark.css +114 -170
  88. package/styles/query-builder/bootstrap-dark.scss +1 -0
  89. package/styles/query-builder/bootstrap.css +106 -162
  90. package/styles/query-builder/bootstrap.scss +1 -0
  91. package/styles/query-builder/bootstrap4.css +120 -231
  92. package/styles/query-builder/bootstrap4.scss +1 -0
  93. package/styles/query-builder/bootstrap5-dark.css +109 -165
  94. package/styles/query-builder/bootstrap5-dark.scss +1 -0
  95. package/styles/query-builder/bootstrap5.3.css +959 -0
  96. package/styles/query-builder/bootstrap5.3.scss +16 -0
  97. package/styles/query-builder/bootstrap5.css +109 -165
  98. package/styles/query-builder/bootstrap5.scss +1 -0
  99. package/styles/query-builder/fabric-dark.css +108 -156
  100. package/styles/query-builder/fabric-dark.scss +1 -0
  101. package/styles/query-builder/fabric.css +102 -143
  102. package/styles/query-builder/fabric.scss +1 -0
  103. package/styles/query-builder/fluent-dark.css +111 -159
  104. package/styles/query-builder/fluent-dark.scss +1 -0
  105. package/styles/query-builder/fluent.css +111 -159
  106. package/styles/query-builder/fluent.scss +1 -0
  107. package/styles/query-builder/fluent2.css +113 -150
  108. package/styles/query-builder/fluent2.scss +1 -0
  109. package/styles/query-builder/highcontrast-light.css +101 -135
  110. package/styles/query-builder/highcontrast-light.scss +1 -0
  111. package/styles/query-builder/highcontrast.css +122 -156
  112. package/styles/query-builder/highcontrast.scss +1 -0
  113. package/styles/query-builder/material-dark.css +105 -131
  114. package/styles/query-builder/material-dark.scss +1 -0
  115. package/styles/query-builder/material.css +105 -152
  116. package/styles/query-builder/material.scss +1 -0
  117. package/styles/query-builder/material3-dark.css +101 -157
  118. package/styles/query-builder/material3-dark.scss +1 -0
  119. package/styles/query-builder/material3.css +101 -157
  120. package/styles/query-builder/material3.scss +1 -0
  121. package/styles/query-builder/tailwind-dark.css +100 -137
  122. package/styles/query-builder/tailwind-dark.scss +1 -0
  123. package/styles/query-builder/tailwind.css +100 -137
  124. package/styles/query-builder/tailwind.scss +1 -0
  125. package/styles/tailwind-dark-lite.css +726 -0
  126. package/styles/tailwind-dark-lite.scss +15 -0
  127. package/styles/tailwind-dark.css +100 -137
  128. package/styles/tailwind-dark.scss +1 -0
  129. package/styles/tailwind-lite.css +726 -0
  130. package/styles/tailwind-lite.scss +15 -0
  131. package/styles/tailwind.css +100 -137
  132. 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';
@@ -204,234 +204,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
204
204
  _this.cloneGrpBtnClick = false;
205
205
  _this.isMiddleGroup = false;
206
206
  _this.cloneRuleBtnClick = false;
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
207
  MultiSelect.Inject(CheckBoxSelection);
436
208
  return _this;
437
209
  }
@@ -937,7 +709,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
937
709
  elem = template;
938
710
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
939
711
  append(elem, ruleElem);
940
- ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
712
+ if (ruleElem.children.length) {
713
+ ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
714
+ }
941
715
  }
942
716
  else {
943
717
  template = this.ruleTemplateFn(args, this, 'Template', templateID)[0];
@@ -1227,7 +1001,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1227
1001
  .filter(function (filteredChild) { return filteredChild !== null; });
1228
1002
  this.changeDataSource(matchedDataSource);
1229
1003
  setTimeout(function () {
1230
- proxy.ddTree.treeObj.expandAll();
1004
+ if (!isNullOrUndefined(proxy.ddTree)) {
1005
+ proxy.ddTree.treeObj.expandAll();
1006
+ }
1231
1007
  }, 100);
1232
1008
  }
1233
1009
  };
@@ -1970,7 +1746,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1970
1746
  if (this.headerTemplate) {
1971
1747
  args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
1972
1748
  notCondition: this.enableNotCondition ? not : undefined,
1973
- condition: condition, rule: this.getRuleCollection(rule, true), groupID: groupID };
1749
+ condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID };
1974
1750
  this.trigger('actionBegin', args);
1975
1751
  if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
1976
1752
  args.requestType = 'rule-template-create';
@@ -2006,6 +1782,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2006
1782
  }
2007
1783
  else if (this.isVue3) {
2008
1784
  template = this.headerFn(args, this, groupElem.id, templateID);
1785
+ if (this.enableSeparateConnector && (isInitialRule || groupElem.id.indexOf('rule') !== -1)) {
1786
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1787
+ for (var i = 0; i < template.length; i++) {
1788
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1789
+ if (template[i].nodeName === 'DIV') {
1790
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1791
+ template = template[i];
1792
+ break;
1793
+ }
1794
+ }
1795
+ }
2009
1796
  if (this.enableSeparateConnector && isInitialRule) {
2010
1797
  this.enableSeparateConnectorInitialRule(groupElem, template);
2011
1798
  }
@@ -2209,7 +1996,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2209
1996
  var _this = this;
2210
1997
  var element;
2211
1998
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2212
- if (this.isNumInput && typeof args.value === 'number') {
1999
+ if ((this.isNumInput && typeof args.value === 'number') || (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox'))
2000
+ && (this.selectedColumn.validation.max !== Number.MAX_VALUE || this.selectedColumn.validation.min > 0)) {
2213
2001
  this.isNumInput = false;
2214
2002
  return;
2215
2003
  }
@@ -2222,7 +2010,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2222
2010
  element = args.event.target;
2223
2011
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2224
2012
  }
2225
- else if (args.type === 'input' && args.currentTarget) {
2013
+ else if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2226
2014
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2227
2015
  element = args.currentTarget;
2228
2016
  }
@@ -2284,7 +2072,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2284
2072
  else {
2285
2073
  value = args.value;
2286
2074
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2287
- if (args.type === 'input' && args.currentTarget) {
2075
+ if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2288
2076
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2289
2077
  value = Number(args.currentTarget.value);
2290
2078
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2334,7 +2122,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2334
2122
  this.isFieldClose = true;
2335
2123
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2336
2124
  var ddl = getComponent(id, 'dropdownlist');
2337
- var item = ddl.popupObj.element.querySelector('.e-active');
2125
+ var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
2338
2126
  var itemData = ddl.getItemData();
2339
2127
  ddl.value = itemData.value;
2340
2128
  var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
@@ -2673,13 +2461,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2673
2461
  }
2674
2462
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2675
2463
  var operator_2;
2676
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2677
2464
  operatorList.forEach(function (obj) {
2678
2465
  if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2679
2466
  operator_2 = obj.value;
2680
2467
  }
2681
2468
  });
2682
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2683
2469
  var value = operator_2 ? operator_2 : operatorList[0].value;
2684
2470
  var ddlIdx = 0;
2685
2471
  if (!this.autoSelectOperator) {
@@ -3014,8 +2800,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3014
2800
  QueryBuilder.prototype.closePopup = function (i, args) {
3015
2801
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
3016
2802
  if (element) {
3017
- var value = getComponent(element, 'multiselect').value;
3018
- this.updateRules(element, value, i);
2803
+ var ms = getComponent(element, 'multiselect');
2804
+ if (ms) {
2805
+ var value = ms.value;
2806
+ this.updateRules(element, value, i);
2807
+ }
3019
2808
  }
3020
2809
  };
3021
2810
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
@@ -4647,6 +4436,237 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4647
4436
  this.trigger('drag', dragEventArgs);
4648
4437
  this.isDragEventPrevent = dragEventArgs.cancel;
4649
4438
  };
4439
+ QueryBuilder.prototype.dragStopHandler = function (e) {
4440
+ var _this = this;
4441
+ if (this.isDragEventPrevent) {
4442
+ return;
4443
+ }
4444
+ var targetGroup = closest(e.target, '.e-rule-container');
4445
+ if (isNullOrUndefined(targetGroup) && e.target.parentElement &&
4446
+ e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector) {
4447
+ targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');
4448
+ }
4449
+ var isPreventelem;
4450
+ if (!isNullOrUndefined(e.helper)) {
4451
+ isPreventelem = closest(e.helper, '.e-notallowedcur');
4452
+ }
4453
+ var prevRule;
4454
+ if (!isPreventelem) {
4455
+ var targetGrp = closest(e.target, '.e-group-container');
4456
+ var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
4457
+ : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };
4458
+ this.trigger('drop', dropEventArgs);
4459
+ if (dropEventArgs.cancel) {
4460
+ isPreventelem = true;
4461
+ }
4462
+ prevRule = this.getValidRules();
4463
+ }
4464
+ this.prvtEvtTgrDaD = true;
4465
+ var tgrt = this.enableSeparateConnector && e.target.parentElement &&
4466
+ e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;
4467
+ if (targetGroup && !isPreventelem) {
4468
+ var groupId_1 = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4469
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||
4470
+ this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4471
+ var rule = void 0;
4472
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4473
+ rule = this.getGroup(this.draggedRule);
4474
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4475
+ }
4476
+ else {
4477
+ rule = this.getRule(this.draggedRule);
4478
+ this.deleteRule(this.draggedRule);
4479
+ }
4480
+ var groupRule = extend([], this.getGroup(targetGroup), [], true);
4481
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4482
+ if (groupRule.properties) {
4483
+ groupRule = groupRule.properties;
4484
+ }
4485
+ var groupElem = closest(targetGroup, '.e-group-container');
4486
+ var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
4487
+ nestGrpElem.forEach(function (ele) {
4488
+ if (_this.element.querySelector('#' + ele.id)) {
4489
+ _this.deleteGroup(ele);
4490
+ }
4491
+ });
4492
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4493
+ var ruleIds = [];
4494
+ var dropInd = void 0;
4495
+ for (var i = 0; i < ruleElems.length; i++) {
4496
+ if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||
4497
+ ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {
4498
+ dropInd = i;
4499
+ }
4500
+ ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
4501
+ }
4502
+ this.deleteRules(ruleIds);
4503
+ if (targetGroup.classList.contains('e-drag-rule-top-line')) {
4504
+ groupRule.rules.splice(dropInd, 0, rule);
4505
+ }
4506
+ else {
4507
+ groupRule.rules.splice(dropInd + 1, 0, rule);
4508
+ }
4509
+ groupRule.rules.forEach(function (rule) {
4510
+ if (_this.enableSeparateConnector) {
4511
+ if (!rule.rules) {
4512
+ _this.addRules([rule], groupId_1);
4513
+ }
4514
+ else {
4515
+ _this.addGroups([rule], groupId_1);
4516
+ }
4517
+ }
4518
+ else {
4519
+ if (rule.condition) {
4520
+ _this.addGroups([rule], groupId_1);
4521
+ }
4522
+ else {
4523
+ _this.addRules([rule], groupId_1);
4524
+ }
4525
+ }
4526
+ });
4527
+ }
4528
+ }
4529
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {
4530
+ var groupElem = closest(tgrt, '.e-group-container');
4531
+ var groupId = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4532
+ var rule = void 0;
4533
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4534
+ rule = this.getGroup(this.draggedRule);
4535
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4536
+ }
4537
+ else {
4538
+ rule = this.getRule(this.draggedRule);
4539
+ this.deleteRule(this.draggedRule);
4540
+ }
4541
+ if (this.enableSeparateConnector) {
4542
+ if (!rule.rules) {
4543
+ this.addRules([rule], groupId);
4544
+ }
4545
+ else {
4546
+ this.addGroups([rule], groupId);
4547
+ }
4548
+ }
4549
+ else {
4550
+ if (rule.condition) {
4551
+ this.addGroups([rule], groupId);
4552
+ }
4553
+ else {
4554
+ this.addRules([rule], groupId);
4555
+ }
4556
+ }
4557
+ }
4558
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {
4559
+ var groupElem = closest(tgrt, '.e-group-container');
4560
+ var groupId_2 = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4561
+ var rule = void 0;
4562
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4563
+ rule = this.getGroup(this.draggedRule);
4564
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4565
+ }
4566
+ else {
4567
+ rule = this.getRule(this.draggedRule);
4568
+ this.deleteRule(this.draggedRule);
4569
+ }
4570
+ var groupRule = extend([], this.getGroup(tgrt), [], true);
4571
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4572
+ if (groupRule.properties) {
4573
+ groupRule = groupRule.properties;
4574
+ }
4575
+ var groupElems = tgrt.querySelectorAll('.e-group-container');
4576
+ groupElems.forEach(function (ele) {
4577
+ if (_this.element.querySelector('#' + ele.id)) {
4578
+ _this.deleteGroup(ele);
4579
+ }
4580
+ });
4581
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4582
+ ruleElems.forEach(function (ele) {
4583
+ if (_this.element.querySelector('#' + ele.id)) {
4584
+ _this.deleteRule(ele);
4585
+ }
4586
+ });
4587
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4588
+ this.addGroups([rule], groupId_2);
4589
+ }
4590
+ else {
4591
+ this.addRules([rule], groupId_2);
4592
+ }
4593
+ groupRule.rules.forEach(function (rule) {
4594
+ if (_this.enableSeparateConnector) {
4595
+ if (!rule.rules) {
4596
+ _this.addRules([rule], groupId_2);
4597
+ }
4598
+ else {
4599
+ _this.addGroups([rule], groupId_2);
4600
+ }
4601
+ }
4602
+ else {
4603
+ if (rule.condition) {
4604
+ _this.addGroups([rule], groupId_2);
4605
+ }
4606
+ else {
4607
+ _this.addRules([rule], groupId_2);
4608
+ }
4609
+ }
4610
+ });
4611
+ }
4612
+ else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {
4613
+ var rule = void 0;
4614
+ targetGroup = closest(e.target, '.e-group-container');
4615
+ if (!targetGroup && e.target.classList.contains('e-group-container')) {
4616
+ targetGroup = e.target;
4617
+ }
4618
+ var groupId = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4619
+ if (groupId === 'group0') {
4620
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4621
+ rule = this.getGroup(this.draggedRule);
4622
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4623
+ }
4624
+ else {
4625
+ rule = this.getRule(this.draggedRule);
4626
+ this.deleteRule(this.draggedRule);
4627
+ }
4628
+ if (this.enableSeparateConnector) {
4629
+ if (!rule.rules) {
4630
+ this.addRules([rule], groupId);
4631
+ }
4632
+ else {
4633
+ this.addGroups([rule], groupId);
4634
+ }
4635
+ }
4636
+ else {
4637
+ if (rule.condition) {
4638
+ this.addGroups([rule], groupId);
4639
+ }
4640
+ else {
4641
+ this.addRules([rule], groupId);
4642
+ }
4643
+ }
4644
+ }
4645
+ }
4646
+ if (!isPreventelem) {
4647
+ this.trigger('ruleChange', { previousRule: prevRule, rule: this.getValidRules(), type: 'drag-and-drop' });
4648
+ }
4649
+ this.prvtEvtTgrDaD = false;
4650
+ document.body.classList.remove('e-prevent-select');
4651
+ var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');
4652
+ borderLineElem.forEach(function (ele) {
4653
+ ele.classList.remove('e-drag-rule-bottom-line');
4654
+ });
4655
+ borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');
4656
+ borderLineElem.forEach(function (ele) {
4657
+ ele.classList.remove('e-drag-rule-top-line');
4658
+ });
4659
+ borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');
4660
+ borderLineElem.forEach(function (ele) {
4661
+ ele.classList.remove('e-qb-dragging-rule');
4662
+ });
4663
+ if (e.helper && e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {
4664
+ remove(e.helper);
4665
+ }
4666
+ if (this.enableSeparateConnector) {
4667
+ this.refresh();
4668
+ }
4669
+ };
4650
4670
  QueryBuilder.prototype.templateParser = function (template) {
4651
4671
  if (template) {
4652
4672
  try {
@@ -4722,10 +4742,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4722
4742
  if (typeof target === 'string') {
4723
4743
  groupId = this.element.id + '_' + target;
4724
4744
  target = document.getElementById(groupId);
4745
+ groupId = groupId.replace(this.element.id + '_', '');
4725
4746
  }
4726
4747
  else {
4727
4748
  groupId = groupElem.id.replace(this.element.id + '_', '');
4728
4749
  }
4750
+ if (groupId === 'group0' || !target) {
4751
+ return;
4752
+ }
4729
4753
  var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };
4730
4754
  if (!this.isImportRules && !this.prvtEvtTgrDaD) {
4731
4755
  this.trigger('beforeChange', args, function (observedChangeArgs) {
@@ -5091,7 +5115,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5091
5115
  }
5092
5116
  }
5093
5117
  }
5094
- else if (!isNewRuleAdded) {
5118
+ else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {
5095
5119
  andElem.checked = false;
5096
5120
  andElem.disabled = true;
5097
5121
  orElem.checked = false;
@@ -5111,7 +5135,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5111
5135
  * @returns {RuleModel} - Valid rule or rules collection
5112
5136
  */
5113
5137
  QueryBuilder.prototype.getValidRules = function (currentRule) {
5114
- this.isValueEmpty = true;
5115
5138
  if (!currentRule) {
5116
5139
  currentRule = this.getRules();
5117
5140
  }
@@ -5121,7 +5144,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5121
5144
  var rule = !isNullOrUndefined(currentRule.isLocked) ?
5122
5145
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :
5123
5146
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);
5124
- this.isValueEmpty = false;
5125
5147
  return rule;
5126
5148
  };
5127
5149
  QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {
@@ -5151,9 +5173,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5151
5173
  rule.value = null;
5152
5174
  }
5153
5175
  }
5154
- if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&
5155
- (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||
5156
- (customObj && customObj.isQuestion)) {
5176
+ if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
5177
+ rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
5157
5178
  var condition = rule.condition;
5158
5179
  var lockedRule = rule.isLocked;
5159
5180
  rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };
@@ -5309,6 +5330,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5309
5330
  var len = groupIdColl.length;
5310
5331
  var groupID;
5311
5332
  for (i = 0; i < len; i++) {
5333
+ if (groupIdColl[i] === 'group0') {
5334
+ continue;
5335
+ }
5312
5336
  groupID = this.element.id + '_' + groupIdColl[i];
5313
5337
  this.deleteGroup(document.getElementById(groupID));
5314
5338
  }
@@ -6430,9 +6454,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
6430
6454
  return matchValue.length + 2;
6431
6455
  }
6432
6456
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
6433
- matchValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString)[0];
6434
- this.parser.push(['Literal', matchValue]);
6435
- return matchValue.length;
6457
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6458
+ var regExValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString);
6459
+ if (regExValue) {
6460
+ matchValue = regExValue[0];
6461
+ this.parser.push(['Literal', matchValue]);
6462
+ return matchValue.length;
6463
+ }
6436
6464
  }
6437
6465
  //String
6438
6466
  var singleString = this.getSingleQuoteString(sqlString);
@@ -6846,16 +6874,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
6846
6874
  */
6847
6875
  QueryBuilder.prototype.groupClone = function (target) {
6848
6876
  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
- }
6877
+ var targetGrpId = target.id.replace(this.element.id + '_', '');
6878
+ var groupId = groupElem.id.replace(this.element.id + '_', '');
6859
6879
  var group = this.getGroup(targetGrpId);
6860
6880
  this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));
6861
6881
  this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);