base_ui/components/global/TheContentLoading.vue

116 lines
2.1 KiB
Vue
Raw Normal View History

2025-02-01 09:34:55 +00:00
<template>
<div class="loading-container">
<div class="loading-innter-container">
<div class="co-name">
<div class="lds-ring">
<div></div>
<div></div>
<div></div>
<div></div>
</div>
<h2 v-html="loadingTitle"></h2>
</div>
<div class="description">
<p class="m-0 text-right">لطفا منتظر بمانید...</p>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
loadingTitle: {
default: "در حال بارگزاری",
},
},
};
</script>
<style lang="scss" scoped>
.loading-container {
position: fixed;
left: 0;
top: 10.1em;
right: 14.5em;
bottom: 0;
background-color: #fff;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
z-index: 999999;
&.absolute-positioning {
position: absolute;
right: 0;
left: 0;
top: 0;
bottom: 0;
}
&.table-loading {
position: static;
}
.co-name {
display: flex;
align-items: center;
border-bottom: 1px solid var(--primary);
padding-bottom: 0.5em;
margin-bottom: 0.5em;
padding-left: 2em;
h2 {
font-size: 1rem;
margin: 0;
margin-right: 0.5em;
}
}
.description {
font-size: 0.8rem;
margin: 0;
}
.lds-ring {
display: inline-block;
position: relative;
width: 1.5em;
height: 1.5em;
}
.lds-ring div {
box-sizing: border-box;
display: block;
position: absolute;
width: 1.2em;
height: 1.2em;
margin: 0.1em;
border: 0.1em solid var(--primary);
border-radius: 50%;
animation: lds-ring 1.2s cubic-bezier(0.5, 0, 0.5, 1) infinite;
border-color: var(--primary) transparent transparent transparent;
}
.lds-ring div:nth-child(1) {
animation-delay: -0.45s;
}
.lds-ring div:nth-child(2) {
animation-delay: -0.3s;
}
.lds-ring div:nth-child(3) {
animation-delay: -0.15s;
}
@keyframes lds-ring {
0% {
transform: rotate(0deg);
}
100% {
transform: rotate(360deg);
}
}
}
</style>