@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.
- package/README.md +10 -2
- package/dist/ej2-querybuilder.min.js +2 -2
- package/dist/ej2-querybuilder.umd.min.js +2 -2
- package/dist/ej2-querybuilder.umd.min.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es2015.js +77 -2
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +77 -2
- package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
- package/dist/global/ej2-querybuilder.min.js +2 -2
- package/dist/global/ej2-querybuilder.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -1
- package/package.json +7 -7
- package/src/query-builder/query-builder.d.ts +1 -0
- package/src/query-builder/query-builder.js +77 -2
package/dist/global/index.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version : 31.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.
|
|
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.
|
|
12
|
-
"@syncfusion/ej2-buttons": "~31.2.
|
|
13
|
-
"@syncfusion/ej2-calendars": "~31.2.
|
|
14
|
-
"@syncfusion/ej2-dropdowns": "~31.2.
|
|
15
|
-
"@syncfusion/ej2-inputs": "~31.2.
|
|
16
|
-
"@syncfusion/ej2-splitbuttons": "~31.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:
|
|
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
|
|
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
|
}
|