@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
@@ -217,234 +217,6 @@ var QueryBuilder = /** @class */ (function (_super) {
217
217
  _this.cloneGrpBtnClick = false;
218
218
  _this.isMiddleGroup = false;
219
219
  _this.cloneRuleBtnClick = false;
220
- _this.isValueEmpty = false;
221
- _this.dragStopHandler = function (e) {
222
- if (_this.isDragEventPrevent) {
223
- return;
224
- }
225
- var targetGroup = closest(e.target, '.e-rule-container');
226
- if (isNullOrUndefined(targetGroup) && e.target.parentElement &&
227
- e.target.parentElement.classList.contains('e-btn-group') && _this.enableSeparateConnector) {
228
- targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');
229
- }
230
- var isPreventelem = closest(e.helper, '.e-notallowedcur');
231
- var prevRule;
232
- if (!isPreventelem) {
233
- var targetGrp = closest(e.target, '.e-group-container');
234
- var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
235
- : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };
236
- _this.trigger('drop', dropEventArgs);
237
- if (dropEventArgs.cancel) {
238
- isPreventelem = true;
239
- }
240
- prevRule = _this.getValidRules();
241
- }
242
- _this.prvtEvtTgrDaD = true;
243
- var tgrt = _this.enableSeparateConnector && e.target.parentElement &&
244
- e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;
245
- if (targetGroup && !isPreventelem) {
246
- var groupId_1 = targetGroup.id.split(_this.element.id + '_')[1].split('_')[0];
247
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||
248
- _this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
249
- var rule = void 0;
250
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
251
- rule = _this.getGroup(_this.draggedRule);
252
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
253
- }
254
- else {
255
- rule = _this.getRule(_this.draggedRule);
256
- _this.deleteRule(_this.draggedRule);
257
- }
258
- var groupRule = extend([], _this.getGroup(targetGroup), [], true);
259
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
260
- if (groupRule.properties) {
261
- groupRule = groupRule.properties;
262
- }
263
- var groupElem = closest(targetGroup, '.e-group-container');
264
- var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
265
- nestGrpElem.forEach(function (ele) {
266
- if (_this.element.querySelector('#' + ele.id)) {
267
- _this.deleteGroup(ele);
268
- }
269
- });
270
- var ruleElems = groupElem.querySelectorAll('.e-rule-container');
271
- var ruleIds = [];
272
- var dropInd = void 0;
273
- for (var i = 0; i < ruleElems.length; i++) {
274
- if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||
275
- ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {
276
- dropInd = i;
277
- }
278
- ruleIds.push(ruleElems[i].id.split(_this.element.id + '_')[1]);
279
- }
280
- _this.deleteRules(ruleIds);
281
- if (targetGroup.classList.contains('e-drag-rule-top-line')) {
282
- groupRule.rules.splice(dropInd, 0, rule);
283
- }
284
- else {
285
- groupRule.rules.splice(dropInd + 1, 0, rule);
286
- }
287
- groupRule.rules.forEach(function (rule) {
288
- if (_this.enableSeparateConnector) {
289
- if (!rule.rules) {
290
- _this.addRules([rule], groupId_1);
291
- }
292
- else {
293
- _this.addGroups([rule], groupId_1);
294
- }
295
- }
296
- else {
297
- if (rule.condition) {
298
- _this.addGroups([rule], groupId_1);
299
- }
300
- else {
301
- _this.addRules([rule], groupId_1);
302
- }
303
- }
304
- });
305
- }
306
- }
307
- else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {
308
- var groupElem = closest(tgrt, '.e-group-container');
309
- var groupId = groupElem.id.split(_this.element.id + '_')[1].split('_')[0];
310
- var rule = void 0;
311
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
312
- rule = _this.getGroup(_this.draggedRule);
313
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
314
- }
315
- else {
316
- rule = _this.getRule(_this.draggedRule);
317
- _this.deleteRule(_this.draggedRule);
318
- }
319
- if (_this.enableSeparateConnector) {
320
- if (!rule.rules) {
321
- _this.addRules([rule], groupId);
322
- }
323
- else {
324
- _this.addGroups([rule], groupId);
325
- }
326
- }
327
- else {
328
- if (rule.condition) {
329
- _this.addGroups([rule], groupId);
330
- }
331
- else {
332
- _this.addRules([rule], groupId);
333
- }
334
- }
335
- }
336
- else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {
337
- var groupElem = closest(tgrt, '.e-group-container');
338
- var groupId_2 = groupElem.id.split(_this.element.id + '_')[1].split('_')[0];
339
- var rule = void 0;
340
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
341
- rule = _this.getGroup(_this.draggedRule);
342
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
343
- }
344
- else {
345
- rule = _this.getRule(_this.draggedRule);
346
- _this.deleteRule(_this.draggedRule);
347
- }
348
- var groupRule = extend([], _this.getGroup(tgrt), [], true);
349
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
350
- if (groupRule.properties) {
351
- groupRule = groupRule.properties;
352
- }
353
- var groupElems = tgrt.querySelectorAll('.e-group-container');
354
- groupElems.forEach(function (ele) {
355
- if (_this.element.querySelector('#' + ele.id)) {
356
- _this.deleteGroup(ele);
357
- }
358
- });
359
- var ruleElems = groupElem.querySelectorAll('.e-rule-container');
360
- ruleElems.forEach(function (ele) {
361
- if (_this.element.querySelector('#' + ele.id)) {
362
- _this.deleteRule(ele);
363
- }
364
- });
365
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
366
- _this.addGroups([rule], groupId_2);
367
- }
368
- else {
369
- _this.addRules([rule], groupId_2);
370
- }
371
- groupRule.rules.forEach(function (rule) {
372
- if (_this.enableSeparateConnector) {
373
- if (!rule.rules) {
374
- _this.addRules([rule], groupId_2);
375
- }
376
- else {
377
- _this.addGroups([rule], groupId_2);
378
- }
379
- }
380
- else {
381
- if (rule.condition) {
382
- _this.addGroups([rule], groupId_2);
383
- }
384
- else {
385
- _this.addRules([rule], groupId_2);
386
- }
387
- }
388
- });
389
- }
390
- else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {
391
- var rule = void 0;
392
- targetGroup = closest(e.target, '.e-group-container');
393
- if (!targetGroup && e.target.classList.contains('e-group-container')) {
394
- targetGroup = e.target;
395
- }
396
- var groupId = targetGroup.id.split(_this.element.id + '_')[1].split('_')[0];
397
- if (groupId === 'group0') {
398
- if (_this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
399
- rule = _this.getGroup(_this.draggedRule);
400
- _this.deleteGroup(closest(_this.draggedRule, '.e-group-container'));
401
- }
402
- else {
403
- rule = _this.getRule(_this.draggedRule);
404
- _this.deleteRule(_this.draggedRule);
405
- }
406
- if (_this.enableSeparateConnector) {
407
- if (!rule.rules) {
408
- _this.addRules([rule], groupId);
409
- }
410
- else {
411
- _this.addGroups([rule], groupId);
412
- }
413
- }
414
- else {
415
- if (rule.condition) {
416
- _this.addGroups([rule], groupId);
417
- }
418
- else {
419
- _this.addRules([rule], groupId);
420
- }
421
- }
422
- }
423
- }
424
- if (!isPreventelem) {
425
- _this.trigger('ruleChange', { previousRule: prevRule, rule: _this.getValidRules(), type: 'drag-and-drop' });
426
- }
427
- _this.prvtEvtTgrDaD = false;
428
- document.body.classList.remove('e-prevent-select');
429
- var borderLineElem = _this.element.querySelectorAll('.e-drag-rule-bottom-line');
430
- borderLineElem.forEach(function (ele) {
431
- ele.classList.remove('e-drag-rule-bottom-line');
432
- });
433
- borderLineElem = _this.element.querySelectorAll('.e-drag-rule-top-line');
434
- borderLineElem.forEach(function (ele) {
435
- ele.classList.remove('e-drag-rule-top-line');
436
- });
437
- borderLineElem = _this.element.querySelectorAll('.e-qb-dragging-rule');
438
- borderLineElem.forEach(function (ele) {
439
- ele.classList.remove('e-qb-dragging-rule');
440
- });
441
- if (e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {
442
- remove(e.helper);
443
- }
444
- if (_this.enableSeparateConnector) {
445
- _this.refresh();
446
- }
447
- };
448
220
  MultiSelect.Inject(CheckBoxSelection);
