@syncfusion/ej2-querybuilder 19.4.56 → 20.1.51

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 (41) hide show
  1. package/CHANGELOG.md +5 -39
  2. package/dist/ej2-querybuilder.umd.min.js +2 -2
  3. package/dist/ej2-querybuilder.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-querybuilder.es2015.js +78 -22
  5. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  6. package/dist/es6/ej2-querybuilder.es5.js +74 -18
  7. package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
  8. package/dist/global/ej2-querybuilder.min.js +2 -2
  9. package/dist/global/ej2-querybuilder.min.js.map +1 -1
  10. package/dist/global/index.d.ts +1 -1
  11. package/package.json +11 -11
  12. package/src/query-builder/query-builder-model.d.ts +1 -1
  13. package/src/query-builder/query-builder.d.ts +2 -0
  14. package/src/query-builder/query-builder.js +75 -19
  15. package/styles/bootstrap5-dark.css +26 -10
  16. package/styles/bootstrap5.css +26 -10
  17. package/styles/fluent-dark.css +966 -0
  18. package/styles/fluent-dark.scss +1 -0
  19. package/styles/fluent.css +966 -0
  20. package/styles/fluent.scss +1 -0
  21. package/styles/query-builder/_bootstrap5-definition.scss +6 -5
  22. package/styles/query-builder/_fluent-dark-definition.scss +1 -0
  23. package/styles/query-builder/_fluent-definition.scss +7 -7
  24. package/styles/query-builder/_layout.scss +7 -6
  25. package/styles/query-builder/_tailwind-definition.scss +7 -7
  26. package/styles/query-builder/_theme.scss +25 -0
  27. package/styles/query-builder/bootstrap5-dark.css +26 -10
  28. package/styles/query-builder/bootstrap5.css +26 -10
  29. package/styles/query-builder/fluent-dark.css +966 -0
  30. package/styles/query-builder/fluent-dark.scss +15 -0
  31. package/styles/query-builder/fluent.css +966 -0
  32. package/styles/query-builder/fluent.scss +15 -0
  33. package/styles/query-builder/icons/_bootstrap5.scss +1 -1
  34. package/styles/query-builder/icons/_fluent-dark.scss +1 -0
  35. package/styles/query-builder/icons/_fluent.scss +1 -1
  36. package/styles/query-builder/icons/_tailwind-dark.scss +5 -5
  37. package/styles/query-builder/icons/_tailwind.scss +4 -4
  38. package/styles/query-builder/tailwind-dark.css +19 -73
  39. package/styles/query-builder/tailwind.css +18 -72
  40. package/styles/tailwind-dark.css +19 -73
  41. package/styles/tailwind.css +18 -72
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 19.4.56
3
+ * version : 20.1.51
4
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-querybuilder@*",
3
- "_id": "@syncfusion/ej2-querybuilder@19.4.55",
3
+ "_id": "@syncfusion/ej2-querybuilder@20.1.48",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-jsPRny5G8dpM1RN5ZKE82yL0csUXm3dXmdj/PNyVzrpjsGkZipJvdVFlok6l7d+pT7aBNIPTHw88i50tCFSW6A==",
5
+ "_integrity": "sha512-qVkpYnuG7i1dlyoHi86BkuXnCcmL0xG0TeaK8Tagi5B6W3x/KGKpGUDOVl8Xui5FO1B4WwJAg5GPUhllNZ0Gqg==",
6
6
  "_location": "/@syncfusion/ej2-querybuilder",
7
7
  "_phantomChildren": {},
8
8
  "_requested": {
@@ -23,8 +23,8 @@
23
23
  "/@syncfusion/ej2-react-querybuilder",
24
24
  "/@syncfusion/ej2-vue-querybuilder"
25
25
  ],
26
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-19.4.55.tgz",
27
- "_shasum": "2d8f95a9125ee6b641849a560133117dd300cae2",
26
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-20.1.48.tgz",
27
+ "_shasum": "397e3a0df3211ffade9d4d8148efe8bf9c5cadc9",
28
28
  "_spec": "@syncfusion/ej2-querybuilder@*",
29
29
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
30
30
  "author": {
@@ -32,12 +32,12 @@
32
32
  },
