feat & fix : add version 0.17.16.23 , fix respons home page , add changelog
add change log dialog , add home page view modelrelease
parent
5b91275d3e
commit
acb8cfc638
|
@ -0,0 +1,80 @@
|
|||
@using NetinaShop.Domain.Dtos.ResponseDtos
|
||||
<MudDialog DisableSidePadding="true" class="mx-auto">
|
||||
<DialogContent >
|
||||
<MudStack>
|
||||
<MudStack class="mx-10 mt-7 mb-5" Spacing="0">
|
||||
<MudStack Row="true">
|
||||
<MudText Typo="Typo.h5" class="my-auto">ورژن جدید : </MudText>
|
||||
<MudText Typo="Typo.h3" class="font-bold" Color="Color.Success">@AdminChangeLog.Version</MudText>
|
||||
</MudStack>
|
||||
<MudText Typo="Typo.body1">@AdminChangeLog.Description</MudText>
|
||||
</MudStack>
|
||||
<MudContainer>
|
||||
<MudTimeline TimelinePosition="TimelinePosition.Start" DisableModifiers="false">
|
||||
|
||||
|
||||
|
||||
<MudTimelineItem Color="Color.Info" Size="Size.Small">
|
||||
<ItemOpposite>
|
||||
<MudText Color="Color.Info" Typo="Typo.h5">1977</MudText>
|
||||
</ItemOpposite>
|
||||
<ItemContent>
|
||||
<MudCard Outlined="true" Elevation="25">
|
||||
<MudCardContent>
|
||||
<MudText Color="Color.Info" Typo="Typo.h6" GutterBottom="true">ویژگی های جدید</MudText>
|
||||
<MudStack Spacing="0" Row="true" class="flex-wrap">
|
||||
@foreach (var item in AdminChangeLog.Features)
|
||||
{
|
||||
<MudChip Variant="Variant.Outlined" Color="Color.Default">@item</MudChip>
|
||||
}
|
||||
</MudStack>
|
||||
</MudCardContent>
|
||||
</MudCard>
|
||||
</ItemContent>
|
||||
</MudTimelineItem>
|
||||
|
||||
<MudTimelineItem TimelineAlign="TimelineAlign.End" Color="Color.Error" Size="Size.Small">
|
||||
<ItemOpposite>
|
||||
<MudText Color="Color.Error" Typo="Typo.h5">1979</MudText>
|
||||
</ItemOpposite>
|
||||
<ItemContent>
|
||||
<MudCard Outlined="true" Elevation="25">
|
||||
<MudCardContent>
|
||||
<MudText Color="Color.Error" Typo="Typo.h6" GutterBottom="true">مشکلات رفع شده</MudText>
|
||||
<MudStack Spacing="0" Row="true" class="flex-wrap">
|
||||
@foreach (var item in AdminChangeLog.BugFixes)
|
||||
{
|
||||
<MudChip Variant="Variant.Outlined" Color="Color.Default">@item</MudChip>
|
||||
}
|
||||
</MudStack>
|
||||
</MudCardContent>
|
||||
</MudCard>
|
||||
</ItemContent>
|
||||
</MudTimelineItem>
|
||||
|
||||
</MudTimeline>
|
||||
</MudContainer>
|
||||
</MudStack>
|
||||
</DialogContent>
|
||||
<DialogActions>
|
||||
<MudStack Row="true" class="w-full mx-4 mb-2">
|
||||
<MudButton class="w-full" Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="Cancel">بستن</MudButton>
|
||||
</MudStack>
|
||||
</DialogActions>
|
||||
</MudDialog>
|
||||
@code {
|
||||
|
||||
[CascadingParameter]
|
||||
MudDialogInstance MudDialog { get; set; }
|
||||
|
||||
[Parameter]
|
||||
public AdminChangeLogResponseDto AdminChangeLog { get; set; } = new();
|
||||
|
||||
void Cancel() => MudDialog.Cancel();
|
||||
|
||||
protected override Task OnParametersSetAsync()
|
||||
{
|
||||
return base.OnParametersSetAsync();
|
||||
}
|
||||
|
||||
}
|
|
@ -24,4 +24,5 @@ public static class Address
|
|||
public static string PageController => $"{BaseAddress}/page";
|
||||
public static string ScraperController => $"{BaseAddress}/scraper";
|
||||
public static string NewsletterMemberController => $"{BaseAddress}/newsletter/member";
|
||||
public static string DashboardController => $"{BaseAddress}/dashboard";
|
||||
}
|
|
@ -5,8 +5,8 @@
|
|||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
|
||||
<AssemblyVersion>0.10.16.23</AssemblyVersion>
|
||||
<FileVersion>0.10.16.23</FileVersion>
|
||||
<AssemblyVersion>0.17.16.23</AssemblyVersion>
|
||||
<FileVersion>0.17.16.23</FileVersion>
|
||||
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
|
||||
</PropertyGroup>
|
||||
|
||||
|
@ -55,6 +55,7 @@
|
|||
<Using Include="NetinaShop.Common.Models.Api" />
|
||||
<Using Include="NetinaShop.Common.Models.Exception" />
|
||||
<Using Include="NetinaShop.Domain.CommandQueries.Commands" />
|
||||
<Using Include="NetinaShop.Domain.Dtos.DashboardDtos" />
|
||||
<Using Include="NetinaShop.Domain.Dtos.LargDtos" />
|
||||
<Using Include="NetinaShop.Domain.Dtos.RequestDtos" />
|
||||
<Using Include="NetinaShop.Domain.Dtos.SmallDtos" />
|
||||
|
@ -66,4 +67,10 @@
|
|||
<Using Include="System.Collections.ObjectModel" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Content Update="version.json">
|
||||
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
|
||||
</Content>
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -2,70 +2,76 @@
|
|||
@page "/home"
|
||||
@attribute [Microsoft.AspNetCore.Authorization.Authorize]
|
||||
|
||||
<MudStack class="p-8 w-full h-screen overflow-y-scroll bg-[--mud-palette-background-grey]">
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndDown">
|
||||
@inject IDialogService DialogService
|
||||
@inject NavigationManager NavigationManager
|
||||
@inject ISnackbar Snackbar
|
||||
@inject IUserUtility UserUtility
|
||||
@inject IRestWrapper RestWrapper
|
||||
|
||||
<MudStack class="px-0 md:p-5 lg:p-8 w-full h-screen overflow-x-hidden overflow-y-scroll bg-[--mud-palette-background-grey]">
|
||||
<MudHidden Breakpoint="Breakpoint.Xs">
|
||||
<MudGrid>
|
||||
<MudItem xs="12" sm="4" lg="2">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد محصولاتــ</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>1124</b></MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>@ViewModel.PageDto.ProductsCount</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="4" lg="2">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد بلاگــ ها</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-blue-600"><b>845</b></MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-blue-600"><b>@ViewModel.PageDto.BlogsCount</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="4" lg="2">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">فروش های امروز</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-lime-600"><b>125</b></MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-lime-600"><b>@ViewModel.PageDto.TodayOrdersCount</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="4" lg="2">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">فروش های تایید نشده</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-rose-600"><b>10</b></MudText>
|
||||
<MudText Typo="Typo.body1" class="mb-4">تایید نشده</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-rose-600"><b>@ViewModel.PageDto.UnSubmittedOrdersCount</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="4" lg="2">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد برنـــدها</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-gray-600"><b>125</b></MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-gray-600"><b>@ViewModel.PageDto.BrandsCount</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
<MudItem xs="12" sm="4" lg="2">
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد مشترکین</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-purple-600"><b>5632</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-purple-600"><b>@ViewModel.PageDto.SubscribersCount</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>نفر</b></MudText>
|
||||
</MudPaper>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudHidden>
|
||||
<MudHidden Breakpoint="Breakpoint.SmAndUp">
|
||||
<MudStack Row="true" class="h-60 w-screen overflow-x-scroll">
|
||||
<MudStack Row="true" class="whitespace-nowrap overflow-x-scroll w-screen no-scrollbar">
|
||||
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد محصولاتــ</MudText>
|
||||
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-6 ml-16">تعداد محصولاتــ</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>1124</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد محصولاتــ</MudText>
|
||||
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-6 ml-16">تعداد محصولاتــ</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>1124</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
|
||||
<MudPaper class="p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-4">تعداد محصولاتــ</MudText>
|
||||
<MudPaper class="w-fit p-3 m-2 rounded-md" Elevation="2">
|
||||
<MudText Typo="Typo.body1" class="mb-6 ml-16">تعداد محصولاتــ</MudText>
|
||||
<MudText Typo="Typo.h3" Align="Align.Center" class="text-amber-600"><b>1124</b></MudText>
|
||||
<MudText Typo="Typo.h6" Align="Align.Center" class="mb-4 -mt-1"><b>عدد</b></MudText>
|
||||
</MudPaper>
|
||||
|
@ -78,7 +84,8 @@
|
|||
<BaseButtonUi class="w-full rounded-md"
|
||||
Icon="@Icons.Material.Outlined.AddCard"
|
||||
Variant="Variant.Outlined" Color="Color.Default"
|
||||
Content="افزودن محصول جدید" />
|
||||
OnClickCallback="@ViewModel.AddProductClicked"
|
||||
Content="محصول جدید" />
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
|
@ -88,7 +95,8 @@
|
|||
<BaseButtonUi class="w-full rounded-md"
|
||||
Icon="@Icons.Material.Outlined.AddLink"
|
||||
Variant="Variant.Outlined" Color="Color.Default"
|
||||
Content="افزودن بلاگ جدید" />
|
||||
OnClickCallback="@ViewModel.AddBlogClicked"
|
||||
Content="بلاگ جدید" />
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
|
||||
|
@ -98,7 +106,8 @@
|
|||
<BaseButtonUi class="w-full rounded-md"
|
||||
Icon="@Icons.Material.Outlined.AddBusiness"
|
||||
Variant="Variant.Outlined" Color="Color.Default"
|
||||
Content="افزودن برند جدید" />
|
||||
OnClickCallback="@ViewModel.AddBrandClicked"
|
||||
Content="برند جدید" />
|
||||
</MudStack>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
|
@ -152,4 +161,17 @@
|
|||
</MudStack>
|
||||
</MudItem>
|
||||
</MudGrid>
|
||||
</MudStack>
|
||||
</MudStack>
|
||||
@code{
|
||||
|
||||
|
||||
public HomeViewModel ViewModel { get; set; }
|
||||
protected override async Task OnInitializedAsync()
|
||||
{
|
||||
ViewModel = new HomeViewModel(Snackbar, UserUtility, RestWrapper, DialogService);
|
||||
await ViewModel.InitializeAsync();
|
||||
await base.OnInitializedAsync();
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -0,0 +1,81 @@
|
|||
using NetinaShop.Domain.Entities.Brands;
|
||||
|
||||
namespace NetinaShop.AdminPanel.PWA.Pages;
|
||||
|
||||
public class HomeViewModel : BaseViewModel<HomeDashboardDto>
|
||||
{
|
||||
|
||||
private readonly ISnackbar _snackbar;
|
||||
private readonly IUserUtility _userUtility;
|
||||
private readonly IRestWrapper _restWrapper;
|
||||
private readonly IDialogService _dialogService;
|
||||
|
||||
public HomeViewModel(ISnackbar snackbar, IUserUtility userUtility, IRestWrapper restWrapper, IDialogService dialogService)
|
||||
{
|
||||
_snackbar = snackbar;
|
||||
_userUtility = userUtility;
|
||||
_restWrapper = restWrapper;
|
||||
_dialogService = dialogService;
|
||||
}
|
||||
|
||||
public override async Task InitializeAsync()
|
||||
{
|
||||
try
|
||||
{
|
||||
IsProcessing = true;
|
||||
|
||||
var token = await _userUtility.GetBearerTokenAsync();
|
||||
if (token == null)
|
||||
throw new Exception("Token is null");
|
||||
|
||||
var dto = await _restWrapper.DashboardApiRest.GetHomeDashboardAsync(token);
|
||||
PageDto = dto;
|
||||
var changeLog = await _restWrapper.UserRestApi.GetChangeLogAsync(token);
|
||||
if (changeLog.IsNewVersion)
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, NoHeader = true, DisableBackdropClick = true };
|
||||
var parameters = new DialogParameters<ChangeLogDialogBox> { { x => x.AdminChangeLog,changeLog } };
|
||||
await _dialogService.ShowAsync<ChangeLogDialogBox>("", parameters, maxWidth);
|
||||
}
|
||||
|
||||
}
|
||||
catch (ApiException ex)
|
||||
{
|
||||
var exe = await ex.GetContentAsAsync<ApiResult>();
|
||||
_snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
_snackbar.Add(e.Message.Contains("Failed to fetch") ? "اینترنت خود را بررسی نمایید" : e.Message, Severity.Error);
|
||||
}
|
||||
finally
|
||||
{
|
||||
|
||||
IsProcessing = false;
|
||||
}
|
||||
await base.InitializeAsync();
|
||||
}
|
||||
|
||||
|
||||
public async Task AddBlogClicked()
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
||||
await _dialogService.ShowAsync<BlogActionDialogBox>("افزودن بلاگ جدید", maxWidth);
|
||||
}
|
||||
public async Task AddProductClicked()
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Large, FullWidth = true, DisableBackdropClick = true };
|
||||
var dialogResult = await _dialogService.ShowAsync<ProductActionDialogBox>("افزودن محصول جدید", maxWidth);
|
||||
var result = await dialogResult.Result;
|
||||
if (!result.Canceled && result.Data is bool and true)
|
||||
{
|
||||
await InitializeAsync();
|
||||
}
|
||||
}
|
||||
|
||||
public async Task AddBrandClicked()
|
||||
{
|
||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
||||
await _dialogService.ShowAsync<BrandActionDialogBox>("افزودن برند جدید", maxWidth);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
namespace NetinaShop.AdminPanel.PWA.Services.RestServices;
|
||||
|
||||
public interface IDashboardApiRest
|
||||
{
|
||||
[Get("/home")]
|
||||
public Task<HomeDashboardDto> GetHomeDashboardAsync([Header("Authorization")] string authorization);
|
||||
}
|
|
@ -20,4 +20,5 @@ public interface IRestWrapper
|
|||
public IPaymentRestApi PaymentRestApi { get; }
|
||||
public IPageRestApi PageRestApi { get; }
|
||||
public IScraperRestApi ScraperRestApi { get; }
|
||||
public IDashboardApiRest DashboardApiRest { get; }
|
||||
}
|
|
@ -1,4 +1,6 @@
|
|||
namespace NetinaShop.AdminPanel.PWA.Services.RestServices;
|
||||
using NetinaShop.Domain.Dtos.ResponseDtos;
|
||||
|
||||
namespace NetinaShop.AdminPanel.PWA.Services.RestServices;
|
||||
|
||||
public interface IUserRestApi
|
||||
{
|
||||
|
@ -7,6 +9,9 @@ public interface IUserRestApi
|
|||
[Post("")]
|
||||
Task CreateUserAsync([Body] UserActionRequestDto request, [Header("Authorization")] string authorization);
|
||||
|
||||
[Get("/changelog")]
|
||||
Task<AdminChangeLogResponseDto> GetChangeLogAsync([Header("Authorization")] string authorization);
|
||||
|
||||
[Get("/{id}")]
|
||||
Task<ApplicationUserSDto> ReadOne(Guid id, [Header("Authorization")] string authorization);
|
||||
[Get("")]
|
||||
|
|
|
@ -32,4 +32,6 @@ public class RestWrapper : IRestWrapper
|
|||
public IPaymentRestApi PaymentRestApi => RestService.For<IPaymentRestApi>(Address.PaymentController, setting);
|
||||
public IPageRestApi PageRestApi => RestService.For<IPageRestApi>(Address.PageController, setting);
|
||||
public IScraperRestApi ScraperRestApi => RestService.For<IScraperRestApi>(Address.ScraperController, setting);
|
||||
|
||||
public IDashboardApiRest DashboardApiRest => RestService.For<IDashboardApiRest>(Address.DashboardController, setting);
|
||||
}
|
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"version": "0.17.16.23",
|
||||
"versionNumber": 0.101623,
|
||||
"versionName": "چرتکه",
|
||||
"description": "",
|
||||
"features": [
|
||||
"افزودن خبرنامه",
|
||||
"افزودن نام انگلیسی برند",
|
||||
"افزودن دیالوگ اپدیت جدید",
|
||||
"افزودن تخفیف همکاری در فروش",
|
||||
"افزودن قابلیت تغییر نمایش سریع کالا"
|
||||
],
|
||||
"bugFixes": [
|
||||
"حل مشکلات امنیتی",
|
||||
"حل مشکل ویرایش کالا",
|
||||
"حل مشکل فیلترهای کالاها",
|
||||
"حل مشکل رسپانسیو صفحه اصلی",
|
||||
"حل مشکل انتخاب دسته بندی در صفحه کالاها"
|
||||
]
|
||||
}
|
|
@ -94,6 +94,16 @@
|
|||
}
|
||||
}
|
||||
|
||||
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||
.no-scrollbar::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Hide scrollbar for IE, Edge and Firefox */
|
||||
.no-scrollbar {
|
||||
-ms-overflow-style: none; /* IE and Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
}
|
||||
|
||||
.mud-dialog-title {
|
||||
font-family: iranyekan !important;
|
||||
|
|
|
@ -1064,6 +1064,10 @@ input:checked + .toggle-bg {
|
|||
margin-left: 0.25rem;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
.mx-10 {
|
||||
margin-left: 2.5rem;
|
||||
margin-right: 2.5rem;
|
||||
}
|
||||
.mx-3 {
|
||||
margin-left: 0.75rem;
|
||||
margin-right: 0.75rem;
|
||||
|
@ -1132,9 +1136,15 @@ input:checked + .toggle-bg {
|
|||
.mb-5 {
|
||||
margin-bottom: 1.25rem;
|
||||
}
|
||||
.mb-6 {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
.mb-8 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
.ml-16 {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
.mr-1 {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
@ -1165,6 +1175,9 @@ input:checked + .toggle-bg {
|
|||
.mt-6 {
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
.mt-7 {
|
||||
margin-top: 1.75rem;
|
||||
}
|
||||
.mt-8 {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
@ -1222,9 +1235,6 @@ input:checked + .toggle-bg {
|
|||
.h-6 {
|
||||
height: 1.5rem;
|
||||
}
|
||||
.h-60 {
|
||||
height: 15rem;
|
||||
}
|
||||
.h-64 {
|
||||
height: 16rem;
|
||||
}
|
||||
|
@ -1301,6 +1311,10 @@ input:checked + .toggle-bg {
|
|||
.w-96 {
|
||||
width: 24rem;
|
||||
}
|
||||
.w-fit {
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
}
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -1420,12 +1434,18 @@ input:checked + .toggle-bg {
|
|||
.overflow-hidden {
|
||||
overflow: hidden;
|
||||
}
|
||||
.overflow-x-hidden {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
.overflow-x-scroll {
|
||||
overflow-x: scroll;
|
||||
}
|
||||
.overflow-y-scroll {
|
||||
overflow-y: scroll;
|
||||
}
|
||||
.whitespace-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
.rounded-full {
|
||||
border-radius: 9999px;
|
||||
}
|
||||
|
@ -1582,6 +1602,10 @@ input:checked + .toggle-bg {
|
|||
.p-8 {
|
||||
padding: 2rem;
|
||||
}
|
||||
.px-0 {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
.px-1 {
|
||||
padding-left: 0.25rem;
|
||||
padding-right: 0.25rem;
|
||||
|
@ -1862,6 +1886,16 @@ input:checked + .toggle-bg {
|
|||
url('../assets/fonts/ttf/iranyekanwebextrablackfanum.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||
.no-scrollbar::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Hide scrollbar for IE, Edge and Firefox */
|
||||
.no-scrollbar {
|
||||
-ms-overflow-style: none; /* IE and Edge */
|
||||
scrollbar-width: none; /* Firefox */
|
||||
}
|
||||
|
||||
.mud-dialog-title {
|
||||
font-family: iranyekan !important;
|
||||
|
@ -2073,6 +2107,10 @@ code {
|
|||
border-top-right-radius: 0px;
|
||||
}
|
||||
|
||||
.md\:p-5 {
|
||||
padding: 1.25rem;
|
||||
}
|
||||
|
||||
.md\:px-10 {
|
||||
padding-left: 2.5rem;
|
||||
padding-right: 2.5rem;
|
||||
|
@ -2105,6 +2143,10 @@ code {
|
|||
width: 38rem;
|
||||
}
|
||||
|
||||
.lg\:p-8 {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.lg\:px-20 {
|
||||
padding-left: 5rem;
|
||||
padding-right: 5rem;
|
||||
|
|
|
@ -1140,6 +1140,11 @@ input:checked + .toggle-bg {
|
|||
margin-right: 0.25rem;
|
||||
}
|
||||
|
||||
.mx-10 {
|
||||
margin-left: 2.5rem;
|
||||
margin-right: 2.5rem;
|
||||
}
|
||||
|
||||
.mx-3 {
|
||||
margin-left: 0.75rem;
|
||||
margin-right: 0.75rem;
|
||||
|
@ -1228,10 +1233,18 @@ input:checked + .toggle-bg {
|
|||
margin-bottom: 1.25rem;
|
||||
}
|
||||
|
||||
.mb-6 {
|
||||
margin-bottom: 1.5rem;
|
||||
}
|
||||
|
||||
.mb-8 {
|
||||
margin-bottom: 2rem;
|
||||
}
|
||||
|
||||
.ml-16 {
|
||||
margin-left: 4rem;
|
||||
}
|
||||
|
||||
.mr-1 {
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
|
@ -1272,6 +1285,10 @@ input:checked + .toggle-bg {
|
|||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.mt-7 {
|
||||
margin-top: 1.75rem;
|
||||
}
|
||||
|
||||
.mt-8 {
|
||||
margin-top: 2rem;
|
||||
}
|
||||
|
@ -1347,10 +1364,6 @@ input:checked + .toggle-bg {
|
|||
height: 1.5rem;
|
||||
}
|
||||
|
||||
.h-60 {
|
||||
height: 15rem;
|
||||
}
|
||||
|
||||
.h-64 {
|
||||
height: 16rem;
|
||||
}
|
||||
|
@ -1452,6 +1465,11 @@ input:checked + .toggle-bg {
|
|||
width: 24rem;
|
||||
}
|
||||
|
||||
.w-fit {
|
||||
width: -moz-fit-content;
|
||||
width: fit-content;
|
||||
}
|
||||
|
||||
.w-full {
|
||||
width: 100%;
|
||||
}
|
||||
|
@ -1606,6 +1624,10 @@ input:checked + .toggle-bg {
|
|||
overflow: hidden;
|
||||
}
|
||||
|
||||
.overflow-x-hidden {
|
||||
overflow-x: hidden;
|
||||
}
|
||||
|
||||
.overflow-x-scroll {
|
||||
overflow-x: scroll;
|
||||
}
|
||||
|
@ -1614,6 +1636,10 @@ input:checked + .toggle-bg {
|
|||
overflow-y: scroll;
|
||||
}
|
||||
|
||||
.whitespace-nowrap {
|
||||
white-space: nowrap;
|
||||
}
|
||||
|
||||
.rounded-full {
|
||||
border-radius: 9999px;
|
||||
}
|
||||
|
@ -1815,6 +1841,11 @@ input:checked + .toggle-bg {
|
|||
padding: 2rem;
|
||||
}
|
||||
|
||||
.px-0 {
|
||||
padding-left: 0px;
|
||||
padding-right: 0px;
|
||||
}
|
||||
|
||||
.px-1 {
|
||||
padding-left: 0.25rem;
|
||||
padding-right: 0.25rem;
|
||||
|
@ -2179,6 +2210,21 @@ input:checked + .toggle-bg {
|
|||
url('../assets/fonts/ttf/iranyekanwebextrablackfanum.ttf') format('truetype');
|
||||
}
|
||||
|
||||
/* Hide scrollbar for Chrome, Safari and Opera */
|
||||
|
||||
.no-scrollbar::-webkit-scrollbar {
|
||||
display: none;
|
||||
}
|
||||
|
||||
/* Hide scrollbar for IE, Edge and Firefox */
|
||||
|
||||
.no-scrollbar {
|
||||
-ms-overflow-style: none;
|
||||
/* IE and Edge */
|
||||
scrollbar-width: none;
|
||||
/* Firefox */
|
||||
}
|
||||
|
||||
.mud-dialog-title {
|
||||
font-family: iranyekan !important;
|
||||
}
|
||||
|
@ -2387,6 +2433,10 @@ code {
|
|||
border-top-right-radius: 0px;
|
||||
}
|
||||
|
||||
.md\:p-5 {
|
||||
padding: 1.25rem;
|
||||
}
|
||||
|
||||
.md\:px-10 {
|
||||
padding-left: 2.5rem;
|
||||
padding-right: 2.5rem;
|
||||
|
@ -2418,6 +2468,10 @@ code {
|
|||
width: 38rem;
|
||||
}
|
||||
|
||||
.lg\:p-8 {
|
||||
padding: 2rem;
|
||||
}
|
||||
|
||||
.lg\:px-20 {
|
||||
padding-left: 5rem;
|
||||
padding-right: 5rem;
|
||||
|
|
Loading…
Reference in New Issue