@genome-spy/app 1.1.1 → 1.2.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 (45) hide show
  1. package/dist/{agentApi-sPuuT0KS.js → agentApi-8hMSlqAQ.js} +8307 -6861
  2. package/dist/agentApi.es.js +5569 -4250
  3. package/dist/agentShared.es.js +9 -9
  4. package/dist/{canvas2d-iDK4BC5j.js → canvas2d-Bd8H8MMo.js} +149 -134
  5. package/dist/{canvas2d-MXaFeZnP.js → canvas2d-D6VYooRf.js} +136 -122
  6. package/dist/{clipOptions-Cba4I0AO.js → clipOptions-DElJ8dTZ.js} +2274 -2080
  7. package/dist/{clipOptions-B5PibDq3.js → clipOptions-D_wBNhzs.js} +2121 -1957
  8. package/dist/{viewIdentityRegistry-BDKkEjXl.js → containerView-CRJSc4bM.js} +24 -31
  9. package/dist/{viewIdentityRegistry-BIYd4TE0.js → containerView-aEVmYmkA.js} +24 -31
  10. package/dist/{debug-DbigmdrK.js → debug-CQ0agCrd.js} +9 -9
  11. package/dist/{debug-BlqDxTw3.js → debug-DkIMiGdW.js} +10 -10
  12. package/dist/index.es.js +3582 -3566
  13. package/dist/index.js +698 -454
  14. package/dist/{indexer-En7gpvLN.js → indexer-DDC0YRGn.js} +1 -1
  15. package/dist/{indexer-DbFTKGlm.js → indexer-DOYMJ-Md.js} +1 -1
  16. package/dist/markUtils-CvLDz744.js +75 -0
  17. package/dist/{metadataChannels-DV62inJh.js → metadataChannels-DLSmx7kU.js} +6 -3
  18. package/dist/{order-B4uR9Q04.js → order-BVvkjDRT.js} +369 -316
  19. package/dist/{order-BSPy5DI8.js → order-DmMoZsi1.js} +360 -308
  20. package/dist/{rasterExport-DQH3hVg_.js → rasterExport-DxvowWjH.js} +3 -3
  21. package/dist/{rasterExport-B62RmAK1.js → rasterExport-jeRVq6kY.js} +4 -4
  22. package/dist/{rasterization-B05bDo5e.js → rasterization-DFj3Cvx4.js} +26 -19
  23. package/dist/{rectangle-DE98gIxF.js → rectangle-DZTR6NFQ.js} +10 -1
  24. package/dist/rectangle-Dl4Dy0hS.js +191 -0
  25. package/dist/{renderCanvas2D-Bdv-B4wj.js → renderCanvas2D-Bfm1NHFu.js} +96 -91
  26. package/dist/{renderCanvas2D-ChdoHGrU.js → renderCanvas2D-DVjhp834.js} +98 -93
  27. package/dist/{scalePosition-ByvlXaML.js → scalePosition-0aeqp_kz.js} +8 -1
  28. package/dist/schema.json +27198 -13709
  29. package/dist/style.css +1 -1
  30. package/dist/{svg-N3tj05-e.js → svg-Bm2zxBPu.js} +315 -316
  31. package/dist/{svg-DHsq1RpV.js → svg-CkfuhONt.js} +290 -291
  32. package/dist/{svgRasterizer-CYVDlt5z.js → svgRasterizer-DoRQEqFA.js} +2 -2
  33. package/dist/{svgRasterizer-CvCBlxLj.js → svgRasterizer-raDDhBF-.js} +3 -3
  34. package/dist/{vega-scale-Byaw1K8O.js → vega-scale-BoGHANI7.js} +90 -90
  35. package/dist/{vega-scale-Ctz_wa3z.js → vega-scale-o9TRyzYH.js} +699 -699
  36. package/dist/viewError-BkJeVYXA.js +33 -0
  37. package/dist/viewError-IYqyluc7.js +33 -0
  38. package/dist/{viewSelectors-DDLW-byr.js → viewSelectors-7LyasQN-.js} +498 -434
  39. package/dist/{viewSelectors-j-F9XwsE.js → viewSelectors-CbmkSQRT.js} +549 -485
  40. package/dist/{viewUtils-JX6CMEYH.js → viewUtils-DuddMNNw.js} +2138 -2009
  41. package/dist/{webgl-Dw8xqZpX.js → webgl-CQfvgnxo.js} +1229 -1140
  42. package/dist/{webgl-DdmOwEH0.js → webgl-DVYkXtiZ.js} +1477 -1389
  43. package/package.json +4 -4
  44. package/src/spec/view.d.ts +44 -5
  45. package/dist/viewError-BiR9VCgL.js +0 -29
@@ -1,7 +1,7 @@
1
- import { C as e, E as t, Kt as n, Q as r, S as i, Z as a, b as o, cn as s, dn as c, fn as l, k as u, nn as d, o as f, pn as p, t as m, ut as h, y as g, yn as ee, yt as te } from "./clipOptions-B5PibDq3.js";
2
- import { E as ne, m as _, y as v } from "./vega-scale-Ctz_wa3z.js";
3
- import { a as y, n as re, r as ie, t as b } from "./viewError-BiR9VCgL.js";
4
- import { t as ae } from "./warning-CpIIpk8e.js";
1
+ import { Cn as e, G as t, K as n, S as r, Tn as i, Xt as a, bn as o, f as s, g as c, h as l, in as u, jn as d, l as f, mn as p, o as m, p as h, t as ee, ut as g, wn as te, y as _, yt as ne } from "./clipOptions-DElJ8dTZ.js";
2
+ import { E as re, m as ie, y as v } from "./vega-scale-o9TRyzYH.js";
3
+ import { a as y, n as ae, r as oe, t as b } from "./viewError-BkJeVYXA.js";
4
+ import { t as se } from "./warning-CpIIpk8e.js";
5
5
  //#region ../../node_modules/flatqueue/index.js
