RSCG – Blazorators
Generate javascript interop code for Blazor WASM projects.
This is how you can use Blazorators .
The code that you start with is
<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>
<ItemGroup>
<PackageReference Include="Blazor.Serialization" Version="8.0.0" />
<PackageReference Include="Blazor.SourceGenerators"
Version="8.0.0"
OutputItemType="Analyzer"
SetTargetFramework="TargetFramework=netstandard2.0"
ReferenceOutputAssembly="false">
</PackageReference>
</ItemGroup>
<PropertyGroup>
<EmitCompilerGeneratedFiles>true</EmitCompilerGeneratedFiles>
<CompilerGeneratedFilesOutputPath>$(BaseIntermediateOutputPath)\GX</CompilerGeneratedFilesOutputPath>
</PropertyGroup>
</Project>
The code that you will use is
using BlazorApp2;
using Microsoft.AspNetCore.Components.Web;
using Microsoft.AspNetCore.Components.WebAssembly.Hosting;
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) });
builder.Services.AddLocalStorageServices();
await builder.Build().RunAsync();
namespace BlazorApp2;
[JSAutoGenericInterop(
TypeName = "Storage",
Implementation = "window.localStorage",
Url = "https://developer.mozilla.org/docs/Web/API/Window/localStorage",
GenericMethodDescriptors = new[]
{
"getItem",
"setItem:value"
})]
public partial interface ILocalStorageService
{
}
@page "/"
@inject ILocalStorageService MyLocalStorage;
<PageTitle>Home</PageTitle>
<h1>Hello, world!</h1>
Please refresh the page to see the value persisted in local storage.
@{
var name = MyLocalStorage.GetItem<string>("name");
if (name != null)
{
<p>Hi, @name</p>
}
else
{
<p>Hi, stranger</p>
}
MyLocalStorage.SetItem("name", "Andrei Ignat");
}
The code that is generated is
/// <summary>
/// The Blazor hosting model source, either WebAssembly or Server.
/// </summary>
public enum BlazorHostingModel
{
/// <summary>
/// This is the default. Use this to source generate targeting the synchronous <c>IJSInProcessRuntime</c> type.
/// </summary>
WebAssembly,
/// <summary>
/// Use this to source generate targeting the synchronous <c>IJSRuntime</c> type.
/// </summary>
Server
};
// Copyright (c) David Pine. All rights reserved.
// Licensed under the MIT License:
// https://bit.ly/blazorators-license
// Auto-generated by blazorators.
using Blazor.Serialization.Extensions;
using System.Text.Json;
#nullable enable
namespace BlazorApp2;
/// <summary>
/// Source generated interface definition of the <c>Storage</c> type.
/// </summary>
public partial interface ILocalStorageService
{
/// <summary>
/// Source generated implementation of <c>window.localStorage.clear</c>.
/// <a href="https://developer.mozilla.org/docs/Web/API/Storage/clear"></a>
/// </summary>
void Clear();
/// <summary>
/// Source generated implementation of <c>window.localStorage.getItem</c>.
/// <a href="https://developer.mozilla.org/docs/Web/API/Storage/getItem"></a>
/// </summary>
TValue? GetItem<TValue>(string key, JsonSerializerOptions? options = null);
/// <summary>
/// Source generated implementation of <c>window.localStorage.key</c>.
/// <a href="https://developer.mozilla.org/docs/Web/API/Storage/key"></a>
/// </summary>
string? Key(double index);
/// <summary>
/// Source generated implementation of <c>window.localStorage.removeItem</c>.
/// <a href="https://developer.mozilla.org/docs/Web/API/Storage/removeItem"></a>
/// </summary>
void RemoveItem(string key);
/// <summary>
/// Source generated implementation of <c>window.localStorage.setItem</c>.
/// <a href="https://developer.mozilla.org/docs/Web/API/Storage/setItem"></a>
/// </summary>
void SetItem<TValue>(string key, TValue value, JsonSerializerOptions? options = null);
/// <summary>
/// Source generated implementation of <c>window.localStorage.length</c>.
/// <a href="https://developer.mozilla.org/docs/Web/API/Storage/length"></a>
/// </summary>
double Length { get; }
}
#nullable enable
/// <summary>
/// Use this attribute on <code>public static partial</code> extension method classes.
/// For example:
/// <example>
/// <code>
/// [JSAutoGenericInterop(
/// TypeName = "Storage",
/// Implementation = "window.localStorage",
/// HostingModel = BlazorHostingModel.WebAssembly,
/// Url = "https://developer.mozilla.org/docs/Web/API/Window/localStorage",
/// GenericMethodDescriptors = new[]
/// {
/// "getItem",
/// "setItem:value"
/// })]
/// public static partial LocalStorageExtensions
/// {
/// }
/// </code>
/// </example>
/// This will source generate all the extension methods for the IJSInProcessRuntime type for the localStorage APIs.
/// </summary>
public class JSAutoGenericInteropAttribute : JSAutoInteropAttribute
{
/// <summary>
/// The descriptors that define which APIs are to use default JSON serialization and support generics.
/// For example:
/// <code>
/// new[]
/// {
/// "getItem", // Serializes the return type of getItem as TValue
/// "setItem:value" // Serializes the value parameter of the setItem TValue
/// }
/// </code>
/// </summary>
public string[] GenericMethodDescriptors { get; set; } = null!;
/// <summary>
/// The overrides that define which APIs to override (only applicable for pure JavaScript).
/// For example:
/// <code>
/// new[]
/// {
/// "getVoices", // A pure JS method with by this name will have a custom impl.
/// }
/// </code>
/// </summary>
public string[] PureJavaScriptOverrides { get; set; } = null!;
}
#nullable enable
/// <summary>
/// Use this attribute on <code>public static partial</code> extension method classes.
/// For example:
/// <code>
/// [JSAutoInterop(
/// TypeName = "Storage",
/// Implementation = "window.localStorage",
/// HostingModel = BlazorHostingModel.WebAssembly,
/// Url = "https://developer.mozilla.org/docs/Web/API/Window/localStorage")]
/// public static partial LocalStorageExtensions
/// {
/// }
/// </code>
/// This will source generate all the extension methods for the IJSInProcessRuntime type for the localStorage APIs.
/// </summary>
[AttributeUsage(
AttributeTargets.Interface,
Inherited = false,
AllowMultiple = false)]
public class JSAutoInteropAttribute : Attribute
{
/// <summary>
/// The type name that corresponds to the lib.dom.d.ts interface. For example, <c>"Geolocation"</c>.
/// For more information, search 'interface {Name}'
/// <a href='https://raw.githubusercontent.com/microsoft/TypeScript/main/lib/lib.dom.d.ts'>here for types</a>.
/// </summary>
public string TypeName { get; set; } = null!;
/// <summary>
/// The path from the <c>window</c> object to the corresponding <see cref="TypeName"/> implementation.
/// For example, if the <see cref="TypeName"/> was <c>"Geolocation"</c>, this would be
/// <c>"window.navigator.geolocation"</c> (or <c>"navigator.geolocation"</c>).
/// </summary>
public string Implementation { get; set; } = null!;
/// <summary>
/// Whether to generate only pure JavaScript functions that do not require callbacks.
/// For example, <c>"Geolocation.clearWatch"</c> is consider pure, but <c>"Geolocation.watchPosition"</c> is not.
/// Defaults to <c>true</c>.
/// </summary>
public bool OnlyGeneratePureJS { get; set; } = true;
/// <summary>
/// The Blazor hosting model to generate source for. WebAssembly creates <c>IJSInProcessRuntime</c> extensions,
/// while Server creates <c>IJSRuntime</c> extensions. Defaults to <see cref="BlazorHostingModel.WebAssembly" />.
/// </summary>
public BlazorHostingModel HostingModel { get; set; } = BlazorHostingModel.WebAssembly;
/// <summary>
/// The optional URL to the corresponding API.
/// </summary>
public string? Url { get; set; }
/// <summary>
/// An optional array of TypeScript type declarations sources. Valid values are URLs or file paths.
/// </summary>
public string[]? TypeDeclarationSources { get; set; }
}
// Copyright (c) David Pine. All rights reserved.
// Licensed under the MIT License:
// https://bit.ly/blazorators-license
// Auto-generated by blazorators.
using Blazor.Serialization.Extensions;
using System.Text.Json;
#nullable enable
namespace BlazorApp2;
/// <inheritdoc/>
internal sealed class LocalStorageService : ILocalStorageService
{
internal readonly IJSInProcessRuntime _javaScript = null !;
public LocalStorageService(IJSInProcessRuntime javaScript) => _javaScript = javaScript;
/// <inheritdoc cref = "ILocalStorageService.Clear"/>
void ILocalStorageService.Clear() => _javaScript.InvokeVoid("window.localStorage.clear");
/// <inheritdoc cref = "ILocalStorageService.GetItem"/>
TValue? ILocalStorageService.GetItem<TValue>(string key, JsonSerializerOptions? options)
where TValue : default => _javaScript.Invoke<string?>("window.localStorage.getItem", key).FromJson<TValue>(options);
/// <inheritdoc cref = "ILocalStorageService.Key"/>
string? ILocalStorageService.Key(double index) => _javaScript.Invoke<string?>("window.localStorage.key", index);
/// <inheritdoc cref = "ILocalStorageService.RemoveItem"/>
void ILocalStorageService.RemoveItem(string key) => _javaScript.InvokeVoid("window.localStorage.removeItem", key);
/// <inheritdoc cref = "ILocalStorageService.SetItem"/>
void ILocalStorageService.SetItem<TValue>(string key, TValue value, JsonSerializerOptions? options) => _javaScript.InvokeVoid("window.localStorage.setItem", key, value.ToJson(options));
/// <inheritdoc cref = "ILocalStorageService.Length"/>
double ILocalStorageService.Length => _javaScript.Invoke<double>("eval", "window.localStorage.length");
}
// Copyright (c) David Pine. All rights reserved.
// Licensed under the MIT License:
// https://github.com/IEvangelist/blazorators/blob/main/LICENSE
// Auto-generated by blazorators.
using Microsoft.JSInterop;
namespace Microsoft.Extensions.DependencyInjection;
/// <summary></summary>
public static class LocalStorageServiceCollectionExtensions
{
/// <summary>
/// Adds the <see cref="ILocalStorageService" /> service to the service collection.
/// </summary>
public static IServiceCollection AddLocalStorageServices(
this IServiceCollection services) =>
services.AddSingleton<IJSInProcessRuntime>(serviceProvider =>
(IJSInProcessRuntime)serviceProvider.GetRequiredService<IJSRuntime>())
.AddSingleton<ILocalStorageService, LocalStorageService>();
}
using System.ComponentModel;
namespace System.Runtime.CompilerServices
{
[EditorBrowsable(EditorBrowsableState.Never)]
internal class IsExternalInit { }
}
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\App.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "ca69fbc161c0130d6d7831728befc975abb17b04491a271bc49266261055543b"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
public partial class App : global::Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Routing.Router>(0);
__builder.AddComponentParameter(1, "AppAssembly", global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::System.Reflection.Assembly>(
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\App.razor"
typeof(App).Assembly
#line default
#line hidden
#nullable disable
));
__builder.AddAttribute(2, "Found", (global::Microsoft.AspNetCore.Components.RenderFragment<Microsoft.AspNetCore.Components.RouteData>)((routeData) => (__builder2) => {
__builder2.OpenComponent<global::Microsoft.AspNetCore.Components.RouteView>(3);
__builder2.AddComponentParameter(4, "RouteData", global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Microsoft.AspNetCore.Components.RouteData>(
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\App.razor"
routeData
#line default
#line hidden
#nullable disable
));
__builder2.AddComponentParameter(5, "DefaultLayout", global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::System.Type>(
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\App.razor"
typeof(MainLayout)
#line default
#line hidden
#nullable disable
));
__builder2.CloseComponent();
__builder2.AddMarkupContent(6, "\r\n ");
__builder2.OpenComponent<global::Microsoft.AspNetCore.Components.Routing.FocusOnNavigate>(7);
__builder2.AddComponentParameter(8, "RouteData", global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Microsoft.AspNetCore.Components.RouteData>(
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\App.razor"
routeData
#line default
#line hidden
#nullable disable
));
__builder2.AddComponentParameter(9, "Selector", "h1");
__builder2.CloseComponent();
}
));
__builder.AddAttribute(10, "NotFound", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.OpenComponent<global::Microsoft.AspNetCore.Components.Web.PageTitle>(11);
__builder2.AddAttribute(12, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder3) => {
__builder3.AddContent(13, "Not found");
}
));
__builder2.CloseComponent();
__builder2.AddMarkupContent(14, "\r\n ");
__builder2.OpenComponent<global::Microsoft.AspNetCore.Components.LayoutView>(15);
__builder2.AddComponentParameter(16, "Layout", global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::System.Type>(
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\App.razor"
typeof(MainLayout)
#line default
#line hidden
#nullable disable
));
__builder2.AddAttribute(17, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder3) => {
__builder3.AddMarkupContent(18, "<p role=\"alert\">Sorry, there\'s nothing at this address.</p>");
}
));
__builder2.CloseComponent();
}
));
__builder.CloseComponent();
}
#pragma warning restore 1998
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\MainLayout.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "93d4b940f2ce228e270b07368e54f6d439ffc44bc31096274325558e65d2157f"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2.Layout
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
public partial class MainLayout : LayoutComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.OpenElement(0, "div");
__builder.AddAttribute(1, "class", "page");
__builder.AddAttribute(2, "b-iwvdxzpj6w");
__builder.OpenElement(3, "div");
__builder.AddAttribute(4, "class", "sidebar");
__builder.AddAttribute(5, "b-iwvdxzpj6w");
__builder.OpenComponent<global::BlazorApp2.Layout.NavMenu>(6);
__builder.CloseComponent();
__builder.CloseElement();
__builder.AddMarkupContent(7, "\r\n\r\n ");
__builder.OpenElement(8, "main");
__builder.AddAttribute(9, "b-iwvdxzpj6w");
__builder.AddMarkupContent(10, "<div class=\"top-row px-4\" b-iwvdxzpj6w><a href=\"https://learn.microsoft.com/aspnet/core/\" target=\"_blank\" b-iwvdxzpj6w>About</a></div>\r\n\r\n ");
__builder.OpenElement(11, "article");
__builder.AddAttribute(12, "class", "content px-4");
__builder.AddAttribute(13, "b-iwvdxzpj6w");
#nullable restore
#line (13,14)-(13,18) 25 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\MainLayout.razor"
__builder.AddContent(14, Body);
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.CloseElement();
__builder.CloseElement();
}
#pragma warning restore 1998
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\NavMenu.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "4ed23773930f65532bdb0b17b15ff5e805d3c4e59aad805d432503d0191cd0a9"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2.Layout
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
public partial class NavMenu : global::Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.OpenElement(0, "div");
__builder.AddAttribute(1, "class", "top-row ps-3 navbar navbar-dark");
__builder.AddAttribute(2, "b-18uzve78me");
__builder.OpenElement(3, "div");
__builder.AddAttribute(4, "class", "container-fluid");
__builder.AddAttribute(5, "b-18uzve78me");
__builder.AddMarkupContent(6, "<a class=\"navbar-brand\" href b-18uzve78me>BlazorApp2</a>\r\n ");
__builder.OpenElement(7, "button");
__builder.AddAttribute(8, "title", "Navigation menu");
__builder.AddAttribute(9, "class", "navbar-toggler");
__builder.AddAttribute(10, "onclick", global::Microsoft.AspNetCore.Components.EventCallback.Factory.Create<global::Microsoft.AspNetCore.Components.Web.MouseEventArgs>(this,
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\NavMenu.razor"
ToggleNavMenu
#line default
#line hidden
#nullable disable
));
__builder.AddAttribute(11, "b-18uzve78me");
__builder.AddMarkupContent(12, "<span class=\"navbar-toggler-icon\" b-18uzve78me></span>");
__builder.CloseElement();
__builder.CloseElement();
__builder.CloseElement();
__builder.AddMarkupContent(13, "\r\n\r\n");
__builder.OpenElement(14, "div");
__builder.AddAttribute(15, "class", (
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\NavMenu.razor"
NavMenuCssClass
#line default
#line hidden
#nullable disable
) + " nav-scrollable");
__builder.AddAttribute(16, "onclick", global::Microsoft.AspNetCore.Components.EventCallback.Factory.Create<global::Microsoft.AspNetCore.Components.Web.MouseEventArgs>(this,
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\NavMenu.razor"
ToggleNavMenu
#line default
#line hidden
#nullable disable
));
__builder.AddAttribute(17, "b-18uzve78me");
__builder.OpenElement(18, "nav");
__builder.AddAttribute(19, "class", "flex-column");
__builder.AddAttribute(20, "b-18uzve78me");
__builder.OpenElement(21, "div");
__builder.AddAttribute(22, "class", "nav-item px-3");
__builder.AddAttribute(23, "b-18uzve78me");
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Routing.NavLink>(24);
__builder.AddComponentParameter(25, "class", "nav-link");
__builder.AddComponentParameter(26, "href", "");
__builder.AddComponentParameter(27, "Match", global::Microsoft.AspNetCore.Components.CompilerServices.RuntimeHelpers.TypeCheck<global::Microsoft.AspNetCore.Components.Routing.NavLinkMatch>(
#nullable restore
#line 13 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\NavMenu.razor"
NavLinkMatch.All
#line default
#line hidden
#nullable disable
));
__builder.AddAttribute(28, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.AddMarkupContent(29, "<span class=\"bi bi-house-door-fill-nav-menu\" aria-hidden=\"true\" b-18uzve78me></span> Home\r\n ");
}
));
__builder.CloseComponent();
__builder.CloseElement();
__builder.AddMarkupContent(30, "\r\n ");
__builder.OpenElement(31, "div");
__builder.AddAttribute(32, "class", "nav-item px-3");
__builder.AddAttribute(33, "b-18uzve78me");
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Routing.NavLink>(34);
__builder.AddComponentParameter(35, "class", "nav-link");
__builder.AddComponentParameter(36, "href", "counter");
__builder.AddAttribute(37, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.AddMarkupContent(38, "<span class=\"bi bi-plus-square-fill-nav-menu\" aria-hidden=\"true\" b-18uzve78me></span> Counter\r\n ");
}
));
__builder.CloseComponent();
__builder.CloseElement();
__builder.AddMarkupContent(39, "\r\n ");
__builder.OpenElement(40, "div");
__builder.AddAttribute(41, "class", "nav-item px-3");
__builder.AddAttribute(42, "b-18uzve78me");
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Routing.NavLink>(43);
__builder.AddComponentParameter(44, "class", "nav-link");
__builder.AddComponentParameter(45, "href", "weather");
__builder.AddAttribute(46, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.AddMarkupContent(47, "<span class=\"bi bi-list-nested-nav-menu\" aria-hidden=\"true\" b-18uzve78me></span> Weather\r\n ");
}
));
__builder.CloseComponent();
__builder.CloseElement();
__builder.CloseElement();
__builder.CloseElement();
}
#pragma warning restore 1998
#nullable restore
#line 30 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Layout\NavMenu.razor"
private bool collapseNavMenu = true;
private string? NavMenuCssClass => collapseNavMenu ? "collapse" : null;
private void ToggleNavMenu()
{
collapseNavMenu = !collapseNavMenu;
}
#line default
#line hidden
#nullable disable
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Counter.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "886d5e15f1c63f4cc1caec7ff58936690cc18dd69931479d26471f7575854ec2"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2.Pages
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Components.RouteAttribute("/counter")]
public partial class Counter : global::Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Web.PageTitle>(0);
__builder.AddAttribute(1, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.AddContent(2, "Counter");
}
));
__builder.CloseComponent();
__builder.AddMarkupContent(3, "\r\n\r\n");
__builder.AddMarkupContent(4, "<h1>Counter</h1>\r\n\r\n");
__builder.OpenElement(5, "p");
__builder.AddAttribute(6, "role", "status");
__builder.AddContent(7, "Current count: ");
#nullable restore
#line (7,34)-(7,46) 24 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Counter.razor"
__builder.AddContent(8, currentCount);
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.AddMarkupContent(9, "\r\n\r\n");
__builder.OpenElement(10, "button");
__builder.AddAttribute(11, "class", "btn btn-primary");
__builder.AddAttribute(12, "onclick", global::Microsoft.AspNetCore.Components.EventCallback.Factory.Create<global::Microsoft.AspNetCore.Components.Web.MouseEventArgs>(this,
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Counter.razor"
IncrementCount
#line default
#line hidden
#nullable disable
));
__builder.AddContent(13, "Click me");
__builder.CloseElement();
}
#pragma warning restore 1998
#nullable restore
#line 11 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Counter.razor"
private int currentCount = 0;
private void IncrementCount()
{
currentCount++;
}
#line default
#line hidden
#nullable disable
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Home.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "3aa0919abc135f80e5cf81940d496935db1ecddffc2b0b077d38018b20b6d726"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2.Pages
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Components.RouteAttribute("/")]
public partial class Home : global::Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Web.PageTitle>(0);
__builder.AddAttribute(1, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.AddContent(2, "Home");
}
));
__builder.CloseComponent();
__builder.AddMarkupContent(3, "\r\n\r\n");
__builder.AddMarkupContent(4, "<h1>Hello, world!</h1>\r\n\r\nPlease refresh the page to see the value persisted in local storage.\r\n");
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Home.razor"
var name = MyLocalStorage.GetItem<string>("name");
if (name != null)
{
#line default
#line hidden
#nullable disable
__builder.OpenElement(5, "p");
__builder.AddContent(6, "Hi, ");
#nullable restore
#line (13,17)-(13,21) 24 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Home.razor"
__builder.AddContent(7, name);
#line default
#line hidden
#nullable disable
__builder.CloseElement();
#nullable restore
#line 14 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Home.razor"
}
else
{
#line default
#line hidden
#nullable disable
__builder.AddMarkupContent(8, "<p>Hi, stranger</p>");
#nullable restore
#line 18 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Home.razor"
}
MyLocalStorage.SetItem("name", "Andrei Ignat");
#line default
#line hidden
#nullable disable
}
#pragma warning restore 1998
[global::Microsoft.AspNetCore.Components.InjectAttribute] private ILocalStorageService MyLocalStorage { get; set; }
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "91e0cba167af58d4c1dbd17785187574d7b8431106eb9fc9b48193bb1e109a61"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2.Pages
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Components.RouteAttribute("/weather")]
public partial class Weather : global::Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
__builder.OpenComponent<global::Microsoft.AspNetCore.Components.Web.PageTitle>(0);
__builder.AddAttribute(1, "ChildContent", (global::Microsoft.AspNetCore.Components.RenderFragment)((__builder2) => {
__builder2.AddContent(2, "Weather");
}
));
__builder.CloseComponent();
__builder.AddMarkupContent(3, "\r\n\r\n");
__builder.AddMarkupContent(4, "<h1>Weather</h1>\r\n\r\n");
__builder.AddMarkupContent(5, "<p>This component demonstrates fetching data from the server.</p>");
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
if (forecasts == null)
{
#line default
#line hidden
#nullable disable
__builder.AddMarkupContent(6, "<p><em>Loading...</em></p>");
#nullable restore
#line 13 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
}
else
{
#line default
#line hidden
#nullable disable
__builder.OpenElement(7, "table");
__builder.AddAttribute(8, "class", "table");
__builder.AddMarkupContent(9, "<thead><tr><th>Date</th>\r\n <th>Temp. (C)</th>\r\n <th>Temp. (F)</th>\r\n <th>Summary</th></tr></thead>\r\n ");
__builder.OpenElement(10, "tbody");
#nullable restore
#line 26 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
foreach (var forecast in forecasts)
{
#line default
#line hidden
#nullable disable
__builder.OpenElement(11, "tr");
__builder.OpenElement(12, "td");
#nullable restore
#line (29,26)-(29,59) 25 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
__builder.AddContent(13, forecast.Date.ToShortDateString());
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.AddMarkupContent(14, "\r\n ");
__builder.OpenElement(15, "td");
#nullable restore
#line (30,26)-(30,47) 25 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
__builder.AddContent(16, forecast.TemperatureC);
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.AddMarkupContent(17, "\r\n ");
__builder.OpenElement(18, "td");
#nullable restore
#line (31,26)-(31,47) 25 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
__builder.AddContent(19, forecast.TemperatureF);
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.AddMarkupContent(20, "\r\n ");
__builder.OpenElement(21, "td");
#nullable restore
#line (32,26)-(32,42) 25 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
__builder.AddContent(22, forecast.Summary);
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.CloseElement();
#nullable restore
#line 34 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
}
#line default
#line hidden
#nullable disable
__builder.CloseElement();
__builder.CloseElement();
#nullable restore
#line 37 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
}
#line default
#line hidden
#nullable disable
}
#pragma warning restore 1998
#nullable restore
#line 39 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\Pages\Weather.razor"
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);
}
#line default
#line hidden
#nullable disable
[global::Microsoft.AspNetCore.Components.InjectAttribute] private HttpClient Http { get; set; }
}
}
#pragma warning restore 1591
#pragma checksum "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor" "{8829d00f-11b8-4213-878b-770e8597ac16}" "d065d06a7544abc87a0d6ac6e4b47ca33ed0bc373f5ec7b85b2aa4d888f77d3e"
// <auto-generated/>
#pragma warning disable 1591
namespace BlazorApp2
{
#line hidden
using global::System;
using global::System.Collections.Generic;
using global::System.Linq;
using global::System.Threading.Tasks;
using global::Microsoft.AspNetCore.Components;
#nullable restore
#line 1 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 2 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using System.Net.Http.Json;
#line default
#line hidden
#nullable disable
#nullable restore
#line 3 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Forms;
#line default
#line hidden
#nullable disable
#nullable restore
#line 4 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Routing;
#line default
#line hidden
#nullable disable
#nullable restore
#line 5 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web;
#line default
#line hidden
#nullable disable
#nullable restore
#line 6 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.Web.Virtualization;
#line default
#line hidden
#nullable disable
#nullable restore
#line 7 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.AspNetCore.Components.WebAssembly.Http;
#line default
#line hidden
#nullable disable
#nullable restore
#line 8 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using Microsoft.JSInterop;
#line default
#line hidden
#nullable disable
#nullable restore
#line 9 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2;
#line default
#line hidden
#nullable disable
#nullable restore
#line 10 "C:\Users\ignat\Downloads\BlazorAppFullRef1\BlazorApp2\_Imports.razor"
using BlazorApp2.Layout;
#line default
#line hidden
#nullable disable
public partial class _Imports : global::Microsoft.AspNetCore.Components.ComponentBase
{
#pragma warning disable 1998
protected override void BuildRenderTree(global::Microsoft.AspNetCore.Components.Rendering.RenderTreeBuilder __builder)
{
}
#pragma warning restore 1998
}
}
#pragma warning restore 1591
Code and pdf at
https://ignatandrei.github.io/RSCG_Examples/v2/docs/Blazorators