@syncfusion/ej2-querybuilder 20.1.48 → 20.1.51

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.
@@ -283,7 +283,7 @@ let QueryBuilder = class QueryBuilder extends Component {
283
283
  }
284
284
  updateSubFieldsFromColumns(col, field) {
285
285
  for (let i = 0; i < col.length; i++) {
286
- if (this.separator != '' && col[i].field.indexOf(this.separator) < 0) {
286
+ if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {
287
287
  col[i].field = field ? field + this.separator + col[i].field : col[i].field;
288
288
  }
289
289
  if (col[i].operators) {
@@ -505,7 +505,7 @@ let QueryBuilder = class QueryBuilder extends Component {
505
505
  let template;
506
506
  args.fields = this.fields;
507
507
  args.columns = this.columns;
508
- if (rule.field === "") {
508
+ if (rule.field === '') {
509
509
  rule.field = column.field;
510
510
  }
511
511
  args.operators = this.getOperators(rule.field);
@@ -631,7 +631,6 @@ let QueryBuilder = class QueryBuilder extends Component {
631
631
  }
632
632
  }
633
633
  else {
634
- let dropdowntree;
635
634
  let ddlField;
636
635
  const ddlValue = this.isImportRules ? rule.field : rule.field;
637
636
  ddlField = {
@@ -645,11 +644,13 @@ let QueryBuilder = class QueryBuilder extends Component {
645
644
  if (this.fieldModel) {
646
645
  ddlField = Object.assign({}, ddlField, this.fieldModel);
647
646
  }
648
- dropdowntree = new DropDownTree(ddlField);
647
+ const dropdowntree = new DropDownTree(ddlField);
649
648
  dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
650
649
  if (!isNullOrUndefined(dropdowntree.value)) {
651
- dropdowntree.element.value = dropdowntree.value[0];
650
+ const value = this.getLabelFromColumn(dropdowntree.value[0]);
651
+ dropdowntree.element.value = value;
652
652
  }
653
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
653
654
  const ddlVal = this.isImportRules ?
654
655
  this.GetRootColumnName(rule.field) : dropdowntree.value;
655
656
  this.selectedColumn = this.getColumn(ddlVal);
@@ -684,17 +685,20 @@ let QueryBuilder = class QueryBuilder extends Component {
684
685
  else {
685
686
  groupElem = closest(target, '.e-group-container');
686
687
  rules = this.getParentGroup(groupElem);
688
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
687
689
  const custom = rule.custom;
688
690
  if (Object.keys(rule).length) {
689
691
  rules.rules.push({
690
692
  'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
691
693
  });
692
694
  if (custom) {
695
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
693
696
  rules.rules[rules.rules.length - 1].custom = custom;
694
697
  }
695
698
  }
696
699
  else {
697
700
  if (custom) {
701
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
698
702
  newRule.custom = custom;
699
703
  }
700
704
  rules.rules.push(newRule);
@@ -761,17 +765,17 @@ let QueryBuilder = class QueryBuilder extends Component {
761
765
  }
762
766
  }
763
767
  else {
764
- dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field input.e-control'), 'dropdownlist');
768
+ dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field .e-control'), 'dropdownlist');
765
769
  this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
766
770
  validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
767
771
  }
768
- fieldElem = tempElem.querySelector('.e-rule-field input.e-control');
772
+ fieldElem = tempElem.querySelector('.e-rule-field .e-control');
769
773
  if (validateRule && validateRule.isRequired) {
770
774
  while (indexElem && indexElem.previousElementSibling !== null) {
771
775
  indexElem = indexElem.previousElementSibling;
772
776
  index++;
773
777
  }
774
- fieldElem = tempElem.querySelector('.e-rule-operator input.e-control');
778
+ fieldElem = tempElem.querySelector('.e-rule-operator .e-control');
775
779
  if (!rule.rules[index].operator) {
776
780
  if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
777
781
  this.renderToolTip(fieldElem.parentElement);
@@ -784,7 +788,7 @@ let QueryBuilder = class QueryBuilder extends Component {
784
788
  if (excludeOprs.indexOf(rule.rules[index].operator) < 0 && (isNullOrUndefined(rule.rules[index].value) &&
785
789
  rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
786
790
  (rule.rules[index].value instanceof Array && valArray.length < 1)) {
787
- const valElem = tempElem.querySelectorAll('.e-rule-value input.e-control');
791
+ const valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
788
792
  isValid = false;
789
793
  for (let j = 0, jLen = valElem.length; j < jLen; j++) {
790
794
  const element = valElem[j];
@@ -1306,7 +1310,8 @@ let QueryBuilder = class QueryBuilder extends Component {
1306
1310
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1307
1311
  ddt.value = args.value[0];
1308
1312
  ddt.dataBind();
1309
- ddtElem.value = args.value[0];
1313
+ const result = this.getLabelFromColumn(args.value[0]);
1314
+ ddtElem.value = result;
1310
1315
  }
1311
1316
  }
1312
1317
  }
@@ -1336,7 +1341,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1336
1341
  }
1337
1342
  changeRule(rule, ddlArgs) {
1338
1343
  if (!ddlArgs.itemData) {
1339
- if (this.fieldMode === "DropdownTree") {
1344
+ if (this.fieldMode === 'DropdownTree') {
1340
1345
  const ddt = getComponent(ddlArgs.element, 'dropdowntree');
1341
1346
  if (ddt.value == null) {
1342
1347
  return;
@@ -1359,6 +1364,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1359
1364
  }
1360
1365
  changeFilter(flt, dl, grID, rl, tmpRl, dArg) {
1361
1366
  if (flt) {
1367
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1362
1368
  let ddlValue;
1363
1369
  if (this.fieldMode === 'DropdownTree') {
1364
1370
  ddlValue = (dl.value[0]);
@@ -1385,7 +1391,9 @@ let QueryBuilder = class QueryBuilder extends Component {
1385
1391
  this.changeOperator(flt, operatorElem, dl, grID, rl, tmpRl, dArg);
1386
1392
  }
1387
1393
  }
1388
- changeOperator(flt, opr, dl, grID, rl, tmpRl, dArg) {
1394
+ changeOperator(
1395
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
1396
+ flt, opr, dl, grID, rl, tmpRl, dArg) {
1389
1397
  let ruleElem;
1390
1398
  let ruleID;
1391
1399
  let eventsArgs;
@@ -1766,14 +1774,15 @@ let QueryBuilder = class QueryBuilder extends Component {
1766
1774
  const original = {};
1767
1775
  const result = [];
1768
1776
  let nest = [];
1769
- let value = "";
1770
- let isNested = field.indexOf(this.separator);
1777
+ let value = '';
1778
+ const isNested = field.indexOf(this.separator);
1771
1779
  for (let i = 0, iLen = dataSource.length; i < iLen; i++) {
1772
1780
  if (isNested === 0) {
1773
1781
  value = dataSource[i][field];
1774
1782
  }
1775
1783
  else {
1776
1784
  nest = field.split(this.separator);
1785
+ // eslint-disable-next-line @typescript-eslint/tslint/config
1777
1786
  nest.forEach(element => {
1778
1787
  if (value) {
1779
1788
  value = value[element];
@@ -1816,9 +1825,9 @@ let QueryBuilder = class QueryBuilder extends Component {
1816
1825
  isValues = true;
1817
1826
  }
1818
1827
  let fieldValue = this.selectedRule.field;
1819
- let isNested = this.selectedRule.field.indexOf(this.separator);
1820
- if (isNested !== 0 && this.fieldMode !== "DropdownTree") {
1821
- let nest = this.selectedRule.field.split(this.separator);
1828
+ const isNested = this.selectedRule.field.indexOf(this.separator);
1829
+ if (isNested !== 0 && this.fieldMode !== 'DropdownTree') {
1830
+ const nest = this.selectedRule.field.split(this.separator);
1822
1831
  fieldValue = nest[nest.length - 1];
1823
1832
  }
1824
1833
  let multiSelectValue;
@@ -1928,10 +1937,10 @@ let QueryBuilder = class QueryBuilder extends Component {
1928
1937
  }
1929
1938
  getItemData(parentId) {
1930
1939
  let fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
1931
- if (this.fieldMode === "DropdownTree") {
1940
+ if (this.fieldMode === 'DropdownTree') {
1932
1941
  fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
1933
1942
  }
1934
- return this.fieldMode === "DropdownTree" ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
1943
+ return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
1935
1944
  }
1936
1945
  setDefaultValue(parentId, isArryValue, isNumber) {
1937
1946
  const itemData = this.getItemData(parentId);
@@ -2262,6 +2271,7 @@ let QueryBuilder = class QueryBuilder extends Component {
2262
2271
  }
2263
2272
  getPreviousItemData(prevItemData, column) {
2264
2273
  if (this.isFieldClose && prevItemData) {
2274
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2265
2275
  prevItemData = this.getColumn(prevItemData.value);
2266
2276
  }
2267
2277
  if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
@@ -2274,7 +2284,8 @@ let QueryBuilder = class QueryBuilder extends Component {
2274
2284
  const filtElem = subFldElem.getElementsByTagName('input')[0];
2275
2285
  const filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')
2276
2286
  : getComponent(filtElem, 'dropdownlist');
2277
- let column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
2287
+ const column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
2288
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2278
2289
  : this.getColumn(filtObj.value);
2279
2290
  this.selectedRule = column;
2280
2291
  if (isRender) {
@@ -2518,7 +2529,9 @@ let QueryBuilder = class QueryBuilder extends Component {
2518
2529
  }
2519
2530
  dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :
2520
2531
  getComponent(target, 'dropdownlist');
2532
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2521
2533
  const column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
2534
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
2522
2535
  : this.getColumn(dropDownObj.value);
2523
2536
  if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
2524
2537
  if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
@@ -3451,11 +3464,13 @@ let QueryBuilder = class QueryBuilder extends Component {
3451
3464
  }
3452
3465
  }
3453
3466
  const isTemplateRendered = clnruleElem.querySelector('.e-template-value');
3467
+ // eslint-disable
3454
3468
  try {
3455
3469
  detach(clnruleElem);
3456
3470
  }
3457
3471
  catch (err) {
3458
3472
  }
3473
+ // eslint-enable
3459
3474
  if (column && column.ruleTemplate) {
3460
3475
  this.clearQBTemplate([clnruleElem.id]);
3461
3476
  }
@@ -3865,8 +3880,8 @@ let QueryBuilder = class QueryBuilder extends Component {
3865
3880
  }
3866
3881
  }
3867
3882
  if (this.dataSource instanceof DataManager) {
3868
- if (!isNullOrUndefined(pred) && (pred.operator === "isnull" || pred.operator === "notnull")) {
3869
- pred.operator = pred.operator === "isnull" ? "equal" : "notequal";
3883
+ if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'notnull')) {
3884
+ pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';
3870
3885
  }
3871
3886
  }
3872
3887
  return pred;
@@ -4372,7 +4387,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4372
4387
  }
4373
4388
  queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
4374
4389
  }
4375
- if (rule.condition && rule.condition != '') {
4390
+ if (rule.condition && rule.condition !== '') {
4376
4391
  condition = rule.condition;
4377
4392
  }
4378
4393
  }
@@ -4513,7 +4528,6 @@ let QueryBuilder = class QueryBuilder extends Component {
4513
4528
  this.parser.push(['Literal', matchValue]);
4514
4529
  return matchValue.length + 2;
4515
4530
  }
4516
- // eslint-disable-next-line
4517
4531
  if (this.checkNumberLiteral(sqlString)) {
4518
4532
  matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4519
4533
  this.parser.push(['Literal', matchValue]);
@@ -4608,6 +4622,37 @@ let QueryBuilder = class QueryBuilder extends Component {
4608
4622
  const columnData = this.getColumn(rules.field);
4609
4623
  return columnData.type;
4610
4624
  }
4625
+ getLabelFromColumn(field) {
4626
+ let label = '';
4627
+ let l = 0;
4628
+ if (this.separator !== '') {
4629
+ const fieldColl = field.split(this.separator);
4630
+ for (let i = 0; i < fieldColl.length; i++) {
4631
+ label += this.getLabelFromField(fieldColl, i + 1);
4632
+ l++;
4633
+ if (l < fieldColl.length) {
4634
+ label += this.separator;
4635
+ }
4636
+ }
4637
+ return label;
4638
+ }
4639
+ else {
4640
+ const labelItem = this.getColumn(field).label;
4641
+ return labelItem;
4642
+ }
4643
+ }
4644
+ getLabelFromField(field, startIdx) {
4645
+ let fieldName = '';
4646
+ let j = 0;
4647
+ for (let k = 0; k < startIdx; k++) {
4648
+ fieldName += field[k];
4649
+ j++;
4650
+ if (j < startIdx) {
4651
+ fieldName += this.separator;
4652
+ }
4653
+ }
4654
+ return this.getColumn(fieldName).label;
4655
+ }
4611
4656
  processParser(parser, rules, levelColl) {
4612
4657
  let j;
4613
4658
  let jLen;