angular / angular/components

feat(CdkMenu/CdkContextMenuTriggerFor): Allow CdkMenu to be programmatically opened/closed

Ouverte
#29,072 0 commentaires 1 réaction 0 personnes assignées Voir sur GitHub
area: cdk/menu feature P3
Langage dominant
TypeScript
Étoiles
25k
Forks
6.8k
Merge moyen
1 j 8 h
PR mergées (30 j)
91

Description

## Feature Description

### Current Behaviour

The directive `CdkMenu` is used with combination of `CdkContextMenuTriggerFor`. When user right-clicks (context-menu event), the menu gets opened and clicking on outside of the menu will close the menu.

### New Feature Requested

It would be great if user can manually/programmatically open/close the menu. And also disable closing the menu clicking outside.

#### Possible Solutions

1. Add a boolean input property `cdkContextMenuDisableCloseOnOutsideClick` - This will disable closing the `CdkMenu` on outside click
2. Add an event emitter property `cdkContextMenuTriggered` - This will emit everytime user right-clicks (context-menu event) with the coordinates
3. Add an event emitter property `cdkContextMenuClickedOutside` - This will emit everytime user clicks outside of the `CdkMenu`

### Use Case

This will allow users to handle animations with `CdkMenu` if they want to apply on open/close.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par lire les points d’entrée des directives CdkMenu et CdkContextMenuTriggerFor et par retracer le comportement existant d’ouverture du menu contextuel et de fermeture lors d’un clic à l’extérieur. Clarifiez l’API publique et la sémantique des événements pour l’ouverture/la fermeture programmatiques, la désactivation de la fermeture lors d’un clic à l’extérieur et les notifications de menu contextuel/clic à l’extérieur. Le travail est considéré comme terminé lorsque le comportement convenu est implémenté et couvert par les tests de menu pertinents.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
angular, typescript
Domaine
frontend
Type d'issue
Fonctionnalité
Difficulté
5/5
Temps estimé
Plus d'une semaine
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.