-
Notifications
You must be signed in to change notification settings - Fork 6.8k
Description
Feature Description
We would like to add an option in the CdkMenu
to disable the integrated TypeAhead feature.
Currently, the menu activates the TypeAhead for its FocusKeyManager
automatically:
components/src/cdk/menu/menu-base.ts
Line 175 in e91d509
this.keyManager = new FocusKeyManager(this.items).withWrap().withTypeAhead().withHomeAndEnd(); |
The proposal would be to add an input like cdkMenuTypeAhead: boolean
which defaults to true but can be used to skip the TypeAhead activation:
this.keyManager = new FocusKeyManager(this.items).withWrap().withHomeAndEnd();
if (this.cdkMenuTypeAhead) {
this.keyManager = this.keyManager.withTypeAhead()
}
Alternative
An alternative approach might be a combination of the following features, so the described use case can be accomplished by the CdkMenu
itself.
- Make the current search term (
_pressedLetters
) publicly available, so it can be displayed. - Two variants to extend the current search logic:
2.a Add a secondaryincludes
search to the currentstartsWith
.
2.b Make the search logic customizable with configurable predicate function.
Use Case
The use case is a custom search feature for our menus, which conflicts with the integrated TypeAhead.
We want to display the current search term and search by startsWith
& includes
.
🗨 I would appreciate some feedback, if this feature has a chance of being accepted. Then I can prepare a PR for this.
Activity
wagnermaciel commentedon Jan 29, 2025
A not great but easy workaround would be to define a typeaheadLabel that's some non-typeable character