@syncfusion/ej2-querybuilder 19.2.60 → 19.3.53
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/.eslintrc.json +1 -1
- package/CHANGELOG.md +17 -0
- 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 +176 -66
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +174 -64
- 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/helpers/e2e/index.d.ts +1 -0
- package/helpers/e2e/index.js +6 -0
- package/helpers/e2e/querybuilderHelper.d.ts +37 -0
- package/helpers/e2e/querybuilderHelper.js +36 -0
- package/package.json +11 -11
- package/src/query-builder/query-builder-model.d.ts +10 -3
- package/src/query-builder/query-builder.d.ts +17 -2
- package/src/query-builder/query-builder.js +174 -64
- package/styles/bootstrap5-dark.css +962 -0
- package/styles/bootstrap5-dark.scss +1 -0
- package/styles/bootstrap5.css +962 -0
- package/styles/bootstrap5.scss +1 -0
- package/styles/material-dark.css +3 -3
- package/styles/query-builder/_bootstrap5-dark-definition.scss +1 -0
- package/styles/query-builder/_bootstrap5-definition.scss +107 -0
- package/styles/query-builder/_tailwind-dark-definition.scss +1 -106
- package/styles/query-builder/_tailwind-definition.scss +17 -16
- package/styles/query-builder/_theme.scss +1 -1
- package/styles/query-builder/bootstrap5-dark.css +962 -0
- package/styles/query-builder/bootstrap5-dark.scss +15 -0
- package/styles/query-builder/bootstrap5.css +962 -0
- package/styles/query-builder/bootstrap5.scss +15 -0
- package/styles/query-builder/icons/_bootstrap5-dark.scss +1 -0
- package/styles/query-builder/icons/_bootstrap5.scss +8 -0
- package/styles/query-builder/icons/_tailwind.scss +1 -1
- package/styles/query-builder/material-dark.css +3 -3
- package/styles/query-builder/tailwind-dark.css +9 -9
- package/styles/query-builder/tailwind.css +10 -10
- package/styles/tailwind-dark.css +9 -9
- package/styles/tailwind.css +10 -10
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Animation, Browser, ChildProperty, Collection, Complex, Component, Event, EventHandler, Internationalization, L10n, NotifyPropertyChanges, Property, addClass, classList, cldrData, closest, compile, detach, extend, getComponent, getInstance, getUniqueID, getValue, isNullOrUndefined, removeClass, rippleEffect, select } from '@syncfusion/ej2-base';
|
|
2
2
|
import { Button, RadioButton } from '@syncfusion/ej2-buttons';
|
|
3
|
-
import { CheckBoxSelection, DropDownList, MultiSelect } from '@syncfusion/ej2-dropdowns';
|
|
3
|
+
import { CheckBoxSelection, DropDownList, DropDownTree, MultiSelect } from '@syncfusion/ej2-dropdowns';
|
|
4
4
|
import { DataManager, Deferred, Predicate, Query } from '@syncfusion/ej2-data';
|
|
5
5
|
import { NumericTextBox, TextBox } from '@syncfusion/ej2-inputs';
|
|
6
6
|
import { DatePicker } from '@syncfusion/ej2-calendars';
|
|
@@ -325,7 +325,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
325
325
|
};
|
|
326
326
|
QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
|
|
327
327
|
for (var i = 0; i < col.length; i++) {
|
|
328
|
-
|
|
328
|
+
if (this.separator != '' && col[i].field.indexOf(this.separator) < 0) {
|
|
329
|
+
col[i].field = field ? field + this.separator + col[i].field : col[i].field;
|
|
330
|
+
}
|
|
329
331
|
if (col[i].operators) {
|
|
330
332
|
this.updateCustomOperator(col[i]);
|
|
331
333
|
}
|
|
@@ -650,28 +652,57 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
650
652
|
this.updateAddedRule(trgt, rule, newRule, isRlTmp, pId);
|
|
651
653
|
}
|
|
652
654
|
if (!column || (column && !column.ruleTemplate)) {
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
655
|
+
if (this.fieldMode === 'Default') {
|
|
656
|
+
var ddlField = void 0;
|
|
657
|
+
var ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;
|
|
658
|
+
ddlField = {
|
|
659
|
+
dataSource: this.columns,
|
|
660
|
+
fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),
|
|
661
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'),
|
|
662
|
+
change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this)
|
|
663
|
+
};
|
|
664
|
+
if (this.fieldModel) {
|
|
665
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
666
|
+
}
|
|
667
|
+
dropDownList = new DropDownList(ddlField);
|
|
668
|
+
dropDownList.appendTo('#' + ruleElem.id + '_filterkey');
|
|
669
|
+
var ddlVal = this.isImportRules ?
|
|
670
|
+
this.GetRootColumnName(rule.field) : dropDownList.value;
|
|
671
|
+
this.selectedColumn = dropDownList.getDataByValue(ddlVal);
|
|
672
|
+
if (Object.keys(rule).length) {
|
|
673
|
+
this.changeRule(rule, {
|
|
674
|
+
element: dropDownList.element, itemData: this.selectedColumn
|
|
675
|
+
});
|
|
676
|
+
}
|
|
664
677
|
}
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
this.
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
678
|
+
else {
|
|
679
|
+
var dropdowntree = void 0;
|
|
680
|
+
var ddlField = void 0;
|
|
681
|
+
var ddlValue = this.isImportRules ? rule.field : rule.field;
|
|
682
|
+
ddlField = {
|
|
683
|
+
fields: { dataSource: this.columns,
|
|
684
|
+
value: "field", text: "label", child: 'columns', expanded: "expanded" },
|
|
685
|
+
placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
|
|
686
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
|
|
687
|
+
change: this.changeField.bind(this), value: this.isImportRules ? [ddlValue] : null,
|
|
688
|
+
open: this.popupOpen.bind(this)
|
|
689
|
+
};
|
|
690
|
+
if (this.fieldModel) {
|
|
691
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
692
|
+
}
|
|
693
|
+
dropdowntree = new DropDownTree(ddlField);
|
|
694
|
+
dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
|
|
695
|
+
if (!isNullOrUndefined(dropdowntree.value)) {
|
|
696
|
+
dropdowntree.element.value = dropdowntree.value[0];
|
|
697
|
+
}
|
|
698
|
+
var ddlVal = this.isImportRules ?
|
|
699
|
+
this.GetRootColumnName(rule.field) : dropdowntree.value;
|
|
700
|
+
this.selectedColumn = this.getColumn(ddlVal);
|
|
701
|
+
if (Object.keys(rule).length) {
|
|
702
|
+
this.changeRule(rule, {
|
|
703
|
+
element: dropdowntree.element, itemData: this.selectedColumn
|
|
704
|
+
});
|
|
705
|
+
}
|
|
675
706
|
}
|
|
676
707
|
}
|
|
677
708
|
ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
@@ -899,7 +930,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
899
930
|
else {
|
|
900
931
|
clsName = 'e-removerule e-rule-delete e-css e-btn e-small e-button-hide';
|
|
901
932
|
}
|
|
902
|
-
var delBtnElem = this.createElement('button', { attrs: { class: clsName } });
|
|
933
|
+
var delBtnElem = this.createElement('button', { attrs: { type: 'button', class: clsName } });
|
|
903
934
|
tempElem.appendChild(delBtnElem);
|
|
904
935
|
fieldElem.appendChild(tempElem);
|
|
905
936
|
ruleElem.appendChild(fieldElem);
|
|
@@ -951,7 +982,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
951
982
|
}
|
|
952
983
|
if (isGroup) {
|
|
953
984
|
var clsName = this.showButtons.groupDelete ? 'e-deletegroup' : 'e-deletegroup e-button-hide';
|
|
954
|
-
dltGroupBtn = this.createElement('button', { attrs: { class: clsName } });
|
|
985
|
+
dltGroupBtn = this.createElement('button', { attrs: { type: 'button', class: clsName } });
|
|
955
986
|
var button = new Button({ iconCss: 'e-icons e-delete-icon', cssClass: 'e-small e-round' });
|
|
956
987
|
button.appendTo(dltGroupBtn);
|
|
957
988
|
dltGroupBtn.setAttribute('title', this.l10n.getConstant('DeleteGroup'));
|
|
@@ -1027,7 +1058,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1027
1058
|
var groupHdr = groupElem.querySelector('.e-group-header');
|
|
1028
1059
|
if (this.headerTemplate) {
|
|
1029
1060
|
args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
|
|
1030
|
-
notCondition: this.enableNotCondition ? not : undefined, condition: condition, rule: rule };
|
|
1061
|
+
notCondition: this.enableNotCondition ? not : undefined, condition: condition, rule: this.getRuleCollection(rule, true) };
|
|
1031
1062
|
this.trigger('actionBegin', args);
|
|
1032
1063
|
this.headerFn = this.templateParser(this.headerTemplate);
|
|
1033
1064
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -1181,12 +1212,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1181
1212
|
QueryBuilder.prototype.changeValue = function (i, args) {
|
|
1182
1213
|
var _this = this;
|
|
1183
1214
|
var element;
|
|
1184
|
-
|
|
1215
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1216
|
+
if (args.element && args.element.classList.contains('e-multiselect')) {
|
|
1217
|
+
var multiSelectArgs = args;
|
|
1218
|
+
element = multiSelectArgs.element;
|
|
1219
|
+
}
|
|
1220
|
+
else if (args.event) {
|
|
1185
1221
|
element = args.event.target;
|
|
1186
1222
|
}
|
|
1187
1223
|
else {
|
|
1188
|
-
|
|
1189
|
-
element =
|
|
1224
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1225
|
+
element = args.element;
|
|
1190
1226
|
}
|
|
1191
1227
|
if (element.className.indexOf('e-day') > -1 || element.className.indexOf('e-today') > -1 || element.className.indexOf('e-cell') > -1) {
|
|
1192
1228
|
var calenderArgs = args;
|
|
@@ -1255,10 +1291,41 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1255
1291
|
QueryBuilder.prototype.changeField = function (args) {
|
|
1256
1292
|
if (args.isInteracted) {
|
|
1257
1293
|
var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
|
|
1294
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);
|
|
1295
|
+
if (this.fieldMode === 'DropdownTree' && fieldElem != null) {
|
|
1296
|
+
var ddtElem = fieldElem.querySelector(".e-control");
|
|
1297
|
+
var ddt = getComponent(ddtElem, 'dropdowntree');
|
|
1298
|
+
if (column) {
|
|
1299
|
+
if (column.type == 'object') {
|
|
1300
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1301
|
+
ddt.value = args.oldValue;
|
|
1302
|
+
ddt.dataBind();
|
|
1303
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1304
|
+
if (isNullOrUndefined(args.oldValue)) {
|
|
1305
|
+
ddtElem.value = "";
|
|
1306
|
+
}
|
|
1307
|
+
else {
|
|
1308
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1309
|
+
ddtElem.value = args.oldValue[0];
|
|
1310
|
+
}
|
|
1311
|
+
return;
|
|
1312
|
+
}
|
|
1313
|
+
else {
|
|
1314
|
+
if (!isNullOrUndefined(args.value[0])) {
|
|
1315
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1316
|
+
ddt.value = args.value[0];
|
|
1317
|
+
ddt.dataBind();
|
|
1318
|
+
ddtElem.value = args.value[0];
|
|
1319
|
+
}
|
|
1320
|
+
}
|
|
1321
|
+
}
|
|
1322
|
+
else {
|
|
1323
|
+
return;
|
|
1324
|
+
}
|
|
1325
|
+
}
|
|
1258
1326
|
this.destroySubFields(fieldElem);
|
|
1259
1327
|
this.subFieldElem = null;
|
|
1260
1328
|
this.isNotValueChange = true;
|
|
1261
|
-
var column = this.getColumn(args.value);
|
|
1262
1329
|
if (column && column.ruleTemplate) {
|
|
1263
1330
|
this.templateChange(args.element, column.field, 'field');
|
|
1264
1331
|
}
|
|
@@ -1277,12 +1344,23 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1277
1344
|
};
|
|
1278
1345
|
QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {
|
|
1279
1346
|
if (!ddlArgs.itemData) {
|
|
1280
|
-
|
|
1347
|
+
if (this.fieldMode === "DropdownTree") {
|
|
1348
|
+
var ddt = getComponent(ddlArgs.element, 'dropdowntree');
|
|
1349
|
+
if (ddt.value == null) {
|
|
1350
|
+
return;
|
|
1351
|
+
}
|
|
1352
|
+
}
|
|
1353
|
+
else {
|
|
1354
|
+
return;
|
|
1355
|
+
}
|
|
1281
1356
|
}
|
|
1282
1357
|
var tempRule = {};
|
|
1283
1358
|
var filterElem = closest(ddlArgs.element, '.e-rule-filter');
|
|
1284
1359
|
filterElem = filterElem ? filterElem : closest(ddlArgs.element, '.e-rule-sub-filter');
|
|
1285
1360
|
var ddlObj = getComponent(ddlArgs.element, 'dropdownlist');
|
|
1361
|
+
if (this.fieldMode === 'DropdownTree' && filterElem != null) {
|
|
1362
|
+
ddlObj = getComponent(ddlArgs.element, 'dropdowntree');
|
|
1363
|
+
}
|
|
1286
1364
|
var element = closest(ddlArgs.element, '.e-group-container');
|
|
1287
1365
|
var groupID = element.id.replace(this.element.id + '_', '');
|
|
1288
1366
|
this.changeFilter(filterElem, ddlObj, groupID, rule, tempRule, ddlArgs);
|
|
@@ -1290,11 +1368,18 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1290
1368
|
QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {
|
|
1291
1369
|
var _this = this;
|
|
1292
1370
|
if (flt) {
|
|
1293
|
-
var ddlValue =
|
|
1294
|
-
this.
|
|
1371
|
+
var ddlValue = void 0;
|
|
1372
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
1373
|
+
ddlValue = (dl.value[0]);
|
|
1374
|
+
}
|
|
1375
|
+
else {
|
|
1376
|
+
ddlValue = this.isImportRules ? this.GetRootColumnName(dl.value) : dl.value;
|
|
1377
|
+
}
|
|
1378
|
+
this.selectedColumn = this.getColumn(ddlValue);
|
|
1295
1379
|
var ruleElem = closest(flt, '.e-rule-container');
|
|
1296
1380
|
var ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
1297
|
-
var eventsArgs = { groupID: grID, ruleID: ruleID, selectedField:
|
|
1381
|
+
var eventsArgs = { groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?
|
|
1382
|
+
dl.value[0] : dl.value, cancel: false, type: 'field' };
|
|
1298
1383
|
if (!this.isImportRules) {
|
|
1299
1384
|
this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {
|
|
1300
1385
|
_this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);
|
|
@@ -1346,7 +1431,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1346
1431
|
if (ruleElem.querySelector('.e-template')) {
|
|
1347
1432
|
rule.value = '';
|
|
1348
1433
|
}
|
|
1349
|
-
if (this.selectedColumn.type === 'object') {
|
|
1434
|
+
if (this.selectedColumn.type === 'object' && this.fieldMode === 'Default') {
|
|
1350
1435
|
tempRule.type = this.selectedColumn.columns[0].type;
|
|
1351
1436
|
while (this.selectedColumn.columns) {
|
|
1352
1437
|
this.createSubFields(filterElem, rule, tempRule, ddlArgs);
|
|
@@ -1469,9 +1554,16 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1469
1554
|
addClass([operatorElem], 'e-operator');
|
|
1470
1555
|
if (operatorElem.childElementCount) {
|
|
1471
1556
|
ddlObj = getComponent(operatorElem.querySelector('.e-dropdownlist'), 'dropdownlist');
|
|
1472
|
-
var fieldObj = getComponent(filterElem.querySelector('.e-dropdownlist'), 'dropdownlist');
|
|
1473
1557
|
tempRule.operator = ddlObj.value;
|
|
1474
|
-
|
|
1558
|
+
var fieldObj = void 0;
|
|
1559
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
1560
|
+
fieldObj = getComponent(filterElem.querySelector('.e-dropdowntree'), 'dropdowntree');
|
|
1561
|
+
}
|
|
1562
|
+
else {
|
|
1563
|
+
fieldObj = getComponent(filterElem.querySelector('.e-dropdownlist'), 'dropdownlist');
|
|
1564
|
+
}
|
|
1565
|
+
tempRule.type = this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]).type :
|
|
1566
|
+
this.getColumn(fieldObj.value).type;
|
|
1475
1567
|
var itemData = ddlArgs.itemData;
|
|
1476
1568
|
this.renderValues(operatorElem, itemData, ddlArgs.previousItemData, true, rule, tempRule, ddlArgs.element);
|
|
1477
1569
|
}
|
|
@@ -1778,8 +1870,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1778
1870
|
QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
|
|
1779
1871
|
var container = closest(target, '.e-rule-container');
|
|
1780
1872
|
var tempElements = container.querySelectorAll('.e-template');
|
|
1781
|
-
var
|
|
1782
|
-
var
|
|
1873
|
+
var filterElem = container.querySelector('.e-rule-filter .e-filter-input');
|
|
1874
|
+
var ddlObj = this.fieldMode === 'DropdownTree' ? getComponent(filterElem, 'dropdowntree')
|
|
1875
|
+
: getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');
|
|
1876
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);
|
|
1783
1877
|
if (typeof itemData.template === 'string' || itemData.template.write === undefined) {
|
|
1784
1878
|
var args = { rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,
|
|
1785
1879
|
requestType: 'value-template-create' };
|
|
@@ -1799,7 +1893,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1799
1893
|
};
|
|
1800
1894
|
QueryBuilder.prototype.getItemData = function (parentId) {
|
|
1801
1895
|
var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
|
|
1802
|
-
|
|
1896
|
+
if (this.fieldMode === "DropdownTree") {
|
|
1897
|
+
fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
|
|
1898
|
+
}
|
|
1899
|
+
return this.fieldMode === "DropdownTree" ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
|
|
1803
1900
|
};
|
|
1804
1901
|
QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {
|
|
1805
1902
|
var itemData = this.getItemData(parentId);
|
|
@@ -1891,8 +1988,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1891
1988
|
input.dataBind();
|
|
1892
1989
|
}
|
|
1893
1990
|
else {
|
|
1894
|
-
|
|
1895
|
-
itemData = this.getColumn(fieldObj.value);
|
|
1991
|
+
itemData = columnData;
|
|
1896
1992
|
var min = (itemData.validation && itemData.validation.min) ? itemData.validation.min : 0;
|
|
1897
1993
|
var max = (itemData.validation && itemData.validation.max) ? itemData.validation.max : Number.MAX_VALUE;
|
|
1898
1994
|
var format = itemData.format ? itemData.format : 'n';
|
|
@@ -2138,10 +2234,11 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2138
2234
|
QueryBuilder.prototype.renderValues = function (target, itemData, prevItemData, isRender, rule, tempRule, element) {
|
|
2139
2235
|
var subFldElem = target.previousElementSibling;
|
|
2140
2236
|
var filtElem = subFldElem.getElementsByTagName('input')[0];
|
|
2141
|
-
var filtObj = getComponent(filtElem, '
|
|
2142
|
-
|
|
2143
|
-
|
|
2144
|
-
|
|
2237
|
+
var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')
|
|
2238
|
+
: getComponent(filtElem, 'dropdownlist');
|
|
2239
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
|
|
2240
|
+
: this.getColumn(filtObj.value);
|
|
2241
|
+
this.selectedRule = column;
|
|
2145
2242
|
if (isRender) {
|
|
2146
2243
|
var ddlObj = getComponent(target.querySelector('input'), 'dropdownlist');
|
|
2147
2244
|
itemData = element.id.indexOf('operator') > -1 ? itemData : this.selectedRule;
|
|
@@ -2382,15 +2479,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2382
2479
|
if (this.subFieldElem) {
|
|
2383
2480
|
target = this.subFieldElem;
|
|
2384
2481
|
}
|
|
2385
|
-
dropDownObj = getComponent(target, '
|
|
2386
|
-
|
|
2482
|
+
dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :
|
|
2483
|
+
getComponent(target, 'dropdownlist');
|
|
2484
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
|
|
2485
|
+
: this.getColumn(dropDownObj.value);
|
|
2387
2486
|
if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
|
|
2388
2487
|
if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
|
|
2389
2488
|
|| (operator.indexOf('empty') > -1)) {
|
|
2390
2489
|
rule.rules[index].value = '';
|
|
2391
2490
|
}
|
|
2392
2491
|
}
|
|
2393
|
-
this.selectedColumn =
|
|
2492
|
+
this.selectedColumn = this.getColumn(this.selectedColumn.field);
|
|
2394
2493
|
rule.rules[index].field = this.selectedColumn.field;
|
|
2395
2494
|
rule.rules[index].type = this.selectedColumn.type;
|
|
2396
2495
|
rule.rules[index].label = this.selectedColumn.label;
|
|
@@ -2523,8 +2622,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2523
2622
|
}
|
|
2524
2623
|
}
|
|
2525
2624
|
else if (target.className.indexOf('e-datepicker') > -1) {
|
|
2526
|
-
var
|
|
2527
|
-
var format = this.getFormat(this.getColumn(ddlInst.value).format);
|
|
2625
|
+
var format = this.getFormat(this.getColumn(this.selectedColumn.field).format);
|
|
2528
2626
|
if (format.type) {
|
|
2529
2627
|
if (arrOperator.indexOf(oper) > -1) {
|
|
2530
2628
|
if (typeof rule.rules[index].value === 'string') {
|
|
@@ -2642,7 +2740,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2642
2740
|
element = this.element.querySelectorAll('.e-rule-filter .e-control:not(.e-tooltip)');
|
|
2643
2741
|
len = element.length;
|
|
2644
2742
|
for (i = 0; i < len; i++) {
|
|
2645
|
-
getComponent(element[i], 'dropdownlist')
|
|
2743
|
+
if (getComponent(element[i], 'dropdownlist')) {
|
|
2744
|
+
getComponent(element[i], 'dropdownlist').destroy();
|
|
2745
|
+
}
|
|
2746
|
+
else {
|
|
2747
|
+
getComponent(element[i], 'dropdowntree').destroy();
|
|
2748
|
+
}
|
|
2646
2749
|
detach(element[i]);
|
|
2647
2750
|
}
|
|
2648
2751
|
tooltip = this.element.querySelectorAll('.e-rule-operator .e-control.e-tooltip');
|
|
@@ -2652,8 +2755,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2652
2755
|
element = this.element.querySelectorAll('.e-rule-operator .e-control:not(.e-tooltip)');
|
|
2653
2756
|
len = element.length;
|
|
2654
2757
|
for (i = 0; i < len; i++) {
|
|
2655
|
-
getComponent(element[i], 'dropdownlist')
|
|
2656
|
-
|
|
2758
|
+
if (getComponent(element[i], 'dropdownlist')) {
|
|
2759
|
+
getComponent(element[i], 'dropdownlist').destroy();
|
|
2760
|
+
detach(element[i]);
|
|
2761
|
+
}
|
|
2657
2762
|
}
|
|
2658
2763
|
tooltip = this.element.querySelectorAll('.e-rule-value .e-control.e-tooltip');
|
|
2659
2764
|
for (i = 0; i < tooltip.length; i++) {
|
|
@@ -2795,7 +2900,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2795
2900
|
}
|
|
2796
2901
|
});
|
|
2797
2902
|
var textElem = this.createElement('textarea', { attrs: { class: 'e-summary-text', readonly: 'true' }, styles: 'max-height:500px' });
|
|
2798
|
-
var editElem = this.createElement('button', { attrs: { class: 'e-edit-rule e-css e-btn e-small e-flat e-primary' } });
|
|
2903
|
+
var editElem = this.createElement('button', { attrs: { type: 'button', class: 'e-edit-rule e-css e-btn e-small e-flat e-primary' } });
|
|
2799
2904
|
var divElem = this.createElement('div', { attrs: { class: 'e-summary-btndiv' } });
|
|
2800
2905
|
contentElem.appendChild(textElem);
|
|
2801
2906
|
textElem.textContent = this.getSqlFromRules(this.rule);
|
|
@@ -3401,6 +3506,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3401
3506
|
return rule;
|
|
3402
3507
|
};
|
|
3403
3508
|
QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {
|
|
3509
|
+
if (isNullOrUndefined(rule)) {
|
|
3510
|
+
return null;
|
|
3511
|
+
}
|
|
3404
3512
|
var orgRule;
|
|
3405
3513
|
if (rule.rules && rule.rules.length && (Object.keys(rule.rules[0]).length > 6 || isValidRule)) {
|
|
3406
3514
|
var jLen = rule.rules.length;
|
|
@@ -4404,14 +4512,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4404
4512
|
return operators[operator];
|
|
4405
4513
|
};
|
|
4406
4514
|
QueryBuilder.prototype.getTypeFromColumn = function (rules) {
|
|
4407
|
-
var columnData = this.
|
|
4408
|
-
|
|
4409
|
-
if (columnData[i].field === rules.field) {
|
|
4410
|
-
rules.type = columnData[i].type;
|
|
4411
|
-
break;
|
|
4412
|
-
}
|
|
4413
|
-
}
|
|
4414
|
-
return rules.type;
|
|
4515
|
+
var columnData = this.getColumn(rules.field);
|
|
4516
|
+
return columnData.type;
|
|
4415
4517
|
};
|
|
4416
4518
|
QueryBuilder.prototype.processParser = function (parser, rules, levelColl) {
|
|
4417
4519
|
var j;
|
|
@@ -4426,6 +4528,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4426
4528
|
var lLen;
|
|
4427
4529
|
var grpCount;
|
|
4428
4530
|
var operator;
|
|
4531
|
+
var isLeftOpened = false;
|
|
4429
4532
|
for (var i = 0, iLen = parser.length; i < iLen; i++) {
|
|
4430
4533
|
if (parser[i][0] === 'Literal') {
|
|
4431
4534
|
rule = { label: parser[i][1], field: parser[i][1] };
|
|
@@ -4444,8 +4547,12 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4444
4547
|
j = i + 1;
|
|
4445
4548
|
jLen = iLen;
|
|
4446
4549
|
for (j = i + 1; j < jLen; j++) {
|
|
4447
|
-
if (parser[j][0] === '
|
|
4550
|
+
if (operator.indexOf('between') < 0 && parser[j][0] === 'Left') {
|
|
4551
|
+
isLeftOpened = true;
|
|
4552
|
+
}
|
|
4553
|
+
else if (parser[j][0] === 'Right' && isLeftOpened) {
|
|
4448
4554
|
i = j;
|
|
4555
|
+
isLeftOpened = false;
|
|
4449
4556
|
break;
|
|
4450
4557
|
}
|
|
4451
4558
|
else {
|
|
@@ -4582,6 +4689,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4582
4689
|
__decorate([
|
|
4583
4690
|
Property(false)
|
|
4584
4691
|
], QueryBuilder.prototype, "allowValidation", void 0);
|
|
4692
|
+
__decorate([
|
|
4693
|
+
Property('Default')
|
|
4694
|
+
], QueryBuilder.prototype, "fieldMode", void 0);
|
|
4585
4695
|
__decorate([
|
|
4586
4696
|
Property([])
|
|
4587
4697
|
], QueryBuilder.prototype, "columns", void 0);
|