(label, leftName, leftRaw, rightName, rightRaw, formatter, delta)
| 1139 | } |
| 1140 | |
| 1141 | function compareSummaryCard(label, leftName, leftRaw, rightName, rightRaw, formatter, delta) { |
| 1142 | const tone = buildCompareTone(leftRaw, rightRaw, formatter); |
| 1143 | const leftValue = formatter(leftRaw); |
| 1144 | const rightValue = formatter(rightRaw); |
| 1145 | return ` |
| 1146 | <article class="panel stat-card compare-card ${tone.changed ? "compare-card-changed" : ""}"> |
| 1147 | <p class="section-kicker">${escapeHtml(label)}</p> |
| 1148 | <div class="compare-values compare-values-stacked"> |
| 1149 | <div class="compare-value-row ${tone.leftClass}"> |
| 1150 | <div class="compare-value-meta"> |
| 1151 | <span class="compare-run-label">A</span> |
| 1152 | <span class="compare-run-name">${escapeHtml(leftName)}</span> |
| 1153 | </div> |
| 1154 | <strong class="compare-value-strong">${escapeHtml(leftValue)}</strong> |
| 1155 | </div> |
| 1156 | <div class="compare-value-row ${tone.rightClass}"> |
| 1157 | <div class="compare-value-meta"> |
| 1158 | <span class="compare-run-label">B</span> |
| 1159 | <span class="compare-run-name">${escapeHtml(rightName)}</span> |
| 1160 | </div> |
| 1161 | <strong class="compare-value-strong">${escapeHtml(rightValue)}</strong> |
| 1162 | </div> |
| 1163 | </div> |
| 1164 | <p class="compare-delta"><span class="${tone.deltaClass}">${escapeHtml(delta)}</span></p> |
| 1165 | </article> |
| 1166 | `; |
| 1167 | } |
| 1168 | |
| 1169 | function buildStats(overview, series) { |
| 1170 | return [ |
no test coverage detected