@syncfusion/ej2-querybuilder 26.2.10 → 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 (133) 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 +279 -261
  6. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  7. package/dist/es6/ej2-querybuilder.es5.js +280 -261
  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 +279 -260
  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
  133. package/hotfix/26.1.35_Vol2.txt +0 -1
@@ -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
@@ -2292,8 +2080,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2292
2080
  var numericTextBoxObj = getInstance(elem, NumericTextBox);
2293
2081
  var decimalSeparator = getValue('decimal', getNumericObject(this.locale));
2294
2082
  if (isNaN(value) && elem.value.indexOf(decimalSeparator) !== -1) {
2295
- var numberValue = parseFloat(args.currentTarget.value);
2296
- value = numberValue;
2083
+ value = this.intl.getNumberParser({ format: 'n' })(elem.value);
2297
2084
  }
2298
2085
  numericTextBoxObj.value = value;
2299
2086
  this.isNumInput = true;
@@ -2335,7 +2122,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2335
2122
  this.isFieldClose = true;
2336
2123
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2337
2124
  var ddl = getComponent(id, 'dropdownlist');
2338
- var item = ddl.popupObj.element.querySelector('.e-active');
2125
+ var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
2339
2126
  var itemData = ddl.getItemData();
2340
2127
  ddl.value = itemData.value;
2341
2128
  var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
@@ -2674,13 +2461,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2674
2461
  }
2675
2462
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2676
2463
  var operator_2;
2677
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2678
2464
  operatorList.forEach(function (obj) {
2679
2465
  if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2680
2466
  operator_2 = obj.value;
2681
2467
  }
2682
2468
  });
2683
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2684
2469
  var value = operator_2 ? operator_2 : operatorList[0].value;
2685
2470
  var ddlIdx = 0;
2686
2471
  if (!this.autoSelectOperator) {
@@ -3015,8 +2800,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3015
2800
  QueryBuilder.prototype.closePopup = function (i, args) {
3016
2801
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
3017
2802
  if (element) {
3018
- var value = getComponent(element, 'multiselect').value;
3019
- 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
+ }
3020
2808
  }
3021
2809
  };
3022
2810
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
@@ -4648,6 +4436,237 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4648
4436
  this.trigger('drag', dragEventArgs);
4649
4437
  this.isDragEventPrevent = dragEventArgs.cancel;
4650
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
+ };
4651
4670
  QueryBuilder.prototype.templateParser = function (template) {
4652
4671
  if (template) {
4653
4672
  try {
@@ -4723,10 +4742,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4723
4742
  if (typeof target === 'string') {
4724
4743
  groupId = this.element.id + '_' + target;
4725
4744
  target = document.getElementById(groupId);
4745
+ groupId = groupId.replace(this.element.id + '_', '');
4726
4746
  }
4727
4747
  else {
4728
4748
  groupId = groupElem.id.replace(this.element.id + '_', '');
4729
4749
  }
4750
+ if (groupId === 'group0' || !target) {
4751
+ return;
4752
+ }
4730
4753
  var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };
4731
4754
  if (!this.isImportRules && !this.prvtEvtTgrDaD) {
4732
4755
  this.trigger('beforeChange', args, function (observedChangeArgs) {
@@ -5092,7 +5115,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5092
5115
  }
5093
5116
  }
5094
5117
  }
5095
- else if (!isNewRuleAdded) {
5118
+ else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {
5096
5119
  andElem.checked = false;
5097
5120
  andElem.disabled = true;
5098
5121
  orElem.checked = false;
@@ -5112,7 +5135,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5112
5135
  * @returns {RuleModel} - Valid rule or rules collection
5113
5136
  */
5114
5137
  QueryBuilder.prototype.getValidRules = function (currentRule) {
5115
- this.isValueEmpty = true;
5116
5138
  if (!currentRule) {
5117
5139
  currentRule = this.getRules();
5118
5140
  }
@@ -5122,7 +5144,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5122
5144
  var rule = !isNullOrUndefined(currentRule.isLocked) ?
5123
5145
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :
5124
5146
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);
5125
- this.isValueEmpty = false;
5126
5147
  return rule;
5127
5148
  };
5128
5149
  QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {
@@ -5152,9 +5173,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5152
5173
  rule.value = null;
5153
5174
  }
5154
5175
  }
5155
- if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&
5156
- (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||
5157
- (customObj && customObj.isQuestion)) {
5176
+ if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
5177
+ rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
5158
5178
  var condition = rule.condition;
5159
5179
  var lockedRule = rule.isLocked;
5160
5180
  rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };
@@ -5310,6 +5330,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5310
5330
  var len = groupIdColl.length;
5311
5331
  var groupID;
5312
5332
  for (i = 0; i < len; i++) {
5333
+ if (groupIdColl[i] === 'group0') {
5334
+ continue;
5335
+ }
5313
5336
  groupID = this.element.id + '_' + groupIdColl[i];
5314
5337
  this.deleteGroup(document.getElementById(groupID));
5315
5338
  }
@@ -6431,9 +6454,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
6431
6454
  return matchValue.length + 2;
6432
6455
  }
6433
6456
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
6434
- matchValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString)[0];
6435
- this.parser.push(['Literal', matchValue]);
6436
- 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
+ }
6437
6464
  }
6438
6465
  //String
6439
6466
  var singleString = this.getSingleQuoteString(sqlString);
@@ -6847,16 +6874,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
6847
6874
  */
6848
6875
  QueryBuilder.prototype.groupClone = function (target) {
6849
6876
  var groupElem = target.closest('.e-rule-list').closest('.e-group-container');
6850
- var targetGrpId;
6851
- var groupId;
6852
- if (typeof target === 'string') {
6853
- groupId = this.element.id + '_' + target;
6854
- target = document.getElementById(groupId);
6855
- }
6856
- else {
6857
- targetGrpId = target.id.replace(this.element.id + '_', '');
6858
- groupId = groupElem.id.replace(this.element.id + '_', '');
6859
- }
6877
+ var targetGrpId = target.id.replace(this.element.id + '_', '');
6878
+ var groupId = groupElem.id.replace(this.element.id + '_', '');
6860
6879
  var group = this.getGroup(targetGrpId);
6861
6880
  this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));
6862
6881
  this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);