add version 1.3.1.0

fix new bugs , add question dialog , add remove for mh and mht
master
Amir Hossein Khademi 2023-11-26 12:32:58 +03:30
parent f9b29fc024
commit 23c5b09451
19 changed files with 240 additions and 63 deletions

View File

@ -1 +1 @@
1.2.1.0
1.3.1.0

View File

@ -7,6 +7,7 @@ namespace DocuMed.Api.Controllers;
[AllowAnonymous]
public class HomeController : Controller
{
[HttpGet]
public IActionResult Index()
{
return View("Index", new IndexModel());

View File

@ -26,7 +26,7 @@ public class MedicalHistoryController : ICarterModule
group.MapPut("", Put)
.HasApiVersion(1.0);
group.MapDelete("", Delete)
group.MapDelete("{id}", Delete)
.HasApiVersion(1.0);
}
@ -64,7 +64,7 @@ public class MedicalHistoryController : ICarterModule
}
// DELETE:Delete Entity
public virtual async Task<IResult> Delete(int id, IRepositoryWrapper repositoryWrapper, CancellationToken cancellationToken)
public virtual async Task<IResult> Delete(Guid id, IRepositoryWrapper repositoryWrapper, CancellationToken cancellationToken)
{
var ent = await repositoryWrapper.SetRepository<MedicalHistory>().GetByIdAsync(cancellationToken, id);
repositoryWrapper.SetRepository<MedicalHistory>().Delete(ent);

View File

@ -23,7 +23,7 @@ public class MedicalHistoryTemplateController : ICarterModule
group.MapPut("", Put)
.HasApiVersion(1.0);
group.MapDelete("", Delete)
group.MapDelete("{id}", Delete)
.HasApiVersion(1.0);
}
@ -54,7 +54,7 @@ public class MedicalHistoryTemplateController : ICarterModule
}
// DELETE:Delete Entity
public virtual async Task<IResult> Delete(int id, IRepositoryWrapper repositoryWrapper, CancellationToken cancellationToken)
public virtual async Task<IResult> Delete(Guid id, IRepositoryWrapper repositoryWrapper, CancellationToken cancellationToken)
{
var ent = await repositoryWrapper.SetRepository<MedicalHistoryTemplate>().GetByIdAsync(cancellationToken, id);
repositoryWrapper.SetRepository<MedicalHistoryTemplate>().Delete(ent);

View File

@ -6,8 +6,8 @@
<ImplicitUsings>enable</ImplicitUsings>
<DockerDefaultTargetOS>Linux</DockerDefaultTargetOS>
<DockerComposeProjectPath>..\docker-compose.dcproj</DockerComposeProjectPath>
<AssemblyVersion>1.2.1.0</AssemblyVersion>
<FileVersion>1.2.1.0</FileVersion>
<AssemblyVersion>1.3.1.0</AssemblyVersion>
<FileVersion>1.3.1.0</FileVersion>
</PropertyGroup>
<ItemGroup>

View File

@ -13,7 +13,7 @@
"IIS Express": {
"commandName": "IISExpress",
"launchBrowser": true,
"launchUrl": "swagger",
"launchUrl": "",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
@ -21,7 +21,7 @@
"Docker": {
"commandName": "Docker",
"launchBrowser": true,
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}/swagger",
"launchUrl": "{Scheme}://{ServiceHost}:{ServicePort}",
"environmentVariables": {
"ASPNETCORE_URLS": "http://+:80"
},

View File

@ -7,8 +7,8 @@
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<ServiceWorkerAssetsManifest>service-worker-assets.js</ServiceWorkerAssetsManifest>
<AssemblyVersion>1.2.1.0</AssemblyVersion>
<FileVersion>1.2.1.0</FileVersion>
<AssemblyVersion>1.3.1.0</AssemblyVersion>
<FileVersion>1.3.1.0</FileVersion>
</PropertyGroup>
<ItemGroup>

View File

@ -4,10 +4,12 @@
@inject IRestWrapper RestWrapper
@inject ISnackbar Snackbar
@inject IUserUtility UserUtility
@inject IDialogService DialogService
@inject IJSRuntime JsRuntime
<BasePageUi Title="افزودن یک شرحال جدید" Description="لطفا اطلاعات بیمار را با دقت کامل وارد کنید">
<div class="flex flex-col w-full h-full rounded-t-xl p-1">
<div class="flex flex-col w-full h-full rounded-t-xl p-2">
<MudCarousel class="flex-grow w-full h-full overflow-x-hidden overflow-y-scroll" @ref="@ViewModel.Carousel" ShowArrows="false"
ShowBullets="false" EnableSwipeGesture="false" AutoCycle="false" TData="object">
@ -16,6 +18,7 @@
<div class="flex flex-col w-full h-full p-4">
<MedicalHistoryActionStep1 @bind-ChiefComplaint="@ViewModel.PageDto.ChiefComplaint"
DeleteClicked="@ViewModel.DeleteMedicalHistoryAsync"
IsEditing="@ViewModel.IsEditing"
@bind-SelectedTemplate="@ViewModel.SelectedTemplate"
@bind-SelectedSection="@ViewModel.SelectedSelection"
@bind-PatientAge="@ViewModel.PageDto.Age"
@ -103,7 +106,7 @@
}
<p class="my-auto text-lg font-extrabold text-center grow">@ViewModel.StepCounter</p>
<MudButton @onclick="@ViewModel.RollBackStepClicked" IconSize="Size.Large" EndIcon="@Icons.Material.Filled.ChevronLeft"
<MudButton @onclick="@ViewModel.RollBackStepClicked" Disabled="@ViewModel.DisableBackButton" IconSize="Size.Large" EndIcon="@Icons.Material.Filled.ChevronLeft"
class="font-extrabold rounded-full">مرحله قبل</MudButton>
</MudPaper>
}
@ -118,7 +121,7 @@
protected override async Task OnInitializedAsync()
{
ViewModel = Guid.TryParse(MedicalHistoryId, out Guid medicalHistoryId) ?
new MedicalHistoryActionPageViewModel(RestWrapper, NavigationManager, Snackbar, UserUtility, medicalHistoryId)
new MedicalHistoryActionPageViewModel(RestWrapper, NavigationManager, Snackbar, UserUtility, DialogService,JsRuntime, medicalHistoryId)
: new MedicalHistoryActionPageViewModel(RestWrapper, NavigationManager, Snackbar, UserUtility);
await ViewModel.InitializeAsync();

View File

@ -1,4 +1,6 @@
using Mapster;
using DocuMed.PWA.Shared.Dialogs;
using Mapster;
using Microsoft.JSInterop;
namespace DocuMed.PWA.Pages;
@ -9,6 +11,9 @@ public class MedicalHistoryActionPageViewModel : BaseViewModel<MedicalHistoryLDt
private readonly ISnackbar _snackbar;
private readonly IUserUtility _userUtility;
private readonly Guid _medicalHistoryId;
private readonly IDialogService? _dialogService;
private readonly IJSRuntime? _jsRuntime;
public bool DisableBackButton { get; set; } = true;
public MedicalHistoryActionPageViewModel(IRestWrapper restWrapper,
NavigationManager navigationManager,
@ -26,8 +31,12 @@ public class MedicalHistoryActionPageViewModel : BaseViewModel<MedicalHistoryLDt
NavigationManager navigationManager,
ISnackbar snackbar,
IUserUtility userUtility,
IDialogService dialogService,
IJSRuntime jsRuntime,
Guid medicalHistoryId)
{
_dialogService = dialogService;
_jsRuntime = jsRuntime;
_restWrapper = restWrapper;
_navigationManager = navigationManager;
_snackbar = snackbar;
@ -156,6 +165,7 @@ public class MedicalHistoryActionPageViewModel : BaseViewModel<MedicalHistoryLDt
MedicalHistorySubmitted = true;
}
Carousel?.MoveTo(CurrentStep);
DisableBackButton = false;
}
private async Task SelectTemplateAsync()
@ -269,27 +279,42 @@ public class MedicalHistoryActionPageViewModel : BaseViewModel<MedicalHistoryLDt
public async Task DeleteMedicalHistoryAsync()
{
try
{
IsProcessing = true;
var token = await _userUtility.GetBearerTokenAsync();
await _restWrapper.CrudDtoApiRest<MedicalHistoryLDto, MedicalHistorySDto, Guid>(Address.MedicalHistoryController)
.Delete(PageDto.Id, token);
}
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, Severity.Error);
}
finally
if(_dialogService==null)
return;
var options = new DialogOptions { CloseOnEscapeKey = true };
var parameters = new DialogParameters<QuestionDialog>();
parameters.Add(x => x.ContentText, "آیا از حذف شرح حال اطمینان دارید ?");
var dialogReference = await _dialogService.ShowAsync<QuestionDialog>("حذف شرح حال", parameters, options);
var result = await dialogReference.Result;
if (!result.Canceled)
{
IsProcessing = false;
try
{
IsProcessing = true;
var token = await _userUtility.GetBearerTokenAsync();
await _restWrapper.CrudDtoApiRest<MedicalHistoryLDto, MedicalHistorySDto, Guid>(Address.MedicalHistoryController)
.Delete(PageDto.Id, token);
_snackbar.Add("حذف شرح حال با موفقیت انجام شد", Severity.Success);
if (_jsRuntime != null)
await _jsRuntime.InvokeVoidAsync("history.back");
}
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, Severity.Error);
}
finally
{
IsProcessing = false;
}
}
}
@ -299,6 +324,8 @@ public class MedicalHistoryActionPageViewModel : BaseViewModel<MedicalHistoryLDt
return;
Carousel?.MoveTo(--CurrentStep);
StepCounter = $"{CurrentStep + 1} / 5";
if (CurrentStep == 0)
DisableBackButton = true;
}
public void CompleteCreateMedicalHistory()

