diff --git a/MP.MONO.DECODER/Program.cs b/MP.MONO.DECODER/Program.cs index 21f4593..fe9c7e4 100644 --- a/MP.MONO.DECODER/Program.cs +++ b/MP.MONO.DECODER/Program.cs @@ -642,7 +642,10 @@ async void AlarmsValPipe_EA_NewMessage(object? sender, EventArgs e) } // salvo nuovo elenco allarmi - lastAlarms = alarmList; + if (alarmList != null) + { + lastAlarms = alarmList; + } } catch { } diff --git a/MP.MONO.SIM/Program.cs b/MP.MONO.SIM/Program.cs index 027fa2d..87a6e27 100644 --- a/MP.MONO.SIM/Program.cs +++ b/MP.MONO.SIM/Program.cs @@ -97,6 +97,7 @@ threadMaint.Start(); threadTools.Start(); threadEvHistory.Start(); threadActLog.Start(); +#if false /// /// verifica esistenza file oppure lo crea... @@ -108,7 +109,8 @@ void checkFilePresent(string filePath) { File.WriteAllText(filePath, $"{filePath} created!"); } -} +} +#endif /// /// Setup e salvataggio redis delle conf (es modi/stati) @@ -298,7 +300,9 @@ void simAlarms() { DateTime lastOk = DateTime.Now; DateTime lastAlarm = DateTime.Now.AddMilliseconds(-1); - int stdPeriod = 1000; +#if false + int stdPeriod = 1000; +#endif /* Modalità simulazione blink... * - verifico da quanto non ho allarmi diff --git a/MP.MONO.UI/Components/AlarmsOverview.razor b/MP.MONO.UI/Components/AlarmsOverview.razor index 2589855..e76e3d7 100644 --- a/MP.MONO.UI/Components/AlarmsOverview.razor +++ b/MP.MONO.UI/Components/AlarmsOverview.razor @@ -7,75 +7,82 @@ @if (@ListRecords != null) { +
+
ALARMS
+
+
-
-
-
+
+
+
+ @if (!compMode) + { + Current alarms + @if (ListRecords.Count == 0) + { + @ListRecords.Count + }@* + else + { + @ListRecords.Count + }*@ + } + else + { + + @if (ListRecords.Count == 0) + { + +
ACTIVE ALARMS:@ListRecords.Count
+ + } + @*else + { +
ACTIVE ALARMS:@ListRecords.Count
+ + }*@ + } +
+ +
+ @if (!compMode) + { +
+ + Alarm Analysis + +
+ } +
@if (!compMode) { - Current alarms - @if (ListRecords.Count == 0) + if (@ListRecords.Count == 0) { - @ListRecords.Count +
All OK
} else { - @ListRecords.Count - } - } - else - { - @if (ListRecords.Count == 0) - { - -
ACTIVE ALARMS:@ListRecords.Count
- - } - else - { -
ACTIVE ALARMS:@ListRecords.Count
- +
    + @foreach (var item in ListRecords) + { +
  • +
    +
    + @item.Title +
    +
    + @item.Value +
    +
    +
  • + } +
} }
-
- @if (!compMode) - { -
- - Alarm Analysis - -
- }
- @if (!compMode) - { - if (@ListRecords.Count == 0) - { -
All OK
- } - else - { - -
    - @foreach (var item in ListRecords) - { -
  • -
    -
    - @item.Title -
    -
    - @item.Value -
    -
    -
  • - } -
- } - } } else { diff --git a/MP.MONO.UI/Components/AlarmsOverview.razor.cs b/MP.MONO.UI/Components/AlarmsOverview.razor.cs index 0036be2..5314178 100644 --- a/MP.MONO.UI/Components/AlarmsOverview.razor.cs +++ b/MP.MONO.UI/Components/AlarmsOverview.razor.cs @@ -28,18 +28,15 @@ namespace MP.MONO.UI.Components private string css() { string answ = ""; - if (compMode) + if (ListRecords != null) { - if (ListRecords != null) + if (ListRecords.Count == 0) { - if (ListRecords.Count == 0) - { - answ = "text-dark bg-success"; - } - else - { - answ = "pulse-warning text-dark bg-danger"; - } + answ = "text-dark"; + } + else + { + answ = "pulse-warning text-warning bg-danger "; } } return answ; @@ -115,6 +112,16 @@ namespace MP.MONO.UI.Components }).ToList(); messageReceived.InvokeAsync(alarmList.Count); } + if (ListRecords.Count != 0 || ListRecords == null) + { + compMode = false; + trigger.show = false; + } + else + { + compMode = true; + trigger.show = true; + } } catch { } @@ -124,8 +131,10 @@ namespace MP.MONO.UI.Components StateHasChanged(); }); numAlarm = ListRecords.Count; - } + + } + toolsTrigger trigger = new toolsTrigger(); #endregion Private Methods } } \ No newline at end of file diff --git a/MP.MONO.UI/Components/MaintTaskPending.razor b/MP.MONO.UI/Components/MaintTaskPending.razor index dd272e4..4435c21 100644 --- a/MP.MONO.UI/Components/MaintTaskPending.razor +++ b/MP.MONO.UI/Components/MaintTaskPending.razor @@ -103,6 +103,7 @@ @if (!compMode) { + ID Created Topic @@ -124,7 +125,17 @@ @if (!compMode) { - @record.PMTaskeNav.ExtIdx + + + + + + +
+ @record.PMTaskeNav.ExtIdx   + +
+ @record.DtCreation.ToString("yyyy-MM-dd HH:mm:ss") @record.PMTaskeNav.TopicNav.Description @record.PMTaskeNav.MachGroupNav.Description @@ -170,7 +181,6 @@ opacity: 0.0; -webkit-transition: all 500ms ease-in-out; -moz-transition: all 500ms ease-in-out; - -ms-transition: all 500ms ease-in-out; -o-transition: all 500ms ease-in-out; transition: all 500ms ease-in-out; } diff --git a/MP.MONO.UI/Components/MaintTaskPending.razor.cs b/MP.MONO.UI/Components/MaintTaskPending.razor.cs index f1b8601..4afe107 100644 --- a/MP.MONO.UI/Components/MaintTaskPending.razor.cs +++ b/MP.MONO.UI/Components/MaintTaskPending.razor.cs @@ -3,11 +3,20 @@ using MP.MONO.Core; using MP.MONO.Data; using MP.MONO.Data.DbModels; using Newtonsoft.Json; +using System.IO; +using System.Web; +using IHostingEnvironment = Microsoft.AspNetCore.Hosting.IWebHostEnvironment; namespace MP.MONO.UI.Components { public partial class MaintTaskPending { + //private readonly IWebHostEnvironment _environment; + + //public MaintTaskPending(IWebHostEnvironment environment) + //{ + // _environment = environment; + //} #region Private Fields private int _MaxRecord = 1000; @@ -64,7 +73,8 @@ namespace MP.MONO.UI.Components { get => compMode ? "p-1" : ""; } - + + public string dir = ""; #endregion Public Properties @@ -172,9 +182,10 @@ namespace MP.MONO.UI.Components #endregion Private Properties #region Protected Methods - + //private readonly IWebHostEnvironment _HostEnvironment; protected override async Task OnInitializedAsync() { + //dir = _HostEnvironment.WebRootPath; await ReloadData(); MaintPendingRefreshVetoMin = Configuration.GetValue("OptPar:MaintPendingRefreshVetoMin"); PercLim = Configuration.GetValue("OptPar:MaintLimitPerc"); @@ -208,6 +219,29 @@ namespace MP.MONO.UI.Components ShowConfirm(0); } } +#if false + string wwwroot = ""; + string file = ""; +#endif + private string pathFinder(int id) + { + //wwwroot = _environment.WebRootPath; +#if false + file = Path.Combine(wwwroot, id + ".pdf"); +#endif + string answ = ""; + string path = "Docs/Maint/" + id + ".pdf"; + if (File.Exists("wwwroot/" + path)) + { + answ = path; + } + else + { + path = "Docs/Maint/empty.pdf"; + answ = path; + } + return answ; + } private void ForceReload(int newNum) { @@ -262,11 +296,13 @@ namespace MP.MONO.UI.Components } #endregion Private Methods +#if false private bool showParams = false; private void toggleShowParams() { showParams = !showParams; - } + } +#endif } } \ No newline at end of file diff --git a/MP.MONO.UI/Components/MaintTaskSched.razor b/MP.MONO.UI/Components/MaintTaskSched.razor index 38ecadb..59167a3 100644 --- a/MP.MONO.UI/Components/MaintTaskSched.razor +++ b/MP.MONO.UI/Components/MaintTaskSched.razor @@ -151,7 +151,6 @@ opacity: 0.0; -webkit-transition: all 500ms ease-in-out; -moz-transition: all 500ms ease-in-out; - -ms-transition: all 500ms ease-in-out; -o-transition: all 500ms ease-in-out; transition: all 500ms ease-in-out; } diff --git a/MP.MONO.UI/Components/MaintTaskSched.razor.cs b/MP.MONO.UI/Components/MaintTaskSched.razor.cs index b620a77..c07d73b 100644 --- a/MP.MONO.UI/Components/MaintTaskSched.razor.cs +++ b/MP.MONO.UI/Components/MaintTaskSched.razor.cs @@ -43,7 +43,9 @@ namespace MP.MONO.UI.Components private int _MaxRecord = 200; private PrevMaintTaskModel? currRec = new PrevMaintTaskModel(); - private bool doSetup = false; +#if false + private bool doSetup = false; +#endif private List? ListRecords = null; @@ -52,7 +54,6 @@ namespace MP.MONO.UI.Components private List? SearchRecords = null; - private bool showParams = false; #endregion Private Fields @@ -187,7 +188,9 @@ namespace MP.MONO.UI.Components /// private async Task DeleteRecord(PrevMaintTaskModel currRec) { +#if false bool stopDelete = false; +# endif bool forceDelete = false; string confirmMessage = "Are you sure?"; // verifico messaggio secondo livello protezione... @@ -273,7 +276,7 @@ namespace MP.MONO.UI.Components isLoading = false; } - private async Task ShowDetail(PrevMaintTaskModel currRec) + private async Task ShowDetail(PrevMaintTaskModel? currRec) { selRecord = currRec; if (currRec != null) diff --git a/MP.MONO.UI/Components/ToolsPlot.razor.cs b/MP.MONO.UI/Components/ToolsPlot.razor.cs index 156f431..08ba620 100644 --- a/MP.MONO.UI/Components/ToolsPlot.razor.cs +++ b/MP.MONO.UI/Components/ToolsPlot.razor.cs @@ -103,11 +103,13 @@ namespace MP.MONO.UI.Components return answ; } +#if false protected override async Task OnInitializedAsync() { //await ReloadData(); //await Task.Delay(1); - } + } +#endif protected override async Task OnParametersSetAsync() { diff --git a/MP.MONO.UI/Data/toolsTrigger.cs b/MP.MONO.UI/Data/toolsTrigger.cs new file mode 100644 index 0000000..969cf3a --- /dev/null +++ b/MP.MONO.UI/Data/toolsTrigger.cs @@ -0,0 +1,7 @@ +namespace MP.MONO.UI.Data +{ + public class toolsTrigger + { + public bool show { get; set; } = true; + } +} diff --git a/MP.MONO.UI/MP.MONO.UI.csproj b/MP.MONO.UI/MP.MONO.UI.csproj index 99dc3c5..a9fb28f 100644 --- a/MP.MONO.UI/MP.MONO.UI.csproj +++ b/MP.MONO.UI/MP.MONO.UI.csproj @@ -18,6 +18,16 @@ + + + + + + + Never + + + diff --git a/MP.MONO.UI/Pages/Index.razor b/MP.MONO.UI/Pages/Index.razor index 919b347..534dbf8 100644 --- a/MP.MONO.UI/Pages/Index.razor +++ b/MP.MONO.UI/Pages/Index.razor @@ -7,13 +7,13 @@

@AppName

-
-
- - - -
+ @*
+
+ + +
+
*@
@@ -49,7 +49,13 @@
+
+
+ + + +
TOOLS
@@ -61,4 +67,4 @@
-
+ \ No newline at end of file diff --git a/MP.MONO.UI/Pages/Index.razor.cs b/MP.MONO.UI/Pages/Index.razor.cs index 64ec4d7..6448a4f 100644 --- a/MP.MONO.UI/Pages/Index.razor.cs +++ b/MP.MONO.UI/Pages/Index.razor.cs @@ -21,4 +21,4 @@ namespace MP.MONO.UI.Pages #endregion Private Properties } -} \ No newline at end of file +} diff --git a/MP.MONO.UI/Pages/Tools.razor.cs b/MP.MONO.UI/Pages/Tools.razor.cs index cf6bcc7..e677d2c 100644 --- a/MP.MONO.UI/Pages/Tools.razor.cs +++ b/MP.MONO.UI/Pages/Tools.razor.cs @@ -13,7 +13,6 @@ namespace MP.MONO.UI.Pages #region Private Fields private int maxRecord = 120; - private bool showParam = false; protected int maxDisplay = 16; diff --git a/MP.MONO.UI/Docs/Alarms/.placeholder.file b/MP.MONO.UI/wwwroot/Docs/Alarms/.placeholder.file similarity index 100% rename from MP.MONO.UI/Docs/Alarms/.placeholder.file rename to MP.MONO.UI/wwwroot/Docs/Alarms/.placeholder.file diff --git a/MP.MONO.UI/Docs/Maint/.placeholder.file b/MP.MONO.UI/wwwroot/Docs/Maint/.placeholder.file similarity index 100% rename from MP.MONO.UI/Docs/Maint/.placeholder.file rename to MP.MONO.UI/wwwroot/Docs/Maint/.placeholder.file diff --git a/MP.MONO.UI/Docs/Maint/1001.pdf b/MP.MONO.UI/wwwroot/Docs/Maint/1001.pdf similarity index 100% rename from MP.MONO.UI/Docs/Maint/1001.pdf rename to MP.MONO.UI/wwwroot/Docs/Maint/1001.pdf diff --git a/MP.MONO.UI/Docs/Maint/1002.pdf b/MP.MONO.UI/wwwroot/Docs/Maint/1002.pdf similarity index 100% rename from MP.MONO.UI/Docs/Maint/1002.pdf rename to MP.MONO.UI/wwwroot/Docs/Maint/1002.pdf diff --git a/MP.MONO.UI/wwwroot/Docs/Maint/1003.pdf b/MP.MONO.UI/wwwroot/Docs/Maint/1003.pdf new file mode 100644 index 0000000..2f6d075 Binary files /dev/null and b/MP.MONO.UI/wwwroot/Docs/Maint/1003.pdf differ diff --git a/MP.MONO.UI/Docs/Maint/empty.pdf b/MP.MONO.UI/wwwroot/Docs/Maint/empty.pdf similarity index 100% rename from MP.MONO.UI/Docs/Maint/empty.pdf rename to MP.MONO.UI/wwwroot/Docs/Maint/empty.pdf diff --git a/MP.MONO.UI/wwwroot/css/site.css b/MP.MONO.UI/wwwroot/css/site.css index 6e86a5a..3f25c1f 100644 --- a/MP.MONO.UI/wwwroot/css/site.css +++ b/MP.MONO.UI/wwwroot/css/site.css @@ -24,9 +24,6 @@ body { box-shadow: 0px 0px 20px 5px rgba(255, 0, 0, 0.8); animation: pulse-warning 2.5s infinite; } -.pulse-warning:hover { - color: #ffffff !important; -} @-webkit-keyframes pulse-warning { 0% { -webkit-box-shadow: 0px 0px 20px 5px rgba(255, 0, 0, 0.8); diff --git a/MP.MONO.UI/wwwroot/css/site.less b/MP.MONO.UI/wwwroot/css/site.less index 7d0dbc4..097e872 100644 --- a/MP.MONO.UI/wwwroot/css/site.less +++ b/MP.MONO.UI/wwwroot/css/site.less @@ -18,9 +18,6 @@ html, body { animation: pulse-warning 2.5s infinite; } -.pulse-warning:hover { - color: rgba(255, 255, 255, 1) !important; -} @-webkit-keyframes pulse-warning { 0% { diff --git a/MP.MONO.UI/wwwroot/css/site.min.css b/MP.MONO.UI/wwwroot/css/site.min.css index 0f3e685..506cc55 100644 --- a/MP.MONO.UI/wwwroot/css/site.min.css +++ b/MP.MONO.UI/wwwroot/css/site.min.css @@ -1 +1 @@ -@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');@import url('fonts.css');h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{font-family:'Roboto',sans-serif;}.pulse-warning{box-shadow:0 0 20px 5px rgba(255,0,0,.8);animation:pulse-warning 2.5s infinite;}.pulse-warning:hover{color:#fff !important;}@-webkit-keyframes pulse-warning{0%{-webkit-box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}70%{-webkit-box-shadow:0 0 20px 5px rgba(255,0,0,0);}100%{-webkit-box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}}@keyframes pulse-warning{0%{-moz-box-shadow:0 0 20px 5px rgba(255,0,0,.8);box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}70%{-moz-box-shadow:0 0 20px 5px rgba(255,0,0,0);box-shadow:0 0 20px 5px rgba(255,0,0,0);}100%{-moz-box-shadow:0 0 20px 5px rgba(255,170,0,.8);box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}}.textConsensed{font-family:'Roboto Condensed',sans-serif;}h1:focus{outline:none;}a,.btn-link{color:#0071c1;}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac;}.content{padding-top:1.1rem;}.valid.modified:not([type=checkbox]){outline:1px solid #26b050;}.invalid{outline:1px solid #f00;}.validation-message{color:#f00;}.watermark{position:absolute;top:250px;left:500px;opacity:.2;}.selBlock{background-color:#cfe2ff;}.textTrim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.max5Char{white-space:nowrap;width:10rem;overflow:hidden;text-overflow:ellipsis;}.max10Char{white-space:nowrap;width:10rem;overflow:hidden;text-overflow:ellipsis;}.max20Char{white-space:nowrap;width:20rem;overflow:hidden;text-overflow:ellipsis;}.footer{line-height:1.8em;}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;}.blazor-error-boundary{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem,#b32121;padding:1rem 1rem 1rem 3.7rem;color:#fff;}.blazor-error-boundary::after{content:"An error has occurred.";}.shortcuts{text-align:center;}.shortcuts .shortcut-icon{font-size:2rem;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:2rem/3 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:1rem/4 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:640px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}body{font-size:.7em;}}@media(max-width:800px){body{font-size:.8em;}}@media(max-width:1024px){body{font-size:.9em;}} \ No newline at end of file +@import url('open-iconic/font/css/open-iconic-bootstrap.min.css');@import url('fonts.css');h1,h2,h3,h4,h5,h6,b,display-1,display-2,display-3,display-4{font-family:'Lato',sans-serif;}html,body{font-family:'Roboto',sans-serif;}.pulse-warning{box-shadow:0 0 20px 5px rgba(255,0,0,.8);animation:pulse-warning 2.5s infinite;}@-webkit-keyframes pulse-warning{0%{-webkit-box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}70%{-webkit-box-shadow:0 0 20px 5px rgba(255,0,0,0);}100%{-webkit-box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}}@keyframes pulse-warning{0%{-moz-box-shadow:0 0 20px 5px rgba(255,0,0,.8);box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}70%{-moz-box-shadow:0 0 20px 5px rgba(255,0,0,0);box-shadow:0 0 20px 5px rgba(255,0,0,0);}100%{-moz-box-shadow:0 0 20px 5px rgba(255,170,0,.8);box-shadow:0 0 20px 5px rgba(255,0,0,.8);color:#fff;}}.textConsensed{font-family:'Roboto Condensed',sans-serif;}h1:focus{outline:none;}a,.btn-link{color:#0071c1;}.btn-primary{color:#fff;background-color:#1b6ec2;border-color:#1861ac;}.content{padding-top:1.1rem;}.valid.modified:not([type=checkbox]){outline:1px solid #26b050;}.invalid{outline:1px solid #f00;}.validation-message{color:#f00;}.watermark{position:absolute;top:250px;left:500px;opacity:.2;}.selBlock{background-color:#cfe2ff;}.textTrim{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}.max5Char{white-space:nowrap;width:10rem;overflow:hidden;text-overflow:ellipsis;}.max10Char{white-space:nowrap;width:10rem;overflow:hidden;text-overflow:ellipsis;}.max20Char{white-space:nowrap;width:20rem;overflow:hidden;text-overflow:ellipsis;}.footer{line-height:1.8em;}#blazor-error-ui{background:#ffffe0;bottom:0;box-shadow:0 -1px 2px rgba(0,0,0,.2);display:none;left:0;padding:.6rem 1.25rem .7rem 1.25rem;position:fixed;width:100%;z-index:1000;}#blazor-error-ui .dismiss{cursor:pointer;position:absolute;right:.75rem;top:.5rem;}.blazor-error-boundary{background:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem,#b32121;padding:1rem 1rem 1rem 3.7rem;color:#fff;}.blazor-error-boundary::after{content:"An error has occurred.";}.shortcuts{text-align:center;}.shortcuts .shortcut-icon{font-size:2rem;}.shortcuts .shortcut{min-width:9rem;min-height:5rem;display:inline-block;padding:2rem/3 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut-sm{min-width:4.5rem;min-height:3rem;display:inline-block;padding:1rem/4 0;margin:0 2px 1em;vertical-align:top;text-decoration:none;background:#f3f3f3;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fff),to(#eee));background-image:-webkit-linear-gradient(top,#fff,0%,#eee,100%);background-image:-moz-linear-gradient(top,#fff 0%,#eee 100%);background-image:linear-gradient(to bottom,#fff 0%,#eee 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffffff',endColorstr='#ffeeeeee',GradientType=0);border:1px solid #ddd;box-sizing:border-box;border-radius:1rem/2;}.shortcuts .shortcut .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut-sm .shortcut-icon{width:100%;margin-top:0;margin-bottom:0;font-size:2rem;color:#333;}.shortcuts .shortcut:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut-sm:hover{background:#e8e8e8;background-image:-webkit-gradient(linear,left 0%,left 100%,from(#fafafa),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#fafafa,0%,#e1e1e1,100%);background-image:-moz-linear-gradient(top,#fafafa 0%,#e1e1e1 100%);background-image:linear-gradient(to bottom,#fafafa 0%,#e1e1e1 100%);background-repeat:repeat-x;filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffafafa',endColorstr='#ffe1e1e1',GradientType=0);}.shortcuts .shortcut:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut-sm:active{box-shadow:inset 0 3px 5px rgba(0,0,0,.125);}.shortcuts .shortcut:hover .shortcut-icon{color:#c93;}.shortcuts .shortcut-sm:hover .shortcut-icon{color:#666;}.shortcuts .shortcut-label{display:block;margin-top:.75em;font-weight:400;color:#666;}@media(max-width:640px){.shortcuts .shortcut{min-width:8rem;min-height:4rem;}body{font-size:.7em;}}@media(max-width:800px){body{font-size:.8em;}}@media(max-width:1024px){body{font-size:.9em;}} \ No newline at end of file