Merge branch 'arthur'

pull/12/head
Arthur VALIN 2 years ago
commit 6633055249

@ -1,4 +1,4 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net6.0</TargetFramework>
@ -18,8 +18,8 @@
<ItemGroup>
<Compile Remove="Shared\HeaderLayout.cs" />
</ItemGroup>
</ItemGroup>
<ItemGroup>
<None Remove="Shared\CraftLayout.css" />
</ItemGroup>

@ -9,7 +9,7 @@
<h3>@Localizer["Opening"]</h3>
<h1>Hello, world!</h1>
<img src="images/@(Localizer["subtext-img"]).png" width="70%" />
<br />
<AuthorizeView>

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Inventory" xml:space="preserve">
<value>Inventaire</value>
</data>
<data name="Login" xml:space="preserve">
<value>Se connecter</value>
</data>
<data name="Opening" xml:space="preserve">
<value>Ouverture</value>
</data>
<data name="Register" xml:space="preserve">
<value>Créer un compte</value>
</data>
<data name="Shop" xml:space="preserve">
<value>Magasin</value>
</data>
<data name="subtext-img" xml:space="preserve">
<value>subtext_fr-FR</value>
</data>
</root>

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Inventory" xml:space="preserve">
<value>Inventory</value>
</data>
<data name="Login" xml:space="preserve">
<value>Login</value>
</data>
<data name="Opening" xml:space="preserve">
<value>Opening</value>
</data>
<data name="Register" xml:space="preserve">
<value>Register</value>
</data>
<data name="Shop" xml:space="preserve">
<value>Shop</value>
</data>
<data name="subtext-img" xml:space="preserve">
<value>subtext_en-EN</value>
</data>
</root>

@ -0,0 +1,138 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="Inventory" xml:space="preserve">
<value>Envanter</value>
</data>
<data name="Login" xml:space="preserve">
<value>Giriş yapmak</value>
</data>
<data name="Opening" xml:space="preserve">
<value>Açılış</value>
</data>
<data name="Register" xml:space="preserve">
<value>Kayıt ol</value>
</data>
<data name="Shop" xml:space="preserve">
<value>Mağaza</value>
</data>
<data name="subtext-img" xml:space="preserve">
<value>subtext_tr-TR</value>
</data>
</root>

@ -2,11 +2,19 @@
<PageTitle>CraftSharp</PageTitle>
<div>
<div class="sidebar" >
<HeaderLayout />
</div>
<div class="main_div">
<HeaderLayout/>
<article class="content px-4">
@Body
</article>
</div>
<div class="bedrock_footer">
<img class="bedrock_footer_img" src="/Images/bedrock_footer.png" />
<div class="px-4 culture">
<CultureSelector/>
</div>
</div>
</div>