View File

@ -1,11 +1,8 @@
@inject IRestWrapper RestWrapper
@inject IUserUtility UserUtility
<MudStack class="my-auto text-center font-iranyekan">
<MudStack class="my-auto text-center font-iranyekan pb-20">
<p class="text-lg font-extrabold">افزودن شرح حال جدید</p>
<p class="text-center text-md">
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از
طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی
مورد ده
<p class="text-center text-md">شرح حال بیمار را در مراحل مختلف و اطلاعات را با دقت وارد نمایید ، در مرحله اخر میتوانید شرحال کامل را مشاهده کنید
</p>
<BasePartDivider Index="1" Title="شکایت اصلی بیمار" />
@ -17,6 +14,7 @@
T="string" Label="نام خانوادگی بیمار" Variant="Variant.Outlined" class="text-sm my-5" />
<MudNumericField Required="true" RequiredError="سن بیمار خود را وارد کنید" Value="@PatientAge"
ValueChanged="async detail => { PatientAge = detail; await PatientAgeChanged.InvokeAsync(detail); }"
Min="0"
T="int" Label="سن بیمار" Variant="Variant.Outlined" />
@ -68,13 +66,14 @@
</MudFocusTrap>
@if (IsEditing)
{
<BaseButtonUi Icon="@Icons.Material.TwoTone.Close"
@onclick="@DeleteClicked" Content="حذف شرح حال" Variant="Variant.Outlined" Color="Color.Error" />
}
</MudForm>
@if (IsEditing)
{
<BaseButtonUi Icon="@Icons.Material.TwoTone.Close"
@onclick="@DeleteClicked" Content="حذف شرح حال" Variant="Variant.Outlined" Color="Color.Error" />
}
</MudStack>
@code

