@syncfusion/ej2-querybuilder 31.1.17 → 31.2.2

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 (105) hide show
  1. package/dist/ej2-querybuilder.min.js +3 -3
  2. package/dist/ej2-querybuilder.umd.min.js +3 -3
  3. package/dist/ej2-querybuilder.umd.min.js.map +1 -1
  4. package/dist/es6/ej2-querybuilder.es2015.js +43 -9
  5. package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
  6. package/dist/es6/ej2-querybuilder.es5.js +43 -9
  7. package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
  8. package/dist/global/ej2-querybuilder.min.js +3 -3
  9. package/dist/global/ej2-querybuilder.min.js.map +1 -1
  10. package/dist/global/index.d.ts +2 -2
  11. package/package.json +14 -46
  12. package/src/query-builder/query-builder-model.d.ts +7 -0
  13. package/src/query-builder/query-builder.d.ts +7 -0
  14. package/src/query-builder/query-builder.js +43 -9
  15. package/styles/bds-lite.css +37 -0
  16. package/styles/bds.css +36 -0
  17. package/styles/bootstrap-dark-lite.css +37 -0
  18. package/styles/bootstrap-dark.css +36 -0
  19. package/styles/bootstrap-lite.css +37 -0
  20. package/styles/bootstrap.css +36 -0
  21. package/styles/bootstrap4-lite.css +45 -0
  22. package/styles/bootstrap4.css +44 -0
  23. package/styles/bootstrap5-dark-lite.css +37 -0
  24. package/styles/bootstrap5-dark.css +36 -0
  25. package/styles/bootstrap5-lite.css +37 -0
  26. package/styles/bootstrap5.3-lite.css +37 -0
  27. package/styles/bootstrap5.3.css +36 -0
  28. package/styles/bootstrap5.css +36 -0
  29. package/styles/fabric-dark-lite.css +37 -0
  30. package/styles/fabric-dark.css +36 -0
  31. package/styles/fabric-lite.css +37 -0
  32. package/styles/fabric.css +36 -0
  33. package/styles/fluent-dark-lite.css +37 -0
  34. package/styles/fluent-dark.css +36 -0
  35. package/styles/fluent-lite.css +37 -0
  36. package/styles/fluent.css +36 -0
  37. package/styles/fluent2-lite.css +37 -0
  38. package/styles/fluent2.css +36 -0
  39. package/styles/highcontrast-light-lite.css +37 -0
  40. package/styles/highcontrast-light.css +36 -0
  41. package/styles/highcontrast-lite.css +37 -0
  42. package/styles/highcontrast.css +36 -0
  43. package/styles/material-dark-lite.css +37 -0
  44. package/styles/material-dark.css +36 -0
  45. package/styles/material-lite.css +37 -0
  46. package/styles/material.css +36 -0
  47. package/styles/material3-dark-lite.css +37 -0
  48. package/styles/material3-dark.css +36 -0
  49. package/styles/material3-lite.css +37 -0
  50. package/styles/material3.css +36 -0
  51. package/styles/query-builder/_bds-definition.scss +2 -0
  52. package/styles/query-builder/_bootstrap-dark-definition.scss +2 -0
  53. package/styles/query-builder/_bootstrap-definition.scss +4 -0
  54. package/styles/query-builder/_bootstrap4-definition.scss +3 -0
  55. package/styles/query-builder/_bootstrap5-definition.scss +2 -0
  56. package/styles/query-builder/_bootstrap5.3-definition.scss +2 -0
  57. package/styles/query-builder/_fabric-dark-definition.scss +4 -0
  58. package/styles/query-builder/_fabric-definition.scss +4 -0
  59. package/styles/query-builder/_fluent-definition.scss +2 -0
  60. package/styles/query-builder/_fluent2-definition.scss +2 -0
  61. package/styles/query-builder/_fusionnew-definition.scss +2 -0
  62. package/styles/query-builder/_highcontrast-definition.scss +4 -0
  63. package/styles/query-builder/_highcontrast-light-definition.scss +4 -0
  64. package/styles/query-builder/_material-dark-definition.scss +3 -0
  65. package/styles/query-builder/_material-definition.scss +3 -0
  66. package/styles/query-builder/_material3-definition.scss +2 -0
  67. package/styles/query-builder/_tailwind-definition.scss +2 -0
  68. package/styles/query-builder/_tailwind3-definition.scss +2 -0
  69. package/styles/query-builder/_theme.scss +23 -0
  70. package/styles/query-builder/bds.css +36 -0
  71. package/styles/query-builder/bootstrap-dark.css +36 -0
  72. package/styles/query-builder/bootstrap.css +36 -0
  73. package/styles/query-builder/bootstrap4.css +44 -0
  74. package/styles/query-builder/bootstrap5-dark.css +36 -0
  75. package/styles/query-builder/bootstrap5.3.css +36 -0
  76. package/styles/query-builder/bootstrap5.css +36 -0
  77. package/styles/query-builder/fabric-dark.css +36 -0
  78. package/styles/query-builder/fabric.css +36 -0
  79. package/styles/query-builder/fluent-dark.css +36 -0
  80. package/styles/query-builder/fluent.css +36 -0
  81. package/styles/query-builder/fluent2.css +36 -0
  82. package/styles/query-builder/highcontrast-light.css +36 -0
  83. package/styles/query-builder/highcontrast.css +36 -0
  84. package/styles/query-builder/material-dark.css +36 -0
  85. package/styles/query-builder/material.css +36 -0
  86. package/styles/query-builder/material3-dark.css +36 -0
  87. package/styles/query-builder/material3.css +36 -0
  88. package/styles/query-builder/tailwind-dark.css +36 -0
  89. package/styles/query-builder/tailwind.css +36 -0
  90. package/styles/query-builder/tailwind3.css +36 -0
  91. package/styles/tailwind-dark-lite.css +37 -0
  92. package/styles/tailwind-dark.css +36 -0
  93. package/styles/tailwind-lite.css +37 -0
  94. package/styles/tailwind.css +36 -0
  95. package/styles/tailwind3-lite.css +37 -0
  96. package/styles/tailwind3.css +36 -0
  97. package/dist/ts/index.d.ts +0 -4
  98. package/dist/ts/index.ts +0 -4
  99. package/dist/ts/query-builder/index.d.ts +0 -6
  100. package/dist/ts/query-builder/index.ts +0 -6
  101. package/dist/ts/query-builder/query-builder-model.d.ts +0 -569
  102. package/dist/ts/query-builder/query-builder.d.ts +0 -1172
  103. package/dist/ts/query-builder/query-builder.ts +0 -7612
  104. package/dist/ts/query-builder/query-library.d.ts +0 -24
  105. package/dist/ts/query-builder/query-library.ts +0 -625
