@syncfusion/ej2-querybuilder 19.4.42 → 19.4.52

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.
@@ -680,12 +680,19 @@ let QueryBuilder = class QueryBuilder extends Component {
680
680
  else {
681
681
  groupElem = closest(target, '.e-group-container');
682
682
  rules = this.getParentGroup(groupElem);
683
+ const custom = rule.custom;
683
684
  if (Object.keys(rule).length) {
684
685
  rules.rules.push({
685
686
  'field': rule.field, 'type': rule.type, 'label': rule.label, 'operator': rule.operator, value: rule.value
686
687
  });
688
+ if (custom) {
689
+ rules.rules[rules.rules.length - 1].custom = custom;
690
+ }
687
691
  }
688
692
  else {
693
+ if (custom) {
694
+ newRule.custom = custom;
695
+ }
689
696
  rules.rules.push(newRule);
690
697
  }
691
698
  }
@@ -1253,6 +1260,9 @@ let QueryBuilder = class QueryBuilder extends Component {
1253
1260
  }
1254
1261
  changeField(args) {
1255
1262
  if (args.isInteracted) {
1263
+ if (isNullOrUndefined(args.value)) {
1264
+ return;
1265
+ }
1256
1266
  this.isFieldChange = true;
1257
1267
  this.prevItemData = args.itemData;
1258
1268
  const fieldElem = closest(args.element, '.e-rule-filter') || closest(args.element, '.e-rule-sub-filter');
@@ -1303,6 +1313,7 @@ let QueryBuilder = class QueryBuilder extends Component {
1303
1313
  ruleElem = ruleElem.previousElementSibling;
1304
1314
  index++;
1305
1315
  }
1316
+ rules.rules[index].value = '';
1306
1317
  this.changeRule(rules.rules[index], args);
1307
1318
  }
1308
1319
  }
@@ -1390,6 +1401,9 @@ let QueryBuilder = class QueryBuilder extends Component {
1390
1401
  getComponent(tooltipElem[i], 'tooltip').destroy();
1391
1402
  }
1392
1403
  if (!args.cancel) {
1404
+ if (isNullOrUndefined(this.selectedColumn)) {
1405
+ return;
1406
+ }
1393
1407
  tempRule.type = this.selectedColumn.type;
1394
1408
  if (ruleElem.querySelector('.e-template')) {
1395
1409
  rule.value = '';
@@ -3385,7 +3399,11 @@ let QueryBuilder = class QueryBuilder extends Component {
3385
3399
  }
3386
3400
  }
3387
3401
  const isTemplateRendered = clnruleElem.querySelector('.e-template-value');
3388
- detach(clnruleElem);
3402
+ try {
3403
+ detach(clnruleElem);
3404
+ }
3405
+ catch (err) {
3406
+ }
3389
3407
  if (column && column.ruleTemplate) {
3390
3408
  this.clearQBTemplate([clnruleElem.id]);
3391
3409
  }
@@ -3505,10 +3523,14 @@ let QueryBuilder = class QueryBuilder extends Component {
3505
3523
  }
3506
3524
  }
3507
3525
  if ((this.isRefreshed && this.enablePersistence) || (this.rule.field !== '' && rule.operator !== '' && (rule.value !== '' &&
3508
- rule.value !== undefined))) {
3526
+ rule.value !== undefined)) || (customObj && customObj.isQuestion)) {
3527
+ const condition = rule.condition;
3509
3528
  rule = {
3510
3529
  'label': rule.label, 'field': rule.field, 'operator': rule.operator, 'type': rule.type, 'value': rule.value
3511
3530
  };
3531
+ if (condition) {
3532
+ rule.condition = condition;
3533
+ }
3512
3534
  if (customObj) {
3513
3535
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
3514
3536
  rule.custom = customObj;
@@ -3817,6 +3839,12 @@ let QueryBuilder = class QueryBuilder extends Component {
3817
3839
  break;
3818
3840
  }
3819
3841
  }
3842
+ else if (field.indexOf(this.separator) > -1) {
3843
+ if (columns[i].field === field.split(this.separator)[0]) {
3844
+ column = columns[i];
3845
+ break;
3846
+ }
3847
+ }
3820
3848
  }
3821
3849
  return column;
3822
3850
  }
@@ -3906,7 +3934,7 @@ let QueryBuilder = class QueryBuilder extends Component {
3906
3934
  }
3907
3935
  if (!(operator.indexOf('null') > -1 || operator.indexOf('empty') > -1)) {
3908
3936
  for (let j = 0, jLen = value.length; j < jLen; j++) {
3909
- if (value[j] !== '') {
3937
+ if (value[j] !== '' || ((operator === 'in' || operator === 'notin') && column.type === 'string')) {
3910
3938
  if (j === 0) {
3911
3939
  const gte = 'greaterthanorequal';
3912
3940
  switch (operator) {
@@ -4205,7 +4233,7 @@ let QueryBuilder = class QueryBuilder extends Component {
4205
4233
  else {
4206
4234
  queryStr += '(';
4207
4235
  }
4208
- const condition = rules.condition;
4236
+ let condition = rules.condition;
4209
4237
  if (rules.not) {
4210
4238
  if (isRoot) {
4211
4239
  queryStr += 'NOT (';
@@ -4284,8 +4312,14 @@ let QueryBuilder = class QueryBuilder extends Component {
4284
4312
  }
4285
4313
  queryStr += rule.field + ' ' + this.operators[rule.operator] + ' ' + valueStr;
4286
4314
  }
4315
+ if (rule.condition && rule.condition != '') {
4316
+ condition = rule.condition;
4317
+ }
4287
4318
  }
4288
4319
  if (j !== jLen - 1) {
4320
+ if (condition === '') {
4321
+ condition = rules.rules[j].condition;
4322
+ }
4289
4323
  queryStr += ' ' + condition.toUpperCase() + ' ';
4290
4324
  }
4291
4325
  }