mirror of
https://github.com/radzenhq/radzen-blazor.git
synced 2026-02-04 05:35:44 +00:00
58 lines
3.3 KiB
C#
58 lines
3.3 KiB
C#
using Microsoft.AspNetCore.Components;
|
|
using Radzen.Blazor.Rendering;
|
|
|
|
namespace Radzen.Blazor
|
|
{
|
|
/// <summary>
|
|
/// A circular progress indicator component for showing task completion or ongoing processes in a compact circular format.
|
|
/// RadzenProgressBarCircular displays progress as a ring with determinate (specific value) or indeterminate (spinning) modes.
|
|
/// Space-efficient and works well for dashboards, loading states, or anywhere circular design fits better than linear bars.
|
|
/// Inherits all features from RadzenProgressBar and adds circular design showing progress as a ring/arc instead of a linear bar,
|
|
/// size options (ExtraSmall, Small, Medium, Large) for different contexts, value display in the center of the circle, and compact design taking less space than linear progress bars.
|
|
/// Use for dashboard KPIs, button loading states, or compact loading indicators. The circular shape makes it ideal for displaying progress where space is limited.
|
|
/// </summary>
|
|
/// <example>
|
|
/// Basic circular progress:
|
|
/// <code>
|
|
/// <RadzenProgressBarCircular Value=@completionPercentage ShowValue="true" />
|
|
/// </code>
|
|
/// Small loading spinner:
|
|
/// <code>
|
|
/// <RadzenProgressBarCircular Mode="ProgressBarMode.Indeterminate"
|
|
/// Size="ProgressBarCircularSize.Small"
|
|
/// ProgressBarStyle="ProgressBarStyle.Primary" />
|
|
/// </code>
|
|
/// Dashboard metric with custom range:
|
|
/// <code>
|
|
/// <RadzenProgressBarCircular Value=@salesCount Max="1000" Size="ProgressBarCircularSize.Large"
|
|
/// Unit=" sales" ShowValue="true" ProgressBarStyle="ProgressBarStyle.Success" />
|
|
/// </code>
|
|
/// </example>
|
|
public partial class RadzenProgressBarCircular : RadzenProgressBar
|
|
{
|
|
/// <inheritdoc />
|
|
protected override string GetComponentCssClass() => ClassList.Create("rz-progressbar-circular")
|
|
.Add("rz-progressbar-determinate", Mode == ProgressBarMode.Determinate)
|
|
.Add("rz-progressbar-indeterminate", Mode == ProgressBarMode.Indeterminate)
|
|
.Add($"rz-progressbar-{ProgressBarStyle.ToString().ToLowerInvariant()}")
|
|
.Add($"rz-progressbar-circular-{CircleSize}")
|
|
.ToString();
|
|
|
|
string CircleSize => Size switch
|
|
{
|
|
ProgressBarCircularSize.Medium => "md",
|
|
ProgressBarCircularSize.Large => "lg",
|
|
ProgressBarCircularSize.Small => "sm",
|
|
ProgressBarCircularSize.ExtraSmall => "xs",
|
|
_ => string.Empty,
|
|
};
|
|
|
|
/// <summary>
|
|
/// Gets or sets the size of the circular progress indicator.
|
|
/// Controls the diameter of the circle: ExtraSmall, Small, Medium, or Large.
|
|
/// </summary>
|
|
/// <value>The circular progress bar size. Default is <see cref="ProgressBarCircularSize.Medium"/>.</value>
|
|
[Parameter]
|
|
public ProgressBarCircularSize Size { get; set; } = ProgressBarCircularSize.Medium;
|
|
}
|
|
} |