6
6
  var x = class {
7
7
  constructor(e = Infinity, t = Float64Array, n = Uint32Array) {
@@ -44,11 +44,11 @@ var x = class {
44
44
  shrink() {
45
45
  Array.isArray(this.ids) && (this.ids.length = this.length), Array.isArray(this.values) && (this.values.length = this.length);
46
46
  }
47
- }, S = Symbol("runtimeNode"), oe = 1e6;
48
- function se(e) {
47
+ }, S = Symbol("runtimeNode"), ce = 1e6;
48
+ function le(e) {
49
49
  return e ? (t, n) => e.addDisposer(t, n) : () => () => void 0;
50
50
  }
51
- function ce(e, t, n = !0) {
51
+ function ue(e, t, n = !0) {
52
52
  let r = {
53
53
  id: e.id,
54
54
  name: e.name,
@@ -72,18 +72,18 @@ function ce(e, t, n = !0) {
72
72
  t(e);
73
73
  } }) : r;
74
74
  }
75
- function le(e) {
75
+ function de(e) {
76
76
  let t = e[S];
77
77
  if (!t) throw Error("ParamRef is not bound to this graph runtime. Expected runtime-created ref.");
78
78
  return t;
79
79
  }
80
- function ue(e) {
81
- return typeof e.rank == "number" ? e.rank : le(e).rank;
80
+ function fe(e) {
81
+ return typeof e.rank == "number" ? e.rank : de(e).rank;
82
82
  }
83
- function de(e) {
83
+ function pe(e) {
84
84
  for (let t of e) t();
85
85
  }
86
- var fe = class {
86
+ var me = class {
87
87
  #e = 1;
88
88
  #t = 1;
89
89
  #n = 0;
@@ -103,7 +103,7 @@ var fe = class {
103
103
  #g;
104
104
  #_;
105
105
  constructor(e = {}) {
106
- this.#g = se(e.lifecycleRegistry), this.#_ = e.onError;
106
+ this.#g = le(e.lifecycleRegistry), this.#_ = e.onError;
107
107
  }
108
108
  createWritable(e, t, n, r, i = {}) {
109
109
  let a = "n" + this.#e++, o = i.notify ?? !0, s = {
@@ -125,7 +125,7 @@ var fe = class {
125
125
  }, l = () => {
126
126
  s.disposed = !0, s.listeners.clear(), u();
127
127
  }, u = this.#g(e, l);
128
- return Object.assign(ce(s, c, o), { dispose: l });
128
+ return Object.assign(ue(s, c, o), { dispose: l });
129
129
  }
130
130
  computed(e, t, n, r, i = {}) {
131
131
  return this.#v(e, t, n, r, i);
@@ -160,7 +160,7 @@ var fe = class {
160
160
  })), l = c(), u = () => {
161
161
  s.disposed || (s.disposed = !0, d(), l.forEach((e) => e()), s.listeners.clear(), this.#d.delete(s));
162
162
  }, d = this.#g(e, u);
163
- return Object.assign(ce(s), {
163
+ return Object.assign(ue(s), {
164
164
  dispose: u,
165
165
  rebind: (e, n) => {
166
166
  if (s.disposed) throw Error("Cannot rebind disposed operation: " + t);
@@ -266,7 +266,7 @@ var fe = class {
266
266
  #y(e) {
267
267
  this.#s++;
268
268
  try {
269
- de(e);
269
+ pe(e);
270
270
  } catch (e) {
271
271
  throw this.#c = !1, !this.#o && this.#s === 1 && this.#b(e), e;
272
272
  } finally {
@@ -310,7 +310,7 @@ var fe = class {
310
310
  }
311
311
  #S(e) {
312
312
  let t = -1, n = 0;
313
- return () => (t !== this.#n && (n = 1 + e().reduce((e, t) => Math.max(e, ue(t)), 0), t = this.#n), n);
313
+ return () => (t !== this.#n && (n = 1 + e().reduce((e, t) => Math.max(e, fe(t)), 0), t = this.#n), n);
314
314
  }
315
315
  #C(e) {
316
316
  if (this.#d.has(e)) {
@@ -327,8 +327,8 @@ var fe = class {
327
327
  this.#f.add(e), this.#m.push(e, this.#T(e.rank)), this.#E();
328
328
  }
329
329
  #T(e) {
330
- let t = this.#t % oe;
331
- return this.#t += 1, e * oe + t;
330
+ let t = this.#t % ce;
331
+ return this.#t += 1, e * ce + t;
332
332
  }
333
333
  #E() {
334
334
  this.#r > 0 || this.#a || this.#o || (this.#a = !0, queueMicrotask(() => {
@@ -344,7 +344,7 @@ var fe = class {
344
344
  this.#h.clear();
345
345
  }
346
346
  }
347
- }, pe = class {
347
+ }, he = class {
348
348
  #e = 1;
349
349
  #t = /* @__PURE__ */ new Map();
350
350
  createOwner(e, t) {
@@ -365,7 +365,7 @@ var fe = class {
365
365
  t.clear(), this.#t.delete(e);
366
366
  }
367
367
  }
368
- }, me = class {
368
+ }, ge = class {
369
369
  #e = 1;
370
370
  #t = /* @__PURE__ */ new Map();
371
371
  createRootScope(e) {
@@ -396,102 +396,106 @@ var fe = class {
396
396
  if (!t) throw Error("Unknown scope: " + e);
397
397
  t.params.clear(), t.initializers.clear();
398
398
  }
399
- registerInitializer(e, n, r) {
400
- t(n);
401
- let i = this.#t.get(e);
402
- if (!i) throw Error("Unknown scope: " + e);
403
- if (i.params.has(n) || i.initializers.has(n)) throw Error(`Parameter "${n}" already exists in scope ${e}`);
404
- i.initializers.set(n, {
405
- initialize: r,
399
+ registerInitializer(e, t, n) {
400
+ _(t);
401
+ let r = this.#t.get(e);
402
+ if (!r) throw Error("Unknown scope: " + e);
403
+ if (r.params.has(t) || r.initializers.has(t)) throw Error(`Parameter "${t}" already exists in scope ${e}`);
404
+ r.initializers.set(t, {
405
+ initialize: n,
406
406
  initializing: !1
407
407
  });
408
408
  }
409
- register(e, n, r) {
410
- t(n);
411
- let i = this.#t.get(e);
412
- if (!i) throw Error("Unknown scope: " + e);
413
- if (i.params.has(n) || i.initializers.get(n)?.initializing === !1) throw Error("Parameter \"" + n + "\" already exists in scope " + e);
414
- return i.params.set(n, r), r;
415
- }
416
- resolve(e, n) {
417
- t(n);
418
- let r = e;
419
- for (; r;) {
420
- let e = this.#t.get(r);
421
- if (!e) throw Error("Unknown scope: " + r);
422
- let t = e.initializers.get(n);
423
- if (t) {
424
- if (t.initializing) throw Error(`Parameter dependency cycle while initializing "${n}" in ${r}.`);
425
- t.initializing = !0;
409
+ register(e, t, n) {
410
+ _(t);
411
+ let r = this.#t.get(e);
412
+ if (!r) throw Error("Unknown scope: " + e);
413
+ if (r.params.has(t) || r.initializers.get(t)?.initializing === !1) throw Error("Parameter \"" + t + "\" already exists in scope " + e);
414
+ return r.params.set(t, n), n;
415
+ }
416
+ resolve(e, t) {
417
+ _(t);
418
+ let n = e;
419
+ for (; n;) {
420
+ let e = this.#t.get(n);
421
+ if (!e) throw Error("Unknown scope: " + n);
422
+ let r = e.initializers.get(t);
423
+ if (r) {
424
+ if (r.initializing) throw Error(`Parameter dependency cycle while initializing "${t}" in ${n}.`);
425
+ r.initializing = !0;
426
426
  try {
427
- if (t.initialize(), !e.params.has(n)) throw Error(`Initializer did not register parameter "${n}".`);
428
- e.initializers.delete(n);
427
+ if (r.initialize(), !e.params.has(t)) throw Error(`Initializer did not register parameter "${t}".`);
428
+ e.initializers.delete(t);
429
429
  } finally {
430
- t.initializing = !1;
430
+ r.initializing = !1;
431
431
  }
432
432
  }
433
- let i = e.params.get(n);
433
+ let i = e.params.get(t);
434
434
  if (i) return i;
435
- r = e.parentScope;
435
+ n = e.parentScope;
436
436
  }
437
437
  }
438
438
  };
439
439
  //#endregion
440
440
  //#region ../core/src/paramRuntime/expressionCompiler.js
441
- function he(e, t = {}, n = {}) {
442
- return r(e, t, n);
441
+ function _e(e, t = {}, r = {}) {
442
+ return n(e, t, r);
443
443
  }
444
444
  //#endregion
445
445
  //#region ../core/src/paramRuntime/expressionRef.js
446
- function ge(e, t, n = {}) {
447
- let r = {}, i = he(e, r, n), a = /* @__PURE__ */ new Map();
448
- for (let n of i.globals) {
449
- if (a.has(n)) continue;
450
- let i = t(n);
451
- if (!i) throw Error("Unknown variable \"" + n + "\" in expression: " + e);
452
- a.set(n, i), Object.defineProperty(r, n, {
453
- enumerable: !0,
454
- get() {
455
- return i.get();
456
- }
457
- });
446
+ function C(e, t, n = {}) {
447
+ let r = {}, i = _e(e, r, n), o = /* @__PURE__ */ new Map();
448
+ try {
449
+ for (let n of i.globals) {
450
+ if (o.has(n)) continue;
451
+ let i = t(n);
452
+ if (!i) throw Error("Unknown variable \"" + n + "\" in expression: " + e);
453
+ o.set(n, i), Object.defineProperty(r, n, {
454
+ enumerable: !0,
455
+ get() {
456
+ return i.get();
457
+ }
458
+ });
459
+ }
460
+ } catch (e) {
461
+ throw a(e, n.specLocation);
458
462
  }
459
- let o = /* @__PURE__ */ new Set();
463
+ let s = /* @__PURE__ */ new Set();
460
464
  return i.subscribe = (e) => {
461
465
  let t = [];
462
- for (let n of a.values()) t.push(n.subscribe(e));
466
+ for (let n of o.values()) t.push(n.subscribe(e));
463
467
  for (let n of i.scaleDependencies ?? []) t.push(n.subscribe(e));
464
468
  let n = !0, r = () => {
465
- n && (n = !1, o.delete(r), t.forEach((e) => e()));
469
+ n && (n = !1, s.delete(r), t.forEach((e) => e()));
466
470
  };
467
- return o.add(r), r;
471
+ return s.add(r), r;
468
472
  }, i.invalidate = () => {
469
- for (let e of o) e();
470
- o.clear();
473
+ for (let e of s) e();
474
+ s.clear();
471
475
  }, i.createSnapshotEvaluator = () => {
472
476
  let e = {};
473
- for (let t of Object.keys(r)) a.has(t) || (e[t] = r[t]);
474
- for (let [t, n] of a) n.batchStable || Object.defineProperty(e, t, {
477
+ for (let t of Object.keys(r)) o.has(t) || (e[t] = r[t]);
478
+ for (let [t, n] of o) n.batchStable || Object.defineProperty(e, t, {
475
479
  enumerable: !0,
476
480
  get: () => n.get()
477
481
  });
478
482
  let t = Object.assign(i.createEvaluator(e), { refresh() {
479
- for (let [t, n] of a) n.batchStable && (e[t] = n.get());
483
+ for (let [t, n] of o) n.batchStable && (e[t] = n.get());
480
484
  } });
481
485
  return t.refresh(), t;
482
- }, i.identifier = () => i.code + "|" + Array.from(a.values()).map((e) => e.id).concat((i.scaleDependencies ?? []).map((e) => e.id)).join(","), i.dependencies = Array.from(a.values()).concat(i.scaleDependencies ?? []), {
486
+ }, i.identifier = () => i.code + "|" + Array.from(o.values()).map((e) => e.id).concat((i.scaleDependencies ?? []).map((e) => e.id)).join(","), i.dependencies = Array.from(o.values()).concat(i.scaleDependencies ?? []), {
483
487
  expression: i,
484
488
  dependencies: i.dependencies
485
489
  };
486
490
  }
487
491
  //#endregion
488
492
  //#region ../core/src/paramRuntime/paramRuntime.js
489
- var _e = class {
490
- #e = new pe();
493
+ var ve = class {
494
+ #e = new he();
491
495
  #t;
492
- #n = new me();
496
+ #n = new ge();
493
497
  constructor(e = {}) {
494
- this.#t = new fe({
498
+ this.#t = new me({
495
499
  lifecycleRegistry: this.#e,
496
500
  onError: e.onError
497
501
  });
@@ -520,11 +524,11 @@ var _e = class {
520
524
  return this.#n.register(e, t, a);
521
525
  }
522
526
  registerDerived(e, t, n, r) {
523
- let { expression: i, dependencies: a } = ge(n, (t) => this.resolve(r?.expressionScope ?? e, t), r), o = this.#n.getOwnerId(e), s = this.#t.computed(o, t, a, () => i(null));
527
+ let { expression: i, dependencies: a } = C(n, (t) => this.resolve(r?.expressionScope ?? e, t), r), o = this.#n.getOwnerId(e), s = this.#t.computed(o, t, a, () => i(null));
524
528
  return this.#n.register(e, t, s);
525
529
  }
526
530
  createExpression(e, t, n) {
527
- let { expression: r } = ge(t, (t) => this.resolve(e, t), n);
531
+ let { expression: r } = C(t, (t) => this.resolve(e, t), n);
528
532
  return r;
529
533
  }
530
534
  resolve(e, t) {
@@ -557,11 +561,11 @@ var _e = class {
557
561
  whenPropagated(e) {
558
562
  return this.#t.whenPropagated(e);
559
563
  }
560
- }, ve = (e) => new Promise((t) => setTimeout(t, e));
561
- function ye() {
564
+ }, ye = (e) => new Promise((t) => setTimeout(t, e));
565
+ function be() {
562
566
  return { canceled: !1 };
563
567
  }
564
- function be(e) {
568
+ function xe(e) {
565
569
  let t = e.requestAnimationFrame || window.requestAnimationFrame, n = e.signal, r = e.cancelToken, i = () => new Promise((i, a) => {
566
570
  if (r?.canceled) return i();
567
571
  if (n?.aborted) return a("aborted");
@@ -574,11 +578,11 @@ function be(e) {
574
578
  };
575
579
  t(m);
576
580
  });
577
- return e.delay ? r?.canceled ? Promise.resolve() : n?.aborted ? Promise.reject("aborted") : ve(e.delay).then(i) : i();
581
+ return e.delay ? r?.canceled ? Promise.resolve() : n?.aborted ? Promise.reject("aborted") : ye(e.delay).then(i) : i();
578
582
  }
579
583
  //#endregion
580
584
  //#region ../core/src/utils/animator.js
581
- var xe = class {
585
+ var Se = class {
582
586
  constructor(e, t) {
583
587
  this._renderCallback = e, this._onError = t, this._renderRequested = !1, this._finalized = !1, this._warn = !1, this._animationFrameRequest = void 0, this.transitions = [], this.transitionsEnabled = !0;
584
588
  }
@@ -609,13 +613,13 @@ var xe = class {
609
613
  this._finalized = !0, this._renderRequested = !1, this.transitions = [], this._animationFrameRequest !== void 0 && (window.cancelAnimationFrame(this._animationFrameRequest), this._animationFrameRequest = void 0);
610
614
  }
611
615
  transition(e) {
612
- return be({
616
+ return xe({
613
617
  requestAnimationFrame: (e) => this.requestTransition(e),
614
618
  ...e
615
619
  });
616
620
  }
617
621
  };
618
- function Se(e, t, n, r, i) {
622
+ function w(e, t, n, r, i) {
619
623
  let a = 0, o = !0, s = !1, c = structuredClone(i), l = c;
620
624
  function u(e, t, n, r) {
621
625
  return t + (e - t) * 2 ** (-n / r);
@@ -648,7 +652,7 @@ function Ce() {
648
652
  }
649
653
  //#endregion
650
654
  //#region ../core/src/paramRuntime/viewParamRuntime.js
651
- var C = class {
655
+ var T = class {
652
656
  #e;
653
657
  #t;
654
658
  #n = /* @__PURE__ */ new Map();
@@ -664,11 +668,12 @@ var C = class {
664
668
  #f;
665
669
  #p;
666
670
  #m;
667
- #h = !1;
671
+ #h;
672
+ #g = !1;
668
673
  constructor(e, t, n, r = {}) {
669
- this.#d = e ?? (() => void 0), this.#f = t ?? (() => void 0), this.#p = n, this.#m = r.settleTemporalUpdatesImmediately ?? !1;
674
+ this.#d = e ?? (() => void 0), this.#f = t ?? (() => void 0), this.#p = n, this.#h = r.getSpecOrigin, this.#m = r.settleTemporalUpdatesImmediately ?? !1;
670
675
  let i = this.#d();
671
- i ? (this.#e = i.#e, this.#t = this.#e.createScope(i.#t)) : (this.#e = new _e({ onError: r.onError }), this.#t = this.#e.createScope());
676
+ i ? (this.#e = i.#e, this.#t = this.#e.createScope(i.#t)) : (this.#e = new ve({ onError: r.onError }), this.#t = this.#e.createScope());
672
677
  }
673
678
  setSelectionSource(e) {
674
679
  this.#s = e;
@@ -687,38 +692,46 @@ var C = class {
687
692
  if (o) throw Error(`Conflicting selection declarations for "${e}" in "${i.location}" and "${o.location}".`);
688
693
  return i;
689
694
  }
690
- #g(e) {
695
+ #_(e) {
691
696
  if (!("select" in e)) return;
692
- let t = u(e.select), n = t.type === "interval" ? "interval" : t.toggle ? "multi" : "single", r = t.type === "interval" ? Array.from(new Set(t.encodings)).sort() : [], i = e.push === "outer" ? this.findRuntimeForParam(e.name) : this, a = {
697
+ let t = r(e.select), n = t.type === "interval" ? "interval" : t.toggle ? "multi" : "single", i = t.type === "interval" ? Array.from(new Set(t.encodings)).sort() : [], a = e.push === "outer" ? this.findRuntimeForParam(e.name) : this, o = {
693
698
  kind: n,
694
- components: r,
699
+ components: i,
695
700
  source: this.#s
696
- }, o = i.#c.get(e.name) ?? /* @__PURE__ */ new Set(), s = o.values().next().value;
697
- if (s && (s.kind !== n || JSON.stringify(s.components) !== JSON.stringify(r))) throw Error(`Conflicting selection declarations for "${e.name}" in "${s.source?.name ?? e.name}" and "${this.#s?.name ?? e.name}".`);
698
- o.add(a), i.#c.set(e.name, o), this.#e.addScopeDisposer(this.#t, () => {
699
- o.delete(a);
701
+ }, s = a.#c.get(e.name) ?? /* @__PURE__ */ new Set(), c = s.values().next().value;
702
+ if (c && (c.kind !== n || JSON.stringify(c.components) !== JSON.stringify(i))) throw Error(`Conflicting selection declarations for "${e.name}" in "${c.source?.name ?? e.name}" and "${this.#s?.name ?? e.name}".`);
703
+ s.add(o), a.#c.set(e.name, s), this.#e.addScopeDisposer(this.#t, () => {
704
+ s.delete(o);
700
705
  });
701
706
  }
702
- get #_() {
703
- return { resolveScaleResolution: this.#f };
707
+ #v(e) {
708
+ return {
709
+ resolveScaleResolution: this.#f,
710
+ specLocation: this.getSpecLocation(e, ["expr"])
711
+ };
704
712
  }
705
- registerParam(e, n = {}) {
706
- let r = e.name;
707
- if (t(r), this.#i.has(r) || this.#a.has(r)) throw Error("Parameter \"" + r + "\" already registered in this scope.");
708
- if (Te(e), n.defer) {
713
+ registerParam(e, t = {}) {
714
+ let n = e.name;
715
+ try {
716
+ _(n);
717
+ } catch (t) {
718
+ throw a(t, this.getSpecLocation(e, ["name"]));
719
+ }
720
+ if (this.#i.has(n) || this.#a.has(n)) throw a(/* @__PURE__ */ Error("Parameter \"" + n + "\" already registered in this scope."), this.getSpecLocation(e, ["name"]));
721
+ if (Te(e), t.defer) {
709
722
  if (!("expr" in e)) throw Error("Only expression parameters can be deferred.");
710
- return this.#e.registerInitializer(this.#t, r, () => {
711
- this.#v(e);
712
- }), this.#i.set(r, e), () => {
713
- throw Error("Cannot set derived parameter \"" + r + "\".");
723
+ return this.#e.registerInitializer(this.#t, n, () => {
724
+ this.#y(e);
725
+ }), this.#i.set(n, e), () => {
726
+ throw Error("Cannot set derived parameter \"" + n + "\".");
714
727
  };
715
728
  }
716
- return this.#v(e);
729
+ return this.#y(e);
717
730
  }
718
731
  registerLazyExpression(e, t, n) {
719
732
  this.#e.registerInitializer(this.#t, e, () => {
720
733
  n?.();
721
- let r = this.#e.registerDerived(this.#t, e, t, this.#_);
734
+ let r = this.#e.registerDerived(this.#t, e, t, this.#v());
722
735
  this.#r.set(e, r);
723
736
  }), this.#a.add(e);
724
737
  }
@@ -728,7 +741,7 @@ var C = class {
728
741
  this.#e.registerInitializer(this.#t, e, () => {
729
742
  let r = this.#e.registerDerived(this.#t, e, t, {
730
743
  expressionScope: n.#t,
731
- ...n.#_
744
+ ...n.#v()
732
745
  });
733
746
  this.#r.set(e, r);
734
747
  }), this.#i.set(e, {
@@ -736,31 +749,31 @@ var C = class {
736
749
  expr: t
737
750
  });
738
751
  }
739
- #v(e) {
752
+ #y(e) {
740
753
  let t = e.name, n, r;
741
754
  if (e.push == "outer") {
742
755
  let i = this.findRuntimeForParam(t);
743
- if (!i) throw Error(`Parameter "${t}" not found in outer scope!`);
744
- let a = i.paramConfigs.get(t);
745
- if (!a) throw Error(`Outer parameter "${t}" exists as a value but has no registered config.`);
746
- if ("expr" in a || "select" in a || "ruler" in a) throw Error(`The outer parameter "${t}" must not have expr, select, or ruler properties!`);
756
+ if (!i) throw a(/* @__PURE__ */ Error(`Parameter "${t}" not found in outer scope!`), this.getSpecLocation(e, ["name"]));
757
+ let o = i.paramConfigs.get(t);
758
+ if (!o) throw Error(`Outer parameter "${t}" exists as a value but has no registered config.`);
759
+ if ("expr" in o || "select" in o || "ruler" in o) throw Error(`The outer parameter "${t}" must not have expr, select, or ruler properties!`);
747
760
  n = (e) => {
748
761
  i.setValue(t, e);
749
- }, this.#n.set(t, n), "ruler" in e && (r = g(e, this), n(r));
750
- } else if ("value" in e) r = g(e, this), n = "transition" in e ? this.#b(t, r, e.transition) : this.#y(t, r);
751
- else if ("expr" in e) {
752
- if ("transition" in e) this.#x(t, e.expr, e.transition);
753
- else if ("debounce" in e) this.#S(t, e.expr, e.debounce);
762
+ }, this.#n.set(t, n), "ruler" in e && (r = s(e, this), n(r));
763
+ } else if ("value" in e) r = s(e, this), n = "transition" in e ? this.#x(t, r, e.transition) : this.#b(t, r);
764
+ else if (h(e)) {
765
+ if ("transition" in e) this.#S(t, e, e.transition);
766
+ else if ("debounce" in e) this.#C(t, e, e.debounce);
754
767
  else {
755
- let n = this.#e.registerDerived(this.#t, t, e.expr, this.#_);
768
+ let n = this.#e.registerDerived(this.#t, t, e.expr, this.#v(e));
756
769
  this.#r.set(t, n);
757
770
  }
758
771
  n = () => {
759
772
  throw Error("Cannot set derived parameter \"" + t + "\".");
760
773
  };
761
- } else r = g(e, this), n = this.#y(t, r);
774
+ } else r = s(e, this), n = this.#b(t, r);
762
775
  if ("select" in e) {
763
- if (r ??= g(e, this), !this.#n.has(t)) {
776
+ if (r ??= s(e, this), !this.#n.has(t)) {
764
777
  let e = this.#e.registerSelection(this.#t, t, r);
765
778
  this.#r.set(t, e), this.#n.set(t, (t) => {
766
779
  e.set(t), this.#e.flushNow();
@@ -768,33 +781,33 @@ var C = class {
768
781
  }
769
782
  n(r);
770
783
  }
771
- return this.#i.set(t, e), this.#g(e), n;
772
- }
773
- allocateSetter(e, n, r = !1) {
774
- if (t(e), this.#n.has(e)) throw Error("Setter already allocated for parameter: " + e);
775
- let i = this.#e.registerBase(this.#t, e, n, { notify: !r });
776
- this.#r.set(e, i);
777
- let a = (e) => {
778
- i.set(e), this.#e.flushNow();
784
+ return this.#i.set(t, e), this.#_(e), n;
785
+ }
786
+ allocateSetter(e, t, n = !1) {
787
+ if (_(e), this.#n.has(e)) throw Error("Setter already allocated for parameter: " + e);
788
+ let r = this.#e.registerBase(this.#t, e, t, { notify: !n });
789
+ this.#r.set(e, r);
790
+ let i = (e) => {
791
+ r.set(e), this.#e.flushNow();
779
792
  };
780
- return this.#n.set(e, a), a;
793
+ return this.#n.set(e, i), i;
781
794
  }
782
- setValue(e, n, r) {
783
- t(e);
784
- let i = this.#n.get(e);
785
- if (!i) throw Error("Writable parameter not found in this scope: " + e);
786
- i(n, r);
795
+ setValue(e, t, n) {
796
+ _(e);
797
+ let r = this.#n.get(e);
798
+ if (!r) throw Error("Writable parameter not found in this scope: " + e);
799
+ r(t, n);
787
800
  }
788
801
  getValue(e) {
789
802
  return !this.#r.has(e) && this.hasLocalParam(e) && this.#e.resolve(this.#t, e), this.#r.get(e)?.get();
790
803
  }
791
804
  getParamRef(e) {
792
- t(e);
793
- let n = this.findRuntimeForParam(e);
794
- if (n) return n.#r.has(e) || n.#e.resolve(n.#t, e), n.#r.get(e);
805
+ _(e);
806
+ let t = this.findRuntimeForParam(e);
807
+ if (t) return t.#r.has(e) || t.#e.resolve(t.#t, e), t.#r.get(e);
795
808
  }
796
809
  getTargetValue(e) {
797
- return t(e), this.#l.get(e)?.target ?? this.#u.get(e)?.target ?? this.getValue(e);
810
+ return _(e), this.#l.get(e)?.target ?? this.#u.get(e)?.target ?? this.getValue(e);
798
811
  }
799
812
  subscribe(e, t) {
800
813
  let n = this.getParamRef(e);
@@ -811,16 +824,16 @@ var C = class {
811
824
  return this.#i;
812
825
  }
813
826
  hasLocalParam(e) {
814
- t(e);
815
- let n = this.#i.get(e);
816
- return this.#r.has(e) || this.#a.has(e) || n !== void 0 && "expr" in n;
827
+ _(e);
828
+ let t = this.#i.get(e);
829
+ return this.#r.has(e) || this.#a.has(e) || t !== void 0 && "expr" in t;
817
830
  }
818
831
  isPendingParam(e) {
819
832
  let t = this.findRuntimeForParam(e);
820
833
  return t !== void 0 && !t.#r.has(e);
821
834
  }
822
835
  hasConfiguredParamInScopeChain(e) {
823
- return t(e), this.#i.has(e) ? !0 : this.#d()?.hasConfiguredParamInScopeChain(e) ?? !1;
836
+ return _(e), this.#i.has(e) ? !0 : this.#d()?.hasConfiguredParamInScopeChain(e) ?? !1;
824
837
  }
825
838
  findRuntimeForParam(e) {
826
839
  return this.hasLocalParam(e) ? this : this.#d()?.findRuntimeForParam(e);
@@ -861,12 +874,15 @@ var C = class {
861
874
  }
862
875
  return {
863
876
  scopeId: this.#t,
864
- disposed: this.#h,
877
+ disposed: this.#g,
865
878
  params: e
866
879
  };
867
880
  }
881
+ getSpecLocation(e, t) {
882
+ return f(e, this.#h, t);
883
+ }
868
884
  createExpression(e) {
869
- return this.#e.createExpression(this.#t, e, this.#_);
885
+ return this.#e.createExpression(this.#t, typeof e == "string" ? e : e.expr, this.#v(typeof e == "string" ? void 0 : e));
870
886
  }
871
887
  watchExpression(e, t, n = {}) {
872
888
  let r = this.createExpression(e), i = r.subscribe(t);
@@ -893,7 +909,7 @@ var C = class {
893
909
  cancelUpdate(e) {
894
910
  this.#e.cancelUpdate(e);
895
911
  }
896
- #y(e, t) {
912
+ #b(e, t) {
897
913
  let n = this.#e.registerBase(this.#t, e, t);
898
914
  this.#r.set(e, n);
899
915
  let r = (e) => {
@@ -901,19 +917,19 @@ var C = class {
901
917
  };
902
918
  return this.#n.set(e, r), r;
903
919
  }
904
- #b(e, t, n) {
905
- let r = this.#C(e, t, n), i = (t, n) => {
906
- this.#w(e, r, t, n);
920
+ #x(e, t, n) {
921
+ let r = this.#w(e, t, n), i = (t, n) => {
922
+ this.#T(e, r, t, n);
907
923
  };
908
924
  return this.#n.set(e, i), i;
909
925
  }
910
- #x(e, t, n) {
911
- let r = this.createExpression(t), i = this.#C(e, r(null), n), a = r.subscribe(() => {
912
- this.#w(e, i, r(null), { animate: !this.#m });
926
+ #S(e, t, n) {
927
+ let r = this.createExpression(t), i = this.#w(e, r(null), n), a = r.subscribe(() => {
928
+ this.#T(e, i, r(null), { animate: !this.#m });
913
929
  });
914
930
  this.#e.addScopeDisposer(this.#t, a);
915
931
  }
916
- #S(e, t, n) {
932
+ #C(e, t, n) {
917
933
  let r = this.createExpression(t), i = r(null), a = this.#e.registerBase(this.#t, e, i);
918
934
  this.#r.set(e, a);
919
935
  let o = {
@@ -928,12 +944,12 @@ var C = class {
928
944
  clearTimeout(o.timeout), c(), this.#u.delete(e);
929
945
  });
930
946
  }
931
- #C(e, t, n) {
932
- let r = w(e, t), i = this.#e.registerBase(this.#t, e, r);
947
+ #w(e, t, n) {
948
+ let r = E(e, t), i = this.#e.registerBase(this.#t, e, r);
933
949
  this.#r.set(e, i);
934
950
  let a = this.#p;
935
951
  if (!a) throw Error(`The parameter "${e}" uses transition but no animator is available.`);
936
- let o = Se(a, ({ value: e }) => {
952
+ let o = w(a, ({ value: e }) => {
937
953
  i.set(e), this.#e.flushNow();
938
954
  }, n.halfLife ?? 80, n.epsilon ?? .01, { value: i.get() }), s = {
939
955
  target: i.get(),
@@ -944,8 +960,8 @@ var C = class {
944
960
  };
945
961
  return this.#l.set(e, s), this.#e.addScopeDisposer(this.#t, s.dispose), s;
946
962
  }
947
- #w(e, t, n, r = {}) {
948
- let i = w(e, n);
963
+ #T(e, t, n, r = {}) {
964
+ let i = E(e, n);
949
965
  t.target = i, r.animate === !1 ? t.smoother.snap({ value: i }) : t.smoother({ value: i });
950
966
  }
951
967
  evaluateAndGet(e) {
@@ -964,15 +980,10 @@ var C = class {
964
980
  this.#m = !1;
965
981
  }
966
982
  dispose() {
967
- this.#h || (this.#h = !0, this.#e.disposeScope(this.#t), this.#n.clear(), this.#r.clear(), this.#i.clear(), this.#a.clear(), this.#o.clear(), this.#l.clear(), this.#u.clear());
968
- }
969
- hasPointSelections() {
970
- for (let e of this.#i.values()) if (i(e)) {
971
- let t = e.select;
972
- if (p(t)) {
973
- if (t == "point") return !0;
974
- } else if (t.type == "point") return !0;
975
- }
983
+ this.#g || (this.#g = !0, this.#e.disposeScope(this.#t), this.#n.clear(), this.#r.clear(), this.#i.clear(), this.#a.clear(), this.#o.clear(), this.#l.clear(), this.#u.clear());
984
+ }
985
+ hasPointSelections({ inherited: e = !1 } = {}) {
986
+ for (let t = this; t; t = e ? t.#d() : void 0) for (let n of t.#i.values()) if (l(n) && (n.select === "point" || typeof n.select == "object" && n.select.type === "point") && (!e || this.findConfiguredParam(n.name).config === n)) return !0;
976
987
  return !1;
977
988
  }
978
989
  };
@@ -997,59 +1008,63 @@ function Te(e) {
997
1008
  if (n.halfLife != null && (!Number.isFinite(n.halfLife) || n.halfLife <= 0)) throw Error(`The transition halfLife for parameter "${t}" must be a positive finite number.`);
998
1009
  if (n.epsilon != null && (!Number.isFinite(n.epsilon) || n.epsilon < 0)) throw Error(`The transition epsilon for parameter "${t}" must be a non-negative finite number.`);
999
1010
  }
1000
- function w(e, t) {
1011
+ function E(e, t) {
1001
1012
  if (typeof t != "number" || !Number.isFinite(t)) throw Error(`Transitioned parameter "${e}" must have a finite numeric value.`);
1002
1013
  return t;
1003
1014
  }
1004
1015
  //#endregion
1005
1016
  //#region ../core/src/view/layout/flexLayout.js
1006
- function Ee(e, t, { spacing: n, devicePixelRatio: r, offset: i, reverse: a } = {}) {
1007
- n ||= 0, i ||= 0;
1008
- let o = Ne(e, t, n), s = 0, c = 0;
1009
- for (let t = 0; t < e.length; t++) s += o[t], O(e[t]) || c++;
1010
- let l = s + Math.max(0, c - 1) * n, u = r === void 0 ? (e) => e : (e) => Math.round(e * r) / r, d = 0, f = [], p = (e) => {
1017
+ function Ee(e, t, n = {}) {
1018
+ let { sizes: r } = Ie(e, t, n.spacing || 0);
1019
+ return De(e, r, t, n);
1020
+ }
1021
+ function De(e, t, n, { spacing: r, devicePixelRatio: i, offset: a, reverse: o } = {}) {
1022
+ r ||= 0, a ||= 0;
1023
+ let s = 0, c = 0;
1024
+ for (let n = 0; n < e.length; n++) s += t[n], k(e[n]) || c++;
1025
+ let l = s + Math.max(0, c - 1) * r, u = i === void 0 ? (e) => e : (e) => Math.round(e * i) / i, d = 0, f = [], p = (e) => {
1011
1026
  let t = d;
1012
1027
  if (!t) return;
1013
- let r = (e ? n : 0) * (a ? -1 : 1);
1014
- m -= r;
1028
+ let n = (e ? r : 0) * (o ? -1 : 1);
1029
+ m -= n;
1015
1030
  for (let e = 0; e < t; e++) f.push({
1016
- location: m + (e + 1) / (t + 1) * r,
1031
+ location: m + (e + 1) / (t + 1) * n,
1017
1032
  size: 0
1018
1033
  });
1019
- m += r, d = 0;
1020
- }, m = a ? Math.max(t, l) : 0 + i;
1021
- if (e.length == 1 && O(e[0])) return [{
1034
+ m += n, d = 0;
1035
+ }, m = o ? Math.max(n, l) : 0 + a;
1036
+ if (e.length == 1 && k(e[0])) return [{
1022
1037
  location: m,
1023
1038
  size: 0
1024
1039
  }];
1025
- for (let t = 0; t < e.length; t++) {
1026
- let r = e[t];
1027
- if (O(r)) d++;
1040
+ for (let n = 0; n < e.length; n++) {
1041
+ let i = e[n];
1042
+ if (k(i)) d++;
1028
1043
  else {
1029
1044
  p(f.length > 0);
1030
- let e = o[t];
1031
- a && (m -= e), f.push({
1045
+ let e = t[n];
1046
+ o && (m -= e), f.push({
1032
1047
  location: u(m),
1033
1048
  size: u(e)
1034
- }), a ? m -= n : m += e + n;
1049
+ }), o ? m -= r : m += e + r;
1035
1050
  }
1036
1051
  }
1037
- return m += a ? n : -n, p(!1), f;
1052
+ return m += o ? r : -r, p(!1), f;
1038
1053
  }
1039
- function De(e, { spacing: t } = { spacing: 0 }) {
1054
+ function Oe(e, { spacing: t } = { spacing: 0 }) {
1040
1055
  let n = 0;
1041
- for (let r of e) n += N(r) + (O(r) ? 0 : t);
1056
+ for (let r of e) n += N(r) + (k(r) ? 0 : t);
1042
1057
  return Math.max(0, n - t);
1043
1058
  }
1044
- function Oe(e, t, { spacing: n = 0 } = {}) {
1059
+ function ke(e, t, { spacing: n = 0 } = {}) {
1045
1060
  let r = [], i = [], a = 0, o = 0;
1046
1061
  for (let [s, c] of e.entries()) {
1047
- let e = N(c), l = !O(c), u = o && l ? n : 0;
1062
+ let e = N(c), l = !k(c), u = o && l ? n : 0;
1048
1063
  i.length && a + u + e > t && (r.push(i), i = [], a = 0, o = 0), i.push(s), a += (o && l ? n : 0) + e, o += +!!l;
1049
1064
  }
1050
1065
  return i.length && r.push(i), r;
1051
1066
  }
1052
- function ke(e) {
1067
+ function Ae(e) {
1053
1068
  let t = 0, n = 0, r = 0, i, a = !0;
1054
1069
  for (let o of e) {
1055
1070
  t = Math.max(t, o.px ?? 0), n = Math.max(n, o.grow ?? 0), r = Math.max(r, N(o));
@@ -1063,21 +1078,21 @@ function ke(e) {
1063
1078
  maxPx: a ? i : void 0
1064
1079
  });
1065
1080
  }
1066
- function Ae(e) {
1067
- let t = {
1068
- px: 0,
1069
- grow: 0,
1070
- minPx: 0,
1071
- maxPx: 0
1072
- }, n = !0;
1073
- for (let r of e) {
1074
- t.px += k(r.px), t.grow += k(r.grow), t.minPx += N(r);
1075
- let e = P(r);
1076
- e === void 0 ? n = !1 : t.maxPx += e;
1077
- }
1078
- return n || delete t.maxPx, L(t);
1079
- }
1080
- var T = class e {
1081
+ function je(e, t = 0, n = 0) {
1082
+ let r = Math.max(0, e.length - 1) * t, i = {
1083
+ px: r,
1084
+ grow: e.length ? 0 : n,
1085
+ minPx: r,
1086
+ maxPx: r
1087
+ }, a = e.length > 0;
1088
+ for (let t of e) {
1089
+ i.px += A(t.px), i.grow += A(t.grow), i.minPx += N(t);
1090
+ let e = P(t);
1091
+ e === void 0 ? a = !1 : i.maxPx += e;
1092
+ }
1093
+ return a || delete i.maxPx, L(i);
1094
+ }
1095
+ var D = class e {
1081
1096
  constructor(e, t) {
1082
1097
  this.width = e, this.height = t;
1083
1098
  }
@@ -1093,78 +1108,87 @@ var T = class e {
1093
1108
  isGrowing() {
1094
1109
  return !!(this.width.grow || this.height.grow);
1095
1110
  }
1096
- }, E = Object.freeze({
1111
+ }, Me = Object.freeze({
1097
1112
  px: 0,
1098
1113
  grow: 0
1099
- }), D = new T(E, E);
1100
- function O(e) {
1114
+ }), O = new D(Me, Me);
1115
+ function k(e) {
1101
1116
  return !e.px && !e.grow && !e.minPx;
1102
1117
  }
1103
- function je(e, t) {
1118
+ function Ne(e, t) {
1104
1119
  return !e || !t ? !1 : e.px === t.px && e.grow === t.grow && e.minPx === t.minPx && e.maxPx === t.maxPx;
1105
1120
  }
1106
- function k(e) {
1121
+ function A(e) {
1107
1122
  return e || 0;
1108
1123
  }
1109
- function Me(e) {
1110
- return e && (c(e.px) || c(e.grow) || c(e.minPx) || c(e.maxPx));
1124
+ function Pe(t) {
1125
+ return t && (e(t.px) || e(t.grow) || e(t.minPx) || e(t.maxPx));
1111
1126
  }
1112
- function A(e) {
1113
- if (q(e)) throw Error("parseSizeDef does not accept step-based sizes.");
1114
- if (Me(e)) return j(e), L(e);
1115
- if (c(e)) return {
1116
- px: e,
1127
+ function Fe(t) {
1128
+ if (q(t)) throw Error("parseSizeDef does not accept step-based sizes.");
1129
+ if (Pe(t)) return j(t), L(t);
1130
+ if (e(t)) return {
1131
+ px: t,
1117
1132
  grow: 0
1118
1133
  };
1119
- if (e === "container" || !e) return {
1134
+ if (t === "container" || !t) return {
1120
1135
  px: 0,
1121
1136
  grow: 1
1122
1137
  };
1123
- throw Error(`Invalid sizeDef: ${e}`);
1138
+ throw Error(`Invalid sizeDef: ${t}`);
1124
1139
  }
1125
- function Ne(e, t, n) {
1140
+ function Ie(e, t, n = 0) {
1126
1141
  let r = !1;
1127
1142
  for (let t of e) j(t), r ||= F(t);
1128
- if (!r) return Pe(e, t, n);
1143
+ if (!r) return Le(e, t, n);
1129
1144
  let i = Array(e.length).fill(0), a = [];
1130
- for (let t = 0; t < e.length; t++) O(e[t]) || a.push(t);
1145
+ for (let t = 0; t < e.length; t++) k(e[t]) || a.push(t);
1131
1146
  let o = Math.max(0, a.length - 1) * n, s = Math.max(0, t - o), c = /* @__PURE__ */ new Set();
1132
1147
  for (let t of a) {
1133
1148
  let n = e[t];
1134
- k(n.grow) || (i[t] = M(k(n.px), n), c.add(t));
1149
+ A(n.grow) || (i[t] = M(A(n.px), n), c.add(t));
1135
1150
  }
1151
+ let l = 0;
1136
1152
  for (;;) {
1137
1153
  let t = 0, n = 0, r = 0;
1138
- for (let o of a) c.has(o) ? r += i[o] : (t += k(e[o].px), n += k(e[o].grow));
1154
+ for (let o of a) c.has(o) ? r += i[o] : (t += A(e[o].px), n += A(e[o].grow));
1139
1155
  if (!n) {
1140
- for (let t of a) c.has(t) || (i[t] = M(k(e[t].px), e[t]), c.add(t));
1156
+ for (let t of a) c.has(t) || (i[t] = M(A(e[t].px), e[t]), c.add(t));
1141
1157
  break;
1142
1158
  }
1143
- let o = Math.max(0, s - r - t), l = 0, u = [], d = [];
1159
+ let o = Math.max(0, s - r - t);
1160
+ l = o / n;
1161
+ let u = 0, d = [], f = [];
1144
1162
  for (let t of a) {
1145
1163
  if (c.has(t)) continue;
1146
- let r = e[t], a = k(r.px) + k(r.grow) / n * o, s = M(a, r);
1164
+ let r = e[t], a = A(r.px) + A(r.grow) / n * o, s = M(a, r);
1147
1165
  i[t] = s;
1148
- let f = s - a;
1149
- l += f, f > 0 ? u.push(t) : f < 0 && d.push(t);
1166
+ let l = s - a;
1167
+ u += l, l > 0 ? d.push(t) : l < 0 && f.push(t);
1150
1168
  }
1151
- if (!u.length && !d.length) break;
1152
- if (l > 0) for (let e of u) c.add(e);
1153
- else if (l < 0) for (let e of d) c.add(e);
1169
+ if (!d.length && !f.length) break;
1170
+ if (u > 0) for (let e of d) c.add(e);
1171
+ else if (u < 0) for (let e of f) c.add(e);
1154
1172
  else for (let e of a) c.add(e);
1155
1173
  }
1156
- return i;
1174
+ return {
1175
+ sizes: i,
1176
+ growth: l
1177
+ };
1157
1178
  }
1158
- function Pe(e, t, n) {
1179
+ function Le(e, t, n) {
1159
1180
  let r = 0, i = 0;
1160
- for (let t of e) r += k(t.px) + (O(t) ? 0 : n), i += k(t.grow);
1181
+ for (let t of e) r += A(t.px) + (k(t) ? 0 : n), i += A(t.grow);
1161
1182
  r -= n;
1162
1183
  let a = Math.max(0, t - r), o = Array(e.length);
1163
1184
  for (let t = 0; t < e.length; t++) {
1164
1185
  let n = e[t];
1165
- o[t] = O(n) ? 0 : k(n.px) + (i ? k(n.grow) / i * a : 0);
1186
+ o[t] = k(n) ? 0 : A(n.px) + (i ? A(n.grow) / i * a : 0);
1166
1187
  }
1167
- return o;
1188
+ return {
1189
+ sizes: o,
1190
+ growth: i ? a / i : 0
1191
+ };
1168
1192
  }
1169
1193
  function j(e) {
1170
1194
  if (e.minPx !== void 0 && e.maxPx !== void 0 && e.minPx > e.maxPx) throw Error("SizeDef minPx cannot be greater than maxPx.");
@@ -1173,10 +1197,10 @@ function M(e, t) {
1173
1197
  return Math.min(Math.max(e, t.minPx ?? 0), t.maxPx ?? Infinity);
1174
1198
  }
1175
1199
  function N(e) {
1176
- return M(k(e.px), e);
1200
+ return M(A(e.px), e);
1177
1201
  }
1178
1202
  function P(e) {
1179
- return e.maxPx ?? (k(e.grow) ? void 0 : N(e));
1203
+ return e.maxPx ?? (A(e.grow) ? void 0 : N(e));
1180
1204
  }
1181
1205
  function F(e) {
1182
1206
  return e.minPx !== void 0 || e.maxPx !== void 0;
@@ -1191,7 +1215,7 @@ function I(e, t) {
1191
1215
  }
1192
1216
  function L(e) {
1193
1217
  let t = {}, n = e.px !== void 0, r = e.grow !== void 0, i = F(e);
1194
- return e.px ? t.px = e.px : e.px === 0 && (t.px = 0), e.grow ? t.grow = e.grow : e.grow === 0 ? t.grow = 0 : !n && !r && i && (t.grow = 1), e.minPx && e.minPx > k(e.px) && (t.minPx = e.minPx), e.maxPx !== void 0 && (k(t.grow) || e.maxPx < k(e.px)) && (t.maxPx = e.maxPx), t;
1218
+ return e.px ? t.px = e.px : e.px === 0 && (t.px = 0), e.grow ? t.grow = e.grow : e.grow === 0 ? t.grow = 0 : !n && !r && i && (t.grow = 1), e.minPx && e.minPx > A(e.px) && (t.minPx = e.minPx), e.maxPx !== void 0 && (A(t.grow) || e.maxPx < A(e.px)) && (t.maxPx = e.maxPx), t;
1195
1219
  }
1196
1220
  //#endregion
1197
1221
  //#region ../core/src/view/layout/padding.js
@@ -1242,23 +1266,23 @@ var R = class e {
1242
1266
  return new e(t, t, t, t);
1243
1267
  }
1244
1268
  };
1245
- function Fe(e, t) {
1246
- return t ? new R(t.top === !1 ? 0 : e.top, t.right === !1 ? 0 : e.right, t.bottom === !1 ? 0 : e.bottom, t.left === !1 ? 0 : e.left) : e;
1269
+ function Re(e, t, n = R.zero()) {
1270
+ return t ? new R(t.top === !1 ? n.top : e.top, t.right === !1 ? n.right : e.right, t.bottom === !1 ? n.bottom : e.bottom, t.left === !1 ? n.left : e.left) : e;
1247
1271
  }
1248
1272
  var z = R.createUniformPadding(0);
1249
1273
  Object.freeze(z);
1250
1274
  //#endregion
1251
1275
  //#region ../core/src/utils/url.js
1252
- var Ie = /^([A-Za-z]+:)?\/\//;
1276
+ var ze = /^([A-Za-z]+:)?\/\//;
1253
1277
  function B(e, t) {
1254
- if (t && Ie.test(t)) return t;
1278
+ if (t && ze.test(t)) return t;
1255
1279
  let n = typeof e == "function" ? e() : e;
1256
1280
  if (!n) return t;
1257
1281
  if (!t) return n;
1258
1282
  if (/[#?]/.test(n)) throw Error(`Cannot append to a url with query or hash. Append: ${t}, base: ${n}`);
1259
- return Re(n) + t;
1283
+ return Ve(n) + t;
1260
1284
  }
1261
- function Le(e, t, n = ze()) {
1285
+ function Be(e, t, n = He()) {
1262
1286
  let r = typeof e == "function" ? e() : e;
1263
1287
  if (!t) return r;
1264
1288
  try {
@@ -1270,20 +1294,20 @@ function Le(e, t, n = ze()) {
1270
1294
  } catch {}
1271
1295
  return B(r, t);
1272
1296
  }
1273
- function Re(e) {
1297
+ function Ve(e) {
1274
1298
  let t = e.replace(/[^/]*$/, "");
1275
1299
  return t === "" ? void 0 : t.endsWith("://") ? e + "/" : t;
1276
1300
  }
1277
- function ze() {
1301
+ function He() {
1278
1302
  if (typeof document < "u" && document.baseURI) return document.baseURI;
1279
1303
  if (typeof window < "u" && window.location?.href) return window.location.href;
1280
1304
  }
1281
1305
  //#endregion
1282
1306
  //#region ../core/src/utils/addBaseUrl.js
1283
- function Be(e, t) {
1307
+ function Ue(e, t) {
1284
1308
  return !t || /^(data:|([A-Za-z]+:)?\/\/)/.test(e) || e.startsWith("/") ? e : (t.endsWith("/") || (t += "/"), t + e);
1285
1309
  }
1286
- function Ve(e) {
1310
+ function We(e) {
1287
1311
  if (!e) return e;
1288
1312
  if (/[?#]/.test(e)) throw Error(`Invalid base URL: ${e} - cannot contain query or hash.`);
1289
1313
  return e.endsWith("/") ? e : e + "/";
@@ -1291,42 +1315,42 @@ function Ve(e) {
1291
1315
  //#endregion
1292
1316
  //#region ../core/src/config/mergeConfig.js
1293
1317
  function V(e) {
1294
- return l(e) && !Array.isArray(e);
1318
+ return te(e) && !Array.isArray(e) && !("expr" in e && typeof e.expr == "string");
1295
1319
  }
1296
- function He(e) {
1320
+ function Ge(e) {
1297
1321
  let t = {};
1298
1322
  for (let [n, r] of Object.entries(e)) t[n] = H(r);
1299
1323
  return t;
1300
1324
  }
1301
1325
  function H(e) {
1302
- return Array.isArray(e) ? e.map(H) : V(e) ? He(e) : e;
1326
+ return Array.isArray(e) ? e.map(H) : V(e) ? Ge(e) : e;
1303
1327
  }
1304
- function Ue(e, t) {
1328
+ function Ke(e, t) {
1305
1329
  for (let [n, r] of Object.entries(t)) {
1306
1330
  if (r === void 0) continue;
1307
1331
  let t = e[n];
1308
- V(r) && V(t) ? Ue(t, r) : e[n] = H(r);
1332
+ V(r) && V(t) ? Ke(t, r) : e[n] = H(r);
1309
1333
  }
1310
1334
  return e;
1311
1335
  }
1312
- function We(e) {
1336
+ function qe(e) {
1313
1337
  let t = {};
1314
- for (let n of e) n && Ue(t, n);
1338
+ for (let n of e) n && Ke(t, n);
1315
1339
  return t;
1316
1340
  }
1317
1341
  //#endregion
1318
1342
  //#region ../core/src/view/viewChrome.js
1319
1343
  var U = /* @__PURE__ */ new WeakMap();
1320
- function Ge(e, t) {
1344
+ function Je(e, t) {
1321
1345
  U.set(e, t);
1322
1346
  }
1323
- function Ke(e) {
1347
+ function Ye(e) {
1324
1348
  return U.get(e);
1325
1349
  }
1326
- function qe(e) {
1350
+ function Xe(e) {
1327
1351
  return U.has(e);
1328
1352
  }
1329
- function Je(e) {
1353
+ function Ze(e) {
1330
1354
  let t = e;
1331
1355
  for (; t;) {
1332
1356
  let n = U.get(t);
@@ -1337,16 +1361,16 @@ function Je(e) {
1337
1361
  }
1338
1362
  //#endregion
1339
1363
  //#region ../core/src/view/postScaleParams.js
1340
- var Ye = /* @__PURE__ */ new WeakMap();
1341
- function Xe(e, t) {
1342
- Ye.set(e, t);
1364
+ var Qe = /* @__PURE__ */ new WeakMap();
1365
+ function $e(e, t) {
1366
+ Qe.set(e, t);
1343
1367
  }
1344
- function Ze(e) {
1345
- return Ye.get(e);
1368
+ function et(e) {
1369
+ return Qe.get(e);
1346
1370
  }
1347
1371
  //#endregion
1348
1372
  //#region ../core/src/data/namedDataScope.js
1349
- var Qe = class {
1373
+ var tt = class {
1350
1374
  name;
1351
1375
  owner;
1352
1376
  getDefaultData;
@@ -1384,13 +1408,13 @@ var Qe = class {
1384
1408
  dispose() {
1385
1409
  this.#e = void 0, this.#t = !1, this.#n++, this.#r = !0;
1386
1410
  }
1387
- }, $e = class {
1411
+ }, nt = class {
1388
1412
  view;
1389
1413
  #e = /* @__PURE__ */ new Map();
1390
1414
  #t = /* @__PURE__ */ new Map();
1391
1415
  constructor(e) {
1392
1416
  this.view = e;
1393
- for (let [t, n] of Object.entries(e.spec.datasets ?? {})) this.#e.set(t, new Qe(t, e, () => n));
1417
+ for (let [t, n] of Object.entries(e.spec.datasets ?? {})) this.#e.set(t, new tt(t, e, () => n));
1394
1418
  }
1395
1419
  getLocalBinding(e) {
1396
1420
  return this.#e.get(e);
@@ -1404,7 +1428,7 @@ var Qe = class {
1404
1428
  let n = this.view.dataParent?.namedDataScope;
1405
1429
  if (n) return n.resolve(e);
1406
1430
  let r = this.#t.get(e);
1407
- return r || (r = new Qe(e, void 0, () => this.view.context.getNamedDataFromProvider(e)), this.#t.set(e, r)), r;
1431
+ return r || (r = new tt(e, void 0, () => this.view.context.getNamedDataFromProvider(e)), this.#t.set(e, r)), r;
1408
1432
  }
1409
1433
  dispose() {
1410
1434
  for (let e of this.#e.values()) e.dispose();
@@ -1412,7 +1436,7 @@ var Qe = class {
1412
1436
  for (let e of this.#t.values()) e.dispose();
1413
1437
  this.#t.clear();
1414
1438
  }
1415
- }, W = "VISIT_SKIP", G = "VISIT_STOP", K = (e) => e, et = class {
1439
+ }, W = "VISIT_SKIP", G = "VISIT_STOP", K = (e) => e, rt = class {
1416
1440
  spec;
1417
1441
  namedDataScope;
1418
1442
  #e;
@@ -1431,31 +1455,33 @@ var Qe = class {
1431
1455
  #f = [];
1432
1456
  #p = "none";
1433
1457
  #m = /* @__PURE__ */ new Map();
1434
- facetCoords = new d([], JSON.stringify);
1435
- constructor(e, t, n, r, i, o = {}) {
1458
+ facetCoords = new p([], JSON.stringify);
1459
+ layoutCoords;
1460
+ constructor(e, n, r, i, a, o = {}) {
1436
1461
  if (!e) throw Error("View spec must be defined!");
1437
- if (this.context = t, this.layoutParent = n, this.dataParent = r, this.#t = i, this.spec = e, this.namedDataScope = new $e(this), r && e.theme !== void 0) throw Error("\"theme\" is only supported at the root specification. Use \"config\" and \"style\" for subtree customization.");
1438
- let s = r ? r.getConfigScopes() : [t.getBaseConfig()], c = e.config;
1462
+ if (this.context = n, this.layoutParent = r, this.dataParent = i, o.chrome && Je(this, "excludeSubtree"), this.#t = a, this.spec = e, this.namedDataScope = new nt(this), i && e.theme !== void 0) throw Error("\"theme\" is only supported at the root specification. Use \"config\" and \"style\" for subtree customization.");
1463
+ let s = i ? i.getConfigScopes() : [n.getBaseConfig()], c = e.config;
1439
1464
  this.#e = [...s, c].filter((e) => !!e), this.resolutions = {
1440
1465
  scale: {},
1441
1466
  axis: {},
1442
1467
  legend: {}
1443
- }, ie(this), this.options = {
1468
+ }, oe(this), this.options = {
1444
1469
  inheritEncoding: !1,
1445
1470
  layoutSizeParams: "own",
1446
1471
  ...o
1447
1472
  }, this.flowHandle = void 0, this.needsAxes = {
1448
1473
  x: !1,
1449
1474
  y: !1
1450
- }, this.paramRuntime = new C(() => this.dataParent?.paramRuntime, (e) => this.getScaleResolution(e), t.animator, {
1475
+ }, this.paramRuntime = new T(() => this.dataParent?.paramRuntime, (e) => this.getScaleResolution(e), n.animator, {
1451
1476
  settleTemporalUpdatesImmediately: !0,
1452
- onError: t.reportError
1453
- }), this.paramRuntime.setSelectionSource(this), "mark" in e && this.paramRuntime.registerLazyExpression("zoomLevel", "zoomLevel()", () => ae("The automatic zoomLevel parameter is deprecated. Use zoomLevel() or an explicit channel such as zoomLevel(\"x\") instead."));
1454
- let l = [...e.params ?? [], ...Ze(e) ?? []];
1477
+ onError: n.reportError,
1478
+ getSpecOrigin: n.getSpecOrigin
1479
+ }), this.paramRuntime.setSelectionSource(this), "mark" in e && this.paramRuntime.registerLazyExpression("zoomLevel", "zoomLevel()", () => se("The automatic zoomLevel parameter is deprecated. Use zoomLevel() or an explicit channel such as zoomLevel(\"x\") instead."));
1480
+ let l = [...e.params ?? [], ...et(e) ?? []];
1455
1481
  for (let e of l) {
1456
1482
  if ("expr" in e) {
1457
- let { usesScaleHelper: t, globals: n } = a(e.expr), r = n.some((e) => this.paramRuntime.isPendingParam(e));
1458
- if (t || r) {
1483
+ let { usesScaleHelper: n, globals: r } = t(e.expr, this.paramRuntime.getSpecLocation(e, ["expr"])), i = r.some((e) => this.paramRuntime.isPendingParam(e));
1484
+ if (n || i) {
1459
1485
  this.paramRuntime.registerParam(e, { defer: !0 }), this.#d.push(e.name);
1460
1486
  continue;
1461
1487
  }
@@ -1480,18 +1506,18 @@ var Qe = class {
1480
1506
  return this.#t;
1481
1507
  }
1482
1508
  getConfig() {
1483
- return We(this.#e);
1509
+ return qe(this.#e);
1484
1510
  }
1485
1511
  getCursorSpec() {
1486
1512
  return this.spec.cursor;
1487
1513
  }
1488
1514
  getCursor() {
1489
1515
  let e = this.getCursorSpec();
1490
- return o(e) ? this.paramRuntime.evaluateAndGet(e.expr) : e;
1516
+ return h(e) ? this.paramRuntime.evaluateAndGet(e) : e;
1491
1517
  }
1492
1518
  watchCursor(e, t) {
1493
1519
  let n = this.getCursorSpec();
1494
- o(n) && this.paramRuntime.watchExpression(n.expr, e, {
1520
+ h(n) && this.paramRuntime.watchExpression(n, e, {
1495
1521
  scopeOwned: !1,
1496
1522
  registerDisposer: t
1497
1523
  });
@@ -1508,50 +1534,78 @@ var Qe = class {
1508
1534
  getOverhang() {
1509
1535
  return R.zero();
1510
1536
  }
1537
+ getStructuralOverhang() {
1538
+ return R.zero();
1539
+ }
1540
+ getStructuralSizeDefs(e) {
1541
+ let t = this.getStructuralOverhang();
1542
+ return {
1543
+ before: { px: t[e === "x" ? "left" : "top"] },
1544
+ after: { px: t[e === "x" ? "right" : "bottom"] }
1545
+ };
1546
+ }
1547
+ getAlignment(e) {
1548
+ let t = e === "x" ? "width" : "height";
1549
+ return {
1550
+ size: this.getViewportSize().subtractPadding(this.getOverhang())[t],
1551
+ before: 0,
1552
+ after: 0
1553
+ };
1554
+ }
1555
+ getAlignmentCoords(e) {
1556
+ return this.coords.shrink(this.getOverhang());
1557
+ }
1558
+ getLayoutFootprints() {
1559
+ return [{
1560
+ view: this,
1561
+ coords: this.coords.shrink(this.getOverhang()),
1562
+ chrome: !1
1563
+ }];
1564
+ }
1511
1565
  isScrollable() {
1512
1566
  return this.spec.viewportWidth != null || this.spec.viewportHeight != null;
1513
1567
  }
1514
1568
  getSize() {
1515
- return this._cache("size/size", () => this.isConfiguredVisible() ? new T(this.#g("width"), this.#g("height")) : D);
1569
+ return this._cache("size/size", () => this.isConfiguredVisible() ? new D(this.#g("width"), this.#g("height")) : O);
1516
1570
  }
1517
1571
  getViewportSize() {
1518
1572
  if (!this.isScrollable()) return this.getSize();
1519
- if (!this.isConfiguredVisible()) return D;
1573
+ if (!this.isConfiguredVisible()) return O;
1520
1574
  let e = this.getSize();
1521
- return new T(this.#g("viewportWidth") ?? e.width, this.#g("viewportHeight") ?? e.height);
1575
+ return new D(this.#g("viewportWidth") ?? e.width, this.#g("viewportHeight") ?? e.height);
1522
1576
  }
1523
1577
  #g(e) {
1524
- let { value: t, implicit: r } = this.#_(e), i = this.resolveSizeValue(e, t), a = q(i), o = e == "viewportWidth" || e == "viewportHeight";
1525
- if (a) {
1526
- if (o) throw new b(`Cannot use step-based size with "${e}"!`, this);
1527
- let t = this.#x(e, i), a = this.getScaleResolution(e == "width" ? "x" : "y")?.getScale();
1528
- if (a) {
1529
- let r;
1530
- if (v(a.type)) r = a.domain().length;
1531
- else if (["locus", "index"].includes(a.type)) {
1532
- let e = a.domain();
1533
- r = n(e) - e[0];
1534
- } else throw new b(`Cannot use step-based size with "${a.type}" scale!`, this);
1535
- let o = a;
1536
- r = _(r, o.paddingInner(), o.paddingOuter());
1537
- let s = e == "width" ? "xOffset" : "yOffset", c = this.getScaleResolution(s)?.getScale(), l = i.for ?? (c && v(c.type) ? "offset" : "position"), u = t;
1538
- if (l == "offset") {
1539
- if (!c || !v(c.type)) throw new b(`Cannot use ${e}.step.for = "offset" without a discrete ${s} scale!`, this);
1540
- let t = c, n = _(c.domain().length, t.paddingInner(), t.paddingOuter());
1541
- u *= n / (1 - o.paddingInner());
1578
+ let { value: t, implicit: n } = this.#_(e), r = this.resolveSizeValue(e, t), i = q(r), a = e == "viewportWidth" || e == "viewportHeight";
1579
+ if (i) {
1580
+ if (a) throw new b(`Cannot use step-based size with "${e}"!`, this);
1581
+ let t = this.#x(e, r), i = this.getScaleResolution(e == "width" ? "x" : "y")?.getScale();
1582
+ if (i) {
1583
+ let n;
1584
+ if (v(i.type)) n = i.domain().length;
1585
+ else if (["locus", "index"].includes(i.type)) {
1586
+ let e = i.domain();
1587
+ n = u(e) - e[0];
1588
+ } else throw new b(`Cannot use step-based size with "${i.type}" scale!`, this);
1589
+ let a = i;
1590
+ n = ie(n, a.paddingInner(), a.paddingOuter());
1591
+ let o = e == "width" ? "xOffset" : "yOffset", s = this.getScaleResolution(o)?.getScale(), c = r.for ?? (s && v(s.type) ? "offset" : "position"), l = t;
1592
+ if (c == "offset") {
1593
+ if (!s || !v(s.type)) throw new b(`Cannot use ${e}.step.for = "offset" without a discrete ${o} scale!`, this);
1594
+ let t = s, n = ie(s.domain().length, t.paddingInner(), t.paddingOuter());
1595
+ l *= n / (1 - a.paddingInner());
1542
1596
  }
1543
1597
  return {
1544
- px: r * u,
1598
+ px: n * l,
1545
1599
  grow: 0
1546
1600
  };
1547
1601
  }
1548
- if (r) return {
1602
+ if (n) return {
1549
1603
  px: t,
1550
1604
  grow: 0
1551
1605
  };
1552
1606
  throw new b(`Cannot use step-based size with "${e}"!`, this);
1553
1607
  }
1554
- return (i && A(i)) ?? (o ? void 0 : {
1608
+ return (r && Fe(r)) ?? (a ? void 0 : {
1555
1609
  px: 0,
1556
1610
  grow: 1
1557
1611
  });
@@ -1567,16 +1621,16 @@ var Qe = class {
1567
1621
  };
1568
1622
  }
1569
1623
  #v(e) {
1570
- if (Je(this)) return;
1624
+ if (Ze(this)) return;
1571
1625
  let t = this.getConfig().view;
1572
1626
  if (!t) return;
1573
1627
  let n = e == "width" ? "x" : "y", r = this.getScaleResolution(n)?.getResolvedScaleType();
1574
1628
  return r && !v(r) ? e == "width" ? t.continuousWidth : t.continuousHeight : (e == "width" ? t.discreteWidth : t.discreteHeight) ?? (t.step === void 0 ? void 0 : { step: t.step });
1575
1629
  }
1576
1630
  resolveSizeValue(e, t) {
1577
- if (!o(t)) return t;
1631
+ if (!h(t)) return t;
1578
1632
  let n = this.#C(e)();
1579
- if (at(n) || n === "container") return n;
1633
+ if (ct(n) || n === "container") return n;
1580
1634
  throw new b(`"${e}" ExprRef must resolve to a finite number or "container"!`, this);
1581
1635
  }
1582
1636
  registerSizeInvalidation() {
@@ -1594,7 +1648,7 @@ var Qe = class {
1594
1648
  let t = this.getSize()[e];
1595
1649
  this.invalidateSizeCache();
1596
1650
  let n = this.getSize()[e];
1597
- je(t, n) || this.context.requestLayoutReflow();
1651
+ Ne(t, n) || this.context.requestLayoutReflow();
1598
1652
  };
1599
1653
  if (i.addEventListener("domain", a), this.registerDisposer(() => i.removeEventListener("domain", a)), n.for != "position") {
1600
1654
  let t = e == "width" ? "xOffset" : "yOffset", n = this.getScaleResolution(t);
@@ -1603,11 +1657,11 @@ var Qe = class {
1603
1657
  }
1604
1658
  #b(e) {
1605
1659
  let { value: t } = this.#_(e);
1606
- o(t) ? this.#S(e, t.expr) : q(t) && o(t.step) && this.#S(e + ".step", t.step.expr);
1660
+ h(t) ? this.#S(e, t) : q(t) && h(t.step) && this.#S(e + ".step", t.step);
1607
1661
  }
1608
1662
  #x(e, t) {
1609
- let n = o(t.step) ? this.#C(e + ".step")() : t.step;
1610
- if (at(n)) return n;
1663
+ let n = h(t.step) ? this.#C(e + ".step")() : t.step;
1664
+ if (ct(n)) return n;
1611
1665
  throw new b(`"${e}.step" ExprRef must resolve to a finite number!`, this);
1612
1666
  }
1613
1667
  #S(e, t) {
@@ -1684,7 +1738,7 @@ var Qe = class {
1684
1738
  };
1685
1739
  }
1686
1740
  handleInteraction(e, t) {
1687
- t && e.type === "mousemove" && e.pointedViews.add(this);
1741
+ t && e.type === "mousemove" && e.pointedViews.set(this, e.facetId);
1688
1742
  let n = t ? this.#r : this.#i;
1689
1743
  for (let t of n[e.type] || []) t(e);
1690
1744
  }
@@ -1717,7 +1771,7 @@ var Qe = class {
1717
1771
  for (let e of this.#f) e();
1718
1772
  this.#f.length = 0;
1719
1773
  let e = this.flowHandle;
1720
- e?.collector && (this.context.dataFlow.pruneCollectorBranch(e.collector), this.context.dataFlow.removeCollector(e.collector)), e?.dataSource && e.dataSource.view === this && !e.dataSource.shareKey && this.context.dataFlow.removeDataSource(e.dataSource), this.paramRuntime.dispose(), this.namedDataScope.dispose(), this.context.dataFlow.loadingStatusRegistry.delete(this), this.flowHandle = void 0;
1774
+ e?.collector && (this.context.dataFlow.pruneCollectorBranch(e.collector), this.context.dataFlow.removeCollector(e.collector)), e?.dataSource && e.dataSource.view === this && !e.dataSource.shareKey && this.context.dataFlow.removeDataSource(e.dataSource), this.paramRuntime.dispose(), this.namedDataScope.dispose(), this.flowHandle = void 0, this.context.dataFlow.loadingStatusRegistry.delete(this);
1721
1775
  }
1722
1776
  registerDisposer(e) {
1723
1777
  this.#f.push(e);
@@ -1741,7 +1795,7 @@ var Qe = class {
1741
1795
  }
1742
1796
  }
1743
1797
  configureViewOpacity() {
1744
- (!this.opacityFunction || this.opacityFunction === K) && (this.opacityFunction = nt(this));
1798
+ (!this.opacityFunction || this.opacityFunction === K) && (this.opacityFunction = at(this));
1745
1799
  }
1746
1800
  finalizeParamRuntimeInitialization() {
1747
1801
  this.#l === void 0 ? this.paramRuntime.finalizeInitialization() : this.#T();
@@ -1753,7 +1807,9 @@ var Qe = class {
1753
1807
  return this.#s;
1754
1808
  }
1755
1809
  arrange(e, t, n = {}) {
1756
- if (n.firstFacet && this.facetCoords.clear(), this.facetCoords.set(n.facetId, m(t, f(n))), this.#a || this.#o) {
1810
+ if (this.layoutParent || this.visit((e) => {
1811
+ e.layoutCoords = void 0;
1812
+ }), this.layoutCoords = t, n.firstFacet && this.facetCoords.clear(), this.facetCoords.set(n.facetId, ee(t, m(n))), this.#a || this.#o) {
1757
1813
  let e = this.getOverhang(), n = this.layoutParent ? R.zero() : this.getPadding();
1758
1814
  this.#a?.(t.width - e.width - n.width), this.#o?.(t.height - e.height - n.height);
1759
1815
  }
@@ -1775,7 +1831,7 @@ var Qe = class {
1775
1831
  }
1776
1832
  getFacetFields(e) {
1777
1833
  let t = this.getEncoding().sample;
1778
- return te(t) ? [t.field] : this.options.inheritEncoding ? this.layoutParent?.getFacetFields(this) : [];
1834
+ return ne(t) ? [t.field] : this.options.inheritEncoding ? this.layoutParent?.getFacetFields(this) : [];
1779
1835
  }
1780
1836
  usesSampleFacetRendering() {
1781
1837
  return this.layoutParent?.usesSampleFacetRendering() ?? !1;
@@ -1787,15 +1843,23 @@ var Qe = class {
1787
1843
  };
1788
1844
  }
1789
1845
  getScaleResolution(e) {
1790
- let t = h(e);
1791
- return this.getDataAncestors().map((e) => e.resolutions.scale[t]).find((e) => e);
1846
+ return this.#E(e, "scale");
1792
1847
  }
1793
1848
  getAxisResolution(e) {
1794
- let t = h(e);
1795
- return this.getDataAncestors().map((e) => e.resolutions.axis[t]).find((e) => e);
1849
+ return this.#E(e, "axis");
1850
+ }
1851
+ #E(e, t) {
1852
+ let n = g(e);
1853
+ for (let e of this.getDataAncestors()) {
1854
+ let r = e.resolutions[t][n];
1855
+ if (r || e.isResolutionBoundary(n)) return r;
1856
+ }
1857
+ }
1858
+ isResolutionBoundary(e) {
1859
+ return this.options.resolutionBoundaryChannels?.some((t) => t === g(e)) ?? !1;
1796
1860
  }
1797
1861
  getLegendResolution(e) {
1798
- let t = h(e);
1862
+ let t = g(e);
1799
1863
  return this.getDataAncestors().map((e) => e.resolutions.legend[t]).find((e) => e);
1800
1864
  }
1801
1865
  getConfiguredResolution(e, t) {
@@ -1808,17 +1872,17 @@ var Qe = class {
1808
1872
  return "independent";
1809
1873
  }
1810
1874
  getBaseUrl() {
1811
- return B(() => this.dataParent?.getBaseUrl(), Ve(this.spec.baseUrl));
1875
+ return B(() => this.dataParent?.getBaseUrl(), We(this.spec.baseUrl));
1812
1876
  }
1813
1877
  isPickingSupported() {
1814
1878
  return !0;
1815
1879
  }
1816
1880
  getTitleText() {
1817
1881
  let e = this.spec.title;
1818
- if (e) return p(e) ? e : o(e.text) ? this.paramRuntime.evaluateAndGet(e.text.expr) : e.text;
1882
+ if (e) return i(e) ? e : h(e.text) ? this.paramRuntime.evaluateAndGet(e.text) : e.text;
1819
1883
  }
1820
1884
  _cache(e, t) {
1821
- return re(this, e, t);
1885
+ return ae(this, e, t);
1822
1886
  }
1823
1887
  _invalidateCacheByPrefix(e, t = "self") {
1824
1888
  switch (t) {
@@ -1836,16 +1900,16 @@ var Qe = class {
1836
1900
  }
1837
1901
  propagateInteraction(e) {}
1838
1902
  };
1839
- function tt(e) {
1903
+ function it(e) {
1840
1904
  return "unitsPerPixel" in e;
1841
1905
  }
1842
- function nt(e) {
1843
- let t = "opacity" in e.spec ? e.spec.opacity : void 0;
1844
- if (t !== void 0) {
1845
- if (c(t)) return (e) => e * t;
1846
- if (tt(t)) {
1847
- let n = (t) => {
1848
- let n = e.getScaleResolution(t), r = n?.getScale();
1906
+ function at(t) {
1907
+ let n = "opacity" in t.spec ? t.spec.opacity : void 0;
1908
+ if (n !== void 0) {
1909
+ if (e(n)) return (e) => e * n;
1910
+ if (it(n)) {
1911
+ let e = (e) => {
1912
+ let n = t.getScaleResolution(e), r = n?.getScale();
1849
1913
  if ([
1850
1914
  "linear",
1851
1915
  "index",
@@ -1854,46 +1918,46 @@ function nt(e) {
1854
1918
  scale: r,
1855
1919
  scaleResolution: n
1856
1920
  };
1857
- }, r = it(t.values, "opacity.values", e);
1858
- if (!s(t.unitsPerPixel)) throw new b("\"opacity.unitsPerPixel\" must be an array.", e);
1859
- let i = () => 1, a = [], c = () => {
1860
- let t = rt(it(a.map((e) => e()), "opacity.unitsPerPixel", e), r, e), n = ne().domain(t.unitsPerPixel).range(t.values).clamp(!0);
1921
+ }, r = st(n.values, "opacity.values", t);
1922
+ if (!o(n.unitsPerPixel)) throw new b("\"opacity.unitsPerPixel\" must be an array.", t);
1923
+ let i = () => 1, a = [], s = () => {
1924
+ let e = ot(st(a.map((e) => e()), "opacity.unitsPerPixel", t), r, t), n = re().domain(e.unitsPerPixel).range(e.values).clamp(!0);
1861
1925
  i = (e) => n(e);
1862
1926
  };
1863
- a = t.unitsPerPixel.map((t) => {
1864
- if (o(t)) {
1865
- let n = e.paramRuntime.watchExpression(t.expr, () => {
1866
- c(), e.context.animator.requestRender();
1927
+ a = n.unitsPerPixel.map((e) => {
1928
+ if (h(e)) {
1929
+ let n = t.paramRuntime.watchExpression(e, () => {
1930
+ s(), t.context.animator.requestRender();
1867
1931
  });
1868
1932
  return () => n(null);
1869
1933
  }
1870
- return () => t;
1871
- }), c();
1872
- let l = (e) => {
1934
+ return () => e;
1935
+ }), s();
1936
+ let c = (e) => {
1873
1937
  let t = e.scaleResolution.getAxisLength() || 1e3;
1874
- return ee(e.scale.domain()) / t;
1875
- }, u;
1876
- if (t.channel === "auto") {
1877
- let t = n("x"), r = n("y");
1878
- if (t && r) u = () => (l(t) + l(r)) / 2;
1879
- else if (t) u = () => l(t);
1880
- else if (r) u = () => l(r);
1881
- else throw new b("Cannot find a resolved quantitative x or y scale for dynamic opacity!", e);
1938
+ return d(e.scale.domain()) / t;
1939
+ }, l;
1940
+ if (n.channel === "auto") {
1941
+ let n = e("x"), r = e("y");
1942
+ if (n && r) l = () => (c(n) + c(r)) / 2;
1943
+ else if (n) l = () => c(n);
1944
+ else if (r) l = () => c(r);
1945
+ else throw new b("Cannot find a resolved quantitative x or y scale for dynamic opacity!", t);
1882
1946
  } else {
1883
- let r = t.channel ? n(t.channel) : n("x") ?? n("y");
1884
- if (!r) throw new b("Cannot find a resolved quantitative scale for dynamic opacity!", e);
1885
- u = () => l(r);
1947
+ let r = n.channel ? e(n.channel) : e("x") ?? e("y");
1948
+ if (!r) throw new b("Cannot find a resolved quantitative scale for dynamic opacity!", t);
1949
+ l = () => c(r);
1886
1950
  }
1887
- return (e) => i(u()) * e;
1951
+ return (e) => i(l()) * e;
1888
1952
  }
1889
- if (o(t)) {
1890
- let n = e.paramRuntime.watchExpression(t.expr, () => e.context.animator.requestRender());
1891
- return (e) => n(null) * e;
1953
+ if (h(n)) {
1954
+ let e = t.paramRuntime.watchExpression(n, () => t.context.animator.requestRender());
1955
+ return (t) => e(null) * t;
1892
1956
  }
1893
1957
  }
1894
1958
  return K;
1895
1959
  }
1896
- function rt(e, t, n) {
1960
+ function ot(e, t, n) {
1897
1961
  if (!e.length) throw new b("\"opacity.unitsPerPixel\" must contain at least one stop.", n);
1898
1962
  if (e.length !== t.length) throw new b("\"opacity.unitsPerPixel\" and \"opacity.values\" must have the same length.", n);
1899
1963
  e.forEach((e, t) => {
@@ -1911,42 +1975,42 @@ function rt(e, t, n) {
1911
1975
  values: a
1912
1976
  };
1913
1977
  }
1914
- function it(e, t, n) {
1915
- if (!s(e)) throw new b("\"" + t + "\" must evaluate to an array.", n);
1916
- return e.map((e, r) => {
1917
- if (!c(e) || !Number.isFinite(e)) throw new b("Invalid " + t + " value at index " + r + ". Expected a finite number.", n);
1918
- return e;
1978
+ function st(t, n, r) {
1979
+ if (!o(t)) throw new b("\"" + n + "\" must evaluate to an array.", r);
1980
+ return t.map((t, i) => {
1981
+ if (!e(t) || !Number.isFinite(t)) throw new b("Invalid " + n + " value at index " + i + ". Expected a finite number.", r);
1982
+ return t;
1919
1983
  });
1920
1984
  }
1921
1985
  var q = (e) => !!e && typeof e == "object" && "step" in e;
1922
- function at(e) {
1986
+ function ct(e) {
1923
1987
  return typeof e == "number" && Number.isFinite(e);
1924
1988
  }
1925
1989
  var J = /* @__PURE__ */ new WeakMap(), Y = /* @__PURE__ */ new WeakMap();
1926
- function ot(e, t) {
1927
- ct(e, t, "Import");
1990
+ function lt(e, t) {
1991
+ X(e, t, "Import");
1928
1992
  }
1929
- function st(e, t) {
1930
- ct(e, t, "View");
1993
+ function ut(e, t) {
1994
+ X(e, t, "View");
1931
1995
  }
1932
- function ct(e, t, n) {
1996
+ function X(e, t, n) {
1933
1997
  if (t !== null && typeof t != "string") throw Error(n + " scope name must be a string or null.");
1934
1998
  J.set(e, { name: t });
1935
1999
  }
1936
- function lt(e) {
2000
+ function dt(e) {
1937
2001
  return J.get(e);
1938
2002
  }
1939
- function ut(e, t = {}) {
2003
+ function ft(e, t = {}) {
1940
2004
  let n = t.skipSubtree ?? !1 ? "excludeSubtree" : "exclude";
1941
2005
  Y.set(e, n);
1942
2006
  }
1943
- function dt(e, t = {}) {
1944
- Ge(e, t.skipSubtree ?? !1 ? "excludeSubtree" : "exclude");
2007
+ function pt(e, t = {}) {
2008
+ Je(e, t.skipSubtree ?? !1 ? "excludeSubtree" : "exclude");
1945
2009
  }
1946
- function ft(e) {
1947
- return e.getLayoutAncestors().some(qe);
2010
+ function mt(e) {
2011
+ return e.getLayoutAncestors().some(Xe);
1948
2012
  }
1949
- function X(e) {
2013
+ function Z(e) {
1950
2014
  let t = e.getDataAncestors(), n = [];
1951
2015
  for (let e = t.length - 1; e >= 0; --e) {
1952
2016
  let r = J.get(t[e]);
@@ -1954,51 +2018,51 @@ function X(e) {
1954
2018
  }
1955
2019
  return n;
1956
2020
  }
1957
- function pt(e) {
2021
+ function ht(e) {
1958
2022
  let t = e.explicitName;
1959
2023
  if (!t) throw Error("Cannot build a selector for a view without a name.");
1960
2024
  return {
1961
- scope: X(e),
2025
+ scope: Z(e),
1962
2026
  view: t
1963
2027
  };
1964
2028
  }
1965
- function Z(e, t) {
2029
+ function gt(e, t) {
1966
2030
  if (!t) throw Error("Cannot build a selector for a parameter without a name.");
1967
2031
  return {
1968
- scope: X(e),
2032
+ scope: Z(e),
1969
2033
  param: t
1970
2034
  };
1971
2035
  }
1972
- function mt(e) {
1973
- return St(e), "p:" + JSON.stringify({
2036
+ function _t(e) {
2037
+ return Tt(e), "p:" + JSON.stringify({
1974
2038
  scope: e.scope,
1975
2039
  param: e.param
1976
2040
  });
1977
2041
  }
1978
- function ht(e, t) {
2042
+ function vt(e, t) {
1979
2043
  e.visit((e) => {
1980
- let n = Ke(e);
2044
+ let n = Ye(e);
1981
2045
  if (n === "excludeSubtree") return W;
1982
2046
  if (n !== "exclude") return t(e);
1983
2047
  });
1984
2048
  }
1985
- function gt(e, t) {
2049
+ function yt(e, t) {
1986
2050
  e.visit((e) => {
1987
2051
  let n = Y.get(e);
1988
2052
  if (n === "excludeSubtree") return W;
1989
2053
  if (n !== "exclude") return t(e);
1990
2054
  });
1991
2055
  }
1992
- function _t(e, t) {
1993
- if (Ct(t), !jt(e, t.scope)) return;
2056
+ function bt(e, t) {
2057
+ if (Et(t), !Pt(e, t.scope)) return;
1994
2058
  let n = [];
1995
2059
  if ($(e, t.scope, (e) => {
1996
2060
  e.explicitName === t.view && n.push(e);
1997
2061
  }, { includeNamedImportRoots: !0 }), n.length === 1) return n[0];
1998
2062
  if (n.length !== 0) throw Error("View selector is ambiguous for view \"" + t.view + "\" in scope " + JSON.stringify(t.scope));
1999
2063
  }
2000
- function vt(e, t) {
2001
- if (St(t), !jt(e, t.scope)) return;
2064
+ function xt(e, t) {
2065
+ if (Tt(t), !Pt(e, t.scope)) return;
2002
2066
  let n = [];
2003
2067
  if ($(e, t.scope, (e) => {
2004
2068
  for (let [r, i] of e.paramRuntime.paramConfigs) r === t.param && Q(i) && n.push({
@@ -2008,54 +2072,54 @@ function vt(e, t) {
2008
2072
  }), n.length === 1) return n[0];
2009
2073
  if (n.length !== 0) throw Error("Param selector is ambiguous for param \"" + t.param + "\" in scope " + JSON.stringify(t.scope));
2010
2074
  }
2011
- function yt(e, t) {
2075
+ function St(e, t) {
2012
2076
  e.visit((e) => {
2013
2077
  let n = Y.get(e);
2014
2078
  if (n === "excludeSubtree") return W;
2015
2079
  if (n !== "exclude") for (let [n, r] of e.paramRuntime.paramConfigs) Q(r) && t({
2016
2080
  view: e,
2017
2081
  param: r,
2018
- selector: Z(e, n)
2082
+ selector: gt(e, n)
2019
2083
  });
2020
2084
  });
2021
2085
  }
2022
- function bt(e) {
2086
+ function Ct(e) {
2023
2087
  let t = [];
2024
- return yt(e, (e) => t.push(e)), t;
2088
+ return St(e, (e) => t.push(e)), t;
2025
2089
  }
2026
- function xt(e) {
2090
+ function wt(e) {
2027
2091
  let t = [];
2028
- for (let n of wt(e)) {
2029
- let r = Tt(n);
2030
- Dt(e, r, t), Ot(e, r, t);
2092
+ for (let n of Dt(e)) {
2093
+ let r = Ot(n);
2094
+ At(e, r, t), jt(e, r, t);
2031
2095
  }
2032
2096
  return t;
2033
2097
  }
2034
- function St(e) {
2098
+ function Tt(e) {
2035
2099
  if (!e || !Array.isArray(e.scope)) throw Error("Param selector scope must be an array.");
2036
2100
  if (typeof e.param != "string" || !e.param.length) throw Error("Param selector param must be a non-empty string.");
2037
2101
  }
2038
- function Ct(e) {
2102
+ function Et(e) {
2039
2103
  if (!e || !Array.isArray(e.scope)) throw Error("View selector scope must be an array.");
2040
2104
  if (typeof e.view != "string" || !e.view.length) throw Error("View selector view must be a non-empty string.");
2041
2105
  }
2042
- function Q(t) {
2043
- return t.persist === !1 ? !1 : i(t) ? !0 : e(t) ? !!t.bind : !1;
2106
+ function Q(e) {
2107
+ return e.persist === !1 ? !1 : l(e) ? !0 : c(e) ? !!e.bind : !1;
2044
2108
  }
2045
- function wt(e) {
2109
+ function Dt(e) {
2046
2110
  let t = /* @__PURE__ */ new Set([e]);
2047
2111
  return e.visit((e) => {
2048
2112
  let n = J.get(e);
2049
2113
  n && typeof n.name == "string" && t.add(e);
2050
2114
  }), Array.from(t);
2051
2115
  }
2052
- function Tt(e) {
2053
- return X(e);
2116
+ function Ot(e) {
2117
+ return Z(e);
2054
2118
  }
2055
- function Et(e) {
2119
+ function kt(e) {
2056
2120
  return e.length ? "import scope [" + e.join(" / ") + "]" : "import scope (root)";
2057
2121
  }
2058
- function Dt(e, t, n) {
2122
+ function At(e, t, n) {
2059
2123
  let r = /* @__PURE__ */ new Map();
2060
2124
  $(e, t, (e) => {
2061
2125
  for (let [t, n] of e.paramRuntime.paramConfigs) {
@@ -2068,15 +2132,15 @@ function Dt(e, t, n) {
2068
2132
  if (i.length <= 1) continue;
2069
2133
  let r = i.map((e) => e.getPathString()).join(", ");
2070
2134
  n.push({
2071
- message: "Bookmarkable parameter \"" + e + "\" is not unique within " + Et(t) + ". Found in: " + r + ".",
2135
+ message: "Bookmarkable parameter \"" + e + "\" is not unique within " + kt(t) + ". Found in: " + r + ".",
2072
2136
  scope: t
2073
2137
  });
2074
2138
  }
2075
2139
  }
2076
- function Ot(e, t, n) {
2077
- let r = kt(e, t);
2140
+ function jt(e, t, n) {
2141
+ let r = Mt(e, t);
2078
2142
  if (!r.length) return;
2079
- let i = r.filter((e) => At(e));
2143
+ let i = r.filter((e) => Nt(e));
2080
2144
  if (i.length <= 1) return;
2081
2145
  let a = /* @__PURE__ */ new Map();
2082
2146
  for (let e of i) {
@@ -2084,19 +2148,19 @@ function Ot(e, t, n) {
2084
2148
  typeof n == "string" && n.length && a.set(n, (a.get(n) ?? 0) + 1);
2085
2149
  }
2086
2150
  for (let [e, r] of a) r > 1 && n.push({
2087
- message: "Import instance name \"" + e + "\" is used multiple times for addressable instances in " + Et(t) + ".",
2151
+ message: "Import instance name \"" + e + "\" is used multiple times for addressable instances in " + kt(t) + ".",
2088
2152
  scope: t
2089
2153
  });
2090
2154
  }
2091
- function kt(e, t) {
2155
+ function Mt(e, t) {
2092
2156
  let n = [];
2093
2157
  return $(e, t, (e) => {
2094
- if (X(e).length !== t.length + 1) return;
2158
+ if (Z(e).length !== t.length + 1) return;
2095
2159
  let r = J.get(e);
2096
2160
  r && typeof r.name == "string" && n.push(e);
2097
2161
  }, { includeNamedImportRoots: !0 }), n;
2098
2162
  }
2099
- function At(e) {
2163
+ function Nt(e) {
2100
2164
  let t = !1;
2101
2165
  return e.visit((e) => {
2102
2166
  let n = Y.get(e);
@@ -2106,14 +2170,14 @@ function At(e) {
2106
2170
  }
2107
2171
  }), t;
2108
2172
  }
2109
- function jt(e, t) {
2173
+ function Pt(e, t) {
2110
2174
  let n = e, r = [];
2111
2175
  for (let i of t) {
2112
2176
  if (typeof i != "string" || !i.length) throw Error("Scope names must be non-empty strings.");
2113
2177
  let t, a = !1;
2114
2178
  if ($(e, r, (e) => {
2115
2179
  let n = J.get(e);
2116
- if (n && n.name === i && X(e).length === r.length + 1) {
2180
+ if (n && n.name === i && Z(e).length === r.length + 1) {
2117
2181
  if (t) return a = !0, G;
2118
2182
  t = e;
2119
2183
  }
@@ -2128,20 +2192,20 @@ function $(e, t, n, r = {}) {
2128
2192
  e.visit((e) => {
2129
2193
  let r = J.get(e), a = Y.get(e);
2130
2194
  if (a === "excludeSubtree") return W;
2131
- if (a !== "exclude" && Mt(e, t, r, i)) return n(e);
2195
+ if (a !== "exclude" && Ft(e, t, r, i)) return n(e);
2132
2196
  });
2133
2197
  }
2134
- function Mt(e, t, n, r) {
2135
- let i = X(e);
2136
- return Nt(i, t) ? !0 : !r || !n || typeof n.name != "string" || i.length !== t.length + 1 ? !1 : Pt(t, i);
2198
+ function Ft(e, t, n, r) {
2199
+ let i = Z(e);
2200
+ return It(i, t) ? !0 : !r || !n || typeof n.name != "string" || i.length !== t.length + 1 ? !1 : Lt(t, i);
2137
2201
  }
2138
- function Nt(e, t) {
2139
- return e.length === t.length && Pt(e, t);
2202
+ function It(e, t) {
2203
+ return e.length === t.length && Lt(e, t);
2140
2204
  }
2141
- function Pt(e, t) {
2205
+ function Lt(e, t) {
2142
2206
  if (e.length > t.length) return !1;
2143
2207
  for (let n = 0; n < e.length; n++) if (e[n] !== t[n]) return !1;
2144
2208
  return !0;
2145
2209
  }
2146
2210
  //#endregion
2147
- export { T as A, C as B, We as C, Le as D, Re as E, N as F, x as G, Se as H, Ee as I, A as L, ke as M, De as N, R as O, P, Ae as R, Je as S, B as T, ye as U, xe as V, be as W, W as _, pt as a, Xe as b, dt as c, st as d, vt as f, ht as g, gt as h, X as i, E as j, Fe as k, ut as l, xt as m, lt as n, ft as o, _t as p, Z as r, mt as s, bt as t, ot as u, G as v, Be as w, qe as x, et as y, Oe as z };
2211
+ export { D as A, De as B, qe as C, Be as D, Ve as E, Oe as F, Se as G, je as H, P as I, xe as J, w as K, N as L, I as M, M as N, R as O, Ae as P, Ee as R, Ze as S, B as T, ke as U, Ie as V, T as W, x as Y, W as _, ht as a, $e as b, pt as c, ut as d, xt as f, vt as g, yt as h, Z as i, O as j, Re as k, ft as l, wt as m, dt as n, mt as o, bt as p, be as q, gt as r, _t as s, Ct as t, lt as u, G as v, Ue as w, Xe as x, rt as y, Fe as z };