@ -1,3 +1,25 @@
.sidebar {
background-image: linear-gradient(180deg, rgb(120,51,174) 0%, #411186 90%);
.bedrock_footer{
width: 100%;
position: absolute;
bottom: 0
}
.bedrock_footer_img {
width: 100%;
}
body {
background: url("../Images/blur_background.jpg") center center/cover no-repeat fixed;
}
.main_div {
background: url("../Images/blur_background.jpg") center center/cover no-repeat fixed;
color: white;
min-height: 100vh;
position: relative
}
.culture{
position: absolute;
bottom: 0;
}

@ -1,55 +1,51 @@
@inject NavigationManager navigationManager
<nav class="navbar navbar-expand-md navbar-dark bg-dark mb-4">
<div class="container-fluid">
<img class="nav-image" src="Images/CraftSharp-Logo.png" alt="Logo Application"/>
<button class="navbar-toggler @NavButtonCssClass" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"
aria-controls="navbarCollapse" aria-label="Toggle navigation" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
<div class="collapse navbar-collapse @NavBarCssClass" id="navbarCollapse" @onclick="ToggleNavMenu">
<ul class="navbar-nav me-auto mb-0 mb-md-0">
<li class="nav-item">
</li>
<li class="nav-item">
<NavLink class="nav-link" href="" Match="NavLinkMatch.All">
<span class="oi oi-home"></span> Home
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="List">
<span class="oi oi-box"></span> List
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="counter">
<span class="oi oi-plus"></span> @Localizer["Shop"]
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="fetchdata">
<span class="oi oi-list-rich"></span> Inventaire
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="Tabledecraft">
<span class="oi oi-vertical-align-top"></span> Crafter
</NavLink>
</li>
</ul>
<div>
<div >
<CultureSelector/>
</div>
<button @onclick=@goConnexion> Se connecter
</button>
<button @onclick=@goInscription> S'inscrire
<div class="topbar">
<nav class="navbar navbar-expand-md mb-4">
<div class="container-fluid bar">
<button class="navbar-toggler @NavButtonCssClass" type="button" data-bs-toggle="collapse" data-bs-target="#navbarCollapse"
aria-controls="navbarCollapse" aria-label="Toggle navigation" @onclick="ToggleNavMenu">
<span class="navbar-toggler-icon"></span>
</button>
<button type="button" class="btn btn-link ml-md-auto" @onclick="@LogoutClick">Se deconnecter</button>
</div>
<div class="collapse navbar-collapse @NavBarCssClass" id="navbarCollapse" @onclick="ToggleNavMenu">
<ul class="navbar-nav me-auto mb-0 mb-md-0 topbar_content" >
<li class="nav-item">
<NavLink class="nav-link" href="List">
<span class="topbar_item">
<img src="/Images/inventory_icon.png" class="topbar_itemimg"/> @Localizer["Inventory"]
</span>
</NavLink>
</li>
<li class="nav-item">
<NavLink class="nav-link" href="counter">
<span class="topbar_item">
<img src="/Images/shop_icon.png" class="topbar_itemimg"/> @Localizer["Shop"]
</span>
</NavLink>
</li>
<span class="img_wrap">
<img class="nav-image" src="Images/CraftSharp-Logo.png" alt="Logo Application"/>
<img class="nav-image" src="/Images/@(Localizer["subtext-img"]).png" width="70%" />
</span>
<li class="nav-item">
<NavLink class="nav-link" href="fetchdata">
<span class="topbar_item">
<img src="/Images/opening_icon.png" class="topbar_itemimg"/> @Localizer["Opening"]
</span>
</NavLink>
</li>
<span class="btn_wrap">
<div class="button"> @Localizer["Login"]</div>
<div class="button"> @Localizer["Register"]</div>
</span>
</ul>
</div>
</div>
</div>
</nav>
</nav>
</div>
@code {
private bool collapseNavMenu = true;

@ -9,7 +9,7 @@ namespace CraftSharp.Shared
public partial class HeaderLayout
{
[Inject]
public IStringLocalizer<Index> Localizer { get; set; }
public IStringLocalizer<HeaderLayout> Localizer { get; set; }
[Inject]
public CustomStateProvider AuthStateProvider { get; set; }
@ -22,12 +22,12 @@ namespace CraftSharp.Shared
void goInscription()
{
navigationManager.NavigateTo("inscription");
NavigationManager.NavigateTo("inscription");
}
void goConnexion()
{
navigationManager.NavigateTo("connexion");
NavigationManager.NavigateTo("connexion");
}
protected override async Task OnParametersSetAsync()

@ -1,32 +1,101 @@

.topbar {
background: url("../Images/nav_back.jpg") top center/cover no-repeat fixed;
align-content: center;
}
.oi {
width: 3rem;
font-size: 1.7rem;
top: -2px;
}
.btn_wrap {
display: flex;
flex-direction: column;
justify-content: space-evenly;
height: 150px;
}
.bar{
display: flex;
}
.nav-item {
height: 150px;
display: flex;
flex-direction: column;
justify-content: center;
transition: transform .2s;
}
.nav-item:hover {
transform: scale(1.1);
}
.topbar_itemimg {
height: 4rem;
}
.img_wrap {
display: flex;
flex-direction: column;
width: 80%;
margin-top: 5%;
position: absolute;
left: 75%;
transform: translate(-50%, 0);
user-select: none;
pointer-events: none;
}
.nav-image {
width: 18rem;
color: #ffffff;
width: 30%;
}
.topbar_item {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.navbar {
background-color: transparent;
overflow: visible;
position: static;
height: 150px;
}
button {
width: 12rem;
nav-link {
height: 300%;
}
.topbar_content {
width: 100%;
display: flex;
justify-content: space-between;
align-items: center;
}
.button {
width: 11rem;
text-decoration: none;
text-align: center;
color: white;
cursor: pointer;
background: url('Images/btn1.png') no-repeat;
background: url('Images/btn1.png') center center/contain no-repeat;
background-size: 100% 100%;
font-family: SilkscreenNormal;
line-height: 26px;
padding-top: 6px;
font-family: Minecraft;
}
button:hover {
background: url('Images/btn2.png') no-repeat;
}
.button:hover {
background: url('Images/btn2.png')center center/contain no-repeat;
background-size: 100% 100%;
}
.nav-item {
font-size: 1.1rem;
@ -61,7 +130,7 @@ button:hover {
color: white;
}
@media (min-width: 641px) {
@media (min-width: 800px) {
.navbar-toggler {
display: none;
}

@ -18,7 +18,7 @@
</div>
</div>
<article class="content px-4">
<article class="content">
@Body
</article>
</main>

Binary file not shown.

After

Width:  |  Height:  |  Size: 620 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 122 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 754 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 57 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Loading…
Cancel
Save