All notable changes to this project will be documented in this file.
- jQuery 4.0.0 - First major jQuery release in over a decade
- Removed deprecated APIs and internal methods
- ES modules internally, smaller bundle size
- Improved CSP (Content Security Policy) support
- Dropped IE 10 and older support
- MetisMenu 3.1.0 - Updated to version requiring jQuery 4.0+
- Simplified dropdown handler - Replaced internal
$._data()API usage with simpler stopPropagation approach
- jquery: 3.7.1 → 4.0.0 (major)
- metismenu: 3.0.7 → 3.1.0
- @babel/core: 7.28.5 → 7.28.6
- @babel/preset-env: 7.28.5 → 7.28.6
- @fullcalendar/core: 6.1.19 → 6.1.20
- @fullcalendar/daygrid: 6.1.19 → 6.1.20
- @fullcalendar/interaction: 6.1.19 → 6.1.20
- @fullcalendar/list: 6.1.19 → 6.1.20
- @fullcalendar/timegrid: 6.1.19 → 6.1.20
- css-loader: 7.1.2 → 7.1.3
- css-minimizer-webpack-plugin: 7.0.4 (new)
- eslint: 9.39.1 → 9.39.2
- html-webpack-plugin: 5.6.4 → 5.6.6
- mini-css-extract-plugin: 2.9.4 → 2.10.0
- sass: 1.94.0 → 1.97.3
- webpack: 5.102.1 → 5.104.1
- webpack-dev-server: 5.2.2 → 5.2.3
- Zero vulnerabilities - All packages audited and secure
- lodash updated to fix prototype pollution vulnerability
- Fixed CSS extraction - Production builds now properly extract CSS to separate file
- CSS output:
./assets/styles/main.css(462KB minified) - HTML pages now include
<link>tag for CSS
- CSS output:
- Added CSS minification - Using
css-minimizer-webpack-pluginfor optimal CSS compression - Fixed webpack configuration:
- Updated to use
--env production/developmentflags - Fixed deprecated
CleanWebpackPluginAPI usage - Fixed
MiniCssExtractPlugin.loadersyntax (replaced deprecated.extract()) - Set proper
mode: 'production'for production builds
- Updated to use
- Modern browser targeting - Updated
.babelrcto target only modern browsers- Targets: last 2 versions of Chrome, Firefox, Safari, Edge
- Eliminates unnecessary polyfills (~9KB savings)
- Removes
@babel/plugin-transform-classestransforms - Removes
Array.prototype.indexOfpolyfills
- Fixed HMR error - Resolved "Cannot set properties of undefined" error on initial page load
- Fixed NaN error in production - Charts in hidden tabs no longer cause
scale(NaN)errors - Deferred chart initialization - Charts in hidden tabs are only created when tabs become visible
- Added
isElementVisible()check before creating charts - Added
shown.bs.tabevent listener for lazy chart initialization
- Added
- Added charts to secondary tabs:
- Sales Report "Current" tab: Horizontal bar chart with categories
- Bandwidth Reports "Tab 2": Line chart with bandwidth in/out data
- New design-system utilities SCSS - Centralized utility classes for consistent styling
- Container height utilities -
.chart-container,.chart-container-sm,.chart-container-lg,.map-container - Spacing utilities -
.divider-spacingreplaces inlinemargin-bottom: 30px - Card variants -
.card-darkfor dark background cards - Shadow utilities -
.shadow-theme,.shadow-theme-right,.shadow-theme-inverse - Opacity scale variables - Standardized opacity values for consistent transparency
- Replaced 20+ inline styles with utility classes across templates
- Replaced hardcoded rgba() values with SASS variables across all theme files
- Sidebar themes - Now use
rgba($white, .x)andrgba($black, .x)instead of numeric values - Header themes - Consistent color management with SASS variables
- Main themes - Use Bootstrap gray scale variables (
$gray-100,$gray-800, etc.) - Buttons - Fixed hardcoded
#f5f5f5to use$lightvariable - Cards/Popovers - Consistent black/white rgba values
- Badges - Fixed
rgba(#333)to use$gray-800 - Helpers - Updated hardcoded colors to SASS variables
- Toastr - Fixed hardcoded
#ccccccto$gray-400
- Added
@mixin btn-shadow($color, $intensity)for consistent button shadows - Supports 'default', 'hover', and 'outline-hover' intensity levels
- Functional card tabs - Dashboard card tabs now work with Bootstrap 5 native tab system
- Sales Report card - Added working "Last" and "Current" tabs with Chart.js visualizations
- Bandwidth Reports card - Added working "Tab 1" and "Tab 2" with line charts
- Uses proper
data-bs-toggle="tab"attributes for Bootstrap 5 compatibility - Consistent tab sizing - Secondary tabs have matching content to prevent resize on switch
- Refactored
src/app.jsdropdown click handler for jQuery 4.0 compatibility - Removed usage of undocumented
$._data()internal API - Added
expose-loaderto webpack config for proper jQuery global exposure with ES modules - Updated webpack ProvidePlugin to use
['jquery', 'default']syntax for jQuery 4.0 - Updated
package.jsonscripts to pass environment flags to webpack - Updated version to v4.5.0 in
base.hbsHTML comment header
| File | Size |
|---|---|
| main.css | 462KB |
| main.js | 161KB |
| chart_js.js | 216KB |
| fullcalendar.js | 260KB |
| scrollbar.js | 95KB |
| toastr.js | 86KB |
| maps.js | 80KB |
| demo.js | 78KB |
- Real Google Maps Integration - Replaced CSS-based placeholders with actual Google Maps iframe embeds
- No API Key Required - Uses Google's free iframe embed system with standard watermarks
- Five Global Locations:
- Tokyo, Japan (Satellite View)
- New York, USA (Standard View)
- London, UK (City Map)
- Paris, France (Location Map)
- San Francisco, USA (City Map)
- Professional Appearance - Fully interactive maps with zoom, pan, and street view capabilities
- Improved User Experience - Real map data instead of CSS gradients and placeholder graphics
- Reduced maps.js size: 882KB → 854KB (28KB improvement)
- Cleaner implementation: Removed complex CSS animations in favor of native Google Maps interactivity
- Better performance: iframes load on-demand with lazy loading attributes
- Clarified that
@googlemaps/js-api-loaderpackage is not used (can be removed) - Added comprehensive maps documentation for developers
- Maps now use Google Maps Embed API (completely free, no quota limits)
- Each map is fully interactive with Google's standard controls
- Proper responsive design maintained across all devices
- Lazy loading implemented for optimal performance
- All map locations tested and verified working
- Complete dependency refresh - All packages updated to September 2025 versions
- FontAwesome 7 migration - Successfully upgraded from FontAwesome 6.7.2 to 7.0.1
- Latest build tools - Webpack, Sass, and ESLint updated to current versions
- Zero vulnerabilities - All security issues resolved with latest dependencies
- @fortawesome/fontawesome-free: 6.7.2 → 7.0.1 (major version upgrade)
- Bootstrap: 5.3.7 → 5.3.8
- @fullcalendar/core: 6.1.17 → 6.1.19
- @fullcalendar/daygrid: 6.1.17 → 6.1.19
- @fullcalendar/interaction: 6.1.17 → 6.1.19
- @fullcalendar/list: 6.1.17 → 6.1.19
- @fullcalendar/timegrid: 6.1.17 → 6.1.19
- @googlemaps/js-api-loader: 1.16.8 → 1.16.10
- @babel/core: 7.27.4 → 7.28.4
- @babel/preset-env: 7.27.2 → 7.28.3
- ESLint: 9.29.0 → 9.35.0
- Sass: 1.89.2 → 1.92.1
- Webpack: 5.99.9 → 5.101.3
- Mini CSS Extract Plugin: 2.9.2 → 2.9.4
- FontAwesome 7 Integration: Updated SASS configuration to use new module syntax with proper namespacing
- Build Optimization: Both development and production builds compile successfully
- Compatibility: Resolved variable conflicts between FontAwesome 7 and Bootstrap 5
- Font Loading: Fixed webfont path resolution for FontAwesome 7
- Fixed FontAwesome 7 font path issues with new Sass module configuration
- Resolved SASS variable conflicts by namespacing FontAwesome imports
- Corrected webfont loading paths for production builds
- Development server runs without errors
- Production build completes successfully
- All HTML pages generate properly
- FontAwesome icons render correctly on all pages
- Complete dependency modernization - All npm packages updated to latest versions
- SASS future-proofing - Migrated from deprecated SASS syntax to modern
@usemodules - Enhanced security - Fixed all security vulnerabilities (0 vulnerabilities detected)
- Modern tooling - Upgraded to ESLint v9 with flat configuration
- Performance optimizations - Reduced bundle sizes and improved build times
- Enhanced Maps Component - Completely rebuilt with 5 interactive map examples
- CSS-based satellite terrain map
- Interactive demo with animations
- Multiple cities markers display
- Custom gradient styling
- Interactive controls demo
- Improved Favicon Support - Proper favicon serving and webpack integration
- Better Development Experience - Clean console output with no 404 errors
- Bootstrap: 5.3.5 → 5.3.7
- Chart.js: 4.4.8 → 4.5.0
- Webpack: 5.88.2 → 5.99.9
- Babel Core: 7.26.10 → 7.27.4
- CSS Loader: 6.11.0 → 7.1.2
- SASS: 1.86.3 → 1.89.2
- ESLint: 8.57.1 → 9.29.0
- And 15+ other package updates
- Replaced deprecated
map-merge()withmap.merge() - Replaced deprecated
divide()withmath.div() - Added modern
@usestatements for SASS modules - Eliminated 500+ deprecation warnings in custom theme files
- Future-proof code ready for SASS 3.0
- Removed:
moment.js(unused, 67KB bundle reduction) - Replaced:
gmapswith modern@googlemaps/js-api-loader - Enhanced: Security with latest package versions
- Maintained: Full backward compatibility
- Fixed broken maps implementation that relied on expired API keys
- Resolved favicon 404 errors in development
- Eliminated console source map warnings
- Fixed webpack dev server security vulnerabilities
- ESLint v9 with modern flat config format
- Zero security vulnerabilities in all dependencies
- Clean console output during development
- Optimized build process with faster compilation
- Better error handling in map components
- Reduced main bundle size: 1.87 MiB → 1.82 MiB (50KB improvement)
- Eliminated unused dependencies for better performance
- Modern ES modules for better tree-shaking
- Optimized asset loading with proper webpack configuration
- Future-proof codebase ready for upcoming SASS and build tool updates
- Enhanced security posture with latest dependency versions
- Improved development workflow with modern tooling
- Better performance through optimized dependencies
- Clean code architecture following modern best practices
- Migrated to React v18
- Upgraded all dependencies
- Updated the library
- Migrated to WebPack v5
- Migrated to Bootstrap v5
- Added mapbox-gl plugin
- Resolved alert dismissing issue
- Resolved card image issue
- Resolved Fontawesome icon issue
Initial release of the project.