feat(CdkMenu): Option to disable typeahead in CdkMenu
- Lingua principale
- TypeScript
- Stelle
- 25k
- Fork
- 6.8k
- Merge medio
- 1g 8h
- PR unite (30g)
- 91
Descrizione
### 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:
https://github.com/angular/components/blob/e91d5091bbf3d44cc168be458269d260a0c22c27/src/cdk/menu/menu-base.ts#L175
The proposal would be to add an input like `cdkMenuTypeAhead: boolean` which defaults to true but can be used to skip the TypeAhead activation:
```ts
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.
1. Make the current search term (`_pressedLetters`) publicly available, so it can be displayed.
2. Two variants to extend the current search logic:
2.a Add a secondary `includes` search to the current `startsWith`.
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.**
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Inizia in src/cdk/menu/menu-base.ts, nella configurazione di FocusKeyManager intorno alla riga collegata, quindi segui come vengono dichiarati gli input di CdkMenu e come viene attivato typeahead. La modifica è completa quando il menu può disattivare typeahead mantenendo il comportamento predefinito attuale; esamina i test esistenti del menu, se disponibili, per verificare entrambi i percorsi.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- angular, typescript
- Ambito
- frontend
- Tipo di issue
- Funzionalità
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Stato di attività
- Ferma
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100