Initial Commit

This commit is contained in:
Josh Deck 2024-03-01 13:09:08 -05:00
commit 4f64204468
70 changed files with 2825 additions and 0 deletions

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

27
Components/App.razor Normal file
View File

@ -0,0 +1,27 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<base href="/" />
<link rel="stylesheet" href="bootstrap/bootstrap.min.css" />
<link rel="stylesheet" href="app.css" />
<link rel="stylesheet" href="GoogleLoginDemo.styles.css" />
<link rel="icon" type="image/png" href="favicon.png" />
<!-- Google OAUTH initialization -->
<meta name="google-signin-client_id" content="11933123751-f2jrknadsdcikv727abk5430u315amp2.apps.googleusercontent.com">
<HeadOutlet />
</head>
<body>
<Routes />
<script src="_framework/blazor.web.js"></script>
<!-- Google OAUTH Scripts -->
<script src="Javascripts/GoogleOAUTH.js"></script>
<script src="https://apis.google.com/js/platform.js" async defer></script>
</body>
</html>

View File

@ -0,0 +1,23 @@
@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>
<div id="blazor-error-ui">
An unhandled error has occurred.
<a href="" class="reload">Reload</a>
<a class="dismiss">🗙</a>
</div>

View File

@ -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;
}

View File

@ -0,0 +1,18 @@
<div class="top-row ps-3 navbar navbar-dark">
<div class="container-fluid">
<a class="navbar-brand" href="">GoogleLoginDemo</a>
</div>
</div>
<input type="checkbox" title="Navigation menu" class="navbar-toggler" />
<div class="nav-scrollable" onclick="document.querySelector('.navbar-toggler').click()">
<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>
</nav>
</div>

View File

@ -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;
}
}

View File

@ -0,0 +1,36 @@
@page "/Error"
@using System.Diagnostics
<PageTitle>Error</PageTitle>
<h1 class="text-danger">Error.</h1>
<h2 class="text-danger">An error occurred while processing your request.</h2>
@if (ShowRequestId)
{
<p>
<strong>Request ID:</strong> <code>@RequestId</code>
</p>
}
<h3>Development Mode</h3>
<p>
Swapping to <strong>Development</strong> environment will display more detailed information about the error that occurred.
</p>
<p>
<strong>The Development environment shouldn't be enabled for deployed applications.</strong>
It can result in displaying sensitive information from exceptions to end users.
For local debugging, enable the <strong>Development</strong> environment by setting the <strong>ASPNETCORE_ENVIRONMENT</strong> environment variable to <strong>Development</strong>
and restarting the app.
</p>
@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;
}

View File

@ -0,0 +1,10 @@
@page "/"
<PageTitle>Home</PageTitle>
<h1>Hello, world!</h1>
<h2 id="status" style="color:red">Not Logged In</h2>
<div class="g-signin2" data-onsuccess="onSignIn"></div>
<br />
<button onclick="signOut()">Sign Out</button>

6
Components/Routes.razor Normal file
View File

@ -0,0 +1,6 @@
<Router AppAssembly="typeof(Program).Assembly">
<Found Context="routeData">
<RouteView RouteData="routeData" DefaultLayout="typeof(Layout.MainLayout)" />
<FocusOnNavigate RouteData="routeData" Selector="h1" />
</Found>
</Router>

10
Components/_Imports.razor Normal file
View File

@ -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 GoogleLoginDemo
@using GoogleLoginDemo.Components

9
GoogleLoginDemo.csproj Normal file
View File

@ -0,0 +1,9 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
</PropertyGroup>
</Project>

View File

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="Current" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<ActiveDebugProfile>http</ActiveDebugProfile>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
<DebuggerFlavor>ProjectDebugger</DebuggerFlavor>
</PropertyGroup>
</Project>