@@ -1,7 +1,7 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 31.1.17
4
- * Copyright Syncfusion Inc. 2001 - 2024. All rights reserved.
3
+ * version : 31.2.2
4
+ * Copyright Syncfusion Inc. 2001 - 2025. 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
7
7
  * licensing@syncfusion.com. Any infringement will be prosecuted under
package/package.json CHANGED
@@ -1,48 +1,21 @@
1
1
  {
2
- "_from": "@syncfusion/ej2-querybuilder@*",
3
- "_id": "@syncfusion/ej2-querybuilder@28.2.0",
4
- "_inBundle": false,
5
- "_integrity": "sha512-PBHKPEPjg3OfeIikrcIOHhdJnyUDalAFU0urJJCA8LaBJpzPIOR96VuQJLp6SPE0am+1kT7Bay3oI3vQvZTkHw==",
6
- "_location": "/@syncfusion/ej2-querybuilder",
7
- "_phantomChildren": {},
8
- "_requested": {
9
- "type": "range",
10
- "registry": true,
11
- "raw": "@syncfusion/ej2-querybuilder@*",
12
- "name": "@syncfusion/ej2-querybuilder",
13
- "escapedName": "@syncfusion%2fej2-querybuilder",
14
- "scope": "@syncfusion",
15
- "rawSpec": "*",
16
- "saveSpec": null,
17
- "fetchSpec": "*"
18
- },
19
- "_requiredBy": [
20
- "/",
21
- "/@syncfusion/ej2",
22
- "/@syncfusion/ej2-angular-querybuilder",
23
- "/@syncfusion/ej2-react-querybuilder",
24
- "/@syncfusion/ej2-vue-querybuilder"
25
- ],
26
- "_resolved": "https://nexus.syncfusioninternal.com/repository/ej2-development/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-28.2.0.tgz",
27
- "_shasum": "3d716539f3222a2319ff8b7322ad6ba394823c02",
28
- "_spec": "@syncfusion/ej2-querybuilder@*",
29
- "_where": "D:\\SF3992\\WFH\\Nexus\\release",
30
- "author": {
31
- "name": "Syncfusion Inc."
32
- },
33
- "bundleDependencies": false,
2
+ "name": "@syncfusion/ej2-querybuilder",
3
+ "version": "31.2.2",
4
+ "description": "Essential JS 2 QueryBuilder",
5
+ "author": "Syncfusion Inc.",
6
+ "license": "SEE LICENSE IN license",
7
+ "main": "./dist/ej2-querybuilder.umd.min.js",
8
+ "module": "./index.js",
9
+ "es2015": "./dist/es6/ej2-querybuilder.es5.js",
34
10
  "dependencies": {
35
- "@syncfusion/ej2-base": "~31.1.17",
36
- "@syncfusion/ej2-buttons": "~31.1.17",
37
- "@syncfusion/ej2-calendars": "~31.1.17",
38
- "@syncfusion/ej2-dropdowns": "~31.1.17",
39
- "@syncfusion/ej2-inputs": "~31.1.17",
40
- "@syncfusion/ej2-splitbuttons": "~31.1.17"
11
+ "@syncfusion/ej2-base": "~31.2.2",
12
+ "@syncfusion/ej2-buttons": "~31.2.2",
13
+ "@syncfusion/ej2-calendars": "~31.2.2",
14
+ "@syncfusion/ej2-dropdowns": "~31.2.2",
15
+ "@syncfusion/ej2-inputs": "~31.2.2",
16
+ "@syncfusion/ej2-splitbuttons": "~31.2.2"
41
17
  },
42
- "deprecated": false,
43
- "description": "Essential JS 2 QueryBuilder",
44
18
  "devDependencies": {},
45
- "es2015": "./dist/es6/ej2-querybuilder.es5.js",
46
19
  "keywords": [
47
20
  "ej2",
48
21
  "syncfusion",
@@ -57,16 +30,11 @@
57
30
  "typescript query builder",
58
31
  "syncfusion query builder"
59
32
  ],
60
- "license": "SEE LICENSE IN license",
61
- "main": "./dist/ej2-querybuilder.umd.min.js",
62
- "module": "./index.js",
63
- "name": "@syncfusion/ej2-querybuilder",
64
33
  "repository": {
65
34
  "type": "git",
66
35
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/querybuilder"
67
36
  },
68
37
  "typings": "index.d.ts",
69
- "version": "31.1.17",
70
38
  "sideEffects": false,
71
39
  "homepage": "https://www.syncfusion.com/javascript-ui-controls"
72
40
  }
