@syncfusion/ej2-querybuilder 33.2.3 → 33.2.5
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 +42 -3
- package/dist/es6/ej2-querybuilder.es2015.js.map +1 -1
- package/dist/es6/ej2-querybuilder.es5.js +43 -3
- 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 +5 -5
- package/src/query-builder/query-builder.d.ts +3 -0
- package/src/query-builder/query-builder.js +45 -3
|
@@ -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);
|
|
@@ -3349,7 +3354,9 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
3349
3354
|
const isTemplate = (typeof itemData.template === 'string');
|
|
3350
3355
|
if (rule.value && !isNullOrUndefined(format)) {
|
|
3351
3356
|
selVal = (length > 1) ? rule.value[i] : rule.value;
|
|
3352
|
-
|
|
3357
|
+
if (selVal) {
|
|
3358
|
+
selectedValue = this.parseDate(selVal, format) || new Date();
|
|
3359
|
+
}
|
|
3353
3360
|
}
|
|
3354
3361
|
if (!isNullOrUndefined(itemData) && itemData.value && !isTemplate) {
|
|
3355
3362
|
const parsedDate = this.parseDate(itemData.value.toString(), itemData.format);
|
|
@@ -4903,6 +4910,11 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
4903
4910
|
groupRule = groupRule.properties;
|
|
4904
4911
|
}
|
|
4905
4912
|
const groupElem = closest(targetGroup, '.e-group-container');
|
|
4913
|
+
const cloneGroupElem = groupElem.cloneNode(true);
|
|
4914
|
+
let isRuleArea = false;
|
|
4915
|
+
if (closest(e.target, '.e-group-container') && closest(e.target, '.e-group-container').id === this.initialID + '_group0') {
|
|
4916
|
+
isRuleArea = true;
|
|
4917
|
+
}
|
|
4906
4918
|
const nestGrpElem = groupElem.querySelectorAll('.e-group-container');
|
|
4907
4919
|
nestGrpElem.forEach((ele) => {
|
|
4908
4920
|
if (this.element.querySelector('#' + ele.id)) {
|
|
@@ -4920,11 +4932,23 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
4920
4932
|
ruleIds.push(ruleElems[i].id.split(this.element.id + '_')[1]);
|
|
4921
4933
|
}
|
|
4922
4934
|
this.deleteRules(ruleIds);
|
|
4935
|
+
// Calculate index considering both groups and rules in the overall rules collection
|
|
4936
|
+
let overallDropIndex = 0;
|
|
4937
|
+
const ruleListElem = cloneGroupElem.querySelector('.e-rule-list');
|
|
4938
|
+
if (ruleListElem) {
|
|
4939
|
+
for (let j = 0; j < ruleListElem.children.length; j++) {
|
|
4940
|
+
const child = ruleListElem.children[j];
|
|
4941
|
+
if (child.classList.contains('e-drag-rule-top-line') || child.classList.contains('e-drag-rule-bottom-line')) {
|
|
4942
|
+
overallDropIndex = j;
|
|
4943
|
+
break;
|
|
4944
|
+
}
|
|
4945
|
+
}
|
|
4946
|
+
}
|
|
4923
4947
|
if (targetGroup.classList.contains('e-drag-rule-top-line')) {
|
|
4924
|
-
groupRule.rules.splice(dropInd, 0, rule);
|
|
4948
|
+
groupRule.rules.splice(isRuleArea ? overallDropIndex : dropInd, 0, rule);
|
|
4925
4949
|
}
|
|
4926
4950
|
else {
|
|
4927
|
-
groupRule.rules.splice(dropInd + 1, 0, rule);
|
|
4951
|
+
groupRule.rules.splice(isRuleArea ? overallDropIndex + 1 : dropInd + 1, 0, rule);
|
|
4928
4952
|
}
|
|
4929
4953
|
groupRule.rules.forEach((rule) => {
|
|
4930
4954
|
if (this.enableSeparateConnector) {
|
|
@@ -5123,12 +5147,24 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
5123
5147
|
this.initWrapper();
|
|
5124
5148
|
this.wireEvents();
|
|
5125
5149
|
}
|
|
5150
|
+
scrollEventHandler(e) {
|
|
5151
|
+
const target = e.target;
|
|
5152
|
+
if (target && ((target.closest && target.closest('.e-popup')))) {
|
|
5153
|
+
this.isPopupScroll = true;
|
|
5154
|
+
}
|
|
5155
|
+
else {
|
|
5156
|
+
this.isPopupScroll = false;
|
|
5157
|
+
}
|
|
5158
|
+
}
|
|
5126
5159
|
wireEvents() {
|
|
5127
5160
|
const wrapper = this.getWrapper();
|
|
5128
5161
|
EventHandler.add(wrapper, 'click', this.clickEventHandler, this);
|
|
5129
5162
|
EventHandler.add(wrapper, 'focusout', this.focusEventHandler, this);
|
|
5130
5163
|
EventHandler.add(wrapper, 'focusin', this.focusEventHandler, this);
|
|
5131
5164
|
EventHandler.add(this.element, 'keydown', this.keyBoardHandler, this);
|
|
5165
|
+
this.boundScrollHandler = this.scrollEventHandler.bind(this);
|
|
5166
|
+
document.addEventListener('wheel', this.boundScrollHandler);
|
|
5167
|
+
document.addEventListener('scroll', this.boundScrollHandler);
|
|
5132
5168
|
if (this.allowDragAndDrop) {
|
|
5133
5169
|
EventHandler.add(document, 'keydown', this.keyBoardHandler, this);
|
|
5134
5170
|
}
|
|
@@ -5141,6 +5177,9 @@ let QueryBuilder = class QueryBuilder extends Component {
|
|
|
5141
5177
|
EventHandler.remove(wrapper, 'focusout', this.focusEventHandler);
|
|
5142
5178
|
EventHandler.remove(wrapper, 'focusin', this.focusEventHandler);
|
|
5143
5179
|
EventHandler.remove(this.element, 'keydown', this.keyBoardHandler);
|
|
5180
|
+
document.removeEventListener('wheel', this.boundScrollHandler);
|
|
5181
|
+
document.removeEventListener('scroll', this.boundScrollHandler);
|
|
5182
|
+
this.boundScrollHandler = null;
|
|
5144
5183
|
EventHandler.remove(document, 'keydown', this.keyBoardHandler);
|
|
5145
5184
|
if (this.boundResizeHandler) {
|
|
5146
5185
|
window.removeEventListener('resize', this.boundResizeHandler);
|