@syncfusion/ej2-querybuilder 20.3.59 → 20.4.40

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.
@@ -153,7 +153,10 @@ let QueryBuilder = class QueryBuilder extends Component {
153
153
  let bodyElem = this.element.querySelector('.e-group-body');
154
154
  const inputElement = this.element.querySelectorAll('input.e-control');
155
155
  for (let i = 0, len = inputElement.length; i < len; i++) {
156
- if (inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {
156
+ if (inputElement[i].className.indexOf('e-tooltip') > -1) {
157
+ getComponent(inputElement[i], 'tooltip').destroy();
158
+ }
159
+ else if (inputElement[i].parentElement.className.indexOf('e-tooltip') > -1) {
157
160
  getComponent(inputElement[i].parentElement, 'tooltip').destroy();
158
161
  }
159
162
  }
@@ -337,7 +340,7 @@ let QueryBuilder = class QueryBuilder extends Component {
337
340
  if (sqlIdx > -1) {
338
341
  const operator = column.operators[j];
339
342
  const operColl = Object.keys(operator);
340
- const values = operColl.map((key) => operator[key]).join(',').split(',');
343
+ const values = operColl.map((key) => operator[`${key}`]).join(',').split(',');
341
344
  const valueIdx = operColl.indexOf('value');
342
345
  this.operators[values[valueIdx]] = values[sqlIdx];
343
346
  }
@@ -728,6 +731,7 @@ let QueryBuilder = class QueryBuilder extends Component {
728
731
  const tooltip = new Tooltip({ content: this.l10n.getConstant('ValidationMessage'),
729
732
  position: 'BottomCenter', cssClass: 'e-querybuilder-error' });
730
733
  tooltip.appendTo(element);
734
+ // eslint-disable-next-line
731
735
  tooltip.open(element);
732
736
  }
733
737
  /**
@@ -751,23 +755,25 @@ let QueryBuilder = class QueryBuilder extends Component {
751
755
  let tempElem;
752
756
  let rule;
753
757
  const ruleElemCln = this.element.querySelectorAll('.e-rule-container');
754
- let validateRule;
755
758
  for (i = 0, len = ruleElemCln.length; i < len; i++) {
759
+ let validateRule;
756
760
  groupElem = closest(ruleElemCln[i], '.e-group-container');
757
761
  rule = this.getParentGroup(groupElem);
758
762
  index = 0;
759
763
  indexElem = tempElem = ruleElemCln[i];
760
764
  if (this.fieldMode === 'DropdownTree') {
761
- dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdowntree');
762
- if (dropDownTreeObj.value && dropDownTreeObj.value.length) {
765
+ dropDownTreeObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdowntree'), 'dropdowntree');
766
+ if (dropDownTreeObj && dropDownTreeObj.value && dropDownTreeObj.value.length) {
763
767
  this.selectedColumn = this.getColumn(dropDownTreeObj.value[0]);
764
768
  validateRule = this.selectedColumn.validation;
765
769
  }
766
770
  }
767
771
  else {
768
- dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
769
- this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
770
- validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
772
+ dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-filter input.e-dropdownlist'), 'dropdownlist');
773
+ if (dropDownObj && dropDownObj.value) {
774
+ this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
775
+ validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
776
+ }
771
777
  }
772
778
  fieldElem = tempElem.querySelector('.e-rule-field input.e-control');
773
779
  if (validateRule && validateRule.isRequired) {
@@ -785,8 +791,9 @@ let QueryBuilder = class QueryBuilder extends Component {
785
791
  if (rule.rules[index].value instanceof Array) {
786
792
  valArray = rule.rules[index].value;
787
793
  }
788
- if (excludeOprs.indexOf(rule.rules[index].operator) < 0 && (isNullOrUndefined(rule.rules[index].value) &&
789
- rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
794
+ if (excludeOprs.indexOf(rule.rules[index].operator) < 0 &&
795
+ (isNullOrUndefined(rule.rules[index].value) &&
796
+ rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
790
797
  (rule.rules[index].value instanceof Array && valArray.length < 1)) {
791
798
  const valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
792
799
  isValid = false;
@@ -809,8 +816,8 @@ let QueryBuilder = class QueryBuilder extends Component {
809
816
  else if ((dropDownObj && dropDownObj.element && isNullOrUndefined(dropDownObj.index)) ||
810
817
  (dropDownTreeObj && dropDownTreeObj.element && (isNullOrUndefined(dropDownTreeObj.value) ||
811
818
  dropDownTreeObj.value.length < 1))) {
812
- if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
813
- this.renderToolTip(fieldElem.parentElement);
819
+ if (fieldElem.className.indexOf('e-tooltip') < 0) {
820
+ this.renderToolTip(fieldElem);
814
821
  }
815
822
  isValid = false;
816
823
  }
@@ -864,7 +871,7 @@ let QueryBuilder = class QueryBuilder extends Component {
864
871
  groupElem.appendChild(grpBodyElem);
865
872
  // create button group in OR and AND process
866
873
  if (!this.headerTemplate) {
867
- glueElem = this.createElement('div', { attrs: { class: 'e-lib e-btn-group' } });
874
+ glueElem = this.createElement('div', { attrs: { class: 'e-lib e-btn-group', role: 'group' } });
868
875
  if (this.enableNotCondition) {
869
876
  inputElem = this.createElement('button', { attrs: { type: 'button', class: 'e-qb-toggle' } });
870
877
  glueElem.appendChild(inputElem);
@@ -1469,6 +1476,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1469
1476
  }
1470
1477
  }
1471
1478
  createSubFields(filterElem, rule, tempRule, ddlArgs) {
1479
+ let subFieldValue = false;
1472
1480
  const fieldElem = closest(filterElem, '.e-rule-field');
1473
1481
  const tempElem = this.createElement('div', { attrs: { class: 'e-rule-sub-filter', id: 'subfilter' + this.subFilterCounter } });
1474
1482
  fieldElem.insertBefore(tempElem, fieldElem.querySelector('.e-rule-operator'));
@@ -1498,6 +1506,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1498
1506
  if (rule.field === subField[i].field || rule.field.indexOf(subField[i].field) > -1) {
1499
1507
  dropDownList.value = subField[i].field;
1500
1508
  this.selectedColumn = subField[i];
1509
+ subFieldValue = true;
1501
1510
  break;
1502
1511
  }
1503
1512
  }
@@ -1506,7 +1515,10 @@ let QueryBuilder = class QueryBuilder extends Component {
1506
1515
  this.subFieldElem = subFieldElem;
1507
1516
  // eslint-disable-next-line
1508
1517
  ddlArgs.itemData = ddlArgs.itemData;
1509
- if (!this.isImportRules) {
1518
+ if (!this.isImportRules || (!subFieldValue && this.selectedColumn.columns)) {
1519
+ if (!subFieldValue && this.isImportRules) {
1520
+ dropDownList.value = null;
1521
+ }
1510
1522
  this.selectedColumn = this.selectedColumn.columns[0];
1511
1523
  }
1512
1524
  if (!this.selectedColumn.columns) {
@@ -1743,29 +1755,29 @@ let QueryBuilder = class QueryBuilder extends Component {
1743
1755
  for (let j = 0, jLen = fieldColl.length; j < jLen; j++) {
1744
1756
  fieldStr = fieldColl[j];
1745
1757
  if (fieldColl.length === (j + 1)) {
1746
- value = dataObj[fieldStr];
1747
- if (Number(dataObj[fieldStr]) === dataObj[fieldStr] && dataObj[fieldStr] % 1 !== 0) {
1748
- value = dataObj[fieldStr].toString();
1758
+ value = dataObj[`${fieldStr}`];
1759
+ if (Number(dataObj[`${fieldStr}`]) === dataObj[`${fieldStr}`] && dataObj[`${fieldStr}`] % 1 !== 0) {
1760
+ value = dataObj[`${fieldStr}`].toString();
1749
1761
  }
1750
1762
  }
1751
1763
  else {
1752
- dataObj = dataObj[fieldStr];
1764
+ dataObj = dataObj[`${fieldStr}`];
1753
1765
  }
1754
1766
  }
1755
1767
  }
1756
1768
  else {
1757
- value = dataSource[i][field];
1758
- if (Number(dataSource[i][field]) === dataSource[i][field] && dataSource[i][field] % 1 !== 0) {
1759
- value = dataSource[i][field].toString();
1769
+ value = dataSource[i][`${field}`];
1770
+ if (Number(dataSource[i][`${field}`]) === dataSource[i][`${field}`] && dataSource[i][`${field}`] % 1 !== 0) {
1771
+ value = dataSource[i][`${field}`].toString();
1760
1772
  }
1761
1773
  }
1762
1774
  if (!(value in original)) {
1763
- original[value] = 1;
1775
+ original[`${value}`] = 1;
1764
1776
  if (fieldColl.length > 1) {
1765
1777
  this.createNestedObject(data, fieldColl, value);
1766
1778
  }
1767
1779
  else {
1768
- data[field] = value;
1780
+ data[`${field}`] = value;
1769
1781
  }
1770
1782
  result.push(data);
1771
1783
  }
@@ -1779,9 +1791,9 @@ let QueryBuilder = class QueryBuilder extends Component {
1779
1791
  for (let k = 0; k < lastIndex; ++k) {
1780
1792
  key = fieldColl[k];
1781
1793
  if (!(key in obj)) {
1782
- obj[key] = {};
1794
+ obj[`${key}`] = {};
1783
1795
  }
1784
- obj = obj[key];
1796
+ obj = obj[`${key}`];
1785
1797
  }
1786
1798
  obj[fieldColl[lastIndex]] = value;
1787
1799
  }
@@ -1793,28 +1805,28 @@ let QueryBuilder = class QueryBuilder extends Component {
1793
1805
  const isNested = field.indexOf(this.separator);
1794
1806
  for (let i = 0, iLen = dataSource.length; i < iLen; i++) {
1795
1807
  if (isNested === 0) {
1796
- value = dataSource[i][field];
1808
+ value = dataSource[i][`${field}`];
1797
1809
  }
1798
1810
  else {
1799
1811
  nest = field.split(this.separator);
1800
1812
  // eslint-disable-next-line @typescript-eslint/tslint/config
1801
1813
  nest.forEach(element => {
1802
1814
  if (value) {
1803
- value = value[element];
1815
+ value = value[`${element}`];
1804
1816
  }
1805
1817
  else {
1806
- value = dataSource[i][element];
1818
+ value = dataSource[i][`${element}`];
1807
1819
  }
1808
1820
  });
1809
1821
  }
1810
- if (Number(dataSource[i][field]) === dataSource[i][field] && dataSource[i][field] % 1 !== 0) {
1811
- value = dataSource[i][field].toString();
1822
+ if (Number(dataSource[i][`${field}`]) === dataSource[i][`${field}`] && dataSource[i][`${field}`] % 1 !== 0) {
1823
+ value = dataSource[i][`${field}`].toString();
1812
1824
  }
1813
1825
  const data = {};
1814
1826
  if (!(value in original)) {
1815
- original[value] = 1;
1827
+ original[`${value}`] = 1;
1816
1828
  if (isNested === 0) {
1817
- data[field] = value;
1829
+ data[`${field}`] = value;
1818
1830
  }
1819
1831
  else {
1820
1832
  data[nest[nest.length - 1]] = value;
@@ -2289,7 +2301,7 @@ let QueryBuilder = class QueryBuilder extends Component {
2289
2301
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2290
2302
  prevItemData = this.getColumn(prevItemData.value);
2291
2303
  }
2292
- if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
2304
+ if (column && column.template && prevItemData && Object.keys(prevItemData).length < 4) {
2293
2305
  prevItemData.template = column.template;
2294
2306
  }
2295
2307
  return prevItemData;
@@ -2345,7 +2357,9 @@ let QueryBuilder = class QueryBuilder extends Component {
2345
2357
  this.validateValue(rule, closest(target, '.e-rule-container'));
2346
2358
  this.destroyControls(target);
2347
2359
  }
2348
- itemData.template = column.template;
2360
+ if (column) {
2361
+ itemData.template = column.template;
2362
+ }
2349
2363
  if (itemData.template) {
2350
2364
  addClass([target.nextElementSibling], 'e-template-value');
2351
2365
  itemData.template = column.template;
@@ -2556,7 +2570,8 @@ let QueryBuilder = class QueryBuilder extends Component {
2556
2570
  const column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
2557
2571
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2558
2572
  : this.getColumn(dropDownObj.value);
2559
- if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2573
+ if (!this.isImportRules && rule.rules[index].field &&
2574
+ rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2560
2575
  if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
2561
2576
  || (operator.indexOf('empty') > -1)) {
2562
2577
  rule.rules[index].value = '';
@@ -2592,8 +2607,8 @@ let QueryBuilder = class QueryBuilder extends Component {
2592
2607
  if (!this.isImportRules) {
2593
2608
  this.trigger('change', eventsArgs);
2594
2609
  }
2595
- if (this.allowValidation && rule.rules[index].field && target.parentElement.className.indexOf('e-tooltip') > -1) {
2596
- getComponent(target.parentElement, 'tooltip').destroy();
2610
+ if (this.allowValidation && rule.rules[index].field && target.className.indexOf('e-tooltip') > -1) {
2611
+ getComponent(target, 'tooltip').destroy();
2597
2612
  }
2598
2613
  this.filterRules(beforeRules, this.getValidRules(this.rule), 'field');
2599
2614
  }
@@ -3349,7 +3364,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3349
3364
  EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
3350
3365
  }
3351
3366
  getParentGroup(target, isParent) {
3352
- const groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl[target];
3367
+ const groupLevel = (target instanceof Element) ? this.levelColl[target.id] : this.levelColl[`${target}`];
3353
3368
  const len = isParent ? groupLevel.length - 1 : groupLevel.length;
3354
3369
  let rule = this.rule;
3355
3370
  for (let i = 0; i < len; i++) {
@@ -3509,6 +3524,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3509
3524
  err = [];
3510
3525
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3511
3526
  const error = 'error';
3527
+ // eslint-disable-next-line
3512
3528
  err[error] = error;
3513
3529
  }
3514
3530
  // eslint-enable
@@ -3670,6 +3686,9 @@ let QueryBuilder = class QueryBuilder extends Component {
3670
3686
  else {
3671
3687
  rule = { 'condition': rule.condition, 'rules': rule.rules };
3672
3688
  }
3689
+ if (rule.rules.length === 0) {
3690
+ rule = {};
3691
+ }
3673
3692
  }
3674
3693
  }
3675
3694
  return rule;
@@ -3878,7 +3897,8 @@ let QueryBuilder = class QueryBuilder extends Component {
3878
3897
  if (i === 0) {
3879
3898
  if (isDateFilter || (oper.indexOf('in') > -1 || oper.indexOf('between') > -1 || oper.indexOf('null') > -1 ||
3880
3899
  oper.indexOf('empty') > -1) && oper.indexOf('contains') < 0) {
3881
- pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue) : this.arrayPredicate(ruleColl[i]);
3900
+ pred = isDateFilter ? this.datePredicate(ruleColl[i], ruleValue) :
3901
+ this.arrayPredicate(ruleColl[i]);
3882
3902
  }
3883
3903
  else {
3884
3904
  const value = ruleValue;
@@ -4361,89 +4381,90 @@ let QueryBuilder = class QueryBuilder extends Component {
4361
4381
  queryStr += rulesNotCondition;
4362
4382
  }
4363
4383
  }
4364
- for (let j = 0, jLen = rules.rules.length; j < jLen; j++) {
4365
- if (rules.rules[j].rules) {
4366
- queryStr = this.getSqlString(rules.rules[j], enableEscape, queryStr, sqlLocale);
4367
- }
4368
- else {
4369
- const rule = rules.rules[j];
4370
- let valueStr = '';
4371
- let ruleOpertor;
4372
- ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
4373
- if (rule.value instanceof Array) {
4374
- if (rule.operator.toString().indexOf('between') > -1) {
4375
- let ruleCondition = sqlLocale ? ' ' + this.l10n.getConstant('AND').toUpperCase() + ' ' : ' ' + 'AND' + ' ';
4376
- if (rule.type === 'date' && !this.isDateFunction(rule.value[0])) {
4377
- valueStr += '"' + rule.value[0] + '"' + ruleCondition + '"' + rule.value[1] + '"';
4384
+ if (rules.rules) {
4385
+ for (let j = 0, jLen = rules.rules.length; j < jLen; j++) {
4386
+ if (rules.rules[j].rules) {
4387
+ queryStr = this.getSqlString(rules.rules[j], enableEscape, queryStr, sqlLocale);
4388
+ }
4389
+ else {
4390
+ const rule = rules.rules[j];
4391
+ let valueStr = '';
4392
+ const ruleOpertor = sqlLocale ? this.sqlOperators[rule.operator] : this.operators[rule.operator];
4393
+ if (rule.value instanceof Array) {
4394
+ if (rule.operator.toString().indexOf('between') > -1) {
4395
+ const ruleCondition = sqlLocale ? ' ' + this.l10n.getConstant('AND').toUpperCase() + ' ' : ' ' + 'AND' + ' ';
4396
+ if (rule.type === 'date' && !this.isDateFunction(rule.value[0])) {
4397
+ valueStr += '"' + rule.value[0] + '"' + ruleCondition + '"' + rule.value[1] + '"';
4398
+ }
4399
+ else {
4400
+ valueStr += rule.value[0] + ruleCondition + rule.value[1];
4401
+ }
4378
4402
  }
4379
4403
  else {
4380
- valueStr += rule.value[0] + ruleCondition + rule.value[1];
4404
+ if (typeof rule.value[0] === 'string' && rule.value !== null) {
4405
+ valueStr += '("' + rule.value[0] + '"';
4406
+ for (let k = 1, kLen = rule.value.length; k < kLen; k++) {
4407
+ valueStr += ',"' + rule.value[k] + '"';
4408
+ }
4409
+ valueStr += ')';
4410
+ }
4411
+ else {
4412
+ valueStr += '(' + rule.value + ')';
4413
+ }
4381
4414
  }
4382
4415
  }
4383
4416
  else {
4384
- if (typeof rule.value[0] === 'string' && rule.value !== null) {
4385
- valueStr += '("' + rule.value[0] + '"';
4386
- for (let k = 1, kLen = rule.value.length; k < kLen; k++) {
4387
- valueStr += ',"' + rule.value[k] + '"';
4388
- }
4389
- valueStr += ')';
4417
+ if (rule.operator.toString().indexOf('startswith') > -1) {
4418
+ valueStr += rule.value ? '("' + rule.value + '%")' : '(' + rule.value + ')';
4419
+ }
4420
+ else if (rule.operator.toString().indexOf('endswith') > -1) {
4421
+ valueStr += rule.value ? '("%' + rule.value + '")' : '(' + rule.value + ')';
4422
+ }
4423
+ else if (rule.operator.toString().indexOf('contains') > -1) {
4424
+ valueStr += rule.value ? '("%' + rule.value + '%")' : '(' + rule.value + ')';
4390
4425
  }
4391
4426
  else {
4392
- valueStr += '(' + rule.value + ')';
4427
+ if (rule.type === 'number' || typeof rule.value === 'boolean' || rule.value === null) {
4428
+ valueStr += rule.value;
4429
+ }
4430
+ else {
4431
+ valueStr += '"' + rule.value + '"';
4432
+ }
4393
4433
  }
4394
4434
  }
4395
- }
4396
- else {
4397
- if (rule.operator.toString().indexOf('startswith') > -1) {
4398
- valueStr += rule.value ? '("' + rule.value + '%")' : '(' + rule.value + ')';
4399
- }
4400
- else if (rule.operator.toString().indexOf('endswith') > -1) {
4401
- valueStr += rule.value ? '("%' + rule.value + '")' : '(' + rule.value + ')';
4402
- }
4403
- else if (rule.operator.toString().indexOf('contains') > -1) {
4404
- valueStr += rule.value ? '("%' + rule.value + '%")' : '(' + rule.value + ')';
4405
- }
4406
- else {
4407
- if (rule.type === 'number' || typeof rule.value === 'boolean' || rule.value === null) {
4408
- valueStr += rule.value;
4435
+ if (rule.operator.toString().indexOf('null') > -1 || (rule.operator.toString().indexOf('empty') > -1)) {
4436
+ if (enableEscape) {
4437
+ rule.field = '`' + rule.field + '`';
4409
4438
  }
4410
4439
  else {
4411
- valueStr += '"' + rule.value + '"';
4440
+ if (rule.field.indexOf(' ') > -1) {
4441
+ rule.field = '"' + rule.field + '"';
4442
+ }
4412
4443
  }
4413
- }
4414
- }
4415
- if (rule.operator.toString().indexOf('null') > -1 || (rule.operator.toString().indexOf('empty') > -1)) {
4416
- if (enableEscape) {
4417
- rule.field = '`' + rule.field + '`';
4444
+ queryStr += rule.field + ' ' + ruleOpertor;
4418
4445
  }
4419
4446
  else {
4420
- if (rule.field.indexOf(' ') > -1) {
4421
- rule.field = '"' + rule.field + '"';
4447
+ if (enableEscape) {
4448
+ rule.field = '`' + rule.field + '`';
4422
4449
  }
4423
- }
4424
- queryStr += rule.field + ' ' + ruleOpertor;
4425
- }
4426
- else {
4427
- if (enableEscape) {
4428
- rule.field = '`' + rule.field + '`';
4429
- }
4430
- else {
4431
- if (rule.field.indexOf(' ') > -1) {
4432
- rule.field = '"' + rule.field + '"';
4450
+ else {
4451
+ if (rule.field.indexOf(' ') > -1) {
4452
+ rule.field = '"' + rule.field + '"';
4453
+ }
4433
4454
  }
4455
+ queryStr += rule.field + ' ' + ruleOpertor + ' ' + valueStr;
4456
+ }
4457
+ if (rule.condition && rule.condition !== '') {
4458
+ condition = rule.condition;
4434
4459
  }
4435
- queryStr += rule.field + ' ' + ruleOpertor + ' ' + valueStr;
4436
- }
4437
- if (rule.condition && rule.condition !== '') {
4438
- condition = rule.condition;
4439
4460
  }
4440
- }
4441
- if (j !== jLen - 1) {
4442
- if (condition === '') {
4443
- condition = rules.rules[j].condition;
4461
+ if (j !== jLen - 1) {
4462
+ if (condition === '') {
4463
+ condition = rules.rules[j].condition;
4464
+ }
4465
+ condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
4466
+ queryStr += ' ' + condition + ' ';
4444
4467
  }
4445
- condition = sqlLocale ? this.l10n.getConstant(condition.toUpperCase()).toUpperCase() : condition.toUpperCase();
4446
- queryStr += ' ' + condition + ' ';
4447
4468
  }
4448
4469
  }
4449
4470
  if (!isRoot) {
@@ -4490,7 +4511,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4490
4511
  *
4491
4512
  * @param {RuleModel} rule - 'rule' to be passed to get the sql.
4492
4513
  * @param {boolean} allowEscape - Set `true` if it exclude the escape character.
4493
- * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.
4514
+ * @param {boolean} sqlLocale - Set `true` if Localization for Sql query.
4494
4515
  * @returns {object} - Sql query from rules.
4495
4516
  */
4496
4517
  getSqlFromRules(rule, allowEscape, sqlLocale) {
@@ -4534,6 +4555,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4534
4555
  let matchValue;
4535
4556
  for (let i = 0, iLen = operators.length; i < iLen; i++) {
4536
4557
  regexStr = /^\w+$/.test(operators[i]) ? '\\b' : '';
4558
+ // eslint-disable-next-line
4537
4559
  regex = new RegExp('^(' + operators[i] + ')' + regexStr, 'ig');
4538
4560
  if (regex.exec(sqlString)) {
4539
4561
  this.parser.push(['Operators', operators[i].toLowerCase()]);
@@ -4544,6 +4566,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4544
4566
  if (!lastPasrser || (lastPasrser && lastPasrser[0] !== 'Literal')) {
4545
4567
  for (let i = 0, iLen = conditions.length; i < iLen; i++) {
4546
4568
  regexStr = /^\w+$/.test(conditions[i]) ? '\\b' : '';
4569
+ // eslint-disable-next-line
4547
4570
  regex = new RegExp('^(' + conditions[i] + ')' + regexStr, 'ig');
4548
4571
  if (regex.exec(sqlString)) {
4549
4572
  this.parser.push(['Conditions', conditions[i].toLowerCase()]);
@@ -4553,6 +4576,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4553
4576
  }
4554
4577
  for (let i = 0, iLen = subOp.length; i < iLen; i++) {
4555
4578
  regexStr = /^\w+$/.test(subOp[i]) ? '\\b' : '';
4579
+ // eslint-disable-next-line
4556
4580
  regex = new RegExp('^(' + subOp[i] + ')' + regexStr, 'ig');
4557
4581
  if (regex.exec(sqlString)) {
4558
4582
  this.parser.push(['SubOperators', subOp[i].toLowerCase()]);
@@ -4596,30 +4620,39 @@ let QueryBuilder = class QueryBuilder extends Component {
4596
4620
  return matchValue.length + 2;
4597
4621
  }
4598
4622
  if (this.checkNumberLiteral(sqlString, sqlLocale)) {
4623
+ // eslint-disable-next-line
4599
4624
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4600
4625
  this.parser.push(['Literal', matchValue]);
4601
4626
  return matchValue.length;
4602
4627
  }
4603
4628
  //String
4629
+ // eslint-disable-next-line
4604
4630
  if (/^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)) {
4631
+ // eslint-disable-next-line
4605
4632
  matchValue = /^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)[0];
4606
4633
  this.parser.push(['String', matchValue]);
4607
4634
  return matchValue.length;
4608
4635
  }
4609
4636
  //Double String
4637
+ // eslint-disable-next-line
4610
4638
  if (/^"([^\\"]*(?:\\.[^\\"]*)*)"/.exec(sqlString)) {
4639
+ // eslint-disable-next-line
4611
4640
  matchValue = /^"([^\\"]*(?:\\.[^\\"]*)*)"/.exec(sqlString)[0];
4612
4641
  this.parser.push(['DoubleString', matchValue]);
4613
4642
  return matchValue.length;
4614
4643
  }
4615
4644
  //Number
4645
+ // eslint-disable-next-line
4616
4646
  if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4647
+ // eslint-disable-next-line
4617
4648
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4618
4649
  this.parser.push(['Number', matchValue]);
4619
4650
  return matchValue.length;
4620
4651
  }
4621
4652
  //Negative Number
4653
+ // eslint-disable-next-line
4622
4654
  if (/^-?[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4655
+ // eslint-disable-next-line
4623
4656
  matchValue = /^-?[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4624
4657
  this.parser.push(['Number', matchValue]);
4625
4658
  return matchValue.length;
@@ -4645,13 +4678,14 @@ let QueryBuilder = class QueryBuilder extends Component {
4645
4678
  return true;
4646
4679
  }
4647
4680
  else {
4681
+ // eslint-disable-next-line
4648
4682
  if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4649
4683
  const secParser = this.parser[this.parser.length - 2];
4650
4684
  const betweenParser = this.parser[this.parser.length - 3];
4651
4685
  if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {
4652
4686
  return true;
4653
4687
  }
4654
- let betweenOperator = sqlLocale ? this.l10n.getConstant('Between').toLowerCase() : 'between';
4688
+ const betweenOperator = sqlLocale ? this.l10n.getConstant('Between').toLowerCase() : 'between';
4655
4689
  if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf(betweenOperator) < 0)) {
4656
4690
  return true;
4657
4691
  }
@@ -4666,7 +4700,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4666
4700
  'is empty': 'isempty', 'is null': 'isnull', 'is not null': 'isnotnull', 'is not empty': 'isnotempty'
4667
4701
  };
4668
4702
  if (sqlLocale) {
4669
- let localeOperator = Object.keys(this.sqlOperators);
4703
+ const localeOperator = Object.keys(this.sqlOperators);
4670
4704
  for (let i = 0; i < localeOperator.length; i++) {
4671
4705
  if (this.sqlOperators[localeOperator[i]] === operator.toUpperCase()) {
4672
4706
  if (value && value.indexOf('%') === 0 && value[value.length - 1] === '%') {
@@ -4702,7 +4736,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4702
4736
  return 'equal';
4703
4737
  }
4704
4738
  }
4705
- return operators[operator];
4739
+ return operators[`${operator}`];
4706
4740
  }
4707
4741
  getTypeFromColumn(rules) {
4708
4742
  const columnData = this.getColumn(rules.field);