From 6063ed62e03c4a6c1d5aea04009fca83dcfa3ff6 Mon Sep 17 00:00:00 2001 From: Giovani Date: Sat, 30 Aug 2025 19:29:40 -0400 Subject: [PATCH] feat(frontend): Replace React with Blazor frontend --- CLAUDE.md | 48 +- frontend/.gitignore | 55 - frontend/Components/App.razor | 20 + frontend/Components/Layout/MainLayout.razor | 23 + .../Components/Layout/MainLayout.razor.css | 96 + frontend/Components/Layout/NavMenu.razor | 36 + frontend/Components/Layout/NavMenu.razor.css | 105 + frontend/Components/Pages/Error.razor | 36 + frontend/Components/Pages/Home.razor | 138 + frontend/Components/Pages/Members.razor | 181 + frontend/Components/Pages/Schedules.razor | 298 + frontend/Components/Pages/Services.razor | 238 + frontend/Components/Routes.razor | 6 + frontend/Components/_Imports.razor | 10 + frontend/Models/Member.cs | 59 + frontend/NimbusFlow.Frontend.csproj | 9 + frontend/Program.cs | 36 + frontend/Properties/launchSettings.json | 38 + frontend/README.md | 172 +- frontend/Services/ApiService.cs | 182 + frontend/Services/IApiService.cs | 36 + frontend/appsettings.Development.json | 8 + frontend/appsettings.json | 9 + frontend/bin/Debug/net8.0/NimbusFlow.Frontend | Bin 0 -> 93432 bytes .../net8.0/NimbusFlow.Frontend.deps.json | 23 + .../bin/Debug/net8.0/NimbusFlow.Frontend.dll | Bin 0 -> 90112 bytes .../bin/Debug/net8.0/NimbusFlow.Frontend.pdb | Bin 0 -> 56864 bytes .../NimbusFlow.Frontend.runtimeconfig.json | 19 + ...Flow.Frontend.staticwebassets.runtime.json | 1 + .../Debug/net8.0/appsettings.Development.json | 8 + frontend/bin/Debug/net8.0/appsettings.json | 9 + frontend/eslint.config.js | 23 - frontend/index.html | 13 - ...CoreApp,Version=v8.0.AssemblyAttributes.cs | 4 + .../NimbusFlow.Frontend.AssemblyInfo.cs | 22 + ...mbusFlow.Frontend.AssemblyInfoInputs.cache | 1 + ....GeneratedMSBuildEditorConfig.editorconfig | 59 + .../NimbusFlow.Frontend.GlobalUsings.g.cs | 17 + ...tend.MvcApplicationPartsAssemblyInfo.cache | 0 .../net8.0/NimbusFlow.Frontend.assets.cache | Bin 0 -> 146 bytes ...ow.Frontend.csproj.CoreCompileInputs.cache | 1 + ...sFlow.Frontend.csproj.FileListAbsolute.txt | 29 + .../obj/Debug/net8.0/NimbusFlow.Frontend.dll | Bin 0 -> 90112 bytes ...NimbusFlow.Frontend.genruntimeconfig.cache | 1 + .../obj/Debug/net8.0/NimbusFlow.Frontend.pdb | Bin 0 -> 56864 bytes frontend/obj/Debug/net8.0/apphost | Bin 0 -> 93432 bytes frontend/obj/Debug/net8.0/project.razor.json | 19785 ++++++++++++++++ .../Debug/net8.0/ref/NimbusFlow.Frontend.dll | Bin 0 -> 19456 bytes .../net8.0/refint/NimbusFlow.Frontend.dll | Bin 0 -> 19456 bytes .../Layout/MainLayout.razor.rz.scp.css | 96 + .../Layout/NavMenu.razor.rz.scp.css | 105 + .../bundle/NimbusFlow.Frontend.styles.css | 203 + .../NimbusFlow.Frontend.bundle.scp.css | 203 + .../Debug/net8.0/staticwebassets.build.json | 134 + .../net8.0/staticwebassets.development.json | 1 + .../Debug/net8.0/staticwebassets.pack.json | 41 + ...Microsoft.AspNetCore.StaticWebAssets.props | 84 + .../msbuild.build.NimbusFlow.Frontend.props | 3 + ...ldMultiTargeting.NimbusFlow.Frontend.props | 3 + ....buildTransitive.NimbusFlow.Frontend.props | 3 + ...mbusFlow.Frontend.csproj.nuget.dgspec.json | 64 + .../NimbusFlow.Frontend.csproj.nuget.g.props | 15 + ...NimbusFlow.Frontend.csproj.nuget.g.targets | 2 + frontend/obj/project.assets.json | 69 + frontend/obj/project.nuget.cache | 8 + frontend/package-lock.json | 3021 --- frontend/package.json | 29 - frontend/public/vite.svg | 1 - frontend/src/App.css | 42 - frontend/src/App.tsx | 35 - frontend/src/assets/react.svg | 1 - frontend/src/index.css | 68 - frontend/src/main.tsx | 10 - frontend/src/vite-env.d.ts | 1 - frontend/tsconfig.app.json | 27 - frontend/tsconfig.json | 7 - frontend/tsconfig.node.json | 25 - frontend/vite.config.ts | 7 - frontend/wwwroot/app.css | 51 + frontend/wwwroot/bootstrap/bootstrap.min.css | 7 + .../wwwroot/bootstrap/bootstrap.min.css.map | 1 + frontend/wwwroot/favicon.png | Bin 0 -> 1148 bytes 82 files changed, 22786 insertions(+), 3435 deletions(-) delete mode 100644 frontend/.gitignore create mode 100644 frontend/Components/App.razor create mode 100644 frontend/Components/Layout/MainLayout.razor create mode 100644 frontend/Components/Layout/MainLayout.razor.css create mode 100644 frontend/Components/Layout/NavMenu.razor create mode 100644 frontend/Components/Layout/NavMenu.razor.css create mode 100644 frontend/Components/Pages/Error.razor create mode 100644 frontend/Components/Pages/Home.razor create mode 100644 frontend/Components/Pages/Members.razor create mode 100644 frontend/Components/Pages/Schedules.razor create mode 100644 frontend/Components/Pages/Services.razor create mode 100644 frontend/Components/Routes.razor create mode 100644 frontend/Components/_Imports.razor create mode 100644 frontend/Models/Member.cs create mode 100644 frontend/NimbusFlow.Frontend.csproj create mode 100644 frontend/Program.cs create mode 100644 frontend/Properties/launchSettings.json create mode 100644 frontend/Services/ApiService.cs create mode 100644 frontend/Services/IApiService.cs create mode 100644 frontend/appsettings.Development.json create mode 100644 frontend/appsettings.json create mode 100755 frontend/bin/Debug/net8.0/NimbusFlow.Frontend create mode 100644 frontend/bin/Debug/net8.0/NimbusFlow.Frontend.deps.json create mode 100644 frontend/bin/Debug/net8.0/NimbusFlow.Frontend.dll create mode 100644 frontend/bin/Debug/net8.0/NimbusFlow.Frontend.pdb create mode 100644 frontend/bin/Debug/net8.0/NimbusFlow.Frontend.runtimeconfig.json create mode 100644 frontend/bin/Debug/net8.0/NimbusFlow.Frontend.staticwebassets.runtime.json create mode 100644 frontend/bin/Debug/net8.0/appsettings.Development.json create mode 100644 frontend/bin/Debug/net8.0/appsettings.json delete mode 100644 frontend/eslint.config.js delete mode 100644 frontend/index.html create mode 100644 frontend/obj/Debug/net8.0/.NETCoreApp,Version=v8.0.AssemblyAttributes.cs create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfo.cs create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.AssemblyInfoInputs.cache create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GeneratedMSBuildEditorConfig.editorconfig create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.GlobalUsings.g.cs create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.MvcApplicationPartsAssemblyInfo.cache create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.assets.cache create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.CoreCompileInputs.cache create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.csproj.FileListAbsolute.txt create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.dll create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.genruntimeconfig.cache create mode 100644 frontend/obj/Debug/net8.0/NimbusFlow.Frontend.pdb create mode 100755 frontend/obj/Debug/net8.0/apphost create mode 100644 frontend/obj/Debug/net8.0/project.razor.json create mode 100644 frontend/obj/Debug/net8.0/ref/NimbusFlow.Frontend.dll create mode 100644 frontend/obj/Debug/net8.0/refint/NimbusFlow.Frontend.dll create mode 100644 frontend/obj/Debug/net8.0/scopedcss/Components/Layout/MainLayout.razor.rz.scp.css create mode 100644 frontend/obj/Debug/net8.0/scopedcss/Components/Layout/NavMenu.razor.rz.scp.css create mode 100644 frontend/obj/Debug/net8.0/scopedcss/bundle/NimbusFlow.Frontend.styles.css create mode 100644 frontend/obj/Debug/net8.0/scopedcss/projectbundle/NimbusFlow.Frontend.bundle.scp.css create mode 100644 frontend/obj/Debug/net8.0/staticwebassets.build.json create mode 100644 frontend/obj/Debug/net8.0/staticwebassets.development.json create mode 100644 frontend/obj/Debug/net8.0/staticwebassets.pack.json create mode 100644 frontend/obj/Debug/net8.0/staticwebassets/msbuild.NimbusFlow.Frontend.Microsoft.AspNetCore.StaticWebAssets.props create mode 100644 frontend/obj/Debug/net8.0/staticwebassets/msbuild.build.NimbusFlow.Frontend.props create mode 100644 frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildMultiTargeting.NimbusFlow.Frontend.props create mode 100644 frontend/obj/Debug/net8.0/staticwebassets/msbuild.buildTransitive.NimbusFlow.Frontend.props create mode 100644 frontend/obj/NimbusFlow.Frontend.csproj.nuget.dgspec.json create mode 100644 frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.props create mode 100644 frontend/obj/NimbusFlow.Frontend.csproj.nuget.g.targets create mode 100644 frontend/obj/project.assets.json create mode 100644 frontend/obj/project.nuget.cache delete mode 100644 frontend/package-lock.json delete mode 100644 frontend/package.json delete mode 100644 frontend/public/vite.svg delete mode 100644 frontend/src/App.css delete mode 100644 frontend/src/App.tsx delete mode 100644 frontend/src/assets/react.svg delete mode 100644 frontend/src/index.css delete mode 100644 frontend/src/main.tsx delete mode 100644 frontend/src/vite-env.d.ts delete mode 100644 frontend/tsconfig.app.json delete mode 100644 frontend/tsconfig.json delete mode 100644 frontend/tsconfig.node.json delete mode 100644 frontend/vite.config.ts create mode 100644 frontend/wwwroot/app.css create mode 100644 frontend/wwwroot/bootstrap/bootstrap.min.css create mode 100644 frontend/wwwroot/bootstrap/bootstrap.min.css.map create mode 100644 frontend/wwwroot/favicon.png 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 0000000000000000000000000000000000000000..087a09065bfd52da27c33480fd2a022a7df3b7b8 GIT binary patch literal 93432 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 K|Ihz>6!_n%u>KYR literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..22330b07120f24079e8ddaadb26b71cb87390124 GIT binary patch literal 56864 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 T`C|2Wcai@$Tf9fClZ^cbfi%F0 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..887c06d3d5c53a5560b6d52fa5b2a42baba0ea30 GIT binary patch literal 146 zcmWIWc6a1qU|_h)zvG(z$rtU(z0Ec3+}E;;L#(AIZDNfSh&sR;`>fNn52%J%zz9?* gsh^Rbo2p-8q_3A(nx0ysUyzubotU0ltWU@k06|6=tN;K2 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..c3449924854b338395267f887f01057b077819ab GIT binary patch literal 90112 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 K|Ihz>6!_n%u>KYR literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..22330b07120f24079e8ddaadb26b71cb87390124 GIT binary patch literal 56864 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 T`C|2Wcai@$Tf9fClZ^cbfi%F0 literal 0 HcmV?d00001 diff --git a/frontend/obj/Debug/net8.0/apphost b/frontend/obj/Debug/net8.0/apphost new file mode 100755 index 0000000000000000000000000000000000000000..087a09065bfd52da27c33480fd2a022a7df3b7b8 GIT binary patch literal 93432 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
1C4C?oo7Kvj) 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\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 0000000000000000000000000000000000000000..9938e1fc01a860fa00360d60397ab43d723f3458 GIT binary patch literal 19456 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 literal 0 HcmV?d00001 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 0000000000000000000000000000000000000000..9938e1fc01a860fa00360d60397ab43d723f3458 GIT binary patch literal 19456 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 literal 0 HcmV?d00001 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-`