| File: Components\Controls\Chart\ChartFilterPopover.razor.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. using Aspire.Dashboard.Model; using Microsoft.AspNetCore.Components; namespace Aspire.Dashboard.Components; public partial class ChartFilterPopover : IDisposable { [Parameter, EditorRequired] public required DimensionFilterViewModel Filter { get; set; } [Parameter, EditorRequired] public required EventCallback<DimensionFilterViewModel> OnSelectionChanged { get; set; } protected override void OnInitialized() { Filter.NotifyStateChanged += OnFilterStateChanged; } private void OnFilterStateChanged() { InvokeAsync(StateHasChanged); } private async Task OnTagSelectionChangedAsync(DimensionValueViewModel tag, bool isChecked) { Filter.OnTagSelectionChanged(tag, isChecked); Filter.NotifyStateChanged?.Invoke(); await OnSelectionChanged.InvokeAsync(Filter); } private async Task OnAllValuesSelectionChangedAsync(bool? isChecked) { Filter.AreAllValuesSelected = isChecked; Filter.NotifyStateChanged?.Invoke(); await OnSelectionChanged.InvokeAsync(Filter); } public void Dispose() { Filter.NotifyStateChanged -= OnFilterStateChanged; } }