@syncfusion/ej2-querybuilder 19.4.40 → 19.4.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.
@@ -1,15 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 19.4.40
4
- * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
5
- * Use of this code is subject to the terms of our license.
6
- * A copy of the current license can be obtained at any time by e-mailing
7
- * licensing@syncfusion.com. Any infringement will be prosecuted under
8
- * applicable laws.
9
- */
10
- /*!
11
- * filename: index.d.ts
12
- * version : 19.3.53
3
+ * version : 19.4.50
13
4
  * Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
14
5
  * Use of this code is subject to the terms of our license.
15
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,14 +1,10 @@
1
1
  {
2
2
  "_from": "@syncfusion/ej2-querybuilder@*",
3
- "_id": "@syncfusion/ej2-querybuilder@19.3.53",
3
+ "_id": "@syncfusion/ej2-querybuilder@19.4.48",
4
4
  "_inBundle": false,
5
- "_integrity": "sha512-mNLWl/HVA7Puoc6JI++8ofSnIVgIfMK+ncFg3SOFvAdAfj0r7Nz0hGeJfKL7p+2yU75Ila1dIQ8T/pbwAYcVmQ==",
5
+ "_integrity": "sha512-38+4DXealvr+/ilsoiXsSbntiZsi12LiBsyZj7m2Lt2sYbqASv3glc3KevxKzpN+56ID6iVUnDtp3hAGn6FehA==",
6
6
  "_location": "/@syncfusion/ej2-querybuilder",
7
- "_phantomChildren": {
8
- "@syncfusion/ej2-icons": "19.4.38",
9
- "@syncfusion/ej2-lists": "19.3.53",
10
- "@syncfusion/ej2-popups": "19.3.53"
11
- },
7
+ "_phantomChildren": {},
12
8
  "_requested": {
13
9
  "type": "range",
14
10
  "registry": true,
@@ -27,8 +23,8 @@
27
23
  "/@syncfusion/ej2-react-querybuilder",
28
24
  "/@syncfusion/ej2-vue-querybuilder"
29
25
  ],
30
- "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-19.3.53.tgz",
31
- "_shasum": "a3b528db30e5b0c67ed6174ff167a113e96b7a25",
26
+ "_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-19.4.48.tgz",
27
+ "_shasum": "40848896d9dba8fe345fae9dc651c97e14420f14",
32
28
  "_spec": "@syncfusion/ej2-querybuilder@*",
33
29
  "_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
34
30
  "author": {
@@ -36,12 +32,12 @@
36
32
  },
37
33
  "bundleDependencies": false,
38
34
  "dependencies": {
39
- "@syncfusion/ej2-base": "~19.4.38",
40
- "@syncfusion/ej2-buttons": "~19.4.38",
41
- "@syncfusion/ej2-calendars": "~19.4.38",
42
- "@syncfusion/ej2-dropdowns": "~19.4.40",
43
- "@syncfusion/ej2-inputs": "~19.4.38",
44
- "@syncfusion/ej2-splitbuttons": "~19.4.40"
35
+ "@syncfusion/ej2-base": "~19.4.48",
36
+ "@syncfusion/ej2-buttons": "~19.4.50",
37
+ "@syncfusion/ej2-calendars": "~19.4.50",
38
+ "@syncfusion/ej2-dropdowns": "~19.4.50",
39
+ "@syncfusion/ej2-inputs": "~19.4.48",
40
+ "@syncfusion/ej2-splitbuttons": "~19.4.48"
45
41
  },
46
42
  "deprecated": false,
47
43
  "description": "Essential JS 2 QueryBuilder",
@@ -72,7 +68,7 @@
72
68
  "type": "git",
73
69
  "url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/querybuilder"
74
70
  },
75
- "sideEffects": false,
76
71
  "typings": "index.d.ts",
77
- "version": "19.4.40"
72
+ "version": "19.4.50",
73
+ "sideEffects": false
78
74
  }
@@ -284,6 +284,10 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
284
284
  private isAddSuccess;
285
285
  private isNotValueChange;
286
286
  private isRoot;
287
+ private prevItemData;
288
+ private isFieldChange;
289
+ private isFieldClose;
290
+ private isDestroy;
287
291
  /**
288
292
  * Triggers when the component is created.
289
293
  *
@@ -521,6 +525,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
521
525
  private changeValue;
522
526
  private filterValue;
523
527
  private changeValueSuccessCallBack;
528
+ private fieldClose;
524
529
  private changeField;
525
530
  private changeRule;
526
531
  private changeFilter;
@@ -741,6 +746,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
741
746
  private sqlParser;
742
747
  private parseSqlStrings;
743
748
  private checkLiteral;
749
+ private checkNumberLiteral;
744
750
  private getOperator;
745
751
  private getTypeFromColumn;
746
752
  private processParser;
@@ -188,6 +188,9 @@ var QueryBuilder = /** @class */ (function (_super) {
188
188
  _this.isNotified = false;
189
189
  _this.isAddSuccess = false;
190
190
  _this.isNotValueChange = false;
191
+ _this.isFieldChange = false;
192
+ _this.isFieldClose = false;
193
+ _this.isDestroy = false;
191
194
  MultiSelect.Inject(CheckBoxSelection);
192
195
  return _this;
193
196
  }
@@ -667,8 +670,8 @@ var QueryBuilder = /** @class */ (function (_super) {
667
670
  ddlField = {
668
671
  dataSource: this.columns,
669
672
  fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),
670
- popupHeight: ((this.columns.length > 5) ? height : 'auto'),
671
- change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this)
673
+ popupHeight: ((this.columns.length > 5) ? height : 'auto'), close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),
674
+ change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this, true)
672
675
  };