449
221
  return _this;
450
222
  }
@@ -950,7 +722,9 @@ var QueryBuilder = /** @class */ (function (_super) {
950
722
  elem = template;
951
723
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
952
724
  append(elem, ruleElem);
953
- ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
725
+ if (ruleElem.children.length) {
726
+ ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
727
+ }
954
728
  }
955
729
  else {
956
730
  template = this.ruleTemplateFn(args, this, 'Template', templateID)[0];
@@ -1240,7 +1014,9 @@ var QueryBuilder = /** @class */ (function (_super) {
1240
1014
  .filter(function (filteredChild) { return filteredChild !== null; });
1241
1015
  this.changeDataSource(matchedDataSource);
1242
1016
  setTimeout(function () {
1243
- proxy.ddTree.treeObj.expandAll();
1017
+ if (!isNullOrUndefined(proxy.ddTree)) {
1018
+ proxy.ddTree.treeObj.expandAll();
1019
+ }
1244
1020
  }, 100);
1245
1021
  }
1246
1022
  };
@@ -1983,7 +1759,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1983
1759
  if (this.headerTemplate) {
1984
1760
  args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
1985
1761
  notCondition: this.enableNotCondition ? not : undefined,
1986
- condition: condition, rule: this.getRuleCollection(rule, true), groupID: groupID };
1762
+ condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID };
1987
1763
  this.trigger('actionBegin', args);
1988
1764
  if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
1989
1765
  args.requestType = 'rule-template-create';
@@ -2019,6 +1795,17 @@ var QueryBuilder = /** @class */ (function (_super) {
2019
1795
  }
2020
1796
  else if (this.isVue3) {
2021
1797
  template = this.headerFn(args, this, groupElem.id, templateID);
1798
+ if (this.enableSeparateConnector && (isInitialRule || groupElem.id.indexOf('rule') !== -1)) {
1799
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1800
+ for (var i = 0; i < template.length; i++) {
1801
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1802
+ if (template[i].nodeName === 'DIV') {
1803
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1804
+ template = template[i];
1805
+ break;
1806
+ }
1807
+ }
1808
+ }
2022
1809
  if (this.enableSeparateConnector && isInitialRule) {
2023
1810
  this.enableSeparateConnectorInitialRule(groupElem, template);
2024
1811
  }
@@ -2222,7 +2009,8 @@ var QueryBuilder = /** @class */ (function (_super) {
2222
2009
  var _this = this;
2223
2010
  var element;
2224
2011
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2225
- if (this.isNumInput && typeof args.value === 'number') {
2012
+ if ((this.isNumInput && typeof args.value === 'number') || (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox'))
2013
+ && (this.selectedColumn.validation.max !== Number.MAX_VALUE || this.selectedColumn.validation.min > 0)) {
2226
2014
  this.isNumInput = false;
2227
2015
  return;
2228
2016
  }
@@ -2235,7 +2023,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2235
2023
  element = args.event.target;
2236
2024
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2237
2025
  }
2238
- else if (args.type === 'input' && args.currentTarget) {
2026
+ else if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2239
2027
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2240
2028
  element = args.currentTarget;
2241
2029
  }
@@ -2297,7 +2085,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2297
2085
  else {
2298
2086
  value = args.value;
2299
2087
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2300
- if (args.type === 'input' && args.currentTarget) {
2088
+ if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2301
2089
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2302
2090
  value = Number(args.currentTarget.value);
2303
2091
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2305,8 +2093,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2305
2093
  var numericTextBoxObj = getInstance(elem, NumericTextBox);
2306
2094
  var decimalSeparator = getValue('decimal', getNumericObject(this.locale));
2307
2095
  if (isNaN(value) && elem.value.indexOf(decimalSeparator) !== -1) {
2308
- var numberValue = parseFloat(args.currentTarget.value);
2309
- value = numberValue;
2096
+ value = this.intl.getNumberParser({ format: 'n' })(elem.value);
2310
2097
  }
2311
2098
  numericTextBoxObj.value = value;
2312
2099
  this.isNumInput = true;
@@ -2348,7 +2135,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2348
2135
  this.isFieldClose = true;
2349
2136
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2350
2137
  var ddl = getComponent(id, 'dropdownlist');
2351
- var item = ddl.popupObj.element.querySelector('.e-active');
2138
+ var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
2352
2139
  var itemData = ddl.getItemData();
2353
2140
  ddl.value = itemData.value;
2354
2141
  var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
@@ -2687,13 +2474,11 @@ var QueryBuilder = /** @class */ (function (_super) {
2687
2474
  }
2688
2475
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2689
2476
  var operator_2;
2690
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2691
2477
  operatorList.forEach(function (obj) {
2692
2478
  if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2693
2479
  operator_2 = obj.value;
2694
2480
  }
2695
2481
  });
2696
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2697
2482
  var value = operator_2 ? operator_2 : operatorList[0].value;
2698
2483
  var ddlIdx = 0;
2699
2484
  if (!this.autoSelectOperator) {
@@ -3028,8 +2813,11 @@ var QueryBuilder = /** @class */ (function (_super) {
3028
2813
  QueryBuilder.prototype.closePopup = function (i, args) {
3029
2814
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
3030
2815
  if (element) {
3031
- var value = getComponent(element, 'multiselect').value;
3032
- this.updateRules(element, value, i);
2816
+ var ms = getComponent(element, 'multiselect');
2817
+ if (ms) {
2818
+ var value = ms.value;
2819
+ this.updateRules(element, value, i);
2820
+ }
3033
2821
  }
3034
2822
  };
3035
2823
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
@@ -4661,6 +4449,237 @@ var QueryBuilder = /** @class */ (function (_super) {
4661
4449
  this.trigger('drag', dragEventArgs);
4662
4450
  this.isDragEventPrevent = dragEventArgs.cancel;
4663
4451
  };
4452
+ QueryBuilder.prototype.dragStopHandler = function (e) {
4453
+ var _this = this;
4454
+ if (this.isDragEventPrevent) {
4455
+ return;
4456
+ }
4457
+ var targetGroup = closest(e.target, '.e-rule-container');
4458
+ if (isNullOrUndefined(targetGroup) && e.target.parentElement &&
4459
+ e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector) {
4460
+ targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');
4461
+ }
4462
+ var isPreventelem;
4463
+ if (!isNullOrUndefined(e.helper)) {
4464
+ isPreventelem = closest(e.helper, '.e-notallowedcur');
4465
+ }
4466
+ var prevRule;
4467
+ if (!isPreventelem) {
4468
+ var targetGrp = closest(e.target, '.e-group-container');
4469
+ var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
4470
+ : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };
4471
+ this.trigger('drop', dropEventArgs);
4472
+ if (dropEventArgs.cancel) {
4473
+ isPreventelem = true;
4474
+ }
4475
+ prevRule = this.getValidRules();
4476
+ }
4477
+ this.prvtEvtTgrDaD = true;
4478
+ var tgrt = this.enableSeparateConnector && e.target.parentElement &&
4479
+ e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;
4480
+ if (targetGroup && !isPreventelem) {
4481
+ var groupId_1 = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4482
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||
4483
+ this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4484
+ var rule = void 0;
4485
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4486
+ rule = this.getGroup(this.draggedRule);
4487
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4488
+ }
4489
+ else {
4490
+ rule = this.getRule(this.draggedRule);
4491
+ this.deleteRule(this.draggedRule);
4492
+ }
4493
+ var groupRule = extend([], this.getGroup(targetGroup), [], true);
4494
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4495
+ if (groupRule.properties) {
4496
+ groupRule = groupRule.properties;
4497
+ }
4498
+ var groupElem = closest(targetGroup, '.e-group-container');
4499
+ var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
4500
+ nestGrpElem.forEach(function (ele) {
4501
+ if (_this.element.querySelector('#' + ele.id)) {
4502
+ _this.deleteGroup(ele);
4503
+ }
4504
+ });
4505
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4506
+ var ruleIds = [];
4507
+ var dropInd = void 0;
4508
+ for (var i = 0; i < ruleElems.length; i++) {
4509
+ if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||
4510
+ ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {
4511
+ dropInd = i;
4512
+ }
4513
+ ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
4514
+ }
4515
+ this.deleteRules(ruleIds);
4516
+ if (targetGroup.classList.contains('e-drag-rule-top-line')) {
4517
+ groupRule.rules.splice(dropInd, 0, rule);
4518
+ }
4519
+ else {
4520
+ groupRule.rules.splice(dropInd + 1, 0, rule);
4521
+ }
4522
+ groupRule.rules.forEach(function (rule) {
4523
+ if (_this.enableSeparateConnector) {
4524
+ if (!rule.rules) {
4525
+ _this.addRules([rule], groupId_1);
4526
+ }
4527
+ else {
4528
+ _this.addGroups([rule], groupId_1);
4529
+ }
4530
+ }
4531
+ else {
4532
+ if (rule.condition) {
4533
+ _this.addGroups([rule], groupId_1);
4534
+ }
4535
+ else {
4536
+ _this.addRules([rule], groupId_1);
4537
+ }
4538
+ }
4539
+ });
4540
+ }
4541
+ }
4542
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {
4543
+ var groupElem = closest(tgrt, '.e-group-container');
4544
+ var groupId = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4545
+ var rule = void 0;
4546
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4547
+ rule = this.getGroup(this.draggedRule);
4548
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4549
+ }
4550
+ else {
4551
+ rule = this.getRule(this.draggedRule);
4552
+ this.deleteRule(this.draggedRule);
4553
+ }
4554
+ if (this.enableSeparateConnector) {
4555
+ if (!rule.rules) {
4556
+ this.addRules([rule], groupId);
4557
+ }
4558
+ else {
4559
+ this.addGroups([rule], groupId);
4560
+ }
4561
+ }
4562
+ else {
4563
+ if (rule.condition) {
4564
+ this.addGroups([rule], groupId);
4565
+ }
4566
+ else {
4567
+ this.addRules([rule], groupId);
4568
+ }
4569
+ }
4570
+ }
4571
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {
4572
+ var groupElem = closest(tgrt, '.e-group-container');
4573
+ var groupId_2 = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4574
+ var rule = void 0;
4575
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4576
+ rule = this.getGroup(this.draggedRule);
4577
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4578
+ }
4579
+ else {
4580
+ rule = this.getRule(this.draggedRule);
4581
+ this.deleteRule(this.draggedRule);
4582
+ }
4583
+ var groupRule = extend([], this.getGroup(tgrt), [], true);
4584
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4585
+ if (groupRule.properties) {
4586
+ groupRule = groupRule.properties;
4587
+ }
4588
+ var groupElems = tgrt.querySelectorAll('.e-group-container');
4589
+ groupElems.forEach(function (ele) {
4590
+ if (_this.element.querySelector('#' + ele.id)) {
4591
+ _this.deleteGroup(ele);
4592
+ }
4593
+ });
4594
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4595
+ ruleElems.forEach(function (ele) {
4596
+ if (_this.element.querySelector('#' + ele.id)) {
4597
+ _this.deleteRule(ele);
4598
+ }
4599
+ });
4600
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4601
+ this.addGroups([rule], groupId_2);
4602
+ }
4603
+ else {
4604
+ this.addRules([rule], groupId_2);
4605
+ }
4606
+ groupRule.rules.forEach(function (rule) {
4607
+ if (_this.enableSeparateConnector) {
4608
+ if (!rule.rules) {
4609
+ _this.addRules([rule], groupId_2);
4610
+ }
4611
+ else {
4612
+ _this.addGroups([rule], groupId_2);
4613
+ }
4614
+ }
4615
+ else {
4616
+ if (rule.condition) {
4617
+ _this.addGroups([rule], groupId_2);
4618
+ }
4619
+ else {
4620
+ _this.addRules([rule], groupId_2);
4621
+ }
4622
+ }
4623
+ });
4624
+ }
4625
+ else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {
4626
+ var rule = void 0;
4627
+ targetGroup = closest(e.target, '.e-group-container');
4628
+ if (!targetGroup && e.target.classList.contains('e-group-container')) {
4629
+ targetGroup = e.target;
4630
+ }
4631
+ var groupId = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4632
+ if (groupId === 'group0') {
4633
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4634
+ rule = this.getGroup(this.draggedRule);
4635
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4636
+ }
4637
+ else {
4638
+ rule = this.getRule(this.draggedRule);
4639
+ this.deleteRule(this.draggedRule);
4640
+ }
4641
+ if (this.enableSeparateConnector) {
4642
+ if (!rule.rules) {
4643
+ this.addRules([rule], groupId);
4644
+ }
4645
+ else {
4646
+ this.addGroups([rule], groupId);
4647
+ }
4648
+ }
4649
+ else {
4650
+ if (rule.condition) {
4651
+ this.addGroups([rule], groupId);
4652
+ }
4653
+ else {
4654
+ this.addRules([rule], groupId);
4655
+ }
4656
+ }
4657
+ }
4658
+ }
4659
+ if (!isPreventelem) {
4660
+ this.trigger('ruleChange', { previousRule: prevRule, rule: this.getValidRules(), type: 'drag-and-drop' });
4661
+ }
4662
+ this.prvtEvtTgrDaD = false;
4663
+ document.body.classList.remove('e-prevent-select');
4664
+ var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');
4665
+ borderLineElem.forEach(function (ele) {
4666
+ ele.classList.remove('e-drag-rule-bottom-line');
4667
+ });
4668
+ borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');
4669
+ borderLineElem.forEach(function (ele) {
4670
+ ele.classList.remove('e-drag-rule-top-line');
4671
+ });
4672
+ borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');
4673
+ borderLineElem.forEach(function (ele) {
4674
+ ele.classList.remove('e-qb-dragging-rule');
4675
+ });
4676
+ if (e.helper && e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {
4677
+ remove(e.helper);
4678
+ }
4679
+ if (this.enableSeparateConnector) {
4680
+ this.refresh();
4681
+ }
4682
+ };
4664
4683
  QueryBuilder.prototype.templateParser = function (template) {
4665
4684
  if (template) {
4666
4685
  try {
@@ -4736,10 +4755,14 @@ var QueryBuilder = /** @class */ (function (_super) {
4736
4755
  if (typeof target === 'string') {
4737
4756
  groupId = this.element.id + '_' + target;
4738
4757
  target = document.getElementById(groupId);
4758
+ groupId = groupId.replace(this.element.id + '_', '');
4739
4759
  }
4740
4760
  else {
4741
4761
  groupId = groupElem.id.replace(this.element.id + '_', '');
4742
4762
  }
4763
+ if (groupId === 'group0' || !target) {
4764
+ return;
4765
+ }
4743
4766
  var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };
4744
4767
  if (!this.isImportRules && !this.prvtEvtTgrDaD) {
4745
4768
  this.trigger('beforeChange', args, function (observedChangeArgs) {
@@ -5105,7 +5128,7 @@ var QueryBuilder = /** @class */ (function (_super) {
5105
5128
  }
5106
5129
  }
5107
5130
  }
5108
- else if (!isNewRuleAdded) {
5131
+ else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {
5109
5132
  andElem.checked = false;
5110
5133
  andElem.disabled = true;
5111
5134
  orElem.checked = false;
@@ -5125,7 +5148,6 @@ var QueryBuilder = /** @class */ (function (_super) {
5125
5148
  * @returns {RuleModel} - Valid rule or rules collection
5126
5149
  */
5127
5150
  QueryBuilder.prototype.getValidRules = function (currentRule) {
5128
- this.isValueEmpty = true;
5129
5151
  if (!currentRule) {
5130
5152
  currentRule = this.getRules();
5131
5153
  }
@@ -5135,7 +5157,6 @@ var QueryBuilder = /** @class */ (function (_super) {
5135
5157
  var rule = !isNullOrUndefined(currentRule.isLocked) ?
5136
5158
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition, isLocked: currentRule.isLocked }, true) :
5137
5159
  this.getRuleCollection({ condition: ruleCondtion, rules: ruleColl, not: notCondition }, true);
5138
- this.isValueEmpty = false;
5139
5160
  return rule;
5140
5161
  };
5141
5162
  QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {
@@ -5165,9 +5186,8 @@ var QueryBuilder = /** @class */ (function (_super) {
5165
5186
  rule.value = null;
5166
5187
  }
5167
5188
  }
5168
- if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' &&
5169
- (this.isValueEmpty ? rule.value !== '' && rule.value !== undefined : rule.value !== undefined)) ||
5170
- (customObj && customObj.isQuestion)) {
5189
+ if ((this.isRefreshed && this.enablePersistence) || (rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
5190
+ rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
5171
5191
  var condition = rule.condition;
5172
5192
  var lockedRule = rule.isLocked;
5173
5193
  rule = { 'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value };
@@ -5323,6 +5343,9 @@ var QueryBuilder = /** @class */ (function (_super) {
5323
5343
  var len = groupIdColl.length;
5324
5344
  var groupID;
5325
5345
  for (i = 0; i < len; i++) {
5346
+ if (groupIdColl[i] === 'group0') {
5347
+ continue;
5348
+ }
5326
5349
  groupID = this.element.id + '_' + groupIdColl[i];
5327
5350
  this.deleteGroup(document.getElementById(groupID));
5328
5351
  }
@@ -6446,9 +6469,13 @@ var QueryBuilder = /** @class */ (function (_super) {
6446
6469
  return matchValue.length + 2;
6447
6470
  }
6448
6471
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
6449
- matchValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString)[0];
6450
- this.parser.push(['Literal', matchValue]);
6451
- return matchValue.length;
6472
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6473
+ var regExValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString);
6474
+ if (regExValue) {
6475
+ matchValue = regExValue[0];
6476
+ this.parser.push(['Literal', matchValue]);
6477
+ return matchValue.length;
6478
+ }
6452
6479
  }
6453
6480
  //String
6454
6481
  var singleString = this.getSingleQuoteString(sqlString);
@@ -6862,16 +6889,8 @@ var QueryBuilder = /** @class */ (function (_super) {
6862
6889
  */
6863
6890
  QueryBuilder.prototype.groupClone = function (target) {
6864
6891
  var groupElem = target.closest('.e-rule-list').closest('.e-group-container');
6865
- var targetGrpId;
6866
- var groupId;
6867
- if (typeof target === 'string') {
6868
- groupId = this.element.id + '_' + target;
6869
- target = document.getElementById(groupId);
6870
- }
6871
- else {
6872
- targetGrpId = target.id.replace(this.element.id + '_', '');
6873
- groupId = groupElem.id.replace(this.element.id + '_', '');
6874
- }
6892
+ var targetGrpId = target.id.replace(this.element.id + '_', '');
6893
+ var groupId = groupElem.id.replace(this.element.id + '_', '');
6875
6894
  var group = this.getGroup(targetGrpId);
6876
6895
  this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));
6877
6896
  this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);