@syncfusion/ej2-querybuilder 31.2.2 → 31.2.12

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.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * filename: index.d.ts
3
- * version : 31.2.2
3
+ * version : 31.2.12
4
4
  * Copyright Syncfusion Inc. 2001 - 2025. All rights reserved.
5
5
  * Use of this code is subject to the terms of our license.
6
6
  * A copy of the current license can be obtained at any time by e-mailing
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@syncfusion/ej2-querybuilder",
3
- "version": "31.2.2",
3
+ "version": "31.2.12",
4
4
  "description": "Essential JS 2 QueryBuilder",
5
5
  "author": "Syncfusion Inc.",
6
6
  "license": "SEE LICENSE IN license",
@@ -8,12 +8,12 @@
8
8
  "module": "./index.js",
9
9
  "es2015": "./dist/es6/ej2-querybuilder.es5.js",
10
10
  "dependencies": {
11
- "@syncfusion/ej2-base": "~31.2.2",
12
- "@syncfusion/ej2-buttons": "~31.2.2",
13
- "@syncfusion/ej2-calendars": "~31.2.2",
14
- "@syncfusion/ej2-dropdowns": "~31.2.2",
15
- "@syncfusion/ej2-inputs": "~31.2.2",
16
- "@syncfusion/ej2-splitbuttons": "~31.2.2"
11
+ "@syncfusion/ej2-base": "~31.2.12",
12
+ "@syncfusion/ej2-buttons": "~31.2.12",
13
+ "@syncfusion/ej2-calendars": "~31.2.12",
14
+ "@syncfusion/ej2-dropdowns": "~31.2.12",
15
+ "@syncfusion/ej2-inputs": "~31.2.12",
16
+ "@syncfusion/ej2-splitbuttons": "~31.2.12"
17
17
  },
18
18
  "devDependencies": {},
