/** * Hides the telemetry sub-config (sampling + allowed events) when the * master toggle is off. The sub-block is one container so all dependent * fields stay in sync together. */ import { resolveHost } from '../core/app-dom.js'; import { syncControlState } from '../core/app-conditional-controls.js'; export const initTelemetrySettings = (root = document, options = {}) => { const host = resolveHost(root); const toggleSelector = String(options.toggleSelector || '[data-telemetry-enabled-toggle]').trim() || '[data-telemetry-enabled-toggle]'; const dependentSelector = String(options.dependentSelector || '[data-telemetry-when-enabled]').trim() || '[data-telemetry-when-enabled]'; const toggle = host.querySelector(toggleSelector); const dependent = host.querySelector(dependentSelector); if (!toggle || !dependent) { return { destroy: () => {} }; } const sync = () => syncControlState(dependent, Boolean(toggle.checked)); toggle.addEventListener('change', sync); sync(); return { destroy: () => { toggle.removeEventListener('change', sync); }, }; };