25
GoogleLoginDemo.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.8.34408.163
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GoogleLoginDemo", "GoogleLoginDemo.csproj", "{04C4163F-3E38-4CC7-984D-E7A16C926141}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{04C4163F-3E38-4CC7-984D-E7A16C926141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{04C4163F-3E38-4CC7-984D-E7A16C926141}.Debug|Any CPU.Build.0 = Debug|Any CPU
{04C4163F-3E38-4CC7-984D-E7A16C926141}.Release|Any CPU.ActiveCfg = Release|Any CPU
{04C4163F-3E38-4CC7-984D-E7A16C926141}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {80B47C96-2732-4A3D-9EAF-E65D47765E68}
EndGlobalSection
EndGlobal

27
Program.cs Normal file
View File

@ -0,0 +1,27 @@
using GoogleLoginDemo.Components;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorComponents()
.AddInteractiveServerComponents();
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<App>()
.AddInteractiveServerRenderMode();
app.Run();

View File

@ -0,0 +1,38 @@
{
"$schema": "http://json.schemastore.org/launchsettings.json",
"iisSettings": {
"windowsAuthentication": false,
"anonymousAuthentication": true,
"iisExpress": {
"applicationUrl": "http://localhost:37129",
"sslPort": 44393
}
},
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5107",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7045;http://localhost:5107",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

9
appsettings.json Normal file
View File

@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

View File

@ -0,0 +1,23 @@
{
"runtimeTarget": {
"name": ".NETCoreApp,Version=v8.0",
"signature": ""
},
"compilationOptions": {},
"targets": {
".NETCoreApp,Version=v8.0": {
"GoogleLoginDemo/1.0.0": {
"runtime": {
"GoogleLoginDemo.dll": {}
}
}
}
},
"libraries": {
"GoogleLoginDemo/1.0.0": {
"type": "project",
"serviceable": false,
"sha512": ""
}
}
}

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -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
}
}
}

View File

@ -0,0 +1 @@
{"ContentRoots":["C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\","C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\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},"Javascripts":{"Children":{"GoogleOAUTH.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"Javascripts/GoogleOAUTH.js"},"Patterns":null}},"Asset":null,"Patterns":null},"GoogleLoginDemo.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"GoogleLoginDemo.styles.css"},"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}

View File

@ -0,0 +1,8 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
}
}

View File

@ -0,0 +1,9 @@
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft.AspNetCore": "Warning"
}
},
"AllowedHosts": "*"
}

View File

@ -0,0 +1,4 @@
// <autogenerated />
using System;
using System.Reflection;
[assembly: global::System.Runtime.Versioning.TargetFrameworkAttribute(".NETCoreApp,Version=v8.0", FrameworkDisplayName = ".NET 8.0")]

View File