673
676
  if (this.fieldModel) {
674
677
  ddlField = __assign({}, ddlField, this.fieldModel);
@@ -690,11 +693,11 @@ var QueryBuilder = /** @class */ (function (_super) {
690
693
  var ddlValue = this.isImportRules ? rule.field : rule.field;
691
694
  ddlField = {
692
695
  fields: { dataSource: this.columns,
693
- value: "field", text: "label", child: 'columns', expanded: "expanded" },
696
+ value: 'field', text: 'label', child: 'columns', expanded: 'expanded' },
694
697
  placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
695
698
  popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
696
699
  change: this.changeField.bind(this), value: this.isImportRules ? [ddlValue] : null,
697
- open: this.popupOpen.bind(this)
700
+ open: this.popupOpen.bind(this, false)
698
701
  };
699
702
  if (this.fieldModel) {
700
703
  ddlField = __assign({}, ddlField, this.fieldModel);
@@ -738,12 +741,19 @@ var QueryBuilder = /** @class */ (function (_super) {
738
741
  else {
739
742
  groupElem = closest(target, '.e-group-container');
740
743
  rules = this.getParentGroup(groupElem);
744
+ var custom = rule.custom;
741
745
  if (Object.keys(rule).length) {
742
746
  rules.rules.push({
743
747
  'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
744
748
  });
749
+ if (custom) {
750
+ rules.rules[rules.rules.length - 1].custom = custom;
751
+ }
745
752
  }
746
753
  else {
754
+ if (custom) {
755
+ newRule.custom = custom;
756
+ }
747
757
  rules.rules.push(newRule);
748
758
  }
749
759
  }
@@ -1297,21 +1307,41 @@ var QueryBuilder = /** @class */ (function (_super) {
1297
1307
  }
1298
1308
  }
1299
1309
  };
1310
+ QueryBuilder.prototype.fieldClose = function (id) {
1311
+ if (this.isFieldChange || this.isDestroy) {
1312
+ return;
1313
+ }
1314
+ this.isFieldClose = true;
1315
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1316
+ var ddl = getComponent(id, 'dropdownlist');
1317
+ var item = ddl.popupObj.element.querySelector('.e-active');
1318
+ var itemData = ddl.getItemData();
1319
+ ddl.value = itemData.value;
1320
+ var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
1321
+ previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null };
1322
+ this.changeField(customArgs);
1323
+ this.isFieldChange = false;
1324
+ };
1300
1325
  QueryBuilder.prototype.changeField = function (args) {
1301
1326
  if (args.isInteracted) {
1327
+ if (isNullOrUndefined(args.value)) {
1328
+ return;
1329
+ }
1330
+ this.isFieldChange = true;
1331
+ this.prevItemData = args.itemData;
1302
1332
  var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
1303
1333
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);
1304
1334
  if (this.fieldMode === 'DropdownTree' && fieldElem != null) {
1305
- var ddtElem = fieldElem.querySelector(".e-control");
1335
+ var ddtElem = fieldElem.querySelector('.e-control');
1306
1336
  var ddt = getComponent(ddtElem, 'dropdowntree');
1307
1337
  if (column) {
1308
- if (column.type == 'object') {
1338
+ if (column.type === 'object') {
1309
1339
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1310
1340
  ddt.value = args.oldValue;
1311
1341
  ddt.dataBind();
1312
1342
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1313
1343
  if (isNullOrUndefined(args.oldValue)) {
1314
- ddtElem.value = "";
1344
+ ddtElem.value = '';
1315
1345
  }
1316
1346
  else {
1317
1347
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1347,6 +1377,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1347
1377
  ruleElem = ruleElem.previousElementSibling;
1348
1378
  index++;
1349
1379
  }
1380
+ rules.rules[index].value = '';
1350
1381
  this.changeRule(rules.rules[index], args);
1351
1382
  }
1352
1383
  }
@@ -1436,6 +1467,9 @@ var QueryBuilder = /** @class */ (function (_super) {
1436
1467
  getComponent(tooltipElem[i], 'tooltip').destroy();
1437
1468
  }
1438
1469
  if (!args.cancel) {
1470
+ if (isNullOrUndefined(this.selectedColumn)) {
1471
+ return;
1472
+ }
1439
1473
  tempRule.type = this.selectedColumn.type;
1440
1474
  if (ruleElem.querySelector('.e-template')) {
1441
1475
  rule.value = '';
@@ -1470,15 +1504,20 @@ var QueryBuilder = /** @class */ (function (_super) {
1470
1504
  tempElem.appendChild(subFieldElem);
1471
1505
  var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
1472
1506
  var subFieldData = Object.keys(this.selectedColumn.columns[0]);
1473
- var dropDownList = new DropDownList({
1507
+ var ddlField;
1508
+ ddlField = {
1474
1509
  dataSource: this.selectedColumn.columns,
1475
1510
  fields: this.fields,
1476
1511
  placeholder: this.l10n.getConstant('SelectField'),
1477
1512
  popupHeight: ((subFieldData.length > 5) ? height : 'auto'),
1478
1513
  change: this.changeField.bind(this),
1479
1514
  index: 0,
1480
- open: this.popupOpen.bind(this)
1481
- });
1515
+ open: this.popupOpen.bind(this, false)
1516
+ };
1517
+ if (this.fieldModel) {
1518
+ ddlField = __assign({}, ddlField, this.fieldModel);
1519
+ }
1520
+ var dropDownList = new DropDownList(ddlField);
1482
1521
  dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);
1483
1522
  if (this.isImportRules) {
1484
1523
  var subField = this.selectedColumn.columns;
@@ -1598,7 +1637,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1598
1637
  change: this.changeField.bind(this),
1599
1638
  index: 0,
1600
1639
  value: value,
1601
- open: this.popupOpen.bind(this)
1640
+ open: this.popupOpen.bind(this, false)
1602
1641
  };
1603
1642
  if (this.operatorModel) {
1604
1643
  ddlOperator = __assign({}, ddlOperator, this.operatorModel);
@@ -1617,10 +1656,13 @@ var QueryBuilder = /** @class */ (function (_super) {
1617
1656
  this.updateRules(ddlArgs.element, ddlArgs.item);
1618
1657
  }
1619
1658
  };
1620
- QueryBuilder.prototype.popupOpen = function (args) {
1659
+ QueryBuilder.prototype.popupOpen = function (isField, args) {
1621
1660
  if (this.enableRtl) {
1622
1661
  addClass([args.popup.element], 'e-rtl');
1623
1662
  }
1663
+ if (isField) {
1664
+ this.isFieldClose = false;
1665
+ }
1624
1666
  };
1625
1667
  QueryBuilder.prototype.destroyControls = function (target, isRuleTemplate) {
1626
1668
  var element = isRuleTemplate ? target : target.nextElementSibling;
@@ -1813,7 +1855,7 @@ var QueryBuilder = /** @class */ (function (_super) {
1813
1855
  change: this.changeValue.bind(this, i),
1814
1856
  close: this.closePopup.bind(this, i),
1815
1857
  actionBegin: this.multiSelectOpen.bind(this, parentId + '_valuekey' + i),
1816
- open: this.popupOpen.bind(this)
1858
+ open: this.popupOpen.bind(this, false)
1817
1859
  };
1818
1860
  if (this.valueModel && this.valueModel.multiSelectModel) {
1819
1861
  multiSelectValue = __assign({}, multiSelectValue, this.valueModel.multiSelectModel);
@@ -1873,8 +1915,10 @@ var QueryBuilder = /** @class */ (function (_super) {
1873
1915
  };
1874
1916
  QueryBuilder.prototype.closePopup = function (i, args) {
1875
1917
  var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
1876
- var value = getComponent(element, 'multiselect').value;
1877
- this.updateRules(element, value, i);
1918
+ if (element) {
1919
+ var value = getComponent(element, 'multiselect').value;
1920
+ this.updateRules(element, value, i);
1921
+ }
1878
1922
  };
1879
1923
  QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
1880
1924
  var container = closest(target, '.e-rule-container');
@@ -2235,6 +2279,9 @@ var QueryBuilder = /** @class */ (function (_super) {
2235
2279
  return 0;
2236
2280
  };
2237
2281
  QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {
2282
+ if (this.isFieldClose && prevItemData) {
2283
+ prevItemData = this.getColumn(prevItemData.value);
2284
+ }
2238
2285
  if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
2239
2286
  prevItemData.template = column.template;
2240
2287
  }
@@ -2727,6 +2774,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2727
2774
  * @returns {void}
2728
2775
  */
2729
2776
  QueryBuilder.prototype.destroy = function () {
2777
+ this.isDestroy = true;
2730
2778
  var queryElement = this.element;
2731
2779
  if (!queryElement) {
2732
2780
  return;
@@ -2782,6 +2830,7 @@ var QueryBuilder = /** @class */ (function (_super) {
2782
2830
  this.clearQBTemplate();
2783
2831
  }
2784
2832
  classList(this.element, [], ['e-rtl', 'e-responsive', 'e-device']);
2833
+ this.isDestroy = false;
2785
2834
  };
2786
2835
  /**
2787
2836
  * Adds single or multiple rules.
@@ -3422,7 +3471,11 @@ var QueryBuilder = /** @class */ (function (_super) {
3422
3471
  }
3423
3472
  }
3424
3473
  var isTemplateRendered = clnruleElem.querySelector('.e-template-value');
3425
- detach(clnruleElem);
3474
+ try {
3475
+ detach(clnruleElem);
3476
+ }
3477
+ catch (err) {
3478
+ }
3426
3479
  if (column && column.ruleTemplate) {
3427
3480
  this.clearQBTemplate([clnruleElem.id]);
3428
3481
  }
@@ -3542,10 +3595,14 @@ var QueryBuilder = /** @class */ (function (_super) {
3542
3595
  }
3543
3596
  }
3544
3597
  if ((this.isRefreshed && this.enablePersistence) || (this.rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
3545
- rule.value !== undefined))) {
3598
+ rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
3599
+ var condition = rule.condition;
3546
3600
  rule = {
3547
3601
  'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value
3548
3602
  };
3603
+ if (condition) {
3604
+ rule.condition = condition;
3605
+ }
3549
3606
  if (customObj) {
3550
3607
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3551
3608
  rule.custom = customObj;
@@ -3567,6 +3624,9 @@ var QueryBuilder = /** @class */ (function (_super) {
3567
3624
  rule.not = notValue;
3568
3625
  }
3569
3626
  }
3627
+ else if ((isNullOrUndefined(rule.condition)) && isNullOrUndefined(rule.rules)) {
3628
+ rule = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };
3629
+ }
3570
3630
  else {
3571
3631
  if (this.enableNotCondition) {
3572
3632
  rule = { 'condition': rule.condition, 'rules': rule.rules, 'not': rule.not };
@@ -3750,7 +3810,7 @@ var QueryBuilder = /** @class */ (function (_super) {
3750
3810
  }
3751
3811
  }
3752
3812
  }
3753
- else if (ruleColl[i].operator.length) {
3813
+ else if (!isNullOrUndefined(ruleColl[i].operator) && !isNullOrUndefined(ruleColl[i].operator.length)) {
3754
3814
  var oper = ruleColl[i].operator.toLowerCase();
3755
3815
  var isDateFilter = false;
3756
3816
  var dateOperColl = ['equal', 'notequal', 'greaterthan', 'greaterthanorequal', 'lessthan', 'lessthanorequal'];
@@ -3851,6 +3911,12 @@ var QueryBuilder = /** @class */ (function (_super) {
3851
3911
  break;
3852
3912
  }
3853
3913
  }
3914
+ else if (field.indexOf(this.separator) > -1) {
3915
+ if (columns[i].field === field.split(this.separator)[0]) {
3916
+ column = columns[i];
3917
+ break;
3918
+ }
3919
+ }
3854
3920
  }
3855
3921
  return column;
3856
3922
  };
@@ -3940,7 +4006,7 @@ var QueryBuilder = /** @class */ (function (_super) {
3940
4006
  }
3941
4007
  if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {
3942
4008
  for (var j = 0, jLen = value.length; j < jLen; j++) {
3943
- if (value[j] !== '') {
4009
+ if (value[j] !== '' || ((operator === 'in' || operator === 'notin') && column.type === 'string')) {
3944
4010
  if (j === 0) {
3945
4011
  var gte = 'greaterthanorequal';
3946
4012
  switch (operator) {
@@ -4082,7 +4148,7 @@ var QueryBuilder = /** @class */ (function (_super) {
4082
4148
  if (!isNullOrUndefined(ruleColl)) {
4083
4149
  for (var i = 0, len = ruleColl.length; i < len; i++) {
4084
4150
  var keys = Object.keys(ruleColl[i]);
4085
- if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1) {
4151
+ if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1 && (ruleColl[i].rules.length !== 0)) {
4086
4152
  parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);
4087
4153
  parentElem = this.importRules(ruleColl[i], parentElem, true);
4088
4154
  }
@@ -4319,8 +4385,14 @@ var QueryBuilder = /** @class */ (function (_super) {
4319
4385
  }
4320
4386
  queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
4321
4387
  }
4388
+ if (rule.condition && rule.condition != '') {
4389
+ condition = rule.condition;
4390
+ }
4322
4391
  }
4323
4392
  if (j !== jLen - 1) {
4393
+ if (condition === '') {
4394
+ condition = rules.rules[j].condition;
4395
+ }
4324
4396
  queryStr += ' ' + condition.toUpperCase() + ' ';
4325
4397
  }
4326
4398
  }
@@ -4454,6 +4526,12 @@ var QueryBuilder = /** @class */ (function (_super) {
4454
4526
  this.parser.push(['Literal', matchValue]);
4455
4527
  return matchValue.length + 2;
4456
4528
  }
4529
+ // eslint-disable-next-line
4530
+ if (this.checkNumberLiteral(sqlString)) {
4531
+ matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4532
+ this.parser.push(['Literal', matchValue]);
4533
+ return matchValue.length;
4534
+ }
4457
4535
  //String
4458
4536
  if (/^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)) {
4459
4537
  matchValue = /^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)[0];
@@ -4493,6 +4571,25 @@ var QueryBuilder = /** @class */ (function (_super) {
4493
4571
  }
4494
4572
  return false;
4495
4573
  };
4574
+ QueryBuilder.prototype.checkNumberLiteral = function (sqlString) {
4575
+ var lastParser = this.parser[this.parser.length - 1];
4576
+ if (!lastParser) {
4577
+ return true;
4578
+ }
4579
+ else {
4580
+ if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4581
+ var secParser = this.parser[this.parser.length - 2];
4582
+ var betweenParser = this.parser[this.parser.length - 3];
4583
+ if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {
4584
+ return true;
4585
+ }
4586
+ if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf('between') < 0)) {
4587
+ return true;
4588
+ }
4589
+ }
4590
+ }
4591
+ return false;
4592
+ };
4496
4593
  QueryBuilder.prototype.getOperator = function (value, operator) {
4497
4594
  var operators = {
4498
4595
  '=': 'equal', '!=': 'notequal', '<': 'lessthan', '>': 'greaterthan', '<=': 'lessthanorequal',
@@ -69,6 +69,11 @@
69
69
  background: transparent;
70
70
  }
71
71
 
72
+ .e-input-group.e-control-wrapper.e-ddl.e-readonly .e-input[readonly],
73
+ .e-float-input.e-control-wrapper.e-ddl.e-readonly input[readonly] {
74
+ background: #e9ecef;
75
+ }
76
+
72
77
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
73
78
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
74
79
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
@@ -65,6 +65,11 @@
65
65
  background: transparent;
66
66
  }
67
67
 
68
+ .e-input-group.e-control-wrapper.e-ddl.e-readonly .e-input[readonly],
69
+ .e-float-input.e-control-wrapper.e-ddl.e-readonly input[readonly] {
70
+ background: #343a40;
71
+ }
72
+
68
73
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
69
74
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
70
75
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
@@ -321,7 +326,7 @@
321
326
 
322
327
  .e-query-builder .e-rule-list > ::after,
323
328
  .e-query-builder .e-rule-list > ::before {
324
- border-style: dotted;
329
+ border-style: dashed;
325
330
  content: '';
326
331
  left: -12px;
327
332
  position: absolute;
@@ -495,8 +500,8 @@
495
500
  .e-query-builder .e-group-body .e-rule-container.e-joined-rule {
496
501
  border-top-left-radius: 0;
497
502
  border-top-right-radius: 0;
498
- border-top-style: dotted;
499
- border-top-width: 2px;
503
+ border-top-style: dashed;
504
+ border-top-width: 1px;
500
505
  margin-top: 0;
501
506
  }
502
507
 
@@ -65,6 +65,11 @@
65
65
  background: transparent;
66
66
  }
67
67
 
68
+ .e-input-group.e-control-wrapper.e-ddl.e-readonly .e-input[readonly],
69
+ .e-float-input.e-control-wrapper.e-ddl.e-readonly input[readonly] {
70
+ background: #e9ecef;
71
+ }
72
+
68
73
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
69
74
  .e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
70
75
  .e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
@@ -321,7 +326,7 @@
321
326
 
322
327
  .e-query-builder .e-rule-list > ::after,
323
328
  .e-query-builder .e-rule-list > ::before {
324
- border-style: dotted;
329
+ border-style: dashed;
325
330
  content: '';
326
331
  left: -12px;
327
332
  position: absolute;
@@ -495,8 +500,8 @@
495
500
  .e-query-builder .e-group-body .e-rule-container.e-joined-rule {
496
501
  border-top-left-radius: 0;
497
502
  border-top-right-radius: 0;
498
- border-top-style: dotted;
499
- border-top-width: 2px;
503
+ border-top-style: dashed;
504
+ border-top-width: 1px;
500
505
  margin-top: 0;
501
506
  }
502
507
 
@@ -29,7 +29,7 @@ $qrybldr-rule-list-after-border: 0 0 0 2px !default;
29
29
  $qrybldr-rule-list-before-border: 0 0 2px 2px !default;
30
30
  $qrybldr-rule-list-rtl-after-border: 0 2px 0 0 !default;
31
31
  $qrybldr-rule-list-rtl-before-border: 0 2px 2px 0 !default;
32
- $qrybldr-rule-list-border-style: dotted !default;
32
+ $qrybldr-rule-list-border-style: dashed !default;
33
33
  $before-border-height: calc(50% + 14px) !default;
34
34
  $after-border-height: calc(50% + 8px) !default;
35
35
  $qrybldr-add-icon: '\e805' !default;
@@ -0,0 +1,107 @@
1
+ //layout variables
2
+ $qrybldr-width: auto !default;
3
+ $qrybldr-height: auto !default;
4
+ $qrybldr-brdr: 1px solid !default;
5
+ $qrybldr-btngrp-brdr: none !default;
6
+ $grpcon-padding: 12px !default;
7
+ $qrybldr-device-diaplay: inline-block !default;
8
+ $group-action-margin: 12px !default;
9
+ $group-action-mrgntop: 5px !default;
10
+ $groupbody-paddingleft: 20px !default;
11
+ $rulecon-height: auto !default;
12
+ $rulecon-padding: 8px 0 8px 8px !default;
13
+ $hrmode-ruledlt-mrgn: 12px !default;
14
+ $vrmode-ruledlt-mrgnpos: absolute !default;
15
+ $qrybldr-rulelist-grcon-float: right !default;
16
+ $qrybldr-rulelist-grcon-width: 100% !default;
17
+ $qrybldr-button-hide: none !default;
18
+ $qrybldr-field: left !default;
19
+ $ruledelete-margin: 8px !default;
20
+ $radio-wrapper-margin: 15px !default;
21
+ $qrybldr-group-container-margin-top: 12px !default;
22
+ $qrybldr-group-container-margin-left: 0 !default;
23
+ $qrybldr-posn-relative: relative !default;
24
+ $rule-boxshadow: none !default;
25
+ $qrybldr-rule-list-first-left: -12px !default;
26
+ $qrybldr-rule-list-first-right: -12px !default;
27
+ $qrybldr-rule-list-before-top: -10px !default;
28
+ $qrybldr-rule-list-after-border: 0 0 0 2px !default;
29
+ $qrybldr-rule-list-before-border: 0 0 2px 2px !default;
30
+ $qrybldr-rule-list-rtl-after-border: 0 2px 0 0 !default;
31
+ $qrybldr-rule-list-rtl-before-border: 0 2px 2px 0 !default;
32
+ $qrybldr-rule-list-border-style: dotted !default;
33
+ $before-border-height: calc(50% + 14px) !default;
34
+ $after-border-height: calc(50% + 8px) !default;
35
+ $qrybldr-add-icon: '\e805' !default;
36
+ $qrybldr-delete-icon: '\e7e7' !default;
37
+ $bigger-group-action-margin: 16px !default;
38
+ $bigger-groupbody-paddingleft: 24px !default;
39
+ $bigger-hrmode-ruledlt-mrgn: 15px !default;
40
+ $bigger-rulecon-padding: 10px 0 10px 10px !default;
41
+ $device-rule-padding: 15px 0 0 15px !default;
42
+ $device-rule-padding-right: 15px !default;
43
+ $bigger-ruledelete-marginleft: 10px !default;
44
+ $qrybldr-rule-border: 1px solid !default;
45
+ $qrybldr-rule-list-after-height: calc(100% - 17px) !default;
46
+ $qrybldr-rule-list-height: 25px !default;
47
+ $qrybldr-rule-list-top: 17px !default;
48
+ $qrybldr-nav-width: 10px !default;
49
+ $qrybldr-rule-container-after-height: calc(50% + 6px) !default;
50
+ $qrybldr-rule-container-after-top: calc(50% - 3px) !default;
51
+ $qrybldr-grpcon-brder-left: -11px !default;
52
+ $bigger-rule-list-first-top: -14px !default;
53
+ $qrybldr-rulecont-margin: -1px !default;
54
+ $ruledelete-shadow: none !default;
55
+ $device-rulecon-padding: 14px !default;
56
+ $qrybldr-rulelist: 14px 0 14px 0 !default;
57
+ $qrybldr-bigger-rulelist: 16px 0 16px 0 !default;
58
+ $qrybldr-add-mrgn-btm: 2px !default;
59
+ $device-rulecon-right-padding: 8px !default;
60
+ $qrybldr-summary-padding: 12px !default;
61
+ $qrybldr-summary-btn-padding: 12px !default;
62
+ $qrybldr-bigger-summary-padding: 15px !default;
63
+ $qrybldr-bigger-summary-btn-padding: 15px !default;
64
+ $qrybldr-summary-text-width: 100% !default;
65
+ $qrybldr-clspe-rule-pos: absolute !default;
66
+ $qrybldr-btngrp-shadow: none !default;
67
+ $qrybldr-multi-width: 190px !default;
68
+ $qrybldr-device-value-width: 100% !default;
69
+ $qrybldr-btngroup-display: inline-block !default;
70
+ $qrybldr-grpcon-aftrbrder-left: -11px !default;
71
+ $after-ruleborder-height: calc(50% + 10px) !default;
72
+ $qrybldr-val-error-border: 8px solid !default;
73
+ $biggerafter-ruleborder-height: calc(50% + 12px) !default;
74
+ $qrybldr-bigger-rule-list-before-top: -12px !default;
75
+ $qrybldr-rule-list-first-top: -11px !default;
76
+ $qrybldr-collapse-rule-padding: 0 14px !default;
77
+ $qrybldr-multi-maxwidth: 200px !default;
78
+ $qrybldr-device-multi-maxwidth: 100% !default;
79
+ $qrybldr-btn-left: 10px !default;
80
+ $qrybldr-touch-btn-left: 14px !default;
81
+ $qrybldr-collapse-font-size: 20px !default;
82
+ $qrybldr-collapse-padding: 5px !default;
83
+ $qrybldr-collapse-box-shadow: none !default;
84
+ $qrybldr-collapse-txtarea-margin: 8px !default;
85
+ $qrybldr-brdr-radius: 4px !default;
86
+ $qrybldr-summary-line-height: 1.5em !default;
87
+ $qrybldr-smrytxt-font-size: 14px !default;
88
+ $qrybldr-bigger-smrytxt-font-size: 16px !default;
89
+ $qrybldr-spinner-right: 5px !default;
90
+ $qrybldr-spinner-left: auto !default;
91
+ $qrybldr-rtl-spinner-right: auto !default;
92
+ $qrybldr-rtl-spinner-left: 5px !default;
93
+ $qrybldr-btngrp-brdr-radius: 4px !default;
94
+ $qrybldr-btngroup-bgcolor: $primary !default;
95
+ $qrybldr-btngroup-color: $primary-text-color !default;
96
+ $qrybldr-color: $placeholder-text-color !default;
97
+ $qrybldr-rule-list-border-color: $border-light !default;
98
+ $qrybldr-btngroup-active-bgcolor: $primary !default;
99
+ $qrybldr-btngroup-active-color: $primary-text-color !default;
100
+ $groupborder-color: $border-light !default;
101
+ $groupfill-color: $secondary-bg-color !default;
102
+ $groupfill-bgcolor: $content-bg-color-alt1 !default;
103
+ $qrybldr-brdr-color: $border-light !default;
104
+ $qrybldr-bg-color: transparent !default;
105
+ $qrybldr-val-error-bg-color: $danger-light !default;
106
+ $qrybldr-val-error-color: $danger-bg-color !default;
107
+ $qrybldr-collapse-brdr-color: $border-light !default;
@@ -309,7 +309,12 @@
309
309
  border-top-left-radius: 0;
310
310
  border-top-right-radius: 0;
311
311
  border-top-style: $qrybldr-rule-list-border-style;
312
- border-top-width: 2px;
312
+ @if $skin-name == 'tailwind' or $skin-name == 'bootstrap5' {
313
+ border-top-width: 1px;
314
+ }
315
+ @else {
316
+ border-top-width: 2px;
317
+ }
313
318
  margin-top: 0;
314
319
  }
315
320
 
@@ -29,7 +29,7 @@ $qrybldr-rule-list-after-border: 0 0 0 2px !default;
29
29
  $qrybldr-rule-list-before-border: 0 0 2px 2px !default;
30
30
  $qrybldr-rule-list-rtl-after-border: 0 2px 0 0 !default;
31
31
  $qrybldr-rule-list-rtl-before-border: 0 2px 2px 0 !default;
32
- $qrybldr-rule-list-border-style: solid !default;
32
+ $qrybldr-rule-list-border-style: dashed !default;
33
33
  $before-border-height: calc(50% + 14px) !default;
34
34
  $after-border-height: calc(50% + 8px) !default;
35
35
  $qrybldr-add-icon: '\e78a' !default;