182 references to AspireKeyboardShortcut
Aspire.Dashboard (117)
Components\Controls\SummaryDetailsView.razor.cs (13)
225public IReadOnlySet<AspireKeyboardShortcut> SubscribedShortcuts { get; } = new HashSet<AspireKeyboardShortcut> 227AspireKeyboardShortcut.ToggleOrientation, 228AspireKeyboardShortcut.ClosePanel, 229AspireKeyboardShortcut.ResetPanelSize, 230AspireKeyboardShortcut.IncreasePanelSize, 231AspireKeyboardShortcut.DecreasePanelSize 234public async Task OnPageKeyDownAsync(AspireKeyboardShortcut shortcut) 241if (shortcut is AspireKeyboardShortcut.ToggleOrientation) 247if (shortcut is AspireKeyboardShortcut.ClosePanel) 260if (shortcut is AspireKeyboardShortcut.ResetPanelSize) 266if (shortcut is AspireKeyboardShortcut.IncreasePanelSize) 271else if (shortcut is AspireKeyboardShortcut.DecreasePanelSize)
Components\Dialogs\KeyboardShortcut.cs (1)
10public record KeyboardShortcut(AspireKeyboardShortcut Shortcut, string[] Keys, string Description);
Components\Dialogs\KeyboardShortcutsHelp.razor.cs (19)
27new KeyboardShortcut(AspireKeyboardShortcut.GoToResources, ["r"], Loc[nameof(Resources.Dialogs.HelpDialogGoToResources)]), 28new KeyboardShortcut(AspireKeyboardShortcut.GoToParameters, ["p"], Loc[nameof(Resources.Dialogs.HelpDialogGoToParameters)]), 29new KeyboardShortcut(AspireKeyboardShortcut.GoToGraph, ["g"], Loc[nameof(Resources.Dialogs.HelpDialogGoToGraph)]), 30new KeyboardShortcut(AspireKeyboardShortcut.GoToTerminals, ["e"], Loc[nameof(Resources.Dialogs.HelpDialogGoToTerminals)]), 31new KeyboardShortcut(AspireKeyboardShortcut.GoToExtensions, ["x"], Loc[nameof(Resources.Dialogs.HelpDialogGoToExtensions)]), 35new KeyboardShortcut(AspireKeyboardShortcut.GoToTelemetrySources, ["o"], Loc[nameof(Resources.Dialogs.HelpDialogGoToTelemetrySources)]), 36new KeyboardShortcut(AspireKeyboardShortcut.GoToConsoleLogs, ["c"], Loc[nameof(Resources.Dialogs.HelpDialogGoToConsoleLogs)]), 37new KeyboardShortcut(AspireKeyboardShortcut.GoToStructuredLogs, ["s"], Loc[nameof(Resources.Dialogs.HelpDialogGoToStructuredLogs)]), 38new KeyboardShortcut(AspireKeyboardShortcut.GoToTraces, ["t"], Loc[nameof(Resources.Dialogs.HelpDialogGoToTraces)]), 39new KeyboardShortcut(AspireKeyboardShortcut.GoToMetrics, ["m"], Loc[nameof(Resources.Dialogs.HelpDialogGoToMetrics)]), 45new KeyboardShortcut(AspireKeyboardShortcut.GoToGraph, ["o"], Loc[nameof(Resources.Dialogs.HelpDialogPlayGame)]), 49new KeyboardShortcut(AspireKeyboardShortcut.IncreasePanelSize, ["+"], Loc[nameof(Resources.Dialogs.HelpDialogIncreasePanelSize)]), 50new KeyboardShortcut(AspireKeyboardShortcut.DecreasePanelSize, ["-"], Loc[nameof(Resources.Dialogs.HelpDialogDecreasePanelSize)]), 51new KeyboardShortcut(AspireKeyboardShortcut.ResetPanelSize, ["Shift", "R"], Loc[nameof(Resources.Dialogs.HelpDialogResetPanelSize)]), 52new KeyboardShortcut(AspireKeyboardShortcut.ToggleOrientation, ["Shift", "T"], Loc[nameof(Resources.Dialogs.HelpDialogTogglePanelOrientation)]), 53new KeyboardShortcut(AspireKeyboardShortcut.ClosePanel, ["Shift", "X"], Loc[nameof(Resources.Dialogs.HelpDialogTogglePanelOpen)]), 57new KeyboardShortcut(AspireKeyboardShortcut.Help, ["?"], Loc[nameof(Resources.Dialogs.HelpDialogGoToHelp)]), 58new KeyboardShortcut(AspireKeyboardShortcut.Settings, ["Shift", "S"], Loc[nameof(Resources.Dialogs.HelpDialogGoToSettings)]), 59new KeyboardShortcut(AspireKeyboardShortcut.ToggleTerminalDock, ["`"], Loc[nameof(Resources.Dialogs.HelpDialogToggleTerminalDock)]),
Components\Layout\MainLayout.razor.cs (31)
565private static readonly IReadOnlySet<AspireKeyboardShortcut> s_subscribedShortcuts = new HashSet<AspireKeyboardShortcut> 567AspireKeyboardShortcut.Help, 568AspireKeyboardShortcut.Settings, 569AspireKeyboardShortcut.GoToStructuredLogs, 570AspireKeyboardShortcut.GoToTraces, 571AspireKeyboardShortcut.GoToMetrics, 572AspireKeyboardShortcut.GoToTelemetrySources 575private static readonly IReadOnlySet<AspireKeyboardShortcut> s_resourceServiceSubscribedShortcuts = new HashSet<AspireKeyboardShortcut>( 578AspireKeyboardShortcut.GoToResources, 579AspireKeyboardShortcut.GoToConsoleLogs, 580AspireKeyboardShortcut.GoToParameters, 581AspireKeyboardShortcut.GoToExtensions 584public IReadOnlySet<AspireKeyboardShortcut> SubscribedShortcuts 593var shortcuts = new HashSet<AspireKeyboardShortcut>(s_resourceServiceSubscribedShortcuts); 596shortcuts.Add(AspireKeyboardShortcut.GoToGraph); 600shortcuts.Add(AspireKeyboardShortcut.GoToTerminals); 607public async Task OnPageKeyDownAsync(AspireKeyboardShortcut shortcut) 611case AspireKeyboardShortcut.Help: 614case AspireKeyboardShortcut.Settings: 617case AspireKeyboardShortcut.GoToResources when DashboardClient.IsEnabled: 620case AspireKeyboardShortcut.GoToConsoleLogs when DashboardClient.IsEnabled: 623case AspireKeyboardShortcut.GoToStructuredLogs: 626case AspireKeyboardShortcut.GoToTraces: 629case AspireKeyboardShortcut.GoToMetrics: 632case AspireKeyboardShortcut.GoToTerminals when DashboardClient.IsEnabled && _navigationAvailability.HasResourceTerminals: 635case AspireKeyboardShortcut.GoToParameters when DashboardClient.IsEnabled: 638case AspireKeyboardShortcut.GoToGraph when DashboardClient.IsEnabled && Options.CurrentValue.UI.DisableResourceGraph != true: 642case AspireKeyboardShortcut.GoToExtensions when DashboardClient.IsEnabled: 645case AspireKeyboardShortcut.GoToTelemetrySources:
Components\Layout\TerminalDock.razor.cs (5)
114public IReadOnlySet<AspireKeyboardShortcut> SubscribedShortcuts { get; } = new HashSet<AspireKeyboardShortcut> 116AspireKeyboardShortcut.ToggleTerminalDock 131public Task OnPageKeyDownAsync(AspireKeyboardShortcut shortcut) 132=> shortcut == AspireKeyboardShortcut.ToggleTerminalDock ? ToggleAsync() : Task.CompletedTask;
Components\Legacy\Dialogs\LegacyHelpDialog.razor.cs (14)
25new KeyboardShortcut(AspireKeyboardShortcut.GoToResources, ["r"], Loc[nameof(Resources.Dialogs.HelpDialogGoToResources)]), 26new KeyboardShortcut(AspireKeyboardShortcut.GoToConsoleLogs, ["c"], Loc[nameof(Resources.Dialogs.HelpDialogGoToConsoleLogs)]), 27new KeyboardShortcut(AspireKeyboardShortcut.GoToStructuredLogs, ["s"], Loc[nameof(Resources.Dialogs.HelpDialogGoToStructuredLogs)]), 28new KeyboardShortcut(AspireKeyboardShortcut.GoToTraces, ["t"], Loc[nameof(Resources.Dialogs.HelpDialogGoToTraces)]), 29new KeyboardShortcut(AspireKeyboardShortcut.GoToMetrics, ["m"], Loc[nameof(Resources.Dialogs.HelpDialogGoToMetrics)]), 30new KeyboardShortcut(AspireKeyboardShortcut.GoToTerminals, ["e"], Loc[nameof(Resources.Dialogs.HelpDialogGoToTerminals)]), 34new KeyboardShortcut(AspireKeyboardShortcut.IncreasePanelSize, ["+"], Loc[nameof(Resources.Dialogs.HelpDialogIncreasePanelSize)]), 35new KeyboardShortcut(AspireKeyboardShortcut.DecreasePanelSize, ["-"], Loc[nameof(Resources.Dialogs.HelpDialogDecreasePanelSize)]), 36new KeyboardShortcut(AspireKeyboardShortcut.ResetPanelSize, ["shift", "r"], Loc[nameof(Resources.Dialogs.HelpDialogResetPanelSize)]), 37new KeyboardShortcut(AspireKeyboardShortcut.ToggleOrientation, ["shift", "t"], Loc[nameof(Resources.Dialogs.HelpDialogTogglePanelOrientation)]), 38new KeyboardShortcut(AspireKeyboardShortcut.ClosePanel, ["shift", "x"], Loc[nameof(Resources.Dialogs.HelpDialogTogglePanelOpen)]), 42new KeyboardShortcut(AspireKeyboardShortcut.Help, ["?"], Loc[nameof(Resources.Dialogs.HelpDialogGoToHelp)]), 43new KeyboardShortcut(AspireKeyboardShortcut.Settings, ["shift", "s"], Loc[nameof(Resources.Dialogs.HelpDialogGoToSettings)]), 44new KeyboardShortcut(AspireKeyboardShortcut.ToggleTerminalDock, ["`"], Loc[nameof(Resources.Dialogs.HelpDialogToggleTerminalDock)]),
Components\Legacy\Layout\LegacyMainLayout.razor.cs (24)
496private static readonly IReadOnlySet<AspireKeyboardShortcut> s_subscribedShortcuts = new HashSet<AspireKeyboardShortcut> 498AspireKeyboardShortcut.Help, 499AspireKeyboardShortcut.Settings, 500AspireKeyboardShortcut.GoToStructuredLogs, 501AspireKeyboardShortcut.GoToTraces, 502AspireKeyboardShortcut.GoToMetrics 505private static readonly IReadOnlySet<AspireKeyboardShortcut> s_resourceServiceSubscribedShortcuts = new HashSet<AspireKeyboardShortcut>( 508AspireKeyboardShortcut.GoToResources, 509AspireKeyboardShortcut.GoToConsoleLogs 512private static readonly IReadOnlySet<AspireKeyboardShortcut> s_resourceTerminalsSubscribedShortcuts = new HashSet<AspireKeyboardShortcut>( 515AspireKeyboardShortcut.GoToTerminals 518public IReadOnlySet<AspireKeyboardShortcut> SubscribedShortcuts => 526public async Task OnPageKeyDownAsync(AspireKeyboardShortcut shortcut) 530case AspireKeyboardShortcut.Help: 533case AspireKeyboardShortcut.Settings: 536case AspireKeyboardShortcut.GoToResources when DashboardClient.IsEnabled: 539case AspireKeyboardShortcut.GoToConsoleLogs when DashboardClient.IsEnabled: 542case AspireKeyboardShortcut.GoToStructuredLogs: 545case AspireKeyboardShortcut.GoToTraces: 548case AspireKeyboardShortcut.GoToMetrics: 551case AspireKeyboardShortcut.GoToTerminals when DashboardClient.IsEnabled && _hasResourceTerminals:
Model\IGlobalKeydownListener.cs (2)
8IReadOnlySet<AspireKeyboardShortcut> SubscribedShortcuts { get; } 9Task OnPageKeyDownAsync(AspireKeyboardShortcut shortcut);
Serialization\DashboardJsonSerializerContext.cs (1)
26[JsonSerializable(typeof(AspireKeyboardShortcut))]
ShortcutManager.cs (7)
25public bool IsShortcutAvailable(AspireKeyboardShortcut shortcut) 28if (shortcut is AspireKeyboardShortcut.ToggleOrientation 29or AspireKeyboardShortcut.ClosePanel 30or AspireKeyboardShortcut.ResetPanelSize 31or AspireKeyboardShortcut.IncreasePanelSize 32or AspireKeyboardShortcut.DecreasePanelSize) 41public Task OnGlobalKeyDown(AspireKeyboardShortcut shortcut)
Aspire.Dashboard.Components.Tests (64)
Dialogs\HelpDialogTests.cs (2)
88var cut = RenderHelpDialog(subscribedShortcuts: graphAvailable ? [AspireKeyboardShortcut.GoToGraph] : []); 145private IRenderedComponent<HelpDialog> RenderHelpDialog(HelpDialogTab content = HelpDialogTab.KeyboardShortcuts, bool disableAgentHelp = false, bool disableResourceGraph = false, bool isDashboardClientEnabled = true, TestSessionStorage? sessionStorage = null, AspireKeyboardShortcut[]? subscribedShortcuts = null)
Dialogs\KeyboardShortcutsHelpTests.cs (20)
24shortcutManager.AddGlobalKeydownListener(new TestGlobalKeydownListener(AspireKeyboardShortcut.GoToResources)); 27shortcutManager.AddGlobalKeydownListener(new TestGlobalKeydownListener(AspireKeyboardShortcut.GoToTerminals)); 54AspireKeyboardShortcut.Help, 55AspireKeyboardShortcut.Settings)); 58shortcutManager.AddGlobalKeydownListener(new TestGlobalKeydownListener(AspireKeyboardShortcut.ToggleTerminalDock)); 84AspireKeyboardShortcut.Help, 85AspireKeyboardShortcut.Settings, 86AspireKeyboardShortcut.GoToStructuredLogs, 87AspireKeyboardShortcut.GoToTraces, 88AspireKeyboardShortcut.GoToMetrics)); 120AspireKeyboardShortcut.GoToResources, 121AspireKeyboardShortcut.GoToParameters, 122AspireKeyboardShortcut.GoToGraph, 123AspireKeyboardShortcut.GoToTerminals, 124AspireKeyboardShortcut.GoToExtensions, 125AspireKeyboardShortcut.GoToTelemetrySources, 126AspireKeyboardShortcut.GoToConsoleLogs, 127AspireKeyboardShortcut.GoToStructuredLogs, 128AspireKeyboardShortcut.GoToTraces, 129AspireKeyboardShortcut.GoToMetrics));
Layout\MainLayoutResourceTerminalsTests.cs (9)
41cut.WaitForAssertion(() => Assert.Equal(expectedAvailable, shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTerminals))); 43await cut.InvokeAsync(() => cut.Instance.OnPageKeyDownAsync(AspireKeyboardShortcut.GoToTerminals)); 75Assert.True(shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTerminals)); 81Assert.False(shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTerminals)); 87Assert.True(shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTerminals)); 92? shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTerminals) 132Assert.Equal(expected, cut.Instance.SubscribedShortcuts.Contains(AspireKeyboardShortcut.GoToTerminals)); 133Assert.Equal(expected, shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTerminals)); 143await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.GoToTerminals));
Layout\MainLayoutTerminalTests.cs (5)
55await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock)); 126await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock)); 147await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock)); 156await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock)); 199await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock));
Layout\MainLayoutTests.cs (22)
78[InlineData(AspireKeyboardShortcut.GoToResources, "/resources")] 79[InlineData(AspireKeyboardShortcut.GoToParameters, "/parameters")] 80[InlineData(AspireKeyboardShortcut.GoToGraph, "/resources")] 81[InlineData(AspireKeyboardShortcut.GoToExtensions, "/extensions")] 82[InlineData(AspireKeyboardShortcut.GoToTelemetrySources, "/structuredlogs?pane=telemetry")] 83[InlineData(AspireKeyboardShortcut.GoToConsoleLogs, "/consolelogs")] 84public async Task NavigationShortcut_OpensDestination(AspireKeyboardShortcut shortcut, string expectedUrl) 115foreach (var shortcut in new[] 117AspireKeyboardShortcut.GoToResources, 118AspireKeyboardShortcut.GoToParameters, 119AspireKeyboardShortcut.GoToGraph, 120AspireKeyboardShortcut.GoToExtensions, 121AspireKeyboardShortcut.GoToConsoleLogs 124var expectedAvailable = resourceServiceEnabled && (shortcut != AspireKeyboardShortcut.GoToGraph || !graphDisabled); 134Assert.True(shortcuts.IsShortcutAvailable(AspireKeyboardShortcut.GoToTelemetrySources)); 135await cut.InvokeAsync(() => shortcuts.OnGlobalKeyDown(AspireKeyboardShortcut.GoToTelemetrySources)); 1017[InlineData(AspireKeyboardShortcut.Help, "dashboard-help-button", "HelpDialog")] 1018[InlineData(AspireKeyboardShortcut.Settings, "dashboard-settings-button", "SettingsDialog")] 1019public async Task HeaderDialogShortcutClose_RestoresFocusToLaunchButton(AspireKeyboardShortcut shortcut, string launchButtonId, string expectedDialogId) 1054[InlineData(AspireKeyboardShortcut.GoToResources)] 1055[InlineData(AspireKeyboardShortcut.GoToConsoleLogs)] 1056public async Task ResourceServiceShortcut_WhenResourceServiceIsDisabled_DoesNotNavigate(AspireKeyboardShortcut shortcut)
Layout\TerminalDockTelemetryTests.cs (1)
53await Services.GetRequiredService<ShortcutManager>().OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock);
Layout\TerminalDockTests.cs (2)
254await Services.GetRequiredService<ShortcutManager>().OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock); 580await Services.GetRequiredService<ShortcutManager>().OnGlobalKeyDown(AspireKeyboardShortcut.ToggleTerminalDock);
Shared\TestGlobalKeydownListener.cs (3)
8internal sealed class TestGlobalKeydownListener(params AspireKeyboardShortcut[] shortcuts) : IGlobalKeydownListener 10public IReadOnlySet<AspireKeyboardShortcut> SubscribedShortcuts { get; } = shortcuts.ToHashSet(); 12public Task OnPageKeyDownAsync(AspireKeyboardShortcut shortcut)
Aspire.Dashboard.Tests (1)
DashboardJsonSerializerContextTests.cs (1)
54[InlineData(typeof(AspireKeyboardShortcut))]