diff --git a/libs/core/multi-combobox/multi-combobox.component.spec.ts b/libs/core/multi-combobox/multi-combobox.component.spec.ts index d1903c19d21..ccb779c484a 100644 --- a/libs/core/multi-combobox/multi-combobox.component.spec.ts +++ b/libs/core/multi-combobox/multi-combobox.component.spec.ts @@ -172,6 +172,29 @@ describe('MultiComboBox component', () => { expect(propagateChangeSpy).toHaveBeenCalled(); }); + it('should not move focus to search field when deselecting all items', () => { + const focusToSearchFieldSpy = jest.spyOn(component, '_focusToSearchField'); + const item = component._suggestions()[0]; + + // Select an item first + component._toggleSelection(item); + fixture.detectChanges(); + + expect(item.selected).toBe(true); + expect(component._selectedSuggestions().length).toEqual(1); + + // Toggle selection to deselect the only item + component._toggleSelection(item); + fixture.detectChanges(); + + // Verify item was deselected + expect(item.selected).toBe(false); + expect(component._selectedSuggestions().length).toEqual(0); + + // Verify that _focusToSearchField was NOT called + expect(focusToSearchFieldSpy).not.toHaveBeenCalled(); + }); + it('should select and unselect all items', () => { const selectEvent = new KeyboardEvent('keydown', { keyCode: A, diff --git a/libs/core/multi-combobox/multi-combobox.component.ts b/libs/core/multi-combobox/multi-combobox.component.ts index dce034fd987..20147400524 100644 --- a/libs/core/multi-combobox/multi-combobox.component.ts +++ b/libs/core/multi-combobox/multi-combobox.component.ts @@ -592,10 +592,6 @@ export class MultiComboboxComponent extends BaseMultiCombobox implem this._propagateChange(fromTokenCloseClick); - if (!this._selectedSuggestions().length) { - this._focusToSearchField(); - } - this._cd.detectChanges(); } diff --git a/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.spec.ts b/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.spec.ts index 0234bdfd239..44e33c3c9fb 100644 --- a/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.spec.ts +++ b/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.spec.ts @@ -269,4 +269,24 @@ describe('MultiComboboxComponent default values', () => { expect(multiCombobox._suggestions.length).toEqual(component.dataSource.length); expect(multiCombobox._selectedSuggestions.length).toEqual(component.selectedItems.length); }); + + it('should not move focus to search field when deselecting all items', () => { + const focusToSearchFieldSpy = jest.spyOn(multiCombobox, '_focusToSearchField'); + const item = multiCombobox._suggestions[0]; + + // Ensure we start with a selected item + expect(item.selected).toBe(true); + expect(multiCombobox._selectedSuggestions.length).toEqual(1); + + // Toggle selection to deselect the only item + multiCombobox.toggleSelection(item); + fixture.detectChanges(); + + // Verify item was deselected + expect(item.selected).toBe(false); + expect(multiCombobox._selectedSuggestions.length).toEqual(0); + + // Verify that _focusToSearchField was NOT called + expect(focusToSearchFieldSpy).not.toHaveBeenCalled(); + }); }); diff --git a/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.ts b/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.ts index 00bb19b8e64..94afccdf49b 100644 --- a/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.ts +++ b/libs/platform/form/multi-combobox/multi-combobox/multi-combobox.component.ts @@ -158,10 +158,6 @@ export class MultiComboboxComponent extends BaseMultiCombobox implements OnInit, this._propagateChange(); - if (!this._selectedSuggestions.length) { - this._focusToSearchField(); - } - this.detectChanges(); }