@genome-spy/app 0.84.0 → 0.85.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 (42) hide show
  1. package/dist/{agentApi-DHXYZVvQ.js → agentApi-Cz0hCnVp.js} +5790 -5190
  2. package/dist/agentApi.es.js +3117 -2793
  3. package/dist/agentShared.es.js +8 -8
  4. package/dist/arrayUtils-LJpQOu-U.js +2175 -0
  5. package/dist/canvas2d-DoAXEiF9.js +309 -0
  6. package/dist/canvas2d-f5jl4A5D.js +310 -0
  7. package/dist/canvasSizeHelper-7h_8rOcx.js +56 -0
  8. package/dist/clipOptions-gqdb3fvW.js +43 -0
  9. package/dist/{clipOptions-Dqco1p8b.js → color-W5zffv-z.js} +1 -43
  10. package/dist/{debug-aHQsa6hU.js → debug-BvCZWumf.js} +2 -2
  11. package/dist/{debug-D6FqxKEj.js → debug-CgDtmspT.js} +2 -2
  12. package/dist/{esm-CGLz7idZ.js → esm-BA6yMcc-.js} +438 -434
  13. package/dist/{esm-D8vvQAP3.js → esm-CcDLRSvC.js} +33 -33
  14. package/dist/{esm-BeV56E_5.js → esm-CfYZhLHN.js} +33 -33
  15. package/dist/{esm-DQ3lJSQN.js → esm-JAiZmFIS.js} +1 -1
  16. package/dist/{framebufferReadback-CC0D6Haw.js → framebufferReadback-CCLOjStu.js} +26 -25
  17. package/dist/{framebufferReadback-Bje9lHb7.js → framebufferReadback-THWwFqs8.js} +14 -13
  18. package/dist/index.es.js +541 -538
  19. package/dist/index.js +560 -554
  20. package/dist/nativeText-DMO8gLt7.js +806 -0
  21. package/dist/nativeText-m5AUINMq.js +806 -0
  22. package/dist/paramUtils-BYI4rwyL.js +2195 -0
  23. package/dist/schema.json +1488 -88
  24. package/dist/style.css +1 -1
  25. package/dist/svg-CCu8kYy2.js +1158 -0
  26. package/dist/svg-yFj875aX.js +1158 -0
  27. package/dist/{svgNumber-C6aRPc8Z.js → svgNumber-DNxESJQB.js} +1 -1
  28. package/dist/{twgl-full.module-BNEMlXRV.js → twgl-full.module-DB2UdP1k.js} +1 -1
  29. package/dist/{viewIdentityRegistry-AEQpJTDm.js → viewIdentityRegistry-BUdkK9zT.js} +1 -1
  30. package/dist/{viewIdentityRegistry-Dl7rR4Ay.js → viewIdentityRegistry-D3oPbN4O.js} +1 -1
  31. package/dist/viewSelectors-DGCspRN3.js +4198 -0
  32. package/dist/viewSelectors-U5oLCLHV.js +4195 -0
  33. package/dist/{viewUtils-DMNiWslc.js → viewUtils-Dg4RA40Q.js} +2384 -2109
  34. package/dist/warning-CpIIpk8e.js +7 -0
  35. package/dist/warning-DRGdb6BF.js +59 -0
  36. package/dist/{raster-BofBWXbe.js → webgl-Ci6ZhCCf.js} +4 -4
  37. package/dist/{raster-9uKYMjHZ.js → webgl-Dpz8a3TI.js} +3 -3
  38. package/package.json +5 -5
  39. package/dist/svg-CvsT1Y2V.js +0 -1793
  40. package/dist/svg-DRgWfcsL.js +0 -1793
  41. package/dist/viewSelectors-BhW4mTR1.js +0 -6386
  42. package/dist/viewSelectors-Bwzj10Qz.js +0 -6363
package/dist/index.es.js CHANGED
@@ -1,9 +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, Bn as c, Bt as l, C as u, Cn as d, Ct as f, D as p, Dn as m, Dt as h, E as g, En as _, Et as v, F as y, Fn as b, Ft as x, G as S, Gt as C, H as w, Hn as T, Ht as E, I as D, In as O, It as k, J as A, Jt as ee, K as j, Kt as M, L as te, Ln as N, Lt as P, M as ne, Mn as re, Mt as ie, N as ae, Nn as F, Nt as oe, O as se, On as I, 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, Vn as Ee, Vt as De, W as Oe, Wt as ke, X as Ae, Xt as je, Y as Me, Yt as Ne, Z as Pe, Zt as Fe, _ as Ie, _n as Le, _t as Re, a as ze, an as Be, at as Ve, b as He, bn as Ue, bt as We, c as Ge, cn as Ke, ct as qe, d as Je, dn as Ye, dt as Xe, en as Ze, et as Qe, f as $e, fn as et, ft as tt, g as nt, gn as rt, gt as it, h as at, ht as ot, i as st, in as ct, it as lt, j as ut, jn as L, jt as dt, k as ft, kn as pt, kt as mt, l as ht, ln as gt, lt as _t, m as vt, mt as yt, n as bt, nn as xt, nt as St, o as Ct, on as wt, ot as Tt, p as Et, pn as Dt, pt as Ot, q as kt, qt as At, r as jt, rn as Mt, rt as Nt, s as Pt, sn as Ft, st as It, tn as Lt, tt as Rt, u as zt, un as Bt, ut as Vt, v as Ht, vn as Ut, vt as Wt, w as Gt, wn as Kt, wt as qt, x as Jt, xn as Yt, xt as Xt, y as Zt, yn as Qt, yt as $t, z as en, zn as tn, zt as nn } from "./agentApi-DHXYZVvQ.js";
3
- import { $t as rn, At as an, B as on, Bt as sn, D as cn, E as ln, Et as un, Ft as dn, Gt as fn, Hr as pn, Ht as mn, It as hn, J as gn, Jt as _n, Lr as vn, Lt as yn, M as bn, Mr as xn, Nn as Sn, P as Cn, Ut as wn, Vt as Tn, Wt as En, Y as Dn, _n as On, a as kn, bt as An, c as jn, cr as Mn, dn as Nn, en as Pn, f as Fn, h as In, ht as Ln, i as Rn, kn as zn, kr as Bn, kt as Vn, m as Hn, mt as Un, n as Wn, or as Gn, p as Kn, pt as qn, qt as Jn, r as Yn, s as Xn, t as Zn, v as Qn, w as $n, xt as er, zr as tr, zt as nr } from "./viewSelectors-BhW4mTR1.js";
4
- import { a as rr, i as ir } from "./clipOptions-Dqco1p8b.js";
5
- import { w as ar } from "./framebufferReadback-Bje9lHb7.js";
6
- import { n as or, r as sr } from "./viewIdentityRegistry-AEQpJTDm.js";
2
+ import { $ as n, $t as r, A as i, An as a, At as o, B as s, Bn as c, Bt as l, C as u, Cn as d, Ct as f, D as p, Dn as m, Dt as h, E as g, En as _, Et as v, F as y, Ft as b, G as x, Gt as S, H as C, Hn as w, Ht as T, I as E, In as D, It as O, J as k, Jt as A, K as ee, Kt as j, L as M, Ln as te, Lt as N, M as P, Mn as ne, Mt as re, N as ie, Nn as ae, Nt as oe, O as se, On as ce, Ot as le, P 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 F, Tt as xe, U as Se, Ut as Ce, V as we, Vn 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 I, jt as dt, k as ft, kn as L, kt as pt, l as mt, ln as ht, lt as gt, m as _t, mn as vt, mt as yt, n as bt, nn as xt, nt as St, o as Ct, on as wt, ot as Tt, p as Et, pn as Dt, pt as Ot, q as kt, qt as At, r as jt, rn as Mt, rt as Nt, s as Pt, sn as Ft, st as It, tn as Lt, tt as Rt, u as zt, un as Bt, ut as Vt, v as Ht, vn as Ut, vt as Wt, w as Gt, wn as Kt, wt as qt, x as Jt, xn as Yt, xt as Xt, y as Zt, yn as Qt, yt as $t, z as en, zn as tn, zt as nn } from "./agentApi-Cz0hCnVp.js";
3
+ import { C as rn, M as an, N as on, Ut as sn, Vt as cn, W as ln, X as un, _ as dn, a as fn, b as pn, ct as mn, d as hn, f as gn, ft as _n, g as vn, h as yn, n as bn, o as xn, p as Sn, qt as Cn, v as wn, w as Tn, x as En, y as Dn, zt as On } from "./paramUtils-BYI4rwyL.js";
4
+ import { $t as kn, B as An, D as jn, E as Mn, J as Nn, Jt as Pn, M as Fn, P as In, Xt as Ln, Y as Rn, a as zn, bt as Bn, c as Vn, f as Hn, h as Un, ht as Wn, i as Gn, m as Kn, mt as qn, n as Jn, p as Yn, pt as Xn, r as Zn, s as Qn, t as $n, v as er, w as tr, xt as nr } from "./viewSelectors-DGCspRN3.js";
5
+ import { w as rr } from "./framebufferReadback-THWwFqs8.js";
6
+ import { a as ir, i as ar } from "./clipOptions-gqdb3fvW.js";
7
+ import { n as or, r as sr } from "./viewIdentityRegistry-BUdkK9zT.js";
7
8
  import { n as cr } from "./viewRenderingContext-HtpqwS_x.js";
8
9
  //#region ../../node_modules/d3-array/src/array.js
9
10
  var lr = Array.prototype, ur = lr.slice;
