@syncfusion/ej2-multicolumn-combobox 33.1.44 → 33.1.49

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.
@@ -208,6 +208,7 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
208
208
  super(options, element);
209
209
  this.gridInject = new MultiColumnGrid();
210
210
  this.isShowSpinner = true;
211
+ this.isClearing = false;
211
212
  this.gridInject.InjectModules();
212
213
  }
213
214
  /**
@@ -467,6 +468,13 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
467
468
  this.updateGridHeight(true, true);
468
469
  }
469
470
  this.popupObj.refreshPosition();
471
+ if (args.requestType === 'refresh') {
472
+ setTimeout(() => {
473
+ if (this.popupObj && this.isPopupOpen) {
474
+ this.popupObj.refreshPosition();
475
+ }
476
+ }, 0);
477
+ }
470
478
  this.gridObj.element.querySelector('.e-content').scrollTop = 0;
471
479
  }
472
480
  handleKeyPressed(args) {
@@ -790,6 +798,10 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
790
798
  return fieldVal;
791
799
  }
792
800
  initValue(isRerender, isValue, isInitial) {
801
+ // Prevent re-entry during null value clearing
802
+ if (this.isClearing) {
803
+ return;
804
+ }
793
805
  const prevItemData = this.gridObj.getSelectedRecords()[0];
794
806
  const prevItemEle = this.gridObj.getSelectedRows()[0];
795
807
  let item;
@@ -800,6 +812,21 @@ let MultiColumnComboBox = class MultiColumnComboBox extends Component {
800
812
  this.isProtectedOnChange = true;
801
813
  this.value = this.value ? this.value.toString() : this.value;
802
814
  this.isProtectedOnChange = prevOnChange;
815
+ // Handle explicit null value assignment
816
+ if (isRerender && isValue && isNullOrUndefined(this.value)) {
817
+ this.isClearing = true;
818
+ // Clear all state when value is explicitly set to null
819
+ const prevOnChangeProtect = this.isProtectedOnChange;
820
+ this.isProtectedOnChange = true;
821
+ Input.setValue('', this.inputEle, this.floatLabelType, this.showClearButton);
822
+ this.setHiddenValue(); // Clears hidden element when value is null
823
+ this.gridObj.clearSelection();
824
+ this.text = null;
825
+ this.index = null;
826
+ this.isProtectedOnChange = prevOnChangeProtect;
827
+ this.isClearing = false;
828
+ return;
829
+ }
803
830
  const updateValues = (dataList) => {
804
831
  const result = this.updateCurrentValues(item, dataList);
805
832
  currentValue = result.currentValue;