33
33
  "bundleDependencies": false,
34
34
  "dependencies": {
35
- "@syncfusion/ej2-base": "~19.4.52",
36
- "@syncfusion/ej2-buttons": "~19.4.55",
37
- "@syncfusion/ej2-calendars": "~19.4.56",
38
- "@syncfusion/ej2-dropdowns": "~19.4.56",
39
- "@syncfusion/ej2-inputs": "~19.4.52",
40
- "@syncfusion/ej2-splitbuttons": "~19.4.52"
35
+ "@syncfusion/ej2-base": "~20.1.50",
36
+ "@syncfusion/ej2-buttons": "~20.1.50",
37
+ "@syncfusion/ej2-calendars": "~20.1.47",
38
+ "@syncfusion/ej2-dropdowns": "~20.1.51",
39
+ "@syncfusion/ej2-inputs": "~20.1.48",
40
+ "@syncfusion/ej2-splitbuttons": "~20.1.47"
41
41
  },
42
42
  "deprecated": false,
43
43
  "description": "Essential JS 2 QueryBuilder",
@@ -69,6 +69,6 @@
69
69
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/querybuilder"
70
70
  },
71
71
  "typings": "index.d.ts",
72
- "version": "19.4.56",
72
+ "version": "20.1.51",
73
73
  "sideEffects": false
74
74
  }
