/** * World Impo Solution - Elite Logic Engine * High-performance UI logic for Logistics & Global Trade. */ document.addEventListener('DOMContentLoaded', () => { // 1. Initialize Lucide Icons if ((window as any).lucide) { (window as any).lucide.createIcons(); } // 2. Mobile Navigation Toggle Logic const mobileToggle = document.getElementById('mobile-toggle'); const mobileMenu = document.getElementById('mobile-menu'); if (mobileToggle && mobileMenu) { mobileToggle.addEventListener('click', () => { const isHidden = mobileMenu.classList.contains('hidden'); if (isHidden) { mobileMenu.classList.remove('hidden'); mobileToggle.innerHTML = ''; } else { mobileMenu.classList.add('hidden'); mobileToggle.innerHTML = ''; } (window as any).lucide.createIcons(); }); } // 3. Mobile Dropdown Accordion const mobileDropdownToggles = document.querySelectorAll('.mobile-dropdown-toggle'); mobileDropdownToggles.forEach(toggle => { toggle.addEventListener('click', () => { const content = toggle.nextElementSibling; if (content) { const isHidden = content.classList.contains('hidden'); content.classList.toggle('hidden'); const icon = (toggle as HTMLElement).querySelector('i'); if (icon) { icon.style.transform = isHidden ? 'rotate(180deg)' : 'rotate(0deg)'; icon.style.transition = 'transform 0.4s cubic-bezier(0.165, 0.84, 0.44, 1)'; } } }); }); // 4. Hero Slider Engine (Auto-rotate with 6s cross-fade) const slides = document.querySelectorAll('.hero-slide'); const nextBtn = document.getElementById('hero-next'); const prevBtn = document.getElementById('hero-prev'); let currentSlideIndex = 0; let autoSlideInterval: any; const updateSlider = (index: number) => { slides.forEach(s => s.classList.remove('active')); if (slides[index]) { slides[index].classList.add('active'); } }; const nextSlideAction = () => { currentSlideIndex = (currentSlideIndex + 1) % slides.length; updateSlider(currentSlideIndex); }; const prevSlideAction = () => { currentSlideIndex = (currentSlideIndex - 1 + slides.length) % slides.length; updateSlider(currentSlideIndex); }; if (nextBtn) nextBtn.addEventListener('click', () => { nextSlideAction(); restartAutoTimer(); }); if (prevBtn) prevBtn.addEventListener('click', () => { prevSlideAction(); restartAutoTimer(); }); const restartAutoTimer = () => { if (autoSlideInterval) clearInterval(autoSlideInterval); autoSlideInterval = setInterval(nextSlideAction, 6000); }; restartAutoTimer(); // 5. Dynamic Grid Generation (EXACTLY 23 items for "Trending Trade Requests") const bestSellersGrid = document.getElementById('best-sellers-grid'); const generateProductHTML = (id: number) => { const categories = [ 'Precision IC Hardware X-90', 'Automotive Alloy Wheels PRO', 'Sourcing: 24mm Mist Pump', 'Industrial CNC Carbide Drills', 'Lotion Dispenser LX-Gold', 'Sea Freight: Container LCL', 'Solar Cell Inverters Gen-V', 'Luxury Glass Flask 500ml', 'Advanced Circuit Boards G4', 'Heavy Duty Valve Systems', 'Metallic Closure Rings', 'Fragrance Atomizer Elite' ]; const label = categories[id % categories.length]; const sourcePort = ['Shanghai Hub', 'Rotterdam Port', 'Busan Terminal', 'Los Angeles Port', 'Hamburg Zone'][id % 5]; const imageUrl = `https://picsum.photos/seed/impo-${id + 3000}/800/800`; return `
Ready To Export