diff --git a/goldens/cdk/a11y/index.api.md b/goldens/cdk/a11y/index.api.md index ecd9b7654403..b084dded37e2 100644 --- a/goldens/cdk/a11y/index.api.md +++ b/goldens/cdk/a11y/index.api.md @@ -37,6 +37,7 @@ export class A11yModule { export class ActiveDescendantKeyManager extends ListKeyManager { setActiveItem(index: number): void; setActiveItem(item: T): void; + setActiveItem(item: T | number): void; } // @public @@ -169,6 +170,7 @@ export interface FocusableOption extends ListKeyManagerOption { export class FocusKeyManager extends ListKeyManager { setActiveItem(index: number): void; setActiveItem(item: T): void; + setActiveItem(item: T | number): void; setFocusOrigin(origin: FocusOrigin): this; } @@ -366,6 +368,7 @@ export class ListKeyManager { onKeydown(event: KeyboardEvent): void; setActiveItem(index: number): void; setActiveItem(item: T): void; + setActiveItem(item: T | number): void; setFirstItemActive(): void; setLastItemActive(): void; setNextItemActive(): void; diff --git a/src/cdk/a11y/key-manager/activedescendant-key-manager.ts b/src/cdk/a11y/key-manager/activedescendant-key-manager.ts index 3bc4d85606c0..d02fb120e58b 100644 --- a/src/cdk/a11y/key-manager/activedescendant-key-manager.ts +++ b/src/cdk/a11y/key-manager/activedescendant-key-manager.ts @@ -37,6 +37,13 @@ export class ActiveDescendantKeyManager extends ListKeyManager extends ListKeyManager { */ override setActiveItem(item: T): void; + /** + * Sets the active item to the item that is specified and focuses it. + * @param item Item to be set as active. + */ + override setActiveItem(item: T | number): void; + override setActiveItem(item: any): void { super.setActiveItem(item); diff --git a/src/cdk/a11y/key-manager/list-key-manager.ts b/src/cdk/a11y/key-manager/list-key-manager.ts index c52ebb9697e8..f2f9b398e462 100644 --- a/src/cdk/a11y/key-manager/list-key-manager.ts +++ b/src/cdk/a11y/key-manager/list-key-manager.ts @@ -203,6 +203,12 @@ export class ListKeyManager { */ setActiveItem(item: T): void; + /** + * Sets the active item to the specified item. + * @param item The item to be set as active. + */ + setActiveItem(item: T | number): void; + setActiveItem(item: any): void { const previousActiveItem = this._activeItem(); diff --git a/src/cdk/menu/menu-base.ts b/src/cdk/menu/menu-base.ts index 7b0184c6ed9e..3fbe591977cd 100644 --- a/src/cdk/menu/menu-base.ts +++ b/src/cdk/menu/menu-base.ts @@ -146,13 +146,7 @@ export abstract class CdkMenuBase * @param item The index of the item to be set as active, or the CdkMenuItem instance. */ setActiveMenuItem(item: number | CdkMenuItem) { - if (this.keyManager) { - if (typeof item === 'number') { - this.keyManager.setActiveItem(item); - } else { - this.keyManager.setActiveItem(item); - } - } + this.keyManager?.setActiveItem(item); } /** Gets the tabindex for this menu. */