| | |
| | | import { SVGRenderer } from 'echarts/renderers' |
| | | import { compareSelectionKey, getComparePrintVersion, type SavedCompareReport } from '@/api/compareReports' |
| | | import type { CompareMetricKey } from '@/stores/compareReports' |
| | | import { compareChartOption, compareSeriesName } from './compareReportChart' |
| | | import { compareChartOption, compareSeriesLabel } from './compareReportChart' |
| | | import { openSavedReportPrint } from './savedReportPrint' |
| | | import { compareDetailSources } from './compareSourceDetails' |
| | | import { reportDetailColumn, reportDetailsHtml } from './reportTestDetails' |
| | |
| | | const color = record.settings.seriesColors[index % record.settings.seriesColors.length] |
| | | const safeColor = color && /^#[0-9a-f]{6}$/i.test(color) ? color : '#52606d' |
| | | const hidden = record.settings.hiddenSeriesKeys?.includes(compareSelectionKey(item.source.selection)) |
| | | return `<span${hidden ? ' style="text-decoration:line-through;color:#8795a3"' : ''}><i style="background:${safeColor}"></i>${escapeHtml(compareSeriesName(item))}</span>` |
| | | return `<span${hidden ? ' style="text-decoration:line-through;color:#8795a3"' : ''}><i style="background:${safeColor}"></i>${escapeHtml(compareSeriesLabel(item))}</span>` |
| | | }).join('') |
| | | const charts = compareMetricDefinitions.filter(metric => record.settings.metrics.includes(metric.key)).map(metric => |
| | | `<article class="chart-card"><header><strong>${metric.title} (${escapeHtml(record.displayUnits[metric.key] || metric.unit)})</strong></header>${chartSvg(metric, record)}<div class="chart-inner-legend">${legend}</div></article>`).join('') |