@syncfusion/ej2-querybuilder 20.1.48 → 20.1.51
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/CHANGELOG.md +9 -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 +69 -24
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +65 -20
- 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 +8 -8
- package/src/query-builder/query-builder.d.ts +2 -0
- package/src/query-builder/query-builder.js +65 -20
|
@@ -329,7 +329,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
329
329
|
};
|
|
330
330
|
QueryBuilder.prototype.updateSubFieldsFromColumns = function (col, field) {
|
|
331
331
|
for (var i = 0; i < col.length; i++) {
|
|
332
|
-
if (this.separator
|
|
332
|
+
if (this.separator !== '' && col[i].field.indexOf(this.separator) < 0) {
|
|
333
333
|
col[i].field = field ? field + this.separator + col[i].field : col[i].field;
|
|
334
334
|
}
|
|
335
335
|
if (col[i].operators) {
|
|
@@ -556,7 +556,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
556
556
|
var template = void 0;
|
|
557
557
|
args.fields = this.fields;
|
|
558
558
|
args.columns = this.columns;
|
|
559
|
-
if (rule.field ===
|
|
559
|
+
if (rule.field === '') {
|
|
560
560
|
rule.field = column.field;
|
|
561
561
|
}
|
|
562
562
|
args.operators = this.getOperators(rule.field);
|
|
@@ -683,7 +683,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
683
683
|
}
|
|
684
684
|
}
|
|
685
685
|
else {
|
|
686
|
-
var dropdowntree = void 0;
|
|
687
686
|
var ddlField = void 0;
|
|
688
687
|
var ddlValue = this.isImportRules ? rule.field : rule.field;
|
|
689
688
|
ddlField = {
|
|
@@ -697,11 +696,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
697
696
|
if (this.fieldModel) {
|
|
698
697
|
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
699
698
|
}
|
|
700
|
-
dropdowntree = new DropDownTree(ddlField);
|
|
699
|
+
var dropdowntree = new DropDownTree(ddlField);
|
|
701
700
|
dropdowntree.appendTo('#' + ruleElem.id + '_filterkey');
|
|
702
701
|
if (!isNullOrUndefined(dropdowntree.value)) {
|
|
703
|
-
|
|
702
|
+
var value = this.getLabelFromColumn(dropdowntree.value[0]);
|
|
703
|
+
dropdowntree.element.value = value;
|
|
704
704
|
}
|
|
705
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
705
706
|
var ddlVal = this.isImportRules ?
|
|
706
707
|
this.GetRootColumnName(rule.field) : dropdowntree.value;
|
|
707
708
|
this.selectedColumn = this.getColumn(ddlVal);
|
|
@@ -736,17 +737,20 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
736
737
|
else {
|
|
737
738
|
groupElem = closest(target, '.e-group-container');
|
|
738
739
|
rules = this.getParentGroup(groupElem);
|
|
740
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
739
741
|
var custom = rule.custom;
|
|
740
742
|
if (Object.keys(rule).length) {
|
|
741
743
|
rules.rules.push({
|
|
742
744
|
'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
|
|
743
745
|
});
|
|
744
746
|
if (custom) {
|
|
747
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
745
748
|
rules.rules[rules.rules.length - 1].custom = custom;
|
|
746
749
|
}
|
|
747
750
|
}
|
|
748
751
|
else {
|
|
749
752
|
if (custom) {
|
|
753
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
750
754
|
newRule.custom = custom;
|
|
751
755
|
}
|
|
752
756
|
rules.rules.push(newRule);
|
|
@@ -813,17 +817,17 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
813
817
|
}
|
|
814
818
|
}
|
|
815
819
|
else {
|
|
816
|
-
dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field
|
|
820
|
+
dropDownObj = getComponent(ruleElemCln[i].querySelector('.e-rule-field .e-control'), 'dropdownlist');
|
|
817
821
|
this.selectedColumn = dropDownObj.getDataByValue(dropDownObj.value);
|
|
818
822
|
validateRule = !isNullOrUndefined(dropDownObj.index) && this.selectedColumn.validation;
|
|
819
823
|
}
|
|
820
|
-
fieldElem = tempElem.querySelector('.e-rule-field
|
|
824
|
+
fieldElem = tempElem.querySelector('.e-rule-field .e-control');
|
|
821
825
|
if (validateRule && validateRule.isRequired) {
|
|
822
826
|
while (indexElem && indexElem.previousElementSibling !== null) {
|
|
823
827
|
indexElem = indexElem.previousElementSibling;
|
|
824
828
|
index++;
|
|
825
829
|
}
|
|
826
|
-
fieldElem = tempElem.querySelector('.e-rule-operator
|
|
830
|
+
fieldElem = tempElem.querySelector('.e-rule-operator .e-control');
|
|
827
831
|
if (!rule.rules[index].operator) {
|
|
828
832
|
if (fieldElem.parentElement.className.indexOf('e-tooltip') < 0) {
|
|
829
833
|
this.renderToolTip(fieldElem.parentElement);
|
|
@@ -836,7 +840,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
836
840
|
if (excludeOprs.indexOf(rule.rules[index].operator) < 0 && (isNullOrUndefined(rule.rules[index].value) &&
|
|
837
841
|
rule.rules[index].type !== 'date') || rule.rules[index].value === '' ||
|
|
838
842
|
(rule.rules[index].value instanceof Array && valArray.length < 1)) {
|
|
839
|
-
var valElem = tempElem.querySelectorAll('.e-rule-value
|
|
843
|
+
var valElem = tempElem.querySelectorAll('.e-rule-value .e-control');
|
|
840
844
|
isValid = false;
|
|
841
845
|
for (var j = 0, jLen = valElem.length; j < jLen; j++) {
|
|
842
846
|
var element = valElem[j];
|
|
@@ -1361,7 +1365,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1361
1365
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1362
1366
|
ddt.value = args.value[0];
|
|
1363
1367
|
ddt.dataBind();
|
|
1364
|
-
|
|
1368
|
+
var result = this.getLabelFromColumn(args.value[0]);
|
|
1369
|
+
ddtElem.value = result;
|
|
1365
1370
|
}
|
|
1366
1371
|
}
|
|
1367
1372
|
}
|
|
@@ -1391,7 +1396,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1391
1396
|
};
|
|
1392
1397
|
QueryBuilder.prototype.changeRule = function (rule, ddlArgs) {
|
|
1393
1398
|
if (!ddlArgs.itemData) {
|
|
1394
|
-
if (this.fieldMode ===
|
|
1399
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
1395
1400
|
var ddt = getComponent(ddlArgs.element, 'dropdowntree');
|
|
1396
1401
|
if (ddt.value == null) {
|
|
1397
1402
|
return;
|
|
@@ -1415,6 +1420,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1415
1420
|
QueryBuilder.prototype.changeFilter = function (flt, dl, grID, rl, tmpRl, dArg) {
|
|
1416
1421
|
var _this = this;
|
|
1417
1422
|
if (flt) {
|
|
1423
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1418
1424
|
var ddlValue = void 0;
|
|
1419
1425
|
if (this.fieldMode === 'DropdownTree') {
|
|
1420
1426
|
ddlValue = (dl.value[0]);
|
|
@@ -1441,7 +1447,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1441
1447
|
this.changeOperator(flt, operatorElem, dl, grID, rl, tmpRl, dArg);
|
|
1442
1448
|
}
|
|
1443
1449
|
};
|
|
1444
|
-
QueryBuilder.prototype.changeOperator = function (
|
|
1450
|
+
QueryBuilder.prototype.changeOperator = function (
|
|
1451
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1452
|
+
flt, opr, dl, grID, rl, tmpRl, dArg) {
|
|
1445
1453
|
var _this = this;
|
|
1446
1454
|
var ruleElem;
|
|
1447
1455
|
var ruleID;
|
|
@@ -1823,7 +1831,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1823
1831
|
var original = {};
|
|
1824
1832
|
var result = [];
|
|
1825
1833
|
var nest = [];
|
|
1826
|
-
var value =
|
|
1834
|
+
var value = '';
|
|
1827
1835
|
var isNested = field.indexOf(this.separator);
|
|
1828
1836
|
var _loop_2 = function (i, iLen) {
|
|
1829
1837
|
if (isNested === 0) {
|
|
@@ -1831,6 +1839,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1831
1839
|
}
|
|
1832
1840
|
else {
|
|
1833
1841
|
nest = field.split(this_2.separator);
|
|
1842
|
+
// eslint-disable-next-line @typescript-eslint/tslint/config
|
|
1834
1843
|
nest.forEach(function (element) {
|
|
1835
1844
|
if (value) {
|
|
1836
1845
|
value = value[element];
|
|
@@ -1878,7 +1887,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1878
1887
|
}
|
|
1879
1888
|
var fieldValue = this.selectedRule.field;
|
|
1880
1889
|
var isNested = this.selectedRule.field.indexOf(this.separator);
|
|
1881
|
-
if (isNested !== 0 && this.fieldMode !==
|
|
1890
|
+
if (isNested !== 0 && this.fieldMode !== 'DropdownTree') {
|
|
1882
1891
|
var nest = this.selectedRule.field.split(this.separator);
|
|
1883
1892
|
fieldValue = nest[nest.length - 1];
|
|
1884
1893
|
}
|
|
@@ -1990,10 +1999,10 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
1990
1999
|
};
|
|
1991
2000
|
QueryBuilder.prototype.getItemData = function (parentId) {
|
|
1992
2001
|
var fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdownlist');
|
|
1993
|
-
if (this.fieldMode ===
|
|
2002
|
+
if (this.fieldMode === 'DropdownTree') {
|
|
1994
2003
|
fieldObj = getComponent(document.getElementById(parentId + '_filterkey'), 'dropdowntree');
|
|
1995
2004
|
}
|
|
1996
|
-
return this.fieldMode ===
|
|
2005
|
+
return this.fieldMode === 'DropdownTree' ? this.getColumn(fieldObj.value[0]) : this.getColumn(fieldObj.value);
|
|
1997
2006
|
};
|
|
1998
2007
|
QueryBuilder.prototype.setDefaultValue = function (parentId, isArryValue, isNumber) {
|
|
1999
2008
|
var itemData = this.getItemData(parentId);
|
|
@@ -2324,6 +2333,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2324
2333
|
};
|
|
2325
2334
|
QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {
|
|
2326
2335
|
if (this.isFieldClose && prevItemData) {
|
|
2336
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2327
2337
|
prevItemData = this.getColumn(prevItemData.value);
|
|
2328
2338
|
}
|
|
2329
2339
|
if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
|
|
@@ -2337,6 +2347,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2337
2347
|
var filtObj = this.fieldMode === 'DropdownTree' ? getComponent(filtElem, 'dropdowntree')
|
|
2338
2348
|
: getComponent(filtElem, 'dropdownlist');
|
|
2339
2349
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(filtObj.value[0])
|
|
2350
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2340
2351
|
: this.getColumn(filtObj.value);
|
|
2341
2352
|
this.selectedRule = column;
|
|
2342
2353
|
if (isRender) {
|
|
@@ -2581,7 +2592,9 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
2581
2592
|
}
|
|
2582
2593
|
dropDownObj = this.fieldMode === 'DropdownTree' ? getComponent(target, 'dropdowntree') :
|
|
2583
2594
|
getComponent(target, 'dropdownlist');
|
|
2595
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2584
2596
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(dropDownObj.value[0])
|
|
2597
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2585
2598
|
: this.getColumn(dropDownObj.value);
|
|
2586
2599
|
if (!this.isImportRules && rule.rules[index].field && rule.rules[index].field.toLowerCase() !== column.field.toLowerCase()) {
|
|
2587
2600
|
if (!(ruleElem.querySelectorAll('.e-template')) && !(operator.indexOf('null') > -1)
|
|
@@ -3518,11 +3531,13 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3518
3531
|
}
|
|
3519
3532
|
}
|
|
3520
3533
|
var isTemplateRendered = clnruleElem.querySelector('.e-template-value');
|
|
3534
|
+
// eslint-disable
|
|
3521
3535
|
try {
|
|
3522
3536
|
detach(clnruleElem);
|
|
3523
3537
|
}
|
|
3524
3538
|
catch (err) {
|
|
3525
3539
|
}
|
|
3540
|
+
// eslint-enable
|
|
3526
3541
|
if (column && column.ruleTemplate) {
|
|
3527
3542
|
this.clearQBTemplate([clnruleElem.id]);
|
|
3528
3543
|
}
|
|
@@ -3932,8 +3947,8 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
3932
3947
|
}
|
|
3933
3948
|
}
|
|
3934
3949
|
if (this.dataSource instanceof DataManager) {
|
|
3935
|
-
if (!isNullOrUndefined(pred) && (pred.operator ===
|
|
3936
|
-
pred.operator = pred.operator ===
|
|
3950
|
+
if (!isNullOrUndefined(pred) && (pred.operator === 'isnull' || pred.operator === 'notnull')) {
|
|
3951
|
+
pred.operator = pred.operator === 'isnull' ? 'equal' : 'notequal';
|
|
3937
3952
|
}
|
|
3938
3953
|
}
|
|
3939
3954
|
return pred;
|
|
@@ -4440,7 +4455,7 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4440
4455
|
}
|
|
4441
4456
|
queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
|
|
4442
4457
|
}
|
|
4443
|
-
if (rule.condition && rule.condition
|
|
4458
|
+
if (rule.condition && rule.condition !== '') {
|
|
4444
4459
|
condition = rule.condition;
|
|
4445
4460
|
}
|
|
4446
4461
|
}
|
|
@@ -4581,7 +4596,6 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4581
4596
|
this.parser.push(['Literal', matchValue]);
|
|
4582
4597
|
return matchValue.length + 2;
|
|
4583
4598
|
}
|
|
4584
|
-
// eslint-disable-next-line
|
|
4585
4599
|
if (this.checkNumberLiteral(sqlString)) {
|
|
4586
4600
|
matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
|
|
4587
4601
|
this.parser.push(['Literal', matchValue]);
|
|
@@ -4676,6 +4690,37 @@ var QueryBuilder = /** @__PURE__ @class */ (function (_super) {
|
|
|
4676
4690
|
var columnData = this.getColumn(rules.field);
|
|
4677
4691
|
return columnData.type;
|
|
4678
4692
|
};
|
|
4693
|
+
QueryBuilder.prototype.getLabelFromColumn = function (field) {
|
|
4694
|
+
var label = '';
|
|
4695
|
+
var l = 0;
|
|
4696
|
+
if (this.separator !== '') {
|
|
4697
|
+
var fieldColl = field.split(this.separator);
|
|
4698
|
+
for (var i = 0; i < fieldColl.length; i++) {
|
|
4699
|
+
label += this.getLabelFromField(fieldColl, i + 1);
|
|
4700
|
+
l++;
|
|
4701
|
+
if (l < fieldColl.length) {
|
|
4702
|
+
label += this.separator;
|
|
4703
|
+
}
|
|
4704
|
+
}
|
|
4705
|
+
return label;
|
|
4706
|
+
}
|
|
4707
|
+
else {
|
|
4708
|
+
var labelItem = this.getColumn(field).label;
|
|
4709
|
+
return labelItem;
|
|
4710
|
+
}
|
|
4711
|
+
};
|
|
4712
|
+
QueryBuilder.prototype.getLabelFromField = function (field, startIdx) {
|
|
4713
|
+
var fieldName = '';
|
|
4714
|
+
var j = 0;
|
|
4715
|
+
for (var k = 0; k < startIdx; k++) {
|
|
4716
|
+
fieldName += field[k];
|
|
4717
|
+
j++;
|
|
4718
|
+
if (j < startIdx) {
|
|
4719
|
+
fieldName += this.separator;
|
|
4720
|
+
}
|
|
4721
|
+
}
|
|
4722
|
+
return this.getColumn(fieldName).label;
|
|
4723
|
+
};
|
|
4679
4724
|
QueryBuilder.prototype.processParser = function (parser, rules, levelColl) {
|
|
4680
4725
|
var j;
|
|
4681
4726
|
var jLen;
|