@genome-spy/app 0.86.0 → 0.87.0

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.
Files changed (36) hide show
  1. package/dist/{agentApi-DgopQbMV.js → agentApi-BZ1JCo1N.js} +6994 -6499
  2. package/dist/agentApi.es.js +3057 -3225
  3. package/dist/agentShared.es.js +7 -7
  4. package/dist/{canvas2d-8uxuN_vx.js → canvas2d-B_PnIof-.js} +108 -107
  5. package/dist/{canvas2d-BtQC7Xr8.js → canvas2d-Cafq5v-N.js} +128 -127
  6. package/dist/{clipOptions-taFzEljc.js → clipOptions-D6eh9T-_.js} +1508 -1166
  7. package/dist/{clipOptions-BQfNhxgP.js → clipOptions-H68pJyEZ.js} +1496 -1114
  8. package/dist/{debug-D_VtWQ6l.js → debug-BGzgZmyk.js} +2 -2
  9. package/dist/{debug-Bzc3SoRg.js → debug-UYKZLNh4.js} +2 -2
  10. package/dist/index.es.js +96 -106
  11. package/dist/index.js +399 -392
  12. package/dist/{indexer-qy_dq5l5.js → indexer-Di57GyxX.js} +1 -1
  13. package/dist/{indexer-qiFctgR3.js → indexer-o6Hpg4nN.js} +1 -1
  14. package/dist/nativeText-D9SoxpaD.js +934 -0
  15. package/dist/nativeText-DAjvkrzc.js +934 -0
  16. package/dist/{rasterExport-B8pVoOsj.js → rasterExport-DzldLv6E.js} +1 -1
  17. package/dist/{rasterExport-C4r4xjQT.js → rasterExport-IAbJwi8F.js} +1 -1
  18. package/dist/{renderCanvas2D-BQrRWp2Z.js → renderCanvas2D-BJ93Ptqj.js} +102 -96
  19. package/dist/{renderCanvas2D-CHVNfIUz.js → renderCanvas2D-yJ1IrDcX.js} +103 -97
  20. package/dist/schema.json +10169 -2852
  21. package/dist/{svg-C-Sw6E6G.js → svg-BRpl2Xub.js} +338 -384
  22. package/dist/{svg-CKHwwKRt.js → svg-DJuqHIyc.js} +353 -399
  23. package/dist/{svgRasterizer-BgD72AmG.js → svgRasterizer-CGZQ5njV.js} +1 -1
  24. package/dist/{svgRasterizer-BgSNqI3L.js → svgRasterizer-PAoqLn1j.js} +1 -1
  25. package/dist/{vega-scale-D46-iCaL.js → vega-scale-BGC53c22.js} +887 -1184
  26. package/dist/{vega-scale-CK0_al6O.js → vega-scale-DdW2NzQ3.js} +898 -1195
  27. package/dist/{viewIdentityRegistry-CDtVktJD.js → viewIdentityRegistry-D4p067HU.js} +1 -1
  28. package/dist/{viewIdentityRegistry-B-VGlez1.js → viewIdentityRegistry-Dc2hXYsO.js} +1 -1
  29. package/dist/{viewSelectors-CKfxF_LM.js → viewSelectors-DNXnGwEW.js} +519 -321
  30. package/dist/{viewSelectors-D_imtq5Z.js → viewSelectors-DYYlOt91.js} +584 -386
  31. package/dist/{viewUtils-nCJ7AoaI.js → viewUtils-EdhZTPrJ.js} +2930 -2264
  32. package/dist/{webgl-BaA3jSa2.js → webgl-C53DwzVT.js} +427 -428
  33. package/dist/{webgl-FP-4EsBL.js → webgl-CdgNFlJk.js} +639 -640
  34. package/package.json +5 -5
  35. package/dist/nativeText-DFV5XIx8.js +0 -860
  36. package/dist/nativeText-vT3AWE14.js +0 -860
package/dist/index.es.js CHANGED
@@ -1,10 +1,10 @@
1
1
  import { n as e, t } from "./rolldown-runtime-DF993M8W.js";