View File

@ -41,9 +41,10 @@
<MudNumericField Min="0"
Value="@SPO2" ValueChanged="async detail => { SPO2 = detail; await SPO2Changed.InvokeAsync(detail); }"
class="mx-2 my-3" Margin="Margin.Dense" Label="اکسیژن" T="double" Variant="Variant.Outlined" />
class="mx-2 my-3" Margin="Margin.Dense" Max="100" Label="اکسیژن" T="double" Variant="Variant.Outlined" />
<MudNumericField Value="@Temperature"
Step=".1"
ValueChanged="async detail => { Temperature = detail; await TemperatureChanged.InvokeAsync(detail); }"
Margin="Margin.Dense" class="my-3" Format="F1" Min="0.0" Label="دمای بدن" T="double" Variant="Variant.Outlined" />
</div>

View File

@ -4,17 +4,24 @@
@inject IRestWrapper RestWrapper
@inject IUserUtility UserUtility
@inject ISnackbar Snackbar
@inject IDialogService DialogService
@inject IJSRuntime JsRuntime
<BasePageUi Title="افزودن یک پیش نویس جدید" Description="پیش نویس خود را با دقت وارد کنید">
<div class="flex flex-col w-full h-full rounded-t-xl p-1">
<MudCarousel class="w-full h-full overflow-x-hidden overflow-y-scroll" @ref="@ViewModel.Carousel" ShowArrows="false"
<MudCarousel class="w-full h-full overflow-x-hidden overflow-y-scroll"
@ref="@ViewModel.Carousel"
ShowArrows="false"
ShowBullets="false" EnableSwipeGesture="false" AutoCycle="false" TData="object">
<MudCarouselItem>
<div class="flex flex-col w-full h-full p-4">
<MedicalHistoryTemplateActionStep1 @bind-ChiefComplaint="@ViewModel.PageDto.ChiefComplaint" @bind-SelectedSection="@ViewModel.SelectedSelection" />
<MedicalHistoryTemplateActionStep1
IsEditing="@ViewModel.IsEditing"
DeleteClicked="@ViewModel.DeleteMedicalHistoryTemplateAsync"
@bind-ChiefComplaint="@ViewModel.PageDto.ChiefComplaint" @bind-SelectedSection="@ViewModel.SelectedSelection" />
</div>
</MudCarouselItem>
@ -86,7 +93,7 @@
}
<p class="my-auto text-lg text-[--color-medicalhistory] font-extrabold text-center grow">@ViewModel.StepCounter</p>
<MudButton @onclick="@ViewModel.RollBackStepClicked" IconSize="Size.Large" EndIcon="@Icons.Material.Filled.ChevronLeft"
<MudButton @onclick="@ViewModel.RollBackStepClicked" Disabled="@ViewModel.DisableBackButton" IconSize="Size.Large" EndIcon="@Icons.Material.Filled.ChevronLeft"
class="font-extrabold text-[--color-medicalhistory] rounded-full">مرحله قبل</MudButton>
</MudPaper>
}
@ -102,7 +109,7 @@
protected override async Task OnInitializedAsync()
{
ViewModel = Guid.TryParse(TemplateId, out Guid templateId) ?
new MedicalHistoryTemplateActionPageViewModel(NavigationManager, Snackbar, RestWrapper, UserUtility, templateId)
new MedicalHistoryTemplateActionPageViewModel(NavigationManager, Snackbar, RestWrapper, UserUtility, DialogService,JsRuntime, templateId)
: new MedicalHistoryTemplateActionPageViewModel(NavigationManager, Snackbar, RestWrapper, UserUtility);
await ViewModel.InitializeAsync();
await base.OnInitializedAsync();

View File

@ -1,4 +1,7 @@
namespace DocuMed.PWA.Pages;
using DocuMed.PWA.Shared.Dialogs;
using Microsoft.JSInterop;
namespace DocuMed.PWA.Pages;
public class MedicalHistoryTemplateActionPageViewModel : BaseViewModel<MedicalHistoryTemplateLDto>
{
@ -6,12 +9,15 @@ public class MedicalHistoryTemplateActionPageViewModel : BaseViewModel<MedicalHi
private readonly ISnackbar _snackbar;
private readonly IRestWrapper _restWrapper;
private readonly IUserUtility _userUtility;
private readonly IDialogService? _dialogService;
private readonly IJSRuntime? _jsRuntime;
private readonly Guid _templateId;
public MudCarousel<object>? Carousel { get; set; }
public bool MedicalHistorySubmitted { get; set; }
public int CurrentStep { get; set; } = 0;
public string StepCounter { get; set; } = "1 / 5";
public bool IsEditing { get; set; } = false;
public bool DisableBackButton { get; set; } = true;
public List<MedicalHistoryQuestionSDto> PiQuestions { get; set; } = new();
public List<MedicalHistoryQuestionSDto> PdhQuestions { get; set; } = new();
@ -43,12 +49,16 @@ public class MedicalHistoryTemplateActionPageViewModel : BaseViewModel<MedicalHi
ISnackbar snackbar,
IRestWrapper restWrapper,
IUserUtility userUtility,
IDialogService dialogService,
IJSRuntime jsRuntime,
Guid templateId)
{
_navigationManager = navigationManager;
_snackbar = snackbar;
_restWrapper = restWrapper;
_userUtility = userUtility;
_dialogService = dialogService;
_jsRuntime = jsRuntime;
_templateId = templateId;
IsEditing = true;
}
@ -95,6 +105,46 @@ public class MedicalHistoryTemplateActionPageViewModel : BaseViewModel<MedicalHi
await base.InitializeAsync();
}
public async Task DeleteMedicalHistoryTemplateAsync()
{
if (_dialogService == null)
return;
var options = new DialogOptions { CloseOnEscapeKey = true };
var parameters = new DialogParameters<QuestionDialog>();
parameters.Add(x => x.ContentText, "آیا از حذف پیش نویس شرح حال اطمینان دارید ?");
var dialogReference = await _dialogService.ShowAsync<QuestionDialog>("حذف پیش نویس", parameters, options);
var result = await dialogReference.Result;
if (!result.Canceled)
{
try
{
IsProcessing = true;
var token = await _userUtility.GetBearerTokenAsync();
await _restWrapper.CrudDtoApiRest<MedicalHistoryTemplateLDto, MedicalHistoryTemplate, Guid>(Address.MedicalHistoryTemplateController)
.Delete(PageDto.Id, token);
_snackbar.Add("حذف پیش نویس با موفقیت انجام شد", Severity.Success);
if (_jsRuntime != null)
await _jsRuntime.InvokeVoidAsync("history.back");
}
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, Severity.Error);
}
finally
{
IsProcessing = false;
}
}
}
public async Task CompleteStepClicked()
{
++CurrentStep;
@ -108,6 +158,7 @@ public class MedicalHistoryTemplateActionPageViewModel : BaseViewModel<MedicalHi
MedicalHistorySubmitted = true;
}
Carousel?.MoveTo(CurrentStep);
DisableBackButton = false;
}
public async Task SubmitTemplateAsync()
@ -187,10 +238,12 @@ public class MedicalHistoryTemplateActionPageViewModel : BaseViewModel<MedicalHi
}
public void RollBackStepClicked()
{
if(CurrentStep==0)
if (CurrentStep == 0)
return;
Carousel?.MoveTo(--CurrentStep);
StepCounter = $"{CurrentStep + 1} / 5";
if (CurrentStep == 0)
DisableBackButton = true;
}
public void SubmitCreateTemplateAsync()

