@syncfusion/ej2-querybuilder 26.1.38 → 26.1.42
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/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 +95 -3
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +97 -3
- 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 +10 -10
- package/src/query-builder/query-builder-model.d.ts +1 -1
- package/src/query-builder/query-builder.d.ts +6 -0
- package/src/query-builder/query-builder.js +97 -3
- package/styles/fluent2.css +5 -5
- package/styles/query-builder/fluent2.css +5 -5
|
@@ -1133,7 +1133,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1133
1133
|
popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
|
|
1134
1134
|
change: this.changeField.bind(this), value: !isNullOrUndefined(ddlValue) ? [ddlValue] : null,
|
|
1135
1135
|
open: this.popupOpen.bind(this, false), treeSettings: { expandOn: 'Click' },
|
|
1136
|
-
cssClass: 'e-qb-ddt'
|
|
1136
|
+
cssClass: 'e-qb-ddt', filtering: this.dropdownTreeFiltering.bind(this), close: this.dropdownTreeClose.bind(this)
|
|
1137
1137
|
};
|
|
1138
1138
|
if (this.fieldModel) {
|
|
1139
1139
|
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
@@ -1203,14 +1203,82 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1203
1203
|
this.setMultiConnector(ruleElem);
|
|
1204
1204
|
}
|
|
1205
1205
|
};
|
|
1206
|
+
QueryBuilder.prototype.dropdownTreeFiltering = function (args) {
|
|
1207
|
+
var _this = this;
|
|
1208
|
+
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
1209
|
+
var proxy = this;
|
|
1210
|
+
var ruleElemID = '';
|
|
1211
|
+
var srcElement = args.event.srcElement;
|
|
1212
|
+
var isClearIcon = srcElement.classList.contains('e-clear-icon');
|
|
1213
|
+
var inputElem = isClearIcon ? srcElement.parentElement.querySelector('.e-textbox') : srcElement;
|
|
1214
|
+
ruleElemID = inputElem.id.split('_filterkey')[0];
|
|
1215
|
+
var ruleElem = document.getElementById(ruleElemID);
|
|
1216
|
+
this.ddTree = getComponent(ruleElem.querySelector('input.e-dropdowntree'), 'dropdowntree');
|
|
1217
|
+
var hierarchicalData = extend([], this.columns, [], true);
|
|
1218
|
+
// Cancel the default filtering.
|
|
1219
|
+
args.cancel = true;
|
|
1220
|
+
if (args.text === '') {
|
|
1221
|
+
this.changeDataSource(hierarchicalData);
|
|
1222
|
+
}
|
|
1223
|
+
else {
|
|
1224
|
+
var matchedDataSource = hierarchicalData
|
|
1225
|
+
.map(function (data) { return _this.nestedChildFilter(args.text, data); })
|
|
1226
|
+
.filter(function (filteredChild) { return filteredChild !== null; });
|
|
1227
|
+
this.changeDataSource(matchedDataSource);
|
|
1228
|
+
setTimeout(function () {
|
|
1229
|
+
proxy.ddTree.treeObj.expandAll();
|
|
1230
|
+
}, 100);
|
|
1231
|
+
}
|
|
1232
|
+
};
|
|
1233
|
+
QueryBuilder.prototype.changeDataSource = function (data) {
|
|
1234
|
+
this.ddTree.treeObj.fields = {
|
|
1235
|
+
dataSource: data,
|
|
1236
|
+
value: 'field',
|
|
1237
|
+
text: 'label',
|
|
1238
|
+
child: 'columns',
|
|
1239
|
+
expanded: 'expanded'
|
|
1240
|
+
};
|
|
1241
|
+
this.ddTree.treeObj.refresh();
|
|
1242
|
+
};
|
|
1243
|
+
QueryBuilder.prototype.nestedChildFilter = function (value, node) {
|
|
1244
|
+
var _this = this;
|
|
1245
|
+
var children = node[this.ddTree.fields.child];
|
|
1246
|
+
if (!children) {
|
|
1247
|
+
return this.isMatchedNode(value, node) ? node : null;
|
|
1248
|
+
}
|
|
1249
|
+
var matchedChildren = children
|
|
1250
|
+
.map(function (child) { return _this.nestedChildFilter(value, child); })
|
|
1251
|
+
.filter(function (filteredChild) { return filteredChild !== null; });
|
|
1252
|
+
if (matchedChildren.length) {
|
|
1253
|
+
node[this.ddTree.fields.child] = matchedChildren;
|
|
1254
|
+
return node;
|
|
1255
|
+
}
|
|
1256
|
+
else {
|
|
1257
|
+
node[this.ddTree.fields.child] = children;
|
|
1258
|
+
return this.isMatchedNode(value, node) ? node : null;
|
|
1259
|
+
}
|
|
1260
|
+
};
|
|
1261
|
+
QueryBuilder.prototype.isMatchedNode = function (value, node) {
|
|
1262
|
+
var checkValue = node[this.ddTree.fields.text].toLowerCase();
|
|
1263
|
+
value = value ? value.toLowerCase() : '';
|
|
1264
|
+
return checkValue.indexOf(value) !== -1;
|
|
1265
|
+
};
|
|
1266
|
+
QueryBuilder.prototype.dropdownTreeClose = function () {
|
|
1267
|
+
if (this.ddTree) {
|
|
1268
|
+
this.changeDataSource(this.columns);
|
|
1269
|
+
}
|
|
1270
|
+
this.ddTree = null;
|
|
1271
|
+
};
|
|
1206
1272
|
QueryBuilder.prototype.updateDropdowntreeDS = function (columns) {
|
|
1207
1273
|
for (var i = 0; i < columns.length; i++) {
|
|
1208
1274
|
if (columns[parseInt(i.toString(), 10)].type === 'object') {
|
|
1275
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1209
1276
|
if (this.isAngular && columns[parseInt(i.toString(), 10)].template) {
|
|
1210
1277
|
delete columns[parseInt(i.toString(), 10)].template;
|
|
1211
1278
|
}
|
|
1212
1279
|
columns[parseInt(i.toString(), 10)].selectable = false;
|
|
1213
1280
|
this.updateDropdowntreeDS(columns[parseInt(i.toString(), 10)].columns);
|
|
1281
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1214
1282
|
}
|
|
1215
1283
|
else if (this.isAngular && columns[parseInt(i.toString(), 10)].template) {
|
|
1216
1284
|
delete columns[parseInt(i.toString(), 10)].template;
|
|
@@ -1375,10 +1443,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1375
1443
|
}
|
|
1376
1444
|
if (excludeOprs.indexOf(rule.rules[index].operator) < -1 &&
|
|
1377
1445
|
(isNullOrUndefined(rule.rules[index].value) &&
|
|
1378
|
-
rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
|
|
1446
|
+
rule.rules[index].type !== 'date') || rule.rules[index].value === '' || rule.rules[index].value === null ||
|
|
1379
1447
|
(rule.rules[index].value instanceof Array && valArray.length < 1)) {
|
|
1380
1448
|
var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
|
|
1381
|
-
|
|
1449
|
+
if (excludeOprs.indexOf(rule.rules[index].operator) < 0) {
|
|
1450
|
+
isValid = false;
|
|
1451
|
+
}
|
|
1382
1452
|
for (var j = 0, jLen = valElem.length; j < jLen; j++) {
|
|
1383
1453
|
var element = valElem[j];
|
|
1384
1454
|
var elem = void 0;
|
|
@@ -1393,6 +1463,18 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1393
1463
|
}
|
|
1394
1464
|
j++;
|
|
1395
1465
|
}
|
|
1466
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1467
|
+
}
|
|
1468
|
+
else if (rule.rules[index].type === 'date' && (rule.rules[index].value === null || rule.rules[index].value.indexOf(null) > -1)) {
|
|
1469
|
+
var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
|
|
1470
|
+
if (excludeOprs.indexOf(rule.rules[index].operator) < 0) {
|
|
1471
|
+
isValid = false;
|
|
1472
|
+
}
|
|
1473
|
+
for (var j = 0, jLen = valElem.length; j < jLen; j++) {
|
|
1474
|
+
if (valElem[j].parentElement.className.indexOf('e-tooltip') < 0 && valElem[j].className.indexOf('e-tooltip') < 0 && (isNullOrUndefined(rule.rules[index].value) || rule.rules[index].value[j] == null)) {
|
|
1475
|
+
this.renderToolTip(valElem[j].parentElement);
|
|
1476
|
+
}
|
|
1477
|
+
}
|
|
1396
1478
|
}
|
|
1397
1479
|
}
|
|
1398
1480
|
else if ((dropDownObj && dropDownObj.element && isNullOrUndefined(dropDownObj.index)) ||
|
|
@@ -2147,6 +2229,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2147
2229
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2148
2230
|
element = args.element;
|
|
2149
2231
|
}
|
|
2232
|
+
if (!element) {
|
|
2233
|
+
return;
|
|
2234
|
+
}
|
|
2150
2235
|
if (element.className.indexOf('e-day') > -1 || element.className.indexOf('e-today') > -1 || element.className.indexOf('e-cell') > -1) {
|
|
2151
2236
|
var calenderArgs = args;
|
|
2152
2237
|
element = calenderArgs.element;
|
|
@@ -3781,6 +3866,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3781
3866
|
if (valElem[1] && valElem[1].parentElement.className.indexOf('e-tooltip') > -1) {
|
|
3782
3867
|
getComponent(valElem[1].parentElement, 'tooltip').destroy();
|
|
3783
3868
|
}
|
|
3869
|
+
if (valElem[2] && valElem[2].parentElement.className.indexOf('e-tooltip') > -1) {
|
|
3870
|
+
getComponent(valElem[2].parentElement, 'tooltip').destroy();
|
|
3871
|
+
}
|
|
3784
3872
|
}
|
|
3785
3873
|
}
|
|
3786
3874
|
};
|
|
@@ -6551,6 +6639,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6551
6639
|
var grpCount;
|
|
6552
6640
|
var operator;
|
|
6553
6641
|
var isLeftOpened = false;
|
|
6642
|
+
var isNotOpened = false;
|
|
6554
6643
|
for (var i = 0, iLen = parser.length; i < iLen; i++) {
|
|
6555
6644
|
if (parser[i][0] === 'Literal') {
|
|
6556
6645
|
var column = this.getColumn(parser[i][1]);
|
|
@@ -6686,6 +6775,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6686
6775
|
}
|
|
6687
6776
|
else if (parser[i][0] === 'Left') {
|
|
6688
6777
|
if (!(parser[0][0] === 'Left') && (parser[i - 1][1] === 'not' || sqlLocale && this.l10n.getConstant('NOT').toLowerCase() === parser[i - 1][1])) {
|
|
6778
|
+
isNotOpened = true;
|
|
6689
6779
|
continue;
|
|
6690
6780
|
}
|
|
6691
6781
|
this.parser = parser.splice(i + 1, iLen - (i + 1));
|
|
@@ -6716,6 +6806,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
6716
6806
|
}
|
|
6717
6807
|
}
|
|
6718
6808
|
else if (parser[i][0] === 'Right') {
|
|
6809
|
+
if (isNotOpened && parser[i + 1][0] === 'Right') {
|
|
6810
|
+
isNotOpened = false;
|
|
6811
|
+
continue;
|
|
6812
|
+
}
|
|
6719
6813
|
this.parser = parser.splice(i + 1, iLen - (i + 1));
|
|
6720
6814
|
levelColl.pop(); //To get the parent Group
|
|
6721
6815
|
rules = this.rule;
|