19
19
  "keywords": [
@@ -679,6 +679,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
679
679
  private changeValue;
680
680
  private filterValue;
681
681
  private changeValueSuccessCallBack;
682
+ private setSecondDateMinFromFirst;
682
683
  private fieldClose;
683
684
  private changeField;
684
685
  private changeRule;
@@ -2359,11 +2359,46 @@ var QueryBuilder = /** @class */ (function (_super) {
2359
2359
  QueryBuilder.prototype.changeValueSuccessCallBack = function (args, element, i, groupID, ruleID) {
2360
2360
  if (!args.cancel) {
2361
2361
  this.updateRules(element, args.value, i);
2362
+ this.setSecondDateMinFromFirst(element, i);
2362
2363
  if (!this.isImportRules) {
2363
2364
  this.trigger('change', { groupID: groupID, ruleID: ruleID, value: args.value, cancel: false, type: 'value' });
2364
2365
  }
2365
2366
  }
2366
2367
  };
2368
+ QueryBuilder.prototype.setSecondDateMinFromFirst = function (element, valueIndex) {
2369
+ if (valueIndex !== 0) {
2370
+ return;
2371
+ }
2372
+ var ruleElem = closest(element, '.e-rule-container');
2373
+ if (!ruleElem) {
2374
+ return;
2375
+ }
2376
+ var operatorDropdownElement = ruleElem.querySelector('.e-rule-operator .e-dropdownlist');
2377
+ if (!operatorDropdownElement) {
2378
+ return;
2379
+ }
2380
+ var operatorDropdown = getComponent(operatorDropdownElement, 'dropdownlist');
2381
+ var operatorValue = operatorDropdown && operatorDropdown.value ? operatorDropdown.value.toString().toLowerCase() : '';
2382
+ if (operatorValue.indexOf('between') < 0) {
2383
+ return;
2384
+ }
2385
+ var firstDateElement = document.getElementById(ruleElem.id + '_valuekey0');
2386
+ var secondDateElement = document.getElementById(ruleElem.id + '_valuekey1');
2387
+ if (!firstDateElement || !secondDateElement) {
2388
+ return;
2389
+ }
2390
+ var firstDatePicker = getComponent(firstDateElement, 'datepicker');
2391
+ var secondDatePicker = getComponent(secondDateElement, 'datepicker');
2392
+ if (!firstDatePicker || !secondDatePicker || !(firstDatePicker.value instanceof Date)) {
2393
+ return;
2394
+ }
2395
+ var nextDay = new Date(firstDatePicker.value.getTime());
2396
+ nextDay.setDate(nextDay.getDate() + 1);
2397
+ secondDatePicker.min = nextDay;
2398
+ if (secondDatePicker.value instanceof Date && secondDatePicker.value.getTime() < nextDay.getTime()) {
2399
+ secondDatePicker.value = nextDay;
2400
+ }
2401
+ };
2367
2402
  QueryBuilder.prototype.fieldClose = function (id) {
2368
2403
  if (this.isFieldChange || this.isDestroy) {
2369
2404
  return;
@@ -2985,9 +3020,23 @@ var QueryBuilder = /** @class */ (function (_super) {
2985
3020
  isValues = true;
2986
3021
  }
2987
3022
  var multiSelectValue;
3023
+ var multiSelectUserQuery = (this.valueModel && this.valueModel.multiSelectModel && this.valueModel.multiSelectModel.query)
3024
+ ? this.valueModel.multiSelectModel.query
3025
+ : null;
3026
+ var multiSelectQuery = (multiSelectUserQuery && typeof multiSelectUserQuery.clone === 'function')
3027
+ ? multiSelectUserQuery.clone()
3028
+ : new Query();
3029
+ var selectedField = rule.field;
3030
+ if (selectedField) {
3031
+ multiSelectQuery.select([selectedField]);
3032
+ }
3033
+ var resolvedQuery = new Query([rule.field]);
3034
+ if (!isValues && !isFetched && (this.dataManager instanceof DataManager || this.dataSource instanceof DataManager)) {
3035
+ resolvedQuery = multiSelectQuery;
3036
+ }
2988
3037
  multiSelectValue = {
2989
3038
  dataSource: isValues ? values : (isFetched ? ds : this.dataManager),
2990
- query: new Query([rule.field]),
3039
+ query: resolvedQuery,
2991
3040
  fields: { text: this.selectedRule.field, value: this.selectedRule.field },
2992
3041
  placeholder: this.l10n.getConstant('SelectValue'),
2993
3042
  value: selectedValue,
@@ -3039,7 +3088,14 @@ var QueryBuilder = /** @class */ (function (_super) {
3039
3088
  var _this = this;
3040
3089
  var dummyData;
3041
3090
  var deferred = new Deferred();
3042
- var data = this.dataManager.executeQuery(new Query().select(value));
3091
+ var userQuery = (this.valueModel && this.valueModel.multiSelectModel && this.valueModel.multiSelectModel.query)
3092
+ ? this.valueModel.multiSelectModel.query
3093
+ : null;
3094
+ var dataQuery = (userQuery && typeof userQuery.clone === 'function')
3095
+ ? userQuery.clone()
3096
+ : new Query();
3097
+ dataQuery.select([value]);
3098
+ var data = this.dataManager.executeQuery(dataQuery);
3043
3099
  var multiselectObj = getComponent(element, 'multiselect');
3044
3100
  multiselectObj.hideSpinner();
3045
3101
  this.createSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
@@ -3350,6 +3406,12 @@ var QueryBuilder = /** @class */ (function (_super) {
3350
3406
  selVal = (length_1 > 1) ? rule.value[i] : rule.value;
3351
3407
  selectedValue = this.parseDate(selVal, format) || new Date();
3352
3408
  }
3409
+ if (!isNullOrUndefined(itemData) && itemData.value && !isTemplate) {
3410
+ var parsedDate = this.parseDate(itemData.value.toString(), itemData.format);
3411
+ if (parsedDate && !isNaN(parsedDate.getTime())) {
3412
+ selectedValue = parsedDate;
3413
+ }
3414
+ }
3353
3415
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3354
3416
  if (!itemData.field && !itemData.key && itemData.value) {
3355
3417
  if (itemData.value instanceof Date) {
@@ -3391,6 +3453,19 @@ var QueryBuilder = /** @class */ (function (_super) {
3391
3453
  value: selectedValue, locale: this.getLocale(), placeholder: place,
3392
3454
  format: formatObj.format, change: this.changeValue.bind(this, i)
3393
3455
  };
3456
+ if (!isNullOrUndefined(column) && !isNullOrUndefined(column.values) && column.values.length > 0) {
3457
+ var parsedDate = this.parseDate(column.values[i], format);
3458
+ if (!isNullOrUndefined(parsedDate) && parsedDate instanceof Date) {
3459
+ datePicker.value = parsedDate;
3460
+ if (i === 1) {
3461
+ var parsedMinDate = this.parseDate(column.values[0], format);
3462
+ if (parsedMinDate instanceof Date && !isNaN(parsedMinDate.getTime())) {
3463
+ parsedMinDate.setDate(parsedMinDate.getDate() + 1);
3464
+ datePicker.min = parsedMinDate;
3465
+ }
3466
+ }
3467
+ }
3468
+ }
3394
3469
  if (this.valueModel && this.valueModel.datePickerModel) {
3395
3470
  datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);
3396
3471
  }