/** * RYM Horizon - Core Navigation Script * @description Gestionnaire d'onglets découplé conforme aux standards W3C */ document.addEventListener('DOMContentLoaded', () => { // Sélecteurs d'éléments de navigation const navLinks = document.querySelectorAll('.sidebar .nav-link'); const tabContents = document.querySelectorAll('.tab-content'); /** * Bascule l'affichage vers l'onglet ciblé * @param {string} targetTabId - L'identifiant de la section à afficher */ const switchTab = (targetTabId) => { // 1. Masquer tous les contenus actifs tabContents.forEach(content => content.classList.remove('active')); // 2. Afficher le contenu demandé const activeTarget = document.getElementById(targetTabId); if (activeTarget) { activeTarget.classList.add('active'); } }; // Attribution dynamique des écouteurs d'événements navLinks.forEach(link => { link.addEventListener('click', (event) => { event.preventDefault(); // Récupération de l'ID cible via le dataset const targetTab = link.getAttribute('data-tab'); if (targetTab) { // Gestion de l'état graphique de la navigation navLinks.forEach(item => item.classList.remove('active')); link.classList.add('active'); // Exécution de la bascule logique switchTab(targetTab); } }); }); });