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