Release 4.0.0-rc4: Updated dependencies and refined mobile image fix
- Updated 8 npm packages to latest versions including TypeScript, Astro, and linting tools - Refined mobile image loading solution by removing JavaScript runtime fix in favor of HTML-level path generation - All images now use relative paths generated at build time for optimal compatibility 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
parent
a9e3a52379
commit
01aefe5ac0
22
CHANGELOG.md
22
CHANGELOG.md
|
@ -7,6 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
|
||||
## [Unreleased]
|
||||
|
||||
## [4.0.0-rc4] - 2025-07-10
|
||||
|
||||
### Updated
|
||||
- **Dependencies:** Updated 8 packages to latest versions
|
||||
- @rollup/plugin-typescript: 12.1.3 → 12.1.4
|
||||
- @typescript-eslint/eslint-plugin: 8.35.1 → 8.36.0
|
||||
- @typescript-eslint/parser: 8.35.1 → 8.36.0
|
||||
- astro: 5.10.0 → 5.11.0
|
||||
- eslint: 9.30.0 → 9.30.1
|
||||
- prettier: 3.5.3 → 3.6.2
|
||||
- rollup: 4.44.0 → 4.44.2
|
||||
- stylelint: 16.21.0 → 16.21.1
|
||||
|
||||
### Fixed
|
||||
- **Windows Build Compatibility:** Fixed npm scripts to work cross-platform by replacing Unix-specific shell commands with `shx`
|
||||
- Updated `copy-assets` script to use `shx mkdir` and `shx cp` commands
|
||||
|
@ -17,6 +30,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||
- Updated accessibility CSS to use `transition: none` and `opacity: 1` instead of `display: block`
|
||||
- Maintains WCAG 2.1 AA compliance while ensuring modals work properly in TeamViewer sessions
|
||||
- Added specific transform overrides for modal dialogs in reduced motion mode
|
||||
- **Mobile Sidebar Scrolling:** Fixed sidebar closing unexpectedly when scrolling on mobile devices
|
||||
- Updated touch event handling to differentiate between tap and scroll gestures
|
||||
- Added proper overflow properties to sidebar wrapper for mobile viewport
|
||||
- Sidebar now remains open during scroll operations on touch devices
|
||||
- Resolves issue where scrolling in sidebar would immediately close it on mobile browsers
|
||||
- **Image Path Resolution:** Fixed mobile image loading by using relative paths in HTML
|
||||
- **Root Cause:** Absolute paths like `/assets/img/user.jpg` caused 404 errors on mobile
|
||||
- **Solution:** Generate relative image paths in Astro components based on page location
|
||||
- **Result:** Images now load correctly on all devices and deployment scenarios
|
||||
|
||||
## [4.0.0-rc3] - 2025-06-24
|
||||
|
||||
|
|
|
@ -0,0 +1,106 @@
|
|||
# [AdminLTE - Bootstrap 5 Admin Dashboard](https://adminlte.io)
|
||||
|
||||
[](https://www.npmjs.com/package/admin-lte)
|
||||
[](https://packagist.org/packages/almasaeed2010/adminlte)
|
||||
[](https://www.jsdelivr.com/package/npm/admin-lte)
|
||||
[](https://discord.gg/jfdvjwFqfz)
|
||||
[](https://app.netlify.com/sites/adminlte-v4/deploys)
|
||||
|
||||
**AdminLTE** is a fully responsive administration template. Based on **[Bootstrap 5](https://getbootstrap.com/)** framework and also the JavaScript plugins.
|
||||
Highly customizable and easy to use. Fits many screen resolutions from small mobile devices to large desktops.
|
||||
|
||||
## What's New in v4.0.0-rc3
|
||||
|
||||
**Production Deployment & Cross-Platform Compatibility** - This release resolves critical production deployment issues:
|
||||
|
||||
- **Fixed Production Builds** - Resolved CSS/JS path issues, sidebar navigation, and image loading in all deployment scenarios
|
||||
- **Smart Path Resolution** - Automatic relative path calculation works for root deployment, sub-folders, and CDN hosting
|
||||
- **RTL CSS Fix** - Eliminated rtlcss interference with standard LTR production builds
|
||||
- **Updated Dependencies** - Bootstrap 5.3.7, Bootstrap Icons 1.13.1, OverlayScrollbars 2.11.0
|
||||
- **Zero Console Errors** - Fixed all CDN integrity mismatches and runtime issues
|
||||
- **FTP/Static Host Ready** - Perfect compatibility with traditional hosting and modern static platforms
|
||||
|
||||
**Key Improvements:**
|
||||
- ✅ Development and production environments now behave identically
|
||||
- ✅ Images, CSS, and JavaScript load correctly in any deployment structure
|
||||
- ✅ Sidebar navigation displays properly with badges and arrow indicators
|
||||
- ✅ All CDN resources load without console errors
|
||||
- ✅ Complete production build included in repository for easy deployment
|
||||
|
||||
See the [CHANGELOG.md](CHANGELOG.md) for complete details.
|
||||
|
||||
## Looking for Premium Templates?
|
||||
|
||||
AdminLTE.io just opened a new premium templates page. Hand picked to ensure the best quality and the most affordable
|
||||
prices. Visit <https://adminlte.io/premium> for more information.
|
||||
|
||||

|
||||
|
||||
**AdminLTE** has been carefully coded with clear comments in all of its JS, SCSS and HTML files.
|
||||
SCSS has been used to increase code customizability.
|
||||
|
||||
## Quick start
|
||||
|
||||
### Development
|
||||
|
||||
To start developing with AdminLTE:
|
||||
|
||||
1. **Install dependencies:** `npm install`
|
||||
2. **Start development server:** `npm start` *(opens browser at http://localhost:3000)*
|
||||
3. **Start coding!** Files auto-compile and refresh on changes
|
||||
|
||||
### Production Build
|
||||
|
||||
To build for production:
|
||||
|
||||
1. **Full production build:** `npm run production` *(includes linting and optimization)*
|
||||
2. **Quick build:** `npm run build` *(faster for development/testing)*
|
||||
|
||||
### Available Scripts
|
||||
|
||||
- `npm start` - Start development server with file watching
|
||||
- `npm run build` - Build all assets for development
|
||||
- `npm run production` - Full production build with linting and bundlewatch
|
||||
- `npm run lint` - Run all linters (JS, CSS, docs, lockfile)
|
||||
- `npm run css` - Build CSS only
|
||||
- `npm run js` - Build JavaScript only
|
||||
|
||||
## Browser Support
|
||||
|
||||
AdminLTE supports all modern browsers with the latest Bootstrap 5.3.7:
|
||||
- Chrome (latest)
|
||||
- Firefox (latest)
|
||||
- Safari (latest)
|
||||
- Edge (latest)
|
||||
|
||||
## Contributing
|
||||
|
||||
- Highly welcome.
|
||||
- For your extra reference check [AdminLTE v4 Contribution Guide](https://github.com/ColorlibHQ/AdminLTE#contributing)
|
||||
- First thing first, you should have bit knowledge about NodeJS.
|
||||
- Github Knowledge.
|
||||
- Install NodeJS LTS version.
|
||||
- Clone this Repository to your machine and change to `master` branch.
|
||||
- Go to Cloned Folder.
|
||||
- In cli/bash run `npm install` it will install dependency from `package.json`.
|
||||
- After installation completes, run `npm start`
|
||||
- Cool, Send your changes in PR to `master` branch.
|
||||
|
||||
## Sponsorship
|
||||
|
||||
Support AdminLTE development by becoming a sponsor.
|
||||
[Github Sponsors](https://github.com/sponsors/danny007in) or
|
||||
[PayPal](https://www.paypal.me/daniel007in)
|
||||
|
||||
## License
|
||||
|
||||
AdminLTE is an open source project by [AdminLTE.io](https://adminlte.io) that is licensed under [MIT](https://opensource.org/licenses/MIT).
|
||||
AdminLTE.io reserves the right to change the license of future releases.
|
||||
|
||||
## Image Credits
|
||||
|
||||
- [Pixeden](http://www.pixeden.com/psd-web-elements/flat-responsive-showcase-psd)
|
||||
- [Graphicsfuel](https://www.graphicsfuel.com/2013/02/13-high-resolution-blur-backgrounds/)
|
||||
- [Pickaface](https://pickaface.net/)
|
||||
- [Unsplash](https://unsplash.com/)
|
||||
- [Uifaces](http://uifaces.com/)
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1897,31 +1897,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--begin::Bootstrap Tooltips-->
|
||||
<script>
|
||||
const tooltipTriggerList = document.querySelectorAll('[data-bs-toggle="tooltip"]');
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -838,31 +838,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -821,10 +821,10 @@
|
|||
<span class="time"> <i class="bi bi-clock-fill"></i> 2 days ago </span>
|
||||
<h3 class="timeline-header"><a href="#">Mina Lee</a> uploaded new photos</h3>
|
||||
<div class="timeline-body">
|
||||
<img src="/assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="/assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="/assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="/assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="../assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="../assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="../assets/img/user1-128x128.jpg" alt="..." />
|
||||
<img src="../assets/img/user1-128x128.jpg" alt="..." />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -916,31 +916,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@charset "UTF-8";
|
||||
/*!
|
||||
* AdminLTE v4.0.0-beta3
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
@ -273,8 +273,10 @@ p {
|
|||
}
|
||||
|
||||
abbr[title] {
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
|
@ -2115,6 +2117,8 @@ progress {
|
|||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: var(--bs-body-color);
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--bs-body-bg);
|
||||
background-clip: padding-box;
|
||||
|
@ -2150,6 +2154,10 @@ progress {
|
|||
display: block;
|
||||
padding: 0;
|
||||
}
|
||||
.form-control::-moz-placeholder {
|
||||
color: var(--bs-secondary-color);
|
||||
opacity: 1;
|
||||
}
|
||||
.form-control::placeholder {
|
||||
color: var(--bs-secondary-color);
|
||||
opacity: 1;
|
||||
|
@ -2266,6 +2274,8 @@ textarea.form-control-lg {
|
|||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: var(--bs-body-color);
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--bs-body-bg);
|
||||
background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
|
||||
|
@ -2348,6 +2358,8 @@ textarea.form-control-lg {
|
|||
height: 1em;
|
||||
margin-top: 0.25em;
|
||||
vertical-align: top;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--bs-form-check-bg);
|
||||
background-image: var(--bs-form-check-bg-image);
|
||||
|
@ -2355,6 +2367,7 @@ textarea.form-control-lg {
|
|||
background-position: center;
|
||||
background-size: contain;
|
||||
border: var(--bs-border-width) solid var(--bs-border-color);
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
.form-check-input[type=checkbox] {
|
||||
|
@ -2453,6 +2466,8 @@ textarea.form-control-lg {
|
|||
width: 100%;
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
@ -2472,15 +2487,18 @@ textarea.form-control-lg {
|
|||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-top: -0.25rem;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
background-color: #0d6efd;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);
|
||||
-webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.form-range::-webkit-slider-thumb {
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
@ -2500,15 +2518,18 @@ textarea.form-control-lg {
|
|||
.form-range::-moz-range-thumb {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: #0d6efd;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);
|
||||
-moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.form-range::-moz-range-thumb {
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
@ -2572,10 +2593,17 @@ textarea.form-control-lg {
|
|||
.form-floating > .form-control-plaintext {
|
||||
padding: 1rem 0.75rem;
|
||||
}
|
||||
.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
.form-floating > .form-control::placeholder,
|
||||
.form-floating > .form-control-plaintext::placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
.form-floating > .form-control:not(:-moz-placeholder), .form-floating > .form-control-plaintext:not(:-moz-placeholder) {
|
||||
padding-top: 1.625rem;
|
||||
padding-bottom: 0.625rem;
|
||||
}
|
||||
.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
|
||||
.form-floating > .form-control-plaintext:focus,
|
||||
.form-floating > .form-control-plaintext:not(:placeholder-shown) {
|
||||
|
@ -2592,6 +2620,9 @@ textarea.form-control-lg {
|
|||
padding-bottom: 0.625rem;
|
||||
padding-left: 0.75rem;
|
||||
}
|
||||
.form-floating > .form-control:not(:-moz-placeholder) ~ label {
|
||||
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
||||
}
|
||||
.form-floating > .form-control:focus ~ label,
|
||||
.form-floating > .form-control:not(:placeholder-shown) ~ label,
|
||||
.form-floating > .form-control-plaintext ~ label,
|
||||
|
@ -2601,6 +2632,15 @@ textarea.form-control-lg {
|
|||
.form-floating > .form-control:-webkit-autofill ~ label {
|
||||
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
||||
}
|
||||
.form-floating > textarea:not(:-moz-placeholder) ~ label::after {
|
||||
position: absolute;
|
||||
inset: 1rem 0.375rem;
|
||||
z-index: -1;
|
||||
height: 1.5em;
|
||||
content: "";
|
||||
background-color: var(--bs-body-bg);
|
||||
border-radius: var(--bs-border-radius);
|
||||
}
|
||||
.form-floating > textarea:focus ~ label::after,
|
||||
.form-floating > textarea:not(:placeholder-shown) ~ label::after {
|
||||
position: absolute;
|
||||
|
@ -2920,6 +2960,8 @@ textarea.form-control-lg {
|
|||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
|
||||
border-radius: var(--bs-btn-border-radius);
|
||||
|
@ -5319,6 +5361,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.btn-close:disabled, .btn-close.disabled {
|
||||
pointer-events: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
opacity: var(--bs-btn-close-disabled-opacity);
|
||||
}
|
||||
|
@ -5374,6 +5418,7 @@ textarea.form-control-lg {
|
|||
--bs-toast-zindex: 1090;
|
||||
position: absolute;
|
||||
z-index: var(--bs-toast-zindex);
|
||||
width: -moz-max-content;
|
||||
width: max-content;
|
||||
max-width: 100%;
|
||||
pointer-events: none;
|
||||
|
@ -6766,13 +6811,16 @@ textarea.form-control-lg {
|
|||
}
|
||||
}
|
||||
.placeholder-wave {
|
||||
-webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
|
||||
mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
|
||||
-webkit-mask-size: 200% 100%;
|
||||
mask-size: 200% 100%;
|
||||
animation: placeholder-wave 2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes placeholder-wave {
|
||||
100% {
|
||||
-webkit-mask-position: -200% 0%;
|
||||
mask-position: -200% 0%;
|
||||
}
|
||||
}
|
||||
|
@ -7150,22 +7198,27 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.object-fit-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
|
||||
.object-fit-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
|
||||
.object-fit-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
|
||||
.object-fit-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
|
||||
.object-fit-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
|
||||
|
@ -8396,26 +8449,32 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.column-gap-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
|
||||
.column-gap-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
|
||||
.column-gap-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
|
||||
.column-gap-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
|
||||
.column-gap-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
|
||||
.column-gap-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
|
||||
|
@ -8980,14 +9039,20 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.user-select-all {
|
||||
-webkit-user-select: all !important;
|
||||
-moz-user-select: all !important;
|
||||
user-select: all !important;
|
||||
}
|
||||
|
||||
.user-select-auto {
|
||||
-webkit-user-select: auto !important;
|
||||
-moz-user-select: auto !important;
|
||||
user-select: auto !important;
|
||||
}
|
||||
|
||||
.user-select-none {
|
||||
-webkit-user-select: none !important;
|
||||
-moz-user-select: none !important;
|
||||
user-select: none !important;
|
||||
}
|
||||
|
||||
|
@ -9254,18 +9319,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-sm-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-sm-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-sm-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-sm-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-sm-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-sm-inline {
|
||||
|
@ -9881,21 +9951,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-sm-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-sm-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-sm-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-sm-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-sm-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-sm-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-sm-start {
|
||||
|
@ -9919,18 +9995,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-md-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-md-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-md-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-md-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-md-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-md-inline {
|
||||
|
@ -10546,21 +10627,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-md-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-md-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-md-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-md-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-md-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-md-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-md-start {
|
||||
|
@ -10584,18 +10671,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-lg-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-lg-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-lg-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-lg-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-lg-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-lg-inline {
|
||||
|
@ -11211,21 +11303,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-lg-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-lg-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-lg-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-lg-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-lg-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-lg-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-lg-start {
|
||||
|
@ -11249,18 +11347,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-xl-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-xl-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-xl-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-xl-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-xl-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-xl-inline {
|
||||
|
@ -11876,21 +11979,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-xl-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-xl-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-xl-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-xl-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-xl-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-xl-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-xl-start {
|
||||
|
@ -11914,18 +12023,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-xxl-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-xxl-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-xxl-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-xxl-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-xxl-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-xxl-inline {
|
||||
|
@ -12541,21 +12655,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-xxl-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-xxl-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-xxl-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-xxl-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-xxl-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-xxl-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-xxl-start {
|
||||
|
@ -13183,6 +13303,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13213,6 +13335,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13251,6 +13375,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-md.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13281,6 +13407,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13319,6 +13447,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13349,6 +13479,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13387,6 +13519,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13417,6 +13551,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13455,6 +13591,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13485,6 +13623,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13522,6 +13662,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13550,6 +13692,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -15446,4 +15590,4 @@ fieldset legend {
|
|||
}
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=adminlte.css.map */
|
||||
/*# sourceMappingURL=adminlte.css.map */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
|||
@charset "UTF-8";
|
||||
/*!
|
||||
* AdminLTE v4.0.0-beta3
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
@ -13277,6 +13277,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13307,6 +13309,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13345,6 +13349,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-md.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13375,6 +13381,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13413,6 +13421,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13443,6 +13453,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13481,6 +13493,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13511,6 +13525,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13549,6 +13565,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13579,6 +13597,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13616,6 +13636,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13644,6 +13666,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -15539,5 +15563,4 @@ fieldset legend {
|
|||
content: " (" attr(href) ")";
|
||||
}
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=adminlte.rtl.css.map */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -853,31 +853,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1096,31 +1096,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<script>
|
||||
// Color Mode Toggler
|
||||
(() => {
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -813,7 +813,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -839,7 +839,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -865,7 +865,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -919,7 +919,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -929,7 +929,7 @@
|
|||
<!-- User image -->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -1222,31 +1222,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -951,31 +951,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -835,31 +835,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -908,31 +908,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -783,7 +783,7 @@
|
|||
tabindex="0"
|
||||
data-language="html"
|
||||
><code><span class="line"><span style="color:#808080"><</span><span style="color:#569CD6">script</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> src</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-beta3/dist/js/adminlte.min.js"</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> src</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-rc3/dist/js/adminlte.min.js"</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> crossorigin</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"anonymous"</span></span>
|
||||
<span class="line"><span style="color:#808080">></</span><span style="color:#569CD6">script</span><span style="color:#808080">></span></span></code></pre>
|
||||
<pre
|
||||
|
@ -793,7 +793,7 @@
|
|||
data-language="html"
|
||||
><code><span class="line"><span style="color:#808080"><</span><span style="color:#569CD6">link</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> rel</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"stylesheet"</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> href</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-beta3/dist/css/adminlte.min.css"</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> href</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-rc3/dist/css/adminlte.min.css"</span></span>
|
||||
<span class="line"><span style="color:#9CDCFE"> crossorigin</span><span style="color:#D4D4D4">=</span><span style="color:#CE9178">"anonymous"</span></span>
|
||||
<span class="line"><span style="color:#808080">/></span></span></code></pre>
|
||||
<h3 id="using-the-command-line">Using The Command Line:</h3>
|
||||
|
@ -809,21 +809,21 @@
|
|||
style="background-color: #1e1e1e; color: #d4d4d4; overflow-x: auto"
|
||||
tabindex="0"
|
||||
data-language="bash"
|
||||
><code><span class="line"><span style="color:#DCDCAA">npm</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> admin-lte@4.0.0-beta3</span><span style="color:#569CD6"> --save</span></span></code></pre>
|
||||
><code><span class="line"><span style="color:#DCDCAA">npm</span><span style="color:#CE9178"> install</span><span style="color:#CE9178"> admin-lte@4.0.0-rc3</span><span style="color:#569CD6"> --save</span></span></code></pre>
|
||||
<h4 id="via-yarn">Via Yarn</h4>
|
||||
<pre
|
||||
class="astro-code dark-plus"
|
||||
style="background-color: #1e1e1e; color: #d4d4d4; overflow-x: auto"
|
||||
tabindex="0"
|
||||
data-language="bash"
|
||||
><code><span class="line"><span style="color:#DCDCAA">yarn</span><span style="color:#CE9178"> add</span><span style="color:#CE9178"> admin-lte@4.0.0-beta3</span></span></code></pre>
|
||||
><code><span class="line"><span style="color:#DCDCAA">yarn</span><span style="color:#CE9178"> add</span><span style="color:#CE9178"> admin-lte@4.0.0-rc3</span></span></code></pre>
|
||||
<h4 id="via-composer">Via Composer</h4>
|
||||
<pre
|
||||
class="astro-code dark-plus"
|
||||
style="background-color: #1e1e1e; color: #d4d4d4; overflow-x: auto"
|
||||
tabindex="0"
|
||||
data-language="bash"
|
||||
><code><span class="line"><span style="color:#DCDCAA">composer</span><span style="color:#CE9178"> require</span><span style="color:#CE9178"> "almasaeed2010/adminlte=4.0.0-beta3"</span></span></code></pre>
|
||||
><code><span class="line"><span style="color:#DCDCAA">composer</span><span style="color:#CE9178"> require</span><span style="color:#CE9178"> "almasaeed2010/adminlte=4.0.0-rc3"</span></span></code></pre>
|
||||
<h4 id="via-git">Via Git</h4>
|
||||
<pre
|
||||
class="astro-code dark-plus"
|
||||
|
@ -892,31 +892,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -849,31 +849,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -859,31 +859,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -833,31 +833,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -65,7 +65,7 @@
|
|||
<div class="lockscreen-name">John Doe</div>
|
||||
<div class="lockscreen-item">
|
||||
<div class="lockscreen-image">
|
||||
<img src="/assets/img/user1-128x128.jpg" alt="User Image" />
|
||||
<img src="../assets/img/user1-128x128.jpg" alt="User Image" />
|
||||
</div>
|
||||
<form class="lockscreen-credentials">
|
||||
<div class="input-group">
|
||||
|
@ -133,31 +133,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
</html>
|
||||
|
|
|
@ -160,31 +160,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -150,31 +150,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -169,31 +169,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -155,31 +155,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1253,31 +1253,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -678,31 +678,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
const appSidebar = document.querySelector('.app-sidebar');
|
||||
|
|
|
@ -110,7 +110,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -136,7 +136,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="./assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -162,7 +162,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -227,7 +227,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -237,7 +237,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -281,7 +281,7 @@
|
|||
<a href="./index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="./assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -936,7 +936,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -955,7 +955,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -972,7 +972,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -991,7 +991,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -1008,7 +1008,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1026,7 +1026,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user7-128x128.jpg"
|
||||
src="./assets/img/user7-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1044,7 +1044,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1062,7 +1062,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user5-128x128.jpg"
|
||||
src="./assets/img/user5-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1080,7 +1080,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user6-128x128.jpg"
|
||||
src="./assets/img/user6-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1098,7 +1098,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="./assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1239,31 +1239,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!-- OPTIONAL SCRIPTS -->
|
||||
<!-- sortablejs -->
|
||||
<script
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -127,7 +127,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="./assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -153,7 +153,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -218,7 +218,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -228,7 +228,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -272,7 +272,7 @@
|
|||
<a href="./index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="./assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1001,7 +1001,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -1022,7 +1022,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -1039,7 +1039,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -1060,7 +1060,7 @@
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -1077,7 +1077,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1097,7 +1097,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user7-128x128.jpg"
|
||||
src="./assets/img/user7-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1115,7 +1115,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1133,7 +1133,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user5-128x128.jpg"
|
||||
src="./assets/img/user5-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1151,7 +1151,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user6-128x128.jpg"
|
||||
src="./assets/img/user6-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1169,7 +1169,7 @@
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="./assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
/>
|
||||
<div class="contacts-list-info">
|
||||
|
@ -1235,7 +1235,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1249,7 +1249,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1263,7 +1263,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user7-128x128.jpg"
|
||||
src="./assets/img/user7-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1277,7 +1277,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user6-128x128.jpg"
|
||||
src="./assets/img/user6-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1291,7 +1291,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1305,7 +1305,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user5-128x128.jpg"
|
||||
src="./assets/img/user5-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1319,7 +1319,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user4-128x128.jpg"
|
||||
src="./assets/img/user4-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1333,7 +1333,7 @@
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1605,7 +1605,7 @@
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1622,7 +1622,7 @@
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1641,7 +1641,7 @@
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1660,7 +1660,7 @@
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1748,31 +1748,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!-- OPTIONAL SCRIPTS -->
|
||||
<!-- apexcharts -->
|
||||
<script
|
||||
|
|
|
@ -101,7 +101,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="./assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -127,7 +127,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="./assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -153,7 +153,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="./assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -218,7 +218,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -228,7 +228,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="./assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -272,7 +272,7 @@
|
|||
<a href="./index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="./assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -813,7 +813,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -834,7 +834,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -855,7 +855,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -876,7 +876,7 @@
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src="./assets/img/default-150x150.png"
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -1094,31 +1094,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!-- OPTIONAL SCRIPTS -->
|
||||
<!-- apexcharts -->
|
||||
<script
|
||||
|
|
|
@ -682,12 +682,21 @@
|
|||
const sidebarOverlay = document.createElement('div');
|
||||
sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY;
|
||||
document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay);
|
||||
sidebarOverlay.addEventListener('touchstart', event => {
|
||||
event.preventDefault();
|
||||
const target = event.currentTarget;
|
||||
const data = new PushMenu(target, Defaults);
|
||||
data.collapse();
|
||||
let isTouchMoved = false;
|
||||
sidebarOverlay.addEventListener('touchstart', () => {
|
||||
isTouchMoved = false;
|
||||
}, { passive: true });
|
||||
sidebarOverlay.addEventListener('touchmove', () => {
|
||||
isTouchMoved = true;
|
||||
}, { passive: true });
|
||||
sidebarOverlay.addEventListener('touchend', event => {
|
||||
if (!isTouchMoved) {
|
||||
event.preventDefault();
|
||||
const target = event.currentTarget;
|
||||
const data = new PushMenu(target, Defaults);
|
||||
data.collapse();
|
||||
}
|
||||
}, { passive: false });
|
||||
sidebarOverlay.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
const target = event.currentTarget;
|
||||
|
@ -1122,7 +1131,7 @@
|
|||
};
|
||||
|
||||
/**
|
||||
* AdminLTE v4.0.0-rc1
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -850,31 +850,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -98,7 +98,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -124,7 +124,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -150,7 +150,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -215,7 +215,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -225,7 +225,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -269,7 +269,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -852,31 +852,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -849,31 +849,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -849,31 +849,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -850,31 +850,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -882,31 +882,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -850,31 +850,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,14 +267,14 @@
|
|||
<a href="../index.html" class="brand-link logo-switch">
|
||||
<!--begin::Brand Image Small-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo Small"
|
||||
class="brand-image-xl logo-xs opacity-75 shadow"
|
||||
/>
|
||||
<!--end::Brand Image Small-->
|
||||
<!--begin::Brand Image Large-->
|
||||
<img
|
||||
src="/assets/img/AdminLTEFullLogo.png"
|
||||
src="../assets/img/AdminLTEFullLogo.png"
|
||||
alt="AdminLTE Logo Large"
|
||||
class="brand-image-xs logo-xl opacity-75"
|
||||
/>
|
||||
|
@ -487,31 +487,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -850,31 +850,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -849,31 +849,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1100,31 +1100,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1055,31 +1055,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -1073,31 +1073,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -96,7 +96,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src="../assets/img/user1-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -122,7 +122,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src="../assets/img/user8-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -148,7 +148,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src="../assets/img/user3-128x128.jpg"
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -223,7 +223,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src="../assets/img/user2-160x160.jpg"
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -267,7 +267,7 @@
|
|||
<a href="../index.html" class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src="../assets/img/AdminLTELogo.png"
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
@ -935,31 +935,7 @@
|
|||
}
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure--><!-- Image path runtime fix -->
|
||||
<script>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach((img) => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
<!--end::Script-->
|
||||
</body>
|
||||
<!--end::Body-->
|
||||
|
|
|
@ -1102,10 +1102,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@eslint/js": {
|
||||
"version": "9.30.0",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.0.tgz",
|
||||
"integrity": "sha512-Wzw3wQwPvc9sHM+NjakWTcPx11mbZyiYHuwWa/QfZ7cIRX7WK54PSk7bdyXDaoaopUcMatv1zaQvOAAO8hCdww==",
|
||||
"version": "9.30.1",
|
||||
"resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.30.1.tgz",
|
||||
"integrity": "sha512-zXhuECFlyep42KZUhWjfvsmXGX39W8K8LFb8AWXM9gSV9dQB+MrJGLKvW6Zw0Ggnbpw0VHTtrhFXYe3Gym18jg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -2210,9 +2211,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@rollup/plugin-typescript": {
|
||||
"version": "12.1.3",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.3.tgz",
|
||||
"integrity": "sha512-gAx0AYwkyjqOw4JrZV34N/abvAobLhczyLkZ7FVL2UXPrO4zv8oqTfYT3DLBRan1EXasp4SUuEJXqPTk0gnJzw==",
|
||||
"version": "12.1.4",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.4.tgz",
|
||||
"integrity": "sha512-s5Hx+EtN60LMlDBvl5f04bEiFZmAepk27Q+mr85L/00zPDn1jtzlTV6FWn81MaIwqfWzKxmOJrBWHU6vtQyedQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -2277,9 +2278,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm-eabi": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.0.tgz",
|
||||
"integrity": "sha512-xEiEE5oDW6tK4jXCAyliuntGR+amEMO7HLtdSshVuhFnKTYoeYMyXQK7pLouAJJj5KHdwdn87bfHAR2nSdNAUA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.44.2.tgz",
|
||||
"integrity": "sha512-g0dF8P1e2QYPOj1gu7s/3LVP6kze9A7m6x0BZ9iTdXK8N5c2V7cpBKHV3/9A4Zd8xxavdhK0t4PnqjkqVmUc9Q==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
|
@ -2291,9 +2292,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-android-arm64": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.0.tgz",
|
||||
"integrity": "sha512-uNSk/TgvMbskcHxXYHzqwiyBlJ/lGcv8DaUfcnNwict8ba9GTTNxfn3/FAoFZYgkaXXAdrAA+SLyKplyi349Jw==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.44.2.tgz",
|
||||
"integrity": "sha512-Yt5MKrOosSbSaAK5Y4J+vSiID57sOvpBNBR6K7xAaQvk3MkcNVV0f9fE20T+41WYN8hDn6SGFlFrKudtx4EoxA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -2305,9 +2306,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-arm64": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.0.tgz",
|
||||
"integrity": "sha512-VGF3wy0Eq1gcEIkSCr8Ke03CWT+Pm2yveKLaDvq51pPpZza3JX/ClxXOCmTYYq3us5MvEuNRTaeyFThCKRQhOA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.44.2.tgz",
|
||||
"integrity": "sha512-EsnFot9ZieM35YNA26nhbLTJBHD0jTwWpPwmRVDzjylQT6gkar+zenfb8mHxWpRrbn+WytRRjE0WKsfaxBkVUA==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -2319,9 +2320,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-darwin-x64": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.0.tgz",
|
||||
"integrity": "sha512-fBkyrDhwquRvrTxSGH/qqt3/T0w5Rg0L7ZIDypvBPc1/gzjJle6acCpZ36blwuwcKD/u6oCE/sRWlUAcxLWQbQ==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.44.2.tgz",
|
||||
"integrity": "sha512-dv/t1t1RkCvJdWWxQ2lWOO+b7cMsVw5YFaS04oHpZRWehI1h0fV1gF4wgGCTyQHHjJDfbNpwOi6PXEafRBBezw==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -2333,9 +2334,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-arm64": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.0.tgz",
|
||||
"integrity": "sha512-u5AZzdQJYJXByB8giQ+r4VyfZP+walV+xHWdaFx/1VxsOn6eWJhK2Vl2eElvDJFKQBo/hcYIBg/jaKS8ZmKeNQ==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.44.2.tgz",
|
||||
"integrity": "sha512-W4tt4BLorKND4qeHElxDoim0+BsprFTwb+vriVQnFFtT/P6v/xO5I99xvYnVzKWrK6j7Hb0yp3x7V5LUbaeOMg==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -2347,9 +2348,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-freebsd-x64": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.0.tgz",
|
||||
"integrity": "sha512-qC0kS48c/s3EtdArkimctY7h3nHicQeEUdjJzYVJYR3ct3kWSafmn6jkNCA8InbUdge6PVx6keqjk5lVGJf99g==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.44.2.tgz",
|
||||
"integrity": "sha512-tdT1PHopokkuBVyHjvYehnIe20fxibxFCEhQP/96MDSOcyjM/shlTkZZLOufV3qO6/FQOSiJTBebhVc12JyPTA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -2361,9 +2362,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-gnueabihf": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.0.tgz",
|
||||
"integrity": "sha512-x+e/Z9H0RAWckn4V2OZZl6EmV0L2diuX3QB0uM1r6BvhUIv6xBPL5mrAX2E3e8N8rEHVPwFfz/ETUbV4oW9+lQ==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.44.2.tgz",
|
||||
"integrity": "sha512-+xmiDGGaSfIIOXMzkhJ++Oa0Gwvl9oXUeIiwarsdRXSe27HUIvjbSIpPxvnNsRebsNdUo7uAiQVgBD1hVriwSQ==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
|
@ -2375,9 +2376,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm-musleabihf": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.0.tgz",
|
||||
"integrity": "sha512-1exwiBFf4PU/8HvI8s80icyCcnAIB86MCBdst51fwFmH5dyeoWVPVgmQPcKrMtBQ0W5pAs7jBCWuRXgEpRzSCg==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.44.2.tgz",
|
||||
"integrity": "sha512-bDHvhzOfORk3wt8yxIra8N4k/N0MnKInCW5OGZaeDYa/hMrdPaJzo7CSkjKZqX4JFUWjUGm88lI6QJLCM7lDrA==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
|
@ -2389,9 +2390,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-gnu": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.0.tgz",
|
||||
"integrity": "sha512-ZTR2mxBHb4tK4wGf9b8SYg0Y6KQPjGpR4UWwTFdnmjB4qRtoATZ5dWn3KsDwGa5Z2ZBOE7K52L36J9LueKBdOQ==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.44.2.tgz",
|
||||
"integrity": "sha512-NMsDEsDiYghTbeZWEGnNi4F0hSbGnsuOG+VnNvxkKg0IGDvFh7UVpM/14mnMwxRxUf9AdAVJgHPvKXf6FpMB7A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -2403,9 +2404,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-arm64-musl": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.0.tgz",
|
||||
"integrity": "sha512-GFWfAhVhWGd4r6UxmnKRTBwP1qmModHtd5gkraeW2G490BpFOZkFtem8yuX2NyafIP/mGpRJgTJ2PwohQkUY/Q==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.44.2.tgz",
|
||||
"integrity": "sha512-lb5bxXnxXglVq+7imxykIp5xMq+idehfl+wOgiiix0191av84OqbjUED+PRC5OA8eFJYj5xAGcpAZ0pF2MnW+A==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -2417,9 +2418,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-loongarch64-gnu": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.0.tgz",
|
||||
"integrity": "sha512-xw+FTGcov/ejdusVOqKgMGW3c4+AgqrfvzWEVXcNP6zq2ue+lsYUgJ+5Rtn/OTJf7e2CbgTFvzLW2j0YAtj0Gg==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.44.2.tgz",
|
||||
"integrity": "sha512-Yl5Rdpf9pIc4GW1PmkUGHdMtbx0fBLE1//SxDmuf3X0dUC57+zMepow2LK0V21661cjXdTn8hO2tXDdAWAqE5g==",
|
||||
"cpu": [
|
||||
"loong64"
|
||||
],
|
||||
|
@ -2431,9 +2432,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-powerpc64le-gnu": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.0.tgz",
|
||||
"integrity": "sha512-bKGibTr9IdF0zr21kMvkZT4K6NV+jjRnBoVMt2uNMG0BYWm3qOVmYnXKzx7UhwrviKnmK46IKMByMgvpdQlyJQ==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.44.2.tgz",
|
||||
"integrity": "sha512-03vUDH+w55s680YYryyr78jsO1RWU9ocRMaeV2vMniJJW/6HhoTBwyyiiTPVHNWLnhsnwcQ0oH3S9JSBEKuyqw==",
|
||||
"cpu": [
|
||||
"ppc64"
|
||||
],
|
||||
|
@ -2445,9 +2446,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-gnu": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.0.tgz",
|
||||
"integrity": "sha512-vV3cL48U5kDaKZtXrti12YRa7TyxgKAIDoYdqSIOMOFBXqFj2XbChHAtXquEn2+n78ciFgr4KIqEbydEGPxXgA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.44.2.tgz",
|
||||
"integrity": "sha512-iYtAqBg5eEMG4dEfVlkqo05xMOk6y/JXIToRca2bAWuqjrJYJlx/I7+Z+4hSrsWU8GdJDFPL4ktV3dy4yBSrzg==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
|
@ -2459,9 +2460,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-riscv64-musl": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.0.tgz",
|
||||
"integrity": "sha512-TDKO8KlHJuvTEdfw5YYFBjhFts2TR0VpZsnLLSYmB7AaohJhM8ctDSdDnUGq77hUh4m/djRafw+9zQpkOanE2Q==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.44.2.tgz",
|
||||
"integrity": "sha512-e6vEbgaaqz2yEHqtkPXa28fFuBGmUJ0N2dOJK8YUfijejInt9gfCSA7YDdJ4nYlv67JfP3+PSWFX4IVw/xRIPg==",
|
||||
"cpu": [
|
||||
"riscv64"
|
||||
],
|
||||
|
@ -2473,9 +2474,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-s390x-gnu": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.0.tgz",
|
||||
"integrity": "sha512-8541GEyktXaw4lvnGp9m84KENcxInhAt6vPWJ9RodsB/iGjHoMB2Pp5MVBCiKIRxrxzJhGCxmNzdu+oDQ7kwRA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.44.2.tgz",
|
||||
"integrity": "sha512-evFOtkmVdY3udE+0QKrV5wBx7bKI0iHz5yEVx5WqDJkxp9YQefy4Mpx3RajIVcM6o7jxTvVd/qpC1IXUhGc1Mw==",
|
||||
"cpu": [
|
||||
"s390x"
|
||||
],
|
||||
|
@ -2487,9 +2488,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-gnu": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.0.tgz",
|
||||
"integrity": "sha512-iUVJc3c0o8l9Sa/qlDL2Z9UP92UZZW1+EmQ4xfjTc1akr0iUFZNfxrXJ/R1T90h/ILm9iXEY6+iPrmYB3pXKjw==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.44.2.tgz",
|
||||
"integrity": "sha512-/bXb0bEsWMyEkIsUL2Yt5nFB5naLAwyOWMEviQfQY1x3l5WsLKgvZf66TM7UTfED6erckUVUJQ/jJ1FSpm3pRQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -2501,9 +2502,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-linux-x64-musl": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.0.tgz",
|
||||
"integrity": "sha512-PQUobbhLTQT5yz/SPg116VJBgz+XOtXt8D1ck+sfJJhuEsMj2jSej5yTdp8CvWBSceu+WW+ibVL6dm0ptG5fcA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.44.2.tgz",
|
||||
"integrity": "sha512-3D3OB1vSSBXmkGEZR27uiMRNiwN08/RVAcBKwhUYPaiZ8bcvdeEwWPvbnXvvXHY+A/7xluzcN+kaiOFNiOZwWg==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -2515,9 +2516,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-arm64-msvc": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.0.tgz",
|
||||
"integrity": "sha512-M0CpcHf8TWn+4oTxJfh7LQuTuaYeXGbk0eageVjQCKzYLsajWS/lFC94qlRqOlyC2KvRT90ZrfXULYmukeIy7w==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.44.2.tgz",
|
||||
"integrity": "sha512-VfU0fsMK+rwdK8mwODqYeM2hDrF2WiHaSmCBrS7gColkQft95/8tphyzv2EupVxn3iE0FI78wzffoULH1G+dkw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
|
@ -2529,9 +2530,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-ia32-msvc": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.0.tgz",
|
||||
"integrity": "sha512-3XJ0NQtMAXTWFW8FqZKcw3gOQwBtVWP/u8TpHP3CRPXD7Pd6s8lLdH3sHWh8vqKCyyiI8xW5ltJScQmBU9j7WA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.44.2.tgz",
|
||||
"integrity": "sha512-+qMUrkbUurpE6DVRjiJCNGZBGo9xM4Y0FXU5cjgudWqIBWbcLkjE3XprJUsOFgC6xjBClwVa9k6O3A7K3vxb5Q==",
|
||||
"cpu": [
|
||||
"ia32"
|
||||
],
|
||||
|
@ -2543,9 +2544,9 @@
|
|||
]
|
||||
},
|
||||
"node_modules/@rollup/rollup-win32-x64-msvc": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.0.tgz",
|
||||
"integrity": "sha512-Q2Mgwt+D8hd5FIPUuPDsvPR7Bguza6yTkJxspDGkZj7tBRn2y4KSWYuIXpftFSjBra76TbKerCV7rgFPQrn+wQ==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.44.2.tgz",
|
||||
"integrity": "sha512-3+QZROYfJ25PDcxFF66UEk8jGWigHJeecZILvkPkyQN7oc5BvFo4YEXFkOs154j3FTMp9mn9Ky8RCOwastduEA==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
|
@ -2851,16 +2852,17 @@
|
|||
"dev": true
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.35.1.tgz",
|
||||
"integrity": "sha512-9XNTlo7P7RJxbVeICaIIIEipqxLKguyh+3UbXuT2XQuFp6d8VOeDEGuz5IiX0dgZo8CiI6aOFLg4e8cF71SFVg==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.36.0.tgz",
|
||||
"integrity": "sha512-lZNihHUVB6ZZiPBNgOQGSxUASI7UJWhT8nHyUGCnaQ28XFCw98IfrMCG3rUl1uwUWoAvodJQby2KTs79UTcrAg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/regexpp": "^4.10.0",
|
||||
"@typescript-eslint/scope-manager": "8.35.1",
|
||||
"@typescript-eslint/type-utils": "8.35.1",
|
||||
"@typescript-eslint/utils": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1",
|
||||
"@typescript-eslint/scope-manager": "8.36.0",
|
||||
"@typescript-eslint/type-utils": "8.36.0",
|
||||
"@typescript-eslint/utils": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0",
|
||||
"graphemer": "^1.4.0",
|
||||
"ignore": "^7.0.0",
|
||||
"natural-compare": "^1.4.0",
|
||||
|
@ -2874,19 +2876,20 @@
|
|||
"url": "https://opencollective.com/typescript-eslint"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@typescript-eslint/parser": "^8.35.1",
|
||||
"@typescript-eslint/parser": "^8.36.0",
|
||||
"eslint": "^8.57.0 || ^9.0.0",
|
||||
"typescript": ">=4.8.4 <5.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/project-service": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
|
||||
"integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz",
|
||||
"integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/tsconfig-utils": "^8.35.1",
|
||||
"@typescript-eslint/types": "^8.35.1",
|
||||
"@typescript-eslint/tsconfig-utils": "^8.36.0",
|
||||
"@typescript-eslint/types": "^8.36.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -2901,13 +2904,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
|
||||
"integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz",
|
||||
"integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1"
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
|
@ -2918,10 +2922,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/tsconfig-utils": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
|
||||
"integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz",
|
||||
"integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -2934,10 +2939,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/types": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
|
||||
"integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz",
|
||||
"integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -2947,15 +2953,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
|
||||
"integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz",
|
||||
"integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/project-service": "8.35.1",
|
||||
"@typescript-eslint/tsconfig-utils": "8.35.1",
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1",
|
||||
"@typescript-eslint/project-service": "8.36.0",
|
||||
"@typescript-eslint/tsconfig-utils": "8.36.0",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.2",
|
||||
"is-glob": "^4.0.3",
|
||||
|
@ -2975,15 +2982,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/utils": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz",
|
||||
"integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz",
|
||||
"integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.7.0",
|
||||
"@typescript-eslint/scope-manager": "8.35.1",
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/typescript-estree": "8.35.1"
|
||||
"@typescript-eslint/scope-manager": "8.36.0",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/typescript-estree": "8.36.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
|
@ -2998,12 +3006,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/eslint-plugin/node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
|
||||
"integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz",
|
||||
"integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"eslint-visitor-keys": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3019,6 +3028,7 @@
|
|||
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
|
||||
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3037,15 +3047,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.35.1.tgz",
|
||||
"integrity": "sha512-3MyiDfrfLeK06bi/g9DqJxP5pV74LNv4rFTyvGDmT3x2p1yp1lOd+qYZfiRPIOf/oON+WRZR5wxxuF85qOar+w==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.36.0.tgz",
|
||||
"integrity": "sha512-FuYgkHwZLuPbZjQHzJXrtXreJdFMKl16BFYyRrLxDhWr6Qr7Kbcu2s1Yhu8tsiMXw1S0W1pjfFfYEt+R604s+Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/scope-manager": "8.35.1",
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/typescript-estree": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1",
|
||||
"@typescript-eslint/scope-manager": "8.36.0",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/typescript-estree": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3061,13 +3072,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/project-service": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
|
||||
"integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz",
|
||||
"integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/tsconfig-utils": "^8.35.1",
|
||||
"@typescript-eslint/types": "^8.35.1",
|
||||
"@typescript-eslint/tsconfig-utils": "^8.36.0",
|
||||
"@typescript-eslint/types": "^8.36.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3082,13 +3094,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
|
||||
"integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz",
|
||||
"integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1"
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
|
@ -3099,10 +3112,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/tsconfig-utils": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
|
||||
"integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz",
|
||||
"integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3115,10 +3129,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/types": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
|
||||
"integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz",
|
||||
"integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3128,15 +3143,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
|
||||
"integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz",
|
||||
"integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/project-service": "8.35.1",
|
||||
"@typescript-eslint/tsconfig-utils": "8.35.1",
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1",
|
||||
"@typescript-eslint/project-service": "8.36.0",
|
||||
"@typescript-eslint/tsconfig-utils": "8.36.0",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.2",
|
||||
"is-glob": "^4.0.3",
|
||||
|
@ -3156,12 +3172,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/parser/node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
|
||||
"integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz",
|
||||
"integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"eslint-visitor-keys": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3177,6 +3194,7 @@
|
|||
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
|
||||
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3242,13 +3260,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.35.1.tgz",
|
||||
"integrity": "sha512-HOrUBlfVRz5W2LIKpXzZoy6VTZzMu2n8q9C2V/cFngIC5U1nStJgv0tMV4sZPzdf4wQm9/ToWUFPMN9Vq9VJQQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.36.0.tgz",
|
||||
"integrity": "sha512-5aaGYG8cVDd6cxfk/ynpYzxBRZJk7w/ymto6uiyUFtdCozQIsQWh7M28/6r57Fwkbweng8qAzoMCPwSJfWlmsg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/typescript-estree": "8.35.1",
|
||||
"@typescript-eslint/utils": "8.35.1",
|
||||
"@typescript-eslint/typescript-estree": "8.36.0",
|
||||
"@typescript-eslint/utils": "8.36.0",
|
||||
"debug": "^4.3.4",
|
||||
"ts-api-utils": "^2.1.0"
|
||||
},
|
||||
|
@ -3265,13 +3284,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/project-service": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.35.1.tgz",
|
||||
"integrity": "sha512-VYxn/5LOpVxADAuP3NrnxxHYfzVtQzLKeldIhDhzC8UHaiQvYlXvKuVho1qLduFbJjjy5U5bkGwa3rUGUb1Q6Q==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.36.0.tgz",
|
||||
"integrity": "sha512-JAhQFIABkWccQYeLMrHadu/fhpzmSQ1F1KXkpzqiVxA/iYI6UnRt2trqXHt1sYEcw1mxLnB9rKMsOxXPxowN/g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/tsconfig-utils": "^8.35.1",
|
||||
"@typescript-eslint/types": "^8.35.1",
|
||||
"@typescript-eslint/tsconfig-utils": "^8.36.0",
|
||||
"@typescript-eslint/types": "^8.36.0",
|
||||
"debug": "^4.3.4"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3286,13 +3306,14 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/scope-manager": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.35.1.tgz",
|
||||
"integrity": "sha512-s/Bpd4i7ht2934nG+UoSPlYXd08KYz3bmjLEb7Ye1UVob0d1ENiT3lY8bsCmik4RqfSbPw9xJJHbugpPpP5JUg==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.36.0.tgz",
|
||||
"integrity": "sha512-wCnapIKnDkN62fYtTGv2+RY8FlnBYA3tNm0fm91kc2BjPhV2vIjwwozJ7LToaLAyb1ca8BxrS7vT+Pvvf7RvqA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1"
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
|
@ -3303,10 +3324,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/tsconfig-utils": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.35.1.tgz",
|
||||
"integrity": "sha512-K5/U9VmT9dTHoNowWZpz+/TObS3xqC5h0xAIjXPw+MNcKV9qg6eSatEnmeAwkjHijhACH0/N7bkhKvbt1+DXWQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.36.0.tgz",
|
||||
"integrity": "sha512-Nhh3TIEgN18mNbdXpd5Q8mSCBnrZQeY9V7Ca3dqYvNDStNIGRmJA6dmrIPMJ0kow3C7gcQbpsG2rPzy1Ks/AnA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3319,10 +3341,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/types": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.35.1.tgz",
|
||||
"integrity": "sha512-q/O04vVnKHfrrhNAscndAn1tuQhIkwqnaW+eu5waD5IPts2eX1dgJxgqcPx5BX109/qAz7IG6VrEPTOYKCNfRQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.36.0.tgz",
|
||||
"integrity": "sha512-xGms6l5cTJKQPZOKM75Dl9yBfNdGeLRsIyufewnxT4vZTrjC0ImQT4fj8QmtJK84F58uSh5HVBSANwcfiXxABQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3332,15 +3355,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/typescript-estree": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.35.1.tgz",
|
||||
"integrity": "sha512-Vvpuvj4tBxIka7cPs6Y1uvM7gJgdF5Uu9F+mBJBPY4MhvjrjWGK4H0lVgLJd/8PWZ23FTqsaJaLEkBCFUk8Y9g==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.36.0.tgz",
|
||||
"integrity": "sha512-JaS8bDVrfVJX4av0jLpe4ye0BpAaUW7+tnS4Y4ETa3q7NoZgzYbN9zDQTJ8kPb5fQ4n0hliAt9tA4Pfs2zA2Hg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/project-service": "8.35.1",
|
||||
"@typescript-eslint/tsconfig-utils": "8.35.1",
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/visitor-keys": "8.35.1",
|
||||
"@typescript-eslint/project-service": "8.36.0",
|
||||
"@typescript-eslint/tsconfig-utils": "8.36.0",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/visitor-keys": "8.36.0",
|
||||
"debug": "^4.3.4",
|
||||
"fast-glob": "^3.3.2",
|
||||
"is-glob": "^4.0.3",
|
||||
|
@ -3360,15 +3384,16 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/utils": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.35.1.tgz",
|
||||
"integrity": "sha512-lhnwatFmOFcazAsUm3ZnZFpXSxiwoa1Lj50HphnDe1Et01NF4+hrdXONSUHIcbVu2eFb1bAf+5yjXkGVkXBKAQ==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.36.0.tgz",
|
||||
"integrity": "sha512-VOqmHu42aEMT+P2qYjylw6zP/3E/HvptRwdn/PZxyV27KhZg2IOszXod4NcXisWzPAGSS4trE/g4moNj6XmH2g==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.7.0",
|
||||
"@typescript-eslint/scope-manager": "8.35.1",
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/typescript-estree": "8.35.1"
|
||||
"@typescript-eslint/scope-manager": "8.36.0",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"@typescript-eslint/typescript-estree": "8.36.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
|
@ -3383,12 +3408,13 @@
|
|||
}
|
||||
},
|
||||
"node_modules/@typescript-eslint/type-utils/node_modules/@typescript-eslint/visitor-keys": {
|
||||
"version": "8.35.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.35.1.tgz",
|
||||
"integrity": "sha512-VRwixir4zBWCSTP/ljEo091lbpypz57PoeAQ9imjG+vbeof9LplljsL1mos4ccG6H9IjfrVGM359RozUnuFhpw==",
|
||||
"version": "8.36.0",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.36.0.tgz",
|
||||
"integrity": "sha512-vZrhV2lRPWDuGoxcmrzRZyxAggPL+qp3WzUrlZD+slFueDiYHxeBa34dUXPuC0RmGKzl4lS5kFJYvKCq9cnNDA==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@typescript-eslint/types": "8.35.1",
|
||||
"@typescript-eslint/types": "8.36.0",
|
||||
"eslint-visitor-keys": "^4.2.1"
|
||||
},
|
||||
"engines": {
|
||||
|
@ -3404,6 +3430,7 @@
|
|||
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
|
||||
"integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
|
||||
"dev": true,
|
||||
"license": "Apache-2.0",
|
||||
"engines": {
|
||||
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
|
||||
},
|
||||
|
@ -3950,9 +3977,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/astro": {
|
||||
"version": "5.10.0",
|
||||
"resolved": "https://registry.npmjs.org/astro/-/astro-5.10.0.tgz",
|
||||
"integrity": "sha512-g/t54kVzQnFVijs+GbbbX/NBAFTl/3yNAEA/AQYq4FumLLVv7n4BIF+jKhcPGn9iFGyT1Cjvr7KB/qYyNvHEIg==",
|
||||
"version": "5.11.0",
|
||||
"resolved": "https://registry.npmjs.org/astro/-/astro-5.11.0.tgz",
|
||||
"integrity": "sha512-MEICntERthUxJPSSDsDiZuwiCMrsaYy3fnDhp4c6ScUfldCB8RBnB/myYdpTFXpwYBy6SgVsHQ1H4MuuA7ro/Q==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -5983,10 +6010,11 @@
|
|||
}
|
||||
},
|
||||
"node_modules/eslint": {
|
||||
"version": "9.30.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.0.tgz",
|
||||
"integrity": "sha512-iN/SiPxmQu6EVkf+m1qpBxzUhE12YqFLOSySuOyVLJLEF9nzTf+h/1AJYc1JWzCnktggeNrjvQGLngDzXirU6g==",
|
||||
"version": "9.30.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-9.30.1.tgz",
|
||||
"integrity": "sha512-zmxXPNMOXmwm9E0yQLi5uqXHs7uq2UIiqEKo3Gq+3fwo1XrJ+hijAZImyF7hclW3E6oHz43Yk3RP8at6OTKflQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@eslint-community/eslint-utils": "^4.2.0",
|
||||
"@eslint-community/regexpp": "^4.12.1",
|
||||
|
@ -5994,7 +6022,7 @@
|
|||
"@eslint/config-helpers": "^0.3.0",
|
||||
"@eslint/core": "^0.14.0",
|
||||
"@eslint/eslintrc": "^3.3.1",
|
||||
"@eslint/js": "9.30.0",
|
||||
"@eslint/js": "9.30.1",
|
||||
"@eslint/plugin-kit": "^0.3.1",
|
||||
"@humanfs/node": "^0.16.6",
|
||||
"@humanwhocodes/module-importer": "^1.0.1",
|
||||
|
@ -11153,9 +11181,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/prettier": {
|
||||
"version": "3.5.3",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.5.3.tgz",
|
||||
"integrity": "sha512-QQtaxnoDJeAkDvDKWCLiwIXkTgRhwYDEQCghU9Z6q03iyek/rxRh/2lC3HB7P8sWT2xC/y5JDctPLBIGzHKbhw==",
|
||||
"version": "3.6.2",
|
||||
"resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
|
||||
"integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
|
@ -12045,9 +12073,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/rollup": {
|
||||
"version": "4.44.0",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.0.tgz",
|
||||
"integrity": "sha512-qHcdEzLCiktQIfwBq420pn2dP+30uzqYxv9ETm91wdt2R9AFcWfjNAmje4NWlnCIQ5RMTzVf0ZyisOKqHR6RwA==",
|
||||
"version": "4.44.2",
|
||||
"resolved": "https://registry.npmjs.org/rollup/-/rollup-4.44.2.tgz",
|
||||
"integrity": "sha512-PVoapzTwSEcelaWGth3uR66u7ZRo6qhPHc0f2uRO9fX6XDVNrIiGYS0Pj9+R8yIIYSD/mCx2b16Ws9itljKSPg==",
|
||||
"dev": true,
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
|
@ -12061,26 +12089,26 @@
|
|||
"npm": ">=8.0.0"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@rollup/rollup-android-arm-eabi": "4.44.0",
|
||||
"@rollup/rollup-android-arm64": "4.44.0",
|
||||
"@rollup/rollup-darwin-arm64": "4.44.0",
|
||||
"@rollup/rollup-darwin-x64": "4.44.0",
|
||||
"@rollup/rollup-freebsd-arm64": "4.44.0",
|
||||
"@rollup/rollup-freebsd-x64": "4.44.0",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.44.0",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.44.0",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.44.0",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.44.0",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.44.0",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.44.0",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.44.0",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.44.0",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.44.0",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.44.0",
|
||||
"@rollup/rollup-linux-x64-musl": "4.44.0",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.44.0",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.44.0",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.44.0",
|
||||
"@rollup/rollup-android-arm-eabi": "4.44.2",
|
||||
"@rollup/rollup-android-arm64": "4.44.2",
|
||||
"@rollup/rollup-darwin-arm64": "4.44.2",
|
||||
"@rollup/rollup-darwin-x64": "4.44.2",
|
||||
"@rollup/rollup-freebsd-arm64": "4.44.2",
|
||||
"@rollup/rollup-freebsd-x64": "4.44.2",
|
||||
"@rollup/rollup-linux-arm-gnueabihf": "4.44.2",
|
||||
"@rollup/rollup-linux-arm-musleabihf": "4.44.2",
|
||||
"@rollup/rollup-linux-arm64-gnu": "4.44.2",
|
||||
"@rollup/rollup-linux-arm64-musl": "4.44.2",
|
||||
"@rollup/rollup-linux-loongarch64-gnu": "4.44.2",
|
||||
"@rollup/rollup-linux-powerpc64le-gnu": "4.44.2",
|
||||
"@rollup/rollup-linux-riscv64-gnu": "4.44.2",
|
||||
"@rollup/rollup-linux-riscv64-musl": "4.44.2",
|
||||
"@rollup/rollup-linux-s390x-gnu": "4.44.2",
|
||||
"@rollup/rollup-linux-x64-gnu": "4.44.2",
|
||||
"@rollup/rollup-linux-x64-musl": "4.44.2",
|
||||
"@rollup/rollup-win32-arm64-msvc": "4.44.2",
|
||||
"@rollup/rollup-win32-ia32-msvc": "4.44.2",
|
||||
"@rollup/rollup-win32-x64-msvc": "4.44.2",
|
||||
"fsevents": "~2.3.2"
|
||||
}
|
||||
},
|
||||
|
@ -12978,9 +13006,9 @@
|
|||
}
|
||||
},
|
||||
"node_modules/stylelint": {
|
||||
"version": "16.21.0",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.0.tgz",
|
||||
"integrity": "sha512-ki3PpJGG7xhm3WtINoWGnlvqAmbqSexoRMbEMJzlwewSIOqPRKPlq452c22xAdEJISVi80r+I7KL9GPUiwFgbg==",
|
||||
"version": "16.21.1",
|
||||
"resolved": "https://registry.npmjs.org/stylelint/-/stylelint-16.21.1.tgz",
|
||||
"integrity": "sha512-WCXdXnYK2tpCbebgMF0Bme3YZH/Rh/UXerj75twYo4uLULlcrLwFVdZTvTEF8idFnAcW21YUDJFyKOfaf6xJRw==",
|
||||
"dev": true,
|
||||
"funding": [
|
||||
{
|
||||
|
@ -13021,7 +13049,7 @@
|
|||
"micromatch": "^4.0.8",
|
||||
"normalize-path": "^3.0.0",
|
||||
"picocolors": "^1.1.1",
|
||||
"postcss": "^8.5.5",
|
||||
"postcss": "^8.5.6",
|
||||
"postcss-resolve-nested-selector": "^0.1.6",
|
||||
"postcss-safe-parser": "^7.0.1",
|
||||
"postcss-selector-parser": "^7.1.0",
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{
|
||||
"name": "admin-lte",
|
||||
"description": "Responsive open source admin dashboard and control panel.",
|
||||
"version": "4.0.0-rc3",
|
||||
"version": "4.0.0-rc4",
|
||||
"type": "module",
|
||||
"license": "MIT",
|
||||
"author": "Colorlib <https://colorlib.com>",
|
||||
|
|
|
@ -18,8 +18,13 @@ export default defineConfig({
|
|||
publicDir: './src/html/public',
|
||||
cacheDir: './dist/.astro',
|
||||
outDir: './dist/html',
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
port: 3000
|
||||
},
|
||||
vite: {
|
||||
server: {
|
||||
host: '0.0.0.0',
|
||||
watch: {
|
||||
ignored: ['!**/dist/**']
|
||||
}
|
||||
|
|
|
@ -43,28 +43,3 @@ document.addEventListener("DOMContentLoaded", function () {
|
|||
</script>
|
||||
<!--end::OverlayScrollbars Configure-->
|
||||
|
||||
<!-- Image path runtime fix -->
|
||||
<script is:inline>
|
||||
document.addEventListener('DOMContentLoaded', () => {
|
||||
// Find the link tag for the main AdminLTE CSS file.
|
||||
const cssLink = document.querySelector('link[href*="css/adminlte.css"]');
|
||||
if (!cssLink) {
|
||||
return; // Exit if the link isn't found
|
||||
}
|
||||
|
||||
// Extract the base path from the CSS href.
|
||||
// e.g., from "../css/adminlte.css", we get "../"
|
||||
// e.g., from "./css/adminlte.css", we get "./"
|
||||
const cssHref = cssLink.getAttribute('href');
|
||||
const deploymentPath = cssHref.slice(0, cssHref.indexOf('css/adminlte.css'));
|
||||
|
||||
// Find all images with absolute paths and fix them.
|
||||
document.querySelectorAll('img[src^="/assets/"]').forEach(img => {
|
||||
const originalSrc = img.getAttribute('src');
|
||||
if (originalSrc) {
|
||||
const relativeSrc = originalSrc.slice(1); // Remove leading '/'
|
||||
img.src = deploymentPath + relativeSrc;
|
||||
}
|
||||
});
|
||||
});
|
||||
</script>
|
||||
|
|
|
@ -2,6 +2,12 @@
|
|||
import { convertPathToHtml } from "../../../utils/index.js"
|
||||
const { path, mainPage, page } = Astro.props
|
||||
const htmlPath = convertPathToHtml(path);
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!--begin::Sidebar-->
|
||||
|
@ -12,7 +18,7 @@ const htmlPath = convertPathToHtml(path);
|
|||
<a href={htmlPath + "/index.html"} class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src={deploymentPath + "assets/img/AdminLTELogo.png"}
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
|
|
@ -1,5 +1,9 @@
|
|||
---
|
||||
// const { path } = Astro.props
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!--begin::Header-->
|
||||
|
@ -44,7 +48,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -70,7 +74,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user8-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -96,7 +100,7 @@
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -166,7 +170,7 @@
|
|||
<li class="nav-item dropdown user-menu">
|
||||
<a href="#" class="nav-link dropdown-toggle" data-bs-toggle="dropdown">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src={deploymentPath + "assets/img/user2-160x160.jpg"}
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -176,7 +180,7 @@
|
|||
<!--begin::User Image-->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src={deploymentPath + "assets/img/user2-160x160.jpg"}
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
|
|
@ -16,7 +16,7 @@ _**Important Note**: You needed to add separately cdn links for plugins in your
|
|||
|
||||
```html
|
||||
<script
|
||||
src="https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-beta3/dist/js/adminlte.min.js"
|
||||
src="https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-rc3/dist/js/adminlte.min.js"
|
||||
crossorigin="anonymous"
|
||||
></script>
|
||||
```
|
||||
|
@ -24,7 +24,7 @@ _**Important Note**: You needed to add separately cdn links for plugins in your
|
|||
```html
|
||||
<link
|
||||
rel="stylesheet"
|
||||
href="https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-beta3/dist/css/adminlte.min.css"
|
||||
href="https://cdn.jsdelivr.net/npm/admin-lte@4.0.0-rc3/dist/css/adminlte.min.css"
|
||||
crossorigin="anonymous"
|
||||
/>
|
||||
```
|
||||
|
@ -36,19 +36,19 @@ _**Important Note**: To install it via npm/Yarn, you need at least Node.js 14 or
|
|||
#### Via npm
|
||||
|
||||
```bash
|
||||
npm install admin-lte@4.0.0-beta3 --save
|
||||
npm install admin-lte@4.0.0-rc3 --save
|
||||
```
|
||||
|
||||
#### Via Yarn
|
||||
|
||||
```bash
|
||||
yarn add admin-lte@4.0.0-beta3
|
||||
yarn add admin-lte@4.0.0-rc3
|
||||
```
|
||||
|
||||
#### Via Composer
|
||||
|
||||
```bash
|
||||
composer require "almasaeed2010/adminlte=4.0.0-beta3"
|
||||
composer require "almasaeed2010/adminlte=4.0.0-rc3"
|
||||
```
|
||||
|
||||
#### Via Git
|
||||
|
|
|
@ -9,6 +9,12 @@ const title = "AdminLTE 4 | Timeline Elements"
|
|||
const path = "../../../dist"
|
||||
const mainPage = "ui-elements"
|
||||
const page = "timeline";
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -147,19 +153,19 @@ const page = "timeline";
|
|||
</h3>
|
||||
<div class="timeline-body">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="..."
|
||||
/>
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="..."
|
||||
/>
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="..."
|
||||
/>
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="..."
|
||||
/>
|
||||
</div>
|
||||
|
|
|
@ -10,6 +10,12 @@ const title = "Main Header Component | AdminLTE 4"
|
|||
const path = "../../../../dist"
|
||||
const mainPage = "components"
|
||||
const page = "main-header"
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -126,7 +132,7 @@ const page = "main-header"
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -152,7 +158,7 @@ const page = "main-header"
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user8-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -178,7 +184,7 @@ const page = "main-header"
|
|||
<div class="d-flex">
|
||||
<div class="flex-shrink-0">
|
||||
<img
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
class="img-size-50 rounded-circle me-3"
|
||||
/>
|
||||
|
@ -249,7 +255,7 @@ const page = "main-header"
|
|||
data-bs-toggle="dropdown"
|
||||
>
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src={deploymentPath + "assets/img/user2-160x160.jpg"}
|
||||
class="user-image rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
@ -261,7 +267,7 @@ const page = "main-header"
|
|||
<!-- User image -->
|
||||
<li class="user-header text-bg-primary">
|
||||
<img
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src={deploymentPath + "assets/img/user2-160x160.jpg"}
|
||||
class="rounded-circle shadow"
|
||||
alt="User Image"
|
||||
/>
|
||||
|
|
|
@ -6,6 +6,12 @@ const title = "AdminLTE 4 | Lockscreen"
|
|||
const path = "../../../dist"
|
||||
const htmlPath = ".."
|
||||
const year = new Date().getFullYear();
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -26,7 +32,7 @@ const year = new Date().getFullYear();
|
|||
|
||||
<div class="lockscreen-item">
|
||||
<div class="lockscreen-image">
|
||||
<img src="/assets/img/user1-128x128.jpg" alt="User Image" />
|
||||
<img src={deploymentPath + "assets/img/user1-128x128.jpg"} alt="User Image" />
|
||||
</div>
|
||||
|
||||
<form class="lockscreen-credentials">
|
||||
|
|
|
@ -8,6 +8,12 @@ import { convertPathToHtml } from "../../../utils/index.js"
|
|||
const title = "AdminLTE 4 | Theme Customize"
|
||||
const path = "../../../dist"
|
||||
const htmlPath = convertPathToHtml(path);
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
|
@ -30,7 +36,7 @@ const htmlPath = convertPathToHtml(path);
|
|||
<a href={htmlPath + "/index.html"} class="brand-link">
|
||||
<!--begin::Brand Image-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src={deploymentPath + "assets/img/AdminLTELogo.png"}
|
||||
alt="AdminLTE Logo"
|
||||
class="brand-image opacity-75 shadow"
|
||||
/>
|
||||
|
|
|
@ -9,6 +9,12 @@ const title = "AdminLTE v4 | Dashboard"
|
|||
const path = "../../dist"
|
||||
const mainPage = "dashboard"
|
||||
const page = "index";
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
|
@ -266,7 +272,7 @@ const page = "index";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -290,7 +296,7 @@ const page = "index";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -314,7 +320,7 @@ const page = "index";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -338,7 +344,7 @@ const page = "index";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -356,7 +362,7 @@ const page = "index";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -379,7 +385,7 @@ const page = "index";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user7-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user7-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -402,7 +408,7 @@ const page = "index";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -425,7 +431,7 @@ const page = "index";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user5-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user5-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -448,7 +454,7 @@ const page = "index";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user6-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user6-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -471,7 +477,7 @@ const page = "index";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user8-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
|
|
@ -9,6 +9,12 @@ const title = "AdminLTE | Dashboard v2"
|
|||
const path = "../../dist"
|
||||
const mainPage = "dashboard"
|
||||
const page = "index2";
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!doctype html>
|
||||
|
@ -366,7 +372,7 @@ const page = "index2";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -391,7 +397,7 @@ const page = "index2";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -415,7 +421,7 @@ const page = "index2";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -440,7 +446,7 @@ const page = "index2";
|
|||
<!-- /.direct-chat-infos -->
|
||||
<img
|
||||
class="direct-chat-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="message user image"
|
||||
/>
|
||||
<!-- /.direct-chat-img -->
|
||||
|
@ -458,7 +464,7 @@ const page = "index2";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -481,7 +487,7 @@ const page = "index2";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user7-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user7-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -504,7 +510,7 @@ const page = "index2";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -527,7 +533,7 @@ const page = "index2";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user5-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user5-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -550,7 +556,7 @@ const page = "index2";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user6-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user6-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -573,7 +579,7 @@ const page = "index2";
|
|||
<a href="#">
|
||||
<img
|
||||
class="contacts-list-img"
|
||||
src="/assets/img/user8-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user8-128x128.jpg"}
|
||||
alt="User Avatar"
|
||||
/>
|
||||
|
||||
|
@ -655,7 +661,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -669,7 +675,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user1-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user1-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -683,7 +689,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user7-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user7-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -697,7 +703,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user6-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user6-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -711,7 +717,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user2-160x160.jpg"
|
||||
src={deploymentPath + "assets/img/user2-160x160.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -725,7 +731,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user5-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user5-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -739,7 +745,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user4-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user4-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -753,7 +759,7 @@ const page = "index2";
|
|||
<div class="col-3 p-2">
|
||||
<img
|
||||
class="img-fluid rounded-circle"
|
||||
src="/assets/img/user3-128x128.jpg"
|
||||
src={deploymentPath + "assets/img/user3-128x128.jpg"}
|
||||
alt="User Image"
|
||||
/>
|
||||
<a
|
||||
|
@ -1078,7 +1084,7 @@ const page = "index2";
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1099,7 +1105,7 @@ const page = "index2";
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1120,7 +1126,7 @@ const page = "index2";
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
@ -1142,7 +1148,7 @@ const page = "index2";
|
|||
<div class="d-flex border-top py-2 px-1">
|
||||
<div class="col-2">
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product Image"
|
||||
class="img-size-50"
|
||||
/>
|
||||
|
|
|
@ -9,6 +9,12 @@ const title = "AdminLTE | Dashboard v3"
|
|||
const path = "../../dist"
|
||||
const mainPage = "dashboard"
|
||||
const page = "index3";
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -126,7 +132,7 @@ const page = "index3";
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -149,7 +155,7 @@ const page = "index3";
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -172,7 +178,7 @@ const page = "index3";
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
@ -195,7 +201,7 @@ const page = "index3";
|
|||
<tr>
|
||||
<td>
|
||||
<img
|
||||
src="/assets/img/default-150x150.png"
|
||||
src={deploymentPath + "assets/img/default-150x150.png"}
|
||||
alt="Product 1"
|
||||
class="rounded-circle img-size-32 me-2"
|
||||
/>
|
||||
|
|
|
@ -8,6 +8,12 @@ import { convertPathToHtml } from "../../../utils/index.js"
|
|||
const title = "AdminLTE 4 | Sidebar Mini"
|
||||
const path = "../../../dist"
|
||||
const htmlPath = convertPathToHtml(path);
|
||||
|
||||
// Smart path resolution: calculate relative path based on directory depth
|
||||
const pathname = Astro.url.pathname;
|
||||
const pathSegments = pathname.split('/').filter(segment => segment !== '');
|
||||
const depth = pathSegments.length > 0 ? pathSegments.length - 1 : 0;
|
||||
const deploymentPath = depth === 0 ? './' : '../'.repeat(depth);
|
||||
---
|
||||
|
||||
<!DOCTYPE html>
|
||||
|
@ -30,14 +36,14 @@ const htmlPath = convertPathToHtml(path);
|
|||
<a href={htmlPath + "/index.html"} class="brand-link logo-switch">
|
||||
<!--begin::Brand Image Small-->
|
||||
<img
|
||||
src="/assets/img/AdminLTELogo.png"
|
||||
src={deploymentPath + "assets/img/AdminLTELogo.png"}
|
||||
alt="AdminLTE Logo Small"
|
||||
class="brand-image-xl logo-xs opacity-75 shadow"
|
||||
/>
|
||||
<!--end::Brand Image Small-->
|
||||
<!--begin::Brand Image Large-->
|
||||
<img
|
||||
src="/assets/img/AdminLTEFullLogo.png"
|
||||
src={deploymentPath + "assets/img/AdminLTEFullLogo.png"}
|
||||
alt="AdminLTE Logo Large"
|
||||
class="brand-image-xs logo-xl opacity-75"
|
||||
/>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
@charset "UTF-8";
|
||||
/*!
|
||||
* AdminLTE v4.0.0-beta3
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
@ -273,8 +273,10 @@ p {
|
|||
}
|
||||
|
||||
abbr[title] {
|
||||
-webkit-text-decoration: underline dotted;
|
||||
text-decoration: underline dotted;
|
||||
cursor: help;
|
||||
-webkit-text-decoration-skip-ink: none;
|
||||
text-decoration-skip-ink: none;
|
||||
}
|
||||
|
||||
|
@ -2115,6 +2117,8 @@ progress {
|
|||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: var(--bs-body-color);
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--bs-body-bg);
|
||||
background-clip: padding-box;
|
||||
|
@ -2150,6 +2154,10 @@ progress {
|
|||
display: block;
|
||||
padding: 0;
|
||||
}
|
||||
.form-control::-moz-placeholder {
|
||||
color: var(--bs-secondary-color);
|
||||
opacity: 1;
|
||||
}
|
||||
.form-control::placeholder {
|
||||
color: var(--bs-secondary-color);
|
||||
opacity: 1;
|
||||
|
@ -2266,6 +2274,8 @@ textarea.form-control-lg {
|
|||
font-weight: 400;
|
||||
line-height: 1.5;
|
||||
color: var(--bs-body-color);
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--bs-body-bg);
|
||||
background-image: var(--bs-form-select-bg-img), var(--bs-form-select-bg-icon, none);
|
||||
|
@ -2348,6 +2358,8 @@ textarea.form-control-lg {
|
|||
height: 1em;
|
||||
margin-top: 0.25em;
|
||||
vertical-align: top;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: var(--bs-form-check-bg);
|
||||
background-image: var(--bs-form-check-bg-image);
|
||||
|
@ -2355,6 +2367,7 @@ textarea.form-control-lg {
|
|||
background-position: center;
|
||||
background-size: contain;
|
||||
border: var(--bs-border-width) solid var(--bs-border-color);
|
||||
-webkit-print-color-adjust: exact;
|
||||
print-color-adjust: exact;
|
||||
}
|
||||
.form-check-input[type=checkbox] {
|
||||
|
@ -2453,6 +2466,8 @@ textarea.form-control-lg {
|
|||
width: 100%;
|
||||
height: 1.5rem;
|
||||
padding: 0;
|
||||
-webkit-appearance: none;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: transparent;
|
||||
}
|
||||
|
@ -2472,15 +2487,18 @@ textarea.form-control-lg {
|
|||
width: 1rem;
|
||||
height: 1rem;
|
||||
margin-top: -0.25rem;
|
||||
-webkit-appearance: none;
|
||||
appearance: none;
|
||||
background-color: #0d6efd;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);
|
||||
-webkit-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.form-range::-webkit-slider-thumb {
|
||||
-webkit-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
@ -2500,15 +2518,18 @@ textarea.form-control-lg {
|
|||
.form-range::-moz-range-thumb {
|
||||
width: 1rem;
|
||||
height: 1rem;
|
||||
-moz-appearance: none;
|
||||
appearance: none;
|
||||
background-color: #0d6efd;
|
||||
border: 0;
|
||||
border-radius: 1rem;
|
||||
box-shadow: 0 0.1rem 0.25rem rgba(0, 0, 0, 0.1);
|
||||
-moz-transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
transition: background-color 0.15s ease-in-out, border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out;
|
||||
}
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
.form-range::-moz-range-thumb {
|
||||
-moz-transition: none;
|
||||
transition: none;
|
||||
}
|
||||
}
|
||||
|
@ -2572,10 +2593,17 @@ textarea.form-control-lg {
|
|||
.form-floating > .form-control-plaintext {
|
||||
padding: 1rem 0.75rem;
|
||||
}
|
||||
.form-floating > .form-control::-moz-placeholder, .form-floating > .form-control-plaintext::-moz-placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
.form-floating > .form-control::placeholder,
|
||||
.form-floating > .form-control-plaintext::placeholder {
|
||||
color: transparent;
|
||||
}
|
||||
.form-floating > .form-control:not(:-moz-placeholder), .form-floating > .form-control-plaintext:not(:-moz-placeholder) {
|
||||
padding-top: 1.625rem;
|
||||
padding-bottom: 0.625rem;
|
||||
}
|
||||
.form-floating > .form-control:focus, .form-floating > .form-control:not(:placeholder-shown),
|
||||
.form-floating > .form-control-plaintext:focus,
|
||||
.form-floating > .form-control-plaintext:not(:placeholder-shown) {
|
||||
|
@ -2592,6 +2620,9 @@ textarea.form-control-lg {
|
|||
padding-bottom: 0.625rem;
|
||||
padding-left: 0.75rem;
|
||||
}
|
||||
.form-floating > .form-control:not(:-moz-placeholder) ~ label {
|
||||
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
||||
}
|
||||
.form-floating > .form-control:focus ~ label,
|
||||
.form-floating > .form-control:not(:placeholder-shown) ~ label,
|
||||
.form-floating > .form-control-plaintext ~ label,
|
||||
|
@ -2601,6 +2632,15 @@ textarea.form-control-lg {
|
|||
.form-floating > .form-control:-webkit-autofill ~ label {
|
||||
transform: scale(0.85) translateY(-0.5rem) translateX(0.15rem);
|
||||
}
|
||||
.form-floating > textarea:not(:-moz-placeholder) ~ label::after {
|
||||
position: absolute;
|
||||
inset: 1rem 0.375rem;
|
||||
z-index: -1;
|
||||
height: 1.5em;
|
||||
content: "";
|
||||
background-color: var(--bs-body-bg);
|
||||
border-radius: var(--bs-border-radius);
|
||||
}
|
||||
.form-floating > textarea:focus ~ label::after,
|
||||
.form-floating > textarea:not(:placeholder-shown) ~ label::after {
|
||||
position: absolute;
|
||||
|
@ -2920,6 +2960,8 @@ textarea.form-control-lg {
|
|||
text-decoration: none;
|
||||
vertical-align: middle;
|
||||
cursor: pointer;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
border: var(--bs-btn-border-width) solid var(--bs-btn-border-color);
|
||||
border-radius: var(--bs-btn-border-radius);
|
||||
|
@ -5319,6 +5361,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.btn-close:disabled, .btn-close.disabled {
|
||||
pointer-events: none;
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
user-select: none;
|
||||
opacity: var(--bs-btn-close-disabled-opacity);
|
||||
}
|
||||
|
@ -5374,6 +5418,7 @@ textarea.form-control-lg {
|
|||
--bs-toast-zindex: 1090;
|
||||
position: absolute;
|
||||
z-index: var(--bs-toast-zindex);
|
||||
width: -moz-max-content;
|
||||
width: max-content;
|
||||
max-width: 100%;
|
||||
pointer-events: none;
|
||||
|
@ -6766,13 +6811,16 @@ textarea.form-control-lg {
|
|||
}
|
||||
}
|
||||
.placeholder-wave {
|
||||
-webkit-mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
|
||||
mask-image: linear-gradient(130deg, #000 55%, rgba(0, 0, 0, 0.8) 75%, #000 95%);
|
||||
-webkit-mask-size: 200% 100%;
|
||||
mask-size: 200% 100%;
|
||||
animation: placeholder-wave 2s linear infinite;
|
||||
}
|
||||
|
||||
@keyframes placeholder-wave {
|
||||
100% {
|
||||
-webkit-mask-position: -200% 0%;
|
||||
mask-position: -200% 0%;
|
||||
}
|
||||
}
|
||||
|
@ -7150,22 +7198,27 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.object-fit-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
|
||||
.object-fit-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
|
||||
.object-fit-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
|
||||
.object-fit-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
|
||||
.object-fit-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
|
||||
|
@ -8396,26 +8449,32 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.column-gap-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
|
||||
.column-gap-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
|
||||
.column-gap-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
|
||||
.column-gap-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
|
||||
.column-gap-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
|
||||
.column-gap-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
|
||||
|
@ -8980,14 +9039,20 @@ textarea.form-control-lg {
|
|||
}
|
||||
|
||||
.user-select-all {
|
||||
-webkit-user-select: all !important;
|
||||
-moz-user-select: all !important;
|
||||
user-select: all !important;
|
||||
}
|
||||
|
||||
.user-select-auto {
|
||||
-webkit-user-select: auto !important;
|
||||
-moz-user-select: auto !important;
|
||||
user-select: auto !important;
|
||||
}
|
||||
|
||||
.user-select-none {
|
||||
-webkit-user-select: none !important;
|
||||
-moz-user-select: none !important;
|
||||
user-select: none !important;
|
||||
}
|
||||
|
||||
|
@ -9254,18 +9319,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-sm-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-sm-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-sm-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-sm-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-sm-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-sm-inline {
|
||||
|
@ -9881,21 +9951,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-sm-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-sm-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-sm-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-sm-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-sm-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-sm-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-sm-start {
|
||||
|
@ -9919,18 +9995,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-md-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-md-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-md-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-md-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-md-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-md-inline {
|
||||
|
@ -10546,21 +10627,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-md-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-md-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-md-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-md-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-md-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-md-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-md-start {
|
||||
|
@ -10584,18 +10671,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-lg-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-lg-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-lg-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-lg-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-lg-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-lg-inline {
|
||||
|
@ -11211,21 +11303,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-lg-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-lg-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-lg-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-lg-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-lg-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-lg-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-lg-start {
|
||||
|
@ -11249,18 +11347,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-xl-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-xl-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-xl-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-xl-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-xl-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-xl-inline {
|
||||
|
@ -11876,21 +11979,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-xl-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-xl-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-xl-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-xl-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-xl-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-xl-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-xl-start {
|
||||
|
@ -11914,18 +12023,23 @@ textarea.form-control-lg {
|
|||
float: none !important;
|
||||
}
|
||||
.object-fit-xxl-contain {
|
||||
-o-object-fit: contain !important;
|
||||
object-fit: contain !important;
|
||||
}
|
||||
.object-fit-xxl-cover {
|
||||
-o-object-fit: cover !important;
|
||||
object-fit: cover !important;
|
||||
}
|
||||
.object-fit-xxl-fill {
|
||||
-o-object-fit: fill !important;
|
||||
object-fit: fill !important;
|
||||
}
|
||||
.object-fit-xxl-scale {
|
||||
-o-object-fit: scale-down !important;
|
||||
object-fit: scale-down !important;
|
||||
}
|
||||
.object-fit-xxl-none {
|
||||
-o-object-fit: none !important;
|
||||
object-fit: none !important;
|
||||
}
|
||||
.d-xxl-inline {
|
||||
|
@ -12541,21 +12655,27 @@ textarea.form-control-lg {
|
|||
row-gap: 3rem !important;
|
||||
}
|
||||
.column-gap-xxl-0 {
|
||||
-moz-column-gap: 0 !important;
|
||||
column-gap: 0 !important;
|
||||
}
|
||||
.column-gap-xxl-1 {
|
||||
-moz-column-gap: 0.25rem !important;
|
||||
column-gap: 0.25rem !important;
|
||||
}
|
||||
.column-gap-xxl-2 {
|
||||
-moz-column-gap: 0.5rem !important;
|
||||
column-gap: 0.5rem !important;
|
||||
}
|
||||
.column-gap-xxl-3 {
|
||||
-moz-column-gap: 1rem !important;
|
||||
column-gap: 1rem !important;
|
||||
}
|
||||
.column-gap-xxl-4 {
|
||||
-moz-column-gap: 1.5rem !important;
|
||||
column-gap: 1.5rem !important;
|
||||
}
|
||||
.column-gap-xxl-5 {
|
||||
-moz-column-gap: 3rem !important;
|
||||
column-gap: 3rem !important;
|
||||
}
|
||||
.text-xxl-start {
|
||||
|
@ -13183,6 +13303,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13213,6 +13335,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13251,6 +13375,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-md.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13281,6 +13407,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13319,6 +13447,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13349,6 +13479,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13387,6 +13519,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13417,6 +13551,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13455,6 +13591,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13485,6 +13623,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -13522,6 +13662,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13550,6 +13692,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .app-sidebar {
|
||||
margin-left: 0;
|
||||
|
@ -15446,4 +15590,4 @@ fieldset legend {
|
|||
}
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=adminlte.css.map */
|
||||
/*# sourceMappingURL=adminlte.css.map */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -1,6 +1,6 @@
|
|||
@charset "UTF-8";
|
||||
/*!
|
||||
* AdminLTE v4.0.0-beta3
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
@ -13277,6 +13277,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-sm.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13307,6 +13309,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-sm .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-sm.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13345,6 +13349,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-md.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13375,6 +13381,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-md .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-md.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13413,6 +13421,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-lg.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13443,6 +13453,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-lg .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-lg.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13481,6 +13493,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13511,6 +13525,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xl.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13549,6 +13565,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand-xxl.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13579,6 +13597,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand-xxl .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand-xxl.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -13616,6 +13636,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand.layout-fixed .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .nav-link > .nav-badge,
|
||||
.sidebar-expand.sidebar-open .nav-link > p > .nav-badge {
|
||||
|
@ -13644,6 +13666,8 @@ textarea.form-control-lg {
|
|||
}
|
||||
.sidebar-expand .app-sidebar .sidebar-wrapper {
|
||||
height: calc(100vh - (calc(3.5rem + 1px)));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
.sidebar-expand.sidebar-open .app-sidebar {
|
||||
margin-right: 0;
|
||||
|
@ -15539,5 +15563,4 @@ fieldset legend {
|
|||
content: " (" attr(href) ")";
|
||||
}
|
||||
}
|
||||
|
||||
/*# sourceMappingURL=adminlte.rtl.css.map */
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -682,12 +682,21 @@
|
|||
const sidebarOverlay = document.createElement('div');
|
||||
sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY;
|
||||
document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay);
|
||||
sidebarOverlay.addEventListener('touchstart', event => {
|
||||
event.preventDefault();
|
||||
const target = event.currentTarget;
|
||||
const data = new PushMenu(target, Defaults);
|
||||
data.collapse();
|
||||
let isTouchMoved = false;
|
||||
sidebarOverlay.addEventListener('touchstart', () => {
|
||||
isTouchMoved = false;
|
||||
}, { passive: true });
|
||||
sidebarOverlay.addEventListener('touchmove', () => {
|
||||
isTouchMoved = true;
|
||||
}, { passive: true });
|
||||
sidebarOverlay.addEventListener('touchend', event => {
|
||||
if (!isTouchMoved) {
|
||||
event.preventDefault();
|
||||
const target = event.currentTarget;
|
||||
const data = new PushMenu(target, Defaults);
|
||||
data.collapse();
|
||||
}
|
||||
}, { passive: false });
|
||||
sidebarOverlay.addEventListener('click', event => {
|
||||
event.preventDefault();
|
||||
const target = event.currentTarget;
|
||||
|
@ -1122,7 +1131,7 @@
|
|||
};
|
||||
|
||||
/**
|
||||
* AdminLTE v4.0.0-rc1
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -485,6 +485,8 @@
|
|||
|
||||
.sidebar-wrapper {
|
||||
height: subtract(100vh, add($lte-app-header-height, 1px));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -524,6 +526,8 @@
|
|||
|
||||
.sidebar-wrapper {
|
||||
height: subtract(100vh, add($lte-app-header-height, 1px));
|
||||
overflow-x: hidden;
|
||||
overflow-y: auto;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/*!
|
||||
* AdminLTE v4.0.0-beta3
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
|
|
@ -8,7 +8,7 @@ import PushMenu from './push-menu.js'
|
|||
import { initAccessibility } from './accessibility.js'
|
||||
|
||||
/**
|
||||
* AdminLTE v4.0.0-rc1
|
||||
* AdminLTE v4.0.0-rc3
|
||||
* Author: Colorlib
|
||||
* Website: AdminLTE.io <https://adminlte.io>
|
||||
* License: Open source - MIT <https://opensource.org/licenses/MIT>
|
||||
|
|
|
@ -150,12 +150,24 @@ onDOMContentLoaded(() => {
|
|||
sidebarOverlay.className = CLASS_NAME_SIDEBAR_OVERLAY
|
||||
document.querySelector(SELECTOR_APP_WRAPPER)?.append(sidebarOverlay)
|
||||
|
||||
sidebarOverlay.addEventListener('touchstart', event => {
|
||||
event.preventDefault()
|
||||
const target = event.currentTarget as HTMLElement
|
||||
const data = new PushMenu(target, Defaults)
|
||||
data.collapse()
|
||||
let isTouchMoved = false
|
||||
|
||||
sidebarOverlay.addEventListener('touchstart', () => {
|
||||
isTouchMoved = false
|
||||
}, { passive: true })
|
||||
|
||||
sidebarOverlay.addEventListener('touchmove', () => {
|
||||
isTouchMoved = true
|
||||
}, { passive: true })
|
||||
|
||||
sidebarOverlay.addEventListener('touchend', event => {
|
||||
if (!isTouchMoved) {
|
||||
event.preventDefault()
|
||||
const target = event.currentTarget as HTMLElement
|
||||
const data = new PushMenu(target, Defaults)
|
||||
data.collapse()
|
||||
}
|
||||
}, { passive: false })
|
||||
sidebarOverlay.addEventListener('click', event => {
|
||||
event.preventDefault()
|
||||
const target = event.currentTarget as HTMLElement
|
||||
|
|
Loading…
Reference in New Issue