Update app.js
Browse files
app.js
CHANGED
|
@@ -67,7 +67,6 @@ const LINK_PREFIX = config.model_link_prefix || "";
|
|
| 67 |
const OPT_ORG = config.optimized_org || "embedl";
|
| 68 |
const CHART_CFG = config.chart || {};
|
| 69 |
const GROUP_BY = CHART_CFG.group_by || config.filters[config.filters.length - 1]?.column || "";
|
| 70 |
-
const SCENARIOS = CHART_CFG.scenarios || [];
|
| 71 |
|
| 72 |
function isExternalModel(model) {
|
| 73 |
return !model.startsWith(OPT_ORG + "/");
|
|
@@ -218,8 +217,6 @@ function renderSidebar() {
|
|
| 218 |
).join("");
|
| 219 |
}
|
| 220 |
|
| 221 |
-
|
| 222 |
-
|
| 223 |
familyNav.addEventListener("click", async e => {
|
| 224 |
const item = e.target.closest(".sidebar-item");
|
| 225 |
if (!item) return;
|
|
@@ -269,16 +266,13 @@ function renderBtnGroup(container, items, activeValue) {
|
|
| 269 |
function populateFilters() {
|
| 270 |
renderSidebar();
|
| 271 |
|
| 272 |
-
const chartsShown = filters[GROUP_BY] !== "all";
|
| 273 |
-
|
| 274 |
-
|
| 275 |
// Metric buttons
|
| 276 |
const metricEl = document.getElementById("filter-metric");
|
| 277 |
renderBtnGroup(metricEl,
|
| 278 |
config.metrics.map(m => ({ value: m.column, label: m.short || m.column })),
|
| 279 |
filters.metric
|
| 280 |
);
|
| 281 |
-
metricEl.closest(".filter-group").style.display = (config.metrics.length <= 1 ||
|
| 282 |
|
| 283 |
updateDependentFilters();
|
| 284 |
}
|
|
@@ -512,7 +506,7 @@ function buildTables(filtered, chartsShown) {
|
|
| 512 |
return 0;
|
| 513 |
});
|
| 514 |
|
| 515 |
-
// Track row group
|
| 516 |
let prevGroupVal = undefined;
|
| 517 |
|
| 518 |
const card = document.createElement("div");
|
|
@@ -575,7 +569,7 @@ function buildTables(filtered, chartsShown) {
|
|
| 575 |
const isBest = val !== null && val !== undefined && val === bestByGroup[sg]?.[c.key];
|
| 576 |
const display = val === null ? '<span class="oom">OOM</span>' : (typeof val === "number" ? val.toFixed(2) : (val ?? "—"));
|
| 577 |
const modelColor = MODEL_COLORS[r[MODEL_COL]]?.border || '#888';
|
| 578 |
-
html += `<td${fmCls}>${isBest ? '<strong style="color:
|
| 579 |
} else {
|
| 580 |
html += `<td>${val || "—"}</td>`;
|
| 581 |
}
|
|
|
|
| 67 |
const OPT_ORG = config.optimized_org || "embedl";
|
| 68 |
const CHART_CFG = config.chart || {};
|
| 69 |
const GROUP_BY = CHART_CFG.group_by || config.filters[config.filters.length - 1]?.column || "";
|
|
|
|
| 70 |
|
| 71 |
function isExternalModel(model) {
|
| 72 |
return !model.startsWith(OPT_ORG + "/");
|
|
|
|
| 217 |
).join("");
|
| 218 |
}
|
| 219 |
|
|
|
|
|
|
|
| 220 |
familyNav.addEventListener("click", async e => {
|
| 221 |
const item = e.target.closest(".sidebar-item");
|
| 222 |
if (!item) return;
|
|
|
|
| 266 |
function populateFilters() {
|
| 267 |
renderSidebar();
|
| 268 |
|
|
|
|
|
|
|
|
|
|
| 269 |
// Metric buttons
|
| 270 |
const metricEl = document.getElementById("filter-metric");
|
| 271 |
renderBtnGroup(metricEl,
|
| 272 |
config.metrics.map(m => ({ value: m.column, label: m.short || m.column })),
|
| 273 |
filters.metric
|
| 274 |
);
|
| 275 |
+
metricEl.closest(".filter-group").style.display = (config.metrics.length <= 1 || filters[GROUP_BY] === "all") ? "none" : "";
|
| 276 |
|
| 277 |
updateDependentFilters();
|
| 278 |
}
|
|
|
|
| 506 |
return 0;
|
| 507 |
});
|
| 508 |
|
| 509 |
+
// Track row group for break detection
|
| 510 |
let prevGroupVal = undefined;
|
| 511 |
|
| 512 |
const card = document.createElement("div");
|
|
|
|
| 569 |
const isBest = val !== null && val !== undefined && val === bestByGroup[sg]?.[c.key];
|
| 570 |
const display = val === null ? '<span class="oom">OOM</span>' : (typeof val === "number" ? val.toFixed(2) : (val ?? "—"));
|
| 571 |
const modelColor = MODEL_COLORS[r[MODEL_COL]]?.border || '#888';
|
| 572 |
+
html += `<td${fmCls}>${isBest ? '<strong style="color: white; opacity: 0.7">' + display + '</strong>' : display}</td>`;
|
| 573 |
} else {
|
| 574 |
html += `<td>${val || "—"}</td>`;
|
| 575 |
}
|