@using TrafagSalesExporter.Models @using TrafagSalesExporter.Services @using Microsoft.AspNetCore.Components.Routing @if (Item.ItemType == NavigationMenuItemTypes.Group) { @foreach (var child in Children) { } } else if (Item.ItemType == NavigationMenuItemTypes.Action) { @Title } else { @Title } @code { [Parameter, EditorRequired] public NavigationMenuItem Item { get; set; } = default!; [Parameter, EditorRequired] public IReadOnlyList Items { get; set; } = []; [Parameter] public HashSet HiddenKeys { get; set; } = []; [Parameter] public EventCallback OnAction { get; set; } private string Title => UiText.Text(Item.TitleDe, Item.TitleEn); private string Icon => NavigationIconResolver.Resolve(Item.Icon); private NavLinkMatch Match => string.Equals(Item.Match, "All", StringComparison.OrdinalIgnoreCase) ? NavLinkMatch.All : NavLinkMatch.Prefix; [Inject] private IUiTextService UiText { get; set; } = default!; private IEnumerable Children => Items .Where(x => x.IsVisible) .Where(x => !HiddenKeys.Contains(x.Key)) .Where(x => string.Equals(x.ParentKey, Item.Key, StringComparison.OrdinalIgnoreCase)) .OrderBy(x => x.SortOrder) .ThenBy(x => x.TitleDe); }