@syncfusion/ej2-querybuilder 26.2.11 → 27.1.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (131) hide show
  1. package/README.md +1 -1
  2. package/dist/ej2-querybuilder.min.js +2 -2
  3. package/dist/ej2-querybuilder.umd.min.js +2 -2
  4. package/dist/ej2-querybuilder.umd.min.js.map +1 -1
  5. package/dist/es6/ej2-querybuilder.es2015.js +285 -259
  6. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  7. package/dist/es6/ej2-querybuilder.es5.js +286 -259
  8. package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
  9. package/dist/global/ej2-querybuilder.min.js +2 -2
  10. package/dist/global/ej2-querybuilder.min.js.map +1 -1
  11. package/dist/global/index.d.ts +1 -1
  12. package/package.json +12 -12
  13. package/src/query-builder/query-builder.js +285 -258
  14. package/styles/bootstrap-dark-lite.css +728 -0
  15. package/styles/bootstrap-dark-lite.scss +15 -0
  16. package/styles/bootstrap-dark.css +114 -170
  17. package/styles/bootstrap-dark.scss +1 -0
  18. package/styles/bootstrap-lite.css +713 -0
  19. package/styles/bootstrap-lite.scss +15 -0
  20. package/styles/bootstrap.css +106 -162
  21. package/styles/bootstrap.scss +1 -0
  22. package/styles/bootstrap4-lite.css +781 -0
  23. package/styles/bootstrap4-lite.scss +15 -0
  24. package/styles/bootstrap4.css +120 -231
  25. package/styles/bootstrap4.scss +1 -0
  26. package/styles/bootstrap5-dark-lite.css +764 -0
  27. package/styles/bootstrap5-dark-lite.scss +15 -0
  28. package/styles/bootstrap5-dark.css +109 -165
  29. package/styles/bootstrap5-dark.scss +1 -0
  30. package/styles/bootstrap5-lite.css +764 -0
  31. package/styles/bootstrap5-lite.scss +15 -0
  32. package/styles/bootstrap5.3-lite.css +775 -0
  33. package/styles/bootstrap5.3-lite.scss +15 -0
  34. package/styles/bootstrap5.3.css +959 -0
  35. package/styles/bootstrap5.3.scss +16 -0
  36. package/styles/bootstrap5.css +109 -165
  37. package/styles/bootstrap5.scss +1 -0
  38. package/styles/fabric-dark-lite.css +690 -0
  39. package/styles/fabric-dark-lite.scss +15 -0
  40. package/styles/fabric-dark.css +108 -156
  41. package/styles/fabric-dark.scss +1 -0
  42. package/styles/fabric-lite.css +679 -0
  43. package/styles/fabric-lite.scss +15 -0
  44. package/styles/fabric.css +102 -143
  45. package/styles/fabric.scss +1 -0
  46. package/styles/fluent-dark-lite.css +759 -0
  47. package/styles/fluent-dark-lite.scss +15 -0
  48. package/styles/fluent-dark.css +111 -159
  49. package/styles/fluent-dark.scss +1 -0
  50. package/styles/fluent-lite.css +759 -0
  51. package/styles/fluent-lite.scss +15 -0
  52. package/styles/fluent.css +111 -159
  53. package/styles/fluent.scss +1 -0
  54. package/styles/fluent2-lite.css +771 -0
  55. package/styles/fluent2-lite.scss +15 -0
  56. package/styles/fluent2.css +114 -151
  57. package/styles/fluent2.scss +1 -0
  58. package/styles/highcontrast-light-lite.css +773 -0
  59. package/styles/highcontrast-light-lite.scss +15 -0
  60. package/styles/highcontrast-light.css +101 -135
  61. package/styles/highcontrast-light.scss +1 -0
  62. package/styles/highcontrast-lite.css +801 -0
  63. package/styles/highcontrast-lite.scss +15 -0
  64. package/styles/highcontrast.css +122 -156
  65. package/styles/highcontrast.scss +1 -0
  66. package/styles/material-dark-lite.css +725 -0
  67. package/styles/material-dark-lite.scss +15 -0
  68. package/styles/material-dark.css +105 -131
  69. package/styles/material-dark.scss +1 -0
  70. package/styles/material-lite.css +731 -0
  71. package/styles/material-lite.scss +15 -0
  72. package/styles/material.css +105 -152
  73. package/styles/material.scss +1 -0
  74. package/styles/material3-dark-lite.css +738 -0
  75. package/styles/material3-dark-lite.scss +15 -0
  76. package/styles/material3-dark.css +101 -157
  77. package/styles/material3-dark.scss +1 -0
  78. package/styles/material3-lite.css +740 -0
  79. package/styles/material3-lite.scss +15 -0
  80. package/styles/material3.css +101 -157
  81. package/styles/material3.scss +1 -0
  82. package/styles/query-builder/_bigger.scss +208 -0
  83. package/styles/query-builder/_bootstrap5.3-definition.scss +1 -1
  84. package/styles/query-builder/_layout.scss +5 -210
  85. package/styles/query-builder/_theme.scss +10 -3
  86. package/styles/query-builder/bootstrap-dark.css +114 -170
  87. package/styles/query-builder/bootstrap-dark.scss +1 -0
  88. package/styles/query-builder/bootstrap.css +106 -162
  89. package/styles/query-builder/bootstrap.scss +1 -0
  90. package/styles/query-builder/bootstrap4.css +120 -231
  91. package/styles/query-builder/bootstrap4.scss +1 -0
  92. package/styles/query-builder/bootstrap5-dark.css +109 -165
  93. package/styles/query-builder/bootstrap5-dark.scss +1 -0
  94. package/styles/query-builder/bootstrap5.3.css +959 -0
  95. package/styles/query-builder/bootstrap5.3.scss +16 -0
  96. package/styles/query-builder/bootstrap5.css +109 -165
  97. package/styles/query-builder/bootstrap5.scss +1 -0
  98. package/styles/query-builder/fabric-dark.css +108 -156
  99. package/styles/query-builder/fabric-dark.scss +1 -0
  100. package/styles/query-builder/fabric.css +102 -143
  101. package/styles/query-builder/fabric.scss +1 -0
  102. package/styles/query-builder/fluent-dark.css +111 -159
  103. package/styles/query-builder/fluent-dark.scss +1 -0
  104. package/styles/query-builder/fluent.css +111 -159
  105. package/styles/query-builder/fluent.scss +1 -0
  106. package/styles/query-builder/fluent2.css +114 -151
  107. package/styles/query-builder/fluent2.scss +1 -0
  108. package/styles/query-builder/highcontrast-light.css +101 -135
  109. package/styles/query-builder/highcontrast-light.scss +1 -0
  110. package/styles/query-builder/highcontrast.css +122 -156
  111. package/styles/query-builder/highcontrast.scss +1 -0
  112. package/styles/query-builder/material-dark.css +105 -131
  113. package/styles/query-builder/material-dark.scss +1 -0
  114. package/styles/query-builder/material.css +105 -152
  115. package/styles/query-builder/material.scss +1 -0
  116. package/styles/query-builder/material3-dark.css +101 -157
  117. package/styles/query-builder/material3-dark.scss +1 -0
  118. package/styles/query-builder/material3.css +101 -157
  119. package/styles/query-builder/material3.scss +1 -0
  120. package/styles/query-builder/tailwind-dark.css +100 -137
  121. package/styles/query-builder/tailwind-dark.scss +1 -0
  122. package/styles/query-builder/tailwind.css +100 -137
  123. package/styles/query-builder/tailwind.scss +1 -0
  124. package/styles/tailwind-dark-lite.css +726 -0
  125. package/styles/tailwind-dark-lite.scss +15 -0
  126. package/styles/tailwind-dark.css +100 -137
  127. package/styles/tailwind-dark.scss +1 -0
  128. package/styles/tailwind-lite.css +726 -0
  129. package/styles/tailwind-lite.scss +15 -0
  130. package/styles/tailwind.css +100 -137
  131. package/styles/tailwind.scss +1 -0
