From e270b3fd08859b97d06db8ef91037b7298c54c49 Mon Sep 17 00:00:00 2001 From: Samuele Locatelli Date: Tue, 13 Jun 2023 08:16:16 +0200 Subject: [PATCH] Aggiunta componente progBar, esempi --- EgwCoreLib.BlazorTest/Pages/Test.razor | 39 +++++++++++ EgwCoreLib.Razor/ProgBar.razor | 51 ++++++++++++++ EgwCoreLib.Razor/ProgBar.razor.cs | 94 ++++++++++++++++++++++++++ 3 files changed, 184 insertions(+) create mode 100644 EgwCoreLib.Razor/ProgBar.razor create mode 100644 EgwCoreLib.Razor/ProgBar.razor.cs diff --git a/EgwCoreLib.BlazorTest/Pages/Test.razor b/EgwCoreLib.BlazorTest/Pages/Test.razor index e47fa53..b76bd80 100644 --- a/EgwCoreLib.BlazorTest/Pages/Test.razor +++ b/EgwCoreLib.BlazorTest/Pages/Test.razor @@ -8,6 +8,8 @@
+ +
@@ -55,9 +57,46 @@
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ @code { private int currentCount = 0; + protected Random rnd = new Random(); + private void IncrementCount() { currentCount++; diff --git a/EgwCoreLib.Razor/ProgBar.razor b/EgwCoreLib.Razor/ProgBar.razor new file mode 100644 index 0000000..866be05 --- /dev/null +++ b/EgwCoreLib.Razor/ProgBar.razor @@ -0,0 +1,51 @@ +@if (singleLine) +{ +
+
+ @if (percWidthNum > redLimNum || percWidthNum <= 0) + { +
+ @if (showPerc) + { + @($"{percWidthNum}%") + } + @if (showAct) + { + @($" ({currVal:N0}{baseUM})") + } +
+ } +
+ @if (percWidthNum <= redLimNum && percWidthNum > 0) + { +
+ @if (showPerc) + { + @($"{percWidthNum}%") + } + @if (showAct) + { + @($" ({currVal:N0}{baseUM})") + } +
+ } +
+} +else +{ +
+ @currVal.ToString("N0") (@($"{maxVal:N0}")) +
+
+
+ @if (percWidthNum > redLimNum || percWidthNum <= 0) + { +
@(percWidthNum)%
+ } +
+ @if (percWidthNum <= redLimNum && percWidthNum > 0) + { +
@(percWidthNum)%
+ } +
+} \ No newline at end of file diff --git a/EgwCoreLib.Razor/ProgBar.razor.cs b/EgwCoreLib.Razor/ProgBar.razor.cs new file mode 100644 index 0000000..1199704 --- /dev/null +++ b/EgwCoreLib.Razor/ProgBar.razor.cs @@ -0,0 +1,94 @@ +using Microsoft.AspNetCore.Components; + +namespace EgwCoreLib.Razor +{ + public partial class ProgBar + { + #region Public Properties + + [Parameter] + public string baseUM { get; set; } = "h"; + + [Parameter] + public double currVal { get; set; } = 50; + + [Parameter] + public double maxVal { get; set; } = 100; + + [Parameter] + public int redLim { get; set; } = 10; + + [Parameter] + public bool showAct { get; set; } = true; + + [Parameter] + public bool showPerc { get; set; } = true; + + [Parameter] + public bool singleLine { get; set; } = false; + + [Parameter] + public int yelLim { get; set; } = 20; + + #endregion Public Properties + + #region Private Properties + + private string bgStyle + { + get => $"bg-{currStyle}"; + } + + private string currStyle + { + get + { + string answ = "dark"; + if (currVal <= redLim) + { + answ = "danger"; + } + else if (currVal <= yelLim) + { + answ = "warning"; + } + else + { + answ = "success"; + } + + return answ; + } + } + + private int percWidh + { + get + { + int answ = percWidthNum; + if (answ <= 0) + { + answ = 100; + } + return answ; + } + } + + private int percWidthNum { get => (int)(100 * currVal / maxVal); } + + private string textStyle + { + get => $"text-{currStyle}"; + } + + private string warnClass + { + get => currVal > 0 ? "d-none" : "text-danger"; + } + + private int yelLimNum { get => (int)(100 * yelLim / maxVal); } + private int redLimNum { get => (int)(100 * redLim / maxVal); } + + #endregion Private Properties + } +} \ No newline at end of file