@syncfusion/ej2-querybuilder 19.4.40 → 19.4.50
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/.github/PULL_REQUEST_TEMPLATE/Bug.md +63 -0
- package/.github/PULL_REQUEST_TEMPLATE/feature.md +39 -0
- package/CHANGELOG.md +27 -1
- package/dist/ej2-querybuilder.umd.min.js +2 -11
- package/dist/ej2-querybuilder.umd.min.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es2015.js +118 -21
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +117 -20
- package/dist/es6/ej2-querybuilder.es5.js.map +1 -1
- package/dist/global/ej2-querybuilder.min.js +2 -11
- package/dist/global/ej2-querybuilder.min.js.map +1 -1
- package/dist/global/index.d.ts +1 -10
- package/package.json +13 -17
- package/src/query-builder/query-builder.d.ts +6 -0
- package/src/query-builder/query-builder.js +117 -20
- package/styles/bootstrap4.css +5 -0
- package/styles/bootstrap5-dark.css +8 -3
- package/styles/bootstrap5.css +8 -3
- package/styles/query-builder/_bootstrap5-definition.scss +1 -1
- package/styles/query-builder/_fluent-definition.scss +107 -0
- package/styles/query-builder/_layout.scss +6 -1
- package/styles/query-builder/_tailwind-definition.scss +1 -1
- package/styles/query-builder/bootstrap4.css +5 -0
- package/styles/query-builder/bootstrap5-dark.css +8 -3
- package/styles/query-builder/bootstrap5.css +8 -3
- package/styles/query-builder/icons/_fluent.scss +8 -0
- package/styles/query-builder/tailwind-dark.css +3 -3
- package/styles/query-builder/tailwind.css +3 -3
- package/styles/tailwind-dark.css +3 -3
- package/styles/tailwind.css +3 -3
package/dist/global/index.d.ts
CHANGED
|
@@ -1,15 +1,6 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* filename: index.d.ts
|
|
3
|
-
* version : 19.4.
|
|
4
|
-
* Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
|
|
5
|
-
* Use of this code is subject to the terms of our license.
|
|
6
|
-
* A copy of the current license can be obtained at any time by e-mailing
|
|
7
|
-
* licensing@syncfusion.com. Any infringement will be prosecuted under
|
|
8
|
-
* applicable laws.
|
|
9
|
-
*/
|
|
10
|
-
/*!
|
|
11
|
-
* filename: index.d.ts
|
|
12
|
-
* version : 19.3.53
|
|
3
|
+
* version : 19.4.50
|
|
13
4
|
* Copyright Syncfusion Inc. 2001 - 2020. All rights reserved.
|
|
14
5
|
* Use of this code is subject to the terms of our license.
|
|
15
6
|
* A copy of the current license can be obtained at any time by e-mailing
|
package/package.json
CHANGED
|
@@ -1,14 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"_from": "@syncfusion/ej2-querybuilder@*",
|
|
3
|
-
"_id": "@syncfusion/ej2-querybuilder@19.
|
|
3
|
+
"_id": "@syncfusion/ej2-querybuilder@19.4.48",
|
|
4
4
|
"_inBundle": false,
|
|
5
|
-
"_integrity": "sha512-
|
|
5
|
+
"_integrity": "sha512-38+4DXealvr+/ilsoiXsSbntiZsi12LiBsyZj7m2Lt2sYbqASv3glc3KevxKzpN+56ID6iVUnDtp3hAGn6FehA==",
|
|
6
6
|
"_location": "/@syncfusion/ej2-querybuilder",
|
|
7
|
-
"_phantomChildren": {
|
|
8
|
-
"@syncfusion/ej2-icons": "19.4.38",
|
|
9
|
-
"@syncfusion/ej2-lists": "19.3.53",
|
|
10
|
-
"@syncfusion/ej2-popups": "19.3.53"
|
|
11
|
-
},
|
|
7
|
+
"_phantomChildren": {},
|
|
12
8
|
"_requested": {
|
|
13
9
|
"type": "range",
|
|
14
10
|
"registry": true,
|
|
@@ -27,8 +23,8 @@
|
|
|
27
23
|
"/@syncfusion/ej2-react-querybuilder",
|
|
28
24
|
"/@syncfusion/ej2-vue-querybuilder"
|
|
29
25
|
],
|
|
30
|
-
"_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-19.
|
|
31
|
-
"_shasum": "
|
|
26
|
+
"_resolved": "http://nexus.syncfusion.com/repository/ej2-hotfix-new/@syncfusion/ej2-querybuilder/-/ej2-querybuilder-19.4.48.tgz",
|
|
27
|
+
"_shasum": "40848896d9dba8fe345fae9dc651c97e14420f14",
|
|
32
28
|
"_spec": "@syncfusion/ej2-querybuilder@*",
|
|
33
29
|
"_where": "/jenkins/workspace/automation_release_19.1.0.1-ZPMUBNQ6AUYH6YGEFBPVYMEQLRRW2SLD4XCZ6GATNZJFYJ3RIAOA/packages/included",
|
|
34
30
|
"author": {
|
|
@@ -36,12 +32,12 @@
|
|
|
36
32
|
},
|
|
37
33
|
"bundleDependencies": false,
|
|
38
34
|
"dependencies": {
|
|
39
|
-
"@syncfusion/ej2-base": "~19.4.
|
|
40
|
-
"@syncfusion/ej2-buttons": "~19.4.
|
|
41
|
-
"@syncfusion/ej2-calendars": "~19.4.
|
|
42
|
-
"@syncfusion/ej2-dropdowns": "~19.4.
|
|
43
|
-
"@syncfusion/ej2-inputs": "~19.4.
|
|
44
|
-
"@syncfusion/ej2-splitbuttons": "~19.4.
|
|
35
|
+
"@syncfusion/ej2-base": "~19.4.48",
|
|
36
|
+
"@syncfusion/ej2-buttons": "~19.4.50",
|
|
37
|
+
"@syncfusion/ej2-calendars": "~19.4.50",
|
|
38
|
+
"@syncfusion/ej2-dropdowns": "~19.4.50",
|
|
39
|
+
"@syncfusion/ej2-inputs": "~19.4.48",
|
|
40
|
+
"@syncfusion/ej2-splitbuttons": "~19.4.48"
|
|
45
41
|
},
|
|
46
42
|
"deprecated": false,
|
|
47
43
|
"description": "Essential JS 2 QueryBuilder",
|
|
@@ -72,7 +68,7 @@
|
|
|
72
68
|
"type": "git",
|
|
73
69
|
"url": "https://github.com/syncfusion/ej2-javascript-ui-controls/tree/master/controls/querybuilder"
|
|
74
70
|
},
|
|
75
|
-
"sideEffects": false,
|
|
76
71
|
"typings": "index.d.ts",
|
|
77
|
-
"version": "19.4.
|
|
72
|
+
"version": "19.4.50",
|
|
73
|
+
"sideEffects": false
|
|
78
74
|
}
|
|
@@ -284,6 +284,10 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
|
|
|
284
284
|
private isAddSuccess;
|
|
285
285
|
private isNotValueChange;
|
|
286
286
|
private isRoot;
|
|
287
|
+
private prevItemData;
|
|
288
|
+
private isFieldChange;
|
|
289
|
+
private isFieldClose;
|
|
290
|
+
private isDestroy;
|
|
287
291
|
/**
|
|
288
292
|
* Triggers when the component is created.
|
|
289
293
|
*
|
|
@@ -521,6 +525,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
|
|
|
521
525
|
private changeValue;
|
|
522
526
|
private filterValue;
|
|
523
527
|
private changeValueSuccessCallBack;
|
|
528
|
+
private fieldClose;
|
|
524
529
|
private changeField;
|
|
525
530
|
private changeRule;
|
|
526
531
|
private changeFilter;
|
|
@@ -741,6 +746,7 @@ export declare class QueryBuilder extends Component<HTMLDivElement> implements I
|
|
|
741
746
|
private sqlParser;
|
|
742
747
|
private parseSqlStrings;
|
|
743
748
|
private checkLiteral;
|
|
749
|
+
private checkNumberLiteral;
|
|
744
750
|
private getOperator;
|
|
745
751
|
private getTypeFromColumn;
|
|
746
752
|
private processParser;
|
|
@@ -188,6 +188,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
188
188
|
_this.isNotified = false;
|
|
189
189
|
_this.isAddSuccess = false;
|
|
190
190
|
_this.isNotValueChange = false;
|
|
191
|
+
_this.isFieldChange = false;
|
|
192
|
+
_this.isFieldClose = false;
|
|
193
|
+
_this.isDestroy = false;
|
|
191
194
|
MultiSelect.Inject(CheckBoxSelection);
|
|
192
195
|
return _this;
|
|
193
196
|
}
|
|
@@ -667,8 +670,8 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
667
670
|
ddlField = {
|
|
668
671
|
dataSource: this.columns,
|
|
669
672
|
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)
|
|
673
|
+
popupHeight: ((this.columns.length > 5) ? height : 'auto'), close: this.fieldClose.bind(this, ruleElem.id + '_filterkey'),
|
|
674
|
+
change: this.changeField.bind(this), value: rule ? ddlValue : null, open: this.popupOpen.bind(this, true)
|
|
672
675
|
};
|
|
673
676
|
if (this.fieldModel) {
|
|
674
677
|
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
@@ -690,11 +693,11 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
690
693
|
var ddlValue = this.isImportRules ? rule.field : rule.field;
|
|
691
694
|
ddlField = {
|
|
692
695
|
fields: { dataSource: this.columns,
|
|
693
|
-
value:
|
|
696
|
+
value: 'field', text: 'label', child: 'columns', expanded: 'expanded' },
|
|
694
697
|
placeholder: this.l10n.getConstant('SelectField'), showClearButton: false,
|
|
695
698
|
popupHeight: ((this.columns.length > 5) ? height : 'auto'), changeOnBlur: false,
|
|
696
699
|
change: this.changeField.bind(this), value: this.isImportRules ? [ddlValue] : null,
|
|
697
|
-
open: this.popupOpen.bind(this)
|
|
700
|
+
open: this.popupOpen.bind(this, false)
|
|
698
701
|
};
|
|
699
702
|
if (this.fieldModel) {
|
|
700
703
|
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
@@ -738,12 +741,19 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
738
741
|
else {
|
|
739
742
|
groupElem = closest(target, '.e-group-container');
|
|
740
743
|
rules = this.getParentGroup(groupElem);
|
|
744
|
+
var custom = rule.custom;
|
|
741
745
|
if (Object.keys(rule).length) {
|
|
742
746
|
rules.rules.push({
|
|
743
747
|
'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
|
|
744
748
|
});
|
|
749
|
+
if (custom) {
|
|
750
|
+
rules.rules[rules.rules.length - 1].custom = custom;
|
|
751
|
+
}
|
|
745
752
|
}
|
|
746
753
|
else {
|
|
754
|
+
if (custom) {
|
|
755
|
+
newRule.custom = custom;
|
|
756
|
+
}
|
|
747
757
|
rules.rules.push(newRule);
|
|
748
758
|
}
|
|
749
759
|
}
|
|
@@ -1297,21 +1307,41 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1297
1307
|
}
|
|
1298
1308
|
}
|
|
1299
1309
|
};
|
|
1310
|
+
QueryBuilder.prototype.fieldClose = function (id) {
|
|
1311
|
+
if (this.isFieldChange || this.isDestroy) {
|
|
1312
|
+
return;
|
|
1313
|
+
}
|
|
1314
|
+
this.isFieldClose = true;
|
|
1315
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1316
|
+
var ddl = getComponent(id, 'dropdownlist');
|
|
1317
|
+
var item = ddl.popupObj.element.querySelector('.e-active');
|
|
1318
|
+
var itemData = ddl.getItemData();
|
|
1319
|
+
ddl.value = itemData.value;
|
|
1320
|
+
var customArgs = { element: ddl.element, value: itemData.value, isInteracted: true,
|
|
1321
|
+
previousItemData: this.prevItemData, previousItem: null, item: item, itemData: itemData, event: null, e: null };
|
|
1322
|
+
this.changeField(customArgs);
|
|
1323
|
+
this.isFieldChange = false;
|
|
1324
|
+
};
|
|
1300
1325
|
QueryBuilder.prototype.changeField = function (args) {
|
|
1301
1326
|
if (args.isInteracted) {
|
|
1327
|
+
if (isNullOrUndefined(args.value)) {
|
|
1328
|
+
return;
|
|
1329
|
+
}
|
|
1330
|
+
this.isFieldChange = true;
|
|
1331
|
+
this.prevItemData = args.itemData;
|
|
1302
1332
|
var fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
|
|
1303
1333
|
var column = this.fieldMode === 'DropdownTree' ? this.getColumn(args.value[0]) : this.getColumn(args.value);
|
|
1304
1334
|
if (this.fieldMode === 'DropdownTree' && fieldElem != null) {
|
|
1305
|
-
var ddtElem = fieldElem.querySelector(
|
|
1335
|
+
var ddtElem = fieldElem.querySelector('.e-control');
|
|
1306
1336
|
var ddt = getComponent(ddtElem, 'dropdowntree');
|
|
1307
1337
|
if (column) {
|
|
1308
|
-
if (column.type
|
|
1338
|
+
if (column.type === 'object') {
|
|
1309
1339
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1310
1340
|
ddt.value = args.oldValue;
|
|
1311
1341
|
ddt.dataBind();
|
|
1312
1342
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
1313
1343
|
if (isNullOrUndefined(args.oldValue)) {
|
|
1314
|
-
ddtElem.value =
|
|
1344
|
+
ddtElem.value = '';
|
|
1315
1345
|
}
|
|
1316
1346
|
else {
|
|
1317
1347
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -1347,6 +1377,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1347
1377
|
ruleElem = ruleElem.previousElementSibling;
|
|
1348
1378
|
index++;
|
|
1349
1379
|
}
|
|
1380
|
+
rules.rules[index].value = '';
|
|
1350
1381
|
this.changeRule(rules.rules[index], args);
|
|
1351
1382
|
}
|
|
1352
1383
|
}
|
|
@@ -1436,6 +1467,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1436
1467
|
getComponent(tooltipElem[i], 'tooltip').destroy();
|
|
1437
1468
|
}
|
|
1438
1469
|
if (!args.cancel) {
|
|
1470
|
+
if (isNullOrUndefined(this.selectedColumn)) {
|
|
1471
|
+
return;
|
|
1472
|
+
}
|
|
1439
1473
|
tempRule.type = this.selectedColumn.type;
|
|
1440
1474
|
if (ruleElem.querySelector('.e-template')) {
|
|
1441
1475
|
rule.value = '';
|
|
@@ -1470,15 +1504,20 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1470
1504
|
tempElem.appendChild(subFieldElem);
|
|
1471
1505
|
var height = (this.element.className.indexOf('e-device') > -1) ? '250px' : '200px';
|
|
1472
1506
|
var subFieldData = Object.keys(this.selectedColumn.columns[0]);
|
|
1473
|
-
var
|
|
1507
|
+
var ddlField;
|
|
1508
|
+
ddlField = {
|
|
1474
1509
|
dataSource: this.selectedColumn.columns,
|
|
1475
1510
|
fields: this.fields,
|
|
1476
1511
|
placeholder: this.l10n.getConstant('SelectField'),
|
|
1477
1512
|
popupHeight: ((subFieldData.length > 5) ? height : 'auto'),
|
|
1478
1513
|
change: this.changeField.bind(this),
|
|
1479
1514
|
index: 0,
|
|
1480
|
-
open: this.popupOpen.bind(this)
|
|
1481
|
-
}
|
|
1515
|
+
open: this.popupOpen.bind(this, false)
|
|
1516
|
+
};
|
|
1517
|
+
if (this.fieldModel) {
|
|
1518
|
+
ddlField = __assign({}, ddlField, this.fieldModel);
|
|
1519
|
+
}
|
|
1520
|
+
var dropDownList = new DropDownList(ddlField);
|
|
1482
1521
|
dropDownList.appendTo('#' + ruleId + '_subfilterkey' + this.subFilterCounter);
|
|
1483
1522
|
if (this.isImportRules) {
|
|
1484
1523
|
var subField = this.selectedColumn.columns;
|
|
@@ -1598,7 +1637,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1598
1637
|
change: this.changeField.bind(this),
|
|
1599
1638
|
index: 0,
|
|
1600
1639
|
value: value,
|
|
1601
|
-
open: this.popupOpen.bind(this)
|
|
1640
|
+
open: this.popupOpen.bind(this, false)
|
|
1602
1641
|
};
|
|
1603
1642
|
if (this.operatorModel) {
|
|
1604
1643
|
ddlOperator = __assign({}, ddlOperator, this.operatorModel);
|
|
@@ -1617,10 +1656,13 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1617
1656
|
this.updateRules(ddlArgs.element, ddlArgs.item);
|
|
1618
1657
|
}
|
|
1619
1658
|
};
|
|
1620
|
-
QueryBuilder.prototype.popupOpen = function (args) {
|
|
1659
|
+
QueryBuilder.prototype.popupOpen = function (isField, args) {
|
|
1621
1660
|
if (this.enableRtl) {
|
|
1622
1661
|
addClass([args.popup.element], 'e-rtl');
|
|
1623
1662
|
}
|
|
1663
|
+
if (isField) {
|
|
1664
|
+
this.isFieldClose = false;
|
|
1665
|
+
}
|
|
1624
1666
|
};
|
|
1625
1667
|
QueryBuilder.prototype.destroyControls = function (target, isRuleTemplate) {
|
|
1626
1668
|
var element = isRuleTemplate ? target : target.nextElementSibling;
|
|
@@ -1813,7 +1855,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1813
1855
|
change: this.changeValue.bind(this, i),
|
|
1814
1856
|
close: this.closePopup.bind(this, i),
|
|
1815
1857
|
actionBegin: this.multiSelectOpen.bind(this, parentId + '_valuekey' + i),
|
|
1816
|
-
open: this.popupOpen.bind(this)
|
|
1858
|
+
open: this.popupOpen.bind(this, false)
|
|
1817
1859
|
};
|
|
1818
1860
|
if (this.valueModel && this.valueModel.multiSelectModel) {
|
|
1819
1861
|
multiSelectValue = __assign({}, multiSelectValue, this.valueModel.multiSelectModel);
|
|
@@ -1873,8 +1915,10 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
1873
1915
|
};
|
|
1874
1916
|
QueryBuilder.prototype.closePopup = function (i, args) {
|
|
1875
1917
|
var element = document.getElementById(args.popup.element.id.replace('_popup', ''));
|
|
1876
|
-
|
|
1877
|
-
|
|
1918
|
+
if (element) {
|
|
1919
|
+
var value = getComponent(element, 'multiselect').value;
|
|
1920
|
+
this.updateRules(element, value, i);
|
|
1921
|
+
}
|
|
1878
1922
|
};
|
|
1879
1923
|
QueryBuilder.prototype.processTemplate = function (target, itemData, rule, tempRule) {
|
|
1880
1924
|
var container = closest(target, '.e-rule-container');
|
|
@@ -2235,6 +2279,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2235
2279
|
return 0;
|
|
2236
2280
|
};
|
|
2237
2281
|
QueryBuilder.prototype.getPreviousItemData = function (prevItemData, column) {
|
|
2282
|
+
if (this.isFieldClose && prevItemData) {
|
|
2283
|
+
prevItemData = this.getColumn(prevItemData.value);
|
|
2284
|
+
}
|
|
2238
2285
|
if (column.template && prevItemData && Object.keys(prevItemData).length < 4) {
|
|
2239
2286
|
prevItemData.template = column.template;
|
|
2240
2287
|
}
|
|
@@ -2727,6 +2774,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2727
2774
|
* @returns {void}
|
|
2728
2775
|
*/
|
|
2729
2776
|
QueryBuilder.prototype.destroy = function () {
|
|
2777
|
+
this.isDestroy = true;
|
|
2730
2778
|
var queryElement = this.element;
|
|
2731
2779
|
if (!queryElement) {
|
|
2732
2780
|
return;
|
|
@@ -2782,6 +2830,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
2782
2830
|
this.clearQBTemplate();
|
|
2783
2831
|
}
|
|
2784
2832
|
classList(this.element, [], ['e-rtl', 'e-responsive', 'e-device']);
|
|
2833
|
+
this.isDestroy = false;
|
|
2785
2834
|
};
|
|
2786
2835
|
/**
|
|
2787
2836
|
* Adds single or multiple rules.
|
|
@@ -3422,7 +3471,11 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3422
3471
|
}
|
|
3423
3472
|
}
|
|
3424
3473
|
var isTemplateRendered = clnruleElem.querySelector('.e-template-value');
|
|
3425
|
-
|
|
3474
|
+
try {
|
|
3475
|
+
detach(clnruleElem);
|
|
3476
|
+
}
|
|
3477
|
+
catch (err) {
|
|
3478
|
+
}
|
|
3426
3479
|
if (column && column.ruleTemplate) {
|
|
3427
3480
|
this.clearQBTemplate([clnruleElem.id]);
|
|
3428
3481
|
}
|
|
@@ -3542,10 +3595,14 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3542
3595
|
}
|
|
3543
3596
|
}
|
|
3544
3597
|
if ((this.isRefreshed && this.enablePersistence) || (this.rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
|
|
3545
|
-
rule.value !== undefined))) {
|
|
3598
|
+
rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
|
|
3599
|
+
var condition = rule.condition;
|
|
3546
3600
|
rule = {
|
|
3547
3601
|
'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value
|
|
3548
3602
|
};
|
|
3603
|
+
if (condition) {
|
|
3604
|
+
rule.condition = condition;
|
|
3605
|
+
}
|
|
3549
3606
|
if (customObj) {
|
|
3550
3607
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
3551
3608
|
rule.custom = customObj;
|
|
@@ -3567,6 +3624,9 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3567
3624
|
rule.not = notValue;
|
|
3568
3625
|
}
|
|
3569
3626
|
}
|
|
3627
|
+
else if ((isNullOrUndefined(rule.condition)) && isNullOrUndefined(rule.rules)) {
|
|
3628
|
+
rule = { 'label': '', 'field': '', 'operator': '', 'type': '', 'value': '' };
|
|
3629
|
+
}
|
|
3570
3630
|
else {
|
|
3571
3631
|
if (this.enableNotCondition) {
|
|
3572
3632
|
rule = { 'condition': rule.condition, 'rules': rule.rules, 'not': rule.not };
|
|
@@ -3750,7 +3810,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3750
3810
|
}
|
|
3751
3811
|
}
|
|
3752
3812
|
}
|
|
3753
|
-
else if (ruleColl[i].operator.length) {
|
|
3813
|
+
else if (!isNullOrUndefined(ruleColl[i].operator) && !isNullOrUndefined(ruleColl[i].operator.length)) {
|
|
3754
3814
|
var oper = ruleColl[i].operator.toLowerCase();
|
|
3755
3815
|
var isDateFilter = false;
|
|
3756
3816
|
var dateOperColl = ['equal', 'notequal', 'greaterthan', 'greaterthanorequal', 'lessthan', 'lessthanorequal'];
|
|
@@ -3851,6 +3911,12 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3851
3911
|
break;
|
|
3852
3912
|
}
|
|
3853
3913
|
}
|
|
3914
|
+
else if (field.indexOf(this.separator) > -1) {
|
|
3915
|
+
if (columns[i].field === field.split(this.separator)[0]) {
|
|
3916
|
+
column = columns[i];
|
|
3917
|
+
break;
|
|
3918
|
+
}
|
|
3919
|
+
}
|
|
3854
3920
|
}
|
|
3855
3921
|
return column;
|
|
3856
3922
|
};
|
|
@@ -3940,7 +4006,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
3940
4006
|
}
|
|
3941
4007
|
if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {
|
|
3942
4008
|
for (var j = 0, jLen = value.length; j < jLen; j++) {
|
|
3943
|
-
if (value[j] !== '') {
|
|
4009
|
+
if (value[j] !== '' || ((operator === 'in' || operator === 'notin') && column.type === 'string')) {
|
|
3944
4010
|
if (j === 0) {
|
|
3945
4011
|
var gte = 'greaterthanorequal';
|
|
3946
4012
|
switch (operator) {
|
|
@@ -4082,7 +4148,7 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4082
4148
|
if (!isNullOrUndefined(ruleColl)) {
|
|
4083
4149
|
for (var i = 0, len = ruleColl.length; i < len; i++) {
|
|
4084
4150
|
var keys = Object.keys(ruleColl[i]);
|
|
4085
|
-
if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1) {
|
|
4151
|
+
if (!isNullOrUndefined(ruleColl[i].rules) && keys.indexOf('rules') > -1 && (ruleColl[i].rules.length !== 0)) {
|
|
4086
4152
|
parentElem = this.renderGroup(ruleColl[i], ruleColl[i].condition, parentElem, ruleColl[i].not);
|
|
4087
4153
|
parentElem = this.importRules(ruleColl[i], parentElem, true);
|
|
4088
4154
|
}
|
|
@@ -4319,8 +4385,14 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4319
4385
|
}
|
|
4320
4386
|
queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
|
|
4321
4387
|
}
|
|
4388
|
+
if (rule.condition && rule.condition != '') {
|
|
4389
|
+
condition = rule.condition;
|
|
4390
|
+
}
|
|
4322
4391
|
}
|
|
4323
4392
|
if (j !== jLen - 1) {
|
|
4393
|
+
if (condition === '') {
|
|
4394
|
+
condition = rules.rules[j].condition;
|
|
4395
|
+
}
|
|
4324
4396
|
queryStr += ' ' + condition.toUpperCase() + ' ';
|
|
4325
4397
|
}
|
|
4326
4398
|
}
|
|
@@ -4454,6 +4526,12 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4454
4526
|
this.parser.push(['Literal', matchValue]);
|
|
4455
4527
|
return matchValue.length + 2;
|
|
4456
4528
|
}
|
|
4529
|
+
// eslint-disable-next-line
|
|
4530
|
+
if (this.checkNumberLiteral(sqlString)) {
|
|
4531
|
+
matchValue = /^[0-9]+(\.[0-9]+)?/.exec(sqlString)[0];
|
|
4532
|
+
this.parser.push(['Literal', matchValue]);
|
|
4533
|
+
return matchValue.length;
|
|
4534
|
+
}
|
|
4457
4535
|
//String
|
|
4458
4536
|
if (/^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)) {
|
|
4459
4537
|
matchValue = /^'((?:[^\\']+?|\\.|'')*)'(?!')/.exec(sqlString)[0];
|
|
@@ -4493,6 +4571,25 @@ var QueryBuilder = /** @class */ (function (_super) {
|
|
|
4493
4571
|
}
|
|
4494
4572
|
return false;
|
|
4495
4573
|
};
|
|
4574
|
+
QueryBuilder.prototype.checkNumberLiteral = function (sqlString) {
|
|
4575
|
+
var lastParser = this.parser[this.parser.length - 1];
|
|
4576
|
+
if (!lastParser) {
|
|
4577
|
+
return true;
|
|
4578
|
+
}
|
|
4579
|
+
else {
|
|
4580
|
+
if (/^[0-9]+(\.[0-9]+)?/.exec(sqlString)) {
|
|
4581
|
+
var secParser = this.parser[this.parser.length - 2];
|
|
4582
|
+
var betweenParser = this.parser[this.parser.length - 3];
|
|
4583
|
+
if (lastParser[0] === 'Left' && (secParser && secParser[0] === 'Conditions')) {
|
|
4584
|
+
return true;
|
|
4585
|
+
}
|
|
4586
|
+
if (lastParser[0] === 'Conditions' && (betweenParser && betweenParser[1].indexOf('between') < 0)) {
|
|
4587
|
+
return true;
|
|
4588
|
+
}
|
|
4589
|
+
}
|
|
4590
|
+
}
|
|
4591
|
+
return false;
|
|
4592
|
+
};
|
|
4496
4593
|
QueryBuilder.prototype.getOperator = function (value, operator) {
|
|
4497
4594
|
var operators = {
|
|
4498
4595
|
'=': 'equal', '!=': 'notequal', '<': 'lessthan', '>': 'greaterthan', '<=': 'lessthanorequal',
|
package/styles/bootstrap4.css
CHANGED
|
@@ -69,6 +69,11 @@
|
|
|
69
69
|
background: transparent;
|
|
70
70
|
}
|
|
71
71
|
|
|
72
|
+
.e-input-group.e-control-wrapper.e-ddl.e-readonly .e-input[readonly],
|
|
73
|
+
.e-float-input.e-control-wrapper.e-ddl.e-readonly input[readonly] {
|
|
74
|
+
background: #e9ecef;
|
|
75
|
+
}
|
|
76
|
+
|
|
72
77
|
.e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
|
|
73
78
|
.e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
|
|
74
79
|
.e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
|
|
@@ -65,6 +65,11 @@
|
|
|
65
65
|
background: transparent;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
.e-input-group.e-control-wrapper.e-ddl.e-readonly .e-input[readonly],
|
|
69
|
+
.e-float-input.e-control-wrapper.e-ddl.e-readonly input[readonly] {
|
|
70
|
+
background: #343a40;
|
|
71
|
+
}
|
|
72
|
+
|
|
68
73
|
.e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
|
|
69
74
|
.e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
|
|
70
75
|
.e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
|
|
@@ -321,7 +326,7 @@
|
|
|
321
326
|
|
|
322
327
|
.e-query-builder .e-rule-list > ::after,
|
|
323
328
|
.e-query-builder .e-rule-list > ::before {
|
|
324
|
-
border-style:
|
|
329
|
+
border-style: dashed;
|
|
325
330
|
content: '';
|
|
326
331
|
left: -12px;
|
|
327
332
|
position: absolute;
|
|
@@ -495,8 +500,8 @@
|
|
|
495
500
|
.e-query-builder .e-group-body .e-rule-container.e-joined-rule {
|
|
496
501
|
border-top-left-radius: 0;
|
|
497
502
|
border-top-right-radius: 0;
|
|
498
|
-
border-top-style:
|
|
499
|
-
border-top-width:
|
|
503
|
+
border-top-style: dashed;
|
|
504
|
+
border-top-width: 1px;
|
|
500
505
|
margin-top: 0;
|
|
501
506
|
}
|
|
502
507
|
|
package/styles/bootstrap5.css
CHANGED
|
@@ -65,6 +65,11 @@
|
|
|
65
65
|
background: transparent;
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
+
.e-input-group.e-control-wrapper.e-ddl.e-readonly .e-input[readonly],
|
|
69
|
+
.e-float-input.e-control-wrapper.e-ddl.e-readonly input[readonly] {
|
|
70
|
+
background: #e9ecef;
|
|
71
|
+
}
|
|
72
|
+
|
|
68
73
|
.e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:active,
|
|
69
74
|
.e-input-group:not(.e-disabled) .e-control.e-dropdownlist ~ .e-ddl-icon:hover,
|
|
70
75
|
.e-control.e-dropdownlist .e-input-group:not(.e-disabled) .e-ddl-icon:active,
|
|
@@ -321,7 +326,7 @@
|
|
|
321
326
|
|
|
322
327
|
.e-query-builder .e-rule-list > ::after,
|
|
323
328
|
.e-query-builder .e-rule-list > ::before {
|
|
324
|
-
border-style:
|
|
329
|
+
border-style: dashed;
|
|
325
330
|
content: '';
|
|
326
331
|
left: -12px;
|
|
327
332
|
position: absolute;
|
|
@@ -495,8 +500,8 @@
|
|
|
495
500
|
.e-query-builder .e-group-body .e-rule-container.e-joined-rule {
|
|
496
501
|
border-top-left-radius: 0;
|
|
497
502
|
border-top-right-radius: 0;
|
|
498
|
-
border-top-style:
|
|
499
|
-
border-top-width:
|
|
503
|
+
border-top-style: dashed;
|
|
504
|
+
border-top-width: 1px;
|
|
500
505
|
margin-top: 0;
|
|
501
506
|
}
|
|
502
507
|
|
|
@@ -29,7 +29,7 @@ $qrybldr-rule-list-after-border: 0 0 0 2px !default;
|
|
|
29
29
|
$qrybldr-rule-list-before-border: 0 0 2px 2px !default;
|
|
30
30
|
$qrybldr-rule-list-rtl-after-border: 0 2px 0 0 !default;
|
|
31
31
|
$qrybldr-rule-list-rtl-before-border: 0 2px 2px 0 !default;
|
|
32
|
-
$qrybldr-rule-list-border-style:
|
|
32
|
+
$qrybldr-rule-list-border-style: dashed !default;
|
|
33
33
|
$before-border-height: calc(50% + 14px) !default;
|
|
34
34
|
$after-border-height: calc(50% + 8px) !default;
|
|
35
35
|
$qrybldr-add-icon: '\e805' !default;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
//layout variables
|
|
2
|
+
$qrybldr-width: auto !default;
|
|
3
|
+
$qrybldr-height: auto !default;
|
|
4
|
+
$qrybldr-brdr: 1px solid !default;
|
|
5
|
+
$qrybldr-btngrp-brdr: none !default;
|
|
6
|
+
$grpcon-padding: 12px !default;
|
|
7
|
+
$qrybldr-device-diaplay: inline-block !default;
|
|
8
|
+
$group-action-margin: 12px !default;
|
|
9
|
+
$group-action-mrgntop: 5px !default;
|
|
10
|
+
$groupbody-paddingleft: 20px !default;
|
|
11
|
+
$rulecon-height: auto !default;
|
|
12
|
+
$rulecon-padding: 8px 0 8px 8px !default;
|
|
13
|
+
$hrmode-ruledlt-mrgn: 12px !default;
|
|
14
|
+
$vrmode-ruledlt-mrgnpos: absolute !default;
|
|
15
|
+
$qrybldr-rulelist-grcon-float: right !default;
|
|
16
|
+
$qrybldr-rulelist-grcon-width: 100% !default;
|
|
17
|
+
$qrybldr-button-hide: none !default;
|
|
18
|
+
$qrybldr-field: left !default;
|
|
19
|
+
$ruledelete-margin: 8px !default;
|
|
20
|
+
$radio-wrapper-margin: 15px !default;
|
|
21
|
+
$qrybldr-group-container-margin-top: 12px !default;
|
|
22
|
+
$qrybldr-group-container-margin-left: 0 !default;
|
|
23
|
+
$qrybldr-posn-relative: relative !default;
|
|
24
|
+
$rule-boxshadow: none !default;
|
|
25
|
+
$qrybldr-rule-list-first-left: -12px !default;
|
|
26
|
+
$qrybldr-rule-list-first-right: -12px !default;
|
|
27
|
+
$qrybldr-rule-list-before-top: -10px !default;
|
|
28
|
+
$qrybldr-rule-list-after-border: 0 0 0 2px !default;
|
|
29
|
+
$qrybldr-rule-list-before-border: 0 0 2px 2px !default;
|
|
30
|
+
$qrybldr-rule-list-rtl-after-border: 0 2px 0 0 !default;
|
|
31
|
+
$qrybldr-rule-list-rtl-before-border: 0 2px 2px 0 !default;
|
|
32
|
+
$qrybldr-rule-list-border-style: dotted !default;
|
|
33
|
+
$before-border-height: calc(50% + 14px) !default;
|
|
34
|
+
$after-border-height: calc(50% + 8px) !default;
|
|
35
|
+
$qrybldr-add-icon: '\e805' !default;
|
|
36
|
+
$qrybldr-delete-icon: '\e7e7' !default;
|
|
37
|
+
$bigger-group-action-margin: 16px !default;
|
|
38
|
+
$bigger-groupbody-paddingleft: 24px !default;
|
|
39
|
+
$bigger-hrmode-ruledlt-mrgn: 15px !default;
|
|
40
|
+
$bigger-rulecon-padding: 10px 0 10px 10px !default;
|
|
41
|
+
$device-rule-padding: 15px 0 0 15px !default;
|
|
42
|
+
$device-rule-padding-right: 15px !default;
|
|
43
|
+
$bigger-ruledelete-marginleft: 10px !default;
|
|
44
|
+
$qrybldr-rule-border: 1px solid !default;
|
|
45
|
+
$qrybldr-rule-list-after-height: calc(100% - 17px) !default;
|
|
46
|
+
$qrybldr-rule-list-height: 25px !default;
|
|
47
|
+
$qrybldr-rule-list-top: 17px !default;
|
|
48
|
+
$qrybldr-nav-width: 10px !default;
|
|
49
|
+
$qrybldr-rule-container-after-height: calc(50% + 6px) !default;
|
|
50
|
+
$qrybldr-rule-container-after-top: calc(50% - 3px) !default;
|
|
51
|
+
$qrybldr-grpcon-brder-left: -11px !default;
|
|
52
|
+
$bigger-rule-list-first-top: -14px !default;
|
|
53
|
+
$qrybldr-rulecont-margin: -1px !default;
|
|
54
|
+
$ruledelete-shadow: none !default;
|
|
55
|
+
$device-rulecon-padding: 14px !default;
|
|
56
|
+
$qrybldr-rulelist: 14px 0 14px 0 !default;
|
|
57
|
+
$qrybldr-bigger-rulelist: 16px 0 16px 0 !default;
|
|
58
|
+
$qrybldr-add-mrgn-btm: 2px !default;
|
|
59
|
+
$device-rulecon-right-padding: 8px !default;
|
|
60
|
+
$qrybldr-summary-padding: 12px !default;
|
|
61
|
+
$qrybldr-summary-btn-padding: 12px !default;
|
|
62
|
+
$qrybldr-bigger-summary-padding: 15px !default;
|
|
63
|
+
$qrybldr-bigger-summary-btn-padding: 15px !default;
|
|
64
|
+
$qrybldr-summary-text-width: 100% !default;
|
|
65
|
+
$qrybldr-clspe-rule-pos: absolute !default;
|
|
66
|
+
$qrybldr-btngrp-shadow: none !default;
|
|
67
|
+
$qrybldr-multi-width: 190px !default;
|
|
68
|
+
$qrybldr-device-value-width: 100% !default;
|
|
69
|
+
$qrybldr-btngroup-display: inline-block !default;
|
|
70
|
+
$qrybldr-grpcon-aftrbrder-left: -11px !default;
|
|
71
|
+
$after-ruleborder-height: calc(50% + 10px) !default;
|
|
72
|
+
$qrybldr-val-error-border: 8px solid !default;
|
|
73
|
+
$biggerafter-ruleborder-height: calc(50% + 12px) !default;
|
|
74
|
+
$qrybldr-bigger-rule-list-before-top: -12px !default;
|
|
75
|
+
$qrybldr-rule-list-first-top: -11px !default;
|
|
76
|
+
$qrybldr-collapse-rule-padding: 0 14px !default;
|
|
77
|
+
$qrybldr-multi-maxwidth: 200px !default;
|
|
78
|
+
$qrybldr-device-multi-maxwidth: 100% !default;
|
|
79
|
+
$qrybldr-btn-left: 10px !default;
|
|
80
|
+
$qrybldr-touch-btn-left: 14px !default;
|
|
81
|
+
$qrybldr-collapse-font-size: 20px !default;
|
|
82
|
+
$qrybldr-collapse-padding: 5px !default;
|
|
83
|
+
$qrybldr-collapse-box-shadow: none !default;
|
|
84
|
+
$qrybldr-collapse-txtarea-margin: 8px !default;
|
|
85
|
+
$qrybldr-brdr-radius: 4px !default;
|
|
86
|
+
$qrybldr-summary-line-height: 1.5em !default;
|
|
87
|
+
$qrybldr-smrytxt-font-size: 14px !default;
|
|
88
|
+
$qrybldr-bigger-smrytxt-font-size: 16px !default;
|
|
89
|
+
$qrybldr-spinner-right: 5px !default;
|
|
90
|
+
$qrybldr-spinner-left: auto !default;
|
|
91
|
+
$qrybldr-rtl-spinner-right: auto !default;
|
|
92
|
+
$qrybldr-rtl-spinner-left: 5px !default;
|
|
93
|
+
$qrybldr-btngrp-brdr-radius: 4px !default;
|
|
94
|
+
$qrybldr-btngroup-bgcolor: $primary !default;
|
|
95
|
+
$qrybldr-btngroup-color: $primary-text-color !default;
|
|
96
|
+
$qrybldr-color: $placeholder-text-color !default;
|
|
97
|
+
$qrybldr-rule-list-border-color: $border-light !default;
|
|
98
|
+
$qrybldr-btngroup-active-bgcolor: $primary !default;
|
|
99
|
+
$qrybldr-btngroup-active-color: $primary-text-color !default;
|
|
100
|
+
$groupborder-color: $border-light !default;
|
|
101
|
+
$groupfill-color: $secondary-bg-color !default;
|
|
102
|
+
$groupfill-bgcolor: $content-bg-color-alt1 !default;
|
|
103
|
+
$qrybldr-brdr-color: $border-light !default;
|
|
104
|
+
$qrybldr-bg-color: transparent !default;
|
|
105
|
+
$qrybldr-val-error-bg-color: $danger-light !default;
|
|
106
|
+
$qrybldr-val-error-color: $danger-bg-color !default;
|
|
107
|
+
$qrybldr-collapse-brdr-color: $border-light !default;
|
|
@@ -309,7 +309,12 @@
|
|
|
309
309
|
border-top-left-radius: 0;
|
|
310
310
|
border-top-right-radius: 0;
|
|
311
311
|
border-top-style: $qrybldr-rule-list-border-style;
|
|
312
|
-
|
|
312
|
+
@if $skin-name == 'tailwind' or $skin-name == 'bootstrap5' {
|
|
313
|
+
border-top-width: 1px;
|
|
314
|
+
}
|
|
315
|
+
@else {
|
|
316
|
+
border-top-width: 2px;
|
|
317
|
+
}
|
|
313
318
|
margin-top: 0;
|
|
314
319
|
}
|
|
315
320
|
|
|
@@ -29,7 +29,7 @@ $qrybldr-rule-list-after-border: 0 0 0 2px !default;
|
|
|
29
29
|
$qrybldr-rule-list-before-border: 0 0 2px 2px !default;
|
|
30
30
|
$qrybldr-rule-list-rtl-after-border: 0 2px 0 0 !default;
|
|
31
31
|
$qrybldr-rule-list-rtl-before-border: 0 2px 2px 0 !default;
|
|
32
|
-
$qrybldr-rule-list-border-style:
|
|
32
|
+
$qrybldr-rule-list-border-style: dashed !default;
|
|
33
33
|
$before-border-height: calc(50% + 14px) !default;
|
|
34
34
|
$after-border-height: calc(50% + 8px) !default;
|
|
35
35
|
$qrybldr-add-icon: '\e78a' !default;
|