@wral/hsot-data 0.1.8 → 0.1.9
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 +4 -4
- package/dist/define.mjs +1 -1
- package/dist/define.standalone.js +161 -146
- package/dist/{hsot-school-search-R6y64nMR.js → hsot-school-search-D1W24ixG.js} +431 -416
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
|
@@ -17,14 +17,14 @@ let Ft = class {
|
|
|
17
17
|
return this.cssText;
|
|
18
18
|
}
|
|
19
19
|
};
|
|
20
|
-
const
|
|
20
|
+
const se = (a) => new Ft(typeof a == "string" ? a : a + "", void 0, lt), b = (a, ...t) => {
|
|
21
21
|
const e = a.length === 1 ? a[0] : t.reduce((s, r, o) => s + ((i) => {
|
|
22
22
|
if (i._$cssResult$ === !0) return i.cssText;
|
|
23
23
|
if (typeof i == "number") return i;
|
|
24
24
|
throw Error("Value passed to 'css' function must be a 'css' function result: " + i + ". Use 'unsafeCSS' to pass non-literal values, but take care to ensure page security.");
|
|
25
25
|
})(r) + a[o + 1], a[0]);
|
|
26
26
|
return new Ft(e, a, lt);
|
|
27
|
-
},
|
|
27
|
+
}, ae = (a, t) => {
|
|
28
28
|
if (nt) a.adoptedStyleSheets = t.map((e) => e instanceof CSSStyleSheet ? e : e.styleSheet);
|
|
29
29
|
else for (const e of t) {
|
|
30
30
|
const s = document.createElement("style"), r = V.litNonce;
|
|
@@ -33,12 +33,12 @@ const ee = (a) => new Ft(typeof a == "string" ? a : a + "", void 0, lt), b = (a,
|
|
|
33
33
|
}, xt = nt ? (a) => a : (a) => a instanceof CSSStyleSheet ? ((t) => {
|
|
34
34
|
let e = "";
|
|
35
35
|
for (const s of t.cssRules) e += s.cssText;
|
|
36
|
-
return
|
|
36
|
+
return se(e);
|
|
37
37
|
})(a) : a;
|
|
38
|
-
const { is:
|
|
38
|
+
const { is: re, defineProperty: oe, getOwnPropertyDescriptor: ie, getOwnPropertyNames: ne, getOwnPropertySymbols: le, getPrototypeOf: ce } = Object, X = globalThis, kt = X.trustedTypes, he = kt ? kt.emptyScript : "", de = X.reactiveElementPolyfillSupport, B = (a, t) => a, it = { toAttribute(a, t) {
|
|
39
39
|
switch (t) {
|
|
40
40
|
case Boolean:
|
|
41
|
-
a = a ?
|
|
41
|
+
a = a ? he : null;
|
|
42
42
|
break;
|
|
43
43
|
case Object:
|
|
44
44
|
case Array:
|
|
@@ -63,7 +63,7 @@ const { is: ae, defineProperty: re, getOwnPropertyDescriptor: oe, getOwnProperty
|
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
65
|
return e;
|
|
66
|
-
} }, Nt = (a, t) => !
|
|
66
|
+
} }, Nt = (a, t) => !re(a, t), _t = { attribute: !0, type: String, converter: it, reflect: !1, useDefault: !1, hasChanged: Nt };
|
|
67
67
|
Symbol.metadata ??= /* @__PURE__ */ Symbol("metadata"), X.litPropertyMetadata ??= /* @__PURE__ */ new WeakMap();
|
|
68
68
|
let I = class extends HTMLElement {
|
|
69
69
|
static addInitializer(t) {
|
|
@@ -75,11 +75,11 @@ let I = class extends HTMLElement {
|
|
|
75
75
|
static createProperty(t, e = _t) {
|
|
76
76
|
if (e.state && (e.attribute = !1), this._$Ei(), this.prototype.hasOwnProperty(t) && ((e = Object.create(e)).wrapped = !0), this.elementProperties.set(t, e), !e.noAccessor) {
|
|
77
77
|
const s = /* @__PURE__ */ Symbol(), r = this.getPropertyDescriptor(t, s, e);
|
|
78
|
-
r !== void 0 &&
|
|
78
|
+
r !== void 0 && oe(this.prototype, t, r);
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
81
|
static getPropertyDescriptor(t, e, s) {
|
|
82
|
-
const { get: r, set: o } =
|
|
82
|
+
const { get: r, set: o } = ie(this.prototype, t) ?? { get() {
|
|
83
83
|
return this[e];
|
|
84
84
|
}, set(i) {
|
|
85
85
|
this[e] = i;
|
|
@@ -94,13 +94,13 @@ let I = class extends HTMLElement {
|
|
|
94
94
|
}
|
|
95
95
|
static _$Ei() {
|
|
96
96
|
if (this.hasOwnProperty(B("elementProperties"))) return;
|
|
97
|
-
const t =
|
|
97
|
+
const t = ce(this);
|
|
98
98
|
t.finalize(), t.l !== void 0 && (this.l = [...t.l]), this.elementProperties = new Map(t.elementProperties);
|
|
99
99
|
}
|
|
100
100
|
static finalize() {
|
|
101
101
|
if (this.hasOwnProperty(B("finalized"))) return;
|
|
102
102
|
if (this.finalized = !0, this._$Ei(), this.hasOwnProperty(B("properties"))) {
|
|
103
|
-
const e = this.properties, s = [...
|
|
103
|
+
const e = this.properties, s = [...ne(e), ...le(e)];
|
|
104
104
|
for (const r of s) this.createProperty(r, e[r]);
|
|
105
105
|
}
|
|
106
106
|
const t = this[Symbol.metadata];
|
|
@@ -146,7 +146,7 @@ let I = class extends HTMLElement {
|
|
|
146
146
|
}
|
|
147
147
|
createRenderRoot() {
|
|
148
148
|
const t = this.shadowRoot ?? this.attachShadow(this.constructor.shadowRootOptions);
|
|
149
|
-
return
|
|
149
|
+
return ae(t, this.constructor.elementStyles), t;
|
|
150
150
|
}
|
|
151
151
|
connectedCallback() {
|
|
152
152
|
this.renderRoot ??= this.createRenderRoot(), this.enableUpdating(!0), this._$EO?.forEach((t) => t.hostConnected?.());
|
|
@@ -246,41 +246,41 @@ let I = class extends HTMLElement {
|
|
|
246
246
|
firstUpdated(t) {
|
|
247
247
|
}
|
|
248
248
|
};
|
|
249
|
-
I.elementStyles = [], I.shadowRootOptions = { mode: "open" }, I[B("elementProperties")] = /* @__PURE__ */ new Map(), I[B("finalized")] = /* @__PURE__ */ new Map(),
|
|
250
|
-
const ct = globalThis, St = (a) => a, Y = ct.trustedTypes, At = Y ? Y.createPolicy("lit-html", { createHTML: (a) => a }) : void 0,
|
|
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
|
+
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"),
|
|
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);
|
|
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;
|
|
256
256
|
}
|
|
257
|
-
const
|
|
257
|
+
const fe = (a, t) => {
|
|
258
258
|
const e = a.length - 1, s = [];
|
|
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
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] === '"' ?
|
|
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);
|
|
264
264
|
const u = i === S && a[n + 1].startsWith("/>") ? " " : "";
|
|
265
|
-
o += i === R ? d +
|
|
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);
|
|
266
266
|
}
|
|
267
267
|
return [Lt(a, o + (a[e] || "<?>") + (t === 2 ? "</svg>" : t === 3 ? "</math>" : "")), s];
|
|
268
268
|
};
|
|
269
|
-
class
|
|
269
|
+
class U {
|
|
270
270
|
constructor({ strings: t, _$litType$: e }, s) {
|
|
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] =
|
|
275
|
-
if (this.el =
|
|
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) {
|
|
276
276
|
const p = this.el.content.firstChild;
|
|
277
277
|
p.replaceWith(...p.childNodes);
|
|
278
278
|
}
|
|
279
279
|
for (; (r = A.nextNode()) !== null && d.length < n; ) {
|
|
280
280
|
if (r.nodeType === 1) {
|
|
281
|
-
if (r.hasAttributes()) for (const p of r.getAttributeNames()) if (p.endsWith(
|
|
281
|
+
if (r.hasAttributes()) for (const p of r.getAttributeNames()) if (p.endsWith(Ut)) {
|
|
282
282
|
const f = h[i++], u = r.getAttribute(p).split(k), $ = /([.?@])?(.*)/.exec(f);
|
|
283
|
-
d.push({ type: 1, index: o, name: $[2], strings: u, ctor: $[1] === "." ?
|
|
283
|
+
d.push({ type: 1, index: o, name: $[2], strings: u, ctor: $[1] === "." ? ge : $[1] === "?" ? ve : $[1] === "@" ? $e : tt }), r.removeAttribute(p);
|
|
284
284
|
} else p.startsWith(k) && (d.push({ type: 6, index: o }), r.removeAttribute(p));
|
|
285
285
|
if (Ht.test(r.tagName)) {
|
|
286
286
|
const p = r.textContent.split(k), f = p.length - 1;
|
|
@@ -290,7 +290,7 @@ class O {
|
|
|
290
290
|
r.append(p[f], F());
|
|
291
291
|
}
|
|
292
292
|
}
|
|
293
|
-
} else if (r.nodeType === 8) if (r.data ===
|
|
293
|
+
} else if (r.nodeType === 8) if (r.data === Ot) d.push({ type: 2, index: o });
|
|
294
294
|
else {
|
|
295
295
|
let p = -1;
|
|
296
296
|
for (; (p = r.data.indexOf(k, p + 1)) !== -1; ) d.push({ type: 7, index: o }), p += k.length - 1;
|
|
@@ -309,7 +309,7 @@ function D(a, t, e = a, s) {
|
|
|
309
309
|
const o = N(t) ? void 0 : t._$litDirective$;
|
|
310
310
|
return r?.constructor !== o && (r?._$AO?.(!1), o === void 0 ? r = void 0 : (r = new o(a), r._$AT(a, e, s)), s !== void 0 ? (e._$Co ??= [])[s] = r : e._$Cl = r), r !== void 0 && (t = D(a, r._$AS(a, t.values), r, s)), t;
|
|
311
311
|
}
|
|
312
|
-
class
|
|
312
|
+
class ue {
|
|
313
313
|
constructor(t, e) {
|
|
314
314
|
this._$AV = [], this._$AN = void 0, this._$AD = t, this._$AM = e;
|
|
315
315
|
}
|
|
@@ -326,7 +326,7 @@ class fe {
|
|
|
326
326
|
for (; d !== void 0; ) {
|
|
327
327
|
if (i === d.index) {
|
|
328
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
|
|
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];
|
|
330
330
|
}
|
|
331
331
|
i !== d?.index && (o = A.nextNode(), i++);
|
|
332
332
|
}
|
|
@@ -356,7 +356,7 @@ class M {
|
|
|
356
356
|
return this._$AB;
|
|
357
357
|
}
|
|
358
358
|
_$AI(t, e = this) {
|
|
359
|
-
t = D(this, t, e), N(t) ? t === m || t == null || t === "" ? (this._$AH !== m && this._$AR(), this._$AH = m) : t !== this._$AH && t !== P && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) :
|
|
359
|
+
t = D(this, t, e), N(t) ? t === m || t == null || t === "" ? (this._$AH !== m && this._$AR(), this._$AH = m) : t !== this._$AH && t !== P && this._(t) : t._$litType$ !== void 0 ? this.$(t) : t.nodeType !== void 0 ? this.T(t) : me(t) ? this.k(t) : this._(t);
|
|
360
360
|
}
|
|
361
361
|
O(t) {
|
|
362
362
|
return this._$AA.parentNode.insertBefore(t, this._$AB);
|
|
@@ -368,16 +368,16 @@ class M {
|
|
|
368
368
|
this._$AH !== m && N(this._$AH) ? this._$AA.nextSibling.data = t : this.T(T.createTextNode(t)), this._$AH = t;
|
|
369
369
|
}
|
|
370
370
|
$(t) {
|
|
371
|
-
const { values: e, _$litType$: s } = t, r = typeof s == "number" ? this._$AC(t) : (s.el === void 0 && (s.el =
|
|
371
|
+
const { values: e, _$litType$: s } = t, r = typeof s == "number" ? this._$AC(t) : (s.el === void 0 && (s.el = U.createElement(Lt(s.h, s.h[0]), this.options)), s);
|
|
372
372
|
if (this._$AH?._$AD === r) this._$AH.p(e);
|
|
373
373
|
else {
|
|
374
|
-
const o = new
|
|
374
|
+
const o = new ue(r, this), i = o.u(this.options);
|
|
375
375
|
o.p(e), this.T(i), this._$AH = o;
|
|
376
376
|
}
|
|
377
377
|
}
|
|
378
378
|
_$AC(t) {
|
|
379
379
|
let e = Dt.get(t.strings);
|
|
380
|
-
return e === void 0 && Dt.set(t.strings, e = new
|
|
380
|
+
return e === void 0 && Dt.set(t.strings, e = new U(t)), e;
|
|
381
381
|
}
|
|
382
382
|
k(t) {
|
|
383
383
|
ht(this._$AH) || (this._$AH = [], this._$AR());
|
|
@@ -421,7 +421,7 @@ class tt {
|
|
|
421
421
|
t === m ? this.element.removeAttribute(this.name) : this.element.setAttribute(this.name, t ?? "");
|
|
422
422
|
}
|
|
423
423
|
}
|
|
424
|
-
class
|
|
424
|
+
class ge extends tt {
|
|
425
425
|
constructor() {
|
|
426
426
|
super(...arguments), this.type = 3;
|
|
427
427
|
}
|
|
@@ -429,7 +429,7 @@ class ue extends tt {
|
|
|
429
429
|
this.element[this.name] = t === m ? void 0 : t;
|
|
430
430
|
}
|
|
431
431
|
}
|
|
432
|
-
class
|
|
432
|
+
class ve extends tt {
|
|
433
433
|
constructor() {
|
|
434
434
|
super(...arguments), this.type = 4;
|
|
435
435
|
}
|
|
@@ -437,7 +437,7 @@ class ge extends tt {
|
|
|
437
437
|
this.element.toggleAttribute(this.name, !!t && t !== m);
|
|
438
438
|
}
|
|
439
439
|
}
|
|
440
|
-
class
|
|
440
|
+
class $e extends tt {
|
|
441
441
|
constructor(t, e, s, r, o) {
|
|
442
442
|
super(t, e, s, r, o), this.type = 5;
|
|
443
443
|
}
|
|
@@ -450,7 +450,7 @@ class ve extends tt {
|
|
|
450
450
|
typeof this._$AH == "function" ? this._$AH.call(this.options?.host ?? this.element, t) : this._$AH.handleEvent(t);
|
|
451
451
|
}
|
|
452
452
|
}
|
|
453
|
-
class
|
|
453
|
+
class be {
|
|
454
454
|
constructor(t, e, s) {
|
|
455
455
|
this.element = t, this.type = 6, this._$AN = void 0, this._$AM = e, this.options = s;
|
|
456
456
|
}
|
|
@@ -461,9 +461,9 @@ class $e {
|
|
|
461
461
|
D(this, t);
|
|
462
462
|
}
|
|
463
463
|
}
|
|
464
|
-
const
|
|
465
|
-
|
|
466
|
-
const
|
|
464
|
+
const ye = ct.litHtmlPolyfillSupport;
|
|
465
|
+
ye?.(U, M), (ct.litHtmlVersions ??= []).push("3.3.3");
|
|
466
|
+
const we = (a, t, e) => {
|
|
467
467
|
const s = e?.renderBefore ?? t;
|
|
468
468
|
let r = s._$litPart$;
|
|
469
469
|
if (r === void 0) {
|
|
@@ -473,7 +473,7 @@ const ye = (a, t, e) => {
|
|
|
473
473
|
return r._$AI(a), r;
|
|
474
474
|
};
|
|
475
475
|
const dt = globalThis;
|
|
476
|
-
class
|
|
476
|
+
class E extends I {
|
|
477
477
|
constructor() {
|
|
478
478
|
super(...arguments), this.renderOptions = { host: this }, this._$Do = void 0;
|
|
479
479
|
}
|
|
@@ -483,7 +483,7 @@ class C extends I {
|
|
|
483
483
|
}
|
|
484
484
|
update(t) {
|
|
485
485
|
const e = this.render();
|
|
486
|
-
this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do =
|
|
486
|
+
this.hasUpdated || (this.renderOptions.isConnected = this.isConnected), super.update(t), this._$Do = we(e, this.renderRoot, this.renderOptions);
|
|
487
487
|
}
|
|
488
488
|
connectedCallback() {
|
|
489
489
|
super.connectedCallback(), this._$Do?.setConnected(!0);
|
|
@@ -495,18 +495,18 @@ class C extends I {
|
|
|
495
495
|
return P;
|
|
496
496
|
}
|
|
497
497
|
}
|
|
498
|
-
|
|
499
|
-
const
|
|
500
|
-
|
|
498
|
+
E._$litElement$ = !0, E.finalized = !0, dt.litElementHydrateSupport?.({ LitElement: E });
|
|
499
|
+
const xe = dt.litElementPolyfillSupport;
|
|
500
|
+
xe?.({ LitElement: E });
|
|
501
501
|
(dt.litElementVersions ??= []).push("4.2.2");
|
|
502
|
-
const
|
|
503
|
-
function
|
|
502
|
+
const ke = 50;
|
|
503
|
+
function _e(a = {}) {
|
|
504
504
|
const t = Object.entries(a).filter(([, s]) => s != null && s !== "");
|
|
505
505
|
if (!t.length) return "";
|
|
506
506
|
const e = new URLSearchParams();
|
|
507
507
|
return t.forEach(([s, r]) => e.set(s, String(r))), `?${e.toString()}`;
|
|
508
508
|
}
|
|
509
|
-
function
|
|
509
|
+
function Se({ baseUrl: a, token: t = "", fetchFn: e } = {}) {
|
|
510
510
|
if (!a) throw new Error("createClient requires a baseUrl");
|
|
511
511
|
const s = a.replace(/\/+$/, ""), r = e || ((...n) => fetch(...n));
|
|
512
512
|
async function o(n) {
|
|
@@ -522,8 +522,8 @@ function _e({ baseUrl: a, token: t = "", fetchFn: e } = {}) {
|
|
|
522
522
|
async function i(n, d = {}) {
|
|
523
523
|
const c = [];
|
|
524
524
|
let h = null;
|
|
525
|
-
for (let p = 0; p <
|
|
526
|
-
const f =
|
|
525
|
+
for (let p = 0; p < ke; p += 1) {
|
|
526
|
+
const f = _e(h ? { ...d, cursor: h } : d), u = await o(`${n}${f}`);
|
|
527
527
|
if (c.push(...u.items || []), h = u.nextCursor || null, !h) break;
|
|
528
528
|
}
|
|
529
529
|
return { items: c, total: c.length, nextCursor: null };
|
|
@@ -572,7 +572,7 @@ function pt(a) {
|
|
|
572
572
|
const s = t >= 12 ? "PM" : "AM";
|
|
573
573
|
return `${(t + 11) % 12 + 1}:${String(e || 0).padStart(2, "0")} ${s}`;
|
|
574
574
|
}
|
|
575
|
-
function
|
|
575
|
+
function Ae(a) {
|
|
576
576
|
return a ? `${Math.floor(a / 12)}-${a % 12}` : "·";
|
|
577
577
|
}
|
|
578
578
|
function et(a = /* @__PURE__ */ new Date()) {
|
|
@@ -583,7 +583,7 @@ function mt(a = /* @__PURE__ */ new Date()) {
|
|
|
583
583
|
const t = (e) => String(e).padStart(2, "0");
|
|
584
584
|
return `${a.getFullYear()}-${t(a.getMonth() + 1)}-${t(a.getDate())}`;
|
|
585
585
|
}
|
|
586
|
-
function
|
|
586
|
+
function Te(a, t = mt()) {
|
|
587
587
|
const e = [...new Set((a || []).filter(Boolean))].sort();
|
|
588
588
|
if (!e.length || e.includes(t)) return t;
|
|
589
589
|
const s = e.filter((r) => r < t);
|
|
@@ -597,7 +597,7 @@ function K(a) {
|
|
|
597
597
|
const t = parseInt(a.slice(1), 16), e = t >> 16 & 255, s = t >> 8 & 255, r = t & 255;
|
|
598
598
|
return 0.299 * e + 0.587 * s + 0.114 * r > 150 ? "#0F1B33" : "#FFFFFF";
|
|
599
599
|
}
|
|
600
|
-
const
|
|
600
|
+
const Ie = (a) => {
|
|
601
601
|
const t = ["th", "st", "nd", "rd"], e = a % 100;
|
|
602
602
|
return a + (t[(e - 20) % 10] || t[e] || t[0]);
|
|
603
603
|
};
|
|
@@ -609,7 +609,7 @@ function jt(a) {
|
|
|
609
609
|
}
|
|
610
610
|
return a.state === "postponed" ? { kind: "warn", label: "Postponed" } : a.state === "canceled" ? { kind: "warn", label: "Canceled" } : { kind: "sched", label: `${y(a.date, { month: "short", day: "numeric" })} · ${pt(a.time)}`.replace(/ · $/, "") };
|
|
611
611
|
}
|
|
612
|
-
const
|
|
612
|
+
const Ce = /* @__PURE__ */ new Set(["game", "story", "page", "forum", "video", "gallery"]);
|
|
613
613
|
function _(a) {
|
|
614
614
|
let t = String(a || "").replace(/^[a-z][a-z0-9+.-]*:\/\/[^/#?]*/i, "");
|
|
615
615
|
const e = t.indexOf("#");
|
|
@@ -634,9 +634,9 @@ 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)) ||
|
|
637
|
+
return d.length > 2 || d.some((c) => !/^[a-z][a-z-]*$/.test(c)) || Ce.has(d[0]) ? null : n;
|
|
638
638
|
}
|
|
639
|
-
function
|
|
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 ? [
|
|
641
641
|
{ label: "Boys Standings", href: s("boys/standings") },
|
|
642
642
|
{ label: "Girls Standings", href: s("girls/standings") }
|
|
@@ -649,12 +649,12 @@ function Ce(a, t, e) {
|
|
|
649
649
|
{ label: "Polls & Rankings", href: s("rankings") }
|
|
650
650
|
];
|
|
651
651
|
}
|
|
652
|
-
function
|
|
652
|
+
function De(a, t = Wt()) {
|
|
653
653
|
const e = _(t);
|
|
654
654
|
for (const s of a.querySelectorAll(':scope > a[slot="nav"]'))
|
|
655
655
|
e && _(s.getAttribute("href")) === e ? s.setAttribute("aria-current", "page") : s.removeAttribute("aria-current");
|
|
656
656
|
}
|
|
657
|
-
class w extends
|
|
657
|
+
class w extends E {
|
|
658
658
|
static properties = {
|
|
659
659
|
api: { type: String },
|
|
660
660
|
refreshInterval: { type: Number, attribute: "refresh-interval" },
|
|
@@ -673,7 +673,7 @@ class w extends C {
|
|
|
673
673
|
this._client = t, this.isConnected && this.load();
|
|
674
674
|
}
|
|
675
675
|
get client() {
|
|
676
|
-
return this._client ? this._client : this.api ?
|
|
676
|
+
return this._client ? this._client : this.api ? Se({ baseUrl: this.api }) : null;
|
|
677
677
|
}
|
|
678
678
|
connectedCallback() {
|
|
679
679
|
super.connectedCallback(), this._setupInterval();
|
|
@@ -685,7 +685,7 @@ class w extends C {
|
|
|
685
685
|
this.load();
|
|
686
686
|
}
|
|
687
687
|
updated(t) {
|
|
688
|
-
t.has("api") && t.get("api") !== void 0 && t.get("api") !== this.api && this.load(), t.has("refreshInterval") && this._setupInterval(),
|
|
688
|
+
t.has("api") && t.get("api") !== void 0 && t.get("api") !== this.api && this.load(), t.has("refreshInterval") && this._setupInterval(), De(this);
|
|
689
689
|
}
|
|
690
690
|
async load() {
|
|
691
691
|
const t = this.client;
|
|
@@ -720,7 +720,7 @@ class w extends C {
|
|
|
720
720
|
return l``;
|
|
721
721
|
}
|
|
722
722
|
}
|
|
723
|
-
const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])),
|
|
723
|
+
const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), ze = b`
|
|
724
724
|
:host {
|
|
725
725
|
--hsot-red: var(--color-red, #D1232A);
|
|
726
726
|
--hsot-red-deep: var(--color-red-dark, #951C21);
|
|
@@ -758,7 +758,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
|
|
|
758
758
|
outline-offset: 1px;
|
|
759
759
|
}
|
|
760
760
|
.mut { color: var(--hsot-gray-5); }
|
|
761
|
-
`,
|
|
761
|
+
`, Re = b`
|
|
762
762
|
.band { background: var(--hsot-white); color: var(--hsot-black); }
|
|
763
763
|
.band .inner { max-width: 1366px; margin: 0 auto; padding: 1.1rem 1.25rem 0; }
|
|
764
764
|
.band h1, .band h2.bandtitle {
|
|
@@ -807,7 +807,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
|
|
|
807
807
|
@media (max-width: 720px) {
|
|
808
808
|
.band h1, .band h2.bandtitle, .band.section h1, .band.section h2.bandtitle { font-size: 1.8rem; }
|
|
809
809
|
}
|
|
810
|
-
`,
|
|
810
|
+
`, Be = b`
|
|
811
811
|
.view { max-width: 1366px; margin: 0 auto; padding: 1.25rem; box-sizing: border-box; }
|
|
812
812
|
/* Optional right rail (slot="rail" light-DOM children): a divided 300px
|
|
813
813
|
column on desktop, stacked under the view content on smaller screens. */
|
|
@@ -871,7 +871,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
|
|
|
871
871
|
.error { padding: 1.2rem 1rem; color: var(--hsot-red-deep); font-size: 0.9rem; }
|
|
872
872
|
.note { font-size: 0.8125rem; color: var(--hsot-gray-5); margin: 0.6rem 0 0; }
|
|
873
873
|
.loading { padding: 1.2rem; color: var(--hsot-gray-5); font-family: var(--hsot-heading-font); }
|
|
874
|
-
`,
|
|
874
|
+
`, Fe = b`
|
|
875
875
|
.pill {
|
|
876
876
|
display: inline-block; font-family: var(--hsot-heading-font); font-weight: 700;
|
|
877
877
|
font-size: 0.6875rem; text-transform: uppercase; letter-spacing: 0.04em;
|
|
@@ -886,7 +886,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
|
|
|
886
886
|
.pill.champ { background: var(--hsot-straw); color: #6b5900; }
|
|
887
887
|
@keyframes hsot-pulse { 0%, 100% { opacity: 1; } 50% { opacity: 0.55; } }
|
|
888
888
|
@media (prefers-reduced-motion: reduce) { .pill.live { animation: none; } }
|
|
889
|
-
`,
|
|
889
|
+
`, Ne = b`
|
|
890
890
|
.tablewrap { overflow-x: auto; }
|
|
891
891
|
table.data { font-family: var(--hsot-heading-font); font-size: 14px; border-collapse: collapse; width: 100%; }
|
|
892
892
|
table.data th {
|
|
@@ -904,7 +904,7 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
|
|
|
904
904
|
table.data tbody tr.rowlink:hover { background: var(--hsot-gray-1); }
|
|
905
905
|
table.data td.teamcell a { color: inherit; text-decoration: none; font-weight: 500; }
|
|
906
906
|
table.data td.teamcell a:hover { text-decoration: underline; }
|
|
907
|
-
`,
|
|
907
|
+
`, Ue = b`
|
|
908
908
|
.swatch {
|
|
909
909
|
display: inline-flex; align-items: center; justify-content: center;
|
|
910
910
|
width: 26px; height: 26px; border-radius: 50%;
|
|
@@ -978,11 +978,11 @@ const v = (a) => Object.fromEntries((a || []).map((t) => [t.id, t])), De = b`
|
|
|
978
978
|
.gamelist .ff { color: var(--hsot-gray-5); font-size: 0.78rem; font-style: italic; }
|
|
979
979
|
.gamelist .where { color: var(--hsot-gray-5); font-size: 0.78rem; }
|
|
980
980
|
.gamelist a.box { font-size: 0.78rem; }
|
|
981
|
-
`, j = [
|
|
981
|
+
`, j = [ze, Re, Be, Fe, Ne, Ue, Oe];
|
|
982
982
|
function ut(a) {
|
|
983
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";
|
|
984
984
|
}
|
|
985
|
-
function
|
|
985
|
+
function He(a) {
|
|
986
986
|
return !a || !a.forfeit || a.forfeit === "none" ? null : a.forfeit === "home" ? "away" : a.forfeit === "away" ? "home" : null;
|
|
987
987
|
}
|
|
988
988
|
function W(a, t) {
|
|
@@ -1045,7 +1045,7 @@ function vt(a, t, e, s, r) {
|
|
|
1045
1045
|
}
|
|
1046
1046
|
return n ? n.rank : null;
|
|
1047
1047
|
}
|
|
1048
|
-
function
|
|
1048
|
+
function Me(a, t, e) {
|
|
1049
1049
|
if (!a) return { kind: "none", delta: 0 };
|
|
1050
1050
|
const s = (a.teamIds || []).indexOf(e) + 1;
|
|
1051
1051
|
if (!s) return { kind: "none", delta: 0 };
|
|
@@ -1055,14 +1055,22 @@ function He(a, t, e) {
|
|
|
1055
1055
|
const o = r - s;
|
|
1056
1056
|
return o > 0 ? { kind: "up", delta: o } : o < 0 ? { kind: "down", delta: -o } : { kind: "same", delta: 0 };
|
|
1057
1057
|
}
|
|
1058
|
-
function
|
|
1058
|
+
function Le(a) {
|
|
1059
1059
|
return /^https?:\/\//i.test(String(a || ""));
|
|
1060
1060
|
}
|
|
1061
|
+
function Gt(a, { w: t, h: e } = {}) {
|
|
1062
|
+
if (!Le(a)) return "";
|
|
1063
|
+
const s = [];
|
|
1064
|
+
t && s.push(`w=${Math.max(1, Math.round(t))}`), e && s.push(`h=${Math.max(1, Math.round(e))}`), s.push("f=webp");
|
|
1065
|
+
const r = a.includes("?") ? "&" : "?";
|
|
1066
|
+
return `${a}${r}${s.join("&")}`;
|
|
1067
|
+
}
|
|
1061
1068
|
function Q(a, t) {
|
|
1062
|
-
const e =
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1069
|
+
const e = t * 2;
|
|
1070
|
+
return Gt(a?.logoAssetId, { w: e, h: e });
|
|
1071
|
+
}
|
|
1072
|
+
function je(a, t) {
|
|
1073
|
+
return Gt(a?.photoAssetId, { w: t * 2 });
|
|
1066
1074
|
}
|
|
1067
1075
|
function $t(a, t, { title: e, sub: s, teams: r }) {
|
|
1068
1076
|
const o = Wt(), n = !!a.querySelector(':scope > a[slot="nav"]') || Ee(o, t.hrefs, t.sport) !== null;
|
|
@@ -1076,7 +1084,7 @@ function $t(a, t, { title: e, sub: s, teams: r }) {
|
|
|
1076
1084
|
<nav class="sectionnav" aria-label="${z(t.sport)} section">
|
|
1077
1085
|
<div class="navrow">
|
|
1078
1086
|
<slot name="nav">
|
|
1079
|
-
${
|
|
1087
|
+
${Pe(t.sport, r, t.hrefs).map((d) => l`<a href=${d.href}
|
|
1080
1088
|
aria-current=${o && _(d.href) === o ? "page" : m}>${d.label}</a>`)}
|
|
1081
1089
|
</slot>
|
|
1082
1090
|
</div>
|
|
@@ -1084,10 +1092,10 @@ function $t(a, t, { title: e, sub: s, teams: r }) {
|
|
|
1084
1092
|
</div>
|
|
1085
1093
|
`;
|
|
1086
1094
|
}
|
|
1087
|
-
const
|
|
1095
|
+
const O = (a, t) => {
|
|
1088
1096
|
const e = a.teamsById[t];
|
|
1089
1097
|
return e ? a.schoolsById[e.schoolId] : null;
|
|
1090
|
-
},
|
|
1098
|
+
}, C = (a, t) => O(a, t)?.name || "TBD", Z = (a, t) => O(a, t)?.abbr || "TBD";
|
|
1091
1099
|
function H(a, t = 26) {
|
|
1092
1100
|
if (!a) return m;
|
|
1093
1101
|
const e = Q(a, t);
|
|
@@ -1103,8 +1111,8 @@ function bt(a, t, e) {
|
|
|
1103
1111
|
const s = vt(a.rankings, a.teamsById, t, a.sport, e);
|
|
1104
1112
|
return s ? l`<span class="rankbadge">#${s}</span>` : m;
|
|
1105
1113
|
}
|
|
1106
|
-
function
|
|
1107
|
-
const s =
|
|
1114
|
+
function Vt(a, t, e) {
|
|
1115
|
+
const s = O(a, t);
|
|
1108
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>`;
|
|
1109
1117
|
}
|
|
1110
1118
|
function yt(a, t, e = 5) {
|
|
@@ -1113,7 +1121,7 @@ function yt(a, t, e = 5) {
|
|
|
1113
1121
|
const r = s.results.slice(-1 * e);
|
|
1114
1122
|
return l`<span class="dots" role="img" aria-label="last ${r.length} results">
|
|
1115
1123
|
${r.map((o) => l`<a class="dot ${o.mark}"
|
|
1116
|
-
title="${o.mark} ${o.my}-${o.their} vs ${
|
|
1124
|
+
title="${o.mark} ${o.my}-${o.their} vs ${C(a, o.opp)}"
|
|
1117
1125
|
href=${g(a.hrefs.game, { sport: a.sport, id: o.gameId })}>${o.mark}</a>`)}
|
|
1118
1126
|
</span>`;
|
|
1119
1127
|
}
|
|
@@ -1132,12 +1140,12 @@ function J(a) {
|
|
|
1132
1140
|
const t = jt(a);
|
|
1133
1141
|
return l`<span class="pill ${t.kind}">${t.label}</span>`;
|
|
1134
1142
|
}
|
|
1135
|
-
function
|
|
1143
|
+
function Yt(a, t, e) {
|
|
1136
1144
|
if (!t) return l`<span class="mut">·</span>`;
|
|
1137
1145
|
const s = t.homeTeamId === e ? t.awayTeamId : t.homeTeamId, r = t.homeTeamId === e ? "vs" : "at";
|
|
1138
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)}`;
|
|
1139
1147
|
}
|
|
1140
|
-
class
|
|
1148
|
+
class Kt extends w {
|
|
1141
1149
|
static styles = j;
|
|
1142
1150
|
static properties = {
|
|
1143
1151
|
...w.properties,
|
|
@@ -1163,7 +1171,7 @@ class Yt extends w {
|
|
|
1163
1171
|
t.listGames({ sport: this.sport, season: e }),
|
|
1164
1172
|
t.listRankings({ sport: this.sport })
|
|
1165
1173
|
]);
|
|
1166
|
-
return this._datePinned || (this.date =
|
|
1174
|
+
return this._datePinned || (this.date = Te(i.items.map((d) => d.date)), this._datePinned = !0), {
|
|
1167
1175
|
season: e,
|
|
1168
1176
|
schools: s.items,
|
|
1169
1177
|
teams: r.items,
|
|
@@ -1234,12 +1242,12 @@ class Yt extends w {
|
|
|
1234
1242
|
// a lone score column on the far right read as detached from the teams).
|
|
1235
1243
|
// Scheduled games carry their start time on the status pill alone.
|
|
1236
1244
|
renderGame(t, e) {
|
|
1237
|
-
const s = e.state === "final" || e.state === "live", r = (i, n, d = m) => l`<span class="side">${
|
|
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);
|
|
1238
1246
|
return l`
|
|
1239
1247
|
<li>
|
|
1240
1248
|
${J(e)}
|
|
1241
1249
|
<span class="opp matchup">${r(e.awayTeamId, e.awayScore, l`<span class="at">at</span>`)}${r(e.homeTeamId, e.homeScore)}</span>
|
|
1242
|
-
${o ? l`<span class="ff">${
|
|
1250
|
+
${o ? l`<span class="ff">${C(t, o === "home" ? e.homeTeamId : e.awayTeamId)} forfeited</span>` : m}
|
|
1243
1251
|
<span class="where">${e.venue || ""}</span>
|
|
1244
1252
|
${e.broadcast ? l`<span class="pill class">${e.broadcast}</span>` : m}
|
|
1245
1253
|
<a class="box" href=${g(t.hrefs.game, { sport: this.sport, id: e.id })}>Box score →</a>
|
|
@@ -1247,8 +1255,8 @@ class Yt extends w {
|
|
|
1247
1255
|
`;
|
|
1248
1256
|
}
|
|
1249
1257
|
}
|
|
1250
|
-
globalThis?.customElements && !globalThis.customElements.get("hsot-scores") && globalThis.customElements.define("hsot-scores",
|
|
1251
|
-
class
|
|
1258
|
+
globalThis?.customElements && !globalThis.customElements.get("hsot-scores") && globalThis.customElements.define("hsot-scores", Kt);
|
|
1259
|
+
class Qt extends w {
|
|
1252
1260
|
static styles = j;
|
|
1253
1261
|
static properties = {
|
|
1254
1262
|
...w.properties,
|
|
@@ -1364,13 +1372,13 @@ class Kt extends w {
|
|
|
1364
1372
|
<td class="num" style="color:${n >= 0 ? "var(--hsot-win)" : "var(--hsot-loss)"}">${n > 0 ? "+" : ""}${n}</td>
|
|
1365
1373
|
<td>${st(e.rec.results) || "·"}</td>
|
|
1366
1374
|
<td>${yt(t, e.team.id)}</td>
|
|
1367
|
-
<td>${
|
|
1375
|
+
<td>${Yt(t, d, e.team.id)}</td>
|
|
1368
1376
|
</tr>
|
|
1369
1377
|
`;
|
|
1370
1378
|
}
|
|
1371
1379
|
}
|
|
1372
|
-
globalThis?.customElements && !globalThis.customElements.get("hsot-standings") && globalThis.customElements.define("hsot-standings",
|
|
1373
|
-
const
|
|
1380
|
+
globalThis?.customElements && !globalThis.customElements.get("hsot-standings") && globalThis.customElements.define("hsot-standings", Qt);
|
|
1381
|
+
const We = b`
|
|
1374
1382
|
.hero1 {
|
|
1375
1383
|
border-radius: var(--hsot-radius-md); color: var(--hsot-white);
|
|
1376
1384
|
padding: 1.3rem 1.4rem; display: flex; align-items: center; gap: 1.2rem;
|
|
@@ -1387,8 +1395,8 @@ const Le = b`
|
|
|
1387
1395
|
.delta.new { background: var(--hsot-straw); color: #6b5900; border-radius: var(--hsot-radius-xs); padding: 0.1rem 0.3rem; font-size: 0.7rem; }
|
|
1388
1396
|
.sparkline { vertical-align: middle; }
|
|
1389
1397
|
`;
|
|
1390
|
-
class
|
|
1391
|
-
static styles = [...j,
|
|
1398
|
+
class Zt extends w {
|
|
1399
|
+
static styles = [...j, We];
|
|
1392
1400
|
static properties = {
|
|
1393
1401
|
...w.properties,
|
|
1394
1402
|
sport: { type: String },
|
|
@@ -1450,13 +1458,13 @@ class Qt extends w {
|
|
|
1450
1458
|
</svg>`;
|
|
1451
1459
|
}
|
|
1452
1460
|
movement(t, e, s) {
|
|
1453
|
-
const r =
|
|
1461
|
+
const r = Me(t, e, s);
|
|
1454
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>`;
|
|
1455
1463
|
}
|
|
1456
1464
|
renderView() {
|
|
1457
1465
|
const t = this.ctx, e = this.data.polls;
|
|
1458
1466
|
if (!e.length) return l`<div class="view"><p class="empty">No ${this.sport} polls published yet this season.</p></div>`;
|
|
1459
|
-
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 ?
|
|
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;
|
|
1460
1468
|
return l`
|
|
1461
1469
|
${$t(this, t, {
|
|
1462
1470
|
title: l`${z(this.sport)} Top 25`,
|
|
@@ -1518,7 +1526,7 @@ class Qt extends w {
|
|
|
1518
1526
|
`;
|
|
1519
1527
|
}
|
|
1520
1528
|
renderRow(t, e, s, r, o, i, n, d) {
|
|
1521
|
-
const c =
|
|
1529
|
+
const c = O(t, n);
|
|
1522
1530
|
if (!c) return m;
|
|
1523
1531
|
const h = t.records[n], p = Bt(t.records, n), f = gt(this.data.games, n), u = i[t.teamsById[n]?.conferenceId], $ = () => {
|
|
1524
1532
|
location.href = g(t.hrefs.school, { id: c.id });
|
|
@@ -1536,14 +1544,14 @@ class Qt extends w {
|
|
|
1536
1544
|
<td>${p ? l`<a class="box" style="text-decoration:none" href=${g(t.hrefs.game, { sport: this.sport, id: p.gameId })}>
|
|
1537
1545
|
<b style="color:${p.mark === "W" ? "var(--hsot-win)" : p.mark === "L" ? "var(--hsot-loss)" : "var(--hsot-tie)"}">${p.mark}</b>
|
|
1538
1546
|
${p.my}-${p.their} vs ${Z(t, p.opp)}</a>` : l`<span class="mut">·</span>`}</td>
|
|
1539
|
-
<td>${
|
|
1547
|
+
<td>${Yt(t, f, n)}</td>
|
|
1540
1548
|
<td>${this.sparkline(n, r, o)}</td>
|
|
1541
1549
|
</tr>
|
|
1542
1550
|
`;
|
|
1543
1551
|
}
|
|
1544
1552
|
}
|
|
1545
|
-
globalThis?.customElements && !globalThis.customElements.get("hsot-rankings") && globalThis.customElements.define("hsot-rankings",
|
|
1546
|
-
const
|
|
1553
|
+
globalThis?.customElements && !globalThis.customElements.get("hsot-rankings") && globalThis.customElements.define("hsot-rankings", Zt);
|
|
1554
|
+
const qe = b`
|
|
1547
1555
|
.schoolhero { color: var(--hsot-white); padding: 1.6rem 1.25rem 1.3rem; }
|
|
1548
1556
|
.schoolhero .inner { max-width: 1366px; margin: 0 auto; display: flex; gap: 1.2rem; align-items: center; flex-wrap: wrap; }
|
|
1549
1557
|
.schoolhero .crest {
|
|
@@ -1566,10 +1574,14 @@ const je = b`
|
|
|
1566
1574
|
.tile .v { font-family: var(--hsot-heading-font); font-weight: 700; font-size: 1.7rem; line-height: 1.15; color: var(--hsot-black); }
|
|
1567
1575
|
.tile .s { font-size: 0.78rem; color: var(--hsot-gray-5); }
|
|
1568
1576
|
.cols { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: 1.25rem; }
|
|
1577
|
+
/* The season roster photo heads the roster card, above the table. Natural
|
|
1578
|
+
height: a team photo is never cropped to a box — the card's overflow
|
|
1579
|
+
rounds its top corners. */
|
|
1580
|
+
.rosterphoto { display: block; width: 100%; height: auto; background: var(--hsot-gray-1); border-bottom: 1px solid var(--hsot-gray-2); }
|
|
1569
1581
|
@media (max-width: 900px) { .cols { grid-template-columns: 1fr; } .schoolhero h1 { font-size: 1.9rem; } }
|
|
1570
1582
|
`;
|
|
1571
|
-
class
|
|
1572
|
-
static styles = [...j,
|
|
1583
|
+
class Jt extends w {
|
|
1584
|
+
static styles = [...j, qe];
|
|
1573
1585
|
static properties = {
|
|
1574
1586
|
...w.properties,
|
|
1575
1587
|
schoolId: { type: String, attribute: "school-id" },
|
|
@@ -1664,7 +1676,7 @@ class Zt extends w {
|
|
|
1664
1676
|
<div class="tiles">
|
|
1665
1677
|
<div class="tile"><div class="k">Overall</div><div class="v">${x(o)}</div><div class="s">${i} games played</div></div>
|
|
1666
1678
|
<div class="tile"><div class="k">${s?.name || "Conference"}</div><div class="v">${x(o, !0)}</div>
|
|
1667
|
-
<div class="s">${d ? `${
|
|
1679
|
+
<div class="s">${d ? `${Ie(d)} of ${n.length}` : "·"}</div></div>
|
|
1668
1680
|
<div class="tile"><div class="k">Points</div><div class="v">${i ? (o.pf / i).toFixed(1) : "0.0"}</div>
|
|
1669
1681
|
<div class="s">scored per game · ${i ? (o.pa / i).toFixed(1) : "0.0"} allowed</div></div>
|
|
1670
1682
|
<div class="tile"><div class="k">Streak</div><div class="v">${st(o.results) || "·"}</div>
|
|
@@ -1685,7 +1697,7 @@ class Zt extends w {
|
|
|
1685
1697
|
</div>
|
|
1686
1698
|
<div>
|
|
1687
1699
|
<div class="section-title">Roster · ${r}</div>
|
|
1688
|
-
<div class="card">${this.renderRoster(r)}</div>
|
|
1700
|
+
<div class="card">${this.renderRoster(e, r)}</div>
|
|
1689
1701
|
</div>
|
|
1690
1702
|
</div>
|
|
1691
1703
|
`;
|
|
@@ -1703,7 +1715,7 @@ class Zt extends w {
|
|
|
1703
1715
|
<span class="d">${y(s.date)}</span>
|
|
1704
1716
|
${jt(s).kind === "sched" ? m : J(s)}
|
|
1705
1717
|
<span class="res">${d}</span>
|
|
1706
|
-
<span class="opp">${r ? "vs" : "at"} ${
|
|
1718
|
+
<span class="opp">${r ? "vs" : "at"} ${Vt(t, o, s.date)}
|
|
1707
1719
|
<span class="pill type">${c}</span>
|
|
1708
1720
|
${s.broadcast ? l`<span class="pill class">${s.broadcast}</span>` : m}
|
|
1709
1721
|
</span>
|
|
@@ -1712,24 +1724,27 @@ class Zt extends w {
|
|
|
1712
1724
|
</li>
|
|
1713
1725
|
`;
|
|
1714
1726
|
}
|
|
1715
|
-
renderRoster(t) {
|
|
1716
|
-
const
|
|
1717
|
-
if (!
|
|
1718
|
-
return l`<p class="empty">Roster not published for ${
|
|
1719
|
-
const s = v(this.data.players),
|
|
1727
|
+
renderRoster(t, e) {
|
|
1728
|
+
const s = this.data.roster;
|
|
1729
|
+
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);
|
|
1720
1732
|
return l`
|
|
1733
|
+
${r ? l`<img class="rosterphoto" src=${r} loading="lazy" decoding="async"
|
|
1734
|
+
alt="${o} ${t.name} ${e} team photo" />` : m}
|
|
1721
1735
|
<div class="tablewrap"><table class="data">
|
|
1722
|
-
<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
|
|
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>
|
|
1723
1737
|
<tbody>
|
|
1724
|
-
${
|
|
1725
|
-
const
|
|
1726
|
-
return
|
|
1727
|
-
<td class="num mut">${
|
|
1728
|
-
<td style="font-weight:500">${
|
|
1729
|
-
<td>${
|
|
1730
|
-
<td class="mut">${
|
|
1731
|
-
<td class="num">${
|
|
1732
|
-
<td class="num">${
|
|
1738
|
+
${n.map((c) => {
|
|
1739
|
+
const h = i[c.playerId];
|
|
1740
|
+
return h ? l`<tr>
|
|
1741
|
+
<td class="num mut">${c.number ?? "·"}</td>
|
|
1742
|
+
<td style="font-weight:500">${h.firstName} ${h.lastName}</td>
|
|
1743
|
+
<td>${c.position || "·"}</td>
|
|
1744
|
+
<td class="mut">${h.classOf || "·"}</td>
|
|
1745
|
+
<td class="num">${Ae(h.heightIn)}</td>
|
|
1746
|
+
<td class="num">${h.weightLb || "·"}</td>
|
|
1747
|
+
${d ? l`<td>${h.college || "·"}</td>` : m}
|
|
1733
1748
|
</tr>` : m;
|
|
1734
1749
|
})}
|
|
1735
1750
|
</tbody>
|
|
@@ -1737,16 +1752,16 @@ class Zt extends w {
|
|
|
1737
1752
|
`;
|
|
1738
1753
|
}
|
|
1739
1754
|
}
|
|
1740
|
-
globalThis?.customElements && !globalThis.customElements.get("hsot-school") && globalThis.customElements.define("hsot-school",
|
|
1741
|
-
const
|
|
1742
|
-
function
|
|
1755
|
+
globalThis?.customElements && !globalThis.customElements.get("hsot-school") && globalThis.customElements.define("hsot-school", Jt);
|
|
1756
|
+
const Ge = "https://api.wral.com/search";
|
|
1757
|
+
function Ve(a) {
|
|
1743
1758
|
return a.map((t) => `uri:"${t}"`).join(" OR ");
|
|
1744
1759
|
}
|
|
1745
|
-
function
|
|
1746
|
-
const e = String(a ||
|
|
1760
|
+
function Ye(a, t) {
|
|
1761
|
+
const e = String(a || Ge).replace(/\/+$/, ""), s = new URLSearchParams({ query: Ve(t), sort: "score", lang: "en" });
|
|
1747
1762
|
return `${e}/v1/query?${s}`;
|
|
1748
1763
|
}
|
|
1749
|
-
function
|
|
1764
|
+
function Xt(a) {
|
|
1750
1765
|
try {
|
|
1751
1766
|
const t = new URL(a);
|
|
1752
1767
|
if (/(^|\.)smugmug\.com$/i.test(t.hostname)) {
|
|
@@ -1761,13 +1776,13 @@ function Jt(a) {
|
|
|
1761
1776
|
}
|
|
1762
1777
|
return { uri: a, title: a };
|
|
1763
1778
|
}
|
|
1764
|
-
async function
|
|
1765
|
-
const r = await ((...n) => fetch(...n))(
|
|
1779
|
+
async function Ke(a, t, e) {
|
|
1780
|
+
const r = await ((...n) => fetch(...n))(Ye(a, t));
|
|
1766
1781
|
if (!r.ok) throw new Error(`search answered ${r.status}`);
|
|
1767
1782
|
const o = await r.json(), i = new Map((o.items || []).map((n) => [n.uri, n]));
|
|
1768
|
-
return t.map((n) => i.get(n) ||
|
|
1783
|
+
return t.map((n) => i.get(n) || Xt(n));
|
|
1769
1784
|
}
|
|
1770
|
-
const
|
|
1785
|
+
const Qe = b`
|
|
1771
1786
|
.breadcrumbs { font-size: 0.8125rem; margin: 0.9rem 0 0; color: var(--hsot-gray-5); }
|
|
1772
1787
|
.breadcrumbs a { text-decoration: none; }
|
|
1773
1788
|
.scorehead { display: grid; grid-template-columns: 1fr auto 1fr; gap: 1rem; align-items: center; padding: 1.4rem 1rem; }
|
|
@@ -1806,8 +1821,8 @@ const Ye = b`
|
|
|
1806
1821
|
.cols { grid-template-columns: 1fr; }
|
|
1807
1822
|
}
|
|
1808
1823
|
`;
|
|
1809
|
-
class
|
|
1810
|
-
static styles = [...j,
|
|
1824
|
+
class te extends w {
|
|
1825
|
+
static styles = [...j, Qe];
|
|
1811
1826
|
static properties = {
|
|
1812
1827
|
...w.properties,
|
|
1813
1828
|
gameId: { type: String, attribute: "game-id" },
|
|
@@ -1829,7 +1844,7 @@ class Xt extends w {
|
|
|
1829
1844
|
t.listGames({ sport: e.sport, season: e.season }),
|
|
1830
1845
|
// A search outage must not blank the box score — degrade to bare
|
|
1831
1846
|
// links (fetchCoverage already degrades per-URL index misses).
|
|
1832
|
-
s.length ?
|
|
1847
|
+
s.length ? Ke(this.searchApi, s).catch(() => s.map(Xt)) : Promise.resolve([])
|
|
1833
1848
|
]);
|
|
1834
1849
|
return {
|
|
1835
1850
|
game: e,
|
|
@@ -1861,7 +1876,7 @@ class Xt extends w {
|
|
|
1861
1876
|
<p class="breadcrumbs">
|
|
1862
1877
|
<a href=${g(e.hrefs.section, { sport: t.sport, view: "scores" })}>${z(t.sport)}</a> /
|
|
1863
1878
|
<a href=${g(e.hrefs.section, { sport: t.sport, view: "scores" })}>Scores/Schedules</a> /
|
|
1864
|
-
${
|
|
1879
|
+
${C(e, t.awayTeamId)} at ${C(e, t.homeTeamId)}
|
|
1865
1880
|
</p>
|
|
1866
1881
|
<div class="card">
|
|
1867
1882
|
<div class="scorehead">
|
|
@@ -1911,7 +1926,7 @@ class Xt extends w {
|
|
|
1911
1926
|
<div class="card"><ul class="gamelist">
|
|
1912
1927
|
${c.map((h) => l`<li>
|
|
1913
1928
|
<span class="d">${y(h.date)}</span>${J(h)}
|
|
1914
|
-
<span class="opp">${
|
|
1929
|
+
<span class="opp">${C(e, h.awayTeamId)} ${h.awayScore}, ${C(e, h.homeTeamId)} ${h.homeScore}</span>
|
|
1915
1930
|
<a class="box" href=${g(e.hrefs.game, { sport: t.sport, id: h.id })}>Box score →</a>
|
|
1916
1931
|
</li>`)}
|
|
1917
1932
|
</ul></div>` : m}
|
|
@@ -1973,9 +1988,9 @@ class Xt extends w {
|
|
|
1973
1988
|
`;
|
|
1974
1989
|
}
|
|
1975
1990
|
}
|
|
1976
|
-
globalThis?.customElements && !globalThis.customElements.get("hsot-boxscore") && globalThis.customElements.define("hsot-boxscore",
|
|
1977
|
-
const
|
|
1978
|
-
class
|
|
1991
|
+
globalThis?.customElements && !globalThis.customElements.get("hsot-boxscore") && globalThis.customElements.define("hsot-boxscore", te);
|
|
1992
|
+
const Ze = 250, Je = 2;
|
|
1993
|
+
class ee extends E {
|
|
1979
1994
|
static properties = {
|
|
1980
1995
|
api: { type: String },
|
|
1981
1996
|
schoolHref: { type: String, attribute: "school-href" },
|
|
@@ -2055,11 +2070,11 @@ class te extends C {
|
|
|
2055
2070
|
}
|
|
2056
2071
|
onInput(t) {
|
|
2057
2072
|
const e = t.target.value.trim();
|
|
2058
|
-
if (clearTimeout(this.debounceTimer), e.length <
|
|
2073
|
+
if (clearTimeout(this.debounceTimer), e.length < Je) {
|
|
2059
2074
|
this.abortController?.abort(), this.results = [], this.open = !1, this.searched = !1;
|
|
2060
2075
|
return;
|
|
2061
2076
|
}
|
|
2062
|
-
this.debounceTimer = setTimeout(() => this.search(e),
|
|
2077
|
+
this.debounceTimer = setTimeout(() => this.search(e), Ze);
|
|
2063
2078
|
}
|
|
2064
2079
|
async search(t) {
|
|
2065
2080
|
this.abortController?.abort(), this.abortController = new AbortController();
|
|
@@ -2152,22 +2167,22 @@ class te extends C {
|
|
|
2152
2167
|
`;
|
|
2153
2168
|
}
|
|
2154
2169
|
}
|
|
2155
|
-
globalThis?.customElements && !globalThis.customElements.get("hsot-school-search") && globalThis.customElements.define("hsot-school-search",
|
|
2156
|
-
const
|
|
2157
|
-
"hsot-scores":
|
|
2158
|
-
"hsot-standings":
|
|
2159
|
-
"hsot-rankings":
|
|
2160
|
-
"hsot-school":
|
|
2161
|
-
"hsot-boxscore":
|
|
2162
|
-
"hsot-school-search":
|
|
2170
|
+
globalThis?.customElements && !globalThis.customElements.get("hsot-school-search") && globalThis.customElements.define("hsot-school-search", ee);
|
|
2171
|
+
const Xe = {
|
|
2172
|
+
"hsot-scores": Kt,
|
|
2173
|
+
"hsot-standings": Qt,
|
|
2174
|
+
"hsot-rankings": Zt,
|
|
2175
|
+
"hsot-school": Jt,
|
|
2176
|
+
"hsot-boxscore": te,
|
|
2177
|
+
"hsot-school-search": ee
|
|
2163
2178
|
};
|
|
2164
|
-
function
|
|
2179
|
+
function ts() {
|
|
2165
2180
|
const a = globalThis?.customElements;
|
|
2166
2181
|
if (a)
|
|
2167
|
-
for (const [t, e] of Object.entries(
|
|
2182
|
+
for (const [t, e] of Object.entries(Xe))
|
|
2168
2183
|
a.get(t) || a.define(t, e);
|
|
2169
2184
|
}
|
|
2170
|
-
typeof window < "u" && globalThis.customElements &&
|
|
2185
|
+
typeof window < "u" && globalThis.customElements && ts();
|
|
2171
2186
|
export {
|
|
2172
|
-
|
|
2187
|
+
ts as defineAll
|
|
2173
2188
|
};
|