Created blazor web-assembly project by template
This commit is contained in:
		
							
								
								
									
										12
									
								
								SchengenVisaApi/BlazorWebAssemblyVisaApiClient/App.razor
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								SchengenVisaApi/BlazorWebAssemblyVisaApiClient/App.razor
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,12 @@ | ||||
| <Router AppAssembly="@typeof(App).Assembly"> | ||||
|     <Found Context="routeData"> | ||||
|         <RouteView RouteData="@routeData" DefaultLayout="@typeof(MainLayout)"/> | ||||
|         <FocusOnNavigate RouteData="@routeData" Selector="h1"/> | ||||
|     </Found> | ||||
|     <NotFound> | ||||
|         <PageTitle>Not found</PageTitle> | ||||
|         <LayoutView Layout="@typeof(MainLayout)"> | ||||
|             <p role="alert">Sorry, there's nothing at this address.</p> | ||||
|         </LayoutView> | ||||
|     </NotFound> | ||||
| </Router> | ||||
| @@ -0,0 +1,14 @@ | ||||
| <Project Sdk="Microsoft.NET.Sdk.BlazorWebAssembly"> | ||||
|  | ||||
|     <PropertyGroup> | ||||
|         <TargetFramework>net8.0</TargetFramework> | ||||
|         <Nullable>enable</Nullable> | ||||
|         <ImplicitUsings>enable</ImplicitUsings> | ||||
|     </PropertyGroup> | ||||
|  | ||||
|     <ItemGroup> | ||||
|         <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly" Version="8.0.1"/> | ||||
|         <PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.DevServer" Version="8.0.1" PrivateAssets="all"/> | ||||
|     </ItemGroup> | ||||
|  | ||||
| </Project> | ||||
| @@ -0,0 +1,16 @@ | ||||
| @inherits LayoutComponentBase | ||||
| <div class="page"> | ||||
|     <div class="sidebar"> | ||||
|         <NavMenu/> | ||||
|     </div> | ||||
|  | ||||
|     <main> | ||||
|         <div class="top-row px-4"> | ||||
|             <a href="https://learn.microsoft.com/aspnet/core/" target="_blank">About</a> | ||||
|         </div> | ||||
|  | ||||
|         <article class="content px-4"> | ||||
|             @Body | ||||
|         </article> | ||||
|     </main> | ||||
| </div> | ||||
| @@ -0,0 +1,77 @@ | ||||
| .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; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,40 @@ | ||||
| <div class="top-row ps-3 navbar navbar-dark"> | ||||
|     <div class="container-fluid"> | ||||
|         <a class="navbar-brand" href="">BlazorWebAssemblyVisaApiClient</a> | ||||
|         <button title="Navigation menu" class="navbar-toggler" @onclick="ToggleNavMenu"> | ||||
|             <span class="navbar-toggler-icon"></span> | ||||
|         </button> | ||||
|     </div> | ||||
| </div> | ||||
|  | ||||
| <div class="@NavMenuCssClass nav-scrollable" @onclick="ToggleNavMenu"> | ||||
|     <nav class="flex-column"> | ||||
|         <div class="nav-item px-3"> | ||||
|             <NavLink class="nav-link" href="" Match="NavLinkMatch.All"> | ||||
|                 <span class="bi bi-house-door-fill-nav-menu" aria-hidden="true"></span> Home | ||||
|             </NavLink> | ||||
|         </div> | ||||
|         <div class="nav-item px-3"> | ||||
|             <NavLink class="nav-link" href="counter"> | ||||
|                 <span class="bi bi-plus-square-fill-nav-menu" aria-hidden="true"></span> Counter | ||||
|             </NavLink> | ||||
|         </div> | ||||
|         <div class="nav-item px-3"> | ||||
|             <NavLink class="nav-link" href="weather"> | ||||
|                 <span class="bi bi-list-nested-nav-menu" aria-hidden="true"></span> Weather | ||||
|             </NavLink> | ||||
|         </div> | ||||
|     </nav> | ||||
| </div> | ||||
|  | ||||
| @code { | ||||
|     private bool collapseNavMenu = true; | ||||
|  | ||||
|     private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null; | ||||
|  | ||||
|     private void ToggleNavMenu() | ||||
|     { | ||||
|         collapseNavMenu = !collapseNavMenu; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,83 @@ | ||||
| .navbar-toggler { | ||||
|     background-color: rgba(255, 255, 255, 0.1); | ||||
| } | ||||
|  | ||||
| .top-row { | ||||
|     height: 3.5rem; | ||||
|     background-color: rgba(0,0,0,0.4); | ||||
| } | ||||
|  | ||||
| .navbar-brand { | ||||
|     font-size: 1.1rem; | ||||
| } | ||||
|  | ||||
| .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 a { | ||||
|         color: #d7d7d7; | ||||
|         border-radius: 4px; | ||||
|         height: 3rem; | ||||
|         display: flex; | ||||
|         align-items: center; | ||||
|         line-height: 3rem; | ||||
|     } | ||||
|  | ||||
| .nav-item ::deep a.active { | ||||
|     background-color: rgba(255,255,255,0.37); | ||||
|     color: white; | ||||
| } | ||||
|  | ||||
| .nav-item ::deep a:hover { | ||||
|     background-color: rgba(255,255,255,0.1); | ||||
|     color: white; | ||||
| } | ||||
|  | ||||
| @media (min-width: 641px) { | ||||
|     .navbar-toggler { | ||||
|         display: none; | ||||
|     } | ||||
|  | ||||
|     .collapse { | ||||
|         /* Never collapse the sidebar for wide screens */ | ||||
|         display: block; | ||||
|     } | ||||
|      | ||||
|     .nav-scrollable { | ||||
|         /* Allow sidebar to scroll for tall menus */ | ||||
|         height: calc(100vh - 3.5rem); | ||||
|         overflow-y: auto; | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,19 @@ | ||||
| @page "/counter" | ||||
|  | ||||
| <PageTitle>Counter</PageTitle> | ||||
|  | ||||
| <h1>Counter</h1> | ||||
|  | ||||
| <p role="status">Current count: @currentCount</p> | ||||
|  | ||||
| <button class="btn btn-primary" @onclick="IncrementCount">Click me</button> | ||||
|  | ||||
| @code { | ||||
|     private int currentCount = 0; | ||||
|  | ||||
|     private void IncrementCount() | ||||
|     { | ||||
|         currentCount++; | ||||
|     } | ||||
|  | ||||
| } | ||||
| @@ -0,0 +1,7 @@ | ||||
| @page "/" | ||||
|  | ||||
| <PageTitle>Home</PageTitle> | ||||
|  | ||||
| <h1>Hello, world!</h1> | ||||
|  | ||||
| Welcome to your new app. | ||||
| @@ -0,0 +1,60 @@ | ||||
| @page "/weather" | ||||
| @inject HttpClient Http | ||||
|  | ||||
| <PageTitle>Weather</PageTitle> | ||||
|  | ||||
| <h1>Weather</h1> | ||||
|  | ||||
| <p>This component demonstrates fetching data from the server.</p> | ||||
|  | ||||
| @if (forecasts == null) | ||||
| { | ||||
|     <p> | ||||
|         <em>Loading...</em> | ||||
|     </p> | ||||
| } | ||||
| else | ||||
| { | ||||
|     <table class="table"> | ||||
|         <thead> | ||||
|         <tr> | ||||
|             <th>Date</th> | ||||
|             <th>Temp. (C)</th> | ||||
|             <th>Temp. (F)</th> | ||||
|             <th>Summary</th> | ||||
|         </tr> | ||||
|         </thead> | ||||
|         <tbody> | ||||
|         @foreach (var forecast in forecasts) | ||||
|         { | ||||
|             <tr> | ||||
|                 <td>@forecast.Date.ToShortDateString()</td> | ||||
|                 <td>@forecast.TemperatureC</td> | ||||
|                 <td>@forecast.TemperatureF</td> | ||||
|                 <td>@forecast.Summary</td> | ||||
|             </tr> | ||||
|         } | ||||
|         </tbody> | ||||
|     </table> | ||||
| } | ||||
|  | ||||
| @code { | ||||
|     private WeatherForecast[]? forecasts; | ||||
|  | ||||
|     protected override async Task OnInitializedAsync() | ||||
|     { | ||||
|         forecasts = await Http.GetFromJsonAsync<WeatherForecast[]>("sample-data/weather.json"); | ||||
|     } | ||||
|  | ||||
|     public class WeatherForecast | ||||
|     { | ||||
|         public DateOnly Date { get; set; } | ||||
|  | ||||
|         public int TemperatureC { get; set; } | ||||
|  | ||||
|         public string? Summary { get; set; } | ||||
|  | ||||
|         public int TemperatureF => 32 + (int)(TemperatureC / 0.5556); | ||||
|     } | ||||
|  | ||||
| } | ||||
							
								
								
									
										18
									
								
								SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Program.cs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								SchengenVisaApi/BlazorWebAssemblyVisaApiClient/Program.cs
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,18 @@ | ||||
| using Microsoft.AspNetCore.Components.Web; | ||||
| using Microsoft.AspNetCore.Components.WebAssembly.Hosting; | ||||
|  | ||||
| namespace BlazorWebAssemblyVisaApiClient; | ||||
|  | ||||
| public class Program | ||||
| { | ||||
|     public static async Task Main(string[] args) | ||||
|     { | ||||
|         var builder = WebAssemblyHostBuilder.CreateDefault(args); | ||||
|         builder.RootComponents.Add<App>("#app"); | ||||
|         builder.RootComponents.Add<HeadOutlet>("head::after"); | ||||
|  | ||||
|         builder.Services.AddScoped(sp => new HttpClient { BaseAddress = new Uri(builder.HostEnvironment.BaseAddress) }); | ||||
|  | ||||
|         await builder.Build().RunAsync(); | ||||
|     } | ||||
| } | ||||
| @@ -0,0 +1,41 @@ | ||||
| { | ||||
|   "$schema": "http://json.schemastore.org/launchsettings.json", | ||||
|   "iisSettings": { | ||||
|     "windowsAuthentication": false, | ||||
|     "anonymousAuthentication": true, | ||||
|     "iisExpress": { | ||||
|       "applicationUrl": "http://localhost:25927", | ||||
|       "sslPort": 44345 | ||||
|     } | ||||
|   }, | ||||
|   "profiles": { | ||||
|     "http": { | ||||
|       "commandName": "Project", | ||||
|       "dotnetRunMessages": true, | ||||
|       "launchBrowser": true, | ||||
|       "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", | ||||
|       "applicationUrl": "http://localhost:5038", | ||||
|       "environmentVariables": { | ||||
|         "ASPNETCORE_ENVIRONMENT": "Development" | ||||
|       } | ||||
|     }, | ||||
|     "https": { | ||||
|       "commandName": "Project", | ||||
|       "dotnetRunMessages": true, | ||||
|       "launchBrowser": true, | ||||
|       "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", | ||||
|       "applicationUrl": "https://localhost:7200;http://localhost:5038", | ||||
|       "environmentVariables": { | ||||
|         "ASPNETCORE_ENVIRONMENT": "Development" | ||||
|       } | ||||
|     }, | ||||
|     "IIS Express": { | ||||
|       "commandName": "IISExpress", | ||||
|       "launchBrowser": true, | ||||
|       "inspectUri": "{wsProtocol}://{url.hostname}:{url.port}/_framework/debug/ws-proxy?browser={browserInspectUri}", | ||||
|       "environmentVariables": { | ||||
|         "ASPNETCORE_ENVIRONMENT": "Development" | ||||
|       } | ||||
|     } | ||||
|   } | ||||
| } | ||||
| @@ -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 Microsoft.AspNetCore.Components.Web.Virtualization | ||||
| @using Microsoft.AspNetCore.Components.WebAssembly.Http | ||||
| @using Microsoft.JSInterop | ||||
| @using BlazorWebAssemblyVisaApiClient | ||||
| @using BlazorWebAssemblyVisaApiClient.Layout | ||||
| @@ -0,0 +1,103 @@ | ||||
| html, body { | ||||
|     font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; | ||||
| } | ||||
|  | ||||
| h1:focus { | ||||
|     outline: none; | ||||
| } | ||||
|  | ||||
| a, .btn-link { | ||||
|     color: #0071c1; | ||||
| } | ||||
|  | ||||
| .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; | ||||
| } | ||||
|  | ||||
| .valid.modified:not([type=checkbox]) { | ||||
|     outline: 1px solid #26b050; | ||||
| } | ||||
|  | ||||
| .invalid { | ||||
|     outline: 1px solid red; | ||||
| } | ||||
|  | ||||
| .validation-message { | ||||
|     color: red; | ||||
| } | ||||
|  | ||||
| #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; | ||||
|     } | ||||
|  | ||||
| .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." | ||||
|     } | ||||
|  | ||||
| .loading-progress { | ||||
|     position: relative; | ||||
|     display: block; | ||||
|     width: 8rem; | ||||
|     height: 8rem; | ||||
|     margin: 20vh auto 1rem auto; | ||||
| } | ||||
|  | ||||
|     .loading-progress circle { | ||||
|         fill: none; | ||||
|         stroke: #e0e0e0; | ||||
|         stroke-width: 0.6rem; | ||||
|         transform-origin: 50% 50%; | ||||
|         transform: rotate(-90deg); | ||||
|     } | ||||
|  | ||||
|         .loading-progress circle:last-child { | ||||
|             stroke: #1b6ec2; | ||||
|             stroke-dasharray: calc(3.141 * var(--blazor-load-percentage, 0%) * 0.8), 500%; | ||||
|             transition: stroke-dasharray 0.05s ease-in-out; | ||||
|         } | ||||
|  | ||||
| .loading-progress-text { | ||||
|     position: absolute; | ||||
|     text-align: center; | ||||
|     font-weight: bold; | ||||
|     inset: calc(20vh + 3.25rem) 0 auto 0.2rem; | ||||
| } | ||||
|  | ||||
|     .loading-progress-text:after { | ||||
|         content: var(--blazor-load-percentage-text, "Loading"); | ||||
|     } | ||||
|  | ||||
| code { | ||||
|     color: #c02d76; | ||||
| } | ||||
							
								
								
									
										7
									
								
								SchengenVisaApi/BlazorWebAssemblyVisaApiClient/wwwroot/css/bootstrap/bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								SchengenVisaApi/BlazorWebAssemblyVisaApiClient/wwwroot/css/bootstrap/bootstrap.min.css
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 1.1 KiB | 
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 2.6 KiB | 
| @@ -0,0 +1,32 @@ | ||||
| <!DOCTYPE html> | ||||
| <html lang="en"> | ||||
|  | ||||
| <head> | ||||
|     <meta charset="utf-8" /> | ||||
|     <meta name="viewport" content="width=device-width, initial-scale=1.0" /> | ||||
|     <title>BlazorWebAssemblyVisaApiClient</title> | ||||
|     <base href="/" /> | ||||
|     <link rel="stylesheet" href="css/bootstrap/bootstrap.min.css" /> | ||||
|     <link rel="stylesheet" href="css/app.css" /> | ||||
|     <link rel="icon" type="image/png" href="favicon.png" /> | ||||
|     <link href="BlazorWebAssemblyVisaApiClient.styles.css" rel="stylesheet" /> | ||||
| </head> | ||||
|  | ||||
| <body> | ||||
|     <div id="app"> | ||||
|         <svg class="loading-progress"> | ||||
|             <circle r="40%" cx="50%" cy="50%" /> | ||||
|             <circle r="40%" cx="50%" cy="50%" /> | ||||
|         </svg> | ||||
|         <div class="loading-progress-text"></div> | ||||
|     </div> | ||||
|  | ||||
|     <div id="blazor-error-ui"> | ||||
|         An unhandled error has occurred. | ||||
|         <a href="" class="reload">Reload</a> | ||||
|         <a class="dismiss">🗙</a> | ||||
|     </div> | ||||
|     <script src="_framework/blazor.webassembly.js"></script> | ||||
| </body> | ||||
|  | ||||
| </html> | ||||
| @@ -0,0 +1,27 @@ | ||||
| [ | ||||
|   { | ||||
|     "date": "2022-01-06", | ||||
|     "temperatureC": 1, | ||||
|     "summary": "Freezing" | ||||
|   }, | ||||
|   { | ||||
|     "date": "2022-01-07", | ||||
|     "temperatureC": 14, | ||||
|     "summary": "Bracing" | ||||
|   }, | ||||
|   { | ||||
|     "date": "2022-01-08", | ||||
|     "temperatureC": -13, | ||||
|     "summary": "Freezing" | ||||
|   }, | ||||
|   { | ||||
|     "date": "2022-01-09", | ||||
|     "temperatureC": -16, | ||||
|     "summary": "Balmy" | ||||
|   }, | ||||
|   { | ||||
|     "date": "2022-01-10", | ||||
|     "temperatureC": -2, | ||||
|     "summary": "Chilly" | ||||
|   } | ||||
| ] | ||||
		Reference in New Issue
	
	Block a user