@@ -285,6 +285,13 @@ export interface QueryBuilderModel extends ComponentModel{
285
285
  */
286
286
  created?: EmitType<Event>;
287
287
 
288
+ /**
289
+ * Triggers when the component is destroyed.
290
+ *
291
+ * @event destroyed
292
+ */
293
+ destroyed?: EmitType<Object>;
294
+
288
295
  /**
289
296
  * Triggers when field, operator, value is change.
290
297
  *
@@ -349,6 +349,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
349
349
  private isDragEventPrevent;
350
350
  private isValueEmpty;
351
351
  private isPropChange;
352
+ private isRuleClicked;
352
353
  private ddTree;
353
354
  /**
354
355
  * Triggers when the component is created.
@@ -357,6 +358,12 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
357
358
  * @blazorProperty 'Created'
358
359
  */
359
360
  created: EmitType<Event>;
361
+ /**
362
+ * Triggers when the component is destroyed.
363
+ *
364
+ * @event destroyed
365
+ */
366
+ destroyed: EmitType<Object>;
360
367
  /**
361
368
  * Triggers when field, operator, value is change.
362
369
  *
@@ -219,6 +219,7 @@ var QueryBuilder = /** @class */ (function (_super) {
219
219
  _this.cloneRuleBtnClick = false;
220
220
  _this.isValueEmpty = false;
221
221
  _this.isPropChange = false;
222
+ _this.isRuleClicked = false;
222
223
  MultiSelect.Inject(CheckBoxSelection);
223
224
  return _this;
224
225
  }
@@ -583,6 +584,7 @@ var QueryBuilder = /** @class */ (function (_super) {
583
584
  case target.className.indexOf('e-clone-rule-btn') > -1:
584
585
  this.actionButton = target;
585
586
  this.cloneRuleBtnClick = true;
587
+ this.isRuleClicked = true;
586
588
  this.ruleClone(target);
587
589
  break;
588
590
  case target.className.indexOf('e-lock-rule-btn') > -1:
@@ -596,6 +598,7 @@ var QueryBuilder = /** @class */ (function (_super) {
596
598
  case target.className.indexOf('e-clone-grp-btn') > -1:
597
599
  this.actionButton = target;
598
600
  this.cloneGrpBtnClick = true;
601
+ this.isRuleClicked = true;
599
602
  this.groupClone(closest(target, '.e-group-container'));
600
603
  break;
601
604
  case target.className.indexOf('e-deletegroup') > -1:
@@ -755,9 +758,11 @@ var QueryBuilder = /** @class */ (function (_super) {
755
758
  }
756
759
  }
757
760
  else if (event.element.children[0].className.indexOf('e-addrule') > -1) {
761
+ this.isRuleClicked = true;
758
762
  this.addRuleElement(closest(target, '.e-group-container'), {});
759
763
  }
760
764
  else if (event.element.children[0].className.indexOf('e-addgroup') > -1) {
765
+ this.isRuleClicked = true;
761
766
  this.addGroupElement(true, closest(target, '.e-group-container'), '', true);
762
767
  }
763
768
  };
@@ -959,6 +964,10 @@ var QueryBuilder = /** @class */ (function (_super) {
959
964
  if (!this.isImportRules) {
960
965
  this.updateAddedRule(trgt, rule, newRule, isRlTmp, pId, this.enableSeparateConnector ? true : null);
961
966
  }
967
+ if (this.rule.condition === '' && (this.isRuleClicked || this.rule.rules.length > 1)) {
968
+ this.rule.condition = 'and';
969
+ }
970
+ this.isRuleClicked = false;
962
971
  var ruleCount = this.rule.rules.length;
963
972
  if (!column || (column && !column.ruleTemplate) || !rule.field) {
964
973
  if (ruleCount > 20) {
@@ -3072,26 +3081,45 @@ var QueryBuilder = /** @class */ (function (_super) {
3072
3081
  var ddlObj = this.fieldMode === 'DropdownTree' ? getComponent(filterElem, 'dropdowntree')
3073
3082
  : getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');
3074
3083
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);
3084
+ if (target && target.nextElementSibling) {
3085
+ target.nextElementSibling.style.position = 'relative';
3086
+ target.nextElementSibling.classList.add('e-querybuilder-spinner');
3087
+ }
3088
+ var onComplete = function () {
3089
+ if (target && target.nextElementSibling && target.nextElementSibling.classList.contains('e-querybuilder-spinner')) {
3090
+ target.nextElementSibling.classList.remove('e-querybuilder-spinner');
3091
+ }
3092
+ };
3075
3093
  if (typeof itemData.template === 'string' || itemData.template.write === undefined) {
3076
3094
  var args = {
3077
3095
  rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,
3078
3096
  requestType: 'value-template-create'
3079
3097
  };
3080
3098
  this.trigger('actionBegin', args);
3099
+ onComplete();
3081
3100
  }
3082
3101
  else {
3083
3102
  var template = itemData.template;
3103
+ var templateArgs = {
3104
+ elements: tempElements.length > 1 ? tempElements : tempElements[0],
3105
+ values: rule.value,
3106
+ operator: tempRule.operator,
3107
+ field: column.field,
3108
+ dataSource: column.values,
3109
+ onComplete: onComplete
3110
+ };
3111
+ var writeResult = void 0;
3084
3112
  if (typeof template.write === 'string') {
3085
- getValue(template.write, window)({
3086
- elements: tempElements.length > 1 ? tempElements : tempElements[0], values: rule.value,
3087
- operator: tempRule.operator, field: column.field, dataSource: column.values
3088
- });
3113
+ writeResult = getValue(template.write, window)(templateArgs);
3089
3114
  }
3090
3115
  else if (typeof itemData.template !== 'function') {
3091
- itemData.template.write({
3092
- elements: tempElements.length > 1 ? tempElements : tempElements[0],
3093
- values: rule.value, operator: tempRule.operator, field: column.field, dataSource: column.values
3094
- });
3116
+ writeResult = itemData.template.write(templateArgs);
3117
+ }
3118
+ if (writeResult && typeof writeResult.then === 'function') {
3119
+ writeResult.then(function () { return onComplete(); });
3120
+ }
3121
+ else {
3122
+ setTimeout(function () { return onComplete(); }, 100);
3095
3123
  }
3096
3124
  }
3097
3125
  };
@@ -4093,6 +4121,7 @@ var QueryBuilder = /** @class */ (function (_super) {
4093
4121
  }
4094
4122
  classList(this.element, [], ['e-rtl', 'e-responsive', 'e-device']);
4095
4123
  this.isDestroy = false;
4124
+ _super.prototype.destroy.call(this);
4096
4125
  };
4097
4126
  /**
4098
4127
  * Adds single or multiple rules.
@@ -7448,7 +7477,8 @@ var QueryBuilder = /** @class */ (function (_super) {
7448
7477
  deleteElem: groupElem.querySelectorAll('.e-rule-delete'),
7449
7478
  lockElem: groupElem.querySelectorAll('.e-lock-rule'),
7450
7479
  cloneElem: groupElem.querySelectorAll('.e-clone-rule'),
7451
- ruleElem: groupElem.querySelectorAll('.e-rule-container')
7480
+ ruleElem: groupElem.querySelectorAll('.e-rule-container'),
7481
+ ddTree: groupElem.querySelectorAll('.e-control.e-dropdowntree')
7452
7482
  };
7453
7483
  elements.deleteElem.forEach(function (elem, i) {
7454
7484
  if (isDisabled) {
@@ -7485,10 +7515,14 @@ var QueryBuilder = /** @class */ (function (_super) {
7485
7515
  disableComponents(elements.checkbox, function (elem) { return getComponent(elem, 'checkbox'); }, isDisabled);
7486
7516
  disableComponents(elements.radio, function (elem) { return getComponent(elem, 'radio'); }, isDisabled);
7487
7517
  disableComponents(elements.multiSelect, function (elem) { return getComponent(elem, 'multiselect'); }, isDisabled);
7518
+ disableComponents(elements.ddTree, function (elem) { return getComponent(elem, 'dropdowntree'); }, isDisabled);
7488
7519
  };
7489
7520
  __decorate([
7490
7521
  Event()
7491
7522
  ], QueryBuilder.prototype, "created", void 0);
7523
+ __decorate([
7524
+ Event()
7525
+ ], QueryBuilder.prototype, "destroyed", void 0);
7492
7526
  __decorate([
7493
7527
  Event()
7494
7528
  ], QueryBuilder.prototype, "actionBegin", void 0);
@@ -834,4 +834,41 @@
834
834
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content,
835
835
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content label {
836
836
  color: #d92c20;
837
+ }
838
+
839
+ .e-querybuilder-spinner::before {
840
+ content: "";
841
+ position: absolute;
842
+ left: 50%;
843
+ -webkit-transform: translateX(-50%);
844
+ transform: translateX(-50%);
845
+ width: 16px;
846
+ height: 16px;
847
+ border: 2px solid var(--color-sf-utility-primary-light);
848
+ border-top: 2px solid var(--color-sf-brand-primary);
849
+ border-radius: 50%;
850
+ -webkit-animation: spin 1s linear infinite;
851
+ animation: spin 1s linear infinite;
852
+ }
853
+
854
+ @-webkit-keyframes spin {
855
+ 0% {
856
+ -webkit-transform: translateX(-50%) rotate(0deg);
857
+ transform: translateX(-50%) rotate(0deg);
858
+ }
859
+ 100% {
860
+ -webkit-transform: translateX(-50%) rotate(360deg);
861
+ transform: translateX(-50%) rotate(360deg);
862
+ }
863
+ }
864
+
865
+ @keyframes spin {
866
+ 0% {
867
+ -webkit-transform: translateX(-50%) rotate(0deg);
868
+ transform: translateX(-50%) rotate(0deg);
869
+ }
870
+ 100% {
871
+ -webkit-transform: translateX(-50%) rotate(360deg);
872
+ transform: translateX(-50%) rotate(360deg);
873
+ }
837
874
  }
package/styles/bds.css CHANGED
@@ -836,6 +836,42 @@
836
836
  color: #d92c20;
837
837
  }
838
838
 
839
+ .e-querybuilder-spinner::before {
840
+ content: "";
841
+ position: absolute;
842
+ left: 50%;
843
+ -webkit-transform: translateX(-50%);
844
+ transform: translateX(-50%);
845
+ width: 16px;
846
+ height: 16px;
847
+ border: 2px solid var(--color-sf-utility-primary-light);
848
+ border-top: 2px solid var(--color-sf-brand-primary);
849
+ border-radius: 50%;
850
+ -webkit-animation: spin 1s linear infinite;
851
+ animation: spin 1s linear infinite;
852
+ }
853
+
854
+ @-webkit-keyframes spin {
855
+ 0% {
856
+ -webkit-transform: translateX(-50%) rotate(0deg);
857
+ transform: translateX(-50%) rotate(0deg);
858
+ }
859
+ 100% {
860
+ -webkit-transform: translateX(-50%) rotate(360deg);
861
+ transform: translateX(-50%) rotate(360deg);
862
+ }
863
+ }
864
+
865
+ @keyframes spin {
866
+ 0% {
867
+ -webkit-transform: translateX(-50%) rotate(0deg);
868
+ transform: translateX(-50%) rotate(0deg);
869
+ }
870
+ 100% {
871
+ -webkit-transform: translateX(-50%) rotate(360deg);
872
+ transform: translateX(-50%) rotate(360deg);
873
+ }
874
+ }
839
875
  .e-query-builder.e-device.e-multi-connector .e-rule-list .e-group-container,
840
876
  .e-bigger.e-query-builder.e-multi-connector .e-rule-list .e-group-container,
841
877
  .e-bigger .e-query-builder.e-multi-connector .e-rule-list .e-group-container {
@@ -731,4 +731,41 @@
731
731
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content,
732
732
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content label {
733
733
  color: #f44336;
734
+ }
735
+
736
+ .e-querybuilder-spinner::before {
737
+ content: "";
738
+ position: absolute;
739
+ left: 50%;
740
+ -webkit-transform: translateX(-50%);
741
+ transform: translateX(-50%);
742
+ width: 16px;
743
+ height: 16px;
744
+ border: 2px solid rgb(189, 219.8, 255);
745
+ border-top: 2px solid #0070f0;
746
+ border-radius: 50%;
747
+ -webkit-animation: spin 1s linear infinite;
748
+ animation: spin 1s linear infinite;
749
+ }
750
+
751
+ @-webkit-keyframes spin {
752
+ 0% {
753
+ -webkit-transform: translateX(-50%) rotate(0deg);
754
+ transform: translateX(-50%) rotate(0deg);
755
+ }
756
+ 100% {
757
+ -webkit-transform: translateX(-50%) rotate(360deg);
758
+ transform: translateX(-50%) rotate(360deg);
759
+ }
760
+ }
761
+
762
+ @keyframes spin {
763
+ 0% {
764
+ -webkit-transform: translateX(-50%) rotate(0deg);
765
+ transform: translateX(-50%) rotate(0deg);
766
+ }
767
+ 100% {
768
+ -webkit-transform: translateX(-50%) rotate(360deg);
769
+ transform: translateX(-50%) rotate(360deg);
770
+ }
734
771
  }
@@ -733,6 +733,42 @@
733
733
  color: #f44336;
734
734
  }
735
735
 
736
+ .e-querybuilder-spinner::before {
737
+ content: "";
738
+ position: absolute;
739
+ left: 50%;
740
+ -webkit-transform: translateX(-50%);
741
+ transform: translateX(-50%);
742
+ width: 16px;
743
+ height: 16px;
744
+ border: 2px solid rgb(189, 219.8, 255);
745
+ border-top: 2px solid #0070f0;
746
+ border-radius: 50%;
747
+ -webkit-animation: spin 1s linear infinite;
748
+ animation: spin 1s linear infinite;
749
+ }
750
+
751
+ @-webkit-keyframes spin {
752
+ 0% {
753
+ -webkit-transform: translateX(-50%) rotate(0deg);
754
+ transform: translateX(-50%) rotate(0deg);
755
+ }
756
+ 100% {
757
+ -webkit-transform: translateX(-50%) rotate(360deg);
758
+ transform: translateX(-50%) rotate(360deg);
759
+ }
760
+ }
761
+
762
+ @keyframes spin {
763
+ 0% {
764
+ -webkit-transform: translateX(-50%) rotate(0deg);
765
+ transform: translateX(-50%) rotate(0deg);
766
+ }
767
+ 100% {
768
+ -webkit-transform: translateX(-50%) rotate(360deg);
769
+ transform: translateX(-50%) rotate(360deg);
770
+ }
771
+ }
736
772
  .e-query-builder.e-device.e-multi-connector .e-rule-list .e-group-container,
737
773
  .e-bigger.e-query-builder.e-multi-connector .e-rule-list .e-group-container,
738
774
  .e-bigger .e-query-builder.e-multi-connector .e-rule-list .e-group-container {
@@ -716,4 +716,41 @@
716
716
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content,
717
717
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content label {
718
718
  color: #f44336;
719
+ }
720
+
721
+ .e-querybuilder-spinner::before {
722
+ content: "";
723
+ position: absolute;
724
+ left: 50%;
725
+ -webkit-transform: translateX(-50%);
726
+ transform: translateX(-50%);
727
+ width: 16px;
728
+ height: 16px;
729
+ border: 2px solid #5bc0de;
730
+ border-top: 2px solid #317ab9;
731
+ border-radius: 50%;
732
+ -webkit-animation: spin 1s linear infinite;
733
+ animation: spin 1s linear infinite;
734
+ }
735
+
736
+ @-webkit-keyframes spin {
737
+ 0% {
738
+ -webkit-transform: translateX(-50%) rotate(0deg);
739
+ transform: translateX(-50%) rotate(0deg);
740
+ }
741
+ 100% {
742
+ -webkit-transform: translateX(-50%) rotate(360deg);
743
+ transform: translateX(-50%) rotate(360deg);
744
+ }
745
+ }
746
+
747
+ @keyframes spin {
748
+ 0% {
749
+ -webkit-transform: translateX(-50%) rotate(0deg);
750
+ transform: translateX(-50%) rotate(0deg);
751
+ }
752
+ 100% {
753
+ -webkit-transform: translateX(-50%) rotate(360deg);
754
+ transform: translateX(-50%) rotate(360deg);
755
+ }
719
756
  }
@@ -718,6 +718,42 @@
718
718
  color: #f44336;
719
719
  }
720
720
 
721
+ .e-querybuilder-spinner::before {
722
+ content: "";
723
+ position: absolute;
724
+ left: 50%;
725
+ -webkit-transform: translateX(-50%);
726
+ transform: translateX(-50%);
727
+ width: 16px;
728
+ height: 16px;
729
+ border: 2px solid #5bc0de;
730
+ border-top: 2px solid #317ab9;
731
+ border-radius: 50%;
732
+ -webkit-animation: spin 1s linear infinite;
733
+ animation: spin 1s linear infinite;
734
+ }
735
+
736
+ @-webkit-keyframes spin {
737
+ 0% {
738
+ -webkit-transform: translateX(-50%) rotate(0deg);
739
+ transform: translateX(-50%) rotate(0deg);
740
+ }
741
+ 100% {
742
+ -webkit-transform: translateX(-50%) rotate(360deg);
743
+ transform: translateX(-50%) rotate(360deg);
744
+ }
745
+ }
746
+
747
+ @keyframes spin {
748
+ 0% {
749
+ -webkit-transform: translateX(-50%) rotate(0deg);
750
+ transform: translateX(-50%) rotate(0deg);
751
+ }
752
+ 100% {
753
+ -webkit-transform: translateX(-50%) rotate(360deg);
754
+ transform: translateX(-50%) rotate(360deg);
755
+ }
756
+ }
721
757
  .e-query-builder.e-device.e-multi-connector .e-rule-list .e-group-container,
722
758
  .e-bigger.e-query-builder.e-multi-connector .e-rule-list .e-group-container,
723
759
  .e-bigger .e-query-builder.e-multi-connector .e-rule-list .e-group-container {
@@ -79,6 +79,14 @@
79
79
  font-size: 12px;
80
80
  }
81
81
 
82
+ .e-input-group.e-ddl .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon,
83
+ .e-input-group.e-control-wrapper.e-ddl .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon,
84
+ .e-float-input.e-ddl input[readonly] ~ span.e-input-group-icon.e-ddl-icon,
85
+ .e-float-input.e-control-wrapper.e-ddl input[readonly] ~ span.e-input-group-icon.e-ddl-icon {
86
+ background: transparent;
87
+ color: #495057;
88
+ }
89
+
82
90
  .e-small .e-input-group .e-control.e-dropdownlist ~ .e-ddl-icon,
83
91
  .e-small.e-input-group .e-control.e-dropdownlist ~ .e-ddl-icon {
84
92
  font-size: 10px;
@@ -784,4 +792,41 @@
784
792
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content,
785
793
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content label {
786
794
  color: #f44336;
795
+ }
796
+
797
+ .e-querybuilder-spinner::before {
798
+ content: "";
799
+ position: absolute;
800
+ left: 50%;
801
+ -webkit-transform: translateX(-50%);
802
+ transform: translateX(-50%);
803
+ width: 16px;
804
+ height: 16px;
805
+ border: 2px solid #f8f9fa;
806
+ border-top: 2px solid #007bff;
807
+ border-radius: 50%;
808
+ -webkit-animation: spin 1s linear infinite;
809
+ animation: spin 1s linear infinite;
810
+ }
811
+
812
+ @-webkit-keyframes spin {
813
+ 0% {
814
+ -webkit-transform: translateX(-50%) rotate(0deg);
815
+ transform: translateX(-50%) rotate(0deg);
816
+ }
817
+ 100% {
818
+ -webkit-transform: translateX(-50%) rotate(360deg);
819
+ transform: translateX(-50%) rotate(360deg);
820
+ }
821
+ }
822
+
823
+ @keyframes spin {
824
+ 0% {
825
+ -webkit-transform: translateX(-50%) rotate(0deg);
826
+ transform: translateX(-50%) rotate(0deg);
827
+ }
828
+ 100% {
829
+ -webkit-transform: translateX(-50%) rotate(360deg);
830
+ transform: translateX(-50%) rotate(360deg);
831
+ }
787
832
  }
@@ -79,6 +79,14 @@
79
79
  font-size: 12px;
80
80
  }
81
81
 
82
+ .e-input-group.e-ddl .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon,
83
+ .e-input-group.e-control-wrapper.e-ddl .e-input[readonly] ~ span.e-input-group-icon.e-ddl-icon,
84
+ .e-float-input.e-ddl input[readonly] ~ span.e-input-group-icon.e-ddl-icon,
85
+ .e-float-input.e-control-wrapper.e-ddl input[readonly] ~ span.e-input-group-icon.e-ddl-icon {
86
+ background: transparent;
87
+ color: #495057;
88
+ }
89
+
82
90
  .e-small .e-input-group .e-control.e-dropdownlist ~ .e-ddl-icon,
83
91
  .e-small.e-input-group .e-control.e-dropdownlist ~ .e-ddl-icon {
84
92
  font-size: 10px;
@@ -786,6 +794,42 @@
786
794
  color: #f44336;
787
795
  }
788
796
 
797
+ .e-querybuilder-spinner::before {
798
+ content: "";
799
+ position: absolute;
800
+ left: 50%;
801
+ -webkit-transform: translateX(-50%);
802
+ transform: translateX(-50%);
803
+ width: 16px;
804
+ height: 16px;
805
+ border: 2px solid #f8f9fa;
806
+ border-top: 2px solid #007bff;
807
+ border-radius: 50%;
808
+ -webkit-animation: spin 1s linear infinite;
809
+ animation: spin 1s linear infinite;
810
+ }
811
+
812
+ @-webkit-keyframes spin {
813
+ 0% {
814
+ -webkit-transform: translateX(-50%) rotate(0deg);
815
+ transform: translateX(-50%) rotate(0deg);
816
+ }
817
+ 100% {
818
+ -webkit-transform: translateX(-50%) rotate(360deg);
819
+ transform: translateX(-50%) rotate(360deg);
820
+ }
821
+ }
822
+
823
+ @keyframes spin {
824
+ 0% {
825
+ -webkit-transform: translateX(-50%) rotate(0deg);
826
+ transform: translateX(-50%) rotate(0deg);
827
+ }
828
+ 100% {
829
+ -webkit-transform: translateX(-50%) rotate(360deg);
830
+ transform: translateX(-50%) rotate(360deg);
831
+ }
832
+ }
789
833
  .e-query-builder.e-device.e-multi-connector .e-rule-list .e-group-container,
790
834
  .e-bigger.e-query-builder.e-multi-connector .e-rule-list .e-group-container,
791
835
  .e-bigger .e-query-builder.e-multi-connector .e-rule-list .e-group-container {
@@ -771,4 +771,41 @@
771
771
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content,
772
772
  .e-tooltip-wrap.e-querybuilder-error .e-tip-content label {
773
773
  color: #dc3545;
774
+ }
775
+
776
+ .e-querybuilder-spinner::before {
777
+ content: "";
778
+ position: absolute;
779
+ left: 50%;
780
+ -webkit-transform: translateX(-50%);
781
+ transform: translateX(-50%);
782
+ width: 16px;
783
+ height: 16px;
784
+ border: 2px solid rgb(134, 182.5, 254);
785
+ border-top: 2px solid #0d6efd;
786
+ border-radius: 50%;
787
+ -webkit-animation: spin 1s linear infinite;
788
+ animation: spin 1s linear infinite;
789
+ }
790
+
791
+ @-webkit-keyframes spin {
792
+ 0% {
793
+ -webkit-transform: translateX(-50%) rotate(0deg);
794
+ transform: translateX(-50%) rotate(0deg);
795
+ }
796
+ 100% {
797
+ -webkit-transform: translateX(-50%) rotate(360deg);
798
+ transform: translateX(-50%) rotate(360deg);
799
+ }
800
+ }
801
+
802
+ @keyframes spin {
803
+ 0% {
804
+ -webkit-transform: translateX(-50%) rotate(0deg);
805
+ transform: translateX(-50%) rotate(0deg);
806
+ }
807
+ 100% {
808
+ -webkit-transform: translateX(-50%) rotate(360deg);
809
+ transform: translateX(-50%) rotate(360deg);
810
+ }
774
811
  }