@syncfusion/ej2-querybuilder 32.2.7 → 32.2.9

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.
@@ -2911,7 +2911,7 @@ let QueryBuilder = class QueryBuilder extends Component {
2911
2911
  value = dataSource[i][`${field}`].toString();
2912
2912
  }
2913
2913
  const data = {};
2914
- if (!(value in original)) {
2914
+ if (!(value in original) && value) {
2915
2915
  original[`${value}`] = 1;
2916
2916
  if (isNested === 0) {
2917
2917
  data[`${field}`] = value;
@@ -2999,8 +2999,27 @@ let QueryBuilder = class QueryBuilder extends Component {
2999
2999
  args.cancel = true;
3000
3000
  this.bindMultiSelectData(element, value);
3001
3001
  }
3002
+ const multiselectObj = getComponent(element, 'multiselect');
3003
+ if (!multiselectObj) {
3004
+ return;
3005
+ }
3006
+ const incomingQuery = (args.query) ? args.query : null;
3007
+ const existingQuery = multiselectObj.query ? multiselectObj.query : null;
3008
+ if (!this.areQueriesSame(existingQuery, incomingQuery)) {
3009
+ multiselectObj.query = null;
3010
+ args.query = null;
3011
+ }
3002
3012
  }
3003
3013
  }
3014
+ areQueriesSame(query1, query2) {
3015
+ if ((query1 === null || query1 === undefined) && (query2 === null || query2 === undefined)) {
3016
+ return true;
3017
+ }
3018
+ if ((query1 === null || query1 === undefined) || (query2 === null || query2 === undefined)) {
3019
+ return false;
3020
+ }
3021
+ return JSON.stringify(query1) === JSON.stringify(query2);
3022
+ }
3004
3023
  bindMultiSelectData(element, value) {
3005
3024
  this.getMultiSelectData(element, value);
3006
3025
  }
@@ -4199,9 +4218,18 @@ let QueryBuilder = class QueryBuilder extends Component {
4199
4218
  if (this.groupCloned && this.target instanceof HTMLElement &&
4200
4219
  this.getGroup(this.target).rules.length > 1) {
4201
4220
  const parent = this.element.querySelector('#' + groupID);
4221
+ const allContainers = parent.querySelectorAll(':scope > .e-group-body > .e-rule-list > [class*="-container"]');
4202
4222
  const topLevelGroups = parent.querySelectorAll(':scope > .e-group-body > .e-rule-list > .e-group-container');
4203
- if (groupID !== 'querybuilder_group0' && !(this.isAngular && groupID === 'ej2-querybuilder_0_group0')) {
4204
- this.groupIndex = topLevelGroups.length > 1 ? topLevelGroups.length - 1 : 0;
4223
+ if (topLevelGroups.length > 0 && groupID !== 'querybuilder_group0' && !(this.isAngular && groupID === 'ej2-querybuilder_0_group0')) {
4224
+ let lastGroupIndex = -1;
4225
+ const lastGroup = topLevelGroups[topLevelGroups.length - 1];
4226
+ for (let i = 0; i < allContainers.length; i++) {
4227
+ if (allContainers[i] === lastGroup) {
4228
+ lastGroupIndex = i;
4229
+ break;
4230
+ }
4231
+ }
4232
+ this.groupIndex = lastGroupIndex - 1;
4205
4233
  }
4206
4234
  }
4207
4235
  if (this.groupIndex < 0) {