2
- import { $ as n, $t as r, A as i, An as a, At as o, B as s, Bt as c, C as l, Cn as u, Ct as d, D as f, Dn as p, Dt as m, E as h, En as g, Et as _, F as v, Fn as y, Ft as b, G as x, Gt as S, H as C, Ht as w, I as T, In as E, It as D, J as O, Jt as k, K as A, Kt as ee, L as j, Ln as M, Lt as te, M as N, Mn as P, Mt as ne, N as re, Nn as ie, Nt as ae, O as oe, On as se, Ot as ce, P as le, Pn as ue, Pt as de, Q as fe, Qt as pe, R as me, Rn as he, Rt as ge, S as _e, Sn as ve, St as ye, T as be, Tn as xe, Tt as Se, U as Ce, Ut as we, V as Te, Vt as Ee, W as De, Wt as Oe, X as ke, Xt as Ae, Y as je, Yt as Me, Z as Ne, Zt as Pe, _ as Fe, _n as Ie, _t as Le, a as Re, an as ze, at as Be, b as Ve, bn as He, bt as Ue, c as We, cn as Ge, ct as Ke, d as qe, dn as Je, dt as Ye, en as Xe, et as Ze, f as Qe, fn as $e, ft as et, g as tt, gn as nt, gt as rt, h as it, hn as at, ht as ot, i as st, in as ct, it as lt, j as ut, jn as dt, jt as ft, k as pt, kn as F, kt as mt, l as ht, ln as gt, lt as _t, m as vt, mn as yt, mt as bt, n as xt, nn as St, nt as Ct, o as wt, on as Tt, ot as Et, p as Dt, pn as Ot, pt as kt, q as At, qt as jt, r as Mt, rn as Nt, rt as Pt, s as Ft, sn as It, st as Lt, tn as Rt, tt as zt, u as Bt, un as Vt, ut as Ht, v as Ut, vn as Wt, vt as Gt, w as Kt, wn as I, wt as qt, x as Jt, xn as Yt, xt as Xt, y as Zt, yn as Qt, yt as $t, z as en, zt as tn } from "./agentApi-DgopQbMV.js";
3
- import { A as nn, B as rn, C as an, D as on, E as sn, Jt as cn, Kt as ln, O as un, S as dn, T as fn, Xt as pn, Z as mn, b as hn, en as gn, f as _n, ht as vn, i as yn, j as bn, l as xn, o as Sn, p as Cn, rt as wn, v as Tn, w as En, y as Dn, yt as On, z as kn } from "./clipOptions-taFzEljc.js";
4
- import { D as An, T as jn, b as Mn, rt as Nn, st as Pn, tt as Fn, v as In, y as Ln } from "./vega-scale-D46-iCaL.js";
5
- import { h as Rn } from "./indexer-qiFctgR3.js";
6
- import { A as zn, E as Bn, G as Vn, I as Hn, O as Un, T as Wn, W as Gn, a as Kn, c as qn, f as Jn, h as Yn, i as Xn, m as Zn, n as Qn, p as $n, r as er, s as tr, t as nr, v as rr, w as ir } from "./viewSelectors-D_imtq5Z.js";
7
- import { n as ar, r as or } from "./viewIdentityRegistry-CDtVktJD.js";
2
+ import { $ as n, $t as r, A as i, An as a, At as o, B as s, Bt as c, C as l, Cn as u, Ct as d, D as f, Dn as p, Dt as m, E as h, En as g, Et as _, F as v, Fn as y, Ft as b, G as x, Gt as S, H as C, Ht as w, I as T, In as E, It as D, J as O, Jt as k, K as A, Kt as ee, L as j, Ln as M, Lt as te, M as N, Mn as P, Mt as ne, N as re, Nn as ie, Nt as ae, O as oe, On as se, Ot as ce, P as le, Pn as ue, Pt as de, Q as fe, Qt as pe, R as me, Rn as he, Rt as ge, S as _e, Sn as ve, St as ye, T as be, Tn as xe, Tt as Se, U as Ce, Ut as we, V as Te, Vt as Ee, W as De, Wt as Oe, X as ke, Xt as Ae, Y as je, Yt as Me, Z as Ne, Zt as Pe, _ as Fe, _n as Ie, _t as Le, a as Re, an as ze, at as Be, b as Ve, bn as He, bt as Ue, c as We, cn as Ge, ct as Ke, d as qe, dn as Je, dt as Ye, en as Xe, et as Ze, f as Qe, fn as $e, ft as et, g as tt, gn as nt, gt as rt, h as it, hn as at, ht as ot, i as st, in as ct, it as lt, j as ut, jn as dt, jt as ft, k as pt, kn as F, kt as mt, l as ht, ln as gt, lt as _t, m as vt, mn as yt, mt as bt, n as xt, nn as St, nt as Ct, o as wt, on as Tt, ot as Et, p as Dt, pn as Ot, pt as kt, q as At, qt as jt, r as Mt, rn as Nt, rt as Pt, s as Ft, sn as It, st as Lt, tn as Rt, tt as zt, u as Bt, un as Vt, ut as Ht, v as Ut, vn as Wt, vt as Gt, w as Kt, wn as I, wt as qt, x as Jt, xn as Yt, xt as Xt, y as Zt, yn as Qt, yt as $t, z as en, zt as tn } from "./agentApi-BZ1JCo1N.js";
3
+ import { A as nn, At as rn, C as an, Et as on, F as sn, H as cn, I as ln, L as un, N as dn, P as fn, R as pn, S as mn, V as hn, X as gn, Z as _n, an as vn, ct as yn, dn as bn, i as xn, j as Sn, k as Cn, mt as wn, o as Tn, rn as En, sn as Dn, y as On, z as kn } from "./clipOptions-H68pJyEZ.js";
4
+ import { D as An, T as jn, b as Mn, et as Nn, nt as Pn, ot as Fn, v as In, y as Ln } from "./vega-scale-BGC53c22.js";
5
+ import { h as Rn } from "./indexer-o6Hpg4nN.js";
6
+ import { A as zn, E as Bn, G as Vn, I as Hn, O as Un, T as Wn, W as Gn, a as Kn, c as qn, f as Jn, h as Yn, i as Xn, m as Zn, n as Qn, p as $n, r as er, s as tr, t as nr, v as rr, w as ir } from "./viewSelectors-DYYlOt91.js";
7
+ import { n as ar, r as or } from "./viewIdentityRegistry-D4p067HU.js";
8
8
  import { t as sr } from "./rectangle-DKnrAmKs.js";
9
9
  import { r as cr, t as lr } from "./performanceProfiler-CPLEjApa.js";
10
10
  //#region ../../node_modules/d3-array/src/array.js
@@ -20,7 +20,7 @@ function fr(e) {
20
20
  function pr(e, t, n) {
21
21
  let r;
22
22
  for (;;) {
23
- let i = Fn(e, t, n);
23
+ let i = Nn(e, t, n);
24
24
  if (i === r || i === 0 || !isFinite(i)) return [e, t];
25
25
  i > 0 ? (e = Math.floor(e / i) * i, t = Math.ceil(t / i) * i) : i < 0 && (e = Math.ceil(e * i) / i, t = Math.floor(t * i) / i), r = i;
26
26
  }
@@ -41,8 +41,8 @@ function hr() {
41
41
  var l = t(c), u = l[0], d = l[1], f = n(c, u, d);
42
42
  if (!Array.isArray(f)) {
43
43
  let e = d, n = +f;
44
- if (t === ue && ([u, d] = pr(u, d, n)), f = Nn(u, d, n), f[0] <= u && (s = Fn(u, d, n)), f[f.length - 1] >= d) if (e >= d && t === ue) {
45
- let e = Fn(u, d, n);
44
+ if (t === ue && ([u, d] = pr(u, d, n)), f = Pn(u, d, n), f[0] <= u && (s = Nn(u, d, n)), f[f.length - 1] >= d) if (e >= d && t === ue) {
45
+ let e = Nn(u, d, n);
46
46
  isFinite(e) && (e > 0 ? d = (Math.floor(d / e) + 1) * e : e < 0 && (d = (Math.ceil(d * -e) + 1) / -e));
47
47
  } else f.pop();
48
48
  }
@@ -59,7 +59,7 @@ function hr() {
59
59
  g[Math.min(p, e + (f[e] <= o))].push(r[i]);
60
60
  }
61
61
  }
62
- } else for (i = 0; i < a; ++i) (o = c[i]) != null && u <= o && o <= d && g[Pn(f, o, 0, p)].push(r[i]);
62
+ } else for (i = 0; i < a; ++i) (o = c[i]) != null && u <= o && o <= d && g[Fn(f, o, 0, p)].push(r[i]);
63
63
  return g;
64
64
  }
