Compare commits
No commits in common. "master" and "subProduct" have entirely different histories.
master
...
subProduct
|
@ -136,32 +136,6 @@
|
||||||
<MudSwitch @bind-Value="@ViewModel.IsProductEnable" class="mt-2" Size="Size.Large" T="bool" Label="تخفیف برای محصول خاص" Color="Color.Info" />
|
<MudSwitch @bind-Value="@ViewModel.IsProductEnable" class="mt-2" Size="Size.Large" T="bool" Label="تخفیف برای محصول خاص" Color="Color.Info" />
|
||||||
</MudItem>
|
</MudItem>
|
||||||
|
|
||||||
<MudItem sm="7">
|
|
||||||
|
|
||||||
<MudAutocomplete Disabled="@ViewModel.IsProductEnable.Not()" ToStringFunc="dto => dto.PersianName" @bind-Value="@ViewModel.SelectedBrand"
|
|
||||||
SearchFunc="ViewModel.SearchBrand"
|
|
||||||
T="BrandSDto"
|
|
||||||
Label="برندها"
|
|
||||||
Variant="Variant.Outlined">
|
|
||||||
<ProgressIndicatorInPopoverTemplate>
|
|
||||||
<MudList Clickable="false">
|
|
||||||
<MudListItem>
|
|
||||||
<div class="flex flex-row w-full mx-auto">
|
|
||||||
<MudProgressCircular class="my-auto mr-1 -ml-4" Size="Size.Small" Indeterminate="true" />
|
|
||||||
<p class="font-bold my-1 mx-auto text-md">منتظر بمانید</p>
|
|
||||||
</div>
|
|
||||||
</MudListItem>
|
|
||||||
</MudList>
|
|
||||||
</ProgressIndicatorInPopoverTemplate>
|
|
||||||
<ItemTemplate Context="e">
|
|
||||||
<p>@e.PersianName</p>
|
|
||||||
</ItemTemplate>
|
|
||||||
</MudAutocomplete>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="5">
|
|
||||||
<MudSwitch @bind-Value="@ViewModel.IsProductEnable" class="mt-2" Size="Size.Large" T="bool" Label="تخفیف برای برند خاص" Color="Color.Info" />
|
|
||||||
</MudItem>
|
|
||||||
|
|
||||||
<MudItem sm="7">
|
<MudItem sm="7">
|
||||||
</MudItem>
|
</MudItem>
|
||||||
<MudItem sm="5">
|
<MudItem sm="5">
|
||||||
|
|
|
@ -40,23 +40,8 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
IsEditing = true;
|
IsEditing = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _isBrandEnable;
|
|
||||||
public bool IsBrandEnable
|
|
||||||
{
|
|
||||||
get => _isBrandEnable;
|
|
||||||
set
|
|
||||||
{
|
|
||||||
_isBrandEnable = value;
|
|
||||||
if (_isBrandEnable)
|
|
||||||
{
|
|
||||||
IsCategoryEnable = false;
|
|
||||||
IsProductEnable = false;
|
|
||||||
IsAllEnable = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private bool _isProductEnable;
|
private bool _isProductEnable;
|
||||||
|
|
||||||
public bool IsProductEnable
|
public bool IsProductEnable
|
||||||
{
|
{
|
||||||
get => _isProductEnable;
|
get => _isProductEnable;
|
||||||
|
@ -66,12 +51,10 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
if (_isProductEnable)
|
if (_isProductEnable)
|
||||||
{
|
{
|
||||||
IsCategoryEnable = false;
|
IsCategoryEnable = false;
|
||||||
IsBrandEnable = false;
|
|
||||||
IsAllEnable = false;
|
IsAllEnable = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private bool _isCategoryEnable;
|
private bool _isCategoryEnable;
|
||||||
public bool IsCategoryEnable
|
public bool IsCategoryEnable
|
||||||
{
|
{
|
||||||
|
@ -82,7 +65,6 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
if (_isCategoryEnable)
|
if (_isCategoryEnable)
|
||||||
{
|
{
|
||||||
IsProductEnable = false;
|
IsProductEnable = false;
|
||||||
IsBrandEnable = false;
|
|
||||||
IsAllEnable = false;
|
IsAllEnable = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -97,7 +79,6 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
if (_isAllEnable)
|
if (_isAllEnable)
|
||||||
{
|
{
|
||||||
IsCategoryEnable = false;
|
IsCategoryEnable = false;
|
||||||
IsBrandEnable = false;
|
|
||||||
IsProductEnable = false;
|
IsProductEnable = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -142,10 +123,6 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
if (PageDto.CategoryId != default)
|
if (PageDto.CategoryId != default)
|
||||||
SelectedCategory = new ProductCategorySDto { Id = PageDto.CategoryId, Name = PageDto.CategoryName };
|
SelectedCategory = new ProductCategorySDto { Id = PageDto.CategoryId, Name = PageDto.CategoryName };
|
||||||
|
|
||||||
if (PageDto.ProductId != default)
|
|
||||||
SelectedProduct = new ProductSDto { Id = PageDto.ProductId, PersianName = PageDto.ProductName };
|
|
||||||
|
|
||||||
|
|
||||||
if (PageDto.ProductId != default)
|
if (PageDto.ProductId != default)
|
||||||
SelectedProduct = new ProductSDto { Id = PageDto.ProductId, PersianName = PageDto.ProductName };
|
SelectedProduct = new ProductSDto { Id = PageDto.ProductId, PersianName = PageDto.ProductName };
|
||||||
|
|
||||||
|
@ -181,6 +158,8 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public void Cancel() => _mudDialog.Cancel();
|
public void Cancel() => _mudDialog.Cancel();
|
||||||
|
|
||||||
public async Task SubmitCreateAsync()
|
public async Task SubmitCreateAsync()
|
||||||
|
@ -206,13 +185,6 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
throw new Exception("کالا مورد نظر را برای تخفیف انتخاب نمایید");
|
throw new Exception("کالا مورد نظر را برای تخفیف انتخاب نمایید");
|
||||||
PageDto.ProductId = SelectedProduct.Id;
|
PageDto.ProductId = SelectedProduct.Id;
|
||||||
}
|
}
|
||||||
else if (IsBrandEnable)
|
|
||||||
{
|
|
||||||
PageDto.Type = DiscountType.Brand;
|
|
||||||
if (SelectedBrand == null)
|
|
||||||
throw new Exception("برند مورد نظر را برای تخفیف انتخاب نمایید");
|
|
||||||
PageDto.BrandId = SelectedBrand.Id;
|
|
||||||
}
|
|
||||||
|
|
||||||
var token = await _userUtility.GetBearerTokenAsync();
|
var token = await _userUtility.GetBearerTokenAsync();
|
||||||
if (token == null)
|
if (token == null)
|
||||||
|
@ -243,8 +215,7 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
PageDto.IsSpecialOffer,
|
PageDto.IsSpecialOffer,
|
||||||
PageDto.IsForFirstPurchase,
|
PageDto.IsForFirstPurchase,
|
||||||
PageDto.ProductId,
|
PageDto.ProductId,
|
||||||
PageDto.CategoryId,
|
PageDto.CategoryId);
|
||||||
PageDto.BrandId);
|
|
||||||
await _restWrapper.CrudDtoApiRest<Discount,DiscountLDto, Guid>(Address.DiscountController).Create<CreateDiscountCommand>(request, token);
|
await _restWrapper.CrudDtoApiRest<Discount,DiscountLDto, Guid>(Address.DiscountController).Create<CreateDiscountCommand>(request, token);
|
||||||
|
|
||||||
_snackbar.Add($"ساخت تخفیف با موفقیت انجام شد", Severity.Success);
|
_snackbar.Add($"ساخت تخفیف با موفقیت انجام شد", Severity.Success);
|
||||||
|
@ -272,7 +243,6 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
IsProcessing = false;
|
IsProcessing = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task SubmitEditAsync()
|
public async Task SubmitEditAsync()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -299,13 +269,6 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
throw new Exception("کالا مورد نظر را برای تخفیف انتخاب نمایید");
|
throw new Exception("کالا مورد نظر را برای تخفیف انتخاب نمایید");
|
||||||
PageDto.ProductId = SelectedProduct.Id;
|
PageDto.ProductId = SelectedProduct.Id;
|
||||||
}
|
}
|
||||||
else if (IsBrandEnable)
|
|
||||||
{
|
|
||||||
PageDto.Type = DiscountType.Brand;
|
|
||||||
if (SelectedBrand == null)
|
|
||||||
throw new Exception("برند مورد نظر را برای تخفیف انتخاب نمایید");
|
|
||||||
PageDto.BrandId = SelectedBrand.Id;
|
|
||||||
}
|
|
||||||
|
|
||||||
var token = await _userUtility.GetBearerTokenAsync();
|
var token = await _userUtility.GetBearerTokenAsync();
|
||||||
if (token == null)
|
if (token == null)
|
||||||
|
@ -334,8 +297,7 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
PageDto.IsSpecialOffer,
|
PageDto.IsSpecialOffer,
|
||||||
PageDto.IsForFirstPurchase,
|
PageDto.IsForFirstPurchase,
|
||||||
PageDto.ProductId,
|
PageDto.ProductId,
|
||||||
PageDto.CategoryId,
|
PageDto.CategoryId);
|
||||||
PageDto.BrandId);
|
|
||||||
await _restWrapper.CrudApiRest<Discount, Guid>(Address.DiscountController).Update<UpdateDiscountCommand>(request, token);
|
await _restWrapper.CrudApiRest<Discount, Guid>(Address.DiscountController).Update<UpdateDiscountCommand>(request, token);
|
||||||
_snackbar.Add($"ویرایش تخفیف با موفقیت انجام شد", Severity.Success);
|
_snackbar.Add($"ویرایش تخفیف با موفقیت انجام شد", Severity.Success);
|
||||||
_mudDialog.Close(true);
|
_mudDialog.Close(true);
|
||||||
|
@ -416,29 +378,4 @@ public class DiscountActionDialogBoxViewModel : BaseViewModel<DiscountLDto>
|
||||||
return _products;
|
return _products;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<BrandSDto> _brands = new List<BrandSDto>();
|
|
||||||
public BrandSDto? SelectedBrand;
|
|
||||||
public async Task<IEnumerable<BrandSDto>> SearchBrand(string brand)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (brand.IsNullOrEmpty())
|
|
||||||
_brands = await _restWrapper.BrandRestApi.ReadAll(0);
|
|
||||||
else
|
|
||||||
_brands = await _restWrapper.BrandRestApi.ReadAll(brand);
|
|
||||||
return _brands;
|
|
||||||
}
|
|
||||||
catch (ApiException ex)
|
|
||||||
{
|
|
||||||
var exe = await ex.GetContentAsAsync<ApiResult>();
|
|
||||||
_snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error);
|
|
||||||
return _brands;
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
_snackbar.Add(e.Message, Severity.Error);
|
|
||||||
return _brands;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -1,130 +0,0 @@
|
||||||
@inject ISnackbar Snackbar
|
|
||||||
@inject IRestWrapper RestWrapper
|
|
||||||
@inject IUserUtility UserUtility
|
|
||||||
@inject IDialogService DialogService
|
|
||||||
|
|
||||||
<MudDialog DisableSidePadding="true" class="mx-auto">
|
|
||||||
<DialogContent>
|
|
||||||
<MudContainer class="max-h-[30rem]" Style="overflow-y: scroll">
|
|
||||||
<MudStack>
|
|
||||||
<MudDivider class="-mt-3" />
|
|
||||||
<MudStack Spacing="0">
|
|
||||||
<MudText Typo="Typo.h6"><b>اطلاعات کلی</b></MudText>
|
|
||||||
<MudText Typo="Typo.caption">اطلاعات کلی روش ارسال را به دقت وارد کنید</MudText>
|
|
||||||
</MudStack>
|
|
||||||
|
|
||||||
<MudGrid>
|
|
||||||
<MudItem sm="12" md="6">
|
|
||||||
<MudTextField T="string" Label="نام" @bind-Value="@ViewModel.PageDto.Title" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="6">
|
|
||||||
<MudTextField T="string" Label="آدرس صفحه" @bind-Value="@ViewModel.PageDto.Slug" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
|
|
||||||
<MudItem sm="12" md="6">
|
|
||||||
<MudSelect T="bool" @bind-Value="@ViewModel.PageDto.Indexing" Label="ایا صفحه ایندکس شور ؟" ToStringFunc="b=>b.ToPersianString()" Variant="Variant.Outlined" AnchorOrigin="Origin.BottomCenter">
|
|
||||||
<MudSelectItem T="bool" Value="false" />
|
|
||||||
<MudSelectItem T="bool" Value="true" />
|
|
||||||
</MudSelect>
|
|
||||||
</MudItem>
|
|
||||||
|
|
||||||
</MudGrid>
|
|
||||||
|
|
||||||
<MudStack Row="true">
|
|
||||||
<MudStack Spacing="0" class="mt-3">
|
|
||||||
<MudText Typo="Typo.h6"><b>سکشن ها</b></MudText>
|
|
||||||
<MudText Typo="Typo.caption">اطلاعات سکشن ها را می توانید تغییر دهید</MudText>
|
|
||||||
</MudStack>
|
|
||||||
<MudSpacer />
|
|
||||||
<MudButton Variant="Variant.Filled"
|
|
||||||
DisableElevation="true"
|
|
||||||
StartIcon="@Icons.Material.Outlined.Add"
|
|
||||||
Color="Color.Secondary"
|
|
||||||
OnClick="@ViewModel.AddSection"
|
|
||||||
class="my-auto">افزودن سکشن</MudButton>
|
|
||||||
</MudStack>
|
|
||||||
<MudGrid>
|
|
||||||
<MudItem sm="12">
|
|
||||||
<MudDataGrid Items="@ViewModel.PageDto.Sections"
|
|
||||||
T="BasePageSection"
|
|
||||||
Elevation="0"
|
|
||||||
Outlined="true"
|
|
||||||
Bordered="true"
|
|
||||||
Striped="true"
|
|
||||||
Filterable="false"
|
|
||||||
SortMode="@SortMode.None"
|
|
||||||
Groupable="false">
|
|
||||||
<Columns>
|
|
||||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.Title" Title="عنوان" />
|
|
||||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.CTAText" Title="عنوان دکمه" />
|
|
||||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.CTARoute" Title="ادرس دکمه" />
|
|
||||||
<PropertyColumn T="BasePageSection" TProperty="BasePageSectionType" Property="x => x.Type" Title="نوع سکشن" />
|
|
||||||
<PropertyColumn T="BasePageSection" TProperty="string" Property="x => x.Query" Title="کوئری" />
|
|
||||||
<TemplateColumn T="BasePageSection" CellClass="d-flex justify-end">
|
|
||||||
<CellTemplate>
|
|
||||||
<MudStack Row>
|
|
||||||
<MudButton DisableElevation="true"
|
|
||||||
Size="@Size.Small"
|
|
||||||
Variant="@Variant.Filled"
|
|
||||||
OnClick="()=>ViewModel.PageDto.Sections.Remove(context.Item)"
|
|
||||||
Color="@Color.Error"
|
|
||||||
StartIcon="@Icons.Material.Outlined.Delete">حذف</MudButton>
|
|
||||||
|
|
||||||
<MudButton DisableElevation="true"
|
|
||||||
Size="@Size.Small"
|
|
||||||
Variant="@Variant.Filled"
|
|
||||||
OnClick="async()=>await ViewModel.EditSection(context.Item)"
|
|
||||||
Color="@Color.Info"
|
|
||||||
StartIcon="@Icons.Material.Outlined.Edit">ویرایش</MudButton>
|
|
||||||
</MudStack>
|
|
||||||
</CellTemplate>
|
|
||||||
</TemplateColumn>
|
|
||||||
</Columns>
|
|
||||||
</MudDataGrid>
|
|
||||||
</MudItem>
|
|
||||||
</MudGrid>
|
|
||||||
</MudStack>
|
|
||||||
</MudContainer>
|
|
||||||
</DialogContent>
|
|
||||||
<DialogActions>
|
|
||||||
<MudStack Row="true" class="w-full mx-4 mb-2">
|
|
||||||
|
|
||||||
@if (ViewModel.IsEditing)
|
|
||||||
{
|
|
||||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
|
||||||
Icon="@Icons.Material.Outlined.Check"
|
|
||||||
Variant="Variant.Filled" Color="Color.Success"
|
|
||||||
Content="ثبت ویرایش" OnClickCallback="@ViewModel.SubmitEditAsync" />
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
|
||||||
Icon="@Icons.Material.Outlined.Check"
|
|
||||||
Variant="Variant.Filled" Color="Color.Success"
|
|
||||||
Content="تایید" OnClickCallback="@ViewModel.SubmitCreateAsync" />
|
|
||||||
}
|
|
||||||
<MudSpacer />
|
|
||||||
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="@ViewModel.Cancel">بستن</MudButton>
|
|
||||||
</MudStack>
|
|
||||||
</DialogActions>
|
|
||||||
</MudDialog>
|
|
||||||
@code {
|
|
||||||
|
|
||||||
[CascadingParameter]
|
|
||||||
MudDialogInstance MudDialog { get; set; }
|
|
||||||
|
|
||||||
[Parameter]
|
|
||||||
public BasePageSDto? Page { get; set; }
|
|
||||||
|
|
||||||
public PageActionDialogBoxViewModel ViewModel { get; set; }
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
if (Page == null)
|
|
||||||
ViewModel = new PageActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog);
|
|
||||||
else
|
|
||||||
ViewModel = new PageActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog, Page);
|
|
||||||
await ViewModel.InitializeAsync();
|
|
||||||
await base.OnInitializedAsync();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,215 +0,0 @@
|
||||||
using Netina.Domain.Entities.Blogs;
|
|
||||||
using Netina.Domain.Entities.Warehouses;
|
|
||||||
using System.Reflection.Metadata;
|
|
||||||
|
|
||||||
namespace Netina.AdminPanel.PWA.Dialogs;
|
|
||||||
|
|
||||||
public class PageActionDialogBoxViewModel : BaseViewModel<BasePageLDto>
|
|
||||||
{
|
|
||||||
private readonly ISnackbar _snackbar;
|
|
||||||
private readonly IRestWrapper _restWrapper;
|
|
||||||
private readonly IUserUtility _userUtility;
|
|
||||||
private readonly IDialogService _dialogService;
|
|
||||||
private readonly MudDialogInstance _mudDialog;
|
|
||||||
|
|
||||||
|
|
||||||
public PageActionDialogBoxViewModel(ISnackbar snackbar,
|
|
||||||
IRestWrapper restWrapper,
|
|
||||||
IUserUtility userUtility,
|
|
||||||
IDialogService dialogService,
|
|
||||||
MudDialogInstance mudDialog) : base(userUtility)
|
|
||||||
{
|
|
||||||
_snackbar = snackbar;
|
|
||||||
_restWrapper = restWrapper;
|
|
||||||
_userUtility = userUtility;
|
|
||||||
_dialogService = dialogService;
|
|
||||||
_mudDialog = mudDialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PageActionDialogBoxViewModel(ISnackbar snackbar,
|
|
||||||
IRestWrapper restWrapper,
|
|
||||||
IUserUtility userUtility,
|
|
||||||
IDialogService dialogService,
|
|
||||||
MudDialogInstance mudDialog,
|
|
||||||
BasePageSDto page) : base(userUtility)
|
|
||||||
{
|
|
||||||
_snackbar = snackbar;
|
|
||||||
_restWrapper = restWrapper;
|
|
||||||
_userUtility = userUtility;
|
|
||||||
_dialogService = dialogService;
|
|
||||||
_mudDialog = mudDialog;
|
|
||||||
IsEditing = true;
|
|
||||||
PageId = page.Id;
|
|
||||||
}
|
|
||||||
public override async Task InitializeAsync()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
IsProcessing = true;
|
|
||||||
var token = await _userUtility.GetBearerTokenAsync();
|
|
||||||
if (token == null)
|
|
||||||
throw new Exception("Token is null");
|
|
||||||
var pages = await _restWrapper.PageRestApi.ReadById(PageId, token);
|
|
||||||
PageDto = pages;
|
|
||||||
}
|
|
||||||
catch (ApiException e)
|
|
||||||
{
|
|
||||||
var exe = await e.GetContentAsAsync<ApiResult>();
|
|
||||||
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_snackbar.Add(ex.Message, Severity.Error);
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
IsProcessing = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
await base.InitializeAsync();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public bool IsEditing = false;
|
|
||||||
public Guid PageId { get; set; }
|
|
||||||
|
|
||||||
public void Cancel() => _mudDialog.Cancel();
|
|
||||||
|
|
||||||
public async Task AddSection()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
|
||||||
var dialog = await _dialogService.ShowAsync<PageSectionActionDialogBox>("افزودن سکشن", maxWidth);
|
|
||||||
var result = await dialog.Result;
|
|
||||||
var file = result.Data;
|
|
||||||
if (file is BasePageSection section)
|
|
||||||
PageDto.Sections.Add(section);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_snackbar.Add(ex.Message, Severity.Error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task EditSection(BasePageSection sec)
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
|
|
||||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
|
||||||
var parameters = new DialogParameters<PageSectionActionDialogBox>();
|
|
||||||
parameters.Add(x => x.Page, sec);
|
|
||||||
var dialog = await _dialogService.ShowAsync<PageSectionActionDialogBox>("ویرایش سکشن",parameters, maxWidth);
|
|
||||||
var result = await dialog.Result;
|
|
||||||
var file = result.Data;
|
|
||||||
if (file is BasePageSection section)
|
|
||||||
{
|
|
||||||
PageDto.Sections.Remove(sec);
|
|
||||||
PageDto.Sections.Add(section);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
_snackbar.Add(ex.Message, Severity.Error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task SubmitEditAsync()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
IsProcessing = true;
|
|
||||||
if (PageDto.Id == default)
|
|
||||||
throw new Exception("Id is null !");
|
|
||||||
|
|
||||||
var token = await _userUtility.GetBearerTokenAsync();
|
|
||||||
if (token == null)
|
|
||||||
throw new Exception("Token is null");
|
|
||||||
|
|
||||||
if (PageDto.Title.IsNullOrEmpty())
|
|
||||||
throw new Exception("نام را وارد کنید");
|
|
||||||
|
|
||||||
var request = new PageActionRequestDto
|
|
||||||
{
|
|
||||||
Id = PageDto.Id,
|
|
||||||
Title = PageDto.Title,
|
|
||||||
Description = PageDto.Description,
|
|
||||||
Content = PageDto.Content,
|
|
||||||
IsCustomPage = PageDto.IsCustomPage,
|
|
||||||
IsHtmlBasePage = PageDto.IsHtmlBasePage,
|
|
||||||
Slug = PageDto.Slug,
|
|
||||||
Data = PageDto.Data,
|
|
||||||
Indexing = PageDto.Indexing,
|
|
||||||
Sections = PageDto.Sections
|
|
||||||
};
|
|
||||||
await _restWrapper.CrudApiRest<Shipping, Guid>(Address.PageController).Update<PageActionRequestDto>(request, token);
|
|
||||||
_snackbar.Add($"ویرایش {PageDto.Title} با موفقیت انجام شد", Severity.Success);
|
|
||||||
_mudDialog.Close(DialogResult.Ok(true));
|
|
||||||
}
|
|
||||||
catch (ApiException ex)
|
|
||||||
{
|
|
||||||
var exe = await ex.GetContentAsAsync<ApiResult>();
|
|
||||||
_snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error);
|
|
||||||
_mudDialog.Cancel();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
_snackbar.Add(e.Message, Severity.Error);
|
|
||||||
_mudDialog.Cancel();
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
|
|
||||||
IsProcessing = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task SubmitCreateAsync()
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
IsProcessing = true;
|
|
||||||
|
|
||||||
var token = await _userUtility.GetBearerTokenAsync();
|
|
||||||
if (token == null)
|
|
||||||
throw new Exception("Token is null");
|
|
||||||
|
|
||||||
if (PageDto.Title.IsNullOrEmpty())
|
|
||||||
throw new Exception("نام را وارد کنید");
|
|
||||||
|
|
||||||
var request = new PageActionRequestDto
|
|
||||||
{
|
|
||||||
Title = PageDto.Title,
|
|
||||||
Description = PageDto.Description,
|
|
||||||
Content = PageDto.Content,
|
|
||||||
IsCustomPage = PageDto.IsCustomPage,
|
|
||||||
IsHtmlBasePage = PageDto.IsHtmlBasePage,
|
|
||||||
Slug = PageDto.Slug,
|
|
||||||
Data = PageDto.Data,
|
|
||||||
Indexing = PageDto.Indexing,
|
|
||||||
Sections = PageDto.Sections
|
|
||||||
};
|
|
||||||
await _restWrapper.CrudApiRest<Shipping, Guid>(Address.PageController).Create<PageActionRequestDto>(request, token);
|
|
||||||
_snackbar.Add($"ساخت {PageDto.Title} با موفقیت انجام شد", Severity.Success);
|
|
||||||
_mudDialog.Close(DialogResult.Ok(true));
|
|
||||||
}
|
|
||||||
catch (ApiException ex)
|
|
||||||
{
|
|
||||||
var exe = await ex.GetContentAsAsync<ApiResult>();
|
|
||||||
_snackbar.Add(exe != null ? exe.Message : ex.Content, Severity.Error);
|
|
||||||
_mudDialog.Cancel();
|
|
||||||
}
|
|
||||||
catch (Exception e)
|
|
||||||
{
|
|
||||||
_snackbar.Add(e.Message, Severity.Error);
|
|
||||||
_mudDialog.Cancel();
|
|
||||||
}
|
|
||||||
finally
|
|
||||||
{
|
|
||||||
|
|
||||||
IsProcessing = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,150 +0,0 @@
|
||||||
@inject ISnackbar Snackbar
|
|
||||||
@inject IRestWrapper RestWrapper
|
|
||||||
@inject IUserUtility UserUtility
|
|
||||||
@inject IDialogService DialogService
|
|
||||||
|
|
||||||
<MudDialog DisableSidePadding="true" class="mx-auto">
|
|
||||||
<DialogContent>
|
|
||||||
<MudContainer class="max-h-[30rem]" Style="overflow-y: scroll">
|
|
||||||
<MudStack>
|
|
||||||
<MudDivider class="-mt-3" />
|
|
||||||
<MudStack Spacing="0">
|
|
||||||
<MudText Typo="Typo.h6"><b>اطلاعات کلی</b></MudText>
|
|
||||||
<MudText Typo="Typo.caption">اطلاعات کلی سکشن را با دقت وارد کنید</MudText>
|
|
||||||
</MudStack>
|
|
||||||
|
|
||||||
<MudGrid>
|
|
||||||
<MudItem sm="12" md="6" lg="4">
|
|
||||||
<MudTextField T="string" Label="عنوان سکشن" @bind-Value="@ViewModel.PageDto.Title" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="6" lg="4">
|
|
||||||
<MudTextField T="string" Label="عنوان دکمه" @bind-Value="@ViewModel.PageDto.CTAText" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="6" lg="4">
|
|
||||||
<MudTextField T="string" Label="آدرس دکمه" @bind-Value="@ViewModel.PageDto.CTARoute" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12">
|
|
||||||
<MudTextField T="string" Label="توضیحاتــ" @bind-Value="@ViewModel.PageDto.Description" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="4">
|
|
||||||
|
|
||||||
<MudSelect Variant="Variant.Outlined" T="BasePageSectionType"
|
|
||||||
ToStringFunc="type => type.ToDisplay()"
|
|
||||||
Label="نوع سکشن"
|
|
||||||
@bind-Value="@ViewModel.PageDto.Type">
|
|
||||||
@foreach (var state in Enum.GetValues(typeof(BasePageSectionType)).Cast<BasePageSectionType>())
|
|
||||||
{
|
|
||||||
<MudSelectItem T="BasePageSectionType" Value="state"></MudSelectItem>
|
|
||||||
}
|
|
||||||
</MudSelect>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="8">
|
|
||||||
<MudTextField T="string" Label="کوئری" @bind-Value="@ViewModel.PageDto.Query" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
|
|
||||||
</MudGrid>
|
|
||||||
|
|
||||||
<MudStack Spacing="0">
|
|
||||||
<MudText Typo="Typo.h6"><b>ایتم ها</b></MudText>
|
|
||||||
<MudText Typo="Typo.caption">ایتم های سکشن را به دستی میتوانید تغییر دهید</MudText>
|
|
||||||
</MudStack>
|
|
||||||
<MudGrid>
|
|
||||||
<MudItem sm="12" md="5">
|
|
||||||
<MudTextField T="string" Label="عنوان ایتم" @bind-Value="@ViewModel.SelectedSectionItem.Title" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="7">
|
|
||||||
<MudTextField T="string" Label="توضیحات ایتم" @bind-Value="@ViewModel.SelectedSectionItem.Description" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="8">
|
|
||||||
<MudTextField T="string" Label="ادرس ایتم" @bind-Value="@ViewModel.SelectedSectionItem.Url" Variant="Variant.Outlined"></MudTextField>
|
|
||||||
</MudItem>
|
|
||||||
<MudItem sm="12" md="4">
|
|
||||||
<MudStack Row="true" class="mt-3">
|
|
||||||
@if (ViewModel.IsFileSelected)
|
|
||||||
{
|
|
||||||
<MudButton Variant="Variant.Filled" Size="Size.Large" Color="Color.Info" OnClick="@ViewModel.SelectFileAsync">تغییر عکس</MudButton>
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Info" OnClick="@ViewModel.SelectFileAsync">انتخاب عکس</MudButton>
|
|
||||||
}
|
|
||||||
|
|
||||||
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Success" OnClick="@ViewModel.AddItem">افزودن</MudButton>
|
|
||||||
</MudStack>
|
|
||||||
</MudItem>
|
|
||||||
|
|
||||||
<MudItem sm="12">
|
|
||||||
<MudDataGrid Items="@ViewModel.PageDto.SectionItems"
|
|
||||||
T="SectionItem"
|
|
||||||
Elevation="0"
|
|
||||||
Outlined="true"
|
|
||||||
Bordered="true"
|
|
||||||
Striped="true"
|
|
||||||
Filterable="false"
|
|
||||||
SortMode="@SortMode.None"
|
|
||||||
Groupable="false">
|
|
||||||
<Columns>
|
|
||||||
<PropertyColumn T="SectionItem" TProperty="string" Property="x => x.Title" Title="عنوان" />
|
|
||||||
<PropertyColumn T="SectionItem" TProperty="string" Property="x => x.Url" Title="آدرس" />
|
|
||||||
<TemplateColumn T="SectionItem" CellClass="d-flex justify-end">
|
|
||||||
<CellTemplate>
|
|
||||||
<MudStack Row>
|
|
||||||
<MudButton DisableElevation="true"
|
|
||||||
Size="@Size.Small"
|
|
||||||
Variant="@Variant.Filled"
|
|
||||||
OnClick="()=>ViewModel.PageDto.SectionItems.Remove(context.Item)"
|
|
||||||
Color="@Color.Error"
|
|
||||||
StartIcon="@Icons.Material.Outlined.Delete">حذف</MudButton>
|
|
||||||
</MudStack>
|
|
||||||
</CellTemplate>
|
|
||||||
</TemplateColumn>
|
|
||||||
</Columns>
|
|
||||||
</MudDataGrid>
|
|
||||||
</MudItem>
|
|
||||||
</MudGrid>
|
|
||||||
|
|
||||||
</MudStack>
|
|
||||||
</MudContainer>
|
|
||||||
</DialogContent>
|
|
||||||
<DialogActions>
|
|
||||||
<MudStack Row="true" class="w-full mx-4 mb-2">
|
|
||||||
|
|
||||||
@if (ViewModel.IsEditing)
|
|
||||||
{
|
|
||||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
|
||||||
Icon="@Icons.Material.Outlined.Check"
|
|
||||||
Variant="Variant.Filled" Color="Color.Success"
|
|
||||||
Content="ثبت ویرایش" OnClickCallback="@ViewModel.Submit" />
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
<BaseButtonUi class="w-64 rounded-md" IsProcessing="@ViewModel.IsProcessing"
|
|
||||||
Icon="@Icons.Material.Outlined.Check"
|
|
||||||
Variant="Variant.Filled" Color="Color.Success"
|
|
||||||
Content="تایید" OnClickCallback="@ViewModel.Submit" />
|
|
||||||
}
|
|
||||||
<MudSpacer />
|
|
||||||
<MudButton Variant="Variant.Outlined" Size="Size.Large" Color="Color.Error" OnClick="@ViewModel.Cancel">بستن</MudButton>
|
|
||||||
</MudStack>
|
|
||||||
</DialogActions>
|
|
||||||
</MudDialog>
|
|
||||||
@code {
|
|
||||||
|
|
||||||
[CascadingParameter]
|
|
||||||
MudDialogInstance MudDialog { get; set; }
|
|
||||||
|
|
||||||
[Parameter]
|
|
||||||
public BasePageSection? Page { get; set; }
|
|
||||||
|
|
||||||
public PageSectionActionDialogBoxViewModel ViewModel { get; set; }
|
|
||||||
|
|
||||||
protected override async Task OnInitializedAsync()
|
|
||||||
{
|
|
||||||
if (Page == null)
|
|
||||||
ViewModel = new PageSectionActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog);
|
|
||||||
else
|
|
||||||
ViewModel = new PageSectionActionDialogBoxViewModel(Snackbar, RestWrapper, UserUtility, DialogService, MudDialog, Page);
|
|
||||||
await ViewModel.InitializeAsync();
|
|
||||||
await base.OnInitializedAsync();
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,78 +0,0 @@
|
||||||
using MudBlazor;
|
|
||||||
|
|
||||||
namespace Netina.AdminPanel.PWA.Dialogs;
|
|
||||||
|
|
||||||
public class PageSectionActionDialogBoxViewModel : BaseViewModel<BasePageSection>
|
|
||||||
{
|
|
||||||
private readonly ISnackbar _snackbar;
|
|
||||||
private readonly IRestWrapper _restWrapper;
|
|
||||||
private readonly IUserUtility _userUtility;
|
|
||||||
private readonly IDialogService _dialogService;
|
|
||||||
private readonly MudDialogInstance _mudDialog;
|
|
||||||
|
|
||||||
public bool IsEditing = false;
|
|
||||||
|
|
||||||
|
|
||||||
public PageSectionActionDialogBoxViewModel(ISnackbar snackbar,
|
|
||||||
IRestWrapper restWrapper,
|
|
||||||
IUserUtility userUtility,
|
|
||||||
IDialogService dialogService,
|
|
||||||
MudDialogInstance mudDialog) : base(userUtility)
|
|
||||||
{
|
|
||||||
_snackbar = snackbar;
|
|
||||||
_restWrapper = restWrapper;
|
|
||||||
_userUtility = userUtility;
|
|
||||||
_dialogService = dialogService;
|
|
||||||
_mudDialog = mudDialog;
|
|
||||||
}
|
|
||||||
|
|
||||||
public PageSectionActionDialogBoxViewModel(ISnackbar snackbar,
|
|
||||||
IRestWrapper restWrapper,
|
|
||||||
IUserUtility userUtility,
|
|
||||||
IDialogService dialogService,
|
|
||||||
MudDialogInstance mudDialog,
|
|
||||||
BasePageSection page) : base(userUtility)
|
|
||||||
{
|
|
||||||
_snackbar = snackbar;
|
|
||||||
_restWrapper = restWrapper;
|
|
||||||
_userUtility = userUtility;
|
|
||||||
_dialogService = dialogService;
|
|
||||||
_mudDialog = mudDialog;
|
|
||||||
IsEditing = true;
|
|
||||||
PageDto = page;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Cancel() => _mudDialog.Cancel();
|
|
||||||
|
|
||||||
public void Submit()
|
|
||||||
{
|
|
||||||
_snackbar.Add($"ویرایش {PageDto.Title} با موفقیت انجام شد", Severity.Success);
|
|
||||||
_mudDialog.Close(DialogResult.Ok(PageDto));
|
|
||||||
}
|
|
||||||
|
|
||||||
public SectionItem SelectedSectionItem { get; set; } = new();
|
|
||||||
public StorageFileSDto SelectedFile { get; set; } = new();
|
|
||||||
public bool IsFileSelected { get; set; } = false;
|
|
||||||
public void AddItem()
|
|
||||||
{
|
|
||||||
SelectedSectionItem.ImageLocation = SelectedFile.FileLocation;
|
|
||||||
PageDto.SectionItems.Add(SelectedSectionItem);
|
|
||||||
SelectedSectionItem = new SectionItem();
|
|
||||||
SelectedFile = new StorageFileSDto();
|
|
||||||
IsFileSelected = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public async Task SelectFileAsync()
|
|
||||||
{
|
|
||||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
|
||||||
var dialog = await _dialogService.ShowAsync<StorageDialogBox>("انتخاب عکس", maxWidth);
|
|
||||||
var result = await dialog.Result;
|
|
||||||
var file = result.Data;
|
|
||||||
if (file is StorageFileSDto storageFile)
|
|
||||||
{
|
|
||||||
SelectedFile = storageFile;
|
|
||||||
IsFileSelected = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -1,4 +1,6 @@
|
||||||
@inject ISnackbar Snackbar
|
|
||||||
|
|
||||||
|
@inject ISnackbar Snackbar
|
||||||
@inject IRestWrapper RestWrapper
|
@inject IRestWrapper RestWrapper
|
||||||
@inject IUserUtility UserUtility
|
@inject IUserUtility UserUtility
|
||||||
@inject IDialogService DialogService
|
@inject IDialogService DialogService
|
||||||
|
|
|
@ -16,7 +16,7 @@
|
||||||
</MudStack>
|
</MudStack>
|
||||||
<MudGrid>
|
<MudGrid>
|
||||||
|
|
||||||
<MudItem xs="12" lg="4" md="4">
|
<MudItem xs="12" lg="4" md="6">
|
||||||
<MudSelect Variant="Variant.Outlined" T="ProductDiversity"
|
<MudSelect Variant="Variant.Outlined" T="ProductDiversity"
|
||||||
ToStringFunc="type => type.ToDisplay()"
|
ToStringFunc="type => type.ToDisplay()"
|
||||||
Label="نوع تنوع"
|
Label="نوع تنوع"
|
||||||
|
@ -27,14 +27,10 @@
|
||||||
<MudSelectItem T="ProductDiversity" Value="ProductDiversity.Size"></MudSelectItem>
|
<MudSelectItem T="ProductDiversity" Value="ProductDiversity.Size"></MudSelectItem>
|
||||||
</MudSelect>
|
</MudSelect>
|
||||||
</MudItem>
|
</MudItem>
|
||||||
<MudItem xs="12" lg="4" md="4">
|
<MudItem xs="12" lg="4" md="6">
|
||||||
<MudTextField @bind-Value="@ViewModel.PageDto.DiversityValue" T="string" Label="تنوع" Format="N0" Variant="Variant.Outlined" />
|
<MudTextField @bind-Value="@ViewModel.PageDto.DiversityValue" T="string" Label="تنوع" Format="N0" Variant="Variant.Outlined" />
|
||||||
</MudItem>
|
</MudItem>
|
||||||
|
|
||||||
<MudItem xs="12" lg="4" md="4">
|
|
||||||
<MudTextField @bind-Value="@ViewModel.PageDto.DiversitySecondaryValue" T="string" Label="مقدار تنوع" Format="N0" Variant="Variant.Outlined" />
|
|
||||||
</MudItem>
|
|
||||||
|
|
||||||
<MudItem xs="12" lg="4" md="6">
|
<MudItem xs="12" lg="4" md="6">
|
||||||
<MudTextField @bind-Value="@ViewModel.PageDto.Cost" T="double" Label="قیمت محصول" Adornment="Adornment.End" Format="N0" AdornmentText="ریالــ" Variant="Variant.Outlined" />
|
<MudTextField @bind-Value="@ViewModel.PageDto.Cost" T="double" Label="قیمت محصول" Adornment="Adornment.End" Format="N0" AdornmentText="ریالــ" Variant="Variant.Outlined" />
|
||||||
</MudItem>
|
</MudItem>
|
||||||
|
|
|
@ -83,7 +83,6 @@ public class SubProductActionDialogBoxViewModel : BaseViewModel<SubProductSDto>
|
||||||
ProductId,
|
ProductId,
|
||||||
PageDto.Diversity,
|
PageDto.Diversity,
|
||||||
PageDto.DiversityValue,
|
PageDto.DiversityValue,
|
||||||
PageDto.DiversitySecondaryValue,
|
|
||||||
PageDto.DiversityDescription,
|
PageDto.DiversityDescription,
|
||||||
PageDto.PersianName,
|
PageDto.PersianName,
|
||||||
PageDto.Cost,
|
PageDto.Cost,
|
||||||
|
@ -137,7 +136,6 @@ public class SubProductActionDialogBoxViewModel : BaseViewModel<SubProductSDto>
|
||||||
PageDto.ParentId,
|
PageDto.ParentId,
|
||||||
PageDto.Diversity,
|
PageDto.Diversity,
|
||||||
PageDto.DiversityValue,
|
PageDto.DiversityValue,
|
||||||
PageDto.DiversitySecondaryValue,
|
|
||||||
PageDto.DiversityDescription,
|
PageDto.DiversityDescription,
|
||||||
PageDto.PersianName,
|
PageDto.PersianName,
|
||||||
PageDto.Cost,
|
PageDto.Cost,
|
||||||
|
|
|
@ -5,8 +5,8 @@
|
||||||
<Nullable>enable</Nullable>
|
<Nullable>enable</Nullable>
|
||||||
<ImplicitUsings>enable</ImplicitUsings>
|
<ImplicitUsings>enable</ImplicitUsings>
|
||||||
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
|
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
|
||||||
<AssemblyVersion>1.14.22.43</AssemblyVersion>
|
<AssemblyVersion>1.10.21.36</AssemblyVersion>
|
||||||
<FileVersion>1.14.22.42</FileVersion>
|
<FileVersion>1.10.21.36</FileVersion>
|
||||||
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
|
<AssemblyName>$(MSBuildProjectName)</AssemblyName>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
|
|
|
@ -46,10 +46,6 @@
|
||||||
<MudStack Row="true">
|
<MudStack Row="true">
|
||||||
<MudText class="my-auto">@navMenuItem.Title</MudText>
|
<MudText class="my-auto">@navMenuItem.Title</MudText>
|
||||||
<MudSpacer />
|
<MudSpacer />
|
||||||
<MudIconButton Icon="@Icons.Material.Filled.Edit"
|
|
||||||
OnClick="async ()=>{await ViewModel.EditPageAsync(navMenuItem);}"
|
|
||||||
Color="Color.Info"></MudIconButton>
|
|
||||||
|
|
||||||
<MudIconButton Icon="@Icons.Material.Filled.Delete" OnClick="async ()=>{await ViewModel.RemovePageAsync(navMenuItem.Id);}" Color="Color.Error"></MudIconButton>
|
<MudIconButton Icon="@Icons.Material.Filled.Delete" OnClick="async ()=>{await ViewModel.RemovePageAsync(navMenuItem.Id);}" Color="Color.Error"></MudIconButton>
|
||||||
</MudStack>
|
</MudStack>
|
||||||
</TitleContent>
|
</TitleContent>
|
||||||
|
|
|
@ -2,16 +2,27 @@
|
||||||
|
|
||||||
namespace Netina.AdminPanel.PWA.Pages;
|
namespace Netina.AdminPanel.PWA.Pages;
|
||||||
|
|
||||||
public class PagesManagementPageViewModel(
|
public class PagesManagementPageViewModel : BaseViewModel<ObservableCollection<BasePageSDto>>
|
||||||
NavigationManager navigationManager,
|
|
||||||
ISnackbar snackbar,
|
|
||||||
IUserUtility userUtility,
|
|
||||||
IRestWrapper restWrapper,
|
|
||||||
IDialogService dialogService)
|
|
||||||
: BaseViewModel<ObservableCollection<BasePageSDto>>(userUtility)
|
|
||||||
{
|
{
|
||||||
private readonly IUserUtility _userUtility = userUtility;
|
private readonly NavigationManager _navigationManager;
|
||||||
private readonly IDialogService _dialogService = dialogService;
|
private readonly ISnackbar _snackbar;
|
||||||
|
private readonly IUserUtility _userUtility;
|
||||||
|
private readonly IDialogService _dialogService;
|
||||||
|
private readonly IRestWrapper _restWrapper;
|
||||||
|
|
||||||
|
public PagesManagementPageViewModel(
|
||||||
|
NavigationManager navigationManager,
|
||||||
|
ISnackbar snackbar,
|
||||||
|
IUserUtility userUtility,
|
||||||
|
IRestWrapper restWrapper,
|
||||||
|
IDialogService dialogService) : base(userUtility)
|
||||||
|
{
|
||||||
|
_navigationManager = navigationManager;
|
||||||
|
_snackbar = snackbar;
|
||||||
|
_userUtility = userUtility;
|
||||||
|
_restWrapper = restWrapper;
|
||||||
|
_dialogService = dialogService;
|
||||||
|
}
|
||||||
|
|
||||||
public override async Task InitializeAsync()
|
public override async Task InitializeAsync()
|
||||||
{
|
{
|
||||||
|
@ -21,7 +32,7 @@ public class PagesManagementPageViewModel(
|
||||||
var token = await _userUtility.GetBearerTokenAsync();
|
var token = await _userUtility.GetBearerTokenAsync();
|
||||||
if (token == null)
|
if (token == null)
|
||||||
throw new Exception("Token is null");
|
throw new Exception("Token is null");
|
||||||
var pages = await restWrapper.PageRestApi.ReadAll(token);
|
var pages = await _restWrapper.PageRestApi.ReadAll(token);
|
||||||
PageDto.Clear();
|
PageDto.Clear();
|
||||||
pages.ForEach(p=>PageDto.Add(p));
|
pages.ForEach(p=>PageDto.Add(p));
|
||||||
}
|
}
|
||||||
|
@ -31,13 +42,13 @@ public class PagesManagementPageViewModel(
|
||||||
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
||||||
{
|
{
|
||||||
await _userUtility.LogoutAsync();
|
await _userUtility.LogoutAsync();
|
||||||
navigationManager.NavigateTo("login", true, true);
|
_navigationManager.NavigateTo("login", true, true);
|
||||||
}
|
}
|
||||||
snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
snackbar.Add(ex.Message, Severity.Error);
|
_snackbar.Add(ex.Message, Severity.Error);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -63,9 +74,9 @@ public class PagesManagementPageViewModel(
|
||||||
if (NewPageDto.Slug.IsNullOrEmpty())
|
if (NewPageDto.Slug.IsNullOrEmpty())
|
||||||
throw new AppException("اسلاگ صفحه را وارد کنید");
|
throw new AppException("اسلاگ صفحه را وارد کنید");
|
||||||
|
|
||||||
await restWrapper.PageRestApi.CreatePage(NewPageDto.DeepClone(), token);
|
await _restWrapper.PageRestApi.CreatePage(NewPageDto.DeepClone(), token);
|
||||||
NewPageDto = new PageActionRequestDto();
|
NewPageDto = new PageActionRequestDto();
|
||||||
snackbar.Add("برگه مورد نظر با موفقیت افزوده شد", Severity.Success);
|
_snackbar.Add("برگه مورد نظر با موفقیت افزوده شد", Severity.Success);
|
||||||
await InitializeAsync();
|
await InitializeAsync();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -75,13 +86,13 @@ public class PagesManagementPageViewModel(
|
||||||
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
||||||
{
|
{
|
||||||
await _userUtility.LogoutAsync();
|
await _userUtility.LogoutAsync();
|
||||||
navigationManager.NavigateTo("login", true, true);
|
_navigationManager.NavigateTo("login", true, true);
|
||||||
}
|
}
|
||||||
snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
snackbar.Add(ex.Message, Severity.Error);
|
_snackbar.Add(ex.Message, Severity.Error);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
@ -89,19 +100,6 @@ public class PagesManagementPageViewModel(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task EditPageAsync(BasePageSDto page)
|
|
||||||
{
|
|
||||||
DialogOptions maxWidth = new DialogOptions() { MaxWidth = MaxWidth.Medium, FullWidth = true, DisableBackdropClick = true };
|
|
||||||
var parameters = new DialogParameters<PageActionDialogBox>();
|
|
||||||
parameters.Add(x => x.Page, page);
|
|
||||||
var dialogResult = await dialogService.ShowAsync<PageActionDialogBox>($"ویرایش صفحه {page.Title}", parameters, maxWidth);
|
|
||||||
var result = await dialogResult.Result;
|
|
||||||
if (!result.Canceled && result.Data is bool and true)
|
|
||||||
{
|
|
||||||
await InitializeAsync();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public async Task RemovePageAsync(Guid pageId)
|
public async Task RemovePageAsync(Guid pageId)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
|
@ -111,8 +109,8 @@ public class PagesManagementPageViewModel(
|
||||||
if (token == null)
|
if (token == null)
|
||||||
throw new Exception("Token is null");
|
throw new Exception("Token is null");
|
||||||
|
|
||||||
await restWrapper.PageRestApi.DeletePage(pageId, token);
|
await _restWrapper.PageRestApi.DeletePage(pageId, token);
|
||||||
snackbar.Add("برگه مورد نظر با موفقیت حذف شد", Severity.Success);
|
_snackbar.Add("برگه مورد نظر با موفقیت حذف شد", Severity.Success);
|
||||||
await InitializeAsync();
|
await InitializeAsync();
|
||||||
|
|
||||||
|
|
||||||
|
@ -123,13 +121,13 @@ public class PagesManagementPageViewModel(
|
||||||
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
if (e.StatusCode == HttpStatusCode.Unauthorized)
|
||||||
{
|
{
|
||||||
await _userUtility.LogoutAsync();
|
await _userUtility.LogoutAsync();
|
||||||
navigationManager.NavigateTo("login", true, true);
|
_navigationManager.NavigateTo("login", true, true);
|
||||||
}
|
}
|
||||||
snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
_snackbar.Add(exe != null ? exe.Message : e.Content, Severity.Error);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
snackbar.Add(ex.Message, Severity.Error);
|
_snackbar.Add(ex.Message, Severity.Error);
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
|
|
|
@ -10,7 +10,7 @@ public interface IPageRestApi
|
||||||
Task<BasePageSDto> ReadByType([Query] string type, [Header("Authorization")] string authorization);
|
Task<BasePageSDto> ReadByType([Query] string type, [Header("Authorization")] string authorization);
|
||||||
|
|
||||||
[Get("/{id}")]
|
[Get("/{id}")]
|
||||||
Task<BasePageLDto> ReadById(Guid id, [Header("Authorization")] string authorization);
|
Task<BasePageSDto> ReadById(Guid id, [Header("Authorization")] string authorization);
|
||||||
|
|
||||||
[Post("")]
|
[Post("")]
|
||||||
Task CreatePage([Body] PageActionRequestDto request, [Header("Authorization")] string authorization);
|
Task CreatePage([Body] PageActionRequestDto request, [Header("Authorization")] string authorization);
|
||||||
|
|
|
@ -9,11 +9,11 @@
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"license": "ISC",
|
"license": "ISC",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.17",
|
||||||
"flowbite": "^2.2.1",
|
"flowbite": "^2.2.1",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.4.33",
|
||||||
"postcss-cli": "^11.0.1",
|
"postcss-cli": "^11.0.0",
|
||||||
"tailwindcss": "^3.4.17"
|
"tailwindcss": "^3.4.13"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@alloc/quick-lru": {
|
"node_modules/@alloc/quick-lru": {
|
||||||
|
@ -136,6 +136,17 @@
|
||||||
"url": "https://opencollective.com/popperjs"
|
"url": "https://opencollective.com/popperjs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@sindresorhus/merge-streams": {
|
||||||
|
"version": "1.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/@sindresorhus/merge-streams/-/merge-streams-1.0.0.tgz",
|
||||||
|
"integrity": "sha512-rUV5WyJrJLoloD4NDN1V1+LDMDWOa4OTsT4yYJwQNpTU6FWxkxHpL7eu4w+DmiH8x/EAM1otkPE1+LaspIbplw==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/ansi-regex": {
|
"node_modules/ansi-regex": {
|
||||||
"version": "6.0.1",
|
"version": "6.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.0.1.tgz",
|
||||||
|
@ -181,9 +192,9 @@
|
||||||
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
|
"integrity": "sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg=="
|
||||||
},
|
},
|
||||||
"node_modules/autoprefixer": {
|
"node_modules/autoprefixer": {
|
||||||
"version": "10.4.21",
|
"version": "10.4.17",
|
||||||
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.21.tgz",
|
"resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.17.tgz",
|
||||||
"integrity": "sha512-O+A6LWV5LDHSJD3LjHYoNi4VLsj/Whi7k6zG12xTYaU4cQ8oxQGckXNX8cRHK5yOZ/ppVHe0ZBXGzSV9jXdVbQ==",
|
"integrity": "sha512-/cpVNRLSfhOtcGflT13P2794gVSgmPgTR+erw5ifnMLZb0UnSlkK4tquLmkd3BhA+nLo5tX8Cu0upUsGKvKbmg==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -198,13 +209,12 @@
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"browserslist": "^4.24.4",
|
"browserslist": "^4.22.2",
|
||||||
"caniuse-lite": "^1.0.30001702",
|
"caniuse-lite": "^1.0.30001578",
|
||||||
"fraction.js": "^4.3.7",
|
"fraction.js": "^4.3.7",
|
||||||
"normalize-range": "^0.1.2",
|
"normalize-range": "^0.1.2",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.0.0",
|
||||||
"postcss-value-parser": "^4.2.0"
|
"postcss-value-parser": "^4.2.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -239,21 +249,20 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/braces": {
|
"node_modules/braces": {
|
||||||
"version": "3.0.3",
|
"version": "3.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"fill-range": "^7.1.1"
|
"fill-range": "^7.0.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=8"
|
"node": ">=8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/browserslist": {
|
"node_modules/browserslist": {
|
||||||
"version": "4.24.4",
|
"version": "4.22.2",
|
||||||
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.24.4.tgz",
|
"resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.22.2.tgz",
|
||||||
"integrity": "sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A==",
|
"integrity": "sha512-0UgcrvQmBDvZHFGdYUehrCNIazki7/lUP3kkoi/r3YB2amZbFM9J43ZRkJTXBUZK4gmx56+Sqk9+Vs9mwZx9+A==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -268,12 +277,11 @@
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"caniuse-lite": "^1.0.30001688",
|
"caniuse-lite": "^1.0.30001565",
|
||||||
"electron-to-chromium": "^1.5.73",
|
"electron-to-chromium": "^1.4.601",
|
||||||
"node-releases": "^2.0.19",
|
"node-releases": "^2.0.14",
|
||||||
"update-browserslist-db": "^1.1.1"
|
"update-browserslist-db": "^1.0.13"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"browserslist": "cli.js"
|
"browserslist": "cli.js"
|
||||||
|
@ -291,9 +299,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/caniuse-lite": {
|
"node_modules/caniuse-lite": {
|
||||||
"version": "1.0.30001707",
|
"version": "1.0.30001579",
|
||||||
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001707.tgz",
|
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001579.tgz",
|
||||||
"integrity": "sha512-3qtRjw/HQSMlDWf+X79N206fepf4SOOU6SQLMaq/0KkZLmSjPxAkBOQQ+FxbHKfHmYLZFfdWsO3KA90ceHPSnw==",
|
"integrity": "sha512-u5AUVkixruKHJjw/pj9wISlcMpgFWzSrczLZbrqBSxukQixmg0SJ5sZTpvaFvxU0HoQKd4yoyAogyrAz9pzJnA==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -307,14 +315,18 @@
|
||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
]
|
||||||
"license": "CC-BY-4.0"
|
|
||||||
},
|
},
|
||||||
"node_modules/chokidar": {
|
"node_modules/chokidar": {
|
||||||
"version": "3.6.0",
|
"version": "3.5.3",
|
||||||
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz",
|
||||||
"integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
|
"integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==",
|
||||||
"license": "MIT",
|
"funding": [
|
||||||
|
{
|
||||||
|
"type": "individual",
|
||||||
|
"url": "https://paulmillr.com/funding/"
|
||||||
|
}
|
||||||
|
],
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"anymatch": "~3.1.2",
|
"anymatch": "~3.1.2",
|
||||||
"braces": "~3.0.2",
|
"braces": "~3.0.2",
|
||||||
|
@ -327,9 +339,6 @@
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">= 8.10.0"
|
"node": ">= 8.10.0"
|
||||||
},
|
},
|
||||||
"funding": {
|
|
||||||
"url": "https://paulmillr.com/funding/"
|
|
||||||
},
|
|
||||||
"optionalDependencies": {
|
"optionalDependencies": {
|
||||||
"fsevents": "~2.3.2"
|
"fsevents": "~2.3.2"
|
||||||
}
|
}
|
||||||
|
@ -455,7 +464,6 @@
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz",
|
||||||
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
|
"integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==",
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"cssesc": "bin/cssesc"
|
"cssesc": "bin/cssesc"
|
||||||
},
|
},
|
||||||
|
@ -464,12 +472,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dependency-graph": {
|
"node_modules/dependency-graph": {
|
||||||
"version": "1.0.0",
|
"version": "0.11.0",
|
||||||
"resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz",
|
||||||
"integrity": "sha512-cW3gggJ28HZ/LExwxP2B++aiKxhJXMSIt9K48FOXQkm+vuG5gyatXnLsONRJdzO/7VfjDIiaOOa/bs4l464Lwg==",
|
"integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==",
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=4"
|
"node": ">= 0.6.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/didyoumean": {
|
"node_modules/didyoumean": {
|
||||||
|
@ -488,10 +495,9 @@
|
||||||
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
"integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA=="
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
"version": "1.5.123",
|
"version": "1.4.640",
|
||||||
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz",
|
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.640.tgz",
|
||||||
"integrity": "sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA==",
|
"integrity": "sha512-z/6oZ/Muqk4BaE7P69bXhUhpJbUM9ZJeka43ZwxsDshKtePns4mhBlh8bU5+yrnOnz3fhG82XLzGUXazOmsWnA=="
|
||||||
"license": "ISC"
|
|
||||||
},
|
},
|
||||||
"node_modules/emoji-regex": {
|
"node_modules/emoji-regex": {
|
||||||
"version": "9.2.2",
|
"version": "9.2.2",
|
||||||
|
@ -499,10 +505,9 @@
|
||||||
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
|
"integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg=="
|
||||||
},
|
},
|
||||||
"node_modules/escalade": {
|
"node_modules/escalade": {
|
||||||
"version": "3.2.0",
|
"version": "3.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz",
|
||||||
"integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
|
"integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==",
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=6"
|
||||||
}
|
}
|
||||||
|
@ -531,10 +536,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/fill-range": {
|
"node_modules/fill-range": {
|
||||||
"version": "7.1.1",
|
"version": "7.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"to-regex-range": "^5.0.1"
|
"to-regex-range": "^5.0.1"
|
||||||
},
|
},
|
||||||
|
@ -620,6 +624,17 @@
|
||||||
"node": "6.* || 8.* || >= 10.*"
|
"node": "6.* || 8.* || >= 10.*"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/get-stdin": {
|
||||||
|
"version": "9.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-9.0.0.tgz",
|
||||||
|
"integrity": "sha512-dVKBjfWisLAicarI2Sf+JuBE/DghV4UzNAVe9yhEJuzeREd3JhOTE9cUaJTeSa77fsbQUK3pcOpJfM59+VKZaA==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/glob": {
|
"node_modules/glob": {
|
||||||
"version": "10.3.10",
|
"version": "10.3.10",
|
||||||
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
"resolved": "https://registry.npmjs.org/glob/-/glob-10.3.10.tgz",
|
||||||
|
@ -652,6 +667,25 @@
|
||||||
"node": ">= 6"
|
"node": ">= 6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/globby": {
|
||||||
|
"version": "14.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/globby/-/globby-14.0.0.tgz",
|
||||||
|
"integrity": "sha512-/1WM/LNHRAOH9lZta77uGbq0dAEQM+XjNesWwhlERDVenqothRbnzTrL3/LrIoEPPjeUHC3vrS6TwoyxeHs7MQ==",
|
||||||
|
"dependencies": {
|
||||||
|
"@sindresorhus/merge-streams": "^1.0.0",
|
||||||
|
"fast-glob": "^3.3.2",
|
||||||
|
"ignore": "^5.2.4",
|
||||||
|
"path-type": "^5.0.0",
|
||||||
|
"slash": "^5.1.0",
|
||||||
|
"unicorn-magic": "^0.1.0"
|
||||||
|
},
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/graceful-fs": {
|
"node_modules/graceful-fs": {
|
||||||
"version": "4.2.11",
|
"version": "4.2.11",
|
||||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
|
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
|
||||||
|
@ -668,6 +702,14 @@
|
||||||
"node": ">= 0.4"
|
"node": ">= 0.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/ignore": {
|
||||||
|
"version": "5.3.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.0.tgz",
|
||||||
|
"integrity": "sha512-g7dmpshy+gD7mh88OC9NwSGTKoc3kyLAZQRU1mt53Aw/vnvfXnbC+F/7F7QoYVKbV+KNvJx8wArewKy1vXMtlg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">= 4"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/is-binary-path": {
|
"node_modules/is-binary-path": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||||
|
@ -721,7 +763,6 @@
|
||||||
"version": "7.0.0",
|
"version": "7.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.12.0"
|
"node": ">=0.12.0"
|
||||||
}
|
}
|
||||||
|
@ -749,10 +790,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/jiti": {
|
"node_modules/jiti": {
|
||||||
"version": "1.21.7",
|
"version": "1.21.0",
|
||||||
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.7.tgz",
|
"resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz",
|
||||||
"integrity": "sha512-/imKNG4EbWNrVjoNC/1H5/9GFy+tqjGBHCaSsN+P2RnPqjsLmv6UD3Ej+Kj8nBWaRAwyk7kK5ZUc+OEatnTR3A==",
|
"integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==",
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"jiti": "bin/jiti.js"
|
"jiti": "bin/jiti.js"
|
||||||
}
|
}
|
||||||
|
@ -769,15 +809,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lilconfig": {
|
"node_modules/lilconfig": {
|
||||||
"version": "3.1.3",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz",
|
||||||
"integrity": "sha512-/vlFKAoH5Cgt3Ie+JLhRbwOsCQePABiU3tJ1egGvyQ+33R/vcwM2Zl2QR/LzjsBeItPt3oSVXapn+m4nQDvpzw==",
|
"integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==",
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14"
|
"node": ">=14"
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/antonk52"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/lines-and-columns": {
|
"node_modules/lines-and-columns": {
|
||||||
|
@ -802,12 +838,11 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/micromatch": {
|
"node_modules/micromatch": {
|
||||||
"version": "4.0.8",
|
"version": "4.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
|
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||||
"integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
|
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"braces": "^3.0.3",
|
"braces": "^3.0.2",
|
||||||
"picomatch": "^2.3.1"
|
"picomatch": "^2.3.1"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
|
@ -855,16 +890,15 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nanoid": {
|
"node_modules/nanoid": {
|
||||||
"version": "3.3.11",
|
"version": "3.3.7",
|
||||||
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
|
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz",
|
||||||
"integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
|
"integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "github",
|
"type": "github",
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"bin": {
|
"bin": {
|
||||||
"nanoid": "bin/nanoid.cjs"
|
"nanoid": "bin/nanoid.cjs"
|
||||||
},
|
},
|
||||||
|
@ -873,10 +907,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/node-releases": {
|
"node_modules/node-releases": {
|
||||||
"version": "2.0.19",
|
"version": "2.0.14",
|
||||||
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.19.tgz",
|
"resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.14.tgz",
|
||||||
"integrity": "sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw==",
|
"integrity": "sha512-y10wOWt8yZpqXmOgRo77WaHEmhYQYGNA6y421PKsKYWEK8aW+cqAphborZDhqfyKrbZEN92CN1X2KbafY2s7Yw=="
|
||||||
"license": "MIT"
|
|
||||||
},
|
},
|
||||||
"node_modules/normalize-path": {
|
"node_modules/normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
|
@ -938,11 +971,21 @@
|
||||||
"url": "https://github.com/sponsors/isaacs"
|
"url": "https://github.com/sponsors/isaacs"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/path-type": {
|
||||||
|
"version": "5.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-5.0.0.tgz",
|
||||||
|
"integrity": "sha512-5HviZNaZcfqP95rwpv+1HDgUamezbqdSYTyzjTvwtJSnIH+3vnbmWsItli8OFEndS984VT55M3jduxZbX351gg==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/picocolors": {
|
"node_modules/picocolors": {
|
||||||
"version": "1.1.1",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz",
|
||||||
"integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
|
"integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ=="
|
||||||
"license": "ISC"
|
|
||||||
},
|
},
|
||||||
"node_modules/picomatch": {
|
"node_modules/picomatch": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
|
@ -972,9 +1015,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss": {
|
"node_modules/postcss": {
|
||||||
"version": "8.5.3",
|
"version": "8.4.33",
|
||||||
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.3.tgz",
|
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.33.tgz",
|
||||||
"integrity": "sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==",
|
"integrity": "sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -989,32 +1032,31 @@
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"nanoid": "^3.3.8",
|
"nanoid": "^3.3.7",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.0.0",
|
||||||
"source-map-js": "^1.2.1"
|
"source-map-js": "^1.0.2"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": "^10 || ^12 || >=14"
|
"node": "^10 || ^12 || >=14"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-cli": {
|
"node_modules/postcss-cli": {
|
||||||
"version": "11.0.1",
|
"version": "11.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-cli/-/postcss-cli-11.0.0.tgz",
|
||||||
"integrity": "sha512-0UnkNPSayHKRe/tc2YGW6XnSqqOA9eqpiRMgRlV1S6HdGi16vwJBx7lviARzbV1HpQHqLLRH3o8vTcB0cLc+5g==",
|
"integrity": "sha512-xMITAI7M0u1yolVcXJ9XTZiO9aO49mcoKQy6pCDFdMh9kGqhzLVpWxeD/32M/QBmkhcGypZFFOLNLmIW4Pg4RA==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chokidar": "^3.3.0",
|
"chokidar": "^3.3.0",
|
||||||
"dependency-graph": "^1.0.0",
|
"dependency-graph": "^0.11.0",
|
||||||
"fs-extra": "^11.0.0",
|
"fs-extra": "^11.0.0",
|
||||||
|
"get-stdin": "^9.0.0",
|
||||||
|
"globby": "^14.0.0",
|
||||||
"picocolors": "^1.0.0",
|
"picocolors": "^1.0.0",
|
||||||
"postcss-load-config": "^5.0.0",
|
"postcss-load-config": "^5.0.0",
|
||||||
"postcss-reporter": "^7.0.0",
|
"postcss-reporter": "^7.0.0",
|
||||||
"pretty-hrtime": "^1.0.3",
|
"pretty-hrtime": "^1.0.3",
|
||||||
"read-cache": "^1.0.0",
|
"read-cache": "^1.0.0",
|
||||||
"slash": "^5.0.0",
|
"slash": "^5.0.0",
|
||||||
"tinyglobby": "^0.2.12",
|
|
||||||
"yargs": "^17.0.0"
|
"yargs": "^17.0.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
|
@ -1096,26 +1138,19 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-nested": {
|
"node_modules/postcss-nested": {
|
||||||
"version": "6.2.0",
|
"version": "6.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-nested/-/postcss-nested-6.0.1.tgz",
|
||||||
"integrity": "sha512-HQbt28KulC5AJzG+cZtj9kvKB93CFCdLvog1WFLf1D+xmMvPGlBstkpTEZfK5+AN9hfJocyBFCNiqyS48bpgzQ==",
|
"integrity": "sha512-mEp4xPMi5bSWiMbsgoPfcP74lsWLHkQbZc3sY+jWYd65CUwXrUaTp0fmNpa01ZcETKlIgUdFN/MpS2xZtqL9dQ==",
|
||||||
"funding": [
|
|
||||||
{
|
|
||||||
"type": "opencollective",
|
|
||||||
"url": "https://opencollective.com/postcss/"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"type": "github",
|
|
||||||
"url": "https://github.com/sponsors/ai"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"postcss-selector-parser": "^6.1.1"
|
"postcss-selector-parser": "^6.0.11"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=12.0"
|
"node": ">=12.0"
|
||||||
},
|
},
|
||||||
|
"funding": {
|
||||||
|
"type": "opencollective",
|
||||||
|
"url": "https://opencollective.com/postcss/"
|
||||||
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"postcss": "^8.2.14"
|
"postcss": "^8.2.14"
|
||||||
}
|
}
|
||||||
|
@ -1146,10 +1181,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/postcss-selector-parser": {
|
"node_modules/postcss-selector-parser": {
|
||||||
"version": "6.1.2",
|
"version": "6.0.15",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.15.tgz",
|
||||||
"integrity": "sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg==",
|
"integrity": "sha512-rEYkQOMUCEMhsKbK66tbEU9QVIxbhN18YiniAwA7XQYTVBqrBy+P2p5JcdqsHgKM2zWylp8d7J6eszocfds5Sw==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"cssesc": "^3.0.0",
|
"cssesc": "^3.0.0",
|
||||||
"util-deprecate": "^1.0.2"
|
"util-deprecate": "^1.0.2"
|
||||||
|
@ -1298,7 +1332,6 @@
|
||||||
"version": "5.1.0",
|
"version": "5.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/slash/-/slash-5.1.0.tgz",
|
||||||
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
|
"integrity": "sha512-ZA6oR3T/pEyuqwMgAKT0/hAv8oAXckzbkmR0UkUosQ+Mc4RxGoJkRmwHgHufaenlyAgE1Mxgpdcrf75y6XcnDg==",
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=14.16"
|
"node": ">=14.16"
|
||||||
},
|
},
|
||||||
|
@ -1307,10 +1340,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/source-map-js": {
|
"node_modules/source-map-js": {
|
||||||
"version": "1.2.1",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz",
|
||||||
"integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
|
"integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==",
|
||||||
"license": "BSD-3-Clause",
|
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=0.10.0"
|
"node": ">=0.10.0"
|
||||||
}
|
}
|
||||||
|
@ -1436,33 +1468,33 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tailwindcss": {
|
"node_modules/tailwindcss": {
|
||||||
"version": "3.4.17",
|
"version": "3.4.13",
|
||||||
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.17.tgz",
|
"resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.4.13.tgz",
|
||||||
"integrity": "sha512-w33E2aCvSDP0tW9RZuNXadXlkHXqFzSkQew/aIa2i/Sj8fThxwovwlXHSPXTbAHwEIhBFXAedUhP2tueAKP8Og==",
|
"integrity": "sha512-KqjHOJKogOUt5Bs752ykCeiwvi0fKVkr5oqsFNt/8px/tA8scFPIlkygsf6jXrfCqGHz7VflA6+yytWuM+XhFw==",
|
||||||
"license": "MIT",
|
"license": "MIT",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alloc/quick-lru": "^5.2.0",
|
"@alloc/quick-lru": "^5.2.0",
|
||||||
"arg": "^5.0.2",
|
"arg": "^5.0.2",
|
||||||
"chokidar": "^3.6.0",
|
"chokidar": "^3.5.3",
|
||||||
"didyoumean": "^1.2.2",
|
"didyoumean": "^1.2.2",
|
||||||
"dlv": "^1.1.3",
|
"dlv": "^1.1.3",
|
||||||
"fast-glob": "^3.3.2",
|
"fast-glob": "^3.3.0",
|
||||||
"glob-parent": "^6.0.2",
|
"glob-parent": "^6.0.2",
|
||||||
"is-glob": "^4.0.3",
|
"is-glob": "^4.0.3",
|
||||||
"jiti": "^1.21.6",
|
"jiti": "^1.21.0",
|
||||||
"lilconfig": "^3.1.3",
|
"lilconfig": "^2.1.0",
|
||||||
"micromatch": "^4.0.8",
|
"micromatch": "^4.0.5",
|
||||||
"normalize-path": "^3.0.0",
|
"normalize-path": "^3.0.0",
|
||||||
"object-hash": "^3.0.0",
|
"object-hash": "^3.0.0",
|
||||||
"picocolors": "^1.1.1",
|
"picocolors": "^1.0.0",
|
||||||
"postcss": "^8.4.47",
|
"postcss": "^8.4.23",
|
||||||
"postcss-import": "^15.1.0",
|
"postcss-import": "^15.1.0",
|
||||||
"postcss-js": "^4.0.1",
|
"postcss-js": "^4.0.1",
|
||||||
"postcss-load-config": "^4.0.2",
|
"postcss-load-config": "^4.0.1",
|
||||||
"postcss-nested": "^6.2.0",
|
"postcss-nested": "^6.0.1",
|
||||||
"postcss-selector-parser": "^6.1.2",
|
"postcss-selector-parser": "^6.0.11",
|
||||||
"resolve": "^1.22.8",
|
"resolve": "^1.22.2",
|
||||||
"sucrase": "^3.35.0"
|
"sucrase": "^3.32.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"tailwind": "lib/cli.js",
|
"tailwind": "lib/cli.js",
|
||||||
|
@ -1483,6 +1515,14 @@
|
||||||
"node": ">=10.13.0"
|
"node": ">=10.13.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tailwindcss/node_modules/lilconfig": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=10"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/tailwindcss/node_modules/postcss-load-config": {
|
"node_modules/tailwindcss/node_modules/postcss-load-config": {
|
||||||
"version": "4.0.2",
|
"version": "4.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-4.0.2.tgz",
|
||||||
|
@ -1517,6 +1557,14 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/tailwindcss/node_modules/postcss-load-config/node_modules/lilconfig": {
|
||||||
|
"version": "3.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/lilconfig/-/lilconfig-3.0.0.tgz",
|
||||||
|
"integrity": "sha512-K2U4W2Ff5ibV7j7ydLr+zLAkIg5JJ4lPn1Ltsdt+Tz/IjQ8buJ55pZAxoP34lqIiwtF9iAvtLv3JGv7CAyAg+g==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=14"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/thenby": {
|
"node_modules/thenby": {
|
||||||
"version": "1.3.4",
|
"version": "1.3.4",
|
||||||
"resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz",
|
"resolved": "https://registry.npmjs.org/thenby/-/thenby-1.3.4.tgz",
|
||||||
|
@ -1541,53 +1589,10 @@
|
||||||
"node": ">=0.8"
|
"node": ">=0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/tinyglobby": {
|
|
||||||
"version": "0.2.12",
|
|
||||||
"resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.12.tgz",
|
|
||||||
"integrity": "sha512-qkf4trmKSIiMTs/E63cxH+ojC2unam7rJ0WrauAzpT3ECNTxGRMlaXxVbfxMUC/w0LaYk6jQ4y/nGR9uBO3tww==",
|
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
|
||||||
"fdir": "^6.4.3",
|
|
||||||
"picomatch": "^4.0.2"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12.0.0"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/SuperchupuDev"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tinyglobby/node_modules/fdir": {
|
|
||||||
"version": "6.4.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/fdir/-/fdir-6.4.3.tgz",
|
|
||||||
"integrity": "sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==",
|
|
||||||
"license": "MIT",
|
|
||||||
"peerDependencies": {
|
|
||||||
"picomatch": "^3 || ^4"
|
|
||||||
},
|
|
||||||
"peerDependenciesMeta": {
|
|
||||||
"picomatch": {
|
|
||||||
"optional": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/tinyglobby/node_modules/picomatch": {
|
|
||||||
"version": "4.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.2.tgz",
|
|
||||||
"integrity": "sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg==",
|
|
||||||
"license": "MIT",
|
|
||||||
"engines": {
|
|
||||||
"node": ">=12"
|
|
||||||
},
|
|
||||||
"funding": {
|
|
||||||
"url": "https://github.com/sponsors/jonschlinkert"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node_modules/to-regex-range": {
|
"node_modules/to-regex-range": {
|
||||||
"version": "5.0.1",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"is-number": "^7.0.0"
|
"is-number": "^7.0.0"
|
||||||
},
|
},
|
||||||
|
@ -1600,6 +1605,17 @@
|
||||||
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
"resolved": "https://registry.npmjs.org/ts-interface-checker/-/ts-interface-checker-0.1.13.tgz",
|
||||||
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
|
"integrity": "sha512-Y/arvbn+rrz3JCKl9C4kVNfTfSm2/mEp5FSz5EsZSANGPSlQrpRI5M4PKF+mJnE52jOO90PnPSc3Ur3bTQw0gA=="
|
||||||
},
|
},
|
||||||
|
"node_modules/unicorn-magic": {
|
||||||
|
"version": "0.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/unicorn-magic/-/unicorn-magic-0.1.0.tgz",
|
||||||
|
"integrity": "sha512-lRfVq8fE8gz6QMBuDM6a+LO3IAzTi05H6gCVaUpir2E1Rwpo4ZUog45KpNXKC/Mn3Yb9UDuHumeFTo9iV/D9FQ==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=18"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/sponsors/sindresorhus"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/universalify": {
|
"node_modules/universalify": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.1.tgz",
|
||||||
|
@ -1609,9 +1625,9 @@
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/update-browserslist-db": {
|
"node_modules/update-browserslist-db": {
|
||||||
"version": "1.1.3",
|
"version": "1.0.13",
|
||||||
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
|
"resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.13.tgz",
|
||||||
"integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
|
"integrity": "sha512-xebP81SNcPuNpPP3uzeW1NYXxI3rxyJzF3pD6sH4jE7o/IX+WtSpwnVU+qIsDPyk0d3hmFQ7mjqc6AtV604hbg==",
|
||||||
"funding": [
|
"funding": [
|
||||||
{
|
{
|
||||||
"type": "opencollective",
|
"type": "opencollective",
|
||||||
|
@ -1626,10 +1642,9 @@
|
||||||
"url": "https://github.com/sponsors/ai"
|
"url": "https://github.com/sponsors/ai"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"license": "MIT",
|
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"escalade": "^3.2.0",
|
"escalade": "^3.1.1",
|
||||||
"picocolors": "^1.1.1"
|
"picocolors": "^1.0.0"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"update-browserslist-db": "cli.js"
|
"update-browserslist-db": "cli.js"
|
||||||
|
@ -1641,8 +1656,7 @@
|
||||||
"node_modules/util-deprecate": {
|
"node_modules/util-deprecate": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||||
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
|
"integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw=="
|
||||||
"license": "MIT"
|
|
||||||
},
|
},
|
||||||
"node_modules/which": {
|
"node_modules/which": {
|
||||||
"version": "2.0.2",
|
"version": "2.0.2",
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"autoprefixer": "^10.4.21",
|
"autoprefixer": "^10.4.17",
|
||||||
"flowbite": "^2.2.1",
|
"flowbite": "^2.2.1",
|
||||||
"postcss": "^8.5.3",
|
"postcss": "^8.4.33",
|
||||||
"postcss-cli": "^11.0.1",
|
"postcss-cli": "^11.0.0",
|
||||||
"tailwindcss": "^3.4.17"
|
"tailwindcss": "^3.4.13"
|
||||||
},
|
},
|
||||||
"name": "netina.admin.pwa",
|
"name": "netina.admin.pwa",
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
|
|
|
@ -12,5 +12,5 @@
|
||||||
"AdminPanelBaseUrl": "https://admin.hamyanedalat.com",
|
"AdminPanelBaseUrl": "https://admin.hamyanedalat.com",
|
||||||
"StorageBaseUrl": "https://storage.hamyanedalat.com",
|
"StorageBaseUrl": "https://storage.hamyanedalat.com",
|
||||||
"ApiUrl": "https://api.hamyanedalat.com/api",
|
"ApiUrl": "https://api.hamyanedalat.com/api",
|
||||||
"IsShop": true
|
"IsShop": false
|
||||||
}
|
}
|
Loading…
Reference in New Issue