// Exploration helpers loaded // Helper: Render exploration field with smart type detection function renderExpField(label, value) { if (value === null || value === undefined) return ''; let rendered; if (typeof value === 'string') { rendered = `

${escapeHtml(value)}

`; } else if (Array.isArray(value)) { rendered = renderExpArray(value); } else if (typeof value === 'object') { rendered = renderExpObject(value); } else { rendered = `

${escapeHtml(String(value))}

`; } return `
${rendered}
`; } // Helper: Render array values function renderExpArray(arr) { if (!arr.length) return '

-

'; if (typeof arr[0] === 'object' && arr[0] !== null) { return `
${arr.map(item => { if (item.question) { return `
${escapeHtml(item.question)}
${item.impact ? `
Impact: ${escapeHtml(item.impact)}
` : ''} ${item.priority ? `${item.priority}` : ''}
`; } return `
${renderExpObject(item)}
`; }).join('')}
`; } return ``; } // Helper: Render object values recursively function renderExpObject(obj) { if (!obj || typeof obj !== 'object') return ''; const entries = Object.entries(obj).filter(([k]) => !k.startsWith('_')); if (!entries.length) return '

-

'; return `
${entries.map(([key, val]) => { const label = key.replace(/_/g, ' ').replace(/\b\w/g, c => c.toUpperCase()); if (val === null || val === undefined) return ''; if (typeof val === 'string') { return `
${escapeHtml(label)}: ${escapeHtml(val)}
`; } else if (Array.isArray(val)) { return `
${escapeHtml(label)}:${renderExpArray(val)}
`; } else if (typeof val === 'object') { return `
${escapeHtml(label)}${renderExpObject(val)}
`; } return `
${escapeHtml(label)}: ${escapeHtml(String(val))}
`; }).join('')}
`; }