diff --git a/packages/components/tags/tag-input.spec.ts b/packages/components/tags/tag-input.spec.ts index 61bfa5b61c..81f4800960 100644 --- a/packages/components/tags/tag-input.spec.ts +++ b/packages/components/tags/tag-input.spec.ts @@ -878,6 +878,18 @@ describe('KbqTagInput', () => { tagInputDirective.onKeydown(SPACE_EVENT); expect(preventDefaultSpy).toHaveBeenCalled(); }); + + it('should not prevent default when TAB separator is pressed with empty input', () => { + const TAB_EVENT = createKeyboardEvent('keydown', TAB, inputNativeElement, 'Tab'); + const preventDefaultSpy = jest.spyOn(TAB_EVENT, 'preventDefault'); + + tagInputDirective.separatorKeyCodes = [TAB]; + (inputNativeElement as HTMLInputElement).value = ''; + fixture.detectChanges(); + + tagInputDirective.onKeydown(TAB_EVENT); + expect(preventDefaultSpy).not.toHaveBeenCalled(); + }); }); }); diff --git a/packages/components/tags/tag-input.ts b/packages/components/tags/tag-input.ts index fa28fcd3aa..9e84d6207f 100644 --- a/packages/components/tags/tag-input.ts +++ b/packages/components/tags/tag-input.ts @@ -182,7 +182,7 @@ export class KbqTagInput implements KbqTagTextControl, OnChanges { const isSeparatorKey = this.isSeparatorKey(event); if (!this.inputElement.value) { - if (isSeparatorKey) { + if (isSeparatorKey && event.keyCode !== TAB) { event.preventDefault(); }