@using MudBlazor
@if (Buffer) {
}
@if (!string.IsNullOrEmpty(Icon)) {
}
@code { [Parameter] public double Value { get; set; } [Parameter] public double BufferValue { get; set; } [Parameter] public bool Buffer { get; set; } = true; [Parameter] public double Min { get; set; } = 0; [Parameter] public double Max { get; set; } = 100; [Parameter] public double Step { get; set; } = 1; [Parameter] public double Opacity { get; set; } = 1.0; [Parameter] public int Height { get; set; } = 4; [Parameter] public Color Color { get; set; } = Color.Primary; [Parameter] public string Icon { get; set; } = ""; [Parameter] public EventCallback ValueChanged { get; set; } private string ColorClass => $"track-color-{Color.ToString().ToLower()}"; private double CalculatePercentage(double val) => Max <= Min ? 0 : ((Math.Clamp(val, Min, Max) - Min) / (Max - Min)) * 100; private async Task OnInput(ChangeEventArgs e) { if (double.TryParse(e.Value?.ToString(), System.Globalization.NumberStyles.Any, System.Globalization.CultureInfo.InvariantCulture, out var newValue)) await ValueChanged.InvokeAsync(newValue); } private async Task HandleWheel(WheelEventArgs e) { double range = Max - Min; double wheelStep = range * 0.02; var newValue = e.DeltaY < 0 ? Math.Min(Value + wheelStep, Max) : Math.Max(Value - wheelStep, Min); await ValueChanged.InvokeAsync(newValue); } }