@ -0,0 +1,23 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
using System;
using System.Reflection;
[assembly: System.Reflection.AssemblyCompanyAttribute("GoogleLoginDemo")]
[assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")]
[assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")]
[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0")]
[assembly: System.Reflection.AssemblyProductAttribute("GoogleLoginDemo")]
[assembly: System.Reflection.AssemblyTitleAttribute("GoogleLoginDemo")]
[assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")]
// Generated by the MSBuild WriteCodeFragment class.

View File

@ -0,0 +1 @@
443df54b3db1f86501bbc1926c4906ab4d72c64972d276468622b5692bab656c

View File

@ -0,0 +1,47 @@
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 = GoogleLoginDemo
build_property.RootNamespace = GoogleLoginDemo
build_property.ProjectDir = C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\
build_property.EnableComHosting =
build_property.EnableGeneratedComInterfaceComImportInterop =
build_property.RazorLangVersion = 8.0
build_property.SupportLocalizedComponentNames =
build_property.GenerateRazorMetadataSourceChecksumAttributes =
build_property.MSBuildProjectDirectory = C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo
build_property._RazorSourceGeneratorDebug =
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/App.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xBcHAucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/Pages/Error.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xFcnJvci5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/Pages/Home.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xQYWdlc1xIb21lLnJhem9y
build_metadata.AdditionalFiles.CssScope =
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/Routes.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xSb3V0ZXMucmF6b3I=
build_metadata.AdditionalFiles.CssScope =
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/_Imports.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xfSW1wb3J0cy5yYXpvcg==
build_metadata.AdditionalFiles.CssScope =
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/Layout/MainLayout.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTWFpbkxheW91dC5yYXpvcg==
build_metadata.AdditionalFiles.CssScope = b-2rwhcjdk38
[C:/Users/joshdeck.KEYMTV/Documents/Projects/GoogleLoginDemo/Components/Layout/NavMenu.razor]
build_metadata.AdditionalFiles.TargetPath = Q29tcG9uZW50c1xMYXlvdXRcTmF2TWVudS5yYXpvcg==
build_metadata.AdditionalFiles.CssScope = b-fi4rh7evoo

View File

@ -0,0 +1,17 @@
// <auto-generated/>
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;

Binary file not shown.

View File

@ -0,0 +1 @@
07778e756fe057a031614e7cf184eb2642107861ccdc6bd7abef71755016803d

View File

@ -0,0 +1,29 @@
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\appsettings.Development.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\appsettings.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\GoogleLoginDemo.staticwebassets.runtime.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\GoogleLoginDemo.exe
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\GoogleLoginDemo.deps.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\GoogleLoginDemo.runtimeconfig.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\GoogleLoginDemo.dll
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\bin\Debug\net8.0\GoogleLoginDemo.pdb
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.GeneratedMSBuildEditorConfig.editorconfig
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.AssemblyInfoInputs.cache
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.AssemblyInfo.cs
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.csproj.CoreCompileInputs.cache
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.MvcApplicationPartsAssemblyInfo.cache
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets.build.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets.development.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets\msbuild.GoogleLoginDemo.Microsoft.AspNetCore.StaticWebAssets.props
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets\msbuild.build.GoogleLoginDemo.props
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets\msbuild.buildMultiTargeting.GoogleLoginDemo.props
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets\msbuild.buildTransitive.GoogleLoginDemo.props
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\staticwebassets.pack.json
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\scopedcss\Components\Layout\MainLayout.razor.rz.scp.css
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\scopedcss\Components\Layout\NavMenu.razor.rz.scp.css
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\scopedcss\bundle\GoogleLoginDemo.styles.css
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\scopedcss\projectbundle\GoogleLoginDemo.bundle.scp.css
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.dll
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\refint\GoogleLoginDemo.dll
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.pdb
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\GoogleLoginDemo.genruntimeconfig.cache
C:\Users\joshdeck.KEYMTV\Documents\Projects\GoogleLoginDemo\obj\Debug\net8.0\ref\GoogleLoginDemo.dll

Binary file not shown.

View File

@ -0,0 +1 @@
2fb08ea537a834822318b1f53b26d87116b14739e80f877fbc844badd90bb937

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1,96 @@
.page[b-2rwhcjdk38] {
position: relative;
display: flex;
flex-direction: column;
}
main[b-2rwhcjdk38] {
flex: 1;
}
.sidebar[b-2rwhcjdk38] {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row[b-2rwhcjdk38] {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row[b-2rwhcjdk38] a, .top-row[b-2rwhcjdk38] .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row[b-2rwhcjdk38] a:hover, .top-row[b-2rwhcjdk38] .btn-link:hover {
text-decoration: underline;
}
.top-row[b-2rwhcjdk38] a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row[b-2rwhcjdk38] {
justify-content: space-between;
}
.top-row[b-2rwhcjdk38] a, .top-row[b-2rwhcjdk38] .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page[b-2rwhcjdk38] {
flex-direction: row;
}
.sidebar[b-2rwhcjdk38] {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row[b-2rwhcjdk38] {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth[b-2rwhcjdk38] a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row[b-2rwhcjdk38], article[b-2rwhcjdk38] {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}
#blazor-error-ui[b-2rwhcjdk38] {
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-2rwhcjdk38] {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}

View File

@ -0,0 +1,105 @@
.navbar-toggler[b-fi4rh7evoo] {
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-fi4rh7evoo] {
background-color: rgba(255, 255, 255, 0.5);
}
.top-row[b-fi4rh7evoo] {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
.navbar-brand[b-fi4rh7evoo] {
font-size: 1.1rem;
}
.bi[b-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.nav-item:first-of-type[b-fi4rh7evoo] {
padding-top: 1rem;
}
.nav-item:last-of-type[b-fi4rh7evoo] {
padding-bottom: 1rem;
}
.nav-item[b-fi4rh7evoo] .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-fi4rh7evoo] a.active {
background-color: rgba(255,255,255,0.37);
color: white;
}
.nav-item[b-fi4rh7evoo] .nav-link:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
.nav-scrollable[b-fi4rh7evoo] {
display: none;
}
.navbar-toggler:checked ~ .nav-scrollable[b-fi4rh7evoo] {
display: block;
}
@media (min-width: 641px) {
.navbar-toggler[b-fi4rh7evoo] {
display: none;
}
.nav-scrollable[b-fi4rh7evoo] {
/* Never collapse the sidebar for wide screens */
display: block;
/* Allow sidebar to scroll for tall menus */
height: calc(100vh - 3.5rem);
overflow-y: auto;
}
}

View File

@ -0,0 +1,203 @@
/* _content/GoogleLoginDemo/Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-2rwhcjdk38] {
position: relative;
display: flex;
flex-direction: column;
}
main[b-2rwhcjdk38] {
flex: 1;
}
.sidebar[b-2rwhcjdk38] {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row[b-2rwhcjdk38] {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row[b-2rwhcjdk38] a, .top-row[b-2rwhcjdk38] .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row[b-2rwhcjdk38] a:hover, .top-row[b-2rwhcjdk38] .btn-link:hover {
text-decoration: underline;
}
.top-row[b-2rwhcjdk38] a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row[b-2rwhcjdk38] {
justify-content: space-between;
}
.top-row[b-2rwhcjdk38] a, .top-row[b-2rwhcjdk38] .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page[b-2rwhcjdk38] {
flex-direction: row;
}
.sidebar[b-2rwhcjdk38] {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row[b-2rwhcjdk38] {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth[b-2rwhcjdk38] a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row[b-2rwhcjdk38], article[b-2rwhcjdk38] {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}
#blazor-error-ui[b-2rwhcjdk38] {
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-2rwhcjdk38] {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}
/* _content/GoogleLoginDemo/Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-fi4rh7evoo] {
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-fi4rh7evoo] {
background-color: rgba(255, 255, 255, 0.5);
}
.top-row[b-fi4rh7evoo] {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
.navbar-brand[b-fi4rh7evoo] {
font-size: 1.1rem;
}
.bi[b-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.nav-item:first-of-type[b-fi4rh7evoo] {
padding-top: 1rem;
}
.nav-item:last-of-type[b-fi4rh7evoo] {
padding-bottom: 1rem;
}
.nav-item[b-fi4rh7evoo] .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-fi4rh7evoo] a.active {
background-color: rgba(255,255,255,0.37);
color: white;
}
.nav-item[b-fi4rh7evoo] .nav-link:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
.nav-scrollable[b-fi4rh7evoo] {
display: none;
}
.navbar-toggler:checked ~ .nav-scrollable[b-fi4rh7evoo] {
display: block;
}
@media (min-width: 641px) {
.navbar-toggler[b-fi4rh7evoo] {
display: none;
}
.nav-scrollable[b-fi4rh7evoo] {
/* Never collapse the sidebar for wide screens */
display: block;
/* Allow sidebar to scroll for tall menus */
height: calc(100vh - 3.5rem);
overflow-y: auto;
}
}

View File

@ -0,0 +1,203 @@
/* _content/GoogleLoginDemo/Components/Layout/MainLayout.razor.rz.scp.css */
.page[b-2rwhcjdk38] {
position: relative;
display: flex;
flex-direction: column;
}
main[b-2rwhcjdk38] {
flex: 1;
}
.sidebar[b-2rwhcjdk38] {
background-image: linear-gradient(180deg, rgb(5, 39, 103) 0%, #3a0647 70%);
}
.top-row[b-2rwhcjdk38] {
background-color: #f7f7f7;
border-bottom: 1px solid #d6d5d5;
justify-content: flex-end;
height: 3.5rem;
display: flex;
align-items: center;
}
.top-row[b-2rwhcjdk38] a, .top-row[b-2rwhcjdk38] .btn-link {
white-space: nowrap;
margin-left: 1.5rem;
text-decoration: none;
}
.top-row[b-2rwhcjdk38] a:hover, .top-row[b-2rwhcjdk38] .btn-link:hover {
text-decoration: underline;
}
.top-row[b-2rwhcjdk38] a:first-child {
overflow: hidden;
text-overflow: ellipsis;
}
@media (max-width: 640.98px) {
.top-row[b-2rwhcjdk38] {
justify-content: space-between;
}
.top-row[b-2rwhcjdk38] a, .top-row[b-2rwhcjdk38] .btn-link {
margin-left: 0;
}
}
@media (min-width: 641px) {
.page[b-2rwhcjdk38] {
flex-direction: row;
}
.sidebar[b-2rwhcjdk38] {
width: 250px;
height: 100vh;
position: sticky;
top: 0;
}
.top-row[b-2rwhcjdk38] {
position: sticky;
top: 0;
z-index: 1;
}
.top-row.auth[b-2rwhcjdk38] a:first-child {
flex: 1;
text-align: right;
width: 0;
}
.top-row[b-2rwhcjdk38], article[b-2rwhcjdk38] {
padding-left: 2rem !important;
padding-right: 1.5rem !important;
}
}
#blazor-error-ui[b-2rwhcjdk38] {
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-2rwhcjdk38] {
cursor: pointer;
position: absolute;
right: 0.75rem;
top: 0.5rem;
}
/* _content/GoogleLoginDemo/Components/Layout/NavMenu.razor.rz.scp.css */
.navbar-toggler[b-fi4rh7evoo] {
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-fi4rh7evoo] {
background-color: rgba(255, 255, 255, 0.5);
}
.top-row[b-fi4rh7evoo] {
height: 3.5rem;
background-color: rgba(0,0,0,0.4);
}
.navbar-brand[b-fi4rh7evoo] {
font-size: 1.1rem;
}
.bi[b-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
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-fi4rh7evoo] {
font-size: 0.9rem;
padding-bottom: 0.5rem;
}
.nav-item:first-of-type[b-fi4rh7evoo] {
padding-top: 1rem;
}
.nav-item:last-of-type[b-fi4rh7evoo] {
padding-bottom: 1rem;
}
.nav-item[b-fi4rh7evoo] .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-fi4rh7evoo] a.active {
background-color: rgba(255,255,255,0.37);
color: white;
}
.nav-item[b-fi4rh7evoo] .nav-link:hover {
background-color: rgba(255,255,255,0.1);
color: white;
}
.nav-scrollable[b-fi4rh7evoo] {
display: none;
}
.navbar-toggler:checked ~ .nav-scrollable[b-fi4rh7evoo] {
display: block;
}
@media (min-width: 641px) {
.navbar-toggler[b-fi4rh7evoo] {
display: none;
}
.nav-scrollable[b-fi4rh7evoo] {
/* Never collapse the sidebar for wide screens */
display: block;
/* Allow sidebar to scroll for tall menus */
height: calc(100vh - 3.5rem);
overflow-y: auto;
}
}

View File

@ -0,0 +1,153 @@
{
"Version": 1,
"Hash": "mhbN5VWt5Fc/ONk5nU2MzOkJjBG2gWwt8hwrm6WU1tM=",
"Source": "GoogleLoginDemo",
"BasePath": "_content/GoogleLoginDemo",
"Mode": "Default",
"ManifestType": "Build",
"ReferencedProjectsConfiguration": [],
"DiscoveryPatterns": [
{
"Name": "GoogleLoginDemo\\wwwroot",
"Source": "GoogleLoginDemo",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\",
"BasePath": "_content/GoogleLoginDemo",
"Pattern": "**"
}
],
"Assets": [
{
"Identity": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\bundle\\GoogleLoginDemo.styles.css",
"SourceId": "GoogleLoginDemo",
"SourceType": "Computed",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\bundle\\",
"BasePath": "_content/GoogleLoginDemo",
"RelativePath": "GoogleLoginDemo.styles.css",
"AssetKind": "All",
"AssetMode": "CurrentProject",
"AssetRole": "Primary",
"AssetMergeBehavior": "",
"AssetMergeSource": "",
"RelatedAsset": "",
"AssetTraitName": "ScopedCss",
"AssetTraitValue": "ApplicationBundle",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
"OriginalItemSpec": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\bundle\\GoogleLoginDemo.styles.css"
},
{
"Identity": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\projectbundle\\GoogleLoginDemo.bundle.scp.css",
"SourceId": "GoogleLoginDemo",
"SourceType": "Computed",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\projectbundle\\",
"BasePath": "_content/GoogleLoginDemo",
"RelativePath": "GoogleLoginDemo.bundle.scp.css",
"AssetKind": "All",
"AssetMode": "Reference",
"AssetRole": "Primary",
"AssetMergeBehavior": "",
"AssetMergeSource": "",
"RelatedAsset": "",
"AssetTraitName": "ScopedCss",
"AssetTraitValue": "ProjectBundle",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
"OriginalItemSpec": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\projectbundle\\GoogleLoginDemo.bundle.scp.css"
},
{
"Identity": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\app.css",
"SourceId": "GoogleLoginDemo",
"SourceType": "Discovered",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\",
"BasePath": "_content/GoogleLoginDemo",
"RelativePath": "app.css",
"AssetKind": "All",
"AssetMode": "All",
"AssetRole": "Primary",
"AssetMergeBehavior": "PreferTarget",
"AssetMergeSource": "",
"RelatedAsset": "",
"AssetTraitName": "",
"AssetTraitValue": "",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
"OriginalItemSpec": "wwwroot\\app.css"
},
{
"Identity": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\bootstrap\\bootstrap.min.css",
"SourceId": "GoogleLoginDemo",
"SourceType": "Discovered",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\",
"BasePath": "_content/GoogleLoginDemo",
"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": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\bootstrap\\bootstrap.min.css.map",
"SourceId": "GoogleLoginDemo",
"SourceType": "Discovered",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\",
"BasePath": "_content/GoogleLoginDemo",
"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": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\favicon.png",
"SourceId": "GoogleLoginDemo",
"SourceType": "Discovered",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\",
"BasePath": "_content/GoogleLoginDemo",
"RelativePath": "favicon.png",
"AssetKind": "All",
"AssetMode": "All",
"AssetRole": "Primary",
"AssetMergeBehavior": "PreferTarget",
"AssetMergeSource": "",
"RelatedAsset": "",
"AssetTraitName": "",
"AssetTraitValue": "",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
"OriginalItemSpec": "wwwroot\\favicon.png"
},
{
"Identity": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\Javascripts\\GoogleOAUTH.js",
"SourceId": "GoogleLoginDemo",
"SourceType": "Discovered",
"ContentRoot": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\",
"BasePath": "_content/GoogleLoginDemo",
"RelativePath": "Javascripts/GoogleOAUTH.js",
"AssetKind": "All",
"AssetMode": "All",
"AssetRole": "Primary",
"AssetMergeBehavior": "PreferTarget",
"AssetMergeSource": "",
"RelatedAsset": "",
"AssetTraitName": "",
"AssetTraitValue": "",
"CopyToOutputDirectory": "Never",
"CopyToPublishDirectory": "PreserveNewest",
"OriginalItemSpec": "wwwroot\\Javascripts\\GoogleOAUTH.js"
}
]
}

View File

@ -0,0 +1 @@
{"ContentRoots":["C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\","C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\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},"Javascripts":{"Children":{"GoogleOAUTH.js":{"Children":null,"Asset":{"ContentRootIndex":0,"SubPath":"Javascripts/GoogleOAUTH.js"},"Patterns":null}},"Asset":null,"Patterns":null},"GoogleLoginDemo.styles.css":{"Children":null,"Asset":{"ContentRootIndex":1,"SubPath":"GoogleLoginDemo.styles.css"},"Patterns":null}},"Asset":null,"Patterns":[{"ContentRootIndex":0,"Pattern":"**","Depth":0}]}}

View File

@ -0,0 +1,45 @@
{
"Files": [
{
"Id": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\Debug\\net8.0\\scopedcss\\projectbundle\\GoogleLoginDemo.bundle.scp.css",
"PackagePath": "staticwebassets\\GoogleLoginDemo.bundle.scp.css"
},
{
"Id": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\Javascripts\\GoogleOAUTH.js",
"PackagePath": "staticwebassets\\Javascripts\\GoogleOAUTH.js"
},
{
"Id": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\app.css",
"PackagePath": "staticwebassets\\app.css"
},
{
"Id": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\bootstrap\\bootstrap.min.css",
"PackagePath": "staticwebassets\\bootstrap\\bootstrap.min.css"
},
{
"Id": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\bootstrap\\bootstrap.min.css.map",
"PackagePath": "staticwebassets\\bootstrap\\bootstrap.min.css.map"
},
{
"Id": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\wwwroot\\favicon.png",
"PackagePath": "staticwebassets\\favicon.png"
},
{
"Id": "obj\\Debug\\net8.0\\staticwebassets\\msbuild.GoogleLoginDemo.Microsoft.AspNetCore.StaticWebAssets.props",
"PackagePath": "build\\Microsoft.AspNetCore.StaticWebAssets.props"
},
{
"Id": "obj\\Debug\\net8.0\\staticwebassets\\msbuild.build.GoogleLoginDemo.props",
"PackagePath": "build\\GoogleLoginDemo.props"
},
{
"Id": "obj\\Debug\\net8.0\\staticwebassets\\msbuild.buildMultiTargeting.GoogleLoginDemo.props",
"PackagePath": "buildMultiTargeting\\GoogleLoginDemo.props"
},
{
"Id": "obj\\Debug\\net8.0\\staticwebassets\\msbuild.buildTransitive.GoogleLoginDemo.props",
"PackagePath": "buildTransitive\\GoogleLoginDemo.props"
}
],
"ElementsToRemove": []
}

View File

@ -0,0 +1,100 @@
<Project>
<ItemGroup>
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\app.css))">
<SourceType>Package</SourceType>
<SourceId>GoogleLoginDemo</SourceId>
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
<BasePath>_content/GoogleLoginDemo</BasePath>
<RelativePath>app.css</RelativePath>
<AssetKind>All</AssetKind>
<AssetMode>All</AssetMode>
<AssetRole>Primary</AssetRole>
<RelatedAsset></RelatedAsset>
<AssetTraitName></AssetTraitName>
<AssetTraitValue></AssetTraitValue>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\app.css))</OriginalItemSpec>
</StaticWebAsset>
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css))">
<SourceType>Package</SourceType>
<SourceId>GoogleLoginDemo</SourceId>
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
<BasePath>_content/GoogleLoginDemo</BasePath>
<RelativePath>bootstrap/bootstrap.min.css</RelativePath>
<AssetKind>All</AssetKind>
<AssetMode>All</AssetMode>
<AssetRole>Primary</AssetRole>
<RelatedAsset></RelatedAsset>
<AssetTraitName></AssetTraitName>
<AssetTraitValue></AssetTraitValue>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css))</OriginalItemSpec>
</StaticWebAsset>
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css.map))">
<SourceType>Package</SourceType>
<SourceId>GoogleLoginDemo</SourceId>
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
<BasePath>_content/GoogleLoginDemo</BasePath>
<RelativePath>bootstrap/bootstrap.min.css.map</RelativePath>
<AssetKind>All</AssetKind>
<AssetMode>All</AssetMode>
<AssetRole>Primary</AssetRole>
<RelatedAsset></RelatedAsset>
<AssetTraitName></AssetTraitName>
<AssetTraitValue></AssetTraitValue>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\bootstrap\bootstrap.min.css.map))</OriginalItemSpec>
</StaticWebAsset>
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\favicon.png))">
<SourceType>Package</SourceType>
<SourceId>GoogleLoginDemo</SourceId>
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
<BasePath>_content/GoogleLoginDemo</BasePath>
<RelativePath>favicon.png</RelativePath>
<AssetKind>All</AssetKind>
<AssetMode>All</AssetMode>
<AssetRole>Primary</AssetRole>
<RelatedAsset></RelatedAsset>
<AssetTraitName></AssetTraitName>
<AssetTraitValue></AssetTraitValue>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\favicon.png))</OriginalItemSpec>
</StaticWebAsset>
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\GoogleLoginDemo.bundle.scp.css))">
<SourceType>Package</SourceType>
<SourceId>GoogleLoginDemo</SourceId>
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
<BasePath>_content/GoogleLoginDemo</BasePath>
<RelativePath>GoogleLoginDemo.bundle.scp.css</RelativePath>
<AssetKind>All</AssetKind>
<AssetMode>Reference</AssetMode>
<AssetRole>Primary</AssetRole>
<RelatedAsset></RelatedAsset>
<AssetTraitName>ScopedCss</AssetTraitName>
<AssetTraitValue>ProjectBundle</AssetTraitValue>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\GoogleLoginDemo.bundle.scp.css))</OriginalItemSpec>
</StaticWebAsset>
<StaticWebAsset Include="$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\Javascripts\GoogleOAUTH.js))">
<SourceType>Package</SourceType>
<SourceId>GoogleLoginDemo</SourceId>
<ContentRoot>$(MSBuildThisFileDirectory)..\staticwebassets\</ContentRoot>
<BasePath>_content/GoogleLoginDemo</BasePath>
<RelativePath>Javascripts/GoogleOAUTH.js</RelativePath>
<AssetKind>All</AssetKind>
<AssetMode>All</AssetMode>
<AssetRole>Primary</AssetRole>
<RelatedAsset></RelatedAsset>
<AssetTraitName></AssetTraitName>
<AssetTraitValue></AssetTraitValue>
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>PreserveNewest</CopyToPublishDirectory>
<OriginalItemSpec>$([System.IO.Path]::GetFullPath($(MSBuildThisFileDirectory)..\staticwebassets\Javascripts\GoogleOAUTH.js))</OriginalItemSpec>
</StaticWebAsset>
</ItemGroup>
</Project>

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="Microsoft.AspNetCore.StaticWebAssets.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="..\build\GoogleLoginDemo.props" />
</Project>