@@ -18,7 +19,7 @@ function dr(e) {
18
19
  function fr(e, t, n) {
19
20
  let r;
20
21
  for (;;) {
21
- let i = vn(e, t, n);
22
+ let i = Pn(e, t, n);
22
23
  if (i === r || i === 0 || !isFinite(i)) return [e, t];
23
24
  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;
24
25
  }
@@ -31,7 +32,7 @@ function pr(e) {
31
32
  //#endregion
32
33
  //#region ../../node_modules/d3-array/src/bin.js
33
34
  function mr() {
34
- var e = ar, t = he, n = pr;
35
+ var e = rr, t = he, n = pr;
35
36
  function r(r) {
36
37
  Array.isArray(r) || (r = Array.from(r));
37
38
  var i, a = r.length, o, s, c = Array(a);
@@ -39,8 +40,8 @@ function mr() {
39
40
  var l = t(c), u = l[0], d = l[1], f = n(c, u, d);
40
41
  if (!Array.isArray(f)) {
41
42
  let e = d, n = +f;
42
- if (t === he && ([u, d] = fr(u, d, n)), f = tr(u, d, n), f[0] <= u && (s = vn(u, d, n)), f[f.length - 1] >= d) if (e >= d && t === he) {
43
- let e = vn(u, d, n);
43
+ if (t === he && ([u, d] = fr(u, d, n)), f = Ln(u, d, n), f[0] <= u && (s = Pn(u, d, n)), f[f.length - 1] >= d) if (e >= d && t === he) {
44
+ let e = Pn(u, d, n);
44
45
  isFinite(e) && (e > 0 ? d = (Math.floor(d / e) + 1) * e : e < 0 && (d = (Math.ceil(d * -e) + 1) / -e));
45
46
  } else f.pop();
46
47
  }
@@ -57,7 +58,7 @@ function mr() {
57
58
  g[Math.min(p, e + (f[e] <= o))].push(r[i]);
58
59
  }
59
60
  }
60
- } else for (i = 0; i < a; ++i) (o = c[i]) != null && u <= o && o <= d && g[pn(f, o, 0, p)].push(r[i]);
61
+ } else for (i = 0; i < a; ++i) (o = c[i]) != null && u <= o && o <= d && g[kn(f, o, 0, p)].push(r[i]);
61
62
  return g;
62
63
  }
63
64
  return r.value = function(t) {
@@ -85,9 +86,9 @@ function _r(e) {
85
86
  }
86
87
  //#endregion
87
88
  //#region ../core/src/img/bowtie.svg
88
- var vr = "data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e", yr = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%20viewBox='0%200%2064%2064'%3e%3cpath%20d='M208.6%20548.2s11.2%2046.2%2031.2%2071c20%2024.9%2079.3%2061.6%2079.3%2061.6S385.6%20623%20438%20498.3c0%200%2018.1%201%2036-11.9%2017.7-12.7%2016.3-7.9%2021-24.8%200%200%2057%206.3%20131-9.7%2041.7-9.1%2084.3-26.3%20121.5-58.8%200%200-25.4-32.9-58-101.7-12.4-26.1-41.9-34.3-98.7-88L438.1%20391.2%20208.6%20548.2Z'%20style='fill-opacity:.11'%20transform='matrix(.10221%20.00684%20-.00671%20.10035%20-8%20-13.2)'/%3e%3cg%20transform='rotate(-35.4%2034.2%2080.8)%20scale(.10057)'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='a'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23a)'%3e%3cpath%20d='M386.9%20397.2c-15.6-13.6-51.8-22.4-96.3-16.7-44.5%205.8-93.8%2021.8-111.8%2031.6-10.6%205.7-27.3%2017.3-28.1%2027.2-1.2%2014.2%202.9%2037.8%2015%2052%206%207.2%2014.2%2012.1%2028.1%2014.1%2017.9%202.6%2059-24.8%2081.6-36.2%2024-12%2038.6-14.6%2063-22.2%200%200-47%2031.6-68.2%2047.4-30.6%2022.9-51.6%2028-57.3%2045.5-3.1%209.4-.7%2027.9%207.5%2037.6%209%2011%2012.8%2017.6%2034.2%2020.1%2012.7%201.5%2022%201.2%2059.8-28.6%2021.7-17.2%2055.9-59.2%2067-74.4%2016.2-22%2023.8-43.1%2021.3-59.6-3.7-23.6-8.4-31.3-15.8-37.8Z'%20style='fill:%23fff'%20transform='scale(.88664)%20rotate(31.2%20485%20792.2)'/%3e%3cpath%20d='M484.7%20379c-5.4-11.1-17.6-28.5-.8-53.8a739%20739%200%200%201%2044.2-60.6c13.2-16.3%2046.7-46.2%2059.6-52%2013-6%2033.3-8.7%2044.2.2%2011%209.1%2016.5%2020.6%2023%2032.7%207.4%2013.8%2012.4%2029.3%201.6%2042.8-15.4%2019.2-34.3%2017-61.6%2031.5-27.7%2014.8-42.3%2023.1-55.7%2035.9%200%200%2052.2-21.6%2082-31.2%2029.8-9.7%2059.8-20%2074.8-8.5s14.6%2015.5%2018.4%2031.2c4.7%2019.4-7.2%2038-20.1%2048.6-13%2010.7-34.3%2016-57.4%2021-30.5%206.8-96.6%2015.1-124%202.6-27.5-12.6-24.4-32.8-28.2-40.5Z'%20style='fill:%23fff'%20transform='scale(.87906)%20rotate(31.2%20487.2%20893.5)'/%3e%3c/g%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3cg%20transform='rotate(-4.2%20-78%20211)%20scale(.10057)'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='b'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23b)'%3e%3cpath%20d='M413.3%20402.7c17.5%2018.9%2010%2045.7%2028.4%2043.4%2021.7-2.7%2030.9-15.7%2031.6-32.7.7-17-1-19.5-7.1-38-6.1-18.7-18.2-23.2-43.4-18.2-20.8%204.1-17.8%203-24%2010-6.4%207-14.5%2026-14.5%2026s8.4-12.7%2029%209.5Z'%20style='fill:%23fff'%20transform='matrix(.90907%200%200%20.85852%2037%2052.2)'/%3e%3c/g%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3c/svg%3e", br = ve(class extends d {
89
+ var vr = "data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://www.w3.org/2000/svg'%20fill-rule='evenodd'%20clip-rule='evenodd'%20stroke-linecap='round'%20stroke-linejoin='round'%20stroke-miterlimit='1.5'%3e%3cpath%20d='M4.7%2021.2s.4%202.3%201.3%203.6C7%2026%209.8%2028%209.8%2028s3.4-2.6%206.4-8.5c0%200%201%20.1%201.9-.4.9-.6.8-.4%201-1.2%200%200%202.9.5%206.6%200%202.1-.3%204.3-1%206.2-2.5%200%200-1.1-1.7-2.5-5.1-.5-1.3-2-1.8-4.6-4.6l-8.2%208.6-11.9%206.9z'%20fill-opacity='.1'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='%237fbbdd'/%3e%3cpath%20d='M12.4%2015.5c-.7-.5-2.4-.8-4.4-.4-2%20.4-4%201.3-4.8%201.8-.5.3-1.2%201-1.2%201.4%200%20.7.3%201.8.8%202.4.3.3.7.5%201.4.6.8%200%202.5-1.4%203.5-2%201-.6%201.6-.8%202.7-1.2l-2.9%202.4c-1.3%201.2-2.2%201.5-2.4%202.3%200%20.5%200%201.4.5%201.8.4.5.6.8%201.6.8.6%200%201%200%202.6-1.5.9-.9%202.3-3%202.7-3.7.6-1.1%201-2.2.7-3-.2-1-.4-1.4-.8-1.7zM17.4%2014.2c-.3-.5-.9-1.2-.2-2.5l1.9-3c.5-.8%202-2.3%202.6-2.6.6-.4%201.5-.6%202-.2.6.4%201%201%201.3%201.5.4.6.7%201.3.2%202-.7%201-1.6.9-2.8%201.7-1.2.8-1.9%201.2-2.5%201.9l3.8-1.8c1.3-.6%202.7-1.1%203.4-.7.8.5.8.7%201%201.4.3%201-.2%201.9-.8%202.4-.5.6-1.5.9-2.6%201.2-1.4.4-4.5%201-5.8.5-1.3-.5-1.3-1.4-1.5-1.8z'%20fill='%23fff'/%3e%3cpath%20d='M12.7%2014.8s-4-1.8-12%202.7c0%200%201%203.7%202.5%205.3%201.4%201.5%202.3%203.6%204.6%204.6%200%200%204.7-3%206.9-9.2l3-2s4.7%202.8%2012.6-1.6c0%200-.6-3.3-3-6-2.6-3-3.8-4.7-3.8-4.7s-4.1%202.3-7.5%209.3l-3.3%201.6z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='%237fbbdd'/%3e%3cpath%20d='M13.8%2015.3c.9.8.6%202%201.4%201.8%201-.2%201.4-.8%201.3-1.5%200-.7%200-.8-.4-1.6-.3-.7-1-1.1-2-.5-.7.5-1.4%201.3-1.4%201.3s.2-.3%201.1.5z'%20fill='%23fff'/%3e%3cpath%20d='M12.4%2014.9s2.1-2%203-2c1.1%200%202.3%202.7%202.3%203.5%200%20.8-2.1%202.4-3.1%202.3%200%200%200-1.2-.7-2.6-.8-1.3-1.5-1.2-1.5-1.2z'%20fill='none'%20stroke='%23000'%20stroke-width='.5'/%3e%3c/svg%3e", yr = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20style='fill-rule:evenodd;clip-rule:evenodd;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:1.5'%20viewBox='0%200%2064%2064'%3e%3cpath%20d='M208.6%20548.2s11.2%2046.2%2031.2%2071c20%2024.9%2079.3%2061.6%2079.3%2061.6S385.6%20623%20438%20498.3c0%200%2018.1%201%2036-11.9%2017.7-12.7%2016.3-7.9%2021-24.8%200%200%2057%206.3%20131-9.7%2041.7-9.1%2084.3-26.3%20121.5-58.8%200%200-25.4-32.9-58-101.7-12.4-26.1-41.9-34.3-98.7-88L438.1%20391.2%20208.6%20548.2Z'%20style='fill-opacity:.11'%20transform='matrix(.10221%20.00684%20-.00671%20.10035%20-8%20-13.2)'/%3e%3cg%20transform='rotate(-35.4%2034.2%2080.8)%20scale(.10057)'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='a'%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23a)'%3e%3cpath%20d='M386.9%20397.2c-15.6-13.6-51.8-22.4-96.3-16.7-44.5%205.8-93.8%2021.8-111.8%2031.6-10.6%205.7-27.3%2017.3-28.1%2027.2-1.2%2014.2%202.9%2037.8%2015%2052%206%207.2%2014.2%2012.1%2028.1%2014.1%2017.9%202.6%2059-24.8%2081.6-36.2%2024-12%2038.6-14.6%2063-22.2%200%200-47%2031.6-68.2%2047.4-30.6%2022.9-51.6%2028-57.3%2045.5-3.1%209.4-.7%2027.9%207.5%2037.6%209%2011%2012.8%2017.6%2034.2%2020.1%2012.7%201.5%2022%201.2%2059.8-28.6%2021.7-17.2%2055.9-59.2%2067-74.4%2016.2-22%2023.8-43.1%2021.3-59.6-3.7-23.6-8.4-31.3-15.8-37.8Z'%20style='fill:%23fff'%20transform='scale(.88664)%20rotate(31.2%20485%20792.2)'/%3e%3cpath%20d='M484.7%20379c-5.4-11.1-17.6-28.5-.8-53.8a739%20739%200%200%201%2044.2-60.6c13.2-16.3%2046.7-46.2%2059.6-52%2013-6%2033.3-8.7%2044.2.2%2011%209.1%2016.5%2020.6%2023%2032.7%207.4%2013.8%2012.4%2029.3%201.6%2042.8-15.4%2019.2-34.3%2017-61.6%2031.5-27.7%2014.8-42.3%2023.1-55.7%2035.9%200%200%2052.2-21.6%2082-31.2%2029.8-9.7%2059.8-20%2074.8-8.5s14.6%2015.5%2018.4%2031.2c4.7%2019.4-7.2%2038-20.1%2048.6-13%2010.7-34.3%2016-57.4%2021-30.5%206.8-96.6%2015.1-124%202.6-27.5-12.6-24.4-32.8-28.2-40.5Z'%20style='fill:%23fff'%20transform='scale(.87906)%20rotate(31.2%20487.2%20893.5)'/%3e%3c/g%3e%3cpath%20d='M561.6%20349.2s-45.3-77.9-232.8-97.2c0%200-26.5%2073.2-21.1%20116%205.3%2043-4.7%2088.1%2021.4%20133.2%200%200%20114%205.5%20225.5-72.7l74.6%203.6S673.8%20534.4%20857%20554.4c0%200%2029.7-62.6%2022.2-137-8-78.7-7.5-124-7.5-124s-96.2-9.5-236.3%2068.4l-73.8-12.6Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3cg%20transform='rotate(-4.2%20-78%20211)%20scale(.10057)'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:%237fbbdd'/%3e%3cclipPath%20id='b'%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'/%3e%3c/clipPath%3e%3cg%20clip-path='url(%23b)'%3e%3cpath%20d='M413.3%20402.7c17.5%2018.9%2010%2045.7%2028.4%2043.4%2021.7-2.7%2030.9-15.7%2031.6-32.7.7-17-1-19.5-7.1-38-6.1-18.7-18.2-23.2-43.4-18.2-20.8%204.1-17.8%203-24%2010-6.4%207-14.5%2026-14.5%2026s8.4-12.7%2029%209.5Z'%20style='fill:%23fff'%20transform='matrix(.90907%200%200%20.85852%2037%2052.2)'/%3e%3c/g%3e%3cpath%20d='M385%20385.5s45.8-37.6%2065-35.4c21.7%202.5%2040.5%2057.6%2040.2%2074.3-.3%2016.7-47.3%2045.5-67.7%2041.8%200%200%203-24-10.4-52.9-13.4-28.8-27.2-27.8-27.2-27.8Z'%20style='fill:none;stroke:%23000;stroke-width:16.57px'/%3e%3c/g%3e%3c/svg%3e", br = He(class extends Yt {
89
90
  constructor(e) {
90
- if (super(e), e.type !== Kt.ATTRIBUTE || e.name !== "class" || e.strings?.length > 2) throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.");
91
+ if (super(e), e.type !== ve.ATTRIBUTE || e.name !== "class" || e.strings?.length > 2) throw Error("`classMap()` can only be used in the `class` attribute and must be the only part in the attribute.");
91
92
  }
92
93
  render(e) {
93
94
  return " " + Object.keys(e).filter((t) => e[t]).join(" ") + " ";
@@ -104,7 +105,7 @@ var vr = "data:image/svg+xml,%3csvg%20viewBox='0%200%2032%2032'%20xmlns='http://
104
105
  let r = !!t[e];
105
106
  r === this.st.has(e) || this.nt?.has(e) || (r ? (n.add(e), this.st.add(e)) : (n.remove(e), this.st.delete(e)));
106
107
  }
107
- return a;
108
+ return ce;
108
109
  }
109
110
  }), xr = {
110
111
  prefix: "fas",
@@ -2488,7 +2489,7 @@ var W = U.icon;
2488
2489
  U.layer, U.text, U.counter;
2489
2490
  //#endregion
2490
2491
  //#region src/components/generic/componentStyles.js
2491
- var Dc = ue(Ec.css()), Oc = F`
2492
+ var Dc = ne(Ec.css()), Oc = I`
2492
2493
  :host {
2493
2494
  --basic-spacing: var(--gs-basic-spacing, 10px);
2494
2495
  --form-control-color: #212529;
@@ -2834,7 +2835,7 @@ var Dc = ue(Ec.css()), Oc = F`
2834
2835
  "datetime-local",
2835
2836
  "month",
2836
2837
  "week"
2837
- ]), G = class extends m {
2838
+ ]), G = class extends F {
2838
2839
  static properties = {
2839
2840
  dialogTitle: {},
2840
2841
  modal: { type: Boolean }
@@ -2843,7 +2844,7 @@ var Dc = ue(Ec.css()), Oc = F`
2843
2844
  static styles = [
2844
2845
  Oc,
2845
2846
  Dc,
2846
- F`
2847
+ I`
2847
2848
  dialog {
2848
2849
  font-family: var(--gs-font-family, sans-serif);
2849
2850
  font-size: var(--gs-font-size, 14px);
@@ -3034,14 +3035,14 @@ var Dc = ue(Ec.css()), Oc = F`
3034
3035
  }), this.triggerClose());
3035
3036
  }
3036
3037
  renderHeader() {
3037
- return L`${this.dialogTitle ? L`${this.dialogTitle}` : I}`;
3038
+ return L`${this.dialogTitle ? L`${this.dialogTitle}` : _}`;
3038
3039
  }
3039
3040
  renderBody() {
3040
3041
  return L``;
3041
3042
  }
3042
3043
  renderFooter() {
3043
3044
  let e = this.renderButtons();
3044
- return e?.length ? L`<div>${e}</div>` : I;
3045
+ return e?.length ? L`<div>${e}</div>` : _;
3045
3046
  }
3046
3047
  renderButtons() {
3047
3048
  return [this.makeCloseButton()];
@@ -3059,7 +3060,7 @@ var Dc = ue(Ec.css()), Oc = F`
3059
3060
  await t() || this.triggerClose();
3060
3061
  }}
3061
3062
  >
3062
- ${r ? W(r).node[0] : I} ${e}
3063
+ ${r ? W(r).node[0] : _} ${e}
3063
3064
  </button>`;
3064
3065
  }
3065
3066
  makeCloseButton(e = "Close") {
@@ -3068,13 +3069,13 @@ var Dc = ue(Ec.css()), Oc = F`
3068
3069
  render() {
3069
3070
  let e = this.renderHeader(), t = this.renderFooter();
3070
3071
  return L`
3071
- ${this.modal ? I : L`<div class="non-modal-backdrop"></div>`}
3072
+ ${this.modal ? _ : L`<div class="non-modal-backdrop"></div>`}
3072
3073
  <dialog
3073
3074
  @cancel=${(e) => this.#a(e)}
3074
3075
  >
3075
- ${e ? L`<header>${e}</header>` : I}
3076
+ ${e ? L`<header>${e}</header>` : _}
3076
3077
  <section>${this.renderBody()}</section>
3077
- ${t ? L`<footer>${t}</footer>` : I}
3078
+ ${t ? L`<footer>${t}</footer>` : _}
3078
3079
  </dialog>
3079
3080
  `;
3080
3081
  }
@@ -3116,7 +3117,7 @@ var Nc = {
3116
3117
  type: { type: String },
3117
3118
  confirm: { type: Boolean }
3118
3119
  };
3119
- static styles = [...super.styles, F`
3120
+ static styles = [...super.styles, I`
3120
3121
  .message-flex {
3121
3122
  display: flex;
3122
3123
  flex-direction: row;
@@ -3143,7 +3144,7 @@ var Nc = {
3143
3144
  if (this.type) {
3144
3145
  let e = Nc[this.type];
3145
3146
  return L`<div class="message-flex">
3146
- ${e ? L`<div class="icon">${W(e).node[0]}</div>` : I}
3147
+ ${e ? L`<div class="icon">${W(e).node[0]}</div>` : _}
3147
3148
  <div class="message">${this.message}</div>
3148
3149
  </div>`;
3149
3150
  } else return L`${this.message}`;
@@ -3157,7 +3158,7 @@ function q(e, t = {}) {
3157
3158
  }
3158
3159
  //#endregion
3159
3160
  //#region ../../node_modules/lit-html/directive-helpers.js
3160
- var { I: Fc } = re, Ic = (e) => e, Lc = (e) => e === null || typeof e != "object" && typeof e != "function", Rc = (e) => e.strings === void 0, zc = () => document.createComment(""), Bc = (e, t, n) => {
3161
+ var { I: Fc } = a, Ic = (e) => e, Lc = (e) => e === null || typeof e != "object" && typeof e != "function", Rc = (e) => e.strings === void 0, zc = () => document.createComment(""), Bc = (e, t, n) => {
3161
3162
  let r = e._$AA.parentNode, i = t === void 0 ? e._$AB : t._$AA;
3162
3163
  if (n === void 0) n = new Fc(r.insertBefore(zc(), i), r.insertBefore(zc(), i), e, e.options);
3163
3164
  else {
@@ -3181,9 +3182,9 @@ var { I: Fc } = re, Ic = (e) => e, Lc = (e) => e === null || typeof e != "object
3181
3182
  let r = /* @__PURE__ */ new Map();
3182
3183
  for (let i = t; i <= n; i++) r.set(e[i], i);
3183
3184
  return r;
3184
- }, qc = ve(class extends d {
3185
+ }, qc = He(class extends Yt {
3185
3186
  constructor(e) {
3186
- if (super(e), e.type !== Kt.CHILD) throw Error("repeat() can only be used in text expressions");
3187
+ if (super(e), e.type !== ve.CHILD) throw Error("repeat() can only be used in text expressions");
3187
3188
  }
3188
3189
  dt(e, t, n) {
3189
3190
  let r;
@@ -3199,33 +3200,33 @@ var { I: Fc } = re, Ic = (e) => e, Lc = (e) => e === null || typeof e != "object
3199
3200
  return this.dt(e, t, n).values;
3200
3201
  }
3201
3202
  update(e, [t, n, r]) {
3202
- let i = Wc(e), { values: o, keys: s } = this.dt(t, n, r);
3203
- if (!Array.isArray(i)) return this.ut = s, o;
3204
- let c = this.ut ??= [], l = [], u, d, f = 0, p = i.length - 1, m = 0, h = o.length - 1;
3205
- for (; f <= p && m <= h;) if (i[f] === null) f++;
3206
- else if (i[p] === null) p--;
3207
- else if (c[f] === s[m]) l[m] = Vc(i[f], o[m]), f++, m++;
3208
- else if (c[p] === s[h]) l[h] = Vc(i[p], o[h]), p--, h--;
3209
- else if (c[f] === s[h]) l[h] = Vc(i[f], o[h]), Bc(e, l[h + 1], i[f]), f++, h--;
3210
- else if (c[p] === s[m]) l[m] = Vc(i[p], o[m]), Bc(e, i[f], i[p]), p--, m++;
3211
- else if (u === void 0 && (u = Kc(s, m, h), d = Kc(c, f, p)), u.has(c[f])) if (u.has(c[p])) {
3212
- let t = d.get(s[m]), n = t === void 0 ? null : i[t];
3203
+ let i = Wc(e), { values: a, keys: o } = this.dt(t, n, r);
3204
+ if (!Array.isArray(i)) return this.ut = o, a;
3205
+ let s = this.ut ??= [], c = [], l, u, d = 0, f = i.length - 1, p = 0, m = a.length - 1;
3206
+ for (; d <= f && p <= m;) if (i[d] === null) d++;
3207
+ else if (i[f] === null) f--;
3208
+ else if (s[d] === o[p]) c[p] = Vc(i[d], a[p]), d++, p++;
3209
+ else if (s[f] === o[m]) c[m] = Vc(i[f], a[m]), f--, m--;
3210
+ else if (s[d] === o[m]) c[m] = Vc(i[d], a[m]), Bc(e, c[m + 1], i[d]), d++, m--;
3211
+ else if (s[f] === o[p]) c[p] = Vc(i[f], a[p]), Bc(e, i[d], i[f]), f--, p++;
3212
+ else if (l === void 0 && (l = Kc(o, p, m), u = Kc(s, d, f)), l.has(s[d])) if (l.has(s[f])) {
3213
+ let t = u.get(o[p]), n = t === void 0 ? null : i[t];
3213
3214
  if (n === null) {
3214
- let t = Bc(e, i[f]);
3215
- Vc(t, o[m]), l[m] = t;
3216
- } else l[m] = Vc(n, o[m]), Bc(e, i[f], n), i[t] = null;
3217
- m++;
3218
- } else Gc(i[p]), p--;
3219
- else Gc(i[f]), f++;
3220
- for (; m <= h;) {
3221
- let t = Bc(e, l[h + 1]);
3222
- Vc(t, o[m]), l[m++] = t;
3223
- }
3224
- for (; f <= p;) {
3225
- let e = i[f++];
3215
+ let t = Bc(e, i[d]);
3216
+ Vc(t, a[p]), c[p] = t;
3217
+ } else c[p] = Vc(n, a[p]), Bc(e, i[d], n), i[t] = null;
3218
+ p++;
3219
+ } else Gc(i[f]), f--;
3220
+ else Gc(i[d]), d++;
3221
+ for (; p <= m;) {
3222
+ let t = Bc(e, c[m + 1]);
3223
+ Vc(t, a[p]), c[p++] = t;
3224
+ }
3225
+ for (; d <= f;) {
3226
+ let e = i[d++];
3226
3227
  e !== null && Gc(e);
3227
3228
  }
3228
- return this.ut = s, Uc(e, l), a;
3229
+ return this.ut = o, Uc(e, c), ce;
3229
3230
  }
3230
3231
  }), Jc = L`
3231
3232
  <div class="gs-alert info">
@@ -3268,7 +3269,7 @@ var { I: Fc } = re, Ic = (e) => e, Lc = (e) => e === null || typeof e != "object
3268
3269
  backgroundColor: { type: String },
3269
3270
  saving: { type: Boolean }
3270
3271
  };
3271
- static styles = [...super.styles, F`
3272
+ static styles = [...super.styles, I`
3272
3273
  dialog {
3273
3274
  min-width: 500px;
3274
3275
  }
@@ -3348,7 +3349,7 @@ var { I: Fc } = re, Ic = (e) => e, Lc = (e) => e === null || typeof e != "object
3348
3349
  />
3349
3350
  Transparent</label
3350
3351
  >
3351
- ${this.transparentBackground ? I : L`<input
3352
+ ${this.transparentBackground ? _ : L`<input
3352
3353
  type="color"
3353
3354
  id="pngBackground"
3354
3355
  style="margin-left: 1em"
@@ -3409,7 +3410,7 @@ function $c(e) {
3409
3410
  }
3410
3411
  //#endregion
3411
3412
  //#region src/components/generic/searchableCheckboxList.js
3412
- var el = class extends m {
3413
+ var el = class extends F {
3413
3414
  static properties = {
3414
3415
  items: { attribute: !1 },
3415
3416
  selectedValues: { attribute: !1 },
@@ -3421,7 +3422,7 @@ var el = class extends m {
3421
3422
  static styles = [
3422
3423
  Dc,
3423
3424
  Oc,
3424
- F`
3425
+ I`
3425
3426
  :host {
3426
3427
  display: flex;
3427
3428
  flex-direction: column;
@@ -3514,7 +3515,7 @@ var el = class extends m {
3514
3515
  `
3515
3516
  ];
3516
3517
  constructor() {
3517
- super(), this.items = [], this.selectedValues = [], this.placeholder = "Type something to filter the list", this.selectedItemName = "items", this.itemMarker = () => I, this.search = "";
3518
+ super(), this.items = [], this.selectedValues = [], this.placeholder = "Type something to filter the list", this.selectedItemName = "items", this.itemMarker = () => _, this.search = "";
3518
3519
  }
3519
3520
  getFilteredItems() {
3520
3521
  return this.items.filter((e) => {
@@ -3593,7 +3594,7 @@ var el = class extends m {
3593
3594
  ${W(ii).node[0]} Hit enter to select
3594
3595
  the exact match
3595
3596
  </div>
3596
- </div>` : I}
3597
+ </div>` : _}
3597
3598
  </div>
3598
3599
  <small>
3599
3600
  The number of selected ${this.selectedItemName}:
@@ -3637,12 +3638,12 @@ var tl = class extends Event {
3637
3638
  label: ">",
3638
3639
  title: "greater than"
3639
3640
  }
3640
- ], rl = class extends m {
3641
+ ], rl = class extends F {
3641
3642
  static properties = {
3642
3643
  value: { type: String },
3643
3644
  options: { attribute: !1 }
3644
3645
  };
3645
- static styles = [Oc, F`
3646
+ static styles = [Oc, I`
3646
3647
  :host {
3647
3648
  display: block;
3648
3649
  }
@@ -3687,7 +3688,7 @@ function al(e, t) {
3687
3688
  }
3688
3689
  //#endregion
3689
3690
  //#region src/components/generic/histogram.js
3690
- var ol = F`
3691
+ var ol = I`
3691
3692
  :host {
3692
3693
  display: block;
3693
3694
  font-size: inherit;
@@ -3806,7 +3807,7 @@ var ol = F`
3806
3807
  cursor: default;
3807
3808
  }
3808
3809
  }
3809
- `, sl = class extends m {
3810
+ `, sl = class extends F {
3810
3811
  static properties = {
3811
3812
  values: { attribute: !1 },
3812
3813
  thresholds: { attribute: !1 },
@@ -3824,10 +3825,10 @@ var ol = F`
3824
3825
  #n;
3825
3826
  #r = 0;
3826
3827
  constructor() {
3827
- super(), this.values = [], this.thresholds = [], this.operators = [], this.colors = fl, this.showThresholdNumbers = !1, this.binCount = 40, this.#e = mr().thresholds(this.binCount), this.#t = this.#e([]), this.#n = er();
3828
+ super(), this.values = [], this.thresholds = [], this.operators = [], this.colors = fl, this.showThresholdNumbers = !1, this.binCount = 40, this.#e = mr().thresholds(this.binCount), this.#t = this.#e([]), this.#n = nr();
3828
3829
  }
3829
3830
  willUpdate(e) {
3830
- e.has("binCount") && (this.#e = mr().thresholds(this.binCount)), (e.has("values") || e.has("binCount")) && (this.#t = this.#e(this.values), this.#n = er().domain(this.domain).range([0, 100]));
3831
+ e.has("binCount") && (this.#e = mr().thresholds(this.binCount)), (e.has("values") || e.has("binCount")) && (this.#t = this.#e(this.values), this.#n = nr().domain(this.domain).range([0, 100]));
3831
3832
  }
3832
3833
  get domain() {
3833
3834
  return [this.#t.at(0).x0, this.#t.at(-1).x1];
@@ -3846,7 +3847,7 @@ var ol = F`
3846
3847
  });
3847
3848
  }
3848
3849
  #o(e, t, n) {
3849
- n = rn(n, 0, 1), this.dispatchEvent(new cl(e, t, +this.#n.invert(n * 100).toPrecision(3)));
3850
+ n = an(n, 0, 1), this.dispatchEvent(new cl(e, t, +this.#n.invert(n * 100).toPrecision(3)));
3850
3851
  }
3851
3852
  #s() {
3852
3853
  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 = [
@@ -3895,7 +3896,7 @@ var ol = F`
3895
3896
  return L`<div class="histogram-widget">
3896
3897
  <div class="histogram-plot">
3897
3898
  <div class="histogram-bars">${this.#s().map((e) => L`<div
3898
- style=${Yt({
3899
+ style=${Qt({
3899
3900
  width: t + .01 + "%",
3900
3901
  left: e.x + "%",
3901
3902
  bottom: e.y + "%",
@@ -3908,15 +3909,15 @@ var ol = F`
3908
3909
  let r = e(t);
3909
3910
  return r >= 0 && r <= 100 ? L`<div
3910
3911
  class="histogram-threshold"
3911
- style=${Yt({ left: e(t) + "%" })}
3912
+ style=${Qt({ left: e(t) + "%" })}
3912
3913
  >
3913
3914
  <div
3914
3915
  class="histogram-knob"
3915
3916
  @mousedown=${(e) => this.#a(e, n)}
3916
3917
  >
3917
- ${this.showThresholdNumbers ? n + 1 : I}
3918
+ ${this.showThresholdNumbers ? n + 1 : _}
3918
3919
  </div>
3919
- </div>` : I;
3920
+ </div>` : _;
3920
3921
  })}
3921
3922
  </div>
3922
3923
  <div
@@ -3984,7 +3985,7 @@ function ml(e) {
3984
3985
  function hl(e, t) {
3985
3986
  return vl(e) ? e : t;
3986
3987
  }
3987
- var gl = class extends m {
3988
+ var gl = class extends F {
3988
3989
  static properties = {
3989
3990
  values: { attribute: !1 },
3990
3991
  operator: { type: String },
@@ -3995,7 +3996,7 @@ var gl = class extends m {
3995
3996
  },
3996
3997
  placeholder: { type: String }
3997
3998
  };
3998
- static styles = [Oc, F`
3999
+ static styles = [Oc, I`
3999
4000
  :host {
4000
4001
  display: block;
4001
4002
  }
@@ -4052,7 +4053,7 @@ var gl = class extends m {
4052
4053
  .showThresholdNumbers=${!1}
4053
4054
  @add=${(e) => this.#r(e)}
4054
4055
  @adjust=${(e) => this.#i(e)}
4055
- ></gs-histogram>` : I}
4056
+ ></gs-histogram>` : _}
4056
4057
 
4057
4058
  <input
4058
4059
  type="number"
@@ -4089,7 +4090,7 @@ var yl = class extends G {
4089
4090
  categoryToMarker: {}
4090
4091
  };
4091
4092
  constructor() {
4092
- super(), this.categories = [], this.attributeInfo = null, this.sampleView = null, this.categoryToMarker = () => I, this.selection = [];
4093
+ super(), this.categories = [], this.attributeInfo = null, this.sampleView = null, this.categoryToMarker = () => _, this.selection = [];
4093
4094
  }
4094
4095
  willUpdate(e) {
4095
4096
  e.has("attributeInfo") && (this.dialogTitle = `Filter by ${this.attributeInfo.name}`);
@@ -4178,7 +4179,7 @@ var bl = class extends G {
4178
4179
  customElements.define("gs-quantitative-attribute-filter-dialog", bl);
4179
4180
  function xl(e, t) {
4180
4181
  let n = e.scale?.type;
4181
- Un(n) ? Cl(e, t) : qn(n) || Ln(n) ? Tl(e, t) : e.type === "identifier" ? Sl(e, t) : q("Not implemented (yet).");
4182
+ qn(n) ? Cl(e, t) : Xn(n) || Wn(n) ? Tl(e, t) : e.type === "identifier" ? Sl(e, t) : q("Not implemented (yet).");
4182
4183
  }
4183
4184
  function Sl(e, t) {
4184
4185
  wl(t.getSamples().map((e) => e.id), e, t);
@@ -4187,10 +4188,10 @@ function Cl(e, t) {
4187
4188
  let n = e.scale;
4188
4189
  wl(n.domain(), e, t, (e) => L`<span
4189
4190
  class="color"
4190
- style=${Yt({ backgroundColor: n(e).toString() })}
4191
+ style=${Qt({ backgroundColor: n(e).toString() })}
4191
4192
  ></span>`);
4192
4193
  }
4193
- function wl(e, t, n, r = (e) => I) {
4194
+ function wl(e, t, n, r = (e) => _) {
4194
4195
  let i = new Set(h(t, n.leafSamples, n.sampleHierarchy)), a = e.filter((e) => i.has(e)).map((e) => ({
4195
4196
  value: e,
4196
4197
  label: `${e}`,
@@ -4217,7 +4218,7 @@ var El = class extends G {
4217
4218
  validationError: {},
4218
4219
  values: {}
4219
4220
  };
4220
- static styles = [...super.styles, F`
4221
+ static styles = [...super.styles, I`
4221
4222
  .group-by-thresholds-form {
4222
4223
  width: 27em;
4223
4224
  }
@@ -4316,7 +4317,7 @@ var El = class extends G {
4316
4317
  ${this.validationError ? L`<div class="gs-alert danger">
4317
4318
  ${W(Dr).node[0]}
4318
4319
  <span>${this.validationError}</span>
4319
- </div>` : I}
4320
+ </div>` : _}
4320
4321
 
4321
4322
  <label>Split into groups using the thresholds:</label>
4322
4323
 
@@ -4412,7 +4413,7 @@ var El = class extends G {
4412
4413
  `)}
4413
4414
  </tbody>
4414
4415
  </table>`;
4415
- })()}` : I}
4416
+ })()}` : _}
4416
4417
  </div>`;
4417
4418
  }
4418
4419
  renderButtons() {
@@ -4528,7 +4529,7 @@ var Al = class extends G {
4528
4529
  values: {},
4529
4530
  required: {}
4530
4531
  };
4531
- static styles = [...super.styles, F`
4532
+ static styles = [...super.styles, I`
4532
4533
  .retain-categories-form {
4533
4534
  width: 25em;
4534
4535
  }
@@ -4654,8 +4655,8 @@ var Al = class extends G {
4654
4655
  let e = this.conditionAttributeInfo.scale;
4655
4656
  return e ? (t) => L`<span
4656
4657
  class="color"
4657
- style=${Yt({ backgroundColor: e(t).toString() })}
4658
- ></span>` : () => I;
4658
+ style=${Qt({ backgroundColor: e(t).toString() })}
4659
+ ></span>` : () => _;
4659
4660
  }
4660
4661
  };
4661
4662
  customElements.define("gs-retain-categories-by-attribute-dialog", Al);
@@ -4695,7 +4696,7 @@ function Il(e) {
4695
4696
  }
4696
4697
  //#endregion
4697
4698
  //#region src/sampleView/state/actionInfo.js
4698
- var Ll = Bn(".4"), Rl = {
4699
+ var Ll = sn(".4"), Rl = {
4699
4700
  lt: "<",
4700
4701
  lte: "≤",
4701
4702
  eq: "=",
@@ -4933,7 +4934,7 @@ function Ul(e, t) {
4933
4934
  attributeTitle: t
4934
4935
  };
4935
4936
  }
4936
- }, { attributeName: i, attributeTitle: a } = r("attribute" in n && n.attribute ? n.attribute : null), { attributeName: o, attributeTitle: s } = r("condition" in n && n.condition && typeof n.condition == "object" && "attribute" in n.condition ? n.condition.attribute : null), c = { attributeName: i }, l = e.type.substring(w.length + 1), u = Vl[l];
4937
+ }, { attributeName: i, attributeTitle: a } = r("attribute" in n && n.attribute ? n.attribute : null), { attributeName: o, attributeTitle: s } = r("condition" in n && n.condition && typeof n.condition == "object" && "attribute" in n.condition ? n.condition.attribute : null), c = { attributeName: i }, l = e.type.substring(C.length + 1), u = Vl[l];
4937
4938
  return u ? u({
4938
4939
  payload: n,
4939
4940
  template: c,
@@ -4950,7 +4951,7 @@ function Ul(e, t) {
4950
4951
  }
4951
4952
  //#endregion
4952
4953
  //#region src/sampleView/attributeDialogs/createCustomGroupsDialog.js
4953
- var Wl = F`
4954
+ var Wl = I`
4954
4955
  .group-arbitrarily-form {
4955
4956
  span.na {
4956
4957
  color: gray;
@@ -5100,8 +5101,8 @@ var Wl = F`
5100
5101
  renderBody() {
5101
5102
  let e = this.attributeInfo, t = e.type == "identifier" ? "Identifier" : "Category", n = e.scale, r = n ? (e) => L`<span
5102
5103
  class="color"
5103
- style=${Yt({ backgroundColor: n(e)?.toString() ?? "inherit" })}
5104
- ></span>` : () => I, i = Te((e) => e, this.groups), a = Object.keys(this.groups);
5104
+ style=${Qt({ backgroundColor: n(e)?.toString() ?? "inherit" })}
5105
+ ></span>` : () => _, i = we((e) => e, this.groups), a = Object.keys(this.groups);
5105
5106
  return L`
5106
5107
  <div class="gs-alert info">
5107
5108
  ${W(Gr).node[0]}
@@ -5896,13 +5897,13 @@ var Ad = Ou, jd = Tu, Md = (e, t, n) => {
5896
5897
  ...i,
5897
5898
  platform: a
5898
5899
  });
5899
- }, Nd, Pd = [], Fd = b((e) => e(), 150, !1), Id = { type: "divider" };
5900
+ }, Nd, Pd = [], Fd = ae((e) => e(), 150, !1), Id = { type: "divider" };
5900
5901
  function Ld(e) {
5901
5902
  if (e?.type == "contextmenu") {
5902
5903
  e.preventDefault();
5903
5904
  return;
5904
5905
  }
5905
- Nd && (Nd.remove(), Nd = void 0, document.body.classList.remove(_), document.body.classList.remove(xe));
5906
+ Nd && (Nd.remove(), Nd = void 0, document.body.classList.remove(Kt), document.body.classList.remove(d));
5906
5907
  }
5907
5908
  function Rd(e) {
5908
5909
  if (!(e < 1)) {
@@ -5922,7 +5923,7 @@ var zd = () => L`<li class="menu-divider"></li>`, Bd = (e) => L`
5922
5923
  @mouseleave=${() => Fd(() => Rd(t + 1))}
5923
5924
  >
5924
5925
  ${e.customContent ? e.customContent : L`<span
5925
- >${e.icon ? W(e.icon).node[0] : I}
5926
+ >${e.icon ? W(e.icon).node[0] : _}
5926
5927
  ${e.label}</span
5927
5928
  >`}
5928
5929
  </div>
@@ -5953,12 +5954,12 @@ var Ud = (e) => L`
5953
5954
  <span
5954
5955
  >${e.icon ? W(e.icon).node[0] : ""} ${e.label}</span
5955
5956
  >
5956
- ${e.shortcut ? L`<span class="kbd-shortcut">${e.shortcut}</span>` : I}
5957
+ ${e.shortcut ? L`<span class="kbd-shortcut">${e.shortcut}</span>` : _}
5957
5958
  </a>
5958
5959
 
5959
5960
  ${e.ellipsisCallback ? L` <a class="menu-ellipsis" @click=${e.ellipsisCallback}>
5960
5961
  ${W(Xr).node[0]}
5961
- </a>` : I}
5962
+ </a>` : _}
5962
5963
  </li>
5963
5964
  `, Wd = (e) => L`
5964
5965
  <li>
@@ -5982,7 +5983,7 @@ function qd(e, t, n, r) {
5982
5983
  let i = document.createElement("ul");
5983
5984
  i.classList.add("gs-context-menu"), i.style.top = "0", i.addEventListener("mouseenter", () => {
5984
5985
  Fd(() => {});
5985
- }), i.addEventListener("mouseup", (e) => e.stopPropagation()), i.addEventListener("click", (e) => e.stopPropagation()), pt(e.map((e) => Gd(e, n)), i), Nd.appendChild(i), Rd(n), Pd[n] = i, r ??= "right-start";
5986
+ }), i.addEventListener("mouseup", (e) => e.stopPropagation()), i.addEventListener("click", (e) => e.stopPropagation()), m(e.map((e) => Gd(e, n)), i), Nd.appendChild(i), Rd(n), Pd[n] = i, r ??= "right-start";
5986
5987
  let a = !/^(top|bottom)/.test(r);
5987
5988
  Md(t, i, {
5988
5989
  strategy: "fixed",
@@ -5998,10 +5999,10 @@ function Yd() {
5998
5999
  let e = document.body, t = performance.now();
5999
6000
  Nd = document.createElement("div"), Nd.classList.add("gs-context-menu-backdrop"), Nd.addEventListener("click", Ld), Nd.addEventListener("contextmenu", Ld), Nd.addEventListener("mouseup", () => {
6000
6001
  performance.now() - t > 500 && Ld();
6001
- }, { once: !0 }), e.appendChild(Nd), document.body.classList.add(_), document.body.classList.add(xe);
6002
+ }, { once: !0 }), e.appendChild(Nd), document.body.classList.add(Kt), document.body.classList.add(d);
6002
6003
  }
6003
6004
  function Xd(e, t, n) {
6004
- n ??= "bottom-start", Nd && Jd !== t && Ld(), Jd = t, Nd ? pt(e.items.map((e) => Gd(e, 0)), Pd[0]) : (Yd(), qd(e.items, t, 0, n));
6005
+ n ??= "bottom-start", Nd && Jd !== t && Ld(), Jd = t, Nd ? m(e.items.map((e) => Gd(e, 0)), Pd[0]) : (Yd(), qd(e.items, t, 0, n));
6005
6006
  }
6006
6007
  function Zd(e, t) {
6007
6008
  Xd(e, Qd(t), "right-start"), t.preventDefault();
@@ -6025,7 +6026,7 @@ function Qd(e) {
6025
6026
  //#region src/sampleView/attributeContextMenu.js
6026
6027
  var $d = "SAMPLE_ATTRIBUTE", ef = 20;
6027
6028
  function tf(e, t, n, r) {
6028
- let i = A.actions, a = t.attribute, o = r.sampleHierarchy, s = t?.type ?? "identifier", c = [];
6029
+ let i = k.actions, a = t.attribute, o = r.sampleHierarchy, s = t?.type ?? "identifier", c = [];
6029
6030
  e && c.push({
6030
6031
  label: e,
6031
6032
  type: "header"
@@ -6326,7 +6327,7 @@ var hf = class {
6326
6327
  }
6327
6328
  feedback(e) {
6328
6329
  let t = this.error(e);
6329
- return t ? L`<div class="invalid-feedback">${t}</div>` : I;
6330
+ return t ? L`<div class="invalid-feedback">${t}</div>` : _;
6330
6331
  }
6331
6332
  #e(e) {
6332
6333
  let t = this._fields.get(e);
@@ -6337,13 +6338,13 @@ var hf = class {
6337
6338
  let n = new Map(this._errors);
6338
6339
  t ? n.set(e, t) : n.delete(e), this._errors = n, this._host.requestUpdate();
6339
6340
  }
6340
- }, gf = ve(class extends d {
6341
+ }, gf = He(class extends Yt {
6341
6342
  constructor(e) {
6342
- if (super(e), e.type !== Kt.ELEMENT) throw Error("formField must be used on an element part.");
6343
+ if (super(e), e.type !== ve.ELEMENT) throw Error("formField must be used on an element part.");
6343
6344
  this._abortController = null;
6344
6345
  }
6345
6346
  render(e, t, n) {
6346
- return I;
6347
+ return _;
6347
6348
  }
6348
6349
  update(e, t) {
6349
6350
  let [n, r, i] = t, a = i?.validateOnInput === "always" ? "always" : "onError", o = e.element;
@@ -6362,7 +6363,7 @@ var hf = class {
6362
6363
  n.revalidate(r);
6363
6364
  for (let e of n.getAffectedFields(r)) n.revalidate(e);
6364
6365
  c();
6365
- }, { signal: this._abortController.signal }), c(), I;
6366
+ }, { signal: this._abortController.signal }), c(), _;
6366
6367
  }
6367
6368
  });
6368
6369
  //#endregion
@@ -6383,7 +6384,7 @@ var vf = class extends G {
6383
6384
  bookmarkName: { state: !0 },
6384
6385
  bookmarkNotes: { state: !0 }
6385
6386
  };
6386
- static styles = [...super.styles, F`
6387
+ static styles = [...super.styles, I`
6387
6388
  dialog {
6388
6389
  width: 500px;
6389
6390
  }
@@ -7018,15 +7019,15 @@ var bf = /* @__PURE__ */ t(((e, t) => {
7018
7019
  "%URIErrorPrototype%": ["URIError", "prototype"],
7019
7020
  "%WeakMapPrototype%": ["WeakMap", "prototype"],
7020
7021
  "%WeakSetPrototype%": ["WeakSet", "prototype"]
7021
- }, N = Kf(), P = ep(), ne = N.call(k, Array.prototype.concat), re = N.call(O, Array.prototype.splice), ie = N.call(k, String.prototype.replace), ae = N.call(k, String.prototype.slice), F = N.call(k, RegExp.prototype.exec), oe = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, se = /\\(\\)?/g, I = function(e) {
7022
+ }, N = Kf(), P = ep(), ne = N.call(k, Array.prototype.concat), re = N.call(O, Array.prototype.splice), ie = N.call(k, String.prototype.replace), ae = N.call(k, String.prototype.slice), oe = N.call(k, RegExp.prototype.exec), se = /[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g, ce = /\\(\\)?/g, le = function(e) {
7022
7023
  var t = ae(e, 0, 1), n = ae(e, -1);
7023
7024
  if (t === "%" && n !== "%") throw new c("invalid intrinsic syntax, expected closing `%`");
7024
7025
  if (n === "%" && t !== "%") throw new c("invalid intrinsic syntax, expected opening `%`");
7025
7026
  var r = [];
7026
- return ie(e, oe, function(e, t, n, i) {
7027
- r[r.length] = n ? ie(i, se, "$1") : t || e;
7027
+ return ie(e, se, function(e, t, n, i) {
7028
+ r[r.length] = n ? ie(i, ce, "$1") : t || e;
7028
7029
  }), r;
7029
- }, ce = function(e, t) {
7030
+ }, ue = function(e, t) {
7030
7031
  var n = e, r;
7031
7032
  if (P(te, n) && (r = te[n], n = "%" + r[0] + "%"), P(j, n)) {
7032
7033
  var i = j[n];
@@ -7042,8 +7043,8 @@ var bf = /* @__PURE__ */ t(((e, t) => {
7042
7043
  t.exports = function(e, t) {
7043
7044
  if (typeof e != "string" || e.length === 0) throw new l("intrinsic name must be a non-empty string");
7044
7045
  if (arguments.length > 1 && typeof t != "boolean") throw new l("\"allowMissing\" argument must be a boolean");
7045
- if (F(/^%?[^%]*%?$/, e) === null) throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
7046
- var n = I(e), r = n.length > 0 ? n[0] : "", i = ce("%" + r + "%", t), a = i.name, o = i.value, s = !1, u = i.alias;
7046
+ if (oe(/^%?[^%]*%?$/, e) === null) throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");
7047
+ var n = le(e), r = n.length > 0 ? n[0] : "", i = ue("%" + r + "%", t), a = i.name, o = i.value, s = !1, u = i.alias;
7047
7048
  u && (r = u[0], re(n, ne([0, 1], u)));
7048
7049
  for (var d = 1, f = !0; d < n.length; d += 1) {
7049
7050
  var p = n[d], m = ae(p, 0, 1), h = ae(p, -1);
@@ -7442,61 +7443,61 @@ var bf = /* @__PURE__ */ t(((e, t) => {
7442
7443
  }
7443
7444
  e.isDataView = ie;
7444
7445
  var ae = typeof SharedArrayBuffer < "u" ? SharedArrayBuffer : void 0;
7445
- function F(e) {
7446
- return c(e) === "[object SharedArrayBuffer]";
7447
- }
7448
7446
  function oe(e) {
7449
- return ae === void 0 ? !1 : (F.working === void 0 && (F.working = F(new ae())), F.working ? F(e) : e instanceof ae);
7447
+ return c(e) === "[object SharedArrayBuffer]";
7450
7448
  }
7451
- e.isSharedArrayBuffer = oe;
7452
7449
  function se(e) {
7450
+ return ae === void 0 ? !1 : (oe.working === void 0 && (oe.working = oe(new ae())), oe.working ? oe(e) : e instanceof ae);
7451
+ }
7452
+ e.isSharedArrayBuffer = se;
7453
+ function ce(e) {
7453
7454
  return c(e) === "[object AsyncFunction]";
7454
7455
  }
7455
- e.isAsyncFunction = se;
7456
- function I(e) {
7456
+ e.isAsyncFunction = ce;
7457
+ function le(e) {
7457
7458
  return c(e) === "[object Map Iterator]";
7458
7459
  }
7459
- e.isMapIterator = I;
7460
- function ce(e) {
7460
+ e.isMapIterator = le;
7461
+ function ue(e) {
7461
7462
  return c(e) === "[object Set Iterator]";
7462
7463
  }
7463
- e.isSetIterator = ce;
7464
- function le(e) {
7464
+ e.isSetIterator = ue;
7465
+ function de(e) {
7465
7466
  return c(e) === "[object Generator]";
7466
7467
  }
7467
- e.isGeneratorObject = le;
7468
- function ue(e) {
7468
+ e.isGeneratorObject = de;
7469
+ function fe(e) {
7469
7470
  return c(e) === "[object WebAssembly.Module]";
7470
7471
  }
7471
- e.isWebAssemblyCompiledModule = ue;
7472
- function de(e) {
7472
+ e.isWebAssemblyCompiledModule = fe;
7473
+ function pe(e) {
7473
7474
  return m(e, l);
7474
7475
  }
7475
- e.isNumberObject = de;
7476
- function fe(e) {
7476
+ e.isNumberObject = pe;
7477
+ function me(e) {
7477
7478
  return m(e, u);
7478
7479
  }
7479
- e.isStringObject = fe;
7480
- function pe(e) {
7480
+ e.isStringObject = me;
7481
+ function he(e) {
7481
7482
  return m(e, d);
7482
7483
  }
7483
- e.isBooleanObject = pe;
7484
- function me(e) {
7484
+ e.isBooleanObject = he;
7485
+ function ge(e) {
7485
7486
  return o && m(e, f);
7486
7487
  }
7487
- e.isBigIntObject = me;
7488
- function he(e) {
7488
+ e.isBigIntObject = ge;
7489
+ function _e(e) {
7489
7490
  return s && m(e, p);
7490
7491
  }
7491
- e.isSymbolObject = he;
7492
- function ge(e) {
7493
- return de(e) || fe(e) || pe(e) || me(e) || he(e);
7492
+ e.isSymbolObject = _e;
7493
+ function ve(e) {
7494
+ return pe(e) || me(e) || he(e) || ge(e) || _e(e);
7494
7495
  }
7495
- e.isBoxedPrimitive = ge;
7496
- function _e(e) {
7497
- return typeof Uint8Array < "u" && (ne(e) || oe(e));
7496
+ e.isBoxedPrimitive = ve;
7497
+ function ye(e) {
7498
+ return typeof Uint8Array < "u" && (ne(e) || se(e));
7498
7499
  }
7499
- e.isAnyArrayBuffer = _e, [
7500
+ e.isAnyArrayBuffer = ye, [
7500
7501
  "isProxy",
7501
7502
  "isExternal",
7502
7503
  "isModuleNamespaceObject"
@@ -7900,7 +7901,7 @@ var Mp = class extends G {
7900
7901
  bookmark: {},
7901
7902
  global: { type: Boolean }
7902
7903
  };
7903
- static styles = [...super.styles, F`
7904
+ static styles = [...super.styles, I`
7904
7905
  .copy-url {
7905
7906
  position: relative;
7906
7907
 
@@ -8008,7 +8009,7 @@ var Lp = class extends G {
8008
8009
  plot: {},
8009
8010
  bookmarkContext: {}
8010
8011
  };
8011
- static styles = [...super.styles, F`
8012
+ static styles = [...super.styles, I`
8012
8013
  .plot-shell {
8013
8014
  inline-size: min(70vw, 700px);
8014
8015
  block-size: min(60vh, 450px);
@@ -8047,7 +8048,7 @@ var Lp = class extends G {
8047
8048
  iconDef: pi,
8048
8049
  disabled: !this.bookmarkContext
8049
8050
  }),
8050
- this.makeButton("Save PNG", () => (te(this.renderRoot, this._api, this.plot.filename), !0), { iconDef: Zr }),
8051
+ this.makeButton("Save PNG", () => (M(this.renderRoot, this._api, this.plot.filename), !0), { iconDef: Zr }),
8051
8052
  this.makeCloseButton()
8052
8053
  ] : [this.makeCloseButton()];
8053
8054
  }
@@ -8213,7 +8214,7 @@ var Jp = class {
8213
8214
  resolveMatching(e) {
8214
8215
  if (this.#e.size) for (let t of this.#e) t.predicate(e) && (this.#e.delete(t), t.resolve());
8215
8216
  }
8216
- }, Yp = "SAMPLE_ATTRIBUTE", Xp = class extends x {
8217
+ }, Yp = "SAMPLE_ATTRIBUTE", Xp = class extends re {
8217
8218
  #e;
8218
8219
  #t;
8219
8220
  #n = /* @__PURE__ */ new Map();
@@ -8254,8 +8255,8 @@ var Jp = class {
8254
8255
  });
8255
8256
  }
8256
8257
  r && this.#s(r);
8257
- }), this.addInteractionListener("mouseleave", (e) => {
8258
- this._attributeHighlighState.currentAttribute && (e.uiEvent.type !== "mouseout" && this.coords.containsPoint(e.point.x, e.point.y) || this.#s(void 0));
8258
+ }), this.addInteractionListener("mouseleave", () => {
8259
+ this.#s(void 0);
8259
8260
  });
8260
8261
  }
8261
8262
  getEncoding() {
@@ -8324,7 +8325,7 @@ var Jp = class {
8324
8325
  r();
8325
8326
  return;
8326
8327
  }
8327
- Fe(this);
8328
+ A(this);
8328
8329
  let i = (e) => e.isConfiguredVisible(), a = this.#f(t, i, n);
8329
8330
  if (a.updateDynamicData(this.#p(e)), await this.#h(a, i), this.#d(n)) {
8330
8331
  r();
@@ -8341,9 +8342,9 @@ var Jp = class {
8341
8342
  return e !== this.#r;
8342
8343
  }
8343
8344
  #f(e, t, n) {
8344
- let { graphicsPromises: r } = Mt(this, e, t), i = this.flowHandle?.dataSource;
8345
+ let { graphicsPromises: r } = Xe(this, e, t), i = this.flowHandle?.dataSource;
8345
8346
  if (!i) throw Error("Cannot find metadata data source handle!");
8346
- return Bt(r, () => n === this.#r), i;
8347
+ return Ft(r, () => n === this.#r), i;
8347
8348
  }
8348
8349
  #p(e) {
8349
8350
  let t = this.#e.sampleHierarchy.sampleData.entities, n = Object.entries(e.entities).map(([e, n]) => ({
@@ -8356,7 +8357,7 @@ var Jp = class {
8356
8357
  #m() {
8357
8358
  let e = /* @__PURE__ */ new Set();
8358
8359
  this.visit((t) => {
8359
- if (t instanceof et) {
8360
+ if (t instanceof ht) {
8360
8361
  let n = t.getScaleResolution("color");
8361
8362
  n && e.add(n);
8362
8363
  }
@@ -8364,8 +8365,8 @@ var Jp = class {
8364
8365
  for (let t of e) t.reconfigureDomain();
8365
8366
  }
8366
8367
  #h(e, t) {
8367
- let n = xt(this, t);
8368
- return n.delete(e), ct(this, n);
8368
+ let n = r(this, t);
8369
+ return n.delete(e), Lt(this, n);
8369
8370
  }
8370
8371
  awaitMetadataReady(e) {
8371
8372
  return this.#i.wait(e);
@@ -8374,18 +8375,18 @@ var Jp = class {
8374
8375
  this.setChildren([]), this.#n.clear();
8375
8376
  let e = Vt(this.getAttributeNames(), "/"), t = this.#e.sampleHierarchy.sampleMetadata.attributeDefs, n = async (e, r, i) => {
8376
8377
  for (let a of e.children.values()) if (a.children.size == 0) {
8377
- let e = a.path, n = new ee(Zp(e, {
8378
+ let e = a.path, n = new S(Zp(e, {
8378
8379
  ...i,
8379
8380
  title: a.part,
8380
8381
  ...t?.[e] ?? {}
8381
8382
  }, this.#e.spec.metadata), this.context, r, r, `attribute-${e}`);
8382
8383
  await n.initializeChildren();
8383
8384
  let o = n.findDescendantByName(em(e));
8384
- if (!(o instanceof et)) throw Error("Cannot find metadata foreground view for " + e);
8385
+ if (!(o instanceof ht)) throw Error("Cannot find metadata foreground view for " + e);
8385
8386
  n.opacityFunction = (t) => t * this.#l(e), r.appendChild(n), this.#n.set(e, o);
8386
8387
  for (let t of n.getDescendants()) this.#a.set(t, e);
8387
8388
  } else {
8388
- let e = t?.[a.path] ?? {}, o = `attributeGroup-${a.path}`, s = new x({
8389
+ let e = t?.[a.path] ?? {}, o = `attributeGroup-${a.path}`, s = new re({
8389
8390
  name: o,
8390
8391
  hconcat: [],
8391
8392
  configurableVisibility: !0,
@@ -8409,8 +8410,8 @@ var Jp = class {
8409
8410
  }
8410
8411
  };
8411
8412
  await n(e, this, {});
8412
- for (let e of this.getDescendants()) e instanceof et && e.name.startsWith("title") && typeof e.spec.mark != "string" && (e.spec.mark.clip = "never");
8413
- gt(this);
8413
+ for (let e of this.getDescendants()) e instanceof ht && e.name.startsWith("title") && typeof e.spec.mark != "string" && (e.spec.mark.clip = "never");
8414
+ wt(this);
8414
8415
  }
8415
8416
  getAttributeNames() {
8416
8417
  return this.#e.sampleHierarchy.sampleMetadata.attributeNames;
@@ -8437,7 +8438,7 @@ var Jp = class {
8437
8438
  type: r.type,
8438
8439
  scale: r.getScale(),
8439
8440
  title: L`<em class="attribute">${e}</em>`,
8440
- shortTitle: n.title ?? tt(e),
8441
+ shortTitle: n.title ?? et(e),
8441
8442
  emphasizedName: e,
8442
8443
  description: t.spec.description
8443
8444
  };
@@ -8456,7 +8457,7 @@ var Jp = class {
8456
8457
  class=${br({ hovered: e == t })}
8457
8458
  >
8458
8459
  <th>${nm(e)}</th>
8459
- <td>${Lt(n)}</td>
8460
+ <td>${pe(n)}</td>
8460
8461
  <td
8461
8462
  class="color"
8462
8463
  style="background-color: ${r(e, n)}"
@@ -8706,7 +8707,7 @@ function sm(e, t) {
8706
8707
  }
8707
8708
  //#endregion
8708
8709
  //#region src/sampleView/sampleGroupView.js
8709
- var cm = { step: 24 }, lm = class extends ee {
8710
+ var cm = { step: 24 }, lm = class extends S {
8710
8711
  #e = !0;
8711
8712
  constructor(e, t) {
8712
8713
  let n = {
@@ -8766,7 +8767,7 @@ var cm = { step: 24 }, lm = class extends ee {
8766
8767
  type: "nominal",
8767
8768
  scale: {
8768
8769
  type: "ordinal",
8769
- domain: xn(500)
8770
+ domain: Cn(500)
8770
8771
  },
8771
8772
  axis: null
8772
8773
  },
@@ -8819,7 +8820,7 @@ var cm = { step: 24 }, lm = class extends ee {
8819
8820
  let e = this.context.getCurrentHover();
8820
8821
  if (!e?.datum._rawGroup) return;
8821
8822
  let t = e.datum._rawGroup;
8822
- for (let e of j(this.sampleView.sampleHierarchy.rootGroup)) if (e.at(-1) === t) return e.slice(1);
8823
+ for (let e of ee(this.sampleView.sampleHierarchy.rootGroup)) if (e.at(-1) === t) return e.slice(1);
8823
8824
  }
8824
8825
  #r(e) {
8825
8826
  let t = this.sampleView.sampleHierarchy.groupMetadata.length;
@@ -8896,7 +8897,7 @@ var cm = { step: 24 }, lm = class extends ee {
8896
8897
  return [null, ...this.sampleView.sampleHierarchy.groupMetadata].map((t) => {
8897
8898
  if (!t) return "unknown";
8898
8899
  let n = this.sampleView.compositeAttributeInfoSource.getAttributeInfo(t.attribute).title;
8899
- return n ? Ee(n) ? n : (pt(n, e), e.textContent.replace(/\s+/g, " ").trim()) : "unknown";
8900
+ return n ? Te(n) ? n : (m(n, e), e.textContent.replace(/\s+/g, " ").trim()) : "unknown";
8900
8901
  });
8901
8902
  }
8902
8903
  };
@@ -8991,7 +8992,7 @@ var _m = class {
8991
8992
  }
8992
8993
  setScrollOffset(e) {
8993
8994
  let t = Math.max(0, this.#n - this.#u.getHeight());
8994
- this.#t = rn(e, 0, t);
8995
+ this.#t = an(e, 0, t);
8995
8996
  }
8996
8997
  getScrollableHeight() {
8997
8998
  return this.#n;
@@ -9039,7 +9040,7 @@ var _m = class {
9039
9040
  let n = this.getSummaryAt(t);
9040
9041
  n && (e = this.#l.summaries[n.index].locSize.location - (n.location.locSize.location - t));
9041
9042
  }
9042
- if (e ? this.#t = e - t : this.#t = (this.#n - i) / 2, this.#n > i) return gn({
9043
+ if (e ? this.#t = e - t : this.#t = (this.#n - i) / 2, this.#n > i) return Nn({
9043
9044
  ...a,
9044
9045
  to: 1,
9045
9046
  duration: 500,
@@ -9047,7 +9048,7 @@ var _m = class {
9047
9048
  });
9048
9049
  {
9049
9050
  let e = (e) => (1 - (e * 2 - 1) ** 2) * .5;
9050
- return gn({
9051
+ return Nn({
9051
9052
  ...a,
9052
9053
  from: 0,
9053
9054
  to: 1,
@@ -9055,11 +9056,11 @@ var _m = class {
9055
9056
  easingFunction: e
9056
9057
  });
9057
9058
  }
9058
- } else return gn({
9059
+ } else return Nn({
9059
9060
  ...a,
9060
9061
  to: 0,
9061
9062
  duration: 400,
9062
- easingFunction: Dt
9063
+ easingFunction: Bt
9063
9064
  });
9064
9065
  }
9065
9066
  getLocations() {
@@ -9070,7 +9071,7 @@ var _m = class {
9070
9071
  if (!t) return [];
9071
9072
  let n = t.groups, r = n.map((e) => e.key.depth).reduce((e, t) => Math.max(e, t), 0), i = n.filter((e) => e.key.depth == r), a = this.#u.getSummaryHeight();
9072
9073
  e = e.flatten();
9073
- let o = this.#u.isStickySummaries() && a > 0 ? e.shrink(new bn(a, 0, 0, 0)) : e;
9074
+ let o = this.#u.isStickySummaries() && a > 0 ? e.shrink(new Fn(a, 0, 0, 0)) : e;
9074
9075
  return [...i.values()].map((t) => ({
9075
9076
  coords: e.modify({
9076
9077
  y: () => {
@@ -9103,10 +9104,12 @@ var _m = class {
9103
9104
  }
9104
9105
  updateFacetTexture() {
9105
9106
  if (this.#_(), !this.#o && this.#r) return;
9106
- let e = this.#u.viewContext.glHelper.gl;
9107
- this.#r = Qt(e, {
9108
- internalFormat: e.RG32F,
9109
- format: e.RG,
9107
+ let e = this.#u.viewContext.glHelper;
9108
+ if (!e) return;
9109
+ let t = e.gl;
9110
+ this.#r = Ie(t, {
9111
+ internalFormat: t.RG32F,
9112
+ format: t.RG,
9110
9113
  height: 1
9111
9114
  }, this.#i, this.#r), this.#o = !1;
9112
9115
  }
@@ -9141,7 +9144,7 @@ var _m = class {
9141
9144
  if (!e) return !1;
9142
9145
  let t = this.#u.getSampleHierarchy(), n = this.#u.getSummaryHeight();
9143
9146
  if (!this.#f && this.#d.height === e && this.#d.summaryHeight === n && this.#d.sampleHierarchy === t) return !0;
9144
- let r = Oe(t), i = this.#u.sampleLayout ?? {}, a = Em(r, {
9147
+ let r = De(t), i = this.#u.sampleLayout ?? {}, a = Em(r, {
9145
9148
  viewHeight: e,
9146
9149
  groupSpacing: i.groupSpacing ?? ym,
9147
9150
  sampleSpacingFactor: i.sampleSpacingFactor ?? xm,
@@ -9224,7 +9227,7 @@ function Tm(e, t, n, r, i) {
9224
9227
  }
9225
9228
  function Em(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sampleSpacingFactor: i = xm, summaryHeight: a = 0 }) {
9226
9229
  if (!t && !n) throw Error("viewHeight or sampleHeight must be provided!");
9227
- let o = (e) => Mn(e), s = e.map((e) => ({
9230
+ let o = (e) => cn(e), s = e.map((e) => ({
9228
9231
  path: e,
9229
9232
  sampleGroup: o(e),
9230
9233
  samples: o(e).samples
@@ -9235,7 +9238,7 @@ function Em(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sa
9235
9238
  px: a,
9236
9239
  grow: e.length
9237
9240
  }), l = [];
9238
- on(s.map((e) => c(e.samples)), t, { spacing: r }).forEach((e, t) => {
9241
+ An(s.map((e) => c(e.samples)), t, { spacing: r }).forEach((e, t) => {
9239
9242
  l.push({
9240
9243
  key: s[t].path,
9241
9244
  locSize: e
@@ -9244,8 +9247,8 @@ function Em(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sa
9244
9247
  let u = [];
9245
9248
  for (let [e, t] of s.entries()) {
9246
9249
  let n = { grow: 1 }, r = t.samples;
9247
- on(r.map((e) => n), Math.max(0, l[e].locSize.size - a), { offset: l[e].locSize.location + a }).forEach((e, t) => {
9248
- let { size: n, location: a } = e, o = n * i * .5 * Pn(15, 22, n);
9250
+ An(r.map((e) => n), Math.max(0, l[e].locSize.size - a), { offset: l[e].locSize.location + a }).forEach((e, t) => {
9251
+ let { size: n, location: a } = e, o = n * i * .5 * on(15, 22, n);
9249
9252
  e.location = a + o, e.size = n - 2 * o, u.push({
9250
9253
  key: r[t],
9251
9254
  locSize: e
@@ -9255,7 +9258,7 @@ function Em(e, { viewHeight: t = 0, sampleHeight: n = 0, groupSpacing: r = 5, sa
9255
9258
  function* d() {
9256
9259
  let e = [];
9257
9260
  for (let t of l) {
9258
- let n = t.key, r = Mn(n);
9261
+ let n = t.key, r = cn(n);
9259
9262
  for (; e.length <= n.length && e.length && n[e.length - 1] != e[e.length - 1].group;) yield e.pop();
9260
9263
  for (let n = 0; n < e.length; n++) {
9261
9264
  let r = e[n];
@@ -9323,13 +9326,13 @@ function Mm(e) {
9323
9326
  return "samples" in e && c(e.samples) && "spec" in e && c(e.spec);
9324
9327
  }
9325
9328
  function Nm(e) {
9326
- return e && (je(e) || Ne(e)) && "aggregateSamples" in e;
9329
+ return e && (At(e) || j(e)) && "aggregateSamples" in e;
9327
9330
  }
9328
9331
  //#endregion
9329
9332
  //#region src/sampleView/datumLookup.js
9330
9333
  function Pm(e, t = e.getCollector()) {
9331
- let n = e.getDataAccessor("x"), r = e.getDataAccessor("x2"), i = e.getScaleResolution("x")?.getScale()?.type, a = i ? Un(i) : !1;
9332
- return !t || !n ? () => void 0 : a ? (e, r) => t.facetBatches.get(Gn(e))?.find((e) => r == n(e)) : !a && r ? (e, i) => t.facetBatches.get(Gn(e))?.find((e) => i >= n(e) && i < r(e)) : (e, r) => t.facetBatches.get(Gn(e))?.find((e) => r == n(e));
9334
+ let n = e.getDataAccessor("x"), r = e.getDataAccessor("x2"), i = e.getScaleResolution("x")?.getScale()?.type, a = i ? qn(i) : !1;
9335
+ return !t || !n ? () => void 0 : a ? (e, r) => t.facetBatches.get(On(e))?.find((e) => r == n(e)) : !a && r ? (e, i) => t.facetBatches.get(On(e))?.find((e) => i >= n(e) && i < r(e)) : (e, r) => t.facetBatches.get(On(e))?.find((e) => r == n(e));
9333
9336
  }
9334
9337
  //#endregion
9335
9338
  //#region src/utils/predicates/featureFilter.js
@@ -9427,7 +9430,7 @@ function Hm(e, t) {
9427
9430
  i != null && (n.push(i), _ && r.push(t));
9428
9431
  };
9429
9432
  return (e) => {
9430
- let [t, n] = h(), r = a.facetBatches.get(Gn(e));
9433
+ let [t, n] = h(), r = a.facetBatches.get(On(e));
9431
9434
  if (!r?.length) return g === "count" || g === "itemCount" ? 0 : void 0;
9432
9435
  let i = [], l = [], d = 0;
9433
9436
  switch (u(r, o, c, s, t, n, (e, t) => {
@@ -9448,23 +9451,23 @@ function Hm(e, t) {
9448
9451
  function Um(e, t) {
9449
9452
  let n = e.getScaleResolution("x")?.getScale(), r = "genome" in n ? n.genome() : void 0;
9450
9453
  if (r) {
9451
- let e = t.every(rt) ? r.toContinuousInterval(t) : t;
9454
+ let e = t.every(vt) ? r.toContinuousInterval(t) : t;
9452
9455
  return r.formatInterval(e);
9453
9456
  }
9454
- return Le(t[0]) + " – " + Le(t[1]);
9457
+ return at(t[0]) + " – " + at(t[1]);
9455
9458
  }
9456
9459
  //#endregion
9457
9460
  //#region src/sampleView/viewRef.js
9458
9461
  function Wm(e) {
9459
9462
  if (!e.explicitName) throw Error("Cannot create a view reference without an explicit view name.");
9460
- return kn(e);
9463
+ return zn(e);
9461
9464
  }
9462
9465
  function Gm(e, t) {
9463
9466
  return typeof t == "string" ? Xm(e, t) : Ym(e, t);
9464
9467
  }
9465
9468
  function Km(e) {
9466
9469
  if (!e.explicitName) return;
9467
- let t = kn(e);
9470
+ let t = zn(e);
9468
9471
  return JSON.stringify({
9469
9472
  s: t.scope,
9470
9473
  v: t.view
@@ -9472,7 +9475,7 @@ function Km(e) {
9472
9475
  }
9473
9476
  function qm(e) {
9474
9477
  let t = /* @__PURE__ */ new Map();
9475
- In(e, (e) => {
9478
+ Un(e, (e) => {
9476
9479
  let n = Km(e);
9477
9480
  n && t.set(n, (t.get(n) ?? 0) + 1);
9478
9481
  });
@@ -9484,13 +9487,13 @@ function Jm(e) {
9484
9487
  return typeof e == "string" ? e : JSON.stringify(e);
9485
9488
  }
9486
9489
  function Ym(e, t) {
9487
- let n = Kn(e, t);
9490
+ let n = Yn(e, t);
9488
9491
  if (!n) throw Error("Cannot resolve view selector: " + Jm(t));
9489
9492
  return n;
9490
9493
  }
9491
9494
  function Xm(e, t) {
9492
9495
  let n = [];
9493
- if (In(e, (e) => {
9496
+ if (Un(e, (e) => {
9494
9497
  e.explicitName === t && n.push(e);
9495
9498
  }), n.length === 1) return n[0];
9496
9499
  throw n.length === 0 ? Error("Cannot find view: " + t) : Error("Multiple views named \"" + t + "\" found. Name imports or use a selector object.");
@@ -9510,19 +9513,19 @@ function $m(e, t) {
9510
9513
  let n = t.explicitName;
9511
9514
  if (typeof n != "string" || n.length === 0) return !1;
9512
9515
  let r = 0;
9513
- return In(e, (e) => {
9516
+ return Un(e, (e) => {
9514
9517
  e.explicitName === n && (r += 1);
9515
9518
  }), r > 1;
9516
9519
  }
9517
9520
  function eh(e, t) {
9518
9521
  if (!e || typeof e.visit != "function") return !1;
9519
9522
  let n = 0;
9520
- for (let r of Zn(e)) r.selector.param === t && (n += 1);
9523
+ for (let r of $n(e)) r.selector.param === t && (n += 1);
9521
9524
  return n > 1;
9522
9525
  }
9523
9526
  function th(e) {
9524
9527
  try {
9525
- return Rn(e);
9528
+ return Gn(e);
9526
9529
  } catch {
9527
9530
  return [];
9528
9531
  }
@@ -9543,7 +9546,7 @@ function nh(e, t) {
9543
9546
  }, d = Object.entries(r.getEncoding()).find(([e, t]) => "field" in t && t.field == n.field), f = d?.[0], p = d?.[1];
9544
9547
  if (!p && !("aggregation" in n)) throw Error(`Cannot resolve field '${n.field}' in view '${r.name}'`);
9545
9548
  if (!p && "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}'`);
9546
- let m = f && Nn(f) ? r.getScaleResolution(f).getScale() : void 0, h = p && "scale" in p && p.scale && typeof p.scale == "object" ? p.scale : void 0, g = p && "type" in p ? p.type : void 0, _ = "aggregation" in n ? "quantitative" : g, y, b;
9549
+ let m = f && ln(f) ? r.getScaleResolution(f).getScale() : void 0, h = p && "scale" in p && p.scale && typeof p.scale == "object" ? p.scale : void 0, g = p && "type" in p ? p.type : void 0, _ = "aggregation" in n ? "quantitative" : g, y, b;
9547
9550
  if ("ensureViewAttributeAvailability" in e) {
9548
9551
  let t = e;
9549
9552
  y = (e) => t.ensureViewAttributeAvailability(n, e), b = (e) => t.awaitViewAttributeProcessed(n, e);
@@ -9554,8 +9557,8 @@ function nh(e, t) {
9554
9557
  title: L`${s}
9555
9558
  <span class="viewTitle">(${i})</span>
9556
9559
  ${(() => {
9557
- if (qe(n)) {
9558
- if (_t(n.interval)) return L`in
9560
+ if (Ke(n)) {
9561
+ if (gt(n.interval)) return L`in
9559
9562
  <span class="interval"
9560
9563
  >${Um(r, n.interval)}</span
9561
9564
  >`;
@@ -9599,13 +9602,13 @@ function rh(e, t, n) {
9599
9602
  function ih(e) {
9600
9603
  return e.operator === "in" ? L`<em class="attribute">${e.field}</em> in
9601
9604
  {${Pl(e.values, (e, t) => L`${t > 0 ? ", " : ""}<strong
9602
- >${Ve(e)}</strong
9605
+ >${Be(e)}</strong
9603
9606
  >`)}}` : L`<em class="attribute">${e.field}</em>
9604
9607
  ${lt(e.operator)}
9605
- ${Ve(e.value)}`;
9608
+ ${Be(e.value)}`;
9606
9609
  }
9607
9610
  function ah(e) {
9608
- return rt(e) || typeof e == "number" ? Le(e) : String(e);
9611
+ return vt(e) || typeof e == "number" ? at(e) : String(e);
9609
9612
  }
9610
9613
  //#endregion
9611
9614
  //#region src/sampleView/sampleLabelView.js
@@ -9618,7 +9621,7 @@ var oh = "SAMPLE_NAME", sh = "_indexNumber", ch = "_labelWidth", lh = "_labelTit
9618
9621
  valuesProvider: v((e) => e),
9619
9622
  type: "identifier",
9620
9623
  scale: void 0
9621
- }), fh = class extends et {
9624
+ }), fh = class extends ht {
9622
9625
  #e;
9623
9626
  #t;
9624
9627
  #n;
@@ -9785,7 +9788,7 @@ var Th = /* @__PURE__ */ "blues.greens.greys.oranges.purples.reds.blueGreen.blue
9785
9788
  function Eh(e) {
9786
9789
  let t = document.createElement("canvas");
9787
9790
  t.width = 120, t.height = 14;
9788
- let n = t.getContext("2d"), r = An(e);
9791
+ let n = t.getContext("2d"), r = Bn(e);
9789
9792
  if (!r) throw Error(`Unknown scheme name: ${e}`);
9790
9793
  if (typeof r == "function") {
9791
9794
  let e = r, i = t.width / 20;
@@ -9813,7 +9816,7 @@ function Dh(e, t) {
9813
9816
  }
9814
9817
  //#endregion
9815
9818
  //#region src/components/generic/customSelect.js
9816
- var Oh = class extends m {
9819
+ var Oh = class extends F {
9817
9820
  static properties = {
9818
9821
  options: { type: Array },
9819
9822
  value: {},
@@ -9834,7 +9837,7 @@ var Oh = class extends m {
9834
9837
  disconnectedCallback() {
9835
9838
  super.disconnectedCallback(), this.#d(), this.#u();
9836
9839
  }
9837
- static styles = [Oc, F`
9840
+ static styles = [Oc, I`
9838
9841
  :host {
9839
9842
  display: inline-block;
9840
9843
  font-size: inherit;
@@ -10236,7 +10239,7 @@ var Bh = class extends G {
10236
10239
  });
10237
10240
  this.colorMode = e.colorMode, this.domainMode = e.domainMode, this.scheme = e.scheme, this.scaleType = e.scaleType, this.quantDomain = e.quantDomain, this.quantRange = e.quantRange, this.domainMid = e.domainMid, this.domainPairs = e.domainPairs, this.thresholds = e.thresholds, this.thresholdRange = e.thresholdRange, this.unsupportedPiecewise = e.unsupportedPiecewise, this.scaleType === "threshold" && this.#u();
10238
10241
  }
10239
- static styles = [...super.styles, F`
10242
+ static styles = [...super.styles, I`
10240
10243
  .gs-form-section {
10241
10244
  margin-bottom: var(--gs-basic-spacing, 10px);
10242
10245
  }
@@ -10786,7 +10789,7 @@ var Bh = class extends G {
10786
10789
  customElements.define("gs-configure-scale-dialog", Bh);
10787
10790
  //#endregion
10788
10791
  //#region src/sampleView/metadata/derivedMetadataConfigurator.js
10789
- var Vh = class extends m {
10792
+ var Vh = class extends F {
10790
10793
  static properties = {
10791
10794
  attributeInfo: { attribute: !1 },
10792
10795
  values: { attribute: !1 },
@@ -10799,7 +10802,7 @@ var Vh = class extends m {
10799
10802
  static styles = [
10800
10803
  Dc,
10801
10804
  Oc,
10802
- F`
10805
+ I`
10803
10806
  :host {
10804
10807
  display: block;
10805
10808
  }
@@ -10826,7 +10829,7 @@ var Vh = class extends m {
10826
10829
  }), this._observedDomain = null;
10827
10830
  }
10828
10831
  willUpdate(e) {
10829
- e.has("attributeInfo") && this.attributeInfo && (this._scale = Pe(this.attributeInfo) ?? null, this._scaleConfigured = !1, this._observedDomain = null, this._form.reset());
10832
+ e.has("attributeInfo") && this.attributeInfo && (this._scale = Ne(this.attributeInfo) ?? null, this._scaleConfigured = !1, this._observedDomain = null, this._form.reset());
10830
10833
  }
10831
10834
  updated(e) {
10832
10835
  (e.has("attributeInfo") || e.has("attributeName") || e.has("groupPath") || e.has("_scale") || e.has("_scaleConfigured")) && this.dispatchEvent(new CustomEvent("metadata-config-validity-change", {
@@ -10917,7 +10920,7 @@ var Vh = class extends m {
10917
10920
  return this._observedDomain ||= Dh(fe(this.attributeInfo), this.values), this._observedDomain;
10918
10921
  }
10919
10922
  #n() {
10920
- return Qe(this.attributeName, this.groupPath, this.existingAttributeNames, this.attributeInfo);
10923
+ return Ze(this.attributeName, this.groupPath, this.existingAttributeNames, this.attributeInfo);
10921
10924
  }
10922
10925
  };
10923
10926
  customElements.define("gs-derived-metadata-configurator", Vh);
@@ -10948,7 +10951,7 @@ var Wh = class extends G {
10948
10951
  attributeName: { state: !0 },
10949
10952
  _configHasErrors: { state: !0 }
10950
10953
  };
10951
- static styles = [...super.styles, F`
10954
+ static styles = [...super.styles, I`
10952
10955
  dialog {
10953
10956
  width: 520px;
10954
10957
  }
@@ -10998,7 +11001,7 @@ function Gh({ attributeInfo: e, values: t, existingAttributeNames: n, defaultNam
10998
11001
  //#region src/sampleView/metadata/deriveMetadataFlow.js
10999
11002
  async function Kh(e, t, n) {
11000
11003
  if (!t.sampleData) throw Error("Sample data has not been initialized.");
11001
- let r = Ae(e, t.sampleMetadata.attributeNames), i = t.sampleData.ids, a = e.valuesProvider({
11004
+ let r = ke(e, t.sampleMetadata.attributeNames), i = t.sampleData.ids, a = e.valuesProvider({
11002
11005
  sampleIds: i,
11003
11006
  sampleHierarchy: t
11004
11007
  });
@@ -11011,7 +11014,7 @@ async function Kh(e, t, n) {
11011
11014
  });
11012
11015
  if (o.ok) {
11013
11016
  let t = o.data;
11014
- n.intentExecutor.dispatch(n.actions.deriveMetadata(Me(e.attribute, t)));
11017
+ n.intentExecutor.dispatch(n.actions.deriveMetadata(je(e.attribute, t)));
11015
11018
  }
11016
11019
  }
11017
11020
  //#endregion
@@ -11064,7 +11067,7 @@ var qh = class {
11064
11067
  _attributeName: { state: !0 },
11065
11068
  _metadataConfigHasErrors: { state: !0 }
11066
11069
  };
11067
- static styles = [...super.styles, F`
11070
+ static styles = [...super.styles, I`
11068
11071
  dialog {
11069
11072
  width: 560px;
11070
11073
  }
@@ -11311,12 +11314,12 @@ var qh = class {
11311
11314
  sampleHierarchy: this.sampleHierarchy
11312
11315
  });
11313
11316
  if (r.length !== n.length) throw Error("Derived metadata values length does not match sample ids.");
11314
- return this._attributeInfo = t, this._values = r, this._attributeName = Ae(t, this.sampleHierarchy.sampleMetadata.attributeNames), this._metadataConfigHasErrors = !1, !0;
11317
+ return this._attributeInfo = t, this._values = r, this._attributeName = ke(t, this.sampleHierarchy.sampleMetadata.attributeNames), this._metadataConfigHasErrors = !1, !0;
11315
11318
  }
11316
11319
  #x() {
11317
11320
  if (!this._attributeInfo || !this.sampleView) throw Error("Feature-filtered aggregation wizard is missing derived data.");
11318
11321
  let e = this.#S()?.getConfig();
11319
- return e ? (this.sampleView.intentExecutor.dispatch(this.sampleView.actions.deriveMetadata(Me(this._attributeInfo.attribute, e))), this.finish({ ok: !0 }), !1) : !0;
11322
+ return e ? (this.sampleView.intentExecutor.dispatch(this.sampleView.actions.deriveMetadata(je(this._attributeInfo.attribute, e))), this.finish({ ok: !0 }), !1) : !0;
11320
11323
  }
11321
11324
  #S() {
11322
11325
  return this.renderRoot.querySelector("gs-derived-metadata-configurator");
@@ -11334,7 +11337,7 @@ var qh = class {
11334
11337
  this.#e.reset(), this._attributeInfo = null, this._values = null, this._attributeName = "", this._metadataConfigHasErrors = !1;
11335
11338
  }
11336
11339
  #w() {
11337
- return !this.fieldInfo || !this.selectionIntervalComplex ? [] : ht(this.fieldInfo.view, this.selectionIntervalSource ?? this.selectionIntervalComplex, this.filterField) ?? [];
11340
+ return !this.fieldInfo || !this.selectionIntervalComplex ? [] : mt(this.fieldInfo.view, this.selectionIntervalSource ?? this.selectionIntervalComplex, this.filterField) ?? [];
11338
11341
  }
11339
11342
  };
11340
11343
  customElements.define("gs-feature-filtered-aggregation-dialog", Jh);
@@ -11360,7 +11363,7 @@ function eg(e, t, n) {
11360
11363
  if (n) try {
11361
11364
  let t = [];
11362
11365
  e.visit((e) => {
11363
- e instanceof et && e.isVisible() && sg(e, r) && t.push(e);
11366
+ e instanceof ht && e.isVisible() && sg(e, r) && t.push(e);
11364
11367
  });
11365
11368
  for (let e of t) {
11366
11369
  let t = e.getEncoding(), n = t?.x && "field" in t.x, r = Object.entries(t).some(([e, t]) => ![
@@ -11412,7 +11415,7 @@ function rg(e, t) {
11412
11415
  }
11413
11416
  function ig(e) {
11414
11417
  try {
11415
- return Ye(e).filter((e) => ![
11418
+ return Ge(e).filter((e) => ![
11416
11419
  "sample",
11417
11420
  "x",
11418
11421
  "x2"
@@ -11455,7 +11458,7 @@ function sg(e, t) {
11455
11458
  function cg(e) {
11456
11459
  if (e.view.getEncoding()?.x2) return !0;
11457
11460
  let t = e.view.getScaleResolution("x")?.getScale()?.type;
11458
- return t ? Un(t) : !1;
11461
+ return t ? qn(t) : !1;
11459
11462
  }
11460
11463
  function lg(e) {
11461
11464
  return e === "quantitative" ? $h : Zh;
@@ -11474,10 +11477,10 @@ function fg(e, t) {
11474
11477
  var pg = "SAMPLE_ATTRIBUTE";
11475
11478
  function mg(e, t, n) {
11476
11479
  let r = e.getAxisResolution("x")?.getTitle();
11477
- return t.type === "locus" ? "Locus: " + (rt(n) || typeof n == "number" ? Le(n) : String(n)) : (r ? r + ": " : "") + n;
11480
+ return t.type === "locus" ? "Locus: " + (vt(n) || typeof n == "number" ? at(n) : String(n)) : (r ? r + ": " : "") + n;
11478
11481
  }
11479
11482
  function hg(e, t) {
11480
- if (!e || !t || e.selection.intervals.x?.length !== 2 || !_n(e.selection, t)) return {};
11483
+ if (!e || !t || e.selection.intervals.x?.length !== 2 || !Tn(e.selection, t)) return {};
11481
11484
  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;
11482
11485
  return {
11483
11486
  selectionInterval: n,
@@ -11571,8 +11574,8 @@ function xg(e, t) {
11571
11574
  let n = t.mark.unitView, r = t.datum, i = [];
11572
11575
  for (let [e, t] of n.paramRuntime.paramConfigs) {
11573
11576
  if (!("select" in t) || t.persist === !1) continue;
11574
- let n = dn(t.select);
11575
- En(n) && n.toggle && i.push(e);
11577
+ let n = hn(t.select);
11578
+ pn(n) && n.toggle && i.push(e);
11576
11579
  }
11577
11580
  if (i.length === 0) return { status: "unavailable" };
11578
11581
  if (i.length > 1) return {
@@ -11586,17 +11589,17 @@ function xg(e, t) {
11586
11589
  return { status: "unavailable" };
11587
11590
  }
11588
11591
  if (!a || a.length === 0) return { status: "unavailable" };
11589
- let o = a.map((e) => zn(e)(r));
11592
+ let o = a.map((e) => mn(e)(r));
11590
11593
  if (o.some((e) => e == null)) return { status: "unavailable" };
11591
- let s = i[0], c = Yn(n, s);
11594
+ let s = i[0], c = Zn(n, s);
11592
11595
  try {
11593
- Fn(e, c);
11596
+ Hn(e, c);
11594
11597
  } catch {
11595
11598
  return { status: "unavailable" };
11596
11599
  }
11597
11600
  let l;
11598
11601
  try {
11599
- l = kn(n);
11602
+ l = zn(n);
11600
11603
  } catch {
11601
11604
  return { status: "unavailable" };
11602
11605
  }
@@ -11707,11 +11710,11 @@ var Ag = qt({
11707
11710
  initialState: { entries: {} },
11708
11711
  reducers: {
11709
11712
  paramChange: (e, t) => {
11710
- let n = Xn(t.payload.selector);
11713
+ let n = Qn(t.payload.selector);
11711
11714
  e.entries[n] = t.payload;
11712
11715
  },
11713
11716
  expandPointSelection: (e, t) => {
11714
- let n = t.payload, r = Xn(n.selector), i;
11717
+ let n = t.payload, r = Qn(n.selector), i;
11715
11718
  if ("rule" in n && n.rule) i = { rule: n.rule };
11716
11719
  else if ("predicate" in n && n.predicate) i = { predicate: n.predicate };
11717
11720
  else throw Error("expandPointSelection requires either 'rule' or 'predicate'.");
@@ -11731,7 +11734,7 @@ var Ag = qt({
11731
11734
  function jg(e) {
11732
11735
  if (Ag.actions.expandPointSelection.match(e) || !Ag.actions.paramChange.match(e)) return null;
11733
11736
  let t = e.payload, n = t?.selector;
11734
- return !n || !Array.isArray(n.scope) || !n.param || t?.value?.type === "pointExpand" ? null : Xn(n);
11737
+ return !n || !Array.isArray(n.scope) || !n.param || t?.value?.type === "pointExpand" ? null : Qn(n);
11735
11738
  }
11736
11739
  //#endregion
11737
11740
  //#region src/state/selectionExpansionMenu.js
@@ -11796,7 +11799,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11796
11799
  return this.#r("right", e);
11797
11800
  }
11798
11801
  getHorizontalReserve(e) {
11799
- return new bn(0, this.getRightReserve(e), 0, this.getLeftReserve(e));
11802
+ return new Fn(0, this.getRightReserve(e), 0, this.getLeftReserve(e));
11800
11803
  }
11801
11804
  hasHorizontalReserveChanged(e, t) {
11802
11805
  return this.getLeftReserve(e) !== this.getLeftReserve(t) || this.getRightReserve(e) !== this.getRightReserve(t);
@@ -11810,9 +11813,9 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11810
11813
  }
11811
11814
  renderVerticalAxes(e, t, n, r = {}) {
11812
11815
  if (!this.#a(n) || this.#n() !== 0) return;
11813
- let i = rr(r), a = i ? {
11816
+ let i = ir(r), a = i ? {
11814
11817
  ...r,
11815
- clip: ir(i.rect, !1, !0)
11818
+ clip: ar(i.rect, !1, !0)
11816
11819
  } : r;
11817
11820
  for (let r of ["left", "right"]) {
11818
11821
  let i = this.#i(r);
@@ -11821,7 +11824,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11821
11824
  y: () => t.y + o.locSize.location,
11822
11825
  height: o.locSize.size
11823
11826
  });
11824
- i.render(e, k(n, r, i), a);
11827
+ i.render(e, oe(n, r, i), a);
11825
11828
  }
11826
11829
  }
11827
11830
  }
@@ -11882,7 +11885,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11882
11885
  this.spec = c.spec, this.#i = e.stickySummaries ?? !0, this.#w(), this.#g(), this.#C(), this.#h(), this.#T(o), this.#E(), this.#s = this.paramRuntime.allocateSetter("visibleSamples", []), this.#l = this.paramRuntime.allocateSetter("visibleSampleMetadata", Wg(this.sampleHierarchy, [])), this.getSamples = () => kt(this.sampleHierarchy), this.spec.samples.identity?.data && this.#A();
11883
11886
  }
11884
11887
  #h() {
11885
- let e = A;
11888
+ let e = k;
11886
11889
  this.compositeAttributeInfoSource.addAttributeInfoSource(zg, (e) => nh(this, e));
11887
11890
  let t = (e) => this.compositeAttributeInfoSource.getAttributeInfo(e);
11888
11891
  this.provenance.addActionInfoSource((e) => Ul(e, t)), this.actions = e.actions;
@@ -11900,8 +11903,8 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11900
11903
  this.#a.resolveMatching(e);
11901
11904
  }
11902
11905
  #v(e, t, n) {
11903
- if (n && de(e, n)) return Promise.resolve();
11904
- if (n) return ie(this.context, e, n, t);
11906
+ if (n && Dt(e, n)) return Promise.resolve();
11907
+ if (n) return Je(this.context, e, n, t);
11905
11908
  let r = e.getDataAncestors();
11906
11909
  return this.#a.wait((t) => t === e || r.includes(t), t);
11907
11910
  }
@@ -11933,7 +11936,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11933
11936
  }
11934
11937
  async awaitViewAttributeProcessed(e, t = {}) {
11935
11938
  let n = this.#y(e);
11936
- await this.#v(n, t.signal, oe(n, ["x"]));
11939
+ await this.#v(n, t.signal, $e(n, ["x"]));
11937
11940
  }
11938
11941
  awaitMetadataReady(e) {
11939
11942
  return this.metadataView?.awaitMetadataReady(e) ?? Promise.resolve();
@@ -11943,11 +11946,11 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11943
11946
  if (!r) throw Error(`No x scale resolution found for view: ${n.name}`);
11944
11947
  this.#b(n);
11945
11948
  let i = r.getScale();
11946
- if (qn(i.type) && !Un(i.type)) {
11949
+ if (Xn(i.type) && !qn(i.type)) {
11947
11950
  let t = this.#x(e);
11948
11951
  await this.#S(n, t);
11949
11952
  }
11950
- await this.#v(n, t.signal, oe(n, ["x"]));
11953
+ await this.#v(n, t.signal, $e(n, ["x"]));
11951
11954
  }
11952
11955
  #C() {
11953
11956
  let e = this.context;
@@ -11987,7 +11990,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
11987
11990
  #T(e) {
11988
11991
  this.intentExecutor = e, this.#u = (e) => {
11989
11992
  let t = this.compositeAttributeInfoSource.getAttributeInfo.bind(this.compositeAttributeInfoSource);
11990
- return Ce(e, this.sampleHierarchy, t);
11993
+ return Se(e, this.sampleHierarchy, t);
11991
11994
  }, e.addActionAugmenter(this.#u);
11992
11995
  }
11993
11996
  #E() {
@@ -12010,7 +12013,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12010
12013
  spacing: 0,
12011
12014
  vconcat: []
12012
12015
  }, this, this, "sampleSummaries");
12013
- t.setLegendFilter((e) => E(e));
12016
+ t.setLegendFilter((e) => nn(e));
12014
12017
  let n = await this.context.createOrImportView(e, this, this, "sample-facets", void 0, { inheritEncoding: !0 });
12015
12018
  this.#t = new Hg(n, this, 0, t, this.spec.view), this.#o = (e) => {
12016
12019
  this.#t.view.paramRuntime.setValue("height", e);
@@ -12029,22 +12032,22 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12029
12032
  hconcat: [],
12030
12033
  spacing: 8,
12031
12034
  padding: { right: 8 }
12032
- }, this, this, "sample-sidebar"), jn(this.#n, { skipSubtree: !0 }), this.sampleGroupView = new lm(this, this.#n), this.sampleLabelView = new fh(this, this.#n), this.metadataView = new Xp(this, this.#n), this.#n.setChildren([
12035
+ }, this, this, "sample-sidebar"), Vn(this.#n, { skipSubtree: !0 }), this.sampleGroupView = new lm(this, this.#n), this.sampleLabelView = new fh(this, this.#n), this.metadataView = new Xp(this, this.#n), this.#n.setChildren([
12033
12036
  this.sampleGroupView,
12034
12037
  this.sampleLabelView,
12035
12038
  this.metadataView
12036
12039
  ]);
12037
- let i = (e) => {
12040
+ let r = (e) => {
12038
12041
  e.type === "mousedown" && e.mouseEvent.button !== 0 || e.stopPropagation();
12039
12042
  };
12040
- this.#n.addInteractionListener("wheel", i, !0), this.#n.addInteractionListener("mousedown", i, !0), this.#n.addInteractionListener("touchgesture", i, !0), this.#t.scrollbars.vertical = new we(this.#t, "vertical", { onViewportOffsetChange: (e) => {
12043
+ this.#n.addInteractionListener("wheel", r, !0), this.#n.addInteractionListener("mousedown", r, !0), this.#n.addInteractionListener("touchgesture", r, !0), this.#t.scrollbars.vertical = new l(this.#t, "vertical", { onViewportOffsetChange: (e) => {
12041
12044
  this.locationManager.setScrollOffset(e), this.sampleGroupView.updateRange(), this.context.animator.requestRender();
12042
12045
  } }), this.#d = (e) => {
12043
12046
  this.#t.scrollbars.vertical.paramRuntime.setValue("scrollbarOpacity", e);
12044
- }, Ze(this), pe(this), r(this), await this.#t.syncGuideViews(), await this.#W(), Ze(this), pe(this), r(this), await this.#t.summaryViews.syncGuideViews(), await this.#t.syncGuideViews(), await this.sampleGroupView.initializeChildren(), await this.metadataView.initializeChildren(), this.#t.view.addInteractionListener("contextmenu", this.#V.bind(this));
12047
+ }, Pe(this), Me(this), Ae(this), await this.#t.syncGuideViews(), await this.#W(), Pe(this), Me(this), Ae(this), await this.#t.summaryViews.syncGuideViews(), await this.#t.syncGuideViews(), await this.sampleGroupView.initializeChildren(), await this.metadataView.initializeChildren(), this.#t.view.addInteractionListener("contextmenu", this.#V.bind(this));
12045
12048
  }
12046
12049
  getOverhang() {
12047
- let e = this.#D().px ?? 0, t = this.locationManager.getLocations(), n = this.#t.sampleChromeLayout.getHorizontalReserve(t).add(new bn(0, 0, 0, e)), r = this.#O();
12050
+ let e = this.#D().px ?? 0, t = this.locationManager.getLocations(), n = this.#t.sampleChromeLayout.getHorizontalReserve(t).add(new Fn(0, 0, 0, e)), r = this.#O();
12048
12051
  return n.add(r.sampleOverhang.getHorizontal()).add(r.sharedVerticalOverhang);
12049
12052
  }
12050
12053
  prepareLayoutSize(e, t) {
@@ -12057,7 +12060,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12057
12060
  return this.#n.isConfiguredVisible() ? this.#n.getSize().addPadding(this.#n.getPadding()).width : { px: 0 };
12058
12061
  }
12059
12062
  #O() {
12060
- let e = this.#t.getOverhangWithoutYAxes(), t = this.#n.isConfiguredVisible() ? this.#n.getOverhang().getVertical() : bn.zero();
12063
+ let e = this.#t.getOverhangWithoutYAxes(), t = this.#n.isConfiguredVisible() ? this.#n.getOverhang().getVertical() : Fn.zero();
12061
12064
  return {
12062
12065
  sampleOverhang: e,
12063
12066
  sidebarVerticalOverhang: t,
@@ -12067,7 +12070,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12067
12070
  getSize() {
12068
12071
  return this._cache("size/size2", () => {
12069
12072
  let e = super.getSize(), t = ((e) => e.getSize().addPadding(e.getOverhang()).addPadding(e.getPadding()))(this.#t.view).width;
12070
- return new Cn(t, e.height);
12073
+ return new In(t, e.height);
12071
12074
  });
12072
12075
  }
12073
12076
  *[Symbol.iterator]() {
@@ -12082,23 +12085,23 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12082
12085
  displayName: e,
12083
12086
  indexNumber: t
12084
12087
  }));
12085
- this.provenance.store.dispatch(this.actions.setSamples({ samples: t })), gm(this.provenance.store, w);
12088
+ this.provenance.store.dispatch(this.actions.setSamples({ samples: t })), gm(this.provenance.store, C);
12086
12089
  } else throw Error("No explicit sample data nor sample channels found!");
12087
12090
  }
12088
12091
  #A() {
12089
12092
  let e = this.spec.samples.identity;
12090
12093
  if (!e) throw Error("Sample identity definition is missing.");
12091
- let { dataSource: t, collector: n } = Be(wt(e.data, this), new Vg(e.idField ?? "sample", e.displayNameField)), r = n.observe(() => {
12094
+ let { dataSource: t, collector: n } = xt(Mt(e.data, this), new Vg(e.idField ?? "sample", e.displayNameField)), r = n.observe(() => {
12092
12095
  let e = n.getData();
12093
- this.provenance.store.dispatch(this.actions.setSamples({ samples: e })), gm(this.provenance.store, w);
12096
+ this.provenance.store.dispatch(this.actions.setSamples({ samples: e })), gm(this.provenance.store, C);
12094
12097
  });
12095
12098
  this.registerDisposer(r), this.context.dataFlow.addDataSource(t);
12096
12099
  }
12097
12100
  get sampleHierarchy() {
12098
- return this.provenance.getPresentState()[w];
12101
+ return this.provenance.getPresentState()[C];
12099
12102
  }
12100
12103
  get leafSamples() {
12101
- return Oe(this.sampleHierarchy).map((e) => e.at(-1)).map((e) => e.samples).flat();
12104
+ return De(this.sampleHierarchy).map((e) => e.at(-1)).map((e) => e.samples).flat();
12102
12105
  }
12103
12106
  #j() {
12104
12107
  if (!this.#s) return;
@@ -12126,7 +12129,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12126
12129
  }
12127
12130
  #P(e, t, n = {}) {
12128
12131
  let r = this.#t, i = n, a = () => {
12129
- P(r.legends, r.axes, t, e, i, (e, t, n) => n(), 0), r.renderTitle(e, t, i);
12132
+ de(r.legends, r.axes, t, e, i, (e, t, n) => n(), 0), r.renderTitle(e, t, i);
12130
12133
  }, o = r.groupBackground || Object.values(r.axes).length ? this.locationManager.getGroupBackgroundRects(this.childCoords) : [];
12131
12134
  for (let { coords: t, clipRect: i } of o) {
12132
12135
  r.groupBackground?.render(e, t, n);
@@ -12135,7 +12138,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12135
12138
  clipRect: i
12136
12139
  });
12137
12140
  }
12138
- let s = ir(this.locationManager.clipBySummary(t), !0, !0), c = this.locationManager.getLocations();
12141
+ let s = ar(this.locationManager.clipBySummary(t), !0, !0), c = this.locationManager.getLocations();
12139
12142
  if (!c) {
12140
12143
  a();
12141
12144
  return;
@@ -12150,7 +12153,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12150
12153
  e.endSampleFacetBatch();
12151
12154
  }
12152
12155
  for (let { coords: t } of o) r.groupBackgroundStroke?.render(e, t, n);
12153
- for (let [n, i] of Object.entries(r.axes)) n === "left" || n === "right" || i.render(e, k(t, n, i));
12156
+ for (let [n, i] of Object.entries(r.axes)) n === "left" || n === "right" || i.render(e, oe(t, n, i));
12154
12157
  r.sampleChromeLayout.renderVerticalAxes(e, t, c, {
12155
12158
  ...n,
12156
12159
  clip: s
@@ -12158,14 +12161,14 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12158
12161
  let f = r.summaryViews, p = f.getOverhang().getHorizontal();
12159
12162
  n = {
12160
12163
  ...n,
12161
- clip: ir(t.expand(p), !0, !0)
12164
+ clip: ar(t.expand(p), !0, !0)
12162
12165
  };
12163
12166
  let m = f.getSize().height.px;
12164
12167
  for (let [r, i] of c.summaries.entries()) {
12165
12168
  let a = t.modify({
12166
12169
  y: () => {
12167
12170
  let e = i.locSize.location, n = t.y + e;
12168
- return this.#i ? n + rn(-e, 0, i.locSize.size - m) : n;
12171
+ return this.#i ? n + an(-e, 0, i.locSize.size - m) : n;
12169
12172
  },
12170
12173
  height: m
12171
12174
  }).expand(p);
@@ -12182,7 +12185,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12182
12185
  this.layoutParent || (t = t.shrink(this.getPadding()));
12183
12186
  let r = this.#O();
12184
12187
  t = t.shrink(r.sampleOverhang.getHorizontal().add(r.sharedVerticalOverhang)), e.pushView(this, t);
12185
- let i = on([this.#D(), { grow: 1 }], t.width), a = (e) => t.modify({
12188
+ let i = An([this.#D(), { grow: 1 }], t.width), a = (e) => t.modify({
12186
12189
  x: e.location + t.x,
12187
12190
  width: e.size
12188
12191
  });
@@ -12250,10 +12253,10 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12250
12253
  let e = this.#t.view.getLayoutAncestors();
12251
12254
  for (let t of e) for (let [e, n] of t.paramRuntime.paramConfigs) {
12252
12255
  if (!("select" in n)) continue;
12253
- let r = dn(n.select);
12254
- if (!mn(r) || !r.encodings?.includes("x")) continue;
12256
+ let r = hn(n.select);
12257
+ if (!wn(r) || !r.encodings?.includes("x")) continue;
12255
12258
  let i = t.paramRuntime.getValue(e);
12256
- if (i && sn(i)) return {
12259
+ if (i && vn(i)) return {
12257
12260
  selection: i,
12258
12261
  view: t,
12259
12262
  paramName: e,
@@ -12274,8 +12277,8 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12274
12277
  #V(e) {
12275
12278
  let t = e.uiEvent, n = this.getLayoutAncestors().at(-1), r = this.childCoords.normalizePoint(e.point.x, e.point.y).x, i = this.findSampleForMouseEvent(e), a = this.#t.view, o = a.getScaleResolution("x"), s = o.invertToComplex(r), c = this.#z(), { selectionInterval: l, selectionIntervalComplex: u, selectionIntervalLabel: d } = hg(c, c ? this.#B(c.view, e) : void 0), f;
12276
12279
  if (c && c.bookmarkable) try {
12277
- let e = Yn(c.view, c.paramName);
12278
- Fn(this, e), f = {
12280
+ let e = Zn(c.view, c.paramName);
12281
+ Hn(this, e), f = {
12279
12282
  type: "selection",
12280
12283
  selector: e
12281
12284
  };
@@ -12354,14 +12357,14 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12354
12357
  });
12355
12358
  }
12356
12359
  propagateInteraction(e) {
12357
- C(this, e, () => {
12360
+ T(this, e, () => {
12358
12361
  let t = this.#H(), n = this.childCoords.containsPoint(e.point.x, e.point.y), r = t.containsPoint(e.point.x, e.point.y);
12359
12362
  if (e.type === "wheelclaimprobe") {
12360
12363
  r && this.#t.view.getScaleResolution("x")?.isZoomable() && e.claimWheel();
12361
12364
  return;
12362
12365
  }
12363
- for (let t of Object.values(this.#t.scrollbars)) if (M(e, () => t.coords.containsPoint(e.point.x, e.point.y), () => t.propagateInteraction(e)), e.stopped) return;
12364
- n ? M(e, () => !0, () => this.#t.view.propagateInteraction(e), () => ke(e, t, (e) => this.#U(t, this.#t.view, e), this.context.getCurrentHover(), this.context.animator)) : r && ke(e, t, (e) => this.#U(t, this.#t.view, e), this.context.getCurrentHover(), this.context.animator), !e.stopped && M(e, () => this.sidebarCoords.containsPoint(e.point.x, e.point.y), () => this.#n.propagateInteraction(e));
12366
+ for (let t of Object.values(this.#t.scrollbars)) if (Ce(e, () => t.coords.containsPoint(e.point.x, e.point.y), () => t.propagateInteraction(e)), e.stopped) return;
12367
+ n ? Ce(e, () => !0, () => this.#t.view.propagateInteraction(e), () => Ee(e, t, (e) => this.#U(t, this.#t.view, e), this.context.getCurrentHover(), this.context.animator)) : r && Ee(e, t, (e) => this.#U(t, this.#t.view, e), this.context.getCurrentHover(), this.context.animator), !e.stopped && Ce(e, () => this.sidebarCoords.containsPoint(e.point.x, e.point.y), () => this.#n.propagateInteraction(e));
12365
12368
  });
12366
12369
  }
12367
12370
  #U(e, t, n) {
@@ -12408,7 +12411,7 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12408
12411
  dispose() {
12409
12412
  super.dispose(), this.intentExecutor.removeActionAugmenter(this.#u);
12410
12413
  }
12411
- }, Vg = class extends Sn {
12414
+ }, Vg = class extends _n {
12412
12415
  #e;
12413
12416
  #t;
12414
12417
  #n = 0;
@@ -12426,33 +12429,33 @@ var Fg = 60, Ig = "all", Lg = 1e-6, Rg = class {
12426
12429
  indexNumber: this.#n++
12427
12430
  });
12428
12431
  }
12429
- }, Hg = class extends ge {
12432
+ }, Hg = class extends b {
12430
12433
  constructor(e, t, n, r, i) {
12431
12434
  super(e, t, n), this.groupBackground = void 0, this.groupBackgroundStroke = void 0, this.sampleChromeLayout = new Rg({
12432
12435
  sampleYAxis: t.spec.sampleYAxis,
12433
12436
  getActiveAxisCandidate: (e) => this.getActiveAxisCandidate(e),
12434
12437
  getPeekState: () => t.locationManager.getPeekState()
12435
12438
  });
12436
- let a = nn(i);
12437
- a && (this.groupBackground = new et(a, t.context, t, e, "sample-group-background-" + n), jn(this.groupBackground, { skipSubtree: !0 }));
12438
- let o = l(i);
12439
- o && (this.groupBackgroundStroke = new et(o, t.context, t, e, "sample-group-background-stroke-" + n), jn(this.groupBackgroundStroke, { skipSubtree: !0 })), this.summaryViews = r;
12439
+ let a = O(i);
12440
+ a && (this.groupBackground = new ht(a, t.context, t, e, "sample-group-background-" + n), Vn(this.groupBackground, { skipSubtree: !0 }));
12441
+ let o = N(i);
12442
+ o && (this.groupBackgroundStroke = new ht(o, t.context, t, e, "sample-group-background-stroke-" + n), Vn(this.groupBackgroundStroke, { skipSubtree: !0 })), this.summaryViews = r;
12440
12443
  }
12441
12444
  allowDuplicateAxes() {
12442
12445
  return !0;
12443
12446
  }
12444
12447
  async syncGuideViews() {
12445
- let e = De(this.summaryViews), t = new Set(e);
12448
+ let e = ge(this.summaryViews), t = new Set(e);
12446
12449
  if (await super.syncGuideViews({
12447
- legendOwners: [...De(this.view), ...e],
12448
- legendFilter: (e, n) => !t.has(n) || !E(e)
12450
+ legendOwners: [...ge(this.view), ...e],
12451
+ legendFilter: (e, n) => !t.has(n) || !nn(e)
12449
12452
  }), this.legends.left) throw Error("SampleView child legends do not support left orientation because the sidebar owns the left side.");
12450
12453
  }
12451
12454
  getAxisLabelClipPolicy(e, t) {
12452
12455
  return e === "y" ? "anchor" : super.getAxisLabelClipPolicy(e, t);
12453
12456
  }
12454
12457
  getOverhangWithoutYAxes() {
12455
- let e = (e) => At(this.axes[e]), t = new bn(0, e("right"), 0, e("left"));
12458
+ let e = (e) => Oe(this.axes[e]), t = new Fn(0, e("right"), 0, e("left"));
12456
12459
  return this.getOverhang().subtract(t);
12457
12460
  }
12458
12461
  *getChildren() {
@@ -12693,8 +12696,8 @@ function S_(e, t = !1, n = 0) {
12693
12696
  else v_(this, e);
12694
12697
  }
12695
12698
  var C_ = (e) => {
12696
- e.type == Kt.CHILD && (e._$AP ??= S_, e._$AQ ??= x_);
12697
- }, w_ = class extends d {
12699
+ e.type == ve.CHILD && (e._$AP ??= S_, e._$AQ ??= x_);
12700
+ }, w_ = class extends Yt {
12698
12701
  constructor() {
12699
12702
  super(...arguments), this._$AN = void 0;
12700
12703
  }
@@ -12713,13 +12716,13 @@ var C_ = (e) => {
12713
12716
  }
12714
12717
  disconnected() {}
12715
12718
  reconnected() {}
12716
- }, T_ = () => new E_(), E_ = class {}, D_ = /* @__PURE__ */ new WeakMap(), O_ = ve(class extends w_ {
12719
+ }, T_ = () => new E_(), E_ = class {}, D_ = /* @__PURE__ */ new WeakMap(), O_ = He(class extends w_ {
12717
12720
  render(e) {
12718
- return I;
12721
+ return _;
12719
12722
  }
12720
12723
  update(e, [t]) {
12721
12724
  let n = t !== this.G;
12722
- return n && this.rt(void 0), (n || this.lt !== this.ct) && (this.G = t, this.ht = e.options?.host, this.rt(this.ct = e.element)), I;
12725
+ return n && this.rt(void 0), (n || this.lt !== this.ct) && (this.G = t, this.ht = e.options?.host, this.rt(this.ct = e.element)), _;
12723
12726
  }
12724
12727
  rt(e) {
12725
12728
  if (this.G !== void 0) if (this.isConnected || (e = void 0), typeof this.G == "function") {
@@ -12736,7 +12739,7 @@ var C_ = (e) => {
12736
12739
  reconnected() {
12737
12740
  this.rt(this.ct);
12738
12741
  }
12739
- }), k_ = {}, A_ = ve(class extends d {
12742
+ }), k_ = {}, A_ = He(class extends Yt {
12740
12743
  constructor() {
12741
12744
  super(...arguments), this.ot = k_;
12742
12745
  }
@@ -12745,8 +12748,8 @@ var C_ = (e) => {
12745
12748
  }
12746
12749
  update(e, [t, n]) {
12747
12750
  if (Array.isArray(t)) {
12748
- if (Array.isArray(this.ot) && this.ot.length === t.length && t.every((e, t) => e === this.ot[t])) return a;
12749
- } else if (this.ot === t) return a;
12751
+ if (Array.isArray(this.ot) && this.ot.length === t.length && t.every((e, t) => e === this.ot[t])) return ce;
12752
+ } else if (this.ot === t) return ce;
12750
12753
  return this.ot = Array.isArray(t) ? Array.from(t) : t, this.render(t, n);
12751
12754
  }
12752
12755
  }), j_ = class {
@@ -12764,7 +12767,7 @@ var C_ = (e) => {
12764
12767
  }
12765
12768
  hostUpdate() {}
12766
12769
  hostUpdated() {}
12767
- }, M_ = class extends m {
12770
+ }, M_ = class extends F {
12768
12771
  constructor() {
12769
12772
  super(), this.inputRef = T_(), this.app = void 0, this._focused = !1, this._subscriptions = new j_(this), this.getDefaultValue = () => "";
12770
12773
  }
@@ -12797,7 +12800,7 @@ var C_ = (e) => {
12797
12800
  let t = e.getScale();
12798
12801
  if (!("genome" in t)) throw Error("Expected a zoomable locus scale to provide genome()");
12799
12802
  this._genome = t.genome(), this.getDefaultValue = () => this._genome.formatInterval(e.getDomain());
12800
- let n = b(() => this.requestUpdate(), 60, !1);
12803
+ let n = ae(() => this.requestUpdate(), 60, !1);
12801
12804
  e.addEventListener("domain", n), this._subscriptions.addUnsubscribeCallback(() => e.removeEventListener("domain", n));
12802
12805
  }
12803
12806
  }
@@ -12812,7 +12815,7 @@ var C_ = (e) => {
12812
12815
  let i = n.getDataAccessor("x").asNumberAccessor(), a = n.getDataAccessor("x2").asNumberAccessor(), o = n.getScaleResolution("x");
12813
12816
  if (!(!i || !a || !o?.isZoomable())) {
12814
12817
  for (let s of n.getCollector()?.getData() ?? []) if (P_(s, r, e, t)) {
12815
- let e = T([i(s), a(s)], null, 1.2);
12818
+ let e = w([i(s), a(s)], null, 1.2);
12816
12819
  return await o.zoomTo(e), !0;
12817
12820
  }
12818
12821
  }
@@ -12942,7 +12945,7 @@ function P_(e, t, n, r) {
12942
12945
  }
12943
12946
  function F_(e, t, n) {
12944
12947
  let r = /* @__PURE__ */ new Set();
12945
- for (let i of e) for (let e of Ut(n, t, i)) if (e != null && r.add(String(e)), r.size >= n) return [...r];
12948
+ for (let i of e) for (let e of nt(n, t, i)) if (e != null && r.add(String(e)), r.size >= n) return [...r];
12946
12949
  return [...r];
12947
12950
  }
12948
12951
  function I_(e) {
@@ -12950,7 +12953,7 @@ function I_(e) {
12950
12953
  return e.visit((e) => {
12951
12954
  for (let n of ["x", "y"]) {
12952
12955
  let r = e.resolutions.scale[n];
12953
- if (r && r.type == "locus" && r.isZoomable()) return t = r, Qn;
12956
+ if (r && r.type == "locus" && r.isZoomable()) return t = r, er;
12954
12957
  }
12955
12958
  }), t;
12956
12959
  }
@@ -12964,7 +12967,7 @@ var L_ = {
12964
12967
  contributors: [],
12965
12968
  license: "MIT",
12966
12969
  homepage: "https://genomespy.app/",
12967
- version: "0.84.0",
12970
+ version: "0.85.0",
12968
12971
  main: "dist/index.js",
12969
12972
  module: "dist/index.es.js",
12970
12973
  type: "module",
@@ -13023,7 +13026,7 @@ var L_ = {
13023
13026
  "@fortawesome/fontawesome-free": "^6.4.2",
13024
13027
  "@fortawesome/fontawesome-svg-core": "^6.4.2",
13025
13028
  "@fortawesome/free-solid-svg-icons": "^6.4.2",
13026
- "@genome-spy/core": "^0.84.0",
13029
+ "@genome-spy/core": "^0.85.0",
13027
13030
  "@reduxjs/toolkit": "^2.11.0",
13028
13031
  "d3-color": "^3.1.0",
13029
13032
  idb: "^7.1.1",
@@ -13036,10 +13039,10 @@ var L_ = {
13036
13039
  zarrita: "^0.6.1"
13037
13040
  },
13038
13041
  devDependencies: {
13039
- "@genome-spy/app-agent": "^0.84.0",
13040
- "@genome-spy/inspector": "^0.84.0"
13042
+ "@genome-spy/app-agent": "^0.85.0",
13043
+ "@genome-spy/inspector": "^0.85.0"
13041
13044
  },
13042
- gitHead: "0a14b9e0af9c907b3253cab4414726ded5c24ab7"
13045
+ gitHead: "9d32a48e4ee76086a65ee66231f871c0f57071d7"
13043
13046
  };
13044
13047
  //#endregion
13045
13048
  //#region src/utils/version.js
@@ -13052,22 +13055,22 @@ function R_(e) {
13052
13055
  }
13053
13056
  //#endregion
13054
13057
  //#region ../../node_modules/lit-html/directives/live.js
13055
- var z_ = ve(class extends d {
13058
+ var z_ = He(class extends Yt {
13056
13059
  constructor(e) {
13057
- if (super(e), e.type !== Kt.PROPERTY && e.type !== Kt.ATTRIBUTE && e.type !== Kt.BOOLEAN_ATTRIBUTE) throw Error("The `live` directive is not allowed on child or event bindings");
13060
+ if (super(e), e.type !== ve.PROPERTY && e.type !== ve.ATTRIBUTE && e.type !== ve.BOOLEAN_ATTRIBUTE) throw Error("The `live` directive is not allowed on child or event bindings");
13058
13061
  if (!Rc(e)) throw Error("`live` bindings can only contain a single expression");
13059
13062
  }
13060
13063
  render(e) {
13061
13064
  return e;
13062
13065
  }
13063
13066
  update(e, [t]) {
13064
- if (t === a || t === I) return t;
13067
+ if (t === ce || t === _) return t;
13065
13068
  let n = e.element, r = e.name;
13066
- if (e.type === Kt.PROPERTY) {
13067
- if (t === n[r]) return a;
13068
- } else if (e.type === Kt.BOOLEAN_ATTRIBUTE) {
13069
- if (!!t === n.hasAttribute(r)) return a;
13070
- } else if (e.type === Kt.ATTRIBUTE && n.getAttribute(r) === t + "") return a;
13069
+ if (e.type === ve.PROPERTY) {
13070
+ if (t === n[r]) return ce;
13071
+ } else if (e.type === ve.BOOLEAN_ATTRIBUTE) {
13072
+ if (!!t === n.hasAttribute(r)) return ce;
13073
+ } else if (e.type === ve.ATTRIBUTE && n.getAttribute(r) === t + "") return ce;
13071
13074
  return Uc(e), t;
13072
13075
  }
13073
13076
  });
@@ -13100,7 +13103,7 @@ function V_(e) {
13100
13103
  var H_ = (e) => ({
13101
13104
  item: e,
13102
13105
  children: []
13103
- }), U_ = class extends m {
13106
+ }), U_ = class extends F {
13104
13107
  static properties = {
13105
13108
  items: { type: Array },
13106
13109
  rowHeight: { type: Number },
@@ -13116,7 +13119,7 @@ var H_ = (e) => ({
13116
13119
  constructor() {
13117
13120
  super(), this.items = [], this.rowHeight = 32, this.buffer = 5, this.blockMultiplier = 3;
13118
13121
  }
13119
- static styles = F`
13122
+ static styles = I`
13120
13123
  :host {
13121
13124
  display: block;
13122
13125
  position: relative;
@@ -13318,7 +13321,7 @@ var H_ = (e) => ({
13318
13321
  customElements.define("gs-data-grid", U_);
13319
13322
  //#endregion
13320
13323
  //#region src/components/generic/uploadDropZone.js
13321
- var W_ = class extends m {
13324
+ var W_ = class extends F {
13322
13325
  static properties = {
13323
13326
  accept: { type: String },
13324
13327
  multiple: { type: Boolean },
@@ -13331,7 +13334,7 @@ var W_ = class extends m {
13331
13334
  static styles = [
13332
13335
  Oc,
13333
13336
  Dc,
13334
- F`
13337
+ I`
13335
13338
  :host {
13336
13339
  display: block;
13337
13340
  font-size: inherit;
@@ -13432,7 +13435,7 @@ var W_ = class extends m {
13432
13435
  customElements.define("gs-upload-drop-zone", W_);
13433
13436
  //#endregion
13434
13437
  //#region src/sampleView/metadata/metadataHierarchyConfigurator.js
13435
- var G_ = "sample", K_ = class extends m {
13438
+ var G_ = "sample", K_ = class extends F {
13436
13439
  static properties = {
13437
13440
  _pathRoot: { state: !0 },
13438
13441
  metadataRecords: {},
@@ -13442,7 +13445,7 @@ var G_ = "sample", K_ = class extends m {
13442
13445
  constructor() {
13443
13446
  super(), this.metadataRecords = [], this.addUnderGroup = "", this.separator = "", this._pathRoot = null, this._separatorManuallySet = !1, this._columns = [], this._scales = /* @__PURE__ */ new Map(), this._metadataNodeTypes = /* @__PURE__ */ new Map();
13444
13447
  }
13445
- static styles = [Oc, F`
13448
+ static styles = [Oc, I`
13446
13449
  :host {
13447
13450
  display: block;
13448
13451
  }
@@ -13512,7 +13515,7 @@ var G_ = "sample", K_ = class extends m {
13512
13515
  }
13513
13516
  #t() {
13514
13517
  this._rawTypes = /* @__PURE__ */ new Map();
13515
- for (let e of it(this._pathRoot)) if (e.path) {
13518
+ for (let e of rt(this._pathRoot)) if (e.path) {
13516
13519
  let t = yt(this.metadataRecords.map((t) => t[e.attribute]).filter((e) => e != null));
13517
13520
  this._rawTypes.set(e.attribute, t);
13518
13521
  }
@@ -13541,13 +13544,13 @@ var G_ = "sample", K_ = class extends m {
13541
13544
  }
13542
13545
  async #a(e) {
13543
13546
  let t = ((e) => {
13544
- for (let t of [e, ...Re(e)]) {
13547
+ for (let t of [e, ...Le(e)]) {
13545
13548
  let e = this._metadataNodeTypes.get(t.path);
13546
13549
  if (e && e !== "unset" && e !== "inherit") return e;
13547
13550
  }
13548
13551
  return "nominal";
13549
13552
  })(e), n = [];
13550
- for (let t of it(e)) if (t.attribute) for (let e of this.metadataRecords) {
13553
+ for (let t of rt(e)) if (t.attribute) for (let e of this.metadataRecords) {
13551
13554
  let r = e[t.attribute];
13552
13555
  r != null && n.push(r);
13553
13556
  }
@@ -13564,7 +13567,7 @@ var G_ = "sample", K_ = class extends m {
13564
13567
  let t = e.target, n = t.dataset.path, r = t.value;
13565
13568
  this._metadataNodeTypes.set(n, r), this.requestUpdate(), this.#c();
13566
13569
  }, t = this.#s();
13567
- return Pl(it(this._pathRoot), (n) => {
13570
+ return Pl(rt(this._pathRoot), (n) => {
13568
13571
  let r = (e) => {
13569
13572
  let t = 0, n = e.parent;
13570
13573
  for (; n;) t++, n = n.parent;
@@ -13575,7 +13578,7 @@ var G_ = "sample", K_ = class extends m {
13575
13578
  return L`<tr>
13576
13579
  <td>
13577
13580
  <span
13578
- style=${Yt(m)}
13581
+ style=${Qt(m)}
13579
13582
  class=${br(h)}
13580
13583
  >${p}</span
13581
13584
  >
@@ -13737,7 +13740,7 @@ var Y_ = class extends G {
13737
13740
  }
13738
13741
  ]);
13739
13742
  }
13740
- static styles = [...super.styles, F`
13743
+ static styles = [...super.styles, I`
13741
13744
  dialog {
13742
13745
  width: 600px;
13743
13746
  }
@@ -13754,7 +13757,7 @@ var Y_ = class extends G {
13754
13757
  title: "Warning",
13755
13758
  type: "warning"
13756
13759
  }), !1;
13757
- let t = Xe(this._parsedItems, this.existingSampleIds, e);
13760
+ let t = Ye(this._parsedItems, this.existingSampleIds, e);
13758
13761
  return this.finish({
13759
13762
  ok: !0,
13760
13763
  data: t
@@ -13762,10 +13765,10 @@ var Y_ = class extends G {
13762
13765
  }
13763
13766
  async #i(e) {
13764
13767
  let t = await q_(e), n = J_(t, e.name);
13765
- this._parsedItems = N(t, {
13768
+ this._parsedItems = te(t, {
13766
13769
  type: n,
13767
13770
  parse: "auto"
13768
- }), this._fileName = e.name, this.#e = Ge(this.existingSampleIds, this._parsedItems), this.#n.advance(1);
13771
+ }), this._fileName = e.name, this.#e = We(this.existingSampleIds, this._parsedItems), this.#n.advance(1);
13769
13772
  }
13770
13773
  async #a(e) {
13771
13774
  let t = e.detail.files[0];
@@ -13926,7 +13929,7 @@ function nv(e) {
13926
13929
  function rv(e) {
13927
13930
  return nv(e.split(/\r?\n/g));
13928
13931
  }
13929
- var iv = class extends m {
13932
+ var iv = class extends F {
13930
13933
  static properties = {
13931
13934
  selectedValues: { attribute: !1 },
13932
13935
  search: { attribute: !1 },
@@ -13952,7 +13955,7 @@ var iv = class extends m {
13952
13955
  _suggestions: { state: !0 },
13953
13956
  _inputHasFocus: { state: !0 }
13954
13957
  };
13955
- static styles = [Oc, F`
13958
+ static styles = [Oc, I`
13956
13959
  :host {
13957
13960
  display: block;
13958
13961
  }
@@ -14285,7 +14288,7 @@ var iv = class extends m {
14285
14288
  t && (this.#y(t.id), this._query = "", this.#i(""), this._activeIndex = 0, this.#s());
14286
14289
  }
14287
14290
  render() {
14288
- let e = this._activeIndex >= 0 ? this.#u(String(this._activeIndex)) : I;
14291
+ let e = this._activeIndex >= 0 ? this.#u(String(this._activeIndex)) : _;
14289
14292
  return L`
14290
14293
  <div
14291
14294
  class="control ${this.disabled ? "disabled" : ""}"
@@ -14335,8 +14338,8 @@ var iv = class extends m {
14335
14338
  e.newState === "closed" && this._open && (this._open = !1, this._activeIndex = -1);
14336
14339
  }}
14337
14340
  >
14338
- ${this._loading ? L`<div class="status">Loading...</div>` : I}
14339
- ${!this._loading && this._suggestions.length === 0 ? L`<div class="status">No matches</div>` : I}
14341
+ ${this._loading ? L`<div class="status">Loading...</div>` : _}
14342
+ ${!this._loading && this._suggestions.length === 0 ? L`<div class="status">No matches</div>` : _}
14340
14343
  ${this._suggestions.map((e, t) => L`<div
14341
14344
  id=${this.#u(String(t))}
14342
14345
  class="option ${t === this._activeIndex ? "active" : ""}"
@@ -14473,7 +14476,7 @@ var pv = class extends G {
14473
14476
  _alignmentIssue: { state: !0 },
14474
14477
  _showAlignmentDetails: { state: !0 }
14475
14478
  };
14476
- static styles = [...super.styles, F`
14479
+ static styles = [...super.styles, I`
14477
14480
  dialog {
14478
14481
  width: min(680px, calc(100vw - 2rem));
14479
14482
  }
@@ -14538,13 +14541,13 @@ var pv = class extends G {
14538
14541
  @click=${(e) => this.#d(e)}
14539
14542
  >
14540
14543
  Show the problems
14541
- </button>` : I}
14544
+ </button>` : _}
14542
14545
  </span>
14543
- </div>` : I}
14546
+ </div>` : _}
14544
14547
  ${this._error ? L`<div class="gs-alert danger">
14545
14548
  ${W(mi).node[0]}
14546
14549
  <span>${this._error}</span>
14547
- </div>` : I}
14550
+ </div>` : _}
14548
14551
 
14549
14552
  <div class="gs-form-group">
14550
14553
  <div class="label">${n}</div>
@@ -14577,7 +14580,7 @@ var pv = class extends G {
14577
14580
 
14578
14581
  ${e?.overLimit ? L`<div class="gs-alert danger">
14579
14582
  Import exceeds the hard limit of 100 columns.
14580
- </div>` : I}
14583
+ </div>` : _}
14581
14584
  </div>
14582
14585
  `;
14583
14586
  }
@@ -14678,7 +14681,7 @@ var pv = class extends G {
14678
14681
  };
14679
14682
  return;
14680
14683
  }
14681
- let n = Ge(t, e.map((e) => ({ sample: e })));
14684
+ let n = We(t, e.map((e) => ({ sample: e })));
14682
14685
  this._alignmentIssue = fv(n, (e) => this.#v(e));
14683
14686
  }
14684
14687
  #d(e) {
@@ -14780,12 +14783,12 @@ var hv = class {
14780
14783
  };
14781
14784
  }
14782
14785
  async #e(e) {
14783
- return (await jt(e).getSources()).filter((e) => !(e.backend.backend === "data" && ze(e) === "*")).map((e, t) => ({
14786
+ return (await jt(e).getSources()).filter((e) => !(e.backend.backend === "data" && Re(e) === "*")).map((e, t) => ({
14784
14787
  source: e,
14785
14788
  label: e.name ?? e.id ?? "Source " + String(t + 1)
14786
14789
  }));
14787
14790
  }
14788
- }, gv = class extends m {
14791
+ }, gv = class extends F {
14789
14792
  #e;
14790
14793
  #t;
14791
14794
  #n = null;
@@ -14836,7 +14839,7 @@ var hv = class {
14836
14839
  let e = this.#e.genomeSpy.viewRoot;
14837
14840
  if (!e) return;
14838
14841
  let t = [];
14839
- In(e, (e) => {
14842
+ Un(e, (e) => {
14840
14843
  t.push(e);
14841
14844
  });
14842
14845
  let n = t.filter(yv).map((t) => [...t.getDataAncestors()].filter((t) => t === e || yv(t)).reverse());
@@ -14847,8 +14850,8 @@ var hv = class {
14847
14850
  this.#t = V_(n);
14848
14851
  }
14849
14852
  #d() {
14850
- let e = this.#e.genomeSpy.viewRoot, t = this.getVisibilities(), n = e ? Ie(e, t) : t, r = e ? $e(e) : /* @__PURE__ */ new Set(), i = e ? Je(e) : /* @__PURE__ */ new Map(), a = [], o = (t, s = -1) => {
14851
- let c = t.item, l = vt(n, c), u = l === void 0 ? c.isVisibleInSpec() : l, d = Et(c), f = d && i.has(d) ? i.get(d) : void 0, p = !!(f && f.memberKeys.length > 1), m = [];
14853
+ let e = this.#e.genomeSpy.viewRoot, t = this.getVisibilities(), n = e ? Fe(e, t) : t, r = e ? Qe(e) : /* @__PURE__ */ new Set(), i = e ? qe(e) : /* @__PURE__ */ new Map(), a = [], o = (t, s = -1) => {
14854
+ let c = t.item, l = _t(n, c), u = l === void 0 ? c.isVisibleInSpec() : l, d = Et(c), f = d && i.has(d) ? i.get(d) : void 0, p = !!(f && f.memberKeys.length > 1), m = [];
14852
14855
  c !== e && _v(c) && m.push(...vv(c, !0)), c instanceof Xp && (m.length && m.push({ type: "divider" }), m.push({
14853
14856
  label: "Sample metadata",
14854
14857
  type: "header"
@@ -14874,7 +14877,7 @@ var hv = class {
14874
14877
  <input
14875
14878
  style=${`margin-left: ${s * 1.5}em;`}
14876
14879
  type=${p ? "radio" : "checkbox"}
14877
- ?disabled=${!d || !r.has(d) || !He(c)}
14880
+ ?disabled=${!d || !r.has(d) || !Ve(c)}
14878
14881
  .checked=${z_(u)}
14879
14882
  @change=${(e) => p ? this.#s(e, c, f.memberKeys) : this.#o(e, c)}
14880
14883
  />${n}
@@ -14935,29 +14938,29 @@ var hv = class {
14935
14938
  if (e) Z_(e);
14936
14939
  else throw Error("Cannot upload metadata without SampleView");
14937
14940
  }
14938
- }, _v = (e) => [...e.paramRuntime.paramConfigs.values()].some((e) => an(e) && e.bind), vv = (e, t) => {
14941
+ }, _v = (e) => [...e.paramRuntime.paramConfigs.values()].some((e) => xn(e) && e.bind), vv = (e, t) => {
14939
14942
  let n = [];
14940
14943
  return t && n.push({
14941
14944
  label: "Parameters",
14942
14945
  type: "header"
14943
14946
  }, { type: "divider" }), n.push({ customContent: L`<div class="gs-input-binding">
14944
- ${Ue(e.paramRuntime)}
14947
+ ${Ut(e.paramRuntime)}
14945
14948
  </div>` }), n;
14946
- }, yv = (e) => He(e) && !!e.explicitName || _v(e) || e instanceof Xp;
14949
+ }, yv = (e) => Ve(e) && !!e.explicitName || _v(e) || e instanceof Xp;
14947
14950
  customElements.define("genome-spy-view-visibility", gv);
14948
14951
  //#endregion
14949
14952
  //#region src/utils/ui/dropdown.js
14950
14953
  var bv = /* @__PURE__ */ new Set();
14951
14954
  function xv(e) {
14952
14955
  let t = e.currentTarget.parentNode, n = !t.classList.contains("show");
14953
- for (let e of bv) e.classList.remove("show"), document.body.classList.remove(_), document.body.classList.remove(xe);
14954
- return bv.clear(), e.stopPropagation(), n ? (bv.add(t), t.classList.add("show"), document.body.classList.add(_), document.body.classList.add(xe), window.addEventListener("click", (e) => {
14955
- t.classList.contains("show") && (t.classList.remove("show"), document.body.classList.remove(_), document.body.classList.remove(xe), e.preventDefault());
14956
+ for (let e of bv) e.classList.remove("show"), document.body.classList.remove(Kt), document.body.classList.remove(d);
14957
+ return bv.clear(), e.stopPropagation(), n ? (bv.add(t), t.classList.add("show"), document.body.classList.add(Kt), document.body.classList.add(d), window.addEventListener("click", (e) => {
14958
+ t.classList.contains("show") && (t.classList.remove("show"), document.body.classList.remove(Kt), document.body.classList.remove(d), e.preventDefault());
14956
14959
  }, { once: !0 })) : window.dispatchEvent(new MouseEvent("click")), n;
14957
14960
  }
14958
14961
  //#endregion
14959
14962
  //#region src/components/toolbar/provenanceToolbar.js
14960
- var Sv = class extends m {
14963
+ var Sv = class extends F {
14961
14964
  constructor() {
14962
14965
  super(), this.provenance = void 0, this._subscriptions = new j_(this);
14963
14966
  }
@@ -14997,9 +15000,9 @@ var Sv = class extends m {
14997
15000
  </button>
14998
15001
  <ol class="gs-dropdown-menu provenance-menu">
14999
15002
  ${this.provenance.getFullActionHistory().map((e, t) => {
15000
- if (!e) return I;
15003
+ if (!e) return _;
15001
15004
  let n = hm(e), r = n ? void 0 : this.provenance.getActionInfo(e);
15002
- if (!n && !r) return I;
15005
+ if (!n && !r) return _;
15003
15006
  let i = n ? L`${W(ui).node[0]} Initial state` : L` ${W(r.icon ?? Lr).node[0]}
15004
15007
  ${r.provenanceTitle ?? r.title}`;
15005
15008
  return L`
@@ -15056,31 +15059,31 @@ var Cv = class {
15056
15059
  resume() {
15057
15060
  this.Z?.(), this.Y = this.Z = void 0;
15058
15061
  }
15059
- }, Tv = (e) => !Lc(e) && typeof e.then == "function", Ev = 1073741823, Dv = ve(class extends w_ {
15062
+ }, Tv = (e) => !Lc(e) && typeof e.then == "function", Ev = 1073741823, Dv = He(class extends w_ {
15060
15063
  constructor() {
15061
15064
  super(...arguments), this._$Cwt = Ev, this._$Cbt = [], this._$CK = new Cv(this), this._$CX = new wv();
15062
15065
  }
15063
15066
  render(...e) {
15064
- return e.find((e) => !Tv(e)) ?? a;
15067
+ return e.find((e) => !Tv(e)) ?? ce;
15065
15068
  }
15066
15069
  update(e, t) {
15067
15070
  let n = this._$Cbt, r = n.length;
15068
15071
  this._$Cbt = t;
15069
- let i = this._$CK, o = this._$CX;
15072
+ let i = this._$CK, a = this._$CX;
15070
15073
  this.isConnected || this.disconnected();
15071
15074
  for (let e = 0; e < t.length && !(e > this._$Cwt); e++) {
15072
- let a = t[e];
15073
- if (!Tv(a)) return this._$Cwt = e, a;
15074
- e < r && a === n[e] || (this._$Cwt = Ev, r = 0, Promise.resolve(a).then(async (e) => {
15075
- for (; o.get();) await o.get();
15075
+ let o = t[e];
15076
+ if (!Tv(o)) return this._$Cwt = e, o;
15077
+ e < r && o === n[e] || (this._$Cwt = Ev, r = 0, Promise.resolve(o).then(async (e) => {
15078
+ for (; a.get();) await a.get();
15076
15079
  let t = i.deref();
15077
15080
  if (t !== void 0) {
15078
- let n = t._$Cbt.indexOf(a);
15081
+ let n = t._$Cbt.indexOf(o);
15079
15082
  n > -1 && n < t._$Cwt && (t._$Cwt = n, t.setValue(e));
15080
15083
  }
15081
15084
  }));
15082
15085
  }
15083
- return a;
15086
+ return ce;
15084
15087
  }
15085
15088
  disconnected() {
15086
15089
  this._$CK.disconnect(), this._$CX.pause();
@@ -17345,15 +17348,15 @@ function ry(e) {
17345
17348
  codeFencedFenceInfo: h,
17346
17349
  codeFencedFenceMeta: h,
17347
17350
  codeIndented: ne,
17348
- codeText: Pe,
17349
- content: ve,
17350
- definition: fe,
17351
- definitionDestinationString: me,
17351
+ codeText: Fe,
17352
+ content: be,
17353
+ definition: me,
17354
+ definitionDestinationString: ge,
17352
17355
  definitionLabelString: h,
17353
17356
  definitionTitleString: h,
17354
- emphasis: Me,
17355
- htmlFlow: ke,
17356
- htmlText: je,
17357
+ emphasis: Ne,
17358
+ htmlFlow: Ae,
17359
+ htmlText: Me,
17357
17360
  image: ie,
17358
17361
  label: h,
17359
17362
  link: ae,
@@ -17363,60 +17366,60 @@ function ry(e) {
17363
17366
  listUnordered: w,
17364
17367
  paragraph: j,
17365
17368
  reference: h,
17366
- resource: I,
17367
- resourceDestinationString: ce,
17369
+ resource: le,
17370
+ resourceDestinationString: ue,
17368
17371
  resourceTitleString: h,
17369
- setextHeading: be,
17370
- strong: Ne
17372
+ setextHeading: xe,
17373
+ strong: Pe
17371
17374
  },
17372
17375
  exit: {
17373
- atxHeading: Se,
17374
- atxHeadingSequence: ye,
17375
- autolinkEmail: He,
17376
- autolinkProtocol: Ve,
17376
+ atxHeading: Ce,
17377
+ atxHeadingSequence: F,
17378
+ autolinkEmail: Ue,
17379
+ autolinkProtocol: He,
17377
17380
  blockQuote: ee,
17378
- characterEscapeValue: Te,
17379
- characterReferenceMarkerHexadecimal: ze,
17380
- characterReferenceMarkerNumeric: ze,
17381
- characterReferenceValue: Be,
17381
+ characterEscapeValue: Ee,
17382
+ characterReferenceMarkerHexadecimal: Be,
17383
+ characterReferenceMarkerNumeric: Be,
17384
+ characterReferenceValue: Ve,
17382
17385
  codeFenced: re,
17383
17386
  codeFencedFence: P,
17384
17387
  codeFencedFenceInfo: N,
17385
17388
  codeFencedFenceMeta: S,
17386
- codeFlowValue: De,
17389
+ codeFlowValue: Oe,
17387
17390
  codeIndented: re,
17388
- codeText: Fe,
17389
- codeTextData: Te,
17390
- data: Te,
17391
- definition: _e,
17392
- definitionDestinationString: he,
17393
- definitionLabelString: pe,
17394
- definitionTitleString: ge,
17395
- emphasis: Ie,
17396
- hardBreakEscape: Oe,
17397
- hardBreakTrailing: Oe,
17398
- htmlFlow: Ae,
17399
- htmlFlowData: Te,
17400
- htmlText: Ae,
17401
- htmlTextData: Te,
17402
- image: de,
17403
- label: oe,
17404
- labelText: F,
17405
- lineEnding: Ee,
17406
- link: de,
17391
+ codeText: Ie,
17392
+ codeTextData: Ee,
17393
+ data: Ee,
17394
+ definition: ye,
17395
+ definitionDestinationString: _e,
17396
+ definitionLabelString: he,
17397
+ definitionTitleString: ve,
17398
+ emphasis: Le,
17399
+ hardBreakEscape: ke,
17400
+ hardBreakTrailing: ke,
17401
+ htmlFlow: je,
17402
+ htmlFlowData: Ee,
17403
+ htmlText: je,
17404
+ htmlTextData: Ee,
17405
+ image: pe,
17406
+ label: se,
17407
+ labelText: oe,
17408
+ lineEnding: De,
17409
+ link: pe,
17407
17410
  listOrdered: D,
17408
17411
  listUnordered: O,
17409
17412
  paragraph: M,
17410
17413
  reference: S,
17411
- referenceString: se,
17414
+ referenceString: ce,
17412
17415
  resource: S,
17413
- resourceDestinationString: le,
17414
- resourceTitleString: ue,
17415
- setextHeading: we,
17416
- setextHeadingLineSequence: Ce,
17417
- setextHeadingText: xe,
17418
- strong: Le,
17419
- thematicBreak: Re
17416
+ resourceDestinationString: de,
17417
+ resourceTitleString: fe,
17418
+ setextHeading: Te,
17419
+ setextHeadingLineSequence: we,
17420
+ setextHeadingText: Se,
17421
+ strong: Re,
17422
+ thematicBreak: ze
17420
17423
  }
17421
17424
  }, ...t.htmlExtensions || []]), c = {
17422
17425
  definitions: r,
@@ -17555,28 +17558,28 @@ function ry(e) {
17555
17558
  function ae() {
17556
17559
  a.push({});
17557
17560
  }
17558
- function F(e) {
17561
+ function oe(e) {
17559
17562
  a[a.length - 1].labelId = this.sliceSerialize(e);
17560
17563
  }
17561
- function oe() {
17564
+ function se() {
17562
17565
  a[a.length - 1].label = g();
17563
17566
  }
17564
- function se(e) {
17567
+ function ce(e) {
17565
17568
  a[a.length - 1].referenceId = this.sliceSerialize(e);
17566
17569
  }
17567
- function I() {
17570
+ function le() {
17568
17571
  h(), a[a.length - 1].destination = "";
17569
17572
  }
17570
- function ce() {
17573
+ function ue() {
17571
17574
  h(), p("ignoreEncode", !0);
17572
17575
  }
17573
- function le() {
17576
+ function de() {
17574
17577
  a[a.length - 1].destination = g(), p("ignoreEncode");
17575
17578
  }
17576
- function ue() {
17579
+ function fe() {
17577
17580
  a[a.length - 1].title = g();
17578
17581
  }
17579
- function de() {
17582
+ function pe() {
17580
17583
  let e = a.length - 1, i = a[e], o = i.referenceId || i.labelId, s = i.destination === void 0 ? r[Vv(o)] : i;
17581
17584
  for (n = !0; e--;) if (a[e].image) {
17582
17585
  n = void 0;
@@ -17584,51 +17587,51 @@ function ry(e) {
17584
17587
  }
17585
17588
  i.image ? (_("<img src=\"" + Qv(s.destination, t.allowDangerousProtocol ? void 0 : ny) + "\" alt=\""), v(i.label), _("\"")) : _("<a href=\"" + Qv(s.destination, t.allowDangerousProtocol ? void 0 : ty) + "\""), _(s.title ? " title=\"" + s.title + "\"" : ""), i.image ? _(" />") : (_(">"), v(i.label), _("</a>")), a.pop();
17586
17589
  }
17587
- function fe() {
17590
+ function me() {
17588
17591
  h(), a.push({});
17589
17592
  }
17590
- function pe(e) {
17593
+ function he(e) {
17591
17594
  g(), a[a.length - 1].labelId = this.sliceSerialize(e);
17592
17595
  }
17593
- function me() {
17596
+ function ge() {
17594
17597
  h(), p("ignoreEncode", !0);
17595
17598
  }
17596
- function he() {
17599
+ function _e() {
17597
17600
  a[a.length - 1].destination = g(), p("ignoreEncode");
17598
17601
  }
17599
- function ge() {
17602
+ function ve() {
17600
17603
  a[a.length - 1].title = g();
17601
17604
  }
17602
- function _e() {
17605
+ function ye() {
17603
17606
  let e = a[a.length - 1], t = Vv(e.labelId);
17604
17607
  g(), ey.call(r, t) || (r[t] = a[a.length - 1]), a.pop();
17605
17608
  }
17606
- function ve() {
17609
+ function be() {
17607
17610
  p("slurpAllLineEndings", !0);
17608
17611
  }
17609
- function ye(e) {
17612
+ function F(e) {
17610
17613
  m("headingRank") || (p("headingRank", this.sliceSerialize(e).length), b(), _("<h" + m("headingRank") + ">"));
17611
17614
  }
17612
- function be() {
17615
+ function xe() {
17613
17616
  h(), p("slurpAllLineEndings");
17614
17617
  }
17615
- function xe() {
17618
+ function Se() {
17616
17619
  p("slurpAllLineEndings", !0);
17617
17620
  }
17618
- function Se() {
17621
+ function Ce() {
17619
17622
  _("</h" + m("headingRank") + ">"), p("headingRank");
17620
17623
  }
17621
- function Ce(e) {
17624
+ function we(e) {
17622
17625
  p("headingRank", this.sliceSerialize(e).charCodeAt(0) === 61 ? 1 : 2);
17623
17626
  }
17624
- function we() {
17627
+ function Te() {
17625
17628
  let e = g();
17626
17629
  b(), _("<h" + m("headingRank") + ">"), v(e), _("</h" + m("headingRank") + ">"), p("slurpAllLineEndings"), p("headingRank");
17627
17630
  }
17628
- function Te(e) {
17631
+ function Ee(e) {
17629
17632
  v(x(this.sliceSerialize(e)));
17630
17633
  }
17631
- function Ee(e) {
17634
+ function De(e) {
17632
17635
  if (!m("slurpAllLineEndings")) {
17633
17636
  if (m("slurpOneLineEnding")) {
17634
17637
  p("slurpOneLineEnding");
@@ -17641,54 +17644,54 @@ function ry(e) {
17641
17644
  v(x(this.sliceSerialize(e)));
17642
17645
  }
17643
17646
  }
17644
- function De(e) {
17647
+ function Oe(e) {
17645
17648
  v(x(this.sliceSerialize(e))), p("flowCodeSeenData", !0);
17646
17649
  }
17647
- function Oe() {
17648
- _("<br />");
17649
- }
17650
17650
  function ke() {
17651
- b(), je();
17651
+ _("<br />");
17652
17652
  }
17653
17653
  function Ae() {
17654
- p("ignoreEncode");
17654
+ b(), Me();
17655
17655
  }
17656
17656
  function je() {
17657
- t.allowDangerousHtml && p("ignoreEncode", !0);
17657
+ p("ignoreEncode");
17658
17658
  }
17659
17659
  function Me() {
17660
- _("<em>");
17660
+ t.allowDangerousHtml && p("ignoreEncode", !0);
17661
17661
  }
17662
17662
  function Ne() {
17663
- _("<strong>");
17663
+ _("<em>");
17664
17664
  }
17665
17665
  function Pe() {
17666
- p("inCodeText", !0), _("<code>");
17666
+ _("<strong>");
17667
17667
  }
17668
17668
  function Fe() {
17669
- p("inCodeText"), _("</code>");
17669
+ p("inCodeText", !0), _("<code>");
17670
17670
  }
17671
17671
  function Ie() {
17672
- _("</em>");
17672
+ p("inCodeText"), _("</code>");
17673
17673
  }
17674
17674
  function Le() {
17675
- _("</strong>");
17675
+ _("</em>");
17676
17676
  }
17677
17677
  function Re() {
17678
+ _("</strong>");
17679
+ }
17680
+ function ze() {
17678
17681
  b(), _("<hr />");
17679
17682
  }
17680
- function ze(e) {
17683
+ function Be(e) {
17681
17684
  p("characterReferenceType", e.type);
17682
17685
  }
17683
- function Be(e) {
17686
+ function Ve(e) {
17684
17687
  let t = this.sliceSerialize(e);
17685
17688
  v(x(m("characterReferenceType") ? Rv(t, m("characterReferenceType") === "characterReferenceMarkerNumeric" ? 10 : 16) : Av(t))), p("characterReferenceType");
17686
17689
  }
17687
- function Ve(e) {
17690
+ function He(e) {
17688
17691
  let n = this.sliceSerialize(e);
17689
17692
  _("<a href=\"" + Qv(n, t.allowDangerousProtocol ? void 0 : ty) + "\">"), v(x(n)), _("</a>");
17690
17693
  }
17691
- function He(e) {
17694
+ function Ue(e) {
17692
17695
  let t = this.sliceSerialize(e);
17693
17696
  _("<a href=\"" + Qv("mailto:" + t) + "\">"), v(x(t)), _("</a>");
17694
17697
  }
@@ -19586,8 +19589,8 @@ function vx(e, t, n) {
19586
19589
  function yx(e, t = {}) {
19587
19590
  let n = vx(e), r = new DOMParser().parseFromString(`<!DOCTYPE html><html><body><div>${n}</div></body></html>`, "text/html");
19588
19591
  r.normalize(), bx(r.body);
19589
- for (let e of r.querySelectorAll("a[href]")) e.setAttribute("target", "blank"), e.setAttribute("rel", "noopener noreferrer"), e.setAttribute("href", $n(e.getAttribute("href"), t.baseUrl));
19590
- for (let e of r.querySelectorAll("img[src]")) e.setAttribute("src", $n(e.getAttribute("src"), t.baseUrl));
19592
+ for (let e of r.querySelectorAll("a[href]")) e.setAttribute("target", "blank"), e.setAttribute("rel", "noopener noreferrer"), e.setAttribute("href", tr(e.getAttribute("href"), t.baseUrl));
19593
+ for (let e of r.querySelectorAll("img[src]")) e.setAttribute("src", tr(e.getAttribute("src"), t.baseUrl));
19591
19594
  let i = r.body.removeChild(r.querySelector("body > div"));
19592
19595
  return i.className = "markdown", i;
19593
19596
  }
@@ -19603,7 +19606,7 @@ function bx(e) {
19603
19606
  }
19604
19607
  //#endregion
19605
19608
  //#region src/components/dialogs/bookmarkInfoBox.js
19606
- var xx = F`
19609
+ var xx = I`
19607
19610
  dialog {
19608
19611
  position: fixed;
19609
19612
  bottom: var(--gs-basic-spacing);
@@ -19909,7 +19912,7 @@ async function Ox(e, t) {
19909
19912
  if (t.provenance.isUndoable() && (t.provenance.activateInitialState(), await t.getSampleView?.()?.awaitMetadataReady()), !t.intentPipeline) throw Error("Intent pipeline is required to restore bookmarks.");
19910
19913
  await t.intentPipeline.submit(e.actions, { submissionKind: "bookmark" }), await t.paramProvenanceBridge?.whenApplied();
19911
19914
  }
19912
- let n = nt(e.viewSettings);
19915
+ let n = tt(e.viewSettings);
19913
19916
  t.store.dispatch(Jt.actions.setViewSettings(n));
19914
19917
  let r = [];
19915
19918
  for (let [n, i] of Object.entries(e.scaleDomains ?? {})) {
@@ -19984,7 +19987,7 @@ function Nx(e, t) {
19984
19987
  }
19985
19988
  //#endregion
19986
19989
  //#region src/components/toolbar/bookmarkButton.js
19987
- var Px = class extends m {
19990
+ var Px = class extends F {
19988
19991
  constructor() {
19989
19992
  super(), this.app = void 0;
19990
19993
  }
@@ -20050,10 +20053,10 @@ var Px = class extends m {
20050
20053
  type: "header"
20051
20054
  },
20052
20055
  ...n
20053
- ].map((e) => Gd(e)) : I;
20056
+ ].map((e) => Gd(e)) : _;
20054
20057
  }
20055
20058
  #o() {
20056
- let e = (e, t) => e ? Dv(this.#a(e, t), L`Loading...`) : I;
20059
+ let e = (e, t) => e ? Dv(this.#a(e, t), L`Loading...`) : _;
20057
20060
  return [e(this.app.globalBookmarkDatabase, "Bookmarks on the server"), e(this.app.localBookmarkDatabase, "Bookmarks in the web browser")];
20058
20061
  }
20059
20062
  render() {
@@ -20061,7 +20064,7 @@ var Px = class extends m {
20061
20064
  <a @click=${() => this.#n(e)}
20062
20065
  >Add bookmark...</a
20063
20066
  >
20064
- </li>` : I;
20067
+ </li>` : _;
20065
20068
  return L`
20066
20069
  <div class="btn-group">
20067
20070
  ${e || this.app.globalBookmarkDatabase ? L`
@@ -20079,7 +20082,7 @@ var Px = class extends m {
20079
20082
  ${t} ${this.#o()}
20080
20083
  </ul>
20081
20084
  </div>
20082
- ` : I}
20085
+ ` : _}
20083
20086
  <button
20084
20087
  class="tool-btn"
20085
20088
  title="Share"
@@ -20119,7 +20122,7 @@ var Fx = class extends G {
20119
20122
  </p>
20120
20123
  <p>
20121
20124
  Version: ${R_(L_.version)}
20122
- ${"commitHash" in L_ ? `(${L_.commitHash})` : I}
20125
+ ${"commitHash" in L_ ? `(${L_.commitHash})` : _}
20123
20126
  </p>
20124
20127
 
20125
20128
  <p style="font-size: 85%">
@@ -20171,7 +20174,7 @@ var Ix = class extends G {
20171
20174
  analysisError: { type: String },
20172
20175
  layers: { attribute: !1 }
20173
20176
  };
20174
- static styles = [...super.styles, F`
20177
+ static styles = [...super.styles, I`
20175
20178
  dialog {
20176
20179
  min-width: 500px;
20177
20180
  }
@@ -20440,7 +20443,7 @@ function Lx(e) {
20440
20443
  }
20441
20444
  //#endregion
20442
20445
  //#region src/components/toolbar/toolbar.js
20443
- var Rx = class extends m {
20446
+ var Rx = class extends F {
20444
20447
  constructor() {
20445
20448
  super(), this.app = void 0;
20446
20449
  }
@@ -20470,7 +20473,7 @@ var Rx = class extends m {
20470
20473
  `), t.push(L`<genome-spy-view-visibility></genome-spy-view-visibility>`), this.app.isEmbedded() || t.push(L`
20471
20474
  <genome-spy-bookmark-button></genome-spy-bookmark-button>
20472
20475
  `);
20473
- let n = this.app.rootSpec.description ? Gn(this.app.rootSpec.description) : [];
20476
+ let n = this.app.rootSpec.description ? On(this.app.rootSpec.description) : [];
20474
20477
  return n.length > 1 && t.push(L`
20475
20478
  <button
20476
20479
  class="tool-btn"
@@ -20491,7 +20494,7 @@ var Rx = class extends m {
20491
20494
  >${R_(L_.version)}</span
20492
20495
  >
20493
20496
 
20494
- ${this.app.ui.toolbarButtons.size ? Array.from(this.app.ui.toolbarButtons).map((e) => this.#n(e)) : I}
20497
+ ${this.app.ui.toolbarButtons.size ? Array.from(this.app.ui.toolbarButtons).map((e) => this.#n(e)) : _}
20495
20498
 
20496
20499
  <div class="dropdown bookmark-dropdown">
20497
20500
  <button
@@ -20564,7 +20567,7 @@ var Rx = class extends m {
20564
20567
  <genome-spy-search-field
20565
20568
  .app=${this.app}
20566
20569
  ></genome-spy-search-field>
20567
- ` : I}
20570
+ ` : _}
20568
20571
  ${this._getToolButtons()}
20569
20572
  </nav>
20570
20573
  `;
@@ -20659,7 +20662,7 @@ var Bx = class {
20659
20662
  //#endregion
20660
20663
  //#region ../core/src/utils/kWayMerge.js
20661
20664
  function Vx(e, t, n = (e) => +e) {
20662
- let r = e.length, i = new Dn(), a = Array(r).fill(0);
20665
+ let r = e.length, i = new Rn(), a = Array(r).fill(0);
20663
20666
  for (let [t, r] of e.entries()) r.length && i.push(t, n(r[0]));
20664
20667
  let o;
20665
20668
  for (; (o = i.pop()) !== void 0;) {
@@ -20672,7 +20675,7 @@ function Vx(e, t, n = (e) => +e) {
20672
20675
  }
20673
20676
  //#endregion
20674
20677
  //#region src/sampleView/mergeFacets.js
20675
- var Hx = "sampleCount", Ux = class extends Sn {
20678
+ var Hx = "sampleCount", Ux = class extends _n {
20676
20679
  #e = !0;
20677
20680
  #t;
20678
20681
  constructor(e, t) {
@@ -20683,7 +20686,7 @@ var Hx = "sampleCount", Ux = class extends Sn {
20683
20686
  this.#n && (this.#e && (this.#e = !1, this.reset(), this.complete()), n.requestTransition(() => {
20684
20687
  this.reset(), this.complete();
20685
20688
  }));
20686
- }, i = Vp(this.provenance.store, (e) => e.provenance.present[w], () => {
20689
+ }, i = Vp(this.provenance.store, (e) => e.provenance.present[C], () => {
20687
20690
  r();
20688
20691
  });
20689
20692
  this.view.registerDisposer(i);
@@ -20699,7 +20702,7 @@ var Hx = "sampleCount", Ux = class extends Sn {
20699
20702
  initialize() {
20700
20703
  this.#t = this.paramRuntime.allocateSetter(Hx, 0, !0);
20701
20704
  let e = this.view.getEncoding().x;
20702
- if (On(e)) this.xAccessor = zn(e.field);
20705
+ if (un(e)) this.xAccessor = mn(e.field);
20703
20706
  else throw Error("Sample summarization requires a FieldDef. This is not a FieldDef: " + JSON.stringify(e));
20704
20707
  }
20705
20708
  handle(e) {}
@@ -20707,17 +20710,17 @@ var Hx = "sampleCount", Ux = class extends Sn {
20707
20710
  return this.view.isConfiguredVisible();
20708
20711
  }
20709
20712
  #r() {
20710
- if (this.parent instanceof Ke) return this.parent;
20713
+ if (this.parent instanceof ze) return this.parent;
20711
20714
  throw Error("MergeFacetsTransform must be a direct child of a Collector");
20712
20715
  }
20713
20716
  complete() {
20714
- this.#n && this.#i(this.provenance.getPresentState()[w]), super.complete();
20717
+ this.#n && this.#i(this.provenance.getPresentState()[C]), super.complete();
20715
20718
  }
20716
20719
  #i(e) {
20717
- let t = [...j(e.rootGroup)].filter((e) => S(Mn(e)));
20720
+ let t = [...ee(e.rootGroup)].filter((e) => x(cn(e)));
20718
20721
  for (let [e, n] of t.entries()) {
20719
- let t = Mn(n);
20720
- if (S(t)) {
20722
+ let t = cn(n);
20723
+ if (x(t)) {
20721
20724
  this.beginBatch({
20722
20725
  type: "facet",
20723
20726
  facetId: [e]
@@ -20822,10 +20825,10 @@ var Gx = class extends h_ {
20822
20825
  //#endregion
20823
20826
  //#region src/state/setupStore.js
20824
20827
  function Xx() {
20825
- let e = We({
20826
- [A.name]: A.reducer,
20828
+ let e = Ue({
20829
+ [k.name]: k.reducer,
20827
20830
  [Ag.name]: Ag.reducer
20828
- }, { groupBy: jg }), t = Se({
20831
+ }, { groupBy: jg }), t = xe({
20829
20832
  lifecycle: qx.reducer,
20830
20833
  viewSettings: Jt.reducer,
20831
20834
  intentStatus: Yx.reducer,
@@ -21055,20 +21058,20 @@ async function rS(e, t) {
21055
21058
  adapter: t,
21056
21059
  resolveColumns: !1
21057
21060
  });
21058
- a.push(A.actions.addMetadataFromSource(s)), o = !1;
21061
+ a.push(k.actions.addMetadataFromSource(s)), o = !1;
21059
21062
  }
21060
21063
  }
21061
- a.length !== 0 && (await t.submit(a), gm(e.provenance.store, A.name));
21064
+ a.length !== 0 && (await t.submit(a), gm(e.provenance.store, k.name));
21062
21065
  }
21063
21066
  //#endregion
21064
21067
  //#region src/sampleView/metadata/metadataSourceRuntime.js
21065
21068
  async function iS(e, t) {
21066
21069
  t.setResolvers({ getAttributeInfo: e.compositeAttributeInfoSource.getAttributeInfo.bind(e.compositeAttributeInfoSource) });
21067
21070
  let n = t.registerActionHook({
21068
- predicate: (e) => e.type === A.actions.addMetadata.type || e.type === A.actions.deriveMetadata.type || e.type === A.actions.addMetadataFromSource.type,
21071
+ predicate: (e) => e.type === k.actions.addMetadata.type || e.type === k.actions.deriveMetadata.type || e.type === k.actions.addMetadataFromSource.type,
21069
21072
  awaitProcessed: (t) => e.awaitMetadataReady(t.signal)
21070
21073
  }), r = t.registerActionHook({
21071
- predicate: (e) => e.type === A.actions.addMetadataFromSource.type,
21074
+ predicate: (e) => e.type === k.actions.addMetadataFromSource.type,
21072
21075
  augment: (t, n) => tS(n, e, t.signal)
21073
21076
  });
21074
21077
  e.registerDisposer(n), e.registerDisposer(r), await rS(e, t);
@@ -21081,7 +21084,7 @@ var aS = class extends G {
21081
21084
  message: {},
21082
21085
  cancelLabel: { type: String }
21083
21086
  };
21084
- static styles = [...super.styles, F`
21087
+ static styles = [...super.styles, I`
21085
21088
  dialog {
21086
21089
  width: 450px;
21087
21090
  }
@@ -21116,7 +21119,7 @@ var sS = class extends G {
21116
21119
  rollbackLabel: { type: String },
21117
21120
  keepLabel: { type: String }
21118
21121
  };
21119
- static styles = [...super.styles, F`
21122
+ static styles = [...super.styles, I`
21120
21123
  dialog {
21121
21124
  max-width: 600px;
21122
21125
  }
@@ -21165,7 +21168,7 @@ function lS({ store: e, intentPipeline: t, provenance: n, delayMs: r = 800, minV
21165
21168
  o && (o.closeDialog(), o = void 0, s = void 0, c = void 0);
21166
21169
  }, i - t);
21167
21170
  }, u = (e) => {
21168
- let t = e?.currentAction ? dS(n, e.currentAction) : I, r = typeof e?.currentIndex == "number" && typeof e?.totalActions == "number" ? L` (${e.currentIndex + 1} of ${e.totalActions})` : I;
21171
+ let t = e?.currentAction ? dS(n, e.currentAction) : _, r = typeof e?.currentIndex == "number" && typeof e?.totalActions == "number" ? L` (${e.currentIndex + 1} of ${e.totalActions})` : _;
21169
21172
  return L` ${t ? L`<div>Performing${r}:</div>
21170
21173
  <div class="action-title">${t}</div>` : L`<div>Processing actions${r}.</div>`}
21171
21174
  <p>Cancel if it takes too long.</p>`;
@@ -21186,7 +21189,7 @@ function lS({ store: e, intentPipeline: t, provenance: n, delayMs: r = 800, minV
21186
21189
  ${i}
21187
21190
  </p>
21188
21191
  <p>
21189
- ${r ? L`<p>Details:<br />${r}</p>` : I}
21192
+ ${r ? L`<p>Details:<br />${r}</p>` : _}
21190
21193
  </p>
21191
21194
  <p>
21192
21195
  The failed action was rolled back.<br />
@@ -21418,9 +21421,9 @@ var OS = 150, kS = class {
21418
21421
  this.#o.length = 0, this.#O();
21419
21422
  }
21420
21423
  #g() {
21421
- this.#r = Zn(this.#e), this.#i.clear(), this.#u.clear();
21424
+ this.#r = $n(this.#e), this.#i.clear(), this.#u.clear();
21422
21425
  for (let e of this.#r) {
21423
- let t = Xn(e.selector);
21426
+ let t = Qn(e.selector);
21424
21427
  this.#i.set(t, e), this.#X(e, t);
21425
21428
  }
21426
21429
  }
@@ -21443,10 +21446,10 @@ var OS = 150, kS = class {
21443
21446
  }
21444
21447
  #b(e) {
21445
21448
  if (this.#a) return;
21446
- let t = Xn(e.selector);
21449
+ let t = Qn(e.selector);
21447
21450
  if (this.#u.has(t)) return;
21448
21451
  let n = this.#L(e);
21449
- if (n === void 0 || Vn(e.param) && this.#Z(e.param, n) && this.#C(e, t)) return;
21452
+ if (n === void 0 || fn(e.param) && this.#Z(e.param, n) && this.#C(e, t)) return;
21450
21453
  let r = this.#P(e, n);
21451
21454
  if (r) {
21452
21455
  if (this.#x(e, n, t)) {
@@ -21461,18 +21464,18 @@ var OS = 150, kS = class {
21461
21464
  }
21462
21465
  }
21463
21466
  #x(e, t, n) {
21464
- if (!Vn(e.param) || !this.#Z(e.param, t)) return !1;
21467
+ if (!fn(e.param) || !this.#Z(e.param, t)) return !1;
21465
21468
  let { past: r, present: i } = this.#t.getState().provenance;
21466
21469
  if (r.length === 0) return !1;
21467
21470
  let a = i.lastAction;
21468
21471
  if (!a || !Ag.actions.paramChange.match(a)) return !1;
21469
21472
  let o = a.payload.selector;
21470
- if (Xn(o) !== n) return !1;
21473
+ if (Qn(o) !== n) return !1;
21471
21474
  let s = r[r.length - 1].paramProvenance.entries[n];
21472
21475
  return !s || this.#S(e.param, s.value);
21473
21476
  }
21474
21477
  #S(e, t) {
21475
- if (!t || !Vn(e)) return !0;
21478
+ if (!t || !fn(e)) return !0;
21476
21479
  if (t.type === "point") return t.keys.length === 0;
21477
21480
  if (t.type === "pointExpand") return !1;
21478
21481
  if (t.type === "interval") {
@@ -21487,7 +21490,7 @@ var OS = 150, kS = class {
21487
21490
  return !n || this.#S(e.param, n.value);
21488
21491
  }
21489
21492
  #w(e) {
21490
- return Vn(e) ? !0 : an(e) && !!e.bind;
21493
+ return fn(e) ? !0 : xn(e) && !!e.bind;
21491
21494
  }
21492
21495
  #T(e, t) {
21493
21496
  let n = Ag.actions.paramChange({
@@ -21511,7 +21514,7 @@ var OS = 150, kS = class {
21511
21514
  this.#m.clear();
21512
21515
  }
21513
21516
  #k(e) {
21514
- return un(e.param, e.view.paramRuntime);
21517
+ return bn(e.param, e.view.paramRuntime);
21515
21518
  }
21516
21519
  #A(e, t) {
21517
21520
  return this.#K(e.param, t), this.#k(e);
@@ -21539,12 +21542,12 @@ var OS = 150, kS = class {
21539
21542
  }
21540
21543
  #P(e, t) {
21541
21544
  let n = e.param;
21542
- if (Vn(n)) {
21543
- let r = dn(n.select);
21544
- if (En(r)) {
21545
+ if (fn(n)) {
21546
+ let r = hn(n.select);
21547
+ if (pn(r)) {
21545
21548
  let r = this.#N(e, "persist");
21546
21549
  if (!r) return;
21547
- let i = nr(t, r);
21550
+ let i = yn(t, r);
21548
21551
  if (!i) return;
21549
21552
  let a = this.#M(e.view);
21550
21553
  if (a && a.completed) try {
@@ -21559,8 +21562,8 @@ var OS = 150, kS = class {
21559
21562
  keys: i
21560
21563
  };
21561
21564
  }
21562
- if (mn(r)) {
21563
- if (!Tn(t)) {
21565
+ if (wn(r)) {
21566
+ if (!dn(t)) {
21564
21567
  this.#q(n, "has no value yet and will not be saved.");
21565
21568
  return;
21566
21569
  }
@@ -21568,7 +21571,7 @@ var OS = 150, kS = class {
21568
21571
  }
21569
21572
  throw Error(`Unsupported selection config for parameter "${n.name}".`);
21570
21573
  }
21571
- if (an(n)) return {
21574
+ if (xn(n)) return {
21572
21575
  type: "value",
21573
21576
  value: t
21574
21577
  };
@@ -21579,7 +21582,7 @@ var OS = 150, kS = class {
21579
21582
  this.#e.paramRuntime.runInTransaction(() => {
21580
21583
  let t = new Set(this.#i.keys()), n = new Set(Object.keys(e));
21581
21584
  for (let t of this.#r) {
21582
- let r = Xn(t.selector);
21585
+ let r = Qn(t.selector);
21583
21586
  if (n.delete(r), this.#u.has(r)) continue;
21584
21587
  let i = e[r], a = i ? this.#R(t, i) : this.#k(t);
21585
21588
  this.#I(t, a) || t.view.paramRuntime.setValue(t.selector.param, a, { animate: !1 });
@@ -21594,20 +21597,20 @@ var OS = 150, kS = class {
21594
21597
  }
21595
21598
  }
21596
21599
  #I(e, t) {
21597
- return an(e.param) && Object.is(e.view.paramRuntime.getTargetValue(e.selector.param), t);
21600
+ return xn(e.param) && Object.is(e.view.paramRuntime.getTargetValue(e.selector.param), t);
21598
21601
  }
21599
21602
  #L(e) {
21600
21603
  let t = e.selector.param;
21601
- return an(e.param) ? e.view.paramRuntime.getTargetValue(t) : e.view.paramRuntime.getValue(t);
21604
+ return xn(e.param) ? e.view.paramRuntime.getTargetValue(t) : e.view.paramRuntime.getValue(t);
21602
21605
  }
21603
21606
  async whenApplied(e) {
21604
21607
  return await Promise.resolve(), await this.#h, this.#e.paramRuntime.whenPropagated(e);
21605
21608
  }
21606
21609
  #R(e, t) {
21607
21610
  let n = e.param, r = t.value;
21608
- if (Vn(n)) {
21609
- let i = dn(n.select);
21610
- if (En(i)) {
21611
+ if (fn(n)) {
21612
+ let i = hn(n.select);
21613
+ if (pn(i)) {
21611
21614
  if (r.type === "pointExpand") return this.#z(e, r, i);
21612
21615
  if (r.type !== "point") return this.#A(e, "cannot be restored because the bookmark stored a different selection type.");
21613
21616
  let t = this.#N(e, "restore");
@@ -21619,22 +21622,22 @@ var OS = 150, kS = class {
21619
21622
  if (!o.completed) return this.#V(o), this.#k(e);
21620
21623
  let s = i.toggle ? "multi" : "single", c;
21621
21624
  try {
21622
- c = Jn(s, t, a, (e, t) => o.findDatumByKey(e, t));
21625
+ c = rn(s, t, a, (e, t) => o.findDatumByKey(e, t));
21623
21626
  } catch (r) {
21624
21627
  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);
21625
21628
  }
21626
21629
  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;
21627
21630
  }
21628
- if (mn(i)) {
21631
+ if (wn(i)) {
21629
21632
  if (r.type !== "interval") return this.#A(e, "cannot be restored because the bookmark stored a different selection type.");
21630
- let n = hn(i.encodings);
21633
+ let n = gn(i.encodings);
21631
21634
  this.#H(e.view, n, r.intervals);
21632
21635
  let a = this.#U(t.origin);
21633
21636
  return a && this.#H(e.view, n, a), n;
21634
21637
  }
21635
21638
  return this.#k(e);
21636
21639
  }
21637
- 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);
21640
+ return xn(n) ? r.type === "value" ? r.value : this.#j(e, "cannot be restored because the bookmark stored a different value type.") : this.#k(e);
21638
21641
  }
21639
21642
  #z(e, t, n) {
21640
21643
  if (!n.toggle) return this.#K(e.param, "cannot apply expansion because the target selection is not multi-point."), this.#k(e);
@@ -21651,13 +21654,13 @@ var OS = 150, kS = class {
21651
21654
  let n = bS(e), a = [];
21652
21655
  return r.visitData((e) => {
21653
21656
  n(e) && a.push(e);
21654
- }), yn(a);
21657
+ }), Sn(a);
21655
21658
  } catch (t) {
21656
21659
  return this.#K(e.param, `cannot apply expansion due to an error: ${t}`), this.#k(e);
21657
21660
  }
21658
21661
  }
21659
21662
  #B(e) {
21660
- let t = e.origin, n = Kn(this.#e, t.view);
21663
+ let t = e.origin, n = Yn(this.#e, t.view);
21661
21664
  if (!n) {
21662
21665
  this.#J("the expansion origin view is missing in the current import scope.");
21663
21666
  return;
@@ -21710,7 +21713,7 @@ var OS = 150, kS = class {
21710
21713
  }
21711
21714
  #U(e) {
21712
21715
  if (!e || e.type !== "datum" || !e.intervalSources) return;
21713
- let t = Kn(this.#e, e.view);
21716
+ let t = Yn(this.#e, e.view);
21714
21717
  if (!t) {
21715
21718
  this.#J("the source view is missing. Using stored coordinates instead.");
21716
21719
  return;
@@ -21735,7 +21738,7 @@ var OS = 150, kS = class {
21735
21738
  for (let [t, n] of Object.entries(e.intervalSources)) {
21736
21739
  let e = n.start, a = n.end ?? n.start;
21737
21740
  if (!e || !a) continue;
21738
- let o = zn(e), s = zn(a);
21741
+ let o = mn(e), s = mn(a);
21739
21742
  i[t] = [o(r), s(r)];
21740
21743
  }
21741
21744
  return i;
@@ -21760,11 +21763,11 @@ var OS = 150, kS = class {
21760
21763
  }
21761
21764
  #X(e, t) {
21762
21765
  let n = e.param;
21763
- Vn(n) && En(dn(n.select)) && (this.#N(e, "persist") || this.#u.add(t));
21766
+ fn(n) && pn(hn(n.select)) && (this.#N(e, "persist") || this.#u.add(t));
21764
21767
  }
21765
21768
  #Z(e, t) {
21766
- let n = dn(e.select);
21767
- return En(n) ? fn(t) ? !t.datum : !wn(t) || t.data.size === 0 : mn(n) ? !sn(t) : !1;
21769
+ let n = hn(e.select);
21770
+ return pn(n) ? En(t) ? !t.datum : !Dn(t) || t.data.size === 0 : wn(n) ? !vn(t) : !1;
21768
21771
  }
21769
21772
  #Q(e) {
21770
21773
  this.#l.has(e) || (this.#l.add(e), this.#s.add(e), !this.#d && (this.#d = !0, queueMicrotask(() => {
@@ -21822,7 +21825,7 @@ function MS(e, t) {
21822
21825
  partitionBy: i.partitionBy,
21823
21826
  origin: i.origin,
21824
21827
  ...o
21825
- } : i.value, c = i.origin, l = HS(Fn, t, a), u = l ? l.view : void 0, d = u ? FS(u, t) : null, f = NS(e, u, a, s, c, t);
21828
+ } : i.value, c = i.origin, l = HS(Hn, t, a), u = l ? l.view : void 0, d = u ? FS(u, t) : null, f = NS(e, u, a, s, c, t);
21826
21829
  return {
21827
21830
  title: d ? L`${f} in ${d}` : f,
21828
21831
  icon: VS(s)
@@ -21857,7 +21860,7 @@ function NS(e, t, n, r, i, a) {
21857
21860
  }
21858
21861
  function PS(e, t) {
21859
21862
  if (!e || e.type !== "datum") return L``;
21860
- let n = t ? HS(Kn, t, e.view) : null;
21863
+ let n = t ? HS(Yn, t, e.view) : null;
21861
21864
  return n ? L` from ${FS(n, t)}` : L``;
21862
21865
  }
21863
21866
  function FS(e, t) {
@@ -21865,7 +21868,7 @@ function FS(e, t) {
21865
21868
  return L`<strong>${Zm(t, e, String(n))}</strong>`;
21866
21869
  }
21867
21870
  function IS(e) {
21868
- return Ee(e) || typeof e == "number" || typeof e == "boolean" ? String(e) : JSON.stringify(e);
21871
+ return Te(e) || typeof e == "number" || typeof e == "boolean" ? String(e) : JSON.stringify(e);
21869
21872
  }
21870
21873
  function LS(e) {
21871
21874
  return L`<strong>${e}</strong>`;
@@ -21946,7 +21949,7 @@ function YS(e, t, n, r) {
21946
21949
  let i = jS.get(e);
21947
21950
  if (i?.has(r)) return i.get(r);
21948
21951
  if (!t) return;
21949
- let a = HS(Kn, t, n.view);
21952
+ let a = HS(Yn, t, n.view);
21950
21953
  if (!a) return;
21951
21954
  let o = TS(a, n);
21952
21955
  if (o.reason !== "ok") return;
@@ -21968,14 +21971,14 @@ function ZS(e) {
21968
21971
  //#endregion
21969
21972
  //#region src/viewSelectorConstraints.js
21970
21973
  function QS(e) {
21971
- let t = [...Hn(e)];
21974
+ let t = [...Kn(e)];
21972
21975
  return $S(e, t), eC(e, t), tC(e, t), t;
21973
21976
  }
21974
21977
  function $S(e, t) {
21975
- In(e, (e) => {
21978
+ Un(e, (e) => {
21976
21979
  let n = Ht(e);
21977
21980
  if (!(!n || typeof n != "object") && (typeof n.group != "string" || n.group.length === 0)) {
21978
- let n = Rn(e);
21981
+ let n = Gn(e);
21979
21982
  t.push({
21980
21983
  message: "Configurable visibility group must be a non-empty string in " + iC(n) + " for " + e.getPathString() + ".",
21981
21984
  scope: n
@@ -21985,9 +21988,9 @@ function $S(e, t) {
21985
21988
  }
21986
21989
  function eC(e, t) {
21987
21990
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
21988
- In(e, (e) => {
21989
- let i = Rn(e), a = rC(i);
21990
- if (n.has(a) || (n.set(a, i), r.set(a, /* @__PURE__ */ new Map())), !He(e)) return;
21991
+ Un(e, (e) => {
21992
+ let i = Gn(e), a = rC(i);
21993
+ if (n.has(a) || (n.set(a, i), r.set(a, /* @__PURE__ */ new Map())), !Ve(e)) return;
21991
21994
  let o = e.explicitName;
21992
21995
  if (!o) {
21993
21996
  if (!Zt(e)) return;
@@ -22014,10 +22017,10 @@ function eC(e, t) {
22014
22017
  }
22015
22018
  function tC(e, t) {
22016
22019
  let n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
22017
- In(e, (e) => {
22018
- let t = Wn(e), i = t ? t.name : void 0;
22020
+ Un(e, (e) => {
22021
+ let t = Jn(e), i = t ? t.name : void 0;
22019
22022
  if (typeof i != "string" || !i.length || !nC(e)) return;
22020
- let a = Rn(e);
22023
+ let a = Gn(e);
22021
22024
  if (!a.length) return;
22022
22025
  let o = a.slice(0, a.length - 1), s = rC(o);
22023
22026
  n.has(s) || (n.set(s, o), r.set(s, /* @__PURE__ */ new Map()));
@@ -22034,8 +22037,8 @@ function tC(e, t) {
22034
22037
  }
22035
22038
  function nC(e) {
22036
22039
  let t = !1;
22037
- return In(e, (e) => {
22038
- if (He(e) && (e.explicitName || Zt(e))) return t = !0, Qn;
22040
+ return Un(e, (e) => {
22041
+ if (Ve(e) && (e.explicitName || Zt(e))) return t = !0, er;
22039
22042
  }), t;
22040
22043
  }
22041
22044
  function rC(e) {
@@ -22170,7 +22173,7 @@ var fC = class extends EventTarget {
22170
22173
  };
22171
22174
  //#endregion
22172
22175
  //#region src/app.js
22173
- Ft.mergeFacets = Ux;
22176
+ ct.mergeFacets = Ux;
22174
22177
  var pC = class {
22175
22178
  #e;
22176
22179
  #t = /* @__PURE__ */ new Set();
@@ -22180,11 +22183,11 @@ var pC = class {
22180
22183
  embedMode: "standalone",
22181
22184
  ...n,
22182
22185
  inputBindingContainer: "none"
22183
- }, this.ui = new fC(), this.#r(), this.#a(e), this.#i(), pt(L`<div class="genome-spy-app">
22186
+ }, this.ui = new fC(), this.#r(), this.#a(e), this.#i(), m(L`<div class="genome-spy-app">
22184
22187
  <genome-spy-toolbar .app=${this}></genome-spy-toolbar>
22185
22188
  <div class="genome-spy-workspace">
22186
22189
  <div class="genome-spy-container"></div>
22187
- ${this.isEmbedded() ? I : L`<div class="genome-spy-side-panel-host"></div>`}
22190
+ ${this.isEmbedded() ? _ : L`<div class="genome-spy-side-panel-host"></div>`}
22188
22191
  </div>
22189
22192
  </div>`, this.appContainer), this.isEmbedded() || this.ui.attachAppShell(this.appContainer.querySelector(".genome-spy-app")), this.appContainer.querySelector(".genome-spy-app").addEventListener("query-dependency", (e) => {
22190
22193
  e.detail.name == "app" && (e.detail.setter(this), e.stopPropagation());
@@ -22194,10 +22197,10 @@ var pC = class {
22194
22197
  }, this.genomeSpy.viewFactory.addViewType(Mm, ((e, t, n, r, i) => new Bg(e, t, n, r, i, this.provenance, this.intentExecutor, Ex(this)))), this.#o();
22195
22198
  }
22196
22199
  getAgentApi() {
22197
- return this.#e ||= import("./agentApi-DHXYZVvQ.js").then((e) => e.t).then((e) => e.createAgentApi(this)), this.#e;
22200
+ return this.#e ||= import("./agentApi-Cz0hCnVp.js").then((e) => e.t).then((e) => e.createAgentApi(this)), this.#e;
22198
22201
  }
22199
22202
  async getDebugModules() {
22200
- return import("./debug-aHQsa6hU.js");
22203
+ return import("./debug-BvCZWumf.js");
22201
22204
  }
22202
22205
  #r() {
22203
22206
  this.store = Xx(), this.intentExecutor = new Kx(this.store), this.provenance = new Bx(this.store), this.intentPipeline = new Zx({
@@ -22215,10 +22218,10 @@ var pC = class {
22215
22218
  #o() {
22216
22219
  let e = {}, t = (t) => t.viewSettings?.visibilities ?? e, n = e, r, i = e, a = () => {
22217
22220
  let e = t(this.store.getState()), a = this.genomeSpy.viewRoot;
22218
- return e === n && a === r ? i : (n = e, r = a, i = a ? Ie(a, e) : e, i);
22221
+ return e === n && a === r ? i : (n = e, r = a, i = a ? Fe(a, e) : e, i);
22219
22222
  }, o = this.genomeSpy.viewVisibilityPredicate;
22220
22223
  this.genomeSpy.viewVisibilityPredicate = (e) => {
22221
- let t = vt(a(), e);
22224
+ let t = _t(a(), e);
22222
22225
  return t === void 0 ? o(e) : t;
22223
22226
  };
22224
22227
  }
@@ -22259,7 +22262,7 @@ var pC = class {
22259
22262
  this.#t.add(e);
22260
22263
  }
22261
22264
  async launch() {
22262
- let e = this.isEmbedded() ? Promise.resolve([]) : this.rootSpec.bookmarks?.remote ? O({ baseURL: this.rootSpec.baseUrl }).load(this.rootSpec.bookmarks.remote.url).then((e) => Promise.resolve(JSON.parse(e))) : Promise.resolve([]);
22265
+ let e = this.isEmbedded() ? Promise.resolve([]) : this.rootSpec.bookmarks?.remote ? D({ baseURL: this.rootSpec.baseUrl }).load(this.rootSpec.bookmarks.remote.url).then((e) => Promise.resolve(JSON.parse(e))) : Promise.resolve([]);
22263
22266
  if (this.isEmbedded() || await this.#l(e), !await this.genomeSpy.launch()) return;
22264
22267
  this.#s();
22265
22268
  let t = this.genomeSpy.viewRoot;
@@ -22314,13 +22317,13 @@ var pC = class {
22314
22317
  }
22315
22318
  let t = () => this._restoreStateFromUrl().catch((e) => q(e.toString()));
22316
22319
  window.addEventListener("hashchange", t, !1), this.#c(() => window.removeEventListener("hashchange", t, !1));
22317
- let n = b(() => {
22320
+ let n = ae(() => {
22318
22321
  this.#n || this._updateStateToUrl();
22319
22322
  }, 500, !1);
22320
22323
  this.#c(this.store.subscribe(n));
22321
22324
  for (let [, e] of this.genomeSpy.getNamedScaleResolutions()) e.isZoomable() && (e.addEventListener("domain", n), this.#c(() => e.removeEventListener("domain", n)));
22322
22325
  }
22323
- let r = Gn(this.genomeSpy.spec.description ?? []);
22326
+ let r = On(this.genomeSpy.spec.description ?? []);
22324
22327
  this.isFullPage() && r.length > 0 && (document.title = "GenomeSpy - " + r), this.store.dispatch(qx.actions.setInitialized());
22325
22328
  }
22326
22329
  async #l(e) {
@@ -22328,7 +22331,7 @@ var pC = class {
22328
22331
  if (t) try {
22329
22332
  let n = await this.#u(t, e);
22330
22333
  if (n?.viewSettings) {
22331
- let e = nt(n.viewSettings);
22334
+ let e = tt(n.viewSettings);
22332
22335
  this.store.dispatch(Jt.actions.setViewSettings(e));
22333
22336
  }
22334
22337
  } catch {}
@@ -22421,13 +22424,13 @@ var pC = class {
22421
22424
  if (!this.genomeSpy?.viewRoot) return;
22422
22425
  let e;
22423
22426
  return this.genomeSpy.viewRoot.visit((t) => {
22424
- if (t instanceof Bg) return e = t, Qn;
22427
+ if (t instanceof Bg) return e = t, er;
22425
22428
  }), e;
22426
22429
  }
22427
22430
  };
22428
22431
  function mC(e) {
22429
22432
  let t = e.bookmarks?.remote;
22430
- if (t) return cn(ln(e.baseUrl, t.url));
22433
+ if (t) return jn(Mn(e.baseUrl, t.url));
22431
22434
  }
22432
22435
  function hC(e) {
22433
22436
  let t = document.querySelector("head"), n = document.createElement("link");
@@ -22458,7 +22461,7 @@ function _C({ viewSelector: e, field: t, selectionSelector: n, aggregation: r, f
22458
22461
  //#endregion
22459
22462
  //#region src/agentShared/index.js
22460
22463
  function vC(e) {
22461
- if (e.startsWith("sampleView/")) return A.actions[e.slice(11)];
22464
+ if (e.startsWith("sampleView/")) return k.actions[e.slice(11)];
22462
22465
  if (e.startsWith("paramProvenance/")) return Ag.actions[e.slice(16)];
22463
22466
  if (e.startsWith("viewSettings/")) return Jt.actions[e.slice(13)];
22464
22467
  throw Error("Unsupported app actionType " + e + ".");
@@ -22467,13 +22470,13 @@ function vC(e) {
22467
22470
  //#region src/index.js
22468
22471
  async function yC(e, t, n = {}) {
22469
22472
  let r = !0, i = () => r, a;
22470
- if (Ee(e)) {
22473
+ if (Te(e)) {
22471
22474
  if (a = document.querySelector(e), !a) throw Error(`No such element: ${e}`);
22472
22475
  } else if (e instanceof HTMLElement) a = e;
22473
22476
  else throw Error(`Invalid element: ${e}`);
22474
22477
  let s, l, u = [];
22475
22478
  try {
22476
- let e = c(t) ? t : await ce(t);
22479
+ let e = c(t) ? t : await le(t);
22477
22480
  e.baseUrl ??= "", e.padding ??= 10;
22478
22481
  let { plugins: r = [], ...i } = {
22479
22482
  powerPreference: "high-performance",
@@ -22485,7 +22488,7 @@ async function yC(e, t, n = {}) {
22485
22488
  }
22486
22489
  return {
22487
22490
  views: o(s, i),
22488
- datasets: mt(s, i),
22491
+ datasets: pt(s, i),
22489
22492
  debug: l.debug,
22490
22493
  finalize() {
22491
22494
  r = !1;
@@ -22533,4 +22536,4 @@ async function xC(e, t) {
22533
22536
  return n;
22534
22537
  }
22535
22538
  //#endregion
22536
- export { G as BaseDialog, dt as GenomeSpy, pC as GenomeSpyApp, i as addValueColors, ne as buildCategoricalCountsSummary, ae as buildCategoricalFieldSummary, le as buildQuantitativeFieldSummary, _C as buildSelectionAggregationAttributeIdentifier, y as buildTopCategorySummary, bt as createAgentApi, fg as createSelectionAggregationCandidateId, yC as embed, me as embedRenderablePlot, Dc as faStyles, Oc as formStyles, Rt as formatAggregationExpression, Qm as formatScopedParamName, vC as getActionCreator, ut as getConcreteColorScale, tg as getContextMenuFieldInfos, L as html, vr as icon, hm as isBaselineAction, at as makeViewSelectorKey, yx as safeMarkdown, ES as serializeBookmarkableParamValue, K as showDialog, q as showMessageDialog, D as templateResultToString };
22539
+ export { G as BaseDialog, dt as GenomeSpy, pC as GenomeSpyApp, i as addValueColors, P as buildCategoricalCountsSummary, ie as buildCategoricalFieldSummary, ue as buildQuantitativeFieldSummary, _C as buildSelectionAggregationAttributeIdentifier, y as buildTopCategorySummary, bt as createAgentApi, fg as createSelectionAggregationCandidateId, yC as embed, me as embedRenderablePlot, Dc as faStyles, Oc as formStyles, Rt as formatAggregationExpression, Qm as formatScopedParamName, vC as getActionCreator, ut as getConcreteColorScale, tg as getContextMenuFieldInfos, L as html, vr as icon, hm as isBaselineAction, it as makeViewSelectorKey, yx as safeMarkdown, ES as serializeBookmarkableParamValue, K as showDialog, q as showMessageDialog, E as templateResultToString };