View File

@ -1,25 +1,27 @@
@inject IRestWrapper RestWrapper
@inject IUserUtility UserUtility
<MudStack class="my-auto text-center font-iranyekan">
<MudStack class="my-auto text-center font-iranyekan pb-20">
<div class="-mb-5">
<dotlottie-player src="https://lottie.host/e7dc67f6-baa3-44c1-b136-3b6e04685fb1/pb8uFg7FnQ.json"
background="transparent" speed="1" class="m-auto w-64 h-64" loop autoplay />
</div>
<p class="text-lg font-extrabold">افزودن پیش نویس شرح حال جدید</p>
<p class="text-center text-md">
لورم ایپسوم متن ساختگی با تولید سادگی نامفهوم از صنعت چاپ و با استفاده از
طراحان گرافیک است چاپگرها و متون بلکه روزنامه و مجله در ستون و سطرآنچنان که لازم است و برای شرایط فعلی تکنولوژی
مورد ده
<p class="text-center text-md">اطلاعات هر بخش شرح حال را میتوانید به صورت پیش نویس وارد کنید و در شرح حال نویسی خود را سریع و کارامد کنید
</p>
<BasePartDivider Index="1" Title="شکایت اصلی بیمار" />
<MudTextField T="string" Value="@ChiefComplaint" ValueChanged="async cc => {ChiefComplaint=cc; await ChiefComplaintChanged.InvokeAsync(ChiefComplaint); }"
Label="شکایت اصلی بیمار ( CC )" Variant="Variant.Outlined" Margin="Margin.Normal" />
<BasePartDivider Index="1" Title="شکایت اصلی بیمار"/>
<MudTextField T="string" Value="@ChiefComplaint" ValueChanged="async cc => {ChiefComplaint = cc; await ChiefComplaintChanged.InvokeAsync(ChiefComplaint); }"
Label="شکایت اصلی بیمار ( CC )" Variant="Variant.Outlined" Margin="Margin.Normal"/>
<MudAutocomplete Value="@SelectedSection" T="SectionSDto" Label="بخش بیمار" Variant="Variant.Outlined"
ToStringFunc="dto => dto.Name"
SearchFunc="@SearchSection"
ValueChanged="async dto => { SelectedSection=dto; await SelectedSectionChanged.InvokeAsync(SelectedSection); }">
ValueChanged="async dto => { SelectedSection = dto; await SelectedSectionChanged.InvokeAsync(SelectedSection); }">
<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" />
<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>
@ -29,9 +31,22 @@
<p>@e.Name</p>
</ItemTemplate>
</MudAutocomplete>
@if (IsEditing)
{
<BaseButtonUi Icon="@Icons.Material.TwoTone.Close"
@onclick="@DeleteClicked" Content="حذف شرح حال" Variant="Variant.Outlined" Color="Color.Error" />
}
</MudStack>
@code {
[Parameter]
public EventCallback DeleteClicked { get; set; }
[Parameter]
public bool IsEditing { get; set; }
[Parameter]
public string ChiefComplaint { get; set; } = string.Empty;
[Parameter]

View File

@ -0,0 +1,26 @@
<style>
</style>
<MudDialog>
<DialogContent>
<p>@ContentText</p>
</DialogContent>
<DialogActions>
<div class="flex flex-row w-full mt-3">
<MudButton Color="Color.Info" Variant="Variant.Filled" OnClick="Submit" DisableElevation="true">تایید</MudButton>
<MudButton Variant="Variant.Outlined" Color="Color.Error" OnClick="Cancel" class="mx-4">انصراف</MudButton>
</div>
</DialogActions>
</MudDialog>
@code
{
[CascadingParameter]
MudDialogInstance? MudDialog { get; set; }
[Parameter]
public string ContentText { get; set; } = string.Empty;
void Submit() => MudDialog?.Close(DialogResult.Ok(true));
void Cancel() => MudDialog?.Cancel();
}

View File

@ -42,6 +42,13 @@
{
MudTheme MyCustomTheme = new MudTheme()
{
Typography = new Typography()
{
Default = new Default()
{
FontFamily = new[] { "iranyekan" }
}
},
Palette = new PaletteLight()
{
Primary = "#356859",

View File

@ -97,9 +97,12 @@
}
.mud-dialog-title {
font-family: iranyekan !important;
}
h1:focus {
outline: none;
outline: none;
}
a, .btn-link {

View File

@ -583,6 +583,9 @@ video {
.-mb-3 {
margin-bottom: -0.75rem;
}
.-mb-5 {
margin-bottom: -1.25rem;
}
.-mb-8 {
margin-bottom: -2rem;
}
@ -709,6 +712,9 @@ video {
.h-60 {
height: 15rem;
}
.h-64 {
height: 16rem;
}
.h-7 {
height: 1.75rem;
}
@ -745,6 +751,9 @@ video {
.w-60 {
width: 15rem;
}
.w-64 {
width: 16rem;
}
.w-7 {
width: 1.75rem;
}
@ -921,6 +930,9 @@ video {
.p-1 {
padding: 0.25rem;
}
.p-2 {
padding: 0.5rem;
}
.p-4 {
padding: 1rem;
}
@ -1155,9 +1167,12 @@ video {
}
.mud-dialog-title {
font-family: iranyekan !important;
}
h1:focus {
outline: none;
outline: none;
}
a, .btn-link {

View File

@ -657,6 +657,10 @@ video {
margin-bottom: -0.75rem;
}
.-mb-5 {
margin-bottom: -1.25rem;
}
.-mb-8 {
margin-bottom: -2rem;
}
@ -825,6 +829,10 @@ video {
height: 15rem;
}
.h-64 {
height: 16rem;
}
.h-7 {
height: 1.75rem;
}
@ -873,6 +881,10 @@ video {
width: 15rem;
}
.w-64 {
width: 16rem;
}
.w-7 {
width: 1.75rem;
}
@ -1103,6 +1115,10 @@ video {
padding: 0.25rem;
}
.p-2 {
padding: 0.5rem;
}
.p-4 {
padding: 1rem;
}
@ -1411,6 +1427,10 @@ video {
url('../assets/fonts/ttf/iranyekanwebextrablackfanum.ttf') format('truetype');
}
.mud-dialog-title {
font-family: iranyekan !important;
}
h1:focus {
outline: none;
}