@syncfusion/ej2-querybuilder 20.3.59 → 20.4.38

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.
@@ -383,7 +383,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
383
383
  if (sqlIdx > -1) {
384
384
  var operator_1 = column.operators[j];
385
385
  var operColl = Object.keys(operator_1);
386
- var values = operColl.map(function (key) { return operator_1[key]; }).join(',').split(',');
386
+ var values = operColl.map(function (key) { return operator_1["" + key]; }).join(',').split(',');
387
387
  var valueIdx = operColl.indexOf('value');
388
388
  this_1.operators[values[valueIdx]] = values[sqlIdx];
389
389
  }
@@ -780,6 +780,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
780
780
  var tooltip = new Tooltip({ content: this.l10n.getConstant('ValidationMessage'),
781
781
  position: 'BottomCenter', cssClass: 'e-querybuilder-error' });
782
782
  tooltip.appendTo(element);
783
+ // eslint-disable-next-line
783
784
  tooltip.open(element);
784
785
  };
785
786
  /**
@@ -837,8 +838,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
837
838
  if (rule.rules[index].value instanceof Array) {
838
839
  valArray = rule.rules[index].value;
839
840
  }
840
- if (excludeOprs.indexOf(rule.rules[index].operator) < 0 && (isNullOrUndefined(rule.rules[index].value) &&
841
- rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
841
+ if (excludeOprs.indexOf(rule.rules[index].operator) < 0 &&
842
+ (isNullOrUndefined(rule.rules[index].value) &&
843
+ rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
842
844
  (rule.rules[index].value instanceof Array && valArray.length < 1)) {
843
845
  var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
844
846
  isValid = false;
@@ -916,7 +918,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
916
918
  groupElem.appendChild(grpBodyElem);
917
919
  // create button group in OR and AND process
918
920
  if (!this.headerTemplate) {
919
- glueElem = this.createElement('div', { attrs: { class: 'e-lib e-btn-group' } });
921
+ glueElem = this.createElement('div', { attrs: { class: 'e-lib e-btn-group', role: 'group' } });
920
922
  if (this.enableNotCondition) {
921
923
  inputElem = this.createElement('button', { attrs: { type: 'button', class: 'e-qb-toggle' } });
922
924
  glueElem.appendChild(inputElem);
@@ -1800,29 +1802,29 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1800
1802
  for (var j = 0, jLen = fieldColl.length; j < jLen; j++) {
1801
1803
  fieldStr = fieldColl[j];
1802
1804
  if (fieldColl.length === (j + 1)) {
1803
- value = dataObj[fieldStr];
1804
- if (Number(dataObj[fieldStr]) === dataObj[fieldStr] && dataObj[fieldStr] % 1 !== 0) {
1805
- value = dataObj[fieldStr].toString();
1805
+ value = dataObj["" + fieldStr];
1806
+ if (Number(dataObj["" + fieldStr]) === dataObj["" + fieldStr] && dataObj["" + fieldStr] % 1 !== 0) {
1807
+ value = dataObj["" + fieldStr].toString();
1806
1808
  }
1807
1809
  }
1808
1810
  else {
1809
- dataObj = dataObj[fieldStr];
1811
+ dataObj = dataObj["" + fieldStr];
1810
1812
  }
1811
1813
  }
1812
1814
  }
1813
1815
  else {
1814
- value = dataSource[i][field];
1815
- if (Number(dataSource[i][field]) === dataSource[i][field] && dataSource[i][field] % 1 !== 0) {
1816
- value = dataSource[i][field].toString();
1816
+ value = dataSource[i]["" + field];
1817
+ if (Number(dataSource[i]["" + field]) === dataSource[i]["" + field] && dataSource[i]["" + field] % 1 !== 0) {
1818
+ value = dataSource[i]["" + field].toString();
1817
1819
  }
1818
1820
  }
1819
1821
  if (!(value in original)) {
1820
- original[value] = 1;
1822
+ original["" + value] = 1;
1821
1823
  if (fieldColl.length > 1) {
1822
1824
  this.createNestedObject(data, fieldColl, value);
1823
1825
  }
1824
1826
  else {
1825
- data[field] = value;
1827
+ data["" + field] = value;
1826
1828
  }
1827
1829
  result.push(data);
1828
1830
  }
@@ -1836,9 +1838,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1836
1838
  for (var k = 0; k < lastIndex; ++k) {
1837
1839
  key = fieldColl[k];
1838
1840
  if (!(key in obj)) {
1839
- obj[key] = {};
1841
+ obj["" + key] = {};
1840
1842
  }
1841
- obj = obj[key];
1843
+ obj = obj["" + key];
1842
1844
  }
1843
1845
  obj[fieldColl[lastIndex]] = value;
1844
1846
  };
@@ -1850,28 +1852,28 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1850
1852
  var isNested = field.indexOf(this.separator);
1851
1853
  var _loop_2 = function (i, iLen) {
1852
1854
  if (isNested === 0) {
1853
- value = dataSource[i][field];
1855
+ value = dataSource[i]["" + field];
1854
1856
  }
1855
1857
  else {
1856
1858
  nest = field.split(this_2.separator);
1857
1859
  // eslint-disable-next-line @typescript-eslint/tslint/config
1858
1860
  nest.forEach(function (element) {
1859
1861
  if (value) {
1860
- value = value[element];
1862
+ value = value["" + element];
1861
1863
  }
1862
1864
  else {
1863
- value = dataSource[i][element];
1865
+ value = dataSource[i]["" + element];
1864
1866
  }
1865
1867
  });
1866
1868
  }
1867
- if (Number(dataSource[i][field]) === dataSource[i][field] && dataSource[i][field] % 1 !== 0) {
1868
- value = dataSource[i][field].toString();
1869
+ if (Number(dataSource[i]["" + field]) === dataSource[i]["" + field] && dataSource[i]["" + field] % 1 !== 0) {
1870
+ value = dataSource[i]["" + field].toString();
1869
1871
  }
1870
1872
  var data = {};
1871
1873
  if (!(value in original)) {
1872
- original[value] = 1;
1874
+ original["" + value] = 1;
1873
1875
  if (isNested === 0) {
1874
- data[field] = value;
1876
+ data["" + field] = value;
1875
1877
  }
1876
1878
  else {
1877
1879
  data[nest[nest.length - 1]] = value;
@@ -2619,7 +2621,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2619
2621
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
2620
2622
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2621
2623
  : this.getColumn(dropDownObj.value);
2622
- if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2624
+ if (!this.isImportRules && rule.rules[index].field &&
2625
+ rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2623
2626
  if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
2624
2627
  || (operator.indexOf('empty') > -1)) {
2625
2628
  rule.rules[index].value = '';
@@ -3414,7 +3417,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3414
3417
  EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
3415
3418
  };
3416
3419
  QueryBuilder.prototype.getParentGroup = function (target, isParent) {
3417
- var groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl[target];
3420
+ var groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl["" + target];
3418
3421
  var len = isParent ? groupLevel.length - 1 : groupLevel.length;
3419
3422
  var rule = this.rule;
3420
3423
  for (var i = 0; i < len; i++) {
@@ -3576,6 +3579,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3576
3579
  err = [];
3577
3580
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3578
3581
  var error = 'error';
3582
+ // eslint-disable-next-line
3579
3583
  err[error] = error;
3580
3584
  }
3581
3585
  // eslint-enable
@@ -3737,6 +3741,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3737
3741
  else {
3738
3742
  rule = { 'condition': rule.condition, 'rules': rule.rules };
3739
3743
  }
3744
+ if (rule.rules.length === 0) {
3745
+ rule = {};
3746
+ }
3740
3747
  }
3741
3748
  }
3742
3749
  return rule;
@@ -3945,7 +3952,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3945
3952
  if (i === 0) {
3946
3953
  if (isDateFilter || (oper.indexOf('in') > -1 || oper.indexOf('between') > -1 || oper.indexOf('null') > -1 ||
3947
3954
  oper.indexOf('empty') > -1) && oper.indexOf('contains') < 0) {
3948
- pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue) : this.arrayPredicate(ruleColl[i]);
3955
+ pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue) :
3956
+ this.arrayPredicate(ruleColl[i]);
3949
3957
  }
3950
3958
  else {
3951
3959
  var value = ruleValue;
@@ -4429,89 +4437,90 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4429
4437
  queryStr += rulesNotCondition;
4430
4438
  }
4431
4439
  }
4432
- for (var j = 0, jLen = rules.rules.length; j < jLen; j++) {
4433
- if (rules.rules[j].rules) {
4434
- queryStr = this.getSqlString(rules.rules[j], enableEscape, queryStr, sqlLocale);
4435
- }
4436
- else {
4437
- var rule = rules.rules[j];
4438
- var valueStr = '';
4439
- var ruleOpertor = void 0;
4440
- ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
4441
- if (rule.value instanceof Array) {
4442
- if (rule.operator.toString().indexOf('between') > -1) {
4443
- var ruleCondition = sqlLocale ? ' ' + this.l10n.getConstant('AND').toUpperCase() + ' ' : ' ' + 'AND' + ' ';
4444
- if (rule.type === 'date' && !this.isDateFunction(rule.value[0])) {
4445
- valueStr += '"' + rule.value[0] + '"' + ruleCondition + '"' + rule.value[1] + '"';
4440
+ if (rules.rules) {
4441
+ for (var j = 0, jLen = rules.rules.length; j < jLen; j++) {
4442
+ if (rules.rules[j].rules) {
4443
+ queryStr = this.getSqlString(rules.rules[j], enableEscape, queryStr, sqlLocale);
4444
+ }
4445
+ else {
4446
+ var rule = rules.rules[j];
4447
+ var valueStr = '';
4448
+ var ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
4449
+ if (rule.value instanceof Array) {
4450
+ if (rule.operator.toString().indexOf('between') > -1) {
4451
+ var ruleCondition = sqlLocale ? ' ' + this.l10n.getConstant('AND').toUpperCase() + ' ' : ' ' + 'AND' + ' ';
4452
+ if (rule.type === 'date' && !this.isDateFunction(rule.value[0])) {
4453
+ valueStr += '"' + rule.value[0] + '"' + ruleCondition + '"' + rule.value[1] + '"';
4454
+ }
4455
+ else {
4456
+ valueStr += rule.value[0] + ruleCondition + rule.value[1];
4457
+ }
4446
4458
  }
4447
4459
  else {
4448
- valueStr += rule.value[0] + ruleCondition + rule.value[1];
4460
+ if (typeof rule.value[0] === 'string' && rule.value !== null) {
4461
+ valueStr += '("' + rule.value[0] + '"';
4462
+ for (var k = 1, kLen = rule.value.length; k < kLen; k++) {
4463
+ valueStr += ',"' + rule.value[k] + '"';
4464
+ }
4465
+ valueStr += ')';
4466
+ }
4467
+ else {
4468
+ valueStr += '(' + rule.value + ')';
4469
+ }
4449
4470
  }
4450
4471
  }
4451
4472
  else {
4452
- if (typeof rule.value[0] === 'string' && rule.value !== null) {
4453
- valueStr += '("' + rule.value[0] + '"';
4454
- for (var k = 1, kLen = rule.value.length; k < kLen; k++) {
4455
- valueStr += ',"' + rule.value[k] + '"';
4456
- }
4457
- valueStr += ')';
4473
+ if (rule.operator.toString().indexOf('startswith') > -1) {
4474
+ valueStr += rule.value ? '("' + rule.value + '%")' : '(' + rule.value + ')';
4475
+ }
4476
+ else if (rule.operator.toString().indexOf('endswith') > -1) {
4477
+ valueStr += rule.value ? '("%' + rule.value + '")' : '(' + rule.value + ')';
4478
+ }
4479
+ else if (rule.operator.toString().indexOf('contains') > -1) {
4480
+ valueStr += rule.value ? '("%' + rule.value + '%")' : '(' + rule.value + ')';
4458
4481
  }
4459
4482
  else {
4460
- valueStr += '(' + rule.value + ')';
4483
+ if (rule.type === 'number' || typeof rule.value === 'boolean' || rule.value === null) {
4484
+ valueStr += rule.value;
4485
+ }
4486
+ else {
4487
+ valueStr += '"' + rule.value + '"';
4488
+ }
4461
4489
  }
4462
4490
  }
4463
- }
4464
- else {
4465
- if (rule.operator.toString().indexOf('startswith') > -1) {
4466
- valueStr += rule.value ? '("' + rule.value + '%")' : '(' + rule.value + ')';
4467
- }
4468
- else if (rule.operator.toString().indexOf('endswith') > -1) {
4469
- valueStr += rule.value ? '("%' + rule.value + '")' : '(' + rule.value + ')';
4470
- }
4471
- else if (rule.operator.toString().indexOf('contains') > -1) {
4472
- valueStr += rule.value ? '("%' + rule.value + '%")' : '(' + rule.value + ')';
4473
- }
4474
- else {
4475
- if (rule.type === 'number' || typeof rule.value === 'boolean' || rule.value === null) {
4476
- valueStr += rule.value;
4491
+ if (rule.operator.toString().indexOf('null') > -1 || (rule.operator.toString().indexOf('empty') > -1)) {
4492
+ if (enableEscape) {
4493
+ rule.field = '`' + rule.field + '`';
4477
4494
  }
4478
4495
  else {
4479
- valueStr += '"' + rule.value + '"';
4496
+ if (rule.field.indexOf(' ') > -1) {
4497
+ rule.field = '"' + rule.field + '"';
4498
+ }
4480
4499
  }
4481
- }
4482
- }
4483
- if (rule.operator.toString().indexOf('null') > -1 || (rule.operator.toString().indexOf('empty') > -1)) {
4484
- if (enableEscape) {
4485
- rule.field = '`' + rule.field + '`';
4500
+ queryStr += rule.field + ' ' + ruleOpertor;
4486
4501
  }
4487
4502
  else {
4488
- if (rule.field.indexOf(' ') > -1) {
4489
- rule.field = '"' + rule.field + '"';
4503
+ if (enableEscape) {
4504
+ rule.field = '`' + rule.field + '`';
4490
4505
  }
4491
- }
4492
- queryStr += rule.field + ' ' + ruleOpertor;
4493
- }
4494
- else {
4495
- if (enableEscape) {
4496
- rule.field = '`' + rule.field + '`';
4497
- }
4498
- else {
4499
- if (rule.field.indexOf(' ') > -1) {
4500
- rule.field = '"' + rule.field + '"';
4506
+ else {
4507
+ if (rule.field.indexOf(' ') > -1) {
4508
+ rule.field = '"' + rule.field + '"';
4509
+ }
4501
4510
  }
4511
+ queryStr += rule.field + ' ' + ruleOpertor + ' ' + valueStr;
4512
+ }
4513
+ if (rule.condition && rule.condition !== '') {
4514
+ condition = rule.condition;
4502
4515
  }
4503
- queryStr += rule.field + ' ' + ruleOpertor + ' ' + valueStr;
4504
- }
4505
- if (rule.condition && rule.condition !== '') {
4506
- condition = rule.condition;
4507
4516
  }
4508
- }
4509
- if (j !== jLen - 1) {
4510
- if (condition === '') {
4511
- condition = rules.rules[j].condition;
4517
+ if (j !== jLen - 1) {
4518
+ if (condition === '') {
4519
+ condition = rules.rules[j].condition;
4520
+ }
4521
+ condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
4522
+ queryStr += ' ' + condition + ' ';
4512
4523
  }
4513
- condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
4514
- queryStr += ' ' + condition + ' ';
4515
4524
  }
4516
4525
  }
4517
4526
  if (!isRoot) {
@@ -4558,7 +4567,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4558
4567
  *
4559
4568
  * @param {RuleModel} rule - 'rule' to be passed to get the sql.
4560
4569
  * @param {boolean} allowEscape - Set `true` if it exclude the escape character.
4561
- * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.
4570
+ * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.
4562
4571
  * @returns {object} - Sql query from rules.
4563
4572
  */