@@ -218,233 +218,6 @@ var QueryBuilder = /** @class */ (function (_super) {
218
218
  _this.isMiddleGroup = false;
219
219
  _this.cloneRuleBtnClick = false;
220
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
221
  MultiSelect.Inject(CheckBoxSelection);
449
222
  return _this;
450
223
  }
@@ -950,7 +723,9 @@ var QueryBuilder = /** @class */ (function (_super) {
950
723
  elem = template;
951
724
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
952
725
  append(elem, ruleElem);
953
- ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
726
+ if (ruleElem.children.length) {
727
+ ruleElem.children[ruleElem.children.length - 1].className += ' e-rule-field';
728
+ }
954
729
  }
955
730
  else {
956
731
  template = this.ruleTemplateFn(args, this, 'Template', templateID)[0];
@@ -1240,11 +1015,14 @@ var QueryBuilder = /** @class */ (function (_super) {
1240
1015
  .filter(function (filteredChild) { return filteredChild !== null; });
1241
1016
  this.changeDataSource(matchedDataSource);
1242
1017
  setTimeout(function () {
1243
- proxy.ddTree.treeObj.expandAll();
1018
+ if (!isNullOrUndefined(proxy.ddTree) && !isNullOrUndefined(proxy.ddTree.treeObj)) {
1019
+ proxy.ddTree.treeObj.expandAll();
1020
+ }
1244
1021
  }, 100);
1245
1022
  }
1246
1023
  };
1247
1024
  QueryBuilder.prototype.changeDataSource = function (data) {
1025
+ this.updateDropdowntreeDS(data);
1248
1026
  this.ddTree.treeObj.fields = {
1249
1027
  dataSource: data,
1250
1028
  value: 'field',
@@ -1279,7 +1057,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1279
1057
  };
1280
1058
  QueryBuilder.prototype.dropdownTreeClose = function () {
1281
1059
  if (this.ddTree) {
1282
- this.changeDataSource(this.columns);
1060
+ this.changeDataSource(extend([], this.columns, [], true));
1283
1061
  }
1284
1062
  this.ddTree = null;
1285
1063
  };
@@ -1983,7 +1761,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1983
1761
  if (this.headerTemplate) {
1984
1762
  args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
1985
1763
  notCondition: this.enableNotCondition ? not : undefined,
1986
- condition: condition, rule: this.getRuleCollection(rule, true), groupID: groupID };
1764
+ condition: condition, rule: this.getRuleCollection(rule, false), groupID: groupID };
1987
1765
  this.trigger('actionBegin', args);
1988
1766
  if (this.enableSeparateConnector && groupElem.id.indexOf('rule') !== -1) {
1989
1767
  args.requestType = 'rule-template-create';
@@ -2019,6 +1797,17 @@ var QueryBuilder = /** @class */ (function (_super) {
2019
1797
  }
2020
1798
  else if (this.isVue3) {
2021
1799
  template = this.headerFn(args, this, groupElem.id, templateID);
1800
+ if (this.enableSeparateConnector && (isInitialRule || groupElem.id.indexOf('rule') !== -1)) {
1801
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1802
+ for (var i = 0; i < template.length; i++) {
1803
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1804
+ if (template[i].nodeName === 'DIV') {
1805
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1806
+ template = template[i];
1807
+ break;
1808
+ }
1809
+ }
1810
+ }
2022
1811
  if (this.enableSeparateConnector && isInitialRule) {
2023
1812
  this.enableSeparateConnectorInitialRule(groupElem, template);
2024
1813
  }
@@ -2222,7 +2011,8 @@ var QueryBuilder = /** @class */ (function (_super) {
2222
2011
  var _this = this;
2223
2012
  var element;
2224
2013
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2225
- if (this.isNumInput && typeof args.value === 'number') {
2014
+ if ((this.isNumInput && typeof args.value === 'number') || (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox'))
2015
+ && (this.selectedColumn.validation.max !== Number.MAX_VALUE || this.selectedColumn.validation.min > 0)) {
2226
2016
  this.isNumInput = false;
2227
2017
  return;
2228
2018
  }
@@ -2235,7 +2025,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2235
2025
  element = args.event.target;
2236
2026
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2237
2027
  }
2238
- else if (args.type === 'input' && args.currentTarget) {
2028
+ else if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2239
2029
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2240
2030
  element = args.currentTarget;
2241
2031
  }
@@ -2297,7 +2087,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2297
2087
  else {
2298
2088
  value = args.value;
2299
2089
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2300
- if (args.type === 'input' && args.currentTarget) {
2090
+ if (args.type === 'input' && args.target && args.target.classList.contains('e-numerictextbox')) {
2301
2091
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2302
2092
  value = Number(args.currentTarget.value);
2303
2093
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -2347,7 +2137,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2347
2137
  this.isFieldClose = true;
2348
2138
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2349
2139
  var ddl = getComponent(id, 'dropdownlist');
2350
- var item = ddl.popupObj.element.querySelector('.e-active');
2140
+ var item = ddl.popupObj && ddl.popupObj.element.querySelector('.e-active');
2351
2141
  var itemData = ddl.getItemData();
2352
2142
  ddl.value = itemData.value;
2353
2143
  var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
@@ -2686,13 +2476,13 @@ var QueryBuilder = /** @class */ (function (_super) {
2686
2476
  }
2687
2477
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
2688
2478
  var operator_2;
2689
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2690
- operatorList.forEach(function (obj) {
2691
- if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2692
- operator_2 = obj.value;
2693
- }
2694
- });
2695
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
2479
+ if (rule.operator) {
2480
+ operatorList.forEach(function (obj) {
2481
+ if ('value' in obj && typeof obj.value === 'string' && obj.value.toLowerCase() === rule.operator.toLowerCase()) {
2482
+ operator_2 = obj.value;
2483
+ }
2484
+ });
2485
+ }
2696
2486
  var value = operator_2 ? operator_2 : operatorList[0].value;
2697
2487
  var ddlIdx = 0;
2698
2488
  if (!this.autoSelectOperator) {
@@ -3027,8 +2817,11 @@ var QueryBuilder = /** @class */ (function (_super) {
3027
2817
  QueryBuilder.prototype.closePopup = function (i, args) {
3028
2818
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
3029
2819
  if (element) {
3030
- var value = getComponent(element, 'multiselect').value;
3031
- this.updateRules(element, value, i);
2820
+ var ms = getComponent(element, 'multiselect');
2821
+ if (ms) {
2822
+ var value = ms.value;
2823
+ this.updateRules(element, value, i);
2824
+ }
3032
2825
  }
3033
2826
  };
3034
2827
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
@@ -4660,6 +4453,237 @@ var QueryBuilder = /** @class */ (function (_super) {
4660
4453
  this.trigger('drag', dragEventArgs);
4661
4454
  this.isDragEventPrevent = dragEventArgs.cancel;
4662
4455
  };
4456
+ QueryBuilder.prototype.dragStopHandler = function (e) {
4457
+ var _this = this;
4458
+ if (this.isDragEventPrevent) {
4459
+ return;
4460
+ }
4461
+ var targetGroup = closest(e.target, '.e-rule-container');
4462
+ if (isNullOrUndefined(targetGroup) && e.target.parentElement &&
4463
+ e.target.parentElement.classList.contains('e-btn-group') && this.enableSeparateConnector) {
4464
+ targetGroup = closest(e.target.parentElement.previousElementSibling, '.e-rule-container');
4465
+ }
4466
+ var isPreventelem;
4467
+ if (!isNullOrUndefined(e.helper)) {
4468
+ isPreventelem = closest(e.helper, '.e-notallowedcur');
4469
+ }
4470
+ var prevRule;
4471
+ if (!isPreventelem) {
4472
+ var targetGrp = closest(e.target, '.e-group-container');
4473
+ var dropEventArgs = { cancel: false, dropRuleID: targetGroup !== null ? targetGroup.id
4474
+ : targetGrp !== null ? targetGrp.id : null, dropGroupID: targetGrp !== null ? targetGrp.id : null };
4475
+ this.trigger('drop', dropEventArgs);
4476
+ if (dropEventArgs.cancel) {
4477
+ isPreventelem = true;
4478
+ }
4479
+ prevRule = this.getValidRules();
4480
+ }
4481
+ this.prvtEvtTgrDaD = true;
4482
+ var tgrt = this.enableSeparateConnector && e.target.parentElement &&
4483
+ e.target.parentElement.classList.contains('e-btn-group') ? e.target.parentElement.previousElementSibling : e.target;
4484
+ if (targetGroup && !isPreventelem) {
4485
+ var groupId_1 = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4486
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-rule-field') ||
4487
+ this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4488
+ var rule = void 0;
4489
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4490
+ rule = this.getGroup(this.draggedRule);
4491
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4492
+ }
4493
+ else {
4494
+ rule = this.getRule(this.draggedRule);
4495
+ this.deleteRule(this.draggedRule);
4496
+ }
4497
+ var groupRule = extend([], this.getGroup(targetGroup), [], true);
4498
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4499
+ if (groupRule.properties) {
4500
+ groupRule = groupRule.properties;
4501
+ }
4502
+ var groupElem = closest(targetGroup, '.e-group-container');
4503
+ var nestGrpElem = groupElem.querySelectorAll('.e-group-container');
4504
+ nestGrpElem.forEach(function (ele) {
4505
+ if (_this.element.querySelector('#' + ele.id)) {
4506
+ _this.deleteGroup(ele);
4507
+ }
4508
+ });
4509
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4510
+ var ruleIds = [];
4511
+ var dropInd = void 0;
4512
+ for (var i = 0; i < ruleElems.length; i++) {
4513
+ if (ruleElems[i].classList.contains('e-drag-rule-top-line') ||
4514
+ ruleElems[i].classList.contains('e-drag-rule-bottom-line')) {
4515
+ dropInd = i;
4516
+ }
4517
+ ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
4518
+ }
4519
+ this.deleteRules(ruleIds);
4520
+ if (targetGroup.classList.contains('e-drag-rule-top-line')) {
4521
+ groupRule.rules.splice(dropInd, 0, rule);
4522
+ }
4523
+ else {
4524
+ groupRule.rules.splice(dropInd + 1, 0, rule);
4525
+ }
4526
+ groupRule.rules.forEach(function (rule) {
4527
+ if (_this.enableSeparateConnector) {
4528
+ if (!rule.rules) {
4529
+ _this.addRules([rule], groupId_1);
4530
+ }
4531
+ else {
4532
+ _this.addGroups([rule], groupId_1);
4533
+ }
4534
+ }
4535
+ else {
4536
+ if (rule.condition) {
4537
+ _this.addGroups([rule], groupId_1);
4538
+ }
4539
+ else {
4540
+ _this.addRules([rule], groupId_1);
4541
+ }
4542
+ }
4543
+ });
4544
+ }
4545
+ }
4546
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children.length === 0 && !isPreventelem) {
4547
+ var groupElem = closest(tgrt, '.e-group-container');
4548
+ var groupId = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4549
+ var rule = void 0;
4550
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4551
+ rule = this.getGroup(this.draggedRule);
4552
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4553
+ }
4554
+ else {
4555
+ rule = this.getRule(this.draggedRule);
4556
+ this.deleteRule(this.draggedRule);
4557
+ }
4558
+ if (this.enableSeparateConnector) {
4559
+ if (!rule.rules) {
4560
+ this.addRules([rule], groupId);
4561
+ }
4562
+ else {
4563
+ this.addGroups([rule], groupId);
4564
+ }
4565
+ }
4566
+ else {
4567
+ if (rule.condition) {
4568
+ this.addGroups([rule], groupId);
4569
+ }
4570
+ else {
4571
+ this.addRules([rule], groupId);
4572
+ }
4573
+ }
4574
+ }
4575
+ else if (tgrt.classList.contains('e-rule-list') && tgrt.children[0].classList.contains('e-group-container') && !isPreventelem) {
4576
+ var groupElem = closest(tgrt, '.e-group-container');
4577
+ var groupId_2 = groupElem.id.split(this.element.id + '_')[1].split('_')[0];
4578
+ var rule = void 0;
4579
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4580
+ rule = this.getGroup(this.draggedRule);
4581
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4582
+ }
4583
+ else {
4584
+ rule = this.getRule(this.draggedRule);
4585
+ this.deleteRule(this.draggedRule);
4586
+ }
4587
+ var groupRule = extend([], this.getGroup(tgrt), [], true);
4588
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4589
+ if (groupRule.properties) {
4590
+ groupRule = groupRule.properties;
4591
+ }
4592
+ var groupElems = tgrt.querySelectorAll('.e-group-container');
4593
+ groupElems.forEach(function (ele) {
4594
+ if (_this.element.querySelector('#' + ele.id)) {
4595
+ _this.deleteGroup(ele);
4596
+ }
4597
+ });
4598
+ var ruleElems = groupElem.querySelectorAll('.e-rule-container');
4599
+ ruleElems.forEach(function (ele) {
4600
+ if (_this.element.querySelector('#' + ele.id)) {
4601
+ _this.deleteRule(ele);
4602
+ }
4603
+ });
4604
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4605
+ this.addGroups([rule], groupId_2);
4606
+ }
4607
+ else {
4608
+ this.addRules([rule], groupId_2);
4609
+ }
4610
+ groupRule.rules.forEach(function (rule) {
4611
+ if (_this.enableSeparateConnector) {
4612
+ if (!rule.rules) {
4613
+ _this.addRules([rule], groupId_2);
4614
+ }
4615
+ else {
4616
+ _this.addGroups([rule], groupId_2);
4617
+ }
4618
+ }
4619
+ else {
4620
+ if (rule.condition) {
4621
+ _this.addGroups([rule], groupId_2);
4622
+ }
4623
+ else {
4624
+ _this.addRules([rule], groupId_2);
4625
+ }
4626
+ }
4627
+ });
4628
+ }
4629
+ else if ((closest(e.target, '.e-group-container') || e.target.classList.contains('e-group-container')) && !isPreventelem) {
4630
+ var rule = void 0;
4631
+ targetGroup = closest(e.target, '.e-group-container');
4632
+ if (!targetGroup && e.target.classList.contains('e-group-container')) {
4633
+ targetGroup = e.target;
4634
+ }
4635
+ var groupId = targetGroup.id.split(this.element.id + '_')[1].split('_')[0];
4636
+ if (groupId === 'group0') {
4637
+ if (this.draggable.currentStateTarget.parentElement.classList.contains('e-group-header')) {
4638
+ rule = this.getGroup(this.draggedRule);
4639
+ this.deleteGroup(closest(this.draggedRule, '.e-group-container'));
4640
+ }
4641
+ else {
4642
+ rule = this.getRule(this.draggedRule);
4643
+ this.deleteRule(this.draggedRule);
4644
+ }
4645
+ if (this.enableSeparateConnector) {
4646
+ if (!rule.rules) {
4647
+ this.addRules([rule], groupId);
4648
+ }
4649
+ else {
4650
+ this.addGroups([rule], groupId);
4651
+ }
4652
+ }
4653
+ else {
4654
+ if (rule.condition) {
4655
+ this.addGroups([rule], groupId);
4656
+ }
4657
+ else {
4658
+ this.addRules([rule], groupId);
4659
+ }
4660
+ }
4661
+ }
4662
+ }
4663
+ if (!isPreventelem) {
4664
+ this.trigger('ruleChange', { previousRule: prevRule, rule: this.getValidRules(), type: 'drag-and-drop' });
4665
+ }
4666
+ this.prvtEvtTgrDaD = false;
4667
+ document.body.classList.remove('e-prevent-select');
4668
+ var borderLineElem = this.element.querySelectorAll('.e-drag-rule-bottom-line');
4669
+ borderLineElem.forEach(function (ele) {
4670
+ ele.classList.remove('e-drag-rule-bottom-line');
4671
+ });
4672
+ borderLineElem = this.element.querySelectorAll('.e-drag-rule-top-line');
4673
+ borderLineElem.forEach(function (ele) {
4674
+ ele.classList.remove('e-drag-rule-top-line');
4675
+ });
4676
+ borderLineElem = this.element.querySelectorAll('.e-qb-dragging-rule');
4677
+ borderLineElem.forEach(function (ele) {
4678
+ ele.classList.remove('e-qb-dragging-rule');
4679
+ });
4680
+ if (e.helper && e.helper.classList.contains('e-cloneproperties') && document.querySelector('.' + e.helper.classList[0])) {
4681
+ remove(e.helper);
4682
+ }
4683
+ if (this.enableSeparateConnector) {
4684
+ this.refresh();
4685
+ }
4686
+ };
4663
4687
  QueryBuilder.prototype.templateParser = function (template) {
4664
4688
  if (template) {
4665
4689
  try {
@@ -4735,10 +4759,14 @@ var QueryBuilder = /** @class */ (function (_super) {
4735
4759
  if (typeof target === 'string') {
4736
4760
  groupId = this.element.id + '_' + target;
4737
4761
  target = document.getElementById(groupId);
4762
+ groupId = groupId.replace(this.element.id + '_', '');
4738
4763
  }
4739
4764
  else {
4740
4765
  groupId = groupElem.id.replace(this.element.id + '_', '');
4741
4766
  }
4767
+ if (groupId === 'group0' || !target) {
4768
+ return;
4769
+ }
4742
4770
  var args = { groupID: groupId, cancel: false, type: 'deleteGroup' };
4743
4771
  if (!this.isImportRules && !this.prvtEvtTgrDaD) {
4744
4772
  this.trigger('beforeChange', args, function (observedChangeArgs) {
@@ -5104,7 +5132,7 @@ var QueryBuilder = /** @class */ (function (_super) {
5104
5132
  }
5105
5133
  }
5106
5134
  }
5107
- else if (!isNewRuleAdded) {
5135
+ else if (!isNewRuleAdded && !isNullOrUndefined(andElem)) {
5108
5136
  andElem.checked = false;
5109
5137
  andElem.disabled = true;
5110
5138
  orElem.checked = false;
@@ -5322,6 +5350,9 @@ var QueryBuilder = /** @class */ (function (_super) {
5322
5350
  var len = groupIdColl.length;
5323
5351
  var groupID;
5324
5352
  for (i = 0; i < len; i++) {
5353
+ if (groupIdColl[i] === 'group0') {
5354
+ continue;
5355
+ }
5325
5356
  groupID = this.element.id + '_' + groupIdColl[i];
5326
5357
  this.deleteGroup(document.getElementById(groupID));
5327
5358
  }
@@ -6445,9 +6476,13 @@ var QueryBuilder = /** @class */ (function (_super) {
6445
6476
  return matchValue.length + 2;
6446
6477
  }
6447
6478
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
6448
- matchValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString)[0];
6449
- this.parser.push(['Literal', matchValue]);
6450
- return matchValue.length;
6479
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
6480
+ var regExValue = /^[0-9]+(\.[0-9]+)$/.exec(sqlString);
6481
+ if (regExValue) {
6482
+ matchValue = regExValue[0];
6483
+ this.parser.push(['Literal', matchValue]);
6484
+ return matchValue.length;
6485
+ }
6451
6486
  }
6452
6487
  //String
6453
6488
  var singleString = this.getSingleQuoteString(sqlString);
@@ -6861,16 +6896,8 @@ var QueryBuilder = /** @class */ (function (_super) {
6861
6896
  */
6862
6897
  QueryBuilder.prototype.groupClone = function (target) {
6863
6898
  var groupElem = target.closest('.e-rule-list').closest('.e-group-container');
6864
- var targetGrpId;
6865
- var groupId;
6866
- if (typeof target === 'string') {
6867
- groupId = this.element.id + '_' + target;
6868
- target = document.getElementById(groupId);
6869
- }
6870
- else {
6871
- targetGrpId = target.id.replace(this.element.id + '_', '');
6872
- groupId = groupElem.id.replace(this.element.id + '_', '');
6873
- }
6899
+ var targetGrpId = target.id.replace(this.element.id + '_', '');
6900
+ var groupId = groupElem.id.replace(this.element.id + '_', '');
6874
6901
  var group = this.getGroup(targetGrpId);
6875
6902
  this.groupIndex = Array.prototype.indexOf.call(target.closest('.e-rule-list').children, target.closest('.e-group-container'));
6876
6903
  this.addGroups([{ 'condition': group.condition, 'not': group.not, 'rules': group.rules }], groupId);