@syncfusion/ej2-querybuilder 27.2.2 → 27.2.5

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.
@@ -2840,9 +2840,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2840
2840
  };
2841
2841
  QueryBuilder.prototype.getItemData = function (parentId) {
2842
2842
  var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
2843
+ var parentFieldObj = this.element.querySelector("#" + parentId);
2843
2844
  if (this.fieldMode === 'DropdownTree') {
2844
2845
  fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
2845
2846
  }
2847
+ else if (parentFieldObj) {
2848
+ var subFieldObjList = parentFieldObj.querySelectorAll('.e-rule-sub-filter');
2849
+ if (subFieldObjList.length > 0) {
2850
+ var lastSubFieldObj = subFieldObjList[subFieldObjList.length - 1].querySelector('.e-dropdownlist');
2851
+ fieldObj = getComponent(lastSubFieldObj, 'dropdownlist');
2852
+ }
2853
+ }
2846
2854
  return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
2847
2855
  };
2848
2856
  QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {
@@ -2891,6 +2899,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2891
2899
  this.setDefaultValue(parentId, true, false);
2892
2900
  selectedValue = selectedVal.join(',');
2893
2901
  }
2902
+ if (operator === 'between' || operator === 'notbetween') {
2903
+ if (selectedValue.length > 1) {
2904
+ selectedValue = selectedValue[idx];
2905
+ }
2906
+ }
2894
2907
  var txtBox = void 0;
2895
2908
  txtBox = {
2896
2909
  placeholder: this.l10n.getConstant('SelectValue'),
@@ -3194,7 +3207,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3194
3207
  QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {
3195
3208
  if (this.isFieldClose && prevItemData) {
3196
3209
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3197
- prevItemData = this.getColumn(prevItemData.value);
3210
+ prevItemData = this.getColumn(prevItemData.value ? prevItemData.value : prevItemData.field);
3198
3211
  }
3199
3212
  if (column && column.template && prevItemData && Object.keys(prevItemData).length < 4) {
3200
3213
  prevItemData.template = column.template;
@@ -3629,6 +3642,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3629
3642
  rule.rules[index].value = this.processValueString(selectedValue, rule.rules[index].type);
3630
3643
  }
3631
3644
  }
3645
+ else if (oper === 'between' || oper === 'notbetween') {
3646
+ if (typeof rule.rules[index].value === 'string') {
3647
+ rule.rules[index].value = [];
3648
+ }
3649
+ rule.rules[index].value[i] = selectedValue;
3650
+ }
3632
3651
  else {
3633
3652
  rule.rules[index].value = selectedValue;
3634
3653
  }
@@ -5210,6 +5229,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
5210
5229
  if ((rule.operator === 'in' || rule.operator === 'notin') && rule.value && rule.value.length === 0) {
5211
5230
  rule = {};
5212
5231
  }
5232
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5233
+ if ((rule.operator === 'between' || rule.operator === 'notbetween') && Array.isArray(rule.value) && (rule.value.length < 2 || rule.value.some(function (val) { return val === '' || val === null; }))) {
5234
+ rule = {};
5235
+ }
5213
5236
  }
5214
5237
  else {
5215
5238
  rule = {};
@@ -7596,6 +7619,7 @@ var QueryLibrary = /** @__PURE__ @class */ (function () {
7596
7619
  var stringValue;
7597
7620
  var key;
7598
7621
  var betweenValue;
7622
+ var fieldType;
7599
7623
  var condition;
7600
7624
  var value;
7601
7625
  var subRules;
@@ -7767,7 +7791,14 @@ var QueryLibrary = /** @__PURE__ @class */ (function () {
7767
7791
  ruleValue = stringValue.replace('$', '');
7768
7792
  type = 'string';
7769
7793
  }
7770
- if (!isNaN(Date.parse(stringValue))) { // Date type operators
7794
+ for (var _i = 0, _a = this.parent.columns; _i < _a.length; _i++) {
7795
+ var column = _a[_i];
7796
+ if (column.field === condition) {
7797
+ fieldType = column.type;
7798
+ break;
7799
+ }
7800
+ }
7801
+ if (!isNaN(Date.parse(stringValue)) || fieldType === 'date') { // Date type operators
7771
7802
  operatorValue = operatorValue || this.getOperatorFromMongoOperator(key);
7772
7803
  type = 'date';
7773
7804
  ruleValue = stringValue;