diff --git a/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.spec.ts b/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.spec.ts index 8b25e1f2e08..76656726a81 100644 --- a/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.spec.ts +++ b/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.spec.ts @@ -3,13 +3,11 @@ import { ComponentFixture, TestBed, waitForAsync } from '@angular/core/testing'; import { MultiAnnouncerDirective } from './multi-announcer.directive'; @Component({ - template: ` ` + template: ` ` }) class TestComponent { @ViewChild(MultiAnnouncerDirective) multiAnnouncerDirective: MultiAnnouncerDirective; - - values: string[] = ['Apple', 'Pineapple', 'Banana', 'Kiwi', 'Strawberry']; } describe('MultiAnnouncerDirective', () => { diff --git a/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.ts b/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.ts index 6510a16650b..8c7243a154f 100644 --- a/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.ts +++ b/libs/core/multi-combobox/multi-announcer/multi-announcer.directive.ts @@ -3,7 +3,7 @@ import { LiveAnnouncer } from '@angular/cdk/a11y'; import { ContentChildren, Directive, HostListener, inject, Input, QueryList } from '@angular/core'; import { KeyUtil } from '@fundamental-ngx/cdk/utils'; import { TokenComponent } from '@fundamental-ngx/core/token'; -import { resolveTranslationSyncFn } from '@fundamental-ngx/i18n'; +import { FdLanguageKeyIdentifier, resolveTranslationSyncFn } from '@fundamental-ngx/i18n'; @Directive({ selector: '[fdMultiAnnouncer]', @@ -39,29 +39,22 @@ export class MultiAnnouncerDirective { private _makeSearchTermChangeAnnouncements(event: KeyboardEvent): void { if (KeyUtil.isKeyType(event, 'alphabetical') || KeyUtil.isKeyType(event, 'numeric')) { this._liveAnnouncer.clear(); - if (!this.multiAnnouncerOptions.length && !this._noResultsAnnounced) { + const count = this.multiAnnouncerOptions?.length; + if (!count && !this._noResultsAnnounced) { this._buildAnnouncement(this._resolveTranslation('coreMultiInput.noResults')); this._noResultsAnnounced = true; this._resultsAnnounced = false; - } else if (this.multiAnnouncerOptions.length) { - if (this.multiAnnouncerOptions.length === 1) { - this._buildAnnouncement( - this._resolveTranslation('coreMultiInput.countListResultsSingular', { count: 1 }) - ); - } else { - this._buildAnnouncement( - this._resolveTranslation('coreMultiInput.countListResultsPlural', { - count: this.multiAnnouncerOptions.length - }) - ); - } + } else if (count) { + const trKey: FdLanguageKeyIdentifier = + count === 1 ? 'coreMultiInput.countListResultsSingular' : 'coreMultiInput.countListResultsPlural'; + this._buildAnnouncement(this._resolveTranslation(trKey, { count })); this._buildAnnouncement(this._resolveTranslation('coreMultiInput.navigateSelectionsWithArrows')); if (!this._resultsAnnounced) { this._noResultsAnnounced = false; this._resultsAnnounced = true; } } - if (this._tokens && this._tokens.length) { + if (this._tokens?.length) { this._buildAnnouncement(this._resolveTranslation('coreMultiInput.escapeNavigateTokens')); } this._makeAnnouncement(this._announcement);