ProtectedContextGet the current context (for subclasses)
ProtectedBuildBuild menu items for each registered theme plus a 'System' option.
Each theme gets a select-theme-<id> item ID. The currently active
theme (or 'system' preference) shows a checkmark icon.
Cleanup when menu is destroyed
ProtectedGenerateGenerate a unique tab ID
ProtectedGetGet default menu configuration options
ProtectedGetGet the ordered list of group names for menu rendering. Override to insert custom groups (e.g., 'organization' before 'primary').
Get the complete menu element list including dividers between groups. This is called by the template to render the menu.
Get all menu items. Override to customize the menu structure.
Items are grouped by the group property with dividers between groups.
Groups are rendered in this order: primary, developer, system, danger.
Developer-only items are automatically hidden unless the user has Developer role AND developer mode is enabled.
Get current menu options
ProtectedGetGet an appropriate icon for a base theme type. Used for non-active theme items to hint at light vs dark.
Get user display information for menu header
ProtectedGroupGroup items by their group property
ProtectedHandle_Signal the shell to open the About dialog
ProtectedHandle_Handle "Sign Out" click
ProtectedHandle_Handle "Pin to Home" click - signals the shell to pin the active resource
ProtectedHandle_Handle "My Profile" click — signals the shell to open the new Identity Card profile dialog. The shell wires this to ProfileDialogService.
ProtectedHandle_Handle "Reset Layout" click
ProtectedHandle_Handle "Sharing Center" click — signals the shell to open the dialog.
The shell has access to ViewContainerRef and the dialog service; the
menu only needs to report the intent.
ProtectedHandle_Signal the shell to open the feedback dialog
Handle menu item click. Dispatches to specific Handle_
ProtectedHandleHandle theme selection clicks.
Item IDs follow the pattern 'select-theme-
Initialize the menu with context. Called by shell component.
ProtectedIsCheck if a menu item should be visible based on current context
ProtectedOnProtectedOnGeneric click handler for items without specific handlers. Override for custom default behavior.
Update context (called by shell when developer mode changes)
Base class for user menu implementations with built-in default behavior.
This class provides the standard MemberJunction user menu. To customize:
Subclasses automatically get higher priority via compiler order since they import this class, causing their
Register Class
to execute after this one.
Example