@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
|
@@ -36,7 +36,7 @@ import { Property, ChildProperty, Complex, L10n, closest, extend, isNullOrUndefi
|
|
|
36
36
|
import { getInstance, addClass, removeClass, rippleEffect, detach, classList } from '@syncfusion/ej2-base';
|
|
37
37
|
import { Internationalization, getUniqueID, select } from '@syncfusion/ej2-base';
|
|
38
38
|
import { Button, RadioButton } from '@syncfusion/ej2-buttons';
|
|
39
|
-
import { DropDownList, CheckBoxSelection } from '@syncfusion/ej2-dropdowns';
|
|
39
|
+
import { DropDownList, CheckBoxSelection, DropDownTree } from '@syncfusion/ej2-dropdowns';
|
|
40
40
|
import { MultiSelect } from '@syncfusion/ej2-dropdowns';
|
|
41
41
|
import { Event, EventHandler, getValue, Animation } from '@syncfusion/ej2-base';
|
|
42
42
|
import { Query, Predicate, DataManager, Deferred } from '@syncfusion/ej2-data';
|
|
@@ -334,7 +334,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
334
334
|
};
|
|
335
335
|
QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
|
|
336
336
|
for (var i = 0; i < col.length; i++) {
|
|
337
|
-
|
|
337
|
+
if (this.separator != '' && col[i].field.indexOf(this.separator) < 0) {
|
|
338
|
+
col[i].field = field ? field + this.separator + col[i].field : col[i].field;
|
|
339
|
+
}
|
|
338
340
|
if (col[i].operators) {
|
|
339
341
|
this.updateCustomOperator(col[i]);
|
|
340
342
|
}
|
|
@@ -659,28 +661,57 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
659
661
|
this.updateAddedRule(trgt, rule, newRule, isRlTmp, pId);
|
|
660
662
|
}
|
|
661
663
|
if (!column || (column && !column.ruleTemplate)) {
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
|
|
672
|
-
|
|
664
|
+
if (this.fieldMode === 'Default') {
|
|
665
|
+
var ddlField = void 0;
|
|
666
|
+
var ddlValue = this.isImportRules ? this.GetRootColumnName(rule.field) : rule.field;
|
|
667
|
+
ddlField = {
|
|
668
|
+
dataSource: this.columns,
|
|
669
|
+
fields: this.fields, placeholder: this.l10n.getConstant('SelectField'),
|
|
670
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'),
|
|
671
|
+
change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this)
|
|
672
|
+
};
|
|
673
|
+
if (this.fieldModel) {
|
|
674
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
675
|
+
}
|
|
676
|
+
dropDownList = new DropDownList(ddlField);
|
|
677
|
+
dropDownList.appendTo('#' + ruleElem.id + '_filterkey');
|
|
678
|
+
var ddlVal = this.isImportRules ?
|
|
679
|
+
this.GetRootColumnName(rule.field) : dropDownList.value;
|
|
680
|
+
this.selectedColumn = dropDownList.getDataByValue(ddlVal);
|
|
681
|
+
if (Object.keys(rule).length) {
|
|
682
|
+
this.changeRule(rule, {
|
|
683
|
+
element: dropDownList.element, itemData: this.selectedColumn
|
|
684
|
+
});
|
|
685
|
+
}
|
|
673
686
|
}
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
this.
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
687
|
+
else {
|
|
688
|
+
var dropdowntree = void 0;
|
|
689
|
+
var ddlField = void 0;
|
|
690
|
+
var ddlValue = this.isImportRules ? rule.field : rule.field;
|
|
691
|
+
ddlField = {
|
|
692
|
+
fields: { dataSource: this.columns,
|
|
693
|
+
value: "field", text: "label", child: 'columns', expanded: "expanded" },
|
|
694
|
+
placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
|
|
695
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
|
|
696
|
+
change: this.changeField.bind(this), value: this.isImportRules ? [ddlValue] : null,
|
|
697
|
+
open: this.popupOpen.bind(this)
|
|
698
|
+
};
|
|
699
|
+
if (this.fieldModel) {
|
|
700
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
701
|
+
}
|
|
702
|
+
dropdowntree = new DropDownTree(ddlField);
|
|
703
|
+
dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
|
|
704
|
+
if (!isNullOrUndefined(dropdowntree.value)) {
|
|
705
|
+
dropdowntree.element.value = dropdowntree.value[0];
|
|
706
|
+
}
|
|
707
|
+
var ddlVal = this.isImportRules ?
|
|
708
|
+
this.GetRootColumnName(rule.field) : dropdowntree.value;
|
|
709
|
+
this.selectedColumn = this.getColumn(ddlVal);
|
|
710
|
+
if (Object.keys(rule).length) {
|
|
711
|
+
this.changeRule(rule, {
|
|
712
|
+
element: dropdowntree.element, itemData: this.selectedColumn
|
|
713
|
+
});
|
|
714
|
+
}
|
|
684
715
|
}
|
|
685
716
|
}
|
|
686
717
|
ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
@@ -908,7 +939,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
908
939
|
else {
|
|
909
940
|
clsName = 'e-removerule e-rule-delete e-css e-btn e-small e-button-hide';
|
|
910
941
|
}
|
|
911
|
-
var delBtnElem = this.createElement('button', { attrs: { class: clsName } });
|
|
942
|
+
var delBtnElem = this.createElement('button', { attrs: { type: 'button', class: clsName } });
|
|
912
943
|
tempElem.appendChild(delBtnElem);
|
|
913
944
|
fieldElem.appendChild(tempElem);
|
|
914
945
|
ruleElem.appendChild(fieldElem);
|
|
@@ -960,7 +991,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
960
991
|
}
|
|
961
992
|
if (isGroup) {
|
|
962
993
|
var clsName = this.showButtons.groupDelete ? 'e-deletegroup' : 'e-deletegroup e-button-hide';
|
|
963
|
-
dltGroupBtn = this.createElement('button', { attrs: { class: clsName } });
|
|
994
|
+
dltGroupBtn = this.createElement('button', { attrs: { type: 'button', class: clsName } });
|
|
964
995
|
var button = new Button({ iconCss: 'e-icons e-delete-icon', cssClass: 'e-small e-round' });
|
|
965
996
|
button.appendTo(dltGroupBtn);
|
|
966
997
|
dltGroupBtn.setAttribute('title', this.l10n.getConstant('DeleteGroup'));
|
|
@@ -1036,7 +1067,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1036
1067
|
var groupHdr = groupElem.querySelector('.e-group-header');
|
|
1037
1068
|
if (this.headerTemplate) {
|
|
1038
1069
|
args = { requestType: 'header-template-initialize', ruleID: groupElem.id,
|
|
1039
|
-
notCondition: this.enableNotCondition ? not : undefined, condition: condition, rule: rule };
|
|
1070
|
+
notCondition: this.enableNotCondition ? not : undefined, condition: condition, rule: this.getRuleCollection(rule, true) };
|
|
1040
1071
|
this.trigger('actionBegin', args);
|
|
1041
1072
|
this.headerFn = this.templateParser(this.headerTemplate);
|
|
1042
1073
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -1190,12 +1221,17 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1190
1221
|
QueryBuilder.prototype.changeValue = function (i, args) {
|
|
1191
1222
|
var _this = this;
|
|
1192
1223
|
var element;
|
|
1193
|
-
|
|
1224
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1225
|
+
if (args.element && args.element.classList.contains('e-multiselect')) {
|
|
1226
|
+
var multiSelectArgs = args;
|
|
1227
|
+
element = multiSelectArgs.element;
|
|
1228
|
+
}
|
|
1229
|
+
else if (args.event) {
|
|
1194
1230
|
element = args.event.target;
|
|
1195
1231
|
}
|
|
1196
1232
|
else {
|
|
1197
|
-
|
|
1198
|
-
element =
|
|
1233
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1234
|
+
element = args.element;
|
|
1199
1235
|
}
|
|
1200
1236
|
if (element.className.indexOf('e-day') > -1 || element.className.indexOf('e-today') > -1 || element.className.indexOf('e-cell') > -1) {
|
|
1201
1237
|
var calenderArgs = args;
|
|
@@ -1264,10 +1300,41 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1264
1300
|
QueryBuilder.prototype.changeField = function (args) {
|
|
1265
1301
|
if (args.isInteracted) {
|
|
1266
1302
|
var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
|
|
1303
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);
|
|
1304
|
+
if (this.fieldMode === 'DropdownTree' && fieldElem != null) {
|
|
1305
|
+
var ddtElem = fieldElem.querySelector(".e-control");
|
|
1306
|
+
var ddt = getComponent(ddtElem, 'dropdowntree');
|
|
1307
|
+
if (column) {
|
|
1308
|
+
if (column.type == 'object') {
|
|
1309
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1310
|
+
ddt.value = args.oldValue;
|
|
1311
|
+
ddt.dataBind();
|
|
1312
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1313
|
+
if (isNullOrUndefined(args.oldValue)) {
|
|
1314
|
+
ddtElem.value = "";
|
|
1315
|
+
}
|
|
1316
|
+
else {
|
|
1317
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1318
|
+
ddtElem.value = args.oldValue[0];
|
|
1319
|
+
}
|
|
1320
|
+
return;
|
|
1321
|
+
}
|
|
1322
|
+
else {
|
|
1323
|
+
if (!isNullOrUndefined(args.value[0])) {
|
|
1324
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1325
|
+
ddt.value = args.value[0];
|
|
1326
|
+
ddt.dataBind();
|
|
1327
|
+
ddtElem.value = args.value[0];
|
|
1328
|
+
}
|
|
1329
|
+
}
|
|
1330
|
+
}
|
|
1331
|
+
else {
|
|
1332
|
+
return;
|
|
1333
|
+
}
|
|
1334
|
+
}
|
|
1267
1335
|
this.destroySubFields(fieldElem);
|
|
1268
1336
|
this.subFieldElem = null;
|
|
1269
1337
|
this.isNotValueChange = true;
|
|
1270
|
-
var column = this.getColumn(args.value);
|
|
1271
1338
|
if (column && column.ruleTemplate) {
|
|
1272
1339
|
this.templateChange(args.element, column.field, 'field');
|
|
1273
1340
|
}
|
|
@@ -1286,12 +1353,23 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1286
1353
|
};
|
|
1287
1354
|
QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {
|
|
1288
1355
|
if (!ddlArgs.itemData) {
|
|
1289
|
-
|
|
1356
|
+
if (this.fieldMode === "DropdownTree") {
|
|
1357
|
+
var ddt = getComponent(ddlArgs.element, 'dropdowntree');
|
|
1358
|
+
if (ddt.value == null) {
|
|
1359
|
+
return;
|
|
1360
|
+
}
|
|
1361
|
+
}
|
|
1362
|
+
else {
|
|
1363
|
+
return;
|
|
1364
|
+
}
|
|
1290
1365
|
}
|
|
1291
1366
|
var tempRule = {};
|
|
1292
1367
|
var filterElem = closest(ddlArgs.element, '.e-rule-filter');
|
|
1293
1368
|
filterElem = filterElem ? filterElem : closest(ddlArgs.element, '.e-rule-sub-filter');
|
|
1294
1369
|
var ddlObj = getComponent(ddlArgs.element, 'dropdownlist');
|
|
1370
|
+
if (this.fieldMode === 'DropdownTree' && filterElem != null) {
|
|
1371
|
+
ddlObj = getComponent(ddlArgs.element, 'dropdowntree');
|
|
1372
|
+
}
|
|
1295
1373
|
var element = closest(ddlArgs.element, '.e-group-container');
|
|
1296
1374
|
var groupID = element.id.replace(this.element.id + '_', '');
|
|
1297
1375
|
this.changeFilter(filterElem, ddlObj, groupID, rule, tempRule, ddlArgs);
|
|
@@ -1299,11 +1377,18 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1299
1377
|
QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {
|
|
1300
1378
|
var _this = this;
|
|
1301
1379
|
if (flt) {
|
|
1302
|
-
var ddlValue =
|
|
1303
|
-
this.
|
|
1380
|
+
var ddlValue = void 0;
|
|
1381
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
1382
|
+
ddlValue = (dl.value[0]);
|
|
1383
|
+
}
|
|
1384
|
+
else {
|
|
1385
|
+
ddlValue = this.isImportRules ? this.GetRootColumnName(dl.value) : dl.value;
|
|
1386
|
+
}
|
|
1387
|
+
this.selectedColumn = this.getColumn(ddlValue);
|
|
1304
1388
|
var ruleElem = closest(flt, '.e-rule-container');
|
|
1305
1389
|
var ruleID = ruleElem.id.replace(this.element.id + '_', '');
|
|
1306
|
-
var eventsArgs = { groupID: grID, ruleID: ruleID, selectedField:
|
|
1390
|
+
var eventsArgs = { groupID: grID, ruleID: ruleID, selectedField: this.fieldMode === 'DropdownTree' ?
|
|
1391
|
+
dl.value[0] : dl.value, cancel: false, type: 'field' };
|
|
1307
1392
|
if (!this.isImportRules) {
|
|
1308
1393
|
this.trigger('beforeChange', eventsArgs, function (observedChangeArgs) {
|
|
1309
1394
|
_this.fieldChangeSuccess(observedChangeArgs, tmpRl, flt, rl, dArg);
|
|
@@ -1355,7 +1440,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1355
1440
|
if (ruleElem.querySelector('.e-template')) {
|
|
1356
1441
|
rule.value = '';
|
|
1357
1442
|
}
|
|
1358
|
-
if (this.selectedColumn.type === 'object') {
|
|
1443
|
+
if (this.selectedColumn.type === 'object' && this.fieldMode === 'Default') {
|
|
1359
1444
|
tempRule.type = this.selectedColumn.columns[0].type;
|
|
1360
1445
|
while (this.selectedColumn.columns) {
|
|
1361
1446
|
this.createSubFields(filterElem, rule, tempRule, ddlArgs);
|
|
@@ -1478,9 +1563,16 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1478
1563
|
addClass([operatorElem], 'e-operator');
|
|
1479
1564
|
if (operatorElem.childElementCount) {
|
|
1480
1565
|
ddlObj = getComponent(operatorElem.querySelector('.e-dropdownlist'), 'dropdownlist');
|
|
1481
|
-
var fieldObj = getComponent(filterElem.querySelector('.e-dropdownlist'), 'dropdownlist');
|
|
1482
1566
|
tempRule.operator = ddlObj.value;
|
|
1483
|
-
|
|
1567
|
+
var fieldObj = void 0;
|
|
1568
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
1569
|
+
fieldObj = getComponent(filterElem.querySelector('.e-dropdowntree'), 'dropdowntree');
|
|
1570
|
+
}
|
|
1571
|
+
else {
|
|
1572
|
+
fieldObj = getComponent(filterElem.querySelector('.e-dropdownlist'), 'dropdownlist');
|
|
1573
|
+
}
|
|
1574
|
+
tempRule.type = this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]).type :
|
|
1575
|
+
this.getColumn(fieldObj.value).type;
|
|
1484
1576
|
var itemData = ddlArgs.itemData;
|
|
1485
1577
|
this.renderValues(operatorElem, itemData, ddlArgs.previousItemData, true, rule, tempRule, ddlArgs.element);
|
|
1486
1578
|
}
|
|
@@ -1787,8 +1879,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1787
1879
|
QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
|
|
1788
1880
|
var container = closest(target, '.e-rule-container');
|
|
1789
1881
|
var tempElements = container.querySelectorAll('.e-template');
|
|
1790
|
-
var
|
|
1791
|
-
var
|
|
1882
|
+
var filterElem = container.querySelector('.e-rule-filter .e-filter-input');
|
|
1883
|
+
var ddlObj = this.fieldMode === 'DropdownTree' ? getComponent(filterElem, 'dropdowntree')
|
|
1884
|
+
: getComponent(container.querySelector('.e-rule-filter .e-filter-input'), 'dropdownlist');
|
|
1885
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(ddlObj.value[0]) : this.getColumn(ddlObj.value);
|
|
1792
1886
|
if (typeof itemData.template === 'string' || itemData.template.write === undefined) {
|
|
1793
1887
|
var args = { rule: rule, ruleID: container.id, operator: tempRule.operator, field: column.field,
|
|
1794
1888
|
requestType: 'value-template-create' };
|
|
@@ -1808,7 +1902,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1808
1902
|
};
|
|
1809
1903
|
QueryBuilder.prototype.getItemData = function (parentId) {
|
|
1810
1904
|
var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
|
|
1811
|
-
|
|
1905
|
+
if (this.fieldMode === "DropdownTree") {
|
|
1906
|
+
fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
|
|
1907
|
+
}
|
|
1908
|
+
return this.fieldMode === "DropdownTree" ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
|
|
1812
1909
|
};
|
|
1813
1910
|
QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {
|
|
1814
1911
|
var itemData = this.getItemData(parentId);
|
|
@@ -1900,8 +1997,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1900
1997
|
input.dataBind();
|
|
1901
1998
|
}
|
|
1902
1999
|
else {
|
|
1903
|
-
|
|
1904
|
-
itemData = this.getColumn(fieldObj.value);
|
|
2000
|
+
itemData = columnData;
|
|
1905
2001
|
var min = (itemData.validation && itemData.validation.min) ? itemData.validation.min : 0;
|
|
1906
2002
|
var max = (itemData.validation && itemData.validation.max) ? itemData.validation.max : Number.MAX_VALUE;
|
|
1907
2003
|
var format = itemData.format ? itemData.format : 'n';
|
|
@@ -2147,10 +2243,11 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2147
2243
|
QueryBuilder.prototype.renderValues = function (target, itemData, prevItemData, isRender, rule, tempRule, element) {
|
|
2148
2244
|
var subFldElem = target.previousElementSibling;
|
|
2149
2245
|
var filtElem = subFldElem.getElementsByTagName('input')[0];
|
|
2150
|
-
var filtObj = getComponent(filtElem, '
|
|
2151
|
-
|
|
2152
|
-
|
|
2153
|
-
|
|
2246
|
+
var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')
|
|
2247
|
+
: getComponent(filtElem, 'dropdownlist');
|
|
2248
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
|
|
2249
|
+
: this.getColumn(filtObj.value);
|
|
2250
|
+
this.selectedRule = column;
|
|
2154
2251
|
if (isRender) {
|
|
2155
2252
|
var ddlObj = getComponent(target.querySelector('input'), 'dropdownlist');
|
|
2156
2253
|
itemData = element.id.indexOf('operator') > -1 ? itemData : this.selectedRule;
|
|
@@ -2391,15 +2488,17 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2391
2488
|
if (this.subFieldElem) {
|
|
2392
2489
|
target = this.subFieldElem;
|
|
2393
2490
|
}
|
|
2394
|
-
dropDownObj = getComponent(target, '
|
|
2395
|
-
|
|
2491
|
+
dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :
|
|
2492
|
+
getComponent(target, 'dropdownlist');
|
|
2493
|
+
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
|
|
2494
|
+
: this.getColumn(dropDownObj.value);
|
|
2396
2495
|
if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
|
|
2397
2496
|
if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
|
|
2398
2497
|
|| (operator.indexOf('empty') > -1)) {
|
|
2399
2498
|
rule.rules[index].value = '';
|
|
2400
2499
|
}
|
|
2401
2500
|
}
|
|
2402
|
-
this.selectedColumn =
|
|
2501
|
+
this.selectedColumn = this.getColumn(this.selectedColumn.field);
|
|
2403
2502
|
rule.rules[index].field = this.selectedColumn.field;
|
|
2404
2503
|
rule.rules[index].type = this.selectedColumn.type;
|
|
2405
2504
|
rule.rules[index].label = this.selectedColumn.label;
|
|
@@ -2532,8 +2631,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2532
2631
|
}
|
|
2533
2632
|
}
|
|
2534
2633
|
else if (target.className.indexOf('e-datepicker') > -1) {
|
|
2535
|
-
var
|
|
2536
|
-
var format = this.getFormat(this.getColumn(ddlInst.value).format);
|
|
2634
|
+
var format = this.getFormat(this.getColumn(this.selectedColumn.field).format);
|
|
2537
2635
|
if (format.type) {
|
|
2538
2636
|
if (arrOperator.indexOf(oper) > -1) {
|
|
2539
2637
|
if (typeof rule.rules[index].value === 'string') {
|
|
@@ -2651,7 +2749,12 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2651
2749
|
element = this.element.querySelectorAll('.e-rule-filter .e-control:not(.e-tooltip)');
|
|
2652
2750
|
len = element.length;
|
|
2653
2751
|
for (i = 0; i < len; i++) {
|
|
2654
|
-
getComponent(element[i], 'dropdownlist')
|
|
2752
|
+
if (getComponent(element[i], 'dropdownlist')) {
|
|
2753
|
+
getComponent(element[i], 'dropdownlist').destroy();
|
|
2754
|
+
}
|
|
2755
|
+
else {
|
|
2756
|
+
getComponent(element[i], 'dropdowntree').destroy();
|
|
2757
|
+
}
|
|
2655
2758
|
detach(element[i]);
|
|
2656
2759
|
}
|
|
2657
2760
|
tooltip = this.element.querySelectorAll('.e-rule-operator .e-control.e-tooltip');
|
|
@@ -2661,8 +2764,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2661
2764
|
element = this.element.querySelectorAll('.e-rule-operator .e-control:not(.e-tooltip)');
|
|
2662
2765
|
len = element.length;
|
|
2663
2766
|
for (i = 0; i < len; i++) {
|
|
2664
|
-
getComponent(element[i], 'dropdownlist')
|
|
2665
|
-
|
|
2767
|
+
if (getComponent(element[i], 'dropdownlist')) {
|
|
2768
|
+
getComponent(element[i], 'dropdownlist').destroy();
|
|
2769
|
+
detach(element[i]);
|
|
2770
|
+
}
|
|
2666
2771
|
}
|
|
2667
2772
|
tooltip = this.element.querySelectorAll('.e-rule-value .e-control.e-tooltip');
|
|
2668
2773
|
for (i = 0; i < tooltip.length; i++) {
|
|
@@ -2804,7 +2909,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2804
2909
|
}
|
|
2805
2910
|
});
|
|
2806
2911
|
var textElem = this.createElement('textarea', { attrs: { class: 'e-summary-text', readonly: 'true' }, styles: 'max-height:500px' });
|
|
2807
|
-
var editElem = this.createElement('button', { attrs: { class: 'e-edit-rule e-css e-btn e-small e-flat e-primary' } });
|
|
2912
|
+
var editElem = this.createElement('button', { attrs: { type: 'button', class: 'e-edit-rule e-css e-btn e-small e-flat e-primary' } });
|
|
2808
2913
|
var divElem = this.createElement('div', { attrs: { class: 'e-summary-btndiv' } });
|
|
2809
2914
|
contentElem.appendChild(textElem);
|
|
2810
2915
|
textElem.textContent = this.getSqlFromRules(this.rule);
|
|
@@ -3410,6 +3515,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3410
3515
|
return rule;
|
|
3411
3516
|
};
|
|
3412
3517
|
QueryBuilder.prototype.getRuleCollection = function (rule, isValidRule) {
|
|
3518
|
+
if (isNullOrUndefined(rule)) {
|
|
3519
|
+
return null;
|
|
3520
|
+
}
|
|
3413
3521
|
var orgRule;
|
|
3414
3522
|
if (rule.rules && rule.rules.length && (Object.keys(rule.rules[0]).length > 6 || isValidRule)) {
|
|
3415
3523
|
var jLen = rule.rules.length;
|
|
@@ -4413,14 +4521,8 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4413
4521
|
return operators[operator];
|
|
4414
4522
|
};
|
|
4415
4523
|
QueryBuilder.prototype.getTypeFromColumn = function (rules) {
|
|
4416
|
-
var columnData = this.
|
|
4417
|
-
|
|
4418
|
-
if (columnData[i].field === rules.field) {
|
|
4419
|
-
rules.type = columnData[i].type;
|
|
4420
|
-
break;
|
|
4421
|
-
}
|
|
4422
|
-
}
|
|
4423
|
-
return rules.type;
|
|
4524
|
+
var columnData = this.getColumn(rules.field);
|
|
4525
|
+
return columnData.type;
|
|
4424
4526
|
};
|
|
4425
4527
|
QueryBuilder.prototype.processParser = function (parser, rules, levelColl) {
|
|
4426
4528
|
var j;
|
|
@@ -4435,6 +4537,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4435
4537
|
var lLen;
|
|
4436
4538
|
var grpCount;
|
|
4437
4539
|
var operator;
|
|
4540
|
+
var isLeftOpened = false;
|
|
4438
4541
|
for (var i = 0, iLen = parser.length; i < iLen; i++) {
|
|
4439
4542
|
if (parser[i][0] === 'Literal') {
|
|
4440
4543
|
rule = { label: parser[i][1], field: parser[i][1] };
|
|
@@ -4453,8 +4556,12 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4453
4556
|
j = i + 1;
|
|
4454
4557
|
jLen = iLen;
|
|
4455
4558
|
for (j = i + 1; j < jLen; j++) {
|
|
4456
|
-
if (parser[j][0] === '
|
|
4559
|
+
if (operator.indexOf('between') < 0 && parser[j][0] === 'Left') {
|
|
4560
|
+
isLeftOpened = true;
|
|
4561
|
+
}
|
|
4562
|
+
else if (parser[j][0] === 'Right' && isLeftOpened) {
|
|
4457
4563
|
i = j;
|
|
4564
|
+
isLeftOpened = false;
|
|
4458
4565
|
break;
|
|
4459
4566
|
}
|
|
4460
4567
|
else {
|
|
@@ -4591,6 +4698,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4591
4698
|
__decorate([
|
|
4592
4699
|
Property(false)
|
|
4593
4700
|
], QueryBuilder.prototype, "allowValidation", void 0);
|
|
4701
|
+
__decorate([
|
|
4702
|
+
Property('Default')
|
|
4703
|
+
], QueryBuilder.prototype, "fieldMode", void 0);
|
|
4594
4704
|
__decorate([
|
|
4595
4705
|
Property([])
|
|
4596
4706
|
], QueryBuilder.prototype, "columns", void 0);
|