@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.
@@ -2345,11 +2345,46 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2345
2345
  QueryBuilder.prototype.changeValueSuccessCallBack = function (args, element, i, groupID, ruleID) {
2346
2346
  if (!args.cancel) {
2347
2347
  this.updateRules(element, args.value, i);
2348
+ this.setSecondDateMinFromFirst(element, i);
2348
2349
  if (!this.isImportRules) {
2349
2350
  this.trigger('change', { groupID: groupID, ruleID: ruleID, value: args.value, cancel: false, type: 'value' });
2350
2351
  }
2351
2352
  }
2352
2353
  };
2354
+ QueryBuilder.prototype.setSecondDateMinFromFirst = function (element, valueIndex) {
2355
+ if (valueIndex !== 0) {
2356
+ return;
2357
+ }
2358
+ var ruleElem = closest(element, '.e-rule-container');
2359
+ if (!ruleElem) {
2360
+ return;
2361
+ }
2362
+ var operatorDropdownElement = ruleElem.querySelector('.e-rule-operator .e-dropdownlist');
2363
+ if (!operatorDropdownElement) {
2364
+ return;
2365
+ }
2366
+ var operatorDropdown = getComponent(operatorDropdownElement, 'dropdownlist');
2367
+ var operatorValue = operatorDropdown && operatorDropdown.value ? operatorDropdown.value.toString().toLowerCase() : '';
2368
+ if (operatorValue.indexOf('between') < 0) {
2369
+ return;
2370
+ }
2371
+ var firstDateElement = document.getElementById(ruleElem.id + '_valuekey0');
2372
+ var secondDateElement = document.getElementById(ruleElem.id + '_valuekey1');
2373
+ if (!firstDateElement || !secondDateElement) {
2374
+ return;
2375
+ }
2376
+ var firstDatePicker = getComponent(firstDateElement, 'datepicker');
2377
+ var secondDatePicker = getComponent(secondDateElement, 'datepicker');
2378
+ if (!firstDatePicker || !secondDatePicker || !(firstDatePicker.value instanceof Date)) {
2379
+ return;
2380
+ }
2381
+ var nextDay = new Date(firstDatePicker.value.getTime());
2382
+ nextDay.setDate(nextDay.getDate() + 1);
2383
+ secondDatePicker.min = nextDay;
2384
+ if (secondDatePicker.value instanceof Date && secondDatePicker.value.getTime() < nextDay.getTime()) {
2385
+ secondDatePicker.value = nextDay;
2386
+ }
2387
+ };
2353
2388
  QueryBuilder.prototype.fieldClose = function (id) {
2354
2389
  if (this.isFieldChange || this.isDestroy) {
2355
2390
  return;
@@ -2971,9 +3006,23 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
2971
3006
  isValues = true;
2972
3007
  }
2973
3008
  var multiSelectValue;
3009
+ var multiSelectUserQuery = (this.valueModel && this.valueModel.multiSelectModel && this.valueModel.multiSelectModel.query)
3010
+ ? this.valueModel.multiSelectModel.query
3011
+ : null;
3012
+ var multiSelectQuery = (multiSelectUserQuery && typeof multiSelectUserQuery.clone === 'function')
3013
+ ? multiSelectUserQuery.clone()
3014
+ : new Query();
3015
+ var selectedField = rule.field;
3016
+ if (selectedField) {
3017
+ multiSelectQuery.select([selectedField]);
3018
+ }
3019
+ var resolvedQuery = new Query([rule.field]);
3020
+ if (!isValues && !isFetched && (this.dataManager instanceof DataManager || this.dataSource instanceof DataManager)) {
3021
+ resolvedQuery = multiSelectQuery;
3022
+ }
2974
3023
  multiSelectValue = {
2975
3024
  dataSource: isValues ? values : (isFetched ? ds : this.dataManager),
2976
- query: new Query([rule.field]),
3025
+ query: resolvedQuery,
2977
3026
  fields: { text: this.selectedRule.field, value: this.selectedRule.field },
2978
3027
  placeholder: this.l10n.getConstant('SelectValue'),
2979
3028
  value: selectedValue,
@@ -3025,7 +3074,14 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3025
3074
  var _this = this;
3026
3075
  var dummyData;
3027
3076
  var deferred = new Deferred();
3028
- var data = this.dataManager.executeQuery(new Query().select(value));
3077
+ var userQuery = (this.valueModel && this.valueModel.multiSelectModel && this.valueModel.multiSelectModel.query)
3078
+ ? this.valueModel.multiSelectModel.query
3079
+ : null;
3080
+ var dataQuery = (userQuery && typeof userQuery.clone === 'function')
3081
+ ? userQuery.clone()
3082
+ : new Query();
3083
+ dataQuery.select([value]);
3084
+ var data = this.dataManager.executeQuery(dataQuery);
3029
3085
  var multiselectObj = getComponent(element, 'multiselect');
3030
3086
  multiselectObj.hideSpinner();
3031
3087
  this.createSpinner(closest(element, '.e-multi-select-wrapper').parentElement);
@@ -3336,6 +3392,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3336
3392
  selVal = (length_1 > 1) ? rule.value[i] : rule.value;
3337
3393
  selectedValue = this.parseDate(selVal, format) || new Date();
3338
3394
  }
3395
+ if (!isNullOrUndefined(itemData) && itemData.value && !isTemplate) {
3396
+ var parsedDate = this.parseDate(itemData.value.toString(), itemData.format);
3397
+ if (parsedDate && !isNaN(parsedDate.getTime())) {
3398
+ selectedValue = parsedDate;
3399
+ }
3400
+ }
3339
3401
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3340
3402
  if (!itemData.field && !itemData.key && itemData.value) {
3341
3403
  if (itemData.value instanceof Date) {
@@ -3377,6 +3439,19 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
3377
3439
  value: selectedValue, locale: this.getLocale(), placeholder: place,
3378
3440
  format: formatObj.format, change: this.changeValue.bind(this, i)
3379
3441
  };
3442
+ if (!isNullOrUndefined(column) && !isNullOrUndefined(column.values) && column.values.length > 0) {
3443
+ var parsedDate = this.parseDate(column.values[i], format);
3444
+ if (!isNullOrUndefined(parsedDate) && parsedDate instanceof Date) {
3445
+ datePicker.value = parsedDate;
3446
+ if (i === 1) {
3447
+ var parsedMinDate = this.parseDate(column.values[0], format);
3448
+ if (parsedMinDate instanceof Date && !isNaN(parsedMinDate.getTime())) {
3449
+ parsedMinDate.setDate(parsedMinDate.getDate() + 1);
3450
+ datePicker.min = parsedMinDate;
3451
+ }
3452
+ }
3453
+ }
3454
+ }
3380
3455
  if (this.valueModel && this.valueModel.datePickerModel) {
3381
3456
  datePicker = __assign({}, datePicker, this.valueModel.datePickerModel);
3382
3457
  }