65
65
  return r.value = function(t) {
@@ -3848,7 +3848,7 @@ var sl = F`
3848
3848
  });
3849
3849
  }
3850
3850
  #o(e, t, n) {
3851
- n = kn(n, 0, 1), this.dispatchEvent(new ll(e, t, +this.#n.invert(n * 100).toPrecision(3)));
3851
+ n = gn(n, 0, 1), this.dispatchEvent(new ll(e, t, +this.#n.invert(n * 100).toPrecision(3)));
3852
3852
  }
3853
3853
  #s() {
3854
3854
  let e = this.#t, t = this.#n, n = 90 / e.map((e) => e.length).reduce((e, t) => Math.max(e, t), 0), r = [], i = this.thresholds.length == 1 && this.operators[0] == "eq", a = [
@@ -4697,7 +4697,7 @@ function Ll(e) {
4697
4697
  }
4698
4698
  //#endregion
4699
4699
  //#region src/sampleView/state/actionInfo.js
4700
- var Rl = pn(".4"), zl = {
4700
+ var Rl = Dn(".4"), zl = {
4701
4701
  lt: "<",
4702
4702
  lte: "≤",
4703
4703
  eq: "=",
@@ -8248,12 +8248,12 @@ var Jp = class {
8248
8248
  }, this.#s = (e) => this.getAttributeInfo(e.specifier), this.#e.compositeAttributeInfoSource.addAttributeInfoSource(Yp, this.#s), this.registerDisposer(Vp(this.#e.provenance.store, (e) => e.provenance.present.sampleView.sampleMetadata, (e) => {
8249
8249
  this.#d(e);
8250
8250
  })), this.addInteractionListener("contextmenu", this.handleContextMenu.bind(this)), this.addInteractionListener("mousemove", (e) => {
8251
- let t = e.target, n = this.#e.findSampleForMouseEvent(e), r = this.#v(t)?.attribute.specifier;
8251
+ let t = e.target, n = this.#e.findSampleForMouseEvent(e), r = this.#_(t)?.attribute.specifier;
8252
8252
  if (n && e.mouseEvent.buttons === 0) {
8253
8253
  let e = JSON.stringify([n.id, r]);
8254
8254
  this.context.updateTooltip(e, (e) => {
8255
8255
  let [t, n] = JSON.parse(e);
8256
- return Promise.resolve(this.#y(t, n));
8256
+ return Promise.resolve(this.#v(t, n));
8257
8257
  });
8258
8258
  }
8259
8259
  r && this.#c(r);
@@ -8312,7 +8312,7 @@ var Jp = class {
8312
8312
  e.mouseEvent.preventDefault();
8313
8313
  return;
8314
8314
  }
8315
- let n = this.#e.sampleHierarchy.sampleMetadata.entities[t.id], r = [this.#e.makePeekMenuItem(e.point.y - this.#e.childCoords.y, t.id), Id], i = this.#v(e.target);
8315
+ let n = this.#e.sampleHierarchy.sampleMetadata.entities[t.id], r = [this.#e.makePeekMenuItem(e.point.y - this.#e.childCoords.y, t.id), Id], i = this.#_(e.target);
8316
8316
  if (i) {
8317
8317
  let e = i.attribute.specifier, t = n?.[e];
8318
8318
  r.push(...tf(p`Attribute: <strong>${e}</strong>`, i, t, this.#e)), Bp(r, i, this.#e);
@@ -8326,11 +8326,11 @@ var Jp = class {
8326
8326
  a = e;
8327
8327
  }), await i;
8328
8328
  try {
8329
- if (this.#f(n) || (await this.#_(), this.#f(n)) || (await this.syncGuideViews(), this.#f(n))) return;
8329
+ if (this.#f(n) || (await this.#g(), this.#f(n)) || (await this.syncGuideViews(), this.#f(n))) return;
8330
8330
  k(this);
8331
8331
  let r = (e) => e.isConfiguredVisible(), i = this.#p(t, r);
8332
- if (i.updateDynamicData(this.#m(e)), await this.#g(i, r), this.#f(n)) return;
8333
- this.#h(), this.context.requestLayoutReflow();
8332
+ if (i.updateDynamicData(this.#m(e)), await this.#h(i, r), this.#f(n)) return;
8333
+ this.context.requestLayoutReflow();
8334
8334
  } catch (e) {
8335
8335
  throw r(e instanceof Error ? e : Error(String(e))), e;
8336
8336
  } finally {
@@ -8354,24 +8354,14 @@ var Jp = class {
8354
8354
  }));
8355
8355
  return n.findIndex((e) => e.indexNumber === void 0) >= 0 && console.warn("Some metadata entries do not match any sample data"), n;
8356
8356
  }
8357
- #h() {
8358
- let e = /* @__PURE__ */ new Set();
8359
- this.visit((t) => {
8360
- if (t instanceof Ge) {
8361
- let n = t.getScaleResolution("color");
8362
- n && e.add(n);
8363
- }
8364
- });
8365
- for (let t of e) t.reconfigureDomain();
8366
- }
8367
- #g(e, t) {
8357
+ #h(e, t) {
8368
8358
  let n = r(this, t);
8369
8359
  return n.delete(e), Rt(this, n);
8370
8360
  }
8371
8361
  awaitMetadataReady(e) {
8372
8362
  return this.#a.wait(e);
8373
8363
  }
8374
- async #_() {
8364
+ async #g() {
8375
8365
  this.setChildren([]), this.#n.clear();
8376
8366
  let e = Ht(this.getAttributeNames(), "/"), t = this.#e.sampleHierarchy.sampleMetadata.attributeDefs, n = async (e, r, i) => {
8377
8367
  for (let a of e.children.values()) if (a.children.size == 0) {
@@ -8382,7 +8372,7 @@ var Jp = class {
8382
8372
  }, this.#e.spec.metadata), this.context, r, r, `attribute-${e}`);
8383
8373
  await n.initializeChildren();
8384
8374
  let o = n.findDescendantByName(em(e));
8385
- if (!(o instanceof Ge)) throw Error("Cannot find metadata foreground view for " + e);
8375
+ if (!(o instanceof It)) throw Error("Cannot find metadata foreground view for " + e);
8386
8376
  n.opacityFunction = (t) => t * this.#u(e), r.appendChild(n), this.#n.set(e, o);
8387
8377
  for (let t of n.getDescendants()) this.#o.set(t, e);
8388
8378
  } else {
@@ -8410,8 +8400,8 @@ var Jp = class {
8410
8400
  }
8411
8401
  };
8412
8402
  await n(e, this, {});
8413
- for (let e of this.getDescendants()) e instanceof Ge && e.name.startsWith("title") && (e.mark.properties.clip = "never");
8414
- Tt(this);
8403
+ for (let e of this.getDescendants()) e instanceof It && e.name.startsWith("title") && (e.mark.properties.clip = "never");
8404
+ ze(this);
8415
8405
  }
8416
8406
  getAttributeNames() {
8417
8407
  return this.#e.sampleHierarchy.sampleMetadata.attributeNames;
@@ -8419,7 +8409,7 @@ var Jp = class {
8419
8409
  getVisibleAttributeNames() {
8420
8410
  return Array.from(this.#n.entries()).filter(([, e]) => e.isVisible()).map(([e]) => e);
8421
8411
  }
8422
- #v(e) {
8412
+ #_(e) {
8423
8413
  let t = this.#o.get(e);
8424
8414
  if (t) return this.getAttributeInfo(t);
8425
8415
  }
@@ -8443,7 +8433,7 @@ var Jp = class {
8443
8433
  description: t.spec.description
8444
8434
  };
8445
8435
  }
8446
- #y(e, t) {
8436
+ #v(e, t) {
8447
8437
  let n = this.#n, r = (e, t) => rm(t) ? this.getAttributeInfo(e).scale(t) : "transparent", i = this.#t[e];
8448
8438
  return p`
8449
8439
  <div class="title">
@@ -8767,7 +8757,7 @@ var cm = { step: 24 }, lm = class extends S {
8767
8757
  type: "nominal",
8768
8758
  scale: {
8769
8759
  type: "ordinal",
8770
- domain: gn(500)
8760
+ domain: bn(500)
8771
8761
  },
8772
8762
  axis: null
8773
8763
  },
@@ -9056,7 +9046,7 @@ var bm = 35, xm = 5, Sm = 15, Cm = .2, wm = [], Tm = class {
9056
9046
  }
9057
9047
  setScrollOffset(e) {
9058
9048
  let t = Math.max(0, this.#n - this.#p.getHeight());
9059
- this.#t = kn(e, 0, t);
9049
+ this.#t = gn(e, 0, t);
9060
9050
  }
9061
9051
  getScrollableHeight() {
9062
9052
  return this.#n;
@@ -9124,7 +9114,7 @@ var bm = 35, xm = 5, Sm = 15, Cm = .2, wm = [], Tm = class {
9124
9114
  ...a,
9125
9115
  to: 0,
9126
9116
  duration: 400,
9127
- easingFunction: gt
9117
+ easingFunction: yt
9128
9118
  });
9129
9119
  }
9130
9120
  getLocations() {
@@ -9291,7 +9281,7 @@ function Om(e, t, n, r, i) {
9291
9281
  }
9292
9282
  function km(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sampleSpacingFactor: i = Cm, summaryHeight: a = 0 }) {
9293
9283
  if (!t && !n) throw Error("viewHeight or sampleHeight must be provided!");
9294
- let o = (e) => cn(e), s = e.map((e) => ({
9284
+ let o = (e) => vn(e), s = e.map((e) => ({
9295
9285
  path: e,
9296
9286
  sampleGroup: o(e),
9297
9287
  samples: o(e).samples
@@ -9312,7 +9302,7 @@ function km(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sa
9312
9302
  for (let [e, t] of s.entries()) {
9313
9303
  let n = { grow: 1 }, r = t.samples;
9314
9304
  Hn(r.map((e) => n), Math.max(0, l[e].locSize.size - a), { offset: l[e].locSize.location + a }).forEach((e, t) => {
9315
- let { size: n, location: a } = e, o = n * i * .5 * rn(15, 22, n);
9305
+ let { size: n, location: a } = e, o = n * i * .5 * _n(15, 22, n);
9316
9306
  e.location = a + o, e.size = n - 2 * o, u.push({
9317
9307
  key: r[t],
9318
9308
  locSize: e
@@ -9322,7 +9312,7 @@ function km(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sa
9322
9312
  function* d() {
9323
9313
  let e = [];
9324
9314
  for (let t of l) {
9325
- let n = t.key, r = cn(n);
9315
+ let n = t.key, r = vn(n);
9326
9316
  for (; e.length <= n.length && e.length && n[e.length - 1] != e[e.length - 1].group;) yield e.pop();
9327
9317
  for (let n = 0; n < e.length; n++) {
9328
9318
  let r = e[n];
@@ -9396,7 +9386,7 @@ function Im(e) {
9396
9386
  //#region src/sampleView/datumLookup.js
9397
9387
  function Lm(e, t = e.getCollector()) {
9398
9388
  let n = e.getDataAccessor("x"), r = e.getDataAccessor("x2"), i = e.getScaleResolution("x")?.getScale()?.type, a = i ? Ln(i) : !1;
9399
- return !t || !n ? () => void 0 : a ? (e, r) => t.facetBatches.get(ln(e))?.find((e) => r == n(e)) : !a && r ? (e, i) => t.facetBatches.get(ln(e))?.find((e) => i >= n(e) && i < r(e)) : (e, r) => t.facetBatches.get(ln(e))?.find((e) => r == n(e));
9389
+ return !t || !n ? () => void 0 : a ? (e, r) => t.facetBatches.get(En(e))?.find((e) => r == n(e)) : !a && r ? (e, i) => t.facetBatches.get(En(e))?.find((e) => i >= n(e) && i < r(e)) : (e, r) => t.facetBatches.get(En(e))?.find((e) => r == n(e));
9400
9390
  }
9401
9391
  //#endregion
9402
9392
  //#region src/utils/predicates/featureFilter.js
@@ -9494,7 +9484,7 @@ function Gm(e, t) {
9494
9484
  i != null && (n.push(i), _ && r.push(t));
9495
9485
  };
9496
9486
  return (e) => {
9497
- let [t, n] = h(), r = a.facetBatches.get(ln(e));
9487
+ let [t, n] = h(), r = a.facetBatches.get(En(e));
9498
9488
  if (!r?.length) return g === "count" || g === "itemCount" ? 0 : void 0;
9499
9489
  let i = [], u = [], d = 0;
9500
9490
  switch (l(r, o, c, s, t, n, (e, t) => {
@@ -9515,10 +9505,10 @@ function Gm(e, t) {
9515
9505
  function Km(e, t) {
9516
9506
  let n = e.getScaleResolution("x")?.getScale(), r = "genome" in n ? n.genome() : void 0;
9517
9507
  if (r) {
9518
- let e = t.every(Ot) ? r.toContinuousInterval(t) : t;
9508
+ let e = t.every(Ge) ? r.toContinuousInterval(t) : t;
9519
9509
  return r.formatInterval(e);
9520
9510
  }
9521
- return yt(t[0]) + " – " + yt(t[1]);
9511
+ return gt(t[0]) + " – " + gt(t[1]);
9522
9512
  }
9523
9513
  //#endregion
9524
9514
  //#region src/sampleView/viewRef.js
@@ -9610,7 +9600,7 @@ function ah(e, t) {
9610
9600
  }, d = Object.entries(r.getEncoding()).find(([e, t]) => "field" in t && t.field == n.field), f = d?.[0], m = d?.[1];
9611
9601
  if (!m && !("aggregation" in n)) throw Error(`Cannot resolve field '${n.field}' in view '${r.name}'`);
9612
9602
  if (!m && "aggregation" in n && n.aggregation.op !== "count" && n.aggregation.op !== "itemCount") throw Error(`Aggregation '${n.aggregation.op}' requires a field definition for '${n.field}' in view '${r.name}'`);
9613
- let h = f && mn(f) ? r.getScaleResolution(f).getScale() : void 0, g = m && "scale" in m && m.scale && typeof m.scale == "object" ? m.scale : void 0, v = m && "type" in m ? m.type : void 0, y = "aggregation" in n ? "quantitative" : v, b, x;
9603
+ let h = f && yn(f) ? r.getScaleResolution(f).getScale() : void 0, g = m && "scale" in m && m.scale && typeof m.scale == "object" ? m.scale : void 0, v = m && "type" in m ? m.type : void 0, y = "aggregation" in n ? "quantitative" : v, b, x;
9614
9604
  if ("ensureViewAttributeAvailability" in e) {
9615
9605
  let t = e;
9616
9606
  b = (e) => t.ensureViewAttributeAvailability(n, e), x = (e) => t.awaitViewAttributeProcessed(n, e);
@@ -9672,7 +9662,7 @@ function sh(e) {
9672
9662
  ${Be(e.value)}`;
9673
9663
  }
9674
9664
  function ch(e) {
9675
- return Ot(e) || typeof e == "number" ? yt(e) : String(e);
9665
+ return Ge(e) || typeof e == "number" ? gt(e) : String(e);
9676
9666
  }
9677
9667
  //#endregion
9678
9668
  //#region src/sampleView/sampleLabelView.js
@@ -9685,7 +9675,7 @@ var lh = "SAMPLE_NAME", uh = "_indexNumber", dh = "_labelWidth", fh = "_labelTit
9685
9675
  valuesProvider: _((e) => e),
9686
9676
  type: "identifier",
9687
9677
  scale: void 0
9688
- }), hh = class extends Ge {
9678
+ }), hh = class extends It {
9689
9679
  #e;
9690
9680
  #t;
9691
9681
  #n;
@@ -11427,7 +11417,7 @@ function rg(e, t, n) {
11427
11417
  if (n) try {
11428
11418
  let t = [];
11429
11419
  e.visit((e) => {
11430
- e instanceof Ge && e.isVisible() && ug(e, r) && t.push(e);
11420
+ e instanceof It && e.isVisible() && ug(e, r) && t.push(e);
11431
11421
  });
11432
11422
  for (let e of t) {
11433
11423
  let t = e.getEncoding(), n = t?.x && "field" in t.x, r = Object.entries(t).some(([e, t]) => ![
@@ -11479,7 +11469,7 @@ function og(e, t) {
11479
11469
  }
11480
11470
  function sg(e) {
11481
11471
  try {
11482
- return It(e).filter((e) => ![
11472
+ return Tt(e).filter((e) => ![
11483
11473
  "sample",
11484
11474
  "x",
11485
11475
  "x2"
@@ -11541,10 +11531,10 @@ function hg(e, t) {
11541
11531
  var gg = "SAMPLE_ATTRIBUTE";
11542
11532
  function _g(e, t, n) {
11543
11533
  let r = e.getAxisResolution("x")?.getTitle();
11544
- return t.type === "locus" ? "Locus: " + (Ot(n) || typeof n == "number" ? yt(n) : String(n)) : (r ? r + ": " : "") + n;
11534
+ return t.type === "locus" ? "Locus: " + (Ge(n) || typeof n == "number" ? gt(n) : String(n)) : (r ? r + ": " : "") + n;
11545
11535
  }
11546
11536
  function vg(e, t) {
11547
- if (!e || !t || e.selection.intervals.x?.length !== 2 || !bn(e.selection, t)) return {};
11537
+ if (!e || !t || e.selection.intervals.x?.length !== 2 || !cn(e.selection, t)) return {};
11548
11538
  let n = e.selection.intervals.x, r = e.view.getScaleResolution("x")?.type === "locus" ? [e.view.getScaleResolution("x").toComplex(n[0]), e.view.getScaleResolution("x").toComplex(n[1])] : n;
11549
11539
  return {
11550
11540
  selectionInterval: n,
@@ -11638,8 +11628,8 @@ function wg(e, t) {
11638
11628
  let n = t.mark.unitView, r = t.datum, i = [];
11639
11629
  for (let [e, t] of n.paramRuntime.paramConfigs) {
11640
11630
  if (!("select" in t) || t.persist === !1) continue;
11641
- let n = Tn(t.select);
11642
- on(n) && n.toggle && i.push(e);
11631
+ let n = Cn(t.select);
11632
+ pn(n) && n.toggle && i.push(e);
11643
11633
  }
11644
11634
  if (i.length === 0) return { status: "unavailable" };
11645
11635
  if (i.length > 1) return {
@@ -11653,7 +11643,7 @@ function wg(e, t) {
11653
11643
  return { status: "unavailable" };
11654
11644
  }
11655
11645
  if (!a || a.length === 0) return { status: "unavailable" };
11656
- let o = a.map((e) => vn(e)(r));
11646
+ let o = a.map((e) => on(e)(r));
11657
11647
  if (o.some((e) => e == null)) return { status: "unavailable" };
11658
11648
  let s = i[0], c = er(n, s);
11659
11649
  try {
@@ -11877,9 +11867,9 @@ var Rg = 60, zg = "all", Bg = 1e-6, Vg = class {
11877
11867
  }
11878
11868
  arrangeVerticalAxes(e, t, n, r = {}) {
11879
11869
  if (!this.#a(n) || this.#n() !== 0) return;
11880
- let i = Sn(r), a = i ? {
11870
+ let i = Tn(r), a = i ? {
11881
11871
  ...r,
11882
- clip: yn(i.rect, !1, !0)
11872
+ clip: xn(i.rect, !1, !0)
11883
11873
  } : r;
11884
11874
  for (let r of ["left", "right"]) {
11885
11875
  let i = this.#i(r);
@@ -12207,7 +12197,7 @@ var Rg = 60, zg = "all", Bg = 1e-6, Vg = class {
12207
12197
  clipRect: i
12208
12198
  });
12209
12199
  }
12210
- let s = yn(this.locationManager.clipBySummary(t), !0, !0), c = this.locationManager.getLocations();
12200
+ let s = xn(this.locationManager.clipBySummary(t), !0, !0), c = this.locationManager.getLocations();
12211
12201
  if (!c) {
12212
12202
  a();
12213
12203
  return;
@@ -12230,14 +12220,14 @@ var Rg = 60, zg = "all", Bg = 1e-6, Vg = class {
12230
12220
  let f = r.summaryViews, p = f.getOverhang().getHorizontal();
12231
12221
  n = {
12232
12222
  ...n,
12233
- clip: yn(t.expand(p), !0, !0)
12223
+ clip: xn(t.expand(p), !0, !0)
12234
12224
  };
12235
12225
  let m = f.getSize().height.px;
12236
12226
  for (let [r, i] of c.summaries.entries()) {
12237
12227
  let a = t.modify({
12238
12228
  y: () => {
12239
12229
  let e = i.locSize.location, n = t.y + e;
12240
- return this.#i ? n + kn(-e, 0, i.locSize.size - m) : n;
12230
+ return this.#i ? n + gn(-e, 0, i.locSize.size - m) : n;
12241
12231
  },
12242
12232
  height: m
12243
12233
  }).expand(p);
@@ -12327,10 +12317,10 @@ var Rg = 60, zg = "all", Bg = 1e-6, Vg = class {
12327
12317
  let e = this.#t.view.getLayoutAncestors();
12328
12318
  for (let t of e) for (let [e, n] of t.paramRuntime.paramConfigs) {
12329
12319
  if (!("select" in n)) continue;
12330
- let r = Tn(n.select);
12331
- if (!fn(r) || !r.encodings?.includes("x")) continue;
12320
+ let r = Cn(n.select);
12321
+ if (!ln(r) || !r.encodings?.includes("x")) continue;
12332
12322
  let i = t.paramRuntime.getValue(e);
12333
- if (i && an(i)) return {
12323
+ if (i && fn(i)) return {
12334
12324
  selection: i,
12335
12325
  view: t,
12336
12326
  paramName: e,
@@ -12485,7 +12475,7 @@ var Rg = 60, zg = "all", Bg = 1e-6, Vg = class {
12485
12475
  dispose() {
12486
12476
  this.locationManager.getPlacementSource().dispose(), super.dispose(), this.intentExecutor.removeActionAugmenter(this.#u);
12487
12477
  }
12488
- }, Wg = class extends On {
12478
+ }, Wg = class extends rn {
12489
12479
  #e;
12490
12480
  #t;
12491
12481
  #n = 0;
@@ -12511,9 +12501,9 @@ var Rg = 60, zg = "all", Bg = 1e-6, Vg = class {
12511
12501
  getPeekState: () => t.locationManager.getPeekState()
12512
12502
  });
12513
12503
  let a = D(i);
12514
- a && (this.groupBackground = new Ge(a, t.context, t, e, "sample-group-background-" + n), qn(this.groupBackground, { skipSubtree: !0 }));
12504
+ a && (this.groupBackground = new It(a, t.context, t, e, "sample-group-background-" + n), qn(this.groupBackground, { skipSubtree: !0 }));
12515
12505
  let o = te(i);
12516
- o && (this.groupBackgroundStroke = new Ge(o, t.context, t, e, "sample-group-background-stroke-" + n), qn(this.groupBackgroundStroke, { skipSubtree: !0 })), this.summaryViews = r;
12506
+ o && (this.groupBackgroundStroke = new It(o, t.context, t, e, "sample-group-background-stroke-" + n), qn(this.groupBackgroundStroke, { skipSubtree: !0 })), this.summaryViews = r;
12517
12507
  }
12518
12508
  allowDuplicateAxes() {
12519
12509
  return !0;
@@ -13041,7 +13031,7 @@ var B_ = {
13041
13031
  contributors: [],
13042
13032
  license: "MIT",
13043
13033
  homepage: "https://genomespy.app/",
13044
- version: "0.86.0",
13034
+ version: "0.87.0",
13045
13035
  main: "dist/index.js",
13046
13036
  module: "dist/index.es.js",
13047
13037
  type: "module",
@@ -13101,7 +13091,7 @@ var B_ = {
13101
13091
  "@fortawesome/fontawesome-free": "^6.4.2",
13102
13092
  "@fortawesome/fontawesome-svg-core": "^6.4.2",
13103
13093
  "@fortawesome/free-solid-svg-icons": "^6.4.2",
13104
- "@genome-spy/core": "^0.86.0",
13094
+ "@genome-spy/core": "^0.87.0",
13105
13095
  "@reduxjs/toolkit": "^2.11.0",
13106
13096
  "d3-color": "^3.1.0",
13107
13097
  idb: "^7.1.1",
@@ -13114,10 +13104,10 @@ var B_ = {
13114
13104
  zarrita: "^0.6.1"
13115
13105
  },
13116
13106
  devDependencies: {
13117
- "@genome-spy/app-agent": "^0.86.0",
13118
- "@genome-spy/inspector": "^0.86.0"
13107
+ "@genome-spy/app-agent": "^0.87.0",
13108
+ "@genome-spy/inspector": "^0.87.0"
13119
13109
  },
13120
- gitHead: "d90789e619350444c0cb12b611d09fb0a0587de1"
13110
+ gitHead: "7e178d03aee512e31bf0e0609a20776edebe263e"
13121
13111
  };
13122
13112
  //#endregion
13123
13113
  //#region src/utils/version.js
@@ -15013,7 +15003,7 @@ var vv = class {
15013
15003
  if (e) ev(e);
15014
15004
  else throw Error("Cannot upload metadata without SampleView");
15015
15005
  }
15016
- }, bv = (e) => [...e.paramRuntime.paramConfigs.values()].some((e) => Cn(e) && e.bind), xv = (e, t) => {
15006
+ }, bv = (e) => [...e.paramRuntime.paramConfigs.values()].some((e) => an(e) && e.bind), xv = (e, t) => {
15017
15007
  let n = [];
15018
15008
  return t && n.push({
15019
15009
  label: "Parameters",
@@ -20548,7 +20538,7 @@ var Vx = class extends u {
20548
20538
  `), t.push(p`<genome-spy-view-visibility></genome-spy-view-visibility>`), this.app.isEmbedded() || t.push(p`
20549
20539
  <genome-spy-bookmark-button></genome-spy-bookmark-button>
20550
20540
  `);
20551
- let n = this.app.rootSpec.description ? ln(this.app.rootSpec.description) : [];
20541
+ let n = this.app.rootSpec.description ? En(this.app.rootSpec.description) : [];
20552
20542
  return n.length > 1 && t.push(p`
20553
20543
  <button
20554
20544
  class="tool-btn"
@@ -20750,7 +20740,7 @@ function Wx(e, t, n = (e) => +e) {
20750
20740
  }
20751
20741
  //#endregion
20752
20742
  //#region src/sampleView/mergeFacets.js
20753
- var Gx = "sampleCount", Kx = class extends On {
20743
+ var Gx = "sampleCount", Kx = class extends rn {
20754
20744
  #e = !0;
20755
20745
  #t;
20756
20746
  constructor(e, t) {
@@ -20777,7 +20767,7 @@ var Gx = "sampleCount", Kx = class extends On {
20777
20767
  initialize() {
20778
20768
  this.#t = this.paramRuntime.allocateSetter(Gx, 0, !0);
20779
20769
  let e = this.view.getEncoding().x;
20780
- if (wn(e)) this.xAccessor = vn(e.field);
20770
+ if (wn(e)) this.xAccessor = on(e.field);
20781
20771
  else throw Error("Sample summarization requires a FieldDef. This is not a FieldDef: " + JSON.stringify(e));
20782
20772
  }
20783
20773
  handle(e) {}
@@ -20785,16 +20775,16 @@ var Gx = "sampleCount", Kx = class extends On {
20785
20775
  return this.view.isConfiguredVisible();
20786
20776
  }
20787
20777
  #r() {
20788
- if (this.parent instanceof ze) return this.parent;
20778
+ if (this.parent instanceof Ot) return this.parent;
20789
20779
  throw Error("MergeFacetsTransform must be a direct child of a Collector");
20790
20780
  }
20791
20781
  complete() {
20792
20782
  this.#n && this.#i(this.provenance.getPresentState()[C]), super.complete();
20793
20783
  }
20794
20784
  #i(e) {
20795
- let t = [...A(e.rootGroup)].filter((e) => x(cn(e)));
20785
+ let t = [...A(e.rootGroup)].filter((e) => x(vn(e)));
20796
20786
  for (let [e, n] of t.entries()) {
20797
- let t = cn(n);
20787
+ let t = vn(n);
20798
20788
  if (x(t)) {
20799
20789
  this.beginBatch({
20800
20790
  type: "facet",
@@ -21524,7 +21514,7 @@ var jS = 150, MS = class {
21524
21514
  let t = tr(e.selector);
21525
21515
  if (this.#u.has(t)) return;
21526
21516
  let n = this.#L(e);
21527
- if (n === void 0 || _n(e.param) && this.#Z(e.param, n) && this.#C(e, t)) return;
21517
+ if (n === void 0 || mn(e.param) && this.#Z(e.param, n) && this.#C(e, t)) return;
21528
21518
  let r = this.#P(e, n);
21529
21519
  if (r) {
21530
21520
  if (this.#x(e, n, t)) {
@@ -21539,7 +21529,7 @@ var jS = 150, MS = class {
21539
21529
  }
21540
21530
  }
21541
21531
  #x(e, t, n) {
21542
- if (!_n(e.param) || !this.#Z(e.param, t)) return !1;
21532
+ if (!mn(e.param) || !this.#Z(e.param, t)) return !1;
21543
21533
  let { past: r, present: i } = this.#t.getState().provenance;
21544
21534
  if (r.length === 0) return !1;
21545
21535
  let a = i.lastAction;
@@ -21550,7 +21540,7 @@ var jS = 150, MS = class {
21550
21540
  return !s || this.#S(e.param, s.value);
21551
21541
  }
21552
21542
  #S(e, t) {
21553
- if (!t || !_n(e)) return !0;
21543
+ if (!t || !mn(e)) return !0;
21554
21544
  if (t.type === "point") return t.keys.length === 0;
21555
21545
  if (t.type === "pointExpand") return !1;
21556
21546
  if (t.type === "interval") {
@@ -21565,7 +21555,7 @@ var jS = 150, MS = class {
21565
21555
  return !n || this.#S(e.param, n.value);
21566
21556
  }
21567
21557
  #w(e) {
21568
- return _n(e) ? !0 : Cn(e) && !!e.bind;
21558
+ return mn(e) ? !0 : an(e) && !!e.bind;
21569
21559
  }
21570
21560
  #T(e, t) {
21571
21561
  let n = Ng.actions.paramChange({
@@ -21589,7 +21579,7 @@ var jS = 150, MS = class {
21589
21579
  this.#m.clear();
21590
21580
  }
21591
21581
  #k(e) {
21592
- return xn(e.param, e.view.paramRuntime);
21582
+ return On(e.param, e.view.paramRuntime);
21593
21583
  }
21594
21584
  #A(e, t) {
21595
21585
  return this.#K(e.param, t), this.#k(e);
@@ -21617,9 +21607,9 @@ var jS = 150, MS = class {
21617
21607
  }
21618
21608
  #P(e, t) {
21619
21609
  let n = e.param;
21620
- if (_n(n)) {
21621
- let r = Tn(n.select);
21622
- if (on(r)) {
21610
+ if (mn(n)) {
21611
+ let r = Cn(n.select);
21612
+ if (pn(r)) {
21623
21613
  let r = this.#N(e, "persist");
21624
21614
  if (!r) return;
21625
21615
  let i = dn(t, r);
@@ -21637,8 +21627,8 @@ var jS = 150, MS = class {
21637
21627
  keys: i
21638
21628
  };
21639
21629
  }
21640
- if (fn(r)) {
21641
- if (!En(t)) {
21630
+ if (ln(r)) {
21631
+ if (!sn(t)) {
21642
21632
  this.#q(n, "has no value yet and will not be saved.");
21643
21633
  return;
21644
21634
  }
@@ -21646,7 +21636,7 @@ var jS = 150, MS = class {
21646
21636
  }
21647
21637
  throw Error(`Unsupported selection config for parameter "${n.name}".`);
21648
21638
  }
21649
- if (Cn(n)) return {
21639
+ if (an(n)) return {
21650
21640
  type: "value",
21651
21641
  value: t
21652
21642
  };
@@ -21672,20 +21662,20 @@ var jS = 150, MS = class {
21672
21662
  }
21673
21663
  }
21674
21664
  #I(e, t) {
21675
- return Cn(e.param) && Object.is(e.view.paramRuntime.getTargetValue(e.selector.param), t);
21665
+ return an(e.param) && Object.is(e.view.paramRuntime.getTargetValue(e.selector.param), t);
21676
21666
  }
21677
21667
  #L(e) {
21678
21668
  let t = e.selector.param;
21679
- return Cn(e.param) ? e.view.paramRuntime.getTargetValue(t) : e.view.paramRuntime.getValue(t);
21669
+ return an(e.param) ? e.view.paramRuntime.getTargetValue(t) : e.view.paramRuntime.getValue(t);
21680
21670
  }
21681
21671
  async whenApplied(e) {
21682
21672
  return await Promise.resolve(), await this.#h, this.#e.paramRuntime.whenPropagated(e);
21683
21673
  }
21684
21674
  #R(e, t) {
21685
21675
  let n = e.param, r = t.value;
21686
- if (_n(n)) {
21687
- let i = Tn(n.select);
21688
- if (on(i)) {
21676
+ if (mn(n)) {
21677
+ let i = Cn(n.select);
21678
+ if (pn(i)) {
21689
21679
  if (r.type === "pointExpand") return this.#z(e, r, i);
21690
21680
  if (r.type !== "point") return this.#A(e, "cannot be restored because the bookmark stored a different selection type.");
21691
21681
  let t = this.#N(e, "restore");
@@ -21697,22 +21687,22 @@ var jS = 150, MS = class {
21697
21687
  if (!o.completed) return this.#V(o), this.#k(e);
21698
21688
  let s = i.toggle ? "multi" : "single", c;
21699
21689
  try {
21700
- c = nn(s, t, a, (e, t) => o.findDatumByKey(e, t));
21690
+ c = hn(s, t, a, (e, t) => o.findDatumByKey(e, t));
21701
21691
  } catch (r) {
21702
21692
  return String(r).includes("Duplicate key detected") ? this.#K(n, `cannot be restored because encoding.key fields [${t.join(", ")}] are not unique in the current data.`) : this.#K(n, `cannot be restored due to an error: ${r}`), this.#k(e);
21703
21693
  }
21704
21694
  return c.unresolved.length && this.#K(n, "has some points that could not be resolved. Ensure encoding.key is unique and present in the data."), c.selection;
21705
21695
  }
21706
- if (fn(i)) {
21696
+ if (ln(i)) {
21707
21697
  if (r.type !== "interval") return this.#A(e, "cannot be restored because the bookmark stored a different selection type.");
21708
- let n = Dn(i.encodings);
21698
+ let n = nn(i.encodings);
21709
21699
  this.#H(e.view, n, r.intervals);
21710
21700
  let a = this.#U(t.origin);
21711
21701
  return a && this.#H(e.view, n, a), n;
21712
21702
  }
21713
21703
  return this.#k(e);
21714
21704
  }
21715
- return Cn(n) ? r.type === "value" ? r.value : this.#j(e, "cannot be restored because the bookmark stored a different value type.") : this.#k(e);
21705
+ return an(n) ? r.type === "value" ? r.value : this.#j(e, "cannot be restored because the bookmark stored a different value type.") : this.#k(e);
21716
21706
  }
21717
21707
  #z(e, t, n) {
21718
21708
  if (!n.toggle) return this.#K(e.param, "cannot apply expansion because the target selection is not multi-point."), this.#k(e);
@@ -21729,7 +21719,7 @@ var jS = 150, MS = class {
21729
21719
  let n = CS(e), a = [];
21730
21720
  return r.visitData((e) => {
21731
21721
  n(e) && a.push(e);
21732
- }), hn(a);
21722
+ }), Sn(a);
21733
21723
  } catch (t) {
21734
21724
  return this.#K(e.param, `cannot apply expansion due to an error: ${t}`), this.#k(e);
21735
21725
  }
@@ -21813,7 +21803,7 @@ var jS = 150, MS = class {
21813
21803
  for (let [t, n] of Object.entries(e.intervalSources)) {
21814
21804
  let e = n.start, a = n.end ?? n.start;
21815
21805
  if (!e || !a) continue;
21816
- let o = vn(e), s = vn(a);
21806
+ let o = on(e), s = on(a);
21817
21807
  i[t] = [o(r), s(r)];
21818
21808
  }
21819
21809
  return i;
@@ -21838,11 +21828,11 @@ var jS = 150, MS = class {
21838
21828
  }
21839
21829
  #X(e, t) {
21840
21830
  let n = e.param;
21841
- _n(n) && on(Tn(n.select)) && (this.#N(e, "persist") || this.#u.add(t));
21831
+ mn(n) && pn(Cn(n.select)) && (this.#N(e, "persist") || this.#u.add(t));
21842
21832
  }
21843
21833
  #Z(e, t) {
21844
- let n = Tn(e.select);
21845
- return on(n) ? un(t) ? !t.datum : !sn(t) || t.data.size === 0 : fn(n) ? !an(t) : !1;
21834
+ let n = Cn(e.select);
21835
+ return pn(n) ? kn(t) ? !t.datum : !un(t) || t.data.size === 0 : ln(n) ? !fn(t) : !1;
21846
21836
  }
21847
21837
  #Q(e) {
21848
21838
  this.#l.has(e) || (this.#l.add(e), this.#s.add(e), !this.#d && (this.#d = !0, queueMicrotask(() => {
@@ -22274,10 +22264,10 @@ var gC = class {
22274
22264
  }, this.genomeSpy.viewFactory.addViewType(Fm, ((e, t, n, r, i) => new Ug(e, t, n, r, i, this.provenance, this.intentExecutor, kx(this)))), this.#o();
22275
22265
  }
22276
22266
  getAgentApi() {
22277
- return this.#e ||= import("./agentApi-DgopQbMV.js").then((e) => e.t).then((e) => e.createAgentApi(this)), this.#e;
22267
+ return this.#e ||= import("./agentApi-BZ1JCo1N.js").then((e) => e.t).then((e) => e.createAgentApi(this)), this.#e;
22278
22268
  }
22279
22269
  async getDebugModules() {
22280
- return import("./debug-Bzc3SoRg.js");
22270
+ return import("./debug-UYKZLNh4.js");
22281
22271
  }
22282
22272
  #r() {
22283
22273
  this.store = $x(), this.intentExecutor = new Yx(this.store), this.provenance = new Ux(this.store), this.intentPipeline = new eS({
@@ -22400,7 +22390,7 @@ var gC = class {
22400
22390
  this.#c(this.store.subscribe(n));
22401
22391
  for (let [, e] of this.genomeSpy.getNamedScaleResolutions()) e.isZoomable() && (e.addEventListener("domain", n), this.#c(() => e.removeEventListener("domain", n)));
22402
22392
  }
22403
- let r = ln(this.genomeSpy.spec.description ?? []);
22393
+ let r = En(this.genomeSpy.spec.description ?? []);
22404
22394
  this.isFullPage() && r.length > 0 && (document.title = "GenomeSpy - " + r), this.store.dispatch(Xx.actions.setInitialized());
22405
22395
  }
22406
22396
  async #l(e) {