@wral/hsot-data 0.1.9 → 0.1.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -89,7 +89,9 @@ Without slotted rail content the view renders full width, unchanged.
89
89
  Standings, records, streaks and rank badges are **derived client-side** from
90
90
  Game and Ranking payloads:
91
91
 
92
- - Winner rule: forfeit (names the awarded side) → score → tiebreakWinner.
92
+ - Winner rule: forfeit → score → tiebreakWinner. `forfeit` names the side
93
+ that **forfeited** (the Studio select reads "Home team forfeits"), so the
94
+ other side wins regardless of score.
93
95
  - gameType semantics: scrimmage counts toward nothing; conference counts
94
96
  toward overall **and** conference records; nonconference/playoff toward
95
97
  overall only.
package/dist/define.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { c as e, H as n, b as c, a, e as i, d as h } from "./hsot-school-search-D1W24ixG.js";
1
+ import { c as e, H as n, b as c, a, e as i, d as h } from "./hsot-school-search-CKZtwPCA.js";
2
2
  const r = {
3
3
  "hsot-scores": h,
4
4
  "hsot-standings": i,
@@ -249,7 +249,7 @@ let I = class extends HTMLElement {
249
249
  I.elementStyles = [], I.shadowRootOptions = { mode: "open" }, I[B("elementProperties")] = /* @__PURE__ */ new Map(), I[B("finalized")] = /* @__PURE__ */ new Map(), de?.({ ReactiveElement: I }), (X.reactiveElementVersions ??= []).push("2.1.2");
250
250
  const ct = globalThis, St = (a) => a, Y = ct.trustedTypes, At = Y ? Y.createPolicy("lit-html", { createHTML: (a) => a }) : void 0, Ut = "$lit$", k = `lit$${Math.random().toFixed(9).slice(2)}$`, Ot = "?" + k, pe = `<${Ot}>`, T = document, F = () => T.createComment(""), N = (a) => a === null || typeof a != "object" && typeof a != "function", ht = Array.isArray, me = (a) => ht(a) || typeof a?.[Symbol.iterator] == "function", rt = `[
251
251
  \f\r]`, R = /<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g, Tt = /-->/g, It = />/g, S = RegExp(`>|${rt}(?:([^\\s"'>=/]+)(${rt}*=${rt}*(?:[^
252
- \f\r"'\`<>=]|("|')|))|$)`, "g"), Ct = /'/g, Et = /"/g, Ht = /^(?:script|style|textarea|title)$/i, Mt = (a) => (t, ...e) => ({ _$litType$: a, strings: t, values: e }), l = Mt(1), Pt = Mt(2), P = /* @__PURE__ */ Symbol.for("lit-noChange"), m = /* @__PURE__ */ Symbol.for("lit-nothing"), Dt = /* @__PURE__ */ new WeakMap(), A = T.createTreeWalker(T, 129);
252
+ \f\r"'\`<>=]|("|')|))|$)`, "g"), Ct = /'/g, Et = /"/g, Ht = /^(?:script|style|textarea|title)$/i, Mt = (a) => (t, ...e) => ({ _$litType$: a, strings: t, values: e }), c = Mt(1), Pt = Mt(2), P = /* @__PURE__ */ Symbol.for("lit-noChange"), m = /* @__PURE__ */ Symbol.for("lit-nothing"), Dt = /* @__PURE__ */ new WeakMap(), A = T.createTreeWalker(T, 129);
253
253
  function Lt(a, t) {
254
254
  if (!ht(a) || !a.hasOwnProperty("raw")) throw Error("invalid template strings array");
255
255
  return At !== void 0 ? At.createHTML(t) : t;
@@ -259,10 +259,10 @@ const fe = (a, t) => {
259
259
  let r, o = t === 2 ? "<svg>" : t === 3 ? "<math>" : "", i = R;
260
260
  for (let n = 0; n < e; n++) {
261
261
  const d = a[n];
262
- let c, h, p = -1, f = 0;
263
- for (; f < d.length && (i.lastIndex = f, h = i.exec(d), h !== null); ) f = i.lastIndex, i === R ? h[1] === "!--" ? i = Tt : h[1] !== void 0 ? i = It : h[2] !== void 0 ? (Ht.test(h[2]) && (r = RegExp("</" + h[2], "g")), i = S) : h[3] !== void 0 && (i = S) : i === S ? h[0] === ">" ? (i = r ?? R, p = -1) : h[1] === void 0 ? p = -2 : (p = i.lastIndex - h[2].length, c = h[1], i = h[3] === void 0 ? S : h[3] === '"' ? Et : Ct) : i === Et || i === Ct ? i = S : i === Tt || i === It ? i = R : (i = S, r = void 0);
262
+ let l, h, p = -1, f = 0;
263
+ for (; f < d.length && (i.lastIndex = f, h = i.exec(d), h !== null); ) f = i.lastIndex, i === R ? h[1] === "!--" ? i = Tt : h[1] !== void 0 ? i = It : h[2] !== void 0 ? (Ht.test(h[2]) && (r = RegExp("</" + h[2], "g")), i = S) : h[3] !== void 0 && (i = S) : i === S ? h[0] === ">" ? (i = r ?? R, p = -1) : h[1] === void 0 ? p = -2 : (p = i.lastIndex - h[2].length, l = h[1], i = h[3] === void 0 ? S : h[3] === '"' ? Et : Ct) : i === Et || i === Ct ? i = S : i === Tt || i === It ? i = R : (i = S, r = void 0);
264
264
  const u = i === S && a[n + 1].startsWith("/>") ? " " : "";
265
- o += i === R ? d + pe : p >= 0 ? (s.push(c), d.slice(0, p) + Ut + d.slice(p) + k + u) : d + k + (p === -2 ? n : u);
265
+ o += i === R ? d + pe : p >= 0 ? (s.push(l), d.slice(0, p) + Ut + d.slice(p) + k + u) : d + k + (p === -2 ? n : u);
266
266
  }
267
267
  return [Lt(a, o + (a[e] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), s];
268
268
  };
@@ -271,8 +271,8 @@ class U {
271
271
  let r;
272
272
  this.parts = [];
273
273
  let o = 0, i = 0;
274
- const n = t.length - 1, d = this.parts, [c, h] = fe(t, e);
275
- if (this.el = U.createElement(c, s), A.currentNode = this.el.content, e === 2 || e === 3) {
274
+ const n = t.length - 1, d = this.parts, [l, h] = fe(t, e);
275
+ if (this.el = U.createElement(l, s), A.currentNode = this.el.content, e === 2 || e === 3) {
276
276
  const p = this.el.content.firstChild;
277
277
  p.replaceWith(...p.childNodes);
278
278
  }
@@ -325,8 +325,8 @@ class ue {
325
325
  let o = A.nextNode(), i = 0, n = 0, d = s[0];
326
326
  for (; d !== void 0; ) {
327
327
  if (i === d.index) {
328
- let c;
329
- d.type === 2 ? c = new M(o, o.nextSibling, this, t) : d.type === 1 ? c = new d.ctor(o, d.name, d.strings, this, t) : d.type === 6 && (c = new be(o, this, t)), this._$AV.push(c), d = s[++n];
328
+ let l;
329
+ d.type === 2 ? l = new M(o, o.nextSibling, this, t) : d.type === 1 ? l = new d.ctor(o, d.name, d.strings, this, t) : d.type === 6 && (l = new be(o, this, t)), this._$AV.push(l), d = s[++n];
330
330
  }
331
331
  i !== d?.index && (o = A.nextNode(), i++);
332
332
  }
@@ -412,8 +412,8 @@ class tt {
412
412
  if (o === void 0) t = D(this, t, e, 0), i = !N(t) || t !== this._$AH && t !== P, i && (this._$AH = t);
413
413
  else {
414
414
  const n = t;
415
- let d, c;
416
- for (t = o[0], d = 0; d < o.length - 1; d++) c = D(this, n[s + d], e, d), c === P && (c = this._$AH[d]), i ||= !N(c) || c !== this._$AH[d], c === m ? t = m : t !== m && (t += (c ?? "") + o[d + 1]), this._$AH[d] = c;
415
+ let d, l;
416
+ for (t = o[0], d = 0; d < o.length - 1; d++) l = D(this, n[s + d], e, d), l === P && (l = this._$AH[d]), i ||= !N(l) || l !== this._$AH[d], l === m ? t = m : t !== m && (t += (l ?? "") + o[d + 1]), this._$AH[d] = l;
417
417
  }
418
418
  i && !r && this.j(t);
419
419
  }
@@ -512,21 +512,21 @@ function Se({ baseUrl: a, token: t = "", fetchFn: e } = {}) {
512
512
  async function o(n) {
513
513
  const d = { Accept: "application/json" };
514
514
  t && (d.Authorization = `Bearer ${t}`);
515
- const c = await r(`${s}${n}`, { headers: d });
516
- if (!c.ok) {
517
- const h = new Error(`api-hsot ${c.status} on ${n}`);
518
- throw h.status = c.status, h;
515
+ const l = await r(`${s}${n}`, { headers: d });
516
+ if (!l.ok) {
517
+ const h = new Error(`api-hsot ${l.status} on ${n}`);
518
+ throw h.status = l.status, h;
519
519
  }
520
- return c.json();
520
+ return l.json();
521
521
  }
522
522
  async function i(n, d = {}) {
523
- const c = [];
523
+ const l = [];
524
524
  let h = null;
525
525
  for (let p = 0; p < ke; p += 1) {
526
526
  const f = _e(h ? { ...d, cursor: h } : d), u = await o(`${n}${f}`);
527
- if (c.push(...u.items || []), h = u.nextCursor || null, !h) break;
527
+ if (l.push(...u.items || []), h = u.nextCursor || null, !h) break;
528
528
  }
529
- return { items: c, total: c.length, nextCursor: null };
529
+ return { items: l, total: l.length, nextCursor: null };
530
530
  }
531
531
  return {
532
532
  listSchools: (n) => i("/schools", n),
@@ -634,7 +634,7 @@ function Ee(a, t, e) {
634
634
  if (s === i) return "";
635
635
  if (!s.startsWith(`${i}/`)) return null;
636
636
  const n = s.slice(i.length + 1), d = n.split("/");
637
- return d.length > 2 || d.some((c) => !/^[a-z][a-z-]*$/.test(c)) || Ce.has(d[0]) ? null : n;
637
+ return d.length > 2 || d.some((l) => !/^[a-z][a-z-]*$/.test(l)) || Ce.has(d[0]) ? null : n;
638
638
  }
639
639
  function Pe(a, t, e) {
640
640
  const s = (i) => g(e.section, { sport: a, view: i }).replace(/([^:])\/{2,}/g, "$1/"), o = new Set((t || []).map((i) => i && i.gender).filter((i) => i === "boys" || i === "girls")).size === 2 ? [
@@ -714,10 +714,10 @@ class w extends E {
714
714
  this._refreshId && (clearInterval(this._refreshId), this._refreshId = null);
715
715
  }
716
716
  render() {
717
- return this.error === "not-configured" ? l`<div class="error">This component needs an <code>api</code> attribute (the api-hsot public read-surface base URL) or an injected client.</div>` : this.error ? l`<div class="error">Unable to load right now. <button class="chip" @click=${() => this.load()}>Retry</button></div>` : this.data ? this.renderView() : l`<div class="loading" role="status">Loading…</div>`;
717
+ return this.error === "not-configured" ? c`<div class="error">This component needs an <code>api</code> attribute (the api-hsot public read-surface base URL) or an injected client.</div>` : this.error ? c`<div class="error">Unable to load right now. <button class="chip" @click=${() => this.load()}>Retry</button></div>` : this.data ? this.renderView() : c`<div class="loading" role="status">Loading…</div>`;
718
718
  }
719
719
  renderView() {
720
- return l``;
720
+ return c``;
721
721
  }
722
722
  }
723
723
  const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), ze = b`
@@ -980,19 +980,19 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), ze = b`
980
980
  .gamelist a.box { font-size: 0.78rem; }
981
981
  `, j = [ze, Re, Be, Fe, Ne, Ue, Oe];
982
982
  function ut(a) {
983
- return a.state !== "final" ? null : a.forfeit && a.forfeit !== "none" ? a.forfeit : a.homeScore > a.awayScore ? "home" : a.awayScore > a.homeScore ? "away" : a.tiebreakWinner && a.tiebreakWinner !== "none" ? a.tiebreakWinner : "tie";
983
+ return a.state !== "final" ? null : a.forfeit === "home" ? "away" : a.forfeit === "away" || a.homeScore > a.awayScore ? "home" : a.awayScore > a.homeScore ? "away" : a.tiebreakWinner && a.tiebreakWinner !== "none" ? a.tiebreakWinner : "tie";
984
984
  }
985
985
  function He(a) {
986
- return !a || !a.forfeit || a.forfeit === "none" ? null : a.forfeit === "home" ? "away" : a.forfeit === "away" ? "home" : null;
986
+ return a && (a.forfeit === "home" || a.forfeit === "away") ? a.forfeit : null;
987
987
  }
988
988
  function W(a, t) {
989
989
  const e = {}, s = (o) => (e[o] = e[o] || { w: 0, l: 0, t: 0, cw: 0, cl: 0, ct: 0, pf: 0, pa: 0, results: [] }, e[o]), r = a.filter((o) => o.state === "final" && o.gameType !== "scrimmage" && !0).sort((o, i) => String(o.date).localeCompare(String(i.date)));
990
990
  for (const o of r) {
991
991
  const i = ut(o), n = o.gameType === "conference";
992
992
  for (const d of ["home", "away"]) {
993
- const c = d === "home" ? o.homeTeamId : o.awayTeamId;
994
- if (!c) continue;
995
- const h = s(c), p = d === "home" ? o.homeScore : o.awayScore, f = d === "home" ? o.awayScore : o.homeScore;
993
+ const l = d === "home" ? o.homeTeamId : o.awayTeamId;
994
+ if (!l) continue;
995
+ const h = s(l), p = d === "home" ? o.homeScore : o.awayScore, f = d === "home" ? o.awayScore : o.homeScore;
996
996
  h.pf += p, h.pa += f;
997
997
  let u = "T";
998
998
  i === "tie" ? (h.t += 1, n && (h.ct += 1)) : i === d ? (h.w += 1, n && (h.cw += 1), u = "W") : (h.l += 1, n && (h.cl += 1), u = "L"), h.results.push({ gameId: o.id, date: o.date, mark: u, my: p, their: f, opp: d === "home" ? o.awayTeamId : o.homeTeamId, conf: n });
@@ -1035,13 +1035,13 @@ function vt(a, t, e, s, r) {
1035
1035
  const i = /* @__PURE__ */ new Map();
1036
1036
  for (const d of a || []) {
1037
1037
  if (d.sport !== s || r && d.effectiveDate > r || d.gender && o.gender !== d.gender && o.gender !== "coed") continue;
1038
- const c = d.gender || "", h = i.get(c);
1039
- (!h || d.effectiveDate > h.effectiveDate) && i.set(c, d);
1038
+ const l = d.gender || "", h = i.get(l);
1039
+ (!h || d.effectiveDate > h.effectiveDate) && i.set(l, d);
1040
1040
  }
1041
1041
  let n = null;
1042
1042
  for (const d of i.values()) {
1043
- const c = (d.teamIds || []).indexOf(e);
1044
- c !== -1 && (!n || d.effectiveDate > n.effectiveDate) && (n = { poll: d, rank: c + 1 });
1043
+ const l = (d.teamIds || []).indexOf(e);
1044
+ l !== -1 && (!n || d.effectiveDate > n.effectiveDate) && (n = { poll: d, rank: l + 1 });
1045
1045
  }
1046
1046
  return n ? n.rank : null;
1047
1047
  }
@@ -1074,17 +1074,17 @@ function je(a, t) {
1074
1074
  }
1075
1075
  function $t(a, t, { title: e, sub: s, teams: r }) {
1076
1076
  const o = Wt(), n = !!a.querySelector(':scope > a[slot="nav"]') || Ee(o, t.hrefs, t.sport) !== null;
1077
- return l`
1077
+ return c`
1078
1078
  <div class="band section">
1079
1079
  <div class="inner">
1080
1080
  <h1>${e}</h1>
1081
- ${s ? l`<p class="sub">${s}</p>` : m}
1081
+ ${s ? c`<p class="sub">${s}</p>` : m}
1082
1082
  </div>
1083
- ${n ? l`
1083
+ ${n ? c`
1084
1084
  <nav class="sectionnav" aria-label="${z(t.sport)} section">
1085
1085
  <div class="navrow">
1086
1086
  <slot name="nav">
1087
- ${Pe(t.sport, r, t.hrefs).map((d) => l`<a href=${d.href}
1087
+ ${Pe(t.sport, r, t.hrefs).map((d) => c`<a href=${d.href}
1088
1088
  aria-current=${o && _(d.href) === o ? "page" : m}>${d.label}</a>`)}
1089
1089
  </slot>
1090
1090
  </div>
@@ -1100,50 +1100,50 @@ function H(a, t = 26) {
1100
1100
  if (!a) return m;
1101
1101
  const e = Q(a, t);
1102
1102
  if (e)
1103
- return l`<img class="swatch logo" aria-hidden="true" alt="" loading="lazy"
1103
+ return c`<img class="swatch logo" aria-hidden="true" alt="" loading="lazy"
1104
1104
  src=${e} style="width:${t}px;height:${t}px" />`;
1105
1105
  const s = a.colorPrimary || "#030711", r = K(s);
1106
- return l`<span class="swatch" aria-hidden="true"
1106
+ return c`<span class="swatch" aria-hidden="true"
1107
1107
  style="width:${t}px;height:${t}px;background:${s};color:${r};font-size:${Math.max(8, t * 0.28)}px"
1108
1108
  >${ft(a)}</span>`;
1109
1109
  }
1110
1110
  function bt(a, t, e) {
1111
1111
  const s = vt(a.rankings, a.teamsById, t, a.sport, e);
1112
- return s ? l`<span class="rankbadge">#${s}</span>` : m;
1112
+ return s ? c`<span class="rankbadge">#${s}</span>` : m;
1113
1113
  }
1114
1114
  function Vt(a, t, e) {
1115
1115
  const s = O(a, t);
1116
- return s ? l`${bt(a, t, e)}<a href=${g(a.hrefs.school, { id: s.id })}>${s.name}</a>` : l`<span class="mut">TBD</span>`;
1116
+ return s ? c`${bt(a, t, e)}<a href=${g(a.hrefs.school, { id: s.id })}>${s.name}</a>` : c`<span class="mut">TBD</span>`;
1117
1117
  }
1118
1118
  function yt(a, t, e = 5) {
1119
1119
  const s = a.records[t];
1120
- if (!s || !s.results.length) return l`<span class="mut">·</span>`;
1120
+ if (!s || !s.results.length) return c`<span class="mut">·</span>`;
1121
1121
  const r = s.results.slice(-1 * e);
1122
- return l`<span class="dots" role="img" aria-label="last ${r.length} results">
1123
- ${r.map((o) => l`<a class="dot ${o.mark}"
1122
+ return c`<span class="dots" role="img" aria-label="last ${r.length} results">
1123
+ ${r.map((o) => c`<a class="dot ${o.mark}"
1124
1124
  title="${o.mark} ${o.my}-${o.their} vs ${C(a, o.opp)}"
1125
1125
  href=${g(a.hrefs.game, { sport: a.sport, id: o.gameId })}>${o.mark}</a>`)}
1126
1126
  </span>`;
1127
1127
  }
1128
1128
  function q(a, t) {
1129
- return a.querySelector(':scope > [slot="rail"]') ? l`<div class="view withrail">
1129
+ return a.querySelector(':scope > [slot="rail"]') ? c`<div class="view withrail">
1130
1130
  <div class="viewmain">${t}</div>
1131
1131
  <aside class="viewrail"><slot name="rail"></slot></aside>
1132
- </div>` : l`<div class="view">${t}</div>`;
1132
+ </div>` : c`<div class="view">${t}</div>`;
1133
1133
  }
1134
1134
  function G(a) {
1135
1135
  if (!a.promoImage) return m;
1136
- const t = l`<img src=${a.promoImage} alt=${a.promoAlt || "Sponsor"}>`;
1137
- return l`<div class="promo">${a.promoHref ? l`<a href=${a.promoHref} target="_blank" rel="sponsored noopener">${t}</a>` : t}</div>`;
1136
+ const t = c`<img src=${a.promoImage} alt=${a.promoAlt || "Sponsor"}>`;
1137
+ return c`<div class="promo">${a.promoHref ? c`<a href=${a.promoHref} target="_blank" rel="sponsored noopener">${t}</a>` : t}</div>`;
1138
1138
  }
1139
1139
  function J(a) {
1140
1140
  const t = jt(a);
1141
- return l`<span class="pill ${t.kind}">${t.label}</span>`;
1141
+ return c`<span class="pill ${t.kind}">${t.label}</span>`;
1142
1142
  }
1143
1143
  function Yt(a, t, e) {
1144
- if (!t) return l`<span class="mut">·</span>`;
1144
+ if (!t) return c`<span class="mut">·</span>`;
1145
1145
  const s = t.homeTeamId === e ? t.awayTeamId : t.homeTeamId, r = t.homeTeamId === e ? "vs" : "at";
1146
- return l`${t.state === "live" ? l`<span class="pill live">Live</span> ` : l`${y(t.date, { month: "numeric", day: "numeric" })} `}${r} ${Z(a, s)}`;
1146
+ return c`${t.state === "live" ? c`<span class="pill live">Live</span> ` : c`${y(t.date, { month: "numeric", day: "numeric" })} `}${r} ${Z(a, s)}`;
1147
1147
  }
1148
1148
  class Kt extends w {
1149
1149
  static styles = j;
@@ -1191,30 +1191,30 @@ class Kt extends w {
1191
1191
  }, this._ctxData = this.data), this._ctx;
1192
1192
  }
1193
1193
  renderView() {
1194
- const t = this.ctx, e = v(this.data.conferences), s = [...new Set(this.data.games.map((c) => c.date).filter(Boolean))].sort(), r = Number.MAX_SAFE_INTEGER, o = (c) => {
1195
- const h = [c.awayTeamId, c.homeTeamId].map((p) => vt(t.rankings, t.teamsById, p, this.sport, c.date)).filter(Boolean);
1194
+ const t = this.ctx, e = v(this.data.conferences), s = [...new Set(this.data.games.map((l) => l.date).filter(Boolean))].sort(), r = Number.MAX_SAFE_INTEGER, o = (l) => {
1195
+ const h = [l.awayTeamId, l.homeTeamId].map((p) => vt(t.rankings, t.teamsById, p, this.sport, l.date)).filter(Boolean);
1196
1196
  return h.length ? Math.min(...h) : r;
1197
- }, i = this.data.games.filter((c) => c.date === this.date), n = new Map(i.map((c) => [c, o(c)]));
1198
- i.sort((c, h) => (c.state === "live" ? 0 : 1) - (h.state === "live" ? 0 : 1) || n.get(c) - n.get(h));
1197
+ }, i = this.data.games.filter((l) => l.date === this.date), n = new Map(i.map((l) => [l, o(l)]));
1198
+ i.sort((l, h) => (l.state === "live" ? 0 : 1) - (h.state === "live" ? 0 : 1) || n.get(l) - n.get(h));
1199
1199
  const d = /* @__PURE__ */ new Map();
1200
- return i.forEach((c) => {
1201
- const h = c.gameType === "conference" && c.conferenceId ? e[c.conferenceId]?.name || "Conference" : c.gameType === "playoff" ? "Playoffs" : c.gameType === "scrimmage" ? "Scrimmages" : "Nonconference";
1202
- d.has(h) || d.set(h, []), d.get(h).push(c);
1203
- }), l`
1200
+ return i.forEach((l) => {
1201
+ const h = l.gameType === "conference" && l.conferenceId ? e[l.conferenceId]?.name || "Conference" : l.gameType === "playoff" ? "Playoffs" : l.gameType === "scrimmage" ? "Scrimmages" : "Nonconference";
1202
+ d.has(h) || d.set(h, []), d.get(h).push(l);
1203
+ }), c`
1204
1204
  ${$t(this, t, {
1205
- title: l`${z(this.sport)} scores &amp; schedules`,
1206
- sub: l`${y(this.date, { weekday: "long", month: "long", day: "numeric", year: "numeric" })} · ${i.length} games`,
1205
+ title: c`${z(this.sport)} scores &amp; schedules`,
1206
+ sub: c`${y(this.date, { weekday: "long", month: "long", day: "numeric", year: "numeric" })} · ${i.length} games`,
1207
1207
  teams: this.data.teams
1208
1208
  })}
1209
- ${q(this, l`
1209
+ ${q(this, c`
1210
1210
  ${G(this)}
1211
1211
  <div class="toolbar">
1212
1212
  <label class="asof" for="datesel">Date</label>
1213
- <select id="datesel" @change=${(c) => {
1214
- this.date = c.target.value;
1213
+ <select id="datesel" @change=${(l) => {
1214
+ this.date = l.target.value;
1215
1215
  }}>
1216
- ${(s.includes(this.date) ? s : [...s, this.date].sort()).map((c) => l`<option value=${c} ?selected=${c === this.date}>
1217
- ${y(c, { weekday: "short", month: "short", day: "numeric" })}${c === mt() ? " · today" : ""}
1216
+ ${(s.includes(this.date) ? s : [...s, this.date].sort()).map((l) => c`<option value=${l} ?selected=${l === this.date}>
1217
+ ${y(l, { weekday: "short", month: "short", day: "numeric" })}${l === mt() ? " · today" : ""}
1218
1218
  </option>`)}
1219
1219
  </select>
1220
1220
  <button class="chip" ?disabled=${s.indexOf(this.date) <= 0}
@@ -1228,9 +1228,9 @@ class Kt extends w {
1228
1228
  <span class="spacer"></span>
1229
1229
  <span class="asof">Live games first · report a score to see it update here</span>
1230
1230
  </div>
1231
- ${i.length ? m : l`<p class="empty">No ${this.sport} games on this date.</p>`}
1232
- ${[...d.entries()].map(([c, h]) => l`
1233
- <div class="section-title">${c}</div>
1231
+ ${i.length ? m : c`<p class="empty">No ${this.sport} games on this date.</p>`}
1232
+ ${[...d.entries()].map(([l, h]) => c`
1233
+ <div class="section-title">${l}</div>
1234
1234
  <div class="card"><ul class="gamelist">
1235
1235
  ${h.map((p) => this.renderGame(t, p))}
1236
1236
  </ul></div>
@@ -1242,14 +1242,14 @@ class Kt extends w {
1242
1242
  // a lone score column on the far right read as detached from the teams).
1243
1243
  // Scheduled games carry their start time on the status pill alone.
1244
1244
  renderGame(t, e) {
1245
- const s = e.state === "final" || e.state === "live", r = (i, n, d = m) => l`<span class="side">${Vt(t, i, e.date)}${s ? l`<span class="score">${n}</span>` : m}${d}</span>`, o = He(e);
1246
- return l`
1245
+ const s = e.state === "final" || e.state === "live", r = (i, n, d = m) => c`<span class="side">${Vt(t, i, e.date)}${s ? c`<span class="score">${n}</span>` : m}${d}</span>`, o = He(e);
1246
+ return c`
1247
1247
  <li>
1248
1248
  ${J(e)}
1249
- <span class="opp matchup">${r(e.awayTeamId, e.awayScore, l`<span class="at">at</span>`)}${r(e.homeTeamId, e.homeScore)}</span>
1250
- ${o ? l`<span class="ff">${C(t, o === "home" ? e.homeTeamId : e.awayTeamId)} forfeited</span>` : m}
1249
+ <span class="opp matchup">${r(e.awayTeamId, e.awayScore, c`<span class="at">at</span>`)}${r(e.homeTeamId, e.homeScore)}</span>
1250
+ ${o ? c`<span class="ff">${C(t, o === "home" ? e.homeTeamId : e.awayTeamId)} forfeited</span>` : m}
1251
1251
  <span class="where">${e.venue || ""}</span>
1252
- ${e.broadcast ? l`<span class="pill class">${e.broadcast}</span>` : m}
1252
+ ${e.broadcast ? c`<span class="pill class">${e.broadcast}</span>` : m}
1253
1253
  <a class="box" href=${g(t.hrefs.game, { sport: this.sport, id: e.id })}>Box score →</a>
1254
1254
  </li>
1255
1255
  `;
@@ -1297,17 +1297,17 @@ class Qt extends w {
1297
1297
  }
1298
1298
  renderView() {
1299
1299
  const t = this.ctx, e = ["All", ...new Set(this.data.conferences.flatMap((r) => r.classifications || []))].slice(0, 9), s = this.data.conferences.filter((r) => r.active !== !1).filter((r) => this.classFilter === "All" || (r.classifications || []).includes(this.classFilter));
1300
- return l`
1300
+ return c`
1301
1301
  ${$t(this, t, {
1302
- title: l`${z(this.sport)} standings`,
1303
- sub: l`${this.data.season} season · every conference, computed live from reported results`,
1302
+ title: c`${z(this.sport)} standings`,
1303
+ sub: c`${this.data.season} season · every conference, computed live from reported results`,
1304
1304
  teams: this.data.teams
1305
1305
  })}
1306
- ${q(this, l`
1306
+ ${q(this, c`
1307
1307
  ${G(this)}
1308
1308
  <div class="toolbar">
1309
1309
  <div role="group" aria-label="Classification filter">
1310
- ${e.map((r) => l`<button class="chip ${this.classFilter === r ? "on" : ""}"
1310
+ ${e.map((r) => c`<button class="chip ${this.classFilter === r ? "on" : ""}"
1311
1311
  @click=${() => {
1312
1312
  this.classFilter = r;
1313
1313
  }}>${r}</button>`)}
@@ -1327,11 +1327,11 @@ class Qt extends w {
1327
1327
  const s = this.data.teams.filter((i) => i.conferenceId === e.id);
1328
1328
  if (!s.length) return m;
1329
1329
  const r = this.query.trim().toLowerCase(), o = qt(s, t.records);
1330
- return l`
1330
+ return c`
1331
1331
  <div class="card">
1332
1332
  <div class="card-head">
1333
1333
  <h2>${e.name}</h2>
1334
- ${(e.classifications || []).map((i) => l`<span class="pill class">${i}</span>`)}
1334
+ ${(e.classifications || []).map((i) => c`<span class="pill class">${i}</span>`)}
1335
1335
  <span class="meta">${o.length} teams · membership derives from teams</span>
1336
1336
  </div>
1337
1337
  <div class="tablewrap"><table class="data">
@@ -1350,18 +1350,17 @@ class Qt extends w {
1350
1350
  renderRow(t, e, s, r) {
1351
1351
  const o = t.schoolsById[e.team.schoolId], i = o?.name || e.team.name || "TBD";
1352
1352
  if (r && !i.toLowerCase().includes(r)) return m;
1353
- const n = e.rec.pf - e.rec.pa, d = gt(this.data.games, e.team.id), c = (e.team.championships || []).map((p) => l`
1354
- <span class="pill champ" title="${p.season} ${p.title} champion">★ ${p.season} ${p.title}</span>`), h = () => {
1353
+ const n = e.rec.pf - e.rec.pa, d = gt(this.data.games, e.team.id), l = () => {
1355
1354
  location.href = g(t.hrefs.school, { id: e.team.schoolId });
1356
1355
  };
1357
- return l`
1358
- <tr class="rowlink" @click=${(p) => {
1359
- p.target.closest("a") || h();
1356
+ return c`
1357
+ <tr class="rowlink" @click=${(h) => {
1358
+ h.target.closest("a") || l();
1360
1359
  }}>
1361
1360
  <td class="mut">${s + 1}</td>
1362
1361
  <td class="teamcell">
1363
1362
  ${H(o)}${bt(t, e.team.id, null)}
1364
- <a href=${g(t.hrefs.school, { id: e.team.schoolId })}>${i}</a> ${c}
1363
+ <a href=${g(t.hrefs.school, { id: e.team.schoolId })}>${i}</a>
1365
1364
  </td>
1366
1365
  <td class="num">${x(e.rec, !0)}</td>
1367
1366
  <td class="num">${Rt(e.confPct)}</td>
@@ -1419,7 +1418,7 @@ class Zt extends w {
1419
1418
  t.listTeams({ sport: this.sport }),
1420
1419
  t.listConferences(),
1421
1420
  t.listGames({ sport: this.sport, season: e })
1422
- ]), d = s.items.filter((c) => !this.gender || !c.gender || c.gender === this.gender).sort((c, h) => h.effectiveDate.localeCompare(c.effectiveDate));
1421
+ ]), d = s.items.filter((l) => !this.gender || !l.gender || l.gender === this.gender).sort((l, h) => h.effectiveDate.localeCompare(l.effectiveDate));
1423
1422
  return {
1424
1423
  season: e,
1425
1424
  polls: d,
@@ -1446,12 +1445,12 @@ class Zt extends w {
1446
1445
  const $ = e.length === 1 ? 96 / 2 : f / (e.length - 1) * 90 + 3, at = 3 + u / 24 * 20;
1447
1446
  return { x: $, y: at };
1448
1447
  }), d = [];
1449
- let c = [];
1448
+ let l = [];
1450
1449
  if (n.forEach((p) => {
1451
- p ? c.push(p) : c.length && (d.push(c), c = []);
1452
- }), c.length && d.push(c), !d.length) return m;
1450
+ p ? l.push(p) : l.length && (d.push(l), l = []);
1451
+ }), l.length && d.push(l), !d.length) return m;
1453
1452
  const h = n[s];
1454
- return l`<svg class="sparkline" width=${96} height=${26} viewBox="0 0 ${96} ${26}" role="img" aria-label="rank history">
1453
+ return c`<svg class="sparkline" width=${96} height=${26} viewBox="0 0 ${96} ${26}" role="img" aria-label="rank history">
1455
1454
  ${d.map((p) => Pt`<polyline fill="none" stroke="var(--hsot-red)" stroke-width="2"
1456
1455
  points=${p.map((f) => `${f.x.toFixed(1)},${f.y.toFixed(1)}`).join(" ")}></polyline>`)}
1457
1456
  ${h ? Pt`<circle cx=${h.x.toFixed(1)} cy=${h.y.toFixed(1)} r="3" fill="var(--hsot-black)"></circle>` : m}
@@ -1459,26 +1458,26 @@ class Zt extends w {
1459
1458
  }
1460
1459
  movement(t, e, s) {
1461
1460
  const r = Me(t, e, s);
1462
- return r.kind === "up" ? l`<span class="delta up">▲ ${r.delta}</span>` : r.kind === "down" ? l`<span class="delta down">▼ ${r.delta}</span>` : r.kind === "new" ? l`<span class="delta new">NEW</span>` : r.kind === "same" ? l`<span class="delta same">—</span>` : l`<span class="delta same">·</span>`;
1461
+ return r.kind === "up" ? c`<span class="delta up">▲ ${r.delta}</span>` : r.kind === "down" ? c`<span class="delta down">▼ ${r.delta}</span>` : r.kind === "new" ? c`<span class="delta new">NEW</span>` : r.kind === "same" ? c`<span class="delta same">—</span>` : c`<span class="delta same">·</span>`;
1463
1462
  }
1464
1463
  renderView() {
1465
1464
  const t = this.ctx, e = this.data.polls;
1466
- if (!e.length) return l`<div class="view"><p class="empty">No ${this.sport} polls published yet this season.</p></div>`;
1467
- const s = Math.max(0, e.findIndex((p) => p.effectiveDate === this.pollDate)), r = e[s] || e[0], o = e[s + 1] || null, i = e.slice().reverse(), n = i.indexOf(r), d = v(this.data.conferences), c = (r.teamIds || [])[0], h = c ? O(t, c) : null;
1468
- return l`
1465
+ if (!e.length) return c`<div class="view"><p class="empty">No ${this.sport} polls published yet this season.</p></div>`;
1466
+ const s = Math.max(0, e.findIndex((p) => p.effectiveDate === this.pollDate)), r = e[s] || e[0], o = e[s + 1] || null, i = e.slice().reverse(), n = i.indexOf(r), d = v(this.data.conferences), l = (r.teamIds || [])[0], h = l ? O(t, l) : null;
1467
+ return c`
1469
1468
  ${$t(this, t, {
1470
- title: l`${z(this.sport)} Top 25`,
1471
- sub: l`The HighSchoolOT poll · updated weekly · ${e.length} polls this season`,
1469
+ title: c`${z(this.sport)} Top 25`,
1470
+ sub: c`The HighSchoolOT poll · updated weekly · ${e.length} polls this season`,
1472
1471
  teams: this.data.teams
1473
1472
  })}
1474
- ${q(this, l`
1473
+ ${q(this, c`
1475
1474
  ${G(this)}
1476
1475
  <div class="toolbar">
1477
1476
  <label class="asof" for="pollsel">Poll of</label>
1478
1477
  <select id="pollsel" @change=${(p) => {
1479
1478
  this.pollDate = p.target.value;
1480
1479
  }}>
1481
- ${e.map((p, f) => l`<option value=${p.effectiveDate} ?selected=${p === r}>
1480
+ ${e.map((p, f) => c`<option value=${p.effectiveDate} ?selected=${p === r}>
1482
1481
  ${y(p.effectiveDate, { month: "long", day: "numeric", year: "numeric" })}${f === 0 ? " · current" : ""}
1483
1482
  </option>`)}
1484
1483
  </select>
@@ -1493,7 +1492,7 @@ class Zt extends w {
1493
1492
  <span class="spacer"></span>
1494
1493
  <span class="asof">Movement vs. the previous poll · sparkline = season rank history</span>
1495
1494
  </div>
1496
- ${h ? this.renderHero(t, r, o, c, h, d) : m}
1495
+ ${h ? this.renderHero(t, r, o, l, h, d) : m}
1497
1496
  <div class="card"><div class="tablewrap"><table class="data">
1498
1497
  <thead><tr>
1499
1498
  <th class="num">Rk</th><th>Mvmt</th><th>Team</th><th class="num">Record</th>
@@ -1508,17 +1507,17 @@ class Zt extends w {
1508
1507
  `;
1509
1508
  }
1510
1509
  renderHero(t, e, s, r, o, i) {
1511
- const n = t.records[r], d = Bt(t.records, r), c = i[t.teamsById[r]?.conferenceId], h = `linear-gradient(120deg, ${o.colorPrimary || "#030711"} 0%, var(--hsot-black) 85%)`;
1512
- return l`
1510
+ const n = t.records[r], d = Bt(t.records, r), l = i[t.teamsById[r]?.conferenceId], h = `linear-gradient(120deg, ${o.colorPrimary || "#030711"} 0%, var(--hsot-black) 85%)`;
1511
+ return c`
1513
1512
  <div class="hero1" style="background:${h}">
1514
1513
  <div class="bigrank">#1</div>
1515
1514
  ${H(o, 64)}
1516
1515
  <div>
1517
1516
  <h2><a href=${g(t.hrefs.school, { id: o.id })}>${o.name} ${o.mascot || ""}</a></h2>
1518
1517
  <div class="facts">
1519
- ${x(n)} overall${c ? l` · ${x(n, !0)} ${c.name}` : m}
1518
+ ${x(n)} overall${l ? c` · ${x(n, !0)} ${l.name}` : m}
1520
1519
  · streak ${st(n?.results) || "·"}
1521
- ${d ? l` · last: ${d.mark} ${d.my}-${d.their} vs ${Z(t, d.opp)}` : m}
1520
+ ${d ? c` · last: ${d.mark} ${d.my}-${d.their} vs ${Z(t, d.opp)}` : m}
1522
1521
  &nbsp;${this.movement(e, s, r)}
1523
1522
  </div>
1524
1523
  </div>
@@ -1526,24 +1525,24 @@ class Zt extends w {
1526
1525
  `;
1527
1526
  }
1528
1527
  renderRow(t, e, s, r, o, i, n, d) {
1529
- const c = O(t, n);
1530
- if (!c) return m;
1528
+ const l = O(t, n);
1529
+ if (!l) return m;
1531
1530
  const h = t.records[n], p = Bt(t.records, n), f = gt(this.data.games, n), u = i[t.teamsById[n]?.conferenceId], $ = () => {
1532
- location.href = g(t.hrefs.school, { id: c.id });
1531
+ location.href = g(t.hrefs.school, { id: l.id });
1533
1532
  };
1534
- return l`
1533
+ return c`
1535
1534
  <tr class="rowlink" @click=${(at) => {
1536
1535
  at.target.closest("a") || $();
1537
1536
  }}>
1538
1537
  <td class="num" style="font-weight:700">${d}</td>
1539
1538
  <td>${this.movement(e, s, n)}</td>
1540
- <td class="teamcell">${H(c)}<a href=${g(t.hrefs.school, { id: c.id })}>${c.name}</a>
1541
- <span class="mut" style="font-size:0.78rem">${c.mascot || ""}</span></td>
1539
+ <td class="teamcell">${H(l)}<a href=${g(t.hrefs.school, { id: l.id })}>${l.name}</a>
1540
+ <span class="mut" style="font-size:0.78rem">${l.mascot || ""}</span></td>
1542
1541
  <td class="num">${x(h)}</td>
1543
1542
  <td class="mut">${u?.name || "Independent"}</td>
1544
- <td>${p ? l`<a class="box" style="text-decoration:none" href=${g(t.hrefs.game, { sport: this.sport, id: p.gameId })}>
1543
+ <td>${p ? c`<a class="box" style="text-decoration:none" href=${g(t.hrefs.game, { sport: this.sport, id: p.gameId })}>
1545
1544
  <b style="color:${p.mark === "W" ? "var(--hsot-win)" : p.mark === "L" ? "var(--hsot-loss)" : "var(--hsot-tie)"}">${p.mark}</b>
1546
- ${p.my}-${p.their} vs ${Z(t, p.opp)}</a>` : l`<span class="mut">·</span>`}</td>
1545
+ ${p.my}-${p.their} vs ${Z(t, p.opp)}</a>` : c`<span class="mut">·</span>`}</td>
1547
1546
  <td>${Yt(t, f, n)}</td>
1548
1547
  <td>${this.sparkline(n, r, o)}</td>
1549
1548
  </tr>
@@ -1598,7 +1597,7 @@ class Jt extends w {
1598
1597
  t && !this.sport && (this.sport = t);
1599
1598
  }
1600
1599
  async fetchData(t) {
1601
- const e = this.season || et(), s = await t.getSchool(this.schoolId), o = (await t.listTeams({ schoolId: this.schoolId })).items, i = o.find(($) => $.sport === (this.sport || "football")) || o[0] || null, [n, d, c, h, p, f, u] = await Promise.all([
1600
+ const e = this.season || et(), s = await t.getSchool(this.schoolId), o = (await t.listTeams({ schoolId: this.schoolId })).items, i = o.find(($) => $.sport === (this.sport || "football")) || o[0] || null, [n, d, l, h, p, f, u] = await Promise.all([
1602
1601
  i ? t.listGames({ sport: i.sport, season: e }) : Promise.resolve({ items: [] }),
1603
1602
  i ? t.listTeams({ sport: i.sport }) : Promise.resolve({ items: [] }),
1604
1603
  t.listSchools(),
@@ -1616,7 +1615,7 @@ class Jt extends w {
1616
1615
  active: i,
1617
1616
  games: n.items,
1618
1617
  allTeams: d.items,
1619
- schools: c.items,
1618
+ schools: l.items,
1620
1619
  conferences: h.items,
1621
1620
  rankings: p.items,
1622
1621
  roster: f.items.find(($) => $.season === e) || null,
@@ -1638,41 +1637,41 @@ class Jt extends w {
1638
1637
  }
1639
1638
  renderView() {
1640
1639
  const { school: t, teams: e, active: s, season: r } = this.data;
1641
- if (!t) return l`<div class="view"><p class="empty">School not found.</p></div>`;
1642
- const o = this.ctx, i = K(t.colorPrimary || "#030711"), n = (t.adm || [])[0], d = v(this.data.conferences), c = s ? d[s.conferenceId] : null;
1643
- return l`
1640
+ if (!t) return c`<div class="view"><p class="empty">School not found.</p></div>`;
1641
+ const o = this.ctx, i = K(t.colorPrimary || "#030711"), n = (t.adm || [])[0], d = v(this.data.conferences), l = s ? d[s.conferenceId] : null;
1642
+ return c`
1644
1643
  <div class="schoolhero" style="background:linear-gradient(115deg, ${t.colorPrimary || "#030711"} 0%, ${t.colorPrimary || "#030711"} 55%, var(--hsot-black) 100%);color:${i}">
1645
1644
  <div class="inner">
1646
- ${Q(t, 84) ? l`<img class="crest logo" alt="" loading="lazy" src=${Q(t, 84)} />` : l`<div class="crest" style="background:${t.colorSecondary || "#7C7C7C"};color:${K(t.colorSecondary || "#7C7C7C")}">${ft(t)}</div>`}
1645
+ ${Q(t, 84) ? c`<img class="crest logo" alt="" loading="lazy" src=${Q(t, 84)} />` : c`<div class="crest" style="background:${t.colorSecondary || "#7C7C7C"};color:${K(t.colorSecondary || "#7C7C7C")}">${ft(t)}</div>`}
1647
1646
  <div style="min-width:260px">
1648
1647
  <h1>${t.name} <span class="mascot">${t.mascot || ""}</span></h1>
1649
1648
  <div class="facts">
1650
- ${t.location ? l`<span><b>Location</b>${t.location}${t.county ? l` · ${t.county} County` : m}</span>` : m}
1651
- ${t.association ? l`<span><b>League</b>${t.association}${t.classification ? l` · ${t.classification}` : m}</span>` : m}
1652
- ${c ? l`<span><b>Conference</b>${c.name}</span>` : m}
1653
- ${n ? l`<span><b>Enrollment</b>${n.value.toLocaleString()} (${n.season} ADM)</span>` : m}
1654
- ${t.openingYear ? l`<span><b>Opened</b>${t.openingYear}</span>` : m}
1655
- ${t.areaCode ? l`<span><b>Area</b>${t.areaCode}</span>` : m}
1649
+ ${t.location ? c`<span><b>Location</b>${t.location}${t.county ? c` · ${t.county} County` : m}</span>` : m}
1650
+ ${t.association ? c`<span><b>League</b>${t.association}${t.classification ? c` · ${t.classification}` : m}</span>` : m}
1651
+ ${l ? c`<span><b>Conference</b>${l.name}</span>` : m}
1652
+ ${n ? c`<span><b>Enrollment</b>${n.value.toLocaleString()} (${n.season} ADM)</span>` : m}
1653
+ ${t.openingYear ? c`<span><b>Opened</b>${t.openingYear}</span>` : m}
1654
+ ${t.areaCode ? c`<span><b>Area</b>${t.areaCode}</span>` : m}
1656
1655
  </div>
1657
1656
  </div>
1658
1657
  </div>
1659
1658
  </div>
1660
1659
  <div class="band">
1661
1660
  <nav class="tabs" aria-label="Teams">
1662
- ${e.map((h) => h.id === s?.id ? l`<a class="on" href="#" @click=${(p) => p.preventDefault()}>${h.name}</a>` : l`<a href="#" @click=${(p) => {
1661
+ ${e.map((h) => h.id === s?.id ? c`<a class="on" href="#" @click=${(p) => p.preventDefault()}>${h.name}</a>` : c`<a href="#" @click=${(p) => {
1663
1662
  p.preventDefault(), this.switchSport(h.sport);
1664
1663
  }}>${h.name}</a>`)}
1665
1664
  </nav>
1666
1665
  </div>
1667
- ${q(this, l`
1666
+ ${q(this, c`
1668
1667
  ${G(this)}
1669
- ${s ? this.renderTeam(o, s, c, r) : l`<p class="empty">No teams recorded for this school yet.</p>`}
1668
+ ${s ? this.renderTeam(o, s, l, r) : c`<p class="empty">No teams recorded for this school yet.</p>`}
1670
1669
  `)}
1671
1670
  `;
1672
1671
  }
1673
1672
  renderTeam(t, e, s, r) {
1674
- const o = t.records[e.id] || { w: 0, l: 0, t: 0, cw: 0, cl: 0, ct: 0, pf: 0, pa: 0, results: [] }, i = o.w + o.l + o.t, n = s ? this.data.allTeams.filter((p) => p.conferenceId === s.id) : [], d = s ? qt(n, t.records).findIndex((p) => p.team.id === e.id) + 1 : 0, c = vt(t.rankings, t.teamsById, e.id, e.sport, null), h = this.data.games.filter((p) => p.homeTeamId === e.id || p.awayTeamId === e.id).sort((p, f) => String(p.date).localeCompare(String(f.date)));
1675
- return l`
1673
+ const o = t.records[e.id] || { w: 0, l: 0, t: 0, cw: 0, cl: 0, ct: 0, pf: 0, pa: 0, results: [] }, i = o.w + o.l + o.t, n = s ? this.data.allTeams.filter((p) => p.conferenceId === s.id) : [], d = s ? qt(n, t.records).findIndex((p) => p.team.id === e.id) + 1 : 0, l = vt(t.rankings, t.teamsById, e.id, e.sport, null), h = this.data.games.filter((p) => p.homeTeamId === e.id || p.awayTeamId === e.id).sort((p, f) => String(p.date).localeCompare(String(f.date)));
1674
+ return c`
1676
1675
  <div class="tiles">
1677
1676
  <div class="tile"><div class="k">Overall</div><div class="v">${x(o)}</div><div class="s">${i} games played</div></div>
1678
1677
  <div class="tile"><div class="k">${s?.name || "Conference"}</div><div class="v">${x(o, !0)}</div>
@@ -1681,18 +1680,18 @@ class Jt extends w {
1681
1680
  <div class="s">scored per game · ${i ? (o.pa / i).toFixed(1) : "0.0"} allowed</div></div>
1682
1681
  <div class="tile"><div class="k">Streak</div><div class="v">${st(o.results) || "·"}</div>
1683
1682
  <div class="s">last 5: ${yt(t, e.id)}</div></div>
1684
- <div class="tile"><div class="k">HSOT Top 25</div><div class="v">${c ? `#${c}` : "NR"}</div>
1683
+ <div class="tile"><div class="k">HSOT Top 25</div><div class="v">${l ? `#${l}` : "NR"}</div>
1685
1684
  <div class="s"><a href=${g(t.hrefs.section, { sport: e.sport, view: "rankings" })}>full poll</a></div></div>
1686
1685
  </div>
1687
- ${(e.championships || []).length ? l`
1686
+ ${(e.championships || []).length ? c`
1688
1687
  <div style="margin:-0.2rem 0 1rem;display:flex;gap:0.4rem;flex-wrap:wrap">
1689
- ${e.championships.map((p) => l`<span class="pill champ">★ ${p.season} ${p.title} champion${p.classification ? ` · ${p.classification}` : ""}${p.region ? ` · ${p.region}` : ""}</span>`)}
1688
+ ${e.championships.map((p) => c`<span class="pill champ">★ ${p.season} ${p.title} champion${p.classification ? ` · ${p.classification}` : ""}${p.region ? ` · ${p.region}` : ""}</span>`)}
1690
1689
  </div>` : m}
1691
1690
  <div class="cols">
1692
1691
  <div>
1693
1692
  <div class="section-title">Schedule &amp; results</div>
1694
1693
  <div class="card">
1695
- ${h.length ? l`<ul class="gamelist">${h.map((p) => this.renderGameRow(t, e, p))}</ul>` : l`<p class="empty">No ${e.sport} games recorded for ${r}.</p>`}
1694
+ ${h.length ? c`<ul class="gamelist">${h.map((p) => this.renderGameRow(t, e, p))}</ul>` : c`<p class="empty">No ${e.sport} games recorded for ${r}.</p>`}
1696
1695
  </div>
1697
1696
  </div>
1698
1697
  <div>
@@ -1704,20 +1703,20 @@ class Jt extends w {
1704
1703
  }
1705
1704
  renderGameRow(t, e, s) {
1706
1705
  const r = s.homeTeamId === e.id, o = r ? s.awayTeamId : s.homeTeamId, i = r ? s.homeScore : s.awayScore, n = r ? s.awayScore : s.homeScore;
1707
- let d = l`<span class="mut">${pt(s.time)}</span>`;
1706
+ let d = c`<span class="mut">${pt(s.time)}</span>`;
1708
1707
  if (s.state === "final") {
1709
1708
  const h = ut(s), p = h === "tie" ? "T" : h === (r ? "home" : "away") ? "W" : "L";
1710
- d = l`<span class=${p}>${p}</span> ${i}-${n}${s.finish === "overtime" ? l` <span class="mut">OT</span>` : m}${s.forfeit && s.forfeit !== "none" ? l` <span class="mut">FF</span>` : m}`;
1711
- } else s.state === "live" && (d = l`<span style="color:var(--hsot-red)">${i}-${n}</span>`);
1712
- const c = s.gameType === "conference" ? "Conf" : s.gameType === "nonconference" ? "Non-conf" : s.gameType === "playoff" ? `Playoff${s.label ? ` · ${s.label}` : ""}` : "Scrimmage";
1713
- return l`
1709
+ d = c`<span class=${p}>${p}</span> ${i}-${n}${s.finish === "overtime" ? c` <span class="mut">OT</span>` : m}${s.forfeit && s.forfeit !== "none" ? c` <span class="mut">FF</span>` : m}`;
1710
+ } else s.state === "live" && (d = c`<span style="color:var(--hsot-red)">${i}-${n}</span>`);
1711
+ const l = s.gameType === "conference" ? "Conf" : s.gameType === "nonconference" ? "Non-conf" : s.gameType === "playoff" ? `Playoff${s.label ? ` · ${s.label}` : ""}` : "Scrimmage";
1712
+ return c`
1714
1713
  <li>
1715
1714
  <span class="d">${y(s.date)}</span>
1716
1715
  ${jt(s).kind === "sched" ? m : J(s)}
1717
1716
  <span class="res">${d}</span>
1718
1717
  <span class="opp">${r ? "vs" : "at"} ${Vt(t, o, s.date)}
1719
- <span class="pill type">${c}</span>
1720
- ${s.broadcast ? l`<span class="pill class">${s.broadcast}</span>` : m}
1718
+ <span class="pill type">${l}</span>
1719
+ ${s.broadcast ? c`<span class="pill class">${s.broadcast}</span>` : m}
1721
1720
  </span>
1722
1721
  <span class="where">${s.venue || ""}</span>
1723
1722
  <a class="box" href=${g(t.hrefs.game, { sport: e.sport, id: s.id })}>Box score →</a>
@@ -1727,24 +1726,24 @@ class Jt extends w {
1727
1726
  renderRoster(t, e) {
1728
1727
  const s = this.data.roster;
1729
1728
  if (!s)
1730
- return l`<p class="empty">Roster not published for ${e}.</p>`;
1731
- const r = je(s, 560), o = this.data.school?.name || "", i = v(this.data.players), n = s.entries.slice().sort((c, h) => (c.number || 0) - (h.number || 0)), d = n.some((c) => i[c.playerId]?.college);
1732
- return l`
1733
- ${r ? l`<img class="rosterphoto" src=${r} loading="lazy" decoding="async"
1729
+ return c`<p class="empty">Roster not published for ${e}.</p>`;
1730
+ const r = je(s, 560), o = this.data.school?.name || "", i = v(this.data.players), n = s.entries.slice().sort((l, h) => (l.number || 0) - (h.number || 0)), d = n.some((l) => i[l.playerId]?.college);
1731
+ return c`
1732
+ ${r ? c`<img class="rosterphoto" src=${r} loading="lazy" decoding="async"
1734
1733
  alt="${o} ${t.name} ${e} team photo" />` : m}
1735
1734
  <div class="tablewrap"><table class="data">
1736
- <thead><tr><th class="num">No.</th><th>Player</th><th>Pos</th><th>Class</th><th class="num">Ht</th><th class="num">Wt</th>${d ? l`<th>College</th>` : m}</tr></thead>
1735
+ <thead><tr><th class="num">No.</th><th>Player</th><th>Pos</th><th>Class</th><th class="num">Ht</th><th class="num">Wt</th>${d ? c`<th>College</th>` : m}</tr></thead>
1737
1736
  <tbody>
1738
- ${n.map((c) => {
1739
- const h = i[c.playerId];
1740
- return h ? l`<tr>
1741
- <td class="num mut">${c.number ?? "·"}</td>
1737
+ ${n.map((l) => {
1738
+ const h = i[l.playerId];
1739
+ return h ? c`<tr>
1740
+ <td class="num mut">${l.number ?? "·"}</td>
1742
1741
  <td style="font-weight:500">${h.firstName} ${h.lastName}</td>
1743
- <td>${c.position || "·"}</td>
1742
+ <td>${l.position || "·"}</td>
1744
1743
  <td class="mut">${h.classOf || "·"}</td>
1745
1744
  <td class="num">${Ae(h.heightIn)}</td>
1746
1745
  <td class="num">${h.weightLb || "·"}</td>
1747
- ${d ? l`<td>${h.college || "·"}</td>` : m}
1746
+ ${d ? c`<td>${h.college || "·"}</td>` : m}
1748
1747
  </tr>` : m;
1749
1748
  })}
1750
1749
  </tbody>
@@ -1836,7 +1835,7 @@ class te extends w {
1836
1835
  super(), this.gameId = "", this.searchApi = "";
1837
1836
  }
1838
1837
  async fetchData(t) {
1839
- const e = await t.getGame(this.gameId), s = Array.isArray(e.coverageUrls) ? e.coverageUrls : [], [r, o, i, n, d, c] = await Promise.all([
1838
+ const e = await t.getGame(this.gameId), s = Array.isArray(e.coverageUrls) ? e.coverageUrls : [], [r, o, i, n, d, l] = await Promise.all([
1840
1839
  t.listSchools(),
1841
1840
  t.listTeams({ sport: e.sport }),
1842
1841
  t.listConferences(),
@@ -1853,7 +1852,7 @@ class te extends w {
1853
1852
  conferences: i.items,
1854
1853
  rankings: n.items,
1855
1854
  games: d.items,
1856
- coverage: c
1855
+ coverage: l
1857
1856
  };
1858
1857
  }
1859
1858
  get ctx() {
@@ -1868,10 +1867,10 @@ class te extends w {
1868
1867
  }
1869
1868
  renderView() {
1870
1869
  const t = this.data.game;
1871
- if (!t) return l`<div class="view"><p class="empty">Game not found.</p></div>`;
1872
- const e = this.ctx, s = v(this.data.conferences), r = e.teamsById[t.awayTeamId] ? e.schoolsById[e.teamsById[t.awayTeamId].schoolId] : null, o = e.teamsById[t.homeTeamId] ? e.schoolsById[e.teamsById[t.homeTeamId].schoolId] : null, i = ut(t), n = (h) => t.state === "final" && i !== h && i !== "tie" ? "opacity:0.45" : "", d = t.conferenceId ? s[t.conferenceId] : null, c = this.data.games.filter((h) => h.id !== t.id && h.state === "final" && h.gameType !== "scrimmage" && (h.homeTeamId === t.homeTeamId && h.awayTeamId === t.awayTeamId || h.homeTeamId === t.awayTeamId && h.awayTeamId === t.homeTeamId));
1873
- return l`
1874
- ${q(this, l`
1870
+ if (!t) return c`<div class="view"><p class="empty">Game not found.</p></div>`;
1871
+ const e = this.ctx, s = v(this.data.conferences), r = e.teamsById[t.awayTeamId] ? e.schoolsById[e.teamsById[t.awayTeamId].schoolId] : null, o = e.teamsById[t.homeTeamId] ? e.schoolsById[e.teamsById[t.homeTeamId].schoolId] : null, i = ut(t), n = (h) => t.state === "final" && i !== h && i !== "tie" ? "opacity:0.45" : "", d = t.conferenceId ? s[t.conferenceId] : null, l = this.data.games.filter((h) => h.id !== t.id && h.state === "final" && h.gameType !== "scrimmage" && (h.homeTeamId === t.homeTeamId && h.awayTeamId === t.awayTeamId || h.homeTeamId === t.awayTeamId && h.awayTeamId === t.homeTeamId));
1872
+ return c`
1873
+ ${q(this, c`
1875
1874
  ${G(this)}
1876
1875
  <p class="breadcrumbs">
1877
1876
  <a href=${g(e.hrefs.section, { sport: t.sport, view: "scores" })}>${z(t.sport)}</a> /
@@ -1888,29 +1887,29 @@ class te extends w {
1888
1887
  <span style=${n("home")}>${t.homeScore}</span>
1889
1888
  </div>
1890
1889
  <div class="status">${J(t)}</div>
1891
- <div class="status">${y(t.date, { weekday: "short", month: "short", day: "numeric", year: "numeric" })}${t.state === "scheduled" && t.time ? l` · ${pt(t.time)}` : m} · ${t.venue || "Venue TBD"}
1892
- ${t.broadcast ? l` · <span class="pill class">${t.broadcast}</span>` : m}</div>
1890
+ <div class="status">${y(t.date, { weekday: "short", month: "short", day: "numeric", year: "numeric" })}${t.state === "scheduled" && t.time ? c` · ${pt(t.time)}` : m} · ${t.venue || "Venue TBD"}
1891
+ ${t.broadcast ? c` · <span class="pill class">${t.broadcast}</span>` : m}</div>
1893
1892
  <div class="status">
1894
1893
  <span class="pill type">${t.gameType === "conference" ? `${d?.name || "Conference"} game` : t.gameType}</span>
1895
- ${t.label ? l`<span class="pill type">Bracket ${t.label}</span>` : m}
1896
- ${(t.tags || []).map((h) => l`<span class="pill type">${h}</span>`)}
1894
+ ${t.label ? c`<span class="pill type">Bracket ${t.label}</span>` : m}
1895
+ ${(t.tags || []).map((h) => c`<span class="pill type">${h}</span>`)}
1897
1896
  </div>
1898
1897
  </div>
1899
1898
  ${this.teamBlock(e, t, t.homeTeamId, o, !0)}
1900
1899
  </div>
1901
1900
  ${this.renderLineScore(t, r, o)}
1902
- ${t.notes ? l`<p class="note" style="padding:0 1rem 0.9rem;text-align:center">${t.notes}</p>` : m}
1901
+ ${t.notes ? c`<p class="note" style="padding:0 1rem 0.9rem;text-align:center">${t.notes}</p>` : m}
1903
1902
  </div>
1904
- ${(this.data.coverage || []).length ? l`
1903
+ ${(this.data.coverage || []).length ? c`
1905
1904
  <div class="section-title">Coverage</div>
1906
1905
  <div class="covgrid">
1907
- ${this.data.coverage.map((h) => l`
1906
+ ${this.data.coverage.map((h) => c`
1908
1907
  <a class="card covcard" href=${h.uri}>
1909
- ${h.image ? l`<img class="covimg" src=${h.image} alt="" loading="lazy" />` : m}
1908
+ ${h.image ? c`<img class="covimg" src=${h.image} alt="" loading="lazy" />` : m}
1910
1909
  <div class="covbody">
1911
- <div class="covtitle">${h.videoDuration ? l`<span class="pill live" style="animation:none">Video</span> ` : m}${h.photos ? l`<span class="pill live" style="animation:none">Photos</span> ` : m}${h.title || h.uri}</div>
1912
- ${h.description ? l`<p class="covdesc">${h.description}</p>` : m}
1913
- ${h.author || h.publishedTime ? l`
1910
+ <div class="covtitle">${h.videoDuration ? c`<span class="pill live" style="animation:none">Video</span> ` : m}${h.photos ? c`<span class="pill live" style="animation:none">Photos</span> ` : m}${h.title || h.uri}</div>
1911
+ ${h.description ? c`<p class="covdesc">${h.description}</p>` : m}
1912
+ ${h.author || h.publishedTime ? c`
1914
1913
  <div class="covmeta">${[h.author, h.publishedTime ? new Date(h.publishedTime).toLocaleDateString("en-US", { month: "short", day: "numeric", year: "numeric" }) : ""].filter(Boolean).join(" · ")}</div>
1915
1914
  ` : m}
1916
1915
  </div>
@@ -1921,10 +1920,10 @@ class te extends w {
1921
1920
  <div class="cols">
1922
1921
  ${[[t.awayTeamId, r], [t.homeTeamId, o]].map(([h, p]) => this.renderContext(e, h, p))}
1923
1922
  </div>
1924
- ${c.length ? l`
1923
+ ${l.length ? c`
1925
1924
  <div class="section-title">Head to head this season</div>
1926
1925
  <div class="card"><ul class="gamelist">
1927
- ${c.map((h) => l`<li>
1926
+ ${l.map((h) => c`<li>
1928
1927
  <span class="d">${y(h.date)}</span>${J(h)}
1929
1928
  <span class="opp">${C(e, h.awayTeamId)} ${h.awayScore}, ${C(e, h.homeTeamId)} ${h.homeScore}</span>
1930
1929
  <a class="box" href=${g(e.hrefs.game, { sport: t.sport, id: h.id })}>Box score →</a>
@@ -1934,14 +1933,14 @@ class te extends w {
1934
1933
  `;
1935
1934
  }
1936
1935
  teamBlock(t, e, s, r, o) {
1937
- if (!r) return l`<div class="teamblock ${o ? "right" : ""}"><div class="tname">TBD</div></div>`;
1936
+ if (!r) return c`<div class="teamblock ${o ? "right" : ""}"><div class="tname">TBD</div></div>`;
1938
1937
  const i = t.teamsById[s], n = t.records[s], d = Q(r, 58);
1939
- return l`
1938
+ return c`
1940
1939
  <div class="teamblock ${o ? "right" : ""}">
1941
- ${d ? l`<img class="crest logo" alt="" loading="lazy" src=${d} />` : l`<span class="crest" style="background:${r.colorPrimary || "#030711"};color:${K(r.colorPrimary || "#030711")}">${ft(r)}</span>`}
1940
+ ${d ? c`<img class="crest logo" alt="" loading="lazy" src=${d} />` : c`<span class="crest" style="background:${r.colorPrimary || "#030711"};color:${K(r.colorPrimary || "#030711")}">${ft(r)}</span>`}
1942
1941
  <div>
1943
1942
  <div class="tname">${bt(t, s, e.date)}<a href=${g(t.hrefs.school, { id: r.id })}>${r.name}</a></div>
1944
- <div class="trec">${r.mascot || ""} · ${x(n)}${i?.conferenceId ? l` · ${x(n, !0)} conf` : m}</div>
1943
+ <div class="trec">${r.mascot || ""} · ${x(n)}${i?.conferenceId ? c` · ${x(n, !0)} conf` : m}</div>
1945
1944
  </div>
1946
1945
  </div>
1947
1946
  `;
@@ -1949,20 +1948,20 @@ class te extends w {
1949
1948
  renderLineScore(t, e, s) {
1950
1949
  const r = t.periodScores || [];
1951
1950
  if (!r.length)
1952
- return l`<p class="empty" style="text-align:center">Period scoring will appear once the game starts.</p>`;
1953
- const o = Math.max(4, ...r.map((c) => c.period)), i = (c) => c <= 4 ? String(c) : `OT${c > 5 ? c - 4 : ""}`, n = (c, h) => {
1951
+ return c`<p class="empty" style="text-align:center">Period scoring will appear once the game starts.</p>`;
1952
+ const o = Math.max(4, ...r.map((l) => l.period)), i = (l) => l <= 4 ? String(l) : `OT${l > 5 ? l - 4 : ""}`, n = (l, h) => {
1954
1953
  const p = r.find((f) => f.period === h);
1955
- return p ? p[c] : t.state === "final" ? 0 : "·";
1956
- }, d = (c, h, p) => l`
1954
+ return p ? p[l] : t.state === "final" ? 0 : "·";
1955
+ }, d = (l, h, p) => c`
1957
1956
  <tr>
1958
- <td class="teamcell">${H(c, 20)}${c?.abbr || "TBD"}</td>
1959
- ${Array.from({ length: o }, (f, u) => l`<td class="num">${n(h, u + 1)}</td>`)}
1957
+ <td class="teamcell">${H(l, 20)}${l?.abbr || "TBD"}</td>
1958
+ ${Array.from({ length: o }, (f, u) => c`<td class="num">${n(h, u + 1)}</td>`)}
1960
1959
  <td class="num" style="font-weight:700">${p}</td>
1961
1960
  </tr>`;
1962
- return l`
1961
+ return c`
1963
1962
  <div class="tablewrap" style="border-top:1px solid var(--hsot-gray-2)">
1964
1963
  <table class="data" style="max-width:560px;margin:0.6rem auto 0.9rem">
1965
- <thead><tr><th>Team</th>${Array.from({ length: o }, (c, h) => l`<th class="num">${i(h + 1)}</th>`)}<th class="num">T</th></tr></thead>
1964
+ <thead><tr><th>Team</th>${Array.from({ length: o }, (l, h) => c`<th class="num">${i(h + 1)}</th>`)}<th class="num">T</th></tr></thead>
1966
1965
  <tbody>
1967
1966
  ${d(e, "away", t.awayScore)}
1968
1967
  ${d(s, "home", t.homeScore)}
@@ -1974,14 +1973,14 @@ class te extends w {
1974
1973
  renderContext(t, e, s) {
1975
1974
  if (!s) return m;
1976
1975
  const r = t.records[e], o = gt(this.data.games, e);
1977
- return l`
1976
+ return c`
1978
1977
  <div class="card ctxcard">
1979
1978
  <div class="who">${H(s)}${s.name}</div>
1980
1979
  <div class="row">
1981
1980
  <span>Last 5: ${yt(t, e)}</span>
1982
1981
  <span>Streak: <b>${r ? st(r.results) : "·"}</b></span>
1983
1982
  <span>PF/PA: <b>${r ? `${r.pf} / ${r.pa}` : "·"}</b></span>
1984
- <span>Next: ${o ? l`${y(o.date, { month: "numeric", day: "numeric" })}
1983
+ <span>Next: ${o ? c`${y(o.date, { month: "numeric", day: "numeric" })}
1985
1984
  ${o.homeTeamId === e ? "vs" : "at"} ${Z(t, o.homeTeamId === e ? o.awayTeamId : o.homeTeamId)}` : "·"}</span>
1986
1985
  </div>
1987
1986
  </div>
@@ -2122,7 +2121,7 @@ class ee extends E {
2122
2121
  const s = this.where(t), r = (o) => {
2123
2122
  o.preventDefault(), this.go(t);
2124
2123
  };
2125
- return l`
2124
+ return c`
2126
2125
  <li
2127
2126
  id="school-option-${e}"
2128
2127
  role="option"
@@ -2133,13 +2132,13 @@ class ee extends E {
2133
2132
  }}"
2134
2133
  >
2135
2134
  <span class="name">${t.name}</span>
2136
- ${s ? l`<span class="where">${s}</span>` : m}
2135
+ ${s ? c`<span class="where">${s}</span>` : m}
2137
2136
  </li>
2138
2137
  `;
2139
2138
  }
2140
2139
  renderListbox() {
2141
- const t = this.searched && !this.results.length, e = l`<li class="empty">No schools found</li>`;
2142
- return l`
2140
+ const t = this.searched && !this.results.length, e = c`<li class="empty">No schools found</li>`;
2141
+ return c`
2143
2142
  <ul id="school-search-listbox" role="listbox" aria-label="Schools">
2144
2143
  ${this.results.map((s, r) => this.renderOption(s, r))}
2145
2144
  ${t ? e : m}
@@ -2148,7 +2147,7 @@ class ee extends E {
2148
2147
  }
2149
2148
  render() {
2150
2149
  const t = this.activeIndex >= 0 ? `school-option-${this.activeIndex}` : "";
2151
- return l`
2150
+ return c`
2152
2151
  <input
2153
2152
  type="text"
2154
2153
  role="combobox"
@@ -480,10 +480,10 @@ const v = (a) => Object.fromEntries((a || []).map((e) => [e.id, e])), be = b`
480
480
  .gamelist a.box { font-size: 0.78rem; }
481
481
  `, F = [be, ye, $e, we, xe, ke, Te];
482
482
  function G(a) {
483
- return a.state !== "final" ? null : a.forfeit && a.forfeit !== "none" ? a.forfeit : a.homeScore > a.awayScore ? "home" : a.awayScore > a.homeScore ? "away" : a.tiebreakWinner && a.tiebreakWinner !== "none" ? a.tiebreakWinner : "tie";
483
+ return a.state !== "final" ? null : a.forfeit === "home" ? "away" : a.forfeit === "away" || a.homeScore > a.awayScore ? "home" : a.awayScore > a.homeScore ? "away" : a.tiebreakWinner && a.tiebreakWinner !== "none" ? a.tiebreakWinner : "tie";
484
484
  }
485
485
  function Ie(a) {
486
- return !a || !a.forfeit || a.forfeit === "none" ? null : a.forfeit === "home" ? "away" : a.forfeit === "away" ? "home" : null;
486
+ return a && (a.forfeit === "home" || a.forfeit === "away") ? a.forfeit : null;
487
487
  }
488
488
  function z(a, e) {
489
489
  const t = {}, s = (i) => (t[i] = t[i] || { w: 0, l: 0, t: 0, cw: 0, cl: 0, ct: 0, pf: 0, pa: 0, results: [] }, t[i]), o = a.filter((i) => i.state === "final" && i.gameType !== "scrimmage" && (!e || i.date <= e)).sort((i, d) => String(i.date).localeCompare(String(d.date)));
@@ -856,18 +856,17 @@ class ze extends $ {
856
856
  renderRow(e, t, s, o) {
857
857
  const i = e.schoolsById[t.team.schoolId], d = i?.name || t.team.name || "TBD";
858
858
  if (o && !d.toLowerCase().includes(o)) return p;
859
- const n = t.rec.pf - t.rec.pa, h = q(this.data.games, t.team.id), l = (t.team.championships || []).map((m) => r`
860
- <span class="pill champ" title="${m.season} ${m.title} champion">★ ${m.season} ${m.title}</span>`), c = () => {
859
+ const n = t.rec.pf - t.rec.pa, h = q(this.data.games, t.team.id), l = () => {
861
860
  location.href = u(e.hrefs.school, { id: t.team.schoolId });
862
861
  };
863
862
  return r`
864
- <tr class="rowlink" @click=${(m) => {
865
- m.target.closest("a") || c();
863
+ <tr class="rowlink" @click=${(c) => {
864
+ c.target.closest("a") || l();
866
865
  }}>
867
866
  <td class="mut">${s + 1}</td>
868
867
  <td class="teamcell">
869
868
  ${C(i)}${Y(e, t.team.id, null)}
870
- <a href=${u(e.hrefs.school, { id: t.team.schoolId })}>${d}</a> ${l}
869
+ <a href=${u(e.hrefs.school, { id: t.team.schoolId })}>${d}</a>
871
870
  </td>
872
871
  <td class="num">${w(t.rec, !0)}</td>
873
872
  <td class="num">${Z(t.confPct)}</td>
package/dist/index.mjs CHANGED
@@ -1,4 +1,4 @@
1
- import { D as o, H as e, a as t, b as r, c as n, d as c, e as l, f as i, g as H, h as S, i as g, p as d, r as m, j as R, s as f, k as h, t as k } from "./hsot-school-search-D1W24ixG.js";
1
+ import { D as o, H as e, a as t, b as r, c as n, d as c, e as l, f as i, g as H, h as S, i as g, p as d, r as m, j as R, s as f, k as h, t as k } from "./hsot-school-search-CKZtwPCA.js";
2
2
  export {
3
3
  o as DEFAULT_HREFS,
4
4
  e as HsotBoxscore,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wral/hsot-data",
3
- "version": "0.1.9",
3
+ "version": "0.1.10",
4
4
  "type": "module",
5
5
  "description": "Lit web components for the HighSchoolOT public data pages: scores/schedules, standings, rankings, school pages, and box scores, rendered from api-hsot v1 read payloads.",
6
6
  "author": "WRAL Digital",