View File

@ -0,0 +1,3 @@
<Project>
<Import Project="..\buildMultiTargeting\GoogleLoginDemo.props" />
</Project>

View File

@ -0,0 +1,71 @@
{
"format": 1,
"restore": {
"C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj": {}
},
"projects": {
"C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj",
"projectName": "GoogleLoginDemo",
"projectPath": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj",
"packagesPath": "C:\\Users\\joshdeck.KEYMTV\\.nuget\\packages\\",
"outputPath": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\joshdeck.KEYMTV\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"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": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json"
}
}
}
}
}

View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<RestoreSuccess Condition=" '$(RestoreSuccess)' == '' ">True</RestoreSuccess>
<RestoreTool Condition=" '$(RestoreTool)' == '' ">NuGet</RestoreTool>
<ProjectAssetsFile Condition=" '$(ProjectAssetsFile)' == '' ">$(MSBuildThisFileDirectory)project.assets.json</ProjectAssetsFile>
<NuGetPackageRoot Condition=" '$(NuGetPackageRoot)' == '' ">$(UserProfile)\.nuget\packages\</NuGetPackageRoot>
<NuGetPackageFolders Condition=" '$(NuGetPackageFolders)' == '' ">C:\Users\joshdeck.KEYMTV\.nuget\packages\;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages</NuGetPackageFolders>
<NuGetProjectStyle Condition=" '$(NuGetProjectStyle)' == '' ">PackageReference</NuGetProjectStyle>
<NuGetToolVersion Condition=" '$(NuGetToolVersion)' == '' ">6.8.0</NuGetToolVersion>
</PropertyGroup>
<ItemGroup Condition=" '$(ExcludeRestorePackageImports)' != 'true' ">
<SourceRoot Include="C:\Users\joshdeck.KEYMTV\.nuget\packages\" />
<SourceRoot Include="C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages\" />
</ItemGroup>
</Project>

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" />

