feat(dossiers-ngi): sticky bar vs-parent loc-on-roots split plus/minus 45rem
This commit is contained in:
parent
da6f384399
commit
7397cddb83
6 changed files with 148 additions and 85 deletions
|
|
@ -13,7 +13,7 @@ html {
|
|||
width: 100%;
|
||||
max-width: none;
|
||||
margin: 0;
|
||||
padding: 0.2rem 0.75rem 0.25rem;
|
||||
padding: 0.2rem 0 0.25rem;
|
||||
background: #10141a;
|
||||
border-bottom: 1px solid #243040;
|
||||
color: #c8d0d8;
|
||||
|
|
@ -22,8 +22,9 @@ html {
|
|||
line-height: 1.25;
|
||||
}
|
||||
.cascade-tree {
|
||||
/* 45rem = site #navigation/#content 45em at root 16px (bar font is 11px) */
|
||||
width: 100%;
|
||||
max-width: min(80rem, calc(100vw - 1.5rem));
|
||||
max-width: 45rem;
|
||||
margin: 0 auto;
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
|
@ -35,8 +36,8 @@ html {
|
|||
}
|
||||
a.cascade-tree-row {
|
||||
display: grid;
|
||||
grid-template-columns: minmax(12rem, 1fr) 7.5rem 11.5rem 7rem;
|
||||
column-gap: 0.85rem;
|
||||
grid-template-columns: minmax(6rem, 1fr) 7.2rem 10.5rem 4.4rem 3.6rem;
|
||||
column-gap: 0.55rem;
|
||||
align-items: baseline;
|
||||
color: #7ec8ff;
|
||||
text-decoration: none;
|
||||
|
|
@ -68,7 +69,8 @@ a.cascade-tree-row.is-active:hover {
|
|||
}
|
||||
.cascade-when,
|
||||
.cascade-built,
|
||||
.cascade-diff {
|
||||
.cascade-plus,
|
||||
.cascade-minus {
|
||||
text-align: right;
|
||||
font-variant-numeric: tabular-nums;
|
||||
white-space: nowrap;
|
||||
|
|
@ -78,17 +80,17 @@ a.cascade-tree-row.is-active:hover {
|
|||
display: none;
|
||||
}
|
||||
|
||||
@media (max-width: 40em) {
|
||||
@media (max-width: 45rem) {
|
||||
.cascade-bar {
|
||||
padding: 0.15rem 0.35rem 0.2rem;
|
||||
padding: 0.15rem 0.4rem 0.2rem;
|
||||
font-size: 10px;
|
||||
}
|
||||
.cascade-tree {
|
||||
max-width: 100%;
|
||||
}
|
||||
a.cascade-tree-row {
|
||||
grid-template-columns: minmax(8rem, 1fr) 6.5rem 10rem 6rem;
|
||||
column-gap: 0.45rem;
|
||||
grid-template-columns: minmax(5rem, 1fr) 5.6rem 8.4rem 3.6rem 3rem;
|
||||
column-gap: 0.35rem;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -100,3 +102,8 @@ a.cascade-tree-row.is-active:hover {
|
|||
color: #f85149;
|
||||
font-weight: 600;
|
||||
}
|
||||
.cascade-bar .diff-loc,
|
||||
.cascade-bar .diff-loc-unit {
|
||||
color: #8a96a3;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -59,20 +59,30 @@
|
|||
return sec || at;
|
||||
}
|
||||
|
||||
function diffHtml(row) {
|
||||
var plus = row.vs_main_plus;
|
||||
var minus = row.vs_main_minus;
|
||||
if (plus == null && minus == null) return "";
|
||||
var p = plus == null ? 0 : Number(plus);
|
||||
var m = minus == null ? 0 : Number(minus);
|
||||
if (!isFinite(p) || !isFinite(m)) return "";
|
||||
return (
|
||||
'<span class="diff-plus">+' +
|
||||
esc(String(p)) +
|
||||
'</span> <span class="diff-minus">−' +
|
||||
esc(String(m)) +
|
||||
"</span>"
|
||||
);
|
||||
function plusHtml(row) {
|
||||
if (row.vs_parent_plus != null) {
|
||||
var p = Number(row.vs_parent_plus);
|
||||
if (!isFinite(p)) return "";
|
||||
return '<span class="diff-plus">+' + esc(String(p)) + "</span>";
|
||||
}
|
||||
if (row.loc != null) {
|
||||
var n = Number(row.loc);
|
||||
if (!isFinite(n)) return "";
|
||||
return '<span class="diff-loc">' + esc(String(n)) + "</span>";
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function minusHtml(row) {
|
||||
if (row.vs_parent_minus != null) {
|
||||
var m = Number(row.vs_parent_minus);
|
||||
if (!isFinite(m)) return "";
|
||||
return '<span class="diff-minus">−' + esc(String(m)) + "</span>";
|
||||
}
|
||||
if (row.loc != null) {
|
||||
return '<span class="diff-loc-unit">LOC</span>';
|
||||
}
|
||||
return "";
|
||||
}
|
||||
|
||||
function setText(el, text) {
|
||||
|
|
@ -84,15 +94,15 @@
|
|||
function rowTitle(row) {
|
||||
var tip = row.tip || "";
|
||||
var tipTime = row.tip_time || "";
|
||||
var plus = row.vs_main_plus;
|
||||
var minus = row.vs_main_minus;
|
||||
var vs = "";
|
||||
if (plus != null || minus != null) {
|
||||
if (row.vs_parent_plus != null || row.vs_parent_minus != null) {
|
||||
vs =
|
||||
" vs main +" +
|
||||
String(plus == null ? 0 : plus) +
|
||||
" vs parent +" +
|
||||
String(row.vs_parent_plus == null ? 0 : row.vs_parent_plus) +
|
||||
"/−" +
|
||||
String(minus == null ? 0 : minus);
|
||||
String(row.vs_parent_minus == null ? 0 : row.vs_parent_minus);
|
||||
} else if (row.loc != null) {
|
||||
vs = " loc=" + String(row.loc);
|
||||
}
|
||||
var built = builtText(row);
|
||||
return (
|
||||
|
|
@ -181,10 +191,15 @@
|
|||
else a.removeAttribute("data-default");
|
||||
setText(a.querySelector(".cascade-when"), shortTime(row.tip_time || ""));
|
||||
setText(a.querySelector(".cascade-built"), builtText(row));
|
||||
var diffEl = a.querySelector(".cascade-diff");
|
||||
if (diffEl) {
|
||||
var dh = diffHtml(row);
|
||||
if (diffEl.innerHTML !== dh) diffEl.innerHTML = dh;
|
||||
var plusEl = a.querySelector(".cascade-plus");
|
||||
if (plusEl) {
|
||||
var ph = plusHtml(row);
|
||||
if (plusEl.innerHTML !== ph) plusEl.innerHTML = ph;
|
||||
}
|
||||
var minusEl = a.querySelector(".cascade-minus");
|
||||
if (minusEl) {
|
||||
var mh = minusHtml(row);
|
||||
if (minusEl.innerHTML !== mh) minusEl.innerHTML = mh;
|
||||
}
|
||||
a.setAttribute("title", rowTitle(row));
|
||||
}
|
||||
|
|
@ -252,8 +267,11 @@
|
|||
'<span class="cascade-built">' +
|
||||
esc(builtText(row)) +
|
||||
"</span>" +
|
||||
'<span class="cascade-diff">' +
|
||||
diffHtml(row) +
|
||||
'<span class="cascade-plus">' +
|
||||
plusHtml(row) +
|
||||
"</span>" +
|
||||
'<span class="cascade-minus">' +
|
||||
minusHtml(row) +
|
||||
"</span>" +
|
||||
"</a>"
|
||||
);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue