@syncfusion/ej2-querybuilder 26.1.40 → 26.2.4
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 +65 -1
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +67 -1
- 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 +11 -11
- 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 +67 -1
|
@@ -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,6 +1203,72 @@ 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') {
|