first commit
This commit is contained in:
2090
resources/assets/vendor/fonts/bootstrap-icons.scss
vendored
Normal file
2090
resources/assets/vendor/fonts/bootstrap-icons.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
resources/assets/vendor/fonts/bootstrap-icons/bootstrap-icons.woff
vendored
Normal file
BIN
resources/assets/vendor/fonts/bootstrap-icons/bootstrap-icons.woff
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/bootstrap-icons/bootstrap-icons.woff2
vendored
Normal file
BIN
resources/assets/vendor/fonts/bootstrap-icons/bootstrap-icons.woff2
vendored
Normal file
Binary file not shown.
7
resources/assets/vendor/fonts/fontawesome.scss
vendored
Normal file
7
resources/assets/vendor/fonts/fontawesome.scss
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
$fa-font-path: 'fontawesome';
|
||||
$fa-font-size-base: 16px;
|
||||
|
||||
@import '@fortawesome/fontawesome-free/scss/fontawesome';
|
||||
@import '@fortawesome/fontawesome-free/scss/regular';
|
||||
@import '@fortawesome/fontawesome-free/scss/solid';
|
||||
@import '@fortawesome/fontawesome-free/scss/brands';
|
BIN
resources/assets/vendor/fonts/fontawesome/fa-brands-400.ttf
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-brands-400.ttf
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-brands-400.woff2
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-brands-400.woff2
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-regular-400.ttf
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-regular-400.ttf
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-regular-400.woff2
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-regular-400.woff2
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-solid-900.ttf
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-solid-900.ttf
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-solid-900.woff2
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-solid-900.woff2
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-v4compatibility.ttf
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-v4compatibility.ttf
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/fontawesome/fa-v4compatibility.woff2
vendored
Normal file
BIN
resources/assets/vendor/fonts/fontawesome/fa-v4compatibility.woff2
vendored
Normal file
Binary file not shown.
21294
resources/assets/vendor/fonts/tabler-icons.scss
vendored
Normal file
21294
resources/assets/vendor/fonts/tabler-icons.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.eot
vendored
Normal file
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.eot
vendored
Normal file
Binary file not shown.
6384
resources/assets/vendor/fonts/tabler/tabler-icons.svg
vendored
Normal file
6384
resources/assets/vendor/fonts/tabler/tabler-icons.svg
vendored
Normal file
File diff suppressed because one or more lines are too long
After Width: | Height: | Size: 5.4 MiB |
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.ttf
vendored
Normal file
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.ttf
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.woff
vendored
Normal file
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.woff
vendored
Normal file
Binary file not shown.
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.woff2
vendored
Normal file
BIN
resources/assets/vendor/fonts/tabler/tabler-icons.woff2
vendored
Normal file
Binary file not shown.
101
resources/assets/vendor/js/_template-customizer/_template-customizer.html
vendored
Normal file
101
resources/assets/vendor/js/_template-customizer/_template-customizer.html
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
<div id="template-customizer" class="bg-card">
|
||||
<a href="javascript:void(0)" class="template-customizer-open-btn" tabindex="-1"></a>
|
||||
|
||||
<div class="p-6 m-0 lh-1 border-bottom template-customizer-header position-relative py-4">
|
||||
<h6 class="template-customizer-t-panel_header mb-1"></h6>
|
||||
<p class="template-customizer-t-panel_sub_header mb-0 small"></p>
|
||||
<div class="d-flex align-items-center gap-2 position-absolute end-0 top-0 mt-6 me-5">
|
||||
<a
|
||||
href="javascript:void(0)"
|
||||
class="template-customizer-reset-btn text-heading"
|
||||
data-bs-toggle="tooltip"
|
||||
data-bs-placement="bottom"
|
||||
title="Reset Customizer"
|
||||
><i class="ti ti-refresh ti-lg"></i
|
||||
><span class="badge rounded-pill bg-danger badge-dot badge-notifications d-none"></span
|
||||
></a>
|
||||
<a href="javascript:void(0)" class="template-customizer-close-btn fw-light text-heading" tabindex="-1">
|
||||
<i class="ti ti-x ti-lg"></i>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="template-customizer-inner pt-6">
|
||||
<!-- Theming -->
|
||||
<div class="template-customizer-theming">
|
||||
<h5 class="m-0 px-6 py-6">
|
||||
<span class="template-customizer-t-theming_header bg-label-primary rounded-1 py-1 px-3 small"></span>
|
||||
</h5>
|
||||
|
||||
<!-- Style -->
|
||||
<div class="m-0 px-6 pb-6 template-customizer-style w-100">
|
||||
<label for="customizerStyle" class="form-label d-block template-customizer-t-style_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-styles-options"></div>
|
||||
</div>
|
||||
|
||||
<!-- Themes -->
|
||||
<div class="m-0 px-6 template-customizer-themes w-100">
|
||||
<label for="customizerTheme" class="form-label template-customizer-t-theme_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-themes-options"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--/ Theming -->
|
||||
|
||||
<!-- Layout -->
|
||||
<div class="template-customizer-layout">
|
||||
<hr class="m-0 px-6 my-6" />
|
||||
<h5 class="m-0 px-6 pb-6">
|
||||
<span class="template-customizer-t-layout_header bg-label-primary rounded-2 py-1 px-3 small"></span>
|
||||
</h5>
|
||||
|
||||
<!-- Layout(Menu) -->
|
||||
<div class="m-0 px-6 pb-6 d-block template-customizer-layouts">
|
||||
<label for="customizerStyle" class="form-label d-block template-customizer-t-layout_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-layouts-options">
|
||||
<!--? Uncomment If using offcanvas layout -->
|
||||
<!-- <div class="col-12">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="layoutRadios" id="layoutRadios-offcanvas"
|
||||
value="static-offcanvas">
|
||||
<label class="form-check-label template-customizer-t-layout_offcanvas"
|
||||
for="layoutRadios-offcanvas"></label>
|
||||
</div>
|
||||
</div> -->
|
||||
<!-- <div class="col-12">
|
||||
<div class="form-check">
|
||||
<input class="form-check-input" type="radio" name="layoutRadios" id="layoutRadios-fixed_offcanvas"
|
||||
value="fixed-offcanvas">
|
||||
<label class="form-check-label template-customizer-t-layout_fixed_offcanvas"
|
||||
for="layoutRadios-fixed_offcanvas"></label>
|
||||
</div>
|
||||
</div> -->
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Header Options for Horizontal -->
|
||||
<div class="m-0 px-6 pb-6 template-customizer-headerOptions w-100">
|
||||
<label for="customizerHeader" class="form-label template-customizer-t-layout_header_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-header-options"></div>
|
||||
</div>
|
||||
|
||||
<!-- Fixed navbar -->
|
||||
<div class="m-0 px-6 pb-6 template-customizer-layoutNavbarOptions w-100">
|
||||
<label for="customizerNavbar" class="form-label template-customizer-t-layout_navbar_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-navbar-options"></div>
|
||||
</div>
|
||||
|
||||
<!-- Content -->
|
||||
<div class="m-0 px-6 pb-6 template-customizer-content w-100">
|
||||
<label for="customizerContent" class="form-label template-customizer-t-content_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-content-options"></div>
|
||||
</div>
|
||||
|
||||
<!-- Directions -->
|
||||
<div class="m-0 px-6 pb-6 template-customizer-directions w-100">
|
||||
<label for="customizerDirection" class="form-label template-customizer-t-direction_label mb-2"></label>
|
||||
<div class="row px-1 template-customizer-directions-options"></div>
|
||||
</div>
|
||||
</div>
|
||||
<!--/ Layout -->
|
||||
</div>
|
||||
</div>
|
342
resources/assets/vendor/js/_template-customizer/_template-customizer.scss
vendored
Normal file
342
resources/assets/vendor/js/_template-customizer/_template-customizer.scss
vendored
Normal file
@ -0,0 +1,342 @@
|
||||
/*
|
||||
* Template Customizer Style
|
||||
**/
|
||||
|
||||
$customizer-width: 400px;
|
||||
$customizer-width-sm: 300px;
|
||||
$customizer-hide-width: 1200px;
|
||||
$customizer-spacer: 20px;
|
||||
$customizer-font-size: inherit;
|
||||
|
||||
$open-btn-size: 38px;
|
||||
$open-btn-spacer: 0;
|
||||
$open-btn-font-size: 18px;
|
||||
$open-btn-top: 180px;
|
||||
$open-btn-top-md: 145px;
|
||||
|
||||
$open-btn-bg: var(--bs-primary);
|
||||
$open-btn-bg-dark: var(--bs-primary);
|
||||
$open-btn-color: #fff;
|
||||
$open-btn-border-radius: 0.375rem;
|
||||
$open-customizer-primary-color: var(--bs-primary);
|
||||
|
||||
#template-customizer {
|
||||
font-family: 'Public Sans', BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif,
|
||||
'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol' !important;
|
||||
font-size: $customizer-font-size !important;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
right: 0;
|
||||
height: 100%;
|
||||
z-index: 99999999;
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-orient: vertical;
|
||||
-webkit-box-direction: normal;
|
||||
-ms-flex-direction: column;
|
||||
flex-direction: column;
|
||||
width: $customizer-width;
|
||||
-webkit-box-shadow: 0px 5px 30px 0px rgba(47, 43, 61, 0.18);
|
||||
box-shadow: 0px 5px 30px 0px rgba(47, 43, 61, 0.18);
|
||||
-webkit-transition: all 0.2s ease-in;
|
||||
-o-transition: all 0.2s ease-in;
|
||||
transition: all 0.2s ease-in;
|
||||
-webkit-transform: translateX($customizer-width + $customizer-spacer);
|
||||
-ms-transform: translateX($customizer-width + $customizer-spacer);
|
||||
transform: translateX($customizer-width + $customizer-spacer);
|
||||
|
||||
.dark-style & {
|
||||
-webkit-box-shadow: 0px 5px 30px 0px rgba(19, 17, 32, 0.24);
|
||||
box-shadow: 0px 5px 30px 0px rgba(19, 17, 32, 0.24);
|
||||
}
|
||||
|
||||
h5 {
|
||||
position: relative;
|
||||
font-size: 11px;
|
||||
}
|
||||
|
||||
> h5 {
|
||||
flex: 0 0 auto;
|
||||
}
|
||||
|
||||
.disabled {
|
||||
color: #d1d2d3 !important;
|
||||
}
|
||||
.form-label {
|
||||
font-size: 0.9375rem;
|
||||
}
|
||||
.form-check-label {
|
||||
font-size: 0.8125rem;
|
||||
}
|
||||
&.template-customizer-open {
|
||||
-webkit-transition-delay: 0.1s;
|
||||
-o-transition-delay: 0.1s;
|
||||
transition-delay: 0.1s;
|
||||
-webkit-transform: none !important;
|
||||
-ms-transform: none !important;
|
||||
transform: none !important;
|
||||
|
||||
.custom-option.checked {
|
||||
color: $open-customizer-primary-color;
|
||||
border-width: 2px;
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.template-customizer-header {
|
||||
a:hover {
|
||||
color: inherit !important;
|
||||
}
|
||||
}
|
||||
// Customizer button
|
||||
|
||||
.template-customizer-open-btn {
|
||||
position: absolute;
|
||||
top: $open-btn-top;
|
||||
|
||||
@media (max-width: 991.98px) {
|
||||
top: $open-btn-top-md;
|
||||
}
|
||||
left: 0;
|
||||
z-index: -1;
|
||||
display: block;
|
||||
width: $open-btn-size;
|
||||
height: $open-btn-size;
|
||||
border-top-left-radius: $open-btn-border-radius;
|
||||
border-bottom-left-radius: $open-btn-border-radius;
|
||||
background: $open-btn-bg;
|
||||
box-shadow: 0px 2px 6px 0px rgba(115, 103, 240, 0.3);
|
||||
color: $open-btn-color !important;
|
||||
text-align: center;
|
||||
font-size: $open-btn-font-size !important;
|
||||
line-height: $open-btn-size;
|
||||
opacity: 1;
|
||||
-webkit-transition: all 0.1s linear 0.2s;
|
||||
-o-transition: all 0.1s linear 0.2s;
|
||||
transition: all 0.1s linear 0.2s;
|
||||
-webkit-transform: translateX(-($open-btn-size + $customizer-spacer + $open-btn-spacer));
|
||||
-ms-transform: translateX(-($open-btn-size + $customizer-spacer + $open-btn-spacer));
|
||||
transform: translateX(-($open-btn-size + $customizer-spacer + $open-btn-spacer));
|
||||
|
||||
.dark-style & {
|
||||
background: $open-btn-bg-dark;
|
||||
}
|
||||
&::before {
|
||||
content: '';
|
||||
width: 22px;
|
||||
height: 22px;
|
||||
display: block;
|
||||
background-size: 100% 100%;
|
||||
position: absolute;
|
||||
background-image: url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAAAXNSR0IArs4c6QAABClJREFUaEPtmY1RFEEQhbsjUCIQIhAiUCNQIxAiECIQIxAiECIAIpAMhAiECIQI2vquZqnZvp6fhb3SK5mqq6Ju92b69bzXf6is+dI1t1+eAfztG5z1BsxsU0S+ici2iPB3vm5E5EpEDlSVv2dZswFIxv8UkZcNy+5EZGcuEHMCOBeR951uvVDVD53vVl+bE8DvDu8Pxtyo6ta/BsByg1R15Bwzqz5/LJgn34CZwfnPInI4BUB6/1hV0cSjVxcAM4PbcBZjL0XklIPN7Is3fLCkdQPpPYw/VNXj5IhPIvJWRIhSl6p60ULWBGBm30Vk123EwRxCuIzWkkjNrCZywith10ewE1Xdq4GoAjCz/RTXW44Ynt+LyBEfT43kYfbj86J3w5Q32DNcRQDpwF+dkQXDMey8xem0L3TEqB4g3PZWad8agBMRgZPeu96D1/C2Zbh3X0p80Op1xxloztN48bMQQNoc7+eLEuAoPSPiIDY4Ooo+E6ixeNXM+D3GERz2U3CIqMstLJUgJQDe+7eq6mub0NYEkLAKwEHkiBQDCZtddZCZ8d6r7JDwFkoARklHRPZUFVDVZWbwGuNrC4EfdOzFrRABh3Wnqhv+d70AEBLGFROPmeHlnM81G69UdSd6IUuM0GgUVn1uqWmg5EmMfBeEyB7Pe3txBkY+rGT8j0J+WXq/BgDkUCaqLgEAnwcRog0veMIqFAAwCy2wnw+bI2GaGboBgF9k5N0o0rUSGUb4eO0BeO9j/GYhkSHMHMTIqwGARX6p6a+nlPBl8kZuXMD9j6pKfF9aZuaFOdJCEL5D4eYb9wCYVCanrBmGyii/tIq+SLj/HQBCaM5bLzwfPqdQ6FpVHyra4IbuVbXaY7dETC2ESPNNWiIOi69CcdgSMXsh4tNSUiklMgwmC0aNd08Y5WAES6HHehM4gu97wyhBgWpgqXsrASglprDy7CwhehMZOSbK6JMSma+Fio1KltCmlBIj7gfZOGx8ppQSXrhzFnOhJ/31BDkjFHRvOd09x0mRBA9SFgxUgHpQg0q0t5ymPMlL+EnldFTfDA0NAmf+OTQ0X0sRouf7NNkYGhrOYNrxtIaGg83MNzVDSe3LXLhP7O/yrCsCz1zlWTpjWkuZAOBpX3yVnLqI1yLCOKU6qMrmP7SSrUEw54XF4WBIK5FxCMOr3lVsfGqNSmPzBXUnJTIX1jyVBq9wO6UObOpgC5GjO98vFKnTdQMZXxEsWZlDiCZMIxAbNxQOqlpVZtobejBaZNoBnRDzMFpkxvTQOD36BlrcySZuI6p1ACB6LU3wWuf5581+oHfD1vi89bz3nFUC8Nm7ZlP3nKkFbM4bWPt/MSFwklprYItwt6cmvpWJ2IVcQBCz6bLysSCv3SaANCiTsnaNRrNRqMXVVT1/BrAqz/buu/Y38Ad3KC5PARej0QAAAABJRU5ErkJggg==');
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
|
||||
// Customizer Hidden
|
||||
.customizer-hide & {
|
||||
display: none;
|
||||
}
|
||||
|
||||
[dir='rtl'] & {
|
||||
border-radius: 0;
|
||||
border-top-right-radius: $open-btn-border-radius;
|
||||
border-bottom-right-radius: $open-btn-border-radius;
|
||||
|
||||
&::before {
|
||||
margin-left: -2px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.template-customizer-open .template-customizer-open-btn {
|
||||
opacity: 0;
|
||||
-webkit-transition-delay: 0s;
|
||||
-o-transition-delay: 0s;
|
||||
transition-delay: 0s;
|
||||
-webkit-transform: none !important;
|
||||
-ms-transform: none !important;
|
||||
transform: none !important;
|
||||
}
|
||||
|
||||
// Customizer inner
|
||||
.template-customizer-inner {
|
||||
position: relative;
|
||||
overflow: auto;
|
||||
-webkit-box-flex: 0;
|
||||
-ms-flex: 0 1 auto;
|
||||
flex: 0 1 auto;
|
||||
opacity: 1;
|
||||
-webkit-transition: opacity 0.2s;
|
||||
-o-transition: opacity 0.2s;
|
||||
transition: opacity 0.2s;
|
||||
|
||||
> div:first-child {
|
||||
> hr:first-of-type {
|
||||
display: none !important;
|
||||
}
|
||||
> h5:first-of-type {
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Theme
|
||||
.template-customizer-themes-inner {
|
||||
position: relative;
|
||||
opacity: 1;
|
||||
-webkit-transition: opacity 0.2s;
|
||||
-o-transition: opacity 0.2s;
|
||||
transition: opacity 0.2s;
|
||||
}
|
||||
|
||||
.template-customizer-theme-item {
|
||||
display: -webkit-box;
|
||||
display: -ms-flexbox;
|
||||
display: flex;
|
||||
-webkit-box-align: center;
|
||||
align-items: center;
|
||||
-ms-flex-align: center;
|
||||
-webkit-box-flex: 1;
|
||||
-ms-flex: 1 1 100%;
|
||||
flex: 1 1 100%;
|
||||
-webkit-box-pack: justify;
|
||||
-ms-flex-pack: justify;
|
||||
justify-content: space-between;
|
||||
margin-bottom: 10px;
|
||||
padding: 0 24px;
|
||||
width: 100%;
|
||||
cursor: pointer;
|
||||
|
||||
input {
|
||||
position: absolute;
|
||||
z-index: -1; // Put the input behind the label so it doesn't overlay text
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
input ~ span {
|
||||
opacity: 0.25;
|
||||
-webkit-transition: all 0.2s;
|
||||
-o-transition: all 0.2s;
|
||||
transition: all 0.2s;
|
||||
}
|
||||
|
||||
.template-customizer-theme-checkmark {
|
||||
display: inline-block;
|
||||
width: 6px;
|
||||
height: 12px;
|
||||
border-right: 1px solid;
|
||||
border-bottom: 1px solid;
|
||||
opacity: 0;
|
||||
-webkit-transition: all 0.2s;
|
||||
-o-transition: all 0.2s;
|
||||
transition: all 0.2s;
|
||||
-webkit-transform: rotate(45deg);
|
||||
-ms-transform: rotate(45deg);
|
||||
transform: rotate(45deg);
|
||||
|
||||
[dir='rtl'] & {
|
||||
border-right: none;
|
||||
border-left: 1px solid;
|
||||
-webkit-transform: rotate(-45deg);
|
||||
-ms-transform: rotate(-45deg);
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
input:checked:not([disabled]) ~ span,
|
||||
&:hover input:not([disabled]) ~ span {
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
input:checked:not([disabled]) ~ span .template-customizer-theme-checkmark {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
.template-customizer-theme-colors {
|
||||
span {
|
||||
display: block;
|
||||
margin: 0 1px;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
border-radius: 50%;
|
||||
-webkit-box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.1) inset;
|
||||
}
|
||||
}
|
||||
|
||||
&.template-customizer-loading .template-customizer-inner,
|
||||
&.template-customizer-loading-theme .template-customizer-themes-inner {
|
||||
opacity: 0.2;
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
z-index: 999;
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
}
|
||||
@media (max-width: $customizer-hide-width) {
|
||||
#template-customizer {
|
||||
display: none;
|
||||
visibility: hidden !important;
|
||||
}
|
||||
}
|
||||
@media (max-width: 575.98px) {
|
||||
#template-customizer {
|
||||
width: $customizer-width-sm;
|
||||
-webkit-transform: translateX($customizer-width-sm + $customizer-spacer);
|
||||
-ms-transform: translateX($customizer-width-sm + $customizer-spacer);
|
||||
transform: translateX($customizer-width-sm + $customizer-spacer);
|
||||
}
|
||||
}
|
||||
|
||||
.layout-menu-100vh #template-customizer {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
// RTL
|
||||
//
|
||||
|
||||
[dir='rtl'] {
|
||||
#template-customizer {
|
||||
right: auto;
|
||||
left: 0;
|
||||
-webkit-transform: translateX(-($customizer-width + $customizer-spacer));
|
||||
-ms-transform: translateX(-($customizer-width + $customizer-spacer));
|
||||
transform: translateX(-($customizer-width + $customizer-spacer));
|
||||
}
|
||||
|
||||
#template-customizer .template-customizer-open-btn {
|
||||
right: 0;
|
||||
left: auto;
|
||||
-webkit-transform: translateX($open-btn-size + $customizer-spacer + $open-btn-spacer);
|
||||
-ms-transform: translateX($open-btn-size + $customizer-spacer + $open-btn-spacer);
|
||||
transform: translateX($open-btn-size + $customizer-spacer + $open-btn-spacer);
|
||||
}
|
||||
|
||||
#template-customizer .template-customizer-close-btn {
|
||||
right: auto;
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
#template-customizer .template-customizer-layouts-options[disabled] {
|
||||
opacity: 0.5;
|
||||
pointer-events: none;
|
||||
}
|
||||
|
||||
// ! FIX: mode switch position in RTL
|
||||
[dir='rtl'] {
|
||||
.template-customizer-t-style_switch_light {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
}
|
7
resources/assets/vendor/js/bootstrap.js
vendored
Normal file
7
resources/assets/vendor/js/bootstrap.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import * as bootstrap from 'bootstrap'
|
||||
|
||||
try {
|
||||
window.bootstrap = bootstrap
|
||||
} catch (e) {}
|
||||
|
||||
export { bootstrap }
|
73
resources/assets/vendor/js/dropdown-hover.js
vendored
Normal file
73
resources/assets/vendor/js/dropdown-hover.js
vendored
Normal file
@ -0,0 +1,73 @@
|
||||
// Add onHover event for dropdowns
|
||||
|
||||
;(function ($) {
|
||||
if (!$ || !$.fn) return
|
||||
|
||||
const SELECTOR = '[data-bs-toggle=dropdown][data-trigger=hover]'
|
||||
const TIMEOUT = 150
|
||||
|
||||
function openDropdown($i) {
|
||||
let t = $i.data('dd-timeout')
|
||||
|
||||
if (t) {
|
||||
clearTimeout(t)
|
||||
t = null
|
||||
$i.data('dd-timeout', t)
|
||||
}
|
||||
|
||||
if ($i.attr('aria-expanded') !== 'true') $i.dropdown('toggle')
|
||||
}
|
||||
|
||||
function closeDropdown($i) {
|
||||
let t = $i.data('dd-timeout')
|
||||
|
||||
if (t) clearTimeout(t)
|
||||
|
||||
t = setTimeout(() => {
|
||||
let t2 = $i.data('dd-timeout')
|
||||
|
||||
if (t2) {
|
||||
clearTimeout(t2)
|
||||
t2 = null
|
||||
$i.data('dd-timeout', t2)
|
||||
}
|
||||
|
||||
if ($i.attr('aria-expanded') === 'true') $i.dropdown('toggle')
|
||||
}, TIMEOUT)
|
||||
|
||||
$i.data('dd-timeout', t)
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$('body')
|
||||
.on('mouseenter', `${SELECTOR}, ${SELECTOR} ~ .dropdown-menu`, function () {
|
||||
const $toggle = $(this).hasClass('dropdown-toggle') ? $(this) : $(this).prev('.dropdown-toggle')
|
||||
const $dropdown = $(this).hasClass('dropdown-menu') ? $(this) : $(this).next('.dropdown-menu')
|
||||
|
||||
if (window.getComputedStyle($dropdown[0], null).getPropertyValue('position') === 'static') return
|
||||
|
||||
// Set hovered flag
|
||||
if ($(this).is(SELECTOR)) {
|
||||
$(this).data('hovered', true)
|
||||
}
|
||||
|
||||
openDropdown($(this).hasClass('dropdown-toggle') ? $(this) : $(this).prev('.dropdown-toggle'))
|
||||
})
|
||||
.on('mouseleave', `${SELECTOR}, ${SELECTOR} ~ .dropdown-menu`, function () {
|
||||
const $toggle = $(this).hasClass('dropdown-toggle') ? $(this) : $(this).prev('.dropdown-toggle')
|
||||
const $dropdown = $(this).hasClass('dropdown-menu') ? $(this) : $(this).next('.dropdown-menu')
|
||||
|
||||
if (window.getComputedStyle($dropdown[0], null).getPropertyValue('position') === 'static') return
|
||||
|
||||
// Remove hovered flag
|
||||
if ($(this).is(SELECTOR)) {
|
||||
$(this).data('hovered', false)
|
||||
}
|
||||
|
||||
closeDropdown($(this).hasClass('dropdown-toggle') ? $(this) : $(this).prev('.dropdown-toggle'))
|
||||
})
|
||||
.on('hide.bs.dropdown', function (e) {
|
||||
if ($(this).find(SELECTOR).data('hovered')) e.preventDefault()
|
||||
})
|
||||
})
|
||||
})(window.jQuery)
|
1151
resources/assets/vendor/js/helpers.js
vendored
Normal file
1151
resources/assets/vendor/js/helpers.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
206
resources/assets/vendor/js/mega-dropdown.js
vendored
Normal file
206
resources/assets/vendor/js/mega-dropdown.js
vendored
Normal file
@ -0,0 +1,206 @@
|
||||
const TIMEOUT = 150
|
||||
|
||||
class MegaDropdown {
|
||||
constructor(element, options = {}) {
|
||||
this._onHover = options.trigger === 'hover' || element.getAttribute('data-trigger') === 'hover'
|
||||
|
||||
this._container = MegaDropdown._findParent(element, 'mega-dropdown')
|
||||
if (!this._container) return
|
||||
|
||||
this._menu = this._container.querySelector('.dropdown-toggle ~ .dropdown-menu')
|
||||
if (!this._menu) return
|
||||
|
||||
element.setAttribute('aria-expanded', 'false')
|
||||
|
||||
this._el = element
|
||||
this._bindEvents()
|
||||
}
|
||||
|
||||
open() {
|
||||
if (this._timeout) {
|
||||
clearTimeout(this._timeout)
|
||||
this._timeout = null
|
||||
}
|
||||
if (this._focusTimeout) {
|
||||
clearTimeout(this._focusTimeout)
|
||||
this._focusTimeout = null
|
||||
}
|
||||
|
||||
if (this._el.getAttribute('aria-expanded') !== 'true') {
|
||||
this._triggerEvent('show')
|
||||
this._container.classList.add('show')
|
||||
this._menu.classList.add('show')
|
||||
this._el.setAttribute('aria-expanded', 'true')
|
||||
this._el.focus()
|
||||
this._triggerEvent('shown')
|
||||
}
|
||||
}
|
||||
|
||||
close(force) {
|
||||
if (this._timeout) {
|
||||
clearTimeout(this._timeout)
|
||||
this._timeout = null
|
||||
}
|
||||
if (this._focusTimeout) {
|
||||
clearTimeout(this._focusTimeout)
|
||||
this._focusTimeout = null
|
||||
}
|
||||
|
||||
if (this._onHover && !force) {
|
||||
this._timeout = setTimeout(() => {
|
||||
if (this._timeout) {
|
||||
clearTimeout(this._timeout)
|
||||
this._timeout = null
|
||||
}
|
||||
this._close()
|
||||
}, TIMEOUT)
|
||||
} else {
|
||||
this._close()
|
||||
}
|
||||
}
|
||||
|
||||
toggle() {
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
this._el.getAttribute('aria-expanded') === 'true' ? this.close(true) : this.open()
|
||||
}
|
||||
|
||||
destroy() {
|
||||
this._unbindEvents()
|
||||
this._el = null
|
||||
|
||||
if (this._timeout) {
|
||||
clearTimeout(this._timeout)
|
||||
this._timeout = null
|
||||
}
|
||||
|
||||
if (this._focusTimeout) {
|
||||
clearTimeout(this._focusTimeout)
|
||||
this._focusTimeout = null
|
||||
}
|
||||
}
|
||||
|
||||
_close() {
|
||||
if (this._el.getAttribute('aria-expanded') === 'true') {
|
||||
this._triggerEvent('hide')
|
||||
this._container.classList.remove('show')
|
||||
this._menu.classList.remove('show')
|
||||
this._el.setAttribute('aria-expanded', 'false')
|
||||
this._triggerEvent('hidden')
|
||||
}
|
||||
}
|
||||
|
||||
_bindEvents() {
|
||||
this._elClickEvnt = e => {
|
||||
e.preventDefault()
|
||||
this.toggle()
|
||||
}
|
||||
this._el.addEventListener('click', this._elClickEvnt)
|
||||
|
||||
this._bodyClickEvnt = e => {
|
||||
if (!this._container.contains(e.target) && this._container.classList.contains('show')) {
|
||||
this.close(true)
|
||||
}
|
||||
}
|
||||
document.body.addEventListener('click', this._bodyClickEvnt, true)
|
||||
|
||||
this._menuClickEvnt = e => {
|
||||
if (e.target.classList.contains('mega-dropdown-link')) {
|
||||
this.close(true)
|
||||
}
|
||||
}
|
||||
this._menu.addEventListener('click', this._menuClickEvnt, true)
|
||||
|
||||
this._focusoutEvnt = () => {
|
||||
if (this._focusTimeout) {
|
||||
clearTimeout(this._focusTimeout)
|
||||
this._focusTimeout = null
|
||||
}
|
||||
|
||||
if (this._el.getAttribute('aria-expanded') !== 'true') return
|
||||
|
||||
this._focusTimeout = setTimeout(() => {
|
||||
if (
|
||||
document.activeElement.tagName.toUpperCase() !== 'BODY' &&
|
||||
MegaDropdown._findParent(document.activeElement, 'mega-dropdown') !== this._container
|
||||
) {
|
||||
this.close(true)
|
||||
}
|
||||
}, 100)
|
||||
}
|
||||
this._container.addEventListener('focusout', this._focusoutEvnt, true)
|
||||
|
||||
if (this._onHover) {
|
||||
this._enterEvnt = () => {
|
||||
if (window.getComputedStyle(this._menu, null).getPropertyValue('position') === 'static') return
|
||||
this.open()
|
||||
}
|
||||
this._leaveEvnt = () => {
|
||||
if (window.getComputedStyle(this._menu, null).getPropertyValue('position') === 'static') return
|
||||
this.close()
|
||||
}
|
||||
|
||||
this._el.addEventListener('mouseenter', this._enterEvnt)
|
||||
this._menu.addEventListener('mouseenter', this._enterEvnt)
|
||||
this._el.addEventListener('mouseleave', this._leaveEvnt)
|
||||
this._menu.addEventListener('mouseleave', this._leaveEvnt)
|
||||
}
|
||||
}
|
||||
|
||||
_unbindEvents() {
|
||||
if (this._elClickEvnt) {
|
||||
this._el.removeEventListener('click', this._elClickEvnt)
|
||||
this._elClickEvnt = null
|
||||
}
|
||||
if (this._bodyClickEvnt) {
|
||||
document.body.removeEventListener('click', this._bodyClickEvnt, true)
|
||||
this._bodyClickEvnt = null
|
||||
}
|
||||
if (this._menuClickEvnt) {
|
||||
this._menu.removeEventListener('click', this._menuClickEvnt, true)
|
||||
this._menuClickEvnt = null
|
||||
}
|
||||
if (this._focusoutEvnt) {
|
||||
this._container.removeEventListener('focusout', this._focusoutEvnt, true)
|
||||
this._focusoutEvnt = null
|
||||
}
|
||||
if (this._enterEvnt) {
|
||||
this._el.removeEventListener('mouseenter', this._enterEvnt)
|
||||
this._menu.removeEventListener('mouseenter', this._enterEvnt)
|
||||
this._enterEvnt = null
|
||||
}
|
||||
if (this._leaveEvnt) {
|
||||
this._el.removeEventListener('mouseleave', this._leaveEvnt)
|
||||
this._menu.removeEventListener('mouseleave', this._leaveEvnt)
|
||||
this._leaveEvnt = null
|
||||
}
|
||||
}
|
||||
|
||||
static _findParent(el, cls) {
|
||||
if (el.tagName.toUpperCase() === 'BODY') return null
|
||||
el = el.parentNode
|
||||
while (el.tagName.toUpperCase() !== 'BODY' && !el.classList.contains(cls)) {
|
||||
el = el.parentNode
|
||||
}
|
||||
return el.tagName.toUpperCase() !== 'BODY' ? el : null
|
||||
}
|
||||
|
||||
_triggerEvent(event) {
|
||||
if (document.createEvent) {
|
||||
let customEvent
|
||||
|
||||
if (typeof Event === 'function') {
|
||||
customEvent = new Event(event)
|
||||
} else {
|
||||
customEvent = document.createEvent('Event')
|
||||
customEvent.initEvent(event, false, true)
|
||||
}
|
||||
|
||||
this._container.dispatchEvent(customEvent)
|
||||
} else {
|
||||
this._container.fireEvent(`on${event}`, document.createEventObject())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
window.MegaDropdown = MegaDropdown
|
||||
export { MegaDropdown }
|
991
resources/assets/vendor/js/menu.js
vendored
Normal file
991
resources/assets/vendor/js/menu.js
vendored
Normal file
@ -0,0 +1,991 @@
|
||||
const TRANSITION_EVENTS = ['transitionend', 'webkitTransitionEnd', 'oTransitionEnd']
|
||||
// const TRANSITION_PROPERTIES = ['transition', 'MozTransition', 'webkitTransition', 'WebkitTransition', 'OTransition']
|
||||
const DELTA = 5
|
||||
|
||||
class Menu {
|
||||
constructor(el, config = {}, _PS = null) {
|
||||
this._el = el
|
||||
this._horizontal = config.orientation === 'horizontal'
|
||||
this._animate = config.animate !== false
|
||||
this._accordion = config.accordion !== false
|
||||
this._showDropdownOnHover = Boolean(config.showDropdownOnHover)
|
||||
this._closeChildren = Boolean(config.closeChildren)
|
||||
this._rtl = document.documentElement.getAttribute('dir') === 'rtl' || document.body.getAttribute('dir') === 'rtl'
|
||||
|
||||
this._onOpen = config.onOpen || (() => {})
|
||||
this._onOpened = config.onOpened || (() => {})
|
||||
this._onClose = config.onClose || (() => {})
|
||||
this._onClosed = config.onClosed || (() => {})
|
||||
|
||||
this._psScroll = null
|
||||
this._topParent = null
|
||||
this._menuBgClass = null
|
||||
|
||||
el.classList.add('menu')
|
||||
el.classList[this._animate ? 'remove' : 'add']('menu-no-animation')
|
||||
|
||||
if (!this._horizontal) {
|
||||
el.classList.add('menu-vertical')
|
||||
el.classList.remove('menu-horizontal')
|
||||
|
||||
const PerfectScrollbarLib = _PS || window.PerfectScrollbar
|
||||
|
||||
if (PerfectScrollbarLib) {
|
||||
this._scrollbar = new PerfectScrollbarLib(el.querySelector('.menu-inner'), {
|
||||
suppressScrollX: true,
|
||||
wheelPropagation: !Menu._hasClass('layout-menu-fixed layout-menu-fixed-offcanvas')
|
||||
})
|
||||
|
||||
window.Helpers.menuPsScroll = this._scrollbar
|
||||
} else {
|
||||
el.querySelector('.menu-inner').classList.add('overflow-auto')
|
||||
}
|
||||
} else {
|
||||
el.classList.add('menu-horizontal')
|
||||
el.classList.remove('menu-vertical')
|
||||
|
||||
this._inner = el.querySelector('.menu-inner')
|
||||
const container = this._inner.parentNode
|
||||
|
||||
this._prevBtn = el.querySelector('.menu-horizontal-prev')
|
||||
if (!this._prevBtn) {
|
||||
this._prevBtn = document.createElement('a')
|
||||
this._prevBtn.href = '#'
|
||||
this._prevBtn.className = 'menu-horizontal-prev'
|
||||
container.appendChild(this._prevBtn)
|
||||
}
|
||||
|
||||
this._wrapper = el.querySelector('.menu-horizontal-wrapper')
|
||||
if (!this._wrapper) {
|
||||
this._wrapper = document.createElement('div')
|
||||
this._wrapper.className = 'menu-horizontal-wrapper'
|
||||
this._wrapper.appendChild(this._inner)
|
||||
container.appendChild(this._wrapper)
|
||||
}
|
||||
|
||||
this._nextBtn = el.querySelector('.menu-horizontal-next')
|
||||
if (!this._nextBtn) {
|
||||
this._nextBtn = document.createElement('a')
|
||||
this._nextBtn.href = '#'
|
||||
this._nextBtn.className = 'menu-horizontal-next'
|
||||
container.appendChild(this._nextBtn)
|
||||
}
|
||||
|
||||
this._innerPosition = 0
|
||||
this.update()
|
||||
}
|
||||
|
||||
// Add data attribute for bg color class of menu
|
||||
const menuClassList = el.classList
|
||||
|
||||
for (let i = 0; i < menuClassList.length; i++) {
|
||||
if (menuClassList[i].startsWith('bg-')) {
|
||||
this._menuBgClass = menuClassList[i]
|
||||
}
|
||||
}
|
||||
el.setAttribute('data-bg-class', this._menuBgClass)
|
||||
|
||||
// Switch to vertical menu on small screen for horizontal menu layout on page load
|
||||
if (this._horizontal && window.innerWidth < window.Helpers.LAYOUT_BREAKPOINT) {
|
||||
this.switchMenu('vertical')
|
||||
} else {
|
||||
this._bindEvents()
|
||||
}
|
||||
|
||||
// Link menu instance to element
|
||||
el.menuInstance = this
|
||||
}
|
||||
|
||||
_bindEvents() {
|
||||
// Click Event
|
||||
this._evntElClick = e => {
|
||||
// Find top parent element
|
||||
if (e.target.closest('ul') && e.target.closest('ul').classList.contains('menu-inner')) {
|
||||
const menuItem = Menu._findParent(e.target, 'menu-item', false)
|
||||
|
||||
// eslint-disable-next-line prefer-destructuring
|
||||
if (menuItem) this._topParent = menuItem.childNodes[0]
|
||||
}
|
||||
|
||||
const toggleLink = e.target.classList.contains('menu-toggle')
|
||||
? e.target
|
||||
: Menu._findParent(e.target, 'menu-toggle', false)
|
||||
|
||||
if (toggleLink) {
|
||||
e.preventDefault()
|
||||
|
||||
if (toggleLink.getAttribute('data-hover') !== 'true') {
|
||||
this.toggle(toggleLink)
|
||||
}
|
||||
}
|
||||
}
|
||||
if ((!this._showDropdownOnHover && this._horizontal) || !this._horizontal || window.Helpers.isMobileDevice)
|
||||
this._el.addEventListener('click', this._evntElClick)
|
||||
|
||||
this._evntWindowResize = () => {
|
||||
this.update()
|
||||
if (this._lastWidth !== window.innerWidth) {
|
||||
this._lastWidth = window.innerWidth
|
||||
this.update()
|
||||
}
|
||||
|
||||
const horizontalMenuTemplate = document.querySelector("[data-template^='horizontal-menu']")
|
||||
if (!this._horizontal && !horizontalMenuTemplate) this.manageScroll()
|
||||
}
|
||||
window.addEventListener('resize', this._evntWindowResize)
|
||||
|
||||
if (this._horizontal) {
|
||||
this._evntPrevBtnClick = e => {
|
||||
e.preventDefault()
|
||||
if (this._prevBtn.classList.contains('disabled')) return
|
||||
this._slide('prev')
|
||||
}
|
||||
this._prevBtn.addEventListener('click', this._evntPrevBtnClick)
|
||||
|
||||
this._evntNextBtnClick = e => {
|
||||
e.preventDefault()
|
||||
if (this._nextBtn.classList.contains('disabled')) return
|
||||
this._slide('next')
|
||||
}
|
||||
this._nextBtn.addEventListener('click', this._evntNextBtnClick)
|
||||
|
||||
this._evntBodyClick = e => {
|
||||
if (!this._inner.contains(e.target) && this._el.querySelectorAll('.menu-inner > .menu-item.open').length)
|
||||
this.closeAll()
|
||||
}
|
||||
document.body.addEventListener('click', this._evntBodyClick)
|
||||
|
||||
if (this._showDropdownOnHover) {
|
||||
/** ***********************************************
|
||||
* Horizontal Menu Mouse Over Event
|
||||
* ? e.target !== e.currentTarget condition to disable mouseover event on whole menu navbar
|
||||
* ? !e.target.parentNode.classList.contains('open') to disable mouseover events on icon, text and dropdown arrow
|
||||
*/
|
||||
this._evntElMouseOver = e => {
|
||||
if (e.target !== e.currentTarget && !e.target.parentNode.classList.contains('open')) {
|
||||
const toggleLink = e.target.classList.contains('menu-toggle') ? e.target : null
|
||||
|
||||
if (toggleLink) {
|
||||
e.preventDefault()
|
||||
|
||||
if (toggleLink.getAttribute('data-hover') !== 'true') {
|
||||
this.toggle(toggleLink)
|
||||
}
|
||||
}
|
||||
}
|
||||
e.stopPropagation()
|
||||
}
|
||||
if (this._horizontal && window.screen.width > window.Helpers.LAYOUT_BREAKPOINT) {
|
||||
this._el.addEventListener('mouseover', this._evntElMouseOver)
|
||||
}
|
||||
|
||||
/** ***********************************************
|
||||
* Horizontal Menu Mouse Out Event
|
||||
* ? e.target !== e.currentTarget condition to disable mouseout event on whole menu navbar
|
||||
* ? mouseOutEl.parentNode.classList.contains('open') to check if the mouseout element has open class or not
|
||||
* ? !mouseOutEl.classList.contains('menu-toggle') to check if mouseout was from single menu item and not from the one which has submenu
|
||||
* ? !mouseOverEl.parentNode.classList.contains('menu-link') to disable mouseout event for icon, text and dropdown arrow
|
||||
*/
|
||||
this._evntElMouseOut = e => {
|
||||
const mainEl = e.currentTarget
|
||||
const mouseOutEl = e.target
|
||||
const mouseOverEl = e.toElement || e.relatedTarget
|
||||
|
||||
// Find absolute parent of any menu item from which mouseout event triggered
|
||||
if (mouseOutEl.closest('ul') && mouseOutEl.closest('ul').classList.contains('menu-inner')) {
|
||||
this._topParent = mouseOutEl
|
||||
}
|
||||
|
||||
if (
|
||||
mouseOutEl !== mainEl &&
|
||||
(mouseOutEl.parentNode.classList.contains('open') || !mouseOutEl.classList.contains('menu-toggle')) &&
|
||||
mouseOverEl &&
|
||||
mouseOverEl.parentNode &&
|
||||
!mouseOverEl.parentNode.classList.contains('menu-link')
|
||||
) {
|
||||
// When mouse goes totally out of menu items, check mouse over element to confirm it's not the child of menu, once confirmed close the menu
|
||||
if (this._topParent && !Menu.childOf(mouseOverEl, this._topParent.parentNode)) {
|
||||
const toggleLink = this._topParent.classList.contains('menu-toggle') ? this._topParent : null
|
||||
|
||||
if (toggleLink) {
|
||||
e.preventDefault()
|
||||
|
||||
if (toggleLink.getAttribute('data-hover') !== 'true') {
|
||||
this.toggle(toggleLink)
|
||||
this._topParent = null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// When mouse enter the sub menu, check if it's child of the initially mouse overed menu item(Actual Parent),
|
||||
// if it's the parent do not close the sub menu else close the sub menu
|
||||
if (Menu.childOf(mouseOverEl, mouseOutEl.parentNode)) {
|
||||
return
|
||||
}
|
||||
const toggleLink = mouseOutEl.classList.contains('menu-toggle') ? mouseOutEl : null
|
||||
|
||||
if (toggleLink) {
|
||||
e.preventDefault()
|
||||
|
||||
if (toggleLink.getAttribute('data-hover') !== 'true') {
|
||||
this.toggle(toggleLink)
|
||||
}
|
||||
}
|
||||
}
|
||||
e.stopPropagation()
|
||||
}
|
||||
if (this._horizontal && window.screen.width > window.Helpers.LAYOUT_BREAKPOINT) {
|
||||
this._el.addEventListener('mouseout', this._evntElMouseOut)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static childOf(/* child node */ c, /* parent node */ p) {
|
||||
// returns boolean
|
||||
if (c.parentNode) {
|
||||
while ((c = c.parentNode) && c !== p);
|
||||
return !!c
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
_unbindEvents() {
|
||||
if (this._evntElClick) {
|
||||
this._el.removeEventListener('click', this._evntElClick)
|
||||
this._evntElClick = null
|
||||
}
|
||||
|
||||
if (this._evntElMouseOver) {
|
||||
this._el.removeEventListener('mouseover', this._evntElMouseOver)
|
||||
this._evntElMouseOver = null
|
||||
}
|
||||
|
||||
if (this._evntElMouseOut) {
|
||||
this._el.removeEventListener('mouseout', this._evntElMouseOut)
|
||||
this._evntElMouseOut = null
|
||||
}
|
||||
|
||||
if (this._evntWindowResize) {
|
||||
window.removeEventListener('resize', this._evntWindowResize)
|
||||
this._evntWindowResize = null
|
||||
}
|
||||
|
||||
if (this._evntBodyClick) {
|
||||
document.body.removeEventListener('click', this._evntBodyClick)
|
||||
this._evntBodyClick = null
|
||||
}
|
||||
|
||||
if (this._evntInnerMousemove) {
|
||||
this._inner.removeEventListener('mousemove', this._evntInnerMousemove)
|
||||
this._evntInnerMousemove = null
|
||||
}
|
||||
|
||||
if (this._evntInnerMouseleave) {
|
||||
this._inner.removeEventListener('mouseleave', this._evntInnerMouseleave)
|
||||
this._evntInnerMouseleave = null
|
||||
}
|
||||
}
|
||||
|
||||
static _isRoot(item) {
|
||||
return !Menu._findParent(item, 'menu-item', false)
|
||||
}
|
||||
|
||||
static _findParent(el, cls, throwError = true) {
|
||||
if (el.tagName.toUpperCase() === 'BODY') return null
|
||||
el = el.parentNode
|
||||
while (el.tagName.toUpperCase() !== 'BODY' && !el.classList.contains(cls)) {
|
||||
el = el.parentNode
|
||||
}
|
||||
|
||||
el = el.tagName.toUpperCase() !== 'BODY' ? el : null
|
||||
|
||||
if (!el && throwError) throw new Error(`Cannot find \`.${cls}\` parent element`)
|
||||
|
||||
return el
|
||||
}
|
||||
|
||||
static _findChild(el, cls) {
|
||||
const items = el.childNodes
|
||||
const found = []
|
||||
|
||||
for (let i = 0, l = items.length; i < l; i++) {
|
||||
if (items[i].classList) {
|
||||
let passed = 0
|
||||
|
||||
for (let j = 0; j < cls.length; j++) {
|
||||
if (items[i].classList.contains(cls[j])) passed += 1
|
||||
}
|
||||
|
||||
if (cls.length === passed) found.push(items[i])
|
||||
}
|
||||
}
|
||||
|
||||
return found
|
||||
}
|
||||
|
||||
static _findMenu(item) {
|
||||
let curEl = item.childNodes[0]
|
||||
let menu = null
|
||||
|
||||
while (curEl && !menu) {
|
||||
if (curEl.classList && curEl.classList.contains('menu-sub')) menu = curEl
|
||||
curEl = curEl.nextSibling
|
||||
}
|
||||
|
||||
if (!menu) throw new Error('Cannot find `.menu-sub` element for the current `.menu-toggle`')
|
||||
|
||||
return menu
|
||||
}
|
||||
|
||||
// Has class
|
||||
static _hasClass(cls, el = window.Helpers.ROOT_EL) {
|
||||
let result = false
|
||||
|
||||
cls.split(' ').forEach(c => {
|
||||
if (el.classList.contains(c)) result = true
|
||||
})
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
open(el, closeChildren = this._closeChildren) {
|
||||
const item = this._findUnopenedParent(Menu._getItem(el, true), closeChildren)
|
||||
|
||||
if (!item) return
|
||||
|
||||
const toggleLink = Menu._getLink(item, true)
|
||||
|
||||
Menu._promisify(this._onOpen, this, item, toggleLink, Menu._findMenu(item))
|
||||
.then(() => {
|
||||
if (!this._horizontal || !Menu._isRoot(item)) {
|
||||
if (this._animate && !this._horizontal) {
|
||||
window.requestAnimationFrame(() => this._toggleAnimation(true, item, false))
|
||||
if (this._accordion) this._closeOther(item, closeChildren)
|
||||
} else if (this._animate) {
|
||||
this._toggleDropdown(true, item, closeChildren)
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
this._onOpened && this._onOpened(this, item, toggleLink, Menu._findMenu(item))
|
||||
} else {
|
||||
item.classList.add('open')
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
this._onOpened && this._onOpened(this, item, toggleLink, Menu._findMenu(item))
|
||||
if (this._accordion) this._closeOther(item, closeChildren)
|
||||
}
|
||||
} else {
|
||||
this._toggleDropdown(true, item, closeChildren)
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
this._onOpened && this._onOpened(this, item, toggleLink, Menu._findMenu(item))
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
close(el, closeChildren = this._closeChildren, _autoClose = false) {
|
||||
const item = Menu._getItem(el, true)
|
||||
const toggleLink = Menu._getLink(el, true)
|
||||
|
||||
if (!item.classList.contains('open') || item.classList.contains('disabled')) return
|
||||
|
||||
Menu._promisify(this._onClose, this, item, toggleLink, Menu._findMenu(item), _autoClose)
|
||||
.then(() => {
|
||||
if (!this._horizontal || !Menu._isRoot(item)) {
|
||||
if (this._animate && !this._horizontal) {
|
||||
window.requestAnimationFrame(() => this._toggleAnimation(false, item, closeChildren))
|
||||
} else {
|
||||
item.classList.remove('open')
|
||||
|
||||
if (closeChildren) {
|
||||
const opened = item.querySelectorAll('.menu-item.open')
|
||||
for (let i = 0, l = opened.length; i < l; i++) opened[i].classList.remove('open')
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
this._onClosed && this._onClosed(this, item, toggleLink, Menu._findMenu(item))
|
||||
}
|
||||
} else {
|
||||
this._toggleDropdown(false, item, closeChildren)
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
this._onClosed && this._onClosed(this, item, toggleLink, Menu._findMenu(item))
|
||||
}
|
||||
})
|
||||
.catch(() => {})
|
||||
}
|
||||
|
||||
_closeOther(item, closeChildren) {
|
||||
const opened = Menu._findChild(item.parentNode, ['menu-item', 'open'])
|
||||
|
||||
for (let i = 0, l = opened.length; i < l; i++) {
|
||||
if (opened[i] !== item) this.close(opened[i], closeChildren)
|
||||
}
|
||||
}
|
||||
|
||||
toggle(el, closeChildren = this._closeChildren) {
|
||||
const item = Menu._getItem(el, true)
|
||||
// const toggleLink = Menu._getLink(el, true)
|
||||
|
||||
if (item.classList.contains('open')) this.close(item, closeChildren)
|
||||
else this.open(item, closeChildren)
|
||||
}
|
||||
|
||||
_toggleDropdown(show, item, closeChildren) {
|
||||
const menu = Menu._findMenu(item)
|
||||
const actualItem = item
|
||||
let subMenuItem = false
|
||||
|
||||
if (show) {
|
||||
if (Menu._findParent(item, 'menu-sub', false)) {
|
||||
subMenuItem = true
|
||||
item = this._topParent ? this._topParent.parentNode : item
|
||||
}
|
||||
|
||||
const wrapperWidth = Math.round(this._wrapper.getBoundingClientRect().width)
|
||||
const position = this._innerPosition
|
||||
const itemOffset = this._getItemOffset(item)
|
||||
const itemWidth = Math.round(item.getBoundingClientRect().width)
|
||||
|
||||
if (itemOffset - DELTA <= -1 * position) {
|
||||
this._innerPosition = -1 * itemOffset
|
||||
} else if (itemOffset + position + itemWidth + DELTA >= wrapperWidth) {
|
||||
if (itemWidth > wrapperWidth) {
|
||||
this._innerPosition = -1 * itemOffset
|
||||
} else {
|
||||
this._innerPosition = -1 * (itemOffset + itemWidth - wrapperWidth)
|
||||
}
|
||||
}
|
||||
|
||||
actualItem.classList.add('open')
|
||||
|
||||
const menuWidth = Math.round(menu.getBoundingClientRect().width)
|
||||
|
||||
if (subMenuItem) {
|
||||
if (
|
||||
itemOffset + this._innerPosition + menuWidth * 2 > wrapperWidth &&
|
||||
menuWidth < wrapperWidth &&
|
||||
menuWidth >= itemWidth
|
||||
) {
|
||||
menu.style.left = [this._rtl ? '100%' : '-100%']
|
||||
}
|
||||
} else if (
|
||||
itemOffset + this._innerPosition + menuWidth > wrapperWidth &&
|
||||
menuWidth < wrapperWidth &&
|
||||
menuWidth > itemWidth
|
||||
) {
|
||||
menu.style[this._rtl ? 'marginRight' : 'marginLeft'] = `-${menuWidth - itemWidth}px`
|
||||
}
|
||||
|
||||
this._closeOther(actualItem, closeChildren)
|
||||
this._updateSlider()
|
||||
} else {
|
||||
const toggle = Menu._findChild(item, ['menu-toggle'])
|
||||
|
||||
// eslint-disable-next-line no-unused-expressions
|
||||
toggle.length && toggle[0].removeAttribute('data-hover', 'true')
|
||||
item.classList.remove('open')
|
||||
menu.style[this._rtl ? 'marginRight' : 'marginLeft'] = null
|
||||
|
||||
if (closeChildren) {
|
||||
const opened = menu.querySelectorAll('.menu-item.open')
|
||||
|
||||
for (let i = 0, l = opened.length; i < l; i++) opened[i].classList.remove('open')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_slide(direction) {
|
||||
const wrapperWidth = Math.round(this._wrapper.getBoundingClientRect().width)
|
||||
const innerWidth = this._innerWidth
|
||||
let newPosition
|
||||
|
||||
if (direction === 'next') {
|
||||
newPosition = this._getSlideNextPos()
|
||||
|
||||
if (innerWidth + newPosition < wrapperWidth) {
|
||||
newPosition = wrapperWidth - innerWidth
|
||||
}
|
||||
} else {
|
||||
newPosition = this._getSlidePrevPos()
|
||||
|
||||
if (newPosition > 0) newPosition = 0
|
||||
}
|
||||
|
||||
this._innerPosition = newPosition
|
||||
this.update()
|
||||
}
|
||||
|
||||
_getSlideNextPos() {
|
||||
const wrapperWidth = Math.round(this._wrapper.getBoundingClientRect().width)
|
||||
const position = this._innerPosition
|
||||
let curItem = this._inner.childNodes[0]
|
||||
let left = 0
|
||||
|
||||
while (curItem) {
|
||||
if (curItem.tagName) {
|
||||
const curItemWidth = Math.round(curItem.getBoundingClientRect().width)
|
||||
|
||||
if (left + position - DELTA <= wrapperWidth && left + position + curItemWidth + DELTA >= wrapperWidth) {
|
||||
if (curItemWidth > wrapperWidth && left === -1 * position) left += curItemWidth
|
||||
break
|
||||
}
|
||||
|
||||
left += curItemWidth
|
||||
}
|
||||
|
||||
curItem = curItem.nextSibling
|
||||
}
|
||||
|
||||
return -1 * left
|
||||
}
|
||||
|
||||
_getSlidePrevPos() {
|
||||
const wrapperWidth = Math.round(this._wrapper.getBoundingClientRect().width)
|
||||
const position = this._innerPosition
|
||||
let curItem = this._inner.childNodes[0]
|
||||
let left = 0
|
||||
|
||||
while (curItem) {
|
||||
if (curItem.tagName) {
|
||||
const curItemWidth = Math.round(curItem.getBoundingClientRect().width)
|
||||
|
||||
if (left - DELTA <= -1 * position && left + curItemWidth + DELTA >= -1 * position) {
|
||||
if (curItemWidth <= wrapperWidth) left = left + curItemWidth - wrapperWidth
|
||||
break
|
||||
}
|
||||
|
||||
left += curItemWidth
|
||||
}
|
||||
|
||||
curItem = curItem.nextSibling
|
||||
}
|
||||
|
||||
return -1 * left
|
||||
}
|
||||
|
||||
static _getItem(el, toggle) {
|
||||
let item = null
|
||||
const selector = toggle ? 'menu-toggle' : 'menu-link'
|
||||
|
||||
if (el.classList.contains('menu-item')) {
|
||||
if (Menu._findChild(el, [selector]).length) item = el
|
||||
} else if (el.classList.contains(selector)) {
|
||||
item = el.parentNode.classList.contains('menu-item') ? el.parentNode : null
|
||||
}
|
||||
|
||||
if (!item) {
|
||||
throw new Error(`${toggle ? 'Toggable ' : ''}\`.menu-item\` element not found.`)
|
||||
}
|
||||
|
||||
return item
|
||||
}
|
||||
|
||||
static _getLink(el, toggle) {
|
||||
let found = []
|
||||
const selector = toggle ? 'menu-toggle' : 'menu-link'
|
||||
|
||||
if (el.classList.contains(selector)) found = [el]
|
||||
else if (el.classList.contains('menu-item')) found = Menu._findChild(el, [selector])
|
||||
|
||||
if (!found.length) throw new Error(`\`${selector}\` element not found.`)
|
||||
|
||||
return found[0]
|
||||
}
|
||||
|
||||
_findUnopenedParent(item, closeChildren) {
|
||||
let tree = []
|
||||
let parentItem = null
|
||||
|
||||
while (item) {
|
||||
if (item.classList.contains('disabled')) {
|
||||
parentItem = null
|
||||
tree = []
|
||||
} else {
|
||||
if (!item.classList.contains('open')) parentItem = item
|
||||
tree.push(item)
|
||||
}
|
||||
|
||||
item = Menu._findParent(item, 'menu-item', false)
|
||||
}
|
||||
|
||||
if (!parentItem) return null
|
||||
if (tree.length === 1) return parentItem
|
||||
|
||||
tree = tree.slice(0, tree.indexOf(parentItem))
|
||||
|
||||
for (let i = 0, l = tree.length; i < l; i++) {
|
||||
tree[i].classList.add('open')
|
||||
|
||||
if (this._accordion) {
|
||||
const openedItems = Menu._findChild(tree[i].parentNode, ['menu-item', 'open'])
|
||||
|
||||
for (let j = 0, k = openedItems.length; j < k; j++) {
|
||||
if (openedItems[j] !== tree[i]) {
|
||||
openedItems[j].classList.remove('open')
|
||||
|
||||
if (closeChildren) {
|
||||
const openedChildren = openedItems[j].querySelectorAll('.menu-item.open')
|
||||
for (let x = 0, z = openedChildren.length; x < z; x++) {
|
||||
openedChildren[x].classList.remove('open')
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return parentItem
|
||||
}
|
||||
|
||||
_toggleAnimation(open, item, closeChildren) {
|
||||
const toggleLink = Menu._getLink(item, true)
|
||||
const menu = Menu._findMenu(item)
|
||||
|
||||
Menu._unbindAnimationEndEvent(item)
|
||||
|
||||
const linkHeight = Math.round(toggleLink.getBoundingClientRect().height)
|
||||
|
||||
item.style.overflow = 'hidden'
|
||||
|
||||
const clearItemStyle = () => {
|
||||
item.classList.remove('menu-item-animating')
|
||||
item.classList.remove('menu-item-closing')
|
||||
item.style.overflow = null
|
||||
item.style.height = null
|
||||
|
||||
if (!this._horizontal) this.update()
|
||||
}
|
||||
|
||||
if (open) {
|
||||
item.style.height = `${linkHeight}px`
|
||||
item.classList.add('menu-item-animating')
|
||||
item.classList.add('open')
|
||||
|
||||
Menu._bindAnimationEndEvent(item, () => {
|
||||
clearItemStyle()
|
||||
this._onOpened(this, item, toggleLink, menu)
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
item.style.height = `${linkHeight + Math.round(menu.getBoundingClientRect().height)}px`
|
||||
}, 50)
|
||||
} else {
|
||||
item.style.height = `${linkHeight + Math.round(menu.getBoundingClientRect().height)}px`
|
||||
item.classList.add('menu-item-animating')
|
||||
item.classList.add('menu-item-closing')
|
||||
|
||||
Menu._bindAnimationEndEvent(item, () => {
|
||||
item.classList.remove('open')
|
||||
clearItemStyle()
|
||||
|
||||
if (closeChildren) {
|
||||
const opened = item.querySelectorAll('.menu-item.open')
|
||||
for (let i = 0, l = opened.length; i < l; i++) opened[i].classList.remove('open')
|
||||
}
|
||||
|
||||
this._onClosed(this, item, toggleLink, menu)
|
||||
})
|
||||
|
||||
setTimeout(() => {
|
||||
item.style.height = `${linkHeight}px`
|
||||
}, 50)
|
||||
}
|
||||
}
|
||||
|
||||
static _bindAnimationEndEvent(el, handler) {
|
||||
const cb = e => {
|
||||
if (e.target !== el) return
|
||||
Menu._unbindAnimationEndEvent(el)
|
||||
handler(e)
|
||||
}
|
||||
|
||||
let duration = window.getComputedStyle(el).transitionDuration
|
||||
duration = parseFloat(duration) * (duration.indexOf('ms') !== -1 ? 1 : 1000)
|
||||
|
||||
el._menuAnimationEndEventCb = cb
|
||||
TRANSITION_EVENTS.forEach(ev => el.addEventListener(ev, el._menuAnimationEndEventCb, false))
|
||||
|
||||
el._menuAnimationEndEventTimeout = setTimeout(() => {
|
||||
cb({ target: el })
|
||||
}, duration + 50)
|
||||
}
|
||||
|
||||
_getItemOffset(item) {
|
||||
let curItem = this._inner.childNodes[0]
|
||||
let left = 0
|
||||
|
||||
while (curItem !== item) {
|
||||
if (curItem.tagName) {
|
||||
left += Math.round(curItem.getBoundingClientRect().width)
|
||||
}
|
||||
|
||||
curItem = curItem.nextSibling
|
||||
}
|
||||
|
||||
return left
|
||||
}
|
||||
|
||||
_updateSlider(wrapperWidth = null, innerWidth = null, position = null) {
|
||||
const _wrapperWidth = wrapperWidth !== null ? wrapperWidth : Math.round(this._wrapper.getBoundingClientRect().width)
|
||||
const _innerWidth = innerWidth !== null ? innerWidth : this._innerWidth
|
||||
const _position = position !== null ? position : this._innerPosition
|
||||
|
||||
if (_innerWidth < _wrapperWidth || window.innerWidth < window.Helpers.LAYOUT_BREAKPOINT) {
|
||||
this._prevBtn.classList.add('d-none')
|
||||
this._nextBtn.classList.add('d-none')
|
||||
} else {
|
||||
this._prevBtn.classList.remove('d-none')
|
||||
this._nextBtn.classList.remove('d-none')
|
||||
}
|
||||
if (_innerWidth > _wrapperWidth && window.innerWidth > window.Helpers.LAYOUT_BREAKPOINT) {
|
||||
if (_position === 0) this._prevBtn.classList.add('disabled')
|
||||
else this._prevBtn.classList.remove('disabled')
|
||||
|
||||
if (_innerWidth + _position <= _wrapperWidth) this._nextBtn.classList.add('disabled')
|
||||
else this._nextBtn.classList.remove('disabled')
|
||||
}
|
||||
}
|
||||
|
||||
static _promisify(fn, ...args) {
|
||||
const result = fn(...args)
|
||||
if (result instanceof Promise) {
|
||||
return result
|
||||
}
|
||||
if (result === false) {
|
||||
return Promise.reject()
|
||||
}
|
||||
return Promise.resolve()
|
||||
}
|
||||
|
||||
get _innerWidth() {
|
||||
const items = this._inner.childNodes
|
||||
let width = 0
|
||||
|
||||
for (let i = 0, l = items.length; i < l; i++) {
|
||||
if (items[i].tagName) {
|
||||
width += Math.round(items[i].getBoundingClientRect().width)
|
||||
}
|
||||
}
|
||||
|
||||
return width
|
||||
}
|
||||
|
||||
get _innerPosition() {
|
||||
return parseInt(this._inner.style[this._rtl ? 'marginRight' : 'marginLeft'] || '0px', 10)
|
||||
}
|
||||
|
||||
set _innerPosition(value) {
|
||||
this._inner.style[this._rtl ? 'marginRight' : 'marginLeft'] = `${value}px`
|
||||
return value
|
||||
}
|
||||
|
||||
static _unbindAnimationEndEvent(el) {
|
||||
const cb = el._menuAnimationEndEventCb
|
||||
|
||||
if (el._menuAnimationEndEventTimeout) {
|
||||
clearTimeout(el._menuAnimationEndEventTimeout)
|
||||
el._menuAnimationEndEventTimeout = null
|
||||
}
|
||||
|
||||
if (!cb) return
|
||||
|
||||
TRANSITION_EVENTS.forEach(ev => el.removeEventListener(ev, cb, false))
|
||||
el._menuAnimationEndEventCb = null
|
||||
}
|
||||
|
||||
closeAll(closeChildren = this._closeChildren) {
|
||||
const opened = this._el.querySelectorAll('.menu-inner > .menu-item.open')
|
||||
|
||||
for (let i = 0, l = opened.length; i < l; i++) this.close(opened[i], closeChildren)
|
||||
}
|
||||
|
||||
static setDisabled(el, disabled) {
|
||||
Menu._getItem(el, false).classList[disabled ? 'add' : 'remove']('disabled')
|
||||
}
|
||||
|
||||
static isActive(el) {
|
||||
return Menu._getItem(el, false).classList.contains('active')
|
||||
}
|
||||
|
||||
static isOpened(el) {
|
||||
return Menu._getItem(el, false).classList.contains('open')
|
||||
}
|
||||
|
||||
static isDisabled(el) {
|
||||
return Menu._getItem(el, false).classList.contains('disabled')
|
||||
}
|
||||
|
||||
update() {
|
||||
if (!this._horizontal) {
|
||||
if (this._scrollbar) {
|
||||
this._scrollbar.update()
|
||||
}
|
||||
} else {
|
||||
this.closeAll()
|
||||
|
||||
const wrapperWidth = Math.round(this._wrapper.getBoundingClientRect().width)
|
||||
const innerWidth = this._innerWidth
|
||||
let position = this._innerPosition
|
||||
|
||||
if (wrapperWidth - position > innerWidth) {
|
||||
position = wrapperWidth - innerWidth
|
||||
if (position > 0) position = 0
|
||||
this._innerPosition = position
|
||||
}
|
||||
|
||||
this._updateSlider(wrapperWidth, innerWidth, position)
|
||||
}
|
||||
}
|
||||
|
||||
manageScroll() {
|
||||
const { PerfectScrollbar } = window
|
||||
const menuInner = document.querySelector('.menu-inner')
|
||||
|
||||
if (window.innerWidth < window.Helpers.LAYOUT_BREAKPOINT) {
|
||||
if (this._scrollbar !== null) {
|
||||
// window.Helpers.menuPsScroll.destroy()
|
||||
this._scrollbar.destroy()
|
||||
this._scrollbar = null
|
||||
}
|
||||
menuInner.classList.add('overflow-auto')
|
||||
} else {
|
||||
if (this._scrollbar === null) {
|
||||
const menuScroll = new PerfectScrollbar(document.querySelector('.menu-inner'), {
|
||||
suppressScrollX: true,
|
||||
wheelPropagation: false
|
||||
})
|
||||
// window.Helpers.menuPsScroll = menuScroll
|
||||
this._scrollbar = menuScroll
|
||||
}
|
||||
menuInner.classList.remove('overflow-auto')
|
||||
}
|
||||
}
|
||||
|
||||
switchMenu(menu) {
|
||||
// Unbind Events
|
||||
this._unbindEvents()
|
||||
|
||||
// const html = document.documentElement
|
||||
const navbar = document.querySelector('nav.layout-navbar')
|
||||
const navbarCollapse = document.querySelector('#navbar-collapse')
|
||||
/* const fullNavbar = document.querySelector('.layout-navbar-full')
|
||||
const contentNavbar = document.querySelector('.layout-content-navbar')
|
||||
const contentWrapper = document.querySelector('.content-wrapper') */
|
||||
const asideMenuWrapper = document.querySelector('#layout-menu div')
|
||||
const asideMenu = document.querySelector('#layout-menu')
|
||||
const horzMenuClasses = ['layout-menu-horizontal', 'menu', 'menu-horizontal', 'container-fluid', 'flex-grow-0']
|
||||
const vertMenuClasses = ['layout-menu', 'menu', 'menu-vertical']
|
||||
const horzMenuWrapper = document.querySelector('.menu-horizontal-wrapper')
|
||||
const menuInner = document.querySelector('.menu-inner')
|
||||
const brand = document.querySelector('.app-brand')
|
||||
const menuToggler = document.querySelector('.layout-menu-toggle')
|
||||
const activeMenuItems = document.querySelectorAll('.menu-inner .active')
|
||||
/* const layoutPage = document.querySelector('.layout-page')
|
||||
const layoutContainer = document.querySelector('.layout-container')
|
||||
const content = document.querySelector('.container-fluid') */
|
||||
|
||||
// const { PerfectScrollbar } = window
|
||||
|
||||
if (menu === 'vertical') {
|
||||
this._horizontal = false
|
||||
asideMenuWrapper.insertBefore(brand, horzMenuWrapper)
|
||||
asideMenuWrapper.insertBefore(menuInner, horzMenuWrapper)
|
||||
asideMenuWrapper.classList.add('flex-column', 'p-0')
|
||||
asideMenu.classList.remove(...asideMenu.classList)
|
||||
asideMenu.classList.add(...vertMenuClasses, this._menuBgClass)
|
||||
brand.classList.remove('d-none', 'd-lg-flex')
|
||||
menuToggler.classList.remove('d-none')
|
||||
// if (PerfectScrollbar !== undefined) {
|
||||
// this._psScroll = new PerfectScrollbar(document.querySelector('.menu-inner'), {
|
||||
// suppressScrollX: true,
|
||||
// wheelPropagation: !Menu._hasClass('layout-menu-fixed layout-menu-fixed-offcanvas')
|
||||
// })
|
||||
// }
|
||||
|
||||
menuInner.classList.add('overflow-auto')
|
||||
|
||||
// Add open class to active items
|
||||
for (let i = 0; i < activeMenuItems.length - 1; ++i) {
|
||||
activeMenuItems[i].classList.add('open')
|
||||
}
|
||||
} else {
|
||||
this._horizontal = true
|
||||
navbar.children[0].insertBefore(brand, navbarCollapse)
|
||||
brand.classList.add('d-none', 'd-lg-flex')
|
||||
horzMenuWrapper.appendChild(menuInner)
|
||||
asideMenuWrapper.classList.remove('flex-column', 'p-0')
|
||||
asideMenu.classList.remove(...asideMenu.classList)
|
||||
asideMenu.classList.add(...horzMenuClasses, this._menuBgClass)
|
||||
menuToggler.classList.add('d-none')
|
||||
menuInner.classList.remove('overflow-auto')
|
||||
|
||||
// if (PerfectScrollbar !== undefined && this._psScroll !== null) {
|
||||
// this._psScroll.destroy()
|
||||
// this._psScroll = null
|
||||
// }
|
||||
|
||||
// Remove open class from active items
|
||||
for (let i = 0; i < activeMenuItems.length; ++i) {
|
||||
activeMenuItems[i].classList.remove('open')
|
||||
}
|
||||
}
|
||||
|
||||
this._bindEvents()
|
||||
}
|
||||
|
||||
destroy() {
|
||||
if (!this._el) return
|
||||
|
||||
this._unbindEvents()
|
||||
|
||||
const items = this._el.querySelectorAll('.menu-item')
|
||||
for (let i = 0, l = items.length; i < l; i++) {
|
||||
Menu._unbindAnimationEndEvent(items[i])
|
||||
items[i].classList.remove('menu-item-animating')
|
||||
items[i].classList.remove('open')
|
||||
items[i].style.overflow = null
|
||||
items[i].style.height = null
|
||||
}
|
||||
|
||||
const menus = this._el.querySelectorAll('.menu-menu')
|
||||
for (let i2 = 0, l2 = menus.length; i2 < l2; i2++) {
|
||||
menus[i2].style.marginRight = null
|
||||
menus[i2].style.marginLeft = null
|
||||
}
|
||||
|
||||
this._el.classList.remove('menu-no-animation')
|
||||
|
||||
if (this._wrapper) {
|
||||
this._prevBtn.parentNode.removeChild(this._prevBtn)
|
||||
this._nextBtn.parentNode.removeChild(this._nextBtn)
|
||||
this._wrapper.parentNode.insertBefore(this._inner, this._wrapper)
|
||||
this._wrapper.parentNode.removeChild(this._wrapper)
|
||||
this._inner.style.marginLeft = null
|
||||
this._inner.style.marginRight = null
|
||||
}
|
||||
|
||||
this._el.menuInstance = null
|
||||
delete this._el.menuInstance
|
||||
|
||||
this._el = null
|
||||
this._horizontal = null
|
||||
this._animate = null
|
||||
this._accordion = null
|
||||
this._showDropdownOnHover = null
|
||||
this._closeChildren = null
|
||||
this._rtl = null
|
||||
this._onOpen = null
|
||||
this._onOpened = null
|
||||
this._onClose = null
|
||||
this._onClosed = null
|
||||
if (this._scrollbar) {
|
||||
this._scrollbar.destroy()
|
||||
this._scrollbar = null
|
||||
}
|
||||
this._inner = null
|
||||
this._prevBtn = null
|
||||
this._wrapper = null
|
||||
this._nextBtn = null
|
||||
}
|
||||
}
|
||||
|
||||
window.Menu = Menu
|
||||
export { Menu }
|
1400
resources/assets/vendor/js/template-customizer.js
vendored
Normal file
1400
resources/assets/vendor/js/template-customizer.js
vendored
Normal file
File diff suppressed because it is too large
Load Diff
7
resources/assets/vendor/libs/@form-validation/auto-focus.js
vendored
Normal file
7
resources/assets/vendor/libs/@form-validation/auto-focus.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import { AutoFocus } from '@form-validation/plugin-auto-focus';
|
||||
|
||||
try {
|
||||
FormValidation.plugins.AutoFocus = AutoFocus;
|
||||
} catch (e) {}
|
||||
|
||||
export { AutoFocus };
|
7
resources/assets/vendor/libs/@form-validation/bootstrap5.js
vendored
Normal file
7
resources/assets/vendor/libs/@form-validation/bootstrap5.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import { Bootstrap5 } from '@form-validation/plugin-bootstrap5';
|
||||
|
||||
try {
|
||||
FormValidation.plugins.Bootstrap5 = Bootstrap5;
|
||||
} catch (e) {}
|
||||
|
||||
export { Bootstrap5 };
|
4
resources/assets/vendor/libs/@form-validation/form-validation.scss
vendored
Normal file
4
resources/assets/vendor/libs/@form-validation/form-validation.scss
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
@import '@form-validation/core/lib/styles/index';
|
||||
@import '@form-validation/plugin-framework/lib/styles/index';
|
||||
@import '@form-validation/plugin-message/lib/styles/index';
|
||||
@import '@form-validation/plugin-bootstrap5/lib/styles/index';
|
8
resources/assets/vendor/libs/@form-validation/popular.js
vendored
Normal file
8
resources/assets/vendor/libs/@form-validation/popular.js
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import FormValidation from '@form-validation/bundle/popular'
|
||||
|
||||
try {
|
||||
window.FormValidation = FormValidation;
|
||||
} catch (e) {}
|
||||
|
||||
export { FormValidation };
|
||||
|
414
resources/assets/vendor/libs/_tabler/_tabler.scss
vendored
Normal file
414
resources/assets/vendor/libs/_tabler/_tabler.scss
vendored
Normal file
@ -0,0 +1,414 @@
|
||||
@-webkit-keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@keyframes spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0);
|
||||
transform: rotate(0);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: rotate(359deg);
|
||||
transform: rotate(359deg);
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes burst {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
90% {
|
||||
-webkit-transform: scale(1.5);
|
||||
transform: scale(1.5);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes burst {
|
||||
0% {
|
||||
-webkit-transform: scale(1);
|
||||
transform: scale(1);
|
||||
opacity: 1;
|
||||
}
|
||||
90% {
|
||||
-webkit-transform: scale(1.5);
|
||||
transform: scale(1.5);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes flashing {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
45% {
|
||||
opacity: 0;
|
||||
}
|
||||
90% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@keyframes flashing {
|
||||
0% {
|
||||
opacity: 1;
|
||||
}
|
||||
45% {
|
||||
opacity: 0;
|
||||
}
|
||||
90% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-left {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateX(-20px);
|
||||
transform: translateX(-20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-left {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateX(-20px);
|
||||
transform: translateX(-20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-right {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-right {
|
||||
0% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-up {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateY(-20px);
|
||||
transform: translateY(-20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-up {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateY(-20px);
|
||||
transform: translateY(-20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes fade-down {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@keyframes fade-down {
|
||||
0% {
|
||||
-webkit-transform: translateY(0);
|
||||
transform: translateY(0);
|
||||
opacity: 1;
|
||||
}
|
||||
75% {
|
||||
-webkit-transform: translateY(20px);
|
||||
transform: translateY(20px);
|
||||
opacity: 0;
|
||||
}
|
||||
}
|
||||
@-webkit-keyframes tada {
|
||||
from {
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
10%,
|
||||
20% {
|
||||
-webkit-transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
|
||||
transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
30%,
|
||||
50%,
|
||||
70%,
|
||||
90% {
|
||||
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
}
|
||||
40%,
|
||||
60%,
|
||||
80% {
|
||||
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg);
|
||||
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
@keyframes tada {
|
||||
from {
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
10%,
|
||||
20% {
|
||||
-webkit-transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
|
||||
transform: scale3d(0.95, 0.95, 0.95) rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
30%,
|
||||
50%,
|
||||
70%,
|
||||
90% {
|
||||
-webkit-transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
transform: scale3d(1, 1, 1) rotate3d(0, 0, 1, 10deg);
|
||||
}
|
||||
40%,
|
||||
60%,
|
||||
80% {
|
||||
-webkit-transform: rotate3d(0, 0, 1, -10deg);
|
||||
transform: rotate3d(0, 0, 1, -10deg);
|
||||
}
|
||||
to {
|
||||
-webkit-transform: scale3d(1, 1, 1);
|
||||
transform: scale3d(1, 1, 1);
|
||||
}
|
||||
}
|
||||
.ti-spin {
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
}
|
||||
|
||||
.ti-spin-hover:hover {
|
||||
-webkit-animation: spin 2s linear infinite;
|
||||
animation: spin 2s linear infinite;
|
||||
}
|
||||
|
||||
.ti-tada {
|
||||
-webkit-animation: tada 1.5s ease infinite;
|
||||
animation: tada 1.5s ease infinite;
|
||||
}
|
||||
|
||||
.ti-tada-hover:hover {
|
||||
-webkit-animation: tada 1.5s ease infinite;
|
||||
animation: tada 1.5s ease infinite;
|
||||
}
|
||||
|
||||
.ti-flashing {
|
||||
-webkit-animation: flashing 1.5s infinite linear;
|
||||
animation: flashing 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-flashing-hover:hover {
|
||||
-webkit-animation: flashing 1.5s infinite linear;
|
||||
animation: flashing 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-burst {
|
||||
-webkit-animation: burst 1.5s infinite linear;
|
||||
animation: burst 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-burst-hover:hover {
|
||||
-webkit-animation: burst 1.5s infinite linear;
|
||||
animation: burst 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-up {
|
||||
-webkit-animation: fade-up 1.5s infinite linear;
|
||||
animation: fade-up 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-up-hover:hover {
|
||||
-webkit-animation: fade-up 1.5s infinite linear;
|
||||
animation: fade-up 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-down {
|
||||
-webkit-animation: fade-down 1.5s infinite linear;
|
||||
animation: fade-down 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-down-hover:hover {
|
||||
-webkit-animation: fade-down 1.5s infinite linear;
|
||||
animation: fade-down 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-left {
|
||||
-webkit-animation: fade-left 1.5s infinite linear;
|
||||
animation: fade-left 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-left-hover:hover {
|
||||
-webkit-animation: fade-left 1.5s infinite linear;
|
||||
animation: fade-left 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-right {
|
||||
-webkit-animation: fade-right 1.5s infinite linear;
|
||||
animation: fade-right 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-fade-right-hover:hover {
|
||||
-webkit-animation: fade-right 1.5s infinite linear;
|
||||
animation: fade-right 1.5s infinite linear;
|
||||
}
|
||||
|
||||
.ti-xs {
|
||||
font-size: 1rem !important;
|
||||
}
|
||||
|
||||
.ti-sm {
|
||||
font-size: 1.125rem !important;
|
||||
}
|
||||
|
||||
.ti-md {
|
||||
font-size: 1.375rem !important;
|
||||
}
|
||||
|
||||
.ti-lg {
|
||||
font-size: 1.5rem !important;
|
||||
}
|
||||
|
||||
.ti-xl {
|
||||
font-size: 2.25rem !important;
|
||||
}
|
||||
|
||||
.ti-10px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 10px;
|
||||
}
|
||||
}
|
||||
.ti-12px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
.ti-14px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 14px;
|
||||
}
|
||||
}
|
||||
.ti-16px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 16px;
|
||||
}
|
||||
}
|
||||
.ti-18px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 18px;
|
||||
}
|
||||
}
|
||||
.ti-20px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 20px;
|
||||
}
|
||||
}
|
||||
.ti-22px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 22px;
|
||||
}
|
||||
}
|
||||
.ti-24px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 24px;
|
||||
}
|
||||
}
|
||||
.ti-26px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 26px;
|
||||
}
|
||||
}
|
||||
.ti-28px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 28px;
|
||||
}
|
||||
}
|
||||
.ti-30px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 30px;
|
||||
}
|
||||
}
|
||||
.ti-32px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 32px;
|
||||
}
|
||||
}
|
||||
.ti-36px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 36px;
|
||||
}
|
||||
}
|
||||
.ti-40px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 40px;
|
||||
}
|
||||
}
|
||||
.ti-42px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 42px;
|
||||
}
|
||||
}
|
||||
.ti-48px {
|
||||
&,
|
||||
&:before {
|
||||
font-size: 48px;
|
||||
}
|
||||
}
|
1
resources/assets/vendor/libs/animate-css/animate.scss
vendored
Normal file
1
resources/assets/vendor/libs/animate-css/animate.scss
vendored
Normal file
@ -0,0 +1 @@
|
||||
@import 'animate.css/animate';
|
93
resources/assets/vendor/libs/bootstrap-datepicker/_mixins.scss
vendored
Normal file
93
resources/assets/vendor/libs/bootstrap-datepicker/_mixins.scss
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
@import '../../scss/_bootstrap-extended/functions';
|
||||
|
||||
@mixin bs-datepicker-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
$range-bg: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
$range-color: $background;
|
||||
|
||||
.datepicker {
|
||||
table {
|
||||
tr td {
|
||||
&.active,
|
||||
&.active.highlighted,
|
||||
.focused,
|
||||
span.active,
|
||||
span.active.disabled,
|
||||
&.range-start,
|
||||
&.range-end {
|
||||
background: $background !important;
|
||||
color: $color !important;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
|
||||
&.range,
|
||||
&.range.highlighted,
|
||||
&.range.today {
|
||||
color: $range-color !important;
|
||||
background: $range-bg !important;
|
||||
|
||||
&.focused {
|
||||
background: rgba-to-hex(rgba($background, 0.24), $card-bg) !important;
|
||||
}
|
||||
|
||||
&.disabled {
|
||||
background: transparentize($range-bg, 0.5) !important;
|
||||
color: transparentize($range-color, 0.5) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.today:not(.active),
|
||||
&.today:not(.active):hover {
|
||||
color: $background;
|
||||
background-color: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin bs-datepicker-dark-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
$range-bg: rgba-to-hex(rgba($background, 0.24), $card-bg);
|
||||
$range-color: $background;
|
||||
|
||||
.datepicker {
|
||||
table {
|
||||
tr td {
|
||||
&.active,
|
||||
&.active.highlighted,
|
||||
.focused,
|
||||
span.active,
|
||||
span.active.disabled,
|
||||
&.range-start,
|
||||
&.range-end {
|
||||
color: $color !important;
|
||||
background: $background !important;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
|
||||
&.range,
|
||||
&.range.highlighted,
|
||||
&.range.today {
|
||||
color: $range-color !important;
|
||||
background: $range-bg !important;
|
||||
|
||||
&.disabled {
|
||||
color: transparentize($range-color, 0.5) !important;
|
||||
background: transparentize($range-bg, 0.5) !important;
|
||||
}
|
||||
|
||||
&.focused {
|
||||
background: rgba-to-hex(rgba($background, 0.24), $card-bg) !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.today:not(.active),
|
||||
&.today:not(.active):hover {
|
||||
color: $background;
|
||||
background-color: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1
resources/assets/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js
vendored
Normal file
1
resources/assets/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import 'bootstrap-datepicker/dist/js/bootstrap-datepicker';
|
482
resources/assets/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.scss
vendored
Normal file
482
resources/assets/vendor/libs/bootstrap-datepicker/bootstrap-datepicker.scss
vendored
Normal file
@ -0,0 +1,482 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
$datepicker-arrow-size: 0.45rem !default;
|
||||
$datepicker-item-width: 2.25rem !default;
|
||||
$datepicker-item-height: 2.25rem !default;
|
||||
$white: #fff;
|
||||
|
||||
.datepicker {
|
||||
direction: ltr;
|
||||
|
||||
&.dropdown-menu {
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
}
|
||||
.datepicker-days {
|
||||
margin: 0.875rem 0.875rem 0.875rem;
|
||||
}
|
||||
|
||||
// Basic styles for next and prev arrows
|
||||
.next,
|
||||
.prev {
|
||||
color: transparent !important;
|
||||
position: absolute;
|
||||
top: 0.65rem;
|
||||
height: 1.875rem;
|
||||
width: 1.875rem;
|
||||
border-radius: light.$border-radius-pill;
|
||||
display: table-caption;
|
||||
}
|
||||
|
||||
// LRT & RTL only styles for arrows
|
||||
table thead tr th {
|
||||
&.next {
|
||||
@include app-ltr {
|
||||
float: right;
|
||||
right: 0.125rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
float: left;
|
||||
left: 0.125rem;
|
||||
}
|
||||
}
|
||||
&.prev {
|
||||
@include app-ltr {
|
||||
right: 2.75rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
left: 2.75rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.datepicker-inline {
|
||||
table {
|
||||
thead tr th {
|
||||
&.next {
|
||||
inset-inline-end: 0.5rem !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.datepicker-days {
|
||||
.datepicker-switch {
|
||||
top: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// next & prev arrow after style
|
||||
.next::after,
|
||||
.prev::after {
|
||||
content: '';
|
||||
display: block;
|
||||
position: absolute;
|
||||
left: 46%;
|
||||
top: 46%;
|
||||
height: $datepicker-arrow-size;
|
||||
width: $datepicker-arrow-size;
|
||||
border-radius: 0;
|
||||
border-style: solid;
|
||||
transform: rotate(-45deg);
|
||||
transform-origin: left;
|
||||
}
|
||||
|
||||
.next::after {
|
||||
margin-left: -$datepicker-arrow-size * 0.35;
|
||||
border-width: 0 1.9px 1.9px 0;
|
||||
|
||||
@include app-rtl {
|
||||
transform: rotate(-45deg);
|
||||
border-width: 1.9px 0 0 1.9px;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.prev::after {
|
||||
border-width: 1.9px 0 0 1.9px;
|
||||
|
||||
@include app-rtl {
|
||||
transform: rotate(-45deg);
|
||||
border-width: 0 1.9px 1.9px 0;
|
||||
margin-left: -$datepicker-arrow-size * 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
// arrow alignments excluding datepicker-days
|
||||
.datepicker-months,
|
||||
.datepicker-years,
|
||||
.datepicker-decades,
|
||||
.datepicker-centuries {
|
||||
.next {
|
||||
@include app-ltr {
|
||||
right: 1rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
left: 1rem;
|
||||
}
|
||||
}
|
||||
.prev {
|
||||
@include app-ltr {
|
||||
right: 3.4rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
left: 3.4rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// switch default styles
|
||||
.datepicker-switch {
|
||||
vertical-align: middle;
|
||||
position: relative;
|
||||
@include app-ltr {
|
||||
text-align: left;
|
||||
}
|
||||
@include app-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
// switch alignments datepicker-days
|
||||
.datepicker-days {
|
||||
.datepicker-switch {
|
||||
top: -4px;
|
||||
@include app-ltr {
|
||||
left: -1.68rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
right: -1.68rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// switch alignments excluding datepicker-days
|
||||
.datepicker-months,
|
||||
.datepicker-years,
|
||||
.datepicker-decades,
|
||||
.datepicker-centuries {
|
||||
.datepicker-switch {
|
||||
@include app-ltr {
|
||||
left: 1rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table thead tr:nth-child(2) {
|
||||
height: 60px !important;
|
||||
width: 80px;
|
||||
position: relative;
|
||||
}
|
||||
|
||||
&.datepicker-rtl {
|
||||
direction: rtl;
|
||||
|
||||
table tr td span {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
direction: rtl;
|
||||
}
|
||||
}
|
||||
|
||||
.datepicker table {
|
||||
user-select: none;
|
||||
margin: 0;
|
||||
overflow: hidden;
|
||||
border-radius: light.$dropdown-border-radius;
|
||||
tbody {
|
||||
//! FIX: padding or margin top will not work in table
|
||||
&:before {
|
||||
content: '@';
|
||||
display: block;
|
||||
line-height: 6px;
|
||||
text-indent: -99999px;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.datepicker table tr td,
|
||||
.datepicker table tr th {
|
||||
font-weight: 400;
|
||||
text-align: center;
|
||||
border: none;
|
||||
|
||||
&.dow {
|
||||
font-size: light.$font-size-sm;
|
||||
}
|
||||
}
|
||||
|
||||
.datepicker table tr td {
|
||||
border-radius: light.$border-radius-pill;
|
||||
width: $datepicker-item-width;
|
||||
height: $datepicker-item-height;
|
||||
&.day:hover,
|
||||
&.focused {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
cursor: default;
|
||||
background: none;
|
||||
}
|
||||
|
||||
&.range {
|
||||
border-radius: 0 !important;
|
||||
&.today {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
// span.month,
|
||||
// span.year {
|
||||
// margin: 0 0.5rem;
|
||||
// }
|
||||
|
||||
&.range-start:not(.range-end) {
|
||||
@include app-ltr {
|
||||
border-bottom-right-radius: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-top-left-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.range-end:not(.range-start) {
|
||||
@include app-ltr {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-top-left-radius: 0 !important;
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
border-bottom-right-radius: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.selected,
|
||||
&.selected:hover,
|
||||
&.selected.highlighted {
|
||||
color: $white;
|
||||
}
|
||||
}
|
||||
|
||||
// Styles for datepicker months, years, decades etc
|
||||
.datepicker table tr td span {
|
||||
display: block;
|
||||
float: left;
|
||||
width: 3.625rem;
|
||||
height: 2rem;
|
||||
line-height: 2rem;
|
||||
cursor: pointer;
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
background: none;
|
||||
cursor: default;
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
.datepicker .datepicker-switch,
|
||||
.datepicker .prev,
|
||||
.datepicker .next,
|
||||
.datepicker tfoot tr th {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.datepicker-months table,
|
||||
.datepicker-years table,
|
||||
.datepicker-decades table,
|
||||
.datepicker-centuries table {
|
||||
width: (3.375rem * 3) + 2.625rem;
|
||||
|
||||
td {
|
||||
padding: 0 0 0.5rem 0.8125rem;
|
||||
|
||||
@include app-rtl {
|
||||
padding: 0 0.8125rem 0.5rem 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.datepicker-dropdown {
|
||||
left: 0;
|
||||
top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.input-daterange input {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.datepicker-dropdown {
|
||||
z-index: light.$zindex-popover !important;
|
||||
box-shadow: light.$card-box-shadow;
|
||||
}
|
||||
|
||||
.datepicker {
|
||||
th {
|
||||
&.prev,
|
||||
&.next {
|
||||
background-color: light.rgba-to-hex(rgba(light.$black, 0.08), light.$card-bg);
|
||||
&::after {
|
||||
border-color: light.$body-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.datepicker-inline {
|
||||
table {
|
||||
box-shadow: light.$box-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
thead {
|
||||
background-color: light.$card-bg;
|
||||
tr,
|
||||
td {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
}
|
||||
tr td,
|
||||
tr th {
|
||||
&.new {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
}
|
||||
|
||||
tr td {
|
||||
&.old,
|
||||
&.disabled {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
&.cw {
|
||||
background-color: light.$card-bg;
|
||||
color: light.$body-color;
|
||||
}
|
||||
|
||||
&.day:hover,
|
||||
&.focused {
|
||||
background: light.rgba-to-hex(light.$gray-50, light.$card-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.datepicker table tr td span {
|
||||
border-radius: light.$border-radius;
|
||||
|
||||
&:hover,
|
||||
&.focused {
|
||||
background: light.rgba-to-hex(light.$gray-50, light.$card-bg);
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
&.old,
|
||||
&.new {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.datepicker-dropdown {
|
||||
z-index: dark.$zindex-popover !important;
|
||||
box-shadow: dark.$card-box-shadow;
|
||||
}
|
||||
|
||||
.datepicker {
|
||||
th {
|
||||
&.prev,
|
||||
&.next {
|
||||
background-color: dark.rgba-to-hex(rgba(dark.$base, 0.08), dark.$card-bg);
|
||||
&::after {
|
||||
border-color: dark.$body-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.datepicker-inline {
|
||||
table {
|
||||
box-shadow: dark.$card-box-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
thead {
|
||||
background-color: dark.$card-bg;
|
||||
tr,
|
||||
td {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
tr td,
|
||||
tr th {
|
||||
&.new {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
}
|
||||
|
||||
tr td {
|
||||
color: dark.$body-color;
|
||||
|
||||
&.old,
|
||||
&.disabled {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
&.cw {
|
||||
background-color: dark.$card-bg;
|
||||
color: dark.$body-color;
|
||||
}
|
||||
|
||||
&.day:hover,
|
||||
&.focused {
|
||||
background: dark.rgba-to-hex(dark.$gray-50, dark.$card-bg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.datepicker table tr td span {
|
||||
border-radius: dark.$border-radius;
|
||||
|
||||
&:hover,
|
||||
&.focused {
|
||||
background: dark.rgba-to-hex(dark.$gray-50, dark.$card-bg);
|
||||
}
|
||||
|
||||
&.disabled,
|
||||
&.disabled:hover {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
&.old,
|
||||
&.new {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
81
resources/assets/vendor/libs/bootstrap-daterangepicker/_mixins.scss
vendored
Normal file
81
resources/assets/vendor/libs/bootstrap-daterangepicker/_mixins.scss
vendored
Normal file
@ -0,0 +1,81 @@
|
||||
@import '../../scss/_bootstrap-extended/functions';
|
||||
|
||||
@mixin bs-daterangepicker-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
|
||||
$highlighted-bg: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
$highlighted-color: $background;
|
||||
|
||||
.daterangepicker td.active:not(.off) {
|
||||
background: $background !important;
|
||||
color: $white;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
|
||||
.daterangepicker {
|
||||
.start-date:not(.end-date):not(.off),
|
||||
.end-date:not(.start-date):not(.off) {
|
||||
background-color: $background;
|
||||
color: $white;
|
||||
border: 0 !important;
|
||||
|
||||
&:hover {
|
||||
background-color: $background !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .input-mini.active {
|
||||
border-color: $background !important;
|
||||
}
|
||||
|
||||
.daterangepicker td.in-range:not(.start-date):not(.end-date):not(.off) {
|
||||
color: $highlighted-color !important;
|
||||
background-color: $highlighted-bg !important;
|
||||
}
|
||||
|
||||
.ranges li.active {
|
||||
color: $highlighted-color !important;
|
||||
background-color: $highlighted-bg !important;
|
||||
}
|
||||
}
|
||||
|
||||
@mixin bs-daterangepicker-dark-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
|
||||
$highlighted-bg: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
$highlighted-color: $background;
|
||||
|
||||
.daterangepicker td.active:not(.off) {
|
||||
background: $background !important;
|
||||
color: $white;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
|
||||
.daterangepicker {
|
||||
.start-date:not(.end-date):not(.off),
|
||||
.end-date:not(.start-date):not(.off) {
|
||||
background-color: $background;
|
||||
color: $white;
|
||||
border: 0 !important;
|
||||
|
||||
&:hover {
|
||||
background-color: $background !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .input-mini.active {
|
||||
border-color: $background !important;
|
||||
}
|
||||
|
||||
.daterangepicker td.in-range:not(.start-date):not(.end-date):not(.off) {
|
||||
color: $highlighted-color !important;
|
||||
background-color: $highlighted-bg !important;
|
||||
}
|
||||
|
||||
.ranges li.active {
|
||||
color: $highlighted-color !important;
|
||||
background-color: $highlighted-bg !important;
|
||||
}
|
||||
}
|
18
resources/assets/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.js
vendored
Normal file
18
resources/assets/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.js
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
import 'bootstrap-daterangepicker/daterangepicker';
|
||||
|
||||
// Patch detect when weeks are shown
|
||||
|
||||
const fnDaterangepicker = $.fn.daterangepicker;
|
||||
|
||||
$.fn.daterangepicker = function (options, callback) {
|
||||
fnDaterangepicker.call(this, options, callback);
|
||||
|
||||
if (options && (options.showWeekNumbers || options.showISOWeekNumbers)) {
|
||||
this.each(function () {
|
||||
const instance = $(this).data('daterangepicker');
|
||||
if (instance && instance.container) instance.container.addClass('with-week-numbers');
|
||||
});
|
||||
}
|
||||
|
||||
return this;
|
||||
};
|
744
resources/assets/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.scss
vendored
Normal file
744
resources/assets/vendor/libs/bootstrap-daterangepicker/bootstrap-daterangepicker.scss
vendored
Normal file
@ -0,0 +1,744 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
$daterangepicker-arrow-size: 0.45rem !default;
|
||||
$daterangepicker-select-width: 3.125rem !default;
|
||||
$daterangepicker-cell-size: 2.25rem !default;
|
||||
$daterangepicker-padding: 0.8rem !default;
|
||||
|
||||
// Calculate widths
|
||||
$daterangepicker-width: ($daterangepicker-cell-size * 7)+ ($daterangepicker-padding * 2);
|
||||
$daterangepicker-width-with-weeks: $daterangepicker-width + $daterangepicker-cell-size;
|
||||
|
||||
.daterangepicker {
|
||||
position: absolute;
|
||||
max-width: none;
|
||||
padding: 0.875rem 0 0.5rem;
|
||||
display: none;
|
||||
|
||||
tbody {
|
||||
//! FIX: padding or margin top will not work in table
|
||||
&:before {
|
||||
content: '@';
|
||||
display: block;
|
||||
line-height: 6px;
|
||||
text-indent: -99999px;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
direction: rtl !important;
|
||||
}
|
||||
|
||||
// datepicker header styles
|
||||
table thead tr:first-child {
|
||||
height: 52px !important;
|
||||
position: relative;
|
||||
}
|
||||
.calendar-table td {
|
||||
border-radius: 50rem;
|
||||
}
|
||||
|
||||
// month and year select styles
|
||||
table thead {
|
||||
th,
|
||||
td {
|
||||
select {
|
||||
background-color: transparent;
|
||||
font-weight: light.$font-weight-medium;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// prev arrow styles excluding single daterangepicker
|
||||
.daterangepicker {
|
||||
.drp-calendar:not(.single).left {
|
||||
.prev {
|
||||
@include app-ltr {
|
||||
left: 0.25rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
right: 0.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// next arrow styles excluding single daterangepicker
|
||||
.drp-calendar:not(.single).right {
|
||||
.next {
|
||||
@include app-ltr {
|
||||
right: 0.25rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
left: 0.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker.auto-apply .drp-buttons {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.daterangepicker.show-calendar .drp-calendar,
|
||||
.daterangepicker.show-calendar .drp-buttons {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar {
|
||||
display: none;
|
||||
padding: 0 $daterangepicker-padding $daterangepicker-padding;
|
||||
|
||||
&.single .calendar-table {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker.single {
|
||||
.drp-selected {
|
||||
display: none;
|
||||
}
|
||||
.daterangepicker .ranges,
|
||||
.drp-calendar {
|
||||
float: none;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table {
|
||||
border: 0;
|
||||
|
||||
// prev & next arrow default styles
|
||||
.next,
|
||||
.prev {
|
||||
position: absolute;
|
||||
top: 0.65rem;
|
||||
min-width: unset;
|
||||
height: 1.875rem;
|
||||
width: 1.875rem;
|
||||
border-radius: 50rem;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.next span,
|
||||
.prev span {
|
||||
display: inline-block;
|
||||
border-width: 0 1.9px 1.9px 0;
|
||||
border-style: solid;
|
||||
border-radius: 0;
|
||||
height: $daterangepicker-arrow-size;
|
||||
width: $daterangepicker-arrow-size;
|
||||
}
|
||||
|
||||
.prev span {
|
||||
margin-right: -$daterangepicker-arrow-size * 0.5;
|
||||
transform: rotate(135deg);
|
||||
|
||||
@include app-rtl {
|
||||
margin-left: -$daterangepicker-arrow-size * 0.5;
|
||||
margin-right: 0;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
}
|
||||
|
||||
.next span {
|
||||
margin-left: -$daterangepicker-arrow-size * 0.5;
|
||||
transform: rotate(-45deg);
|
||||
|
||||
@include app-rtl {
|
||||
margin-left: 0;
|
||||
margin-right: -$daterangepicker-arrow-size * 0.5;
|
||||
transform: rotate(135deg);
|
||||
}
|
||||
}
|
||||
|
||||
table {
|
||||
border: 0;
|
||||
border-spacing: 0;
|
||||
border-collapse: collapse;
|
||||
margin: 0;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
th,
|
||||
td {
|
||||
vertical-align: middle;
|
||||
min-width: $daterangepicker-cell-size;
|
||||
line-height: calc(#{$daterangepicker-cell-size} - 2px);
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
cursor: pointer;
|
||||
}
|
||||
td {
|
||||
height: $daterangepicker-cell-size;
|
||||
width: $daterangepicker-cell-size;
|
||||
}
|
||||
th {
|
||||
width: $daterangepicker-cell-size;
|
||||
height: $daterangepicker-cell-size + 0.5rem;
|
||||
}
|
||||
tr:first-child th:not(.prev):not(.next) {
|
||||
height: $daterangepicker-cell-size;
|
||||
}
|
||||
// daterangepicker single
|
||||
.daterangepicker .single {
|
||||
// arrow alignments
|
||||
.next {
|
||||
float: right;
|
||||
@include app-ltr {
|
||||
right: 0.625rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
left: 0.625rem;
|
||||
}
|
||||
}
|
||||
.prev {
|
||||
@include app-ltr {
|
||||
right: 3.125rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
left: 3.125rem;
|
||||
}
|
||||
}
|
||||
// month alignments
|
||||
th.month {
|
||||
position: absolute;
|
||||
top: 0.5rem;
|
||||
@include app-ltr {
|
||||
text-align: left;
|
||||
left: 0.562rem;
|
||||
}
|
||||
@include app-rtl {
|
||||
text-align: right;
|
||||
right: 0.562rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker td {
|
||||
@include app-ltr {
|
||||
&.start-date:not(.end-date) {
|
||||
border-bottom-right-radius: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
}
|
||||
|
||||
&.end-date:not(.start-date) {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-top-left-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
&.in-range:not(.start-date):not(.end-date) {
|
||||
border-radius: 0 !important;
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
&.start-date:not(.end-date) {
|
||||
border-bottom-left-radius: 0 !important;
|
||||
border-top-left-radius: 0 !important;
|
||||
}
|
||||
|
||||
&.end-date:not(.start-date) {
|
||||
border-bottom-right-radius: 0 !important;
|
||||
border-top-right-radius: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker td.disabled,
|
||||
.daterangepicker option.disabled {
|
||||
cursor: not-allowed;
|
||||
text-decoration: line-through;
|
||||
}
|
||||
|
||||
.daterangepicker th.month {
|
||||
width: auto;
|
||||
}
|
||||
.daterangepicker select {
|
||||
&.monthselect,
|
||||
&.yearselect {
|
||||
height: auto;
|
||||
padding: 1px;
|
||||
margin: 0;
|
||||
border: 0;
|
||||
cursor: default;
|
||||
}
|
||||
&:focus-visible {
|
||||
outline: 0;
|
||||
}
|
||||
|
||||
&.monthselect {
|
||||
width: 46%;
|
||||
margin-right: 2%;
|
||||
|
||||
@include app-rtl {
|
||||
margin-left: 2%;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
&.yearselect {
|
||||
width: 40%;
|
||||
}
|
||||
|
||||
&.hourselect,
|
||||
&.minuteselect,
|
||||
&.secondselect,
|
||||
&.ampmselect {
|
||||
outline: 0;
|
||||
width: $daterangepicker-select-width;
|
||||
padding: 2px;
|
||||
margin: 0 auto;
|
||||
border-radius: light.$border-radius-sm;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-time {
|
||||
position: relative;
|
||||
line-height: 30px;
|
||||
text-align: center;
|
||||
margin: 0 auto;
|
||||
|
||||
select.disabled {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .drp-buttons {
|
||||
padding: $daterangepicker-padding $daterangepicker-padding * 1.5;
|
||||
clear: both;
|
||||
display: none;
|
||||
text-align: right;
|
||||
vertical-align: middle;
|
||||
|
||||
.btn {
|
||||
margin-left: $daterangepicker-padding * 1.2;
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
text-align: left;
|
||||
|
||||
.btn {
|
||||
margin-left: 0;
|
||||
margin-right: $daterangepicker-padding * 1.2;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .drp-selected {
|
||||
width: 100%;
|
||||
padding-bottom: $daterangepicker-padding;
|
||||
display: block;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges {
|
||||
text-align: left;
|
||||
float: none;
|
||||
margin: 0;
|
||||
|
||||
// Daterangepicker Ranges spacing
|
||||
ul {
|
||||
padding: 0.5rem;
|
||||
margin: 0 auto;
|
||||
list-style: none;
|
||||
width: 100%;
|
||||
}
|
||||
li {
|
||||
border-radius: light.$border-radius;
|
||||
padding: light.$dropdown-item-padding-y light.$dropdown-item-padding-x;
|
||||
&:not(:first-child) {
|
||||
margin-top: 0.125rem;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker.show-calendar .ranges {
|
||||
border-bottom: 1px solid;
|
||||
|
||||
&:empty {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .drp-calendar.right {
|
||||
@include app-ltr {
|
||||
padding-left: 1px;
|
||||
}
|
||||
@include app-rtl {
|
||||
padding-right: 1px;
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.daterangepicker {
|
||||
z-index: light.$zindex-popover !important;
|
||||
border: light.$dropdown-border-width solid light.$dropdown-border-color;
|
||||
border-radius: light.$border-radius;
|
||||
width: calc(#{$daterangepicker-width} + calc(#{light.$dropdown-border-width} * 2));
|
||||
box-shadow: light.$card-box-shadow;
|
||||
background-color: light.$dropdown-bg;
|
||||
|
||||
table thead {
|
||||
background: light.$dropdown-bg;
|
||||
th,
|
||||
td {
|
||||
color: light.$headings-color;
|
||||
|
||||
&.prev,
|
||||
&.next {
|
||||
span {
|
||||
border-color: light.$body-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
background-color: transparent;
|
||||
color: light.$headings-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
&.drop-up {
|
||||
margin-top: -(light.$dropdown-spacer);
|
||||
}
|
||||
|
||||
&.with-week-numbers {
|
||||
width: calc(#{$daterangepicker-width-with-weeks} + calc(#{light.$dropdown-border-width} * 2));
|
||||
}
|
||||
}
|
||||
.daterangepicker .calendar-table td {
|
||||
border-radius: light.$border-radius-pill;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-selected {
|
||||
font-size: light.$font-size-sm;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table thead tr:last-child th {
|
||||
border-radius: 0 !important;
|
||||
color: light.$headings-color;
|
||||
font-size: light.$font-size-sm;
|
||||
font-weight: light.$font-weight-normal;
|
||||
}
|
||||
|
||||
.daterangepicker th.month {
|
||||
color: light.$headings-color;
|
||||
font-weight: light.$font-weight-normal;
|
||||
}
|
||||
|
||||
.daterangepicker td.week,
|
||||
.daterangepicker th.week {
|
||||
color: light.$headings-color;
|
||||
font-weight: light.$font-weight-normal;
|
||||
}
|
||||
|
||||
.daterangepicker td.disabled,
|
||||
.daterangepicker option.disabled {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
.daterangepicker td.available:not(.active):hover,
|
||||
.daterangepicker th.available:hover {
|
||||
background-color: light.$gray-50;
|
||||
}
|
||||
|
||||
.daterangepicker td.off {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges li {
|
||||
cursor: pointer;
|
||||
padding: light.$dropdown-item-padding-y light.$dropdown-item-padding-x;
|
||||
|
||||
&:hover {
|
||||
background-color: light.$dropdown-link-hover-bg;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table .next,
|
||||
.daterangepicker .calendar-table .prev {
|
||||
background-color: light.$gray-50;
|
||||
span {
|
||||
border-color: light.$body-color;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker select {
|
||||
&.hourselect,
|
||||
&.minuteselect,
|
||||
&.secondselect,
|
||||
&.ampmselect {
|
||||
background: light.rgba-to-hex(light.$gray-100, light.$rgba-to-hex-bg);
|
||||
font-size: light.$font-size-sm;
|
||||
color: light.$body-color;
|
||||
border: 1px solid transparent;
|
||||
option {
|
||||
background: light.$card-bg;
|
||||
}
|
||||
}
|
||||
|
||||
// ! FIX: OS Windows and Linux Browsers DD Option color
|
||||
&.monthselect,
|
||||
&.yearselect {
|
||||
option {
|
||||
color: light.$body-color;
|
||||
background: light.$input-bg;
|
||||
&:disabled {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-time select.disabled {
|
||||
color: light.$text-light;
|
||||
}
|
||||
|
||||
@include light.media-breakpoint-up(md) {
|
||||
.daterangepicker {
|
||||
width: auto !important;
|
||||
|
||||
&:not(.single) .drp-selected {
|
||||
width: auto;
|
||||
padding: 0;
|
||||
display: inline-block;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-ltr-style {
|
||||
.daterangepicker:not(.single) .drp-calendar {
|
||||
float: left;
|
||||
|
||||
&.left {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl-style {
|
||||
.daterangepicker:not(.single) .drp-calendar {
|
||||
float: right;
|
||||
&.left {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include light.media-breakpoint-up(lg) {
|
||||
.daterangepicker .ranges {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
@include app-ltr-style {
|
||||
.daterangepicker {
|
||||
.ranges {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl-style {
|
||||
.daterangepicker {
|
||||
.ranges {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.daterangepicker {
|
||||
box-shadow: dark.$card-box-shadow;
|
||||
width: calc(#{$daterangepicker-width} + calc(#{dark.$dropdown-border-width} * 2));
|
||||
margin-top: dark.$dropdown-spacer;
|
||||
background-color: dark.$dropdown-bg;
|
||||
border: dark.$dropdown-border-width solid dark.$dropdown-border-color;
|
||||
border-radius: dark.$border-radius;
|
||||
z-index: dark.$zindex-popover !important;
|
||||
|
||||
table thead {
|
||||
background: dark.$dropdown-bg;
|
||||
th,
|
||||
td {
|
||||
color: dark.$headings-color;
|
||||
|
||||
&.prev,
|
||||
&.next {
|
||||
span {
|
||||
border-color: dark.$headings-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
select {
|
||||
background-color: transparent;
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.with-week-numbers {
|
||||
width: calc(#{$daterangepicker-width-with-weeks} + calc(#{dark.$dropdown-border-width} * 2));
|
||||
}
|
||||
|
||||
&.drop-up {
|
||||
margin-top: -(dark.$dropdown-spacer);
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table td {
|
||||
border-radius: dark.$border-radius-pill;
|
||||
}
|
||||
|
||||
.daterangepicker .drp-selected {
|
||||
font-size: dark.$font-size-sm;
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table thead tr:last-child th {
|
||||
border-radius: 0 !important;
|
||||
color: dark.$headings-color;
|
||||
font-size: dark.$font-size-sm;
|
||||
font-weight: dark.$font-weight-normal;
|
||||
}
|
||||
|
||||
.daterangepicker th.month {
|
||||
color: dark.$headings-color;
|
||||
font-weight: dark.$font-weight-normal;
|
||||
}
|
||||
|
||||
.daterangepicker td.week,
|
||||
.daterangepicker th.week {
|
||||
color: dark.$headings-color;
|
||||
font-weight: dark.$font-weight-normal;
|
||||
}
|
||||
|
||||
.daterangepicker td.disabled,
|
||||
.daterangepicker option.disabled {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
.daterangepicker td.available:not(.active):hover,
|
||||
.daterangepicker th.available:hover {
|
||||
background-color: dark.$gray-50;
|
||||
}
|
||||
|
||||
.daterangepicker td.off {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
.daterangepicker .ranges li {
|
||||
cursor: pointer;
|
||||
padding: dark.$dropdown-item-padding-y dark.$dropdown-item-padding-x;
|
||||
|
||||
&:hover {
|
||||
background-color: dark.$dropdown-link-hover-bg;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-table .next,
|
||||
.daterangepicker .calendar-table .prev {
|
||||
background-color: dark.$gray-50;
|
||||
span {
|
||||
border-color: dark.$body-color;
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker select {
|
||||
&.hourselect,
|
||||
&.minuteselect,
|
||||
&.secondselect,
|
||||
&.ampmselect {
|
||||
background: dark.rgba-to-hex(dark.$gray-100, dark.$rgba-to-hex-bg);
|
||||
border: 1px solid transparent;
|
||||
font-size: dark.$font-size-sm;
|
||||
color: dark.$body-color;
|
||||
option {
|
||||
background: dark.$card-bg;
|
||||
}
|
||||
}
|
||||
|
||||
// ! FIX: OS Windows and Linux Browsers DD Option color
|
||||
&.monthselect,
|
||||
&.yearselect {
|
||||
option {
|
||||
color: dark.$body-color;
|
||||
background: dark.$card-bg;
|
||||
&:disabled {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.daterangepicker .calendar-time select.disabled {
|
||||
color: dark.$text-light;
|
||||
}
|
||||
|
||||
@include dark.media-breakpoint-up(md) {
|
||||
.daterangepicker {
|
||||
width: auto !important;
|
||||
|
||||
&:not(.single) .drp-selected {
|
||||
display: inline-block;
|
||||
width: auto;
|
||||
padding: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-ltr-style {
|
||||
.daterangepicker:not(.single) .drp-calendar {
|
||||
float: left;
|
||||
|
||||
&.left {
|
||||
padding-right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl-style {
|
||||
.daterangepicker:not(.single) .drp-calendar {
|
||||
float: right;
|
||||
|
||||
&.left {
|
||||
padding-left: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include dark.media-breakpoint-up(lg) {
|
||||
.daterangepicker .ranges {
|
||||
border-bottom: 0;
|
||||
}
|
||||
|
||||
@include app-ltr-style {
|
||||
.daterangepicker {
|
||||
.ranges {
|
||||
float: left;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl-style {
|
||||
.daterangepicker {
|
||||
.ranges {
|
||||
float: right;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
16
resources/assets/vendor/libs/bootstrap-select/_mixins.scss
vendored
Normal file
16
resources/assets/vendor/libs/bootstrap-select/_mixins.scss
vendored
Normal file
@ -0,0 +1,16 @@
|
||||
@import '../../scss/_bootstrap-extended/functions';
|
||||
|
||||
@mixin bs-select-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
|
||||
.bootstrap-select {
|
||||
.dropdown-menu.inner a[aria-selected='true'] {
|
||||
background: $background !important;
|
||||
color: $color !important;
|
||||
}
|
||||
// Fix: To add focus border, .bootstrap-select adding border but not able to update as we can not have the focus on div
|
||||
.dropdown-toggle.show {
|
||||
border-color: $background;
|
||||
}
|
||||
}
|
||||
}
|
1
resources/assets/vendor/libs/bootstrap-select/bootstrap-select.js
vendored
Normal file
1
resources/assets/vendor/libs/bootstrap-select/bootstrap-select.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import 'bootstrap-select/js/bootstrap-select';
|
259
resources/assets/vendor/libs/bootstrap-select/bootstrap-select.scss
vendored
Normal file
259
resources/assets/vendor/libs/bootstrap-select/bootstrap-select.scss
vendored
Normal file
@ -0,0 +1,259 @@
|
||||
// Bootstrap Select
|
||||
// *******************************************************************************
|
||||
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'bootstrap-select/sass/bootstrap-select.scss';
|
||||
|
||||
// Common Styles
|
||||
.bootstrap-select *,
|
||||
.bootstrap-select .dropdown-toggle:focus {
|
||||
outline: 0 !important;
|
||||
}
|
||||
.bootstrap-select {
|
||||
.bs-searchbox,
|
||||
.bs-actionsbox,
|
||||
.bs-donebutton {
|
||||
padding: 0 0 8px;
|
||||
}
|
||||
.dropdown-toggle {
|
||||
transition: none;
|
||||
padding: calc(light.$input-padding-y - light.$input-border-width) light.$input-padding-x;
|
||||
box-shadow: none !important;
|
||||
&.show,
|
||||
&:focus {
|
||||
padding: calc(light.$input-padding-y - light.$input-focus-border-width)
|
||||
calc(light.$input-padding-x - light.$input-border-width);
|
||||
}
|
||||
&:after {
|
||||
transform: rotate(45deg) translateY(-100%);
|
||||
position: absolute;
|
||||
inset-inline-end: 23px;
|
||||
top: 50%;
|
||||
margin: 0 !important;
|
||||
@include app-rtl {
|
||||
inset-inline-end: 12px;
|
||||
}
|
||||
}
|
||||
&:active {
|
||||
transform: none !important;
|
||||
}
|
||||
&.show {
|
||||
&:after {
|
||||
inset-inline-end: calc(23px - light.$input-border-width);
|
||||
@include app-rtl {
|
||||
inset-inline-end: calc(12px - light.$input-border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
.filter-option-inner-inner {
|
||||
line-height: light.$input-line-height;
|
||||
}
|
||||
}
|
||||
.btn {
|
||||
&:disabled,
|
||||
&.disabled {
|
||||
color: light.$btn-color !important;
|
||||
}
|
||||
}
|
||||
|
||||
// For header dropdown close btn
|
||||
.dropdown-menu .popover-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
button {
|
||||
border: none;
|
||||
font-size: light.$h4-font-size;
|
||||
background: transparent;
|
||||
padding-bottom: 0.125rem;
|
||||
}
|
||||
}
|
||||
.is-invalid {
|
||||
~ .dropdown-toggle {
|
||||
&:after {
|
||||
inset-inline-end: calc(23px - light.$input-border-width);
|
||||
@include app-rtl {
|
||||
inset-inline-end: calc(12px - light.$input-border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bootstrap-select.dropup {
|
||||
.dropdown-toggle {
|
||||
&:after {
|
||||
transform: rotate(317deg) translateY(-30%);
|
||||
inset-inline-end: 14px;
|
||||
@include app-rtl {
|
||||
inset-inline-end: calc(18px);
|
||||
}
|
||||
}
|
||||
&.show {
|
||||
&:after {
|
||||
inset-inline-end: calc(14px - light.$input-border-width);
|
||||
@include app-rtl {
|
||||
inset-inline-end: calc(18px - light.$input-border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.is-invalid {
|
||||
~ .dropdown-toggle {
|
||||
&:after {
|
||||
inset-inline-end: calc(14px - light.$input-border-width);
|
||||
@include app-rtl {
|
||||
inset-inline-end: calc(18px - light.$input-border-width);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Menu Position
|
||||
.bootstrap-select.show-tick .dropdown-menu {
|
||||
li a {
|
||||
position: relative;
|
||||
}
|
||||
// RTL
|
||||
@include app-rtl {
|
||||
li a span.text {
|
||||
margin-left: 2.125rem;
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.selected span.check-mark {
|
||||
display: block;
|
||||
right: 1rem;
|
||||
top: 50%;
|
||||
margin: 0;
|
||||
transform: translateY(-50%);
|
||||
line-height: 1;
|
||||
|
||||
@include app-rtl {
|
||||
left: 1rem;
|
||||
right: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// To remove ripple effect
|
||||
.bootstrap-select .dropdown-menu.inner .selected .waves-ripple {
|
||||
display: none !important;
|
||||
}
|
||||
|
||||
.bootstrap-select:not(.input-group-btn),
|
||||
.bootstrap-select[class*='col-'] {
|
||||
display: block;
|
||||
}
|
||||
|
||||
html[class] .bootstrap-select.form-select {
|
||||
background: none !important;
|
||||
border: 0 !important;
|
||||
padding: 0 !important;
|
||||
margin: 0 !important;
|
||||
}
|
||||
|
||||
// RTL
|
||||
|
||||
@include app-rtl(false) {
|
||||
.bootstrap-select .dropdown-toggle .filter-option {
|
||||
float: right;
|
||||
right: 0;
|
||||
left: auto;
|
||||
text-align: right;
|
||||
padding-left: inherit;
|
||||
padding-right: 0;
|
||||
margin-left: -100%;
|
||||
margin-right: 0;
|
||||
}
|
||||
// Fix: Subtext rtl support
|
||||
.bootstrap-select .filter-option-inner-inner {
|
||||
float: right;
|
||||
}
|
||||
.bootstrap-select .dropdown-menu li small.text-muted,
|
||||
.bootstrap-select .filter-option small.text-muted {
|
||||
position: relative;
|
||||
top: 2px;
|
||||
padding-left: 0;
|
||||
padding-right: 0.5em;
|
||||
float: left;
|
||||
}
|
||||
|
||||
.bootstrap-select .dropdown-toggle .filter-option-inner {
|
||||
padding-left: inherit;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.bootstrap-select {
|
||||
background-color: light.$input-bg;
|
||||
.dropdown-toggle {
|
||||
border-radius: light.$border-radius;
|
||||
border: light.$input-border-width solid light.$input-border-color;
|
||||
&.show,
|
||||
&:focus {
|
||||
border: light.$input-focus-border-width solid light.$primary;
|
||||
}
|
||||
&:not(.show):hover {
|
||||
border-color: light.$input-border-hover-color;
|
||||
}
|
||||
}
|
||||
.dropdown-menu {
|
||||
&[data-popper-placement='top-start'],
|
||||
&[data-popper-placement='top-end'] {
|
||||
box-shadow: 0 -0.2rem 1.25rem rgba(light.rgba-to-hex(light.$gray-500, light.$rgba-to-hex-bg), 0.4);
|
||||
}
|
||||
.notify {
|
||||
background: light.$popover-bg;
|
||||
border: light.$input-border-width solid light.$popover-border-color;
|
||||
}
|
||||
.popover-header button {
|
||||
color: light.$body-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark Style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.bootstrap-select {
|
||||
background-color: dark.$input-bg;
|
||||
.dropdown-toggle {
|
||||
color: dark.$input-color;
|
||||
&:hover {
|
||||
color: dark.$input-color;
|
||||
}
|
||||
border: dark.$input-border-width solid dark.$input-border-color;
|
||||
border-radius: dark.$border-radius;
|
||||
&.show,
|
||||
&:focus {
|
||||
border: dark.$input-focus-border-width solid dark.$primary;
|
||||
}
|
||||
&:not(.show):hover {
|
||||
border-color: dark.$input-border-hover-color;
|
||||
}
|
||||
}
|
||||
.dropdown-menu {
|
||||
&[data-popper-placement='top-start'],
|
||||
&[data-popper-placement='top-end'] {
|
||||
box-shadow: 0 -0.2rem 1.25rem rgba(15, 20, 34, 0.55);
|
||||
}
|
||||
.notify {
|
||||
background: dark.$popover-bg;
|
||||
border: dark.$input-border-width solid dark.$popover-border-color;
|
||||
}
|
||||
.popover-header button {
|
||||
color: dark.$body-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
9
resources/assets/vendor/libs/bootstrap-table/bootstrap-table.js
vendored
Normal file
9
resources/assets/vendor/libs/bootstrap-table/bootstrap-table.js
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
import 'bootstrap-table';
|
||||
import('bootstrap-table/dist/extensions/cookie/bootstrap-table-cookie.js')
|
||||
import 'bootstrap-table/dist/extensions/export/bootstrap-table-export.js';
|
||||
import 'bootstrap-table/dist/extensions/fixed-columns/bootstrap-table-fixed-columns.js';
|
||||
import 'bootstrap-table/dist/extensions/mobile/bootstrap-table-mobile.js';
|
||||
import 'bootstrap-table/dist/locale/bootstrap-table-es-MX.js';
|
||||
|
||||
import * as XLSX from 'xlsx';
|
||||
window.XLSX = XLSX;
|
2
resources/assets/vendor/libs/bootstrap-table/bootstrap-table.scss
vendored
Normal file
2
resources/assets/vendor/libs/bootstrap-table/bootstrap-table.scss
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
@import 'bootstrap-table/dist/bootstrap-table.css';
|
||||
@import 'bootstrap-table/dist/extensions/fixed-columns/bootstrap-table-fixed-columns.css';
|
51
resources/assets/vendor/libs/bs-stepper/_mixins.scss
vendored
Normal file
51
resources/assets/vendor/libs/bs-stepper/_mixins.scss
vendored
Normal file
@ -0,0 +1,51 @@
|
||||
// Stepper Mixin
|
||||
// *******************************************************************************
|
||||
@mixin bs-stepper-theme($background) {
|
||||
$color: color-contrast($background);
|
||||
.bs-stepper {
|
||||
.step {
|
||||
&.active {
|
||||
.bs-stepper-circle {
|
||||
background-color: $background;
|
||||
color: $color;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
.bs-stepper-icon svg {
|
||||
fill: $background !important;
|
||||
}
|
||||
.bs-stepper-icon i,
|
||||
.bs-stepper-label {
|
||||
color: $background !important;
|
||||
}
|
||||
}
|
||||
&.crossed {
|
||||
.step-trigger {
|
||||
.bs-stepper-circle {
|
||||
background-color: rgba-to-hex(rgba($background, 0.16), $card-bg) !important;
|
||||
color: $background !important;
|
||||
}
|
||||
.bs-stepper-icon svg {
|
||||
fill: $background !important;
|
||||
}
|
||||
.bs-stepper-icon i {
|
||||
color: $background !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.wizard-icons {
|
||||
.step.crossed {
|
||||
.bs-stepper-label {
|
||||
color: $background !important;
|
||||
}
|
||||
& + {
|
||||
.line {
|
||||
i {
|
||||
color: $background;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
37
resources/assets/vendor/libs/bs-stepper/bs-stepper.js
vendored
Normal file
37
resources/assets/vendor/libs/bs-stepper/bs-stepper.js
vendored
Normal file
@ -0,0 +1,37 @@
|
||||
import Stepper from 'bs-stepper/dist/js/bs-stepper';
|
||||
|
||||
const bsStepper = document.querySelectorAll('.bs-stepper');
|
||||
|
||||
// Adds crossed class
|
||||
bsStepper.forEach(el => {
|
||||
el.addEventListener('show.bs-stepper', function (event) {
|
||||
var index = event.detail.indexStep;
|
||||
var numberOfSteps = el.querySelectorAll('.line').length;
|
||||
var line = el.querySelectorAll('.step');
|
||||
|
||||
// The first for loop is for increasing the steps,
|
||||
// the second is for turning them off when going back
|
||||
// and the third with the if statement because the last line
|
||||
// can't seem to turn off when I press the first item. ¯\_(ツ)_/¯
|
||||
|
||||
for (let i = 0; i < index; i++) {
|
||||
line[i].classList.add('crossed');
|
||||
|
||||
for (let j = index; j < numberOfSteps; j++) {
|
||||
line[j].classList.remove('crossed');
|
||||
}
|
||||
}
|
||||
if (event.detail.to == 0) {
|
||||
for (let k = index; k < numberOfSteps; k++) {
|
||||
line[k].classList.remove('crossed');
|
||||
}
|
||||
line[0].classList.remove('crossed');
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
try {
|
||||
window.Stepper = Stepper;
|
||||
} catch (e) {}
|
||||
|
||||
export { Stepper };
|
549
resources/assets/vendor/libs/bs-stepper/bs-stepper.scss
vendored
Normal file
549
resources/assets/vendor/libs/bs-stepper/bs-stepper.scss
vendored
Normal file
@ -0,0 +1,549 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import 'bs-stepper/dist/css/bs-stepper';
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
$bs-stepper-header-padding-y: 1.5rem !default;
|
||||
$bs-stepper-header-padding-x: $bs-stepper-header-padding-y !default;
|
||||
$bs-stepper-content-padding-x: 1.5rem !default;
|
||||
$bs-stepper-content-padding-y: $bs-stepper-content-padding-x !default;
|
||||
$bs-stepper-trigger-padding: 1.25rem !default;
|
||||
$bs-stepper-trigger-padding-vertical: 0.6rem !default;
|
||||
$bs-stepper-label-max-width: 224px !default;
|
||||
$bs-stepper-svg-icon-height: 3.75rem !default;
|
||||
$bs-stepper-svg-icon-width: 3.75rem !default;
|
||||
$bs-stepper-icon-font-size: 1.6rem !default;
|
||||
$bs-stepper-vertical-separator-height: 1.55rem !default;
|
||||
$bs-stepper-vertical-header-min-width: 18rem !default;
|
||||
|
||||
// Default Styles
|
||||
.bs-stepper {
|
||||
border-radius: light.$border-radius;
|
||||
.line {
|
||||
flex: 0;
|
||||
min-width: auto;
|
||||
min-height: auto;
|
||||
background-color: transparent;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.bs-stepper-header {
|
||||
padding: $bs-stepper-header-padding-y $bs-stepper-header-padding-x;
|
||||
|
||||
.step {
|
||||
.step-trigger {
|
||||
padding: 0;
|
||||
flex-wrap: nowrap;
|
||||
gap: 0.5rem;
|
||||
font-weight: light.$font-weight-medium;
|
||||
.bs-stepper-label {
|
||||
margin: 0;
|
||||
max-width: $bs-stepper-label-max-width;
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
text-align: start;
|
||||
display: inline-grid;
|
||||
font-weight: light.$font-weight-medium;
|
||||
font-size: light.$font-size-base;
|
||||
line-height: light.$h6-line-height;
|
||||
.bs-stepper-title {
|
||||
font-weight: light.$font-weight-medium;
|
||||
}
|
||||
.bs-stepper-subtitle {
|
||||
font-size: light.$small-font-size;
|
||||
font-weight: light.$font-weight-base;
|
||||
}
|
||||
}
|
||||
&:hover {
|
||||
background-color: transparent;
|
||||
}
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
padding: calc($bs-stepper-trigger-padding * 0.5) 0;
|
||||
}
|
||||
}
|
||||
.bs-stepper-circle {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
border-radius: light.$border-radius;
|
||||
width: 2.375rem;
|
||||
height: 2.375rem;
|
||||
font-size: light.$h5-font-size;
|
||||
font-weight: light.$font-weight-medium;
|
||||
i {
|
||||
font-size: 1.375rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.bs-stepper-content {
|
||||
padding: $bs-stepper-content-padding-y $bs-stepper-content-padding-x;
|
||||
}
|
||||
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
min-width: $bs-stepper-vertical-header-min-width;
|
||||
.step {
|
||||
.step-trigger {
|
||||
padding: $bs-stepper-trigger-padding-vertical 0;
|
||||
}
|
||||
&:first-child {
|
||||
.step-trigger {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
&:last-child {
|
||||
.step-trigger {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
.line {
|
||||
position: relative;
|
||||
min-height: 1px;
|
||||
}
|
||||
}
|
||||
.bs-stepper-content {
|
||||
width: 100%;
|
||||
.content {
|
||||
&:not(.active) {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.wizard-icons {
|
||||
.step {
|
||||
text-align: center;
|
||||
padding: 0.75rem 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header {
|
||||
justify-content: center;
|
||||
.step-trigger {
|
||||
padding: $bs-stepper-trigger-padding;
|
||||
flex-direction: column;
|
||||
gap: 0.5rem;
|
||||
.bs-stepper-icon {
|
||||
svg {
|
||||
height: $bs-stepper-svg-icon-height;
|
||||
width: $bs-stepper-svg-icon-width;
|
||||
}
|
||||
i {
|
||||
font-size: $bs-stepper-icon-font-size;
|
||||
}
|
||||
}
|
||||
}
|
||||
@include light.media-breakpoint-up(lg) {
|
||||
justify-content: space-around;
|
||||
gap: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove borders from wizard modern
|
||||
&.wizard-modern {
|
||||
.bs-stepper-header {
|
||||
border-bottom: none !important;
|
||||
}
|
||||
|
||||
.bs-stepper-content {
|
||||
border-radius: light.$border-radius;
|
||||
}
|
||||
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-right: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&:not(.vertical):not(.wizard-icons) .bs-stepper-header {
|
||||
@include light.media-breakpoint-up(lg) {
|
||||
gap: 1.25rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl(false) {
|
||||
.bs-stepper.wizard-icons .bs-stepper-header .step-trigger {
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
@include app-ltr(false) {
|
||||
.bs-stepper.wizard-icons .bs-stepper-header .step-trigger {
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
// Styles for Modal example Create App wizard
|
||||
#wizard-create-app {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
min-width: $bs-stepper-vertical-header-min-width - 3;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.bs-stepper {
|
||||
background-color: light.$card-bg;
|
||||
&:not(.wizard-modern) {
|
||||
box-shadow: light.$card-box-shadow;
|
||||
}
|
||||
.bs-stepper-header {
|
||||
border-bottom: 1px solid light.$border-color;
|
||||
|
||||
.line {
|
||||
i {
|
||||
color: light.$body-color;
|
||||
}
|
||||
}
|
||||
|
||||
.bs-stepper-title,
|
||||
.bs-stepper-label {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
|
||||
.bs-stepper-label {
|
||||
.bs-stepper-subtitle {
|
||||
color: light.$body-color;
|
||||
}
|
||||
}
|
||||
|
||||
.step {
|
||||
&:not(.active) {
|
||||
.bs-stepper-circle {
|
||||
background-color: light.$gray-50;
|
||||
color: light.$headings-color;
|
||||
}
|
||||
}
|
||||
&.crossed .step-trigger {
|
||||
.bs-stepper-label .bs-stepper-subtitle,
|
||||
.bs-stepper-title {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.step-trigger:focus {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-bottom: none;
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
border-right: none !important;
|
||||
border-left: none !important;
|
||||
border-bottom: 1px solid light.$border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.wizard-modern {
|
||||
background-color: transparent;
|
||||
.bs-stepper-content {
|
||||
background-color: light.$card-bg;
|
||||
box-shadow: light.$card-box-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header {
|
||||
.bs-stepper-icon {
|
||||
svg {
|
||||
fill: light.$headings-color;
|
||||
}
|
||||
i {
|
||||
fill: light.$headings-color;
|
||||
}
|
||||
}
|
||||
.bs-stepper-label {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ! FIX: Vertical border issue in rtl and ltr
|
||||
@include app-rtl(false) {
|
||||
.light-style {
|
||||
.bs-stepper {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-left: 1px solid light.$border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@include app-ltr(false) {
|
||||
.light-style {
|
||||
.bs-stepper {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-right: 1px solid light.$border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark Style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.bs-stepper {
|
||||
background-color: dark.$card-bg;
|
||||
.bs-stepper-header {
|
||||
border-bottom: 1px solid dark.$border-color;
|
||||
.line {
|
||||
i {
|
||||
color: dark.$body-color;
|
||||
}
|
||||
}
|
||||
|
||||
.bs-stepper-label,
|
||||
.bs-stepper-title {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
|
||||
.bs-stepper-label {
|
||||
.bs-stepper-subtitle {
|
||||
color: dark.$body-color;
|
||||
}
|
||||
}
|
||||
|
||||
.step {
|
||||
&:not(.active) {
|
||||
.bs-stepper-circle {
|
||||
background-color: dark.$gray-50;
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
&.crossed .step-trigger {
|
||||
.bs-stepper-label .bs-stepper-subtitle,
|
||||
.bs-stepper-title {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.step-trigger:focus {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-bottom: none;
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
border-right: none !important;
|
||||
border-left: none !important;
|
||||
border-bottom: 1px solid dark.$border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.wizard-modern {
|
||||
background-color: transparent;
|
||||
.bs-stepper-content {
|
||||
background-color: dark.$card-bg;
|
||||
box-shadow: dark.$card-box-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header {
|
||||
.bs-stepper-icon {
|
||||
i {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
|
||||
svg {
|
||||
fill: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
.bs-stepper-label {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ! FIX: Vertical border issue in rtl and ltr
|
||||
@include app-rtl(false) {
|
||||
.dark-style {
|
||||
.bs-stepper {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-left: 1px solid dark.$border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@include app-ltr(false) {
|
||||
.dark-style {
|
||||
.bs-stepper {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-right: 1px solid dark.$border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// RTL
|
||||
@include app-rtl(false) {
|
||||
.bs-stepper {
|
||||
.bs-stepper-content {
|
||||
.btn-next:not(.btn-submit),
|
||||
.btn-prev {
|
||||
i {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
&.vertical {
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header {
|
||||
.line:before {
|
||||
right: 50%;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove borders from wizard modern
|
||||
&.wizard-modern {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
border-left: none !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include light.media-breakpoint-up(lg) {
|
||||
.bs-stepper-header {
|
||||
.line {
|
||||
i {
|
||||
transform: rotate(180deg);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
.bs-stepper-header {
|
||||
.step {
|
||||
.step-trigger {
|
||||
.bs-stepper-label {
|
||||
margin-left: 0;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header {
|
||||
.line {
|
||||
&:before {
|
||||
margin-right: 0.75rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Media Queries
|
||||
@include light.media-breakpoint-down(lg) {
|
||||
.bs-stepper {
|
||||
.bs-stepper-header {
|
||||
flex-direction: column;
|
||||
align-items: flex-start;
|
||||
.step {
|
||||
.step-trigger {
|
||||
flex-direction: row;
|
||||
.bs-stepper-label {
|
||||
margin-left: 0.35rem;
|
||||
}
|
||||
}
|
||||
&:first-child {
|
||||
.step-trigger {
|
||||
padding-top: 0;
|
||||
}
|
||||
}
|
||||
&:last-child {
|
||||
.step-trigger {
|
||||
padding-bottom: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.vertical {
|
||||
flex-direction: column;
|
||||
.bs-stepper-header {
|
||||
align-items: flex-start;
|
||||
}
|
||||
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header {
|
||||
.line:before {
|
||||
left: 0.75rem;
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&:not(.vertical) {
|
||||
.bs-stepper-header {
|
||||
.line {
|
||||
i {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
&.wizard-icons {
|
||||
.bs-stepper-header .step:not(:first-child) {
|
||||
.bs-stepper-icon {
|
||||
svg {
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@media (max-width: 520px) {
|
||||
.bs-stepper-header {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Styles for Create App Modal Wizard
|
||||
#wizard-create-app {
|
||||
&.vertical {
|
||||
.bs-stepper-header {
|
||||
min-width: $bs-stepper-vertical-header-min-width - 3;
|
||||
}
|
||||
}
|
||||
}
|
1
resources/assets/vendor/libs/cleavejs/cleave-phone.js
vendored
Normal file
1
resources/assets/vendor/libs/cleavejs/cleave-phone.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import 'cleave.js/dist/addons/cleave-phone.us';
|
1
resources/assets/vendor/libs/cleavejs/cleave.js
vendored
Normal file
1
resources/assets/vendor/libs/cleavejs/cleave.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import 'cleave.js/dist/cleave';
|
28
resources/assets/vendor/libs/datatables-bs5/datatables-bootstrap5.js
vendored
Normal file
28
resources/assets/vendor/libs/datatables-bs5/datatables-bootstrap5.js
vendored
Normal file
@ -0,0 +1,28 @@
|
||||
import JSZip from 'jszip';
|
||||
import pdfMake from 'pdfmake';
|
||||
import 'pdfmake/build/vfs_fonts';
|
||||
import 'datatables.net-bs5';
|
||||
import 'datatables.net-fixedcolumns-bs5';
|
||||
import 'datatables.net-fixedheader-bs5';
|
||||
import 'datatables.net-select-bs5';
|
||||
import 'datatables.net-buttons';
|
||||
import 'datatables.net-buttons-bs5';
|
||||
import 'datatables.net-buttons/js/buttons.html5';
|
||||
import 'datatables.net-buttons/js/buttons.print';
|
||||
import 'datatables.net-responsive';
|
||||
import 'datatables.net-responsive-bs5';
|
||||
import 'datatables.net-rowgroup-bs5';
|
||||
import Checkbox from 'jquery-datatables-checkboxes';
|
||||
|
||||
// This solution related to font issues with pdfMake
|
||||
pdfMake.fonts = {
|
||||
Roboto: {
|
||||
normal: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Regular.ttf',
|
||||
bold: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Medium.ttf',
|
||||
italics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-Italic.ttf',
|
||||
bolditalics: 'https://cdnjs.cloudflare.com/ajax/libs/pdfmake/0.1.66/fonts/Roboto/Roboto-MediumItalic.ttf'
|
||||
}
|
||||
};
|
||||
$.fn.dataTable.ext.Checkbox = Checkbox(window, $);
|
||||
$.fn.dataTable.ext.buttons.pdfMake = pdfMake;
|
||||
window.JSZip = JSZip;
|
394
resources/assets/vendor/libs/datatables-bs5/datatables.bootstrap5.scss
vendored
Normal file
394
resources/assets/vendor/libs/datatables-bs5/datatables.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,394 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'datatables.net-bs5/css/dataTables.bootstrap5';
|
||||
|
||||
// Margin between select, input field and text
|
||||
div.dataTables_wrapper div.dataTables_length select {
|
||||
margin-left: 0.5rem;
|
||||
margin-right: 0.5rem;
|
||||
}
|
||||
div.dataTables_wrapper div.dataTables_filter input {
|
||||
margin-left: 1em;
|
||||
}
|
||||
|
||||
.dataTable .emp_name {
|
||||
font-weight: light.$font-weight-medium;
|
||||
}
|
||||
|
||||
// Shadow none for action buttons
|
||||
.dataTable td .btn {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
|
||||
// Card header inside the datatable
|
||||
div.dataTables_wrapper .card-header {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
div.dataTables_wrapper div.dataTables_info {
|
||||
padding-top: light.$spacer * 0.5;
|
||||
}
|
||||
|
||||
table.table-bordered.dataTable {
|
||||
// For complex header and column search datatable
|
||||
&.dt-complex-header,
|
||||
&.dt-column-search {
|
||||
thead tr th {
|
||||
border-width: 1px;
|
||||
}
|
||||
tfoot tr th {
|
||||
border-width: 1px;
|
||||
}
|
||||
}
|
||||
& tfoot tr th {
|
||||
border-bottom-width: 1px;
|
||||
}
|
||||
& > :not(caption) > * {
|
||||
& > * {
|
||||
border-width: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Remove left and right border from datatable with table-bordered class
|
||||
table.table-bordered.dataTable {
|
||||
tr:first-child th,
|
||||
td {
|
||||
&:first-child {
|
||||
@include app-ltr() {
|
||||
border-left-width: 0;
|
||||
}
|
||||
@include app-rtl() {
|
||||
border-right-width: 0;
|
||||
}
|
||||
}
|
||||
&:last-child {
|
||||
@include app-ltr() {
|
||||
border-right-width: 0;
|
||||
}
|
||||
@include app-rtl() {
|
||||
border-left-width: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
> tbody:not(caption) tr:first-child {
|
||||
border-top-width: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Responsive datatable in desktop screen
|
||||
@media screen and (min-width: 1399.98px) {
|
||||
table.table-responsive {
|
||||
display: table;
|
||||
}
|
||||
}
|
||||
|
||||
// RTL style
|
||||
@include app-rtl(false) {
|
||||
div.dataTables_wrapper .dataTables_filter {
|
||||
display: flex;
|
||||
justify-content: flex-end;
|
||||
input {
|
||||
margin-left: 0;
|
||||
margin-right: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
table.table-bordered.dataTable th,
|
||||
table.table-bordered.dataTable td {
|
||||
border-right-width: 0;
|
||||
border-left-width: 1px;
|
||||
|
||||
&:last-child {
|
||||
border-left-width: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
table.dataTable {
|
||||
width: 100% !important;
|
||||
border-collapse: collapse !important;
|
||||
margin-bottom: light.$spacer !important;
|
||||
margin-top: 0 !important;
|
||||
thead th {
|
||||
&.sorting_disabled {
|
||||
&::before,
|
||||
&::after {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
&.sorting {
|
||||
&:before,
|
||||
&:after {
|
||||
visibility: hidden;
|
||||
}
|
||||
&:hover {
|
||||
&:before,
|
||||
&:after {
|
||||
visibility: visible;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@include app-rtl {
|
||||
&.table-sm > thead > tr > th {
|
||||
padding-left: 1.25rem;
|
||||
}
|
||||
|
||||
&.table-sm .sorting:before,
|
||||
&.table-sm .sorting_asc:before,
|
||||
&.table-sm .sorting_desc:before {
|
||||
right: auto !important;
|
||||
left: 0.85em !important;
|
||||
}
|
||||
thead th,
|
||||
thead td,
|
||||
tfoot th,
|
||||
tfoot td {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
// Checkbox height & width for datatables checkboxes
|
||||
.form-check-input {
|
||||
width: light.$form-datatables-check-input-size;
|
||||
height: light.$form-datatables-check-input-size;
|
||||
}
|
||||
}
|
||||
|
||||
// to add spacing between table and datatable footer elements like pagination & info
|
||||
.dataTables_scroll {
|
||||
margin-bottom: 0.75rem;
|
||||
}
|
||||
|
||||
// Used while complex headers
|
||||
table.dataTable thead th {
|
||||
vertical-align: middle;
|
||||
}
|
||||
table.dataTable thead .sorting,
|
||||
table.dataTable thead .sorting_asc,
|
||||
table.dataTable thead .sorting_desc,
|
||||
table.dataTable thead .sorting_asc_disabled,
|
||||
table.dataTable thead .sorting_desc_disabled {
|
||||
&::before,
|
||||
&::after {
|
||||
line-height: 1.25rem !important;
|
||||
font-family: tabler-icons !important;
|
||||
font-size: 1rem !important;
|
||||
width: 10px;
|
||||
height: 10px;
|
||||
right: 0.78rem !important;
|
||||
}
|
||||
&::before {
|
||||
content: '\ea62' !important;
|
||||
top: 0.58rem !important;
|
||||
}
|
||||
&::after {
|
||||
bottom: 0.72rem !important;
|
||||
content: '\ea5f' !important;
|
||||
}
|
||||
@include app-rtl {
|
||||
&::before {
|
||||
right: auto !important;
|
||||
left: 0.58em !important;
|
||||
}
|
||||
|
||||
&::after {
|
||||
right: auto !important;
|
||||
left: 0.58em !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// DataTable within card
|
||||
div.card-datatable.dataTable,
|
||||
div.card-datatable .dataTable {
|
||||
border-right: 0;
|
||||
border-left: 0;
|
||||
}
|
||||
|
||||
// Card header inside the datatable
|
||||
@media screen and (max-width: 575.98px) {
|
||||
div.dataTables_wrapper .card-header {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dtr-bs-modal.modal {
|
||||
// padding-left: 0.75rem;
|
||||
.modal-body {
|
||||
padding: 0;
|
||||
overflow: auto;
|
||||
}
|
||||
}
|
||||
.dataTable_select div.dataTables_wrapper div.dataTables_info {
|
||||
flex-direction: column;
|
||||
}
|
||||
}
|
||||
|
||||
@media screen and (max-width: 767.98px) {
|
||||
div.dataTables_wrapper div.dataTables_info {
|
||||
padding-bottom: light.$table-cell-padding-y;
|
||||
}
|
||||
}
|
||||
|
||||
div.dataTables_wrapper {
|
||||
div.dataTables_length,
|
||||
.dataTables_filter {
|
||||
margin-top: light.$spacer * 1.5;
|
||||
margin-bottom: light.$spacer * 1.5;
|
||||
}
|
||||
}
|
||||
|
||||
// common style for light / dark
|
||||
|
||||
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
|
||||
.page-item {
|
||||
&,
|
||||
&.next,
|
||||
&.previous,
|
||||
&.first,
|
||||
&.last {
|
||||
.page-link {
|
||||
border-radius: light.$border-radius;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
div.dataTables_wrapper div.dataTables_paginate ul.pagination .page-link {
|
||||
div:not(.table-responsive) div.dataTables_wrapper .dataTables_paginate {
|
||||
margin-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include light.media-breakpoint-down(md) {
|
||||
div.dataTables_wrapper div.dataTables_length label,
|
||||
div.dataTables_wrapper div.dataTables_filter label,
|
||||
div.dataTables_wrapper div.dataTables_info,
|
||||
div.dataTables_wrapper div.dataTables_paginate {
|
||||
justify-content: center;
|
||||
}
|
||||
}
|
||||
@include light.media-breakpoint-down(sm) {
|
||||
div.dataTables_wrapper div.dataTables_paginate ul.pagination {
|
||||
justify-content: start !important;
|
||||
overflow-x: scroll;
|
||||
}
|
||||
}
|
||||
|
||||
// DataTable within card
|
||||
div.card-datatable {
|
||||
padding-bottom: light.$card-spacer-x-sm; // Check this in site and update if needed
|
||||
|
||||
[class*='col-md-'] {
|
||||
padding-right: light.$table-cell-padding-x !important;
|
||||
padding-left: light.$table-cell-padding-x !important;
|
||||
}
|
||||
// length, filter & info, pagination row margin
|
||||
&:not(.table-responsive) .dataTables_wrapper .row {
|
||||
&:first-child,
|
||||
&:last-child {
|
||||
margin: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// LTR style
|
||||
@include app-ltr(false) {
|
||||
div.card-datatable table.dataTable thead th,
|
||||
div.card-datatable table.dataTable tfoot th {
|
||||
&:first-child {
|
||||
padding-left: light.$card-spacer-x;
|
||||
padding-right: light.$card-spacer-x;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
padding-right: light.$card-spacer-x-sm;
|
||||
}
|
||||
}
|
||||
div.card-datatable table.dataTable tbody td {
|
||||
&:first-child {
|
||||
padding-left: light.$card-spacer-x;
|
||||
padding-right: light.$card-spacer-x;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// RTL Style
|
||||
@include app-rtl(false) {
|
||||
table.dataTable.table-sm > thead > tr > th {
|
||||
padding-right: light.$table-cell-padding-x-sm;
|
||||
}
|
||||
table.table-bordered.dataTable tr {
|
||||
td,
|
||||
th,
|
||||
th:first-child {
|
||||
border-left-width: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
table.dataTable {
|
||||
thead th,
|
||||
tbody td,
|
||||
tfoot th {
|
||||
padding-right: light.$table-cell-padding-x;
|
||||
}
|
||||
|
||||
&.table-sm thead th,
|
||||
&.table-sm tbody td,
|
||||
&.table-sm tfoot th {
|
||||
padding-right: light.$table-cell-padding-x-sm;
|
||||
}
|
||||
}
|
||||
|
||||
div.card-datatable table.dataTable {
|
||||
thead th,
|
||||
tbody td,
|
||||
tfoot th {
|
||||
&:first-child {
|
||||
padding-right: light.$card-spacer-x;
|
||||
}
|
||||
|
||||
&:last-child {
|
||||
padding-left: light.$card-spacer-x;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
div.dataTables_wrapper div.dataTables_info {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
div.dataTables_scrollBody table {
|
||||
border-top-color: light.$table-border-color;
|
||||
}
|
||||
|
||||
table.dataTable th,
|
||||
table.dataTable td {
|
||||
border-color: light.$table-border-color !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark Style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
div.dataTables_wrapper div.dataTables_info {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
div.dataTables_scrollBody table {
|
||||
border-top-color: dark.$table-border-color;
|
||||
}
|
||||
|
||||
table.dataTable th,
|
||||
table.dataTable td {
|
||||
border-color: dark.$table-border-color !important;
|
||||
}
|
||||
}
|
||||
}
|
101
resources/assets/vendor/libs/datatables-buttons-bs5/buttons.bootstrap5.scss
vendored
Normal file
101
resources/assets/vendor/libs/datatables-buttons-bs5/buttons.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,101 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'datatables.net-buttons-bs5/css/buttons.bootstrap5';
|
||||
|
||||
// remove 0.5em margin bottom from dt-buttons
|
||||
@media screen and (max-width: 767px) {
|
||||
div.dt-buttons {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
}
|
||||
div.dataTables_wrapper .dt-button-collection {
|
||||
border: 0;
|
||||
border-radius: light.$dropdown-border-radius;
|
||||
padding: light.$dropdown-padding-y light.$dropdown-padding-x;
|
||||
width: auto;
|
||||
> div[role='menu'] {
|
||||
text-align: left;
|
||||
}
|
||||
}
|
||||
// avoid dropdown to overlap the trigger button
|
||||
.dt-button-collection {
|
||||
margin-top: 0.2rem;
|
||||
}
|
||||
div.dropdown-menu.dt-button-collection,
|
||||
div.dt-button-collection .dt-button:not(.dt-btn-split-drop) {
|
||||
min-width: 8rem;
|
||||
}
|
||||
|
||||
.dt-down-arrow {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// override button radius
|
||||
div.dt-button-collection .dt-button,
|
||||
div.dt-buttons div.dropdown-menu .dt-button {
|
||||
border-radius: light.$dropdown-border-radius;
|
||||
}
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
div.dataTables_wrapper .dt-button-collection {
|
||||
background-color: light.$dropdown-bg;
|
||||
}
|
||||
.dataTable a:not([href]):not([tabindex]) {
|
||||
color: map-get(light.$theme-colors, success);
|
||||
}
|
||||
.dt-button-info {
|
||||
box-shadow: light.$floating-component-shadow;
|
||||
}
|
||||
.dt-button-collection {
|
||||
.dropdown-item {
|
||||
padding: light.$dropdown-item-padding-y light.$dropdown-item-padding-x;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
div.dataTables_wrapper .dt-button-collection {
|
||||
background-color: dark.$dropdown-bg;
|
||||
}
|
||||
.dataTable a:not([href]):not([tabindex]) {
|
||||
color: map-get(dark.$theme-colors, success);
|
||||
}
|
||||
.dt-button-info {
|
||||
box-shadow: dark.$floating-component-shadow;
|
||||
}
|
||||
.dt-button-collection {
|
||||
.dropdown-item {
|
||||
padding: dark.$dropdown-item-padding-y dark.$dropdown-item-padding-x;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.dt-button-info {
|
||||
border-width: 0 !important;
|
||||
border-radius: light.$border-radius !important;
|
||||
h2 {
|
||||
font-size: light.$h4-font-size !important;
|
||||
}
|
||||
}
|
||||
.dt-buttons {
|
||||
position: relative;
|
||||
.dt-button-collection .dropdown-item {
|
||||
@include app-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
&.btn-group {
|
||||
button {
|
||||
border-color: transparent !important;
|
||||
border-radius: light.$border-radius !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
div.dt-buttons .dropdown-menu .dt-button {
|
||||
border-radius: light.$border-radius;
|
||||
}
|
2
resources/assets/vendor/libs/datatables-checkboxes-jquery/datatables.checkboxes.scss
vendored
Normal file
2
resources/assets/vendor/libs/datatables-checkboxes-jquery/datatables.checkboxes.scss
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'jquery-datatables-checkboxes/css/dataTables.checkboxes';
|
133
resources/assets/vendor/libs/datatables-fixedcolumns-bs5/fixedcolumns.bootstrap5.scss
vendored
Normal file
133
resources/assets/vendor/libs/datatables-fixedcolumns-bs5/fixedcolumns.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,133 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'datatables.net-fixedcolumns-bs5/css/fixedColumns.bootstrap5';
|
||||
|
||||
// Fixed column style
|
||||
div.dataTables_scrollBody thead tr,
|
||||
div.DTFC_LeftBodyLiner thead tr {
|
||||
border-top-width: 0;
|
||||
border-bottom-width: 0;
|
||||
}
|
||||
div.dataTables_scrollBody {
|
||||
border: 0 !important;
|
||||
}
|
||||
@include app-ltr(false) {
|
||||
div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
|
||||
div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
|
||||
border-left: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl(false) {
|
||||
table.dataTable thead th,
|
||||
table.dataTable thead td,
|
||||
table.dataTable tfoot th,
|
||||
table.dataTable tfoot td {
|
||||
text-align: right !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
table.DTFC_Cloned tr {
|
||||
border-color: light.$table-border-color;
|
||||
}
|
||||
// fixed header and footer border
|
||||
div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
|
||||
div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
|
||||
border-left: 1px solid light.$table-border-color;
|
||||
}
|
||||
// fixed column background color
|
||||
table.dataTable thead tr > .dtfc-fixed-left,
|
||||
table.dataTable thead tr > .dtfc-fixed-right,
|
||||
table.dataTable tbody tr > .dtfc-fixed-left,
|
||||
table.dataTable tbody tr > .dtfc-fixed-right,
|
||||
div.dtfc-right-top-blocker,
|
||||
div.dtfc-left-top-blocker {
|
||||
background-color: light.$card-bg;
|
||||
margin-top: 1px !important;
|
||||
height: 0px !important;
|
||||
}
|
||||
// To override BS5 css
|
||||
.dt-fixedcolumns thead {
|
||||
border-top-color: light.$table-border-color;
|
||||
}
|
||||
&[dir='rtl'] {
|
||||
div.dataTables_scrollHead,
|
||||
div.dataTables_scrollBody {
|
||||
table {
|
||||
border-width: 0;
|
||||
}
|
||||
}
|
||||
div.DTFC_LeftBodyLiner {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
div.DTFC_RightHeadWrapper,
|
||||
div.DTFC_RightBodyWrapper {
|
||||
table {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
div.DTFC_RightBodyLiner {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
table.DTFC_Cloned tr {
|
||||
background-color: dark.$card-bg;
|
||||
border-color: dark.$table-border-color;
|
||||
}
|
||||
div.dataTables_scrollHead table,
|
||||
div.DTFC_RightHeadWrapper table,
|
||||
table.dataTable.fixedHeader-floating,
|
||||
table.dataTable.fixedHeader-locked {
|
||||
background-color: dark.$card-bg;
|
||||
}
|
||||
// fixed header and footer border
|
||||
div.dataTables_scrollFootInner table.table-bordered tr th:first-child,
|
||||
div.dataTables_scrollHeadInner table.table-bordered tr th:first-child {
|
||||
border-left: 1px solid dark.$table-border-color !important;
|
||||
}
|
||||
// fixed column background color
|
||||
table.dataTable thead tr > .dtfc-fixed-left,
|
||||
table.dataTable thead tr > .dtfc-fixed-right,
|
||||
table.dataTable tbody tr > .dtfc-fixed-left,
|
||||
table.dataTable tbody tr > .dtfc-fixed-right,
|
||||
div.dtfc-right-top-blocker,
|
||||
div.dtfc-left-top-blocker {
|
||||
background-color: dark.$card-bg;
|
||||
margin-top: 1px !important;
|
||||
height: 0px !important;
|
||||
}
|
||||
// To override BS5 css
|
||||
.dt-fixedcolumns thead {
|
||||
border-top-color: dark.$table-border-color;
|
||||
}
|
||||
&[dir='rtl'] {
|
||||
div.dataTables_scrollHead,
|
||||
div.dataTables_scrollBody {
|
||||
table {
|
||||
border-width: 0;
|
||||
}
|
||||
}
|
||||
div.DTFC_LeftBodyLiner {
|
||||
padding-right: 0 !important;
|
||||
}
|
||||
div.DTFC_RightHeadWrapper,
|
||||
div.DTFC_RightBodyWrapper {
|
||||
table {
|
||||
border: 0;
|
||||
}
|
||||
}
|
||||
div.DTFC_RightBodyLiner {
|
||||
padding-left: 0 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
40
resources/assets/vendor/libs/datatables-fixedheader-bs5/fixedheader.bootstrap5.scss
vendored
Normal file
40
resources/assets/vendor/libs/datatables-fixedheader-bs5/fixedheader.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,40 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'datatables.net-fixedheader-bs5/css/fixedHeader.bootstrap5';
|
||||
|
||||
// Fixed header Style
|
||||
.dt-fixedheader.fixedHeader-floating.table.dataTable {
|
||||
width: auto !important;
|
||||
}
|
||||
.dt-fixedheader.fixedHeader-locked.table.dataTable {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Last style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.dtfh-floatingparenthead {
|
||||
border-bottom: 1px solid light.$table-border-color;
|
||||
}
|
||||
.table-bordered.dt-fixedheader.fixedHeader-floating.table.dataTable thead > tr > th,
|
||||
.table-bordered.dt-fixedheader.fixedHeader-locked.table.dataTable thead > tr > th {
|
||||
border-bottom-width: 1px;
|
||||
border-color: light.$table-border-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.dtfh-floatingparenthead {
|
||||
border-bottom: 1px solid dark.$table-border-color;
|
||||
}
|
||||
.table-bordered.dt-fixedheader.fixedHeader-floating.table.dataTable thead > tr > th,
|
||||
.table-bordered.dt-fixedheader.fixedHeader-locked.table.dataTable thead > tr > th {
|
||||
border-bottom-width: 1px;
|
||||
border-color: dark.$table-border-color;
|
||||
}
|
||||
}
|
||||
}
|
195
resources/assets/vendor/libs/datatables-lang/datatable-lang-es.js
vendored
Normal file
195
resources/assets/vendor/libs/datatables-lang/datatable-lang-es.js
vendored
Normal file
@ -0,0 +1,195 @@
|
||||
export const datatable_spanish_default = {
|
||||
processing: 'Procesando...',
|
||||
lengthMenu: 'Mostrar _MENU_ registros',
|
||||
zeroRecords: 'No se encontraron resultados',
|
||||
emptyTable: 'Ningún dato disponible en esta tabla',
|
||||
infoEmpty: 'Mostrando registros del 0 al 0 de un total de 0 registros',
|
||||
infoFiltered: '(filtrado de un total de _MAX_ registros)',
|
||||
search: 'Buscar:',
|
||||
infoThousands: ',',
|
||||
loadingRecords: 'Cargando...',
|
||||
paginate: {
|
||||
first: 'Primero',
|
||||
last: 'Último',
|
||||
next: 'Siguiente',
|
||||
previous: 'Anterior'
|
||||
},
|
||||
aria: {
|
||||
sortAscending: ': Activar para ordenar la columna de manera ascendente',
|
||||
sortDescending: ': Activar para ordenar la columna de manera descendente'
|
||||
},
|
||||
buttons: {
|
||||
copy: 'Copiar',
|
||||
colvis: 'Visibilidad',
|
||||
collection: 'Colección',
|
||||
colvisRestore: 'Restaurar visibilidad',
|
||||
copyKeys:
|
||||
'Presione ctrl o u2318 + C para copiar los datos de la tabla al portapapeles del sistema. <br /> <br /> Para cancelar, haga clic en este mensaje o presione escape.',
|
||||
copySuccess: {
|
||||
1: 'Copiada 1 fila al portapapeles',
|
||||
_: 'Copiadas %d fila al portapapeles'
|
||||
},
|
||||
copyTitle: 'Copiar al portapapeles',
|
||||
csv: 'CSV',
|
||||
excel: 'Excel',
|
||||
pageLength: {
|
||||
'-1': 'Mostrar todas las filas',
|
||||
_: 'Mostrar %d filas'
|
||||
},
|
||||
pdf: 'PDF',
|
||||
print: 'Imprimir'
|
||||
},
|
||||
autoFill: {
|
||||
cancel: 'Cancelar',
|
||||
fill: 'Rellene todas las celdas con <i>%d</i>',
|
||||
fillHorizontal: 'Rellenar celdas horizontalmente',
|
||||
fillVertical: 'Rellenar celdas verticalmentemente'
|
||||
},
|
||||
decimal: ',',
|
||||
searchBuilder: {
|
||||
add: 'Añadir condición',
|
||||
button: {
|
||||
0: 'Constructor de búsqueda',
|
||||
_: 'Constructor de búsqueda (%d)'
|
||||
},
|
||||
clearAll: 'Borrar todo',
|
||||
condition: 'Condición',
|
||||
conditions: {
|
||||
date: {
|
||||
after: 'Despues',
|
||||
before: 'Antes',
|
||||
between: 'Entre',
|
||||
empty: 'Vacío',
|
||||
equals: 'Igual a',
|
||||
notBetween: 'No entre',
|
||||
notEmpty: 'No Vacio',
|
||||
not: 'Diferente de'
|
||||
},
|
||||
number: {
|
||||
between: 'Entre',
|
||||
empty: 'Vacio',
|
||||
equals: 'Igual a',
|
||||
gt: 'Mayor a',
|
||||
gte: 'Mayor o igual a',
|
||||
lt: 'Menor que',
|
||||
lte: 'Menor o igual que',
|
||||
notBetween: 'No entre',
|
||||
notEmpty: 'No vacío',
|
||||
not: 'Diferente de'
|
||||
},
|
||||
string: {
|
||||
contains: 'Contiene',
|
||||
empty: 'Vacío',
|
||||
endsWith: 'Termina en',
|
||||
equals: 'Igual a',
|
||||
notEmpty: 'No Vacio',
|
||||
startsWith: 'Empieza con',
|
||||
not: 'Diferente de'
|
||||
},
|
||||
array: {
|
||||
not: 'Diferente de',
|
||||
equals: 'Igual',
|
||||
empty: 'Vacío',
|
||||
contains: 'Contiene',
|
||||
notEmpty: 'No Vacío',
|
||||
without: 'Sin'
|
||||
}
|
||||
},
|
||||
data: 'Data',
|
||||
deleteTitle: 'Eliminar regla de filtrado',
|
||||
leftTitle: 'Criterios anulados',
|
||||
logicAnd: 'Y',
|
||||
logicOr: 'O',
|
||||
rightTitle: 'Criterios de sangría',
|
||||
title: {
|
||||
0: 'Constructor de búsqueda',
|
||||
_: 'Constructor de búsqueda (%d)'
|
||||
},
|
||||
value: 'Valor'
|
||||
},
|
||||
searchPanes: {
|
||||
clearMessage: 'Borrar todo',
|
||||
collapse: {
|
||||
0: 'Paneles de búsqueda',
|
||||
_: 'Paneles de búsqueda (%d)'
|
||||
},
|
||||
count: '{total}',
|
||||
countFiltered: '{shown} ({total})',
|
||||
emptyPanes: 'Sin paneles de búsqueda',
|
||||
loadMessage: 'Cargando paneles de búsqueda',
|
||||
title: 'Filtros Activos - %d'
|
||||
},
|
||||
select: {
|
||||
cells: {
|
||||
1: '1 celda seleccionada',
|
||||
_: '%d celdas seleccionadas'
|
||||
},
|
||||
columns: {
|
||||
1: '1 columna seleccionada',
|
||||
_: '%d columnas seleccionadas'
|
||||
},
|
||||
rows: {
|
||||
1: '1 fila seleccionada',
|
||||
_: '%d filas seleccionadas'
|
||||
}
|
||||
},
|
||||
thousands: '.',
|
||||
datetime: {
|
||||
previous: 'Anterior',
|
||||
next: 'Proximo',
|
||||
hours: 'Horas',
|
||||
minutes: 'Minutos',
|
||||
seconds: 'Segundos',
|
||||
unknown: '-',
|
||||
amPm: ['AM', 'PM'],
|
||||
months: {
|
||||
0: 'Enero',
|
||||
1: 'Febrero',
|
||||
10: 'Noviembre',
|
||||
11: 'Diciembre',
|
||||
2: 'Marzo',
|
||||
3: 'Abril',
|
||||
4: 'Mayo',
|
||||
5: 'Junio',
|
||||
6: 'Julio',
|
||||
7: 'Agosto',
|
||||
8: 'Septiembre',
|
||||
9: 'Octubre'
|
||||
},
|
||||
weekdays: ['Dom', 'Lun', 'Mar', 'Mie', 'Jue', 'Vie', 'Sab']
|
||||
},
|
||||
editor: {
|
||||
close: 'Cerrar',
|
||||
create: {
|
||||
button: 'Nuevo',
|
||||
title: 'Crear Nuevo Registro',
|
||||
submit: 'Crear'
|
||||
},
|
||||
edit: {
|
||||
button: 'Editar',
|
||||
title: 'Editar Registro',
|
||||
submit: 'Actualizar'
|
||||
},
|
||||
remove: {
|
||||
button: 'Eliminar',
|
||||
title: 'Eliminar Registro',
|
||||
submit: 'Eliminar',
|
||||
confirm: {
|
||||
_: '¿Está seguro que desea eliminar %d filas?',
|
||||
1: '¿Está seguro que desea eliminar 1 fila?'
|
||||
}
|
||||
},
|
||||
error: {
|
||||
system: 'Ha ocurrido un error en el sistema (<a target="\\" rel="\\ nofollow" href="\\">Más información<\\/a>).</a>'
|
||||
},
|
||||
multi: {
|
||||
title: 'Múltiples Valores',
|
||||
info: 'Los elementos seleccionados contienen diferentes valores para este registro. Para editar y establecer todos los elementos de este registro con el mismo valor, hacer click o tap aquí, de lo contrario conservarán sus valores individuales.',
|
||||
restore: 'Deshacer Cambios',
|
||||
noMulti: 'Este registro puede ser editado individualmente, pero no como parte de un grupo.'
|
||||
}
|
||||
},
|
||||
info: 'Mostrando _START_ a _END_ de _TOTAL_ registros',
|
||||
search: '',
|
||||
searchPlaceholder: 'Buscar'
|
||||
};
|
9
resources/assets/vendor/libs/datatables-responsive-bs5/_mixins.scss
vendored
Normal file
9
resources/assets/vendor/libs/datatables-responsive-bs5/_mixins.scss
vendored
Normal file
@ -0,0 +1,9 @@
|
||||
@mixin bs-datatables-theme($background) {
|
||||
// Style for responsive icon
|
||||
table.dataTable.dtr-column > tbody > tr > td.control:before,
|
||||
table.dataTable.dtr-column > tbody > tr > th.control:before {
|
||||
background-color: $background;
|
||||
border: 2px solid $rgba-to-hex-bg;
|
||||
box-shadow: 0 0 3px $gray-800;
|
||||
}
|
||||
}
|
57
resources/assets/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.scss
vendored
Normal file
57
resources/assets/vendor/libs/datatables-responsive-bs5/responsive.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,57 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import 'datatables.net-responsive-bs5/css/responsive.bootstrap5';
|
||||
@import 'mixins';
|
||||
|
||||
// Responsive table area '+' icon position
|
||||
table.dataTable.dtr-column > tbody > tr > td.control,
|
||||
table.dataTable.dtr-column > tbody > tr > th.control {
|
||||
position: relative;
|
||||
&:before,
|
||||
&:before {
|
||||
position: absolute;
|
||||
line-height: 0.9em;
|
||||
font-weight: light.$font-weight-medium;
|
||||
height: 0.85em;
|
||||
width: 0.85em;
|
||||
color: light.$white;
|
||||
border-radius: 1em;
|
||||
box-sizing: content-box;
|
||||
text-align: center;
|
||||
font-family: 'Courier New', Courier, monospace;
|
||||
content: '+';
|
||||
top: 50%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -50%);
|
||||
}
|
||||
}
|
||||
table.dataTable.dtr-column > tbody > tr.parent td.dtr-control:before,
|
||||
table.dataTable.dtr-column > tbody > tr.parent th.dtr-control:before,
|
||||
table.dataTable.dtr-column > tbody > tr.parent td.control:before,
|
||||
table.dataTable.dtr-column > tbody > tr.parent th.control:before {
|
||||
content: '+';
|
||||
}
|
||||
// To scroll within datatable area
|
||||
@media screen and (max-width: 1399.98px) {
|
||||
table.dataTable.table-responsive {
|
||||
display: block;
|
||||
}
|
||||
}
|
||||
|
||||
// Modal table style
|
||||
.modal.dtr-bs-modal {
|
||||
.modal-body {
|
||||
padding: 0;
|
||||
}
|
||||
.table {
|
||||
tr:last-child > td {
|
||||
border-bottom: 0;
|
||||
}
|
||||
.btn {
|
||||
box-shadow: none !important;
|
||||
}
|
||||
.emp_name {
|
||||
font-weight: light.$font-weight-medium;
|
||||
}
|
||||
}
|
||||
}
|
25
resources/assets/vendor/libs/datatables-rowgroup-bs5/rowgroup.bootstrap5.scss
vendored
Normal file
25
resources/assets/vendor/libs/datatables-rowgroup-bs5/rowgroup.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,25 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
@import 'datatables.net-rowgroup-bs5/css/rowGroup.bootstrap5';
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
tr.group,
|
||||
tr.group:hover {
|
||||
background-color: light.$gray-100 !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
tr.group,
|
||||
tr.group:hover {
|
||||
background-color: rgba(dark.$base, 0.1) !important;
|
||||
}
|
||||
}
|
||||
}
|
39
resources/assets/vendor/libs/datatables-select-bs5/select.bootstrap5.scss
vendored
Normal file
39
resources/assets/vendor/libs/datatables-select-bs5/select.bootstrap5.scss
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@use '../../scss/_components/include' as comp;
|
||||
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'datatables.net-select-bs5/css/select.bootstrap5';
|
||||
|
||||
// Background color for select row
|
||||
table.dataTable tbody > tr.selected td,
|
||||
table.dataTable tbody > tr > .selected td {
|
||||
background-color: rgba(light.$primary, 0.08);
|
||||
box-shadow: none;
|
||||
}
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
table.dataTable tbody tr.selected td,
|
||||
table.dataTable tbody th.selected td,
|
||||
table.dataTable tbody td.selected td {
|
||||
color: light.$body-color !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark Style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
table.dataTable tbody > tr.selected > *,
|
||||
table.dataTable tbody > tr > .selected > * {
|
||||
box-shadow: inset 0 0 0 dark.$gray-50;
|
||||
color: dark.$table-active-color;
|
||||
}
|
||||
table.dataTable tbody tr.selected td,
|
||||
table.dataTable tbody th.selected td,
|
||||
table.dataTable tbody td.selected td {
|
||||
color: inherit;
|
||||
}
|
||||
}
|
||||
}
|
5
resources/assets/vendor/libs/dropzone/_mixins.scss
vendored
Normal file
5
resources/assets/vendor/libs/dropzone/_mixins.scss
vendored
Normal file
@ -0,0 +1,5 @@
|
||||
@mixin dropzone-theme($border) {
|
||||
.dropzone.dz-drag-hover {
|
||||
border-color: $border !important;
|
||||
}
|
||||
}
|
56
resources/assets/vendor/libs/dropzone/dropzone.js
vendored
Normal file
56
resources/assets/vendor/libs/dropzone/dropzone.js
vendored
Normal file
@ -0,0 +1,56 @@
|
||||
import Dropzone from 'dropzone/dist/dropzone';
|
||||
|
||||
Dropzone.autoDiscover = false;
|
||||
|
||||
// File upload progress animation
|
||||
Dropzone.prototype.uploadFiles = function (files) {
|
||||
const minSteps = 6;
|
||||
const maxSteps = 60;
|
||||
const timeBetweenSteps = 100;
|
||||
const bytesPerStep = 100000;
|
||||
const isUploadSuccess = true;
|
||||
|
||||
const self = this;
|
||||
|
||||
for (let i = 0; i < files.length; i++) {
|
||||
const file = files[i];
|
||||
const totalSteps = Math.round(Math.min(maxSteps, Math.max(minSteps, file.size / bytesPerStep)));
|
||||
|
||||
for (let step = 0; step < totalSteps; step++) {
|
||||
const duration = timeBetweenSteps * (step + 1);
|
||||
|
||||
setTimeout(
|
||||
(function (file, totalSteps, step) {
|
||||
return function () {
|
||||
file.upload = {
|
||||
progress: (100 * (step + 1)) / totalSteps,
|
||||
total: file.size,
|
||||
bytesSent: ((step + 1) * file.size) / totalSteps
|
||||
};
|
||||
|
||||
self.emit('uploadprogress', file, file.upload.progress, file.upload.bytesSent);
|
||||
if (file.upload.progress === 100) {
|
||||
if (isUploadSuccess) {
|
||||
file.status = Dropzone.SUCCESS;
|
||||
self.emit('success', file, 'success', null);
|
||||
} else {
|
||||
file.status = Dropzone.ERROR;
|
||||
self.emit('error', file, 'Some upload error', null);
|
||||
}
|
||||
|
||||
self.emit('complete', file);
|
||||
self.processQueue();
|
||||
}
|
||||
};
|
||||
})(file, totalSteps, step),
|
||||
duration
|
||||
);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
window.Dropzone = Dropzone;
|
||||
} catch (e) {}
|
||||
|
||||
export { Dropzone };
|
460
resources/assets/vendor/libs/dropzone/dropzone.scss
vendored
Normal file
460
resources/assets/vendor/libs/dropzone/dropzone.scss
vendored
Normal file
@ -0,0 +1,460 @@
|
||||
// Dropzone
|
||||
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
$dz-box-padding: 1.25rem !default;
|
||||
$dz-icon-size: 1.875rem !default;
|
||||
$dz-thumbnail-width: 10rem !default;
|
||||
$dz-thumbnail-height: 7.5rem !default;
|
||||
$dz-preview-padding: 0.625rem !default;
|
||||
$dz-progress-height: 0.5rem !default;
|
||||
$dz-icon-block-size: 3.75rem !default;
|
||||
|
||||
// common styles
|
||||
.dropzone {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
cursor: pointer;
|
||||
border-radius: light.$border-radius-lg;
|
||||
|
||||
// Disabled
|
||||
&:not(.dz-clickable) {
|
||||
opacity: 0.5;
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
// Hover
|
||||
&.dz-drag-hover {
|
||||
border-style: solid;
|
||||
|
||||
.dz-message {
|
||||
opacity: 0.5;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.dz-message {
|
||||
font-size: light.$h4-font-size;
|
||||
&:before {
|
||||
content: '';
|
||||
border-radius: 6px;
|
||||
position: absolute;
|
||||
top: 5rem;
|
||||
left: calc(50% - 23px);
|
||||
display: inline-block;
|
||||
height: 40px;
|
||||
width: 40px;
|
||||
background-repeat: no-repeat !important;
|
||||
background-position: center !important;
|
||||
}
|
||||
|
||||
.note {
|
||||
font-size: light.$font-size-base;
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback
|
||||
.dz-browser-not-supported {
|
||||
&.dropzone-box {
|
||||
min-height: auto !important;
|
||||
border: none !important;
|
||||
border-radius: 0 !important;
|
||||
padding: 0 !important;
|
||||
width: auto !important;
|
||||
cursor: default !important;
|
||||
transition: none;
|
||||
}
|
||||
|
||||
.dz-message {
|
||||
display: none !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Default message
|
||||
|
||||
.dz-started .dz-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dz-message {
|
||||
margin: 8rem 0 3rem;
|
||||
font-weight: 500;
|
||||
text-align: center;
|
||||
|
||||
.note {
|
||||
display: block;
|
||||
margin-top: 0.5rem;
|
||||
}
|
||||
}
|
||||
|
||||
// styles for dropzone in ecommerce
|
||||
.app-ecommerce {
|
||||
.dz-message {
|
||||
margin-top: 5rem;
|
||||
&::before {
|
||||
top: 3rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Preview
|
||||
.dz-preview {
|
||||
position: relative;
|
||||
vertical-align: top;
|
||||
background: #fff;
|
||||
font-size: 0.8125rem;
|
||||
margin: 1rem;
|
||||
margin-right: $dz-box-padding - 1;
|
||||
box-sizing: content-box;
|
||||
cursor: default;
|
||||
@include light.media-breakpoint-down(sm) {
|
||||
margin: $dz-box-padding - 0.5;
|
||||
}
|
||||
}
|
||||
|
||||
// File information
|
||||
.dz-filename {
|
||||
position: absolute;
|
||||
width: 100%;
|
||||
overflow: hidden;
|
||||
padding: $dz-preview-padding $dz-preview-padding 0 $dz-preview-padding;
|
||||
background: light.$white;
|
||||
white-space: nowrap;
|
||||
text-overflow: ellipsis;
|
||||
|
||||
&:hover {
|
||||
white-space: normal;
|
||||
text-overflow: inherit;
|
||||
}
|
||||
}
|
||||
|
||||
.dz-size {
|
||||
padding: 1.875rem $dz-preview-padding $dz-preview-padding $dz-preview-padding;
|
||||
font-size: 0.6875rem;
|
||||
font-style: italic;
|
||||
}
|
||||
|
||||
// Progressbar
|
||||
.dz-preview .progress,
|
||||
.dz-preview .progess-bar {
|
||||
height: $dz-progress-height;
|
||||
}
|
||||
|
||||
.dz-preview .progress {
|
||||
position: absolute;
|
||||
left: 1.25rem;
|
||||
right: 1.25rem;
|
||||
top: 50%;
|
||||
margin-top: -$dz-progress-height * 0.5;
|
||||
z-index: 30;
|
||||
}
|
||||
|
||||
.dz-complete .progress {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Thumbnail
|
||||
.dz-thumbnail {
|
||||
position: relative;
|
||||
padding: $dz-preview-padding;
|
||||
height: $dz-thumbnail-height;
|
||||
text-align: center;
|
||||
box-sizing: content-box;
|
||||
|
||||
> img,
|
||||
.dz-nopreview {
|
||||
top: 50%;
|
||||
position: relative;
|
||||
transform: translateY(-50%) scale(1);
|
||||
margin: 0 auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
> img {
|
||||
max-height: 100%;
|
||||
max-width: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.dz-nopreview {
|
||||
font-weight: light.$font-weight-medium;
|
||||
text-transform: uppercase;
|
||||
font-size: 0.6875rem;
|
||||
}
|
||||
|
||||
.dz-thumbnail img[src] ~ .dz-nopreview {
|
||||
display: none;
|
||||
}
|
||||
|
||||
// Remove link
|
||||
.dz-remove {
|
||||
display: block;
|
||||
text-align: center;
|
||||
padding: 0.375rem 0;
|
||||
font-size: 0.75rem;
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
text-decoration: none;
|
||||
border-top-color: transparent;
|
||||
}
|
||||
}
|
||||
|
||||
// error/success states
|
||||
.dz-error-mark,
|
||||
.dz-success-mark {
|
||||
position: absolute;
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
display: none;
|
||||
margin-left: -$dz-icon-block-size * 0.5;
|
||||
margin-top: -$dz-icon-block-size * 0.5;
|
||||
height: $dz-icon-block-size;
|
||||
width: $dz-icon-block-size;
|
||||
border-radius: 50%;
|
||||
background-position: center center;
|
||||
background-size: $dz-icon-size $dz-icon-size;
|
||||
background-repeat: no-repeat;
|
||||
box-shadow: 0 0 1.25rem rgba(0, 0, 0, 0.06);
|
||||
}
|
||||
|
||||
.dz-success-mark {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%235cb85c' d='M2.3 6.73L.6 4.53c-.4-1.04.46-1.4 1.1-.8l1.1 1.4 3.4-3.8c.6-.63 1.6-.27 1.2.7l-4 4.6c-.43.5-.8.4-1.1.1z'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.dz-error-mark {
|
||||
background-image: url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23d9534f' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23d9534f' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E");
|
||||
}
|
||||
|
||||
.dz-error-message {
|
||||
position: absolute;
|
||||
top: -1px;
|
||||
left: -1px;
|
||||
bottom: -1px;
|
||||
right: -1px;
|
||||
display: none;
|
||||
color: light.$white;
|
||||
z-index: 40;
|
||||
padding: 0.75rem;
|
||||
text-align: left;
|
||||
overflow: auto;
|
||||
font-weight: light.$font-weight-medium;
|
||||
|
||||
@include app-rtl {
|
||||
text-align: right;
|
||||
}
|
||||
}
|
||||
|
||||
// Error state
|
||||
.dz-error {
|
||||
.dz-error-message {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dz-error-mark {
|
||||
display: block;
|
||||
}
|
||||
|
||||
&:hover {
|
||||
.dz-error-message {
|
||||
display: block;
|
||||
}
|
||||
|
||||
.dz-error-mark {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Success state
|
||||
.dz-success .dz-success-mark {
|
||||
display: block;
|
||||
}
|
||||
|
||||
// RTL
|
||||
@include app-rtl(false) {
|
||||
.dz-hidden-input {
|
||||
left: auto !important;
|
||||
right: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
$dz-overlay-bg: light.$dark;
|
||||
$dz-thumbnail-bg: light.$gray-25;
|
||||
$dz-border-color: light.$card-border-color;
|
||||
|
||||
.dropzone {
|
||||
border: 2px dashed $dz-border-color;
|
||||
}
|
||||
|
||||
.dz-preview {
|
||||
border: light.$card-border-width solid $dz-border-color;
|
||||
border-radius: light.$border-radius;
|
||||
box-shadow: light.$card-box-shadow;
|
||||
}
|
||||
|
||||
.dz-message {
|
||||
color: light.$headings-color;
|
||||
&:before {
|
||||
background-image: light.str-replace(
|
||||
light.str-replace(light.$upload-icon, 'currentColor', light.$headings-color),
|
||||
'#',
|
||||
'%23'
|
||||
) !important;
|
||||
background: #eeedf0;
|
||||
}
|
||||
.note {
|
||||
color: light.$body-color;
|
||||
font-weight: light.$font-weight-normal;
|
||||
}
|
||||
}
|
||||
|
||||
.dz-thumbnail {
|
||||
border-bottom: 1px solid light.rgba-to-hex($dz-border-color);
|
||||
background: $dz-thumbnail-bg;
|
||||
|
||||
@include light.border-top-radius(if(light.$border-radius, calc(#{light.$border-radius} - 1px), 0));
|
||||
}
|
||||
|
||||
.dz-size {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
.dz-remove {
|
||||
color: light.$body-color;
|
||||
border-top: 1px solid light.rgba-to-hex($dz-border-color);
|
||||
|
||||
@include light.border-bottom-radius(if(light.$border-radius, calc(#{light.$border-radius} - 1px), 0));
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: light.$body-color;
|
||||
background: light.$gray-100;
|
||||
}
|
||||
}
|
||||
|
||||
.dz-nopreview {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
|
||||
.dz-error-mark,
|
||||
.dz-success-mark {
|
||||
background-color: rgba($dz-overlay-bg, 0.5);
|
||||
}
|
||||
|
||||
.dz-error-message {
|
||||
background: rgba(map-get(light.$theme-colors, danger), 0.8);
|
||||
|
||||
@include light.border-top-radius(light.$border-radius);
|
||||
}
|
||||
|
||||
@include light.media-breakpoint-up(sm) {
|
||||
.dz-preview {
|
||||
display: inline-block;
|
||||
width: $dz-thumbnail-width + ($dz-preview-padding * 2);
|
||||
}
|
||||
|
||||
.dz-thumbnail {
|
||||
width: $dz-thumbnail-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
$dz-overlay-bg: dark.$dark;
|
||||
$dz-thumbnail-bg: dark.$gray-25;
|
||||
$dz-border-color: dark.$card-border-color;
|
||||
|
||||
.dropzone {
|
||||
border: 2px dashed $dz-border-color;
|
||||
}
|
||||
|
||||
.dz-preview {
|
||||
background: dark.$card-bg;
|
||||
border: dark.$card-border-width solid $dz-border-color;
|
||||
border-radius: dark.$border-radius;
|
||||
box-shadow: dark.$card-box-shadow;
|
||||
}
|
||||
|
||||
.dz-message {
|
||||
color: dark.$headings-color;
|
||||
&:before {
|
||||
background-image: light.str-replace(
|
||||
light.str-replace(light.$upload-icon, 'currentColor', dark.$headings-color),
|
||||
'#',
|
||||
'%23'
|
||||
) !important;
|
||||
background: #373b50;
|
||||
}
|
||||
.note {
|
||||
color: dark.$body-color;
|
||||
font-weight: dark.$font-weight-normal;
|
||||
}
|
||||
}
|
||||
|
||||
.dz-filename {
|
||||
background: dark.$card-bg;
|
||||
padding-top: 0.25rem;
|
||||
padding-bottom: 0.25rem;
|
||||
border-bottom: dark.$card-border-width solid $dz-border-color;
|
||||
}
|
||||
|
||||
.dz-size {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
.dz-thumbnail {
|
||||
border-bottom: 1px solid $dz-border-color;
|
||||
background: $dz-thumbnail-bg;
|
||||
|
||||
@include dark.border-top-radius(if(dark.$border-radius, calc(#{dark.$border-radius} - 1px), 0));
|
||||
}
|
||||
|
||||
.dz-nopreview {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
.dz-remove {
|
||||
color: dark.$body-color;
|
||||
border-top: 1px solid $dz-border-color;
|
||||
|
||||
@include dark.border-bottom-radius(if(dark.$border-radius, calc(#{dark.$border-radius} - 1px), 0));
|
||||
|
||||
&:hover,
|
||||
&:focus {
|
||||
color: dark.$body-color;
|
||||
background: dark.$gray-100;
|
||||
}
|
||||
}
|
||||
|
||||
.dz-error-mark,
|
||||
.dz-success-mark {
|
||||
background-color: rgba($dz-overlay-bg, 0.5);
|
||||
}
|
||||
|
||||
.dz-error-message {
|
||||
background: rgba(map-get(dark.$theme-colors, danger), 0.8);
|
||||
|
||||
@include dark.border-top-radius(dark.$border-radius);
|
||||
}
|
||||
|
||||
@include dark.media-breakpoint-up(sm) {
|
||||
.dz-preview {
|
||||
display: inline-block;
|
||||
width: $dz-thumbnail-width + ($dz-preview-padding * 2);
|
||||
}
|
||||
|
||||
.dz-thumbnail {
|
||||
width: $dz-thumbnail-width;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
114
resources/assets/vendor/libs/flatpickr/_mixins.scss
vendored
Normal file
114
resources/assets/vendor/libs/flatpickr/_mixins.scss
vendored
Normal file
@ -0,0 +1,114 @@
|
||||
@import '../../scss/_bootstrap-extended/functions';
|
||||
|
||||
@mixin flatpickr-theme($background, $color: null) {
|
||||
$in-range-bg: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
$in-range-color: $background;
|
||||
|
||||
.flatpickr-day {
|
||||
&.today,
|
||||
&.today:hover {
|
||||
color: $background !important;
|
||||
border-color: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
background-color: rgba-to-hex(rgba($background, 0.16), $card-bg) !important;
|
||||
}
|
||||
|
||||
&.inRange,
|
||||
&.nextMonthDay.inRange,
|
||||
&.prevMonthDay.inRange,
|
||||
&.today.inRange,
|
||||
&.prevMonthDay.today.inRange,
|
||||
&.nextMonthDay.today.inRange {
|
||||
color: $background !important;
|
||||
background: $in-range-bg !important;
|
||||
border-color: $in-range-bg !important;
|
||||
}
|
||||
|
||||
&.selected,
|
||||
&.selected.inRange,
|
||||
&.selected:focus,
|
||||
&.selected:hover,
|
||||
&.selected.nextMonthDay,
|
||||
&.selected.prevMonthDay,
|
||||
&.startRange,
|
||||
&.startRange.inRange,
|
||||
&.startRange:focus,
|
||||
&.startRange:hover,
|
||||
&.startRange.nextMonthDay,
|
||||
&.startRange.prevMonthDay,
|
||||
&.endRange,
|
||||
&.endRange.inRange,
|
||||
&.endRange:focus,
|
||||
&.endRange:hover,
|
||||
&.endRange.nextMonthDay,
|
||||
&.endRange.prevMonthDay,
|
||||
&.week.selected {
|
||||
color: $color !important;
|
||||
background: $background !important;
|
||||
border-color: $background !important;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin flatpickr-dark-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
$in-range-bg: rgba-to-hex(rgba($background, 0.16), $card-bg);
|
||||
$in-range-color: $background;
|
||||
|
||||
.flatpickr-calendar .numInputWrapper span {
|
||||
&.arrowUp:after {
|
||||
border-bottom-color: $color;
|
||||
}
|
||||
|
||||
&.arrowDown:after {
|
||||
border-top-color: $color;
|
||||
}
|
||||
}
|
||||
|
||||
.flatpickr-day {
|
||||
&.today,
|
||||
&.today:hover,
|
||||
&.inRange {
|
||||
color: $background !important;
|
||||
border-color: rgba-to-hex(rgba($background, 0.16), $card-bg) !important;
|
||||
background-color: rgba-to-hex(rgba($background, 0.16), $card-bg) !important;
|
||||
}
|
||||
|
||||
&.inRange,
|
||||
&.nextMonthDay.inRange,
|
||||
&.prevMonthDay.inRange,
|
||||
&.today.inRange,
|
||||
&.nextMonthDay.today.inRange,
|
||||
&.prevMonthDay.today.inRange {
|
||||
border-color: $in-range-bg !important;
|
||||
background: $in-range-bg !important;
|
||||
color: $background !important;
|
||||
}
|
||||
|
||||
&.selected,
|
||||
&.selected.inRange,
|
||||
&.selected:focus,
|
||||
&.selected:hover,
|
||||
&.selected.prevMonthDay,
|
||||
&.selected.nextMonthDay,
|
||||
&.startRange,
|
||||
&.startRange.inRange,
|
||||
&.startRange:focus,
|
||||
&.startRange:hover,
|
||||
&.startRange.prevMonthDay,
|
||||
&.startRange.nextMonthDay,
|
||||
&.endRange,
|
||||
&.endRange.inRange,
|
||||
&.endRange:focus,
|
||||
&.endRange:hover,
|
||||
&.endRange.nextMonthDay,
|
||||
&.endRange.prevMonthDay,
|
||||
&.week.selected {
|
||||
background: $background !important;
|
||||
border-color: $background !important;
|
||||
color: $color !important;
|
||||
box-shadow: 0 0.125rem 0.375rem 0 rgba($background, 0.3);
|
||||
}
|
||||
}
|
||||
}
|
7
resources/assets/vendor/libs/flatpickr/flatpickr.js
vendored
Normal file
7
resources/assets/vendor/libs/flatpickr/flatpickr.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import flatpickr from 'flatpickr/dist/flatpickr';
|
||||
|
||||
try {
|
||||
window.flatpickr = flatpickr;
|
||||
} catch (e) {}
|
||||
|
||||
export { flatpickr };
|
1172
resources/assets/vendor/libs/flatpickr/flatpickr.scss
vendored
Normal file
1172
resources/assets/vendor/libs/flatpickr/flatpickr.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
23
resources/assets/vendor/libs/fullcalendar/_mixins.scss
vendored
Normal file
23
resources/assets/vendor/libs/fullcalendar/_mixins.scss
vendored
Normal file
@ -0,0 +1,23 @@
|
||||
@mixin fullcalendar-theme($background, $color) {
|
||||
.fc {
|
||||
// FC event
|
||||
@include bg-label-variant('.fc-event-primary:not(.fc-list-event)', $background);
|
||||
// FC list event
|
||||
.fc-event-primary.fc-list-event {
|
||||
.fc-list-event-dot {
|
||||
border-color: $background !important;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-button-primary:not(.fc-prev-button):not(.fc-next-button) {
|
||||
background-color: rgba($background, 0.16) !important;
|
||||
border: 0;
|
||||
color: $background;
|
||||
&.fc-button-active,
|
||||
&:hover {
|
||||
background-color: rgba($background, 0.24) !important;
|
||||
color: $background;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
22
resources/assets/vendor/libs/fullcalendar/fullcalendar.js
vendored
Normal file
22
resources/assets/vendor/libs/fullcalendar/fullcalendar.js
vendored
Normal file
@ -0,0 +1,22 @@
|
||||
import { Calendar } from '@fullcalendar/core';
|
||||
import dayGridPlugin from '@fullcalendar/daygrid';
|
||||
import interactionPlugin from '@fullcalendar/interaction';
|
||||
import listPlugin from '@fullcalendar/list';
|
||||
import timegridPlugin from '@fullcalendar/timegrid';
|
||||
|
||||
const calendarPlugins = {
|
||||
dayGrid: dayGridPlugin,
|
||||
interaction: interactionPlugin,
|
||||
list: listPlugin,
|
||||
timeGrid: timegridPlugin
|
||||
};
|
||||
|
||||
try {
|
||||
window.Calendar = Calendar;
|
||||
window.dayGridPlugin = dayGridPlugin;
|
||||
window.interactionPlugin = interactionPlugin;
|
||||
window.listPlugin = listPlugin;
|
||||
window.timegridPlugin = timegridPlugin;
|
||||
} catch (e) {}
|
||||
|
||||
export { Calendar, dayGridPlugin, interactionPlugin, listPlugin, timegridPlugin };
|
535
resources/assets/vendor/libs/fullcalendar/fullcalendar.scss
vendored
Normal file
535
resources/assets/vendor/libs/fullcalendar/fullcalendar.scss
vendored
Normal file
@ -0,0 +1,535 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'mixins';
|
||||
|
||||
$fullcalendar-event-padding-y: 0.25rem !default;
|
||||
$fullcalendar-event-padding-x: 0.75rem !default;
|
||||
$fullcalendar-event-margin-top: 0.625rem !default;
|
||||
$fullcalendar-event-font-size: light.$font-size-base !default;
|
||||
$fullcalendar-event-font-weight: light.$font-weight-medium !default;
|
||||
$fullcalendar-toolbar-btn-padding: light.$input-btn-padding-y - 0.115 light.$input-btn-padding-x !default;
|
||||
$fullcalendar-fc-popover-z-index: 1090 !default;
|
||||
$fullcalendar-event-border-radius: light.$border-radius-sm !default;
|
||||
$fullcalendar-today-background-light: light.rgba-to-hex(light.$gray-50, light.$rgba-to-hex-bg) !default;
|
||||
$fullcalendar-today-background-dark: dark.rgba-to-hex(dark.$gray-50, dark.$rgba-to-hex-bg) !default;
|
||||
|
||||
// Calendar
|
||||
.fc {
|
||||
.fc-scrollgrid-section {
|
||||
height: 0px;
|
||||
}
|
||||
a[data-navlink]:hover {
|
||||
text-decoration: none;
|
||||
}
|
||||
.fc-timegrid-slot {
|
||||
height: 4em !important;
|
||||
}
|
||||
.fc-timeGridWeek-view {
|
||||
.fc-timegrid-slot-minor {
|
||||
border-top-style: none;
|
||||
}
|
||||
}
|
||||
.fc-timeGridDay-view {
|
||||
.fc-timegrid-slot-minor {
|
||||
border-top-style: solid;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-col-header-cell-cushion {
|
||||
padding-top: 8.7px !important;
|
||||
padding-bottom: 8.7px !important;
|
||||
}
|
||||
.fc-toolbar {
|
||||
flex-wrap: wrap;
|
||||
.fc-prev-button,
|
||||
.fc-next-button {
|
||||
display: inline-block;
|
||||
background-color: transparent;
|
||||
border-color: transparent;
|
||||
|
||||
&:hover,
|
||||
&:active,
|
||||
&:focus {
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
box-shadow: none !important;
|
||||
}
|
||||
}
|
||||
.fc-button {
|
||||
border-radius: light.$border-radius;
|
||||
&:not(.fc-next-button):not(.fc-prev-button) {
|
||||
padding: $fullcalendar-toolbar-btn-padding;
|
||||
&:active,
|
||||
&:focus {
|
||||
box-shadow: none !important ;
|
||||
}
|
||||
}
|
||||
}
|
||||
> * > :not(:first-child) {
|
||||
margin-left: 0 !important;
|
||||
@include app-rtl(true) {
|
||||
margin-right: 0 !important;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-toolbar-chunk {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.fc-button-group {
|
||||
.fc-button {
|
||||
text-transform: capitalize;
|
||||
}
|
||||
|
||||
& + div {
|
||||
display: flex;
|
||||
align-items: center;
|
||||
flex-wrap: wrap;
|
||||
}
|
||||
}
|
||||
.fc--button:empty,
|
||||
.fc-toolbar-chunk:empty {
|
||||
display: none;
|
||||
}
|
||||
.fc-sidebarToggle-button + div {
|
||||
margin-left: 0;
|
||||
}
|
||||
}
|
||||
table.fc-scrollgrid {
|
||||
.fc-col-header {
|
||||
.fc-col-header-cell {
|
||||
border-left: none;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fc-view-harness {
|
||||
min-height: 650px;
|
||||
.fc-col-header-cell-cushion {
|
||||
padding-bottom: 3px;
|
||||
padding-top: 3px;
|
||||
}
|
||||
|
||||
// To remove border on weekday row
|
||||
.fc-scrollgrid-section-header > * {
|
||||
@include app-ltr(true) {
|
||||
border-inline-end-width: 0px;
|
||||
}
|
||||
@include app-rtl(true) {
|
||||
border-inline-start-width: 0px;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-timegrid-event .fc-event-time {
|
||||
font-size: 0.6875rem;
|
||||
}
|
||||
|
||||
.fc-v-event .fc-event-title {
|
||||
font-size: $fullcalendar-event-font-size;
|
||||
padding-top: 0.2rem;
|
||||
font-weight: $fullcalendar-event-font-weight;
|
||||
}
|
||||
|
||||
.fc-timegrid-event .fc-event-main {
|
||||
padding: $fullcalendar-event-padding-y $fullcalendar-event-padding-x 0;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-daygrid-day-events {
|
||||
.fc-event,
|
||||
.fc-more-link {
|
||||
margin-inline: 0.5rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
// To fix firefox thead border issue
|
||||
.fc-day-today {
|
||||
background-clip: padding-box;
|
||||
}
|
||||
|
||||
//! Fix: white color issue of event text
|
||||
.fc-h-event .fc-event-main,
|
||||
.fc-v-event .fc-event-main {
|
||||
color: inherit !important;
|
||||
}
|
||||
|
||||
.fc-daygrid-block-event .fc-event-time,
|
||||
.fc-daygrid-dot-event .fc-event-title {
|
||||
font-weight: $fullcalendar-event-font-weight;
|
||||
}
|
||||
|
||||
.fc-daygrid-body-natural {
|
||||
.fc-daygrid-day-events {
|
||||
margin-top: 0.94rem !important;
|
||||
margin-bottom: 0.94rem !important;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-view-harness {
|
||||
margin: 0 -1.5rem;
|
||||
.fc-daygrid-body {
|
||||
.fc-daygrid-day {
|
||||
.fc-daygrid-day-top {
|
||||
flex-direction: row;
|
||||
.fc-daygrid-day-number {
|
||||
float: left;
|
||||
padding: 0.5rem;
|
||||
}
|
||||
}
|
||||
.fc-daygrid-day-bottom .fc-daygrid-more-link {
|
||||
margin-top: 0.625rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fc-event {
|
||||
font-size: $fullcalendar-event-font-size;
|
||||
font-weight: $fullcalendar-event-font-weight;
|
||||
padding: $fullcalendar-event-padding-y $fullcalendar-event-padding-x;
|
||||
border-radius: $fullcalendar-event-border-radius;
|
||||
border: 0;
|
||||
.fc-event-title {
|
||||
font-weight: light.$font-weight-medium;
|
||||
}
|
||||
}
|
||||
.fc-daygrid-event-harness {
|
||||
// ! week & day events are using this style for all day only, not for other events
|
||||
.fc-event {
|
||||
&.private-event {
|
||||
background-color: transparent !important;
|
||||
border-color: transparent !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fc-event .fc-daygrid-event-dot {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
.fc-daygrid-event-harness + .fc-daygrid-event-harness .fc-daygrid-event {
|
||||
margin-top: $fullcalendar-event-margin-top !important;
|
||||
}
|
||||
.fc-timegrid {
|
||||
.fc-timegrid-divider {
|
||||
display: none;
|
||||
}
|
||||
.fc-timegrid-event {
|
||||
border-radius: 0px;
|
||||
box-shadow: none;
|
||||
padding-top: $fullcalendar-event-padding-x;
|
||||
.fc-event-time {
|
||||
font-size: inherit;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fc-daygrid-event-harness-abs .fc-event {
|
||||
margin-bottom: 0.625rem;
|
||||
}
|
||||
.fc-timegrid-slot-label-frame {
|
||||
text-align: center;
|
||||
}
|
||||
.fc-timegrid-axis-cushion,
|
||||
.fc-timegrid-slot-label-cushion {
|
||||
font-size: light.$font-size-sm;
|
||||
}
|
||||
.fc-timegrid-axis-cushion {
|
||||
text-transform: capitalize;
|
||||
padding: 0.5rem 0.4375rem;
|
||||
}
|
||||
.fc-timegrid-slot-label-cushion {
|
||||
text-transform: uppercase;
|
||||
padding: $fullcalendar-event-padding-x !important;
|
||||
}
|
||||
.fc-list-day-cushion,
|
||||
.fc-list-table td {
|
||||
padding-inline: 1rem;
|
||||
}
|
||||
.fc-popover {
|
||||
z-index: $fullcalendar-fc-popover-z-index !important;
|
||||
.fc-popover-header {
|
||||
padding: 0.566rem;
|
||||
}
|
||||
}
|
||||
.fc-list {
|
||||
.fc-list-table {
|
||||
border-bottom: 1px solid;
|
||||
}
|
||||
}
|
||||
&.fc-theme-standard {
|
||||
.fc-list {
|
||||
border: none;
|
||||
}
|
||||
}
|
||||
.fc-day-other {
|
||||
.fc-daygrid-day-top {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.fc {
|
||||
.fc-toolbar {
|
||||
.fc-prev-button,
|
||||
.fc-next-button {
|
||||
.fc-icon {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
}
|
||||
}
|
||||
.fc-col-header-cell-cushion {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
&.fc-theme-standard .fc-list-day-cushion {
|
||||
background-color: $fullcalendar-today-background-light !important;
|
||||
}
|
||||
table.fc-scrollgrid {
|
||||
border-color: light.$border-color;
|
||||
.fc-col-header {
|
||||
tbody {
|
||||
border: none;
|
||||
}
|
||||
.fc-col-header-cell {
|
||||
border-color: light.$border-color;
|
||||
}
|
||||
}
|
||||
td {
|
||||
border-color: light.$border-color;
|
||||
}
|
||||
}
|
||||
.fc-timegrid-axis-cushion {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
.fc-timegrid-slot-label-cushion {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
.private-event {
|
||||
.fc-event-time,
|
||||
.fc-event-title {
|
||||
color: light.$danger;
|
||||
}
|
||||
}
|
||||
.fc-day-today:not(.fc-col-header-cell) {
|
||||
background-color: $fullcalendar-today-background-light !important;
|
||||
.fc-popover-body {
|
||||
background-color: light.$card-bg !important;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-popover {
|
||||
.fc-popover-header {
|
||||
background: light.$body-bg;
|
||||
}
|
||||
}
|
||||
.fc-list {
|
||||
.fc-list-table {
|
||||
th {
|
||||
border: 0;
|
||||
background: light.$body-bg;
|
||||
}
|
||||
.fc-list-event {
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
td {
|
||||
background-color: light.$gray-25;
|
||||
}
|
||||
}
|
||||
td {
|
||||
border-color: light.$border-color;
|
||||
color: light.$body-color;
|
||||
}
|
||||
}
|
||||
.fc-list-day {
|
||||
th {
|
||||
color: light.$headings-color;
|
||||
}
|
||||
}
|
||||
tbody > tr:first-child th {
|
||||
border-top: 1px solid light.$border-color;
|
||||
}
|
||||
}
|
||||
.fc-list-empty {
|
||||
background-color: light.$body-bg;
|
||||
}
|
||||
}
|
||||
|
||||
// Border color
|
||||
table,
|
||||
tbody,
|
||||
thead,
|
||||
tbody td {
|
||||
border-color: light.$border-color;
|
||||
}
|
||||
.fc-day-other {
|
||||
.fc-daygrid-day-top {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// ? Style event here
|
||||
@each $color, $value in light.$theme-colors {
|
||||
// FC event
|
||||
@include light.bg-label-variant('.fc-event-#{$color}:not(.fc-list-event)', $value);
|
||||
|
||||
// FC list event
|
||||
.fc-event-#{$color}.fc-list-event {
|
||||
.fc-list-event-dot {
|
||||
border-color: $value !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark Style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.fc {
|
||||
.fc-toolbar {
|
||||
.fc-prev-button,
|
||||
.fc-next-button {
|
||||
.fc-icon {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
.fc-sidebarToggle-button {
|
||||
color: dark.$white;
|
||||
}
|
||||
}
|
||||
.fc-col-header-cell-cushion {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
&.fc-theme-standard .fc-list-day-cushion {
|
||||
background-color: $fullcalendar-today-background-dark !important;
|
||||
}
|
||||
.fc-timegrid-axis-cushion {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
.fc-timegrid-slot-label-cushion {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
|
||||
table.fc-scrollgrid {
|
||||
border-color: dark.$border-color;
|
||||
.fc-col-header {
|
||||
tbody {
|
||||
border: none;
|
||||
}
|
||||
.fc-col-header-cell {
|
||||
border-color: dark.$border-color;
|
||||
}
|
||||
}
|
||||
td {
|
||||
border-color: dark.$border-color;
|
||||
}
|
||||
}
|
||||
.private-event {
|
||||
.fc-event-time,
|
||||
.fc-event-title {
|
||||
color: dark.$danger;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-day-today:not(.fc-col-header-cell) {
|
||||
background-color: $fullcalendar-today-background-dark !important;
|
||||
.fc-popover-body {
|
||||
background-color: dark.$card-bg !important;
|
||||
}
|
||||
}
|
||||
.fc-divider {
|
||||
background: dark.$border-color;
|
||||
border-color: dark.$border-color;
|
||||
}
|
||||
.fc-popover {
|
||||
background-color: dark.$body-bg;
|
||||
border: 0;
|
||||
|
||||
.fc-popover-header {
|
||||
background-color: dark.$light;
|
||||
}
|
||||
}
|
||||
|
||||
.fc-list {
|
||||
.fc-list-table {
|
||||
th {
|
||||
border: 0;
|
||||
background: dark.$body-bg;
|
||||
}
|
||||
.fc-list-event {
|
||||
cursor: pointer;
|
||||
&:hover {
|
||||
td {
|
||||
background-color: dark.$gray-50;
|
||||
}
|
||||
}
|
||||
td {
|
||||
border-color: dark.$border-color;
|
||||
color: dark.$body-color;
|
||||
}
|
||||
}
|
||||
.fc-list-day {
|
||||
th {
|
||||
color: dark.$headings-color;
|
||||
}
|
||||
}
|
||||
tbody > tr:first-child th {
|
||||
border-top: 1px solid dark.$border-color;
|
||||
}
|
||||
}
|
||||
.fc-list-empty {
|
||||
background-color: dark.$body-bg;
|
||||
}
|
||||
}
|
||||
table,
|
||||
.fc-timegrid-axis,
|
||||
tbody,
|
||||
thead,
|
||||
tbody td {
|
||||
border-color: dark.$border-color;
|
||||
}
|
||||
|
||||
// FC day
|
||||
.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
|
||||
// FC table list disabled bg
|
||||
.fc-day-disabled {
|
||||
background-color: rgba(dark.$base, 0.16);
|
||||
}
|
||||
.fc-day-other {
|
||||
.fc-daygrid-day-top {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
// ? Style event here
|
||||
@each $color, $value in dark.$theme-colors {
|
||||
// FC event
|
||||
@include dark.bg-label-variant('.fc-event-#{$color}:not(.fc-list-event)', $value);
|
||||
.fc-event-#{$color}:not(.fc-list-event) {
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
// FC list event
|
||||
.fc-event-#{$color}.fc-list-event {
|
||||
.fc-list-event-dot {
|
||||
border-color: $value !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Media Queries
|
||||
@include light.media-breakpoint-down(sm) {
|
||||
.fc {
|
||||
.fc-header-toolbar {
|
||||
.fc-toolbar-chunk + .fc-toolbar-chunk {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1
resources/assets/vendor/libs/hammer/hammer.js
vendored
Normal file
1
resources/assets/vendor/libs/hammer/hammer.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import 'hammerjs/hammer.js';
|
11
resources/assets/vendor/libs/jquery-timepicker/_mixins.scss
vendored
Normal file
11
resources/assets/vendor/libs/jquery-timepicker/_mixins.scss
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
@import '../../scss/_bootstrap-extended/_functions';
|
||||
|
||||
@mixin timepicker-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
|
||||
li.ui-timepicker-selected,
|
||||
.ui-timepicker-list .ui-timepicker-selected:hover {
|
||||
color: $color !important;
|
||||
background: $background !important;
|
||||
}
|
||||
}
|
1
resources/assets/vendor/libs/jquery-timepicker/jquery-timepicker.js
vendored
Normal file
1
resources/assets/vendor/libs/jquery-timepicker/jquery-timepicker.js
vendored
Normal file
@ -0,0 +1 @@
|
||||
import 'timepicker/jquery.timepicker';
|
116
resources/assets/vendor/libs/jquery-timepicker/jquery-timepicker.scss
vendored
Normal file
116
resources/assets/vendor/libs/jquery-timepicker/jquery-timepicker.scss
vendored
Normal file
@ -0,0 +1,116 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
.ui-timepicker-wrapper {
|
||||
max-height: 10rem;
|
||||
overflow-y: auto;
|
||||
margin: 0.125rem 0;
|
||||
background: light.$white;
|
||||
background-clip: padding-box;
|
||||
outline: none;
|
||||
}
|
||||
|
||||
.ui-timepicker-list {
|
||||
list-style: none;
|
||||
padding: 0.125rem 0;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.ui-timepicker-duration {
|
||||
margin-left: 0.25rem;
|
||||
|
||||
@include app-rtl {
|
||||
margin-left: 0;
|
||||
margin-right: 0.25rem;
|
||||
}
|
||||
}
|
||||
|
||||
.ui-timepicker-list li {
|
||||
padding: 0.25rem 0.75rem;
|
||||
margin: 0.125rem 0.875rem;
|
||||
white-space: nowrap;
|
||||
cursor: pointer;
|
||||
list-style: none;
|
||||
border-radius: light.$dropdown-border-radius;
|
||||
|
||||
&.ui-timepicker-disabled,
|
||||
&.ui-timepicker-selected.ui-timepicker-disabled {
|
||||
background: light.$white !important;
|
||||
cursor: default !important;
|
||||
}
|
||||
}
|
||||
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.ui-timepicker-wrapper {
|
||||
padding: light.$dropdown-padding-y;
|
||||
z-index: light.$zindex-popover;
|
||||
background: light.$dropdown-bg;
|
||||
box-shadow: light.$card-box-shadow;
|
||||
border: light.$dropdown-border-width solid light.$dropdown-border-color;
|
||||
|
||||
@include light.border-radius(light.$border-radius);
|
||||
}
|
||||
|
||||
.ui-timepicker-list li {
|
||||
color: light.$dropdown-link-color;
|
||||
|
||||
&:hover {
|
||||
background: light.$dropdown-link-hover-bg;
|
||||
}
|
||||
&:not(.ui-timepicker-selected) {
|
||||
.ui-timepicker-duration {
|
||||
color: light.$text-muted;
|
||||
|
||||
.ui-timepicker-list:hover & {
|
||||
color: light.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-timepicker-list li.ui-timepicker-disabled,
|
||||
.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled {
|
||||
background: light.$dropdown-bg !important;
|
||||
color: light.$dropdown-link-disabled-color !important;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.ui-timepicker-wrapper {
|
||||
border: dark.$dropdown-border-width solid dark.$dropdown-border-color;
|
||||
padding: dark.$dropdown-padding-y 0;
|
||||
z-index: dark.$zindex-popover;
|
||||
background: dark.$dropdown-bg;
|
||||
box-shadow: dark.$card-box-shadow;
|
||||
|
||||
@include dark.border-radius(dark.$border-radius);
|
||||
}
|
||||
|
||||
.ui-timepicker-list li {
|
||||
color: dark.$dropdown-link-color;
|
||||
|
||||
&:hover {
|
||||
background: dark.$dropdown-link-hover-bg;
|
||||
}
|
||||
&:not(.ui-timepicker-selected) {
|
||||
.ui-timepicker-duration {
|
||||
color: dark.$text-muted;
|
||||
|
||||
.ui-timepicker-list:hover & {
|
||||
color: dark.$text-muted;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
.ui-timepicker-list li.ui-timepicker-disabled,
|
||||
.ui-timepicker-list li.ui-timepicker-selected.ui-timepicker-disabled {
|
||||
color: dark.$dropdown-link-disabled-color !important;
|
||||
background: dark.$dropdown-bg !important;
|
||||
}
|
||||
}
|
||||
}
|
8
resources/assets/vendor/libs/jquery/jquery.js
vendored
Normal file
8
resources/assets/vendor/libs/jquery/jquery.js
vendored
Normal file
@ -0,0 +1,8 @@
|
||||
import jQuery from 'jquery/dist/jquery';
|
||||
|
||||
const $ = jQuery;
|
||||
try {
|
||||
window.jQuery = window.$ = jQuery;
|
||||
} catch (e) {}
|
||||
|
||||
export { jQuery, $ };
|
BIN
resources/assets/vendor/libs/leaflet/images/layers-2x.png
vendored
Normal file
BIN
resources/assets/vendor/libs/leaflet/images/layers-2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.2 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/layers.png
vendored
Normal file
BIN
resources/assets/vendor/libs/leaflet/images/layers.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 696 B |
BIN
resources/assets/vendor/libs/leaflet/images/marker-icon-2x.png
vendored
Normal file
BIN
resources/assets/vendor/libs/leaflet/images/marker-icon-2x.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 2.4 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/marker-icon.png
vendored
Normal file
BIN
resources/assets/vendor/libs/leaflet/images/marker-icon.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.4 KiB |
BIN
resources/assets/vendor/libs/leaflet/images/marker-shadow.png
vendored
Normal file
BIN
resources/assets/vendor/libs/leaflet/images/marker-shadow.png
vendored
Normal file
Binary file not shown.
After Width: | Height: | Size: 618 B |
19
resources/assets/vendor/libs/leaflet/leaflet.js
vendored
Normal file
19
resources/assets/vendor/libs/leaflet/leaflet.js
vendored
Normal file
@ -0,0 +1,19 @@
|
||||
import leaFlet from 'leaflet';
|
||||
|
||||
import markerIcon2x from 'leaflet/dist/images/marker-icon-2x.png';
|
||||
import markerIcon from 'leaflet/dist/images/marker-icon.png';
|
||||
import markerShadow from 'leaflet/dist/images/marker-shadow.png';
|
||||
|
||||
delete leaFlet.Icon.Default.prototype._getIconUrl;
|
||||
|
||||
leaFlet.Icon.Default.mergeOptions({
|
||||
iconRetinaUrl: markerIcon2x,
|
||||
iconUrl: markerIcon,
|
||||
shadowUrl: markerShadow
|
||||
});
|
||||
|
||||
try {
|
||||
window.leaFlet = leaFlet;
|
||||
} catch (e) {}
|
||||
|
||||
export { leaFlet };
|
46
resources/assets/vendor/libs/leaflet/leaflet.scss
vendored
Normal file
46
resources/assets/vendor/libs/leaflet/leaflet.scss
vendored
Normal file
@ -0,0 +1,46 @@
|
||||
@import '../../scss/_bootstrap-extended/include';
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'leaflet/dist/leaflet';
|
||||
|
||||
.leaflet-map {
|
||||
height: 400px;
|
||||
}
|
||||
|
||||
.leaflet-pane {
|
||||
z-index: 1;
|
||||
}
|
||||
|
||||
// RTL
|
||||
|
||||
@include app-rtl(false) {
|
||||
.leaflet-map {
|
||||
.leaflet-control-container {
|
||||
.leaflet-left {
|
||||
right: 0;
|
||||
left: unset;
|
||||
.leaflet-control-zoom,
|
||||
.leaflet-control-layers {
|
||||
margin-left: 0;
|
||||
margin-right: 10px;
|
||||
}
|
||||
}
|
||||
.leaflet-right {
|
||||
left: 0;
|
||||
right: unset;
|
||||
.leaflet-control-zoom,
|
||||
.leaflet-control-layers {
|
||||
margin-left: 10px;
|
||||
margin-right: 0px;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//Map tooltip border radius
|
||||
|
||||
.leaflet-popup {
|
||||
.leaflet-popup-content-wrapper {
|
||||
border-radius: $border-radius;
|
||||
}
|
||||
}
|
7
resources/assets/vendor/libs/moment/moment.js
vendored
Normal file
7
resources/assets/vendor/libs/moment/moment.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import moment from 'moment/moment';
|
||||
|
||||
try {
|
||||
window.moment = moment;
|
||||
} catch (e) {}
|
||||
|
||||
export { moment };
|
3
resources/assets/vendor/libs/node-waves/node-waves.js
vendored
Normal file
3
resources/assets/vendor/libs/node-waves/node-waves.js
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
import nodeWaves from 'node-waves/src/js/waves';
|
||||
|
||||
window.Waves = nodeWaves;
|
4
resources/assets/vendor/libs/node-waves/node-waves.scss
vendored
Normal file
4
resources/assets/vendor/libs/node-waves/node-waves.scss
vendored
Normal file
@ -0,0 +1,4 @@
|
||||
// Waves
|
||||
// *******************************************************************************
|
||||
|
||||
@import 'node-waves/src/scss/waves';
|
26
resources/assets/vendor/libs/nouislider/_mixins.scss
vendored
Normal file
26
resources/assets/vendor/libs/nouislider/_mixins.scss
vendored
Normal file
@ -0,0 +1,26 @@
|
||||
@mixin nouislider-variant($parent, $background) {
|
||||
#{$parent}.noUi-target {
|
||||
// If slider is not disabled
|
||||
&:not([disabled]) {
|
||||
background: rgba($background, 0.16);
|
||||
.noUi-connect {
|
||||
background: $background;
|
||||
}
|
||||
|
||||
.noUi-handle {
|
||||
border-color: $background;
|
||||
&:hover {
|
||||
box-shadow: 0 0 0 8px rgba($background, 0.16);
|
||||
}
|
||||
&:active,
|
||||
&:focus {
|
||||
box-shadow: 0 0 0 13px rgba($background, 0.16);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin nouislider-theme($background) {
|
||||
@include nouislider-variant('', $background);
|
||||
}
|
7
resources/assets/vendor/libs/nouislider/nouislider.js
vendored
Normal file
7
resources/assets/vendor/libs/nouislider/nouislider.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import noUiSlider from 'nouislider';
|
||||
|
||||
try {
|
||||
window.noUiSlider = noUiSlider;
|
||||
} catch (e) {}
|
||||
|
||||
export { noUiSlider };
|
398
resources/assets/vendor/libs/nouislider/nouislider.scss
vendored
Normal file
398
resources/assets/vendor/libs/nouislider/nouislider.scss
vendored
Normal file
@ -0,0 +1,398 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import 'nouislider/dist/nouislider';
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'mixins';
|
||||
|
||||
$noUiSlider-handle-color: #fff !default;
|
||||
$noUiSlider-handle-width: 1.375rem !default;
|
||||
$noUiSlider-handle-height: 1.375rem !default;
|
||||
$noUiSlider-bar-height: 0.375rem !default;
|
||||
$noUiSlider-vertical-height: 13.125rem !default;
|
||||
$noUiSlider-tick-size: 0.5rem !default;
|
||||
$noUiSlider-tick-label-font-size: light.$font-size-sm !default;
|
||||
|
||||
.noUi-target {
|
||||
direction: ltr !important;
|
||||
position: relative;
|
||||
border-width: 0;
|
||||
box-shadow: none;
|
||||
}
|
||||
|
||||
.noUi-target,
|
||||
.noUi-target * {
|
||||
touch-action: none;
|
||||
user-select: none;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.noUi-connects {
|
||||
height: $noUiSlider-bar-height;
|
||||
border-radius: light.$border-radius-pill;
|
||||
}
|
||||
|
||||
.noUi-base,
|
||||
.noUi-connects {
|
||||
z-index: 1;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.noUi-horizontal .noUi-origin {
|
||||
height: 0;
|
||||
|
||||
@include app-ltr {
|
||||
left: auto;
|
||||
right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-vertical .noUi-origin {
|
||||
width: 0;
|
||||
}
|
||||
|
||||
.noUi-handle {
|
||||
backface-visibility: hidden;
|
||||
outline: none !important;
|
||||
position: absolute;
|
||||
box-shadow: none;
|
||||
border: none;
|
||||
transition: all 0.2s;
|
||||
border: 4px solid;
|
||||
background: #fff;
|
||||
&:before,
|
||||
&:after {
|
||||
display: none;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-touch-area {
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.noUi-state-tap .noUi-connect,
|
||||
.noUi-state-tap .noUi-origin {
|
||||
transition:
|
||||
top 0.3s,
|
||||
right 0.3s,
|
||||
bottom 0.3s,
|
||||
left 0.3s;
|
||||
}
|
||||
|
||||
.noUi-state-drag * {
|
||||
cursor: inherit !important;
|
||||
}
|
||||
|
||||
// Slider size and handle placement
|
||||
|
||||
.noUi-horizontal {
|
||||
height: $noUiSlider-bar-height;
|
||||
margin-bottom: 3rem;
|
||||
margin-top: 1.5rem;
|
||||
}
|
||||
|
||||
.noUi-horizontal .noUi-handle {
|
||||
left: -($noUiSlider-handle-width * 0.5);
|
||||
width: $noUiSlider-handle-width;
|
||||
height: $noUiSlider-handle-height;
|
||||
top: ($noUiSlider-bar-height - $noUiSlider-handle-height) * 0.5;
|
||||
|
||||
@include app-ltr {
|
||||
right: -($noUiSlider-handle-width * 0.5);
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-vertical {
|
||||
width: $noUiSlider-bar-height;
|
||||
}
|
||||
|
||||
.noUi-vertical .noUi-handle {
|
||||
bottom: -($noUiSlider-handle-height);
|
||||
width: $noUiSlider-handle-height;
|
||||
height: $noUiSlider-handle-width;
|
||||
right: ($noUiSlider-bar-height - $noUiSlider-handle-height) * 0.5;
|
||||
}
|
||||
|
||||
// Styling
|
||||
.noUi-target {
|
||||
border-radius: 10rem;
|
||||
}
|
||||
|
||||
// Handles and cursors
|
||||
.noUi-draggable {
|
||||
cursor: ew-resize;
|
||||
}
|
||||
|
||||
.noUi-vertical .noUi-draggable {
|
||||
cursor: ns-resize;
|
||||
}
|
||||
|
||||
.noUi-handle {
|
||||
border-radius: 10rem;
|
||||
background: $noUiSlider-handle-color;
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
// Disabled state
|
||||
.noUi-target[disabled] {
|
||||
opacity: 0.45;
|
||||
}
|
||||
|
||||
[disabled] .noUi-handle {
|
||||
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.05);
|
||||
}
|
||||
|
||||
[disabled].noUi-target,
|
||||
[disabled].noUi-handle,
|
||||
[disabled] .noUi-handle {
|
||||
cursor: not-allowed;
|
||||
}
|
||||
|
||||
// Base
|
||||
.noUi-pips,
|
||||
.noUi-pips * {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
.noUi-pips {
|
||||
color: #999;
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
// Values
|
||||
.noUi-value {
|
||||
position: absolute;
|
||||
white-space: nowrap;
|
||||
text-align: center;
|
||||
font-size: $noUiSlider-tick-label-font-size;
|
||||
}
|
||||
|
||||
// Markings
|
||||
.noUi-marker {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
// Horizontal layout
|
||||
.noUi-pips-horizontal {
|
||||
left: 0;
|
||||
top: 100%;
|
||||
padding: (($noUiSlider-handle-height - $noUiSlider-bar-height) * 0.5 + 0.375rem) 0 0 0;
|
||||
height: 5rem;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.noUi-value-horizontal {
|
||||
padding-top: 0.125rem;
|
||||
transform: translate(-50%, 50%);
|
||||
|
||||
@include app-rtl {
|
||||
transform: translate(50%, 50%);
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-marker-horizontal.noUi-marker {
|
||||
height: $noUiSlider-tick-size;
|
||||
width: 1px;
|
||||
}
|
||||
|
||||
@include app-rtl(false) {
|
||||
.noUi-horizontal {
|
||||
.noUi-origin {
|
||||
left: 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Vertical layout
|
||||
.noUi-pips-vertical {
|
||||
top: 0;
|
||||
left: 100%;
|
||||
padding: 0 0 0 (($noUiSlider-handle-height - $noUiSlider-bar-height) * 0.5 + 0.375rem);
|
||||
height: 100%;
|
||||
|
||||
@include app-rtl {
|
||||
right: 100%;
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-value-vertical {
|
||||
padding-left: $noUiSlider-tick-size + 0.375rem;
|
||||
transform: translate(0, 50%);
|
||||
|
||||
@include app-rtl {
|
||||
right: 100%;
|
||||
padding-right: $noUiSlider-tick-size + 0.375rem;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl(false) {
|
||||
.noUi-marker-vertical {
|
||||
right: 100%;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-marker-vertical.noUi-marker {
|
||||
width: $noUiSlider-tick-size;
|
||||
height: 1px;
|
||||
}
|
||||
|
||||
// Tooltips
|
||||
.noUi-tooltip {
|
||||
position: absolute;
|
||||
display: block;
|
||||
padding: 0.25rem 0.5rem;
|
||||
border-radius: 0.25rem;
|
||||
text-align: center;
|
||||
line-height: 1;
|
||||
transition: transform 0.2s;
|
||||
&::after {
|
||||
content: '';
|
||||
position: absolute;
|
||||
width: 0;
|
||||
height: 0;
|
||||
clear: both;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-horizontal .noUi-tooltip {
|
||||
bottom: 125%;
|
||||
left: 50%;
|
||||
transform: translate(-50%, -45%);
|
||||
&::after {
|
||||
content: '';
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
top: 1.25rem;
|
||||
border-left: 8px solid transparent;
|
||||
border-right: 8px solid transparent;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-vertical .noUi-tooltip {
|
||||
top: 50%;
|
||||
right: 125%;
|
||||
transform: translate(-15%, -52%);
|
||||
|
||||
&::after {
|
||||
content: '';
|
||||
top: 14%;
|
||||
right: -5px;
|
||||
border-top: 8px solid transparent;
|
||||
border-bottom: 8px solid transparent;
|
||||
@include app-rtl {
|
||||
left: -14px;
|
||||
right: auto;
|
||||
}
|
||||
}
|
||||
|
||||
@include app-rtl {
|
||||
right: auto;
|
||||
left: 125%;
|
||||
transform: translate(15%, -52%);
|
||||
}
|
||||
}
|
||||
|
||||
// Light style
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
$noUiSlider-default-bg: light.$gray-400;
|
||||
$noUiSlider-tick-label-color: light.$text-light;
|
||||
.noUi-target {
|
||||
.noUi-handle {
|
||||
box-shadow: light.$form-range-thumb-box-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-value {
|
||||
color: $noUiSlider-tick-label-color;
|
||||
}
|
||||
.noUi-marker {
|
||||
background: $noUiSlider-tick-label-color;
|
||||
}
|
||||
|
||||
.noUi-tooltip {
|
||||
font-size: light.$small-font-size;
|
||||
color: light.$tooltip-color;
|
||||
border: none;
|
||||
background: light.$tooltip-bg;
|
||||
}
|
||||
.noUi-horizontal .noUi-tooltip {
|
||||
&::after {
|
||||
border-top: 8px solid light.$tooltip-bg;
|
||||
}
|
||||
}
|
||||
.noUi-vertical .noUi-tooltip {
|
||||
&::after {
|
||||
border-left: 8px solid light.$tooltip-bg;
|
||||
}
|
||||
}
|
||||
@include app-rtl-style {
|
||||
.noUi-vertical .noUi-tooltip {
|
||||
&::after {
|
||||
border-right: 8px solid light.$tooltip-bg;
|
||||
border-left: 8px solid transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@each $color, $value in light.$theme-colors {
|
||||
@if $color !=primary {
|
||||
@include nouislider-variant('.noUi-#{$color}', $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
$noUiSlider-default-bg: dark.$gray-400;
|
||||
$noUiSlider-tick-label-color: dark.$text-light;
|
||||
.noUi-target {
|
||||
.noUi-handle {
|
||||
box-shadow: dark.$form-range-thumb-box-shadow;
|
||||
}
|
||||
}
|
||||
|
||||
.noUi-value {
|
||||
color: $noUiSlider-tick-label-color;
|
||||
}
|
||||
.noUi-marker {
|
||||
background: $noUiSlider-tick-label-color;
|
||||
}
|
||||
|
||||
.noUi-tooltip {
|
||||
font-size: dark.$small-font-size;
|
||||
color: dark.$tooltip-color;
|
||||
border: none;
|
||||
background: dark.$tooltip-bg;
|
||||
}
|
||||
.noUi-horizontal .noUi-tooltip {
|
||||
&::after {
|
||||
border-top: 8px solid dark.$tooltip-bg;
|
||||
}
|
||||
}
|
||||
.noUi-vertical .noUi-tooltip {
|
||||
&::after {
|
||||
border-left: 8px solid dark.$tooltip-bg;
|
||||
}
|
||||
}
|
||||
@include app-rtl-style {
|
||||
.noUi-vertical .noUi-tooltip {
|
||||
&::after {
|
||||
border-right: 8px solid dark.$tooltip-bg;
|
||||
border-left: 8px solid transparent;
|
||||
}
|
||||
}
|
||||
}
|
||||
@each $color, $value in dark.$theme-colors {
|
||||
@if $color !=primary {
|
||||
@include nouislider-variant('.noUi-#{$color}', $value);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
resources/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js
vendored
Normal file
7
resources/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import PerfectScrollbar from 'perfect-scrollbar/dist/perfect-scrollbar';
|
||||
|
||||
try {
|
||||
window.PerfectScrollbar = PerfectScrollbar;
|
||||
} catch (e) {}
|
||||
|
||||
export { PerfectScrollbar };
|
177
resources/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.scss
vendored
Normal file
177
resources/assets/vendor/libs/perfect-scrollbar/perfect-scrollbar.scss
vendored
Normal file
@ -0,0 +1,177 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
@import 'perfect-scrollbar/css/perfect-scrollbar';
|
||||
|
||||
$ps-width: 0.25rem !default;
|
||||
$ps-hover-width: 0.375rem !default;
|
||||
|
||||
.ps {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.ps__rail-x {
|
||||
height: $ps-width;
|
||||
}
|
||||
|
||||
.ps__rail-y {
|
||||
width: $ps-width;
|
||||
z-index: 3;
|
||||
}
|
||||
|
||||
.ps__rail-x,
|
||||
.ps__rail-y,
|
||||
.ps__thumb-x,
|
||||
.ps__thumb-y {
|
||||
border-radius: 10rem;
|
||||
}
|
||||
.ps__rail-x:hover,
|
||||
.ps__rail-x:focus,
|
||||
.ps__rail-x.ps--clicking,
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-x.ps--clicking > .ps__thumb-x {
|
||||
height: $ps-hover-width;
|
||||
}
|
||||
|
||||
.ps__rail-y:hover,
|
||||
.ps__rail-y:focus,
|
||||
.ps__rail-y.ps--clicking,
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-y.ps--clicking > .ps__thumb-y {
|
||||
width: $ps-hover-width;
|
||||
}
|
||||
|
||||
.ps__thumb-x {
|
||||
height: $ps-width;
|
||||
bottom: 0;
|
||||
}
|
||||
|
||||
.ps__thumb-y {
|
||||
width: $ps-width;
|
||||
right: 0;
|
||||
}
|
||||
|
||||
// Light layout
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.ps__thumb-x,
|
||||
.ps__thumb-y {
|
||||
background-color: light.$gray-400;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover,
|
||||
.ps__rail-y:hover,
|
||||
.ps__rail-x:focus,
|
||||
.ps__rail-y:focus,
|
||||
.ps__rail-x.ps--clicking,
|
||||
.ps__rail-y.ps--clicking {
|
||||
background-color: light.$gray-200;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-x.ps--clicking > .ps__thumb-x,
|
||||
.ps__rail-y.ps--clicking > .ps__thumb-y {
|
||||
background-color: light.$gray-700;
|
||||
}
|
||||
|
||||
.ps-inverted {
|
||||
.ps__rail-x:hover,
|
||||
.ps__rail-y:hover,
|
||||
.ps__rail-x:focus,
|
||||
.ps__rail-y:focus,
|
||||
.ps__rail-x.ps--clicking,
|
||||
.ps__rail-y.ps--clicking {
|
||||
background-color: rgba(light.$white, 0.5);
|
||||
}
|
||||
|
||||
.ps__thumb-x,
|
||||
.ps__thumb-y {
|
||||
background-color: rgba(light.$white, 0.7);
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-x.ps--clicking > .ps__thumb-x,
|
||||
.ps__rail-y.ps--clicking > .ps__thumb-y {
|
||||
background-color: light.$white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Firefox width issue fixed
|
||||
@supports (-moz-appearance: none) {
|
||||
#both-scrollbars-example {
|
||||
max-width: 1080px;
|
||||
margin: 0 auto;
|
||||
padding-left: 0;
|
||||
padding-right: 0;
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.ps__thumb-x,
|
||||
.ps__thumb-y {
|
||||
background-color: rgba(255, 255, 255, 0.438133) !important;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover,
|
||||
.ps__rail-y:hover,
|
||||
.ps__rail-x:focus,
|
||||
.ps__rail-y:focus,
|
||||
.ps__rail-x.ps--clicking,
|
||||
.ps__rail-y.ps--clicking {
|
||||
background-color: rgba(255, 255, 255, 0.438133) !important;
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-x.ps--clicking > .ps__thumb-x,
|
||||
.ps__rail-y.ps--clicking > .ps__thumb-y {
|
||||
background-color: dark.$gray-700;
|
||||
}
|
||||
|
||||
.ps-inverted {
|
||||
.ps__rail-x:hover,
|
||||
.ps__rail-y:hover,
|
||||
.ps__rail-x:focus,
|
||||
.ps__rail-y:focus,
|
||||
.ps__rail-x.ps--clicking,
|
||||
.ps__rail-y.ps--clicking {
|
||||
background-color: rgba(light.$white, 0.5);
|
||||
}
|
||||
|
||||
.ps__thumb-x,
|
||||
.ps__thumb-y {
|
||||
background-color: rgba(light.$white, 0.7);
|
||||
}
|
||||
|
||||
.ps__rail-x:hover > .ps__thumb-x,
|
||||
.ps__rail-y:hover > .ps__thumb-y,
|
||||
.ps__rail-x:focus > .ps__thumb-x,
|
||||
.ps__rail-y:focus > .ps__thumb-y,
|
||||
.ps__rail-x.ps--clicking > .ps__thumb-x,
|
||||
.ps__rail-y.ps--clicking > .ps__thumb-y {
|
||||
background-color: light.$white;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
// RTL rail-y position
|
||||
.ps--active-y > .ps__rail-y {
|
||||
@include app-rtl {
|
||||
left: 0;
|
||||
right: unset !important;
|
||||
}
|
||||
}
|
11
resources/assets/vendor/libs/pickr/_mixins.scss
vendored
Normal file
11
resources/assets/vendor/libs/pickr/_mixins.scss
vendored
Normal file
@ -0,0 +1,11 @@
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
// Background & Primary color for picker
|
||||
@mixin colorPicker-theme($background) {
|
||||
.pcr-app {
|
||||
.pcr-type.active,
|
||||
.pcr-save {
|
||||
background: $background !important;
|
||||
}
|
||||
}
|
||||
}
|
15
resources/assets/vendor/libs/pickr/_pickr-classic.scss
vendored
Normal file
15
resources/assets/vendor/libs/pickr/_pickr-classic.scss
vendored
Normal file
@ -0,0 +1,15 @@
|
||||
@import '@simonwep/pickr/dist/themes/classic.min';
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
@include app-rtl(false) {
|
||||
.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-preview {
|
||||
margin-right: inherit;
|
||||
margin-left: 0.75em;
|
||||
}
|
||||
|
||||
.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-chooser,
|
||||
.pcr-app[data-theme='classic'] .pcr-selection .pcr-color-opacity {
|
||||
margin-left: inherit;
|
||||
margin-right: 0.75em;
|
||||
}
|
||||
}
|
10
resources/assets/vendor/libs/pickr/_pickr-monolith.scss
vendored
Normal file
10
resources/assets/vendor/libs/pickr/_pickr-monolith.scss
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
@import '@simonwep/pickr/dist/themes/monolith.min';
|
||||
|
||||
@include app-rtl(false) {
|
||||
.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview .pcr-last-color {
|
||||
border-radius: 0 0.15em 0.15em 0;
|
||||
}
|
||||
.pcr-app[data-theme='monolith'] .pcr-selection .pcr-color-preview .pcr-current-color {
|
||||
border-radius: 0.15em 0 0 0.15em;
|
||||
}
|
||||
}
|
7
resources/assets/vendor/libs/pickr/_pickr-nano.scss
vendored
Normal file
7
resources/assets/vendor/libs/pickr/_pickr-nano.scss
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
@import '@simonwep/pickr/dist/themes/nano.min';
|
||||
|
||||
@include app-rtl(false) {
|
||||
.pcr-app[data-theme='nano'] .pcr-selection .pcr-color-preview {
|
||||
margin-right: 0.6em;
|
||||
}
|
||||
}
|
39
resources/assets/vendor/libs/pickr/pickr-themes.scss
vendored
Normal file
39
resources/assets/vendor/libs/pickr/pickr-themes.scss
vendored
Normal file
@ -0,0 +1,39 @@
|
||||
// Pickr
|
||||
// *******************************************************************************
|
||||
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
@import 'pickr-classic';
|
||||
@import 'pickr-monolith';
|
||||
@import 'pickr-nano';
|
||||
@import 'mixins';
|
||||
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.pcr-app {
|
||||
.pcr-interaction input:focus {
|
||||
box-shadow: light.$box-shadow;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Dark style for pickr
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.pcr-app {
|
||||
background: dark.$card-bg !important;
|
||||
|
||||
.pcr-type:not(.active),
|
||||
.pcr-result {
|
||||
background: dark.$dropdown-bg !important;
|
||||
color: dark.$white !important;
|
||||
}
|
||||
.pcr-interaction input:focus {
|
||||
box-shadow: dark.$box-shadow;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
7
resources/assets/vendor/libs/pickr/pickr.js
vendored
Normal file
7
resources/assets/vendor/libs/pickr/pickr.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import pickr from '@simonwep/pickr/dist/pickr.es5.min';
|
||||
|
||||
try {
|
||||
window.pickr = pickr;
|
||||
} catch (e) {}
|
||||
|
||||
export { pickr };
|
52
resources/assets/vendor/libs/plyr/_mixins.scss
vendored
Normal file
52
resources/assets/vendor/libs/plyr/_mixins.scss
vendored
Normal file
@ -0,0 +1,52 @@
|
||||
@import '../../scss/_bootstrap-extended/functions';
|
||||
|
||||
// Light style
|
||||
@mixin plyr-theme($background, $color: null) {
|
||||
$color: if($color, $color, color-contrast($background));
|
||||
|
||||
.plyr input[type='range']::-ms-fill-lower {
|
||||
background: $background !important;
|
||||
}
|
||||
|
||||
.plyr input[type='range']:active {
|
||||
&::-webkit-slider-thumb {
|
||||
background: $background !important;
|
||||
}
|
||||
&::-moz-range-thumb {
|
||||
background: $background !important;
|
||||
}
|
||||
&::-ms-thumb {
|
||||
background: $background !important;
|
||||
}
|
||||
}
|
||||
.plyr--video .plyr__control.plyr__control--overlaid,
|
||||
.plyr--video .plyr__controls button.tab-focus:focus,
|
||||
.plyr--video .plyr__control[aria-expanded='true'],
|
||||
.plyr--video .plyr__controls button:hover {
|
||||
background: $background !important;
|
||||
color: $color !important;
|
||||
}
|
||||
|
||||
.plyr--audio .plyr__controls button.tab-focus:focus,
|
||||
.plyr--audio .plyr__control[aria-expanded='true'],
|
||||
.plyr--audio .plyr__controls button:hover {
|
||||
background: $background !important;
|
||||
color: $color !important;
|
||||
}
|
||||
|
||||
.plyr__play-large {
|
||||
background: $background !important;
|
||||
color: $color !important;
|
||||
}
|
||||
|
||||
.plyr__progress--played,
|
||||
.plyr__volume--display {
|
||||
color: $background !important;
|
||||
}
|
||||
.plyr--full-ui input[type='range'] {
|
||||
color: $background !important;
|
||||
}
|
||||
.plyr__menu__container .plyr__control[role='menuitemradio'][aria-checked='true']::before {
|
||||
background: $background !important;
|
||||
}
|
||||
}
|
7
resources/assets/vendor/libs/plyr/plyr.js
vendored
Normal file
7
resources/assets/vendor/libs/plyr/plyr.js
vendored
Normal file
@ -0,0 +1,7 @@
|
||||
import Plyr from 'plyr';
|
||||
|
||||
try {
|
||||
window.Plyr = Plyr;
|
||||
} catch (e) {}
|
||||
|
||||
export { Plyr };
|
132
resources/assets/vendor/libs/plyr/plyr.scss
vendored
Normal file
132
resources/assets/vendor/libs/plyr/plyr.scss
vendored
Normal file
@ -0,0 +1,132 @@
|
||||
@use '../../scss/_bootstrap-extended/include' as light;
|
||||
@use '../../scss/_bootstrap-extended/include-dark' as dark;
|
||||
@import '../../scss/_custom-variables/libs';
|
||||
|
||||
// Variables
|
||||
@import 'plyr/src/sass/settings/breakpoints';
|
||||
@import 'plyr/src/sass/settings/colors';
|
||||
@import 'plyr/src/sass/settings/cosmetics';
|
||||
@import 'plyr/src/sass/settings/type';
|
||||
@import 'plyr/src/sass/settings/badges';
|
||||
@import 'plyr/src/sass/settings/captions';
|
||||
@import 'plyr/src/sass/settings/controls';
|
||||
@import 'plyr/src/sass/settings/helpers';
|
||||
@import 'plyr/src/sass/settings/menus';
|
||||
@import 'plyr/src/sass/settings/progress';
|
||||
@import 'plyr/src/sass/settings/sliders';
|
||||
@import 'plyr/src/sass/settings/tooltips';
|
||||
@import 'plyr/src/sass/lib/animation';
|
||||
@import 'plyr/src/sass/lib/functions';
|
||||
@import 'plyr/src/sass/lib/mixins';
|
||||
|
||||
// Components
|
||||
@import 'plyr/src/sass/base';
|
||||
@import 'plyr/src/sass/components/badges';
|
||||
@import 'plyr/src/sass/components/captions';
|
||||
@import 'plyr/src/sass/components/control';
|
||||
@import 'plyr/src/sass/components/controls';
|
||||
@import 'plyr/src/sass/components/menus';
|
||||
@import 'plyr/src/sass/components/sliders';
|
||||
@import 'plyr/src/sass/components/poster';
|
||||
@import 'plyr/src/sass/components/times';
|
||||
@import 'plyr/src/sass/components/tooltips';
|
||||
@import 'plyr/src/sass/components/progress';
|
||||
@import 'plyr/src/sass/components/volume';
|
||||
@import 'plyr/src/sass/types/audio';
|
||||
@import 'plyr/src/sass/types/video';
|
||||
@import 'plyr/src/sass/states/fullscreen';
|
||||
@import 'plyr/src/sass/plugins/ads';
|
||||
@import 'plyr/src/sass/plugins/preview-thumbnails';
|
||||
@import 'plyr/src/sass/utils/animation';
|
||||
@import 'plyr/src/sass/utils/hidden';
|
||||
|
||||
.plyr__progress__container,
|
||||
.plyr__volume input[type='range'] {
|
||||
flex: 0 1 auto;
|
||||
}
|
||||
.plyr--audio .plyr__controls {
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.plyr__menu__container {
|
||||
@include app-rtl {
|
||||
direction: rtl;
|
||||
text-align: right;
|
||||
|
||||
.plyr__control--forward {
|
||||
&::after {
|
||||
left: 5px;
|
||||
right: auto;
|
||||
border-right-color: rgba($plyr-menu-color, 0.8);
|
||||
border-left-color: transparent;
|
||||
}
|
||||
|
||||
&.plyr__tab-focus::after,
|
||||
&:hover::after {
|
||||
border-right-color: currentColor;
|
||||
}
|
||||
}
|
||||
|
||||
.plyr__menu__value {
|
||||
padding-left: 1rem;
|
||||
padding-right: calc(calc(var(--plyr-control-spacing, 10px) * 0.7) * 1.5);
|
||||
}
|
||||
|
||||
.plyr__control[role='menuitemradio'] {
|
||||
.plyr__menu__value {
|
||||
margin-right: auto;
|
||||
padding-left: 0;
|
||||
}
|
||||
&::before {
|
||||
margin-left: $plyr-control-spacing;
|
||||
margin-right: 0;
|
||||
}
|
||||
|
||||
&::after {
|
||||
right: 15px;
|
||||
left: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $enable-light-style {
|
||||
.light-style {
|
||||
.plyr__tooltip {
|
||||
line-height: light.$line-height-sm;
|
||||
font-size: light.$font-size-sm;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@if $enable-dark-style {
|
||||
.dark-style {
|
||||
.plyr__tooltip {
|
||||
line-height: dark.$line-height-sm;
|
||||
font-size: dark.$font-size-sm;
|
||||
}
|
||||
|
||||
.plyr--audio .plyr__controls {
|
||||
color: dark.$body-color;
|
||||
background-color: dark.$card-bg;
|
||||
}
|
||||
|
||||
.plyr--full-ui.plyr--audio input[type='range'] {
|
||||
&::-webkit-slider-runnable-track {
|
||||
background-color: dark.$gray-100;
|
||||
}
|
||||
|
||||
&::-moz-range-track {
|
||||
background-color: dark.$gray-100;
|
||||
}
|
||||
|
||||
&::-ms-track {
|
||||
background-color: dark.$gray-100;
|
||||
}
|
||||
}
|
||||
|
||||
.plyr--audio .plyr__progress__buffer {
|
||||
color: dark.$gray-200;
|
||||
}
|
||||
}
|
||||
}
|
10
resources/assets/vendor/libs/popper/popper.js
vendored
Normal file
10
resources/assets/vendor/libs/popper/popper.js
vendored
Normal file
@ -0,0 +1,10 @@
|
||||
import Popper from '@popperjs/core/dist/umd/popper.min';
|
||||
|
||||
// Required to enable animations on dropdowns/tooltips/popovers
|
||||
// Popper.Defaults.modifiers.computeStyle.gpuAcceleration = false
|
||||
|
||||
try {
|
||||
window.Popper = Popper;
|
||||
} catch (e) {}
|
||||
|
||||
export { Popper };
|
115
resources/assets/vendor/libs/quill/_mixins.scss
vendored
Normal file
115
resources/assets/vendor/libs/quill/_mixins.scss
vendored
Normal file
@ -0,0 +1,115 @@
|
||||
@mixin quill-generate-lists($indent) {
|
||||
$quill-list-types: (
|
||||
1: lower-alpha,
|
||||
2: lower-roman,
|
||||
3: decimal,
|
||||
4: lower-alpha,
|
||||
5: lower-roman,
|
||||
6: decimal,
|
||||
7: lower-alpha,
|
||||
8: lower-roman,
|
||||
9: decimal
|
||||
);
|
||||
|
||||
@for $i from 1 through 9 {
|
||||
ol li.ql-indent-#{$i} {
|
||||
counter-increment: list-#{$i};
|
||||
|
||||
@if $i < 9 {
|
||||
$lists: '';
|
||||
|
||||
@for $l from $i + 1 through 9 {
|
||||
$lists: '#{$lists} list-#{$l}';
|
||||
}
|
||||
|
||||
counter-reset: #{$lists};
|
||||
}
|
||||
|
||||
&::before {
|
||||
content: counter(list-#{$i}, map-get($quill-list-types, $i)) '. ';
|
||||
}
|
||||
}
|
||||
|
||||
.ql-indent-#{$i}:not(.ql-direction-rtl) {
|
||||
padding-left: $indent * $i;
|
||||
|
||||
[dir='rtl'] & {
|
||||
padding-right: $indent * $i;
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
li.ql-indent-#{$i}:not(.ql-direction-rtl) {
|
||||
padding-left: $indent * ($i + 1);
|
||||
|
||||
[dir='rtl'] & {
|
||||
padding-right: $indent * ($i + 1);
|
||||
padding-left: 0;
|
||||
}
|
||||
}
|
||||
.ql-indent-#{$i}.ql-direction-rtl.ql-align-right {
|
||||
padding-right: $indent * $i;
|
||||
|
||||
[dir='rtl'] & {
|
||||
padding-right: 0;
|
||||
padding-left: $indent * $i;
|
||||
}
|
||||
}
|
||||
li.ql-indent-#{$i}.ql-direction-rtl.ql-align-right {
|
||||
padding-right: $indent * ($i + 1);
|
||||
|
||||
[dir='rtl'] & {
|
||||
padding-right: 0;
|
||||
padding-left: $indent * ($i + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@mixin quill-theme($color) {
|
||||
.ql-snow.ql-toolbar,
|
||||
.ql-snow .ql-toolbar {
|
||||
button:hover,
|
||||
button:focus,
|
||||
button.ql-active,
|
||||
.ql-picker-label:hover,
|
||||
.ql-picker-label.ql-active,
|
||||
.ql-picker-item:hover,
|
||||
.ql-picker-item.ql-selected {
|
||||
color: $color !important;
|
||||
}
|
||||
|
||||
button:hover .ql-fill,
|
||||
button:focus .ql-fill,
|
||||
button.ql-active .ql-fill,
|
||||
.ql-picker-label:hover .ql-fill,
|
||||
.ql-picker-label.ql-active .ql-fill,
|
||||
.ql-picker-item:hover .ql-fill,
|
||||
.ql-picker-item.ql-selected .ql-fill,
|
||||
button:hover .ql-stroke.ql-fill,
|
||||
button:focus .ql-stroke.ql-fill,
|
||||
button.ql-active .ql-stroke.ql-fill,
|
||||
.ql-picker-label:hover .ql-stroke.ql-fill,
|
||||
.ql-picker-label.ql-active .ql-stroke.ql-fill,
|
||||
.ql-picker-item:hover .ql-stroke.ql-fill,
|
||||
.ql-picker-item.ql-selected .ql-stroke.ql-fill {
|
||||
fill: $color !important;
|
||||
}
|
||||
|
||||
button:hover .ql-stroke,
|
||||
button:focus .ql-stroke,
|
||||
button.ql-active .ql-stroke,
|
||||
.ql-picker-label:hover .ql-stroke,
|
||||
.ql-picker-label.ql-active .ql-stroke,
|
||||
.ql-picker-item:hover .ql-stroke,
|
||||
.ql-picker-item.ql-selected .ql-stroke,
|
||||
button:hover .ql-stroke-miter,
|
||||
button:focus .ql-stroke-miter,
|
||||
button.ql-active .ql-stroke-miter,
|
||||
.ql-picker-label:hover .ql-stroke-miter,
|
||||
.ql-picker-label.ql-active .ql-stroke-miter,
|
||||
.ql-picker-item:hover .ql-stroke-miter,
|
||||
.ql-picker-item.ql-selected .ql-stroke-miter {
|
||||
stroke: $color !important;
|
||||
}
|
||||
}
|
||||
}
|
1115
resources/assets/vendor/libs/quill/editor.scss
vendored
Normal file
1115
resources/assets/vendor/libs/quill/editor.scss
vendored
Normal file
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user