| File: Components\Resize\DimensionManager.cs | Web Access |
| Project: src\src\Aspire.Dashboard\Aspire.Dashboard.csproj (Aspire.Dashboard) |
// Licensed to the .NET Foundation under one or more agreements. // The .NET Foundation licenses this file to you under the MIT license. namespace Aspire.Dashboard.Components.Resize; public class DimensionManager { private ViewportInformation? _viewportInformation; private ViewportSize? _viewportSize; private bool? _isAISidebarOpen; public event ViewportSizeChangedEventHandler? OnViewportSizeChanged; public event ViewportInformationChangedEventHandler? OnViewportInformationChanged; public ViewportInformation ViewportInformation => _viewportInformation ?? throw new ArgumentNullException(nameof(_viewportInformation)); public ViewportSize ViewportSize => _viewportSize ?? throw new ArgumentNullException(nameof(_viewportSize)); public bool IsAISidebarOpen => _isAISidebarOpen ?? throw new ArgumentNullException(nameof(_isAISidebarOpen)); public bool HasViewportSize => _viewportSize != null; internal void InvokeOnViewportSizeChanged(ViewportSize newViewportSize, bool isAISidebarOpen) { _viewportSize = newViewportSize; _isAISidebarOpen = isAISidebarOpen; OnViewportSizeChanged?.Invoke(this, new ViewportSizeChangedEventArgs(newViewportSize, isAISidebarOpen)); } internal void InvokeOnViewportInformationChanged(ViewportInformation newViewportInformation) { _viewportInformation = newViewportInformation; OnViewportInformationChanged?.Invoke(this, new ViewportInformationChangedEventArgs(newViewportInformation)); } } public delegate void ViewportInformationChangedEventHandler(object sender, ViewportInformationChangedEventArgs e); public delegate void ViewportSizeChangedEventHandler(object sender, ViewportSizeChangedEventArgs e); public class ViewportInformationChangedEventArgs(ViewportInformation viewportInformation) : EventArgs { public ViewportInformation ViewportInformation { get; } = viewportInformation; } public class ViewportSizeChangedEventArgs(ViewportSize viewportSize, bool isAISidebarOpen) : EventArgs { public ViewportSize ViewportSize { get; } = viewportSize; public bool IsAISidebarOpen { get; } = isAISidebarOpen; }