๐ Release v4.0.0-rc1: Complete Modernization
๐ Major modernization release bringing AdminLTE to current standards ## Key Improvements: - ๐ Zero security vulnerabilities (all dependencies updated) - โก ESLint v9 with modern flat configuration - ๐ฆ Astro 5.x, Bootstrap 5.3.7, 50+ package updates - ๐ ๏ธ New npm scripts: 'npm start', 'npm run build' - ๐งน 700+ linting issues resolved, technical debt cleaned - ๐ฏ ES modules, modern tooling, optimal bundles ## Infrastructure: - Upgraded to ES modules with proper configurations - Migrated ESLint to v9 flat config format - Enhanced build scripts and developer experience - Added comprehensive CHANGELOG.md - Updated README.md with v4.0.0-rc1 highlights ## Quality & Security: - All npm vulnerabilities resolved - Zero linting errors across JS/TS/CSS/Astro - Updated browserslist and build dependencies - Removed deprecated patterns and dead code ## Compatibility: - No breaking changes for end users - Full Bootstrap 5.3.7 compatibility maintained - All HTML templates remain compatible - Enhanced developer experience with modern tooling See CHANGELOG.md for complete details.
This commit is contained in:
18
dist/js/adminlte.js
vendored
18
dist/js/adminlte.js
vendored
@@ -1,6 +1,6 @@
|
||||
/*!
|
||||
* AdminLTE v4.0.0-beta3 (https://adminlte.io)
|
||||
* Copyright 2014-2024 Colorlib <https://colorlib.com>
|
||||
* Copyright 2014-2025 Colorlib <https://colorlib.com>
|
||||
* Licensed under MIT (https://github.com/ColorlibHQ/AdminLTE/blob/master/LICENSE)
|
||||
*/
|
||||
(function (global, factory) {
|
||||
@@ -33,14 +33,14 @@
|
||||
target.style.boxSizing = 'border-box';
|
||||
target.style.height = `${target.offsetHeight}px`;
|
||||
target.style.overflow = 'hidden';
|
||||
window.setTimeout(() => {
|
||||
globalThis.setTimeout(() => {
|
||||
target.style.height = '0';
|
||||
target.style.paddingTop = '0';
|
||||
target.style.paddingBottom = '0';
|
||||
target.style.marginTop = '0';
|
||||
target.style.marginBottom = '0';
|
||||
}, 1);
|
||||
window.setTimeout(() => {
|
||||
globalThis.setTimeout(() => {
|
||||
target.style.display = 'none';
|
||||
target.style.removeProperty('height');
|
||||
target.style.removeProperty('padding-top');
|
||||
@@ -55,7 +55,7 @@
|
||||
/* SLIDE DOWN */
|
||||
const slideDown = (target, duration = 500) => {
|
||||
target.style.removeProperty('display');
|
||||
let { display } = window.getComputedStyle(target);
|
||||
let { display } = globalThis.getComputedStyle(target);
|
||||
if (display === 'none') {
|
||||
display = 'block';
|
||||
}
|
||||
@@ -67,7 +67,7 @@
|
||||
target.style.paddingBottom = '0';
|
||||
target.style.marginTop = '0';
|
||||
target.style.marginBottom = '0';
|
||||
window.setTimeout(() => {
|
||||
globalThis.setTimeout(() => {
|
||||
target.style.boxSizing = 'border-box';
|
||||
target.style.transitionProperty = 'height, margin, padding';
|
||||
target.style.transitionDuration = `${duration}ms`;
|
||||
@@ -77,7 +77,7 @@
|
||||
target.style.removeProperty('margin-top');
|
||||
target.style.removeProperty('margin-bottom');
|
||||
}, 1);
|
||||
window.setTimeout(() => {
|
||||
globalThis.setTimeout(() => {
|
||||
target.style.removeProperty('height');
|
||||
target.style.removeProperty('overflow');
|
||||
target.style.removeProperty('transition-duration');
|
||||
@@ -167,7 +167,6 @@
|
||||
this._element = element;
|
||||
this._config = Object.assign(Object.assign({}, Defaults), config);
|
||||
}
|
||||
// TODO
|
||||
menusClose() {
|
||||
const navTreeview = document.querySelectorAll(SELECTOR_NAV_TREEVIEW);
|
||||
navTreeview.forEach(navTree => {
|
||||
@@ -199,7 +198,7 @@
|
||||
const sidebarExpandList = (_b = (_a = document.querySelector(SELECTOR_SIDEBAR_EXPAND)) === null || _a === void 0 ? void 0 : _a.classList) !== null && _b !== void 0 ? _b : [];
|
||||
const sidebarExpand = (_c = Array.from(sidebarExpandList).find(className => className.startsWith(CLASS_NAME_SIDEBAR_EXPAND))) !== null && _c !== void 0 ? _c : '';
|
||||
const sidebar = document.getElementsByClassName(sidebarExpand)[0];
|
||||
const sidebarContent = window.getComputedStyle(sidebar, '::before').getPropertyValue('content');
|
||||
const sidebarContent = globalThis.getComputedStyle(sidebar, '::before').getPropertyValue('content');
|
||||
this._config = Object.assign(Object.assign({}, this._config), { sidebarBreakpoint: Number(sidebarContent.replace(/[^\d.-]/g, '')) });
|
||||
if (window.innerWidth <= this._config.sidebarBreakpoint) {
|
||||
this.collapse();
|
||||
@@ -509,8 +508,7 @@
|
||||
});
|
||||
setTimeout(() => {
|
||||
if (this._parent) {
|
||||
this._parent.classList.remove(CLASS_NAME_COLLAPSED);
|
||||
this._parent.classList.remove(CLASS_NAME_EXPANDING);
|
||||
this._parent.classList.remove(CLASS_NAME_COLLAPSED, CLASS_NAME_EXPANDING);
|
||||
}
|
||||
}, this._config.animationSpeed);
|
||||
}
|
||||
|
||||
2
dist/js/adminlte.js.map
vendored
2
dist/js/adminlte.js.map
vendored
File diff suppressed because one or more lines are too long
4
dist/js/adminlte.min.js
vendored
4
dist/js/adminlte.min.js
vendored
File diff suppressed because one or more lines are too long
2
dist/js/adminlte.min.js.map
vendored
2
dist/js/adminlte.min.js.map
vendored
File diff suppressed because one or more lines are too long
Reference in New Issue
Block a user