@syncfusion/ej2-querybuilder 20.1.47 → 20.1.55

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.
@@ -329,7 +329,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
329
329
  };
330
330
  QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
331
331
  for (var i = 0; i < col.length; i++) {
332
- if (this.separator != '' && col[i].field.indexOf(this.separator) < 0) {
332
+ if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {
333
333
  col[i].field = field ? field + this.separator + col[i].field : col[i].field;
334
334
  }
335
335
  if (col[i].operators) {
@@ -556,6 +556,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
556
556
  var template = void 0;
557
557
  args.fields = this.fields;
558
558
  args.columns = this.columns;
559
+ if (rule.field === '') {
560
+ rule.field = column.field;
561
+ }
559
562
  args.operators = this.getOperators(rule.field);
560
563
  args.operatorFields = { text: 'key', value: 'value' };
561
564
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -680,7 +683,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
680
683
  }
681
684
  }
682
685
  else {
683
- var dropdowntree = void 0;
684
686
  var ddlField = void 0;
685
687
  var ddlValue = this.isImportRules ? rule.field : rule.field;
686
688
  ddlField = {
@@ -694,11 +696,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
694
696
  if (this.fieldModel) {
695
697
  ddlField = __assign({}, ddlField, this.fieldModel);
696
698
  }
697
- dropdowntree = new DropDownTree(ddlField);
699
+ var dropdowntree = new DropDownTree(ddlField);
698
700
  dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
699
701
  if (!isNullOrUndefined(dropdowntree.value)) {
700
- dropdowntree.element.value = dropdowntree.value[0];
702
+ var value = this.getLabelFromColumn(dropdowntree.value[0]);
703
+ dropdowntree.element.value = value;
701
704
  }
705
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
702
706
  var ddlVal = this.isImportRules ?
703
707
  this.GetRootColumnName(rule.field) : dropdowntree.value;
704
708
  this.selectedColumn = this.getColumn(ddlVal);
@@ -733,17 +737,20 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
733
737
  else {
734
738
  groupElem = closest(target, '.e-group-container');
735
739
  rules = this.getParentGroup(groupElem);
740
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
736
741
  var custom = rule.custom;
737
742
  if (Object.keys(rule).length) {
738
743
  rules.rules.push({
739
744
  'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
740
745
  });
741
746
  if (custom) {
747
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
742
748
  rules.rules[rules.rules.length - 1].custom = custom;
743
749
  }
744
750
  }
745
751
  else {
746
752
  if (custom) {
753
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
747
754
  newRule.custom = custom;
748
755
  }
749
756
  rules.rules.push(newRule);
@@ -810,17 +817,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
810
817
  }
811
818
  }
812
819
  else {
813
- dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
820
+ dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field .e-control'), 'dropdownlist');
814
821
  this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
815
822
  validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
816
823
  }
817
- fieldElem = tempElem.querySelector('.e-rule-field input.e-control');
824
+ fieldElem = tempElem.querySelector('.e-rule-field .e-control');
818
825
  if (validateRule && validateRule.isRequired) {
819
826
  while (indexElem && indexElem.previousElementSibling !== null) {
820
827
  indexElem = indexElem.previousElementSibling;
821
828
  index++;
822
829
  }
823
- fieldElem = tempElem.querySelector('.e-rule-operator input.e-control');
830
+ fieldElem = tempElem.querySelector('.e-rule-operator .e-control');
824
831
  if (!rule.rules[index].operator) {
825
832
  if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
826
833
  this.renderToolTip(fieldElem.parentElement);
@@ -833,7 +840,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
833
840
  if (excludeOprs.indexOf(rule.rules[index].operator) < 0 && (isNullOrUndefined(rule.rules[index].value) &&
834
841
  rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
835
842
  (rule.rules[index].value instanceof Array && valArray.length < 1)) {
836
- var valElem = tempElem.querySelectorAll('.e-rule-value input.e-control');
843
+ var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
837
844
  isValid = false;
838
845
  for (var j = 0, jLen = valElem.length; j < jLen; j++) {
839
846
  var element = valElem[j];
@@ -1358,7 +1365,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1358
1365
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1359
1366
  ddt.value = args.value[0];
1360
1367
  ddt.dataBind();
1361
- ddtElem.value = args.value[0];
1368
+ var result = this.getLabelFromColumn(args.value[0]);
1369
+ ddtElem.value = result;
1362
1370
  }
1363
1371
  }
1364
1372
  }
@@ -1388,7 +1396,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1388
1396
  };
1389
1397
  QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {
1390
1398
  if (!ddlArgs.itemData) {
1391
- if (this.fieldMode === "DropdownTree") {
1399
+ if (this.fieldMode === 'DropdownTree') {
1392
1400
  var ddt = getComponent(ddlArgs.element, 'dropdowntree');
1393
1401
  if (ddt.value == null) {
1394
1402
  return;
@@ -1412,6 +1420,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1412
1420
  QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {
1413
1421
  var _this = this;
1414
1422
  if (flt) {
1423
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1415
1424
  var ddlValue = void 0;
1416
1425
  if (this.fieldMode === 'DropdownTree') {
1417
1426
  ddlValue = (dl.value[0]);
@@ -1438,7 +1447,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1438
1447
  this.changeOperator(flt, operatorElem, dl, grID, rl, tmpRl, dArg);
1439
1448
  }
1440
1449
  };
1441
- QueryBuilder.prototype.changeOperator = function (flt, opr, dl, grID, rl, tmpRl, dArg) {
1450
+ QueryBuilder.prototype.changeOperator = function (
1451
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1452
+ flt, opr, dl, grID, rl, tmpRl, dArg) {
1442
1453
  var _this = this;
1443
1454
  var ruleElem;
1444
1455
  var ruleID;
@@ -1820,7 +1831,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1820
1831
  var original = {};
1821
1832
  var result = [];
1822
1833
  var nest = [];
1823
- var value = "";
1834
+ var value = '';
1824
1835
  var isNested = field.indexOf(this.separator);
1825
1836
  var _loop_2 = function (i, iLen) {
1826
1837
  if (isNested === 0) {
@@ -1828,6 +1839,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1828
1839
  }
1829
1840
  else {
1830
1841
  nest = field.split(this_2.separator);
1842
+ // eslint-disable-next-line @typescript-eslint/tslint/config
1831
1843
  nest.forEach(function (element) {
1832
1844
  if (value) {
1833
1845
  value = value[element];
@@ -1841,7 +1853,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1841
1853
  value = dataSource[i][field].toString();
1842
1854
  }
1843
1855
  var data = {};
1844
- if (!(value in original) && !isNullOrUndefined(value)) {
1856
+ if (!(value in original)) {
1845
1857
  original[value] = 1;
1846
1858
  if (isNested === 0) {
1847
1859
  data[field] = value;
@@ -1875,7 +1887,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1875
1887
  }
1876
1888
  var fieldValue = this.selectedRule.field;
1877
1889
  var isNested = this.selectedRule.field.indexOf(this.separator);
1878
- if (isNested !== 0 && this.fieldMode !== "DropdownTree") {
1890
+ if (isNested !== 0 && this.fieldMode !== 'DropdownTree') {
1879
1891
  var nest = this.selectedRule.field.split(this.separator);
1880
1892
  fieldValue = nest[nest.length - 1];
1881
1893
  }
@@ -1987,10 +1999,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
1987
1999
  };
1988
2000
  QueryBuilder.prototype.getItemData = function (parentId) {
1989
2001
  var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
1990
- if (this.fieldMode === "DropdownTree") {
2002
+ if (this.fieldMode === 'DropdownTree') {
1991
2003
  fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
1992
2004
  }
1993
- return this.fieldMode === "DropdownTree" ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
2005
+ return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
1994
2006
  };
1995
2007
  QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {
1996
2008
  var itemData = this.getItemData(parentId);
@@ -2321,6 +2333,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2321
2333
  };
2322
2334
  QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {
2323
2335
  if (this.isFieldClose && prevItemData) {
2336
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2324
2337
  prevItemData = this.getColumn(prevItemData.value);
2325
2338
  }
2326
2339
  if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
@@ -2334,6 +2347,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2334
2347
  var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')
2335
2348
  : getComponent(filtElem, 'dropdownlist');
2336
2349
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
2350
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2337
2351
  : this.getColumn(filtObj.value);
2338
2352
  this.selectedRule = column;
2339
2353
  if (isRender) {
@@ -2578,7 +2592,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2578
2592
  }
2579
2593
  dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :
2580
2594
  getComponent(target, 'dropdownlist');
2595
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2581
2596
  var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
2597
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2582
2598
  : this.getColumn(dropDownObj.value);
2583
2599
  if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2584
2600
  if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
@@ -3515,11 +3531,18 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3515
3531
  }
3516
3532
  }
3517
3533
  var isTemplateRendered = clnruleElem.querySelector('.e-template-value');
3534
+ // eslint-disable
3518
3535
  try {
3519
3536
  detach(clnruleElem);
3520
3537
  }
3521
3538
  catch (err) {
3539
+ // eslint-disable-next-line no-ex-assign
3540
+ err = [];
3541
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
3542
+ var error = 'error';
3543
+ err[error] = error;
3522
3544
  }
3545
+ // eslint-enable
3523
3546
  if (column && column.ruleTemplate) {
3524
3547
  this.clearQBTemplate([clnruleElem.id]);
3525
3548
  }
@@ -3929,8 +3952,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3929
3952
  }
3930
3953
  }
3931
3954
  if (this.dataSource instanceof DataManager) {
3932
- if (!isNullOrUndefined(pred) && (pred.operator === "isnull" || pred.operator === "notnull")) {
3933
- pred.operator = pred.operator === "isnull" ? "equal" : "notequal";
3955
+ if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'notnull')) {
3956
+ pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';
3934
3957
  }
3935
3958
  }
3936
3959
  return pred;
@@ -4193,7 +4216,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4193
4216
  }
4194
4217
  }
4195
4218
  }
4196
- if (rule.rules.length === 0) {
4219
+ if (rule.rules.length === 0 && this.headerTemplate) {
4197
4220
  rule.rules[0] = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };
4198
4221
  }
4199
4222
  var ruleColl = rule.rules;
@@ -4437,7 +4460,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4437
4460
  }
4438
4461
  queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
4439
4462
  }
4440
- if (rule.condition && rule.condition != '') {
4463
+ if (rule.condition && rule.condition !== '') {
4441
4464
  condition = rule.condition;
4442
4465
  }
4443
4466
  }
@@ -4578,7 +4601,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4578
4601
  this.parser.push(['Literal', matchValue]);
4579
4602
  return matchValue.length + 2;
4580
4603
  }
4581
- // eslint-disable-next-line
4582
4604
  if (this.checkNumberLiteral(sqlString)) {
4583
4605
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4584
4606
  this.parser.push(['Literal', matchValue]);
@@ -4673,6 +4695,37 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
4673
4695
  var columnData = this.getColumn(rules.field);
4674
4696
  return columnData.type;
4675
4697
  };
4698
+ QueryBuilder.prototype.getLabelFromColumn = function (field) {
4699
+ var label = '';
4700
+ var l = 0;
4701
+ if (this.separator !== '') {
4702
+ var fieldColl = field.split(this.separator);
4703
+ for (var i = 0; i < fieldColl.length; i++) {
4704
+ label += this.getLabelFromField(fieldColl, i + 1);
4705
+ l++;
4706
+ if (l < fieldColl.length) {
4707
+ label += this.separator;
4708
+ }
4709
+ }
4710
+ return label;
4711
+ }
4712
+ else {
4713
+ var labelItem = this.getColumn(field).label;
4714
+ return labelItem;
4715
+ }
4716
+ };
4717
+ QueryBuilder.prototype.getLabelFromField = function (field, startIdx) {
4718
+ var fieldName = '';
4719
+ var j = 0;
4720
+ for (var k = 0; k < startIdx; k++) {
4721
+ fieldName += field[k];
4722
+ j++;
4723
+ if (j < startIdx) {
4724
+ fieldName += this.separator;
4725
+ }
4726
+ }
4727
+ return this.getColumn(fieldName).label;
4728
+ };
4676
4729
  QueryBuilder.prototype.processParser = function (parser, rules, levelColl) {
4677
4730
  var j;
4678
4731
  var jLen;