// Config Manager - Main orchestrator for modular config system if (typeof window.ConfigManager === 'undefined') { //console.log('ConfigManager: Defining new ConfigManager class...'); class ConfigManager { constructor() { this.core = new ConfigCore(); this.domainManager = new DomainManager(); this.whitelistManager = new IPWhitelistManager(); this.renderer = new ConfigRenderer(); this.sidebar = new ConfigSidebar(); this.form = new ConfigForm(); this.utils = new ConfigUtils(); // Expose IPWhitelistManager globally for wrapper functions window.IPWhitelistManager = this.whitelistManager; } async renderConfig(category) { //console.log('ConfigManager: Rendering ' + category + ' config...'); const configSection = document.getElementById('config-section'); if (!configSection) { console.error('ConfigManager: config-section element not found'); return; } try { // Show loading state with enhanced box styling configSection.innerHTML = `
No configuration items found for this category.
These options are for advanced users and may affect system stability
' + catDesc + '
' : '') + 'Failed to load configuration: ' + error.message + '