@syncfusion/ej2-querybuilder 33.1.49 → 33.2.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ej2-querybuilder.min.js +2 -2
- package/dist/ej2-querybuilder.umd.min.js +2 -2
- package/dist/ej2-querybuilder.umd.min.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es2015.js +39 -2
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +40 -2
- 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 +7 -7
- package/src/query-builder/query-builder.d.ts +3 -0
- package/src/query-builder/query-builder.js +42 -2
|
@@ -164,6 +164,7 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
164
164
|
this.isRuleClicked = false;
|
|
165
165
|
this.groupCloned = false;
|
|
166
166
|
this.isRequestSent = false;
|
|
167
|
+
this.isPopupScroll = false;
|
|
167
168
|
MultiSelect.Inject(CheckBoxSelection);
|
|
168
169
|
}
|
|
169
170
|
getPersistData() {
|
|
@@ -1295,6 +1296,10 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
1295
1296
|
if (tooltipCloseElement) {
|
|
1296
1297
|
tooltipCloseElement.style.display = 'none';
|
|
1297
1298
|
}
|
|
1299
|
+
}, beforeClose: (args) => {
|
|
1300
|
+
if (this.isPopupScroll) {
|
|
1301
|
+
args.cancel = true;
|
|
1302
|
+
}
|
|
1298
1303
|
}
|
|
1299
1304
|
});
|
|
1300
1305
|
tooltip.appendTo(element);
|
|
@@ -4903,6 +4908,11 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
4903
4908
|
groupRule = groupRule.properties;
|
|
4904
4909
|
}
|
|
4905
4910
|
const groupElem = closest(targetGroup, '.e-group-container');
|
|
4911
|
+
const cloneGroupElem = groupElem.cloneNode(true);
|
|
4912
|
+
let isRuleArea = false;
|
|
4913
|
+
if (closest(e.target, '.e-group-container') && closest(e.target, '.e-group-container').id === this.initialID + '_group0') {
|
|
4914
|
+
isRuleArea = true;
|
|
4915
|
+
}
|
|
4906
4916
|
const nestGrpElem = groupElem.querySelectorAll('.e-group-container');
|
|
4907
4917
|
nestGrpElem.forEach((ele) => {
|
|
4908
4918
|
if (this.element.querySelector('#' + ele.id)) {
|
|
@@ -4920,11 +4930,23 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
4920
4930
|
ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
|
|
4921
4931
|
}
|
|
4922
4932
|
this.deleteRules(ruleIds);
|
|
4933
|
+
// Calculate index considering both groups and rules in the overall rules collection
|
|
4934
|
+
let overallDropIndex = 0;
|
|
4935
|
+
const ruleListElem = cloneGroupElem.querySelector('.e-rule-list');
|
|
4936
|
+
if (ruleListElem) {
|
|
4937
|
+
for (let j = 0; j < ruleListElem.children.length; j++) {
|
|
4938
|
+
const child = ruleListElem.children[j];
|
|
4939
|
+
if (child.classList.contains('e-drag-rule-top-line') || child.classList.contains('e-drag-rule-bottom-line')) {
|
|
4940
|
+
overallDropIndex = j;
|
|
4941
|
+
break;
|
|
4942
|
+
}
|
|
4943
|
+
}
|
|
4944
|
+
}
|
|
4923
4945
|
if (targetGroup.classList.contains('e-drag-rule-top-line')) {
|
|
4924
|
-
groupRule.rules.splice(dropInd, 0, rule);
|
|
4946
|
+
groupRule.rules.splice(isRuleArea ? overallDropIndex : dropInd, 0, rule);
|
|
4925
4947
|
}
|
|
4926
4948
|
else {
|
|
4927
|
-
groupRule.rules.splice(dropInd + 1, 0, rule);
|
|
4949
|
+
groupRule.rules.splice(isRuleArea ? overallDropIndex + 1 : dropInd + 1, 0, rule);
|
|
4928
4950
|
}
|
|
4929
4951
|
groupRule.rules.forEach((rule) => {
|
|
4930
4952
|
if (this.enableSeparateConnector) {
|
|
@@ -5123,12 +5145,24 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
5123
5145
|
this.initWrapper();
|
|
5124
5146
|
this.wireEvents();
|
|
5125
5147
|
}
|
|
5148
|
+
scrollEventHandler(e) {
|
|
5149
|
+
const target = e.target;
|
|
5150
|
+
if (target && ((target.closest && target.closest('.e-popup')))) {
|
|
5151
|
+
this.isPopupScroll = true;
|
|
5152
|
+
}
|
|
5153
|
+
else {
|
|
5154
|
+
this.isPopupScroll = false;
|
|
5155
|
+
}
|
|
5156
|
+
}
|
|
5126
5157
|
wireEvents() {
|
|
5127
5158
|
const wrapper = this.getWrapper();
|
|
5128
5159
|
EventHandler.add(wrapper, 'click', this.clickEventHandler, this);
|
|
5129
5160
|
EventHandler.add(wrapper, 'focusout', this.focusEventHandler, this);
|
|
5130
5161
|
EventHandler.add(wrapper, 'focusin', this.focusEventHandler, this);
|
|
5131
5162
|
EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);
|
|
5163
|
+
this.boundScrollHandler = this.scrollEventHandler.bind(this);
|
|
5164
|
+
document.addEventListener('wheel', this.boundScrollHandler);
|
|
5165
|
+
document.addEventListener('scroll', this.boundScrollHandler);
|
|
5132
5166
|
if (this.allowDragAndDrop) {
|
|
5133
5167
|
EventHandler.add(document, 'keydown', this.keyBoardHandler, this);
|
|
5134
5168
|
}
|
|
@@ -5141,6 +5175,9 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
5141
5175
|
EventHandler.remove(wrapper, 'focusout', this.focusEventHandler);
|
|
5142
5176
|
EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);
|
|
5143
5177
|
EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
|
|
5178
|
+
document.removeEventListener('wheel', this.boundScrollHandler);
|
|
5179
|
+
document.removeEventListener('scroll', this.boundScrollHandler);
|
|
5180
|
+
this.boundScrollHandler = null;
|
|
5144
5181
|
EventHandler.remove(document, 'keydown', this.keyBoardHandler);
|
|
5145
5182
|
if (this.boundResizeHandler) {
|
|
5146
5183
|
window.removeEventListener('resize', this.boundResizeHandler);
|