@@ -1,4 +1,4 @@
1
- import { Component, INotifyPropertyChanged, NotifyPropertyChanges, getComponent, MouseEventArgs, Browser } from '@syncfusion/ej2-base';import { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';import { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';import { Internationalization, DateFormatOptions, KeyboardEventArgs, getUniqueID, select } from '@syncfusion/ej2-base';import { Button, CheckBox, RadioButton, ChangeEventArgs as ButtonChangeEventArgs, RadioButtonModel } from '@syncfusion/ej2-buttons';import { DropDownList, ChangeEventArgs as DropDownChangeEventArgs, FieldSettingsModel, CheckBoxSelection, DropDownTreeModel, DropDownTree } from '@syncfusion/ej2-dropdowns';import { MultiSelect, MultiSelectChangeEventArgs, PopupEventArgs, MultiSelectModel, DropDownListModel } from '@syncfusion/ej2-dropdowns';import { EmitType, Event, EventHandler, getValue, Animation, BaseEventArgs } from '@syncfusion/ej2-base';import { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';import { TextBox, NumericTextBox, InputEventArgs, ChangeEventArgs as InputChangeEventArgs } from '@syncfusion/ej2-inputs';import { TextBoxModel, NumericTextBoxModel } from '@syncfusion/ej2-inputs';import { DatePicker, ChangeEventArgs as CalendarChangeEventArgs, DatePickerModel } from '@syncfusion/ej2-calendars';import { DropDownButton, ItemModel, MenuEventArgs } from '@syncfusion/ej2-splitbuttons';import { Tooltip, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import { compile as templateCompiler } from '@syncfusion/ej2-base';
1
+ import { Component, INotifyPropertyChanged, NotifyPropertyChanges, getComponent, MouseEventArgs, Browser, compile } from '@syncfusion/ej2-base';import { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';import { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';import { Internationalization, DateFormatOptions, KeyboardEventArgs, getUniqueID, select } from '@syncfusion/ej2-base';import { Button, CheckBox, RadioButton, ChangeEventArgs as ButtonChangeEventArgs, RadioButtonModel } from '@syncfusion/ej2-buttons';import { DropDownList, ChangeEventArgs as DropDownChangeEventArgs, FieldSettingsModel, CheckBoxSelection, DropDownTreeModel, DropDownTree } from '@syncfusion/ej2-dropdowns';import { MultiSelect, MultiSelectChangeEventArgs, PopupEventArgs, MultiSelectModel, DropDownListModel } from '@syncfusion/ej2-dropdowns';import { EmitType, Event, EventHandler, getValue, Animation, BaseEventArgs } from '@syncfusion/ej2-base';import { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';import { TextBox, NumericTextBox, InputEventArgs, ChangeEventArgs as InputChangeEventArgs } from '@syncfusion/ej2-inputs';import { TextBoxModel, NumericTextBoxModel } from '@syncfusion/ej2-inputs';import { DatePicker, ChangeEventArgs as CalendarChangeEventArgs, DatePickerModel } from '@syncfusion/ej2-calendars';import { DropDownButton, ItemModel, MenuEventArgs } from '@syncfusion/ej2-splitbuttons';import { Tooltip, createSpinner, showSpinner, hideSpinner } from '@syncfusion/ej2-popups';import { compile as templateCompiler } from '@syncfusion/ej2-base';
2
2
  import {TemplateColumn,Validation,FormatObject,ActionEventArgs,ChangeEventArgs,RuleChangeEventArgs,FieldMode,DisplayMode,SortDirection} from "./query-builder";
3
3
  import {ComponentModel} from '@syncfusion/ej2-base';
4
4
 
@@ -750,6 +750,8 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
750
750
  private checkNumberLiteral;
751
751
  private getOperator;
752
752
  private getTypeFromColumn;
753
+ private getLabelFromColumn;
754
+ private getLabelFromField;
753
755
  private processParser;
754
756
  }
755
757
  export interface Level {
@@ -31,7 +31,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
31
31
  /**
32
32
  * Query Builder Source
33
33
  */
34
- import { Component, NotifyPropertyChanges, getComponent, Browser } from '@syncfusion/ej2-base';
34
+ import { Component, NotifyPropertyChanges, getComponent, Browser, compile } from '@syncfusion/ej2-base';
35
35
  import { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefined, Collection, cldrData } from '@syncfusion/ej2-base';
36
36
  import { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';
37
37
  import { Internationalization, getUniqueID, select } from '@syncfusion/ej2-base';
@@ -338,7 +338,7 @@ var QueryBuilder = /** @class */ (function (_super) {
338
338
  };
339
339
  QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
340
340
  for (var i = 0; i < col.length; i++) {
341
- if (this.separator != '' && col[i].field.indexOf(this.separator) < 0) {
341
+ if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {
342
342
  col[i].field = field ? field + this.separator + col[i].field : col[i].field;
343
343
  }
344
344
  if (col[i].operators) {
@@ -565,6 +565,9 @@ var QueryBuilder = /** @class */ (function (_super) {
565
565
  var template = void 0;
566
566
  args.fields = this.fields;
567
567
  args.columns = this.columns;
568
+ if (rule.field === '') {
569
+ rule.field = column.field;
570
+ }
568
571
  args.operators = this.getOperators(rule.field);
569
572
  args.operatorFields = { text: 'key', value: 'value' };
570
573
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -689,7 +692,6 @@ var QueryBuilder = /** @class */ (function (_super) {
689
692
  }
690
693
  }
691
694
  else {
692
- var dropdowntree = void 0;
693
695
  var ddlField = void 0;
694
696
  var ddlValue = this.isImportRules ? rule.field : rule.field;
695
697
  ddlField = {
@@ -703,11 +705,13 @@ var QueryBuilder = /** @class */ (function (_super) {
703
705
  if (this.fieldModel) {
704
706
  ddlField = __assign({}, ddlField, this.fieldModel);
705
707
  }
706
- dropdowntree = new DropDownTree(ddlField);
708
+ var dropdowntree = new DropDownTree(ddlField);
707
709
  dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
708
710
  if (!isNullOrUndefined(dropdowntree.value)) {
709
- dropdowntree.element.value = dropdowntree.value[0];
711
+ var value = this.getLabelFromColumn(dropdowntree.value[0]);
712
+ dropdowntree.element.value = value;
710
713
  }
714
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
711
715
  var ddlVal = this.isImportRules ?
712
716
  this.GetRootColumnName(rule.field) : dropdowntree.value;
713
717
  this.selectedColumn = this.getColumn(ddlVal);
@@ -742,17 +746,20 @@ var QueryBuilder = /** @class */ (function (_super) {
742
746
  else {
743
747
  groupElem = closest(target, '.e-group-container');
744
748
  rules = this.getParentGroup(groupElem);
749
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
745
750
  var custom = rule.custom;
746
751
  if (Object.keys(rule).length) {
747
752
  rules.rules.push({
748
753
  'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
749
754
  });
750
755
  if (custom) {
756
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
751
757
  rules.rules[rules.rules.length - 1].custom = custom;
752
758
  }
753
759
  }
754
760
  else {
755
761
  if (custom) {
762
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
756
763
  newRule.custom = custom;
757
764
  }
758
765
  rules.rules.push(newRule);
@@ -819,17 +826,17 @@ var QueryBuilder = /** @class */ (function (_super) {
819
826
  }
820
827
  }
821
828
  else {
822
- dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
829
+ dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field .e-control'), 'dropdownlist');
823
830
  this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
824
831
  validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
825
832
  }
826
- fieldElem = tempElem.querySelector('.e-rule-field input.e-control');
833
+ fieldElem = tempElem.querySelector('.e-rule-field .e-control');
827
834
  if (validateRule && validateRule.isRequired) {
828
835
  while (indexElem && indexElem.previousElementSibling !== null) {
829
836
  indexElem = indexElem.previousElementSibling;
830
837
  index++;
831
838
  }
832
- fieldElem = tempElem.querySelector('.e-rule-operator input.e-control');
839
+ fieldElem = tempElem.querySelector('.e-rule-operator .e-control');
833
840
  if (!rule.rules[index].operator) {
834
841
  if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
835
842
  this.renderToolTip(fieldElem.parentElement);
@@ -842,7 +849,7 @@ var QueryBuilder = /** @class */ (function (_super) {
842
849
  if (excludeOprs.indexOf(rule.rules[index].operator) < 0 && (isNullOrUndefined(rule.rules[index].value) &&
843
850
  rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
844
851
  (rule.rules[index].value instanceof Array && valArray.length < 1)) {
845
- var valElem = tempElem.querySelectorAll('.e-rule-value input.e-control');
852
+ var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
846
853
  isValid = false;
847
854
  for (var j = 0, jLen = valElem.length; j < jLen; j++) {
848
855
  var element = valElem[j];
@@ -1367,7 +1374,8 @@ var QueryBuilder = /** @class */ (function (_super) {
1367
1374
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1368
1375
  ddt.value = args.value[0];
1369
1376
  ddt.dataBind();
1370
- ddtElem.value = args.value[0];
1377
+ var result = this.getLabelFromColumn(args.value[0]);
1378
+ ddtElem.value = result;
1371
1379
  }
1372
1380
  }
1373
1381
  }
@@ -1397,7 +1405,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1397
1405
  };
1398
1406
  QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {
1399
1407
  if (!ddlArgs.itemData) {
1400
- if (this.fieldMode === "DropdownTree") {
1408
+ if (this.fieldMode === 'DropdownTree') {
1401
1409
  var ddt = getComponent(ddlArgs.element, 'dropdowntree');
1402
1410
  if (ddt.value == null) {
1403
1411
  return;
@@ -1421,6 +1429,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1421
1429
  QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {
1422
1430
  var _this = this;
1423
1431
  if (flt) {
1432
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1424
1433
  var ddlValue = void 0;
1425
1434
  if (this.fieldMode === 'DropdownTree') {
1426
1435
  ddlValue = (dl.value[0]);
@@ -1447,7 +1456,9 @@ var QueryBuilder = /** @class */ (function (_super) {
1447
1456
  this.changeOperator(flt, operatorElem, dl, grID, rl, tmpRl, dArg);
1448
1457
  }
1449
1458
  };
1450
- QueryBuilder.prototype.changeOperator = function (flt, opr, dl, grID, rl, tmpRl, dArg) {
1459
+ QueryBuilder.prototype.changeOperator = function (
1460
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1461
+ flt, opr, dl, grID, rl, tmpRl, dArg) {
1451
1462
  var _this = this;
1452
1463
  var ruleElem;
1453
1464
  var ruleID;
@@ -1829,7 +1840,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1829
1840
  var original = {};
1830
1841
  var result = [];
1831
1842
  var nest = [];
1832
- var value = "";
1843
+ var value = '';
1833
1844
  var isNested = field.indexOf(this.separator);
1834
1845
  var _loop_2 = function (i, iLen) {
1835
1846
  if (isNested === 0) {
@@ -1837,6 +1848,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1837
1848
  }
1838
1849
  else {
1839
1850
  nest = field.split(this_2.separator);
1851
+ // eslint-disable-next-line @typescript-eslint/tslint/config
1840
1852
  nest.forEach(function (element) {
1841
1853
  if (value) {
1842
1854
  value = value[element];
@@ -1884,7 +1896,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1884
1896
  }
1885
1897
  var fieldValue = this.selectedRule.field;
1886
1898
  var isNested = this.selectedRule.field.indexOf(this.separator);
1887
- if (isNested !== 0 && this.fieldMode !== "DropdownTree") {
1899
+ if (isNested !== 0 && this.fieldMode !== 'DropdownTree') {
1888
1900
  var nest = this.selectedRule.field.split(this.separator);
1889
1901
  fieldValue = nest[nest.length - 1];
1890
1902
  }
@@ -1996,10 +2008,10 @@ var QueryBuilder = /** @class */ (function (_super) {
1996
2008
  };
1997
2009
  QueryBuilder.prototype.getItemData = function (parentId) {
1998
2010
  var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
1999
- if (this.fieldMode === "DropdownTree") {
2011
+ if (this.fieldMode === 'DropdownTree') {
2000
2012
  fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
2001
2013
  }
2002
- return this.fieldMode === "DropdownTree" ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
2014
+ return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
2003
2015
  };
2004
2016
  QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {
2005
2017
  var itemData = this.getItemData(parentId);
@@ -2330,6 +2342,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2330
2342
  };
2331
2343
  QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {
2332
2344
  if (this.isFieldClose && prevItemData) {
2345
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2333
2346
  prevItemData = this.getColumn(prevItemData.value);
2334
2347
  }
2335
2348
  if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
@@ -2343,6 +2356,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2343
2356
  var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')
2344
2357
  : getComponent(filtElem, 'dropdownlist');
2345
2358
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
2359
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2346
2360
  : this.getColumn(filtObj.value);
2347
2361
  this.selectedRule = column;
2348
2362
  if (isRender) {
@@ -2587,7 +2601,9 @@ var QueryBuilder = /** @class */ (function (_super) {
2587
2601
  }
2588
2602
  dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :
2589
2603
  getComponent(target, 'dropdownlist');
2604
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2590
2605
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
2606
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2591
2607
  : this.getColumn(dropDownObj.value);
2592
2608
  if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2593
2609
  if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
@@ -3325,6 +3341,9 @@ var QueryBuilder = /** @class */ (function (_super) {
3325
3341
  if (document.querySelectorAll(template).length) {
3326
3342
  return templateCompiler(document.querySelector(template).innerHTML.trim());
3327
3343
  }
3344
+ else {
3345
+ return compile(template);
3346
+ }
3328
3347
  }
3329
3348
  catch (error) {
3330
3349
  return templateCompiler(template);
@@ -3521,11 +3540,13 @@ var QueryBuilder = /** @class */ (function (_super) {
3521
3540
  }
3522
3541
  }
3523
3542
  var isTemplateRendered = clnruleElem.querySelector('.e-template-value');
3543
+ // eslint-disable
3524
3544
  try {
3525
3545
  detach(clnruleElem);
3526
3546
  }
3527
3547
  catch (err) {
3528
3548
  }
3549
+ // eslint-enable
3529
3550
  if (column && column.ruleTemplate) {
3530
3551
  this.clearQBTemplate([clnruleElem.id]);
3531
3552
  }
@@ -3934,6 +3955,11 @@ var QueryBuilder = /** @class */ (function (_super) {
3934
3955
  }
3935
3956
  }
3936
3957
  }
3958
+ if (this.dataSource instanceof DataManager) {
3959
+ if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'notnull')) {
3960
+ pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';
3961
+ }
3962
+ }
3937
3963
  return pred;
3938
3964
  };
3939
3965
  QueryBuilder.prototype.getLocale = function () {
@@ -4194,7 +4220,7 @@ var QueryBuilder = /** @class */ (function (_super) {
4194
4220
  }
4195
4221
  }
4196
4222
  }
4197
- if (rule.rules.length === 0) {
4223
+ if (rule.rules.length === 0 && this.headerTemplate) {
4198
4224
  rule.rules[0] = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };
4199
4225
  }
4200
4226
  var ruleColl = rule.rules;
@@ -4438,7 +4464,7 @@ var QueryBuilder = /** @class */ (function (_super) {
4438
4464
  }
4439
4465
  queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
4440
4466
  }
4441
- if (rule.condition && rule.condition != '') {
4467
+ if (rule.condition && rule.condition !== '') {
4442
4468
  condition = rule.condition;
4443
4469
  }
4444
4470
  }
@@ -4579,7 +4605,6 @@ var QueryBuilder = /** @class */ (function (_super) {
4579
4605
  this.parser.push(['Literal', matchValue]);
4580
4606
  return matchValue.length + 2;
4581
4607
  }
4582
- // eslint-disable-next-line
4583
4608
  if (this.checkNumberLiteral(sqlString)) {
4584
4609
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4585
4610
  this.parser.push(['Literal', matchValue]);
@@ -4674,6 +4699,37 @@ var QueryBuilder = /** @class */ (function (_super) {
4674
4699
  var columnData = this.getColumn(rules.field);
4675
4700
  return columnData.type;
4676
4701
  };
4702
+ QueryBuilder.prototype.getLabelFromColumn = function (field) {
4703
+ var label = '';
4704
+ var l = 0;
4705
+ if (this.separator !== '') {
4706
+ var fieldColl = field.split(this.separator);
4707
+ for (var i = 0; i < fieldColl.length; i++) {
4708
+ label += this.getLabelFromField(fieldColl, i + 1);
4709
+ l++;
4710
+ if (l < fieldColl.length) {
4711
+ label += this.separator;
4712
+ }
4713
+ }
4714
+ return label;
4715
+ }
4716
+ else {
4717
+ var labelItem = this.getColumn(field).label;
4718
+ return labelItem;
4719
+ }
4720
+ };
4721
+ QueryBuilder.prototype.getLabelFromField = function (field, startIdx) {
4722
+ var fieldName = '';
4723
+ var j = 0;
4724
+ for (var k = 0; k < startIdx; k++) {
4725
+ fieldName += field[k];
4726
+ j++;
4727
+ if (j < startIdx) {
4728
+ fieldName += this.separator;
4729
+ }
4730
+ }
4731
+ return this.getColumn(fieldName).label;
4732
+ };
4677
4733
  QueryBuilder.prototype.processParser = function (parser, rules, levelColl) {
4678
4734
  var j;
4679
4735
  var jLen;
@@ -90,6 +90,13 @@
90
90
  color: #adb5bd;
91
91
  }
92
92
 
93
+ .e-input-group.e-ddl.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon,
94
+ .e-input-group.e-control-wrapper.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon,
95
+ .e-float-input.e-ddl.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon,
96
+ .e-float-input.e-control-wrapper.e-ddl.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon {
97
+ background: #343a40;
98
+ }
99
+
93
100
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon,
94
101
  .e-input-group.e-disabled.e-ddl .e-control.e-dropdownlist ~ .e-input-group-icon,
95
102
  .e-control.e-dropdownlist .e-input-group.e-disabled.e-ddl .e-input-group-icon,
@@ -152,7 +159,7 @@
152
159
  }
153
160
 
154
161
  .e-multiselect .e-input-group-icon.e-ddl-icon {
155
- border-radius: 0 4px 4px 0;
162
+ border-radius: 0 2px 2px 0;
156
163
  border-right-width: 0;
157
164
  }
158
165
 
@@ -200,7 +207,7 @@
200
207
  }
201
208
 
202
209
  .e-query-builder .e-collapse-rule::before {
203
- content: '\e853';
210
+ content: '\e80e';
204
211
  }
205
212
 
206
213
  .e-query-builder {
@@ -326,7 +333,7 @@
326
333
 
327
334
  .e-query-builder .e-rule-list > ::after,
328
335
  .e-query-builder .e-rule-list > ::before {
329
- border-style: dashed;
336
+ border-style: dotted;
330
337
  content: '';
331
338
  left: -12px;
332
339
  position: absolute;
@@ -500,8 +507,8 @@
500
507
  .e-query-builder .e-group-body .e-rule-container.e-joined-rule {
501
508
  border-top-left-radius: 0;
502
509
  border-top-right-radius: 0;
503
- border-top-style: dashed;
504
- border-top-width: 1px;
510
+ border-top-style: dotted;
511
+ border-top-width: 2px;
505
512
  margin-top: 0;
506
513
  }
507
514
 
@@ -510,12 +517,12 @@
510
517
  }
511
518
 
512
519
  .e-query-builder .e-group-body .e-rule-container .e-rule-filter {
513
- padding: 8px 0 8px 8px;
520
+ padding: 8px 8px 8px 8px;
514
521
  width: auto;
515
522
  }
516
523
 
517
524
  .e-query-builder .e-group-body .e-rule-container .e-rule-sub-filter {
518
- padding: 8px 0 8px 8px;
525
+ padding: 8px 8px 8px 8px;
519
526
  width: auto;
520
527
  }
521
528
 
@@ -541,7 +548,7 @@
541
548
 
542
549
  .e-query-builder .e-group-body .e-rule-container .e-operator,
543
550
  .e-query-builder .e-group-body .e-rule-container .e-value {
544
- padding: 8px 0 8px 8px;
551
+ padding: 8px 8px 8px 8px;
545
552
  }
546
553
 
547
554
  .e-query-builder .e-group-body .e-rule-container .e-operator .e-radio-wrapper,
@@ -808,7 +815,7 @@
808
815
  .e-bigger.e-query-builder .e-group-body .e-horizontal-mode .e-rule-delete,
809
816
  .e-bigger .e-query-builder .e-group-body .e-horizontal-mode .e-rule-delete {
810
817
  display: inline-block;
811
- margin-left: 10px;
818
+ margin-left: 16px;
812
819
  }
813
820
 
814
821
  .e-query-builder.e-device .e-group-body .e-horizontal-mode .e-rule-filter,
@@ -879,7 +886,7 @@
879
886
  *.e-bigger .e-group-body .e-rule-container .e-rule-sub-filter,
880
887
  *.e-bigger .e-group-body .e-rule-container .e-operator,
881
888
  *.e-bigger .e-group-body .e-rule-container .e-value {
882
- padding: 10px 0 10px 10px;
889
+ padding: 16px 16px 16px 16px;
883
890
  }
884
891
 
885
892
  .e-query-builder {
@@ -891,6 +898,13 @@
891
898
  border-color: #444c54;
892
899
  }
893
900
 
901
+ .e-query-builder .e-group-header .e-dropdown-btn.e-add-btn,
902
+ .e-query-builder .e-deletegroup {
903
+ background-color: #212529;
904
+ box-shadow: none;
905
+ color: #adb5bd;
906
+ }
907
+
894
908
  .e-query-builder .e-group-container {
895
909
  border-color: #444c54;
896
910
  }
@@ -922,6 +936,8 @@
922
936
 
923
937
  .e-query-builder .e-removerule.e-btn.e-round {
924
938
  background-color: #6c757d;
939
+ background-color: #212529;
940
+ color: #adb5bd;
925
941
  }
926
942
 
927
943
  .e-query-builder .e-removerule.e-btn.e-round.e-readonly {
@@ -90,6 +90,13 @@
90
90
  color: #6c757d;
91
91
  }
92
92
 
93
+ .e-input-group.e-ddl.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon,
94
+ .e-input-group.e-control-wrapper.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon,
95
+ .e-float-input.e-ddl.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon,
96
+ .e-float-input.e-control-wrapper.e-ddl.e-readonly .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon.e-search-icon {
97
+ background: #e9ecef;
98
+ }
99
+
93
100
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon,
94
101
  .e-input-group.e-disabled.e-ddl .e-control.e-dropdownlist ~ .e-input-group-icon,
95
102
  .e-control.e-dropdownlist .e-input-group.e-disabled.e-ddl .e-input-group-icon,
@@ -152,7 +159,7 @@
152
159
  }
153
160
 
154
161
  .e-multiselect .e-input-group-icon.e-ddl-icon {
155
- border-radius: 0 4px 4px 0;
162
+ border-radius: 0 2px 2px 0;
156
163
  border-right-width: 0;
157
164
  }
158
165
 
@@ -200,7 +207,7 @@
200
207
  }
201
208
 
202
209
  .e-query-builder .e-collapse-rule::before {
203
- content: '\e853';
210
+ content: '\e80e';
204
211
  }
205
212
 
206
213
  .e-query-builder {
@@ -326,7 +333,7 @@
326
333
 
327
334
  .e-query-builder .e-rule-list > ::after,
328
335
  .e-query-builder .e-rule-list > ::before {
329
- border-style: dashed;
336
+ border-style: dotted;
330
337
  content: '';
331
338
  left: -12px;
332
339
  position: absolute;
@@ -500,8 +507,8 @@
500
507
  .e-query-builder .e-group-body .e-rule-container.e-joined-rule {
501
508
  border-top-left-radius: 0;
502
509
  border-top-right-radius: 0;
503
- border-top-style: dashed;
504
- border-top-width: 1px;
510
+ border-top-style: dotted;
511
+ border-top-width: 2px;
505
512
  margin-top: 0;
506
513
  }
507
514
 
@@ -510,12 +517,12 @@
510
517
  }
511
518
 
512
519
  .e-query-builder .e-group-body .e-rule-container .e-rule-filter {
513
- padding: 8px 0 8px 8px;
520
+ padding: 8px 8px 8px 8px;
514
521
  width: auto;
515
522
  }
516
523
 
517
524
  .e-query-builder .e-group-body .e-rule-container .e-rule-sub-filter {
518
- padding: 8px 0 8px 8px;
525
+ padding: 8px 8px 8px 8px;
519
526
  width: auto;
520
527
  }
521
528
 
@@ -541,7 +548,7 @@
541
548
 
542
549
  .e-query-builder .e-group-body .e-rule-container .e-operator,
543
550
  .e-query-builder .e-group-body .e-rule-container .e-value {
544
- padding: 8px 0 8px 8px;
551
+ padding: 8px 8px 8px 8px;
545
552
  }
546
553
 
547
554
  .e-query-builder .e-group-body .e-rule-container .e-operator .e-radio-wrapper,
@@ -808,7 +815,7 @@
808
815
  .e-bigger.e-query-builder .e-group-body .e-horizontal-mode .e-rule-delete,
809
816
  .e-bigger .e-query-builder .e-group-body .e-horizontal-mode .e-rule-delete {
810
817
  display: inline-block;
811
- margin-left: 10px;
818
+ margin-left: 16px;
812
819
  }
813
820
 
814
821
  .e-query-builder.e-device .e-group-body .e-horizontal-mode .e-rule-filter,
@@ -879,7 +886,7 @@
879
886
  *.e-bigger .e-group-body .e-rule-container .e-rule-sub-filter,
880
887
  *.e-bigger .e-group-body .e-rule-container .e-operator,
881
888
  *.e-bigger .e-group-body .e-rule-container .e-value {
882
- padding: 10px 0 10px 10px;
889
+ padding: 16px 16px 16px 16px;
883
890
  }
884
891
 
885
892
  .e-query-builder {
@@ -891,6 +898,13 @@
891
898
  border-color: #dee2e6;
892
899
  }
893
900
 
901
+ .e-query-builder .e-group-header .e-dropdown-btn.e-add-btn,
902
+ .e-query-builder .e-deletegroup {
903
+ background-color: #fff;
904
+ box-shadow: none;
905
+ color: #6c757d;
906
+ }
907
+
894
908
  .e-query-builder .e-group-container {
895
909
  border-color: #dee2e6;
896
910
  }
@@ -922,6 +936,8 @@
922
936
 
923
937
  .e-query-builder .e-removerule.e-btn.e-round {
924
938
  background-color: #6c757d;
939
+ background-color: #fff;
940
+ color: #6c757d;
925
941
  }
926
942
 
927
943
  .e-query-builder .e-removerule.e-btn.e-round.e-readonly {