@syncfusion/ej2-querybuilder 19.4.38 → 19.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.
@@ -134,9 +134,6 @@ let QueryBuilder = class QueryBuilder extends Component {
134
134
  this.isNotified = false;
135
135
  this.isAddSuccess = false;
136
136
  this.isNotValueChange = false;
137
- this.isFieldChange = false;
138
- this.isFieldClose = false;
139
- this.isDestroy = false;
140
137
  MultiSelect.Inject(CheckBoxSelection);
141
138
  }
142
139
  getPersistData() {
@@ -609,8 +606,8 @@ let QueryBuilder = class QueryBuilder extends Component {
609
606
  ddlField = {
610
607
  dataSource: this.columns,
611
608
  fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),
612
- popupHeight: ((this.columns.length > 5) ? height : 'auto'), close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),
613
- change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this, true)
609
+ popupHeight: ((this.columns.length > 5) ? height : 'auto'),
610
+ change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this)
614
611
  };
615
612
  if (this.fieldModel) {
616
613
  ddlField = Object.assign({}, ddlField, this.fieldModel);
@@ -632,11 +629,11 @@ let QueryBuilder = class QueryBuilder extends Component {
632
629
  const ddlValue = this.isImportRules ? rule.field : rule.field;
633
630
  ddlField = {
634
631
  fields: { dataSource: this.columns,
635
- value: 'field', text: 'label', child: 'columns', expanded: 'expanded' },
632
+ value: "field", text: "label", child: 'columns', expanded: "expanded" },
636
633
  placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
637
634
  popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
638
635
  change: this.changeField.bind(this), value: this.isImportRules ? [ddlValue] : null,
639
- open: this.popupOpen.bind(this, false)
636
+ open: this.popupOpen.bind(this)
640
637
  };
641
638
  if (this.fieldModel) {
642
639
  ddlField = Object.assign({}, ddlField, this.fieldModel);
@@ -1236,38 +1233,21 @@ let QueryBuilder = class QueryBuilder extends Component {
1236
1233
  }
1237
1234
  }
1238
1235
  }
