Spaces:
Running
Running
| // Initialize tooltips | |
| document.addEventListener('DOMContentLoaded', function() { | |
| checkSecurityHeaders(); | |
| // This would be replaced with actual tooltip initialization | |
| console.log('Tooltips initialized'); | |
| // Simulate loading data | |
| setTimeout(() => { | |
| const loadingElements = document.querySelectorAll('.loading'); | |
| loadingElements.forEach(el => { | |
| el.classList.remove('loading'); | |
| }); | |
| }, 1500); | |
| }); | |
| // Security check | |
| function checkSecurityHeaders() { | |
| const securityHeaders = { | |
| 'Content-Security-Policy': document.querySelector('meta[http-equiv="Content-Security-Policy"]') !== null, | |
| 'X-Frame-Options': document.querySelector('meta[http-equiv="X-Frame-Options"]') !== null, | |
| 'X-Content-Type-Options': document.querySelector('meta[http-equiv="X-Content-Type-Options"]') !== null, | |
| 'Strict-Transport-Security': document.querySelector('meta[http-equiv="Strict-Transport-Security"]') !== null | |
| }; | |
| if (!Object.values(securityHeaders).every(Boolean)) { | |
| console.warn('Some security headers are missing'); | |
| } | |
| } | |
| // Toggle mobile menu | |
| function toggleMobileMenu() { | |
| const sidebar = document.querySelector('custom-sidebar'); | |
| const body = document.body; | |
| if (sidebar) { | |
| sidebar.isMobileOpen = !sidebar.isMobileOpen; | |
| sidebar.render(); | |
| if (sidebar.isMobileOpen) { | |
| body.classList.add('menu-open'); | |
| body.style.overflow = 'hidden'; | |
| } else { | |
| body.classList.remove('menu-open'); | |
| body.style.overflow = ''; | |
| } | |
| } | |
| } | |
| // Viewport meta tag for mobile | |
| function setupViewport() { | |
| const viewportMeta = document.createElement('meta'); | |
| viewportMeta.name = 'viewport'; | |
| viewportMeta.content = 'width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no'; | |
| document.head.appendChild(viewportMeta); | |
| } | |
| // Initialize mobile setup | |
| document.addEventListener('DOMContentLoaded', function() { | |
| setupViewport(); | |
| checkSecurityHeaders(); | |
| // Simulate loading data | |
| setTimeout(() => { | |
| const loadingElements = document.querySelectorAll('.loading'); | |
| loadingElements.forEach(el => { | |
| el.classList.remove('loading'); | |
| }); | |
| }, 1500); | |
| }); | |
| // Dark mode toggle | |
| function toggleDarkMode() { | |
| document.documentElement.classList.toggle('dark'); | |
| localStorage.setItem('darkMode', document.documentElement.classList.contains('dark')); | |
| } | |
| // Check for saved dark mode preference | |
| if (localStorage.getItem('darkMode') === 'false') { | |
| document.documentElement.classList.remove('dark'); | |
| } |