77
obj/project.assets.json Normal file
View File

@ -0,0 +1,77 @@
{
"version": 3,
"targets": {
"net8.0": {}
},
"libraries": {},
"projectFileDependencyGroups": {
"net8.0": []
},
"packageFolders": {
"C:\\Users\\joshdeck.KEYMTV\\.nuget\\packages\\": {},
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages": {}
},
"project": {
"version": "1.0.0",
"restore": {
"projectUniqueName": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj",
"projectName": "GoogleLoginDemo",
"projectPath": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj",
"packagesPath": "C:\\Users\\joshdeck.KEYMTV\\.nuget\\packages\\",
"outputPath": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\obj\\",
"projectStyle": "PackageReference",
"fallbackFolders": [
"C:\\Program Files (x86)\\Microsoft Visual Studio\\Shared\\NuGetPackages"
],
"configFilePaths": [
"C:\\Users\\joshdeck.KEYMTV\\AppData\\Roaming\\NuGet\\NuGet.Config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.FallbackLocation.config",
"C:\\Program Files (x86)\\NuGet\\Config\\Microsoft.VisualStudio.Offline.config"
],
"originalTargetFrameworks": [
"net8.0"
],
"sources": {
"C:\\Program Files (x86)\\Microsoft SDKs\\NuGetPackages\\": {},
"C:\\Program Files\\dotnet\\library-packs": {},
"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": "C:\\Program Files\\dotnet\\sdk\\8.0.101/PortableRuntimeIdentifierGraph.json"
}
}
}
}

