diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000..d952bb5 Binary files /dev/null and b/.DS_Store differ diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c37cde8 --- /dev/null +++ b/.gitignore @@ -0,0 +1,346 @@ + +# ---> VisualStudio +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.userosscache +*.sln.docstates + +# User-specific files (MonoDevelop/Xamarin Studio) +*.userprefs + +# Build results +[Dd]ebug/ +[Dd]ebugPublic/ +[Rr]elease/ +[Rr]eleases/ +x64/ +x86/ +build/ +bld/ +[Bb]in/ +[Oo]bj/ + +# Visual Studio 2015 cache/options directory +.vs/ +# Uncomment if you have tasks that create the project's static files in wwwroot +#wwwroot/ + +# MSTest test Results +[Tt]est[Rr]esult*/ +[Bb]uild[Ll]og.* + +# NUNIT +*.VisualState.xml +TestResult.xml + +# Build Results of an ATL Project +[Dd]ebugPS/ +[Rr]eleasePS/ +dlldata.c + +# DNX +project.lock.json +artifacts/ + +*_i.c +*_p.c +*_i.h +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.tmp_proj +*.log +*.vspscc +*.vssscc +.builds +*.pidb +*.svclog +*.scc + +# Chutzpah Test files +_Chutzpah* + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf +*.cachefile + +# Visual Studio profiler +*.psess +*.vsp +*.vspx +*.sap + +# TFS 2012 Local Workspace +$tf/ + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper*/ +*.[Rr]e[Ss]harper +*.DotSettings.user + +# JustCode is a .NET coding add-in +.JustCode + +# TeamCity is a build add-in +_TeamCity* + +# DotCover is a Code Coverage Tool +*.dotCover + +# NCrunch +_NCrunch_* +.*crunch*.local.xml +nCrunchTemp_* + +# MightyMoose +*.mm.* +AutoTest.Net/ + +# Web workbench (sass) +.sass-cache/ + +# Installshield output folder +[Ee]xpress/ + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish/ + +# Publish Web Output +*.[Pp]ublish.xml +*.azurePubxml +# TODO: Comment the next line if you want to checkin your web deploy settings +# but database connection strings (with potential passwords) will be unencrypted +*.pubxml +*.publishproj + +# NuGet Packages +*.nupkg +# The packages folder can be ignored because of Package Restore +**/packages/* +# except build/, which is used as an MSBuild target. +!**/packages/build/ +# Uncomment if necessary however generally it will be regenerated when needed +#!**/packages/repositories.config + +# Windows Azure Build Output +csx/ +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Visual Studio cache files +# files ending in .cache can be ignored +*.[Cc]ache +# but keep track of directories ending in .cache +!*.[Cc]ache/ + +# Others +ClientBin/ +[Ss]tyle[Cc]op.* +~$* +*~ +*.dbmdl +*.dbproj.schemaview +*.pfx +*.publishsettings +node_modules/ +orleans.codegen.cs + +# RIA/Silverlight projects +Generated_Code/ + +# Backup & report files from converting an old project file +# to a newer Visual Studio version. Backup files are not needed, +# because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML +UpgradeLog*.htm + +# SQL Server files +*.mdf +*.ldf + +# Business Intelligence projects +*.rdl.data +*.bim.layout +*.bim_*.settings + +# Microsoft Fakes +FakesAssemblies/ + +# Node.js Tools for Visual Studio +.ntvs_analysis.dat + +# Visual Studio 6 build log +*.plg + +# Visual Studio 6 workspace options file +*.opt + +# Visual Studio LightSwitch build output +**/*.HTMLClient/GeneratedArtifacts +**/*.DesktopClient/GeneratedArtifacts +**/*.DesktopClient/ModelManifest.xml +**/*.Server/GeneratedArtifacts +**/*.Server/ModelManifest.xml +_Pvt_Extensions + +# ---> C Sharp +# Build Folders (you can keep bin if you'd like, to store dlls and pdbs) +[Bb]in/ +[Oo]bj/ + +# mstest test results +TestResults + +## Ignore Visual Studio temporary files, build results, and +## files generated by popular Visual Studio add-ons. + +# User-specific files +*.suo +*.user +*.sln.docstates + +# Build results +[Dd]ebug/ +[Rr]elease/ +x64/ +*_i.c +*_p.c +*.ilk +*.meta +*.obj +*.pch +*.pdb +*.pgc +*.pgd +*.rsp +*.sbr +*.tlb +*.tli +*.tlh +*.tmp +*.log +*.vspscc +*.vssscc +.builds + +# Visual C++ cache files +ipch/ +*.aps +*.ncb +*.opensdf +*.sdf + +# Visual Studio profiler +*.psess +*.vsp +*.vspx + +# Guidance Automation Toolkit +*.gpState + +# ReSharper is a .NET coding add-in +_ReSharper* + +# NCrunch +*.ncrunch* +.*crunch*.local.xml + +# Installshield output folder +[Ee]xpress + +# DocProject is a documentation generator add-in +DocProject/buildhelp/ +DocProject/Help/*.HxT +DocProject/Help/*.HxC +DocProject/Help/*.hhc +DocProject/Help/*.hhk +DocProject/Help/*.hhp +DocProject/Help/Html2 +DocProject/Help/html + +# Click-Once directory +publish + +# Publish Web Output +*.Publish.xml + +# NuGet Packages Directory +packages + +# Windows Azure Build Output +csx +*.build.csdef + +# Windows Store app package directory +AppPackages/ + +# Others +[Bb]in +[Oo]bj +sql +TestResults +[Tt]est[Rr]esult* +*.Cache +ClientBin +[Ss]tyle[Cc]op.* +~$* +*.dbmdl +Generated_Code #added for RIA/Silverlight projects + +# Backup & report files from converting an old project file to a newer +# Visual Studio version. Backup files are not needed, because we have git ;-) +_UpgradeReport_Files/ +Backup*/ +UpgradeLog*.XML + +Egw.Core.Razor.Comp/obj/* +Egw.Core.Razor.Comp/obj/*/* +Egw.Core.Razor.Comp/obj/*/*/* +Egw.Core.Razor.Comp/obj/Debug/* +Egw.Core.Razor.Comp/obj/Debug/net6.0/* + +Egw.Core.Razor.Test/obj/* +Egw.Core.Razor.Test/obj/*/* +Egw.Core.Razor.Test/obj/*/*/* +Egw.Core.Razor.Test/obj/Debug/* +Egw.Core.Razor.Test/obj/Debug/net6.0/* +Egw.Core.Razor.Test/obj/Debug/net6.0/project.razor.vs.json +Egw.Core.Razor.Test/obj/Egw.Core.Razor.Test.csproj.nuget.dgspec.json +Egw.Core.Razor.Test/obj/project.assets.json +Egw.Core.Razor.Test/obj/Debug/net6.0/project.razor.vs.json +Egw.Core.Razor.Comp/obj/Debug/net6.0/project.razor.vs.json diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..8e73d18 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,155 @@ +variables: + VERS_MAIN: '1.0' + NEW_REL: '' + NUM_REL: '0.1.2.3' + NUM_DEB: '0.1.2-beta.3' + NU_TYPE: 'Debug' + APP_NAME: 'Egw.Core.Razor.Comp' + SOL_NAME: 'Egw.Core.Razor.Comp' + NUGET_PATH: 'C:\Tools\nuget.exe' + NEW_COPYRIGHT: 'EgalWare 2022+' + +# helper x fix pacchetti nuget da repo locale nexus.steamware.net +.nuget-fix: &nuget-fix + - | + echo "esecuzione Nuget FIX steps" + dotnet nuget list source + $hasSource = dotnet nuget list source | Select-String -Pattern "Steamware Nexus Proxy" + if (! [String]::IsNullOrWhiteSpace($hasSource)) { + dotnet nuget remove source "`"Steamware Nexus Proxy`"" + } + $hasSource = dotnet nuget list source | Select-String -Pattern "Steamware Nexus" + if (! [String]::IsNullOrWhiteSpace($hasSource)) { + dotnet nuget remove source "`"Steamware Nexus`"" + } + $hasSource = dotnet nuget list source | Select-String -Pattern "nexus-proxy-v3" + if (! [String]::IsNullOrWhiteSpace($hasSource)) { + dotnet nuget remove source nexus-proxy-v3 + } + dotnet nuget add source https://nexus.steamware.net/repository/nuget-group-3/index.json -n "Steamware Nexus" -u nugetUser -p viaDante16 --store-password-in-clear-text + echo "Steamware Nexus Source added" + +# helper x fix version number +.version-fix: &version-fix + - | + $env:NEW_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format ddHH) + $env:NUM_REL = $env:VERS_MAIN+"."+(get-date –format yyMM)+"."+(get-date –format dHH) + $env:NUM_DEB = $env:VERS_MAIN+"."+(get-date –format yyMM)+"-beta."+(get-date –format dHH) + $env:NEW_COPYRIGHT = "EgalWare @ 2022-" + (get-date -format yyyy) + # display versioni generate + $resoconto = "Effettuato calcolo versioni | release v: " + $env:NUM_REL + " | debug v: " + $env:NUM_DEB; + Write-Output $resoconto; + echo "VersionFix done" + +# helper x fix nuspec file +.nuspec-fix: &nuspec-fix + - | + echo "Modifica dati file nuspec Release" + + if ($env:NU_TYPE -eq "Debug") + { + $currRelease = $env:NUM_DEB + } + elseif($env:NU_TYPE -eq "Release") + { + $currRelease = $env:NUM_REL + } + + echo $currRelease + + # $currRelease = $env:NU_TYPE == "Release" ? $env:NUM_REL : $env:NUM_DEB + # $currRelease = $env:NUM_DEB + $currDebug = $env:NUM_DEB + $currCopy = $env:NEW_COPYRIGHT + $fileNameRel = "$env:APP_NAME/$env:APP_NAME.csproj"; + $nuspDataRel = Get-Content $fileNameRel; + $findVers = "(.|\n)*?"; + $replVers = "" + $currRelease + ""; + $nuspDataRelUpd = $nuspDataRel -replace $findVers, $replVers; + $findCopy = "(.|\n)*?"; + $replCopy = "" + $currCopy + ""; + $nuspDataRelUpd = $nuspDataRelUpd -replace $findCopy, $replCopy; + $findRel = "(.|\n)*?"; + $replRel = "Build " + $currRelease + ""; + $nuspDataRelUpd = $nuspDataRelUpd -replace $findRel, $replRel; + Set-Content -Path $fileNameRel -Value $nuspDataRelUpd; + echo "Modifica dati file progetto x nuspec" + +# helper x rename nuspec file debug/beta +.renameDeb: &renameDeb + - | + echo "Cambio nome nuget di sviluppo" + $fileNameRel = "$env:APP_NAME/bin/Debug/$env:APP_NAME.$env:NUM_REL.nupkg"; + $fileNameDeb = $fileNameRel -replace $env:NUM_REL, $env:NUM_DEB; + echo "Move-Item $fileNameRel $fileNameDeb" + Move-Item $fileNameRel $fileNameDeb + +stages: + - build + - staging + - deploy + - release + + +# ---------- BUILD ---------- +Egw.Core.Razor.Comp:build: + stage: build + tags: + - win + variables: + APP_NAME: Egw.Core.Razor.Comp + SOL_NAME: Egw.Core.Razor.Comp + before_script: + - *nuget-fix + - dotnet restore "$env:SOL_NAME.sln" + script: + - dotnet build $env:APP_NAME/$env:APP_NAME.csproj + +# ---------- Upload Debug/Unstable ---------- +Egw.Core.Razor.Comp:staging: + stage: staging + tags: + - win + variables: + APP_NAME: Egw.Core.Razor.Comp + SOL_NAME: Egw.Core.Razor.Comp + only: + - develop + needs: ["Egw.Core.Razor.Comp:build"] + before_script: + - *nuget-fix + - dotnet restore "$env:SOL_NAME.sln" + - *version-fix + - *nuspec-fix + script: + - dotnet build $env:APP_NAME/$env:APP_NAME.csproj + - dotnet pack -p:Configuration=Debug -p:verbosity=quiet $env:APP_NAME/$env:APP_NAME.csproj + # - *renameDeb + - '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted' + - '& "$env:NUGET_PATH" push $env:APP_NAME/bin/Debug/$env:APP_NAME.$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted' + +# ---------- RELEASE ---------- +Egw.Core.Razor.Comp:release: + stage: release + tags: + - win + variables: + APP_NAME: Egw.Core.Razor.Comp + SOL_NAME: Egw.Core.Razor.Comp + NU_TYPE: Release + only: + - main + except: + - branches + needs: ["Egw.Core.Razor.Comp:build"] + before_script: + - *nuget-fix + - dotnet restore "$env:SOL_NAME.sln" + - *version-fix + - *nuspec-fix + script: + - dotnet build $env:APP_NAME/$env:APP_NAME.csproj + - dotnet pack -p:Configuration=Debug -p:verbosity=quiet $env:APP_NAME/$env:APP_NAME.csproj + - '& "$env:NUGET_PATH" setapikey fe387daa-d07c-3207-877e-96c8be1be91b -source http://nexus.steamware.net/repository/nuget-hosted' + - '& "$env:NUGET_PATH" push $env:APP_NAME/bin/Debug/$env:APP_NAME.$env:NUM_DEB.nupkg -Source http://nexus.steamware.net/repository/nuget-hosted' + \ No newline at end of file diff --git a/Egw.Core.Razor.Comp.sln b/Egw.Core.Razor.Comp.sln new file mode 100644 index 0000000..cca9fe3 --- /dev/null +++ b/Egw.Core.Razor.Comp.sln @@ -0,0 +1,31 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio Version 17 +VisualStudioVersion = 17.4.33205.214 +MinimumVisualStudioVersion = 10.0.40219.1 +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Egw.Core.Razor.Comp", "Egw.Core.Razor.Comp\Egw.Core.Razor.Comp.csproj", "{056826D6-6B88-42AA-AD09-FC380955834D}" +EndProject +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Egw.Core.Razor.Test", "Egw.Core.Razor.Test\Egw.Core.Razor.Test.csproj", "{9E5A3295-08BF-4603-9FA3-D38A2F1100E5}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Release|Any CPU = Release|Any CPU + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {056826D6-6B88-42AA-AD09-FC380955834D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {056826D6-6B88-42AA-AD09-FC380955834D}.Debug|Any CPU.Build.0 = Debug|Any CPU + {056826D6-6B88-42AA-AD09-FC380955834D}.Release|Any CPU.ActiveCfg = Release|Any CPU + {056826D6-6B88-42AA-AD09-FC380955834D}.Release|Any CPU.Build.0 = Release|Any CPU + {9E5A3295-08BF-4603-9FA3-D38A2F1100E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9E5A3295-08BF-4603-9FA3-D38A2F1100E5}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9E5A3295-08BF-4603-9FA3-D38A2F1100E5}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9E5A3295-08BF-4603-9FA3-D38A2F1100E5}.Release|Any CPU.Build.0 = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(ExtensibilityGlobals) = postSolution + SolutionGuid = {B0B304CA-6B40-44FF-A9C3-F90A3C56B21A} + EndGlobalSection +EndGlobal diff --git a/Egw.Core.Razor.Comp/.DS_Store b/Egw.Core.Razor.Comp/.DS_Store new file mode 100644 index 0000000..04a27f2 Binary files /dev/null and b/Egw.Core.Razor.Comp/.DS_Store differ diff --git a/Egw.Core.Razor.Comp/CalWeekColumn.razor b/Egw.Core.Razor.Comp/CalWeekColumn.razor new file mode 100644 index 0000000..d282114 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalWeekColumn.razor @@ -0,0 +1,54 @@ +@if (ItemMode == ColType.labelStart || ItemMode == ColType.labelEnd) +{ + + @**@ + @foreach (var item in LabelItems()) + { + + +
@item.value
+
+
+ } +
+} +else +{ + + @**@ + @foreach (var item in BoxItems()) + { + @**@ + + + + +
@item.title
+
@($"{item.start:HH:mm}")-@($"{item.end:HH:mm}")
+
@item.value
+
+
+
+ } +
+} + + + + @if (currData != null) + { +
+ + + + +
@currData.title
+
@($"{currData.start:HH:mm}")-@($"{currData.end:HH:mm}")
+
@currData.value
+
+
+
+
+ } +
+
\ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalWeekColumn.razor.cs b/Egw.Core.Razor.Comp/CalWeekColumn.razor.cs new file mode 100644 index 0000000..efbdeda --- /dev/null +++ b/Egw.Core.Razor.Comp/CalWeekColumn.razor.cs @@ -0,0 +1,215 @@ +using Microsoft.AspNetCore.Components; +using System.Drawing; +using Egw.Core.Razor.Comp.Data; + +namespace Egw.Core.Razor.Comp +{ + public partial class CalWeekColumn + { + #region Public Enums + + public enum ColType + { + /// + /// Tipo etichetta Start (SX) + /// + labelStart, + + /// + /// Tipo etichetta End (DX) + /// + labelEnd, + + /// + /// Colonna dati + /// + dataContainer + } + + #endregion Public Enums + + #region Public Properties + + /// + /// Lista etichette da mostrare (richiede tipo label...) + /// + [Parameter] + public List EventList { get; set; } = new List(); + + /// + /// Modalit� di disegno + /// + [Parameter] + public ColType ItemMode { get; set; } = ColType.dataContainer; + + [Parameter] + public int ValMax { get; set; } = 19; + + [Parameter] + public int ValMin { get; set; } = 9; + + /// + /// Dimensioni viewbox + /// + [Parameter] + public Size vBox { get; set; } = new Size(1200, 3200); + + #endregion Public Properties + + #region Protected Properties + + protected boxData? currData { get; set; } = null; + + protected int hFO + { + get => 100;// EventList.Count > 0 ? vBox.Height / EventList.Count : vBox.Height; + } + + protected int mFO + { + get => vBox.Width * 4 / 100; + } + + protected int wFO + { + get => vBox.Width * 98 / 100; + } + + #endregion Protected Properties + + #region Protected Methods + + protected List BoxItems() + { + List answ = new List(); + int step = vBox.Height / (ValMax - ValMin); + int numEv = EventList.Count; + int evWidth = numEv > 1 ? (int)(1.2 * vBox.Width / numEv) : (int)(0.9 * vBox.Width); + int offsetX = 1; + int offsetY = 0;// step / 2; + if (numEv > 0) + { + int xStep = evWidth / EventList.Count; + int deltaX = 0; + answ = EventList + .OrderBy(x => x.Inizio) + .Select(x => new boxData() + { + pX = offsetX + xStep * (deltaX++), + //pY = offsetY + (x.Inizio.Hour - ValMin) * step, + pY = offsetY + (int)(x.Inizio.AddHours(-ValMin).TimeOfDay.TotalHours * step), + width = evWidth, + height = offsetY + (int)(x.Fine.Subtract(x.Inizio).TotalHours * step), + title = x.Type, + value = x.Description, + start = x.Inizio, + end = x.Fine, + cssClass = x.CssClass + }) + .ToList(); + } + return answ; + } + + /// + /// Converte la stringa in formato markup valido + /// + /// + /// + protected MarkupString getMarkup(string rawData) + { + return new MarkupString(rawData); + } + + protected bool showDetail { get; set; } = false; + protected string titleDx = ""; + protected string titleSx = ""; + + + protected async Task DetClosed(bool closed) + { + if (closed) + { + currData = null; + showDetail = false; + } + await Task.Delay(1); + } + + /// + /// Genera una lista di etichette con corrdinate + /// + /// + protected List LabelItems() + { + int step = vBox.Height / numEv;// (ValMax - ValMin); + int offset = 0;// step / 2; + + List answ = EventList + .OrderBy(x => x.Inizio) + .Select(x => new labelData() + { + pX = vBox.Width / 10, + pY = offset + (int)(x.Inizio.AddHours(-ValMin).TimeOfDay.TotalHours * step), + value = x.Title + }) + .ToList(); + return answ; + } + + protected async void selItem(boxData item) + { + titleSx = $"{item.start:dddd dd}"; + titleDx = $"{item.start:MMMM yyyy}"; + + currData = item; + showDetail = true; + await Task.Delay(1); + await InvokeAsync(StateHasChanged); + } + + protected string Messaggio = ""; + #endregion Protected Methods + + #region Protected Classes + + protected class boxData + { + #region Public Properties + + public string cssClass { get; set; } = ""; + public DateTime end { get; set; } = DateTime.Today; + public int height { get; set; } = 0; + public int pX { get; set; } = 0; + public int pY { get; set; } = 0; + public DateTime start { get; set; } = DateTime.Today; + public string title { get; set; } = ""; + public string value { get; set; } = ""; + public int width { get; set; } = 0; + + #endregion Public Properties + } + + protected class labelData + { + #region Public Properties + + public int pX { get; set; } = 0; + public int pY { get; set; } = 0; + public string value { get; set; } = ""; + + #endregion Public Properties + } + + #endregion Protected Classes + + #region Private Properties + + private int numEv + { + get => EventList.Count > 0 ? EventList.Count : 1; + } + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalWeekColumn.razor.css b/Egw.Core.Razor.Comp/CalWeekColumn.razor.css new file mode 100644 index 0000000..63f3744 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalWeekColumn.razor.css @@ -0,0 +1,68 @@ +.lblText { + font-size: 0.3rem; + fill: white; +} +.lblBoxTitle { + font-size: 0.25rem; + fill: white; +} +.lblBoxText { + font-size: 0.2rem; + fill: white; + word-wrap: break-word; +} +.heavy { + font: bold 30px sans-serif; + fill: white; +} +.canv { + fill: #34495E; +} +.blockMal { + fill: rgba(3, 155, 229, 0.75); + stroke: rgba(3, 155, 229, 0.9); + stroke-width: 0.5rem; +} +.blockPerm { + fill: rgba(153, 102, 222, 0.75); + stroke: rgba(153, 102, 222, 0.9); + stroke-width: 0.5rem; +} +.blockFerie { + fill: rgba(0, 185, 0, 0.75); + stroke: rgba(0, 255, 0, 0.9); + stroke-width: 0.5rem; +} +.block104 { + fill: rgba(222, 0, 171, 0.75); + stroke: rgba(222, 0, 171, 0.9); + stroke-width: 0.5rem; +} +.blockChius { + fill: rgba(165, 185, 0, 0.75); + stroke: rgba(235, 255, 71, 0.9); + stroke-width: 0.5rem; +} +.blockFest { + fill: rgba(242, 35, 35, 0.75); + stroke: rgba(242, 35, 35, 0.9); + stroke-width: 0.5rem; +} +.event-title { + color: #FFFFFF; + font-size: 2rem; +} +.event-time { + color: #69CDFF; + font-size: 2rem; +} +.hour-label { + color: #9ABCDE; + font-size: 2rem; +} +.event-body { + /*color: #C8DCFF;*/ + color: #A8BCFF; + font-size: 1.9rem; + word-break: break-word; +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalWeekColumn.razor.less b/Egw.Core.Razor.Comp/CalWeekColumn.razor.less new file mode 100644 index 0000000..6f2bdc4 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalWeekColumn.razor.less @@ -0,0 +1,83 @@ +.lblText { + font-size: 0.3rem; + fill: white; +} + +.lblBoxTitle { + font-size: 0.25rem; + fill: white; +} + +.lblBoxText { + font-size: 0.2rem; + fill: white; + word-wrap: break-word; +} + +.heavy { + font: bold 30px sans-serif; + fill: white; +} + + +.canv { + fill: #34495E; +} + +.blockMal { + fill: rgba(3, 155, 229, 0.75); + stroke: rgba(3, 155, 229, 0.9); + stroke-width: 0.5rem; +} + +.blockPerm { + fill: rgba(153, 102, 222, 0.75); + stroke: rgba(153, 102, 222, 0.9); + stroke-width: 0.5rem; +} + +.blockFerie { + fill: rgba(0, 185, 0, 0.75); + stroke: rgba(0, 255, 0, 0.9); + stroke-width: 0.5rem; +} + +.block104 { + fill: rgba(222, 0, 171, 0.75); + stroke: rgba(222, 0, 171, 0.9); + stroke-width: 0.5rem; +} + +.blockChius { + fill: rgba(165, 185, 0, 0.75); + stroke: rgba(235, 255, 71, 0.9); + stroke-width: 0.5rem; +} + +.blockFest { + fill: rgba(242, 35, 35, 0.75); + stroke: rgba(242, 35, 35, 0.9); + stroke-width: 0.5rem; +} + +.event-title { + color: #FFFFFF; + font-size: 2rem; +} + +.event-time { + color: #69CDFF; + font-size: 2rem; +} + +.hour-label { + color: #9ABCDE; + font-size: 2rem; +} + +.event-body { + /*color: #C8DCFF;*/ + color: #A8BCFF ; + font-size: 1.9rem; + word-break: break-word; +} diff --git a/Egw.Core.Razor.Comp/CalWeekColumn.razor.min.css b/Egw.Core.Razor.Comp/CalWeekColumn.razor.min.css new file mode 100644 index 0000000..84ff480 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalWeekColumn.razor.min.css @@ -0,0 +1 @@ +.lblText{font-size:.3rem;fill:white;}.lblBoxTitle{font-size:.25rem;fill:white;}.lblBoxText{font-size:.2rem;fill:white;word-wrap:break-word;}.heavy{font:bold 30px sans-serif;fill:white;}.canv{fill:#34495e;}.blockMal{fill:rgba(3,155,229,.75);stroke:rgba(3,155,229,.9);stroke-width:.5rem;}.blockPerm{fill:rgba(153,102,222,.75);stroke:rgba(153,102,222,.9);stroke-width:.5rem;}.blockFerie{fill:rgba(0,185,0,.75);stroke:rgba(0,255,0,.9);stroke-width:.5rem;}.block104{fill:rgba(222,0,171,.75);stroke:rgba(222,0,171,.9);stroke-width:.5rem;}.blockChius{fill:rgba(165,185,0,.75);stroke:rgba(235,255,71,.9);stroke-width:.5rem;}.blockFest{fill:rgba(242,35,35,.75);stroke:rgba(242,35,35,.9);stroke-width:.5rem;}.event-title{color:#fff;font-size:2rem;}.event-time{color:#69cdff;font-size:2rem;}.hour-label{color:#9abcde;font-size:2rem;}.event-body{color:#a8bcff;font-size:1.9rem;word-break:break-word;} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarMonth.razor b/Egw.Core.Razor.Comp/CalendarMonth.razor new file mode 100644 index 0000000..772c306 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarMonth.razor @@ -0,0 +1,96 @@ +@if (WeekRows == null || WeekRows.Count == 0) +{ + +} +else +{ + + + + @for (int i = 0; i < 7; i++) + { + + } + + + + + @if (SingleWeek) + { + + @foreach (var giorno in SingleWeekRow) + { + + } + + } + else + { + @foreach (var settim in WeekRows) + { + + @foreach (var giorno in settim) + { + + } + + } + } + + + @if (!SingleWeek) + { + + + + } + +
@($"{DateList[i]:ddd}".Substring(0, 1).ToUpper())
+ + @($"{giorno:dd}") + +
+ + @($"{giorno:dd}") + + @if (!(giorno.DayOfWeek == DayOfWeek.Saturday || giorno.DayOfWeek == DayOfWeek.Sunday)) + { +
+ @if (hasDot(giorno, "MAL")) + { +
+   +
+ } + @if (hasDot(giorno, "FER")) + { +
+   +
+ } + @if (hasDot(giorno, "PERM")) + { +
+   +
+ } + @if (hasDot(giorno, "104")) + { +
+   +
+ } +
+ } +
+
+ +
+ @($"{DtRif: MMM yyyy}") +
+ +
+
+} + + diff --git a/Egw.Core.Razor.Comp/CalendarMonth.razor.cs b/Egw.Core.Razor.Comp/CalendarMonth.razor.cs new file mode 100644 index 0000000..5a0e607 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarMonth.razor.cs @@ -0,0 +1,355 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.Extensions; +using System.Formats.Asn1; +using System.Text; +using Egw.Core.Razor.Comp.Data; + +namespace Egw.Core.Razor.Comp +{ + public partial class CalendarMonth + { + #region Public Properties + + /// + /// Css giorno mese corrente + /// default: text-danger + /// + [Parameter] + public string CurrMonthCss { get; set; } = "text-light"; + + /// + /// Dizionario configurazione date (per check colori su data) + /// + [Parameter] + public Dictionary? DateCheck { get; set; } + + /// + /// Dizionario configurazione date tipo BLOCK (es feste, chiusure aziendali) + /// + [Parameter] + public Dictionary? DateCheckBlock { get; set; } + + /// + /// Evento selezione data valida (= entro il mese corrente/selezionato) + /// + [Parameter] + public EventCallback DateSelected { get; set; } + [Parameter] + public EventCallback backToCal { get; set; } + + /// + /// Day di riferimento (tipicamente = oggi) per disegnare calendario alla data corrente + /// + [Parameter] + public DateTime DtRif { get; set; } = DateTime.Today; + + /// + /// Elenco eventi da mostrare sul calendario + /// + [Parameter] + public List? EventList { get; set; } + + /// + /// Css titolo + /// default: color: red + /// + [Parameter] + public string HeadStyle { get; set; } = "color: red"; + + /// + /// Css sfondo principale + /// default: table table-dark table-borderless opt alt: table-striped, table-responsive + /// + [Parameter] + public string MainCss { get; set; } = "table table-dark table-borderless"; + + /// + /// Evento cambio di mese + /// + [Parameter] + public EventCallback MonthChanged { get; set; } + + /// + /// Css giorno tipico + /// default: text-danger + /// + [Parameter] + public string OtherMonthCss { get; set; } = "text-secondary"; + + /// + /// Css giorno selezionato + /// default: bg-danger text-warning + /// + [Parameter] + public string SelDayCss { get; set; } = "bg-danger text-warning rounded-top p-2"; + + /// + /// Css dei giorni della settimana selezionata + /// default: bg-danger text-warning + /// + [Parameter] + public string SelWeekCss { get; set; } = "text-light m-0 px-0"; + + /// + /// Imposta di mostrare SOLO una singola settimana (per selezione data) + /// default: false + /// + [Parameter] + public bool SingleWeek { get; set; } = false; + + /// + /// Css per giorni weekend (sab-dom) + /// default: text-danger + /// + [Parameter] + public string WeekEndCss { get; set; } = "bg-secondary text-light bg-opacity-75"; + + #endregion Public Properties + + #region Protected Methods + + protected override async Task OnInitializedAsync() + { + dtCurr = DateTime.Today; + await Task.Delay(1); + } + + protected override async Task OnParametersSetAsync() + { + await FixDate(); + } + + #endregion Protected Methods + + #region Private Fields + + private bool singleWeek = false; + + #endregion Private Fields + + #region Private Properties + + /// + /// Elenco date da mostrare + /// + private List DateList { get; set; } = new List(); + + private DateTime dtCurr { get; set; } = DateTime.Today; + private DateTime MonthEnd { get; set; } = DateTime.Today.AddMonths(1); + + private DateTime MonthStart { get; set; } = DateTime.Today; + + /// + /// Singola riga in caso di selezione... + /// + private List SingleWeekRow + { + get + { + List answ = new List(); + foreach (var item in WeekRows) + { + if (item.Contains(DtRif)) + { + answ = item; + break; + } + } + return answ; + } + } + + /// + /// Righe da disegnare nel calendario + /// + private List> WeekRows { get; set; } = new List>(); + + #endregion Private Properties + + #region Private Methods + + private bool hasDot(DateTime dtCurr, string type) + { + bool answ = false; + if(EventList != null) + { + foreach(var item in EventList) + { + if(item.Inizio.Date == dtCurr.Date && item.Type == type) + { + answ = true; + } + } + } + return answ; + } + + private async Task clickDay(DateTime dtClick) + { + // se � mese prec/successivo --> sposto data rif + if (dtClick < MonthStart) + { + DtRif = DtRif.AddMonths(-1); + await FixDate(); + await MonthChanged.InvokeAsync(dtClick); + } + else if (dtClick > MonthEnd) + { + DtRif = DtRif.AddMonths(1); + await FixDate(); + await MonthChanged.InvokeAsync(dtClick); + } + else + { + // altrimenti riporto evento + await DateSelected.InvokeAsync(dtClick); + if (EventList != null) + { + var eventListWeekly = EventList.Where(x => SingleWeekRow.Contains(dtClick)).ToList(); + } + } + await Task.Delay(1); + } + + private async Task addMonth() + { + + await FixDate(); + await MonthChanged.InvokeAsync(DtRif.AddMonths(1)); + } + private async Task subtractMonth() + { + + await FixDate(); + await MonthChanged.InvokeAsync(DtRif.AddMonths(-1)); + } + private string dayCss(DateTime currDay) + { + string answ = CurrMonthCss; + // se � fuori estremi mese --> grigio... + if (currDay < MonthStart || currDay > MonthEnd) + { + answ = OtherMonthCss; + } + else + { + // cerco prima i valori BLOCK... + if (DateCheckBlock != null && DateCheckBlock.ContainsKey(currDay)) + { + answ = DateCheckBlock[currDay]; + } + // se � weekend forzo quello + else if (currDay.DayOfWeek == DayOfWeek.Saturday || currDay.DayOfWeek == DayOfWeek.Sunday) + { + answ = WeekEndCss; + } + } + return answ; + } + + private void DisplayDate(DateTime dtSel) + { + dtCurr = dtSel; + singleWeek = true; + } + + private async Task backToCalendar() + { + await backToCal.InvokeAsync(); + //await reloadData(); + } + + /// + /// Sistemazione date x disegnare controlli + /// + /// + private async Task FixDate() + { + await Task.Delay(1); + // disegno sempre 6 righe = 42 gg + int numDD = 42; + MonthStart = new DateTime(DtRif.Year, DtRif.Month, 1); + MonthEnd = MonthStart.AddMonths(1).AddDays(-1); + DateTime calStart = MonthStart; + // calcolo date calendario in base al giorno dell'inizio mese... + switch (MonthStart.DayOfWeek) + { + case DayOfWeek.Sunday: + calStart = MonthStart.AddDays(-6); + break; + + case DayOfWeek.Monday: + calStart = MonthStart.AddDays(-7); + break; + + case DayOfWeek.Tuesday: + calStart = MonthStart.AddDays(-1); + break; + + case DayOfWeek.Wednesday: + calStart = MonthStart.AddDays(-2); + break; + + case DayOfWeek.Thursday: + calStart = MonthStart.AddDays(-3); + break; + + case DayOfWeek.Friday: + calStart = MonthStart.AddDays(-4); + break; + + case DayOfWeek.Saturday: + calStart = MonthStart.AddDays(-5); + break; + + default: + break; + } + // calcolo fine mese sapendo che sono cmq 7 x 6 week... + int numEnd = numDD - MonthEnd.Subtract(calStart).Days; + DateTime calEnd = MonthEnd.AddDays(numEnd); + // calcolo elenco date (da disegnare) + DateList = new List(); + for (int i = 0; i < numDD; i++) + { + DateList.Add(calStart.AddDays(i)); + } + // ora sistemo le righe da disegnare... + WeekRows = new List>(); + for (int i = 0; i < 6; i++) + { + WeekRows.Add(DateList.GetRange(i * 7, 7)); + } + } + + private async Task resetCal() + { + singleWeek = false; + await Task.Delay(1); + } + + private string singleDayCss(DateTime currDay) + { + string answ = SelWeekCss; + return answ; + } + + private string singleDaySpanCss(DateTime currDay) + { + string answ = currDay == DtRif ? SelDayCss : CurrMonthCss; + return answ; + } + + private string spanCss(DateTime currDay) + { + string answ = ""; + if (DateCheck != null && DateCheck.ContainsKey(currDay)) + { + answ = DateCheck[currDay]; + } + return answ; + } + + #endregion Private Methods + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarMonth.razor.css b/Egw.Core.Razor.Comp/CalendarMonth.razor.css new file mode 100644 index 0000000..ead9b4a --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarMonth.razor.css @@ -0,0 +1,127 @@ +.cssTable { + border-radius: 12px; + width: 100%; + height: 100%; + background-color: #34495E; + transition: height 0.3s cubic-bezier(0.54, 0.57, 0.36, 0.98) 0.2s; +} +.cssTable tr { + margin: 0 1rem 0 1rem; +} +.cssTable td { + padding: 0.6rem 0rem 0.4rem 0rem; + border: none; +} +.cssTable thead tr { + margin-top: 0.625rem; +} +.meseAnno { + text-transform: capitalize; + color: #fff; +} +.containerBtnTemp { + position: relative; + align-items: center; + display: flex; + justify-content: center; +} +.selDate { + background-color: #E67E22; + color: #000; +} +.pallini { + display: flex; + justify-content: space-evenly; +} +.divAll { + padding: 0; + margin: 0; + height: 0.3rem; + border-radius: 50%; + color: transparent; +} +@keyframes dotEntranceMal { + 0% { + left: -50px; + } + 100% { + left: 0; + } +} +@keyframes dotEntranceFer { + 0% { + left: -50px; + } + 100% { + left: 0; + } +} +@keyframes dotEntrancePerm { + 0% { + left: -50px; + } + 100% { + left: 0; + } +} +@keyframes dotEntranceCent { + 0% { + left: -50px; + } + 100% { + left: 0; + } +} +.malattie { + padding: 0; + margin: 0; + height: 0.3rem; + border-radius: 50%; + color: transparent; + background-color: #039BE5; + position: relative; + animation-name: dotEntranceMal; + animation-duration: 1.1s; +} +.ferie { + padding: 0; + margin: 0; + height: 0.3rem; + border-radius: 50%; + color: transparent; + background-color: #00FF00; + position: relative; + animation-name: dotEntranceFer; + animation-duration: 0.8s; +} +.permessi { + padding: 0; + margin: 0; + height: 0.3rem; + border-radius: 50%; + color: transparent; + background-color: #9966DE; + position: relative; + animation-name: dotEntrancePerm; + animation-duration: 0.5s; +} +.permessi104 { + padding: 0; + margin: 0; + height: 0.3rem; + border-radius: 50%; + color: transparent; + background-color: #DE00AB; + position: relative; + animation-name: dotEntranceCent; + animation-duration: 0.3s; +} +.containerBtnTemp { + position: relative; + align-items: center; + display: flex; + justify-content: center; + background-color: transparent; + border: none; + color: #fff; +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarMonth.razor.less b/Egw.Core.Razor.Comp/CalendarMonth.razor.less new file mode 100644 index 0000000..8d73491 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarMonth.razor.less @@ -0,0 +1,126 @@ +.cssTable { + border-radius: 12px; + width: 100%; + height: 100%; + background-color: #34495E; + transition: height 0.3s cubic-bezier(0.54, 0.57, 0.36, 0.98) 0.2s; +} + +.cssTable tr { + margin: 0 1rem 0 1rem; +} +.cssTable td { + padding: 0.6rem 0rem 0.4rem 0rem; + border: none; +} + +.cssTable thead tr { + margin-top: 0.625rem; +} + +.meseAnno{ + text-transform: capitalize; + color: #fff; +} + +.containerBtnTemp { + position: relative; + align-items: center; + display: flex; + justify-content: center; +} + +.selDate { + background-color: #E67E22; + color: #000; +} + + +.pallini { + display: flex; + justify-content: space-evenly; +} + +.divAll { + padding: 0; + margin: 0; + height: 0.3rem; + border-radius: 50%; + color: transparent; +} +@keyframes dotEntranceMal { + 0% { + left: -50px + } + + 100% { + left: 0 + } +} + +@keyframes dotEntranceFer { + 0% { + left: -50px + } + + 100% { + left: 0 + } +} +@keyframes dotEntrancePerm { + 0% { + left: -50px + } + + 100% { + left: 0 + } +} +@keyframes dotEntranceCent { + 0% { + left: -50px + } + + 100% { + left: 0 + } +} + +.malattie { + .divAll; + background-color: #039BE5; + position: relative; + animation-name: dotEntranceMal; + animation-duration: 1.1s; +} +.ferie { + .divAll; + background-color: #00FF00; + position: relative; + animation-name: dotEntranceFer; + animation-duration: 0.8s; +} +.permessi { + .divAll; + background-color: #9966DE; + position: relative; + animation-name: dotEntrancePerm; + animation-duration: 0.5s; +} +.permessi104 { + .divAll; + background-color: #DE00AB; + position: relative; + animation-name: dotEntranceCent; + animation-duration: 0.3s; +} + +.containerBtnTemp { + position: relative; + align-items: center; + display: flex; + justify-content: center; + background-color: transparent; + border: none; + color: #fff; +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarMonth.razor.min.css b/Egw.Core.Razor.Comp/CalendarMonth.razor.min.css new file mode 100644 index 0000000..8d3587c --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarMonth.razor.min.css @@ -0,0 +1 @@ +.cssTable{border-radius:12px;width:100%;height:100%;background-color:#34495e;transition:height .3s cubic-bezier(.54,.57,.36,.98) .2s;}.cssTable tr{margin:0 1rem 0 1rem;}.cssTable td{padding:.6rem 0 .4rem 0;border:0;}.cssTable thead tr{margin-top:.625rem;}.meseAnno{text-transform:capitalize;color:#fff;}.containerBtnTemp{position:relative;align-items:center;display:flex;justify-content:center;}.selDate{background-color:#e67e22;color:#000;}.pallini{display:flex;justify-content:space-evenly;}.divAll{padding:0;margin:0;height:.3rem;border-radius:50%;color:transparent;}@keyframes dotEntranceMal{0%{left:-50px;}100%{left:0;}}@keyframes dotEntranceFer{0%{left:-50px;}100%{left:0;}}@keyframes dotEntrancePerm{0%{left:-50px;}100%{left:0;}}@keyframes dotEntranceCent{0%{left:-50px;}100%{left:0;}}.malattie{padding:0;margin:0;height:.3rem;border-radius:50%;color:transparent;background-color:#039be5;position:relative;animation-name:dotEntranceMal;animation-duration:1.1s;}.ferie{padding:0;margin:0;height:.3rem;border-radius:50%;color:transparent;background-color:#0f0;position:relative;animation-name:dotEntranceFer;animation-duration:.8s;}.permessi{padding:0;margin:0;height:.3rem;border-radius:50%;color:transparent;background-color:#9966de;position:relative;animation-name:dotEntrancePerm;animation-duration:.5s;}.permessi104{padding:0;margin:0;height:.3rem;border-radius:50%;color:transparent;background-color:#de00ab;position:relative;animation-name:dotEntranceCent;animation-duration:.3s;}.containerBtnTemp{position:relative;align-items:center;display:flex;justify-content:center;background-color:transparent;border:0;color:#fff;} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarWeek.razor b/Egw.Core.Razor.Comp/CalendarWeek.razor new file mode 100644 index 0000000..5810b27 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarWeek.razor @@ -0,0 +1,51 @@ +@if (DateList == null || DateList.Count == 0) +{ + +} +else +{ + + + + + @foreach (var item in DateList) + { + + } + + + + + + @foreach (var item in DateList) + { + + } + + + + + + + +
+
+ @($"{item:ddd}".Substring(0, 1).ToUpper()) +
+
+ @($"{item:dd}") +
+
+ + + +
+
+ +
+ @($"{DtRif: MMM yyyy}") | W@($"{weekNum(DtRif):00}") +
+ +
+
+} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarWeek.razor.cs b/Egw.Core.Razor.Comp/CalendarWeek.razor.cs new file mode 100644 index 0000000..d009303 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarWeek.razor.cs @@ -0,0 +1,216 @@ +using Microsoft.AspNetCore.Components; +using System.Drawing; +using Egw.Core.Razor.Comp.Data; + +namespace Egw.Core.Razor.Comp +{ + public partial class CalendarWeek + { + #region Public Properties + + /// + /// Periodo da mostrare (tipicamente 1 settimana) + /// + [Parameter] + public List DateList { get; set; } = new List(); + + /// + /// Eventi da inserire + /// + [Parameter] + public List EventList { get; set; } = new List(); + + /// + /// Evento selezione data valida (= entro il periodo selezionato) + /// + [Parameter] + public EventCallback DateSelected { get; set; } + + [Parameter] + public EventCallback backToCalendar{ get; set; } + + + [Parameter] + public int EndHour { get; set; } = 20; + + /// + /// Css titolo + /// default: color: red + /// + [Parameter] + public string HeadStyle { get; set; } = "color: #E67E22"; + + /// + /// Altezza di ogni blocco ora da mostrare + /// + [Parameter] + public int HeightHour { get; set; } = 20; + + /// + /// Larghezza calcolata delle etichette, minimo tra + /// + [Parameter] + public int labelWidth { get; set; } = 15; + + [Parameter] + public int StartHour { get; set; } = 8; + + /// + /// Dimensioni viewbox GLOBALE + /// + [Parameter] + public Size vBox { get; set; } = new Size(1200, 1600); + + /// + /// Evento richiesta modifica settimana + /// + [Parameter] + public EventCallback WeekChanged { get; set; } + + #endregion Public Properties + + #region Protected Fields + + protected List HourSlot = new List(); + + #endregion Protected Fields + + #region Protected Properties + + protected int calcColSpan + { + get => numDays + 1; + } + + protected DateTime DtRif + { + get + { + DateTime answ = DateTime.Today; + if (DateList != null && DateList.Count > 0) + { + answ = DateList[0]; + } + return answ; + } + } + + protected int numDays + { + get => DateList.Count; + } + + protected int contWidth + { + get => (vBox.Width * 2) / (2 * numDays + 1); + } + + private string lblWidth + { + get => $"{(double)(vBox.Width - (contWidth * numDays)) / vBox.Width:P2}".Replace(",", "."); + } + private string dataWidth + { + get => $"{(double)contWidth / vBox.Width:P2}".Replace(",", "."); + } + + protected Size vBoxLabel + { + get + { + // label � MENO di 1/tot columns + Size answ = new Size(contWidth / 2, vBox.Height); + return answ; + } + } + protected Size vBoxCont + { + get + { + // label � MENO di 1/tot columns + Size answ = new Size(contWidth, vBox.Height); + return answ; + } + } + + //protected Size vBoxLabel + //{ + // get + // { + // // label � MENO di 1/tot columns + // Size answ = new Size(labelWidth, vBox.Height); + // return answ; + // } + //} + + #endregion Protected Properties + + #region Protected Methods + + /// + /// Richiesta cambio sett di riferimento --> riporta evento + /// + /// + /// + protected async Task changeWeek(int delta) + { + await WeekChanged.InvokeAsync(delta); + } + + protected override async Task OnParametersSetAsync() + { + HourSlot = new List(); + for (int i = StartHour; i <= EndHour; i++) + { + HourSlot.Add(i); + } + await InvokeAsync(StateHasChanged); + } + + /// + /// GetIso8601WeekOfYear + /// + /// + /// + protected int weekNum(DateTime DtReq) + { + int wNum = WeekData.GetIso8601WeekOfYear(DtReq); + return wNum; + } + + protected List DayEvent(DateTime DtReq) + { + List answ = new List(); + if (EventList != null) + { + answ = EventList.Where(x => x.Inizio.Date == DtReq.Date).ToList(); + } + return answ; + } + + /// + /// Genera etichette orarie (1 x ora) + /// + /// + protected List LabelList() + { + int idx = 0; + List answ = HourSlot.Select(x => new CalendarEvent() + { + id = idx++, + Inizio = DtRif.AddHours(x), + Fine = DtRif.AddHours(x), + CssClass = "text-light", + Title = $"{x:00}:00", + Description = $"{x:00}:00" + }).ToList(); + return answ; + } + + protected async Task openCalendarMonth() + { + await backToCalendar.InvokeAsync(true); + } + #endregion Protected Methods + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarWeek.razor.css b/Egw.Core.Razor.Comp/CalendarWeek.razor.css new file mode 100644 index 0000000..6044227 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarWeek.razor.css @@ -0,0 +1,33 @@ +.cssTable { + border-radius: 12px; + width: 100%; + height: 100%; + background-color: #34495E; +} +.cssTable tr { + margin: 0 1rem 0 1rem; +} +.cssTable td { + padding: 0.1rem 0rem 0.1rem 0rem; + border: none; +} +.cssTable thead tr { + margin-top: 0.625rem; +} +.meseAnno { + text-transform: capitalize; + color: #fff; +} +.containerBtnTemp { + position: relative; + align-items: center; + display: flex; + justify-content: center; + background-color: transparent; + border: none; + color: #fff; +} +.selDate { + background-color: #E67E22; + color: #000; +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CalendarWeek.razor.less b/Egw.Core.Razor.Comp/CalendarWeek.razor.less new file mode 100644 index 0000000..0c17376 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarWeek.razor.less @@ -0,0 +1,40 @@ +.cssTable { + border-radius: 12px; + width: 100%; + height: 100%; + background-color: #34495E; +} + +.cssTable tr { + margin: 0 1rem 0 1rem; +} + +.cssTable td { + padding: 0.1rem 0rem 0.1rem 0rem; + border: none; +} + +.cssTable thead tr { + margin-top: 0.625rem; +} + +.meseAnno { + text-transform: capitalize; + color: #fff; +} + +.containerBtnTemp { + position: relative; + align-items: center; + display: flex; + justify-content: center; + background-color: transparent; + border: none; + color: #fff; +} + +.selDate { + background-color: #E67E22; + color: #000; +} + diff --git a/Egw.Core.Razor.Comp/CalendarWeek.razor.min.css b/Egw.Core.Razor.Comp/CalendarWeek.razor.min.css new file mode 100644 index 0000000..ef101f0 --- /dev/null +++ b/Egw.Core.Razor.Comp/CalendarWeek.razor.min.css @@ -0,0 +1 @@ +.cssTable{border-radius:12px;width:100%;height:100%;background-color:#34495e;}.cssTable tr{margin:0 1rem 0 1rem;}.cssTable td{padding:.1rem 0 .1rem 0;border:0;}.cssTable thead tr{margin-top:.625rem;}.meseAnno{text-transform:capitalize;color:#fff;}.containerBtnTemp{position:relative;align-items:center;display:flex;justify-content:center;background-color:transparent;border:0;color:#fff;}.selDate{background-color:#e67e22;color:#000;} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Chart.razor b/Egw.Core.Razor.Comp/Chart.razor new file mode 100644 index 0000000..0f5780c --- /dev/null +++ b/Egw.Core.Razor.Comp/Chart.razor @@ -0,0 +1,64 @@ +@using Microsoft.JSInterop +@inject IJSRuntime JSRuntime + + + +@code { + public enum ChartType + { + Pie, + Bar + } + + [Parameter] + public string Id { get; set; } = "MyChart"; + + [Parameter] + public ChartType Type { get; set; } + + [Parameter] + public string[]? Data { get; set; } + + [Parameter] + public string[]? BackgroundColor { get; set; } + + [Parameter] + public string[]? Labels { get; set; } + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await InitDefault(); + } + + protected async Task InitDefault() + { + // Here we create an anonymous type with all the options + // that need to be sent to Chart.js + var config = new + { + type = Type.ToString().ToLower(), + options = new + { + responsive = true, + scales = new + { + yAxes = new + { + suggestedMin = 0 + } + }, + Animation = false + }, + data = new + { + datasets = new[] + { + new { data = Data, backgroundColor = BackgroundColor} + }, + labels = Labels + } + }; + await JSRuntime.InvokeVoidAsync("setup", Id, config); + } + +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/ChartHist.razor b/Egw.Core.Razor.Comp/ChartHist.razor new file mode 100644 index 0000000..8d915ba --- /dev/null +++ b/Egw.Core.Razor.Comp/ChartHist.razor @@ -0,0 +1,5 @@ +@using Microsoft.JSInterop +@inject IJSRuntime JSRuntime + + + diff --git a/Egw.Core.Razor.Comp/ChartHist.razor.cs b/Egw.Core.Razor.Comp/ChartHist.razor.cs new file mode 100644 index 0000000..d05f477 --- /dev/null +++ b/Egw.Core.Razor.Comp/ChartHist.razor.cs @@ -0,0 +1,132 @@ +using Microsoft.AspNetCore.Components; +using Microsoft.JSInterop; + +namespace Egw.Core.Razor.Comp +{ + public partial class ChartHist + { + #region Public Properties + + [Parameter] + public string BackColor { get; set; } = ""; + + [Parameter] + public string TextColor { get; set; } = ""; + + [Parameter] + public string ChartLabel { get; set; } = ""; + + [Parameter] + public string[]? Data { get; set; } + + [Parameter] + public string Id { get; set; } = "MyHist"; + + [Parameter] + public string[]? Labels { get; set; } + + [Parameter] + public string LineColor { get; set; } = ""; + + [Parameter] + public string GridColor { get; set; } = ""; + + [Parameter] + public int AnimationTime { get; set; } = 0; + + #endregion Public Properties + + #region Protected Methods + + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await renderChart(); + } + + /// + /// Inizializzazione rendering componente + /// + /// partendo da qui: https://www.williamleme.com/posts/2020/003-chartjs-blazor/ + /// https://www.puresourcecode.com/dotnet/blazor/using-chart-js-with-blazor/ https://www.tutorialsteacher.com/csharp/csharp-anonymous-type + /// + /// + /// + protected async Task renderChart() + { + // creazione di un oggetto anonymous type con tutte le opzioni da passare a chart.js + var config = new + { + type = "bar", + options = new + { + responsive = true, + scales = new + { + yAxes = new + { + suggestedMin = 0, + display = true, + grid = new + { + color = GridColor, + display = true, + }, + ticks = new + { + beginAtZero = true, + color = TextColor, + maxTicksLimit = 10, + } + }, + xAxes = new + { + grid = new + { + color = GridColor, + display = true, + }, + ticks = new + { + color = TextColor, + } + }, + }, + plugins = new + { + legend = new + { + display = true, + labels = new + { + color = TextColor, + }, + }, + }, + Animation = new + { + Duration = AnimationTime + }, + }, + data = new + { + datasets = new[]{ + new + { + data = Data, + + borderColor = LineColor, + backgroundColor = BackColor, + borderWidth = 1, + color = TextColor, + label = ChartLabel + } + }, + labels = Labels + } + }; + await JSRuntime.InvokeVoidAsync("setup", Id, config); + } + + #endregion Protected Methods + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/ChartTS.razor b/Egw.Core.Razor.Comp/ChartTS.razor new file mode 100644 index 0000000..8d915ba --- /dev/null +++ b/Egw.Core.Razor.Comp/ChartTS.razor @@ -0,0 +1,5 @@ +@using Microsoft.JSInterop +@inject IJSRuntime JSRuntime + + + diff --git a/Egw.Core.Razor.Comp/ChartTS.razor.cs b/Egw.Core.Razor.Comp/ChartTS.razor.cs new file mode 100644 index 0000000..3ef8653 --- /dev/null +++ b/Egw.Core.Razor.Comp/ChartTS.razor.cs @@ -0,0 +1,145 @@ +using System; +using System.Collections.Generic; +using System.Drawing; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; +using Microsoft.JSInterop; +using Egw.Core.Razor.Comp.Data; + +namespace Egw.Core.Razor.Comp +{ + public partial class ChartTS + { + #region Public Properties + + [Parameter] + public int AnimationTime { get; set; } = 0; + + [Parameter] + public string BackColor { get; set; } = ""; + + [Parameter] + public string TextColor { get; set; } = ""; + [Parameter] + public string GridColor { get; set; } = ""; + + [Parameter] + public string ChartLabel { get; set; } = ""; + + [Parameter] + public List DataTS { get; set; } = null!; + + [Parameter] + public string Id { get; set; } = "MyTs"; + [Parameter] + public string LineColor { get; set; } = ""; + + #endregion Public Properties + + #region Protected Methods + + /// + /// Inizializzazione rendering componente + /// + /// partendo da qui: + /// https://www.williamleme.com/posts/2020/003-chartjs-blazor/ + /// https://www.puresourcecode.com/dotnet/blazor/using-chart-js-with-blazor/ + /// https://www.tutorialsteacher.com/csharp/csharp-anonymous-type + /// + /// + /// + protected override async Task OnAfterRenderAsync(bool firstRender) + { + await renderChart(); + } + + /// + /// Inizializzazione rendering componente + /// + /// partendo da qui: + /// https://www.williamleme.com/posts/2020/003-chartjs-blazor/ + /// https://www.puresourcecode.com/dotnet/blazor/using-chart-js-with-blazor/ + /// https://www.tutorialsteacher.com/csharp/csharp-anonymous-type + /// + /// + /// + protected async Task renderChart() + { + // creazione di un oggetto anonymous type con tutte le opzioni da passare a chart.js + var config = new + { + type = "line", + options = new + { + responsive = true, + scales = new + { + yAxes = new + { + display = true, + grid = new + { + color = GridColor, + display = true, + }, + ticks = new + { + color = TextColor, + maxTicksLimit = 10, + } + }, + xAxes = new + { + type = "timeseries", + distribution = "linear", + grid = new + { + color = GridColor, + display = true, + }, + ticks = new + { + color = TextColor, + }, + } + }, + plugins = new + { + legend = new + { + display = true, + labels = new + { + color = TextColor, + }, + }, + }, + Animation = new + { + Duration = AnimationTime + }, + }, + data = new + { + datasets = new[] + { + new + { + data = DataTS, + borderColor = LineColor, + backgroundColor = BackColor, + lineTension = 0, + stepped = true, + label = ChartLabel + } + } + } + }; + await JSRuntime.InvokeVoidAsync("setup", Id, config); + } + + #endregion Protected Methods + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CircleGauge.razor b/Egw.Core.Razor.Comp/CircleGauge.razor new file mode 100644 index 0000000..d3663e4 --- /dev/null +++ b/Egw.Core.Razor.Comp/CircleGauge.razor @@ -0,0 +1,14 @@ + + + + + + @Titolo + @Testo + + @if (showOuter) + { + + + } + diff --git a/Egw.Core.Razor.Comp/CircleGauge.razor.cs b/Egw.Core.Razor.Comp/CircleGauge.razor.cs new file mode 100644 index 0000000..b434a84 --- /dev/null +++ b/Egw.Core.Razor.Comp/CircleGauge.razor.cs @@ -0,0 +1,69 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Threading.Tasks; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; + +namespace Egw.Core.Razor.Comp +{ + public partial class CircleGauge + { + [Parameter] + public string Titolo { get; set; } = "Titolo"; + [Parameter] + public string Testo { get; set; } = "Testo"; + [Parameter] + public string StyleTitolo { get; set; } = "font-size: 3em; font-weight:bold; fill: white;"; + [Parameter] + public string StyleTesto { get; set; } = "font-size: 1em; fill: gray;"; + [Parameter] + public string strokeColorVal { get; set; } = "#00FF66"; + + /// + /// Valore da rappresentare + /// + [Parameter] + public int currVal { get; set; } = 0; + /// + /// Valore MASSIMO da rappresentare (=100%) + /// + [Parameter] + public int maxVal { get; set; } = 0; + + + /// + /// Spessore dei cerchida disegnare + /// + [Parameter] + public int sWidth { get; set; } = 10; + + + /// + /// Raggio cerchio interno (0..100) + /// + [Parameter] + public int innRad { get; set; } = 70; + + /// + /// Raggio cerchio esterno (0..100) + /// + [Parameter] + public int outRad { get; set; } = 85; + + private bool showOuter + { + get => currVal > maxVal; + } + + private int valInner + { + get => currVal < maxVal ? currVal : maxVal; + } + private int valOuter + { + get => currVal < maxVal ? 0 : currVal - maxVal; + } + + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CircleGauge.razor.css b/Egw.Core.Razor.Comp/CircleGauge.razor.css new file mode 100644 index 0000000..087d841 --- /dev/null +++ b/Egw.Core.Razor.Comp/CircleGauge.razor.css @@ -0,0 +1,7 @@ +/* FIX per tyesto dentro SVG: https://www.fabiofranchino.com/blog/how-to-align-svg-text/ */ +text { + text-anchor: middle; + /* align center */ + dominant-baseline: middle; + /* vertical alignment fix */ +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CircleGauge.razor.less b/Egw.Core.Razor.Comp/CircleGauge.razor.less new file mode 100644 index 0000000..3bdac9b --- /dev/null +++ b/Egw.Core.Razor.Comp/CircleGauge.razor.less @@ -0,0 +1,6 @@ + +/* FIX per tyesto dentro SVG: https://www.fabiofranchino.com/blog/how-to-align-svg-text/ */ +text { + text-anchor: middle; /* align center */ + dominant-baseline: middle; /* vertical alignment fix */ +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/CircleGauge.razor.min.css b/Egw.Core.Razor.Comp/CircleGauge.razor.min.css new file mode 100644 index 0000000..d38efbf --- /dev/null +++ b/Egw.Core.Razor.Comp/CircleGauge.razor.min.css @@ -0,0 +1 @@ +text{text-anchor:middle;dominant-baseline:middle;} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Data/CalendarEvent.cs b/Egw.Core.Razor.Comp/Data/CalendarEvent.cs new file mode 100644 index 0000000..b976fa0 --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/CalendarEvent.cs @@ -0,0 +1,21 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Egw.Core.Razor.Comp.Data +{ + public class CalendarEvent + { + public int id { get; set; } = 0; + public DateTime Inizio { get; set; } = DateTime.Today.AddHours(8); + public DateTime Fine { get; set; } = DateTime.Today.AddHours(10); + public string CssClass { get; set; } = ""; + public string Title { get; set; } = ""; + public string Description { get; set; } = ""; + public string Icon { get; set; } = ""; + public string Type { get; set; } = ""; + public string ToolTip { get; set; } = ""; + } +} diff --git a/Egw.Core.Razor.Comp/Data/ExampleJsInterop.cs b/Egw.Core.Razor.Comp/Data/ExampleJsInterop.cs new file mode 100644 index 0000000..9b97d0a --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/ExampleJsInterop.cs @@ -0,0 +1,37 @@ +using Microsoft.JSInterop; + +namespace Egw.Core.Razor.Comp.Data +{ + // This class provides an example of how JavaScript functionality can be wrapped + // in a .NET class for easy consumption. The associated JavaScript module is + // loaded on demand when first needed. + // + // This class can be registered as scoped DI service and then injected into Blazor + // components for use. + + public class ExampleJsInterop : IAsyncDisposable + { + private readonly Lazy> moduleTask; + + public ExampleJsInterop(IJSRuntime jsRuntime) + { + moduleTask = new(() => jsRuntime.InvokeAsync( + "import", "./_content/Egw.Core.Razor.Comp/exampleJsInterop.js").AsTask()); + } + + public async ValueTask Prompt(string message) + { + var module = await moduleTask.Value; + return await module.InvokeAsync("showPrompt", message); + } + + public async ValueTask DisposeAsync() + { + if (moduleTask.IsValueCreated) + { + var module = await moduleTask.Value; + await module.DisposeAsync(); + } + } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Data/IpUtils.cs b/Egw.Core.Razor.Comp/Data/IpUtils.cs new file mode 100644 index 0000000..21ffb3e --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/IpUtils.cs @@ -0,0 +1,46 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Sockets; +using System.Net; +using System.Text; +using System.Threading.Tasks; + +namespace Egw.Core.Razor.Comp.Data +{ + public class IpUtils + { + /// + /// Restituisce l'IP v4 locale dato uno degli ip machcina (anche IPV6) + /// + /// + /// + public static string getLocalIpv4(string firstIp) + { + string devIp = firstIp; + IPAddress clientIP = IPAddress.Parse(devIp); + try + { + IPHostEntry GetIPHost = Dns.GetHostEntry(clientIP); + if (GetIPHost != null) + { + // se trovo + di 1 ip cerco il primo NON IPV6... + if (GetIPHost.AddressList.Count() > 1) + { + foreach (IPAddress item in GetIPHost.AddressList) + { + if (item.AddressFamily == AddressFamily.InterNetwork) + { + devIp = item.ToString(); + break; + } + } + } + } + } + catch + { } + return devIp; + } + } +} diff --git a/Egw.Core.Razor.Comp/Data/QHelper.cs b/Egw.Core.Razor.Comp/Data/QHelper.cs new file mode 100644 index 0000000..acb4b1e --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/QHelper.cs @@ -0,0 +1,21 @@ +namespace Egw.Core.Razor.Comp.Data +{ + public class QHelper + { + #region Public Methods + + /// + /// Blazor: get query parm from the URL + /// + /// + /// + public static string GetQueryParm(string fullUri, string parmName) + { + var uriBuilder = new UriBuilder(fullUri); + var q = System.Web.HttpUtility.ParseQueryString(uriBuilder.Query); + return q[parmName] ?? ""; + } + + #endregion Public Methods + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Data/SteamCrypto.cs b/Egw.Core.Razor.Comp/Data/SteamCrypto.cs new file mode 100644 index 0000000..3f868f6 --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/SteamCrypto.cs @@ -0,0 +1,214 @@ +using System.Security.Cryptography; +using System.Text; + +namespace Egw.Core.Razor.Comp.Data +{ + /// + /// utils x cifrature e Crypto + /// + public class SteamCrypto + { + #region Public Methods + + /// + /// decifra un messaggio con una password + /// + /// + /// + /// + public static string DecryptString(string Message, string Passphrase) + { + string answ = Message; + byte[] Results = new byte[8]; + UTF8Encoding UTF8 = new UTF8Encoding(); + + // Step 1. We hash the passphrase using MD5 We use the MD5 hash generator as the result + // is a 128 bit byte array which is a valid length for the TripleDES encoder we use below + + var HashProvider = MD5.Create(); + //MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider(); + byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Passphrase)); + + // Step 2. Create a new TripleDESCryptoServiceProvider object + var TDESAlgorithm = TripleDES.Create(); + //TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider(); + + // Step 3. Setup the decoder + TDESAlgorithm.Key = TDESKey; + TDESAlgorithm.Mode = CipherMode.ECB; + TDESAlgorithm.Padding = PaddingMode.PKCS7; + + // Step 4. Convert the input string to a byte[] + byte[] DataToDecrypt = new byte[8]; + try + { + DataToDecrypt = Convert.FromBase64String(Message); + } + catch + { } + if (DataToDecrypt != null) + { + // Step 5. Attempt to decrypt the string + try + { + ICryptoTransform Decryptor = TDESAlgorithm.CreateDecryptor(); + Results = Decryptor.TransformFinalBlock(DataToDecrypt, 0, DataToDecrypt.Length); + } + finally + { + // Clear the TripleDes and Hashprovider services of any sensitive information + TDESAlgorithm.Clear(); + HashProvider.Clear(); + } + // Step 6. Return the decrypted string in UTF8 format + answ = UTF8.GetString(Results); + } + return answ; + } + + /// + /// cifra un messaggio con una password + /// + /// + /// + /// + public static string EncryptString(string Message, string Passphrase) + { + byte[] Results; + UTF8Encoding UTF8 = new UTF8Encoding(); + + // Step 1. We hash the passphrase using MD5 We use the MD5 hash generator as the result + // is a 128 bit byte array which is a valid length for the TripleDES encoder we use below + + var HashProvider = MD5.Create(); + //MD5CryptoServiceProvider HashProvider = new MD5CryptoServiceProvider(); + byte[] TDESKey = HashProvider.ComputeHash(UTF8.GetBytes(Passphrase)); + + // Step 2. Create a new TripleDESCryptoServiceProvider object + var TDESAlgorithm = TripleDES.Create(); + //TripleDESCryptoServiceProvider TDESAlgorithm = new TripleDESCryptoServiceProvider(); + + // Step 3. Setup the encoder + TDESAlgorithm.Key = TDESKey; + TDESAlgorithm.Mode = CipherMode.ECB; + TDESAlgorithm.Padding = PaddingMode.PKCS7; + + // Step 4. Convert the input string to a byte[] + byte[] DataToEncrypt = UTF8.GetBytes(Message); + + // Step 5. Attempt to encrypt the string + try + { + ICryptoTransform Encryptor = TDESAlgorithm.CreateEncryptor(); + Results = Encryptor.TransformFinalBlock(DataToEncrypt, 0, DataToEncrypt.Length); + } + finally + { + // Clear the TripleDes and Hashprovider services of any sensitive information + TDESAlgorithm.Clear(); + HashProvider.Clear(); + } + + // Step 6. Return the encrypted string as a base64 encoded string + return Convert.ToBase64String(Results); + } + + /// + /// genera hash di una stringa in MD5 (es x hash gravatar) + /// + /// + /// + public static string getHashStringMD5(string Message) + { + string hash = ""; + using (MD5 md5Hash = MD5.Create()) + { + hash = GetMd5Hash(md5Hash, Message); + } + return hash; + } + + /// + /// Crea un hash MD5 + /// + /// + /// + /// + public static string GetMd5Hash(MD5 md5Hash, string input) + { + // Convert the input string to a byte array and compute the hash. + byte[] data = md5Hash.ComputeHash(Encoding.UTF8.GetBytes(input)); + + // Create a new Stringbuilder to collect the bytes and create a string. + StringBuilder sBuilder = new StringBuilder(); + + // Loop through each byte of the hashed data and format each one as a hexadecimal string. + for (int i = 0; i < data.Length; i++) + { + sBuilder.Append(data[i].ToString("x2")); + } + + // Return the hexadecimal string. + return sBuilder.ToString(); + } + + /// + /// Generates a random string with a given size + /// + /// + /// + /// + public static string RandomString(int size, bool lowerCase = false) + { + var builder = new StringBuilder(size); + + // Unicode/ASCII Letters are divided into two blocks (Letters 65–90 / 97–122): The first + // group containing the uppercase letters and the second group containing the lowercase. + + // char is a single Unicode character + char offset = lowerCase ? 'a' : 'A'; + const int lettersOffset = 26; // A...Z or a..z: length=26 + + for (var i = 0; i < size; i++) + { + var @char = (char)_random.Next(offset, offset + lettersOffset); + builder.Append(@char); + } + + return lowerCase ? builder.ToString().ToLower() : builder.ToString(); + } + + /// + /// Verify a hash against a string. + /// + /// + /// + /// + /// + public static bool VerifyMd5Hash(MD5 md5Hash, string input, string hash) + { + // Hash the input. + string hashOfInput = GetMd5Hash(md5Hash, input); + + // Create a StringComparer an compare the hashes. + StringComparer comparer = StringComparer.OrdinalIgnoreCase; + + if (0 == comparer.Compare(hashOfInput, hash)) + { + return true; + } + else + { + return false; + } + } + + #endregion Public Methods + + #region Private Fields + + private static readonly Random _random = new Random(); + + #endregion Private Fields + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Data/WeekData.cs b/Egw.Core.Razor.Comp/Data/WeekData.cs new file mode 100644 index 0000000..320f016 --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/WeekData.cs @@ -0,0 +1,100 @@ +using System; +using System.Collections.Generic; +using System.Globalization; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Egw.Core.Razor.Comp.Data +{ + public class WeekData + { + public int anno { get; set; } = DateTime.Today.Year; + + public DateTime inizio { get; set; } = DateTime.Today; + public DateTime fine { get; set; } = DateTime.Today.AddDays(1); + + public int weekNumber { get; set; } = 1; + + /// + /// Calcola estremi settimana dato un giorno come lunedì-domenica + /// + /// + public WeekData(DateTime dtRif) + { + DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(dtRif); + // attenzione: è domenica = 0 --> in quel caso va portato a 7!!! + int numDay = day == DayOfWeek.Sunday ? 7 : (int)day; + this.weekNumber = GetIso8601WeekOfYear(dtRif); + this.inizio = dtRif.Date.AddDays(1 - numDay); + this.anno = inizio.Year; + this.fine = dtRif.Date.AddDays(7 - numDay); + } + + /// + /// Calcola estremi settimana dato numero + anno + /// + /// + public WeekData(int year, int numWeek) + { + this.anno = year; + this.weekNumber = numWeek; + DateTime dtRif = FirstDateOfWeekISO8601(year, numWeek); + DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(dtRif); + this.inizio = dtRif.Date.AddDays(1 - (int)day); + this.fine = dtRif.Date.AddDays(7 - (int)day); + } + + /// + /// Calcolo settimana dell'anno ISO 8601 + /// + /// This presumes that weeks start with Monday. + /// Week 1 is the 1st week of the year with a Thursday in it. + /// + /// rif: https://stackoverflow.com/questions/11154673/get-the-correct-week-number-of-a-given-date + /// + /// + /// + public static int GetIso8601WeekOfYear(DateTime time) + { + // Seriously cheat. If its Monday, Tuesday or Wednesday, then it'll + // be the same week# as whatever Thursday, Friday or Saturday are, + // and we always get those right + DayOfWeek day = CultureInfo.InvariantCulture.Calendar.GetDayOfWeek(time); + if (day >= DayOfWeek.Monday && day <= DayOfWeek.Wednesday) + { + time = time.AddDays(3); + } + + // Return the week of our adjusted day + return CultureInfo.InvariantCulture.Calendar.GetWeekOfYear(time, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); + } + + public static DateTime FirstDateOfWeekISO8601(int year, int weekOfYear) + { + DateTime jan1 = new DateTime(year, 1, 1); + int daysOffset = DayOfWeek.Thursday - jan1.DayOfWeek; + + // Use first Thursday in January to get first week of the year as + // it will never be in Week 52/53 + DateTime firstThursday = jan1.AddDays(daysOffset); + var cal = CultureInfo.CurrentCulture.Calendar; + int firstWeek = cal.GetWeekOfYear(firstThursday, CalendarWeekRule.FirstFourDayWeek, DayOfWeek.Monday); + + var weekNum = weekOfYear; + // As we're adding days to a date in Week 1, + // we need to subtract 1 in order to get the right date for week #1 + if (firstWeek == 1) + { + weekNum -= 1; + } + + // Using the first Thursday as starting week ensures that we are starting in the right year + // then we add number of weeks multiplied with days + var result = firstThursday.AddDays(weekNum * 7); + + // Subtract 3 days from Thursday to get Monday, which is the first weekday in ISO8601 + return result.AddDays(-3); + } + } +} diff --git a/Egw.Core.Razor.Comp/Data/chartJsData.cs b/Egw.Core.Razor.Comp/Data/chartJsData.cs new file mode 100644 index 0000000..2a2b614 --- /dev/null +++ b/Egw.Core.Razor.Comp/Data/chartJsData.cs @@ -0,0 +1,16 @@ +namespace Egw.Core.Razor.Comp.Data +{ + public class chartJsData + { + public class chartJsTSerie + { + public DateTime x { get; set; } + public decimal y { get; set; } + } + public class chartJsXY + { + public decimal x { get; set; } + public decimal y { get; set; } + } + } +} diff --git a/Egw.Core.Razor.Comp/Egw.Core.Razor.Comp.csproj b/Egw.Core.Razor.Comp/Egw.Core.Razor.Comp.csproj new file mode 100644 index 0000000..4a741c5 --- /dev/null +++ b/Egw.Core.Razor.Comp/Egw.Core.Razor.Comp.csproj @@ -0,0 +1,44 @@ + + + + net6.0 + enable + enable + Egw.Core.Razor.Comp + 0.9.0.0 + S.E. Locatelli, Z.Majid + EgalWare + Libreria componenti Razor/Blazor + false + Prima versione + 2022+ EgalWare + Egw.Core Razor Blazor + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Egw.Core.Razor.Comp/LoadingData.razor b/Egw.Core.Razor.Comp/LoadingData.razor new file mode 100644 index 0000000..354d765 --- /dev/null +++ b/Egw.Core.Razor.Comp/LoadingData.razor @@ -0,0 +1,6 @@ +
+
+

loading data

+ +
+
\ No newline at end of file diff --git a/Egw.Core.Razor.Comp/LoadingDataGrow.razor b/Egw.Core.Razor.Comp/LoadingDataGrow.razor new file mode 100644 index 0000000..37c4dc2 --- /dev/null +++ b/Egw.Core.Razor.Comp/LoadingDataGrow.razor @@ -0,0 +1,14 @@ +
+
+
+
+
+ Loading... +
+
+
+

loading data

+
+
+
+
diff --git a/Egw.Core.Razor.Comp/LoadingDataSmall.razor b/Egw.Core.Razor.Comp/LoadingDataSmall.razor new file mode 100644 index 0000000..8362fbb --- /dev/null +++ b/Egw.Core.Razor.Comp/LoadingDataSmall.razor @@ -0,0 +1,6 @@ +
+
+ loading data + +
+
\ No newline at end of file diff --git a/Egw.Core.Razor.Comp/ToastDisplay.razor b/Egw.Core.Razor.Comp/ToastDisplay.razor new file mode 100644 index 0000000..072d137 --- /dev/null +++ b/Egw.Core.Razor.Comp/ToastDisplay.razor @@ -0,0 +1,22 @@ + +
+ +
+ + + diff --git a/Egw.Core.Razor.Comp/ToastDisplay.razor.cs b/Egw.Core.Razor.Comp/ToastDisplay.razor.cs new file mode 100644 index 0000000..29d7d82 --- /dev/null +++ b/Egw.Core.Razor.Comp/ToastDisplay.razor.cs @@ -0,0 +1,119 @@ +using Microsoft.AspNetCore.Components; + +namespace Egw.Core.Razor.Comp +{ + /// + /// Gestione display Toast con Bootstrap 5+ + /// + /// https://getbootstrap.com/docs/5.2/components/toasts/ + /// + public partial class ToastDisplay + { + #region Public Enums + + public enum DispPosition + { + none = 0, + topLeft, + topCenter, + topRight, + midLeft, + midCenter, + midRight, + bottomLeft, + bottomCenter, + bottomRight + } + + #endregion Public Enums + + #region Public Properties + + [Parameter] + public RenderFragment? ChildContent { get; set; } + + [Parameter] + public DispPosition currPosition { get; set; } = DispPosition.none; + + [Parameter] + public bool DoShow { get; set; } = false; + + [Parameter] + public EventCallback ReportClose { get; set; } + + [Parameter] + public string TitleDx { get; set; } = ""; + + [Parameter] + public string TitleSx { get; set; } = ""; + + #endregion Public Properties + + #region Protected Methods + + protected async Task doClose() + { + await ReportClose.InvokeAsync(true); + } + + #endregion Protected Methods + + #region Private Properties + + private string cssPosition + { + get + { + string answ = ""; + switch (currPosition) + { + case DispPosition.topLeft: + answ = "top-0 start-0"; + break; + + case DispPosition.topCenter: + answ = "top-0 start-50 translate-middle-x"; + break; + + case DispPosition.topRight: + answ = "top-0 end-0"; + break; + + case DispPosition.midLeft: + answ = "top-50 start-0 translate-middle-y"; + break; + + case DispPosition.midCenter: + answ = "top-50 start-50 translate-middle"; + break; + + case DispPosition.midRight: + answ = "top-50 end-0 translate-middle-y"; + break; + + case DispPosition.bottomLeft: + answ = "bottom-0 start-0"; + break; + + case DispPosition.bottomCenter: + answ = "bottom-0 start-50 translate-middle-x"; + break; + + case DispPosition.bottomRight: + answ = "bottom-0 end-0"; + break; + + case DispPosition.none: + default: + break; + } + + return answ; + } + } + + private string toastCss { get => DoShow ? "show" : ""; } + + #endregion Private Properties + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Toggler.razor b/Egw.Core.Razor.Comp/Toggler.razor new file mode 100644 index 0000000..e5c048f --- /dev/null +++ b/Egw.Core.Razor.Comp/Toggler.razor @@ -0,0 +1,9 @@ +
+
+ @leftString +
+ +
+ @rightString +
+
\ No newline at end of file diff --git a/Egw.Core.Razor.Comp/Toggler.razor.cs b/Egw.Core.Razor.Comp/Toggler.razor.cs new file mode 100644 index 0000000..f91f079 --- /dev/null +++ b/Egw.Core.Razor.Comp/Toggler.razor.cs @@ -0,0 +1,245 @@ +using Microsoft.AspNetCore.Components; + +namespace Egw.Core.Razor.Comp +{ + public partial class Toggler + { + #region Public Properties + + [Parameter] + public EventCallback FilterChanged { get; set; } + + [Parameter] + public SelectGlobalToggle SelFilter { get; set; } = new SelectGlobalToggle(); + + #endregion Public Properties + + #region Protected Properties + + protected bool isActive + { + get => SelFilter.isActive; + set + { + SelFilter.isActive = value; + reportChange(); + } + } + + protected string leftString + { + get => SelFilter.leftString; + set + { + if (SelFilter.leftString != value) + { + SelFilter.leftString = value; + } + } + } + + protected string leftStringCSS + { + get => SelFilter.leftStringCSS; + set + { + if (SelFilter.leftStringCSS != value) + { + SelFilter.leftStringCSS = value; + reportChange(); + } + } + } + + protected string placardCss + { + get => SelFilter.placardCss; + set + { + if (SelFilter.placardCss != value) + { + SelFilter.placardCss = value; + } + } + } + + protected string rightString + { + get => SelFilter.rightString; + set + { + if (SelFilter.rightString != value) + { + SelFilter.rightString = value; + reportChange(); + } + } + } + + protected string rightStringCSS + { + get => SelFilter.rightStringCSS; + set + { + if (SelFilter.rightStringCSS != value) + { + SelFilter.rightStringCSS = value; + } + } + } + + protected string toolTip + { + get => SelFilter.toolTip; + set + { + if (SelFilter.toolTip != value) + { + SelFilter.toolTip = value; + } + } + } + + #endregion Protected Properties + + #region Protected Methods + + protected override async Task OnInitializedAsync() + { + await Task.Delay(1); + if (isActive) + { + rightStringCSS = "fw-bold"; + leftStringCSS = "text-secondary"; + } + else + { + leftStringCSS = "fw-bold"; + rightStringCSS = "text-secondary"; + } + //await FilterChanged.InvokeAsync(SelFilter); + } + + protected void toggle() + { + var currFilt = SelFilter; + currFilt.isActive = !currFilt.isActive; + SelFilter = currFilt; + if (isActive) + { + rightStringCSS = "fw-bold"; + leftStringCSS = "text-secondary"; + } + else + { + leftStringCSS = "fw-bold"; + rightStringCSS = "text-secondary"; + } + } + + #endregion Protected Methods + + #region Private Methods + + private void reportChange() + { + FilterChanged.InvokeAsync(SelFilter); + } + + #endregion Private Methods + + #region Public Classes + + /// + /// Classe utility x toggle + /// + public class SelectGlobalToggle + { + #region Public Constructors + + public SelectGlobalToggle() + { } + + #endregion Public Constructors + + #region Public Properties + + /// + /// Bool: indica se il toggleClosed � attivo + /// + public bool isActive { get; set; } = true; + + /// + /// string: stringa da mostrare a sinistra (disattivo onInitialize) + /// + public string leftString { get; set; } = ""; + + /// + /// string: stile stringa da mostrare a sinistra (disattivo onInitialize) + /// + public string leftStringCSS { get; set; } = ""; + + /// + /// CSS specifico x placard + /// + public string placardCss { get; set; } = ""; + + /// + /// string: stringa da mostrare a destra (attivo onInitialize) + /// + public string rightString { get; set; } = ""; + + /// + /// string: stile stringa da mostrare a destra (attivo onInitialize) + /// + public string rightStringCSS { get; set; } = ""; + + /// + /// Parametro da mostrare in tooltip + /// + public string toolTip { get; set; } = ""; + + #endregion Public Properties + + #region Public Methods + + public override bool Equals(object obj) + { + if (!(obj is SelectGlobalToggle item)) + return false; + + if (isActive != item.isActive) + return false; + + if (leftString != item.leftString) + return false; + + if (rightString != item.rightString) + return false; + + if (leftStringCSS != item.leftStringCSS) + return false; + + if (rightStringCSS != item.rightStringCSS) + return false; + + if (toolTip != item.toolTip) + return false; + + if (placardCss != item.placardCss) + return false; + + return true; + } + + public override int GetHashCode() + { + return base.GetHashCode(); + } + + #endregion Public Methods + } + + #endregion Public Classes + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/_Imports.razor b/Egw.Core.Razor.Comp/_Imports.razor new file mode 100644 index 0000000..7728512 --- /dev/null +++ b/Egw.Core.Razor.Comp/_Imports.razor @@ -0,0 +1 @@ +@using Microsoft.AspNetCore.Components.Web diff --git a/Egw.Core.Razor.Comp/compilerconfig.json b/Egw.Core.Razor.Comp/compilerconfig.json new file mode 100644 index 0000000..3aa4469 --- /dev/null +++ b/Egw.Core.Razor.Comp/compilerconfig.json @@ -0,0 +1,26 @@ +[ + { + "outputFile": "CircleGauge.razor.css", + "inputFile": "CircleGauge.razor.less" + }, + { + "outputFile": "CmpTop.razor.css", + "inputFile": "CmpTop.razor.less" + }, + { + "outputFile": "NavBottom.razor.css", + "inputFile": "NavBottom.razor.less" + }, + { + "outputFile": "CalendarMonth.razor.css", + "inputFile": "CalendarMonth.razor.less" + }, + { + "outputFile": "CalendarWeek.razor.css", + "inputFile": "CalendarWeek.razor.less" + }, + { + "outputFile": "CalWeekColumn.razor.css", + "inputFile": "CalWeekColumn.razor.less" + } +] \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/compilerconfig.json.defaults b/Egw.Core.Razor.Comp/compilerconfig.json.defaults new file mode 100644 index 0000000..41870cc --- /dev/null +++ b/Egw.Core.Razor.Comp/compilerconfig.json.defaults @@ -0,0 +1,71 @@ +{ + "compilers": { + "less": { + "autoPrefix": "", + "cssComb": "none", + "ieCompat": true, + "math": null, + "strictMath": false, + "strictUnits": false, + "relativeUrls": true, + "rootPath": "", + "sourceMapRoot": "", + "sourceMapBasePath": "", + "sourceMap": false + }, + "sass": { + "autoPrefix": "", + "loadPaths": "", + "style": "expanded", + "relativeUrls": true, + "sourceMap": false + }, + "nodesass": { + "autoPrefix": "", + "includePath": "", + "indentType": "space", + "indentWidth": 2, + "outputStyle": "nested", + "precision": 5, + "relativeUrls": true, + "sourceMapRoot": "", + "lineFeed": "", + "sourceMap": false + }, + "stylus": { + "sourceMap": false + }, + "babel": { + "sourceMap": false + }, + "coffeescript": { + "bare": false, + "runtimeMode": "node", + "sourceMap": false + }, + "handlebars": { + "root": "", + "noBOM": false, + "name": "", + "namespace": "", + "knownHelpersOnly": false, + "forcePartial": false, + "knownHelpers": [], + "commonjs": "", + "amd": false, + "sourceMap": false + } + }, + "minifiers": { + "css": { + "enabled": true, + "termSemicolons": true, + "gzip": false + }, + "javascript": { + "enabled": true, + "termSemicolons": true, + "gzip": false + } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs b/Egw.Core.Razor.Comp/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs new file mode 100644 index 0000000..ed92695 --- /dev/null +++ b/Egw.Core.Razor.Comp/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] diff --git a/Egw.Core.Razor.Comp/obj/Debug/net6.0/Egw.Core.Razor.Comp.GlobalUsings.g.cs b/Egw.Core.Razor.Comp/obj/Debug/net6.0/Egw.Core.Razor.Comp.GlobalUsings.g.cs new file mode 100644 index 0000000..8578f3d --- /dev/null +++ b/Egw.Core.Razor.Comp/obj/Debug/net6.0/Egw.Core.Razor.Comp.GlobalUsings.g.cs @@ -0,0 +1,8 @@ +// +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Egw.Core.Razor.Comp/obj/Debug/net6.0/project.razor.vs.json b/Egw.Core.Razor.Comp/obj/Debug/net6.0/project.razor.vs.json new file mode 100644 index 0000000..efacdc5 --- /dev/null +++ b/Egw.Core.Razor.Comp/obj/Debug/net6.0/project.razor.vs.json @@ -0,0 +1 @@ +{"SerializedFilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\obj\\Debug\\net6.0\\project.razor.vs.json","FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\Egw.Core.Razor.Comp.csproj","Configuration":{"ConfigurationName":"Default","LanguageVersion":"6.0","Extensions":[]},"ProjectWorkspaceState":{"TagHelpers":[{"HashCode":845103961,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CalendarMonth","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"CalendarMonth"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"CurrMonthCss","TypeName":"System.String","Documentation":"\r\n \r\n Css giorno mese corrente\r\n default: text-danger\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"CurrMonthCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"DateCheck","TypeName":"System.Collections.Generic.Dictionary","Documentation":"\r\n \r\n Dizionario configurazione date (per check colori su data)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateCheck","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.Dictionary"}},{"Kind":"Components.Component","Name":"DateCheckBlock","TypeName":"System.Collections.Generic.Dictionary","Documentation":"\r\n \r\n Dizionario configurazione date tipo BLOCK (es feste, chiusure aziendali)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateCheckBlock","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.Dictionary"}},{"Kind":"Components.Component","Name":"DateSelected","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento selezione data valida (= entro il mese corrente/selezionato)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateSelected","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"backToCal","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"backToCal","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"DtRif","TypeName":"System.DateTime","Documentation":"\r\n \r\n Day di riferimento (tipicamente = oggi) per disegnare calendario alla data corrente\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DtRif","Common.GloballyQualifiedTypeName":"global::System.DateTime"}},{"Kind":"Components.Component","Name":"EventList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Elenco eventi da mostrare sul calendario\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"EventList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"HeadStyle","TypeName":"System.String","Documentation":"\r\n \r\n Css titolo\r\n default: color: red\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"HeadStyle","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"MainCss","TypeName":"System.String","Documentation":"\r\n \r\n Css sfondo principale\r\n default: table table-dark table-borderless opt alt: table-striped, table-responsive\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"MainCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"MonthChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento cambio di mese\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"MonthChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"OtherMonthCss","TypeName":"System.String","Documentation":"\r\n \r\n Css giorno tipico\r\n default: text-danger\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"OtherMonthCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"SelDayCss","TypeName":"System.String","Documentation":"\r\n \r\n Css giorno selezionato\r\n default: bg-danger text-warning\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"SelDayCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"SelWeekCss","TypeName":"System.String","Documentation":"\r\n \r\n Css dei giorni della settimana selezionata\r\n default: bg-danger text-warning\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"SelWeekCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"SingleWeek","TypeName":"System.Boolean","Documentation":"\r\n \r\n Imposta di mostrare SOLO una singola settimana (per selezione data)\r\n default: false\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"SingleWeek","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"WeekEndCss","TypeName":"System.String","Documentation":"\r\n \r\n Css per giorni weekend (sab-dom)\r\n default: text-danger\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"WeekEndCss","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CalendarMonth","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CalendarMonth"}},{"HashCode":1045045959,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CalendarMonth","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.CalendarMonth"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"CurrMonthCss","TypeName":"System.String","Documentation":"\r\n \r\n Css giorno mese corrente\r\n default: text-danger\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"CurrMonthCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"DateCheck","TypeName":"System.Collections.Generic.Dictionary","Documentation":"\r\n \r\n Dizionario configurazione date (per check colori su data)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateCheck","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.Dictionary"}},{"Kind":"Components.Component","Name":"DateCheckBlock","TypeName":"System.Collections.Generic.Dictionary","Documentation":"\r\n \r\n Dizionario configurazione date tipo BLOCK (es feste, chiusure aziendali)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateCheckBlock","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.Dictionary"}},{"Kind":"Components.Component","Name":"DateSelected","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento selezione data valida (= entro il mese corrente/selezionato)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateSelected","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"backToCal","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"backToCal","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"DtRif","TypeName":"System.DateTime","Documentation":"\r\n \r\n Day di riferimento (tipicamente = oggi) per disegnare calendario alla data corrente\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DtRif","Common.GloballyQualifiedTypeName":"global::System.DateTime"}},{"Kind":"Components.Component","Name":"EventList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Elenco eventi da mostrare sul calendario\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"EventList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"HeadStyle","TypeName":"System.String","Documentation":"\r\n \r\n Css titolo\r\n default: color: red\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"HeadStyle","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"MainCss","TypeName":"System.String","Documentation":"\r\n \r\n Css sfondo principale\r\n default: table table-dark table-borderless opt alt: table-striped, table-responsive\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"MainCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"MonthChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento cambio di mese\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"MonthChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"OtherMonthCss","TypeName":"System.String","Documentation":"\r\n \r\n Css giorno tipico\r\n default: text-danger\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"OtherMonthCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"SelDayCss","TypeName":"System.String","Documentation":"\r\n \r\n Css giorno selezionato\r\n default: bg-danger text-warning\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"SelDayCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"SelWeekCss","TypeName":"System.String","Documentation":"\r\n \r\n Css dei giorni della settimana selezionata\r\n default: bg-danger text-warning\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"SelWeekCss","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"SingleWeek","TypeName":"System.Boolean","Documentation":"\r\n \r\n Imposta di mostrare SOLO una singola settimana (per selezione data)\r\n default: false\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"SingleWeek","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"WeekEndCss","TypeName":"System.String","Documentation":"\r\n \r\n Css per giorni weekend (sab-dom)\r\n default: text-danger\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"WeekEndCss","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CalendarMonth","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CalendarMonth","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":383779786,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.ChartHist","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChartHist"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"BackColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"BackColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"TextColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"TextColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ChartLabel","TypeName":"System.String","Metadata":{"Common.PropertyName":"ChartLabel","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Data","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Data","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"Id","TypeName":"System.String","Metadata":{"Common.PropertyName":"Id","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Labels","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Labels","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"LineColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"LineColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"GridColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"GridColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AnimationTime","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"AnimationTime","Common.GloballyQualifiedTypeName":"global::System.Int32"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.ChartHist","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ChartHist"}},{"HashCode":-748457189,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.ChartHist","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.ChartHist"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"BackColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"BackColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"TextColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"TextColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ChartLabel","TypeName":"System.String","Metadata":{"Common.PropertyName":"ChartLabel","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Data","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Data","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"Id","TypeName":"System.String","Metadata":{"Common.PropertyName":"Id","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Labels","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Labels","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"LineColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"LineColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"GridColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"GridColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AnimationTime","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"AnimationTime","Common.GloballyQualifiedTypeName":"global::System.Int32"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.ChartHist","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ChartHist","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":526191394,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.ToastDisplay","AssemblyName":"Egw.Core.Razor.Comp","Documentation":"\r\n \r\n Gestione display Toast con Bootstrap 5+\r\n \r\n https://getbootstrap.com/docs/5.2/components/toasts/\r\n \r\n\r\n","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ToastDisplay"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"currPosition","TypeName":"Egw.Core.Razor.Comp.ToastDisplay.DispPosition","IsEnum":true,"Metadata":{"Common.PropertyName":"currPosition","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.ToastDisplay.DispPosition"}},{"Kind":"Components.Component","Name":"DoShow","TypeName":"System.Boolean","Metadata":{"Common.PropertyName":"DoShow","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"ReportClose","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"ReportClose","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"TitleDx","TypeName":"System.String","Metadata":{"Common.PropertyName":"TitleDx","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"TitleSx","TypeName":"System.String","Metadata":{"Common.PropertyName":"TitleSx","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.ToastDisplay","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ToastDisplay"}},{"HashCode":619557644,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.ToastDisplay","AssemblyName":"Egw.Core.Razor.Comp","Documentation":"\r\n \r\n Gestione display Toast con Bootstrap 5+\r\n \r\n https://getbootstrap.com/docs/5.2/components/toasts/\r\n \r\n\r\n","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.ToastDisplay"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"currPosition","TypeName":"Egw.Core.Razor.Comp.ToastDisplay.DispPosition","IsEnum":true,"Metadata":{"Common.PropertyName":"currPosition","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.ToastDisplay.DispPosition"}},{"Kind":"Components.Component","Name":"DoShow","TypeName":"System.Boolean","Metadata":{"Common.PropertyName":"DoShow","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"ReportClose","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"ReportClose","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"TitleDx","TypeName":"System.String","Metadata":{"Common.PropertyName":"TitleDx","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"TitleSx","TypeName":"System.String","Metadata":{"Common.PropertyName":"TitleSx","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.ToastDisplay","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ToastDisplay","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-368309020,"Kind":"Components.ChildContent","Name":"Egw.Core.Razor.Comp.ToastDisplay.ChildContent","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"ToastDisplay"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Egw.Core.Razor.Comp.ToastDisplay.ChildContent","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ToastDisplay","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":533438241,"Kind":"Components.ChildContent","Name":"Egw.Core.Razor.Comp.ToastDisplay.ChildContent","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Egw.Core.Razor.Comp.ToastDisplay"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Egw.Core.Razor.Comp.ToastDisplay.ChildContent","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ToastDisplay","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1102778911,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.Toggler","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Toggler"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"FilterChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"FilterChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"SelFilter","TypeName":"Egw.Core.Razor.Comp.Toggler.SelectGlobalToggle","Metadata":{"Common.PropertyName":"SelFilter","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.Toggler.SelectGlobalToggle"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.Toggler","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"Toggler"}},{"HashCode":1340956202,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.Toggler","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.Toggler"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"FilterChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"FilterChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"SelFilter","TypeName":"Egw.Core.Razor.Comp.Toggler.SelectGlobalToggle","Metadata":{"Common.PropertyName":"SelFilter","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.Toggler.SelectGlobalToggle"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.Toggler","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"Toggler","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":315285200,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.ChartTS","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChartTS"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AnimationTime","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"AnimationTime","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"BackColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"BackColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"TextColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"TextColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"GridColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"GridColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ChartLabel","TypeName":"System.String","Metadata":{"Common.PropertyName":"ChartLabel","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"DataTS","TypeName":"System.Collections.Generic.List","Metadata":{"Common.PropertyName":"DataTS","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"Id","TypeName":"System.String","Metadata":{"Common.PropertyName":"Id","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"LineColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"LineColor","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.ChartTS","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ChartTS"}},{"HashCode":-377981215,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.ChartTS","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.ChartTS"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AnimationTime","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"AnimationTime","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"BackColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"BackColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"TextColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"TextColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"GridColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"GridColor","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ChartLabel","TypeName":"System.String","Metadata":{"Common.PropertyName":"ChartLabel","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"DataTS","TypeName":"System.Collections.Generic.List","Metadata":{"Common.PropertyName":"DataTS","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"Id","TypeName":"System.String","Metadata":{"Common.PropertyName":"Id","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"LineColor","TypeName":"System.String","Metadata":{"Common.PropertyName":"LineColor","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.ChartTS","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"ChartTS","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":436421251,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CircleGauge","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"CircleGauge"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Titolo","TypeName":"System.String","Metadata":{"Common.PropertyName":"Titolo","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Testo","TypeName":"System.String","Metadata":{"Common.PropertyName":"Testo","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"StyleTitolo","TypeName":"System.String","Metadata":{"Common.PropertyName":"StyleTitolo","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"StyleTesto","TypeName":"System.String","Metadata":{"Common.PropertyName":"StyleTesto","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"strokeColorVal","TypeName":"System.String","Metadata":{"Common.PropertyName":"strokeColorVal","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"currVal","TypeName":"System.Int32","Documentation":"\r\n \r\n Valore da rappresentare\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"currVal","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"maxVal","TypeName":"System.Int32","Documentation":"\r\n \r\n Valore MASSIMO da rappresentare (=100%)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"maxVal","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"sWidth","TypeName":"System.Int32","Documentation":"\r\n \r\n Spessore dei cerchida disegnare\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"sWidth","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"innRad","TypeName":"System.Int32","Documentation":"\r\n \r\n Raggio cerchio interno (0..100)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"innRad","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"outRad","TypeName":"System.Int32","Documentation":"\r\n \r\n Raggio cerchio esterno (0..100)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"outRad","Common.GloballyQualifiedTypeName":"global::System.Int32"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CircleGauge","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CircleGauge"}},{"HashCode":1643430717,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CircleGauge","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.CircleGauge"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Titolo","TypeName":"System.String","Metadata":{"Common.PropertyName":"Titolo","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Testo","TypeName":"System.String","Metadata":{"Common.PropertyName":"Testo","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"StyleTitolo","TypeName":"System.String","Metadata":{"Common.PropertyName":"StyleTitolo","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"StyleTesto","TypeName":"System.String","Metadata":{"Common.PropertyName":"StyleTesto","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"strokeColorVal","TypeName":"System.String","Metadata":{"Common.PropertyName":"strokeColorVal","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"currVal","TypeName":"System.Int32","Documentation":"\r\n \r\n Valore da rappresentare\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"currVal","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"maxVal","TypeName":"System.Int32","Documentation":"\r\n \r\n Valore MASSIMO da rappresentare (=100%)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"maxVal","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"sWidth","TypeName":"System.Int32","Documentation":"\r\n \r\n Spessore dei cerchida disegnare\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"sWidth","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"innRad","TypeName":"System.Int32","Documentation":"\r\n \r\n Raggio cerchio interno (0..100)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"innRad","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"outRad","TypeName":"System.Int32","Documentation":"\r\n \r\n Raggio cerchio esterno (0..100)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"outRad","Common.GloballyQualifiedTypeName":"global::System.Int32"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CircleGauge","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CircleGauge","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-2034900758,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CalWeekColumn","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"CalWeekColumn"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"EventList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Lista etichette da mostrare (richiede tipo label...)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"EventList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"ItemMode","TypeName":"Egw.Core.Razor.Comp.CalWeekColumn.ColType","IsEnum":true,"Documentation":"\r\n \r\n Modalit� di disegno\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"ItemMode","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.CalWeekColumn.ColType"}},{"Kind":"Components.Component","Name":"ValMax","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"ValMax","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"ValMin","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"ValMin","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"vBox","TypeName":"System.Drawing.Size","Documentation":"\r\n \r\n Dimensioni viewbox\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"vBox","Common.GloballyQualifiedTypeName":"global::System.Drawing.Size"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CalWeekColumn","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CalWeekColumn"}},{"HashCode":-1696318779,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CalWeekColumn","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.CalWeekColumn"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"EventList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Lista etichette da mostrare (richiede tipo label...)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"EventList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"ItemMode","TypeName":"Egw.Core.Razor.Comp.CalWeekColumn.ColType","IsEnum":true,"Documentation":"\r\n \r\n Modalit� di disegno\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"ItemMode","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.CalWeekColumn.ColType"}},{"Kind":"Components.Component","Name":"ValMax","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"ValMax","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"ValMin","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"ValMin","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"vBox","TypeName":"System.Drawing.Size","Documentation":"\r\n \r\n Dimensioni viewbox\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"vBox","Common.GloballyQualifiedTypeName":"global::System.Drawing.Size"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CalWeekColumn","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CalWeekColumn","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1357376039,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CalendarWeek","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"CalendarWeek"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"DateList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Periodo da mostrare (tipicamente 1 settimana)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"EventList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Eventi da inserire\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"EventList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"DateSelected","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento selezione data valida (= entro il periodo selezionato)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateSelected","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"backToCalendar","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"backToCalendar","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"EndHour","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"EndHour","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"HeadStyle","TypeName":"System.String","Documentation":"\r\n \r\n Css titolo\r\n default: color: red\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"HeadStyle","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"HeightHour","TypeName":"System.Int32","Documentation":"\r\n \r\n Altezza di ogni blocco ora da mostrare\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"HeightHour","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"labelWidth","TypeName":"System.Int32","Documentation":"\r\n \r\n Larghezza calcolata delle etichette, minimo tra\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"labelWidth","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"StartHour","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"StartHour","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"vBox","TypeName":"System.Drawing.Size","Documentation":"\r\n \r\n Dimensioni viewbox GLOBALE\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"vBox","Common.GloballyQualifiedTypeName":"global::System.Drawing.Size"}},{"Kind":"Components.Component","Name":"WeekChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento richiesta modifica settimana\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"WeekChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CalendarWeek","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CalendarWeek"}},{"HashCode":1289737389,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.CalendarWeek","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.CalendarWeek"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"DateList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Periodo da mostrare (tipicamente 1 settimana)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"EventList","TypeName":"System.Collections.Generic.List","Documentation":"\r\n \r\n Eventi da inserire\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"EventList","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.List"}},{"Kind":"Components.Component","Name":"DateSelected","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento selezione data valida (= entro il periodo selezionato)\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"DateSelected","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"backToCalendar","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Metadata":{"Common.PropertyName":"backToCalendar","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"EndHour","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"EndHour","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"HeadStyle","TypeName":"System.String","Documentation":"\r\n \r\n Css titolo\r\n default: color: red\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"HeadStyle","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"HeightHour","TypeName":"System.Int32","Documentation":"\r\n \r\n Altezza di ogni blocco ora da mostrare\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"HeightHour","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"labelWidth","TypeName":"System.Int32","Documentation":"\r\n \r\n Larghezza calcolata delle etichette, minimo tra\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"labelWidth","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"StartHour","TypeName":"System.Int32","Metadata":{"Common.PropertyName":"StartHour","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"vBox","TypeName":"System.Drawing.Size","Documentation":"\r\n \r\n Dimensioni viewbox GLOBALE\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"vBox","Common.GloballyQualifiedTypeName":"global::System.Drawing.Size"}},{"Kind":"Components.Component","Name":"WeekChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\r\n \r\n Evento richiesta modifica settimana\r\n \r\n\r\n","Metadata":{"Common.PropertyName":"WeekChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.CalendarWeek","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"CalendarWeek","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":2126094269,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.LoadingDataSmall","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"LoadingDataSmall"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.LoadingDataSmall","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"LoadingDataSmall"}},{"HashCode":-2049327362,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.LoadingDataSmall","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.LoadingDataSmall"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.LoadingDataSmall","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"LoadingDataSmall","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-820557344,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.Chart","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Chart"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Id","TypeName":"System.String","Metadata":{"Common.PropertyName":"Id","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Type","TypeName":"Egw.Core.Razor.Comp.Chart.ChartType","IsEnum":true,"Metadata":{"Common.PropertyName":"Type","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.Chart.ChartType"}},{"Kind":"Components.Component","Name":"Data","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Data","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"BackgroundColor","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"BackgroundColor","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"Labels","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Labels","Common.GloballyQualifiedTypeName":"global::System.String[]"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.Chart","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"Chart"}},{"HashCode":-38421075,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.Chart","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.Chart"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Id","TypeName":"System.String","Metadata":{"Common.PropertyName":"Id","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"Type","TypeName":"Egw.Core.Razor.Comp.Chart.ChartType","IsEnum":true,"Metadata":{"Common.PropertyName":"Type","Common.GloballyQualifiedTypeName":"global::Egw.Core.Razor.Comp.Chart.ChartType"}},{"Kind":"Components.Component","Name":"Data","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Data","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"BackgroundColor","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"BackgroundColor","Common.GloballyQualifiedTypeName":"global::System.String[]"}},{"Kind":"Components.Component","Name":"Labels","TypeName":"System.String[]","Metadata":{"Common.PropertyName":"Labels","Common.GloballyQualifiedTypeName":"global::System.String[]"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.Chart","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"Chart","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-991983958,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.LoadingData","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"LoadingData"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.LoadingData","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"LoadingData"}},{"HashCode":2135605266,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.LoadingData","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.LoadingData"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.LoadingData","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"LoadingData","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-116152462,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.LoadingDataGrow","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"LoadingDataGrow"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.LoadingDataGrow","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"LoadingDataGrow"}},{"HashCode":-1921070684,"Kind":"Components.Component","Name":"Egw.Core.Razor.Comp.LoadingDataGrow","AssemblyName":"Egw.Core.Razor.Comp","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Egw.Core.Razor.Comp.LoadingDataGrow"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Egw.Core.Razor.Comp.LoadingDataGrow","Common.TypeNamespace":"Egw.Core.Razor.Comp","Common.TypeNameIdentifier":"LoadingDataGrow","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1789588623,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.EditForm","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Renders a form element that cascades an to descendants.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"EditForm"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created form element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"EditContext","TypeName":"Microsoft.AspNetCore.Components.Forms.EditContext","Documentation":"\n \n Supplies the edit context explicitly. If using this parameter, do not\n also supply , since the model value will be taken\n from the property.\n \n ","Metadata":{"Common.PropertyName":"EditContext","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.EditContext"}},{"Kind":"Components.Component","Name":"Model","TypeName":"System.Object","Documentation":"\n \n Specifies the top-level model object for the form. An edit context will\n be constructed for this model. If using this parameter, do not also supply\n a value for .\n \n ","Metadata":{"Common.PropertyName":"Model","Common.GloballyQualifiedTypeName":"global::System.Object"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Specifies the content to be rendered inside this .\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"OnSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n A callback that will be invoked when the form is submitted.\n \n If using this parameter, you are responsible for triggering any validation\n manually, e.g., by calling .\n \n ","Metadata":{"Common.PropertyName":"OnSubmit","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"OnValidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n A callback that will be invoked when the form is submitted and the\n is determined to be valid.\n \n ","Metadata":{"Common.PropertyName":"OnValidSubmit","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"OnInvalidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n A callback that will be invoked when the form is submitted and the\n is determined to be invalid.\n \n ","Metadata":{"Common.PropertyName":"OnInvalidSubmit","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"EditForm"}},{"HashCode":2087210361,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.EditForm","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Renders a form element that cascades an to descendants.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.EditForm"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created form element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"EditContext","TypeName":"Microsoft.AspNetCore.Components.Forms.EditContext","Documentation":"\n \n Supplies the edit context explicitly. If using this parameter, do not\n also supply , since the model value will be taken\n from the property.\n \n ","Metadata":{"Common.PropertyName":"EditContext","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.EditContext"}},{"Kind":"Components.Component","Name":"Model","TypeName":"System.Object","Documentation":"\n \n Specifies the top-level model object for the form. An edit context will\n be constructed for this model. If using this parameter, do not also supply\n a value for .\n \n ","Metadata":{"Common.PropertyName":"Model","Common.GloballyQualifiedTypeName":"global::System.Object"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Specifies the content to be rendered inside this .\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"OnSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n A callback that will be invoked when the form is submitted.\n \n If using this parameter, you are responsible for triggering any validation\n manually, e.g., by calling .\n \n ","Metadata":{"Common.PropertyName":"OnSubmit","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"OnValidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n A callback that will be invoked when the form is submitted and the\n is determined to be valid.\n \n ","Metadata":{"Common.PropertyName":"OnValidSubmit","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"OnInvalidSubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n A callback that will be invoked when the form is submitted and the\n is determined to be invalid.\n \n ","Metadata":{"Common.PropertyName":"OnInvalidSubmit","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"EditForm","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-2063719819,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Specifies the content to be rendered inside this .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"EditForm"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ChildContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"EditForm","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":113815998,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Specifies the content to be rendered inside this .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Forms.EditForm"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ChildContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"EditForm","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-916422635,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing values.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputCheckbox"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.Boolean","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputCheckbox"}},{"HashCode":1793156627,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing values.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.Boolean","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputCheckbox","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":2103100738,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputDate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing date values.\n Supported types are and .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputDate"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputDate component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"Type","TypeName":"Microsoft.AspNetCore.Components.Forms.InputDateType","IsEnum":true,"Documentation":"\n \n Gets or sets the type of HTML input to be rendered.\n \n ","Metadata":{"Common.PropertyName":"Type","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.InputDateType"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\n \n Gets or sets the error message used when displaying an a parsing error.\n \n ","Metadata":{"Common.PropertyName":"ParsingErrorMessage","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputDate","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputDate","Components.GenericTyped":"True"}},{"HashCode":596078321,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputDate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing date values.\n Supported types are and .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputDate"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputDate component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"Type","TypeName":"Microsoft.AspNetCore.Components.Forms.InputDateType","IsEnum":true,"Documentation":"\n \n Gets or sets the type of HTML input to be rendered.\n \n ","Metadata":{"Common.PropertyName":"Type","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Forms.InputDateType"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\n \n Gets or sets the error message used when displaying an a parsing error.\n \n ","Metadata":{"Common.PropertyName":"ParsingErrorMessage","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputDate","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputDate","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-950800962,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputFile","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A component that wraps the HTML file input element and supplies a for each file's contents.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputFile"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"OnChange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets the event callback that will be invoked when the collection of selected files changes.\n \n ","Metadata":{"Common.PropertyName":"OnChange","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the input element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IDictionary"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputFile","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputFile"}},{"HashCode":-51883978,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputFile","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A component that wraps the HTML file input element and supplies a for each file's contents.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputFile"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"OnChange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets the event callback that will be invoked when the collection of selected files changes.\n \n ","Metadata":{"Common.PropertyName":"OnChange","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the input element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IDictionary"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputFile","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputFile","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":152097514,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputNumber","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing numeric values.\n Supported numeric types are , , , , , .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputNumber"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputNumber component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\n \n Gets or sets the error message used when displaying an a parsing error.\n \n ","Metadata":{"Common.PropertyName":"ParsingErrorMessage","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputNumber","Components.GenericTyped":"True"}},{"HashCode":-899228490,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputNumber","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing numeric values.\n Supported numeric types are , , , , , .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputNumber"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputNumber component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ParsingErrorMessage","TypeName":"System.String","Documentation":"\n \n Gets or sets the error message used when displaying an a parsing error.\n \n ","Metadata":{"Common.PropertyName":"ParsingErrorMessage","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputNumber","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":247676274,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadio","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component used for selecting a value from a group of choices.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputRadio"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadio component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the input element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of this input.\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\n \n Gets or sets the name of the parent input radio group.\n \n ","Metadata":{"Common.PropertyName":"Name","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadio","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadio","Components.GenericTyped":"True"}},{"HashCode":-245082154,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadio","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component used for selecting a value from a group of choices.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputRadio"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadio component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the input element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of this input.\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\n \n Gets or sets the name of the parent input radio group.\n \n ","Metadata":{"Common.PropertyName":"Name","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadio","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadio","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-3486518,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Groups child components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputRadioGroup"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadioGroup component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the child content to be rendering inside the .\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\n \n Gets or sets the name of the group.\n \n ","Metadata":{"Common.PropertyName":"Name","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadioGroup","Components.GenericTyped":"True"}},{"HashCode":-1446222502,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Groups child components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputRadioGroup component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the child content to be rendering inside the .\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\n \n Gets or sets the name of the group.\n \n ","Metadata":{"Common.PropertyName":"Name","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadioGroup","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1960512142,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the child content to be rendering inside the .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"InputRadioGroup"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadioGroup","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1920215596,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the child content to be rendering inside the .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadioGroup","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-962036311,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A dropdown selection component.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputSelect"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputSelect component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the child content to be rendering inside the select element.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputSelect","Components.GenericTyped":"True"}},{"HashCode":1775905808,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A dropdown selection component.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputSelect"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.InputSelect component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the child content to be rendering inside the select element.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputSelect","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-924391862,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the child content to be rendering inside the select element.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"InputSelect"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputSelect","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":1469997211,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the child content to be rendering inside the select element.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Forms.InputSelect"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputSelect","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":497607057,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputText","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing values.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputText"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputText","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputText"}},{"HashCode":-1896998253,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputText","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n An input component for editing values.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputText"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputText","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputText","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":706994615,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputTextArea","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A multiline input component for editing values.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputTextArea"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputTextArea"}},{"HashCode":-1458327790,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.InputTextArea","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A multiline input component for editing values.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputTextArea"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"Value","TypeName":"System.String","Documentation":"\n \n Gets or sets the value of the input. This should be used with two-way binding.\n \n \n @bind-Value=\"model.PropertyName\"\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"ValueChanged","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a callback that updates the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueChanged","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"ValueExpression","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Gets or sets an expression that identifies the bound value.\n \n ","Metadata":{"Common.PropertyName":"ValueExpression","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>"}},{"Kind":"Components.Component","Name":"DisplayName","TypeName":"System.String","Documentation":"\n \n Gets or sets the display name for this field.\n This value is used when generating error messages when the input value fails to parse correctly.\n \n ","Metadata":{"Common.PropertyName":"DisplayName","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputTextArea","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1409346984,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Displays a list of validation messages for a specified field within a cascaded .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ValidationMessage"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.ValidationMessage component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created div element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"For","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Specifies the field for which validation messages should be displayed.\n \n ","Metadata":{"Common.PropertyName":"For","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"ValidationMessage","Components.GenericTyped":"True"}},{"HashCode":-539041457,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Displays a list of validation messages for a specified field within a cascaded .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.ValidationMessage"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.Forms.ValidationMessage component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created div element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"For","TypeName":"System.Linq.Expressions.Expression>","Documentation":"\n \n Specifies the field for which validation messages should be displayed.\n \n ","Metadata":{"Common.PropertyName":"For","Common.GloballyQualifiedTypeName":"global::System.Linq.Expressions.Expression>","Components.GenericTyped":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.ValidationMessage","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"ValidationMessage","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1642247267,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationSummary","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Displays a list of validation messages from a cascaded .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ValidationSummary"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Model","TypeName":"System.Object","Documentation":"\n \n Gets or sets the model to produce the list of validation messages for.\n When specified, this lists all errors that are associated with the model instance.\n \n ","Metadata":{"Common.PropertyName":"Model","Common.GloballyQualifiedTypeName":"global::System.Object"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created ul element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.ValidationSummary","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"ValidationSummary"}},{"HashCode":591741979,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.ValidationSummary","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Displays a list of validation messages from a cascaded .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.ValidationSummary"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Model","TypeName":"System.Object","Documentation":"\n \n Gets or sets the model to produce the list of validation messages for.\n When specified, this lists all errors that are associated with the model instance.\n \n ","Metadata":{"Common.PropertyName":"Model","Common.GloballyQualifiedTypeName":"global::System.Object"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be applied to the created ul element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.ValidationSummary","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"ValidationSummary","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1321625040,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Routing.FocusOnNavigate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n After navigating from one page to another, sets focus to an element\n matching a CSS selector. This can be used to build an accessible\n navigation system compatible with screen readers.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"FocusOnNavigate"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"RouteData","TypeName":"Microsoft.AspNetCore.Components.RouteData","Documentation":"\n \n Gets or sets the route data. This can be obtained from an enclosing\n component.\n \n ","Metadata":{"Common.PropertyName":"RouteData","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RouteData"}},{"Kind":"Components.Component","Name":"Selector","TypeName":"System.String","Documentation":"\n \n Gets or sets a CSS selector describing the element to be focused after\n navigation between pages.\n \n ","Metadata":{"Common.PropertyName":"Selector","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.FocusOnNavigate","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"FocusOnNavigate"}},{"HashCode":-1759400738,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Routing.FocusOnNavigate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n After navigating from one page to another, sets focus to an element\n matching a CSS selector. This can be used to build an accessible\n navigation system compatible with screen readers.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Routing.FocusOnNavigate"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"RouteData","TypeName":"Microsoft.AspNetCore.Components.RouteData","Documentation":"\n \n Gets or sets the route data. This can be obtained from an enclosing\n component.\n \n ","Metadata":{"Common.PropertyName":"RouteData","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RouteData"}},{"Kind":"Components.Component","Name":"Selector","TypeName":"System.String","Documentation":"\n \n Gets or sets a CSS selector describing the element to be focused after\n navigation between pages.\n \n ","Metadata":{"Common.PropertyName":"Selector","Common.GloballyQualifiedTypeName":"global::System.String"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.FocusOnNavigate","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"FocusOnNavigate","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1721809178,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Routing.NavLink","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A component that renders an anchor tag, automatically toggling its 'active'\n class based on whether its 'href' matches the current URI.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"NavLink"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ActiveClass","TypeName":"System.String","Documentation":"\n \n Gets or sets the CSS class name applied to the NavLink when the\n current route matches the NavLink href.\n \n ","Metadata":{"Common.PropertyName":"ActiveClass","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be added to the generated\n a element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the child content of the component.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Match","TypeName":"Microsoft.AspNetCore.Components.Routing.NavLinkMatch","IsEnum":true,"Documentation":"\n \n Gets or sets a value representing the URL matching behavior.\n \n ","Metadata":{"Common.PropertyName":"Match","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Routing.NavLinkMatch"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.NavLink","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"NavLink"}},{"HashCode":-1182313963,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Routing.NavLink","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n A component that renders an anchor tag, automatically toggling its 'active'\n class based on whether its 'href' matches the current URI.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Routing.NavLink"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ActiveClass","TypeName":"System.String","Documentation":"\n \n Gets or sets the CSS class name applied to the NavLink when the\n current route matches the NavLink href.\n \n ","Metadata":{"Common.PropertyName":"ActiveClass","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"AdditionalAttributes","TypeName":"System.Collections.Generic.IReadOnlyDictionary","Documentation":"\n \n Gets or sets a collection of additional attributes that will be added to the generated\n a element.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAttributes","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IReadOnlyDictionary"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the child content of the component.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Match","TypeName":"Microsoft.AspNetCore.Components.Routing.NavLinkMatch","IsEnum":true,"Documentation":"\n \n Gets or sets a value representing the URL matching behavior.\n \n ","Metadata":{"Common.PropertyName":"Match","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Routing.NavLinkMatch"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.NavLink","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"NavLink","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-740824051,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the child content of the component.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"NavLink"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"NavLink","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1903137250,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the child content of the component.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Routing.NavLink"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"NavLink","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1246271716,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.HeadContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Provides content to components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"HeadContent"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the content to be rendered in instances.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.HeadContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"HeadContent"}},{"HashCode":-996503938,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.HeadContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Provides content to components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Web.HeadContent"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the content to be rendered in instances.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.HeadContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"HeadContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1608831631,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the content to be rendered in instances.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"HeadContent"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"HeadContent","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1521540536,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the content to be rendered in instances.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Web.HeadContent"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"HeadContent","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-628269752,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.HeadOutlet","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Renders content provided by components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"HeadOutlet"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.HeadOutlet","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"HeadOutlet"}},{"HashCode":1646289862,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.HeadOutlet","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Renders content provided by components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Web.HeadOutlet"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.HeadOutlet","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"HeadOutlet","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-2129736942,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.PageTitle","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Enables rendering an HTML <title> to a component.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"PageTitle"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the content to be rendered as the document title.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.PageTitle","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"PageTitle"}},{"HashCode":943926180,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.PageTitle","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Enables rendering an HTML <title> to a component.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Web.PageTitle"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the content to be rendered as the document title.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.PageTitle","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"PageTitle","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1161311501,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the content to be rendered as the document title.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"PageTitle"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"PageTitle","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":2073571043,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the content to be rendered as the document title.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Web.PageTitle"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"PageTitle","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1113147290,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.ErrorBoundary","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Captures errors thrown from its child content.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ErrorBoundary"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n The content to be displayed when there is no error.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"ErrorContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n The content to be displayed when there is an error.\n \n ","Metadata":{"Common.PropertyName":"ErrorContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"MaximumErrorCount","TypeName":"System.Int32","Documentation":"\n \n The maximum number of errors that can be handled. If more errors are received,\n they will be treated as fatal. Calling resets the count.\n \n ","Metadata":{"Common.PropertyName":"MaximumErrorCount","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"ErrorBoundary"}},{"HashCode":719579976,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.ErrorBoundary","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Captures errors thrown from its child content.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n The content to be displayed when there is no error.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"ErrorContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n The content to be displayed when there is an error.\n \n ","Metadata":{"Common.PropertyName":"ErrorContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"MaximumErrorCount","TypeName":"System.Int32","Documentation":"\n \n The maximum number of errors that can be handled. If more errors are received,\n they will be treated as fatal. Calling resets the count.\n \n ","Metadata":{"Common.PropertyName":"MaximumErrorCount","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"ErrorBoundary","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-252057281,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n The content to be displayed when there is no error.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"ErrorBoundary"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"ErrorBoundary","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-334595117,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n The content to be displayed when there is no error.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Web.ErrorBoundary"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"ErrorBoundary","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":720802434,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n The content to be displayed when there is an error.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ErrorContent","ParentTag":"ErrorBoundary"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ErrorContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"ErrorBoundary","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1066138983,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n The content to be displayed when there is an error.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ErrorContent","ParentTag":"Microsoft.AspNetCore.Components.Web.ErrorBoundary"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ErrorContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"ErrorBoundary","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1329851055,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Provides functionality for rendering a virtualized list of items.\n \n The context type for the items being rendered.\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Virtualize"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TItem","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TItem for the Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize component.","Metadata":{"Common.PropertyName":"TItem","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ItemContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","Metadata":{"Common.PropertyName":"ItemContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Placeholder","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the template for items that have not yet been loaded in memory.\n \n ","Metadata":{"Common.PropertyName":"Placeholder","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"ItemSize","TypeName":"System.Single","Documentation":"\n \n Gets the size of each item in pixels. Defaults to 50px.\n \n ","Metadata":{"Common.PropertyName":"ItemSize","Common.GloballyQualifiedTypeName":"global::System.Single"}},{"Kind":"Components.Component","Name":"ItemsProvider","TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate","Documentation":"\n \n Gets or sets the function providing items to the list.\n \n ","Metadata":{"Common.PropertyName":"ItemsProvider","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate","Components.DelegateSignature":"True","Components.IsDelegateAwaitableResult":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Items","TypeName":"System.Collections.Generic.ICollection","Documentation":"\n \n Gets or sets the fixed item source.\n \n ","Metadata":{"Common.PropertyName":"Items","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.ICollection","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"OverscanCount","TypeName":"System.Int32","Documentation":"\n \n Gets or sets a value that determines how many additional items will be rendered\n before and after the visible region. This help to reduce the frequency of rendering\n during scrolling. However, higher values mean that more elements will be present\n in the page.\n \n ","Metadata":{"Common.PropertyName":"OverscanCount","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.GenericTyped":"True"}},{"HashCode":98630301,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Provides functionality for rendering a virtualized list of items.\n \n The context type for the items being rendered.\n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TItem","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TItem for the Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize component.","Metadata":{"Common.PropertyName":"TItem","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"ItemContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","Metadata":{"Common.PropertyName":"ItemContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Placeholder","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the template for items that have not yet been loaded in memory.\n \n ","Metadata":{"Common.PropertyName":"Placeholder","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"ItemSize","TypeName":"System.Single","Documentation":"\n \n Gets the size of each item in pixels. Defaults to 50px.\n \n ","Metadata":{"Common.PropertyName":"ItemSize","Common.GloballyQualifiedTypeName":"global::System.Single"}},{"Kind":"Components.Component","Name":"ItemsProvider","TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate","Documentation":"\n \n Gets or sets the function providing items to the list.\n \n ","Metadata":{"Common.PropertyName":"ItemsProvider","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate","Components.DelegateSignature":"True","Components.IsDelegateAwaitableResult":"True","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Items","TypeName":"System.Collections.Generic.ICollection","Documentation":"\n \n Gets or sets the fixed item source.\n \n ","Metadata":{"Common.PropertyName":"Items","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.ICollection","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"OverscanCount","TypeName":"System.Int32","Documentation":"\n \n Gets or sets a value that determines how many additional items will be rendered\n before and after the visible region. This help to reduce the frequency of rendering\n during scrolling. However, higher values mean that more elements will be present\n in the page.\n \n ","Metadata":{"Common.PropertyName":"OverscanCount","Common.GloballyQualifiedTypeName":"global::System.Int32"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":938082833,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Virtualize"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ChildContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1328007459,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ChildContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1573826946,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ItemContent","ParentTag":"Virtualize"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ItemContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-2071423432,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the item template for the list.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ItemContent","ParentTag":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'ItemContent' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1159723309,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the template for items that have not yet been loaded in memory.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Placeholder","ParentTag":"Virtualize"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'Placeholder' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1105006503,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"\n \n Gets or sets the template for items that have not yet been loaded in memory.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Placeholder","ParentTag":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'Placeholder' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web.Virtualization","Common.TypeNameIdentifier":"Virtualize","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1856072683,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","AssemblyName":"Microsoft.AspNetCore.Components.Forms","Documentation":"\n \n Adds Data Annotations validation support to an .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"DataAnnotationsValidator"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"DataAnnotationsValidator"}},{"HashCode":-1646701916,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","AssemblyName":"Microsoft.AspNetCore.Components.Forms","Documentation":"\n \n Adds Data Annotations validation support to an .\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator"}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"DataAnnotationsValidator","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-570326213,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.CascadingValue","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n A component that provides a cascading value to all descendant components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"CascadingValue"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.CascadingValue component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n The content to which the value should be provided.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n The value to be provided.\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\n \n Optionally gives a name to the provided value. Descendant components\n will be able to receive the value by specifying this name.\n \n If no name is specified, then descendant components will receive the\n value based the type of value they are requesting.\n \n ","Metadata":{"Common.PropertyName":"Name","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"IsFixed","TypeName":"System.Boolean","Documentation":"\n \n If true, indicates that will not change. This is a\n performance optimization that allows the framework to skip setting up\n change notifications. Set this flag only if you will not change\n during the component's lifetime.\n \n ","Metadata":{"Common.PropertyName":"IsFixed","Common.GloballyQualifiedTypeName":"global::System.Boolean"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.CascadingValue","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"CascadingValue","Components.GenericTyped":"True"}},{"HashCode":-1427256128,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.CascadingValue","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n A component that provides a cascading value to all descendant components.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.CascadingValue"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"TValue","TypeName":"System.Type","Documentation":"Specifies the type of the type parameter TValue for the Microsoft.AspNetCore.Components.CascadingValue component.","Metadata":{"Common.PropertyName":"TValue","Components.TypeParameter":"True","Components.TypeParameterIsCascading":"False"}},{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n The content to which the value should be provided.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Value","TypeName":"TValue","Documentation":"\n \n The value to be provided.\n \n ","Metadata":{"Common.PropertyName":"Value","Common.GloballyQualifiedTypeName":"TValue","Components.GenericTyped":"True"}},{"Kind":"Components.Component","Name":"Name","TypeName":"System.String","Documentation":"\n \n Optionally gives a name to the provided value. Descendant components\n will be able to receive the value by specifying this name.\n \n If no name is specified, then descendant components will receive the\n value based the type of value they are requesting.\n \n ","Metadata":{"Common.PropertyName":"Name","Common.GloballyQualifiedTypeName":"global::System.String"}},{"Kind":"Components.Component","Name":"IsFixed","TypeName":"System.Boolean","Documentation":"\n \n If true, indicates that will not change. This is a\n performance optimization that allows the framework to skip setting up\n change notifications. Set this flag only if you will not change\n during the component's lifetime.\n \n ","Metadata":{"Common.PropertyName":"IsFixed","Common.GloballyQualifiedTypeName":"global::System.Boolean"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.CascadingValue","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"CascadingValue","Components.GenericTyped":"True","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":2019176430,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.CascadingValue.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n The content to which the value should be provided.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"CascadingValue"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.CascadingValue.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"CascadingValue","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-99784322,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.CascadingValue.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n The content to which the value should be provided.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.CascadingValue"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.CascadingValue.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"CascadingValue","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1963668115,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.DynamicComponent","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n A component that renders another component dynamically according to its\n parameter.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"DynamicComponent"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Type","TypeName":"System.Type","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the type of the component to be rendered. The supplied type must\n implement .\n \n ","Metadata":{"Common.PropertyName":"Type","Common.GloballyQualifiedTypeName":"global::System.Type"}},{"Kind":"Components.Component","Name":"Parameters","TypeName":"System.Collections.Generic.IDictionary","Documentation":"\n \n Gets or sets a dictionary of parameters to be passed to the component.\n \n ","Metadata":{"Common.PropertyName":"Parameters","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IDictionary"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.DynamicComponent","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"DynamicComponent"}},{"HashCode":-2015505674,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.DynamicComponent","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n A component that renders another component dynamically according to its\n parameter.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.DynamicComponent"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"Type","TypeName":"System.Type","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the type of the component to be rendered. The supplied type must\n implement .\n \n ","Metadata":{"Common.PropertyName":"Type","Common.GloballyQualifiedTypeName":"global::System.Type"}},{"Kind":"Components.Component","Name":"Parameters","TypeName":"System.Collections.Generic.IDictionary","Documentation":"\n \n Gets or sets a dictionary of parameters to be passed to the component.\n \n ","Metadata":{"Common.PropertyName":"Parameters","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IDictionary"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.DynamicComponent","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"DynamicComponent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-2014705676,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.LayoutView","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Displays the specified content inside the specified layout and any further\n nested layouts.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"LayoutView"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the content to display.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Layout","TypeName":"System.Type","Documentation":"\n \n Gets or sets the type of the layout in which to display the content.\n The type must implement and accept a parameter named .\n \n ","Metadata":{"Common.PropertyName":"Layout","Common.GloballyQualifiedTypeName":"global::System.Type"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.LayoutView","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"LayoutView"}},{"HashCode":-644325477,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.LayoutView","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Displays the specified content inside the specified layout and any further\n nested layouts.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.LayoutView"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"ChildContent","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Gets or sets the content to display.\n \n ","Metadata":{"Common.PropertyName":"ChildContent","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Layout","TypeName":"System.Type","Documentation":"\n \n Gets or sets the type of the layout in which to display the content.\n The type must implement and accept a parameter named .\n \n ","Metadata":{"Common.PropertyName":"Layout","Common.GloballyQualifiedTypeName":"global::System.Type"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.LayoutView","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"LayoutView","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-2070786262,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.LayoutView.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Gets or sets the content to display.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"LayoutView"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.LayoutView.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"LayoutView","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1063252289,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.LayoutView.ChildContent","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Gets or sets the content to display.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"ChildContent","ParentTag":"Microsoft.AspNetCore.Components.LayoutView"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.LayoutView.ChildContent","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"LayoutView","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-295287261,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.RouteView","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Displays the specified page component, rendering it inside its layout\n and any further nested layouts.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"RouteView"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"RouteData","TypeName":"Microsoft.AspNetCore.Components.RouteData","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the route data. This determines the page that will be\n displayed and the parameter values that will be supplied to the page.\n \n ","Metadata":{"Common.PropertyName":"RouteData","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RouteData"}},{"Kind":"Components.Component","Name":"DefaultLayout","TypeName":"System.Type","Documentation":"\n \n Gets or sets the type of a layout to be used if the page does not\n declare any layout. If specified, the type must implement \n and accept a parameter named .\n \n ","Metadata":{"Common.PropertyName":"DefaultLayout","Common.GloballyQualifiedTypeName":"global::System.Type"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.RouteView","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"RouteView"}},{"HashCode":929523394,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.RouteView","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Displays the specified page component, rendering it inside its layout\n and any further nested layouts.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.RouteView"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"RouteData","TypeName":"Microsoft.AspNetCore.Components.RouteData","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the route data. This determines the page that will be\n displayed and the parameter values that will be supplied to the page.\n \n ","Metadata":{"Common.PropertyName":"RouteData","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RouteData"}},{"Kind":"Components.Component","Name":"DefaultLayout","TypeName":"System.Type","Documentation":"\n \n Gets or sets the type of a layout to be used if the page does not\n declare any layout. If specified, the type must implement \n and accept a parameter named .\n \n ","Metadata":{"Common.PropertyName":"DefaultLayout","Common.GloballyQualifiedTypeName":"global::System.Type"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.RouteView","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"RouteView","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":24364686,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Routing.Router","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n A component that supplies route data corresponding to the current navigation state.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Router"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AppAssembly","TypeName":"System.Reflection.Assembly","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the assembly that should be searched for components matching the URI.\n \n ","Metadata":{"Common.PropertyName":"AppAssembly","Common.GloballyQualifiedTypeName":"global::System.Reflection.Assembly"}},{"Kind":"Components.Component","Name":"AdditionalAssemblies","TypeName":"System.Collections.Generic.IEnumerable","Documentation":"\n \n Gets or sets a collection of additional assemblies that should be searched for components\n that can match URIs.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAssemblies","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IEnumerable"}},{"Kind":"Components.Component","Name":"NotFound","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the content to display when no match is found for the requested route.\n \n ","Metadata":{"Common.PropertyName":"NotFound","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Found","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the content to display when a match is found for the requested route.\n \n ","Metadata":{"Common.PropertyName":"Found","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Navigating","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Get or sets the content to display when asynchronous navigation is in progress.\n \n ","Metadata":{"Common.PropertyName":"Navigating","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"OnNavigateAsync","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a handler that should be called before navigating to a new page.\n \n ","Metadata":{"Common.PropertyName":"OnNavigateAsync","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"PreferExactMatches","TypeName":"System.Boolean","Documentation":"\n \n Gets or sets a flag to indicate whether route matching should prefer exact matches\n over wildcards.\n This property is obsolete and configuring it does nothing.\n \n ","Metadata":{"Common.PropertyName":"PreferExactMatches","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router"}},{"HashCode":-868917091,"Kind":"Components.Component","Name":"Microsoft.AspNetCore.Components.Routing.Router","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n A component that supplies route data corresponding to the current navigation state.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Routing.Router"}],"BoundAttributes":[{"Kind":"Components.Component","Name":"AppAssembly","TypeName":"System.Reflection.Assembly","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the assembly that should be searched for components matching the URI.\n \n ","Metadata":{"Common.PropertyName":"AppAssembly","Common.GloballyQualifiedTypeName":"global::System.Reflection.Assembly"}},{"Kind":"Components.Component","Name":"AdditionalAssemblies","TypeName":"System.Collections.Generic.IEnumerable","Documentation":"\n \n Gets or sets a collection of additional assemblies that should be searched for components\n that can match URIs.\n \n ","Metadata":{"Common.PropertyName":"AdditionalAssemblies","Common.GloballyQualifiedTypeName":"global::System.Collections.Generic.IEnumerable"}},{"Kind":"Components.Component","Name":"NotFound","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the content to display when no match is found for the requested route.\n \n ","Metadata":{"Common.PropertyName":"NotFound","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Found","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","IsEditorRequired":true,"Documentation":"\n \n Gets or sets the content to display when a match is found for the requested route.\n \n ","Metadata":{"Common.PropertyName":"Found","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"Navigating","TypeName":"Microsoft.AspNetCore.Components.RenderFragment","Documentation":"\n \n Get or sets the content to display when asynchronous navigation is in progress.\n \n ","Metadata":{"Common.PropertyName":"Navigating","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.RenderFragment","Components.ChildContent":"True"}},{"Kind":"Components.Component","Name":"OnNavigateAsync","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"\n \n Gets or sets a handler that should be called before navigating to a new page.\n \n ","Metadata":{"Common.PropertyName":"OnNavigateAsync","Common.GloballyQualifiedTypeName":"global::Microsoft.AspNetCore.Components.EventCallback","Components.EventCallback":"True"}},{"Kind":"Components.Component","Name":"PreferExactMatches","TypeName":"System.Boolean","Documentation":"\n \n Gets or sets a flag to indicate whether route matching should prefer exact matches\n over wildcards.\n This property is obsolete and configuring it does nothing.\n \n ","Metadata":{"Common.PropertyName":"PreferExactMatches","Common.GloballyQualifiedTypeName":"global::System.Boolean"}},{"Kind":"Components.Component","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for all child content expressions.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.IComponent","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":395977800,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.Router.NotFound","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Gets or sets the content to display when no match is found for the requested route.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"NotFound","ParentTag":"Router"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router.NotFound","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1303430697,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.Router.NotFound","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Gets or sets the content to display when no match is found for the requested route.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"NotFound","ParentTag":"Microsoft.AspNetCore.Components.Routing.Router"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router.NotFound","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-1702540883,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.Router.Found","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Gets or sets the content to display when a match is found for the requested route.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Found","ParentTag":"Router"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'Found' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router.Found","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-210369553,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.Router.Found","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Gets or sets the content to display when a match is found for the requested route.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Found","ParentTag":"Microsoft.AspNetCore.Components.Routing.Router"}],"BoundAttributes":[{"Kind":"Components.ChildContent","Name":"Context","TypeName":"System.String","Documentation":"Specifies the parameter name for the 'Found' child content expression.","Metadata":{"Components.ChildContentParameterName":"True","Common.PropertyName":"Context"}}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router.Found","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1969075404,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.Router.Navigating","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Get or sets the content to display when asynchronous navigation is in progress.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Navigating","ParentTag":"Router"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router.Navigating","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.IsSpecialKind":"Components.ChildContent"}},{"HashCode":-1966357993,"Kind":"Components.ChildContent","Name":"Microsoft.AspNetCore.Components.Routing.Router.Navigating","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"\n \n Get or sets the content to display when asynchronous navigation is in progress.\n \n ","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Navigating","ParentTag":"Microsoft.AspNetCore.Components.Routing.Router"}],"Metadata":{"Runtime.Name":"Components.None","Common.TypeName":"Microsoft.AspNetCore.Components.Routing.Router.Navigating","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Routing","Common.TypeNameIdentifier":"Router","Components.IsSpecialKind":"Components.ChildContent","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-412348275,"Kind":"Components.EventHandler","Name":"onfocus","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onfocus' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onfocus","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfocus:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfocus:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onfocus","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onfocus' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onfocus"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onfocus' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onfocus' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.FocusEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1183441731,"Kind":"Components.EventHandler","Name":"onblur","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onblur' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onblur","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onblur:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onblur:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onblur","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onblur' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onblur"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onblur' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onblur' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.FocusEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1244533523,"Kind":"Components.EventHandler","Name":"onfocusin","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onfocusin' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onfocusin","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfocusin:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfocusin:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onfocusin","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onfocusin' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onfocusin"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onfocusin' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onfocusin' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.FocusEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1943172950,"Kind":"Components.EventHandler","Name":"onfocusout","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onfocusout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onfocusout","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfocusout:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfocusout:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onfocusout","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onfocusout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.FocusEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onfocusout"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onfocusout' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onfocusout' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.FocusEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1669379088,"Kind":"Components.EventHandler","Name":"onmouseover","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onmouseover' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onmouseover","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmouseover:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmouseover:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onmouseover","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onmouseover' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onmouseover"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmouseover' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onmouseover' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":206835795,"Kind":"Components.EventHandler","Name":"onmouseout","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onmouseout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onmouseout","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmouseout:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmouseout:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onmouseout","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onmouseout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onmouseout"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmouseout' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onmouseout' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1703164961,"Kind":"Components.EventHandler","Name":"onmousemove","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onmousemove' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onmousemove","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmousemove:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmousemove:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onmousemove","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onmousemove' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onmousemove"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmousemove' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onmousemove' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1539717881,"Kind":"Components.EventHandler","Name":"onmousedown","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onmousedown' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onmousedown","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmousedown:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmousedown:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onmousedown","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onmousedown' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onmousedown"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmousedown' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onmousedown' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":2037212429,"Kind":"Components.EventHandler","Name":"onmouseup","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onmouseup' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onmouseup","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmouseup:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmouseup:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onmouseup","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onmouseup' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onmouseup"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmouseup' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onmouseup' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1076801267,"Kind":"Components.EventHandler","Name":"onclick","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onclick' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onclick","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onclick:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onclick:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onclick","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onclick' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onclick"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onclick' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onclick' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":884794329,"Kind":"Components.EventHandler","Name":"ondblclick","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondblclick' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondblclick","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondblclick:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondblclick:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondblclick","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondblclick' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondblclick"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondblclick' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondblclick' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1538615901,"Kind":"Components.EventHandler","Name":"onwheel","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onwheel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.WheelEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onwheel","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onwheel:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onwheel:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onwheel","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onwheel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.WheelEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onwheel"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onwheel' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onwheel' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.WheelEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-383152099,"Kind":"Components.EventHandler","Name":"onmousewheel","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onmousewheel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.WheelEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onmousewheel","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmousewheel:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onmousewheel:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onmousewheel","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onmousewheel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.WheelEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onmousewheel"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmousewheel' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onmousewheel' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.WheelEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":583382718,"Kind":"Components.EventHandler","Name":"oncontextmenu","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oncontextmenu' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oncontextmenu","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncontextmenu:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncontextmenu:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oncontextmenu","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oncontextmenu' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.MouseEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oncontextmenu"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oncontextmenu' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oncontextmenu' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.MouseEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1496118296,"Kind":"Components.EventHandler","Name":"ondrag","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondrag' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondrag","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondrag:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondrag:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondrag","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondrag' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondrag"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondrag' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondrag' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1892667192,"Kind":"Components.EventHandler","Name":"ondragend","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondragend' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondragend","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragend:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragend:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondragend","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondragend' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondragend"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondragend' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondragend' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-695808398,"Kind":"Components.EventHandler","Name":"ondragenter","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondragenter' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondragenter","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragenter:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragenter:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondragenter","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondragenter' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondragenter"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondragenter' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondragenter' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":881656464,"Kind":"Components.EventHandler","Name":"ondragleave","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondragleave' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondragleave","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragleave:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragleave:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondragleave","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondragleave' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondragleave"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondragleave' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondragleave' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1675311030,"Kind":"Components.EventHandler","Name":"ondragover","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondragover' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondragover","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragover:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragover:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondragover","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondragover' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondragover"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondragover' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondragover' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1441981659,"Kind":"Components.EventHandler","Name":"ondragstart","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondragstart' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondragstart","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragstart:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondragstart:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondragstart","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondragstart' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondragstart"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondragstart' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondragstart' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1321031139,"Kind":"Components.EventHandler","Name":"ondrop","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondrop' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondrop","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondrop:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondrop:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondrop","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondrop' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.DragEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondrop"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondrop' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondrop' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.DragEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":797422111,"Kind":"Components.EventHandler","Name":"onkeydown","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onkeydown' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.KeyboardEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onkeydown","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onkeydown:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onkeydown:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onkeydown","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onkeydown' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.KeyboardEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onkeydown"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onkeydown' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onkeydown' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.KeyboardEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-765211634,"Kind":"Components.EventHandler","Name":"onkeyup","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onkeyup' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.KeyboardEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onkeyup","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onkeyup:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onkeyup:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onkeyup","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onkeyup' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.KeyboardEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onkeyup"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onkeyup' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onkeyup' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.KeyboardEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1685080129,"Kind":"Components.EventHandler","Name":"onkeypress","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onkeypress' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.KeyboardEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onkeypress","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onkeypress:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onkeypress:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onkeypress","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onkeypress' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.KeyboardEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onkeypress"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onkeypress' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onkeypress' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.KeyboardEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":700369429,"Kind":"Components.EventHandler","Name":"onchange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onchange' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.ChangeEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onchange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onchange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onchange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onchange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onchange' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.ChangeEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onchange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onchange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onchange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.ChangeEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-144114499,"Kind":"Components.EventHandler","Name":"oninput","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oninput' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.ChangeEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oninput","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oninput:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oninput:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oninput","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oninput' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.ChangeEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oninput"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oninput' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oninput' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.ChangeEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-6567171,"Kind":"Components.EventHandler","Name":"oninvalid","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oninvalid' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oninvalid","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oninvalid:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oninvalid:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oninvalid","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oninvalid' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oninvalid"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oninvalid' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oninvalid' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1160189933,"Kind":"Components.EventHandler","Name":"onreset","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onreset' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onreset","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onreset:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onreset:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onreset","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onreset' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onreset"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onreset' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onreset' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-253871031,"Kind":"Components.EventHandler","Name":"onselect","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onselect' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onselect","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onselect:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onselect:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onselect","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onselect' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onselect"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onselect' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onselect' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1693382503,"Kind":"Components.EventHandler","Name":"onselectstart","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onselectstart' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onselectstart","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onselectstart:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onselectstart:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onselectstart","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onselectstart' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onselectstart"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onselectstart' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onselectstart' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1399289399,"Kind":"Components.EventHandler","Name":"onselectionchange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onselectionchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onselectionchange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onselectionchange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onselectionchange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onselectionchange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onselectionchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onselectionchange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onselectionchange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onselectionchange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1257688159,"Kind":"Components.EventHandler","Name":"onsubmit","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onsubmit' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onsubmit","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onsubmit:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onsubmit:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onsubmit","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onsubmit' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onsubmit"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onsubmit' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onsubmit' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":526616602,"Kind":"Components.EventHandler","Name":"onbeforecopy","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onbeforecopy' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onbeforecopy","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforecopy:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforecopy:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onbeforecopy","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onbeforecopy' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onbeforecopy"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onbeforecopy' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onbeforecopy' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-704514247,"Kind":"Components.EventHandler","Name":"onbeforecut","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onbeforecut' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onbeforecut","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforecut:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforecut:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onbeforecut","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onbeforecut' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onbeforecut"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onbeforecut' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onbeforecut' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1301262964,"Kind":"Components.EventHandler","Name":"onbeforepaste","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onbeforepaste' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onbeforepaste","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforepaste:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforepaste:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onbeforepaste","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onbeforepaste' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onbeforepaste"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onbeforepaste' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onbeforepaste' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-943806315,"Kind":"Components.EventHandler","Name":"oncopy","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oncopy' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ClipboardEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oncopy","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncopy:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncopy:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oncopy","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oncopy' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ClipboardEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oncopy"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oncopy' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oncopy' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ClipboardEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1024736527,"Kind":"Components.EventHandler","Name":"oncut","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oncut' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ClipboardEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oncut","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncut:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncut:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oncut","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oncut' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ClipboardEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oncut"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oncut' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oncut' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ClipboardEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1564030866,"Kind":"Components.EventHandler","Name":"onpaste","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpaste' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ClipboardEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpaste","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpaste:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpaste:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpaste","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpaste' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ClipboardEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpaste"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpaste' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpaste' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ClipboardEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-245678027,"Kind":"Components.EventHandler","Name":"ontouchcancel","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontouchcancel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontouchcancel","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchcancel:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchcancel:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontouchcancel","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontouchcancel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontouchcancel"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontouchcancel' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontouchcancel' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.TouchEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1303133076,"Kind":"Components.EventHandler","Name":"ontouchend","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontouchend' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontouchend","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchend:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchend:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontouchend","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontouchend' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontouchend"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontouchend' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontouchend' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.TouchEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1167672914,"Kind":"Components.EventHandler","Name":"ontouchmove","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontouchmove' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontouchmove","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchmove:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchmove:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontouchmove","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontouchmove' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontouchmove"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontouchmove' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontouchmove' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.TouchEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1716506156,"Kind":"Components.EventHandler","Name":"ontouchstart","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontouchstart' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontouchstart","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchstart:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchstart:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontouchstart","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontouchstart' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontouchstart"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontouchstart' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontouchstart' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.TouchEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1776231308,"Kind":"Components.EventHandler","Name":"ontouchenter","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontouchenter' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontouchenter","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchenter:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchenter:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontouchenter","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontouchenter' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontouchenter"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontouchenter' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontouchenter' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.TouchEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-760395158,"Kind":"Components.EventHandler","Name":"ontouchleave","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontouchleave' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontouchleave","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchleave:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontouchleave:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontouchleave","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontouchleave' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.TouchEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontouchleave"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontouchleave' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontouchleave' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.TouchEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":448925539,"Kind":"Components.EventHandler","Name":"ongotpointercapture","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ongotpointercapture' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ongotpointercapture","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ongotpointercapture:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ongotpointercapture:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ongotpointercapture","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ongotpointercapture' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ongotpointercapture"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ongotpointercapture' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ongotpointercapture' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1828352982,"Kind":"Components.EventHandler","Name":"onlostpointercapture","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onlostpointercapture' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onlostpointercapture","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onlostpointercapture:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onlostpointercapture:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onlostpointercapture","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onlostpointercapture' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onlostpointercapture"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onlostpointercapture' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onlostpointercapture' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-824984604,"Kind":"Components.EventHandler","Name":"onpointercancel","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointercancel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointercancel","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointercancel:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointercancel:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointercancel","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointercancel' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointercancel"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointercancel' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointercancel' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":512689634,"Kind":"Components.EventHandler","Name":"onpointerdown","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerdown' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerdown","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerdown:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerdown:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerdown","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerdown' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerdown"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerdown' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerdown' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-131639322,"Kind":"Components.EventHandler","Name":"onpointerenter","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerenter' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerenter","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerenter:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerenter:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerenter","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerenter' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerenter"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerenter' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerenter' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-2081055617,"Kind":"Components.EventHandler","Name":"onpointerleave","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerleave' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerleave","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerleave:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerleave:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerleave","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerleave' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerleave"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerleave' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerleave' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":671343776,"Kind":"Components.EventHandler","Name":"onpointermove","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointermove' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointermove","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointermove:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointermove:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointermove","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointermove' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointermove"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointermove' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointermove' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-906399437,"Kind":"Components.EventHandler","Name":"onpointerout","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerout","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerout:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerout:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerout","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerout"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerout' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerout' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1673358071,"Kind":"Components.EventHandler","Name":"onpointerover","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerover' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerover","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerover:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerover:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerover","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerover' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerover"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerover' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerover' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1883012605,"Kind":"Components.EventHandler","Name":"onpointerup","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerup' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerup","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerup:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerup:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerup","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerup' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.PointerEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerup"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerup' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerup' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.PointerEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-445196629,"Kind":"Components.EventHandler","Name":"oncanplay","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oncanplay' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oncanplay","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncanplay:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncanplay:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oncanplay","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oncanplay' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oncanplay"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oncanplay' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oncanplay' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1072288228,"Kind":"Components.EventHandler","Name":"oncanplaythrough","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oncanplaythrough' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oncanplaythrough","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncanplaythrough:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncanplaythrough:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oncanplaythrough","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oncanplaythrough' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oncanplaythrough"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oncanplaythrough' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oncanplaythrough' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":429038913,"Kind":"Components.EventHandler","Name":"oncuechange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@oncuechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@oncuechange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncuechange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@oncuechange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@oncuechange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@oncuechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"oncuechange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@oncuechange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@oncuechange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-857605877,"Kind":"Components.EventHandler","Name":"ondurationchange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondurationchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondurationchange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondurationchange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondurationchange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondurationchange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondurationchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondurationchange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondurationchange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondurationchange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1023041156,"Kind":"Components.EventHandler","Name":"onemptied","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onemptied' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onemptied","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onemptied:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onemptied:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onemptied","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onemptied' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onemptied"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onemptied' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onemptied' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-2113325282,"Kind":"Components.EventHandler","Name":"onpause","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpause' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpause","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpause:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpause:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpause","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpause' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpause"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpause' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpause' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1171829661,"Kind":"Components.EventHandler","Name":"onplay","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onplay' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onplay","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onplay:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onplay:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onplay","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onplay' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onplay"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onplay' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onplay' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1924423103,"Kind":"Components.EventHandler","Name":"onplaying","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onplaying' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onplaying","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onplaying:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onplaying:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onplaying","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onplaying' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onplaying"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onplaying' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onplaying' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":251218392,"Kind":"Components.EventHandler","Name":"onratechange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onratechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onratechange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onratechange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onratechange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onratechange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onratechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onratechange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onratechange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onratechange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1200360301,"Kind":"Components.EventHandler","Name":"onseeked","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onseeked' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onseeked","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onseeked:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onseeked:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onseeked","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onseeked' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onseeked"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onseeked' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onseeked' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":870409781,"Kind":"Components.EventHandler","Name":"onseeking","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onseeking' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onseeking","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onseeking:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onseeking:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onseeking","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onseeking' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onseeking"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onseeking' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onseeking' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":2005397906,"Kind":"Components.EventHandler","Name":"onstalled","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onstalled' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onstalled","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onstalled:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onstalled:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onstalled","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onstalled' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onstalled"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onstalled' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onstalled' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":148340652,"Kind":"Components.EventHandler","Name":"onstop","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onstop' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onstop","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onstop:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onstop:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onstop","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onstop' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onstop"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onstop' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onstop' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":17598829,"Kind":"Components.EventHandler","Name":"onsuspend","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onsuspend' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onsuspend","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onsuspend:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onsuspend:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onsuspend","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onsuspend' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onsuspend"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onsuspend' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onsuspend' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1960382636,"Kind":"Components.EventHandler","Name":"ontimeupdate","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontimeupdate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontimeupdate","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontimeupdate:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontimeupdate:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontimeupdate","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontimeupdate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontimeupdate"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontimeupdate' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontimeupdate' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-901598092,"Kind":"Components.EventHandler","Name":"onvolumechange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onvolumechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onvolumechange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onvolumechange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onvolumechange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onvolumechange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onvolumechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onvolumechange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onvolumechange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onvolumechange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1685471538,"Kind":"Components.EventHandler","Name":"onwaiting","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onwaiting' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onwaiting","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onwaiting:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onwaiting:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onwaiting","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onwaiting' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onwaiting"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onwaiting' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onwaiting' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-623329157,"Kind":"Components.EventHandler","Name":"onloadstart","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onloadstart' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onloadstart","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadstart:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadstart:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onloadstart","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onloadstart' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onloadstart"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onloadstart' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onloadstart' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ProgressEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-516077056,"Kind":"Components.EventHandler","Name":"ontimeout","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontimeout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontimeout","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontimeout:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontimeout:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontimeout","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontimeout' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontimeout"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontimeout' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontimeout' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ProgressEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":861748868,"Kind":"Components.EventHandler","Name":"onabort","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onabort' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onabort","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onabort:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onabort:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onabort","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onabort' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onabort"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onabort' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onabort' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ProgressEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1292834145,"Kind":"Components.EventHandler","Name":"onload","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onload' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onload","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onload:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onload:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onload","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onload' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onload"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onload' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onload' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ProgressEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-491267811,"Kind":"Components.EventHandler","Name":"onloadend","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onloadend' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onloadend","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadend:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadend:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onloadend","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onloadend' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onloadend"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onloadend' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onloadend' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ProgressEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1274141778,"Kind":"Components.EventHandler","Name":"onprogress","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onprogress' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onprogress","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onprogress:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onprogress:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onprogress","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onprogress' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ProgressEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onprogress"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onprogress' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onprogress' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ProgressEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1470710021,"Kind":"Components.EventHandler","Name":"onerror","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onerror' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ErrorEventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onerror","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onerror:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onerror:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onerror","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onerror' attribute to the provided string or delegate value. A delegate value should be of type 'Microsoft.AspNetCore.Components.Web.ErrorEventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onerror"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onerror' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onerror' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"Microsoft.AspNetCore.Components.Web.ErrorEventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":2097203272,"Kind":"Components.EventHandler","Name":"onactivate","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onactivate","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onactivate:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onactivate:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onactivate","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onactivate"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onactivate' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onactivate' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1860614855,"Kind":"Components.EventHandler","Name":"onbeforeactivate","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onbeforeactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onbeforeactivate","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforeactivate:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforeactivate:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onbeforeactivate","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onbeforeactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onbeforeactivate"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onbeforeactivate' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onbeforeactivate' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-944834360,"Kind":"Components.EventHandler","Name":"onbeforedeactivate","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onbeforedeactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onbeforedeactivate","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforedeactivate:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onbeforedeactivate:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onbeforedeactivate","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onbeforedeactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onbeforedeactivate"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onbeforedeactivate' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onbeforedeactivate' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":985382823,"Kind":"Components.EventHandler","Name":"ondeactivate","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ondeactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ondeactivate","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondeactivate:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ondeactivate:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ondeactivate","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ondeactivate' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ondeactivate"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ondeactivate' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ondeactivate' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1227747450,"Kind":"Components.EventHandler","Name":"onended","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onended' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onended","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onended:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onended:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onended","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onended' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onended"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onended' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onended' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1608024556,"Kind":"Components.EventHandler","Name":"onfullscreenchange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onfullscreenchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onfullscreenchange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfullscreenchange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfullscreenchange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onfullscreenchange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onfullscreenchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onfullscreenchange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onfullscreenchange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onfullscreenchange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1492855282,"Kind":"Components.EventHandler","Name":"onfullscreenerror","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onfullscreenerror' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onfullscreenerror","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfullscreenerror:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onfullscreenerror:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onfullscreenerror","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onfullscreenerror' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onfullscreenerror"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onfullscreenerror' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onfullscreenerror' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":561974861,"Kind":"Components.EventHandler","Name":"onloadeddata","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onloadeddata' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onloadeddata","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadeddata:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadeddata:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onloadeddata","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onloadeddata' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onloadeddata"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onloadeddata' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onloadeddata' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":143882370,"Kind":"Components.EventHandler","Name":"onloadedmetadata","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onloadedmetadata' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onloadedmetadata","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadedmetadata:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onloadedmetadata:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onloadedmetadata","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onloadedmetadata' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onloadedmetadata"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onloadedmetadata' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onloadedmetadata' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":807609890,"Kind":"Components.EventHandler","Name":"onpointerlockchange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerlockchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerlockchange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerlockchange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerlockchange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerlockchange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerlockchange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerlockchange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerlockchange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerlockchange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":322499480,"Kind":"Components.EventHandler","Name":"onpointerlockerror","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onpointerlockerror' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onpointerlockerror","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerlockerror:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onpointerlockerror:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onpointerlockerror","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onpointerlockerror' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onpointerlockerror"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onpointerlockerror' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onpointerlockerror' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1310773309,"Kind":"Components.EventHandler","Name":"onreadystatechange","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onreadystatechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onreadystatechange","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onreadystatechange:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onreadystatechange:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onreadystatechange","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onreadystatechange' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onreadystatechange"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onreadystatechange' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onreadystatechange' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":1337217167,"Kind":"Components.EventHandler","Name":"onscroll","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@onscroll' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@onscroll","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onscroll:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@onscroll:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@onscroll","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@onscroll' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"onscroll"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@onscroll' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@onscroll' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-1918318624,"Kind":"Components.EventHandler","Name":"ontoggle","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Sets the '@ontoggle' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ontoggle","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontoggle:preventDefault","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"*","Attributes":[{"Name":"@ontoggle:stopPropagation","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.EventHandler","Name":"@ontoggle","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Sets the '@ontoggle' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.","Metadata":{"Components.IsWeaklyTyped":"True","Common.DirectiveAttribute":"True","Common.PropertyName":"ontoggle"},"BoundAttributeParameters":[{"Name":"preventDefault","TypeName":"System.Boolean","Documentation":"Specifies whether to cancel (if cancelable) the default action that belongs to the '@ontoggle' event.","Metadata":{"Common.PropertyName":"PreventDefault"}},{"Name":"stopPropagation","TypeName":"System.Boolean","Documentation":"Specifies whether to prevent further propagation of the '@ontoggle' event in the capturing and bubbling phases.","Metadata":{"Common.PropertyName":"StopPropagation"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.EventHandler","Components.EventHandler.EventArgs":"System.EventArgs","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Web.EventHandlers","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"EventHandlers"}},{"HashCode":-666102522,"Kind":"Components.Splat","Name":"Attributes","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Merges a collection of attributes into the current element or component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@attributes","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Splat","Name":"@attributes","TypeName":"System.Object","Documentation":"Merges a collection of attributes into the current element or component.","Metadata":{"Common.PropertyName":"Attributes","Common.DirectiveAttribute":"True"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Splat","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Attributes"}},{"HashCode":-1487122310,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to an attribute and a change event, based on the naming of the bind attribute. For example: @bind-value=\"...\" and @bind-value:event=\"onchange\" will assign the current value of the expression to the 'value' attribute, and assign a delegate that attempts to set the value to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@bind-","NameComparison":1,"Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-...","TypeName":"System.Collections.Generic.Dictionary","IndexerNamePrefix":"@bind-","IndexerTypeName":"System.Object","Documentation":"Binds the provided expression to an attribute and a change event, based on the naming of the bind attribute. For example: @bind-value=\"...\" and @bind-value:event=\"onchange\" will assign the current value of the expression to the 'value' attribute, and assign a delegate that attempts to set the value to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the corresponding bind attribute. For example: @bind-value:format=\"...\" will apply a format string to the value specified in @bind-value=\"...\". The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-...' attribute.","Metadata":{"Common.PropertyName":"Event"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.Fallback":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Bind","Common.TypeNamespace":"Microsoft.AspNetCore.Components","Common.TypeNameIdentifier":"Bind"}},{"HashCode":1147187751,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"False","Components.Bind.Format":null,"Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":559463477,"Kind":"Components.Bind","Name":"Bind_value","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"@bind-value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"@bind-value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-value","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind_value"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-value' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"False","Components.Bind.Format":null,"Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":1622794753,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'checked' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"checkbox","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"checkbox","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'checked' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_checked"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_checked"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-checked","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_checked"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"checked","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"False","Components.Bind.Format":null,"Components.Bind.TypeAttribute":"checkbox","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":-652071802,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"text","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"text","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"False","Components.Bind.Format":null,"Components.Bind.TypeAttribute":"text","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":261116556,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"number","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"number","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":null,"Components.Bind.TypeAttribute":"number","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":499151024,"Kind":"Components.Bind","Name":"Bind_value","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"number","ValueComparison":1},{"Name":"@bind-value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"number","ValueComparison":1},{"Name":"@bind-value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-value","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind_value"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-value' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":null,"Components.Bind.TypeAttribute":"number","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":-883651903,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"date","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"date","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"yyyy-MM-dd","Components.Bind.TypeAttribute":"date","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":-2097379632,"Kind":"Components.Bind","Name":"Bind_value","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"date","ValueComparison":1},{"Name":"@bind-value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"date","ValueComparison":1},{"Name":"@bind-value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-value","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind_value"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-value' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"yyyy-MM-dd","Components.Bind.TypeAttribute":"date","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":1007845740,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"datetime-local","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"datetime-local","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"yyyy-MM-ddTHH:mm:ss","Components.Bind.TypeAttribute":"datetime-local","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":-625138988,"Kind":"Components.Bind","Name":"Bind_value","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"datetime-local","ValueComparison":1},{"Name":"@bind-value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"datetime-local","ValueComparison":1},{"Name":"@bind-value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-value","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind_value"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-value' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"yyyy-MM-ddTHH:mm:ss","Components.Bind.TypeAttribute":"datetime-local","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":806266141,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"month","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"month","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"yyyy-MM","Components.Bind.TypeAttribute":"month","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":1357195673,"Kind":"Components.Bind","Name":"Bind_value","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"month","ValueComparison":1},{"Name":"@bind-value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"month","ValueComparison":1},{"Name":"@bind-value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-value","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind_value"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-value' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"yyyy-MM","Components.Bind.TypeAttribute":"month","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":-452568861,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"time","ValueComparison":1},{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"time","ValueComparison":1},{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"HH:mm:ss","Components.Bind.TypeAttribute":"time","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":1131320995,"Kind":"Components.Bind","Name":"Bind_value","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"input","Attributes":[{"Name":"type","Value":"time","ValueComparison":1},{"Name":"@bind-value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"input","Attributes":[{"Name":"type","Value":"time","ValueComparison":1},{"Name":"@bind-value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-value","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind_value"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind-value' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind-value' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"True","Components.Bind.Format":"HH:mm:ss","Components.Bind.TypeAttribute":"time","Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":1024954613,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"select","Attributes":[{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"select","Attributes":[{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"False","Components.Bind.Format":null,"Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":1162736253,"Kind":"Components.Bind","Name":"Bind","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"textarea","Attributes":[{"Name":"@bind","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"textarea","Attributes":[{"Name":"@bind:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind","TypeName":"System.Object","Documentation":"Binds the provided expression to the 'value' attribute and a change event delegate to the 'onchange' attribute.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Bind"},"BoundAttributeParameters":[{"Name":"format","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}},{"Name":"event","TypeName":"System.String","Documentation":"Specifies the event handler name to attach for change notifications for the value provided by the '@bind' attribute.","Metadata":{"Common.PropertyName":"Event_value"}},{"Name":"culture","TypeName":"System.Globalization.CultureInfo","Documentation":"Specifies the culture to use for conversions.","Metadata":{"Common.PropertyName":"Culture"}},{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]},{"Kind":"Components.Bind","Name":"format-value","TypeName":"System.String","Documentation":"Specifies a format to convert the value specified by the '@bind' attribute. The format string can currently only be used with expressions of type DateTime.","Metadata":{"Common.PropertyName":"Format_value"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Common.ClassifyAttributesOnly":"True","Components.Bind.ValueAttribute":"value","Components.Bind.ChangeAttribute":"onchange","Components.Bind.IsInvariantCulture":"False","Components.Bind.Format":null,"Common.TypeName":"Microsoft.AspNetCore.Components.Web.BindAttributes","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Web","Common.TypeNameIdentifier":"BindAttributes"}},{"HashCode":-535491811,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputCheckbox","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputCheckbox","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputCheckbox"}},{"HashCode":1884683335,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputCheckbox","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputCheckbox","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1413158779,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputDate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputDate","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputDate","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputDate","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputDate"}},{"HashCode":-434904083,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputDate","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputDate","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputDate","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputDate","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputDate","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1343397716,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputNumber","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputNumber","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputNumber","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputNumber"}},{"HashCode":1598337077,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputNumber","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputNumber","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputNumber","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-965874919,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputRadioGroup","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputRadioGroup","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadioGroup"}},{"HashCode":-799976979,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputRadioGroup","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputRadioGroup","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":1432855956,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputSelect","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputSelect","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputSelect"}},{"HashCode":-1373758094,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputSelect","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputSelect","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputSelect","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":-369432729,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputText","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputText","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputText","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputText","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputText"}},{"HashCode":-1713884350,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputText","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputText","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputText","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputText","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputText","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":949592492,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputTextArea","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"InputTextArea","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"InputTextArea","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputTextArea"}},{"HashCode":-1089685072,"Kind":"Components.Bind","Name":"Microsoft.AspNetCore.Components.Forms.InputTextArea","AssemblyName":"Microsoft.AspNetCore.Components.Web","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Attributes":[{"Name":"@bind-Value","Metadata":{"Common.DirectiveAttribute":"True"}}]},{"TagName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Attributes":[{"Name":"@bind-Value:get","Metadata":{"Common.DirectiveAttribute":"True"}},{"Name":"@bind-Value:set","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Bind","Name":"@bind-Value","TypeName":"Microsoft.AspNetCore.Components.EventCallback","Documentation":"Binds the provided expression to the 'Value' property and a change event delegate to the 'ValueChanged' property of the component.","Metadata":{"Common.DirectiveAttribute":"True","Common.PropertyName":"Value"},"BoundAttributeParameters":[{"Name":"get","TypeName":"System.Object","Documentation":"Specifies the expression to use for binding the value to the attribute.","Metadata":{"Common.PropertyName":"Get","Components.Bind.AlternativeNotation":"True"}},{"Name":"set","TypeName":"System.Delegate","Documentation":"Specifies the expression to use for updating the bound value when a new value is available.","Metadata":{"Common.PropertyName":"Set"}},{"Name":"after","TypeName":"System.Delegate","Documentation":"Specifies an action to run after the new value has been set.","Metadata":{"Common.PropertyName":"After"}}]}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Bind","Components.Bind.ValueAttribute":"Value","Components.Bind.ChangeAttribute":"ValueChanged","Components.Bind.ExpressionAttribute":"ValueExpression","Common.TypeName":"Microsoft.AspNetCore.Components.Forms.InputTextArea","Common.TypeNamespace":"Microsoft.AspNetCore.Components.Forms","Common.TypeNameIdentifier":"InputTextArea","Components.NameMatch":"Components.FullyQualifiedNameMatch"}},{"HashCode":957713645,"Kind":"Components.Ref","Name":"Ref","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Populates the specified field or property with a reference to the element or component.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@ref","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Ref","Name":"@ref","TypeName":"System.Object","Documentation":"Populates the specified field or property with a reference to the element or component.","Metadata":{"Common.PropertyName":"Ref","Common.DirectiveAttribute":"True"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Ref","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Ref"}},{"HashCode":-1148481321,"Kind":"Components.Key","Name":"Key","AssemblyName":"Microsoft.AspNetCore.Components","Documentation":"Ensures that the component or element will be preserved across renders if (and only if) the supplied key value matches.","CaseSensitive":true,"TagMatchingRules":[{"TagName":"*","Attributes":[{"Name":"@key","Metadata":{"Common.DirectiveAttribute":"True"}}]}],"BoundAttributes":[{"Kind":"Components.Key","Name":"@key","TypeName":"System.Object","Documentation":"Ensures that the component or element will be preserved across renders if (and only if) the supplied key value matches.","Metadata":{"Common.PropertyName":"Key","Common.DirectiveAttribute":"True"}}],"Metadata":{"Runtime.Name":"Components.None","Components.IsSpecialKind":"Components.Key","Common.ClassifyAttributesOnly":"True","Common.TypeName":"Microsoft.AspNetCore.Components.Key"}}],"CSharpLanguageVersion":1000},"RootNamespace":"Egw.Core.Razor.Comp","Documents":[{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\Toggler.razor","TargetPath":"Toggler.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\CalendarMonth.razor","TargetPath":"CalendarMonth.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\LoadingDataGrow.razor","TargetPath":"LoadingDataGrow.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\ChartHist.razor","TargetPath":"ChartHist.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\LoadingDataSmall.razor","TargetPath":"LoadingDataSmall.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\LoadingData.razor","TargetPath":"LoadingData.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\CalWeekColumn.razor","TargetPath":"CalWeekColumn.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\_Imports.razor","TargetPath":"_Imports.razor","FileKind":"componentImport"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\ChartTS.razor","TargetPath":"ChartTS.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\Chart.razor","TargetPath":"Chart.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\CircleGauge.razor","TargetPath":"CircleGauge.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\CalendarWeek.razor","TargetPath":"CalendarWeek.razor","FileKind":"component"},{"FilePath":"D:\\Repo\\egwcorerazorcomp\\Egw.Core.Razor.Comp\\ToastDisplay.razor","TargetPath":"ToastDisplay.razor","FileKind":"component"}],"SerializationFormat":"0.3"} \ No newline at end of file diff --git a/Egw.Core.Razor.Comp/wwwroot/background.png b/Egw.Core.Razor.Comp/wwwroot/background.png new file mode 100644 index 0000000..e15a3bd Binary files /dev/null and b/Egw.Core.Razor.Comp/wwwroot/background.png differ diff --git a/Egw.Core.Razor.Comp/wwwroot/exampleJsInterop.js b/Egw.Core.Razor.Comp/wwwroot/exampleJsInterop.js new file mode 100644 index 0000000..ea8d76a --- /dev/null +++ b/Egw.Core.Razor.Comp/wwwroot/exampleJsInterop.js @@ -0,0 +1,6 @@ +// This is a JavaScript module that is loaded on demand. It can export any number of +// functions, and may import other JavaScript modules if required. + +export function showPrompt(message) { + return prompt(message, 'Type anything here'); +} diff --git a/Egw.Core.Razor.Test/App.razor b/Egw.Core.Razor.Test/App.razor new file mode 100644 index 0000000..6fd3ed1 --- /dev/null +++ b/Egw.Core.Razor.Test/App.razor @@ -0,0 +1,12 @@ + + + + + + + Not found + +

Sorry, there's nothing at this address.

+
+
+
diff --git a/Egw.Core.Razor.Test/Data/WeatherForecast.cs b/Egw.Core.Razor.Test/Data/WeatherForecast.cs new file mode 100644 index 0000000..7843b59 --- /dev/null +++ b/Egw.Core.Razor.Test/Data/WeatherForecast.cs @@ -0,0 +1,13 @@ +namespace Egw.Core.Razor.Test.Data +{ + public class WeatherForecast + { + public DateTime Date { get; set; } + + public int TemperatureC { get; set; } + + public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); + + public string? Summary { get; set; } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Data/WeatherForecastService.cs b/Egw.Core.Razor.Test/Data/WeatherForecastService.cs new file mode 100644 index 0000000..7f2b1fa --- /dev/null +++ b/Egw.Core.Razor.Test/Data/WeatherForecastService.cs @@ -0,0 +1,20 @@ +namespace Egw.Core.Razor.Test.Data +{ + public class WeatherForecastService + { + private static readonly string[] Summaries = new[] + { + "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching" + }; + + public Task GetForecastAsync(DateTime startDate) + { + return Task.FromResult(Enumerable.Range(1, 5).Select(index => new WeatherForecast + { + Date = startDate.AddDays(index), + TemperatureC = Random.Shared.Next(-20, 55), + Summary = Summaries[Random.Shared.Next(Summaries.Length)] + }).ToArray()); + } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Egw.Core.razor.Test.csproj b/Egw.Core.Razor.Test/Egw.Core.razor.Test.csproj new file mode 100644 index 0000000..7fa7a9d --- /dev/null +++ b/Egw.Core.Razor.Test/Egw.Core.razor.Test.csproj @@ -0,0 +1,21 @@ + + + + net6.0 + enable + enable + + + + + + + + + + + + + + + diff --git a/Egw.Core.Razor.Test/Pages/Counter.razor b/Egw.Core.Razor.Test/Pages/Counter.razor new file mode 100644 index 0000000..ef23cb3 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/Counter.razor @@ -0,0 +1,18 @@ +@page "/counter" + +Counter + +

Counter

+ +

Current count: @currentCount

+ + + +@code { + private int currentCount = 0; + + private void IncrementCount() + { + currentCount++; + } +} diff --git a/Egw.Core.Razor.Test/Pages/Error.cshtml b/Egw.Core.Razor.Test/Pages/Error.cshtml new file mode 100644 index 0000000..6adb4e5 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/Error.cshtml @@ -0,0 +1,42 @@ +@page +@model Egw.Core.Razor.Test.Pages.ErrorModel + + + + + + + + Error + + + + + +
+
+

Error.

+

An error occurred while processing your request.

+ + @if (Model.ShowRequestId) + { +

+ Request ID: @Model.RequestId +

+ } + +

Development Mode

+

+ Swapping to the Development environment displays detailed information about the error that occurred. +

+

+ The Development environment shouldn't be enabled for deployed applications. + It can result in displaying sensitive information from exceptions to end users. + For local debugging, enable the Development environment by setting the ASPNETCORE_ENVIRONMENT environment variable to Development + and restarting the app. +

+
+
+ + + diff --git a/Egw.Core.Razor.Test/Pages/Error.cshtml.cs b/Egw.Core.Razor.Test/Pages/Error.cshtml.cs new file mode 100644 index 0000000..060689b --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/Error.cshtml.cs @@ -0,0 +1,27 @@ +using Microsoft.AspNetCore.Mvc; +using Microsoft.AspNetCore.Mvc.RazorPages; +using System.Diagnostics; + +namespace Egw.Core.Razor.Test.Pages +{ + [ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)] + [IgnoreAntiforgeryToken] + public class ErrorModel : PageModel + { + public string? RequestId { get; set; } + + public bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + private readonly ILogger _logger; + + public ErrorModel(ILogger logger) + { + _logger = logger; + } + + public void OnGet() + { + RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier; + } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/FetchData.razor b/Egw.Core.Razor.Test/Pages/FetchData.razor new file mode 100644 index 0000000..6ed481b --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/FetchData.razor @@ -0,0 +1,48 @@ +@page "/fetchdata" + +Weather forecast + +@using Egw.Core.Razor.Test.Data +@inject WeatherForecastService ForecastService + +

Weather forecast

+ +

This component demonstrates fetching data from a service.

+ +@if (forecasts == null) +{ +

Loading...

+} +else +{ + + + + + + + + + + + @foreach (var forecast in forecasts) + { + + + + + + + } + +
DateTemp. (C)Temp. (F)Summary
@forecast.Date.ToShortDateString()@forecast.TemperatureC@forecast.TemperatureF@forecast.Summary
+} + +@code { + private WeatherForecast[]? forecasts; + + protected override async Task OnInitializedAsync() + { + forecasts = await ForecastService.GetForecastAsync(DateTime.Now); + } +} diff --git a/Egw.Core.Razor.Test/Pages/Index.razor b/Egw.Core.Razor.Test/Pages/Index.razor new file mode 100644 index 0000000..d35cea1 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/Index.razor @@ -0,0 +1,32 @@ +@page "/" + +Index +
+ +
+ +
+
+ +
+ +
+
+
+
+
+ +
+
+ +
+
+
+ +
+
+
+
+
\ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/Index.razor.css b/Egw.Core.Razor.Test/Pages/Index.razor.css new file mode 100644 index 0000000..40efe45 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/Index.razor.css @@ -0,0 +1,48 @@ +.calendario { + background-color: #34495E; + border: 2px solid #000; + height: 18.75rem; + position: fixed; + bottom: 3.5rem; + width: 95%; + display: flex; + justify-content: center; + border-radius: 12px 12px 12px 12px; +} +.containerCalendario { + display: flex; + justify-content: center; +} +.containerGauge { + position: fixed; + bottom: 5rem; + width: 100%; + align-items: center; + right: 5.2rem; + display: flex; + justify-content: center; + gap: 8.3rem; +} +.containerCard { + position: relative; + width: 100%; + align-items: center; + display: flex; + justify-content: center; +} +.containerBtnEntrEsc { + margin-top: 20px; + position: relative; + width: 100%; + display: flex; + justify-content: center; +} +.containerBtnTemp { + position: fixed; + height: 39px; + width: 59px; + bottom: 4rem; + align-items: center; + display: flex; + justify-content: center; +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor new file mode 100644 index 0000000..6991040 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor @@ -0,0 +1,18 @@ +@page "/provacalendar" + +Index +
+ +
+ +
+
+ +
+ +
+
+ +
+
+
\ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.cs b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.cs new file mode 100644 index 0000000..7279edb --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.cs @@ -0,0 +1,60 @@ +namespace Egw.Core.Razor.Test.Pages +{ + public partial class ProvaCalendar + { + #region Protected Methods + + protected override async Task OnInitializedAsync() + { + dtCurr = DateTime.Today; + await Task.Delay(1); + DateCheck = new Dictionary(); + Random rnd = new Random(); + // random colorate... + for (int i = 0; i < 10; i++) + { + DateTime newDate = dtCurr.AddDays(rnd.Next(-5, 10)).Date; + if (!DateCheck.ContainsKey(newDate)) + { + DateCheck.Add(newDate, "bg-success text-light rounded-circle p-2"); + } + else + { + DateCheck[newDate] = "bg-warning text-light rounded-circle p-2"; + } + } + } + + #endregion Protected Methods + + #region Private Fields + + private Dictionary DateCheck = new Dictionary(); + + #endregion Private Fields + + #region Private Properties + + private DateTime dtCurr { get; set; } = DateTime.Today; + + private bool singleWeek = false; + + #endregion Private Properties + + #region Private Methods + + private void DisplayDate(DateTime dtSel) + { + dtCurr = dtSel; + singleWeek = true; + } + + private async Task resetCal() + { + singleWeek = false; + await Task.Delay(1); + } + + #endregion Private Methods + } +} diff --git a/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.css b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.css new file mode 100644 index 0000000..12aa463 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.css @@ -0,0 +1,43 @@ +.containerCalendario { + margin-top: 20px; + position: relative; + min-width: 20rem; + align-items: center; + display: flex; + justify-content: center; +} +.containerGauge { + position: fixed; + bottom: 5rem; + width: 100%; + align-items: center; + right: 5.2rem; + display: flex; + justify-content: center; + gap: 8.3rem; +} +.containerCard { + position: relative; + width: 100%; + align-items: center; + display: flex; + justify-content: center; + flex-direction: row; +} +.containerBtnEntrEsc { + margin-top: 20px; + position: relative; + width: 95%; + height: 2.5rem; + display: flex; + justify-content: center; +} +.containerBtnTemp { + position: fixed; + height: 39px; + width: 59px; + bottom: 4rem; + align-items: center; + display: flex; + justify-content: center; +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.less b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.less new file mode 100644 index 0000000..3e5a5a7 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.less @@ -0,0 +1,49 @@ +.containerCalendario { + margin-top: 20px; + position: relative; + min-width: 20rem; + align-items: center; + display: flex; + justify-content: center; +} + +.containerGauge { + position: fixed; + bottom: 5rem; + width: 100%; + align-items: center; + right: 5.2rem; + display: flex; + justify-content: center; + gap: 8.3rem; +} + +.containerCard { + position: relative; + width: 100%; + align-items: center; + display: flex; + justify-content: center; + flex-direction: row; +} + +.containerBtnEntrEsc { + margin-top: 20px; + position: relative; + width: 95%; + height: 2.5rem; + display: flex; + justify-content: center; +} + +.containerBtnTemp { + position: fixed; + height: 39px; + width: 59px; + bottom: 4rem; + align-items: center; + display: flex; + justify-content: center; +} + + diff --git a/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.min.css b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.min.css new file mode 100644 index 0000000..d610c54 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/ProvaCalendar.razor.min.css @@ -0,0 +1 @@ +.containerCalendario{margin-top:20px;position:relative;min-width:20rem;align-items:center;display:flex;justify-content:center;}.containerGauge{position:fixed;bottom:5rem;width:100%;align-items:center;right:5.2rem;display:flex;justify-content:center;gap:8.3rem;}.containerCard{position:relative;width:100%;align-items:center;display:flex;justify-content:center;flex-direction:row;}.containerBtnEntrEsc{margin-top:20px;position:relative;width:95%;height:2.5rem;display:flex;justify-content:center;}.containerBtnTemp{position:fixed;height:39px;width:59px;bottom:4rem;align-items:center;display:flex;justify-content:center;} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/TestCal.razor b/Egw.Core.Razor.Test/Pages/TestCal.razor new file mode 100644 index 0000000..00ddb95 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/TestCal.razor @@ -0,0 +1,42 @@ +@page "/TestCal" + + +

TestCal

+ +
+
+ +
+
+ +
+
+ +
+
+ +
+
+ + + +
+
+ +
+
+ + +
+
+ @($"{dtCurr:ddd dd.MM.yyyy}") +
+
+ +
+
+ single: @singleWeek +
+
+ + diff --git a/Egw.Core.Razor.Test/Pages/TestCal.razor.cs b/Egw.Core.Razor.Test/Pages/TestCal.razor.cs new file mode 100644 index 0000000..b49df3e --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/TestCal.razor.cs @@ -0,0 +1,60 @@ +namespace Egw.Core.Razor.Test.Pages +{ + public partial class TestCal + { + #region Protected Methods + + protected override async Task OnInitializedAsync() + { + dtCurr = DateTime.Today; + await Task.Delay(1); + DateCheck = new Dictionary(); + Random rnd = new Random(); + // random colorate... + for (int i = 0; i < 10; i++) + { + DateTime newDate = dtCurr.AddDays(rnd.Next(-5, 10)).Date; + if (!DateCheck.ContainsKey(newDate)) + { + DateCheck.Add(newDate, "bg-success text-light rounded-circle p-2"); + } + else + { + DateCheck[newDate] = "bg-warning text-light rounded-circle p-2"; + } + } + } + + #endregion Protected Methods + + #region Private Fields + + private Dictionary DateCheck = new Dictionary(); + + #endregion Private Fields + + #region Private Properties + + private DateTime dtCurr { get; set; } = DateTime.Today; + + private bool singleWeek = false; + + #endregion Private Properties + + #region Private Methods + + private void DisplayDate(DateTime dtSel) + { + dtCurr = dtSel; + singleWeek= true; + } + + private async Task resetCal() + { + singleWeek = false; + await Task.Delay(1); + } + + #endregion Private Methods + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Pages/_Host.cshtml b/Egw.Core.Razor.Test/Pages/_Host.cshtml new file mode 100644 index 0000000..4779a09 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/_Host.cshtml @@ -0,0 +1,8 @@ +@page "/" +@namespace Egw.Core.Razor.Test.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers +@{ + Layout = "_Layout"; +} + + diff --git a/Egw.Core.Razor.Test/Pages/_Layout.cshtml b/Egw.Core.Razor.Test/Pages/_Layout.cshtml new file mode 100644 index 0000000..8e62312 --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/_Layout.cshtml @@ -0,0 +1,32 @@ +@using Microsoft.AspNetCore.Components.Web +@namespace Egw.Core.Razor.Test.Pages +@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers + + + + + + + + + + + + + + @RenderBody() + +
+ + An error has occurred. This application may no longer respond until reloaded. + + + An unhandled exception has occurred. See browser dev tools for details. + + Reload + 🗙 +
+ + + + diff --git a/Egw.Core.Razor.Test/Pages/index.razor.less b/Egw.Core.Razor.Test/Pages/index.razor.less new file mode 100644 index 0000000..1b3983d --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/index.razor.less @@ -0,0 +1,53 @@ +.calendario { + background-color: #34495E; + border: 2px solid #000; + height: 18.75rem; + position: fixed; + bottom: 3.5rem; + width: 95%; + display: flex; + justify-content: center; + border-radius: 12px 12px 12px 12px +} + +.containerCalendario { + display: flex; + justify-content: center; +} + +.containerGauge { + position: fixed; + bottom: 5rem; + width: 100%; + align-items: center; + right: 5.2rem; + display: flex; + justify-content: center; + gap: 8.3rem; +} + +.containerCard { + position: relative; + width: 100%; + align-items: center; + display: flex; + justify-content: center; +} + +.containerBtnEntrEsc { + margin-top: 20px; + position: relative; + width: 100%; + display: flex; + justify-content: center; +} + +.containerBtnTemp { + position: fixed; + height: 39px; + width: 59px; + bottom: 4rem; + align-items: center; + display: flex; + justify-content: center; +} diff --git a/Egw.Core.Razor.Test/Pages/index.razor.min.css b/Egw.Core.Razor.Test/Pages/index.razor.min.css new file mode 100644 index 0000000..a7d9ffe --- /dev/null +++ b/Egw.Core.Razor.Test/Pages/index.razor.min.css @@ -0,0 +1 @@ +.calendario{background-color:#34495e;border:2px solid #000;height:18.75rem;position:fixed;bottom:3.5rem;width:95%;display:flex;justify-content:center;border-radius:12px 12px 12px 12px;}.containerCalendario{display:flex;justify-content:center;}.containerGauge{position:fixed;bottom:5rem;width:100%;align-items:center;right:5.2rem;display:flex;justify-content:center;gap:8.3rem;}.containerCard{position:relative;width:100%;align-items:center;display:flex;justify-content:center;}.containerBtnEntrEsc{margin-top:20px;position:relative;width:100%;display:flex;justify-content:center;}.containerBtnTemp{position:fixed;height:39px;width:59px;bottom:4rem;align-items:center;display:flex;justify-content:center;} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Program.cs b/Egw.Core.Razor.Test/Program.cs new file mode 100644 index 0000000..c4f021f --- /dev/null +++ b/Egw.Core.Razor.Test/Program.cs @@ -0,0 +1,31 @@ +using Egw.Core.Razor.Test.Data; +using Microsoft.AspNetCore.Components; +using Microsoft.AspNetCore.Components.Web; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.AddRazorPages(); +builder.Services.AddServerSideBlazor(); +builder.Services.AddSingleton(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Error"); + // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts. + app.UseHsts(); +} + +app.UseHttpsRedirection(); + +app.UseStaticFiles(); + +app.UseRouting(); + +app.MapBlazorHub(); +app.MapFallbackToPage("/_Host"); + +app.Run(); diff --git a/Egw.Core.Razor.Test/Properties/launchSettings.json b/Egw.Core.Razor.Test/Properties/launchSettings.json new file mode 100644 index 0000000..81c9936 --- /dev/null +++ b/Egw.Core.Razor.Test/Properties/launchSettings.json @@ -0,0 +1,28 @@ +{ + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:46615", + "sslPort": 44328 + } + }, + "profiles": { + "Egw.Core.Razor.Test": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7118;http://localhost:5145", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/Shared/MainLayout.razor b/Egw.Core.Razor.Test/Shared/MainLayout.razor new file mode 100644 index 0000000..40300b3 --- /dev/null +++ b/Egw.Core.Razor.Test/Shared/MainLayout.razor @@ -0,0 +1,19 @@ +@inherits LayoutComponentBase + +Egw.Core.Razor.Test + +
+
+
+ +
+ +
+ @Body +
+ +
+ +
+
+
diff --git a/Egw.Core.Razor.Test/Shared/MainLayout.razor.css b/Egw.Core.Razor.Test/Shared/MainLayout.razor.css new file mode 100644 index 0000000..551e4b2 --- /dev/null +++ b/Egw.Core.Razor.Test/Shared/MainLayout.razor.css @@ -0,0 +1,70 @@ +.page { + position: relative; + display: flex; + flex-direction: column; +} + +main { + flex: 1; +} + +.sidebar { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row ::deep a, .top-row .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + } + + .top-row a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row:not(.auth) { + display: none; + } + + .top-row.auth { + justify-content: space-between; + } + + .top-row a, .top-row .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page { + flex-direction: row; + } + + .sidebar { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row, article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} diff --git a/Egw.Core.Razor.Test/Shared/NavMenu.razor b/Egw.Core.Razor.Test/Shared/NavMenu.razor new file mode 100644 index 0000000..0b019bf --- /dev/null +++ b/Egw.Core.Razor.Test/Shared/NavMenu.razor @@ -0,0 +1,44 @@ + + +
+ +
+ +@code { + private bool collapseNavMenu = true; + + private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; + + private void ToggleNavMenu() + { + collapseNavMenu = !collapseNavMenu; + } +} diff --git a/Egw.Core.Razor.Test/Shared/NavMenu.razor.css b/Egw.Core.Razor.Test/Shared/NavMenu.razor.css new file mode 100644 index 0000000..acc5f9f --- /dev/null +++ b/Egw.Core.Razor.Test/Shared/NavMenu.razor.css @@ -0,0 +1,62 @@ +.navbar-toggler { + background-color: rgba(255, 255, 255, 0.1); +} + +.top-row { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand { + font-size: 1.1rem; +} + +.oi { + width: 2rem; + font-size: 1.1rem; + vertical-align: text-top; + top: -2px; +} + +.nav-item { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type { + padding-top: 1rem; + } + + .nav-item:last-of-type { + padding-bottom: 1rem; + } + + .nav-item ::deep a { + color: #d7d7d7; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.25); + color: white; +} + +.nav-item ::deep a:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .collapse { + /* Never collapse the sidebar for wide screens */ + display: block; + } +} diff --git a/Egw.Core.Razor.Test/Shared/SurveyPrompt.razor b/Egw.Core.Razor.Test/Shared/SurveyPrompt.razor new file mode 100644 index 0000000..e3e6429 --- /dev/null +++ b/Egw.Core.Razor.Test/Shared/SurveyPrompt.razor @@ -0,0 +1,16 @@ +
+ + @Title + + + Please take our + brief survey + + and tell us what you think. +
+ +@code { + // Demonstrates how a parent component can supply parameters + [Parameter] + public string? Title { get; set; } +} diff --git a/Egw.Core.Razor.Test/_Imports.razor b/Egw.Core.Razor.Test/_Imports.razor new file mode 100644 index 0000000..6c750d3 --- /dev/null +++ b/Egw.Core.Razor.Test/_Imports.razor @@ -0,0 +1,11 @@ +@using System.Net.Http +@using Microsoft.AspNetCore.Authorization +@using Microsoft.AspNetCore.Components.Authorization +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using Egw.Core.Razor.Test +@using Egw.Core.Razor.Test.Shared +@using Egw.Core.Razor.Comp diff --git a/Egw.Core.Razor.Test/appsettings.Development.json b/Egw.Core.Razor.Test/appsettings.Development.json new file mode 100644 index 0000000..770d3e9 --- /dev/null +++ b/Egw.Core.Razor.Test/appsettings.Development.json @@ -0,0 +1,9 @@ +{ + "DetailedErrors": true, + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/Egw.Core.Razor.Test/appsettings.json b/Egw.Core.Razor.Test/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/Egw.Core.Razor.Test/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/Egw.Core.Razor.Test/compilerconfig.json b/Egw.Core.Razor.Test/compilerconfig.json new file mode 100644 index 0000000..eb5eafc --- /dev/null +++ b/Egw.Core.Razor.Test/compilerconfig.json @@ -0,0 +1,14 @@ +[ + { + "outputFile": "Pages/ProvaCalendario.razor.css", + "inputFile": "Pages/ProvaCalendario.razor.less" + }, + { + "outputFile": "Pages/index.razor.css", + "inputFile": "Pages/index.razor.less" + }, + { + "outputFile": "Pages/ProvaCalendar.razor.css", + "inputFile": "Pages/ProvaCalendar.razor.less" + } +] \ No newline at end of file diff --git a/Egw.Core.Razor.Test/compilerconfig.json.defaults b/Egw.Core.Razor.Test/compilerconfig.json.defaults new file mode 100644 index 0000000..41870cc --- /dev/null +++ b/Egw.Core.Razor.Test/compilerconfig.json.defaults @@ -0,0 +1,71 @@ +{ + "compilers": { + "less": { + "autoPrefix": "", + "cssComb": "none", + "ieCompat": true, + "math": null, + "strictMath": false, + "strictUnits": false, + "relativeUrls": true, + "rootPath": "", + "sourceMapRoot": "", + "sourceMapBasePath": "", + "sourceMap": false + }, + "sass": { + "autoPrefix": "", + "loadPaths": "", + "style": "expanded", + "relativeUrls": true, + "sourceMap": false + }, + "nodesass": { + "autoPrefix": "", + "includePath": "", + "indentType": "space", + "indentWidth": 2, + "outputStyle": "nested", + "precision": 5, + "relativeUrls": true, + "sourceMapRoot": "", + "lineFeed": "", + "sourceMap": false + }, + "stylus": { + "sourceMap": false + }, + "babel": { + "sourceMap": false + }, + "coffeescript": { + "bare": false, + "runtimeMode": "node", + "sourceMap": false + }, + "handlebars": { + "root": "", + "noBOM": false, + "name": "", + "namespace": "", + "knownHelpersOnly": false, + "forcePartial": false, + "knownHelpers": [], + "commonjs": "", + "amd": false, + "sourceMap": false + } + }, + "minifiers": { + "css": { + "enabled": true, + "termSemicolons": true, + "gzip": false + }, + "javascript": { + "enabled": true, + "termSemicolons": true, + "gzip": false + } + } +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/libman.json b/Egw.Core.Razor.Test/libman.json new file mode 100644 index 0000000..03b77f0 --- /dev/null +++ b/Egw.Core.Razor.Test/libman.json @@ -0,0 +1,10 @@ +{ + "version": "1.0", + "defaultProvider": "cdnjs", + "libraries": [ + { + "library": "bootstrap@5.2.3", + "destination": "wwwroot/lib/css/bootstrap/" + } + ] +} \ No newline at end of file diff --git a/Egw.Core.Razor.Test/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs b/Egw.Core.Razor.Test/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs new file mode 100644 index 0000000..ed92695 --- /dev/null +++ b/Egw.Core.Razor.Test/obj/Debug/net6.0/.NETCoreApp,Version=v6.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v6.0", FrameworkDisplayName = ".NET 6.0")] diff --git a/Egw.Core.Razor.Test/obj/Debug/net6.0/Egw.Core.Razor.Test.GlobalUsings.g.cs b/Egw.Core.Razor.Test/obj/Debug/net6.0/Egw.Core.Razor.Test.GlobalUsings.g.cs new file mode 100644 index 0000000..025530a --- /dev/null +++ b/Egw.Core.Razor.Test/obj/Debug/net6.0/Egw.Core.Razor.Test.GlobalUsings.g.cs @@ -0,0 +1,17 @@ +// +global using global::Microsoft.AspNetCore.Builder; +global using global::Microsoft.AspNetCore.Hosting; +global using global::Microsoft.AspNetCore.Http; +global using global::Microsoft.AspNetCore.Routing; +global using global::Microsoft.Extensions.Configuration; +global using global::Microsoft.Extensions.DependencyInjection; +global using global::Microsoft.Extensions.Hosting; +global using global::Microsoft.Extensions.Logging; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Net.Http.Json; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/Egw.Core.Razor.Test/wwwroot/css/bootstrap/bootstrap.min.css b/Egw.Core.Razor.Test/wwwroot/css/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..02ae65b --- /dev/null +++ b/Egw.Core.Razor.Test/wwwroot/css/bootstrap/bootstrap.min.css @@ -0,0 +1,7 @@ +@charset "UTF-8";/*! + * Bootstrap v5.1.0 (https://getbootstrap.com/) + * Copyright 2011-2021 The Bootstrap Authors + * Copyright 2011-2021 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) + */:root{--bs-blue:#0d6efd;--bs-indigo:#6610f2;--bs-purple:#6f42c1;--bs-pink:#d63384;--bs-red:#dc3545;--bs-orange:#fd7e14;--bs-yellow:#ffc107;--bs-green:#198754;--bs-teal:#20c997;--bs-cyan:#0dcaf0;--bs-white:#fff;--bs-gray:#6c757d;--bs-gray-dark:#343a40;--bs-gray-100:#f8f9fa;--bs-gray-200:#e9ecef;--bs-gray-300:#dee2e6;--bs-gray-400:#ced4da;--bs-gray-500:#adb5bd;--bs-gray-600:#6c757d;--bs-gray-700:#495057;--bs-gray-800:#343a40;--bs-gray-900:#212529;--bs-primary:#0d6efd;--bs-secondary:#6c757d;--bs-success:#198754;--bs-info:#0dcaf0;--bs-warning:#ffc107;--bs-danger:#dc3545;--bs-light:#f8f9fa;--bs-dark:#212529;--bs-primary-rgb:13,110,253;--bs-secondary-rgb:108,117,125;--bs-success-rgb:25,135,84;--bs-info-rgb:13,202,240;--bs-warning-rgb:255,193,7;--bs-danger-rgb:220,53,69;--bs-light-rgb:248,249,250;--bs-dark-rgb:33,37,41;--bs-white-rgb:255,255,255;--bs-black-rgb:0,0,0;--bs-body-rgb:33,37,41;--bs-font-sans-serif:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,"Noto Sans","Liberation Sans",sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--bs-font-monospace:SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--bs-gradient:linear-gradient(180deg, rgba(255, 255, 255, 0.15), rgba(255, 255, 255, 0));--bs-body-font-family:var(--bs-font-sans-serif);--bs-body-font-size:1rem;--bs-body-font-weight:400;--bs-body-line-height:1.5;--bs-body-color:#212529;--bs-body-bg:#fff}*,::after,::before{box-sizing:border-box}@media (prefers-reduced-motion:no-preference){:root{scroll-behavior:smooth}}body{margin:0;font-family:var(--bs-body-font-family);font-size:var(--bs-body-font-size);font-weight:var(--bs-body-font-weight);line-height:var(--bs-body-line-height);color:var(--bs-body-color);text-align:var(--bs-body-text-align);background-color:var(--bs-body-bg);-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}hr{margin:1rem 0;color:inherit;background-color:currentColor;border:0;opacity:.25}hr:not([size]){height:1px}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{margin-top:0;margin-bottom:.5rem;font-weight:500;line-height:1.2}.h1,h1{font-size:calc(1.375rem + 1.5vw)}@media (min-width:1200px){.h1,h1{font-size:2.5rem}}.h2,h2{font-size:calc(1.325rem + .9vw)}@media (min-width:1200px){.h2,h2{font-size:2rem}}.h3,h3{font-size:calc(1.3rem + .6vw)}@media (min-width:1200px){.h3,h3{font-size:1.75rem}}.h4,h4{font-size:calc(1.275rem + .3vw)}@media (min-width:1200px){.h4,h4{font-size:1.5rem}}.h5,h5{font-size:1.25rem}.h6,h6{font-size:1rem}p{margin-top:0;margin-bottom:1rem}abbr[data-bs-original-title],abbr[title]{-webkit-text-decoration:underline dotted;text-decoration:underline dotted;cursor:help;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none}address{margin-bottom:1rem;font-style:normal;line-height:inherit}ol,ul{padding-left:2rem}dl,ol,ul{margin-top:0;margin-bottom:1rem}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}dt{font-weight:700}dd{margin-bottom:.5rem;margin-left:0}blockquote{margin:0 0 1rem}b,strong{font-weight:bolder}.small,small{font-size:.875em}.mark,mark{padding:.2em;background-color:#fcf8e3}sub,sup{position:relative;font-size:.75em;line-height:0;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}a{color:#0d6efd;text-decoration:underline}a:hover{color:#0a58ca}a:not([href]):not([class]),a:not([href]):not([class]):hover{color:inherit;text-decoration:none}code,kbd,pre,samp{font-family:var(--bs-font-monospace);font-size:1em;direction:ltr;unicode-bidi:bidi-override}pre{display:block;margin-top:0;margin-bottom:1rem;overflow:auto;font-size:.875em}pre code{font-size:inherit;color:inherit;word-break:normal}code{font-size:.875em;color:#d63384;word-wrap:break-word}a>code{color:inherit}kbd{padding:.2rem .4rem;font-size:.875em;color:#fff;background-color:#212529;border-radius:.2rem}kbd kbd{padding:0;font-size:1em;font-weight:700}figure{margin:0 0 1rem}img,svg{vertical-align:middle}table{caption-side:bottom;border-collapse:collapse}caption{padding-top:.5rem;padding-bottom:.5rem;color:#6c757d;text-align:left}th{text-align:inherit;text-align:-webkit-match-parent}tbody,td,tfoot,th,thead,tr{border-color:inherit;border-style:solid;border-width:0}label{display:inline-block}button{border-radius:0}button:focus:not(:focus-visible){outline:0}button,input,optgroup,select,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,select{text-transform:none}[role=button]{cursor:pointer}select{word-wrap:normal}select:disabled{opacity:1}[list]::-webkit-calendar-picker-indicator{display:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}::-moz-focus-inner{padding:0;border-style:none}textarea{resize:vertical}fieldset{min-width:0;padding:0;margin:0;border:0}legend{float:left;width:100%;padding:0;margin-bottom:.5rem;font-size:calc(1.275rem + .3vw);line-height:inherit}@media (min-width:1200px){legend{font-size:1.5rem}}legend+*{clear:left}::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-fields-wrapper,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-text,::-webkit-datetime-edit-year-field{padding:0}::-webkit-inner-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:textfield}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-color-swatch-wrapper{padding:0}::file-selector-button{font:inherit}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}output{display:inline-block}iframe{border:0}summary{display:list-item;cursor:pointer}progress{vertical-align:baseline}[hidden]{display:none!important}.lead{font-size:1.25rem;font-weight:300}.display-1{font-size:calc(1.625rem + 4.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-1{font-size:5rem}}.display-2{font-size:calc(1.575rem + 3.9vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-2{font-size:4.5rem}}.display-3{font-size:calc(1.525rem + 3.3vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-3{font-size:4rem}}.display-4{font-size:calc(1.475rem + 2.7vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-4{font-size:3.5rem}}.display-5{font-size:calc(1.425rem + 2.1vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-5{font-size:3rem}}.display-6{font-size:calc(1.375rem + 1.5vw);font-weight:300;line-height:1.2}@media (min-width:1200px){.display-6{font-size:2.5rem}}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;list-style:none}.list-inline-item{display:inline-block}.list-inline-item:not(:last-child){margin-right:.5rem}.initialism{font-size:.875em;text-transform:uppercase}.blockquote{margin-bottom:1rem;font-size:1.25rem}.blockquote>:last-child{margin-bottom:0}.blockquote-footer{margin-top:-1rem;margin-bottom:1rem;font-size:.875em;color:#6c757d}.blockquote-footer::before{content:"— "}.img-fluid{max-width:100%;height:auto}.img-thumbnail{padding:.25rem;background-color:#fff;border:1px solid #dee2e6;border-radius:.25rem;max-width:100%;height:auto}.figure{display:inline-block}.figure-img{margin-bottom:.5rem;line-height:1}.figure-caption{font-size:.875em;color:#6c757d}.container,.container-fluid,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{width:100%;padding-right:var(--bs-gutter-x,.75rem);padding-left:var(--bs-gutter-x,.75rem);margin-right:auto;margin-left:auto}@media (min-width:576px){.container,.container-sm{max-width:540px}}@media (min-width:768px){.container,.container-md,.container-sm{max-width:720px}}@media (min-width:992px){.container,.container-lg,.container-md,.container-sm{max-width:960px}}@media (min-width:1200px){.container,.container-lg,.container-md,.container-sm,.container-xl{max-width:1140px}}@media (min-width:1400px){.container,.container-lg,.container-md,.container-sm,.container-xl,.container-xxl{max-width:1320px}}.row{--bs-gutter-x:1.5rem;--bs-gutter-y:0;display:flex;flex-wrap:wrap;margin-top:calc(var(--bs-gutter-y) * -1);margin-right:calc(var(--bs-gutter-x) * -.5);margin-left:calc(var(--bs-gutter-x) * -.5)}.row>*{flex-shrink:0;width:100%;max-width:100%;padding-right:calc(var(--bs-gutter-x) * .5);padding-left:calc(var(--bs-gutter-x) * .5);margin-top:var(--bs-gutter-y)}.col{flex:1 0 0%}.row-cols-auto>*{flex:0 0 auto;width:auto}.row-cols-1>*{flex:0 0 auto;width:100%}.row-cols-2>*{flex:0 0 auto;width:50%}.row-cols-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-4>*{flex:0 0 auto;width:25%}.row-cols-5>*{flex:0 0 auto;width:20%}.row-cols-6>*{flex:0 0 auto;width:16.6666666667%}.col-auto{flex:0 0 auto;width:auto}.col-1{flex:0 0 auto;width:8.33333333%}.col-2{flex:0 0 auto;width:16.66666667%}.col-3{flex:0 0 auto;width:25%}.col-4{flex:0 0 auto;width:33.33333333%}.col-5{flex:0 0 auto;width:41.66666667%}.col-6{flex:0 0 auto;width:50%}.col-7{flex:0 0 auto;width:58.33333333%}.col-8{flex:0 0 auto;width:66.66666667%}.col-9{flex:0 0 auto;width:75%}.col-10{flex:0 0 auto;width:83.33333333%}.col-11{flex:0 0 auto;width:91.66666667%}.col-12{flex:0 0 auto;width:100%}.offset-1{margin-left:8.33333333%}.offset-2{margin-left:16.66666667%}.offset-3{margin-left:25%}.offset-4{margin-left:33.33333333%}.offset-5{margin-left:41.66666667%}.offset-6{margin-left:50%}.offset-7{margin-left:58.33333333%}.offset-8{margin-left:66.66666667%}.offset-9{margin-left:75%}.offset-10{margin-left:83.33333333%}.offset-11{margin-left:91.66666667%}.g-0,.gx-0{--bs-gutter-x:0}.g-0,.gy-0{--bs-gutter-y:0}.g-1,.gx-1{--bs-gutter-x:0.25rem}.g-1,.gy-1{--bs-gutter-y:0.25rem}.g-2,.gx-2{--bs-gutter-x:0.5rem}.g-2,.gy-2{--bs-gutter-y:0.5rem}.g-3,.gx-3{--bs-gutter-x:1rem}.g-3,.gy-3{--bs-gutter-y:1rem}.g-4,.gx-4{--bs-gutter-x:1.5rem}.g-4,.gy-4{--bs-gutter-y:1.5rem}.g-5,.gx-5{--bs-gutter-x:3rem}.g-5,.gy-5{--bs-gutter-y:3rem}@media (min-width:576px){.col-sm{flex:1 0 0%}.row-cols-sm-auto>*{flex:0 0 auto;width:auto}.row-cols-sm-1>*{flex:0 0 auto;width:100%}.row-cols-sm-2>*{flex:0 0 auto;width:50%}.row-cols-sm-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-sm-4>*{flex:0 0 auto;width:25%}.row-cols-sm-5>*{flex:0 0 auto;width:20%}.row-cols-sm-6>*{flex:0 0 auto;width:16.6666666667%}.col-sm-auto{flex:0 0 auto;width:auto}.col-sm-1{flex:0 0 auto;width:8.33333333%}.col-sm-2{flex:0 0 auto;width:16.66666667%}.col-sm-3{flex:0 0 auto;width:25%}.col-sm-4{flex:0 0 auto;width:33.33333333%}.col-sm-5{flex:0 0 auto;width:41.66666667%}.col-sm-6{flex:0 0 auto;width:50%}.col-sm-7{flex:0 0 auto;width:58.33333333%}.col-sm-8{flex:0 0 auto;width:66.66666667%}.col-sm-9{flex:0 0 auto;width:75%}.col-sm-10{flex:0 0 auto;width:83.33333333%}.col-sm-11{flex:0 0 auto;width:91.66666667%}.col-sm-12{flex:0 0 auto;width:100%}.offset-sm-0{margin-left:0}.offset-sm-1{margin-left:8.33333333%}.offset-sm-2{margin-left:16.66666667%}.offset-sm-3{margin-left:25%}.offset-sm-4{margin-left:33.33333333%}.offset-sm-5{margin-left:41.66666667%}.offset-sm-6{margin-left:50%}.offset-sm-7{margin-left:58.33333333%}.offset-sm-8{margin-left:66.66666667%}.offset-sm-9{margin-left:75%}.offset-sm-10{margin-left:83.33333333%}.offset-sm-11{margin-left:91.66666667%}.g-sm-0,.gx-sm-0{--bs-gutter-x:0}.g-sm-0,.gy-sm-0{--bs-gutter-y:0}.g-sm-1,.gx-sm-1{--bs-gutter-x:0.25rem}.g-sm-1,.gy-sm-1{--bs-gutter-y:0.25rem}.g-sm-2,.gx-sm-2{--bs-gutter-x:0.5rem}.g-sm-2,.gy-sm-2{--bs-gutter-y:0.5rem}.g-sm-3,.gx-sm-3{--bs-gutter-x:1rem}.g-sm-3,.gy-sm-3{--bs-gutter-y:1rem}.g-sm-4,.gx-sm-4{--bs-gutter-x:1.5rem}.g-sm-4,.gy-sm-4{--bs-gutter-y:1.5rem}.g-sm-5,.gx-sm-5{--bs-gutter-x:3rem}.g-sm-5,.gy-sm-5{--bs-gutter-y:3rem}}@media (min-width:768px){.col-md{flex:1 0 0%}.row-cols-md-auto>*{flex:0 0 auto;width:auto}.row-cols-md-1>*{flex:0 0 auto;width:100%}.row-cols-md-2>*{flex:0 0 auto;width:50%}.row-cols-md-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-md-4>*{flex:0 0 auto;width:25%}.row-cols-md-5>*{flex:0 0 auto;width:20%}.row-cols-md-6>*{flex:0 0 auto;width:16.6666666667%}.col-md-auto{flex:0 0 auto;width:auto}.col-md-1{flex:0 0 auto;width:8.33333333%}.col-md-2{flex:0 0 auto;width:16.66666667%}.col-md-3{flex:0 0 auto;width:25%}.col-md-4{flex:0 0 auto;width:33.33333333%}.col-md-5{flex:0 0 auto;width:41.66666667%}.col-md-6{flex:0 0 auto;width:50%}.col-md-7{flex:0 0 auto;width:58.33333333%}.col-md-8{flex:0 0 auto;width:66.66666667%}.col-md-9{flex:0 0 auto;width:75%}.col-md-10{flex:0 0 auto;width:83.33333333%}.col-md-11{flex:0 0 auto;width:91.66666667%}.col-md-12{flex:0 0 auto;width:100%}.offset-md-0{margin-left:0}.offset-md-1{margin-left:8.33333333%}.offset-md-2{margin-left:16.66666667%}.offset-md-3{margin-left:25%}.offset-md-4{margin-left:33.33333333%}.offset-md-5{margin-left:41.66666667%}.offset-md-6{margin-left:50%}.offset-md-7{margin-left:58.33333333%}.offset-md-8{margin-left:66.66666667%}.offset-md-9{margin-left:75%}.offset-md-10{margin-left:83.33333333%}.offset-md-11{margin-left:91.66666667%}.g-md-0,.gx-md-0{--bs-gutter-x:0}.g-md-0,.gy-md-0{--bs-gutter-y:0}.g-md-1,.gx-md-1{--bs-gutter-x:0.25rem}.g-md-1,.gy-md-1{--bs-gutter-y:0.25rem}.g-md-2,.gx-md-2{--bs-gutter-x:0.5rem}.g-md-2,.gy-md-2{--bs-gutter-y:0.5rem}.g-md-3,.gx-md-3{--bs-gutter-x:1rem}.g-md-3,.gy-md-3{--bs-gutter-y:1rem}.g-md-4,.gx-md-4{--bs-gutter-x:1.5rem}.g-md-4,.gy-md-4{--bs-gutter-y:1.5rem}.g-md-5,.gx-md-5{--bs-gutter-x:3rem}.g-md-5,.gy-md-5{--bs-gutter-y:3rem}}@media (min-width:992px){.col-lg{flex:1 0 0%}.row-cols-lg-auto>*{flex:0 0 auto;width:auto}.row-cols-lg-1>*{flex:0 0 auto;width:100%}.row-cols-lg-2>*{flex:0 0 auto;width:50%}.row-cols-lg-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-lg-4>*{flex:0 0 auto;width:25%}.row-cols-lg-5>*{flex:0 0 auto;width:20%}.row-cols-lg-6>*{flex:0 0 auto;width:16.6666666667%}.col-lg-auto{flex:0 0 auto;width:auto}.col-lg-1{flex:0 0 auto;width:8.33333333%}.col-lg-2{flex:0 0 auto;width:16.66666667%}.col-lg-3{flex:0 0 auto;width:25%}.col-lg-4{flex:0 0 auto;width:33.33333333%}.col-lg-5{flex:0 0 auto;width:41.66666667%}.col-lg-6{flex:0 0 auto;width:50%}.col-lg-7{flex:0 0 auto;width:58.33333333%}.col-lg-8{flex:0 0 auto;width:66.66666667%}.col-lg-9{flex:0 0 auto;width:75%}.col-lg-10{flex:0 0 auto;width:83.33333333%}.col-lg-11{flex:0 0 auto;width:91.66666667%}.col-lg-12{flex:0 0 auto;width:100%}.offset-lg-0{margin-left:0}.offset-lg-1{margin-left:8.33333333%}.offset-lg-2{margin-left:16.66666667%}.offset-lg-3{margin-left:25%}.offset-lg-4{margin-left:33.33333333%}.offset-lg-5{margin-left:41.66666667%}.offset-lg-6{margin-left:50%}.offset-lg-7{margin-left:58.33333333%}.offset-lg-8{margin-left:66.66666667%}.offset-lg-9{margin-left:75%}.offset-lg-10{margin-left:83.33333333%}.offset-lg-11{margin-left:91.66666667%}.g-lg-0,.gx-lg-0{--bs-gutter-x:0}.g-lg-0,.gy-lg-0{--bs-gutter-y:0}.g-lg-1,.gx-lg-1{--bs-gutter-x:0.25rem}.g-lg-1,.gy-lg-1{--bs-gutter-y:0.25rem}.g-lg-2,.gx-lg-2{--bs-gutter-x:0.5rem}.g-lg-2,.gy-lg-2{--bs-gutter-y:0.5rem}.g-lg-3,.gx-lg-3{--bs-gutter-x:1rem}.g-lg-3,.gy-lg-3{--bs-gutter-y:1rem}.g-lg-4,.gx-lg-4{--bs-gutter-x:1.5rem}.g-lg-4,.gy-lg-4{--bs-gutter-y:1.5rem}.g-lg-5,.gx-lg-5{--bs-gutter-x:3rem}.g-lg-5,.gy-lg-5{--bs-gutter-y:3rem}}@media (min-width:1200px){.col-xl{flex:1 0 0%}.row-cols-xl-auto>*{flex:0 0 auto;width:auto}.row-cols-xl-1>*{flex:0 0 auto;width:100%}.row-cols-xl-2>*{flex:0 0 auto;width:50%}.row-cols-xl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xl-4>*{flex:0 0 auto;width:25%}.row-cols-xl-5>*{flex:0 0 auto;width:20%}.row-cols-xl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xl-auto{flex:0 0 auto;width:auto}.col-xl-1{flex:0 0 auto;width:8.33333333%}.col-xl-2{flex:0 0 auto;width:16.66666667%}.col-xl-3{flex:0 0 auto;width:25%}.col-xl-4{flex:0 0 auto;width:33.33333333%}.col-xl-5{flex:0 0 auto;width:41.66666667%}.col-xl-6{flex:0 0 auto;width:50%}.col-xl-7{flex:0 0 auto;width:58.33333333%}.col-xl-8{flex:0 0 auto;width:66.66666667%}.col-xl-9{flex:0 0 auto;width:75%}.col-xl-10{flex:0 0 auto;width:83.33333333%}.col-xl-11{flex:0 0 auto;width:91.66666667%}.col-xl-12{flex:0 0 auto;width:100%}.offset-xl-0{margin-left:0}.offset-xl-1{margin-left:8.33333333%}.offset-xl-2{margin-left:16.66666667%}.offset-xl-3{margin-left:25%}.offset-xl-4{margin-left:33.33333333%}.offset-xl-5{margin-left:41.66666667%}.offset-xl-6{margin-left:50%}.offset-xl-7{margin-left:58.33333333%}.offset-xl-8{margin-left:66.66666667%}.offset-xl-9{margin-left:75%}.offset-xl-10{margin-left:83.33333333%}.offset-xl-11{margin-left:91.66666667%}.g-xl-0,.gx-xl-0{--bs-gutter-x:0}.g-xl-0,.gy-xl-0{--bs-gutter-y:0}.g-xl-1,.gx-xl-1{--bs-gutter-x:0.25rem}.g-xl-1,.gy-xl-1{--bs-gutter-y:0.25rem}.g-xl-2,.gx-xl-2{--bs-gutter-x:0.5rem}.g-xl-2,.gy-xl-2{--bs-gutter-y:0.5rem}.g-xl-3,.gx-xl-3{--bs-gutter-x:1rem}.g-xl-3,.gy-xl-3{--bs-gutter-y:1rem}.g-xl-4,.gx-xl-4{--bs-gutter-x:1.5rem}.g-xl-4,.gy-xl-4{--bs-gutter-y:1.5rem}.g-xl-5,.gx-xl-5{--bs-gutter-x:3rem}.g-xl-5,.gy-xl-5{--bs-gutter-y:3rem}}@media (min-width:1400px){.col-xxl{flex:1 0 0%}.row-cols-xxl-auto>*{flex:0 0 auto;width:auto}.row-cols-xxl-1>*{flex:0 0 auto;width:100%}.row-cols-xxl-2>*{flex:0 0 auto;width:50%}.row-cols-xxl-3>*{flex:0 0 auto;width:33.3333333333%}.row-cols-xxl-4>*{flex:0 0 auto;width:25%}.row-cols-xxl-5>*{flex:0 0 auto;width:20%}.row-cols-xxl-6>*{flex:0 0 auto;width:16.6666666667%}.col-xxl-auto{flex:0 0 auto;width:auto}.col-xxl-1{flex:0 0 auto;width:8.33333333%}.col-xxl-2{flex:0 0 auto;width:16.66666667%}.col-xxl-3{flex:0 0 auto;width:25%}.col-xxl-4{flex:0 0 auto;width:33.33333333%}.col-xxl-5{flex:0 0 auto;width:41.66666667%}.col-xxl-6{flex:0 0 auto;width:50%}.col-xxl-7{flex:0 0 auto;width:58.33333333%}.col-xxl-8{flex:0 0 auto;width:66.66666667%}.col-xxl-9{flex:0 0 auto;width:75%}.col-xxl-10{flex:0 0 auto;width:83.33333333%}.col-xxl-11{flex:0 0 auto;width:91.66666667%}.col-xxl-12{flex:0 0 auto;width:100%}.offset-xxl-0{margin-left:0}.offset-xxl-1{margin-left:8.33333333%}.offset-xxl-2{margin-left:16.66666667%}.offset-xxl-3{margin-left:25%}.offset-xxl-4{margin-left:33.33333333%}.offset-xxl-5{margin-left:41.66666667%}.offset-xxl-6{margin-left:50%}.offset-xxl-7{margin-left:58.33333333%}.offset-xxl-8{margin-left:66.66666667%}.offset-xxl-9{margin-left:75%}.offset-xxl-10{margin-left:83.33333333%}.offset-xxl-11{margin-left:91.66666667%}.g-xxl-0,.gx-xxl-0{--bs-gutter-x:0}.g-xxl-0,.gy-xxl-0{--bs-gutter-y:0}.g-xxl-1,.gx-xxl-1{--bs-gutter-x:0.25rem}.g-xxl-1,.gy-xxl-1{--bs-gutter-y:0.25rem}.g-xxl-2,.gx-xxl-2{--bs-gutter-x:0.5rem}.g-xxl-2,.gy-xxl-2{--bs-gutter-y:0.5rem}.g-xxl-3,.gx-xxl-3{--bs-gutter-x:1rem}.g-xxl-3,.gy-xxl-3{--bs-gutter-y:1rem}.g-xxl-4,.gx-xxl-4{--bs-gutter-x:1.5rem}.g-xxl-4,.gy-xxl-4{--bs-gutter-y:1.5rem}.g-xxl-5,.gx-xxl-5{--bs-gutter-x:3rem}.g-xxl-5,.gy-xxl-5{--bs-gutter-y:3rem}}.table{--bs-table-bg:transparent;--bs-table-accent-bg:transparent;--bs-table-striped-color:#212529;--bs-table-striped-bg:rgba(0, 0, 0, 0.05);--bs-table-active-color:#212529;--bs-table-active-bg:rgba(0, 0, 0, 0.1);--bs-table-hover-color:#212529;--bs-table-hover-bg:rgba(0, 0, 0, 0.075);width:100%;margin-bottom:1rem;color:#212529;vertical-align:top;border-color:#dee2e6}.table>:not(caption)>*>*{padding:.5rem .5rem;background-color:var(--bs-table-bg);border-bottom-width:1px;box-shadow:inset 0 0 0 9999px var(--bs-table-accent-bg)}.table>tbody{vertical-align:inherit}.table>thead{vertical-align:bottom}.table>:not(:last-child)>:last-child>*{border-bottom-color:currentColor}.caption-top{caption-side:top}.table-sm>:not(caption)>*>*{padding:.25rem .25rem}.table-bordered>:not(caption)>*{border-width:1px 0}.table-bordered>:not(caption)>*>*{border-width:0 1px}.table-borderless>:not(caption)>*>*{border-bottom-width:0}.table-striped>tbody>tr:nth-of-type(odd){--bs-table-accent-bg:var(--bs-table-striped-bg);color:var(--bs-table-striped-color)}.table-active{--bs-table-accent-bg:var(--bs-table-active-bg);color:var(--bs-table-active-color)}.table-hover>tbody>tr:hover{--bs-table-accent-bg:var(--bs-table-hover-bg);color:var(--bs-table-hover-color)}.table-primary{--bs-table-bg:#cfe2ff;--bs-table-striped-bg:#c5d7f2;--bs-table-striped-color:#000;--bs-table-active-bg:#bacbe6;--bs-table-active-color:#000;--bs-table-hover-bg:#bfd1ec;--bs-table-hover-color:#000;color:#000;border-color:#bacbe6}.table-secondary{--bs-table-bg:#e2e3e5;--bs-table-striped-bg:#d7d8da;--bs-table-striped-color:#000;--bs-table-active-bg:#cbccce;--bs-table-active-color:#000;--bs-table-hover-bg:#d1d2d4;--bs-table-hover-color:#000;color:#000;border-color:#cbccce}.table-success{--bs-table-bg:#d1e7dd;--bs-table-striped-bg:#c7dbd2;--bs-table-striped-color:#000;--bs-table-active-bg:#bcd0c7;--bs-table-active-color:#000;--bs-table-hover-bg:#c1d6cc;--bs-table-hover-color:#000;color:#000;border-color:#bcd0c7}.table-info{--bs-table-bg:#cff4fc;--bs-table-striped-bg:#c5e8ef;--bs-table-striped-color:#000;--bs-table-active-bg:#badce3;--bs-table-active-color:#000;--bs-table-hover-bg:#bfe2e9;--bs-table-hover-color:#000;color:#000;border-color:#badce3}.table-warning{--bs-table-bg:#fff3cd;--bs-table-striped-bg:#f2e7c3;--bs-table-striped-color:#000;--bs-table-active-bg:#e6dbb9;--bs-table-active-color:#000;--bs-table-hover-bg:#ece1be;--bs-table-hover-color:#000;color:#000;border-color:#e6dbb9}.table-danger{--bs-table-bg:#f8d7da;--bs-table-striped-bg:#eccccf;--bs-table-striped-color:#000;--bs-table-active-bg:#dfc2c4;--bs-table-active-color:#000;--bs-table-hover-bg:#e5c7ca;--bs-table-hover-color:#000;color:#000;border-color:#dfc2c4}.table-light{--bs-table-bg:#f8f9fa;--bs-table-striped-bg:#ecedee;--bs-table-striped-color:#000;--bs-table-active-bg:#dfe0e1;--bs-table-active-color:#000;--bs-table-hover-bg:#e5e6e7;--bs-table-hover-color:#000;color:#000;border-color:#dfe0e1}.table-dark{--bs-table-bg:#212529;--bs-table-striped-bg:#2c3034;--bs-table-striped-color:#fff;--bs-table-active-bg:#373b3e;--bs-table-active-color:#fff;--bs-table-hover-bg:#323539;--bs-table-hover-color:#fff;color:#fff;border-color:#373b3e}.table-responsive{overflow-x:auto;-webkit-overflow-scrolling:touch}@media (max-width:575.98px){.table-responsive-sm{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:767.98px){.table-responsive-md{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:991.98px){.table-responsive-lg{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1199.98px){.table-responsive-xl{overflow-x:auto;-webkit-overflow-scrolling:touch}}@media (max-width:1399.98px){.table-responsive-xxl{overflow-x:auto;-webkit-overflow-scrolling:touch}}.form-label{margin-bottom:.5rem}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.col-form-label-lg{padding-top:calc(.5rem + 1px);padding-bottom:calc(.5rem + 1px);font-size:1.25rem}.col-form-label-sm{padding-top:calc(.25rem + 1px);padding-bottom:calc(.25rem + 1px);font-size:.875rem}.form-text{margin-top:.25rem;font-size:.875em;color:#6c757d}.form-control{display:block;width:100%;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control[type=file]{overflow:hidden}.form-control[type=file]:not(:disabled):not([readonly]){cursor:pointer}.form-control:focus{color:#212529;background-color:#fff;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-control::-webkit-date-and-time-value{height:1.5em}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control::file-selector-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::file-selector-button{transition:none}}.form-control:hover:not(:disabled):not([readonly])::file-selector-button{background-color:#dde0e3}.form-control::-webkit-file-upload-button{padding:.375rem .75rem;margin:-.375rem -.75rem;-webkit-margin-end:.75rem;margin-inline-end:.75rem;color:#212529;background-color:#e9ecef;pointer-events:none;border-color:inherit;border-style:solid;border-width:0;border-inline-end-width:1px;border-radius:0;-webkit-transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control::-webkit-file-upload-button{-webkit-transition:none;transition:none}}.form-control:hover:not(:disabled):not([readonly])::-webkit-file-upload-button{background-color:#dde0e3}.form-control-plaintext{display:block;width:100%;padding:.375rem 0;margin-bottom:0;line-height:1.5;color:#212529;background-color:transparent;border:solid transparent;border-width:1px 0}.form-control-plaintext.form-control-lg,.form-control-plaintext.form-control-sm{padding-right:0;padding-left:0}.form-control-sm{min-height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.form-control-sm::file-selector-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-sm::-webkit-file-upload-button{padding:.25rem .5rem;margin:-.25rem -.5rem;-webkit-margin-end:.5rem;margin-inline-end:.5rem}.form-control-lg{min-height:calc(1.5em + 1rem + 2px);padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.form-control-lg::file-selector-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}.form-control-lg::-webkit-file-upload-button{padding:.5rem 1rem;margin:-.5rem -1rem;-webkit-margin-end:1rem;margin-inline-end:1rem}textarea.form-control{min-height:calc(1.5em + .75rem + 2px)}textarea.form-control-sm{min-height:calc(1.5em + .5rem + 2px)}textarea.form-control-lg{min-height:calc(1.5em + 1rem + 2px)}.form-control-color{width:3rem;height:auto;padding:.375rem}.form-control-color:not(:disabled):not([readonly]){cursor:pointer}.form-control-color::-moz-color-swatch{height:1.5em;border-radius:.25rem}.form-control-color::-webkit-color-swatch{height:1.5em;border-radius:.25rem}.form-select{display:block;width:100%;padding:.375rem 2.25rem .375rem .75rem;-moz-padding-start:calc(0.75rem - 3px);font-size:1rem;font-weight:400;line-height:1.5;color:#212529;background-color:#fff;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right .75rem center;background-size:16px 12px;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-select{transition:none}}.form-select:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-select[multiple],.form-select[size]:not([size="1"]){padding-right:.75rem;background-image:none}.form-select:disabled{background-color:#e9ecef}.form-select:-moz-focusring{color:transparent;text-shadow:0 0 0 #212529}.form-select-sm{padding-top:.25rem;padding-bottom:.25rem;padding-left:.5rem;font-size:.875rem}.form-select-lg{padding-top:.5rem;padding-bottom:.5rem;padding-left:1rem;font-size:1.25rem}.form-check{display:block;min-height:1.5rem;padding-left:1.5em;margin-bottom:.125rem}.form-check .form-check-input{float:left;margin-left:-1.5em}.form-check-input{width:1em;height:1em;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-position:center;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-check-input[type=checkbox]{border-radius:.25em}.form-check-input[type=radio]{border-radius:50%}.form-check-input:active{filter:brightness(90%)}.form-check-input:focus{border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.form-check-input:checked{background-color:#0d6efd;border-color:#0d6efd}.form-check-input:checked[type=checkbox]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10l3 3l6-6'/%3e%3c/svg%3e")}.form-check-input:checked[type=radio]{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='2' fill='%23fff'/%3e%3c/svg%3e")}.form-check-input[type=checkbox]:indeterminate{background-color:#0d6efd;border-color:#0d6efd;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3e%3cpath fill='none' stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='3' d='M6 10h8'/%3e%3c/svg%3e")}.form-check-input:disabled{pointer-events:none;filter:none;opacity:.5}.form-check-input:disabled~.form-check-label,.form-check-input[disabled]~.form-check-label{opacity:.5}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2em;margin-left:-2.5em;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='rgba%280, 0, 0, 0.25%29'/%3e%3c/svg%3e");background-position:left center;border-radius:2em;transition:background-position .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-switch .form-check-input{transition:none}}.form-switch .form-check-input:focus{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%2386b7fe'/%3e%3c/svg%3e")}.form-switch .form-check-input:checked{background-position:right center;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3e%3ccircle r='3' fill='%23fff'/%3e%3c/svg%3e")}.form-check-inline{display:inline-block;margin-right:1rem}.btn-check{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.btn-check:disabled+.btn,.btn-check[disabled]+.btn{pointer-events:none;filter:none;opacity:.65}.form-range{width:100%;height:1.5rem;padding:0;background-color:transparent;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-range:focus{outline:0}.form-range:focus::-webkit-slider-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range:focus::-moz-range-thumb{box-shadow:0 0 0 1px #fff,0 0 0 .25rem rgba(13,110,253,.25)}.form-range::-moz-focus-outer{border:0}.form-range::-webkit-slider-thumb{width:1rem;height:1rem;margin-top:-.25rem;background-color:#0d6efd;border:0;border-radius:1rem;-webkit-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-webkit-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-webkit-slider-thumb{-webkit-transition:none;transition:none}}.form-range::-webkit-slider-thumb:active{background-color:#b6d4fe}.form-range::-webkit-slider-runnable-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range::-moz-range-thumb{width:1rem;height:1rem;background-color:#0d6efd;border:0;border-radius:1rem;-moz-transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out;-moz-appearance:none;appearance:none}@media (prefers-reduced-motion:reduce){.form-range::-moz-range-thumb{-moz-transition:none;transition:none}}.form-range::-moz-range-thumb:active{background-color:#b6d4fe}.form-range::-moz-range-track{width:100%;height:.5rem;color:transparent;cursor:pointer;background-color:#dee2e6;border-color:transparent;border-radius:1rem}.form-range:disabled{pointer-events:none}.form-range:disabled::-webkit-slider-thumb{background-color:#adb5bd}.form-range:disabled::-moz-range-thumb{background-color:#adb5bd}.form-floating{position:relative}.form-floating>.form-control,.form-floating>.form-select{height:calc(3.5rem + 2px);line-height:1.25}.form-floating>label{position:absolute;top:0;left:0;height:100%;padding:1rem .75rem;pointer-events:none;border:1px solid transparent;transform-origin:0 0;transition:opacity .1s ease-in-out,transform .1s ease-in-out}@media (prefers-reduced-motion:reduce){.form-floating>label{transition:none}}.form-floating>.form-control{padding:1rem .75rem}.form-floating>.form-control::-moz-placeholder{color:transparent}.form-floating>.form-control::placeholder{color:transparent}.form-floating>.form-control:not(:-moz-placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:focus,.form-floating>.form-control:not(:placeholder-shown){padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:-webkit-autofill{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-select{padding-top:1.625rem;padding-bottom:.625rem}.form-floating>.form-control:not(:-moz-placeholder-shown)~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:focus~label,.form-floating>.form-control:not(:placeholder-shown)~label,.form-floating>.form-select~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.form-floating>.form-control:-webkit-autofill~label{opacity:.65;transform:scale(.85) translateY(-.5rem) translateX(.15rem)}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control,.input-group>.form-select{position:relative;flex:1 1 auto;width:1%;min-width:0}.input-group>.form-control:focus,.input-group>.form-select:focus{z-index:3}.input-group .btn{position:relative;z-index:2}.input-group .btn:focus{z-index:3}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#212529;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-lg>.btn,.input-group-lg>.form-control,.input-group-lg>.form-select,.input-group-lg>.input-group-text{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.input-group-sm>.btn,.input-group-sm>.form-control,.input-group-sm>.form-select,.input-group-sm>.input-group-text{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.input-group-lg>.form-select,.input-group-sm>.form-select{padding-right:3rem}.input-group:not(.has-validation)>.dropdown-toggle:nth-last-child(n+3),.input-group:not(.has-validation)>:not(:last-child):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group.has-validation>.dropdown-toggle:nth-last-child(n+4),.input-group.has-validation>:nth-last-child(n+3):not(.dropdown-toggle):not(.dropdown-menu){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>:not(:first-child):not(.dropdown-menu):not(.valid-tooltip):not(.valid-feedback):not(.invalid-tooltip):not(.invalid-feedback){margin-left:-1px;border-top-left-radius:0;border-bottom-left-radius:0}.valid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#198754}.valid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(25,135,84,.9);border-radius:.25rem}.is-valid~.valid-feedback,.is-valid~.valid-tooltip,.was-validated :valid~.valid-feedback,.was-validated :valid~.valid-tooltip{display:block}.form-control.is-valid,.was-validated .form-control:valid{border-color:#198754;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-valid:focus,.was-validated .form-control:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.was-validated textarea.form-control:valid,textarea.form-control.is-valid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-valid,.was-validated .form-select:valid{border-color:#198754}.form-select.is-valid:not([multiple]):not([size]),.form-select.is-valid:not([multiple])[size="1"],.was-validated .form-select:valid:not([multiple]):not([size]),.was-validated .form-select:valid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3e%3cpath fill='%23198754' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-valid:focus,.was-validated .form-select:valid:focus{border-color:#198754;box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid,.was-validated .form-check-input:valid{border-color:#198754}.form-check-input.is-valid:checked,.was-validated .form-check-input:valid:checked{background-color:#198754}.form-check-input.is-valid:focus,.was-validated .form-check-input:valid:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.25)}.form-check-input.is-valid~.form-check-label,.was-validated .form-check-input:valid~.form-check-label{color:#198754}.form-check-inline .form-check-input~.valid-feedback{margin-left:.5em}.input-group .form-control.is-valid,.input-group .form-select.is-valid,.was-validated .input-group .form-control:valid,.was-validated .input-group .form-select:valid{z-index:1}.input-group .form-control.is-valid:focus,.input-group .form-select.is-valid:focus,.was-validated .input-group .form-control:valid:focus,.was-validated .input-group .form-select:valid:focus{z-index:3}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:.875em;color:#dc3545}.invalid-tooltip{position:absolute;top:100%;z-index:5;display:none;max-width:100%;padding:.25rem .5rem;margin-top:.1rem;font-size:.875rem;color:#fff;background-color:rgba(220,53,69,.9);border-radius:.25rem}.is-invalid~.invalid-feedback,.is-invalid~.invalid-tooltip,.was-validated :invalid~.invalid-feedback,.was-validated :invalid~.invalid-tooltip{display:block}.form-control.is-invalid,.was-validated .form-control:invalid{border-color:#dc3545;padding-right:calc(1.5em + .75rem);background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-repeat:no-repeat;background-position:right calc(.375em + .1875rem) center;background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus,.was-validated .form-control:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.was-validated textarea.form-control:invalid,textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-select.is-invalid,.was-validated .form-select:invalid{border-color:#dc3545}.form-select.is-invalid:not([multiple]):not([size]),.form-select.is-invalid:not([multiple])[size="1"],.was-validated .form-select:invalid:not([multiple]):not([size]),.was-validated .form-select:invalid:not([multiple])[size="1"]{padding-right:4.125rem;background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M2 5l6 6 6-6'/%3e%3c/svg%3e"),url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 12' width='12' height='12' fill='none' stroke='%23dc3545'%3e%3ccircle cx='6' cy='6' r='4.5'/%3e%3cpath stroke-linejoin='round' d='M5.8 3.6h.4L6 6.5z'/%3e%3ccircle cx='6' cy='8.2' r='.6' fill='%23dc3545' stroke='none'/%3e%3c/svg%3e");background-position:right .75rem center,center right 2.25rem;background-size:16px 12px,calc(.75em + .375rem) calc(.75em + .375rem)}.form-select.is-invalid:focus,.was-validated .form-select:invalid:focus{border-color:#dc3545;box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid,.was-validated .form-check-input:invalid{border-color:#dc3545}.form-check-input.is-invalid:checked,.was-validated .form-check-input:invalid:checked{background-color:#dc3545}.form-check-input.is-invalid:focus,.was-validated .form-check-input:invalid:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.25)}.form-check-input.is-invalid~.form-check-label,.was-validated .form-check-input:invalid~.form-check-label{color:#dc3545}.form-check-inline .form-check-input~.invalid-feedback{margin-left:.5em}.input-group .form-control.is-invalid,.input-group .form-select.is-invalid,.was-validated .input-group .form-control:invalid,.was-validated .input-group .form-select:invalid{z-index:2}.input-group .form-control.is-invalid:focus,.input-group .form-select.is-invalid:focus,.was-validated .input-group .form-control:invalid:focus,.was-validated .input-group .form-select:invalid:focus{z-index:3}.btn{display:inline-block;font-weight:400;line-height:1.5;color:#212529;text-align:center;text-decoration:none;vertical-align:middle;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1rem;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#212529}.btn-check:focus+.btn,.btn:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.btn.disabled,.btn:disabled,fieldset:disabled .btn{pointer-events:none;opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:#0b5ed7;border-color:#0a58ca}.btn-check:focus+.btn-primary,.btn-primary:focus{color:#fff;background-color:#0b5ed7;border-color:#0a58ca;box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-check:active+.btn-primary,.btn-check:checked+.btn-primary,.btn-primary.active,.btn-primary:active,.show>.btn-primary.dropdown-toggle{color:#fff;background-color:#0a58ca;border-color:#0a53be}.btn-check:active+.btn-primary:focus,.btn-check:checked+.btn-primary:focus,.btn-primary.active:focus,.btn-primary:active:focus,.show>.btn-primary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(49,132,253,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-secondary{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-secondary:hover{color:#fff;background-color:#5c636a;border-color:#565e64}.btn-check:focus+.btn-secondary,.btn-secondary:focus{color:#fff;background-color:#5c636a;border-color:#565e64;box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-check:active+.btn-secondary,.btn-check:checked+.btn-secondary,.btn-secondary.active,.btn-secondary:active,.show>.btn-secondary.dropdown-toggle{color:#fff;background-color:#565e64;border-color:#51585e}.btn-check:active+.btn-secondary:focus,.btn-check:checked+.btn-secondary:focus,.btn-secondary.active:focus,.btn-secondary:active:focus,.show>.btn-secondary.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(130,138,145,.5)}.btn-secondary.disabled,.btn-secondary:disabled{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-success{color:#fff;background-color:#198754;border-color:#198754}.btn-success:hover{color:#fff;background-color:#157347;border-color:#146c43}.btn-check:focus+.btn-success,.btn-success:focus{color:#fff;background-color:#157347;border-color:#146c43;box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-check:active+.btn-success,.btn-check:checked+.btn-success,.btn-success.active,.btn-success:active,.show>.btn-success.dropdown-toggle{color:#fff;background-color:#146c43;border-color:#13653f}.btn-check:active+.btn-success:focus,.btn-check:checked+.btn-success:focus,.btn-success.active:focus,.btn-success:active:focus,.show>.btn-success.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(60,153,110,.5)}.btn-success.disabled,.btn-success:disabled{color:#fff;background-color:#198754;border-color:#198754}.btn-info{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-info:hover{color:#000;background-color:#31d2f2;border-color:#25cff2}.btn-check:focus+.btn-info,.btn-info:focus{color:#000;background-color:#31d2f2;border-color:#25cff2;box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-check:active+.btn-info,.btn-check:checked+.btn-info,.btn-info.active,.btn-info:active,.show>.btn-info.dropdown-toggle{color:#000;background-color:#3dd5f3;border-color:#25cff2}.btn-check:active+.btn-info:focus,.btn-check:checked+.btn-info:focus,.btn-info.active:focus,.btn-info:active:focus,.show>.btn-info.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(11,172,204,.5)}.btn-info.disabled,.btn-info:disabled{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-warning{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-warning:hover{color:#000;background-color:#ffca2c;border-color:#ffc720}.btn-check:focus+.btn-warning,.btn-warning:focus{color:#000;background-color:#ffca2c;border-color:#ffc720;box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-check:active+.btn-warning,.btn-check:checked+.btn-warning,.btn-warning.active,.btn-warning:active,.show>.btn-warning.dropdown-toggle{color:#000;background-color:#ffcd39;border-color:#ffc720}.btn-check:active+.btn-warning:focus,.btn-check:checked+.btn-warning:focus,.btn-warning.active:focus,.btn-warning:active:focus,.show>.btn-warning.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(217,164,6,.5)}.btn-warning.disabled,.btn-warning:disabled{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-danger{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-danger:hover{color:#fff;background-color:#bb2d3b;border-color:#b02a37}.btn-check:focus+.btn-danger,.btn-danger:focus{color:#fff;background-color:#bb2d3b;border-color:#b02a37;box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-check:active+.btn-danger,.btn-check:checked+.btn-danger,.btn-danger.active,.btn-danger:active,.show>.btn-danger.dropdown-toggle{color:#fff;background-color:#b02a37;border-color:#a52834}.btn-check:active+.btn-danger:focus,.btn-check:checked+.btn-danger:focus,.btn-danger.active:focus,.btn-danger:active:focus,.show>.btn-danger.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(225,83,97,.5)}.btn-danger.disabled,.btn-danger:disabled{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-light{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-light:hover{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:focus+.btn-light,.btn-light:focus{color:#000;background-color:#f9fafb;border-color:#f9fafb;box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-check:active+.btn-light,.btn-check:checked+.btn-light,.btn-light.active,.btn-light:active,.show>.btn-light.dropdown-toggle{color:#000;background-color:#f9fafb;border-color:#f9fafb}.btn-check:active+.btn-light:focus,.btn-check:checked+.btn-light:focus,.btn-light.active:focus,.btn-light:active:focus,.show>.btn-light.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(211,212,213,.5)}.btn-light.disabled,.btn-light:disabled{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-dark{color:#fff;background-color:#212529;border-color:#212529}.btn-dark:hover{color:#fff;background-color:#1c1f23;border-color:#1a1e21}.btn-check:focus+.btn-dark,.btn-dark:focus{color:#fff;background-color:#1c1f23;border-color:#1a1e21;box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-check:active+.btn-dark,.btn-check:checked+.btn-dark,.btn-dark.active,.btn-dark:active,.show>.btn-dark.dropdown-toggle{color:#fff;background-color:#1a1e21;border-color:#191c1f}.btn-check:active+.btn-dark:focus,.btn-check:checked+.btn-dark:focus,.btn-dark.active:focus,.btn-dark:active:focus,.show>.btn-dark.dropdown-toggle:focus{box-shadow:0 0 0 .25rem rgba(66,70,73,.5)}.btn-dark.disabled,.btn-dark:disabled{color:#fff;background-color:#212529;border-color:#212529}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:focus+.btn-outline-primary,.btn-outline-primary:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-check:active+.btn-outline-primary,.btn-check:checked+.btn-outline-primary,.btn-outline-primary.active,.btn-outline-primary.dropdown-toggle.show,.btn-outline-primary:active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-check:active+.btn-outline-primary:focus,.btn-check:checked+.btn-outline-primary:focus,.btn-outline-primary.active:focus,.btn-outline-primary.dropdown-toggle.show:focus,.btn-outline-primary:active:focus{box-shadow:0 0 0 .25rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-secondary{color:#6c757d;border-color:#6c757d}.btn-outline-secondary:hover{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:focus+.btn-outline-secondary,.btn-outline-secondary:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-check:active+.btn-outline-secondary,.btn-check:checked+.btn-outline-secondary,.btn-outline-secondary.active,.btn-outline-secondary.dropdown-toggle.show,.btn-outline-secondary:active{color:#fff;background-color:#6c757d;border-color:#6c757d}.btn-check:active+.btn-outline-secondary:focus,.btn-check:checked+.btn-outline-secondary:focus,.btn-outline-secondary.active:focus,.btn-outline-secondary.dropdown-toggle.show:focus,.btn-outline-secondary:active:focus{box-shadow:0 0 0 .25rem rgba(108,117,125,.5)}.btn-outline-secondary.disabled,.btn-outline-secondary:disabled{color:#6c757d;background-color:transparent}.btn-outline-success{color:#198754;border-color:#198754}.btn-outline-success:hover{color:#fff;background-color:#198754;border-color:#198754}.btn-check:focus+.btn-outline-success,.btn-outline-success:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-check:active+.btn-outline-success,.btn-check:checked+.btn-outline-success,.btn-outline-success.active,.btn-outline-success.dropdown-toggle.show,.btn-outline-success:active{color:#fff;background-color:#198754;border-color:#198754}.btn-check:active+.btn-outline-success:focus,.btn-check:checked+.btn-outline-success:focus,.btn-outline-success.active:focus,.btn-outline-success.dropdown-toggle.show:focus,.btn-outline-success:active:focus{box-shadow:0 0 0 .25rem rgba(25,135,84,.5)}.btn-outline-success.disabled,.btn-outline-success:disabled{color:#198754;background-color:transparent}.btn-outline-info{color:#0dcaf0;border-color:#0dcaf0}.btn-outline-info:hover{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:focus+.btn-outline-info,.btn-outline-info:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-check:active+.btn-outline-info,.btn-check:checked+.btn-outline-info,.btn-outline-info.active,.btn-outline-info.dropdown-toggle.show,.btn-outline-info:active{color:#000;background-color:#0dcaf0;border-color:#0dcaf0}.btn-check:active+.btn-outline-info:focus,.btn-check:checked+.btn-outline-info:focus,.btn-outline-info.active:focus,.btn-outline-info.dropdown-toggle.show:focus,.btn-outline-info:active:focus{box-shadow:0 0 0 .25rem rgba(13,202,240,.5)}.btn-outline-info.disabled,.btn-outline-info:disabled{color:#0dcaf0;background-color:transparent}.btn-outline-warning{color:#ffc107;border-color:#ffc107}.btn-outline-warning:hover{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:focus+.btn-outline-warning,.btn-outline-warning:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-check:active+.btn-outline-warning,.btn-check:checked+.btn-outline-warning,.btn-outline-warning.active,.btn-outline-warning.dropdown-toggle.show,.btn-outline-warning:active{color:#000;background-color:#ffc107;border-color:#ffc107}.btn-check:active+.btn-outline-warning:focus,.btn-check:checked+.btn-outline-warning:focus,.btn-outline-warning.active:focus,.btn-outline-warning.dropdown-toggle.show:focus,.btn-outline-warning:active:focus{box-shadow:0 0 0 .25rem rgba(255,193,7,.5)}.btn-outline-warning.disabled,.btn-outline-warning:disabled{color:#ffc107;background-color:transparent}.btn-outline-danger{color:#dc3545;border-color:#dc3545}.btn-outline-danger:hover{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:focus+.btn-outline-danger,.btn-outline-danger:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-check:active+.btn-outline-danger,.btn-check:checked+.btn-outline-danger,.btn-outline-danger.active,.btn-outline-danger.dropdown-toggle.show,.btn-outline-danger:active{color:#fff;background-color:#dc3545;border-color:#dc3545}.btn-check:active+.btn-outline-danger:focus,.btn-check:checked+.btn-outline-danger:focus,.btn-outline-danger.active:focus,.btn-outline-danger.dropdown-toggle.show:focus,.btn-outline-danger:active:focus{box-shadow:0 0 0 .25rem rgba(220,53,69,.5)}.btn-outline-danger.disabled,.btn-outline-danger:disabled{color:#dc3545;background-color:transparent}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:focus+.btn-outline-light,.btn-outline-light:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-check:active+.btn-outline-light,.btn-check:checked+.btn-outline-light,.btn-outline-light.active,.btn-outline-light.dropdown-toggle.show,.btn-outline-light:active{color:#000;background-color:#f8f9fa;border-color:#f8f9fa}.btn-check:active+.btn-outline-light:focus,.btn-check:checked+.btn-outline-light:focus,.btn-outline-light.active:focus,.btn-outline-light.dropdown-toggle.show:focus,.btn-outline-light:active:focus{box-shadow:0 0 0 .25rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-dark{color:#212529;border-color:#212529}.btn-outline-dark:hover{color:#fff;background-color:#212529;border-color:#212529}.btn-check:focus+.btn-outline-dark,.btn-outline-dark:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-check:active+.btn-outline-dark,.btn-check:checked+.btn-outline-dark,.btn-outline-dark.active,.btn-outline-dark.dropdown-toggle.show,.btn-outline-dark:active{color:#fff;background-color:#212529;border-color:#212529}.btn-check:active+.btn-outline-dark:focus,.btn-check:checked+.btn-outline-dark:focus,.btn-outline-dark.active:focus,.btn-outline-dark.dropdown-toggle.show:focus,.btn-outline-dark:active:focus{box-shadow:0 0 0 .25rem rgba(33,37,41,.5)}.btn-outline-dark.disabled,.btn-outline-dark:disabled{color:#212529;background-color:transparent}.btn-link{font-weight:400;color:#0d6efd;text-decoration:underline}.btn-link:hover{color:#0a58ca}.btn-link.disabled,.btn-link:disabled{color:#6c757d}.btn-group-lg>.btn,.btn-lg{padding:.5rem 1rem;font-size:1.25rem;border-radius:.3rem}.btn-group-sm>.btn,.btn-sm{padding:.25rem .5rem;font-size:.875rem;border-radius:.2rem}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}.collapse:not(.show){display:none}.collapsing{height:0;overflow:hidden;transition:height .35s ease}@media (prefers-reduced-motion:reduce){.collapsing{transition:none}}.collapsing.collapse-horizontal{width:0;height:auto;transition:width .35s ease}@media (prefers-reduced-motion:reduce){.collapsing.collapse-horizontal{transition:none}}.dropdown,.dropend,.dropstart,.dropup{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty::after{margin-left:0}.dropdown-menu{position:absolute;z-index:1000;display:none;min-width:10rem;padding:.5rem 0;margin:0;font-size:1rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[data-bs-popper]{top:100%;left:0;margin-top:.125rem}.dropdown-menu-start{--bs-position:start}.dropdown-menu-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-end{--bs-position:end}.dropdown-menu-end[data-bs-popper]{right:0;left:auto}@media (min-width:576px){.dropdown-menu-sm-start{--bs-position:start}.dropdown-menu-sm-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-sm-end{--bs-position:end}.dropdown-menu-sm-end[data-bs-popper]{right:0;left:auto}}@media (min-width:768px){.dropdown-menu-md-start{--bs-position:start}.dropdown-menu-md-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-md-end{--bs-position:end}.dropdown-menu-md-end[data-bs-popper]{right:0;left:auto}}@media (min-width:992px){.dropdown-menu-lg-start{--bs-position:start}.dropdown-menu-lg-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-lg-end{--bs-position:end}.dropdown-menu-lg-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1200px){.dropdown-menu-xl-start{--bs-position:start}.dropdown-menu-xl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xl-end{--bs-position:end}.dropdown-menu-xl-end[data-bs-popper]{right:0;left:auto}}@media (min-width:1400px){.dropdown-menu-xxl-start{--bs-position:start}.dropdown-menu-xxl-start[data-bs-popper]{right:auto;left:0}.dropdown-menu-xxl-end{--bs-position:end}.dropdown-menu-xxl-end[data-bs-popper]{right:0;left:auto}}.dropup .dropdown-menu[data-bs-popper]{top:auto;bottom:100%;margin-top:0;margin-bottom:.125rem}.dropup .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:0;border-right:.3em solid transparent;border-bottom:.3em solid;border-left:.3em solid transparent}.dropup .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-menu[data-bs-popper]{top:0;right:auto;left:100%;margin-top:0;margin-left:.125rem}.dropend .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:0;border-bottom:.3em solid transparent;border-left:.3em solid}.dropend .dropdown-toggle:empty::after{margin-left:0}.dropend .dropdown-toggle::after{vertical-align:0}.dropstart .dropdown-menu[data-bs-popper]{top:0;right:100%;left:auto;margin-top:0;margin-right:.125rem}.dropstart .dropdown-toggle::after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:""}.dropstart .dropdown-toggle::after{display:none}.dropstart .dropdown-toggle::before{display:inline-block;margin-right:.255em;vertical-align:.255em;content:"";border-top:.3em solid transparent;border-right:.3em solid;border-bottom:.3em solid transparent}.dropstart .dropdown-toggle:empty::after{margin-left:0}.dropstart .dropdown-toggle::before{vertical-align:0}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid rgba(0,0,0,.15)}.dropdown-item{display:block;width:100%;padding:.25rem 1rem;clear:both;font-weight:400;color:#212529;text-align:inherit;text-decoration:none;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:#1e2125;background-color:#e9ecef}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#adb5bd;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-header{display:block;padding:.5rem 1rem;margin-bottom:0;font-size:.875rem;color:#6c757d;white-space:nowrap}.dropdown-item-text{display:block;padding:.25rem 1rem;color:#212529}.dropdown-menu-dark{color:#dee2e6;background-color:#343a40;border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item{color:#dee2e6}.dropdown-menu-dark .dropdown-item:focus,.dropdown-menu-dark .dropdown-item:hover{color:#fff;background-color:rgba(255,255,255,.15)}.dropdown-menu-dark .dropdown-item.active,.dropdown-menu-dark .dropdown-item:active{color:#fff;background-color:#0d6efd}.dropdown-menu-dark .dropdown-item.disabled,.dropdown-menu-dark .dropdown-item:disabled{color:#adb5bd}.dropdown-menu-dark .dropdown-divider{border-color:rgba(0,0,0,.15)}.dropdown-menu-dark .dropdown-item-text{color:#dee2e6}.dropdown-menu-dark .dropdown-header{color:#adb5bd}.btn-group,.btn-group-vertical{position:relative;display:inline-flex;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group-vertical>.btn-check:checked+.btn,.btn-group-vertical>.btn-check:focus+.btn,.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn-check:checked+.btn,.btn-group>.btn-check:focus+.btn,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-toolbar{display:flex;flex-wrap:wrap;justify-content:flex-start}.btn-toolbar .input-group{width:auto}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:nth-child(n+3),.btn-group>:not(.btn-check)+.btn{border-top-left-radius:0;border-bottom-left-radius:0}.dropdown-toggle-split{padding-right:.5625rem;padding-left:.5625rem}.dropdown-toggle-split::after,.dropend .dropdown-toggle-split::after,.dropup .dropdown-toggle-split::after{margin-left:0}.dropstart .dropdown-toggle-split::before{margin-right:0}.btn-group-sm>.btn+.dropdown-toggle-split,.btn-sm+.dropdown-toggle-split{padding-right:.375rem;padding-left:.375rem}.btn-group-lg>.btn+.dropdown-toggle-split,.btn-lg+.dropdown-toggle-split{padding-right:.75rem;padding-left:.75rem}.btn-group-vertical{flex-direction:column;align-items:flex-start;justify-content:center}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group{width:100%}.btn-group-vertical>.btn-group:not(:first-child),.btn-group-vertical>.btn:not(:first-child){margin-top:-1px}.btn-group-vertical>.btn-group:not(:last-child)>.btn,.btn-group-vertical>.btn:not(:last-child):not(.dropdown-toggle){border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:not(:first-child)>.btn,.btn-group-vertical>.btn~.btn{border-top-left-radius:0;border-top-right-radius:0}.nav{display:flex;flex-wrap:wrap;padding-left:0;margin-bottom:0;list-style:none}.nav-link{display:block;padding:.5rem 1rem;color:#0d6efd;text-decoration:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out}@media (prefers-reduced-motion:reduce){.nav-link{transition:none}}.nav-link:focus,.nav-link:hover{color:#0a58ca}.nav-link.disabled{color:#6c757d;pointer-events:none;cursor:default}.nav-tabs{border-bottom:1px solid #dee2e6}.nav-tabs .nav-link{margin-bottom:-1px;background:0 0;border:1px solid transparent;border-top-left-radius:.25rem;border-top-right-radius:.25rem}.nav-tabs .nav-link:focus,.nav-tabs .nav-link:hover{border-color:#e9ecef #e9ecef #dee2e6;isolation:isolate}.nav-tabs .nav-link.disabled{color:#6c757d;background-color:transparent;border-color:transparent}.nav-tabs .nav-item.show .nav-link,.nav-tabs .nav-link.active{color:#495057;background-color:#fff;border-color:#dee2e6 #dee2e6 #fff}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.nav-pills .nav-link{background:0 0;border:0;border-radius:.25rem}.nav-pills .nav-link.active,.nav-pills .show>.nav-link{color:#fff;background-color:#0d6efd}.nav-fill .nav-item,.nav-fill>.nav-link{flex:1 1 auto;text-align:center}.nav-justified .nav-item,.nav-justified>.nav-link{flex-basis:0;flex-grow:1;text-align:center}.nav-fill .nav-item .nav-link,.nav-justified .nav-item .nav-link{width:100%}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.navbar{position:relative;display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:.5rem;padding-bottom:.5rem}.navbar>.container,.navbar>.container-fluid,.navbar>.container-lg,.navbar>.container-md,.navbar>.container-sm,.navbar>.container-xl,.navbar>.container-xxl{display:flex;flex-wrap:inherit;align-items:center;justify-content:space-between}.navbar-brand{padding-top:.3125rem;padding-bottom:.3125rem;margin-right:1rem;font-size:1.25rem;text-decoration:none;white-space:nowrap}.navbar-nav{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;list-style:none}.navbar-nav .nav-link{padding-right:0;padding-left:0}.navbar-nav .dropdown-menu{position:static}.navbar-text{padding-top:.5rem;padding-bottom:.5rem}.navbar-collapse{flex-basis:100%;flex-grow:1;align-items:center}.navbar-toggler{padding:.25rem .75rem;font-size:1.25rem;line-height:1;background-color:transparent;border:1px solid transparent;border-radius:.25rem;transition:box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.navbar-toggler{transition:none}}.navbar-toggler:hover{text-decoration:none}.navbar-toggler:focus{text-decoration:none;outline:0;box-shadow:0 0 0 .25rem}.navbar-toggler-icon{display:inline-block;width:1.5em;height:1.5em;vertical-align:middle;background-repeat:no-repeat;background-position:center;background-size:100%}.navbar-nav-scroll{max-height:var(--bs-scroll-height,75vh);overflow-y:auto}@media (min-width:576px){.navbar-expand-sm{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-sm .navbar-nav{flex-direction:row}.navbar-expand-sm .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-sm .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-sm .navbar-nav-scroll{overflow:visible}.navbar-expand-sm .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-sm .navbar-toggler{display:none}.navbar-expand-sm .offcanvas-header{display:none}.navbar-expand-sm .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-sm .offcanvas-bottom,.navbar-expand-sm .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-sm .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:768px){.navbar-expand-md{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-md .navbar-nav{flex-direction:row}.navbar-expand-md .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-md .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-md .navbar-nav-scroll{overflow:visible}.navbar-expand-md .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-md .navbar-toggler{display:none}.navbar-expand-md .offcanvas-header{display:none}.navbar-expand-md .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-md .offcanvas-bottom,.navbar-expand-md .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-md .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:992px){.navbar-expand-lg{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-lg .navbar-nav{flex-direction:row}.navbar-expand-lg .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-lg .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-lg .navbar-nav-scroll{overflow:visible}.navbar-expand-lg .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-lg .navbar-toggler{display:none}.navbar-expand-lg .offcanvas-header{display:none}.navbar-expand-lg .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-lg .offcanvas-bottom,.navbar-expand-lg .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-lg .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1200px){.navbar-expand-xl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xl .navbar-nav{flex-direction:row}.navbar-expand-xl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xl .navbar-nav-scroll{overflow:visible}.navbar-expand-xl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xl .navbar-toggler{display:none}.navbar-expand-xl .offcanvas-header{display:none}.navbar-expand-xl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xl .offcanvas-bottom,.navbar-expand-xl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}@media (min-width:1400px){.navbar-expand-xxl{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand-xxl .navbar-nav{flex-direction:row}.navbar-expand-xxl .navbar-nav .dropdown-menu{position:absolute}.navbar-expand-xxl .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand-xxl .navbar-nav-scroll{overflow:visible}.navbar-expand-xxl .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand-xxl .navbar-toggler{display:none}.navbar-expand-xxl .offcanvas-header{display:none}.navbar-expand-xxl .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand-xxl .offcanvas-bottom,.navbar-expand-xxl .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand-xxl .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}}.navbar-expand{flex-wrap:nowrap;justify-content:flex-start}.navbar-expand .navbar-nav{flex-direction:row}.navbar-expand .navbar-nav .dropdown-menu{position:absolute}.navbar-expand .navbar-nav .nav-link{padding-right:.5rem;padding-left:.5rem}.navbar-expand .navbar-nav-scroll{overflow:visible}.navbar-expand .navbar-collapse{display:flex!important;flex-basis:auto}.navbar-expand .navbar-toggler{display:none}.navbar-expand .offcanvas-header{display:none}.navbar-expand .offcanvas{position:inherit;bottom:0;z-index:1000;flex-grow:1;visibility:visible!important;background-color:transparent;border-right:0;border-left:0;transition:none;transform:none}.navbar-expand .offcanvas-bottom,.navbar-expand .offcanvas-top{height:auto;border-top:0;border-bottom:0}.navbar-expand .offcanvas-body{display:flex;flex-grow:0;padding:0;overflow-y:visible}.navbar-light .navbar-brand{color:rgba(0,0,0,.9)}.navbar-light .navbar-brand:focus,.navbar-light .navbar-brand:hover{color:rgba(0,0,0,.9)}.navbar-light .navbar-nav .nav-link{color:rgba(0,0,0,.55)}.navbar-light .navbar-nav .nav-link:focus,.navbar-light .navbar-nav .nav-link:hover{color:rgba(0,0,0,.7)}.navbar-light .navbar-nav .nav-link.disabled{color:rgba(0,0,0,.3)}.navbar-light .navbar-nav .nav-link.active,.navbar-light .navbar-nav .show>.nav-link{color:rgba(0,0,0,.9)}.navbar-light .navbar-toggler{color:rgba(0,0,0,.55);border-color:rgba(0,0,0,.1)}.navbar-light .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%280, 0, 0, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-light .navbar-text{color:rgba(0,0,0,.55)}.navbar-light .navbar-text a,.navbar-light .navbar-text a:focus,.navbar-light .navbar-text a:hover{color:rgba(0,0,0,.9)}.navbar-dark .navbar-brand{color:#fff}.navbar-dark .navbar-brand:focus,.navbar-dark .navbar-brand:hover{color:#fff}.navbar-dark .navbar-nav .nav-link{color:rgba(255,255,255,.55)}.navbar-dark .navbar-nav .nav-link:focus,.navbar-dark .navbar-nav .nav-link:hover{color:rgba(255,255,255,.75)}.navbar-dark .navbar-nav .nav-link.disabled{color:rgba(255,255,255,.25)}.navbar-dark .navbar-nav .nav-link.active,.navbar-dark .navbar-nav .show>.nav-link{color:#fff}.navbar-dark .navbar-toggler{color:rgba(255,255,255,.55);border-color:rgba(255,255,255,.1)}.navbar-dark .navbar-toggler-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%28255, 255, 255, 0.55%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e")}.navbar-dark .navbar-text{color:rgba(255,255,255,.55)}.navbar-dark .navbar-text a,.navbar-dark .navbar-text a:focus,.navbar-dark .navbar-text a:hover{color:#fff}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card>.list-group{border-top:inherit;border-bottom:inherit}.card>.list-group:first-child{border-top-width:0;border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card>.list-group:last-child{border-bottom-width:0;border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card>.card-header+.list-group,.card>.list-group+.card-footer{border-top:0}.card-body{flex:1 1 auto;padding:1rem 1rem}.card-title{margin-bottom:.5rem}.card-subtitle{margin-top:-.25rem;margin-bottom:0}.card-text:last-child{margin-bottom:0}.card-link+.card-link{margin-left:1rem}.card-header{padding:.5rem 1rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:.5rem 1rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header-tabs{margin-right:-.5rem;margin-bottom:-.5rem;margin-left:-.5rem;border-bottom:0}.card-header-pills{margin-right:-.5rem;margin-left:-.5rem}.card-img-overlay{position:absolute;top:0;right:0;bottom:0;left:0;padding:1rem;border-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom,.card-img-top{width:100%}.card-img,.card-img-top{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.card-img,.card-img-bottom{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.card-group>.card{margin-bottom:.75rem}@media (min-width:576px){.card-group{display:flex;flex-flow:row wrap}.card-group>.card{flex:1 0 0%;margin-bottom:0}.card-group>.card+.card{margin-left:0;border-left:0}.card-group>.card:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.card-group>.card:not(:last-child) .card-header,.card-group>.card:not(:last-child) .card-img-top{border-top-right-radius:0}.card-group>.card:not(:last-child) .card-footer,.card-group>.card:not(:last-child) .card-img-bottom{border-bottom-right-radius:0}.card-group>.card:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.card-group>.card:not(:first-child) .card-header,.card-group>.card:not(:first-child) .card-img-top{border-top-left-radius:0}.card-group>.card:not(:first-child) .card-footer,.card-group>.card:not(:first-child) .card-img-bottom{border-bottom-left-radius:0}}.accordion-button{position:relative;display:flex;align-items:center;width:100%;padding:1rem 1.25rem;font-size:1rem;color:#212529;text-align:left;background-color:#fff;border:0;border-radius:0;overflow-anchor:none;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out,border-radius .15s ease}@media (prefers-reduced-motion:reduce){.accordion-button{transition:none}}.accordion-button:not(.collapsed){color:#0c63e4;background-color:#e7f1ff;box-shadow:inset 0 -1px 0 rgba(0,0,0,.125)}.accordion-button:not(.collapsed)::after{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%230c63e4'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");transform:rotate(-180deg)}.accordion-button::after{flex-shrink:0;width:1.25rem;height:1.25rem;margin-left:auto;content:"";background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23212529'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");background-repeat:no-repeat;background-size:1.25rem;transition:transform .2s ease-in-out}@media (prefers-reduced-motion:reduce){.accordion-button::after{transition:none}}.accordion-button:hover{z-index:2}.accordion-button:focus{z-index:3;border-color:#86b7fe;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.accordion-header{margin-bottom:0}.accordion-item{background-color:#fff;border:1px solid rgba(0,0,0,.125)}.accordion-item:first-of-type{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.accordion-item:first-of-type .accordion-button{border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.accordion-item:not(:first-of-type){border-top:0}.accordion-item:last-of-type{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-item:last-of-type .accordion-button.collapsed{border-bottom-right-radius:calc(.25rem - 1px);border-bottom-left-radius:calc(.25rem - 1px)}.accordion-item:last-of-type .accordion-collapse{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.accordion-body{padding:1rem 1.25rem}.accordion-flush .accordion-collapse{border-width:0}.accordion-flush .accordion-item{border-right:0;border-left:0;border-radius:0}.accordion-flush .accordion-item:first-child{border-top:0}.accordion-flush .accordion-item:last-child{border-bottom:0}.accordion-flush .accordion-item .accordion-button{border-radius:0}.breadcrumb{display:flex;flex-wrap:wrap;padding:0 0;margin-bottom:1rem;list-style:none}.breadcrumb-item+.breadcrumb-item{padding-left:.5rem}.breadcrumb-item+.breadcrumb-item::before{float:left;padding-right:.5rem;color:#6c757d;content:var(--bs-breadcrumb-divider, "/")}.breadcrumb-item.active{color:#6c757d}.pagination{display:flex;padding-left:0;list-style:none}.page-link{position:relative;display:block;color:#0d6efd;text-decoration:none;background-color:#fff;border:1px solid #dee2e6;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.page-link{transition:none}}.page-link:hover{z-index:2;color:#0a58ca;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:3;color:#0a58ca;background-color:#e9ecef;outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25)}.page-item:not(:first-child) .page-link{margin-left:-1px}.page-item.active .page-link{z-index:3;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;background-color:#fff;border-color:#dee2e6}.page-link{padding:.375rem .75rem}.page-item:first-child .page-link{border-top-left-radius:.25rem;border-bottom-left-radius:.25rem}.page-item:last-child .page-link{border-top-right-radius:.25rem;border-bottom-right-radius:.25rem}.pagination-lg .page-link{padding:.75rem 1.5rem;font-size:1.25rem}.pagination-lg .page-item:first-child .page-link{border-top-left-radius:.3rem;border-bottom-left-radius:.3rem}.pagination-lg .page-item:last-child .page-link{border-top-right-radius:.3rem;border-bottom-right-radius:.3rem}.pagination-sm .page-link{padding:.25rem .5rem;font-size:.875rem}.pagination-sm .page-item:first-child .page-link{border-top-left-radius:.2rem;border-bottom-left-radius:.2rem}.pagination-sm .page-item:last-child .page-link{border-top-right-radius:.2rem;border-bottom-right-radius:.2rem}.badge{display:inline-block;padding:.35em .65em;font-size:.75em;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.alert{position:relative;padding:1rem 1rem;margin-bottom:1rem;border:1px solid transparent;border-radius:.25rem}.alert-heading{color:inherit}.alert-link{font-weight:700}.alert-dismissible{padding-right:3rem}.alert-dismissible .btn-close{position:absolute;top:0;right:0;z-index:2;padding:1.25rem 1rem}.alert-primary{color:#084298;background-color:#cfe2ff;border-color:#b6d4fe}.alert-primary .alert-link{color:#06357a}.alert-secondary{color:#41464b;background-color:#e2e3e5;border-color:#d3d6d8}.alert-secondary .alert-link{color:#34383c}.alert-success{color:#0f5132;background-color:#d1e7dd;border-color:#badbcc}.alert-success .alert-link{color:#0c4128}.alert-info{color:#055160;background-color:#cff4fc;border-color:#b6effb}.alert-info .alert-link{color:#04414d}.alert-warning{color:#664d03;background-color:#fff3cd;border-color:#ffecb5}.alert-warning .alert-link{color:#523e02}.alert-danger{color:#842029;background-color:#f8d7da;border-color:#f5c2c7}.alert-danger .alert-link{color:#6a1a21}.alert-light{color:#636464;background-color:#fefefe;border-color:#fdfdfe}.alert-light .alert-link{color:#4f5050}.alert-dark{color:#141619;background-color:#d3d3d4;border-color:#bcbebf}.alert-dark .alert-link{color:#101214}@-webkit-keyframes progress-bar-stripes{0%{background-position-x:1rem}}@keyframes progress-bar-stripes{0%{background-position-x:1rem}}.progress{display:flex;height:1rem;overflow:hidden;font-size:.75rem;background-color:#e9ecef;border-radius:.25rem}.progress-bar{display:flex;flex-direction:column;justify-content:center;overflow:hidden;color:#fff;text-align:center;white-space:nowrap;background-color:#0d6efd;transition:width .6s ease}@media (prefers-reduced-motion:reduce){.progress-bar{transition:none}}.progress-bar-striped{background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-size:1rem 1rem}.progress-bar-animated{-webkit-animation:1s linear infinite progress-bar-stripes;animation:1s linear infinite progress-bar-stripes}@media (prefers-reduced-motion:reduce){.progress-bar-animated{-webkit-animation:none;animation:none}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0;border-radius:.25rem}.list-group-numbered{list-style-type:none;counter-reset:section}.list-group-numbered>li::before{content:counters(section, ".") ". ";counter-increment:section}.list-group-item-action{width:100%;color:#495057;text-align:inherit}.list-group-item-action:focus,.list-group-item-action:hover{z-index:1;color:#495057;text-decoration:none;background-color:#f8f9fa}.list-group-item-action:active{color:#212529;background-color:#e9ecef}.list-group-item{position:relative;display:block;padding:.5rem 1rem;color:#212529;text-decoration:none;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:inherit;border-top-right-radius:inherit}.list-group-item:last-child{border-bottom-right-radius:inherit;border-bottom-left-radius:inherit}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;pointer-events:none;background-color:#fff}.list-group-item.active{z-index:2;color:#fff;background-color:#0d6efd;border-color:#0d6efd}.list-group-item+.list-group-item{border-top-width:0}.list-group-item+.list-group-item.active{margin-top:-1px;border-top-width:1px}.list-group-horizontal{flex-direction:row}.list-group-horizontal>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal>.list-group-item.active{margin-top:0}.list-group-horizontal>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}@media (min-width:576px){.list-group-horizontal-sm{flex-direction:row}.list-group-horizontal-sm>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-sm>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-sm>.list-group-item.active{margin-top:0}.list-group-horizontal-sm>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-sm>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:768px){.list-group-horizontal-md{flex-direction:row}.list-group-horizontal-md>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-md>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-md>.list-group-item.active{margin-top:0}.list-group-horizontal-md>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-md>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:992px){.list-group-horizontal-lg{flex-direction:row}.list-group-horizontal-lg>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-lg>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-lg>.list-group-item.active{margin-top:0}.list-group-horizontal-lg>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-lg>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1200px){.list-group-horizontal-xl{flex-direction:row}.list-group-horizontal-xl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xl>.list-group-item.active{margin-top:0}.list-group-horizontal-xl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}@media (min-width:1400px){.list-group-horizontal-xxl{flex-direction:row}.list-group-horizontal-xxl>.list-group-item:first-child{border-bottom-left-radius:.25rem;border-top-right-radius:0}.list-group-horizontal-xxl>.list-group-item:last-child{border-top-right-radius:.25rem;border-bottom-left-radius:0}.list-group-horizontal-xxl>.list-group-item.active{margin-top:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item{border-top-width:1px;border-left-width:0}.list-group-horizontal-xxl>.list-group-item+.list-group-item.active{margin-left:-1px;border-left-width:1px}}.list-group-flush{border-radius:0}.list-group-flush>.list-group-item{border-width:0 0 1px}.list-group-flush>.list-group-item:last-child{border-bottom-width:0}.list-group-item-primary{color:#084298;background-color:#cfe2ff}.list-group-item-primary.list-group-item-action:focus,.list-group-item-primary.list-group-item-action:hover{color:#084298;background-color:#bacbe6}.list-group-item-primary.list-group-item-action.active{color:#fff;background-color:#084298;border-color:#084298}.list-group-item-secondary{color:#41464b;background-color:#e2e3e5}.list-group-item-secondary.list-group-item-action:focus,.list-group-item-secondary.list-group-item-action:hover{color:#41464b;background-color:#cbccce}.list-group-item-secondary.list-group-item-action.active{color:#fff;background-color:#41464b;border-color:#41464b}.list-group-item-success{color:#0f5132;background-color:#d1e7dd}.list-group-item-success.list-group-item-action:focus,.list-group-item-success.list-group-item-action:hover{color:#0f5132;background-color:#bcd0c7}.list-group-item-success.list-group-item-action.active{color:#fff;background-color:#0f5132;border-color:#0f5132}.list-group-item-info{color:#055160;background-color:#cff4fc}.list-group-item-info.list-group-item-action:focus,.list-group-item-info.list-group-item-action:hover{color:#055160;background-color:#badce3}.list-group-item-info.list-group-item-action.active{color:#fff;background-color:#055160;border-color:#055160}.list-group-item-warning{color:#664d03;background-color:#fff3cd}.list-group-item-warning.list-group-item-action:focus,.list-group-item-warning.list-group-item-action:hover{color:#664d03;background-color:#e6dbb9}.list-group-item-warning.list-group-item-action.active{color:#fff;background-color:#664d03;border-color:#664d03}.list-group-item-danger{color:#842029;background-color:#f8d7da}.list-group-item-danger.list-group-item-action:focus,.list-group-item-danger.list-group-item-action:hover{color:#842029;background-color:#dfc2c4}.list-group-item-danger.list-group-item-action.active{color:#fff;background-color:#842029;border-color:#842029}.list-group-item-light{color:#636464;background-color:#fefefe}.list-group-item-light.list-group-item-action:focus,.list-group-item-light.list-group-item-action:hover{color:#636464;background-color:#e5e5e5}.list-group-item-light.list-group-item-action.active{color:#fff;background-color:#636464;border-color:#636464}.list-group-item-dark{color:#141619;background-color:#d3d3d4}.list-group-item-dark.list-group-item-action:focus,.list-group-item-dark.list-group-item-action:hover{color:#141619;background-color:#bebebf}.list-group-item-dark.list-group-item-action.active{color:#fff;background-color:#141619;border-color:#141619}.btn-close{box-sizing:content-box;width:1em;height:1em;padding:.25em .25em;color:#000;background:transparent url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23000'%3e%3cpath d='M.293.293a1 1 0 011.414 0L8 6.586 14.293.293a1 1 0 111.414 1.414L9.414 8l6.293 6.293a1 1 0 01-1.414 1.414L8 9.414l-6.293 6.293a1 1 0 01-1.414-1.414L6.586 8 .293 1.707a1 1 0 010-1.414z'/%3e%3c/svg%3e") center/1em auto no-repeat;border:0;border-radius:.25rem;opacity:.5}.btn-close:hover{color:#000;text-decoration:none;opacity:.75}.btn-close:focus{outline:0;box-shadow:0 0 0 .25rem rgba(13,110,253,.25);opacity:1}.btn-close.disabled,.btn-close:disabled{pointer-events:none;-webkit-user-select:none;-moz-user-select:none;user-select:none;opacity:.25}.btn-close-white{filter:invert(1) grayscale(100%) brightness(200%)}.toast{width:350px;max-width:100%;font-size:.875rem;pointer-events:auto;background-color:rgba(255,255,255,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .5rem 1rem rgba(0,0,0,.15);border-radius:.25rem}.toast.showing{opacity:0}.toast:not(.show){display:none}.toast-container{width:-webkit-max-content;width:-moz-max-content;width:max-content;max-width:100%;pointer-events:none}.toast-container>:not(:last-child){margin-bottom:.75rem}.toast-header{display:flex;align-items:center;padding:.5rem .75rem;color:#6c757d;background-color:rgba(255,255,255,.85);background-clip:padding-box;border-bottom:1px solid rgba(0,0,0,.05);border-top-left-radius:calc(.25rem - 1px);border-top-right-radius:calc(.25rem - 1px)}.toast-header .btn-close{margin-right:-.375rem;margin-left:.75rem}.toast-body{padding:.75rem;word-wrap:break-word}.modal{position:fixed;top:0;left:0;z-index:1055;display:none;width:100%;height:100%;overflow-x:hidden;overflow-y:auto;outline:0}.modal-dialog{position:relative;width:auto;margin:.5rem;pointer-events:none}.modal.fade .modal-dialog{transition:transform .3s ease-out;transform:translate(0,-50px)}@media (prefers-reduced-motion:reduce){.modal.fade .modal-dialog{transition:none}}.modal.show .modal-dialog{transform:none}.modal.modal-static .modal-dialog{transform:scale(1.02)}.modal-dialog-scrollable{height:calc(100% - 1rem)}.modal-dialog-scrollable .modal-content{max-height:100%;overflow:hidden}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1rem)}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-backdrop{position:fixed;top:0;left:0;z-index:1050;width:100vw;height:100vh;background-color:#000}.modal-backdrop.fade{opacity:0}.modal-backdrop.show{opacity:.5}.modal-header{display:flex;flex-shrink:0;align-items:center;justify-content:space-between;padding:1rem 1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.modal-header .btn-close{padding:.5rem .5rem;margin:-.5rem -.5rem -.5rem auto}.modal-title{margin-bottom:0;line-height:1.5}.modal-body{position:relative;flex:1 1 auto;padding:1rem}.modal-footer{display:flex;flex-wrap:wrap;flex-shrink:0;align-items:center;justify-content:flex-end;padding:.75rem;border-top:1px solid #dee2e6;border-bottom-right-radius:calc(.3rem - 1px);border-bottom-left-radius:calc(.3rem - 1px)}.modal-footer>*{margin:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:1.75rem auto}.modal-dialog-scrollable{height:calc(100% - 3.5rem)}.modal-dialog-centered{min-height:calc(100% - 3.5rem)}.modal-sm{max-width:300px}}@media (min-width:992px){.modal-lg,.modal-xl{max-width:800px}}@media (min-width:1200px){.modal-xl{max-width:1140px}}.modal-fullscreen{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen .modal-header{border-radius:0}.modal-fullscreen .modal-body{overflow-y:auto}.modal-fullscreen .modal-footer{border-radius:0}@media (max-width:575.98px){.modal-fullscreen-sm-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-sm-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-sm-down .modal-header{border-radius:0}.modal-fullscreen-sm-down .modal-body{overflow-y:auto}.modal-fullscreen-sm-down .modal-footer{border-radius:0}}@media (max-width:767.98px){.modal-fullscreen-md-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-md-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-md-down .modal-header{border-radius:0}.modal-fullscreen-md-down .modal-body{overflow-y:auto}.modal-fullscreen-md-down .modal-footer{border-radius:0}}@media (max-width:991.98px){.modal-fullscreen-lg-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-lg-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-lg-down .modal-header{border-radius:0}.modal-fullscreen-lg-down .modal-body{overflow-y:auto}.modal-fullscreen-lg-down .modal-footer{border-radius:0}}@media (max-width:1199.98px){.modal-fullscreen-xl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xl-down .modal-header{border-radius:0}.modal-fullscreen-xl-down .modal-body{overflow-y:auto}.modal-fullscreen-xl-down .modal-footer{border-radius:0}}@media (max-width:1399.98px){.modal-fullscreen-xxl-down{width:100vw;max-width:none;height:100%;margin:0}.modal-fullscreen-xxl-down .modal-content{height:100%;border:0;border-radius:0}.modal-fullscreen-xxl-down .modal-header{border-radius:0}.modal-fullscreen-xxl-down .modal-body{overflow-y:auto}.modal-fullscreen-xxl-down .modal-footer{border-radius:0}}.tooltip{position:absolute;z-index:1080;display:block;margin:0;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;opacity:0}.tooltip.show{opacity:.9}.tooltip .tooltip-arrow{position:absolute;display:block;width:.8rem;height:.4rem}.tooltip .tooltip-arrow::before{position:absolute;content:"";border-color:transparent;border-style:solid}.bs-tooltip-auto[data-popper-placement^=top],.bs-tooltip-top{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow,.bs-tooltip-top .tooltip-arrow{bottom:0}.bs-tooltip-auto[data-popper-placement^=top] .tooltip-arrow::before,.bs-tooltip-top .tooltip-arrow::before{top:-1px;border-width:.4rem .4rem 0;border-top-color:#000}.bs-tooltip-auto[data-popper-placement^=right],.bs-tooltip-end{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow,.bs-tooltip-end .tooltip-arrow{left:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=right] .tooltip-arrow::before,.bs-tooltip-end .tooltip-arrow::before{right:-1px;border-width:.4rem .4rem .4rem 0;border-right-color:#000}.bs-tooltip-auto[data-popper-placement^=bottom],.bs-tooltip-bottom{padding:.4rem 0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow,.bs-tooltip-bottom .tooltip-arrow{top:0}.bs-tooltip-auto[data-popper-placement^=bottom] .tooltip-arrow::before,.bs-tooltip-bottom .tooltip-arrow::before{bottom:-1px;border-width:0 .4rem .4rem;border-bottom-color:#000}.bs-tooltip-auto[data-popper-placement^=left],.bs-tooltip-start{padding:0 .4rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow,.bs-tooltip-start .tooltip-arrow{right:0;width:.4rem;height:.8rem}.bs-tooltip-auto[data-popper-placement^=left] .tooltip-arrow::before,.bs-tooltip-start .tooltip-arrow::before{left:-1px;border-width:.4rem 0 .4rem .4rem;border-left-color:#000}.tooltip-inner{max-width:200px;padding:.25rem .5rem;color:#fff;text-align:center;background-color:#000;border-radius:.25rem}.popover{position:absolute;top:0;left:0;z-index:1070;display:block;max-width:276px;font-family:var(--bs-font-sans-serif);font-style:normal;font-weight:400;line-height:1.5;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;white-space:normal;line-break:auto;font-size:.875rem;word-wrap:break-word;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem}.popover .popover-arrow{position:absolute;display:block;width:1rem;height:.5rem}.popover .popover-arrow::after,.popover .popover-arrow::before{position:absolute;display:block;content:"";border-color:transparent;border-style:solid}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow,.bs-popover-top>.popover-arrow{bottom:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::before,.bs-popover-top>.popover-arrow::before{bottom:0;border-width:.5rem .5rem 0;border-top-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=top]>.popover-arrow::after,.bs-popover-top>.popover-arrow::after{bottom:1px;border-width:.5rem .5rem 0;border-top-color:#fff}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow,.bs-popover-end>.popover-arrow{left:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::before,.bs-popover-end>.popover-arrow::before{left:0;border-width:.5rem .5rem .5rem 0;border-right-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=right]>.popover-arrow::after,.bs-popover-end>.popover-arrow::after{left:1px;border-width:.5rem .5rem .5rem 0;border-right-color:#fff}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow,.bs-popover-bottom>.popover-arrow{top:calc(-.5rem - 1px)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::before,.bs-popover-bottom>.popover-arrow::before{top:0;border-width:0 .5rem .5rem .5rem;border-bottom-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=bottom]>.popover-arrow::after,.bs-popover-bottom>.popover-arrow::after{top:1px;border-width:0 .5rem .5rem .5rem;border-bottom-color:#fff}.bs-popover-auto[data-popper-placement^=bottom] .popover-header::before,.bs-popover-bottom .popover-header::before{position:absolute;top:0;left:50%;display:block;width:1rem;margin-left:-.5rem;content:"";border-bottom:1px solid #f0f0f0}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow,.bs-popover-start>.popover-arrow{right:calc(-.5rem - 1px);width:.5rem;height:1rem}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::before,.bs-popover-start>.popover-arrow::before{right:0;border-width:.5rem 0 .5rem .5rem;border-left-color:rgba(0,0,0,.25)}.bs-popover-auto[data-popper-placement^=left]>.popover-arrow::after,.bs-popover-start>.popover-arrow::after{right:1px;border-width:.5rem 0 .5rem .5rem;border-left-color:#fff}.popover-header{padding:.5rem 1rem;margin-bottom:0;font-size:1rem;background-color:#f0f0f0;border-bottom:1px solid rgba(0,0,0,.2);border-top-left-radius:calc(.3rem - 1px);border-top-right-radius:calc(.3rem - 1px)}.popover-header:empty{display:none}.popover-body{padding:1rem 1rem;color:#212529}.carousel{position:relative}.carousel.pointer-event{touch-action:pan-y}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner::after{display:block;clear:both;content:""}.carousel-item{position:relative;display:none;float:left;width:100%;margin-right:-100%;-webkit-backface-visibility:hidden;backface-visibility:hidden;transition:transform .6s ease-in-out}@media (prefers-reduced-motion:reduce){.carousel-item{transition:none}}.carousel-item-next,.carousel-item-prev,.carousel-item.active{display:block}.active.carousel-item-end,.carousel-item-next:not(.carousel-item-start){transform:translateX(100%)}.active.carousel-item-start,.carousel-item-prev:not(.carousel-item-end){transform:translateX(-100%)}.carousel-fade .carousel-item{opacity:0;transition-property:opacity;transform:none}.carousel-fade .carousel-item-next.carousel-item-start,.carousel-fade .carousel-item-prev.carousel-item-end,.carousel-fade .carousel-item.active{z-index:1;opacity:1}.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{z-index:0;opacity:0;transition:opacity 0s .6s}@media (prefers-reduced-motion:reduce){.carousel-fade .active.carousel-item-end,.carousel-fade .active.carousel-item-start{transition:none}}.carousel-control-next,.carousel-control-prev{position:absolute;top:0;bottom:0;z-index:1;display:flex;align-items:center;justify-content:center;width:15%;padding:0;color:#fff;text-align:center;background:0 0;border:0;opacity:.5;transition:opacity .15s ease}@media (prefers-reduced-motion:reduce){.carousel-control-next,.carousel-control-prev{transition:none}}.carousel-control-next:focus,.carousel-control-next:hover,.carousel-control-prev:focus,.carousel-control-prev:hover{color:#fff;text-decoration:none;outline:0;opacity:.9}.carousel-control-prev{left:0}.carousel-control-next{right:0}.carousel-control-next-icon,.carousel-control-prev-icon{display:inline-block;width:2rem;height:2rem;background-repeat:no-repeat;background-position:50%;background-size:100% 100%}.carousel-control-prev-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L5.707 8l5.647 5.646a.5.5 0 0 1-.708.708l-6-6a.5.5 0 0 1 0-.708l6-6a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e")}.carousel-control-next-icon{background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23fff'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e")}.carousel-indicators{position:absolute;right:0;bottom:0;left:0;z-index:2;display:flex;justify-content:center;padding:0;margin-right:15%;margin-bottom:1rem;margin-left:15%;list-style:none}.carousel-indicators [data-bs-target]{box-sizing:content-box;flex:0 1 auto;width:30px;height:3px;padding:0;margin-right:3px;margin-left:3px;text-indent:-999px;cursor:pointer;background-color:#fff;background-clip:padding-box;border:0;border-top:10px solid transparent;border-bottom:10px solid transparent;opacity:.5;transition:opacity .6s ease}@media (prefers-reduced-motion:reduce){.carousel-indicators [data-bs-target]{transition:none}}.carousel-indicators .active{opacity:1}.carousel-caption{position:absolute;right:15%;bottom:1.25rem;left:15%;padding-top:1.25rem;padding-bottom:1.25rem;color:#fff;text-align:center}.carousel-dark .carousel-control-next-icon,.carousel-dark .carousel-control-prev-icon{filter:invert(1) grayscale(100)}.carousel-dark .carousel-indicators [data-bs-target]{background-color:#000}.carousel-dark .carousel-caption{color:#000}@-webkit-keyframes spinner-border{to{transform:rotate(360deg)}}@keyframes spinner-border{to{transform:rotate(360deg)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;border:.25em solid currentColor;border-right-color:transparent;border-radius:50%;-webkit-animation:.75s linear infinite spinner-border;animation:.75s linear infinite spinner-border}.spinner-border-sm{width:1rem;height:1rem;border-width:.2em}@-webkit-keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1;transform:none}}.spinner-grow{display:inline-block;width:2rem;height:2rem;vertical-align:-.125em;background-color:currentColor;border-radius:50%;opacity:0;-webkit-animation:.75s linear infinite spinner-grow;animation:.75s linear infinite spinner-grow}.spinner-grow-sm{width:1rem;height:1rem}@media (prefers-reduced-motion:reduce){.spinner-border,.spinner-grow{-webkit-animation-duration:1.5s;animation-duration:1.5s}}.offcanvas{position:fixed;bottom:0;z-index:1045;display:flex;flex-direction:column;max-width:100%;visibility:hidden;background-color:#fff;background-clip:padding-box;outline:0;transition:transform .3s ease-in-out}@media (prefers-reduced-motion:reduce){.offcanvas{transition:none}}.offcanvas-backdrop{position:fixed;top:0;left:0;z-index:1040;width:100vw;height:100vh;background-color:#000}.offcanvas-backdrop.fade{opacity:0}.offcanvas-backdrop.show{opacity:.5}.offcanvas-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1rem}.offcanvas-header .btn-close{padding:.5rem .5rem;margin-top:-.5rem;margin-right:-.5rem;margin-bottom:-.5rem}.offcanvas-title{margin-bottom:0;line-height:1.5}.offcanvas-body{flex-grow:1;padding:1rem 1rem;overflow-y:auto}.offcanvas-start{top:0;left:0;width:400px;border-right:1px solid rgba(0,0,0,.2);transform:translateX(-100%)}.offcanvas-end{top:0;right:0;width:400px;border-left:1px solid rgba(0,0,0,.2);transform:translateX(100%)}.offcanvas-top{top:0;right:0;left:0;height:30vh;max-height:100%;border-bottom:1px solid rgba(0,0,0,.2);transform:translateY(-100%)}.offcanvas-bottom{right:0;left:0;height:30vh;max-height:100%;border-top:1px solid rgba(0,0,0,.2);transform:translateY(100%)}.offcanvas.show{transform:none}.placeholder{display:inline-block;min-height:1em;vertical-align:middle;cursor:wait;background-color:currentColor;opacity:.5}.placeholder.btn::before{display:inline-block;content:""}.placeholder-xs{min-height:.6em}.placeholder-sm{min-height:.8em}.placeholder-lg{min-height:1.2em}.placeholder-glow .placeholder{-webkit-animation:placeholder-glow 2s ease-in-out infinite;animation:placeholder-glow 2s ease-in-out infinite}@-webkit-keyframes placeholder-glow{50%{opacity:.2}}@keyframes placeholder-glow{50%{opacity:.2}}.placeholder-wave{-webkit-mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);mask-image:linear-gradient(130deg,#000 55%,rgba(0,0,0,0.8) 75%,#000 95%);-webkit-mask-size:200% 100%;mask-size:200% 100%;-webkit-animation:placeholder-wave 2s linear infinite;animation:placeholder-wave 2s linear infinite}@-webkit-keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}@keyframes placeholder-wave{100%{-webkit-mask-position:-200% 0%;mask-position:-200% 0%}}.clearfix::after{display:block;clear:both;content:""}.link-primary{color:#0d6efd}.link-primary:focus,.link-primary:hover{color:#0a58ca}.link-secondary{color:#6c757d}.link-secondary:focus,.link-secondary:hover{color:#565e64}.link-success{color:#198754}.link-success:focus,.link-success:hover{color:#146c43}.link-info{color:#0dcaf0}.link-info:focus,.link-info:hover{color:#3dd5f3}.link-warning{color:#ffc107}.link-warning:focus,.link-warning:hover{color:#ffcd39}.link-danger{color:#dc3545}.link-danger:focus,.link-danger:hover{color:#b02a37}.link-light{color:#f8f9fa}.link-light:focus,.link-light:hover{color:#f9fafb}.link-dark{color:#212529}.link-dark:focus,.link-dark:hover{color:#1a1e21}.ratio{position:relative;width:100%}.ratio::before{display:block;padding-top:var(--bs-aspect-ratio);content:""}.ratio>*{position:absolute;top:0;left:0;width:100%;height:100%}.ratio-1x1{--bs-aspect-ratio:100%}.ratio-4x3{--bs-aspect-ratio:calc(3 / 4 * 100%)}.ratio-16x9{--bs-aspect-ratio:calc(9 / 16 * 100%)}.ratio-21x9{--bs-aspect-ratio:calc(9 / 21 * 100%)}.fixed-top{position:fixed;top:0;right:0;left:0;z-index:1030}.fixed-bottom{position:fixed;right:0;bottom:0;left:0;z-index:1030}.sticky-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}@media (min-width:576px){.sticky-sm-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:768px){.sticky-md-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:992px){.sticky-lg-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1200px){.sticky-xl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}@media (min-width:1400px){.sticky-xxl-top{position:-webkit-sticky;position:sticky;top:0;z-index:1020}}.hstack{display:flex;flex-direction:row;align-items:center;align-self:stretch}.vstack{display:flex;flex:1 1 auto;flex-direction:column;align-self:stretch}.visually-hidden,.visually-hidden-focusable:not(:focus):not(:focus-within){position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.stretched-link::after{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;content:""}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vr{display:inline-block;align-self:stretch;width:1px;min-height:1em;background-color:currentColor;opacity:.25}.align-baseline{vertical-align:baseline!important}.align-top{vertical-align:top!important}.align-middle{vertical-align:middle!important}.align-bottom{vertical-align:bottom!important}.align-text-bottom{vertical-align:text-bottom!important}.align-text-top{vertical-align:text-top!important}.float-start{float:left!important}.float-end{float:right!important}.float-none{float:none!important}.opacity-0{opacity:0!important}.opacity-25{opacity:.25!important}.opacity-50{opacity:.5!important}.opacity-75{opacity:.75!important}.opacity-100{opacity:1!important}.overflow-auto{overflow:auto!important}.overflow-hidden{overflow:hidden!important}.overflow-visible{overflow:visible!important}.overflow-scroll{overflow:scroll!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-grid{display:grid!important}.d-table{display:table!important}.d-table-row{display:table-row!important}.d-table-cell{display:table-cell!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.d-none{display:none!important}.shadow{box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important}.shadow-sm{box-shadow:0 .125rem .25rem rgba(0,0,0,.075)!important}.shadow-lg{box-shadow:0 1rem 3rem rgba(0,0,0,.175)!important}.shadow-none{box-shadow:none!important}.position-static{position:static!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.position-fixed{position:fixed!important}.position-sticky{position:-webkit-sticky!important;position:sticky!important}.top-0{top:0!important}.top-50{top:50%!important}.top-100{top:100%!important}.bottom-0{bottom:0!important}.bottom-50{bottom:50%!important}.bottom-100{bottom:100%!important}.start-0{left:0!important}.start-50{left:50%!important}.start-100{left:100%!important}.end-0{right:0!important}.end-50{right:50%!important}.end-100{right:100%!important}.translate-middle{transform:translate(-50%,-50%)!important}.translate-middle-x{transform:translateX(-50%)!important}.translate-middle-y{transform:translateY(-50%)!important}.border{border:1px solid #dee2e6!important}.border-0{border:0!important}.border-top{border-top:1px solid #dee2e6!important}.border-top-0{border-top:0!important}.border-end{border-right:1px solid #dee2e6!important}.border-end-0{border-right:0!important}.border-bottom{border-bottom:1px solid #dee2e6!important}.border-bottom-0{border-bottom:0!important}.border-start{border-left:1px solid #dee2e6!important}.border-start-0{border-left:0!important}.border-primary{border-color:#0d6efd!important}.border-secondary{border-color:#6c757d!important}.border-success{border-color:#198754!important}.border-info{border-color:#0dcaf0!important}.border-warning{border-color:#ffc107!important}.border-danger{border-color:#dc3545!important}.border-light{border-color:#f8f9fa!important}.border-dark{border-color:#212529!important}.border-white{border-color:#fff!important}.border-1{border-width:1px!important}.border-2{border-width:2px!important}.border-3{border-width:3px!important}.border-4{border-width:4px!important}.border-5{border-width:5px!important}.w-25{width:25%!important}.w-50{width:50%!important}.w-75{width:75%!important}.w-100{width:100%!important}.w-auto{width:auto!important}.mw-100{max-width:100%!important}.vw-100{width:100vw!important}.min-vw-100{min-width:100vw!important}.h-25{height:25%!important}.h-50{height:50%!important}.h-75{height:75%!important}.h-100{height:100%!important}.h-auto{height:auto!important}.mh-100{max-height:100%!important}.vh-100{height:100vh!important}.min-vh-100{min-height:100vh!important}.flex-fill{flex:1 1 auto!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.flex-row-reverse{flex-direction:row-reverse!important}.flex-column-reverse{flex-direction:column-reverse!important}.flex-grow-0{flex-grow:0!important}.flex-grow-1{flex-grow:1!important}.flex-shrink-0{flex-shrink:0!important}.flex-shrink-1{flex-shrink:1!important}.flex-wrap{flex-wrap:wrap!important}.flex-nowrap{flex-wrap:nowrap!important}.flex-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-0{gap:0!important}.gap-1{gap:.25rem!important}.gap-2{gap:.5rem!important}.gap-3{gap:1rem!important}.gap-4{gap:1.5rem!important}.gap-5{gap:3rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.justify-content-around{justify-content:space-around!important}.justify-content-evenly{justify-content:space-evenly!important}.align-items-start{align-items:flex-start!important}.align-items-end{align-items:flex-end!important}.align-items-center{align-items:center!important}.align-items-baseline{align-items:baseline!important}.align-items-stretch{align-items:stretch!important}.align-content-start{align-content:flex-start!important}.align-content-end{align-content:flex-end!important}.align-content-center{align-content:center!important}.align-content-between{align-content:space-between!important}.align-content-around{align-content:space-around!important}.align-content-stretch{align-content:stretch!important}.align-self-auto{align-self:auto!important}.align-self-start{align-self:flex-start!important}.align-self-end{align-self:flex-end!important}.align-self-center{align-self:center!important}.align-self-baseline{align-self:baseline!important}.align-self-stretch{align-self:stretch!important}.order-first{order:-1!important}.order-0{order:0!important}.order-1{order:1!important}.order-2{order:2!important}.order-3{order:3!important}.order-4{order:4!important}.order-5{order:5!important}.order-last{order:6!important}.m-0{margin:0!important}.m-1{margin:.25rem!important}.m-2{margin:.5rem!important}.m-3{margin:1rem!important}.m-4{margin:1.5rem!important}.m-5{margin:3rem!important}.m-auto{margin:auto!important}.mx-0{margin-right:0!important;margin-left:0!important}.mx-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-5{margin-right:3rem!important;margin-left:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.my-0{margin-top:0!important;margin-bottom:0!important}.my-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-0{margin-top:0!important}.mt-1{margin-top:.25rem!important}.mt-2{margin-top:.5rem!important}.mt-3{margin-top:1rem!important}.mt-4{margin-top:1.5rem!important}.mt-5{margin-top:3rem!important}.mt-auto{margin-top:auto!important}.me-0{margin-right:0!important}.me-1{margin-right:.25rem!important}.me-2{margin-right:.5rem!important}.me-3{margin-right:1rem!important}.me-4{margin-right:1.5rem!important}.me-5{margin-right:3rem!important}.me-auto{margin-right:auto!important}.mb-0{margin-bottom:0!important}.mb-1{margin-bottom:.25rem!important}.mb-2{margin-bottom:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.mb-auto{margin-bottom:auto!important}.ms-0{margin-left:0!important}.ms-1{margin-left:.25rem!important}.ms-2{margin-left:.5rem!important}.ms-3{margin-left:1rem!important}.ms-4{margin-left:1.5rem!important}.ms-5{margin-left:3rem!important}.ms-auto{margin-left:auto!important}.p-0{padding:0!important}.p-1{padding:.25rem!important}.p-2{padding:.5rem!important}.p-3{padding:1rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.px-0{padding-right:0!important;padding-left:0!important}.px-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-0{padding-top:0!important}.pt-1{padding-top:.25rem!important}.pt-2{padding-top:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pt-5{padding-top:3rem!important}.pe-0{padding-right:0!important}.pe-1{padding-right:.25rem!important}.pe-2{padding-right:.5rem!important}.pe-3{padding-right:1rem!important}.pe-4{padding-right:1.5rem!important}.pe-5{padding-right:3rem!important}.pb-0{padding-bottom:0!important}.pb-1{padding-bottom:.25rem!important}.pb-2{padding-bottom:.5rem!important}.pb-3{padding-bottom:1rem!important}.pb-4{padding-bottom:1.5rem!important}.pb-5{padding-bottom:3rem!important}.ps-0{padding-left:0!important}.ps-1{padding-left:.25rem!important}.ps-2{padding-left:.5rem!important}.ps-3{padding-left:1rem!important}.ps-4{padding-left:1.5rem!important}.ps-5{padding-left:3rem!important}.font-monospace{font-family:var(--bs-font-monospace)!important}.fs-1{font-size:calc(1.375rem + 1.5vw)!important}.fs-2{font-size:calc(1.325rem + .9vw)!important}.fs-3{font-size:calc(1.3rem + .6vw)!important}.fs-4{font-size:calc(1.275rem + .3vw)!important}.fs-5{font-size:1.25rem!important}.fs-6{font-size:1rem!important}.fst-italic{font-style:italic!important}.fst-normal{font-style:normal!important}.fw-light{font-weight:300!important}.fw-lighter{font-weight:lighter!important}.fw-normal{font-weight:400!important}.fw-bold{font-weight:700!important}.fw-bolder{font-weight:bolder!important}.lh-1{line-height:1!important}.lh-sm{line-height:1.25!important}.lh-base{line-height:1.5!important}.lh-lg{line-height:2!important}.text-start{text-align:left!important}.text-end{text-align:right!important}.text-center{text-align:center!important}.text-decoration-none{text-decoration:none!important}.text-decoration-underline{text-decoration:underline!important}.text-decoration-line-through{text-decoration:line-through!important}.text-lowercase{text-transform:lowercase!important}.text-uppercase{text-transform:uppercase!important}.text-capitalize{text-transform:capitalize!important}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-break{word-wrap:break-word!important;word-break:break-word!important}.text-primary{--bs-text-opacity:1;color:rgba(var(--bs-primary-rgb),var(--bs-text-opacity))!important}.text-secondary{--bs-text-opacity:1;color:rgba(var(--bs-secondary-rgb),var(--bs-text-opacity))!important}.text-success{--bs-text-opacity:1;color:rgba(var(--bs-success-rgb),var(--bs-text-opacity))!important}.text-info{--bs-text-opacity:1;color:rgba(var(--bs-info-rgb),var(--bs-text-opacity))!important}.text-warning{--bs-text-opacity:1;color:rgba(var(--bs-warning-rgb),var(--bs-text-opacity))!important}.text-danger{--bs-text-opacity:1;color:rgba(var(--bs-danger-rgb),var(--bs-text-opacity))!important}.text-light{--bs-text-opacity:1;color:rgba(var(--bs-light-rgb),var(--bs-text-opacity))!important}.text-dark{--bs-text-opacity:1;color:rgba(var(--bs-dark-rgb),var(--bs-text-opacity))!important}.text-black{--bs-text-opacity:1;color:rgba(var(--bs-black-rgb),var(--bs-text-opacity))!important}.text-white{--bs-text-opacity:1;color:rgba(var(--bs-white-rgb),var(--bs-text-opacity))!important}.text-body{--bs-text-opacity:1;color:rgba(var(--bs-body-rgb),var(--bs-text-opacity))!important}.text-muted{--bs-text-opacity:1;color:#6c757d!important}.text-black-50{--bs-text-opacity:1;color:rgba(0,0,0,.5)!important}.text-white-50{--bs-text-opacity:1;color:rgba(255,255,255,.5)!important}.text-reset{--bs-text-opacity:1;color:inherit!important}.text-opacity-25{--bs-text-opacity:0.25}.text-opacity-50{--bs-text-opacity:0.5}.text-opacity-75{--bs-text-opacity:0.75}.text-opacity-100{--bs-text-opacity:1}.bg-primary{--bs-bg-opacity:1;background-color:rgba(var(--bs-primary-rgb),var(--bs-bg-opacity))!important}.bg-secondary{--bs-bg-opacity:1;background-color:rgba(var(--bs-secondary-rgb),var(--bs-bg-opacity))!important}.bg-success{--bs-bg-opacity:1;background-color:rgba(var(--bs-success-rgb),var(--bs-bg-opacity))!important}.bg-info{--bs-bg-opacity:1;background-color:rgba(var(--bs-info-rgb),var(--bs-bg-opacity))!important}.bg-warning{--bs-bg-opacity:1;background-color:rgba(var(--bs-warning-rgb),var(--bs-bg-opacity))!important}.bg-danger{--bs-bg-opacity:1;background-color:rgba(var(--bs-danger-rgb),var(--bs-bg-opacity))!important}.bg-light{--bs-bg-opacity:1;background-color:rgba(var(--bs-light-rgb),var(--bs-bg-opacity))!important}.bg-dark{--bs-bg-opacity:1;background-color:rgba(var(--bs-dark-rgb),var(--bs-bg-opacity))!important}.bg-black{--bs-bg-opacity:1;background-color:rgba(var(--bs-black-rgb),var(--bs-bg-opacity))!important}.bg-white{--bs-bg-opacity:1;background-color:rgba(var(--bs-white-rgb),var(--bs-bg-opacity))!important}.bg-body{--bs-bg-opacity:1;background-color:rgba(var(--bs-body-rgb),var(--bs-bg-opacity))!important}.bg-transparent{--bs-bg-opacity:1;background-color:transparent!important}.bg-opacity-10{--bs-bg-opacity:0.1}.bg-opacity-25{--bs-bg-opacity:0.25}.bg-opacity-50{--bs-bg-opacity:0.5}.bg-opacity-75{--bs-bg-opacity:0.75}.bg-opacity-100{--bs-bg-opacity:1}.bg-gradient{background-image:var(--bs-gradient)!important}.user-select-all{-webkit-user-select:all!important;-moz-user-select:all!important;user-select:all!important}.user-select-auto{-webkit-user-select:auto!important;-moz-user-select:auto!important;user-select:auto!important}.user-select-none{-webkit-user-select:none!important;-moz-user-select:none!important;user-select:none!important}.pe-none{pointer-events:none!important}.pe-auto{pointer-events:auto!important}.rounded{border-radius:.25rem!important}.rounded-0{border-radius:0!important}.rounded-1{border-radius:.2rem!important}.rounded-2{border-radius:.25rem!important}.rounded-3{border-radius:.3rem!important}.rounded-circle{border-radius:50%!important}.rounded-pill{border-radius:50rem!important}.rounded-top{border-top-left-radius:.25rem!important;border-top-right-radius:.25rem!important}.rounded-end{border-top-right-radius:.25rem!important;border-bottom-right-radius:.25rem!important}.rounded-bottom{border-bottom-right-radius:.25rem!important;border-bottom-left-radius:.25rem!important}.rounded-start{border-bottom-left-radius:.25rem!important;border-top-left-radius:.25rem!important}.visible{visibility:visible!important}.invisible{visibility:hidden!important}@media (min-width:576px){.float-sm-start{float:left!important}.float-sm-end{float:right!important}.float-sm-none{float:none!important}.d-sm-inline{display:inline!important}.d-sm-inline-block{display:inline-block!important}.d-sm-block{display:block!important}.d-sm-grid{display:grid!important}.d-sm-table{display:table!important}.d-sm-table-row{display:table-row!important}.d-sm-table-cell{display:table-cell!important}.d-sm-flex{display:flex!important}.d-sm-inline-flex{display:inline-flex!important}.d-sm-none{display:none!important}.flex-sm-fill{flex:1 1 auto!important}.flex-sm-row{flex-direction:row!important}.flex-sm-column{flex-direction:column!important}.flex-sm-row-reverse{flex-direction:row-reverse!important}.flex-sm-column-reverse{flex-direction:column-reverse!important}.flex-sm-grow-0{flex-grow:0!important}.flex-sm-grow-1{flex-grow:1!important}.flex-sm-shrink-0{flex-shrink:0!important}.flex-sm-shrink-1{flex-shrink:1!important}.flex-sm-wrap{flex-wrap:wrap!important}.flex-sm-nowrap{flex-wrap:nowrap!important}.flex-sm-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-sm-0{gap:0!important}.gap-sm-1{gap:.25rem!important}.gap-sm-2{gap:.5rem!important}.gap-sm-3{gap:1rem!important}.gap-sm-4{gap:1.5rem!important}.gap-sm-5{gap:3rem!important}.justify-content-sm-start{justify-content:flex-start!important}.justify-content-sm-end{justify-content:flex-end!important}.justify-content-sm-center{justify-content:center!important}.justify-content-sm-between{justify-content:space-between!important}.justify-content-sm-around{justify-content:space-around!important}.justify-content-sm-evenly{justify-content:space-evenly!important}.align-items-sm-start{align-items:flex-start!important}.align-items-sm-end{align-items:flex-end!important}.align-items-sm-center{align-items:center!important}.align-items-sm-baseline{align-items:baseline!important}.align-items-sm-stretch{align-items:stretch!important}.align-content-sm-start{align-content:flex-start!important}.align-content-sm-end{align-content:flex-end!important}.align-content-sm-center{align-content:center!important}.align-content-sm-between{align-content:space-between!important}.align-content-sm-around{align-content:space-around!important}.align-content-sm-stretch{align-content:stretch!important}.align-self-sm-auto{align-self:auto!important}.align-self-sm-start{align-self:flex-start!important}.align-self-sm-end{align-self:flex-end!important}.align-self-sm-center{align-self:center!important}.align-self-sm-baseline{align-self:baseline!important}.align-self-sm-stretch{align-self:stretch!important}.order-sm-first{order:-1!important}.order-sm-0{order:0!important}.order-sm-1{order:1!important}.order-sm-2{order:2!important}.order-sm-3{order:3!important}.order-sm-4{order:4!important}.order-sm-5{order:5!important}.order-sm-last{order:6!important}.m-sm-0{margin:0!important}.m-sm-1{margin:.25rem!important}.m-sm-2{margin:.5rem!important}.m-sm-3{margin:1rem!important}.m-sm-4{margin:1.5rem!important}.m-sm-5{margin:3rem!important}.m-sm-auto{margin:auto!important}.mx-sm-0{margin-right:0!important;margin-left:0!important}.mx-sm-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-sm-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-sm-3{margin-right:1rem!important;margin-left:1rem!important}.mx-sm-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-sm-5{margin-right:3rem!important;margin-left:3rem!important}.mx-sm-auto{margin-right:auto!important;margin-left:auto!important}.my-sm-0{margin-top:0!important;margin-bottom:0!important}.my-sm-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-sm-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-sm-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-sm-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-sm-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-sm-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-sm-0{margin-top:0!important}.mt-sm-1{margin-top:.25rem!important}.mt-sm-2{margin-top:.5rem!important}.mt-sm-3{margin-top:1rem!important}.mt-sm-4{margin-top:1.5rem!important}.mt-sm-5{margin-top:3rem!important}.mt-sm-auto{margin-top:auto!important}.me-sm-0{margin-right:0!important}.me-sm-1{margin-right:.25rem!important}.me-sm-2{margin-right:.5rem!important}.me-sm-3{margin-right:1rem!important}.me-sm-4{margin-right:1.5rem!important}.me-sm-5{margin-right:3rem!important}.me-sm-auto{margin-right:auto!important}.mb-sm-0{margin-bottom:0!important}.mb-sm-1{margin-bottom:.25rem!important}.mb-sm-2{margin-bottom:.5rem!important}.mb-sm-3{margin-bottom:1rem!important}.mb-sm-4{margin-bottom:1.5rem!important}.mb-sm-5{margin-bottom:3rem!important}.mb-sm-auto{margin-bottom:auto!important}.ms-sm-0{margin-left:0!important}.ms-sm-1{margin-left:.25rem!important}.ms-sm-2{margin-left:.5rem!important}.ms-sm-3{margin-left:1rem!important}.ms-sm-4{margin-left:1.5rem!important}.ms-sm-5{margin-left:3rem!important}.ms-sm-auto{margin-left:auto!important}.p-sm-0{padding:0!important}.p-sm-1{padding:.25rem!important}.p-sm-2{padding:.5rem!important}.p-sm-3{padding:1rem!important}.p-sm-4{padding:1.5rem!important}.p-sm-5{padding:3rem!important}.px-sm-0{padding-right:0!important;padding-left:0!important}.px-sm-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-sm-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-sm-3{padding-right:1rem!important;padding-left:1rem!important}.px-sm-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-sm-5{padding-right:3rem!important;padding-left:3rem!important}.py-sm-0{padding-top:0!important;padding-bottom:0!important}.py-sm-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-sm-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-sm-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-sm-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-sm-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-sm-0{padding-top:0!important}.pt-sm-1{padding-top:.25rem!important}.pt-sm-2{padding-top:.5rem!important}.pt-sm-3{padding-top:1rem!important}.pt-sm-4{padding-top:1.5rem!important}.pt-sm-5{padding-top:3rem!important}.pe-sm-0{padding-right:0!important}.pe-sm-1{padding-right:.25rem!important}.pe-sm-2{padding-right:.5rem!important}.pe-sm-3{padding-right:1rem!important}.pe-sm-4{padding-right:1.5rem!important}.pe-sm-5{padding-right:3rem!important}.pb-sm-0{padding-bottom:0!important}.pb-sm-1{padding-bottom:.25rem!important}.pb-sm-2{padding-bottom:.5rem!important}.pb-sm-3{padding-bottom:1rem!important}.pb-sm-4{padding-bottom:1.5rem!important}.pb-sm-5{padding-bottom:3rem!important}.ps-sm-0{padding-left:0!important}.ps-sm-1{padding-left:.25rem!important}.ps-sm-2{padding-left:.5rem!important}.ps-sm-3{padding-left:1rem!important}.ps-sm-4{padding-left:1.5rem!important}.ps-sm-5{padding-left:3rem!important}.text-sm-start{text-align:left!important}.text-sm-end{text-align:right!important}.text-sm-center{text-align:center!important}}@media (min-width:768px){.float-md-start{float:left!important}.float-md-end{float:right!important}.float-md-none{float:none!important}.d-md-inline{display:inline!important}.d-md-inline-block{display:inline-block!important}.d-md-block{display:block!important}.d-md-grid{display:grid!important}.d-md-table{display:table!important}.d-md-table-row{display:table-row!important}.d-md-table-cell{display:table-cell!important}.d-md-flex{display:flex!important}.d-md-inline-flex{display:inline-flex!important}.d-md-none{display:none!important}.flex-md-fill{flex:1 1 auto!important}.flex-md-row{flex-direction:row!important}.flex-md-column{flex-direction:column!important}.flex-md-row-reverse{flex-direction:row-reverse!important}.flex-md-column-reverse{flex-direction:column-reverse!important}.flex-md-grow-0{flex-grow:0!important}.flex-md-grow-1{flex-grow:1!important}.flex-md-shrink-0{flex-shrink:0!important}.flex-md-shrink-1{flex-shrink:1!important}.flex-md-wrap{flex-wrap:wrap!important}.flex-md-nowrap{flex-wrap:nowrap!important}.flex-md-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-md-0{gap:0!important}.gap-md-1{gap:.25rem!important}.gap-md-2{gap:.5rem!important}.gap-md-3{gap:1rem!important}.gap-md-4{gap:1.5rem!important}.gap-md-5{gap:3rem!important}.justify-content-md-start{justify-content:flex-start!important}.justify-content-md-end{justify-content:flex-end!important}.justify-content-md-center{justify-content:center!important}.justify-content-md-between{justify-content:space-between!important}.justify-content-md-around{justify-content:space-around!important}.justify-content-md-evenly{justify-content:space-evenly!important}.align-items-md-start{align-items:flex-start!important}.align-items-md-end{align-items:flex-end!important}.align-items-md-center{align-items:center!important}.align-items-md-baseline{align-items:baseline!important}.align-items-md-stretch{align-items:stretch!important}.align-content-md-start{align-content:flex-start!important}.align-content-md-end{align-content:flex-end!important}.align-content-md-center{align-content:center!important}.align-content-md-between{align-content:space-between!important}.align-content-md-around{align-content:space-around!important}.align-content-md-stretch{align-content:stretch!important}.align-self-md-auto{align-self:auto!important}.align-self-md-start{align-self:flex-start!important}.align-self-md-end{align-self:flex-end!important}.align-self-md-center{align-self:center!important}.align-self-md-baseline{align-self:baseline!important}.align-self-md-stretch{align-self:stretch!important}.order-md-first{order:-1!important}.order-md-0{order:0!important}.order-md-1{order:1!important}.order-md-2{order:2!important}.order-md-3{order:3!important}.order-md-4{order:4!important}.order-md-5{order:5!important}.order-md-last{order:6!important}.m-md-0{margin:0!important}.m-md-1{margin:.25rem!important}.m-md-2{margin:.5rem!important}.m-md-3{margin:1rem!important}.m-md-4{margin:1.5rem!important}.m-md-5{margin:3rem!important}.m-md-auto{margin:auto!important}.mx-md-0{margin-right:0!important;margin-left:0!important}.mx-md-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-md-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-md-3{margin-right:1rem!important;margin-left:1rem!important}.mx-md-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-md-5{margin-right:3rem!important;margin-left:3rem!important}.mx-md-auto{margin-right:auto!important;margin-left:auto!important}.my-md-0{margin-top:0!important;margin-bottom:0!important}.my-md-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-md-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-md-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-md-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-md-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-md-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-md-0{margin-top:0!important}.mt-md-1{margin-top:.25rem!important}.mt-md-2{margin-top:.5rem!important}.mt-md-3{margin-top:1rem!important}.mt-md-4{margin-top:1.5rem!important}.mt-md-5{margin-top:3rem!important}.mt-md-auto{margin-top:auto!important}.me-md-0{margin-right:0!important}.me-md-1{margin-right:.25rem!important}.me-md-2{margin-right:.5rem!important}.me-md-3{margin-right:1rem!important}.me-md-4{margin-right:1.5rem!important}.me-md-5{margin-right:3rem!important}.me-md-auto{margin-right:auto!important}.mb-md-0{margin-bottom:0!important}.mb-md-1{margin-bottom:.25rem!important}.mb-md-2{margin-bottom:.5rem!important}.mb-md-3{margin-bottom:1rem!important}.mb-md-4{margin-bottom:1.5rem!important}.mb-md-5{margin-bottom:3rem!important}.mb-md-auto{margin-bottom:auto!important}.ms-md-0{margin-left:0!important}.ms-md-1{margin-left:.25rem!important}.ms-md-2{margin-left:.5rem!important}.ms-md-3{margin-left:1rem!important}.ms-md-4{margin-left:1.5rem!important}.ms-md-5{margin-left:3rem!important}.ms-md-auto{margin-left:auto!important}.p-md-0{padding:0!important}.p-md-1{padding:.25rem!important}.p-md-2{padding:.5rem!important}.p-md-3{padding:1rem!important}.p-md-4{padding:1.5rem!important}.p-md-5{padding:3rem!important}.px-md-0{padding-right:0!important;padding-left:0!important}.px-md-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-md-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-md-3{padding-right:1rem!important;padding-left:1rem!important}.px-md-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-md-5{padding-right:3rem!important;padding-left:3rem!important}.py-md-0{padding-top:0!important;padding-bottom:0!important}.py-md-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-md-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-md-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-md-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-md-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-md-0{padding-top:0!important}.pt-md-1{padding-top:.25rem!important}.pt-md-2{padding-top:.5rem!important}.pt-md-3{padding-top:1rem!important}.pt-md-4{padding-top:1.5rem!important}.pt-md-5{padding-top:3rem!important}.pe-md-0{padding-right:0!important}.pe-md-1{padding-right:.25rem!important}.pe-md-2{padding-right:.5rem!important}.pe-md-3{padding-right:1rem!important}.pe-md-4{padding-right:1.5rem!important}.pe-md-5{padding-right:3rem!important}.pb-md-0{padding-bottom:0!important}.pb-md-1{padding-bottom:.25rem!important}.pb-md-2{padding-bottom:.5rem!important}.pb-md-3{padding-bottom:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}.pb-md-5{padding-bottom:3rem!important}.ps-md-0{padding-left:0!important}.ps-md-1{padding-left:.25rem!important}.ps-md-2{padding-left:.5rem!important}.ps-md-3{padding-left:1rem!important}.ps-md-4{padding-left:1.5rem!important}.ps-md-5{padding-left:3rem!important}.text-md-start{text-align:left!important}.text-md-end{text-align:right!important}.text-md-center{text-align:center!important}}@media (min-width:992px){.float-lg-start{float:left!important}.float-lg-end{float:right!important}.float-lg-none{float:none!important}.d-lg-inline{display:inline!important}.d-lg-inline-block{display:inline-block!important}.d-lg-block{display:block!important}.d-lg-grid{display:grid!important}.d-lg-table{display:table!important}.d-lg-table-row{display:table-row!important}.d-lg-table-cell{display:table-cell!important}.d-lg-flex{display:flex!important}.d-lg-inline-flex{display:inline-flex!important}.d-lg-none{display:none!important}.flex-lg-fill{flex:1 1 auto!important}.flex-lg-row{flex-direction:row!important}.flex-lg-column{flex-direction:column!important}.flex-lg-row-reverse{flex-direction:row-reverse!important}.flex-lg-column-reverse{flex-direction:column-reverse!important}.flex-lg-grow-0{flex-grow:0!important}.flex-lg-grow-1{flex-grow:1!important}.flex-lg-shrink-0{flex-shrink:0!important}.flex-lg-shrink-1{flex-shrink:1!important}.flex-lg-wrap{flex-wrap:wrap!important}.flex-lg-nowrap{flex-wrap:nowrap!important}.flex-lg-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-lg-0{gap:0!important}.gap-lg-1{gap:.25rem!important}.gap-lg-2{gap:.5rem!important}.gap-lg-3{gap:1rem!important}.gap-lg-4{gap:1.5rem!important}.gap-lg-5{gap:3rem!important}.justify-content-lg-start{justify-content:flex-start!important}.justify-content-lg-end{justify-content:flex-end!important}.justify-content-lg-center{justify-content:center!important}.justify-content-lg-between{justify-content:space-between!important}.justify-content-lg-around{justify-content:space-around!important}.justify-content-lg-evenly{justify-content:space-evenly!important}.align-items-lg-start{align-items:flex-start!important}.align-items-lg-end{align-items:flex-end!important}.align-items-lg-center{align-items:center!important}.align-items-lg-baseline{align-items:baseline!important}.align-items-lg-stretch{align-items:stretch!important}.align-content-lg-start{align-content:flex-start!important}.align-content-lg-end{align-content:flex-end!important}.align-content-lg-center{align-content:center!important}.align-content-lg-between{align-content:space-between!important}.align-content-lg-around{align-content:space-around!important}.align-content-lg-stretch{align-content:stretch!important}.align-self-lg-auto{align-self:auto!important}.align-self-lg-start{align-self:flex-start!important}.align-self-lg-end{align-self:flex-end!important}.align-self-lg-center{align-self:center!important}.align-self-lg-baseline{align-self:baseline!important}.align-self-lg-stretch{align-self:stretch!important}.order-lg-first{order:-1!important}.order-lg-0{order:0!important}.order-lg-1{order:1!important}.order-lg-2{order:2!important}.order-lg-3{order:3!important}.order-lg-4{order:4!important}.order-lg-5{order:5!important}.order-lg-last{order:6!important}.m-lg-0{margin:0!important}.m-lg-1{margin:.25rem!important}.m-lg-2{margin:.5rem!important}.m-lg-3{margin:1rem!important}.m-lg-4{margin:1.5rem!important}.m-lg-5{margin:3rem!important}.m-lg-auto{margin:auto!important}.mx-lg-0{margin-right:0!important;margin-left:0!important}.mx-lg-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-lg-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-lg-3{margin-right:1rem!important;margin-left:1rem!important}.mx-lg-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-lg-5{margin-right:3rem!important;margin-left:3rem!important}.mx-lg-auto{margin-right:auto!important;margin-left:auto!important}.my-lg-0{margin-top:0!important;margin-bottom:0!important}.my-lg-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-lg-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-lg-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-lg-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-lg-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-lg-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-lg-0{margin-top:0!important}.mt-lg-1{margin-top:.25rem!important}.mt-lg-2{margin-top:.5rem!important}.mt-lg-3{margin-top:1rem!important}.mt-lg-4{margin-top:1.5rem!important}.mt-lg-5{margin-top:3rem!important}.mt-lg-auto{margin-top:auto!important}.me-lg-0{margin-right:0!important}.me-lg-1{margin-right:.25rem!important}.me-lg-2{margin-right:.5rem!important}.me-lg-3{margin-right:1rem!important}.me-lg-4{margin-right:1.5rem!important}.me-lg-5{margin-right:3rem!important}.me-lg-auto{margin-right:auto!important}.mb-lg-0{margin-bottom:0!important}.mb-lg-1{margin-bottom:.25rem!important}.mb-lg-2{margin-bottom:.5rem!important}.mb-lg-3{margin-bottom:1rem!important}.mb-lg-4{margin-bottom:1.5rem!important}.mb-lg-5{margin-bottom:3rem!important}.mb-lg-auto{margin-bottom:auto!important}.ms-lg-0{margin-left:0!important}.ms-lg-1{margin-left:.25rem!important}.ms-lg-2{margin-left:.5rem!important}.ms-lg-3{margin-left:1rem!important}.ms-lg-4{margin-left:1.5rem!important}.ms-lg-5{margin-left:3rem!important}.ms-lg-auto{margin-left:auto!important}.p-lg-0{padding:0!important}.p-lg-1{padding:.25rem!important}.p-lg-2{padding:.5rem!important}.p-lg-3{padding:1rem!important}.p-lg-4{padding:1.5rem!important}.p-lg-5{padding:3rem!important}.px-lg-0{padding-right:0!important;padding-left:0!important}.px-lg-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-lg-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-lg-3{padding-right:1rem!important;padding-left:1rem!important}.px-lg-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-lg-5{padding-right:3rem!important;padding-left:3rem!important}.py-lg-0{padding-top:0!important;padding-bottom:0!important}.py-lg-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-lg-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-lg-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-lg-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-lg-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-lg-0{padding-top:0!important}.pt-lg-1{padding-top:.25rem!important}.pt-lg-2{padding-top:.5rem!important}.pt-lg-3{padding-top:1rem!important}.pt-lg-4{padding-top:1.5rem!important}.pt-lg-5{padding-top:3rem!important}.pe-lg-0{padding-right:0!important}.pe-lg-1{padding-right:.25rem!important}.pe-lg-2{padding-right:.5rem!important}.pe-lg-3{padding-right:1rem!important}.pe-lg-4{padding-right:1.5rem!important}.pe-lg-5{padding-right:3rem!important}.pb-lg-0{padding-bottom:0!important}.pb-lg-1{padding-bottom:.25rem!important}.pb-lg-2{padding-bottom:.5rem!important}.pb-lg-3{padding-bottom:1rem!important}.pb-lg-4{padding-bottom:1.5rem!important}.pb-lg-5{padding-bottom:3rem!important}.ps-lg-0{padding-left:0!important}.ps-lg-1{padding-left:.25rem!important}.ps-lg-2{padding-left:.5rem!important}.ps-lg-3{padding-left:1rem!important}.ps-lg-4{padding-left:1.5rem!important}.ps-lg-5{padding-left:3rem!important}.text-lg-start{text-align:left!important}.text-lg-end{text-align:right!important}.text-lg-center{text-align:center!important}}@media (min-width:1200px){.float-xl-start{float:left!important}.float-xl-end{float:right!important}.float-xl-none{float:none!important}.d-xl-inline{display:inline!important}.d-xl-inline-block{display:inline-block!important}.d-xl-block{display:block!important}.d-xl-grid{display:grid!important}.d-xl-table{display:table!important}.d-xl-table-row{display:table-row!important}.d-xl-table-cell{display:table-cell!important}.d-xl-flex{display:flex!important}.d-xl-inline-flex{display:inline-flex!important}.d-xl-none{display:none!important}.flex-xl-fill{flex:1 1 auto!important}.flex-xl-row{flex-direction:row!important}.flex-xl-column{flex-direction:column!important}.flex-xl-row-reverse{flex-direction:row-reverse!important}.flex-xl-column-reverse{flex-direction:column-reverse!important}.flex-xl-grow-0{flex-grow:0!important}.flex-xl-grow-1{flex-grow:1!important}.flex-xl-shrink-0{flex-shrink:0!important}.flex-xl-shrink-1{flex-shrink:1!important}.flex-xl-wrap{flex-wrap:wrap!important}.flex-xl-nowrap{flex-wrap:nowrap!important}.flex-xl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xl-0{gap:0!important}.gap-xl-1{gap:.25rem!important}.gap-xl-2{gap:.5rem!important}.gap-xl-3{gap:1rem!important}.gap-xl-4{gap:1.5rem!important}.gap-xl-5{gap:3rem!important}.justify-content-xl-start{justify-content:flex-start!important}.justify-content-xl-end{justify-content:flex-end!important}.justify-content-xl-center{justify-content:center!important}.justify-content-xl-between{justify-content:space-between!important}.justify-content-xl-around{justify-content:space-around!important}.justify-content-xl-evenly{justify-content:space-evenly!important}.align-items-xl-start{align-items:flex-start!important}.align-items-xl-end{align-items:flex-end!important}.align-items-xl-center{align-items:center!important}.align-items-xl-baseline{align-items:baseline!important}.align-items-xl-stretch{align-items:stretch!important}.align-content-xl-start{align-content:flex-start!important}.align-content-xl-end{align-content:flex-end!important}.align-content-xl-center{align-content:center!important}.align-content-xl-between{align-content:space-between!important}.align-content-xl-around{align-content:space-around!important}.align-content-xl-stretch{align-content:stretch!important}.align-self-xl-auto{align-self:auto!important}.align-self-xl-start{align-self:flex-start!important}.align-self-xl-end{align-self:flex-end!important}.align-self-xl-center{align-self:center!important}.align-self-xl-baseline{align-self:baseline!important}.align-self-xl-stretch{align-self:stretch!important}.order-xl-first{order:-1!important}.order-xl-0{order:0!important}.order-xl-1{order:1!important}.order-xl-2{order:2!important}.order-xl-3{order:3!important}.order-xl-4{order:4!important}.order-xl-5{order:5!important}.order-xl-last{order:6!important}.m-xl-0{margin:0!important}.m-xl-1{margin:.25rem!important}.m-xl-2{margin:.5rem!important}.m-xl-3{margin:1rem!important}.m-xl-4{margin:1.5rem!important}.m-xl-5{margin:3rem!important}.m-xl-auto{margin:auto!important}.mx-xl-0{margin-right:0!important;margin-left:0!important}.mx-xl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xl-auto{margin-right:auto!important;margin-left:auto!important}.my-xl-0{margin-top:0!important;margin-bottom:0!important}.my-xl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xl-0{margin-top:0!important}.mt-xl-1{margin-top:.25rem!important}.mt-xl-2{margin-top:.5rem!important}.mt-xl-3{margin-top:1rem!important}.mt-xl-4{margin-top:1.5rem!important}.mt-xl-5{margin-top:3rem!important}.mt-xl-auto{margin-top:auto!important}.me-xl-0{margin-right:0!important}.me-xl-1{margin-right:.25rem!important}.me-xl-2{margin-right:.5rem!important}.me-xl-3{margin-right:1rem!important}.me-xl-4{margin-right:1.5rem!important}.me-xl-5{margin-right:3rem!important}.me-xl-auto{margin-right:auto!important}.mb-xl-0{margin-bottom:0!important}.mb-xl-1{margin-bottom:.25rem!important}.mb-xl-2{margin-bottom:.5rem!important}.mb-xl-3{margin-bottom:1rem!important}.mb-xl-4{margin-bottom:1.5rem!important}.mb-xl-5{margin-bottom:3rem!important}.mb-xl-auto{margin-bottom:auto!important}.ms-xl-0{margin-left:0!important}.ms-xl-1{margin-left:.25rem!important}.ms-xl-2{margin-left:.5rem!important}.ms-xl-3{margin-left:1rem!important}.ms-xl-4{margin-left:1.5rem!important}.ms-xl-5{margin-left:3rem!important}.ms-xl-auto{margin-left:auto!important}.p-xl-0{padding:0!important}.p-xl-1{padding:.25rem!important}.p-xl-2{padding:.5rem!important}.p-xl-3{padding:1rem!important}.p-xl-4{padding:1.5rem!important}.p-xl-5{padding:3rem!important}.px-xl-0{padding-right:0!important;padding-left:0!important}.px-xl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xl-0{padding-top:0!important;padding-bottom:0!important}.py-xl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xl-0{padding-top:0!important}.pt-xl-1{padding-top:.25rem!important}.pt-xl-2{padding-top:.5rem!important}.pt-xl-3{padding-top:1rem!important}.pt-xl-4{padding-top:1.5rem!important}.pt-xl-5{padding-top:3rem!important}.pe-xl-0{padding-right:0!important}.pe-xl-1{padding-right:.25rem!important}.pe-xl-2{padding-right:.5rem!important}.pe-xl-3{padding-right:1rem!important}.pe-xl-4{padding-right:1.5rem!important}.pe-xl-5{padding-right:3rem!important}.pb-xl-0{padding-bottom:0!important}.pb-xl-1{padding-bottom:.25rem!important}.pb-xl-2{padding-bottom:.5rem!important}.pb-xl-3{padding-bottom:1rem!important}.pb-xl-4{padding-bottom:1.5rem!important}.pb-xl-5{padding-bottom:3rem!important}.ps-xl-0{padding-left:0!important}.ps-xl-1{padding-left:.25rem!important}.ps-xl-2{padding-left:.5rem!important}.ps-xl-3{padding-left:1rem!important}.ps-xl-4{padding-left:1.5rem!important}.ps-xl-5{padding-left:3rem!important}.text-xl-start{text-align:left!important}.text-xl-end{text-align:right!important}.text-xl-center{text-align:center!important}}@media (min-width:1400px){.float-xxl-start{float:left!important}.float-xxl-end{float:right!important}.float-xxl-none{float:none!important}.d-xxl-inline{display:inline!important}.d-xxl-inline-block{display:inline-block!important}.d-xxl-block{display:block!important}.d-xxl-grid{display:grid!important}.d-xxl-table{display:table!important}.d-xxl-table-row{display:table-row!important}.d-xxl-table-cell{display:table-cell!important}.d-xxl-flex{display:flex!important}.d-xxl-inline-flex{display:inline-flex!important}.d-xxl-none{display:none!important}.flex-xxl-fill{flex:1 1 auto!important}.flex-xxl-row{flex-direction:row!important}.flex-xxl-column{flex-direction:column!important}.flex-xxl-row-reverse{flex-direction:row-reverse!important}.flex-xxl-column-reverse{flex-direction:column-reverse!important}.flex-xxl-grow-0{flex-grow:0!important}.flex-xxl-grow-1{flex-grow:1!important}.flex-xxl-shrink-0{flex-shrink:0!important}.flex-xxl-shrink-1{flex-shrink:1!important}.flex-xxl-wrap{flex-wrap:wrap!important}.flex-xxl-nowrap{flex-wrap:nowrap!important}.flex-xxl-wrap-reverse{flex-wrap:wrap-reverse!important}.gap-xxl-0{gap:0!important}.gap-xxl-1{gap:.25rem!important}.gap-xxl-2{gap:.5rem!important}.gap-xxl-3{gap:1rem!important}.gap-xxl-4{gap:1.5rem!important}.gap-xxl-5{gap:3rem!important}.justify-content-xxl-start{justify-content:flex-start!important}.justify-content-xxl-end{justify-content:flex-end!important}.justify-content-xxl-center{justify-content:center!important}.justify-content-xxl-between{justify-content:space-between!important}.justify-content-xxl-around{justify-content:space-around!important}.justify-content-xxl-evenly{justify-content:space-evenly!important}.align-items-xxl-start{align-items:flex-start!important}.align-items-xxl-end{align-items:flex-end!important}.align-items-xxl-center{align-items:center!important}.align-items-xxl-baseline{align-items:baseline!important}.align-items-xxl-stretch{align-items:stretch!important}.align-content-xxl-start{align-content:flex-start!important}.align-content-xxl-end{align-content:flex-end!important}.align-content-xxl-center{align-content:center!important}.align-content-xxl-between{align-content:space-between!important}.align-content-xxl-around{align-content:space-around!important}.align-content-xxl-stretch{align-content:stretch!important}.align-self-xxl-auto{align-self:auto!important}.align-self-xxl-start{align-self:flex-start!important}.align-self-xxl-end{align-self:flex-end!important}.align-self-xxl-center{align-self:center!important}.align-self-xxl-baseline{align-self:baseline!important}.align-self-xxl-stretch{align-self:stretch!important}.order-xxl-first{order:-1!important}.order-xxl-0{order:0!important}.order-xxl-1{order:1!important}.order-xxl-2{order:2!important}.order-xxl-3{order:3!important}.order-xxl-4{order:4!important}.order-xxl-5{order:5!important}.order-xxl-last{order:6!important}.m-xxl-0{margin:0!important}.m-xxl-1{margin:.25rem!important}.m-xxl-2{margin:.5rem!important}.m-xxl-3{margin:1rem!important}.m-xxl-4{margin:1.5rem!important}.m-xxl-5{margin:3rem!important}.m-xxl-auto{margin:auto!important}.mx-xxl-0{margin-right:0!important;margin-left:0!important}.mx-xxl-1{margin-right:.25rem!important;margin-left:.25rem!important}.mx-xxl-2{margin-right:.5rem!important;margin-left:.5rem!important}.mx-xxl-3{margin-right:1rem!important;margin-left:1rem!important}.mx-xxl-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.mx-xxl-5{margin-right:3rem!important;margin-left:3rem!important}.mx-xxl-auto{margin-right:auto!important;margin-left:auto!important}.my-xxl-0{margin-top:0!important;margin-bottom:0!important}.my-xxl-1{margin-top:.25rem!important;margin-bottom:.25rem!important}.my-xxl-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.my-xxl-3{margin-top:1rem!important;margin-bottom:1rem!important}.my-xxl-4{margin-top:1.5rem!important;margin-bottom:1.5rem!important}.my-xxl-5{margin-top:3rem!important;margin-bottom:3rem!important}.my-xxl-auto{margin-top:auto!important;margin-bottom:auto!important}.mt-xxl-0{margin-top:0!important}.mt-xxl-1{margin-top:.25rem!important}.mt-xxl-2{margin-top:.5rem!important}.mt-xxl-3{margin-top:1rem!important}.mt-xxl-4{margin-top:1.5rem!important}.mt-xxl-5{margin-top:3rem!important}.mt-xxl-auto{margin-top:auto!important}.me-xxl-0{margin-right:0!important}.me-xxl-1{margin-right:.25rem!important}.me-xxl-2{margin-right:.5rem!important}.me-xxl-3{margin-right:1rem!important}.me-xxl-4{margin-right:1.5rem!important}.me-xxl-5{margin-right:3rem!important}.me-xxl-auto{margin-right:auto!important}.mb-xxl-0{margin-bottom:0!important}.mb-xxl-1{margin-bottom:.25rem!important}.mb-xxl-2{margin-bottom:.5rem!important}.mb-xxl-3{margin-bottom:1rem!important}.mb-xxl-4{margin-bottom:1.5rem!important}.mb-xxl-5{margin-bottom:3rem!important}.mb-xxl-auto{margin-bottom:auto!important}.ms-xxl-0{margin-left:0!important}.ms-xxl-1{margin-left:.25rem!important}.ms-xxl-2{margin-left:.5rem!important}.ms-xxl-3{margin-left:1rem!important}.ms-xxl-4{margin-left:1.5rem!important}.ms-xxl-5{margin-left:3rem!important}.ms-xxl-auto{margin-left:auto!important}.p-xxl-0{padding:0!important}.p-xxl-1{padding:.25rem!important}.p-xxl-2{padding:.5rem!important}.p-xxl-3{padding:1rem!important}.p-xxl-4{padding:1.5rem!important}.p-xxl-5{padding:3rem!important}.px-xxl-0{padding-right:0!important;padding-left:0!important}.px-xxl-1{padding-right:.25rem!important;padding-left:.25rem!important}.px-xxl-2{padding-right:.5rem!important;padding-left:.5rem!important}.px-xxl-3{padding-right:1rem!important;padding-left:1rem!important}.px-xxl-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.px-xxl-5{padding-right:3rem!important;padding-left:3rem!important}.py-xxl-0{padding-top:0!important;padding-bottom:0!important}.py-xxl-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-xxl-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.py-xxl-3{padding-top:1rem!important;padding-bottom:1rem!important}.py-xxl-4{padding-top:1.5rem!important;padding-bottom:1.5rem!important}.py-xxl-5{padding-top:3rem!important;padding-bottom:3rem!important}.pt-xxl-0{padding-top:0!important}.pt-xxl-1{padding-top:.25rem!important}.pt-xxl-2{padding-top:.5rem!important}.pt-xxl-3{padding-top:1rem!important}.pt-xxl-4{padding-top:1.5rem!important}.pt-xxl-5{padding-top:3rem!important}.pe-xxl-0{padding-right:0!important}.pe-xxl-1{padding-right:.25rem!important}.pe-xxl-2{padding-right:.5rem!important}.pe-xxl-3{padding-right:1rem!important}.pe-xxl-4{padding-right:1.5rem!important}.pe-xxl-5{padding-right:3rem!important}.pb-xxl-0{padding-bottom:0!important}.pb-xxl-1{padding-bottom:.25rem!important}.pb-xxl-2{padding-bottom:.5rem!important}.pb-xxl-3{padding-bottom:1rem!important}.pb-xxl-4{padding-bottom:1.5rem!important}.pb-xxl-5{padding-bottom:3rem!important}.ps-xxl-0{padding-left:0!important}.ps-xxl-1{padding-left:.25rem!important}.ps-xxl-2{padding-left:.5rem!important}.ps-xxl-3{padding-left:1rem!important}.ps-xxl-4{padding-left:1.5rem!important}.ps-xxl-5{padding-left:3rem!important}.text-xxl-start{text-align:left!important}.text-xxl-end{text-align:right!important}.text-xxl-center{text-align:center!important}}@media (min-width:1200px){.fs-1{font-size:2.5rem!important}.fs-2{font-size:2rem!important}.fs-3{font-size:1.75rem!important}.fs-4{font-size:1.5rem!important}}@media print{.d-print-inline{display:inline!important}.d-print-inline-block{display:inline-block!important}.d-print-block{display:block!important}.d-print-grid{display:grid!important}.d-print-table{display:table!important}.d-print-table-row{display:table-row!important}.d-print-table-cell{display:table-cell!important}.d-print-flex{display:flex!important}.d-print-inline-flex{display:inline-flex!important}.d-print-none{display:none!important}} +/*# sourceMappingURL=bootstrap.min.css.map */ \ No newline at end of file diff --git a/Egw.Core.Razor.Test/wwwroot/css/bootstrap/bootstrap.min.css.map b/Egw.Core.Razor.Test/wwwroot/css/bootstrap/bootstrap.min.css.map new file mode 100644 index 0000000..afcd9e3 --- /dev/null +++ b/Egw.Core.Razor.Test/wwwroot/css/bootstrap/bootstrap.min.css.map @@ -0,0 +1 @@ +{"version":3,"sources":["../../scss/bootstrap.scss","../../scss/_root.scss","../../scss/_reboot.scss","dist/css/bootstrap.css","../../scss/vendor/_rfs.scss","../../scss/mixins/_border-radius.scss","../../scss/_type.scss","../../scss/mixins/_lists.scss","../../scss/_images.scss","../../scss/mixins/_image.scss","../../scss/_containers.scss","../../scss/mixins/_container.scss","../../scss/mixins/_breakpoints.scss","../../scss/_grid.scss","../../scss/mixins/_grid.scss","../../scss/_tables.scss","../../scss/mixins/_table-variants.scss","../../scss/forms/_labels.scss","../../scss/forms/_form-text.scss","../../scss/forms/_form-control.scss","../../scss/mixins/_transition.scss","../../scss/mixins/_gradients.scss","../../scss/forms/_form-select.scss","../../scss/forms/_form-check.scss","../../scss/forms/_form-range.scss","../../scss/forms/_floating-labels.scss","../../scss/forms/_input-group.scss","../../scss/mixins/_forms.scss","../../scss/_buttons.scss","../../scss/mixins/_buttons.scss","../../scss/_transitions.scss","../../scss/_dropdown.scss","../../scss/mixins/_caret.scss","../../scss/_button-group.scss","../../scss/_nav.scss","../../scss/_navbar.scss","../../scss/_card.scss","../../scss/_accordion.scss","../../scss/_breadcrumb.scss","../../scss/_pagination.scss","../../scss/mixins/_pagination.scss","../../scss/_badge.scss","../../scss/_alert.scss","../../scss/mixins/_alert.scss","../../scss/_progress.scss","../../scss/_list-group.scss","../../scss/mixins/_list-group.scss","../../scss/_close.scss","../../scss/_toasts.scss","../../scss/_modal.scss","../../scss/mixins/_backdrop.scss","../../scss/_tooltip.scss","../../scss/mixins/_reset-text.scss","../../scss/_popover.scss","../../scss/_carousel.scss","../../scss/mixins/_clearfix.scss","../../scss/_spinners.scss","../../scss/_offcanvas.scss","../../scss/_placeholders.scss","../../scss/helpers/_colored-links.scss","../../scss/helpers/_ratio.scss","../../scss/helpers/_position.scss","../../scss/helpers/_stacks.scss","../../scss/helpers/_visually-hidden.scss","../../scss/mixins/_visually-hidden.scss","../../scss/helpers/_stretched-link.scss","../../scss/helpers/_text-truncation.scss","../../scss/mixins/_text-truncate.scss","../../scss/helpers/_vr.scss","../../scss/mixins/_utilities.scss","../../scss/utilities/_api.scss"],"names":[],"mappings":"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","sourcesContent":["/*!\n * Bootstrap v5.1.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors\n * Copyright 2011-2021 Twitter, Inc.\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n\n// scss-docs-start import-stack\n// Configuration\n@import \"functions\";\n@import \"variables\";\n@import \"mixins\";\n@import \"utilities\";\n\n// Layout & components\n@import \"root\";\n@import \"reboot\";\n@import \"type\";\n@import \"images\";\n@import \"containers\";\n@import \"grid\";\n@import \"tables\";\n@import \"forms\";\n@import \"buttons\";\n@import \"transitions\";\n@import \"dropdown\";\n@import \"button-group\";\n@import \"nav\";\n@import \"navbar\";\n@import \"card\";\n@import \"accordion\";\n@import \"breadcrumb\";\n@import \"pagination\";\n@import \"badge\";\n@import \"alert\";\n@import \"progress\";\n@import \"list-group\";\n@import \"close\";\n@import \"toasts\";\n@import \"modal\";\n@import \"tooltip\";\n@import \"popover\";\n@import \"carousel\";\n@import \"spinners\";\n@import \"offcanvas\";\n@import \"placeholders\";\n\n// Helpers\n@import \"helpers\";\n\n// Utilities\n@import \"utilities/api\";\n// scss-docs-end import-stack\n",":root {\n // Note: Custom variable values only support SassScript inside `#{}`.\n\n // Colors\n //\n // Generate palettes for full colors, grays, and theme colors.\n\n @each $color, $value in $colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $grays {\n --#{$variable-prefix}gray-#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors {\n --#{$variable-prefix}#{$color}: #{$value};\n }\n\n @each $color, $value in $theme-colors-rgb {\n --#{$variable-prefix}#{$color}-rgb: #{$value};\n }\n\n --#{$variable-prefix}white-rgb: #{to-rgb($white)};\n --#{$variable-prefix}black-rgb: #{to-rgb($black)};\n --#{$variable-prefix}body-rgb: #{to-rgb($body-color)};\n\n // Fonts\n\n // Note: Use `inspect` for lists so that quoted items keep the quotes.\n // See https://github.com/sass/sass/issues/2383#issuecomment-336349172\n --#{$variable-prefix}font-sans-serif: #{inspect($font-family-sans-serif)};\n --#{$variable-prefix}font-monospace: #{inspect($font-family-monospace)};\n --#{$variable-prefix}gradient: #{$gradient};\n\n // Root and body\n // stylelint-disable custom-property-empty-line-before\n // scss-docs-start root-body-variables\n @if $font-size-root != null {\n --#{$variable-prefix}root-font-size: #{$font-size-root};\n }\n --#{$variable-prefix}body-font-family: #{$font-family-base};\n --#{$variable-prefix}body-font-size: #{$font-size-base};\n --#{$variable-prefix}body-font-weight: #{$font-weight-base};\n --#{$variable-prefix}body-line-height: #{$line-height-base};\n --#{$variable-prefix}body-color: #{$body-color};\n @if $body-text-align != null {\n --#{$variable-prefix}body-text-align: #{$body-text-align};\n }\n --#{$variable-prefix}body-bg: #{$body-bg};\n // scss-docs-end root-body-variables\n // stylelint-enable custom-property-empty-line-before\n}\n","// stylelint-disable declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix\n\n\n// Reboot\n//\n// Normalization of HTML elements, manually forked from Normalize.css to remove\n// styles targeting irrelevant browsers while applying new styles.\n//\n// Normalize is licensed MIT. https://github.com/necolas/normalize.css\n\n\n// Document\n//\n// Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.\n\n*,\n*::before,\n*::after {\n box-sizing: border-box;\n}\n\n\n// Root\n//\n// Ability to the value of the root font sizes, affecting the value of `rem`.\n// null by default, thus nothing is generated.\n\n:root {\n @if $font-size-root != null {\n font-size: var(--#{$variable-prefix}-root-font-size);\n }\n\n @if $enable-smooth-scroll {\n @media (prefers-reduced-motion: no-preference) {\n scroll-behavior: smooth;\n }\n }\n}\n\n\n// Body\n//\n// 1. Remove the margin in all browsers.\n// 2. As a best practice, apply a default `background-color`.\n// 3. Prevent adjustments of font size after orientation changes in iOS.\n// 4. Change the default tap highlight to be completely transparent in iOS.\n\n// scss-docs-start reboot-body-rules\nbody {\n margin: 0; // 1\n font-family: var(--#{$variable-prefix}body-font-family);\n @include font-size(var(--#{$variable-prefix}body-font-size));\n font-weight: var(--#{$variable-prefix}body-font-weight);\n line-height: var(--#{$variable-prefix}body-line-height);\n color: var(--#{$variable-prefix}body-color);\n text-align: var(--#{$variable-prefix}body-text-align);\n background-color: var(--#{$variable-prefix}body-bg); // 2\n -webkit-text-size-adjust: 100%; // 3\n -webkit-tap-highlight-color: rgba($black, 0); // 4\n}\n// scss-docs-end reboot-body-rules\n\n\n// Content grouping\n//\n// 1. Reset Firefox's gray color\n// 2. Set correct height and prevent the `size` attribute to make the `hr` look like an input field\n\nhr {\n margin: $hr-margin-y 0;\n color: $hr-color; // 1\n background-color: currentColor;\n border: 0;\n opacity: $hr-opacity;\n}\n\nhr:not([size]) {\n height: $hr-height; // 2\n}\n\n\n// Typography\n//\n// 1. Remove top margins from headings\n// By default, `

`-`

` all receive top and bottom margins. We nuke the top\n// margin for easier control within type scales as it avoids margin collapsing.\n\n%heading {\n margin-top: 0; // 1\n margin-bottom: $headings-margin-bottom;\n font-family: $headings-font-family;\n font-style: $headings-font-style;\n font-weight: $headings-font-weight;\n line-height: $headings-line-height;\n color: $headings-color;\n}\n\nh1 {\n @extend %heading;\n @include font-size($h1-font-size);\n}\n\nh2 {\n @extend %heading;\n @include font-size($h2-font-size);\n}\n\nh3 {\n @extend %heading;\n @include font-size($h3-font-size);\n}\n\nh4 {\n @extend %heading;\n @include font-size($h4-font-size);\n}\n\nh5 {\n @extend %heading;\n @include font-size($h5-font-size);\n}\n\nh6 {\n @extend %heading;\n @include font-size($h6-font-size);\n}\n\n\n// Reset margins on paragraphs\n//\n// Similarly, the top margin on `

`s get reset. However, we also reset the\n// bottom margin to use `rem` units instead of `em`.\n\np {\n margin-top: 0;\n margin-bottom: $paragraph-margin-bottom;\n}\n\n\n// Abbreviations\n//\n// 1. Duplicate behavior to the data-bs-* attribute for our tooltip plugin\n// 2. Add the correct text decoration in Chrome, Edge, Opera, and Safari.\n// 3. Add explicit cursor to indicate changed behavior.\n// 4. Prevent the text-decoration to be skipped.\n\nabbr[title],\nabbr[data-bs-original-title] { // 1\n text-decoration: underline dotted; // 2\n cursor: help; // 3\n text-decoration-skip-ink: none; // 4\n}\n\n\n// Address\n\naddress {\n margin-bottom: 1rem;\n font-style: normal;\n line-height: inherit;\n}\n\n\n// Lists\n\nol,\nul {\n padding-left: 2rem;\n}\n\nol,\nul,\ndl {\n margin-top: 0;\n margin-bottom: 1rem;\n}\n\nol ol,\nul ul,\nol ul,\nul ol {\n margin-bottom: 0;\n}\n\ndt {\n font-weight: $dt-font-weight;\n}\n\n// 1. Undo browser default\n\ndd {\n margin-bottom: .5rem;\n margin-left: 0; // 1\n}\n\n\n// Blockquote\n\nblockquote {\n margin: 0 0 1rem;\n}\n\n\n// Strong\n//\n// Add the correct font weight in Chrome, Edge, and Safari\n\nb,\nstrong {\n font-weight: $font-weight-bolder;\n}\n\n\n// Small\n//\n// Add the correct font size in all browsers\n\nsmall {\n @include font-size($small-font-size);\n}\n\n\n// Mark\n\nmark {\n padding: $mark-padding;\n background-color: $mark-bg;\n}\n\n\n// Sub and Sup\n//\n// Prevent `sub` and `sup` elements from affecting the line height in\n// all browsers.\n\nsub,\nsup {\n position: relative;\n @include font-size($sub-sup-font-size);\n line-height: 0;\n vertical-align: baseline;\n}\n\nsub { bottom: -.25em; }\nsup { top: -.5em; }\n\n\n// Links\n\na {\n color: $link-color;\n text-decoration: $link-decoration;\n\n &:hover {\n color: $link-hover-color;\n text-decoration: $link-hover-decoration;\n }\n}\n\n// And undo these styles for placeholder links/named anchors (without href).\n// It would be more straightforward to just use a[href] in previous block, but that\n// causes specificity issues in many other styles that are too complex to fix.\n// See https://github.com/twbs/bootstrap/issues/19402\n\na:not([href]):not([class]) {\n &,\n &:hover {\n color: inherit;\n text-decoration: none;\n }\n}\n\n\n// Code\n\npre,\ncode,\nkbd,\nsamp {\n font-family: $font-family-code;\n @include font-size(1em); // Correct the odd `em` font sizing in all browsers.\n direction: ltr #{\"/* rtl:ignore */\"};\n unicode-bidi: bidi-override;\n}\n\n// 1. Remove browser default top margin\n// 2. Reset browser default of `1em` to use `rem`s\n// 3. Don't allow content to break outside\n\npre {\n display: block;\n margin-top: 0; // 1\n margin-bottom: 1rem; // 2\n overflow: auto; // 3\n @include font-size($code-font-size);\n color: $pre-color;\n\n // Account for some code outputs that place code tags in pre tags\n code {\n @include font-size(inherit);\n color: inherit;\n word-break: normal;\n }\n}\n\ncode {\n @include font-size($code-font-size);\n color: $code-color;\n word-wrap: break-word;\n\n // Streamline the style when inside anchors to avoid broken underline and more\n a > & {\n color: inherit;\n }\n}\n\nkbd {\n padding: $kbd-padding-y $kbd-padding-x;\n @include font-size($kbd-font-size);\n color: $kbd-color;\n background-color: $kbd-bg;\n @include border-radius($border-radius-sm);\n\n kbd {\n padding: 0;\n @include font-size(1em);\n font-weight: $nested-kbd-font-weight;\n }\n}\n\n\n// Figures\n//\n// Apply a consistent margin strategy (matches our type styles).\n\nfigure {\n margin: 0 0 1rem;\n}\n\n\n// Images and content\n\nimg,\nsvg {\n vertical-align: middle;\n}\n\n\n// Tables\n//\n// Prevent double borders\n\ntable {\n caption-side: bottom;\n border-collapse: collapse;\n}\n\ncaption {\n padding-top: $table-cell-padding-y;\n padding-bottom: $table-cell-padding-y;\n color: $table-caption-color;\n text-align: left;\n}\n\n// 1. Removes font-weight bold by inheriting\n// 2. Matches default `` alignment by inheriting `text-align`.\n// 3. Fix alignment for Safari\n\nth {\n font-weight: $table-th-font-weight; // 1\n text-align: inherit; // 2\n text-align: -webkit-match-parent; // 3\n}\n\nthead,\ntbody,\ntfoot,\ntr,\ntd,\nth {\n border-color: inherit;\n border-style: solid;\n border-width: 0;\n}\n\n\n// Forms\n//\n// 1. Allow labels to use `margin` for spacing.\n\nlabel {\n display: inline-block; // 1\n}\n\n// Remove the default `border-radius` that macOS Chrome adds.\n// See https://github.com/twbs/bootstrap/issues/24093\n\nbutton {\n // stylelint-disable-next-line property-disallowed-list\n border-radius: 0;\n}\n\n// Explicitly remove focus outline in Chromium when it shouldn't be\n// visible (e.g. as result of mouse click or touch tap). It already\n// should be doing this automatically, but seems to currently be\n// confused and applies its very visible two-tone outline anyway.\n\nbutton:focus:not(:focus-visible) {\n outline: 0;\n}\n\n// 1. Remove the margin in Firefox and Safari\n\ninput,\nbutton,\nselect,\noptgroup,\ntextarea {\n margin: 0; // 1\n font-family: inherit;\n @include font-size(inherit);\n line-height: inherit;\n}\n\n// Remove the inheritance of text transform in Firefox\nbutton,\nselect {\n text-transform: none;\n}\n// Set the cursor for non-`