4564
4573
  QueryBuilder.prototype.getSqlFromRules = function (rule, allowEscape, sqlLocale) {
@@ -4602,6 +4611,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4602
4611
  var matchValue;
4603
4612
  for (var i = 0, iLen = operators.length; i < iLen; i++) {
4604
4613
  regexStr = /^\w+$/.test(operators[i]) ? '\\b' : '';
4614
+ // eslint-disable-next-line
4605
4615
  regex = new RegExp('^(' + operators[i] + ')' + regexStr, 'ig');
4606
4616
  if (regex.exec(sqlString)) {
4607
4617
  this.parser.push(['Operators', operators[i].toLowerCase()]);
@@ -4612,6 +4622,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4612
4622
  if (!lastPasrser || (lastPasrser && lastPasrser[0] !== 'Literal')) {
4613
4623
  for (var i = 0, iLen = conditions.length; i < iLen; i++) {
4614
4624
  regexStr = /^\w+$/.test(conditions[i]) ? '\\b' : '';
4625
+ // eslint-disable-next-line
4615
4626
  regex = new RegExp('^(' + conditions[i] + ')' + regexStr, 'ig');
4616
4627
  if (regex.exec(sqlString)) {
4617
4628
  this.parser.push(['Conditions', conditions[i].toLowerCase()]);
@@ -4621,6 +4632,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4621
4632
  }
4622
4633
  for (var i = 0, iLen = subOp.length; i < iLen; i++) {
4623
4634
  regexStr = /^\w+$/.test(subOp[i]) ? '\\b' : '';
4635
+ // eslint-disable-next-line
4624
4636
  regex = new RegExp('^(' + subOp[i] + ')' + regexStr, 'ig');
4625
4637
  if (regex.exec(sqlString)) {
4626
4638
  this.parser.push(['SubOperators', subOp[i].toLowerCase()]);
@@ -4664,30 +4676,39 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4664
4676
  return matchValue.length + 2;
4665
4677
  }
4666
4678
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
4679
+ // eslint-disable-next-line
4667
4680
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4668
4681
  this.parser.push(['Literal', matchValue]);
4669
4682
  return matchValue.length;
4670
4683
  }
4671
4684
  //String
4685
+ // eslint-disable-next-line
4672
4686
  if (/^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)) {
4687
+ // eslint-disable-next-line
4673
4688
  matchValue = /^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)[0];
4674
4689
  this.parser.push(['String', matchValue]);
4675
4690
  return matchValue.length;
4676
4691
  }
4677
4692
  //Double String
4693
+ // eslint-disable-next-line
4678
4694
  if (/^"([^\\"]*(?:\\.[^\\"]*)*)"/.exec(sqlString)) {
4695
+ // eslint-disable-next-line
4679
4696
  matchValue = /^"([^\\"]*(?:\\.[^\\"]*)*)"/.exec(sqlString)[0];
4680
4697
  this.parser.push(['DoubleString', matchValue]);
4681
4698
  return matchValue.length;
4682
4699
  }
4683
4700
  //Number
4701
+ // eslint-disable-next-line
4684
4702
  if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4703
+ // eslint-disable-next-line
4685
4704
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4686
4705
  this.parser.push(['Number', matchValue]);
4687
4706
  return matchValue.length;
4688
4707
  }
4689
4708
  //Negative Number
4709
+ // eslint-disable-next-line
4690
4710
  if (/^-?[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4711
+ // eslint-disable-next-line
4691
4712
  matchValue = /^-?[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4692
4713
  this.parser.push(['Number', matchValue]);
4693
4714
  return matchValue.length;
@@ -4713,6 +4734,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4713
4734
  return true;
4714
4735
  }
4715
4736
  else {
4737
+ // eslint-disable-next-line
4716
4738
  if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4717
4739
  var secParser = this.parser[this.parser.length - 2];
4718
4740
  var betweenParser = this.parser[this.parser.length - 3];
@@ -4770,7 +4792,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4770
4792
  return 'equal';
4771
4793
  }
4772
4794
  }
4773
- return operators[operator];
4795
+ return operators["" + operator];
4774
4796
  };
4775
4797
  QueryBuilder.prototype.getTypeFromColumn = function (rules) {
4776
4798
  var columnData = this.getColumn(rules.field);