8
obj/project.nuget.cache Normal file
View File

@ -0,0 +1,8 @@
{
"version": 2,
"dgSpecHash": "tQW9SL/ltQ1em5XLzZyk61FeEk7Qmp8yhDR5HHaogiHw6mxC0d/q7o+0cIh+PxEAjt9qtEVjUQx8aEJY0Q/b7g==",
"success": true,
"projectFilePath": "C:\\Users\\joshdeck.KEYMTV\\Documents\\Projects\\GoogleLoginDemo\\GoogleLoginDemo.csproj",
"expectedPackageFiles": [],
"logs": []
}

View File

@ -0,0 +1,22 @@
function onSignIn(googleUser) {
var profile = googleUser.getBasicProfile();
console.log('ID: ' + profile.getId()); // Do not use this in the backend. This is raw, the id_token is the secure UNIQID
console.log('ID Token: ' + googleUser.getAuthResponse().id_token); // This is your ID for the profile for SQL
console.log('Name: ' + profile.getName());
console.log('Image URL: ' + profile.getImageUrl());
console.log('Email: ' + profile.getEmail()); // This is null if the 'email' scope is not present.
document.getElementById("status").style.color = "green";
document.getElementById("status").textContent = "Signed In";
}
function signOut() {
var auth2 = gapi.auth2.getAuthInstance();
auth2.signOut().then(function () {
console.log('User signed out.');
document.getElementById("status").style.color = "red";
document.getElementById("status").textContent = "Not Signed In";
});
}

51
wwwroot/app.css Normal file
View File

@ -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;
}

7
wwwroot/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

BIN
wwwroot/favicon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB