@using System.Globalization
@if (IsSelectMode()) {
@SelectionLabel()
Add To Collection Add To Playlist Clear Selection
} else {
@Query
@PaddedString(Math.Min((PageNumber - 1) * PageSize + 1, TotalCount), TotalCount) - @PaddedString(Math.Min(TotalCount, PageNumber * PageSize), TotalCount) of @TotalCount
@if (SelectAllOnPage is not null) {
Select All
}
}
@code { [Parameter] public string Query { get; set; } [Parameter] public int PageNumber { get; set; } [Parameter] public int PageSize { get; set; } [Parameter] public int TotalCount { get; set; } [Parameter] public EventCallback PrevPage { get; set; } [Parameter] public EventCallback NextPage { get; set; } [Parameter] public Func IsSelectMode { get; set; } [Parameter] public Func SelectionLabel { get; set; } [Parameter] public Func AddSelectionToCollection { get; set; } [Parameter] public Func AddSelectionToPlaylist { get; set; } [Parameter] public Action ClearSelection { get; set; } [Parameter] public Func CanSelectAllOnPage { get; set; } [Parameter] public Action SelectAllOnPage { get; set; } private static MarkupString PaddedString(int value, int maximum) { int length = maximum.ToString(CultureInfo.InvariantCulture).Length; return (MarkupString)value.ToString(CultureInfo.InvariantCulture).PadLeft(length, ' ').Replace(" ", " "); } }