1239
- fieldClose(id) {
1240
- if (this.isFieldChange || this.isDestroy) {
1241
- return;
1242
- }
1243
- this.isFieldClose = true;
1244
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
1245
- const ddl = getComponent(id, 'dropdownlist');
1246
- const item = ddl.popupObj.element.querySelector('.e-active');
1247
- const itemData = ddl.getItemData();
1248
- ddl.value = itemData.value;
1249
- const customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
1250
- previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null };
1251
- this.changeField(customArgs);
1252
- this.isFieldChange = false;
1253
- }
1254
1236
  changeField(args) {
1255
1237
  if (args.isInteracted) {
1256
- this.isFieldChange = true;
1257
- this.prevItemData = args.itemData;
1258
1238
  const fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
1259
1239
  const column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);
1260
1240
  if (this.fieldMode === 'DropdownTree' && fieldElem != null) {
1261
- const ddtElem = fieldElem.querySelector('.e-control');
1241
+ const ddtElem = fieldElem.querySelector(".e-control");
1262
1242
  const ddt = getComponent(ddtElem, 'dropdowntree');
1263
1243
  if (column) {
1264
- if (column.type === 'object') {
1244
+ if (column.type == 'object') {
1265
1245
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1266
1246
  ddt.value = args.oldValue;
1267
1247
  ddt.dataBind();
1268
1248
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
1269
1249
  if (isNullOrUndefined(args.oldValue)) {
1270
- ddtElem.value = '';
1250
+ ddtElem.value = "";
1271
1251
  }
1272
1252
  else {
1273
1253
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -1431,7 +1411,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1431
1411
  popupHeight: ((subFieldData.length > 5) ? height : 'auto'),
1432
1412
  change: this.changeField.bind(this),
1433
1413
  index: 0,
1434
- open: this.popupOpen.bind(this, false)
1414
+ open: this.popupOpen.bind(this)
1435
1415
  });
1436
1416
  dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);
1437
1417
  if (this.isImportRules) {
@@ -1552,7 +1532,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1552
1532
  change: this.changeField.bind(this),
1553
1533
  index: 0,
1554
1534
  value: value,
1555
- open: this.popupOpen.bind(this, false)
1535
+ open: this.popupOpen.bind(this)
1556
1536
  };
1557
1537
  if (this.operatorModel) {
1558
1538
  ddlOperator = Object.assign({}, ddlOperator, this.operatorModel);
@@ -1571,13 +1551,10 @@ let QueryBuilder = class QueryBuilder extends Component {
1571
1551
  this.updateRules(ddlArgs.element, ddlArgs.item);
1572
1552
  }
1573
1553
  }
1574
- popupOpen(isField, args) {
1554
+ popupOpen(args) {
1575
1555
  if (this.enableRtl) {
1576
1556
  addClass([args.popup.element], 'e-rtl');
1577
1557
  }
1578
- if (isField) {
1579
- this.isFieldClose = false;
1580
- }
1581
1558
  }
1582
1559
  destroyControls(target, isRuleTemplate) {
1583
1560
  const element = isRuleTemplate ? target : target.nextElementSibling;
@@ -1770,7 +1747,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1770
1747
  change: this.changeValue.bind(this, i),
1771
1748
  close: this.closePopup.bind(this, i),
1772
1749
  actionBegin: this.multiSelectOpen.bind(this, parentId + '_valuekey' + i),
1773
- open: this.popupOpen.bind(this, false)
1750
+ open: this.popupOpen.bind(this)
1774
1751
  };
1775
1752
  if (this.valueModel && this.valueModel.multiSelectModel) {
1776
1753
  multiSelectValue = Object.assign({}, multiSelectValue, this.valueModel.multiSelectModel);
@@ -2191,9 +2168,6 @@ let QueryBuilder = class QueryBuilder extends Component {
2191
2168
  return 0;
2192
2169
  }
2193
2170
  getPreviousItemData(prevItemData, column) {
2194
- if (this.isFieldClose && prevItemData) {
2195
- prevItemData = this.getColumn(prevItemData.value);
2196
- }
2197
2171
  if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
2198
2172
  prevItemData.template = column.template;
2199
2173
  }
@@ -2685,7 +2659,6 @@ let QueryBuilder = class QueryBuilder extends Component {
2685
2659
  * @returns {void}
2686
2660
  */
2687
2661
  destroy() {
2688
- this.isDestroy = true;
2689
2662
  const queryElement = this.element;
2690
2663
  if (!queryElement) {
2691
2664
  return;
@@ -2741,7 +2714,6 @@ let QueryBuilder = class QueryBuilder extends Component {
2741
2714
  this.clearQBTemplate();
2742
2715
  }
2743
2716
  classList(this.element, [], ['e-rtl', 'e-responsive', 'e-device']);
2744
- this.isDestroy = false;
2745
2717
  }
2746
2718
  /**
2747
2719
  * Adds single or multiple rules.
@@ -3523,9 +3495,6 @@ let QueryBuilder = class QueryBuilder extends Component {
3523
3495
  rule.not = notValue;
3524
3496
  }
3525
3497
  }
3526
- else if ((isNullOrUndefined(rule.condition)) && isNullOrUndefined(rule.rules)) {
3527
- rule = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };
3528
- }
3529
3498
  else {
3530
3499
  if (this.enableNotCondition) {
3531
3500
  rule = { 'condition': rule.condition, 'rules': rule.rules, 'not': rule.not };
@@ -3709,7 +3678,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3709
3678
  }
3710
3679
  }
3711
3680
  }
3712
- else if (!isNullOrUndefined(ruleColl[i].operator) && !isNullOrUndefined(ruleColl[i].operator.length)) {
3681
+ else if (ruleColl[i].operator.length) {
3713
3682
  const oper = ruleColl[i].operator.toLowerCase();
3714
3683
  let isDateFilter = false;
3715
3684
  const dateOperColl = ['equal', 'notequal', 'greaterthan', 'greaterthanorequal', 'lessthan', 'lessthanorequal'];
@@ -4412,12 +4381,6 @@ let QueryBuilder = class QueryBuilder extends Component {
4412
4381
  this.parser.push(['Literal', matchValue]);
4413
4382
  return matchValue.length + 2;
4414
4383
  }
4415
- // eslint-disable-next-line
4416
- if (this.checkNumberLiteral(sqlString)) {
4417
- matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
4418
- this.parser.push(['Literal', matchValue]);
4419
- return matchValue.length;
4420
- }
4421
4384
  //String
4422
4385
  if (/^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)) {
4423
4386
  matchValue = /^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)[0];
@@ -4457,25 +4420,6 @@ let QueryBuilder = class QueryBuilder extends Component {
4457
4420
  }
4458
4421
  return false;
4459
4422
  }
4460
- checkNumberLiteral(sqlString) {
4461
- const lastParser = this.parser[this.parser.length - 1];
4462
- if (!lastParser) {
4463
- return true;
4464
- }
4465
- else {
4466
- if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
4467
- const secParser = this.parser[this.parser.length - 2];
4468
- const betweenParser = this.parser[this.parser.length - 3];
4469
- if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {
4470
- return true;
4471
- }
4472
- if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf('between') < 0)) {
4473
- return true;
4474
- }
4475
- }
4476
- }
4477
- return false;
4478
- }
4479
4423
  getOperator(value, operator) {
4480
4424
  const operators = {
4481
4425
  '=': 'equal', '!=': 'notequal', '<': 'lessthan', '>': 'greaterthan', '<=': 'lessthanorequal',