// Browser-side script of the Content Editor editor page. // Inlined into the HTML template at render time by content-editor.js. // Test coverage: scripts/test-content-editor-serializer.js runs this exact code. // ── Render ────────────────────────────────────────────────────────────────── function render(obj, container) { container.innerHTML = ''; renderObject(obj, container, ''); } function renderObject(obj, container, prefix) { for (const [key, val] of Object.entries(obj)) { const path = prefix ? prefix + '.' + key : key; if (Array.isArray(val)) { renderArray(key, val, container, path); } else if (typeof val === 'object' && val !== null) { renderObject(val, container, path); } else { renderPrimitive(path, val, container); } } } function renderPrimitive(path, val, container) { const isLong = String(val).length > 80 || String(val).includes('<'); const div = document.createElement('div'); div.className = 'field'; const type = val === null ? 'null' : typeof val; let control; if (type === 'boolean') { control = ``; } else if (type === 'number') { control = ``; } else { control = isLong ? `