diff --git a/CLAUDE.md b/CLAUDE.md index a0b893f..2225b60 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -7,7 +7,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co NimbusFlow is a scheduling system with a **monorepo structure** containing separate backend and frontend applications: - **Backend**: Python-based scheduling service using SQLite with a repository pattern -- **Frontend**: React + TypeScript + Vite application +- **Frontend**: .NET Blazor Server application with Bootstrap UI ### Backend Architecture @@ -33,10 +33,26 @@ backend/ ### Frontend Architecture -React application using: -- TypeScript for type safety -- Vite for fast development and building -- ESLint for code linting +.NET 8 Blazor Server application with the following structure: + +``` +frontend/ +├── Components/ +│ ├── Layout/ # Layout components (NavMenu, MainLayout) +│ └── Pages/ # Razor pages (Dashboard, Members, Schedules, Services) +├── Models/ # C# models matching backend data structure +├── Services/ # HTTP client services for API communication +└── wwwroot/ # Static files and assets +``` + +**Key Components:** + +- **ApiService** (`Services/ApiService.cs`): HTTP client wrapper for Python backend API communication +- **Models** (`Models/Member.cs`): C# data models (Member, Schedule, Service, Classification, etc.) +- **Razor Components**: Interactive pages for member management, scheduling, and service administration +- **Bootstrap UI**: Responsive design with Bootstrap 5 styling + +The frontend communicates with the Python backend via HTTP API calls, expecting JSON responses that match the C# model structure. ## Development Commands @@ -72,22 +88,28 @@ python main.py **Setup:** ```bash cd frontend -npm install +# Restore NuGet packages +dotnet restore ``` **Development:** ```bash cd frontend -# Start development server -npm run dev +# Start development server (with hot reload) +dotnet watch +# Or run without watch +dotnet run + # Build for production -npm run build -# Run linting -npm run lint -# Preview production build -npm run preview +dotnet build +# Publish for deployment +dotnet publish -c Release ``` +**Access:** +- Development: https://localhost:5001 (HTTPS) or http://localhost:5000 (HTTP) +- The application expects the Python backend API to be available at http://localhost:8000/api/ + ## Core Business Logic The **SchedulingService** implements a sophisticated member scheduling algorithm: diff --git a/frontend/.gitignore b/frontend/.gitignore deleted file mode 100644 index d6a6c90..0000000 --- a/frontend/.gitignore +++ /dev/null @@ -1,55 +0,0 @@ -# Dependencies -node_modules/ - -# Build output -dist/ -build/ -.next/ - -# TypeScript cache -*.tsbuildinfo - -# Logs -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -*.log - -# Local environment files -.env -.env.local -.env.*.local - -# Editor directories and files -.vscode/ -.idea/ -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? - -# macOS -.DS_Store - -# Linux -*~ - -# Windows -Thumbs.db -ehthumbs.db -Desktop.ini - -# TailwindCSS JIT cache -.tailwindcss/ - -# Optional: if using Next.js image optimization cache -.next/cache/ - -# Optional: if using Storybook -storybook-static/ -.out/ - -# Optional: if using testing coverage -coverage/ diff --git a/frontend/Components/App.razor b/frontend/Components/App.razor new file mode 100644 index 0000000..cbca8d7 --- /dev/null +++ b/frontend/Components/App.razor @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/frontend/Components/Layout/MainLayout.razor b/frontend/Components/Layout/MainLayout.razor new file mode 100644 index 0000000..5a24bb1 --- /dev/null +++ b/frontend/Components/Layout/MainLayout.razor @@ -0,0 +1,23 @@ +@inherits LayoutComponentBase + +
+ + +
+
+ About +
+ +
+ @Body +
+
+
+ +
+ An unhandled error has occurred. + Reload + 🗙 +
diff --git a/frontend/Components/Layout/MainLayout.razor.css b/frontend/Components/Layout/MainLayout.razor.css new file mode 100644 index 0000000..038baf1 --- /dev/null +++ b/frontend/Components/Layout/MainLayout.razor.css @@ -0,0 +1,96 @@ +.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 ::deep .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row ::deep a:hover, .top-row ::deep .btn-link:hover { + text-decoration: underline; + } + + .top-row ::deep a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row { + justify-content: space-between; + } + + .top-row ::deep a, .top-row ::deep .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.auth ::deep a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row, article { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } diff --git a/frontend/Components/Layout/NavMenu.razor b/frontend/Components/Layout/NavMenu.razor new file mode 100644 index 0000000..e6a7fce --- /dev/null +++ b/frontend/Components/Layout/NavMenu.razor @@ -0,0 +1,36 @@ + + + + + + diff --git a/frontend/Components/Layout/NavMenu.razor.css b/frontend/Components/Layout/NavMenu.razor.css new file mode 100644 index 0000000..4e15395 --- /dev/null +++ b/frontend/Components/Layout/NavMenu.razor.css @@ -0,0 +1,105 @@ +.navbar-toggler { + appearance: none; + cursor: pointer; + width: 3.5rem; + height: 2.5rem; + color: white; + position: absolute; + top: 0.5rem; + right: 1rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: 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") no-repeat center/1.75rem rgba(255, 255, 255, 0.1); +} + +.navbar-toggler:checked { + background-color: rgba(255, 255, 255, 0.5); +} + +.top-row { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand { + font-size: 1.1rem; +} + +.bi { + display: inline-block; + position: relative; + width: 1.25rem; + height: 1.25rem; + margin-right: 0.75rem; + top: -1px; + background-size: cover; +} + +.bi-house-door-fill-nav-menu { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E"); +} + +.bi-plus-square-fill-nav-menu { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E"); +} + +.bi-list-nested-nav-menu { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E"); +} + +.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 .nav-link { + color: #d7d7d7; + background: none; + border: none; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + width: 100%; + } + +.nav-item ::deep a.active { + background-color: rgba(255,255,255,0.37); + color: white; +} + +.nav-item ::deep .nav-link:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +.nav-scrollable { + display: none; +} + +.navbar-toggler:checked ~ .nav-scrollable { + display: block; +} + +@media (min-width: 641px) { + .navbar-toggler { + display: none; + } + + .nav-scrollable { + /* Never collapse the sidebar for wide screens */ + display: block; + + /* Allow sidebar to scroll for tall menus */ + height: calc(100vh - 3.5rem); + overflow-y: auto; + } +} diff --git a/frontend/Components/Pages/Error.razor b/frontend/Components/Pages/Error.razor new file mode 100644 index 0000000..576cc2d --- /dev/null +++ b/frontend/Components/Pages/Error.razor @@ -0,0 +1,36 @@ +@page "/Error" +@using System.Diagnostics + +Error + +

Error.

+

An error occurred while processing your request.

+ +@if (ShowRequestId) +{ +

+ Request ID: @RequestId +

+} + +

Development Mode

+

+ Swapping to Development environment will display more 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. +

+ +@code{ + [CascadingParameter] + private HttpContext? HttpContext { get; set; } + + private string? RequestId { get; set; } + private bool ShowRequestId => !string.IsNullOrEmpty(RequestId); + + protected override void OnInitialized() => + RequestId = Activity.Current?.Id ?? HttpContext?.TraceIdentifier; +} diff --git a/frontend/Components/Pages/Home.razor b/frontend/Components/Pages/Home.razor new file mode 100644 index 0000000..7a0b250 --- /dev/null +++ b/frontend/Components/Pages/Home.razor @@ -0,0 +1,138 @@ +@page "/" +@using NimbusFlow.Frontend.Services +@using NimbusFlow.Frontend.Models +@inject IApiService ApiService + +NimbusFlow Dashboard + +

NimbusFlow Dashboard

+ +
+
+
+
Active Members
+
+

@activeMemberCount

+
+
+
+ +
+
+
Pending Schedules
+
+

@pendingScheduleCount

+
+
+
+ +
+
+
Upcoming Services
+
+

@upcomingServiceCount

+
+
+
+ +
+
+
Total Classifications
+
+

@classificationCount

+
+
+
+
+ +
+
+
+
+
Recent Schedules
+
+
+ @if (recentSchedules.Any()) + { +
+ @foreach (var schedule in recentSchedules.Take(5)) + { +
+
+
@($"{schedule.Member?.FullName}")
+ @schedule.Status +
+

Service: @schedule.Service?.ServiceDate.ToString("MMM dd, yyyy")

+ Scheduled: @schedule.ScheduledAt.ToString("MMM dd, yyyy HH:mm") +
+ } +
+ } + else + { +

No recent schedules found.

+ } +
+
+
+ +
+ +
+
+ +@code { + private int activeMemberCount = 0; + private int pendingScheduleCount = 0; + private int upcomingServiceCount = 0; + private int classificationCount = 0; + private List recentSchedules = new(); + + protected override async Task OnInitializedAsync() + { + try + { + // Load dashboard data + var members = await ApiService.GetMembersAsync(); + activeMemberCount = members.Count(m => m.IsActive); + + var schedules = await ApiService.GetSchedulesAsync(); + recentSchedules = schedules.OrderByDescending(s => s.ScheduledAt).ToList(); + pendingScheduleCount = schedules.Count(s => s.Status == "pending"); + + var services = await ApiService.GetServicesAsync(); + upcomingServiceCount = services.Count(s => s.ServiceDate >= DateTime.Today); + + var classifications = await ApiService.GetClassificationsAsync(); + classificationCount = classifications.Count; + } + catch (Exception ex) + { + // Handle API errors gracefully + Console.WriteLine($"Error loading dashboard data: {ex.Message}"); + } + } + + private string GetStatusBadgeClass(string status) + { + return status switch + { + "pending" => "bg-warning", + "accepted" => "bg-success", + "declined" => "bg-danger", + _ => "bg-secondary" + }; + } +} diff --git a/frontend/Components/Pages/Members.razor b/frontend/Components/Pages/Members.razor new file mode 100644 index 0000000..b473473 --- /dev/null +++ b/frontend/Components/Pages/Members.razor @@ -0,0 +1,181 @@ +@page "/members" +@using NimbusFlow.Frontend.Services +@using NimbusFlow.Frontend.Models +@inject IApiService ApiService +@inject NavigationManager Navigation +@inject IJSRuntime JSRuntime + +Members + +
+

Members

+ + Add Member + +
+ +@if (loading) +{ +
+
+ Loading... +
+
+} +else if (members.Any()) +{ +
+
+
+
+
+ + + + + + + + + + + + + + + @foreach (var member in filteredMembers) + { + + + + + + + + + + + } + +
NameClassificationEmailPhoneStatusLast AcceptedDecline StreakActions
+ @member.FullName + + @member.ClassificationName + @member.Email@member.PhoneNumber + @if (member.IsActive) + { + Active + } + else + { + Inactive + } + + @if (member.LastAcceptedAt.HasValue) + { + @member.LastAcceptedAt.Value.ToString("MMM dd, yyyy") + } + else + { + Never + } + + @if (member.DeclineStreak > 0) + { + @member.DeclineStreak + } + else + { + 0 + } + +
+ View + Edit + +
+
+
+
+
+
+
+ +
+
+
+ + Showing @filteredMembers.Count() of @members.Count members + +
+ + +
+
+
+
+} +else +{ +
+
+

No Members Found

+

There are currently no members in the system.

+ Add Your First Member +
+
+} + +@code { + private List members = new(); + private bool loading = true; + private bool showInactiveMembers = false; + + private IEnumerable filteredMembers => + showInactiveMembers ? members : members.Where(m => m.IsActive); + + protected override async Task OnInitializedAsync() + { + await LoadMembers(); + } + + private async Task LoadMembers() + { + try + { + loading = true; + members = await ApiService.GetMembersAsync(); + } + catch (Exception ex) + { + // Handle error (could show toast notification) + Console.WriteLine($"Error loading members: {ex.Message}"); + } + finally + { + loading = false; + } + } + + private async Task ConfirmDelete(Member member) + { + var confirmed = await JSRuntime.InvokeAsync("confirm", $"Are you sure you want to delete {member.FullName}?"); + if (confirmed) + { + try + { + var success = await ApiService.DeleteMemberAsync(member.MemberId); + if (success) + { + await LoadMembers(); // Refresh the list + } + } + catch (Exception ex) + { + Console.WriteLine($"Error deleting member: {ex.Message}"); + } + } + } +} \ No newline at end of file diff --git a/frontend/Components/Pages/Schedules.razor b/frontend/Components/Pages/Schedules.razor new file mode 100644 index 0000000..0f23284 --- /dev/null +++ b/frontend/Components/Pages/Schedules.razor @@ -0,0 +1,298 @@ +@page "/schedules" +@using NimbusFlow.Frontend.Services +@using NimbusFlow.Frontend.Models +@inject IApiService ApiService +@inject IJSRuntime JSRuntime + +Schedules + +
+

Schedules

+ + Schedule Member + +
+ +@if (loading) +{ +
+
+ Loading... +
+
+} +else if (schedules.Any()) +{ + +
+
+ +
+
+ +
+
+ +
+
+ +
+
+
+
+
+ + + + + + + + + + + + + + @foreach (var schedule in filteredSchedules.OrderByDescending(s => s.ScheduledAt)) + { + + + + + + + + + + } + +
MemberService DateService TypeStatusScheduled AtResponse DateActions
+ @schedule.Member?.FullName + + @schedule.Service?.ServiceDate.ToString("MMM dd, yyyy") + + @schedule.Service?.ServiceTypeName + + + @schedule.Status.ToUpper() + + + @schedule.ScheduledAt.ToString("MMM dd, yyyy HH:mm") + + @if (schedule.AcceptedAt.HasValue) + { + @schedule.AcceptedAt.Value.ToString("MMM dd, yyyy HH:mm") + } + else if (schedule.DeclinedAt.HasValue) + { + @schedule.DeclinedAt.Value.ToString("MMM dd, yyyy HH:mm") + } + else + { + - + } + +
+ @if (schedule.Status == "pending") + { + + + } + View + +
+
+
+
+
+
+
+ +
+
+ + Showing @filteredSchedules.Count() of @schedules.Count schedules + +
+
+} +else +{ +
+
+

No Schedules Found

+

There are currently no schedules in the system.

+ Create Your First Schedule +
+
+} + + +@if (showDeclineModal) +{ + +} + +@code { + private List schedules = new(); + private bool loading = true; + private string selectedStatus = ""; + private DateTime? filterDate; + private bool showDeclineModal = false; + private Schedule? scheduleToDecline; + private string declineReason = ""; + + private IEnumerable filteredSchedules + { + get + { + var filtered = schedules.AsEnumerable(); + + if (!string.IsNullOrEmpty(selectedStatus)) + { + filtered = filtered.Where(s => s.Status == selectedStatus); + } + + if (filterDate.HasValue) + { + filtered = filtered.Where(s => s.Service?.ServiceDate.Date == filterDate.Value.Date); + } + + return filtered; + } + } + + protected override async Task OnInitializedAsync() + { + await LoadSchedules(); + } + + private async Task LoadSchedules() + { + try + { + loading = true; + schedules = await ApiService.GetSchedulesAsync(); + } + catch (Exception ex) + { + Console.WriteLine($"Error loading schedules: {ex.Message}"); + } + finally + { + loading = false; + } + } + + private string GetStatusBadgeClass(string status) + { + return status switch + { + "pending" => "bg-warning text-dark", + "accepted" => "bg-success", + "declined" => "bg-danger", + _ => "bg-secondary" + }; + } + + private async Task AcceptSchedule(int scheduleId) + { + try + { + await ApiService.AcceptScheduleAsync(scheduleId); + await LoadSchedules(); // Refresh the list + } + catch (Exception ex) + { + Console.WriteLine($"Error accepting schedule: {ex.Message}"); + } + } + + private void ShowDeclineModal(Schedule schedule) + { + scheduleToDecline = schedule; + declineReason = ""; + showDeclineModal = true; + } + + private void HideDeclineModal() + { + showDeclineModal = false; + scheduleToDecline = null; + declineReason = ""; + } + + private async Task ConfirmDecline() + { + if (scheduleToDecline != null) + { + try + { + await ApiService.DeclineScheduleAsync(scheduleToDecline.ScheduleId, declineReason); + await LoadSchedules(); // Refresh the list + HideDeclineModal(); + } + catch (Exception ex) + { + Console.WriteLine($"Error declining schedule: {ex.Message}"); + } + } + } + + private async Task ConfirmRemove(Schedule schedule) + { + var confirmed = await JSRuntime.InvokeAsync("confirm", $"Are you sure you want to remove the schedule for {schedule.Member?.FullName}?"); + if (confirmed) + { + try + { + var success = await ApiService.RemoveScheduleAsync(schedule.ScheduleId); + if (success) + { + await LoadSchedules(); // Refresh the list + } + } + catch (Exception ex) + { + Console.WriteLine($"Error removing schedule: {ex.Message}"); + } + } + } + + private void ClearFilters() + { + selectedStatus = ""; + filterDate = null; + } +} \ No newline at end of file diff --git a/frontend/Components/Pages/Services.razor b/frontend/Components/Pages/Services.razor new file mode 100644 index 0000000..ce0a094 --- /dev/null +++ b/frontend/Components/Pages/Services.razor @@ -0,0 +1,238 @@ +@page "/services" +@using NimbusFlow.Frontend.Services +@using NimbusFlow.Frontend.Models +@inject IApiService ApiService + +Services + +
+

Services

+ + Create Service + +
+ +@if (loading) +{ +
+
+ Loading... +
+
+} +else if (services.Any()) +{ + +
+
+ +
+
+ +
+
+
+ + +
+
+
+ +
+
+
+
+
+ + + + + + + + + + + + @foreach (var service in filteredServices.OrderBy(s => s.ServiceDate)) + { + + + + + + + + } + +
DateService TypeScheduled MembersStatusActions
+ @service.ServiceDate.ToString("MMM dd, yyyy (dddd)") + + + @service.ServiceTypeName + + + @{ + var serviceSchedules = schedules.Where(s => s.ServiceId == service.ServiceId).ToList(); + var acceptedCount = serviceSchedules.Count(s => s.Status == "accepted"); + var pendingCount = serviceSchedules.Count(s => s.Status == "pending"); + var declinedCount = serviceSchedules.Count(s => s.Status == "declined"); + } +
+ @if (acceptedCount > 0) + { + @acceptedCount accepted + } + @if (pendingCount > 0) + { + @pendingCount pending + } + @if (declinedCount > 0) + { + @declinedCount declined + } + @if (serviceSchedules.Count == 0) + { + No schedules + } +
+
+ @if (service.ServiceDate < DateTime.Today) + { + Past + } + else if (service.ServiceDate == DateTime.Today) + { + Today + } + else + { + Upcoming + } + +
+ View + @if (service.ServiceDate >= DateTime.Today) + { + Schedule + Edit + } +
+
+
+
+
+
+
+ +
+
+ + Showing @filteredServices.Count() of @services.Count services + +
+
+} +else +{ +
+
+

No Services Found

+

There are currently no services in the system.

+ Create Your First Service +
+
+} + +@code { + private List services = new(); + private List serviceTypes = new(); + private List schedules = new(); + private bool loading = true; + private string selectedServiceType = ""; + private DateTime? filterDate; + private bool showPastServices = false; + + private IEnumerable filteredServices + { + get + { + var filtered = services.AsEnumerable(); + + if (!showPastServices) + { + filtered = filtered.Where(s => s.ServiceDate >= DateTime.Today); + } + + if (!string.IsNullOrEmpty(selectedServiceType) && int.TryParse(selectedServiceType, out int typeId)) + { + filtered = filtered.Where(s => s.ServiceTypeId == typeId); + } + + if (filterDate.HasValue) + { + filtered = filtered.Where(s => s.ServiceDate.Date == filterDate.Value.Date); + } + + return filtered; + } + } + + protected override async Task OnInitializedAsync() + { + await LoadData(); + } + + private async Task LoadData() + { + try + { + loading = true; + + // Load all data in parallel + var servicesTask = ApiService.GetServicesAsync(); + var serviceTypesTask = ApiService.GetServiceTypesAsync(); + var schedulesTask = ApiService.GetSchedulesAsync(); + + await Task.WhenAll(servicesTask, serviceTypesTask, schedulesTask); + + services = servicesTask.Result; + serviceTypes = serviceTypesTask.Result; + schedules = schedulesTask.Result; + + // Map service type names to services + foreach (var service in services) + { + var serviceType = serviceTypes.FirstOrDefault(st => st.ServiceTypeId == service.ServiceTypeId); + service.ServiceTypeName = serviceType?.TypeName ?? "Unknown"; + } + } + catch (Exception ex) + { + Console.WriteLine($"Error loading services data: {ex.Message}"); + } + finally + { + loading = false; + } + } + + private string GetServiceTypeBadgeClass(string? serviceTypeName) + { + return serviceTypeName switch + { + "9AM" => "bg-info", + "11AM" => "bg-primary", + "6PM" => "bg-dark", + _ => "bg-secondary" + }; + } +} \ No newline at end of file diff --git a/frontend/Components/Routes.razor b/frontend/Components/Routes.razor new file mode 100644 index 0000000..f756e19 --- /dev/null +++ b/frontend/Components/Routes.razor @@ -0,0 +1,6 @@ + + + + + + diff --git a/frontend/Components/_Imports.razor b/frontend/Components/_Imports.razor new file mode 100644 index 0000000..579a3bd --- /dev/null +++ b/frontend/Components/_Imports.razor @@ -0,0 +1,10 @@ +@using System.Net.Http +@using System.Net.Http.Json +@using Microsoft.AspNetCore.Components.Forms +@using Microsoft.AspNetCore.Components.Routing +@using Microsoft.AspNetCore.Components.Web +@using static Microsoft.AspNetCore.Components.Web.RenderMode +@using Microsoft.AspNetCore.Components.Web.Virtualization +@using Microsoft.JSInterop +@using NimbusFlow.Frontend +@using NimbusFlow.Frontend.Components diff --git a/frontend/Models/Member.cs b/frontend/Models/Member.cs new file mode 100644 index 0000000..fddf6c6 --- /dev/null +++ b/frontend/Models/Member.cs @@ -0,0 +1,59 @@ +namespace NimbusFlow.Frontend.Models +{ + public class Member + { + public int MemberId { get; set; } + public string FirstName { get; set; } = string.Empty; + public string LastName { get; set; } = string.Empty; + public string? Email { get; set; } + public string? PhoneNumber { get; set; } + public int? ClassificationId { get; set; } + public string? Notes { get; set; } + public bool IsActive { get; set; } = true; + public DateTime? LastScheduledAt { get; set; } + public DateTime? LastAcceptedAt { get; set; } + public DateTime? LastDeclinedAt { get; set; } + public int DeclineStreak { get; set; } = 0; + + // Navigation properties + public string? ClassificationName { get; set; } + public string FullName => $"{FirstName} {LastName}"; + } + + public class Classification + { + public int ClassificationId { get; set; } + public string ClassificationName { get; set; } = string.Empty; + } + + public class Service + { + public int ServiceId { get; set; } + public int ServiceTypeId { get; set; } + public DateTime ServiceDate { get; set; } + public string? ServiceTypeName { get; set; } + } + + public class ServiceType + { + public int ServiceTypeId { get; set; } + public string TypeName { get; set; } = string.Empty; + } + + public class Schedule + { + public int ScheduleId { get; set; } + public int ServiceId { get; set; } + public int MemberId { get; set; } + public string Status { get; set; } = string.Empty; // pending, accepted, declined + public DateTime ScheduledAt { get; set; } + public DateTime? AcceptedAt { get; set; } + public DateTime? DeclinedAt { get; set; } + public DateTime? ExpiresAt { get; set; } + public string? DeclineReason { get; set; } + + // Navigation properties + public Member? Member { get; set; } + public Service? Service { get; set; } + } +} \ No newline at end of file diff --git a/frontend/NimbusFlow.Frontend.csproj b/frontend/NimbusFlow.Frontend.csproj new file mode 100644 index 0000000..1b28a01 --- /dev/null +++ b/frontend/NimbusFlow.Frontend.csproj @@ -0,0 +1,9 @@ + + + + net8.0 + enable + enable + + + diff --git a/frontend/Program.cs b/frontend/Program.cs new file mode 100644 index 0000000..bab3840 --- /dev/null +++ b/frontend/Program.cs @@ -0,0 +1,36 @@ +using NimbusFlow.Frontend.Components; +using NimbusFlow.Frontend.Services; + +var builder = WebApplication.CreateBuilder(args); + +// Add services to the container. +builder.Services.AddRazorComponents() + .AddInteractiveServerComponents(); + +// Add HTTP client for backend API communication +builder.Services.AddHttpClient(client => +{ + client.BaseAddress = new Uri("http://localhost:8000/api/"); // Python backend API endpoint +}); + +builder.Services.AddScoped(); + +var app = builder.Build(); + +// Configure the HTTP request pipeline. +if (!app.Environment.IsDevelopment()) +{ + app.UseExceptionHandler("/Error", createScopeForErrors: true); + // 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.UseAntiforgery(); + +app.MapRazorComponents() + .AddInteractiveServerRenderMode(); + +app.Run(); diff --git a/frontend/Properties/launchSettings.json b/frontend/Properties/launchSettings.json new file mode 100644 index 0000000..97b4d14 --- /dev/null +++ b/frontend/Properties/launchSettings.json @@ -0,0 +1,38 @@ +{ + "$schema": "http://json.schemastore.org/launchsettings.json", + "iisSettings": { + "windowsAuthentication": false, + "anonymousAuthentication": true, + "iisExpress": { + "applicationUrl": "http://localhost:4068", + "sslPort": 44352 + } + }, + "profiles": { + "http": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "http://localhost:5059", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "https": { + "commandName": "Project", + "dotnetRunMessages": true, + "launchBrowser": true, + "applicationUrl": "https://localhost:7176;http://localhost:5059", + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + }, + "IIS Express": { + "commandName": "IISExpress", + "launchBrowser": true, + "environmentVariables": { + "ASPNETCORE_ENVIRONMENT": "Development" + } + } + } + } diff --git a/frontend/README.md b/frontend/README.md index 7959ce4..e8bdd4d 100644 --- a/frontend/README.md +++ b/frontend/README.md @@ -1,69 +1,127 @@ -# React + TypeScript + Vite +# NimbusFlow Frontend - Blazor Server Application -This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules. +A modern web application built with .NET 8 Blazor Server for managing member scheduling in the NimbusFlow system. -Currently, two official plugins are available: +## Features -- [@vitejs/plugin-react](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react) uses [Babel](https://babeljs.io/) for Fast Refresh -- [@vitejs/plugin-react-swc](https://github.com/vitejs/vite-plugin-react/blob/main/packages/plugin-react-swc) uses [SWC](https://swc.rs/) for Fast Refresh +- **Dashboard**: Overview of system statistics and recent activities +- **Member Management**: Complete CRUD operations for choir members +- **Schedule Management**: View, accept, decline, and manage member schedules +- **Service Management**: Create and manage service events +- **Real-time Updates**: Server-side rendering with SignalR for real-time updates +- **Responsive Design**: Bootstrap-based UI that works on all devices -## Expanding the ESLint configuration +## Architecture -If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules: +This Blazor Server application follows a clean architecture pattern: -```js -export default tseslint.config([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... +- **Components/Pages**: Razor components for each major feature +- **Services**: HTTP client services for backend API communication +- **Models**: C# data models matching the Python backend schema +- **Layout**: Consistent navigation and layout components - // Remove tseslint.configs.recommended and replace with this - ...tseslint.configs.recommendedTypeChecked, - // Alternatively, use this for stricter rules - ...tseslint.configs.strictTypeChecked, - // Optionally, add this for stylistic rules - ...tseslint.configs.stylisticTypeChecked, +## Prerequisites - // Other configs... - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) +- .NET 8.0 SDK +- Python backend API running on http://localhost:8000/api/ + +## Getting Started + +1. **Restore packages**: + ```bash + dotnet restore + ``` + +2. **Run the application**: + ```bash + dotnet watch # with hot reload + # or + dotnet run # without hot reload + ``` + +3. **Access the application**: + - HTTPS: https://localhost:5001 + - HTTP: http://localhost:5000 + +## API Configuration + +The application is configured to communicate with the Python backend API. Update the base URL in `Program.cs` if your backend runs on a different port: + +```csharp +builder.Services.AddHttpClient(client => +{ + client.BaseAddress = new Uri("http://localhost:8000/api/"); +}); ``` -You can also install [eslint-plugin-react-x](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-x) and [eslint-plugin-react-dom](https://github.com/Rel1cx/eslint-react/tree/main/packages/plugins/eslint-plugin-react-dom) for React-specific lint rules: +## Project Structure -```js -// eslint.config.js -import reactX from 'eslint-plugin-react-x' -import reactDom from 'eslint-plugin-react-dom' - -export default tseslint.config([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - // Other configs... - // Enable lint rules for React - reactX.configs['recommended-typescript'], - // Enable lint rules for React DOM - reactDom.configs.recommended, - ], - languageOptions: { - parserOptions: { - project: ['./tsconfig.node.json', './tsconfig.app.json'], - tsconfigRootDir: import.meta.dirname, - }, - // other options... - }, - }, -]) ``` +├── Components/ +│ ├── Layout/ +│ │ ├── MainLayout.razor # Main page layout +│ │ └── NavMenu.razor # Navigation menu +│ └── Pages/ +│ ├── Home.razor # Dashboard page +│ ├── Members.razor # Member management +│ ├── Schedules.razor # Schedule management +│ └── Services.razor # Service management +├── Models/ +│ └── Member.cs # Data models +├── Services/ +│ ├── IApiService.cs # Service interface +│ └── ApiService.cs # HTTP API client +├── wwwroot/ # Static files +├── Program.cs # Application startup +└── appsettings.json # Configuration +``` + +## Key Features + +### Dashboard +- System statistics (active members, pending schedules, etc.) +- Recent schedule activities +- Quick action buttons + +### Member Management +- List all members with filtering options +- Add/edit member information +- View member scheduling history +- Manage member classifications + +### Schedule Management +- View all schedules with filtering +- Accept/decline pending schedules +- Remove schedules +- View schedule details + +### Service Management +- Create and manage service events +- View service schedules and assignments +- Filter by date and service type + +## Development + +The application uses Blazor Server which provides: + +- Real-time UI updates via SignalR +- Server-side rendering for better performance +- C# development throughout the stack +- Automatic state management + +## Deployment + +To build for production: + +```bash +dotnet publish -c Release +``` + +The published application will be in `bin/Release/net8.0/publish/`. + +## Dependencies + +- ASP.NET Core 8.0 +- Blazor Server +- Bootstrap 5 (included in template) +- System.Text.Json for API serialization \ No newline at end of file diff --git a/frontend/Services/ApiService.cs b/frontend/Services/ApiService.cs new file mode 100644 index 0000000..e35ddd2 --- /dev/null +++ b/frontend/Services/ApiService.cs @@ -0,0 +1,182 @@ +using System.Text; +using System.Text.Json; +using NimbusFlow.Frontend.Models; + +namespace NimbusFlow.Frontend.Services +{ + public class ApiService : IApiService + { + private readonly HttpClient _httpClient; + private readonly JsonSerializerOptions _jsonOptions; + + public ApiService(HttpClient httpClient) + { + _httpClient = httpClient; + _jsonOptions = new JsonSerializerOptions + { + PropertyNamingPolicy = JsonNamingPolicy.CamelCase, + PropertyNameCaseInsensitive = true + }; + } + + // Member operations + public async Task> GetMembersAsync() + { + var response = await _httpClient.GetAsync("members"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List(); + } + + public async Task GetMemberAsync(int id) + { + var response = await _httpClient.GetAsync($"members/{id}"); + if (response.StatusCode == System.Net.HttpStatusCode.NotFound) + return null; + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(json, _jsonOptions); + } + + public async Task CreateMemberAsync(Member member) + { + var json = JsonSerializer.Serialize(member, _jsonOptions); + var content = new StringContent(json, Encoding.UTF8, "application/json"); + var response = await _httpClient.PostAsync("members", content); + response.EnsureSuccessStatusCode(); + var responseJson = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseJson, _jsonOptions) ?? member; + } + + public async Task UpdateMemberAsync(Member member) + { + var json = JsonSerializer.Serialize(member, _jsonOptions); + var content = new StringContent(json, Encoding.UTF8, "application/json"); + var response = await _httpClient.PutAsync($"members/{member.MemberId}", content); + response.EnsureSuccessStatusCode(); + var responseJson = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseJson, _jsonOptions) ?? member; + } + + public async Task DeleteMemberAsync(int id) + { + var response = await _httpClient.DeleteAsync($"members/{id}"); + return response.IsSuccessStatusCode; + } + + // Classification operations + public async Task> GetClassificationsAsync() + { + var response = await _httpClient.GetAsync("classifications"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List(); + } + + // Service operations + public async Task> GetServicesAsync() + { + var response = await _httpClient.GetAsync("services"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List(); + } + + public async Task GetServiceAsync(int id) + { + var response = await _httpClient.GetAsync($"services/{id}"); + if (response.StatusCode == System.Net.HttpStatusCode.NotFound) + return null; + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(json, _jsonOptions); + } + + public async Task CreateServiceAsync(Service service) + { + var json = JsonSerializer.Serialize(service, _jsonOptions); + var content = new StringContent(json, Encoding.UTF8, "application/json"); + var response = await _httpClient.PostAsync("services", content); + response.EnsureSuccessStatusCode(); + var responseJson = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseJson, _jsonOptions) ?? service; + } + + // Schedule operations + public async Task> GetSchedulesAsync() + { + var response = await _httpClient.GetAsync("schedules"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List(); + } + + public async Task> GetMemberSchedulesAsync(int memberId) + { + var response = await _httpClient.GetAsync($"members/{memberId}/schedules"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List(); + } + + public async Task GetScheduleAsync(int id) + { + var response = await _httpClient.GetAsync($"schedules/{id}"); + if (response.StatusCode == System.Net.HttpStatusCode.NotFound) + return null; + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(json, _jsonOptions); + } + + public async Task AcceptScheduleAsync(int scheduleId) + { + var response = await _httpClient.PostAsync($"schedules/{scheduleId}/accept", null); + response.EnsureSuccessStatusCode(); + var responseJson = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseJson, _jsonOptions) ?? new Schedule(); + } + + public async Task DeclineScheduleAsync(int scheduleId, string? reason = null) + { + var content = new StringContent( + JsonSerializer.Serialize(new { reason }, _jsonOptions), + Encoding.UTF8, + "application/json" + ); + var response = await _httpClient.PostAsync($"schedules/{scheduleId}/decline", content); + response.EnsureSuccessStatusCode(); + var responseJson = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseJson, _jsonOptions) ?? new Schedule(); + } + + public async Task RemoveScheduleAsync(int scheduleId) + { + var response = await _httpClient.DeleteAsync($"schedules/{scheduleId}"); + return response.IsSuccessStatusCode; + } + + public async Task ScheduleNextMemberAsync(int serviceId, List classificationIds) + { + var content = new StringContent( + JsonSerializer.Serialize(new { serviceId, classificationIds }, _jsonOptions), + Encoding.UTF8, + "application/json" + ); + var response = await _httpClient.PostAsync("schedules/schedule-next", content); + if (response.StatusCode == System.Net.HttpStatusCode.NotFound) + return null; + response.EnsureSuccessStatusCode(); + var responseJson = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize(responseJson, _jsonOptions); + } + + public async Task> GetServiceTypesAsync() + { + var response = await _httpClient.GetAsync("service-types"); + response.EnsureSuccessStatusCode(); + var json = await response.Content.ReadAsStringAsync(); + return JsonSerializer.Deserialize>(json, _jsonOptions) ?? new List(); + } + } +} \ No newline at end of file diff --git a/frontend/Services/IApiService.cs b/frontend/Services/IApiService.cs new file mode 100644 index 0000000..e9d0a26 --- /dev/null +++ b/frontend/Services/IApiService.cs @@ -0,0 +1,36 @@ +using NimbusFlow.Frontend.Models; + +namespace NimbusFlow.Frontend.Services +{ + public interface IApiService + { + // Member operations + Task> GetMembersAsync(); + Task GetMemberAsync(int id); + Task CreateMemberAsync(Member member); + Task UpdateMemberAsync(Member member); + Task DeleteMemberAsync(int id); + + // Classification operations + Task> GetClassificationsAsync(); + + // Service operations + Task> GetServicesAsync(); + Task GetServiceAsync(int id); + Task CreateServiceAsync(Service service); + + // Schedule operations + Task> GetSchedulesAsync(); + Task> GetMemberSchedulesAsync(int memberId); + Task GetScheduleAsync(int id); + Task AcceptScheduleAsync(int scheduleId); + Task DeclineScheduleAsync(int scheduleId, string? reason = null); + Task RemoveScheduleAsync(int scheduleId); + + // Scheduling operations + Task ScheduleNextMemberAsync(int serviceId, List classificationIds); + + // Service Types + Task> GetServiceTypesAsync(); + } +} \ No newline at end of file diff --git a/frontend/appsettings.Development.json b/frontend/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/frontend/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/frontend/appsettings.json b/frontend/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/frontend/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/frontend/bin/Debug/net8.0/NimbusFlow.Frontend b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend new file mode 100755 index 0000000..087a090 Binary files /dev/null and b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend differ diff --git a/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.deps.json b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.deps.json new file mode 100644 index 0000000..1497317 --- /dev/null +++ b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.deps.json @@ -0,0 +1,23 @@ +{ + "runtimeTarget": { + "name": ".NETCoreApp,Version=v8.0", + "signature": "" + }, + "compilationOptions": {}, + "targets": { + ".NETCoreApp,Version=v8.0": { + "NimbusFlow.Frontend/1.0.0": { + "runtime": { + "NimbusFlow.Frontend.dll": {} + } + } + } + }, + "libraries": { + "NimbusFlow.Frontend/1.0.0": { + "type": "project", + "serviceable": false, + "sha512": "" + } + } +} \ No newline at end of file diff --git a/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.dll b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.dll new file mode 100644 index 0000000..c344992 Binary files /dev/null and b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.dll differ diff --git a/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.pdb b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.pdb new file mode 100644 index 0000000..22330b0 Binary files /dev/null and b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.pdb differ diff --git a/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.runtimeconfig.json b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.runtimeconfig.json new file mode 100644 index 0000000..5e604c7 --- /dev/null +++ b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.runtimeconfig.json @@ -0,0 +1,19 @@ +{ + "runtimeOptions": { + "tfm": "net8.0", + "frameworks": [ + { + "name": "Microsoft.NETCore.App", + "version": "8.0.0" + }, + { + "name": "Microsoft.AspNetCore.App", + "version": "8.0.0" + } + ], + "configProperties": { + "System.GC.Server": true, + "System.Runtime.Serialization.EnableUnsafeBinaryFormatterSerialization": false + } + } +} \ No newline at end of file diff --git a/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.staticwebassets.runtime.json b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.staticwebassets.runtime.json new file mode 100644 index 0000000..a124378 --- /dev/null +++ b/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.staticwebassets.runtime.json @@ -0,0 +1 @@ +{"ContentRoots":["/home/t2/Development/nimbusflow/frontend/wwwroot/","/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/"],"Root":{"Children":{"app.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"app.css"},"Patterns":null},"bootstrap":{"Children":{"bootstrap.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css"},"Patterns":null},"bootstrap.min.css.map":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css.map"},"Patterns":null}},"Asset":null,"Patterns":null},"favicon.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"favicon.png"},"Patterns":null},"NimbusFlow.Frontend.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"NimbusFlow.Frontend.styles.css"},"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}} \ No newline at end of file diff --git a/frontend/bin/Debug/net8.0/appsettings.Development.json b/frontend/bin/Debug/net8.0/appsettings.Development.json new file mode 100644 index 0000000..0c208ae --- /dev/null +++ b/frontend/bin/Debug/net8.0/appsettings.Development.json @@ -0,0 +1,8 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + } +} diff --git a/frontend/bin/Debug/net8.0/appsettings.json b/frontend/bin/Debug/net8.0/appsettings.json new file mode 100644 index 0000000..10f68b8 --- /dev/null +++ b/frontend/bin/Debug/net8.0/appsettings.json @@ -0,0 +1,9 @@ +{ + "Logging": { + "LogLevel": { + "Default": "Information", + "Microsoft.AspNetCore": "Warning" + } + }, + "AllowedHosts": "*" +} diff --git a/frontend/eslint.config.js b/frontend/eslint.config.js deleted file mode 100644 index d94e7de..0000000 --- a/frontend/eslint.config.js +++ /dev/null @@ -1,23 +0,0 @@ -import js from '@eslint/js' -import globals from 'globals' -import reactHooks from 'eslint-plugin-react-hooks' -import reactRefresh from 'eslint-plugin-react-refresh' -import tseslint from 'typescript-eslint' -import { globalIgnores } from 'eslint/config' - -export default tseslint.config([ - globalIgnores(['dist']), - { - files: ['**/*.{ts,tsx}'], - extends: [ - js.configs.recommended, - tseslint.configs.recommended, - reactHooks.configs['recommended-latest'], - reactRefresh.configs.vite, - ], - languageOptions: { - ecmaVersion: 2020, - globals: globals.browser, - }, - }, -]) diff --git a/frontend/index.html b/frontend/index.html deleted file mode 100644 index e4b78ea..0000000 --- a/frontend/index.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - Vite + React + TS - - -
- - - diff --git a/frontend/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs b/frontend/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs new file mode 100644 index 0000000..2217181 --- /dev/null +++ b/frontend/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs @@ -0,0 +1,4 @@ +// +using System; +using System.Reflection; +[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")] diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfo.cs b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfo.cs new file mode 100644 index 0000000..c37c006 --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfo.cs @@ -0,0 +1,22 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +using System; +using System.Reflection; + +[assembly: System.Reflection.AssemblyCompanyAttribute("NimbusFlow.Frontend")] +[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] +[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+3b9c074bc7f40cf57f01ecdca33cb850ee4eb7dc")] +[assembly: System.Reflection.AssemblyProductAttribute("NimbusFlow.Frontend")] +[assembly: System.Reflection.AssemblyTitleAttribute("NimbusFlow.Frontend")] +[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] + +// Generated by the MSBuild WriteCodeFragment class. + diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfoInputs.cache b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfoInputs.cache new file mode 100644 index 0000000..ec34ba0 --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfoInputs.cache @@ -0,0 +1 @@ +903b0bd78cb44f079d9cac7109f5762d014e600b7d6925e89a6fe451b40172ed diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GeneratedMSBuildEditorConfig.editorconfig b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GeneratedMSBuildEditorConfig.editorconfig new file mode 100644 index 0000000..2518dfc --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GeneratedMSBuildEditorConfig.editorconfig @@ -0,0 +1,59 @@ +is_global = true +build_property.TargetFramework = net8.0 +build_property.TargetPlatformMinVersion = +build_property.UsingMicrosoftNETSdkWeb = true +build_property.ProjectTypeGuids = +build_property.InvariantGlobalization = +build_property.PlatformNeutralAssembly = +build_property.EnforceExtendedAnalyzerRules = +build_property._SupportedPlatformList = Linux,macOS,Windows +build_property.RootNamespace = NimbusFlow.Frontend +build_property.RootNamespace = NimbusFlow.Frontend +build_property.ProjectDir = /home/t2/Development/nimbusflow/frontend/ +build_property.EnableComHosting = +build_property.EnableGeneratedComInterfaceComImportInterop = +build_property.RazorLangVersion = 8.0 +build_property.SupportLocalizedComponentNames = +build_property.GenerateRazorMetadataSourceChecksumAttributes = +build_property.MSBuildProjectDirectory = /home/t2/Development/nimbusflow/frontend +build_property._RazorSourceGeneratorDebug = + +[/home/t2/Development/nimbusflow/frontend/Components/App.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9BcHAucmF6b3I= +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Pages/Error.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9FcnJvci5yYXpvcg== +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Pages/Home.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9Ib21lLnJhem9y +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Pages/Members.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9NZW1iZXJzLnJhem9y +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Pages/Schedules.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9TY2hlZHVsZXMucmF6b3I= +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Pages/Services.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9QYWdlcy9TZXJ2aWNlcy5yYXpvcg== +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Routes.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9Sb3V0ZXMucmF6b3I= +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/_Imports.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9fSW1wb3J0cy5yYXpvcg== +build_metadata.AdditionalFiles.CssScope = + +[/home/t2/Development/nimbusflow/frontend/Components/Layout/MainLayout.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9MYXlvdXQvTWFpbkxheW91dC5yYXpvcg== +build_metadata.AdditionalFiles.CssScope = b-9xz5ehm10w + +[/home/t2/Development/nimbusflow/frontend/Components/Layout/NavMenu.razor] +build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50cy9MYXlvdXQvTmF2TWVudS5yYXpvcg== +build_metadata.AdditionalFiles.CssScope = b-qjlejshrrx diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GlobalUsings.g.cs b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GlobalUsings.g.cs new file mode 100644 index 0000000..025530a --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.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/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.MvcApplicationPartsAssemblyInfo.cache b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.MvcApplicationPartsAssemblyInfo.cache new file mode 100644 index 0000000..e69de29 diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.assets.cache b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.assets.cache new file mode 100644 index 0000000..887c06d Binary files /dev/null and b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.assets.cache differ diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.CoreCompileInputs.cache b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.CoreCompileInputs.cache new file mode 100644 index 0000000..71ed819 --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.CoreCompileInputs.cache @@ -0,0 +1 @@ +27628f432c885c6d6664e08021d1b1f4ca5058cc599948362511b2ad9f9fbc8f diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.FileListAbsolute.txt b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.FileListAbsolute.txt new file mode 100644 index 0000000..4dde233 --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.FileListAbsolute.txt @@ -0,0 +1,29 @@ +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GeneratedMSBuildEditorConfig.editorconfig +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfoInputs.cache +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfo.cs +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.CoreCompileInputs.cache +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.MvcApplicationPartsAssemblyInfo.cache +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/appsettings.Development.json +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/appsettings.json +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.staticwebassets.runtime.json +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.deps.json +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.runtimeconfig.json +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.dll +/home/t2/Development/nimbusflow/frontend/bin/Debug/net8.0/NimbusFlow.Frontend.pdb +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets.build.json +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets.development.json +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/staticwebassets.pack.json +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/MainLayout.razor.rz.scp.css +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/NavMenu.razor.rz.scp.css +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.dll +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/refint/NimbusFlow.Frontend.dll +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.pdb +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.genruntimeconfig.cache +/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/ref/NimbusFlow.Frontend.dll diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.dll b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.dll new file mode 100644 index 0000000..c344992 Binary files /dev/null and b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.dll differ diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.genruntimeconfig.cache b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.genruntimeconfig.cache new file mode 100644 index 0000000..2d6c7ce --- /dev/null +++ b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.genruntimeconfig.cache @@ -0,0 +1 @@ +3f75a48d851e3753676d6adc9e3697efe55d6269084946619fd7f2b230a66010 diff --git a/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.pdb b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.pdb new file mode 100644 index 0000000..22330b0 Binary files /dev/null and b/frontend/obj/Debug/net8.0/NimbusFlow.Frontend.pdb differ diff --git a/frontend/obj/Debug/net8.0/apphost b/frontend/obj/Debug/net8.0/apphost new file mode 100755 index 0000000..087a090 Binary files /dev/null and b/frontend/obj/Debug/net8.0/apphost differ diff --git a/frontend/obj/Debug/net8.0/project.razor.json b/frontend/obj/Debug/net8.0/project.razor.json new file mode 100644 index 0000000..162d03f --- /dev/null +++ b/frontend/obj/Debug/net8.0/project.razor.json @@ -0,0 +1,19785 @@ +{ + "SerializedFilePath": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/project.razor.json", + "FilePath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj", + "Configuration": { + "ConfigurationName": "MVC-3.0", + "LanguageVersion": "8.0", + "Extensions": [ + { + "ExtensionName": "MVC-3.0" + } + ] + }, + "ProjectWorkspaceState": { + "TagHelpers": [ + { + "HashCode": 1351590547, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.App", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "App" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.App", + "Common.TypeNameIdentifier": "App", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1611459765, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.App", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.App" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.App", + "Common.TypeNameIdentifier": "App", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -2069060936, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Error", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Error" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Error", + "Common.TypeNameIdentifier": "Error", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1991049094, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Error", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Pages.Error" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Error", + "Common.TypeNameIdentifier": "Error", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -2144364343, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Home", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Home" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Home", + "Common.TypeNameIdentifier": "Home", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1186783435, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Home", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Pages.Home" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Home", + "Common.TypeNameIdentifier": "Home", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -675494998, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Members", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Members" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Members", + "Common.TypeNameIdentifier": "Members", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1973361225, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Members", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Pages.Members" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Members", + "Common.TypeNameIdentifier": "Members", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -91000995, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Schedules", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Schedules" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Schedules", + "Common.TypeNameIdentifier": "Schedules", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1471417726, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Schedules", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Pages.Schedules" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Schedules", + "Common.TypeNameIdentifier": "Schedules", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 188835360, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Services", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Services" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Services", + "Common.TypeNameIdentifier": "Services", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -738274295, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Pages.Services", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Pages.Services" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Pages.Services", + "Common.TypeNameIdentifier": "Services", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Pages", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1190230256, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Routes", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Routes" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Routes", + "Common.TypeNameIdentifier": "Routes", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 477279312, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Routes", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Routes" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Routes", + "Common.TypeNameIdentifier": "Routes", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 291502412, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Layout.MainLayout", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "MainLayout" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "Body", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n Gets the content to be rendered inside the layout.\n \n ", + "Metadata": { + "Common.PropertyName": "Body", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Layout.MainLayout", + "Common.TypeNameIdentifier": "MainLayout", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Layout", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1624477284, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Layout.MainLayout", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Layout.MainLayout" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "Body", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n Gets the content to be rendered inside the layout.\n \n ", + "Metadata": { + "Common.PropertyName": "Body", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Layout.MainLayout", + "Common.TypeNameIdentifier": "MainLayout", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Layout", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1717773504, + "Kind": "Components.ChildContent", + "Name": "NimbusFlow.Frontend.Components.Layout.MainLayout.Body", + "AssemblyName": "NimbusFlow.Frontend", + "Documentation": "\n \n Gets the content to be rendered inside the layout.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Body", + "ParentTag": "MainLayout" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Layout.MainLayout.Body", + "Common.TypeNameIdentifier": "MainLayout", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Layout", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -21477129, + "Kind": "Components.ChildContent", + "Name": "NimbusFlow.Frontend.Components.Layout.MainLayout.Body", + "AssemblyName": "NimbusFlow.Frontend", + "Documentation": "\n \n Gets the content to be rendered inside the layout.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Body", + "ParentTag": "NimbusFlow.Frontend.Components.Layout.MainLayout" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Layout.MainLayout.Body", + "Common.TypeNameIdentifier": "MainLayout", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Layout", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -2108236767, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Layout.NavMenu", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NavMenu" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Layout.NavMenu", + "Common.TypeNameIdentifier": "NavMenu", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Layout", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1547345878, + "Kind": "Components.Component", + "Name": "NimbusFlow.Frontend.Components.Layout.NavMenu", + "AssemblyName": "NimbusFlow.Frontend", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NimbusFlow.Frontend.Components.Layout.NavMenu" + } + ], + "Metadata": { + "Common.TypeName": "NimbusFlow.Frontend.Components.Layout.NavMenu", + "Common.TypeNameIdentifier": "NavMenu", + "Common.TypeNamespace": "NimbusFlow.Frontend.Components.Layout", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1125193513, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n Combines the behaviors of and ,\n so that it displays the page matching the specified route but only if the user\n is authorized to see it.\n \n Additionally, this component supplies a cascading parameter of type ,\n which makes the user's current authentication state available to descendants.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "AuthorizeRouteView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "NotAuthorized", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "Metadata": { + "Common.PropertyName": "NotAuthorized", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Authorizing", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "Metadata": { + "Common.PropertyName": "Authorizing", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Resource", + "TypeName": "System.Object", + "Documentation": "\n \n The resource to which access is being controlled.\n \n ", + "Metadata": { + "Common.PropertyName": "Resource", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + }, + { + "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" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView", + "Common.TypeNameIdentifier": "AuthorizeRouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1353204411, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n Combines the behaviors of and ,\n so that it displays the page matching the specified route but only if the user\n is authorized to see it.\n \n Additionally, this component supplies a cascading parameter of type ,\n which makes the user's current authentication state available to descendants.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "NotAuthorized", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "Metadata": { + "Common.PropertyName": "NotAuthorized", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Authorizing", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "Metadata": { + "Common.PropertyName": "Authorizing", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Resource", + "TypeName": "System.Object", + "Documentation": "\n \n The resource to which access is being controlled.\n \n ", + "Metadata": { + "Common.PropertyName": "Resource", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + }, + { + "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" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView", + "Common.TypeNameIdentifier": "AuthorizeRouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 28551808, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.NotAuthorized", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NotAuthorized", + "ParentTag": "AuthorizeRouteView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.ChildContent", + "Name": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for the 'NotAuthorized' child content expression.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.NotAuthorized", + "Common.TypeNameIdentifier": "AuthorizeRouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 943671478, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.NotAuthorized", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NotAuthorized", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.ChildContent", + "Name": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for the 'NotAuthorized' child content expression.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.NotAuthorized", + "Common.TypeNameIdentifier": "AuthorizeRouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1180342159, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.Authorizing", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Authorizing", + "ParentTag": "AuthorizeRouteView" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.Authorizing", + "Common.TypeNameIdentifier": "AuthorizeRouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -568322930, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.Authorizing", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Authorizing", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeRouteView.Authorizing", + "Common.TypeNameIdentifier": "AuthorizeRouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1417296353, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n Displays differing content depending on the user's authorization status.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "AuthorizeView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "Policy", + "TypeName": "System.String", + "Documentation": "\n \n The policy name that determines whether the content can be displayed.\n \n ", + "Metadata": { + "Common.PropertyName": "Policy", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "Roles", + "TypeName": "System.String", + "Documentation": "\n \n A comma delimited list of roles that are allowed to display the content.\n \n ", + "Metadata": { + "Common.PropertyName": "Roles", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "ChildContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n \n ", + "Metadata": { + "Common.PropertyName": "ChildContent", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "NotAuthorized", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "Metadata": { + "Common.PropertyName": "NotAuthorized", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Authorized", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n If you specify a value for this parameter, do not also specify a value for .\n \n ", + "Metadata": { + "Common.PropertyName": "Authorized", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Authorizing", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "Metadata": { + "Common.PropertyName": "Authorizing", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Resource", + "TypeName": "System.Object", + "Documentation": "\n \n The resource to which access is being controlled.\n \n ", + "Metadata": { + "Common.PropertyName": "Resource", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -579165101, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n Displays differing content depending on the user's authorization status.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "Policy", + "TypeName": "System.String", + "Documentation": "\n \n The policy name that determines whether the content can be displayed.\n \n ", + "Metadata": { + "Common.PropertyName": "Policy", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "Roles", + "TypeName": "System.String", + "Documentation": "\n \n A comma delimited list of roles that are allowed to display the content.\n \n ", + "Metadata": { + "Common.PropertyName": "Roles", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "ChildContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n \n ", + "Metadata": { + "Common.PropertyName": "ChildContent", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "NotAuthorized", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "Metadata": { + "Common.PropertyName": "NotAuthorized", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Authorized", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n If you specify a value for this parameter, do not also specify a value for .\n \n ", + "Metadata": { + "Common.PropertyName": "Authorized", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Authorizing", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "Metadata": { + "Common.PropertyName": "Authorizing", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "Resource", + "TypeName": "System.Object", + "Documentation": "\n \n The resource to which access is being controlled.\n \n ", + "Metadata": { + "Common.PropertyName": "Resource", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 691741384, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.ChildContent", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "ChildContent", + "ParentTag": "AuthorizeView" + } + ], + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.ChildContent", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 149689968, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.ChildContent", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "ChildContent", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView" + } + ], + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.ChildContent", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1896163030, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.NotAuthorized", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NotAuthorized", + "ParentTag": "AuthorizeView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.ChildContent", + "Name": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for the 'NotAuthorized' child content expression.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.NotAuthorized", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1983295909, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.NotAuthorized", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is not authorized.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NotAuthorized", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.ChildContent", + "Name": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for the 'NotAuthorized' child content expression.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.NotAuthorized", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1327754506, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorized", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n If you specify a value for this parameter, do not also specify a value for .\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Authorized", + "ParentTag": "AuthorizeView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.ChildContent", + "Name": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for the 'Authorized' child content expression.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorized", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -776777801, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorized", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed if the user is authorized.\n If you specify a value for this parameter, do not also specify a value for .\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Authorized", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.ChildContent", + "Name": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for the 'Authorized' child content expression.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorized", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 619656593, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorizing", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Authorizing", + "ParentTag": "AuthorizeView" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorizing", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -693044280, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorizing", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content that will be displayed while asynchronous authorization is in progress.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Authorizing", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.AuthorizeView.Authorizing", + "Common.TypeNameIdentifier": "AuthorizeView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1723033981, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "CascadingAuthenticationState" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "ChildContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content to which the authentication state should be provided.\n \n ", + "Metadata": { + "Common.PropertyName": "ChildContent", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState", + "Common.TypeNameIdentifier": "CascadingAuthenticationState", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1018595988, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "ChildContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n The content to which the authentication state should be provided.\n \n ", + "Metadata": { + "Common.PropertyName": "ChildContent", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState", + "Common.TypeNameIdentifier": "CascadingAuthenticationState", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 359658250, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState.ChildContent", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content to which the authentication state should be provided.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "ChildContent", + "ParentTag": "CascadingAuthenticationState" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState.ChildContent", + "Common.TypeNameIdentifier": "CascadingAuthenticationState", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1173898559, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState.ChildContent", + "AssemblyName": "Microsoft.AspNetCore.Components.Authorization", + "Documentation": "\n \n The content to which the authentication state should be provided.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "ChildContent", + "ParentTag": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Authorization.CascadingAuthenticationState.ChildContent", + "Common.TypeNameIdentifier": "CascadingAuthenticationState", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Authorization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 640702758, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.CascadingValue", + "Common.TypeNameIdentifier": "CascadingValue", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1464995865, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.CascadingValue", + "Common.TypeNameIdentifier": "CascadingValue", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -990761408, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.CascadingValue.ChildContent", + "Common.TypeNameIdentifier": "CascadingValue", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1869295193, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.CascadingValue.ChildContent", + "Common.TypeNameIdentifier": "CascadingValue", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 869405140, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.DynamicComponent", + "Common.TypeNameIdentifier": "DynamicComponent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 455488337, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.DynamicComponent", + "Common.TypeNameIdentifier": "DynamicComponent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1810945333, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.LayoutView", + "Common.TypeNameIdentifier": "LayoutView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1759169727, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.LayoutView", + "Common.TypeNameIdentifier": "LayoutView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1356619026, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.LayoutView.ChildContent", + "Common.TypeNameIdentifier": "LayoutView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1744502368, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.LayoutView.ChildContent", + "Common.TypeNameIdentifier": "LayoutView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1708964940, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.RouteView", + "Common.TypeNameIdentifier": "RouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1633478932, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.RouteView", + "Common.TypeNameIdentifier": "RouteView", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1586617719, + "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", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 275693345, + "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", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1262234482, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router.NotFound", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -725188777, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router.NotFound", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1489253790, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router.Found", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1787445002, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router.Found", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -394257164, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router.Navigating", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -146222543, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.Router.Navigating", + "Common.TypeNameIdentifier": "Router", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1659631665, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Sections.SectionContent", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "\n \n Provides content to components with matching s.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "SectionContent" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "SectionName", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the ID that determines which instance will render\n the content of this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionName", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "SectionId", + "TypeName": "System.Object", + "Documentation": "\n \n Gets or sets the ID that determines which instance will render\n the content of this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionId", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + }, + { + "Kind": "Components.Component", + "Name": "ChildContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n Gets or sets the content to be rendered in corresponding instances.\n \n ", + "Metadata": { + "Common.PropertyName": "ChildContent", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Sections.SectionContent", + "Common.TypeNameIdentifier": "SectionContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Sections", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1979528909, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Sections.SectionContent", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "\n \n Provides content to components with matching s.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Sections.SectionContent" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "SectionName", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the ID that determines which instance will render\n the content of this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionName", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "SectionId", + "TypeName": "System.Object", + "Documentation": "\n \n Gets or sets the ID that determines which instance will render\n the content of this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionId", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + }, + { + "Kind": "Components.Component", + "Name": "ChildContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n Gets or sets the content to be rendered in corresponding instances.\n \n ", + "Metadata": { + "Common.PropertyName": "ChildContent", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Components.ChildContent": "True" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Sections.SectionContent", + "Common.TypeNameIdentifier": "SectionContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Sections", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -222495738, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Sections.SectionContent.ChildContent", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "\n \n Gets or sets the content to be rendered in corresponding instances.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "ChildContent", + "ParentTag": "SectionContent" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Sections.SectionContent.ChildContent", + "Common.TypeNameIdentifier": "SectionContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Sections", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -509145240, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Sections.SectionContent.ChildContent", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "\n \n Gets or sets the content to be rendered in corresponding instances.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "ChildContent", + "ParentTag": "Microsoft.AspNetCore.Components.Sections.SectionContent" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Sections.SectionContent.ChildContent", + "Common.TypeNameIdentifier": "SectionContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Sections", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1596733427, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Sections.SectionOutlet", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "\n \n Renders content provided by components with matching s.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "SectionOutlet" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "SectionName", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the ID that determines which instances will provide\n content to this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionName", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "SectionId", + "TypeName": "System.Object", + "Documentation": "\n \n Gets or sets the ID that determines which instances will provide\n content to this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionId", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Sections.SectionOutlet", + "Common.TypeNameIdentifier": "SectionOutlet", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Sections", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 377744126, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Sections.SectionOutlet", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "\n \n Renders content provided by components with matching s.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Sections.SectionOutlet" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "SectionName", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the ID that determines which instances will provide\n content to this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionName", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "Kind": "Components.Component", + "Name": "SectionId", + "TypeName": "System.Object", + "Documentation": "\n \n Gets or sets the ID that determines which instances will provide\n content to this instance.\n \n ", + "Metadata": { + "Common.PropertyName": "SectionId", + "Common.GloballyQualifiedTypeName": "global::System.Object" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Sections.SectionOutlet", + "Common.TypeNameIdentifier": "SectionOutlet", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Sections", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -2104697638, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator", + "Common.TypeNameIdentifier": "DataAnnotationsValidator", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -914911582, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.DataAnnotationsValidator", + "Common.TypeNameIdentifier": "DataAnnotationsValidator", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1613062692, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Forms.AntiforgeryToken", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n Component that renders an antiforgery token as a hidden field.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "AntiforgeryToken" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.AntiforgeryToken", + "Common.TypeNameIdentifier": "AntiforgeryToken", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1184460897, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Forms.AntiforgeryToken", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n Component that renders an antiforgery token as a hidden field.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Forms.AntiforgeryToken" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.AntiforgeryToken", + "Common.TypeNameIdentifier": "AntiforgeryToken", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1983138005, + "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": "Enhance", + "TypeName": "System.Boolean", + "Documentation": "\n \n If enabled, form submission is performed without fully reloading the page. This is\n equivalent to adding data-enhance to the form.\n \n This flag is only relevant in server-side rendering (SSR) scenarios. For interactive\n rendering, the flag has no effect since there is no full-page reload on submit anyway.\n \n ", + "Metadata": { + "Common.PropertyName": "Enhance", + "Common.GloballyQualifiedTypeName": "global::System.Boolean" + } + }, + { + "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": "FormName", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the form handler name. This is required for posting it to a server-side endpoint.\n It is not used during interactive rendering.\n \n ", + "Metadata": { + "Common.PropertyName": "FormName", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.EditForm", + "Common.TypeNameIdentifier": "EditForm", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 153021571, + "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": "Enhance", + "TypeName": "System.Boolean", + "Documentation": "\n \n If enabled, form submission is performed without fully reloading the page. This is\n equivalent to adding data-enhance to the form.\n \n This flag is only relevant in server-side rendering (SSR) scenarios. For interactive\n rendering, the flag has no effect since there is no full-page reload on submit anyway.\n \n ", + "Metadata": { + "Common.PropertyName": "Enhance", + "Common.GloballyQualifiedTypeName": "global::System.Boolean" + } + }, + { + "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": "FormName", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the form handler name. This is required for posting it to a server-side endpoint.\n It is not used during interactive rendering.\n \n ", + "Metadata": { + "Common.PropertyName": "FormName", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.EditForm", + "Common.TypeNameIdentifier": "EditForm", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1507007146, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent", + "Common.TypeNameIdentifier": "EditForm", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -426702626, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.EditForm.ChildContent", + "Common.TypeNameIdentifier": "EditForm", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 570434570, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", + "Common.TypeNameIdentifier": "InputCheckbox", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -576929930, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", + "Common.TypeNameIdentifier": "InputCheckbox", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1397837951, + "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 The supported types for the date value are:\n \n \n \n \n \n \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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputDate", + "Common.TypeNameIdentifier": "InputDate", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1852750623, + "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 The supported types for the date value are:\n \n \n \n \n \n \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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputDate", + "Common.TypeNameIdentifier": "InputDate", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 58758437, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputFile", + "Common.TypeNameIdentifier": "InputFile", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 2109206281, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputFile", + "Common.TypeNameIdentifier": "InputFile", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 224323762, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputNumber", + "Common.TypeNameIdentifier": "InputNumber", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -327546842, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputNumber", + "Common.TypeNameIdentifier": "InputNumber", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1478557453, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadio", + "Common.TypeNameIdentifier": "InputRadio", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -373496607, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadio", + "Common.TypeNameIdentifier": "InputRadio", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 831825152, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", + "Common.TypeNameIdentifier": "InputRadioGroup", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 663303190, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", + "Common.TypeNameIdentifier": "InputRadioGroup", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1197124911, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent", + "Common.TypeNameIdentifier": "InputRadioGroup", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 49842423, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup.ChildContent", + "Common.TypeNameIdentifier": "InputRadioGroup", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1164483989, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputSelect", + "Common.TypeNameIdentifier": "InputSelect", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1160272057, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Common.PropertyName": "ValueChanged", + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputSelect", + "Common.TypeNameIdentifier": "InputSelect", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 140514534, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent", + "Common.TypeNameIdentifier": "InputSelect", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1728624768, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputSelect.ChildContent", + "Common.TypeNameIdentifier": "InputSelect", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -409185871, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputText", + "Common.TypeNameIdentifier": "InputText", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 555281043, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputText", + "Common.TypeNameIdentifier": "InputText", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 226959200, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputTextArea", + "Common.TypeNameIdentifier": "InputTextArea", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 495905282, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputTextArea", + "Common.TypeNameIdentifier": "InputTextArea", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1619064383, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Forms.FormMappingScope", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n Defines the mapping scope for data received from form posts.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "FormMappingScope" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "Name", + "TypeName": "System.String", + "IsEditorRequired": true, + "Documentation": "\n \n The mapping scope name.\n \n ", + "Metadata": { + "Common.PropertyName": "Name", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "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": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for all child content expressions.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.FormMappingScope", + "Common.TypeNameIdentifier": "FormMappingScope", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1625398287, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Forms.FormMappingScope", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n Defines the mapping scope for data received from form posts.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Forms.FormMappingScope" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "Name", + "TypeName": "System.String", + "IsEditorRequired": true, + "Documentation": "\n \n The mapping scope name.\n \n ", + "Metadata": { + "Common.PropertyName": "Name", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "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": "Context", + "TypeName": "System.String", + "Documentation": "Specifies the parameter name for all child content expressions.", + "Metadata": { + "Components.ChildContentParameterName": "True", + "Common.PropertyName": "Context" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.FormMappingScope", + "Common.TypeNameIdentifier": "FormMappingScope", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1697694887, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Forms.FormMappingScope.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": "FormMappingScope" + } + ], + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.FormMappingScope.ChildContent", + "Common.TypeNameIdentifier": "FormMappingScope", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1351360474, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Forms.FormMappingScope.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.FormMappingScope" + } + ], + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.FormMappingScope.ChildContent", + "Common.TypeNameIdentifier": "FormMappingScope", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1033568694, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.ValidationMessage", + "Common.TypeNameIdentifier": "ValidationMessage", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 796878002, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.ValidationMessage", + "Common.TypeNameIdentifier": "ValidationMessage", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -639166684, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.ValidationSummary", + "Common.TypeNameIdentifier": "ValidationSummary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 469111218, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.ValidationSummary", + "Common.TypeNameIdentifier": "ValidationSummary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 888860788, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.FocusOnNavigate", + "Common.TypeNameIdentifier": "FocusOnNavigate", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1465366956, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.FocusOnNavigate", + "Common.TypeNameIdentifier": "FocusOnNavigate", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 328467923, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Routing.NavigationLock", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n A component that can be used to intercept navigation events. \n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "NavigationLock" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "OnBeforeInternalNavigation", + "TypeName": "Microsoft.AspNetCore.Components.EventCallback", + "Documentation": "\n \n Gets or sets a callback to be invoked when an internal navigation event occurs.\n \n ", + "Metadata": { + "Common.PropertyName": "OnBeforeInternalNavigation", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Components.EventCallback": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "ConfirmExternalNavigation", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets whether a browser dialog should prompt the user to either confirm or cancel\n external navigations.\n \n ", + "Metadata": { + "Common.PropertyName": "ConfirmExternalNavigation", + "Common.GloballyQualifiedTypeName": "global::System.Boolean" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.NavigationLock", + "Common.TypeNameIdentifier": "NavigationLock", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 559246211, + "Kind": "Components.Component", + "Name": "Microsoft.AspNetCore.Components.Routing.NavigationLock", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n A component that can be used to intercept navigation events. \n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "Microsoft.AspNetCore.Components.Routing.NavigationLock" + } + ], + "BoundAttributes": [ + { + "Kind": "Components.Component", + "Name": "OnBeforeInternalNavigation", + "TypeName": "Microsoft.AspNetCore.Components.EventCallback", + "Documentation": "\n \n Gets or sets a callback to be invoked when an internal navigation event occurs.\n \n ", + "Metadata": { + "Common.PropertyName": "OnBeforeInternalNavigation", + "Common.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.EventCallback", + "Components.EventCallback": "True" + } + }, + { + "Kind": "Components.Component", + "Name": "ConfirmExternalNavigation", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets whether a browser dialog should prompt the user to either confirm or cancel\n external navigations.\n \n ", + "Metadata": { + "Common.PropertyName": "ConfirmExternalNavigation", + "Common.GloballyQualifiedTypeName": "global::System.Boolean" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.NavigationLock", + "Common.TypeNameIdentifier": "NavigationLock", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1143261693, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.NavLink", + "Common.TypeNameIdentifier": "NavLink", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 957456461, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.NavLink", + "Common.TypeNameIdentifier": "NavLink", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 571500370, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent", + "Common.TypeNameIdentifier": "NavLink", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1932766577, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Routing.NavLink.ChildContent", + "Common.TypeNameIdentifier": "NavLink", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Routing", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -936465745, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.HeadContent", + "Common.TypeNameIdentifier": "HeadContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 253925048, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.HeadContent", + "Common.TypeNameIdentifier": "HeadContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -427164815, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent", + "Common.TypeNameIdentifier": "HeadContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1787048425, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.HeadContent.ChildContent", + "Common.TypeNameIdentifier": "HeadContent", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1435569094, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.HeadOutlet", + "Common.TypeNameIdentifier": "HeadOutlet", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1738490595, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.HeadOutlet", + "Common.TypeNameIdentifier": "HeadOutlet", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 691907600, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.PageTitle", + "Common.TypeNameIdentifier": "PageTitle", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -1195680458, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.PageTitle", + "Common.TypeNameIdentifier": "PageTitle", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1802397061, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent", + "Common.TypeNameIdentifier": "PageTitle", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 357037606, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.PageTitle.ChildContent", + "Common.TypeNameIdentifier": "PageTitle", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1809420155, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.ErrorBoundary", + "Common.TypeNameIdentifier": "ErrorBoundary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1781021836, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.ErrorBoundary", + "Common.TypeNameIdentifier": "ErrorBoundary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -790397748, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent", + "Common.TypeNameIdentifier": "ErrorBoundary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1406667933, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ChildContent", + "Common.TypeNameIdentifier": "ErrorBoundary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1136943932, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent", + "Common.TypeNameIdentifier": "ErrorBoundary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1713865527, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.ErrorBoundary.ErrorContent", + "Common.TypeNameIdentifier": "ErrorBoundary", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1386250966, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Common.PropertyName": "ChildContent", + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Common.PropertyName": "ItemContent", + "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": "EmptyContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n Gets or sets the content to show when is empty\n or when the is zero.\n \n ", + "Metadata": { + "Common.PropertyName": "EmptyContent", + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate", + "Common.PropertyName": "ItemsProvider", + "Components.DelegateSignature": "True", + "Components.GenericTyped": "True", + "Components.IsDelegateAwaitableResult": "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": "SpacerElement", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the tag name of the HTML element that will be used as the virtualization spacer.\n One such element will be rendered before the visible items, and one more after them, using\n an explicit \"height\" style to control the scroll range.\n \n The default value is \"div\". If you are placing the instance inside\n an element that requires a specific child tag name, consider setting that here. For example when\n rendering inside a \"tbody\", consider setting to the value \"tr\".\n \n ", + "Metadata": { + "Common.PropertyName": "SpacerElement", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.GenericTyped": "True", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": 1887251917, + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Common.PropertyName": "ChildContent", + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.RenderFragment", + "Common.PropertyName": "ItemContent", + "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": "EmptyContent", + "TypeName": "Microsoft.AspNetCore.Components.RenderFragment", + "Documentation": "\n \n Gets or sets the content to show when is empty\n or when the is zero.\n \n ", + "Metadata": { + "Common.PropertyName": "EmptyContent", + "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.GloballyQualifiedTypeName": "global::Microsoft.AspNetCore.Components.Web.Virtualization.ItemsProviderDelegate", + "Common.PropertyName": "ItemsProvider", + "Components.DelegateSignature": "True", + "Components.GenericTyped": "True", + "Components.IsDelegateAwaitableResult": "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": "SpacerElement", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the tag name of the HTML element that will be used as the virtualization spacer.\n One such element will be rendered before the visible items, and one more after them, using\n an explicit \"height\" style to control the scroll range.\n \n The default value is \"div\". If you are placing the instance inside\n an element that requires a specific child tag name, consider setting that here. For example when\n rendering inside a \"tbody\", consider setting to the value \"tr\".\n \n ", + "Metadata": { + "Common.PropertyName": "SpacerElement", + "Common.GloballyQualifiedTypeName": "global::System.String" + } + }, + { + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.GenericTyped": "True", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.IComponent" + } + }, + { + "HashCode": -810349759, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 888554201, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ChildContent", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1167923007, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1881966733, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.ItemContent", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1238189645, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -232143555, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.Placeholder", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1965955927, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.EmptyContent", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n Gets or sets the content to show when is empty\n or when the is zero.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "EmptyContent", + "ParentTag": "Virtualize" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.EmptyContent", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1159073458, + "Kind": "Components.ChildContent", + "Name": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.EmptyContent", + "AssemblyName": "Microsoft.AspNetCore.Components.Web", + "Documentation": "\n \n Gets or sets the content to show when is empty\n or when the is zero.\n \n ", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "EmptyContent", + "ParentTag": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize" + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.Virtualization.Virtualize.EmptyContent", + "Common.TypeNameIdentifier": "Virtualize", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web.Virtualization", + "Components.IsSpecialKind": "Components.ChildContent", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1543825384, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.FocusEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1314155931, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.FocusEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1421851537, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.FocusEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1108003824, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.FocusEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 474837565, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 743489502, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1074280065, + "Kind": "Components.EventHandler", + "Name": "onmouseleave", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "Sets the '@onmouseleave' 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": "@onmouseleave", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + }, + { + "TagName": "*", + "Attributes": [ + { + "Name": "@onmouseleave:preventDefault", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + }, + { + "TagName": "*", + "Attributes": [ + { + "Name": "@onmouseleave:stopPropagation", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "Components.EventHandler", + "Name": "@onmouseleave", + "TypeName": "Microsoft.AspNetCore.Components.EventCallback", + "Documentation": "Sets the '@onmouseleave' 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": "onmouseleave" + }, + "BoundAttributeParameters": [ + { + "Name": "preventDefault", + "TypeName": "System.Boolean", + "Documentation": "Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmouseleave' event.", + "Metadata": { + "Common.PropertyName": "PreventDefault" + } + }, + { + "Name": "stopPropagation", + "TypeName": "System.Boolean", + "Documentation": "Specifies whether to prevent further propagation of the '@onmouseleave' event in the capturing and bubbling phases.", + "Metadata": { + "Common.PropertyName": "StopPropagation" + } + } + ] + } + ], + "Metadata": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1476464329, + "Kind": "Components.EventHandler", + "Name": "onmouseenter", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "Sets the '@onmouseenter' 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": "@onmouseenter", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + }, + { + "TagName": "*", + "Attributes": [ + { + "Name": "@onmouseenter:preventDefault", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + }, + { + "TagName": "*", + "Attributes": [ + { + "Name": "@onmouseenter:stopPropagation", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "Components.EventHandler", + "Name": "@onmouseenter", + "TypeName": "Microsoft.AspNetCore.Components.EventCallback", + "Documentation": "Sets the '@onmouseenter' 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": "onmouseenter" + }, + "BoundAttributeParameters": [ + { + "Name": "preventDefault", + "TypeName": "System.Boolean", + "Documentation": "Specifies whether to cancel (if cancelable) the default action that belongs to the '@onmouseenter' event.", + "Metadata": { + "Common.PropertyName": "PreventDefault" + } + }, + { + "Name": "stopPropagation", + "TypeName": "System.Boolean", + "Documentation": "Specifies whether to prevent further propagation of the '@onmouseenter' event in the capturing and bubbling phases.", + "Metadata": { + "Common.PropertyName": "StopPropagation" + } + } + ] + } + ], + "Metadata": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 224681926, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2145197259, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2079355191, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 31578450, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2128301709, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 722097907, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.WheelEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -429523353, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.WheelEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2039954400, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.MouseEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 840671326, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1709572603, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1684872861, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 194096828, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 106936647, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -328286530, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1854114855, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.DragEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 869864060, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.KeyboardEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -395630446, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.KeyboardEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 100504459, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.KeyboardEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1541825936, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.ChangeEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 367173253, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.ChangeEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -126985485, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -486763214, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1695967624, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -689879441, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1482844669, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 557683384, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1924698723, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1935632408, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2049440176, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -2139260263, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ClipboardEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1925294577, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ClipboardEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1491517609, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ClipboardEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -126664736, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.TouchEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 111614664, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.TouchEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 757027231, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.TouchEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -19804046, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.TouchEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -551533159, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.TouchEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1370020228, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.TouchEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -258590780, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 370032924, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1070784606, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -905262865, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -388771070, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 541482499, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -382662020, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 877743988, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1286996710, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2028933407, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.PointerEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1484044500, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 55224937, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1765875906, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -492941127, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -222717368, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1875092745, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1820091003, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1692713520, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -558137117, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1077860356, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1027856429, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1306897438, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1227729118, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 681925207, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2020090205, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -869142298, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1927822091, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1632505468, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ProgressEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1786494150, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ProgressEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 43746342, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ProgressEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 677939376, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ProgressEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1077716360, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ProgressEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -805586337, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ProgressEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -936439493, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "Microsoft.AspNetCore.Components.Web.ErrorEventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1724120428, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 948597696, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 132315883, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 633142091, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1077180653, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1821445443, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 924082965, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1773920022, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2120684462, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1042665676, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 996995358, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -956180302, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1633822172, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 670543797, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1735366414, + "Kind": "Components.EventHandler", + "Name": "oncancel", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "Sets the '@oncancel' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "*", + "Attributes": [ + { + "Name": "@oncancel", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + }, + { + "TagName": "*", + "Attributes": [ + { + "Name": "@oncancel:stopPropagation", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "Components.EventHandler", + "Name": "@oncancel", + "TypeName": "Microsoft.AspNetCore.Components.EventCallback", + "Documentation": "Sets the '@oncancel' 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": "oncancel" + }, + "BoundAttributeParameters": [ + { + "Name": "stopPropagation", + "TypeName": "System.Boolean", + "Documentation": "Specifies whether to prevent further propagation of the '@oncancel' event in the capturing and bubbling phases.", + "Metadata": { + "Common.PropertyName": "StopPropagation" + } + } + ] + } + ], + "Metadata": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1183444181, + "Kind": "Components.EventHandler", + "Name": "onclose", + "AssemblyName": "Microsoft.AspNetCore.Components", + "Documentation": "Sets the '@onclose' attribute to the provided string or delegate value. A delegate value should be of type 'System.EventArgs'.", + "CaseSensitive": true, + "TagMatchingRules": [ + { + "TagName": "*", + "Attributes": [ + { + "Name": "@onclose", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + }, + { + "TagName": "*", + "Attributes": [ + { + "Name": "@onclose:stopPropagation", + "Metadata": { + "Common.DirectiveAttribute": "True" + } + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "Components.EventHandler", + "Name": "@onclose", + "TypeName": "Microsoft.AspNetCore.Components.EventCallback", + "Documentation": "Sets the '@onclose' 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": "onclose" + }, + "BoundAttributeParameters": [ + { + "Name": "stopPropagation", + "TypeName": "System.Boolean", + "Documentation": "Specifies whether to prevent further propagation of the '@onclose' event in the capturing and bubbling phases.", + "Metadata": { + "Common.PropertyName": "StopPropagation" + } + } + ] + } + ], + "Metadata": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.EventHandlers", + "Common.TypeNameIdentifier": "EventHandlers", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.EventHandler.EventArgs": "System.EventArgs", + "Components.IsSpecialKind": "Components.EventHandler", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -58836254, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Attributes", + "Components.IsSpecialKind": "Components.Splat", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1855338726, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.Razor", + "Documentation": "\n \n implementation targeting elements containing attributes with URL expected values.\n \n Resolves URLs starting with '~/' (relative to the application's 'webroot' setting) that are not\n targeted by other s. Runs prior to other s to ensure\n application-relative URLs are resolved.\n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "*", + "Attributes": [ + { + "Name": "itemid", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "href", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "applet", + "Attributes": [ + { + "Name": "archive", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "area", + "TagStructure": 2, + "Attributes": [ + { + "Name": "href", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "audio", + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "base", + "TagStructure": 2, + "Attributes": [ + { + "Name": "href", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "blockquote", + "Attributes": [ + { + "Name": "cite", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "formaction", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "del", + "Attributes": [ + { + "Name": "cite", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "embed", + "TagStructure": 2, + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "form", + "Attributes": [ + { + "Name": "action", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "html", + "Attributes": [ + { + "Name": "manifest", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "iframe", + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "img", + "TagStructure": 2, + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "img", + "TagStructure": 2, + "Attributes": [ + { + "Name": "srcset", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "formaction", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "ins", + "Attributes": [ + { + "Name": "cite", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "href", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "menuitem", + "Attributes": [ + { + "Name": "icon", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "object", + "Attributes": [ + { + "Name": "archive", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "object", + "Attributes": [ + { + "Name": "data", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "q", + "Attributes": [ + { + "Name": "cite", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "source", + "TagStructure": 2, + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "source", + "TagStructure": 2, + "Attributes": [ + { + "Name": "srcset", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "track", + "TagStructure": 2, + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "video", + "Attributes": [ + { + "Name": "src", + "Value": "~/", + "ValueComparison": 2 + } + ] + }, + { + "TagName": "video", + "Attributes": [ + { + "Name": "poster", + "Value": "~/", + "ValueComparison": 2 + } + ] + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.Razor.TagHelpers.UrlResolutionTagHelper", + "Common.TypeNameIdentifier": "UrlResolutionTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.Razor.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -1670317913, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <a> elements.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-action" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-controller" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-area" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-page" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-page-handler" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-fragment" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-host" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-protocol" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-route" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-all-route-data" + } + ] + }, + { + "TagName": "a", + "Attributes": [ + { + "Name": "asp-route-", + "NameComparison": 1 + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-action", + "TypeName": "System.String", + "Documentation": "\n \n The name of the action method.\n \n \n Must be null if or is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Action" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-controller", + "TypeName": "System.String", + "Documentation": "\n \n The name of the controller.\n \n \n Must be null if or is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Controller" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-area", + "TypeName": "System.String", + "Documentation": "\n \n The name of the area.\n \n \n Must be null if is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Area" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-page", + "TypeName": "System.String", + "Documentation": "\n \n The name of the page.\n \n \n Must be null if or , \n is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Page" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-page-handler", + "TypeName": "System.String", + "Documentation": "\n \n The name of the page handler.\n \n \n Must be null if or , or \n is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "PageHandler" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-protocol", + "TypeName": "System.String", + "Documentation": "\n \n The protocol for the URL, such as \"http\" or \"https\".\n \n ", + "Metadata": { + "Common.PropertyName": "Protocol" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-host", + "TypeName": "System.String", + "Documentation": "\n \n The host name.\n \n ", + "Metadata": { + "Common.PropertyName": "Host" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fragment", + "TypeName": "System.String", + "Documentation": "\n \n The URL fragment name.\n \n ", + "Metadata": { + "Common.PropertyName": "Fragment" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-route", + "TypeName": "System.String", + "Documentation": "\n \n Name of the route.\n \n \n Must be null if one of , , \n or is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Route" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-all-route-data", + "TypeName": "System.Collections.Generic.IDictionary", + "IndexerNamePrefix": "asp-route-", + "IndexerTypeName": "System.String", + "Documentation": "\n \n Additional parameters for the route.\n \n ", + "Metadata": { + "Common.PropertyName": "RouteValues" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.AnchorTagHelper", + "Common.TypeNameIdentifier": "AnchorTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 874648948, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <cache> elements.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "cache" + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "priority", + "TypeName": "Microsoft.Extensions.Caching.Memory.CacheItemPriority?", + "Documentation": "\n \n Gets or sets the policy for the cache entry.\n \n ", + "Metadata": { + "Common.PropertyName": "Priority" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryBy" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-header", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of HTTP request headers to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByHeader" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-query", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of query parameters to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByQuery" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-route", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of route data parameters to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByRoute" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-cookie", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of cookie names to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByCookie" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-user", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets a value that determines if the cached result is to be varied by the Identity for the logged in\n .\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByUser" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-culture", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets a value that determines if the cached result is to be varied by request culture.\n \n Setting this to true would result in the result to be varied by \n and .\n \n \n ", + "Metadata": { + "Common.PropertyName": "VaryByCulture" + } + }, + { + "Kind": "ITagHelper", + "Name": "expires-on", + "TypeName": "System.DateTimeOffset?", + "Documentation": "\n \n Gets or sets the exact the cache entry should be evicted.\n \n ", + "Metadata": { + "Common.PropertyName": "ExpiresOn" + } + }, + { + "Kind": "ITagHelper", + "Name": "expires-after", + "TypeName": "System.TimeSpan?", + "Documentation": "\n \n Gets or sets the duration, from the time the cache entry was added, when it should be evicted.\n \n ", + "Metadata": { + "Common.PropertyName": "ExpiresAfter" + } + }, + { + "Kind": "ITagHelper", + "Name": "expires-sliding", + "TypeName": "System.TimeSpan?", + "Documentation": "\n \n Gets or sets the duration from last access that the cache entry should be evicted.\n \n ", + "Metadata": { + "Common.PropertyName": "ExpiresSliding" + } + }, + { + "Kind": "ITagHelper", + "Name": "enabled", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets the value which determines if the tag helper is enabled or not.\n \n ", + "Metadata": { + "Common.PropertyName": "Enabled" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.CacheTagHelper", + "Common.TypeNameIdentifier": "CacheTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -258159732, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n A that renders a Razor component.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "component", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "params", + "TypeName": "System.Collections.Generic.IDictionary", + "IndexerNamePrefix": "param-", + "IndexerTypeName": "System.Object", + "Documentation": "\n \n Gets or sets values for component parameters.\n \n ", + "Metadata": { + "Common.PropertyName": "Parameters" + } + }, + { + "Kind": "ITagHelper", + "Name": "type", + "TypeName": "System.Type", + "Documentation": "\n \n Gets or sets the component type. This value is required.\n \n ", + "Metadata": { + "Common.PropertyName": "ComponentType" + } + }, + { + "Kind": "ITagHelper", + "Name": "render-mode", + "TypeName": "Microsoft.AspNetCore.Mvc.Rendering.RenderMode", + "IsEnum": true, + "Documentation": "\n \n Gets or sets the \n \n ", + "Metadata": { + "Common.PropertyName": "RenderMode" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.ComponentTagHelper", + "Common.TypeNameIdentifier": "ComponentTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 1066210986, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <distributed-cache> elements.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "distributed-cache", + "Attributes": [ + { + "Name": "name" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "name", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a unique name to discriminate cached entries.\n \n ", + "Metadata": { + "Common.PropertyName": "Name" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryBy" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-header", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of HTTP request headers to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByHeader" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-query", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of query parameters to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByQuery" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-route", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of route data parameters to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByRoute" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-cookie", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets a comma-delimited set of cookie names to vary the cached result by.\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByCookie" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-user", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets a value that determines if the cached result is to be varied by the Identity for the logged in\n .\n \n ", + "Metadata": { + "Common.PropertyName": "VaryByUser" + } + }, + { + "Kind": "ITagHelper", + "Name": "vary-by-culture", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets a value that determines if the cached result is to be varied by request culture.\n \n Setting this to true would result in the result to be varied by \n and .\n \n \n ", + "Metadata": { + "Common.PropertyName": "VaryByCulture" + } + }, + { + "Kind": "ITagHelper", + "Name": "expires-on", + "TypeName": "System.DateTimeOffset?", + "Documentation": "\n \n Gets or sets the exact the cache entry should be evicted.\n \n ", + "Metadata": { + "Common.PropertyName": "ExpiresOn" + } + }, + { + "Kind": "ITagHelper", + "Name": "expires-after", + "TypeName": "System.TimeSpan?", + "Documentation": "\n \n Gets or sets the duration, from the time the cache entry was added, when it should be evicted.\n \n ", + "Metadata": { + "Common.PropertyName": "ExpiresAfter" + } + }, + { + "Kind": "ITagHelper", + "Name": "expires-sliding", + "TypeName": "System.TimeSpan?", + "Documentation": "\n \n Gets or sets the duration from last access that the cache entry should be evicted.\n \n ", + "Metadata": { + "Common.PropertyName": "ExpiresSliding" + } + }, + { + "Kind": "ITagHelper", + "Name": "enabled", + "TypeName": "System.Boolean", + "Documentation": "\n \n Gets or sets the value which determines if the tag helper is enabled or not.\n \n ", + "Metadata": { + "Common.PropertyName": "Enabled" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.DistributedCacheTagHelper", + "Common.TypeNameIdentifier": "DistributedCacheTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -1049060959, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <environment> elements that conditionally renders\n content based on the current value of .\n If the environment is not listed in the specified or ,\n or if it is in , the content will not be rendered.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "environment" + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "names", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of environment names in which the content should be rendered.\n If the current environment is also in the list, the content will not be rendered.\n \n \n The specified environment names are compared case insensitively to the current value of\n .\n \n ", + "Metadata": { + "Common.PropertyName": "Names" + } + }, + { + "Kind": "ITagHelper", + "Name": "include", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of environment names in which the content should be rendered.\n If the current environment is also in the list, the content will not be rendered.\n \n \n The specified environment names are compared case insensitively to the current value of\n .\n \n ", + "Metadata": { + "Common.PropertyName": "Include" + } + }, + { + "Kind": "ITagHelper", + "Name": "exclude", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of environment names in which the content will not be rendered.\n \n \n The specified environment names are compared case insensitively to the current value of\n .\n \n ", + "Metadata": { + "Common.PropertyName": "Exclude" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.EnvironmentTagHelper", + "Common.TypeNameIdentifier": "EnvironmentTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -566100447, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <button> elements and <input> elements with\n their type attribute set to image or submit.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-action" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-controller" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-area" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-page" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-page-handler" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-fragment" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-route" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-all-route-data" + } + ] + }, + { + "TagName": "button", + "Attributes": [ + { + "Name": "asp-route-", + "NameComparison": 1 + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-action" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-controller" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-area" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-page" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-page-handler" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-fragment" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-route" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-all-route-data" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "image", + "ValueComparison": 1 + }, + { + "Name": "asp-route-", + "NameComparison": 1 + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-action" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-controller" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-area" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-page" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-page-handler" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-fragment" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-route" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-all-route-data" + } + ] + }, + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "type", + "Value": "submit", + "ValueComparison": 1 + }, + { + "Name": "asp-route-", + "NameComparison": 1 + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-action", + "TypeName": "System.String", + "Documentation": "\n \n The name of the action method.\n \n ", + "Metadata": { + "Common.PropertyName": "Action" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-controller", + "TypeName": "System.String", + "Documentation": "\n \n The name of the controller.\n \n ", + "Metadata": { + "Common.PropertyName": "Controller" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-area", + "TypeName": "System.String", + "Documentation": "\n \n The name of the area.\n \n ", + "Metadata": { + "Common.PropertyName": "Area" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-page", + "TypeName": "System.String", + "Documentation": "\n \n The name of the page.\n \n ", + "Metadata": { + "Common.PropertyName": "Page" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-page-handler", + "TypeName": "System.String", + "Documentation": "\n \n The name of the page handler.\n \n ", + "Metadata": { + "Common.PropertyName": "PageHandler" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fragment", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the URL fragment.\n \n ", + "Metadata": { + "Common.PropertyName": "Fragment" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-route", + "TypeName": "System.String", + "Documentation": "\n \n Name of the route.\n \n \n Must be null if or is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Route" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-all-route-data", + "TypeName": "System.Collections.Generic.IDictionary", + "IndexerNamePrefix": "asp-route-", + "IndexerTypeName": "System.String", + "Documentation": "\n \n Additional parameters for the route.\n \n ", + "Metadata": { + "Common.PropertyName": "RouteValues" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.FormActionTagHelper", + "Common.TypeNameIdentifier": "FormActionTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 1300451063, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <form> elements.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "form" + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-action", + "TypeName": "System.String", + "Documentation": "\n \n The name of the action method.\n \n ", + "Metadata": { + "Common.PropertyName": "Action" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-controller", + "TypeName": "System.String", + "Documentation": "\n \n The name of the controller.\n \n ", + "Metadata": { + "Common.PropertyName": "Controller" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-area", + "TypeName": "System.String", + "Documentation": "\n \n The name of the area.\n \n ", + "Metadata": { + "Common.PropertyName": "Area" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-page", + "TypeName": "System.String", + "Documentation": "\n \n The name of the page.\n \n ", + "Metadata": { + "Common.PropertyName": "Page" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-page-handler", + "TypeName": "System.String", + "Documentation": "\n \n The name of the page handler.\n \n ", + "Metadata": { + "Common.PropertyName": "PageHandler" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-antiforgery", + "TypeName": "System.Boolean?", + "Documentation": "\n \n Whether the antiforgery token should be generated.\n \n Defaults to false if user provides an action attribute\n or if the method is ; true otherwise.\n ", + "Metadata": { + "Common.PropertyName": "Antiforgery" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fragment", + "TypeName": "System.String", + "Documentation": "\n \n Gets or sets the URL fragment.\n \n ", + "Metadata": { + "Common.PropertyName": "Fragment" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-route", + "TypeName": "System.String", + "Documentation": "\n \n Name of the route.\n \n \n Must be null if or is non-null.\n \n ", + "Metadata": { + "Common.PropertyName": "Route" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-all-route-data", + "TypeName": "System.Collections.Generic.IDictionary", + "IndexerNamePrefix": "asp-route-", + "IndexerTypeName": "System.String", + "Documentation": "\n \n Additional parameters for the route.\n \n ", + "Metadata": { + "Common.PropertyName": "RouteValues" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper", + "Common.TypeNameIdentifier": "FormTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 1966746640, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <img> elements that supports file versioning.\n \n \n The tag helper won't process for cases with just the 'src' attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "img", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-append-version" + }, + { + "Name": "src" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "src", + "TypeName": "System.String", + "Documentation": "\n \n Source of the image.\n \n \n Passed through to the generated HTML in all cases.\n \n ", + "Metadata": { + "Common.PropertyName": "Src" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-append-version", + "TypeName": "System.Boolean", + "Documentation": "\n \n Value indicating if file version should be appended to the src urls.\n \n \n If true then a query string \"v\" with the encoded content of the file is added.\n \n ", + "Metadata": { + "Common.PropertyName": "AppendVersion" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.ImageTagHelper", + "Common.TypeNameIdentifier": "ImageTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 2093042046, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <input> elements with an asp-for attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "input", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-for" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-for", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression", + "Documentation": "\n \n An expression to be evaluated against the current model.\n \n ", + "Metadata": { + "Common.PropertyName": "For" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-format", + "TypeName": "System.String", + "Documentation": "\n \n The format string (see ) used to format the\n result. Sets the generated \"value\" attribute to that formatted string.\n \n \n Not used if the provided (see ) or calculated \"type\" attribute value is\n checkbox, password, or radio. That is, is used when calling\n .\n \n ", + "Metadata": { + "Common.PropertyName": "Format" + } + }, + { + "Kind": "ITagHelper", + "Name": "type", + "TypeName": "System.String", + "Documentation": "\n \n The type of the <input> element.\n \n \n Passed through to the generated HTML in all cases. Also used to determine the \n helper to call and the default value. A default is not calculated\n if the provided (see ) or calculated \"type\" attribute value is checkbox,\n hidden, password, or radio.\n \n ", + "Metadata": { + "Common.PropertyName": "InputTypeName" + } + }, + { + "Kind": "ITagHelper", + "Name": "form", + "TypeName": "System.String", + "Documentation": "\n \n The name of the associated form\n \n \n Used to associate a hidden checkbox tag to the respecting form when is not .\n \n ", + "Metadata": { + "Common.PropertyName": "FormName" + } + }, + { + "Kind": "ITagHelper", + "Name": "name", + "TypeName": "System.String", + "Documentation": "\n \n The name of the <input> element.\n \n \n Passed through to the generated HTML in all cases. Also used to determine whether is\n valid with an empty .\n \n ", + "Metadata": { + "Common.PropertyName": "Name" + } + }, + { + "Kind": "ITagHelper", + "Name": "value", + "TypeName": "System.String", + "Documentation": "\n \n The value of the <input> element.\n \n \n Passed through to the generated HTML in all cases. Also used to determine the generated \"checked\" attribute\n if is \"radio\". Must not be null in that case.\n \n ", + "Metadata": { + "Common.PropertyName": "Value" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.InputTagHelper", + "Common.TypeNameIdentifier": "InputTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 1443644315, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <label> elements with an asp-for attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "label", + "Attributes": [ + { + "Name": "asp-for" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-for", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression", + "Documentation": "\n \n An expression to be evaluated against the current model.\n \n ", + "Metadata": { + "Common.PropertyName": "For" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.LabelTagHelper", + "Common.TypeNameIdentifier": "LabelTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 105882459, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <link> elements that supports fallback href paths.\n \n \n The tag helper won't process for cases with just the 'href' attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-href-include" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-href-exclude" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-fallback-href" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-fallback-href-include" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-fallback-href-exclude" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-fallback-test-class" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-fallback-test-property" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-fallback-test-value" + } + ] + }, + { + "TagName": "link", + "TagStructure": 2, + "Attributes": [ + { + "Name": "asp-append-version" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "href", + "TypeName": "System.String", + "Documentation": "\n \n Address of the linked resource.\n \n \n Passed through to the generated HTML in all cases.\n \n ", + "Metadata": { + "Common.PropertyName": "Href" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-href-include", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of CSS stylesheets to load.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n \n ", + "Metadata": { + "Common.PropertyName": "HrefInclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-href-exclude", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of CSS stylesheets to exclude from loading.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n Must be used in conjunction with .\n \n ", + "Metadata": { + "Common.PropertyName": "HrefExclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-href", + "TypeName": "System.String", + "Documentation": "\n \n The URL of a CSS stylesheet to fallback to in the case the primary one fails.\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackHref" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-suppress-fallback-integrity", + "TypeName": "System.Boolean", + "Documentation": "\n \n Boolean value that determines if an integrity hash will be compared with value.\n \n ", + "Metadata": { + "Common.PropertyName": "SuppressFallbackIntegrity" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-append-version", + "TypeName": "System.Boolean?", + "Documentation": "\n \n Value indicating if file version should be appended to the href urls.\n \n \n If true then a query string \"v\" with the encoded content of the file is added.\n \n ", + "Metadata": { + "Common.PropertyName": "AppendVersion" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-href-include", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of CSS stylesheets to fallback to in the case the primary\n one fails.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackHrefInclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-href-exclude", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of CSS stylesheets to exclude from the fallback list, in\n the case the primary one fails.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n Must be used in conjunction with .\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackHrefExclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-test-class", + "TypeName": "System.String", + "Documentation": "\n \n The class name defined in the stylesheet to use for the fallback test.\n Must be used in conjunction with and ,\n and either or .\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackTestClass" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-test-property", + "TypeName": "System.String", + "Documentation": "\n \n The CSS property name to use for the fallback test.\n Must be used in conjunction with and ,\n and either or .\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackTestProperty" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-test-value", + "TypeName": "System.String", + "Documentation": "\n \n The CSS property value to use for the fallback test.\n Must be used in conjunction with and ,\n and either or .\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackTestValue" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.LinkTagHelper", + "Common.TypeNameIdentifier": "LinkTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -389300174, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <option> elements.\n \n \n This works in conjunction with . It reads elements\n content but does not modify that content. The only modification it makes is to add a selected attribute\n in some cases.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "option" + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "value", + "TypeName": "System.String", + "Documentation": "\n \n Specifies a value for the <option> element.\n \n \n Passed through to the generated HTML in all cases.\n \n ", + "Metadata": { + "Common.PropertyName": "Value" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.OptionTagHelper", + "Common.TypeNameIdentifier": "OptionTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 263593251, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n Renders a partial view.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "partial", + "TagStructure": 2, + "Attributes": [ + { + "Name": "name" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "name", + "TypeName": "System.String", + "Documentation": "\n \n The name or path of the partial view that is rendered to the response.\n \n ", + "Metadata": { + "Common.PropertyName": "Name" + } + }, + { + "Kind": "ITagHelper", + "Name": "for", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression", + "Documentation": "\n \n An expression to be evaluated against the current model. Cannot be used together with .\n \n ", + "Metadata": { + "Common.PropertyName": "For" + } + }, + { + "Kind": "ITagHelper", + "Name": "model", + "TypeName": "System.Object", + "Documentation": "\n \n The model to pass into the partial view. Cannot be used together with .\n \n ", + "Metadata": { + "Common.PropertyName": "Model" + } + }, + { + "Kind": "ITagHelper", + "Name": "optional", + "TypeName": "System.Boolean", + "Documentation": "\n \n When optional, executing the tag helper will no-op if the view cannot be located.\n Otherwise will throw stating the view could not be found.\n \n ", + "Metadata": { + "Common.PropertyName": "Optional" + } + }, + { + "Kind": "ITagHelper", + "Name": "fallback-name", + "TypeName": "System.String", + "Documentation": "\n \n View to lookup if the view specified by cannot be located.\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackName" + } + }, + { + "Kind": "ITagHelper", + "Name": "view-data", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ViewDataDictionary", + "IndexerNamePrefix": "view-data-", + "IndexerTypeName": "System.Object", + "Documentation": "\n \n A to pass into the partial view.\n \n ", + "Metadata": { + "Common.PropertyName": "ViewData" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.PartialTagHelper", + "Common.TypeNameIdentifier": "PartialTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -1386070393, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.PersistComponentStateTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n A that saves the state of Razor components rendered on the page up to that point.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "persist-component-state", + "TagStructure": 2 + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "persist-mode", + "TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.PersistenceMode?", + "Documentation": "\n \n Gets or sets the for the state to persist.\n \n ", + "Metadata": { + "Common.PropertyName": "PersistenceMode" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.PersistComponentStateTagHelper", + "Common.TypeNameIdentifier": "PersistComponentStateTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -326021522, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <script> elements that supports fallback src paths.\n \n \n The tag helper won't process for cases with just the 'src' attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-src-include" + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-src-exclude" + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-fallback-src" + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-fallback-src-include" + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-fallback-src-exclude" + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-fallback-test" + } + ] + }, + { + "TagName": "script", + "Attributes": [ + { + "Name": "asp-append-version" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "src", + "TypeName": "System.String", + "Documentation": "\n \n Address of the external script to use.\n \n \n Passed through to the generated HTML in all cases.\n \n ", + "Metadata": { + "Common.PropertyName": "Src" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-src-include", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of JavaScript scripts to load.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n \n ", + "Metadata": { + "Common.PropertyName": "SrcInclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-src-exclude", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of JavaScript scripts to exclude from loading.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n Must be used in conjunction with .\n \n ", + "Metadata": { + "Common.PropertyName": "SrcExclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-src", + "TypeName": "System.String", + "Documentation": "\n \n The URL of a Script tag to fallback to in the case the primary one fails.\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackSrc" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-suppress-fallback-integrity", + "TypeName": "System.Boolean", + "Documentation": "\n \n Boolean value that determines if an integrity hash will be compared with value.\n \n ", + "Metadata": { + "Common.PropertyName": "SuppressFallbackIntegrity" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-append-version", + "TypeName": "System.Boolean?", + "Documentation": "\n \n Value indicating if file version should be appended to src urls.\n \n \n A query string \"v\" with the encoded content of the file is added.\n \n ", + "Metadata": { + "Common.PropertyName": "AppendVersion" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-src-include", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of JavaScript scripts to fallback to in the case the\n primary one fails.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackSrcInclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-src-exclude", + "TypeName": "System.String", + "Documentation": "\n \n A comma separated list of globbed file patterns of JavaScript scripts to exclude from the fallback list, in\n the case the primary one fails.\n The glob patterns are assessed relative to the application's 'webroot' setting.\n Must be used in conjunction with .\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackSrcExclude" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-fallback-test", + "TypeName": "System.String", + "Documentation": "\n \n The script method defined in the primary script to use for the fallback test.\n \n ", + "Metadata": { + "Common.PropertyName": "FallbackTestExpression" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.ScriptTagHelper", + "Common.TypeNameIdentifier": "ScriptTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -681957590, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <select> elements with asp-for and/or\n asp-items attribute(s).\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "select", + "Attributes": [ + { + "Name": "asp-for" + } + ] + }, + { + "TagName": "select", + "Attributes": [ + { + "Name": "asp-items" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-for", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression", + "Documentation": "\n \n An expression to be evaluated against the current model.\n \n ", + "Metadata": { + "Common.PropertyName": "For" + } + }, + { + "Kind": "ITagHelper", + "Name": "asp-items", + "TypeName": "System.Collections.Generic.IEnumerable", + "Documentation": "\n \n A collection of objects used to populate the <select> element with\n <optgroup> and <option> elements.\n \n ", + "Metadata": { + "Common.PropertyName": "Items" + } + }, + { + "Kind": "ITagHelper", + "Name": "name", + "TypeName": "System.String", + "Documentation": "\n \n The name of the <input> element.\n \n \n Passed through to the generated HTML in all cases. Also used to determine whether is\n valid with an empty .\n \n ", + "Metadata": { + "Common.PropertyName": "Name" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.SelectTagHelper", + "Common.TypeNameIdentifier": "SelectTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -81315620, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <textarea> elements with an asp-for attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "textarea", + "Attributes": [ + { + "Name": "asp-for" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-for", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression", + "Documentation": "\n \n An expression to be evaluated against the current model.\n \n ", + "Metadata": { + "Common.PropertyName": "For" + } + }, + { + "Kind": "ITagHelper", + "Name": "name", + "TypeName": "System.String", + "Documentation": "\n \n The name of the <input> element.\n \n \n Passed through to the generated HTML in all cases. Also used to determine whether is\n valid with an empty .\n \n ", + "Metadata": { + "Common.PropertyName": "Name" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.TextAreaTagHelper", + "Common.TypeNameIdentifier": "TextAreaTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": 2020929298, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <span> elements with an asp-validation-for\n attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "span", + "Attributes": [ + { + "Name": "asp-validation-for" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-validation-for", + "TypeName": "Microsoft.AspNetCore.Mvc.ViewFeatures.ModelExpression", + "Documentation": "\n \n Gets an expression to be evaluated against the current model.\n \n ", + "Metadata": { + "Common.PropertyName": "For" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.ValidationMessageTagHelper", + "Common.TypeNameIdentifier": "ValidationMessageTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -1432093976, + "Kind": "ITagHelper", + "Name": "Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper", + "AssemblyName": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Documentation": "\n \n implementation targeting <div> elements with an asp-validation-summary\n attribute.\n \n ", + "CaseSensitive": false, + "TagMatchingRules": [ + { + "TagName": "div", + "Attributes": [ + { + "Name": "asp-validation-summary" + } + ] + } + ], + "BoundAttributes": [ + { + "Kind": "ITagHelper", + "Name": "asp-validation-summary", + "TypeName": "Microsoft.AspNetCore.Mvc.Rendering.ValidationSummary", + "IsEnum": true, + "Documentation": "\n \n If or , appends a validation\n summary. Otherwise (, the default), this tag helper does nothing.\n \n \n Thrown if setter is called with an undefined value e.g.\n (ValidationSummary)23.\n \n ", + "Metadata": { + "Common.PropertyName": "ValidationSummary" + } + } + ], + "Metadata": { + "Common.TypeName": "Microsoft.AspNetCore.Mvc.TagHelpers.ValidationSummaryTagHelper", + "Common.TypeNameIdentifier": "ValidationSummaryTagHelper", + "Common.TypeNamespace": "Microsoft.AspNetCore.Mvc.TagHelpers", + "Runtime.Name": "ITagHelper" + } + }, + { + "HashCode": -1418939289, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Bind", + "Common.TypeNameIdentifier": "Bind", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components", + "Components.Bind.Fallback": "True", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1670335347, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "False", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1363589955, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "False", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1365793585, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "False", + "Components.Bind.TypeAttribute": "checkbox", + "Components.Bind.ValueAttribute": "checked", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -2120155039, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "False", + "Components.Bind.TypeAttribute": "text", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -646902413, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "number", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 171177108, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "number", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -610200160, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "yyyy-MM-dd", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "date", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1512291047, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "yyyy-MM-dd", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "date", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 663374777, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "yyyy-MM-ddTHH:mm:ss", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "datetime-local", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 953687000, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "yyyy-MM-ddTHH:mm:ss", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "datetime-local", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1170511236, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "yyyy-MM", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "month", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1674882720, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "yyyy-MM", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "month", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1953156954, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "HH:mm:ss", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "time", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -537061850, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": "HH:mm:ss", + "Components.Bind.IsInvariantCulture": "True", + "Components.Bind.TypeAttribute": "time", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -749896645, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "False", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -918209139, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Web.BindAttributes", + "Common.TypeNameIdentifier": "BindAttributes", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Web", + "Components.Bind.ChangeAttribute": "onchange", + "Components.Bind.Format": null, + "Components.Bind.IsInvariantCulture": "False", + "Components.Bind.ValueAttribute": "value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -2019525078, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", + "Common.TypeNameIdentifier": "InputCheckbox", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 685937759, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputCheckbox", + "Common.TypeNameIdentifier": "InputCheckbox", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1900022267, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputDate", + "Common.TypeNameIdentifier": "InputDate", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2032279764, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputDate", + "Common.TypeNameIdentifier": "InputDate", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1219174375, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputNumber", + "Common.TypeNameIdentifier": "InputNumber", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 682248733, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputNumber", + "Common.TypeNameIdentifier": "InputNumber", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -324976449, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", + "Common.TypeNameIdentifier": "InputRadioGroup", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 576178155, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputRadioGroup", + "Common.TypeNameIdentifier": "InputRadioGroup", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 1261904802, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputSelect", + "Common.TypeNameIdentifier": "InputSelect", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -92423047, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputSelect", + "Common.TypeNameIdentifier": "InputSelect", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 2034667159, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputText", + "Common.TypeNameIdentifier": "InputText", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1470343824, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputText", + "Common.TypeNameIdentifier": "InputText", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 991808313, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputTextArea", + "Common.TypeNameIdentifier": "InputTextArea", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -132103300, + "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": { + "Common.TypeName": "Microsoft.AspNetCore.Components.Forms.InputTextArea", + "Common.TypeNameIdentifier": "InputTextArea", + "Common.TypeNamespace": "Microsoft.AspNetCore.Components.Forms", + "Components.Bind.ChangeAttribute": "ValueChanged", + "Components.Bind.ExpressionAttribute": "ValueExpression", + "Components.Bind.ValueAttribute": "Value", + "Components.IsSpecialKind": "Components.Bind", + "Components.NameMatch": "Components.FullyQualifiedNameMatch", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": -1318410285, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Ref", + "Components.IsSpecialKind": "Components.Ref", + "Runtime.Name": "Components.None" + } + }, + { + "HashCode": 598216284, + "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": { + "Common.ClassifyAttributesOnly": "True", + "Common.TypeName": "Microsoft.AspNetCore.Components.Key", + "Components.IsSpecialKind": "Components.Key", + "Runtime.Name": "Components.None" + } + } + ], + "CSharpLanguageVersion": 1200 + }, + "RootNamespace": "NimbusFlow.Frontend", + "Documents": [ + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Layout/MainLayout.razor", + "TargetPath": "Components\\Layout\\MainLayout.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Routes.razor", + "TargetPath": "Components\\Routes.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/_Imports.razor", + "TargetPath": "Components\\_Imports.razor", + "FileKind": "componentImport" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Pages/Error.razor", + "TargetPath": "Components\\Pages\\Error.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Layout/NavMenu.razor", + "TargetPath": "Components\\Layout\\NavMenu.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Pages/Home.razor", + "TargetPath": "Components\\Pages\\Home.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Pages/Schedules.razor", + "TargetPath": "Components\\Pages\\Schedules.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/App.razor", + "TargetPath": "Components\\App.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Pages/Members.razor", + "TargetPath": "Components\\Pages\\Members.razor", + "FileKind": "component" + }, + { + "FilePath": "/home/t2/Development/nimbusflow/frontend/Components/Pages/Services.razor", + "TargetPath": "Components\\Pages\\Services.razor", + "FileKind": "component" + } + ], + "SerializationFormat": "0.3" +} \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/ref/NimbusFlow.Frontend.dll b/frontend/obj/Debug/net8.0/ref/NimbusFlow.Frontend.dll new file mode 100644 index 0000000..9938e1f Binary files /dev/null and b/frontend/obj/Debug/net8.0/ref/NimbusFlow.Frontend.dll differ diff --git a/frontend/obj/Debug/net8.0/refint/NimbusFlow.Frontend.dll b/frontend/obj/Debug/net8.0/refint/NimbusFlow.Frontend.dll new file mode 100644 index 0000000..9938e1f Binary files /dev/null and b/frontend/obj/Debug/net8.0/refint/NimbusFlow.Frontend.dll differ diff --git a/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/MainLayout.razor.rz.scp.css b/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/MainLayout.razor.rz.scp.css new file mode 100644 index 0000000..5f8aa0d --- /dev/null +++ b/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/MainLayout.razor.rz.scp.css @@ -0,0 +1,96 @@ +.page[b-9xz5ehm10w] { + position: relative; + display: flex; + flex-direction: column; +} + +main[b-9xz5ehm10w] { + flex: 1; +} + +.sidebar[b-9xz5ehm10w] { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row[b-9xz5ehm10w] { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row[b-9xz5ehm10w] a:hover, .top-row[b-9xz5ehm10w] .btn-link:hover { + text-decoration: underline; + } + + .top-row[b-9xz5ehm10w] a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row[b-9xz5ehm10w] { + justify-content: space-between; + } + + .top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page[b-9xz5ehm10w] { + flex-direction: row; + } + + .sidebar[b-9xz5ehm10w] { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row[b-9xz5ehm10w] { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth[b-9xz5ehm10w] a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row[b-9xz5ehm10w], article[b-9xz5ehm10w] { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui[b-9xz5ehm10w] { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss[b-9xz5ehm10w] { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } diff --git a/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/NavMenu.razor.rz.scp.css b/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/NavMenu.razor.rz.scp.css new file mode 100644 index 0000000..919d370 --- /dev/null +++ b/frontend/obj/Debug/net8.0/scopedcss/Components/Layout/NavMenu.razor.rz.scp.css @@ -0,0 +1,105 @@ +.navbar-toggler[b-qjlejshrrx] { + appearance: none; + cursor: pointer; + width: 3.5rem; + height: 2.5rem; + color: white; + position: absolute; + top: 0.5rem; + right: 1rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: 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") no-repeat center/1.75rem rgba(255, 255, 255, 0.1); +} + +.navbar-toggler:checked[b-qjlejshrrx] { + background-color: rgba(255, 255, 255, 0.5); +} + +.top-row[b-qjlejshrrx] { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand[b-qjlejshrrx] { + font-size: 1.1rem; +} + +.bi[b-qjlejshrrx] { + display: inline-block; + position: relative; + width: 1.25rem; + height: 1.25rem; + margin-right: 0.75rem; + top: -1px; + background-size: cover; +} + +.bi-house-door-fill-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E"); +} + +.bi-plus-square-fill-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E"); +} + +.bi-list-nested-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E"); +} + +.nav-item[b-qjlejshrrx] { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type[b-qjlejshrrx] { + padding-top: 1rem; + } + + .nav-item:last-of-type[b-qjlejshrrx] { + padding-bottom: 1rem; + } + + .nav-item[b-qjlejshrrx] .nav-link { + color: #d7d7d7; + background: none; + border: none; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + width: 100%; + } + +.nav-item[b-qjlejshrrx] a.active { + background-color: rgba(255,255,255,0.37); + color: white; +} + +.nav-item[b-qjlejshrrx] .nav-link:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +.nav-scrollable[b-qjlejshrrx] { + display: none; +} + +.navbar-toggler:checked ~ .nav-scrollable[b-qjlejshrrx] { + display: block; +} + +@media (min-width: 641px) { + .navbar-toggler[b-qjlejshrrx] { + display: none; + } + + .nav-scrollable[b-qjlejshrrx] { + /* Never collapse the sidebar for wide screens */ + display: block; + + /* Allow sidebar to scroll for tall menus */ + height: calc(100vh - 3.5rem); + overflow-y: auto; + } +} diff --git a/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css b/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css new file mode 100644 index 0000000..5710349 --- /dev/null +++ b/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css @@ -0,0 +1,203 @@ +/* _content/NimbusFlow.Frontend/Components/Layout/MainLayout.razor.rz.scp.css */ +.page[b-9xz5ehm10w] { + position: relative; + display: flex; + flex-direction: column; +} + +main[b-9xz5ehm10w] { + flex: 1; +} + +.sidebar[b-9xz5ehm10w] { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row[b-9xz5ehm10w] { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row[b-9xz5ehm10w] a:hover, .top-row[b-9xz5ehm10w] .btn-link:hover { + text-decoration: underline; + } + + .top-row[b-9xz5ehm10w] a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row[b-9xz5ehm10w] { + justify-content: space-between; + } + + .top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page[b-9xz5ehm10w] { + flex-direction: row; + } + + .sidebar[b-9xz5ehm10w] { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row[b-9xz5ehm10w] { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth[b-9xz5ehm10w] a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row[b-9xz5ehm10w], article[b-9xz5ehm10w] { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui[b-9xz5ehm10w] { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss[b-9xz5ehm10w] { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } +/* _content/NimbusFlow.Frontend/Components/Layout/NavMenu.razor.rz.scp.css */ +.navbar-toggler[b-qjlejshrrx] { + appearance: none; + cursor: pointer; + width: 3.5rem; + height: 2.5rem; + color: white; + position: absolute; + top: 0.5rem; + right: 1rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: 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") no-repeat center/1.75rem rgba(255, 255, 255, 0.1); +} + +.navbar-toggler:checked[b-qjlejshrrx] { + background-color: rgba(255, 255, 255, 0.5); +} + +.top-row[b-qjlejshrrx] { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand[b-qjlejshrrx] { + font-size: 1.1rem; +} + +.bi[b-qjlejshrrx] { + display: inline-block; + position: relative; + width: 1.25rem; + height: 1.25rem; + margin-right: 0.75rem; + top: -1px; + background-size: cover; +} + +.bi-house-door-fill-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E"); +} + +.bi-plus-square-fill-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E"); +} + +.bi-list-nested-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E"); +} + +.nav-item[b-qjlejshrrx] { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type[b-qjlejshrrx] { + padding-top: 1rem; + } + + .nav-item:last-of-type[b-qjlejshrrx] { + padding-bottom: 1rem; + } + + .nav-item[b-qjlejshrrx] .nav-link { + color: #d7d7d7; + background: none; + border: none; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + width: 100%; + } + +.nav-item[b-qjlejshrrx] a.active { + background-color: rgba(255,255,255,0.37); + color: white; +} + +.nav-item[b-qjlejshrrx] .nav-link:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +.nav-scrollable[b-qjlejshrrx] { + display: none; +} + +.navbar-toggler:checked ~ .nav-scrollable[b-qjlejshrrx] { + display: block; +} + +@media (min-width: 641px) { + .navbar-toggler[b-qjlejshrrx] { + display: none; + } + + .nav-scrollable[b-qjlejshrrx] { + /* Never collapse the sidebar for wide screens */ + display: block; + + /* Allow sidebar to scroll for tall menus */ + height: calc(100vh - 3.5rem); + overflow-y: auto; + } +} diff --git a/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css b/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css new file mode 100644 index 0000000..5710349 --- /dev/null +++ b/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css @@ -0,0 +1,203 @@ +/* _content/NimbusFlow.Frontend/Components/Layout/MainLayout.razor.rz.scp.css */ +.page[b-9xz5ehm10w] { + position: relative; + display: flex; + flex-direction: column; +} + +main[b-9xz5ehm10w] { + flex: 1; +} + +.sidebar[b-9xz5ehm10w] { + background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%); +} + +.top-row[b-9xz5ehm10w] { + background-color: #f7f7f7; + border-bottom: 1px solid #d6d5d5; + justify-content: flex-end; + height: 3.5rem; + display: flex; + align-items: center; +} + + .top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link { + white-space: nowrap; + margin-left: 1.5rem; + text-decoration: none; + } + + .top-row[b-9xz5ehm10w] a:hover, .top-row[b-9xz5ehm10w] .btn-link:hover { + text-decoration: underline; + } + + .top-row[b-9xz5ehm10w] a:first-child { + overflow: hidden; + text-overflow: ellipsis; + } + +@media (max-width: 640.98px) { + .top-row[b-9xz5ehm10w] { + justify-content: space-between; + } + + .top-row[b-9xz5ehm10w] a, .top-row[b-9xz5ehm10w] .btn-link { + margin-left: 0; + } +} + +@media (min-width: 641px) { + .page[b-9xz5ehm10w] { + flex-direction: row; + } + + .sidebar[b-9xz5ehm10w] { + width: 250px; + height: 100vh; + position: sticky; + top: 0; + } + + .top-row[b-9xz5ehm10w] { + position: sticky; + top: 0; + z-index: 1; + } + + .top-row.auth[b-9xz5ehm10w] a:first-child { + flex: 1; + text-align: right; + width: 0; + } + + .top-row[b-9xz5ehm10w], article[b-9xz5ehm10w] { + padding-left: 2rem !important; + padding-right: 1.5rem !important; + } +} + +#blazor-error-ui[b-9xz5ehm10w] { + background: lightyellow; + bottom: 0; + box-shadow: 0 -1px 2px rgba(0, 0, 0, 0.2); + display: none; + left: 0; + padding: 0.6rem 1.25rem 0.7rem 1.25rem; + position: fixed; + width: 100%; + z-index: 1000; +} + + #blazor-error-ui .dismiss[b-9xz5ehm10w] { + cursor: pointer; + position: absolute; + right: 0.75rem; + top: 0.5rem; + } +/* _content/NimbusFlow.Frontend/Components/Layout/NavMenu.razor.rz.scp.css */ +.navbar-toggler[b-qjlejshrrx] { + appearance: none; + cursor: pointer; + width: 3.5rem; + height: 2.5rem; + color: white; + position: absolute; + top: 0.5rem; + right: 1rem; + border: 1px solid rgba(255, 255, 255, 0.1); + background: 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") no-repeat center/1.75rem rgba(255, 255, 255, 0.1); +} + +.navbar-toggler:checked[b-qjlejshrrx] { + background-color: rgba(255, 255, 255, 0.5); +} + +.top-row[b-qjlejshrrx] { + height: 3.5rem; + background-color: rgba(0,0,0,0.4); +} + +.navbar-brand[b-qjlejshrrx] { + font-size: 1.1rem; +} + +.bi[b-qjlejshrrx] { + display: inline-block; + position: relative; + width: 1.25rem; + height: 1.25rem; + margin-right: 0.75rem; + top: -1px; + background-size: cover; +} + +.bi-house-door-fill-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-house-door-fill' viewBox='0 0 16 16'%3E%3Cpath d='M6.5 14.5v-3.505c0-.245.25-.495.5-.495h2c.25 0 .5.25.5.5v3.5a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5v-7a.5.5 0 0 0-.146-.354L13 5.793V2.5a.5.5 0 0 0-.5-.5h-1a.5.5 0 0 0-.5.5v1.293L8.354 1.146a.5.5 0 0 0-.708 0l-6 6A.5.5 0 0 0 1.5 7.5v7a.5.5 0 0 0 .5.5h4a.5.5 0 0 0 .5-.5Z'/%3E%3C/svg%3E"); +} + +.bi-plus-square-fill-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-plus-square-fill' viewBox='0 0 16 16'%3E%3Cpath d='M2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2zm6.5 4.5v3h3a.5.5 0 0 1 0 1h-3v3a.5.5 0 0 1-1 0v-3h-3a.5.5 0 0 1 0-1h3v-3a.5.5 0 0 1 1 0z'/%3E%3C/svg%3E"); +} + +.bi-list-nested-nav-menu[b-qjlejshrrx] { + background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='white' class='bi bi-list-nested' viewBox='0 0 16 16'%3E%3Cpath fill-rule='evenodd' d='M4.5 11.5A.5.5 0 0 1 5 11h10a.5.5 0 0 1 0 1H5a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 3 7h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm-2-4A.5.5 0 0 1 1 3h10a.5.5 0 0 1 0 1H1a.5.5 0 0 1-.5-.5z'/%3E%3C/svg%3E"); +} + +.nav-item[b-qjlejshrrx] { + font-size: 0.9rem; + padding-bottom: 0.5rem; +} + + .nav-item:first-of-type[b-qjlejshrrx] { + padding-top: 1rem; + } + + .nav-item:last-of-type[b-qjlejshrrx] { + padding-bottom: 1rem; + } + + .nav-item[b-qjlejshrrx] .nav-link { + color: #d7d7d7; + background: none; + border: none; + border-radius: 4px; + height: 3rem; + display: flex; + align-items: center; + line-height: 3rem; + width: 100%; + } + +.nav-item[b-qjlejshrrx] a.active { + background-color: rgba(255,255,255,0.37); + color: white; +} + +.nav-item[b-qjlejshrrx] .nav-link:hover { + background-color: rgba(255,255,255,0.1); + color: white; +} + +.nav-scrollable[b-qjlejshrrx] { + display: none; +} + +.navbar-toggler:checked ~ .nav-scrollable[b-qjlejshrrx] { + display: block; +} + +@media (min-width: 641px) { + .navbar-toggler[b-qjlejshrrx] { + display: none; + } + + .nav-scrollable[b-qjlejshrrx] { + /* Never collapse the sidebar for wide screens */ + display: block; + + /* Allow sidebar to scroll for tall menus */ + height: calc(100vh - 3.5rem); + overflow-y: auto; + } +} diff --git a/frontend/obj/Debug/net8.0/staticwebassets.build.json b/frontend/obj/Debug/net8.0/staticwebassets.build.json new file mode 100644 index 0000000..6f75cae --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets.build.json @@ -0,0 +1,134 @@ +{ + "Version": 1, + "Hash": "13XSTsKieyma8ttrJ8+acV7o8zAargmbFi1oQKIMZZk=", + "Source": "NimbusFlow.Frontend", + "BasePath": "_content/NimbusFlow.Frontend", + "Mode": "Default", + "ManifestType": "Build", + "ReferencedProjectsConfiguration": [], + "DiscoveryPatterns": [ + { + "Name": "NimbusFlow.Frontend/wwwroot", + "Source": "NimbusFlow.Frontend", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/", + "BasePath": "_content/NimbusFlow.Frontend", + "Pattern": "**" + } + ], + "Assets": [ + { + "Identity": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css", + "SourceId": "NimbusFlow.Frontend", + "SourceType": "Computed", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/", + "BasePath": "_content/NimbusFlow.Frontend", + "RelativePath": "NimbusFlow.Frontend.styles.css", + "AssetKind": "All", + "AssetMode": "CurrentProject", + "AssetRole": "Primary", + "AssetMergeBehavior": "", + "AssetMergeSource": "", + "RelatedAsset": "", + "AssetTraitName": "ScopedCss", + "AssetTraitValue": "ApplicationBundle", + "CopyToOutputDirectory": "Never", + "CopyToPublishDirectory": "PreserveNewest", + "OriginalItemSpec": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css" + }, + { + "Identity": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css", + "SourceId": "NimbusFlow.Frontend", + "SourceType": "Computed", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/", + "BasePath": "_content/NimbusFlow.Frontend", + "RelativePath": "NimbusFlow.Frontend.bundle.scp.css", + "AssetKind": "All", + "AssetMode": "Reference", + "AssetRole": "Primary", + "AssetMergeBehavior": "", + "AssetMergeSource": "", + "RelatedAsset": "", + "AssetTraitName": "ScopedCss", + "AssetTraitValue": "ProjectBundle", + "CopyToOutputDirectory": "Never", + "CopyToPublishDirectory": "PreserveNewest", + "OriginalItemSpec": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css" + }, + { + "Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/app.css", + "SourceId": "NimbusFlow.Frontend", + "SourceType": "Discovered", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/", + "BasePath": "_content/NimbusFlow.Frontend", + "RelativePath": "app.css", + "AssetKind": "All", + "AssetMode": "All", + "AssetRole": "Primary", + "AssetMergeBehavior": "PreferTarget", + "AssetMergeSource": "", + "RelatedAsset": "", + "AssetTraitName": "", + "AssetTraitValue": "", + "CopyToOutputDirectory": "Never", + "CopyToPublishDirectory": "PreserveNewest", + "OriginalItemSpec": "wwwroot/app.css" + }, + { + "Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css", + "SourceId": "NimbusFlow.Frontend", + "SourceType": "Discovered", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/", + "BasePath": "_content/NimbusFlow.Frontend", + "RelativePath": "bootstrap/bootstrap.min.css", + "AssetKind": "All", + "AssetMode": "All", + "AssetRole": "Primary", + "AssetMergeBehavior": "PreferTarget", + "AssetMergeSource": "", + "RelatedAsset": "", + "AssetTraitName": "", + "AssetTraitValue": "", + "CopyToOutputDirectory": "Never", + "CopyToPublishDirectory": "PreserveNewest", + "OriginalItemSpec": "wwwroot/bootstrap/bootstrap.min.css" + }, + { + "Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css.map", + "SourceId": "NimbusFlow.Frontend", + "SourceType": "Discovered", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/", + "BasePath": "_content/NimbusFlow.Frontend", + "RelativePath": "bootstrap/bootstrap.min.css.map", + "AssetKind": "All", + "AssetMode": "All", + "AssetRole": "Primary", + "AssetMergeBehavior": "PreferTarget", + "AssetMergeSource": "", + "RelatedAsset": "", + "AssetTraitName": "", + "AssetTraitValue": "", + "CopyToOutputDirectory": "Never", + "CopyToPublishDirectory": "PreserveNewest", + "OriginalItemSpec": "wwwroot/bootstrap/bootstrap.min.css.map" + }, + { + "Identity": "/home/t2/Development/nimbusflow/frontend/wwwroot/favicon.png", + "SourceId": "NimbusFlow.Frontend", + "SourceType": "Discovered", + "ContentRoot": "/home/t2/Development/nimbusflow/frontend/wwwroot/", + "BasePath": "_content/NimbusFlow.Frontend", + "RelativePath": "favicon.png", + "AssetKind": "All", + "AssetMode": "All", + "AssetRole": "Primary", + "AssetMergeBehavior": "PreferTarget", + "AssetMergeSource": "", + "RelatedAsset": "", + "AssetTraitName": "", + "AssetTraitValue": "", + "CopyToOutputDirectory": "Never", + "CopyToPublishDirectory": "PreserveNewest", + "OriginalItemSpec": "wwwroot/favicon.png" + } + ] +} \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/staticwebassets.development.json b/frontend/obj/Debug/net8.0/staticwebassets.development.json new file mode 100644 index 0000000..a124378 --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets.development.json @@ -0,0 +1 @@ +{"ContentRoots":["/home/t2/Development/nimbusflow/frontend/wwwroot/","/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/bundle/"],"Root":{"Children":{"app.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"app.css"},"Patterns":null},"bootstrap":{"Children":{"bootstrap.min.css":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css"},"Patterns":null},"bootstrap.min.css.map":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"bootstrap/bootstrap.min.css.map"},"Patterns":null}},"Asset":null,"Patterns":null},"favicon.png":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"favicon.png"},"Patterns":null},"NimbusFlow.Frontend.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"NimbusFlow.Frontend.styles.css"},"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}} \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/staticwebassets.pack.json b/frontend/obj/Debug/net8.0/staticwebassets.pack.json new file mode 100644 index 0000000..67a36a0 --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets.pack.json @@ -0,0 +1,41 @@ +{ + "Files": [ + { + "Id": "/home/t2/Development/nimbusflow/frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css", + "PackagePath": "staticwebassets/NimbusFlow.Frontend.bundle.scp.css" + }, + { + "Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/app.css", + "PackagePath": "staticwebassets/app.css" + }, + { + "Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css", + "PackagePath": "staticwebassets/bootstrap/bootstrap.min.css" + }, + { + "Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/bootstrap/bootstrap.min.css.map", + "PackagePath": "staticwebassets/bootstrap/bootstrap.min.css.map" + }, + { + "Id": "/home/t2/Development/nimbusflow/frontend/wwwroot/favicon.png", + "PackagePath": "staticwebassets/favicon.png" + }, + { + "Id": "obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props", + "PackagePath": "build\\Microsoft.AspNetCore.StaticWebAssets.props" + }, + { + "Id": "obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props", + "PackagePath": "build\\NimbusFlow.Frontend.props" + }, + { + "Id": "obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props", + "PackagePath": "buildMultiTargeting\\NimbusFlow.Frontend.props" + }, + { + "Id": "obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props", + "PackagePath": "buildTransitive\\NimbusFlow.Frontend.props" + } + ], + "ElementsToRemove": [] +} \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props new file mode 100644 index 0000000..0777892 --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props @@ -0,0 +1,84 @@ + + + + Package + NimbusFlow.Frontend + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/NimbusFlow.Frontend + app.css + All + All + Primary + + + + Never + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\app.css)) + + + Package + NimbusFlow.Frontend + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/NimbusFlow.Frontend + bootstrap/bootstrap.min.css + All + All + Primary + + + + Never + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css)) + + + Package + NimbusFlow.Frontend + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/NimbusFlow.Frontend + bootstrap/bootstrap.min.css.map + All + All + Primary + + + + Never + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css.map)) + + + Package + NimbusFlow.Frontend + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/NimbusFlow.Frontend + favicon.png + All + All + Primary + + + + Never + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\favicon.png)) + + + Package + NimbusFlow.Frontend + $(MSBuildThisFileDirectory)..\staticwebassets\ + _content/NimbusFlow.Frontend + NimbusFlow.Frontend.bundle.scp.css + All + Reference + Primary + + ScopedCss + ProjectBundle + Never + PreserveNewest + $([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\NimbusFlow.Frontend.bundle.scp.css)) + + + \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props new file mode 100644 index 0000000..5a6032a --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props new file mode 100644 index 0000000..a5fde9f --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props new file mode 100644 index 0000000..2f63761 --- /dev/null +++ b/frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props @@ -0,0 +1,3 @@ + + + \ No newline at end of file diff --git a/frontend/obj/NimbusFlow.Frontend.csproj.nuget.dgspec.json b/frontend/obj/NimbusFlow.Frontend.csproj.nuget.dgspec.json new file mode 100644 index 0000000..d73f216 --- /dev/null +++ b/frontend/obj/NimbusFlow.Frontend.csproj.nuget.dgspec.json @@ -0,0 +1,64 @@ +{ + "format": 1, + "restore": { + "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj": {} + }, + "projects": { + "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj", + "projectName": "NimbusFlow.Frontend", + "projectPath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj", + "packagesPath": "/home/t2/.nuget/packages/", + "outputPath": "/home/t2/Development/nimbusflow/frontend/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/t2/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/8.0.119/PortableRuntimeIdentifierGraph.json" + } + } + } + } +} \ No newline at end of file diff --git a/frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.props b/frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.props new file mode 100644 index 0000000..be7c907 --- /dev/null +++ b/frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.props @@ -0,0 +1,15 @@ + + + + True + NuGet + $(MSBuildThisFileDirectory)project.assets.json + /home/t2/.nuget/packages/ + /home/t2/.nuget/packages/ + PackageReference + 6.8.1 + + + + + \ No newline at end of file diff --git a/frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.targets b/frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.targets new file mode 100644 index 0000000..3dc06ef --- /dev/null +++ b/frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.targets @@ -0,0 +1,2 @@ + + \ No newline at end of file diff --git a/frontend/obj/project.assets.json b/frontend/obj/project.assets.json new file mode 100644 index 0000000..b725813 --- /dev/null +++ b/frontend/obj/project.assets.json @@ -0,0 +1,69 @@ +{ + "version": 3, + "targets": { + "net8.0": {} + }, + "libraries": {}, + "projectFileDependencyGroups": { + "net8.0": [] + }, + "packageFolders": { + "/home/t2/.nuget/packages/": {} + }, + "project": { + "version": "1.0.0", + "restore": { + "projectUniqueName": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj", + "projectName": "NimbusFlow.Frontend", + "projectPath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj", + "packagesPath": "/home/t2/.nuget/packages/", + "outputPath": "/home/t2/Development/nimbusflow/frontend/obj/", + "projectStyle": "PackageReference", + "configFilePaths": [ + "/home/t2/.nuget/NuGet/NuGet.Config" + ], + "originalTargetFrameworks": [ + "net8.0" + ], + "sources": { + "https://api.nuget.org/v3/index.json": {} + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "projectReferences": {} + } + }, + "warningProperties": { + "warnAsError": [ + "NU1605" + ] + } + }, + "frameworks": { + "net8.0": { + "targetAlias": "net8.0", + "imports": [ + "net461", + "net462", + "net47", + "net471", + "net472", + "net48", + "net481" + ], + "assetTargetFallback": true, + "warn": true, + "frameworkReferences": { + "Microsoft.AspNetCore.App": { + "privateAssets": "none" + }, + "Microsoft.NETCore.App": { + "privateAssets": "all" + } + }, + "runtimeIdentifierGraphPath": "/usr/lib64/dotnet/sdk/8.0.119/PortableRuntimeIdentifierGraph.json" + } + } + } +} \ No newline at end of file diff --git a/frontend/obj/project.nuget.cache b/frontend/obj/project.nuget.cache new file mode 100644 index 0000000..128098c --- /dev/null +++ b/frontend/obj/project.nuget.cache @@ -0,0 +1,8 @@ +{ + "version": 2, + "dgSpecHash": "4VM37g4NzGscGHW+DyrAJgqbILrTqjEDnHP1JXPPpgdgYQb1HOBSeMph5AXEVHY4bn19ocXdXWcAV3zg61qCRQ==", + "success": true, + "projectFilePath": "/home/t2/Development/nimbusflow/frontend/NimbusFlow.Frontend.csproj", + "expectedPackageFiles": [], + "logs": [] +} \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json deleted file mode 100644 index 219ff75..0000000 --- a/frontend/package-lock.json +++ /dev/null @@ -1,3021 +0,0 @@ -{ - "name": "nimbusflow", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "nimbusflow", - "version": "0.0.0", - "dependencies": { - "react": "^19.1.1", - "react-dom": "^19.1.1" - }, - "devDependencies": { - "@eslint/js": "^9.33.0", - "@types/react": "^19.1.10", - "@types/react-dom": "^19.1.7", - "@vitejs/plugin-react-swc": "^4.0.0", - "eslint": "^9.33.0", - "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-react-refresh": "^0.4.20", - "globals": "^16.3.0", - "typescript": "~5.8.3", - "typescript-eslint": "^8.39.1", - "vite": "^7.1.2" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.8.tgz", - "integrity": "sha512-urAvrUedIqEiFR3FYSLTWQgLu5tb+m0qZw0NBEasUeo6wuqatkMDaRT+1uABiGXEu5vqgPd7FGE1BhsAIy9QVA==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.8.tgz", - "integrity": "sha512-RONsAvGCz5oWyePVnLdZY/HHwA++nxYWIX1atInlaW6SEkwq6XkP3+cb825EUcRs5Vss/lGh/2YxAb5xqc07Uw==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.8.tgz", - "integrity": "sha512-OD3p7LYzWpLhZEyATcTSJ67qB5D+20vbtr6vHlHWSQYhKtzUYrETuWThmzFpZtFsBIxRvhO07+UgVA9m0i/O1w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.8.tgz", - "integrity": "sha512-yJAVPklM5+4+9dTeKwHOaA+LQkmrKFX96BM0A/2zQrbS6ENCmxc4OVoBs5dPkCCak2roAD+jKCdnmOqKszPkjA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.8.tgz", - "integrity": "sha512-Jw0mxgIaYX6R8ODrdkLLPwBqHTtYHJSmzzd+QeytSugzQ0Vg4c5rDky5VgkoowbZQahCbsv1rT1KW72MPIkevw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.8.tgz", - "integrity": "sha512-Vh2gLxxHnuoQ+GjPNvDSDRpoBCUzY4Pu0kBqMBDlK4fuWbKgGtmDIeEC081xi26PPjn+1tct+Bh8FjyLlw1Zlg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.8.tgz", - "integrity": "sha512-YPJ7hDQ9DnNe5vxOm6jaie9QsTwcKedPvizTVlqWG9GBSq+BuyWEDazlGaDTC5NGU4QJd666V0yqCBL2oWKPfA==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.8.tgz", - "integrity": "sha512-MmaEXxQRdXNFsRN/KcIimLnSJrk2r5H8v+WVafRWz5xdSVmWLoITZQXcgehI2ZE6gioE6HirAEToM/RvFBeuhw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.8.tgz", - "integrity": "sha512-FuzEP9BixzZohl1kLf76KEVOsxtIBFwCaLupVuk4eFVnOZfU+Wsn+x5Ryam7nILV2pkq2TqQM9EZPsOBuMC+kg==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.8.tgz", - "integrity": "sha512-WIgg00ARWv/uYLU7lsuDK00d/hHSfES5BzdWAdAig1ioV5kaFNrtK8EqGcUBJhYqotlUByUKz5Qo6u8tt7iD/w==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.8.tgz", - "integrity": "sha512-A1D9YzRX1i+1AJZuFFUMP1E9fMaYY+GnSQil9Tlw05utlE86EKTUA7RjwHDkEitmLYiFsRd9HwKBPEftNdBfjg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.8.tgz", - "integrity": "sha512-O7k1J/dwHkY1RMVvglFHl1HzutGEFFZ3kNiDMSOyUrB7WcoHGf96Sh+64nTRT26l3GMbCW01Ekh/ThKM5iI7hQ==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.8.tgz", - "integrity": "sha512-uv+dqfRazte3BzfMp8PAQXmdGHQt2oC/y2ovwpTteqrMx2lwaksiFZ/bdkXJC19ttTvNXBuWH53zy/aTj1FgGw==", - "cpu": [ - "mips64el" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.8.tgz", - "integrity": "sha512-GyG0KcMi1GBavP5JgAkkstMGyMholMDybAf8wF5A70CALlDM2p/f7YFE7H92eDeH/VBtFJA5MT4nRPDGg4JuzQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.8.tgz", - "integrity": "sha512-rAqDYFv3yzMrq7GIcen3XP7TUEG/4LK86LUPMIz6RT8A6pRIDn0sDcvjudVZBiiTcZCY9y2SgYX2lgK3AF+1eg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.8.tgz", - "integrity": "sha512-Xutvh6VjlbcHpsIIbwY8GVRbwoviWT19tFhgdA7DlenLGC/mbc3lBoVb7jxj9Z+eyGqvcnSyIltYUrkKzWqSvg==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.8.tgz", - "integrity": "sha512-ASFQhgY4ElXh3nDcOMTkQero4b1lgubskNlhIfJrsH5OKZXDpUAKBlNS0Kx81jwOBp+HCeZqmoJuihTv57/jvQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.8.tgz", - "integrity": "sha512-d1KfruIeohqAi6SA+gENMuObDbEjn22olAR7egqnkCD9DGBG0wsEARotkLgXDu6c4ncgWTZJtN5vcgxzWRMzcw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.8.tgz", - "integrity": "sha512-nVDCkrvx2ua+XQNyfrujIG38+YGyuy2Ru9kKVNyh5jAys6n+l44tTtToqHjino2My8VAY6Lw9H7RI73XFi66Cg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.8.tgz", - "integrity": "sha512-j8HgrDuSJFAujkivSMSfPQSAa5Fxbvk4rgNAS5i3K+r8s1X0p1uOO2Hl2xNsGFppOeHOLAVgYwDVlmxhq5h+SQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.8.tgz", - "integrity": "sha512-1h8MUAwa0VhNCDp6Af0HToI2TJFAn1uqT9Al6DJVzdIBAd21m/G0Yfc77KDM3uF3T/YaOgQq3qTJHPbTOInaIQ==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/openharmony-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/openharmony-arm64/-/openharmony-arm64-0.25.8.tgz", - "integrity": "sha512-r2nVa5SIK9tSWd0kJd9HCffnDHKchTGikb//9c7HX+r+wHYCpQrSgxhlY6KWV1nFo1l4KFbsMlHk+L6fekLsUg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "openharmony" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.8.tgz", - "integrity": "sha512-zUlaP2S12YhQ2UzUfcCuMDHQFJyKABkAjvO5YSndMiIkMimPmxA+BYSBikWgsRpvyxuRnow4nS5NPnf9fpv41w==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.8.tgz", - "integrity": "sha512-YEGFFWESlPva8hGL+zvj2z/SaK+pH0SwOM0Nc/d+rVnW7GSTFlLBGzZkuSU9kFIGIo8q9X3ucpZhu8PDN5A2sQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.8.tgz", - "integrity": "sha512-hiGgGC6KZ5LZz58OL/+qVVoZiuZlUYlYHNAmczOm7bs2oE1XriPFi5ZHHrS8ACpV5EjySrnoCKmcbQMN+ojnHg==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.8.tgz", - "integrity": "sha512-cn3Yr7+OaaZq1c+2pe+8yxC8E144SReCQjN6/2ynubzYjvyqZjTXfQJpAcQpsdJq3My7XADANiYGHoFC69pLQw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=18" - } - }, - "node_modules/@eslint-community/eslint-utils": { - "version": "4.7.0", - "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.7.0.tgz", - "integrity": "sha512-dyybb3AcajC7uha6CvhdVRJqaKyn7w2YKqKyAN37NKYgZT36w+iRb0Dymmc5qEJ549c/S31cMMSFd75bteCpCw==", - "dev": true, - "license": "MIT", - "dependencies": { - "eslint-visitor-keys": "^3.4.3" - }, - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - }, - "peerDependencies": { - "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" - } - }, - "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz", - "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^12.22.0 || ^14.17.0 || >=16.0.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint-community/regexpp": { - "version": "4.12.1", - "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz", - "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^12.0.0 || ^14.0.0 || >=16.0.0" - } - }, - "node_modules/@eslint/config-array": { - "version": "0.21.0", - "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz", - "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/object-schema": "^2.1.6", - "debug": "^4.3.1", - "minimatch": "^3.1.2" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/config-helpers": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.3.1.tgz", - "integrity": "sha512-xR93k9WhrDYpXHORXpxVL5oHj3Era7wo6k/Wd8/IsQNnZUTzkGS29lyn3nAT05v6ltUuTFVCCYDEGfy2Or/sPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/core": { - "version": "0.15.2", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.15.2.tgz", - "integrity": "sha512-78Md3/Rrxh83gCxoUc0EiciuOHsIITzLy53m3d9UyiW8y9Dj2D29FeETqyKA+BRK76tnTp6RXWb3pCay8Oyomg==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@types/json-schema": "^7.0.15" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/eslintrc": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz", - "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ajv": "^6.12.4", - "debug": "^4.3.2", - "espree": "^10.0.1", - "globals": "^14.0.0", - "ignore": "^5.2.0", - "import-fresh": "^3.2.1", - "js-yaml": "^4.1.0", - "minimatch": "^3.1.2", - "strip-json-comments": "^3.1.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/@eslint/eslintrc/node_modules/globals": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz", - "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@eslint/js": { - "version": "9.33.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.33.0.tgz", - "integrity": "sha512-5K1/mKhWaMfreBGJTwval43JJmkip0RmM+3+IuqupeSKNC/Th2Kc7ucaq5ovTSra/OOKB9c58CGSz3QMVbWt0A==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - } - }, - "node_modules/@eslint/object-schema": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz", - "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@eslint/plugin-kit": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.5.tgz", - "integrity": "sha512-Z5kJ+wU3oA7MMIqVR9tyZRtjYPr4OC004Q4Rw7pgOKUOKkJfZ3O24nz3WYfGRpMDNmcOi3TwQOmgm7B7Tpii0w==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@eslint/core": "^0.15.2", - "levn": "^0.4.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - } - }, - "node_modules/@humanfs/core": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz", - "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node": { - "version": "0.16.6", - "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.6.tgz", - "integrity": "sha512-YuI2ZHQL78Q5HbhDiBA1X4LmYdXCKCMQIfw0pw7piHJwyREFebJUvrQN4cMssyES6x+vfUbx1CIpaQUKYdQZOw==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@humanfs/core": "^0.19.1", - "@humanwhocodes/retry": "^0.3.0" - }, - "engines": { - "node": ">=18.18.0" - } - }, - "node_modules/@humanfs/node/node_modules/@humanwhocodes/retry": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.3.1.tgz", - "integrity": "sha512-JBxkERygn7Bv/GbN5Rv8Ul6LVknS+5Bp6RgDC/O8gEBU/yeH5Ui5C/OlWrTb6qct7LjjfT6Re2NxB0ln0yYybA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/module-importer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz", - "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=12.22" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@humanwhocodes/retry": { - "version": "0.4.3", - "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz", - "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": ">=18.18" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/nzakas" - } - }, - "node_modules/@nodelib/fs.scandir": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", - "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "2.0.5", - "run-parallel": "^1.1.9" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.stat": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", - "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/@nodelib/fs.walk": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", - "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.scandir": "2.1.5", - "fastq": "^1.6.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/@rolldown/pluginutils": { - "version": "1.0.0-beta.30", - "resolved": "https://registry.npmjs.org/@rolldown/pluginutils/-/pluginutils-1.0.0-beta.30.tgz", - "integrity": "sha512-whXaSoNUFiyDAjkUF8OBpOm77Szdbk5lGNqFe6CbVbJFrhCCPinCbRA3NjawwlNHla1No7xvXXh+CpSxnPfUEw==", - "dev": true, - "license": "MIT" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.46.2.tgz", - "integrity": "sha512-Zj3Hl6sN34xJtMv7Anwb5Gu01yujyE/cLBDB2gnHTAHaWS1Z38L7kuSG+oAh0giZMqG060f/YBStXtMH6FvPMA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.46.2.tgz", - "integrity": "sha512-nTeCWY83kN64oQ5MGz3CgtPx8NSOhC5lWtsjTs+8JAJNLcP3QbLCtDDgUKQc/Ro/frpMq4SHUaHN6AMltcEoLQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.46.2.tgz", - "integrity": "sha512-HV7bW2Fb/F5KPdM/9bApunQh68YVDU8sO8BvcW9OngQVN3HHHkw99wFupuUJfGR9pYLLAjcAOA6iO+evsbBaPQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.46.2.tgz", - "integrity": "sha512-SSj8TlYV5nJixSsm/y3QXfhspSiLYP11zpfwp6G/YDXctf3Xkdnk4woJIF5VQe0of2OjzTt8EsxnJDCdHd2xMA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-freebsd-arm64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.46.2.tgz", - "integrity": "sha512-ZyrsG4TIT9xnOlLsSSi9w/X29tCbK1yegE49RYm3tu3wF1L/B6LVMqnEWyDB26d9Ecx9zrmXCiPmIabVuLmNSg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-freebsd-x64": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.46.2.tgz", - "integrity": "sha512-pCgHFoOECwVCJ5GFq8+gR8SBKnMO+xe5UEqbemxBpCKYQddRQMgomv1104RnLSg7nNvgKy05sLsY51+OVRyiVw==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "freebsd" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.46.2.tgz", - "integrity": "sha512-EtP8aquZ0xQg0ETFcxUbU71MZlHaw9MChwrQzatiE8U/bvi5uv/oChExXC4mWhjiqK7azGJBqU0tt5H123SzVA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.46.2.tgz", - "integrity": "sha512-qO7F7U3u1nfxYRPM8HqFtLd+raev2K137dsV08q/LRKRLEc7RsiDWihUnrINdsWQxPR9jqZ8DIIZ1zJJAm5PjQ==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.46.2.tgz", - "integrity": "sha512-3dRaqLfcOXYsfvw5xMrxAk9Lb1f395gkoBYzSFcc/scgRFptRXL9DOaDpMiehf9CO8ZDRJW2z45b6fpU5nwjng==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.46.2.tgz", - "integrity": "sha512-fhHFTutA7SM+IrR6lIfiHskxmpmPTJUXpWIsBXpeEwNgZzZZSg/q4i6FU4J8qOGyJ0TR+wXBwx/L7Ho9z0+uDg==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-loongarch64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.46.2.tgz", - "integrity": "sha512-i7wfGFXu8x4+FRqPymzjD+Hyav8l95UIZ773j7J7zRYc3Xsxy2wIn4x+llpunexXe6laaO72iEjeeGyUFmjKeA==", - "cpu": [ - "loong64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-ppc64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.46.2.tgz", - "integrity": "sha512-B/l0dFcHVUnqcGZWKcWBSV2PF01YUt0Rvlurci5P+neqY/yMKchGU8ullZvIv5e8Y1C6wOn+U03mrDylP5q9Yw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.46.2.tgz", - "integrity": "sha512-32k4ENb5ygtkMwPMucAb8MtV8olkPT03oiTxJbgkJa7lJ7dZMr0GCFJlyvy+K8iq7F/iuOr41ZdUHaOiqyR3iQ==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.46.2.tgz", - "integrity": "sha512-t5B2loThlFEauloaQkZg9gxV05BYeITLvLkWOkRXogP4qHXLkWSbSHKM9S6H1schf/0YGP/qNKtiISlxvfmmZw==", - "cpu": [ - "riscv64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.46.2.tgz", - "integrity": "sha512-YKjekwTEKgbB7n17gmODSmJVUIvj8CX7q5442/CK80L8nqOUbMtf8b01QkG3jOqyr1rotrAnW6B/qiHwfcuWQA==", - "cpu": [ - "s390x" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.46.2.tgz", - "integrity": "sha512-Jj5a9RUoe5ra+MEyERkDKLwTXVu6s3aACP51nkfnK9wJTraCC8IMe3snOfALkrjTYd2G1ViE1hICj0fZ7ALBPA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.46.2.tgz", - "integrity": "sha512-7kX69DIrBeD7yNp4A5b81izs8BqoZkCIaxQaOpumcJ1S/kmqNFjPhDu1LHeVXv0SexfHQv5cqHsxLOjETuqDuA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.46.2.tgz", - "integrity": "sha512-wiJWMIpeaak/jsbaq2HMh/rzZxHVW1rU6coyeNNpMwk5isiPjSTx0a4YLSlYDwBH/WBvLz+EtsNqQScZTLJy3g==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.46.2.tgz", - "integrity": "sha512-gBgaUDESVzMgWZhcyjfs9QFK16D8K6QZpwAaVNJxYDLHWayOta4ZMjGm/vsAEy3hvlS2GosVFlBlP9/Wb85DqQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.46.2.tgz", - "integrity": "sha512-CvUo2ixeIQGtF6WvuB87XWqPQkoFAFqW+HUo/WzHwuHDvIwZCtjdWXoYCcr06iKGydiqTclC4jU/TNObC/xKZg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@swc/core": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core/-/core-1.13.3.tgz", - "integrity": "sha512-ZaDETVWnm6FE0fc+c2UE8MHYVS3Fe91o5vkmGfgwGXFbxYvAjKSqxM/j4cRc9T7VZNSJjriXq58XkfCp3Y6f+w==", - "dev": true, - "hasInstallScript": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3", - "@swc/types": "^0.1.23" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/swc" - }, - "optionalDependencies": { - "@swc/core-darwin-arm64": "1.13.3", - "@swc/core-darwin-x64": "1.13.3", - "@swc/core-linux-arm-gnueabihf": "1.13.3", - "@swc/core-linux-arm64-gnu": "1.13.3", - "@swc/core-linux-arm64-musl": "1.13.3", - "@swc/core-linux-x64-gnu": "1.13.3", - "@swc/core-linux-x64-musl": "1.13.3", - "@swc/core-win32-arm64-msvc": "1.13.3", - "@swc/core-win32-ia32-msvc": "1.13.3", - "@swc/core-win32-x64-msvc": "1.13.3" - }, - "peerDependencies": { - "@swc/helpers": ">=0.5.17" - }, - "peerDependenciesMeta": { - "@swc/helpers": { - "optional": true - } - } - }, - "node_modules/@swc/core-darwin-arm64": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-arm64/-/core-darwin-arm64-1.13.3.tgz", - "integrity": "sha512-ux0Ws4pSpBTqbDS9GlVP354MekB1DwYlbxXU3VhnDr4GBcCOimpocx62x7cFJkSpEBF8bmX8+/TTCGKh4PbyXw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-darwin-x64": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-darwin-x64/-/core-darwin-x64-1.13.3.tgz", - "integrity": "sha512-p0X6yhxmNUOMZrbeZ3ZNsPige8lSlSe1llllXvpCLkKKxN/k5vZt1sULoq6Nj4eQ7KeHQVm81/+AwKZyf/e0TA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm-gnueabihf": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm-gnueabihf/-/core-linux-arm-gnueabihf-1.13.3.tgz", - "integrity": "sha512-OmDoiexL2fVWvQTCtoh0xHMyEkZweQAlh4dRyvl8ugqIPEVARSYtaj55TBMUJIP44mSUOJ5tytjzhn2KFxFcBA==", - "cpu": [ - "arm" - ], - "dev": true, - "license": "Apache-2.0", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-gnu": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-gnu/-/core-linux-arm64-gnu-1.13.3.tgz", - "integrity": "sha512-STfKku3QfnuUj6k3g9ld4vwhtgCGYIFQmsGPPgT9MK/dI3Lwnpe5Gs5t1inoUIoGNP8sIOLlBB4HV4MmBjQuhw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-arm64-musl": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-arm64-musl/-/core-linux-arm64-musl-1.13.3.tgz", - "integrity": "sha512-bc+CXYlFc1t8pv9yZJGus372ldzOVscBl7encUBlU1m/Sig0+NDJLz6cXXRcFyl6ABNOApWeR4Yl7iUWx6C8og==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-gnu": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-gnu/-/core-linux-x64-gnu-1.13.3.tgz", - "integrity": "sha512-dFXoa0TEhohrKcxn/54YKs1iwNeW6tUkHJgXW33H381SvjKFUV53WR231jh1sWVJETjA3vsAwxKwR23s7UCmUA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-linux-x64-musl": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-linux-x64-musl/-/core-linux-x64-musl-1.13.3.tgz", - "integrity": "sha512-ieyjisLB+ldexiE/yD8uomaZuZIbTc8tjquYln9Quh5ykOBY7LpJJYBWvWtm1g3pHv6AXlBI8Jay7Fffb6aLfA==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-arm64-msvc": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-arm64-msvc/-/core-win32-arm64-msvc-1.13.3.tgz", - "integrity": "sha512-elTQpnaX5vESSbhCEgcwXjpMsnUbqqHfEpB7ewpkAsLzKEXZaK67ihSRYAuAx6ewRQTo7DS5iTT6X5aQD3MzMw==", - "cpu": [ - "arm64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-ia32-msvc": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-ia32-msvc/-/core-win32-ia32-msvc-1.13.3.tgz", - "integrity": "sha512-nvehQVEOdI1BleJpuUgPLrclJ0TzbEMc+MarXDmmiRFwEUGqj+pnfkTSb7RZyS1puU74IXdK/YhTirHurtbI9w==", - "cpu": [ - "ia32" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/core-win32-x64-msvc": { - "version": "1.13.3", - "resolved": "https://registry.npmjs.org/@swc/core-win32-x64-msvc/-/core-win32-x64-msvc-1.13.3.tgz", - "integrity": "sha512-A+JSKGkRbPLVV2Kwx8TaDAV0yXIXm/gc8m98hSkVDGlPBBmydgzNdWy3X7HTUBM7IDk7YlWE7w2+RUGjdgpTmg==", - "cpu": [ - "x64" - ], - "dev": true, - "license": "Apache-2.0 AND MIT", - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=10" - } - }, - "node_modules/@swc/counter": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/@swc/counter/-/counter-0.1.3.tgz", - "integrity": "sha512-e2BR4lsJkkRlKZ/qCHPw9ZaSxc0MVUd7gtbtaB7aMvHeJVYe8sOB8DBZkP2DtISHGSku9sCK6T6cnY0CtXrOCQ==", - "dev": true, - "license": "Apache-2.0" - }, - "node_modules/@swc/types": { - "version": "0.1.24", - "resolved": "https://registry.npmjs.org/@swc/types/-/types-0.1.24.tgz", - "integrity": "sha512-tjTMh3V4vAORHtdTprLlfoMptu1WfTZG9Rsca6yOKyNYsRr+MUXutKmliB17orgSZk5DpnDxs8GUdd/qwYxOng==", - "dev": true, - "license": "Apache-2.0", - "dependencies": { - "@swc/counter": "^0.1.3" - } - }, - "node_modules/@types/estree": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz", - "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/json-schema": { - "version": "7.0.15", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz", - "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==", - "dev": true, - "license": "MIT" - }, - "node_modules/@types/react": { - "version": "19.1.10", - "resolved": "https://registry.npmjs.org/@types/react/-/react-19.1.10.tgz", - "integrity": "sha512-EhBeSYX0Y6ye8pNebpKrwFJq7BoQ8J5SO6NlvNwwHjSj6adXJViPQrKlsyPw7hLBLvckEMO1yxeGdR82YBBlDg==", - "dev": true, - "license": "MIT", - "dependencies": { - "csstype": "^3.0.2" - } - }, - "node_modules/@types/react-dom": { - "version": "19.1.7", - "resolved": "https://registry.npmjs.org/@types/react-dom/-/react-dom-19.1.7.tgz", - "integrity": "sha512-i5ZzwYpqjmrKenzkoLM2Ibzt6mAsM7pxB6BCIouEVVmgiqaMj1TjaK7hnA36hbW5aZv20kx7Lw6hWzPWg0Rurw==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "@types/react": "^19.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.39.1.tgz", - "integrity": "sha512-yYegZ5n3Yr6eOcqgj2nJH8cH/ZZgF+l0YIdKILSDjYFRjgYQMgv/lRjV5Z7Up04b9VYUondt8EPMqg7kTWgJ2g==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.39.1", - "@typescript-eslint/type-utils": "8.39.1", - "@typescript-eslint/utils": "8.39.1", - "@typescript-eslint/visitor-keys": "8.39.1", - "graphemer": "^1.4.0", - "ignore": "^7.0.0", - "natural-compare": "^1.4.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "@typescript-eslint/parser": "^8.39.1", - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz", - "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/@typescript-eslint/parser": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.39.1.tgz", - "integrity": "sha512-pUXGCuHnnKw6PyYq93lLRiZm3vjuslIy7tus1lIQTYVK9bL8XBgJnCWm8a0KcTtHC84Yya1Q6rtll+duSMj0dg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/scope-manager": "8.39.1", - "@typescript-eslint/types": "8.39.1", - "@typescript-eslint/typescript-estree": "8.39.1", - "@typescript-eslint/visitor-keys": "8.39.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/project-service": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.39.1.tgz", - "integrity": "sha512-8fZxek3ONTwBu9ptw5nCKqZOSkXshZB7uAxuFF0J/wTMkKydjXCzqqga7MlFMpHi9DoG4BadhmTkITBcg8Aybw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.39.1", - "@typescript-eslint/types": "^8.39.1", - "debug": "^4.3.4" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/scope-manager": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.39.1.tgz", - "integrity": "sha512-RkBKGBrjgskFGWuyUGz/EtD8AF/GW49S21J8dvMzpJitOF1slLEbbHnNEtAHtnDAnx8qDEdRrULRnWVx27wGBw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.39.1", - "@typescript-eslint/visitor-keys": "8.39.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.39.1.tgz", - "integrity": "sha512-ePUPGVtTMR8XMU2Hee8kD0Pu4NDE1CN9Q1sxGSGd/mbOtGZDM7pnhXNJnzW63zk/q+Z54zVzj44HtwXln5CvHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/type-utils": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.39.1.tgz", - "integrity": "sha512-gu9/ahyatyAdQbKeHnhT4R+y3YLtqqHyvkfDxaBYk97EcbfChSJXyaJnIL3ygUv7OuZatePHmQvuH5ru0lnVeA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.39.1", - "@typescript-eslint/typescript-estree": "8.39.1", - "@typescript-eslint/utils": "8.39.1", - "debug": "^4.3.4", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/types": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.39.1.tgz", - "integrity": "sha512-7sPDKQQp+S11laqTrhHqeAbsCfMkwJMrV7oTDvtDds4mEofJYir414bYKUEb8YPUm9QL3U+8f6L6YExSoAGdQw==", - "dev": true, - "license": "MIT", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.39.1.tgz", - "integrity": "sha512-EKkpcPuIux48dddVDXyQBlKdeTPMmALqBUbEk38McWv0qVEZwOpVJBi7ugK5qVNgeuYjGNQxrrnoM/5+TI/BPw==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/project-service": "8.39.1", - "@typescript-eslint/tsconfig-utils": "8.39.1", - "@typescript-eslint/types": "8.39.1", - "@typescript-eslint/visitor-keys": "8.39.1", - "debug": "^4.3.4", - "fast-glob": "^3.3.2", - "is-glob": "^4.0.3", - "minimatch": "^9.0.4", - "semver": "^7.6.0", - "ts-api-utils": "^2.1.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz", - "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": { - "version": "9.0.5", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz", - "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=16 || 14 >=14.17" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/@typescript-eslint/utils": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.39.1.tgz", - "integrity": "sha512-VF5tZ2XnUSTuiqZFXCZfZs1cgkdd3O/sSYmdo2EpSyDlC86UM/8YytTmKnehOW3TGAlivqTDT6bS87B/GQ/jyg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.39.1", - "@typescript-eslint/types": "8.39.1", - "@typescript-eslint/typescript-estree": "8.39.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.39.1.tgz", - "integrity": "sha512-W8FQi6kEh2e8zVhQ0eeRnxdvIoOkAp/CPAahcNio6nO9dsIwb9b34z90KOlheoyuVf6LSOEdjlkxSkapNEc+4A==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/types": "8.39.1", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - } - }, - "node_modules/@vitejs/plugin-react-swc": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-react-swc/-/plugin-react-swc-4.0.0.tgz", - "integrity": "sha512-4A1dThI578v07mpG4M+ziNn6lmlMlhtVCheL+2WLvClnLvEULi8rpAZThn2oEKn3GtFXFTOeko6eLRhx2V2kgA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@rolldown/pluginutils": "1.0.0-beta.30", - "@swc/core": "^1.13.2" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "peerDependencies": { - "vite": "^4 || ^5 || ^6 || ^7" - } - }, - "node_modules/acorn": { - "version": "8.15.0", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", - "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", - "dev": true, - "license": "MIT", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-jsx": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz", - "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" - } - }, - "node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "license": "MIT", - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==", - "dev": true, - "license": "Python-2.0" - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/brace-expansion": { - "version": "1.1.12", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz", - "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==", - "dev": true, - "license": "MIT", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", - "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", - "dev": true, - "license": "MIT", - "dependencies": { - "fill-range": "^7.1.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/callsites": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", - "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, - "license": "MIT", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, - "license": "MIT" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==", - "dev": true, - "license": "MIT" - }, - "node_modules/cross-spawn": { - "version": "7.0.6", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz", - "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==", - "dev": true, - "license": "MIT", - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==", - "dev": true, - "license": "MIT" - }, - "node_modules/debug": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.1.tgz", - "integrity": "sha512-KcKCqiftBJcZr++7ykoDIEwSa3XWowTfNPo92BYxjXiyYEVrUQh2aLyhxBCwww+heortUFxEJYcRzosstTEBYQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "ms": "^2.1.3" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/deep-is": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz", - "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/esbuild": { - "version": "0.25.8", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.8.tgz", - "integrity": "sha512-vVC0USHGtMi8+R4Kz8rt6JhEWLxsv9Rnu/lGYbPR8u47B+DCBksq9JarW0zOO7bs37hyOK1l2/oqtbciutL5+Q==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=18" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.25.8", - "@esbuild/android-arm": "0.25.8", - "@esbuild/android-arm64": "0.25.8", - "@esbuild/android-x64": "0.25.8", - "@esbuild/darwin-arm64": "0.25.8", - "@esbuild/darwin-x64": "0.25.8", - "@esbuild/freebsd-arm64": "0.25.8", - "@esbuild/freebsd-x64": "0.25.8", - "@esbuild/linux-arm": "0.25.8", - "@esbuild/linux-arm64": "0.25.8", - "@esbuild/linux-ia32": "0.25.8", - "@esbuild/linux-loong64": "0.25.8", - "@esbuild/linux-mips64el": "0.25.8", - "@esbuild/linux-ppc64": "0.25.8", - "@esbuild/linux-riscv64": "0.25.8", - "@esbuild/linux-s390x": "0.25.8", - "@esbuild/linux-x64": "0.25.8", - "@esbuild/netbsd-arm64": "0.25.8", - "@esbuild/netbsd-x64": "0.25.8", - "@esbuild/openbsd-arm64": "0.25.8", - "@esbuild/openbsd-x64": "0.25.8", - "@esbuild/openharmony-arm64": "0.25.8", - "@esbuild/sunos-x64": "0.25.8", - "@esbuild/win32-arm64": "0.25.8", - "@esbuild/win32-ia32": "0.25.8", - "@esbuild/win32-x64": "0.25.8" - } - }, - "node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/eslint": { - "version": "9.33.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.33.0.tgz", - "integrity": "sha512-TS9bTNIryDzStCpJN93aC5VRSW3uTx9sClUn4B87pwiCaJh220otoI0X8mJKr+VcPtniMdN8GKjlwgWGUv5ZKA==", - "dev": true, - "license": "MIT", - "dependencies": { - "@eslint-community/eslint-utils": "^4.2.0", - "@eslint-community/regexpp": "^4.12.1", - "@eslint/config-array": "^0.21.0", - "@eslint/config-helpers": "^0.3.1", - "@eslint/core": "^0.15.2", - "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.33.0", - "@eslint/plugin-kit": "^0.3.5", - "@humanfs/node": "^0.16.6", - "@humanwhocodes/module-importer": "^1.0.1", - "@humanwhocodes/retry": "^0.4.2", - "@types/estree": "^1.0.6", - "@types/json-schema": "^7.0.15", - "ajv": "^6.12.4", - "chalk": "^4.0.0", - "cross-spawn": "^7.0.6", - "debug": "^4.3.2", - "escape-string-regexp": "^4.0.0", - "eslint-scope": "^8.4.0", - "eslint-visitor-keys": "^4.2.1", - "espree": "^10.4.0", - "esquery": "^1.5.0", - "esutils": "^2.0.2", - "fast-deep-equal": "^3.1.3", - "file-entry-cache": "^8.0.0", - "find-up": "^5.0.0", - "glob-parent": "^6.0.2", - "ignore": "^5.2.0", - "imurmurhash": "^0.1.4", - "is-glob": "^4.0.0", - "json-stable-stringify-without-jsonify": "^1.0.1", - "lodash.merge": "^4.6.2", - "minimatch": "^3.1.2", - "natural-compare": "^1.4.0", - "optionator": "^0.9.3" - }, - "bin": { - "eslint": "bin/eslint.js" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://eslint.org/donate" - }, - "peerDependencies": { - "jiti": "*" - }, - "peerDependenciesMeta": { - "jiti": { - "optional": true - } - } - }, - "node_modules/eslint-plugin-react-hooks": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-hooks/-/eslint-plugin-react-hooks-5.2.0.tgz", - "integrity": "sha512-+f15FfK64YQwZdJNELETdn5ibXEUQmW1DZL6KXhNnc2heoy/sg9VJJeT7n8TlMWouzWqSWavFkIhHyIbIAEapg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "eslint": "^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 || ^8.0.0-0 || ^9.0.0" - } - }, - "node_modules/eslint-plugin-react-refresh": { - "version": "0.4.20", - "resolved": "https://registry.npmjs.org/eslint-plugin-react-refresh/-/eslint-plugin-react-refresh-0.4.20.tgz", - "integrity": "sha512-XpbHQ2q5gUF8BGOX4dHe+71qoirYMhApEPZ7sfhF/dNnOF1UXnCMGZf79SFTBO7Bz5YEIT4TMieSlJBWhP9WBA==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "eslint": ">=8.40" - } - }, - "node_modules/eslint-scope": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz", - "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "esrecurse": "^4.3.0", - "estraverse": "^5.2.0" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/eslint-visitor-keys": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz", - "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==", - "dev": true, - "license": "Apache-2.0", - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/espree": { - "version": "10.4.0", - "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz", - "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "acorn": "^8.15.0", - "acorn-jsx": "^5.3.2", - "eslint-visitor-keys": "^4.2.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "url": "https://opencollective.com/eslint" - } - }, - "node_modules/esquery": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz", - "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==", - "dev": true, - "license": "BSD-3-Clause", - "dependencies": { - "estraverse": "^5.1.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", - "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esutils": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", - "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", - "dev": true, - "license": "BSD-2-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-glob": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz", - "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@nodelib/fs.stat": "^2.0.2", - "@nodelib/fs.walk": "^1.2.3", - "glob-parent": "^5.1.2", - "merge2": "^1.3.0", - "micromatch": "^4.0.8" - }, - "engines": { - "node": ">=8.6.0" - } - }, - "node_modules/fast-glob/node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", - "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fast-levenshtein": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", - "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==", - "dev": true, - "license": "MIT" - }, - "node_modules/fastq": { - "version": "1.19.1", - "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz", - "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==", - "dev": true, - "license": "ISC", - "dependencies": { - "reusify": "^1.0.4" - } - }, - "node_modules/file-entry-cache": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz", - "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "flat-cache": "^4.0.0" - }, - "engines": { - "node": ">=16.0.0" - } - }, - "node_modules/fill-range": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", - "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", - "dev": true, - "license": "MIT", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dev": true, - "license": "MIT", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz", - "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==", - "dev": true, - "license": "MIT", - "dependencies": { - "flatted": "^3.2.9", - "keyv": "^4.5.4" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/flatted": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz", - "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==", - "dev": true, - "license": "ISC" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "license": "ISC", - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, - "node_modules/globals": { - "version": "16.3.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-16.3.0.tgz", - "integrity": "sha512-bqWEnJ1Nt3neqx2q5SFfGS8r/ahumIakg3HcwtNlrVlwXIeNumWn/c7Pn/wKzGhf6SaW6H6uWXLqC30STCMchQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/graphemer": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz", - "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==", - "dev": true, - "license": "MIT" - }, - "node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/ignore": { - "version": "5.3.2", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz", - "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 4" - } - }, - "node_modules/import-fresh": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz", - "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "parent-module": "^1.0.0", - "resolve-from": "^4.0.0" - }, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==", - "dev": true, - "license": "ISC" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dev": true, - "license": "MIT", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/json-buffer": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz", - "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true, - "license": "MIT" - }, - "node_modules/json-stable-stringify-without-jsonify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", - "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==", - "dev": true, - "license": "MIT" - }, - "node_modules/keyv": { - "version": "4.5.4", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", - "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==", - "dev": true, - "license": "MIT", - "dependencies": { - "json-buffer": "3.0.1" - } - }, - "node_modules/levn": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz", - "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1", - "type-check": "~0.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash.merge": { - "version": "4.6.2", - "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", - "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==", - "dev": true, - "license": "MIT" - }, - "node_modules/merge2": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", - "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 8" - } - }, - "node_modules/micromatch": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", - "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", - "dev": true, - "license": "MIT", - "dependencies": { - "braces": "^3.0.3", - "picomatch": "^2.3.1" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dev": true, - "license": "ISC", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", - "dev": true, - "license": "MIT" - }, - "node_modules/nanoid": { - "version": "3.3.11", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz", - "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/natural-compare": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", - "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==", - "dev": true, - "license": "MIT" - }, - "node_modules/optionator": { - "version": "0.9.4", - "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz", - "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==", - "dev": true, - "license": "MIT", - "dependencies": { - "deep-is": "^0.1.3", - "fast-levenshtein": "^2.0.6", - "levn": "^0.4.1", - "prelude-ls": "^1.2.1", - "type-check": "^0.4.0", - "word-wrap": "^1.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/parent-module": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", - "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", - "dev": true, - "license": "MIT", - "dependencies": { - "callsites": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==", - "dev": true, - "license": "ISC" - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/postcss": { - "version": "8.5.6", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz", - "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==", - "dev": true, - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "license": "MIT", - "dependencies": { - "nanoid": "^3.3.11", - "picocolors": "^1.1.1", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/prelude-ls": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", - "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/punycode": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz", - "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=6" - } - }, - "node_modules/queue-microtask": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", - "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT" - }, - "node_modules/react": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react/-/react-19.1.1.tgz", - "integrity": "sha512-w8nqGImo45dmMIfljjMwOGtbmC/mk4CMYhWIicdSflH91J9TyCyczcPFXJzrZ/ZXcgGRFeP6BU0BEJTw6tZdfQ==", - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/react-dom": { - "version": "19.1.1", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-19.1.1.tgz", - "integrity": "sha512-Dlq/5LAZgF0Gaz6yiqZCf6VCcZs1ghAJyrsu84Q/GT0gV+mCxbfmKNoGRKBYMJ8IEdGPqu49YWXD02GCknEDkw==", - "license": "MIT", - "dependencies": { - "scheduler": "^0.26.0" - }, - "peerDependencies": { - "react": "^19.1.1" - } - }, - "node_modules/resolve-from": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", - "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=4" - } - }, - "node_modules/reusify": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz", - "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==", - "dev": true, - "license": "MIT", - "engines": { - "iojs": ">=1.0.0", - "node": ">=0.10.0" - } - }, - "node_modules/rollup": { - "version": "4.46.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.46.2.tgz", - "integrity": "sha512-WMmLFI+Boh6xbop+OAGo9cQ3OgX9MIg7xOQjn+pTCwOkk+FNDAeAemXkJ3HzDJrVXleLOFVa1ipuc1AmEx1Dwg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@types/estree": "1.0.8" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.46.2", - "@rollup/rollup-android-arm64": "4.46.2", - "@rollup/rollup-darwin-arm64": "4.46.2", - "@rollup/rollup-darwin-x64": "4.46.2", - "@rollup/rollup-freebsd-arm64": "4.46.2", - "@rollup/rollup-freebsd-x64": "4.46.2", - "@rollup/rollup-linux-arm-gnueabihf": "4.46.2", - "@rollup/rollup-linux-arm-musleabihf": "4.46.2", - "@rollup/rollup-linux-arm64-gnu": "4.46.2", - "@rollup/rollup-linux-arm64-musl": "4.46.2", - "@rollup/rollup-linux-loongarch64-gnu": "4.46.2", - "@rollup/rollup-linux-ppc64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-gnu": "4.46.2", - "@rollup/rollup-linux-riscv64-musl": "4.46.2", - "@rollup/rollup-linux-s390x-gnu": "4.46.2", - "@rollup/rollup-linux-x64-gnu": "4.46.2", - "@rollup/rollup-linux-x64-musl": "4.46.2", - "@rollup/rollup-win32-arm64-msvc": "4.46.2", - "@rollup/rollup-win32-ia32-msvc": "4.46.2", - "@rollup/rollup-win32-x64-msvc": "4.46.2", - "fsevents": "~2.3.2" - } - }, - "node_modules/run-parallel": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", - "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "license": "MIT", - "dependencies": { - "queue-microtask": "^1.2.2" - } - }, - "node_modules/scheduler": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.26.0.tgz", - "integrity": "sha512-NlHwttCI/l5gCPR3D1nNXtWABUmBwvZpEQiD4IXSbIDq8BzLIK/7Ir5gTFSGZDUu37K5cMNp0hFtzO38sC7gWA==", - "license": "MIT" - }, - "node_modules/semver": { - "version": "7.7.2", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.2.tgz", - "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", - "dev": true, - "license": "ISC", - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "dev": true, - "license": "BSD-3-Clause", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "license": "MIT", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" - }, - "engines": { - "node": ">=12.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/SuperchupuDev" - } - }, - "node_modules/tinyglobby/node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/tinyglobby/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/ts-api-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz", - "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.12" - }, - "peerDependencies": { - "typescript": ">=4.8.4" - } - }, - "node_modules/type-check": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz", - "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==", - "dev": true, - "license": "MIT", - "dependencies": { - "prelude-ls": "^1.2.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/typescript": { - "version": "5.8.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.8.3.tgz", - "integrity": "sha512-p1diW6TqL9L07nNxvRMM7hMMw4c5XOo/1ibL4aAIGmSAt9slTE1Xgw5KWuof2uTOvCg9BY7ZRi+GaF+7sfgPeQ==", - "dev": true, - "license": "Apache-2.0", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=14.17" - } - }, - "node_modules/typescript-eslint": { - "version": "8.39.1", - "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.39.1.tgz", - "integrity": "sha512-GDUv6/NDYngUlNvwaHM1RamYftxf782IyEDbdj3SeaIHHv8fNQVRC++fITT7kUJV/5rIA/tkoRSSskt6osEfqg==", - "dev": true, - "license": "MIT", - "dependencies": { - "@typescript-eslint/eslint-plugin": "8.39.1", - "@typescript-eslint/parser": "8.39.1", - "@typescript-eslint/typescript-estree": "8.39.1", - "@typescript-eslint/utils": "8.39.1" - }, - "engines": { - "node": "^18.18.0 || ^20.9.0 || >=21.1.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/typescript-eslint" - }, - "peerDependencies": { - "eslint": "^8.57.0 || ^9.0.0", - "typescript": ">=4.8.4 <6.0.0" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "license": "BSD-2-Clause", - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/vite": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/vite/-/vite-7.1.2.tgz", - "integrity": "sha512-J0SQBPlQiEXAF7tajiH+rUooJPo0l8KQgyg4/aMunNtrOa7bwuZJsJbDWzeljqQpgftxuq5yNJxQ91O9ts29UQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "esbuild": "^0.25.0", - "fdir": "^6.4.6", - "picomatch": "^4.0.3", - "postcss": "^8.5.6", - "rollup": "^4.43.0", - "tinyglobby": "^0.2.14" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^20.19.0 || >=22.12.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^20.19.0 || >=22.12.0", - "jiti": ">=1.21.0", - "less": "^4.0.0", - "lightningcss": "^1.21.0", - "sass": "^1.70.0", - "sass-embedded": "^1.70.0", - "stylus": ">=0.54.8", - "sugarss": "^5.0.0", - "terser": "^5.16.0", - "tsx": "^4.8.1", - "yaml": "^2.4.2" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "jiti": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - }, - "tsx": { - "optional": true - }, - "yaml": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/fdir": { - "version": "6.4.6", - "resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.6.tgz", - "integrity": "sha512-hiFoqpyZcfNm1yc4u8oWCf9A2c4D3QjCrks3zmoVKVxpQRzmPNar1hUJcBG2RQHvEVGDN+Jm81ZheVLAQMK6+w==", - "dev": true, - "license": "MIT", - "peerDependencies": { - "picomatch": "^3 || ^4" - }, - "peerDependenciesMeta": { - "picomatch": { - "optional": true - } - } - }, - "node_modules/vite/node_modules/picomatch": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", - "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "license": "ISC", - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/word-wrap": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz", - "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/frontend/package.json b/frontend/package.json deleted file mode 100644 index 7cfaeb5..0000000 --- a/frontend/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "nimbusflow", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "tsc -b && vite build", - "lint": "eslint .", - "preview": "vite preview" - }, - "dependencies": { - "react": "^19.1.1", - "react-dom": "^19.1.1" - }, - "devDependencies": { - "@eslint/js": "^9.33.0", - "@types/react": "^19.1.10", - "@types/react-dom": "^19.1.7", - "@vitejs/plugin-react-swc": "^4.0.0", - "eslint": "^9.33.0", - "eslint-plugin-react-hooks": "^5.2.0", - "eslint-plugin-react-refresh": "^0.4.20", - "globals": "^16.3.0", - "typescript": "~5.8.3", - "typescript-eslint": "^8.39.1", - "vite": "^7.1.2" - } -} diff --git a/frontend/public/vite.svg b/frontend/public/vite.svg deleted file mode 100644 index e7b8dfb..0000000 --- a/frontend/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/App.css b/frontend/src/App.css deleted file mode 100644 index b9d355d..0000000 --- a/frontend/src/App.css +++ /dev/null @@ -1,42 +0,0 @@ -#root { - max-width: 1280px; - margin: 0 auto; - padding: 2rem; - text-align: center; -} - -.logo { - height: 6em; - padding: 1.5em; - will-change: filter; - transition: filter 300ms; -} -.logo:hover { - filter: drop-shadow(0 0 2em #646cffaa); -} -.logo.react:hover { - filter: drop-shadow(0 0 2em #61dafbaa); -} - -@keyframes logo-spin { - from { - transform: rotate(0deg); - } - to { - transform: rotate(360deg); - } -} - -@media (prefers-reduced-motion: no-preference) { - a:nth-of-type(2) .logo { - animation: logo-spin infinite 20s linear; - } -} - -.card { - padding: 2em; -} - -.read-the-docs { - color: #888; -} diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx deleted file mode 100644 index 3d7ded3..0000000 --- a/frontend/src/App.tsx +++ /dev/null @@ -1,35 +0,0 @@ -import { useState } from 'react' -import reactLogo from './assets/react.svg' -import viteLogo from '/vite.svg' -import './App.css' - -function App() { - const [count, setCount] = useState(0) - - return ( - <> - -

Vite + React

-
- -

- Edit src/App.tsx and save to test HMR -

-
-

- Click on the Vite and React logos to learn more -

- - ) -} - -export default App diff --git a/frontend/src/assets/react.svg b/frontend/src/assets/react.svg deleted file mode 100644 index 6c87de9..0000000 --- a/frontend/src/assets/react.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/frontend/src/index.css b/frontend/src/index.css deleted file mode 100644 index 08a3ac9..0000000 --- a/frontend/src/index.css +++ /dev/null @@ -1,68 +0,0 @@ -:root { - font-family: system-ui, Avenir, Helvetica, Arial, sans-serif; - line-height: 1.5; - font-weight: 400; - - color-scheme: light dark; - color: rgba(255, 255, 255, 0.87); - background-color: #242424; - - font-synthesis: none; - text-rendering: optimizeLegibility; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} - -a { - font-weight: 500; - color: #646cff; - text-decoration: inherit; -} -a:hover { - color: #535bf2; -} - -body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} - -h1 { - font-size: 3.2em; - line-height: 1.1; -} - -button { - border-radius: 8px; - border: 1px solid transparent; - padding: 0.6em 1.2em; - font-size: 1em; - font-weight: 500; - font-family: inherit; - background-color: #1a1a1a; - cursor: pointer; - transition: border-color 0.25s; -} -button:hover { - border-color: #646cff; -} -button:focus, -button:focus-visible { - outline: 4px auto -webkit-focus-ring-color; -} - -@media (prefers-color-scheme: light) { - :root { - color: #213547; - background-color: #ffffff; - } - a:hover { - color: #747bff; - } - button { - background-color: #f9f9f9; - } -} diff --git a/frontend/src/main.tsx b/frontend/src/main.tsx deleted file mode 100644 index bef5202..0000000 --- a/frontend/src/main.tsx +++ /dev/null @@ -1,10 +0,0 @@ -import { StrictMode } from 'react' -import { createRoot } from 'react-dom/client' -import './index.css' -import App from './App.tsx' - -createRoot(document.getElementById('root')!).render( - - - , -) diff --git a/frontend/src/vite-env.d.ts b/frontend/src/vite-env.d.ts deleted file mode 100644 index 11f02fe..0000000 --- a/frontend/src/vite-env.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// diff --git a/frontend/tsconfig.app.json b/frontend/tsconfig.app.json deleted file mode 100644 index 227a6c6..0000000 --- a/frontend/tsconfig.app.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.app.tsbuildinfo", - "target": "ES2022", - "useDefineForClassFields": true, - "lib": ["ES2022", "DOM", "DOM.Iterable"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "moduleDetection": "force", - "noEmit": true, - "jsx": "react-jsx", - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "erasableSyntaxOnly": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["src"] -} diff --git a/frontend/tsconfig.json b/frontend/tsconfig.json deleted file mode 100644 index 1ffef60..0000000 --- a/frontend/tsconfig.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "files": [], - "references": [ - { "path": "./tsconfig.app.json" }, - { "path": "./tsconfig.node.json" } - ] -} diff --git a/frontend/tsconfig.node.json b/frontend/tsconfig.node.json deleted file mode 100644 index f85a399..0000000 --- a/frontend/tsconfig.node.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "compilerOptions": { - "tsBuildInfoFile": "./node_modules/.tmp/tsconfig.node.tsbuildinfo", - "target": "ES2023", - "lib": ["ES2023"], - "module": "ESNext", - "skipLibCheck": true, - - /* Bundler mode */ - "moduleResolution": "bundler", - "allowImportingTsExtensions": true, - "verbatimModuleSyntax": true, - "moduleDetection": "force", - "noEmit": true, - - /* Linting */ - "strict": true, - "noUnusedLocals": true, - "noUnusedParameters": true, - "erasableSyntaxOnly": true, - "noFallthroughCasesInSwitch": true, - "noUncheckedSideEffectImports": true - }, - "include": ["vite.config.ts"] -} diff --git a/frontend/vite.config.ts b/frontend/vite.config.ts deleted file mode 100644 index 2328e17..0000000 --- a/frontend/vite.config.ts +++ /dev/null @@ -1,7 +0,0 @@ -import { defineConfig } from 'vite' -import react from '@vitejs/plugin-react-swc' - -// https://vite.dev/config/ -export default defineConfig({ - plugins: [react()], -}) diff --git a/frontend/wwwroot/app.css b/frontend/wwwroot/app.css new file mode 100644 index 0000000..2bd9b78 --- /dev/null +++ b/frontend/wwwroot/app.css @@ -0,0 +1,51 @@ +html, body { + font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; +} + +a, .btn-link { + color: #006bb7; +} + +.btn-primary { + color: #fff; + background-color: #1b6ec2; + border-color: #1861ac; +} + +.btn:focus, .btn:active:focus, .btn-link.nav-link:focus, .form-control:focus, .form-check-input:focus { + box-shadow: 0 0 0 0.1rem white, 0 0 0 0.25rem #258cfb; +} + +.content { + padding-top: 1.1rem; +} + +h1:focus { + outline: none; +} + +.valid.modified:not([type=checkbox]) { + outline: 1px solid #26b050; +} + +.invalid { + outline: 1px solid #e50000; +} + +.validation-message { + color: #e50000; +} + +.blazor-error-boundary { + background: url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTYiIGhlaWdodD0iNDkiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIG92ZXJmbG93PSJoaWRkZW4iPjxkZWZzPjxjbGlwUGF0aCBpZD0iY2xpcDAiPjxyZWN0IHg9IjIzNSIgeT0iNTEiIHdpZHRoPSI1NiIgaGVpZ2h0PSI0OSIvPjwvY2xpcFBhdGg+PC9kZWZzPjxnIGNsaXAtcGF0aD0idXJsKCNjbGlwMCkiIHRyYW5zZm9ybT0idHJhbnNsYXRlKC0yMzUgLTUxKSI+PHBhdGggZD0iTTI2My41MDYgNTFDMjY0LjcxNyA1MSAyNjUuODEzIDUxLjQ4MzcgMjY2LjYwNiA1Mi4yNjU4TDI2Ny4wNTIgNTIuNzk4NyAyNjcuNTM5IDUzLjYyODMgMjkwLjE4NSA5Mi4xODMxIDI5MC41NDUgOTIuNzk1IDI5MC42NTYgOTIuOTk2QzI5MC44NzcgOTMuNTEzIDI5MSA5NC4wODE1IDI5MSA5NC42NzgyIDI5MSA5Ny4wNjUxIDI4OS4wMzggOTkgMjg2LjYxNyA5OUwyNDAuMzgzIDk5QzIzNy45NjMgOTkgMjM2IDk3LjA2NTEgMjM2IDk0LjY3ODIgMjM2IDk0LjM3OTkgMjM2LjAzMSA5NC4wODg2IDIzNi4wODkgOTMuODA3MkwyMzYuMzM4IDkzLjAxNjIgMjM2Ljg1OCA5Mi4xMzE0IDI1OS40NzMgNTMuNjI5NCAyNTkuOTYxIDUyLjc5ODUgMjYwLjQwNyA1Mi4yNjU4QzI2MS4yIDUxLjQ4MzcgMjYyLjI5NiA1MSAyNjMuNTA2IDUxWk0yNjMuNTg2IDY2LjAxODNDMjYwLjczNyA2Ni4wMTgzIDI1OS4zMTMgNjcuMTI0NSAyNTkuMzEzIDY5LjMzNyAyNTkuMzEzIDY5LjYxMDIgMjU5LjMzMiA2OS44NjA4IDI1OS4zNzEgNzAuMDg4N0wyNjEuNzk1IDg0LjAxNjEgMjY1LjM4IDg0LjAxNjEgMjY3LjgyMSA2OS43NDc1QzI2Ny44NiA2OS43MzA5IDI2Ny44NzkgNjkuNTg3NyAyNjcuODc5IDY5LjMxNzkgMjY3Ljg3OSA2Ny4xMTgyIDI2Ni40NDggNjYuMDE4MyAyNjMuNTg2IDY2LjAxODNaTTI2My41NzYgODYuMDU0N0MyNjEuMDQ5IDg2LjA1NDcgMjU5Ljc4NiA4Ny4zMDA1IDI1OS43ODYgODkuNzkyMSAyNTkuNzg2IDkyLjI4MzcgMjYxLjA0OSA5My41Mjk1IDI2My41NzYgOTMuNTI5NSAyNjYuMTE2IDkzLjUyOTUgMjY3LjM4NyA5Mi4yODM3IDI2Ny4zODcgODkuNzkyMSAyNjcuMzg3IDg3LjMwMDUgMjY2LjExNiA4Ni4wNTQ3IDI2My41NzYgODYuMDU0N1oiIGZpbGw9IiNGRkU1MDAiIGZpbGwtcnVsZT0iZXZlbm9kZCIvPjwvZz48L3N2Zz4=) no-repeat 1rem/1.8rem, #b32121; + padding: 1rem 1rem 1rem 3.7rem; + color: white; +} + + .blazor-error-boundary::after { + content: "An error has occurred." + } + +.darker-border-checkbox.form-check-input { + border-color: #929292; +} diff --git a/frontend/wwwroot/bootstrap/bootstrap.min.css b/frontend/wwwroot/bootstrap/bootstrap.min.css new file mode 100644 index 0000000..02ae65b --- /dev/null +++ b/frontend/wwwroot/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/frontend/wwwroot/bootstrap/bootstrap.min.css.map b/frontend/wwwroot/bootstrap/bootstrap.min.css.map new file mode 100644 index 0000000..afcd9e3 --- /dev/null +++ b/frontend/wwwroot/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-`