@genome-spy/app 1.1.0 → 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 (47) hide show
  1. package/dist/{agentApi-BgZUOeB-.js → agentApi-8hMSlqAQ.js} +8459 -6960
  2. package/dist/agentApi.es.js +5609 -4236
  3. package/dist/agentShared.es.js +9 -9
  4. package/dist/{canvas2d-DiPQvNtZ.js → canvas2d-Bd8H8MMo.js} +149 -134
  5. package/dist/{canvas2d-t_N10CeW.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-BW415b3o.js → containerView-CRJSc4bM.js} +24 -31
  9. package/dist/{viewIdentityRegistry-_F0E7nkA.js → containerView-aEVmYmkA.js} +24 -31
  10. package/dist/{debug-DP4WzTNo.js → debug-CQ0agCrd.js} +9 -9
  11. package/dist/{debug-CVAlrcZt.js → debug-DkIMiGdW.js} +10 -10
  12. package/dist/index.es.js +1133 -1115
  13. package/dist/index.js +757 -513
  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-R043xTpC.js → order-BVvkjDRT.js} +369 -316
  19. package/dist/{order-BkYCnwD7.js → order-DmMoZsi1.js} +360 -308
  20. package/dist/{rasterExport-C_FcNBkC.js → rasterExport-DxvowWjH.js} +4 -4
  21. package/dist/{rasterExport-Z7gs5346.js → rasterExport-jeRVq6kY.js} +4 -4
  22. package/dist/rasterization-CFogVB3B.js +50 -0
  23. package/dist/rasterization-DFj3Cvx4.js +67 -0
  24. package/dist/{rectangle-DE98gIxF.js → rectangle-DZTR6NFQ.js} +10 -1
  25. package/dist/rectangle-Dl4Dy0hS.js +191 -0
  26. package/dist/{renderCanvas2D-DK1c9TFK.js → renderCanvas2D-Bfm1NHFu.js} +99 -94
  27. package/dist/{renderCanvas2D-IM-A9DYG.js → renderCanvas2D-DVjhp834.js} +101 -96
  28. package/dist/scalePosition-0aeqp_kz.js +18 -0
  29. package/dist/schema.json +27198 -13709
  30. package/dist/style.css +1 -1
  31. package/dist/{svg-DW3tfUmm.js → svg-Bm2zxBPu.js} +316 -317
  32. package/dist/{svg-PabUdcDi.js → svg-CkfuhONt.js} +290 -291
  33. package/dist/{svgRasterizer-B6YtWLJs.js → svgRasterizer-DoRQEqFA.js} +3 -3
  34. package/dist/{svgRasterizer-BEVDyyS3.js → svgRasterizer-raDDhBF-.js} +3 -3
  35. package/dist/{vega-scale-Byaw1K8O.js → vega-scale-BoGHANI7.js} +90 -90
  36. package/dist/{vega-scale-Ctz_wa3z.js → vega-scale-o9TRyzYH.js} +699 -699
  37. package/dist/viewError-BkJeVYXA.js +33 -0
  38. package/dist/viewError-IYqyluc7.js +33 -0
  39. package/dist/{viewSelectors-KtD-QSN0.js → viewSelectors-7LyasQN-.js} +572 -478
  40. package/dist/{viewSelectors-DYz-PhTO.js → viewSelectors-CbmkSQRT.js} +624 -530
  41. package/dist/{viewUtils-BZGPseMx.js → viewUtils-DuddMNNw.js} +2146 -2016
  42. package/dist/{webgl-tdKf9SlZ.js → webgl-CQfvgnxo.js} +1247 -1137
  43. package/dist/{webgl-BKSGqHaz.js → webgl-DVYkXtiZ.js} +1495 -1386
  44. package/package.json +4 -4
  45. package/src/spec/view.d.ts +44 -5
  46. package/dist/rasterization-_-9JmSas.js +0 -63
  47. package/dist/viewError-BiR9VCgL.js +0 -29
@@ -52,146 +52,146 @@ function f(e) {
52
52
  function p(e) {
53
53
  return e == null || e === "" ? null : +e;
54
54
  }
55
- var m = (e) => (t) => e * Math.exp(t), h = (e) => (t) => Math.log(e * t), ee = (e) => (t) => Math.sign(t) * Math.log1p(Math.abs(t / e)), g = (e) => (t) => Math.sign(t) * Math.expm1(Math.abs(t)) * e, _ = (e) => (t) => t < 0 ? -((-t) ** +e) : t ** +e;
56
- function v(e, t, n, r) {
55
+ var m = (e) => (t) => e * Math.exp(t), h = (e) => (t) => Math.log(e * t), g = (e) => (t) => Math.sign(t) * Math.log1p(Math.abs(t / e)), _ = (e) => (t) => Math.sign(t) * Math.expm1(Math.abs(t)) * e, v = (e) => (t) => t < 0 ? -((-t) ** +e) : t ** +e;
56
+ function y(e, t, n, r) {
57
57
  let i = n(e[0]), a = n(f(e)), o = (a - i) * t;
58
58
  return [r(i - o), r(a - o)];
59
59
  }
60
- function te(e, t) {
61
- return v(e, t, p, l);
60
+ function b(e, t) {
61
+ return y(e, t, p, l);
62
62
  }
63
- function ne(e, t) {
63
+ function ee(e, t) {
64
64
  var n = Math.sign(e[0]);
65
- return v(e, t, h(n), m(n));
65
+ return y(e, t, h(n), m(n));
66
66
  }
67
- function re(e, t, n) {
68
- return v(e, t, _(n), _(1 / n));
67
+ function te(e, t, n) {
68
+ return y(e, t, v(n), v(1 / n));
69
69
  }
70
- function ie(e, t, n, r, i) {
70
+ function x(e, t, n, r, i) {
71
71
  let a = r(e[0]), o = r(f(e)), s = t == null ? (a + o) / 2 : r(t);
72
72
  return [i(s + (a - s) * n), i(s + (o - s) * n)];
73
73
  }
74
- function y(e, t, n) {
75
- return ie(e, t, n, p, l);
74
+ function S(e, t, n) {
75
+ return x(e, t, n, p, l);
76
76
  }
77
- function b(e, t, n) {
77
+ function ne(e, t, n) {
78
78
  let r = Math.sign(e[0]);
79
- return ie(e, t, n, h(r), m(r));
79
+ return x(e, t, n, h(r), m(r));
80
80
  }
81
- function x(e, t, n, r) {
82
- return ie(e, t, n, _(r), _(1 / r));
81
+ function C(e, t, n, r) {
82
+ return x(e, t, n, v(r), v(1 / r));
83
83
  }
84
- function ae(e, t, n, r) {
85
- return ie(e, t, n, ee(r), g(r));
84
+ function re(e, t, n, r) {
85
+ return x(e, t, n, g(r), _(r));
86
86
  }
87
- function oe(e) {
87
+ function ie(e) {
88
88
  return e == null ? [] : u(e) ? e : [e];
89
89
  }
90
- function se(e, t, n) {
90
+ function ae(e, t, n) {
91
91
  let r = e[0], i = e[1], a;
92
92
  return i < r && (a = i, i = r, r = a), a = i - r, a >= n - t ? [t, n] : [r = Math.min(Math.max(r, t), n - a), r + a];
93
93
  }
94
- function ce(e) {
94
+ function oe(e) {
95
95
  return typeof e == "function";
96
96
  }
97
- var le = "descending";
98
- function ue(t, r, i) {
99
- i ||= {}, r = oe(r) || [];
100
- let a = [], o = [], s = {}, l = i.comparator || fe;
101
- return oe(t).forEach((e, t) => {
102
- e != null && (a.push(r[t] === le ? -1 : 1), o.push(e = ce(e) ? e : c(e, null, i)), (n(e) || []).forEach((e) => s[e] = 1));
97
+ var se = "descending";
98
+ function ce(t, r, i) {
99
+ i ||= {}, r = ie(r) || [];
100
+ let a = [], o = [], s = {}, l = i.comparator || ue;
101
+ return ie(t).forEach((e, t) => {
102
+ e != null && (a.push(r[t] === se ? -1 : 1), o.push(e = oe(e) ? e : c(e, null, i)), (n(e) || []).forEach((e) => s[e] = 1));
103
103
  }), o.length === 0 ? null : e(l(o, a), Object.keys(s));
104
104
  }
105
- var de = (e, t) => (e < t || e == null) && t != null ? -1 : (e > t || t == null) && e != null ? 1 : (t = t instanceof Date ? +t : t, (e = e instanceof Date ? +e : e) !== e && t === t ? -1 : +(t !== t && e === e)), fe = (e, t) => e.length === 1 ? pe(e[0], t[0]) : me(e, t, e.length), pe = (e, t) => function(n, r) {
106
- return de(e(n), e(r)) * t;
107
- }, me = (e, t, n) => (t.push(0), function(r, i) {
105
+ var le = (e, t) => (e < t || e == null) && t != null ? -1 : (e > t || t == null) && e != null ? 1 : (t = t instanceof Date ? +t : t, (e = e instanceof Date ? +e : e) !== e && t === t ? -1 : +(t !== t && e === e)), ue = (e, t) => e.length === 1 ? de(e[0], t[0]) : fe(e, t, e.length), de = (e, t) => function(n, r) {
106
+ return le(e(n), e(r)) * t;
107
+ }, fe = (e, t, n) => (t.push(0), function(r, i) {
108
108
  let a, o = 0, s = -1;
109
- for (; o === 0 && ++s < n;) a = e[s], o = de(a(r), a(i));
109
+ for (; o === 0 && ++s < n;) a = e[s], o = le(a(r), a(i));
110
110
  return o * t[s];
111
111
  });
112
- function he(e, t, n, r) {
112
+ function pe(e, t, n, r) {
113
113
  let i = t[0], a = t[t.length - 1], o;
114
114
  return i > a && (o = i, i = a, a = o), n = n === void 0 || n, r = r === void 0 || r, (n ? i <= e : i < e) && (r ? e <= a : e < a);
115
115
  }
116
- function ge(e) {
116
+ function me(e) {
117
117
  return typeof e == "boolean";
118
118
  }
119
- function _e(e) {
119
+ function he(e) {
120
120
  return typeof e == "number";
121
121
  }
122
- function ve(e) {
122
+ function ge(e) {
123
123
  return Object.prototype.toString.call(e) === "[object RegExp]";
124
124
  }
125
- function S(e) {
125
+ function w(e) {
126
126
  return typeof e == "string";
127
127
  }
128
- function ye(e, t) {
128
+ function _e(e, t) {
129
129
  let n = e[0], r = f(e), i = +t;
130
130
  return i ? i === 1 ? r : n + i * (r - n) : n;
131
131
  }
132
- function be(e) {
132
+ function ve(e) {
133
133
  return e && f(e) - e[0] || 0;
134
134
  }
135
- function xe(e) {
136
- return u(e) ? `[${e.map((e) => e === null ? "null" : xe(e))}]` : d(e) || S(e) ? JSON.stringify(e).replaceAll("\u2028", "\\u2028").replaceAll("\u2029", "\\u2029") : e;
135
+ function ye(e) {
136
+ return u(e) ? `[${e.map((e) => e === null ? "null" : ye(e))}]` : d(e) || w(e) ? JSON.stringify(e).replaceAll("\u2028", "\\u2028").replaceAll("\u2029", "\\u2029") : e;
137
137
  }
138
- function Se(e) {
138
+ function be(e) {
139
139
  let t = {}, n = e.length;
140
140
  for (let r = 0; r < n; ++r) t[e[r]] = !0;
141
141
  return t;
142
142
  }
143
143
  //#endregion
144
144
  //#region ../../node_modules/internmap/src/index.js
145
- var Ce = class extends Map {
146
- constructor(e, t = De) {
145
+ var xe = class extends Map {
146
+ constructor(e, t = Te) {
147
147
  if (super(), Object.defineProperties(this, {
148
148
  _intern: { value: /* @__PURE__ */ new Map() },
149
149
  _key: { value: t }
150
150
  }), e != null) for (let [t, n] of e) this.set(t, n);
151
151
  }
152
152
  get(e) {
153
- return super.get(we(this, e));
153
+ return super.get(Se(this, e));
154
154
  }
155
155
  has(e) {
156
- return super.has(we(this, e));
156
+ return super.has(Se(this, e));
157
157
  }
158
158
  set(e, t) {
159
- return super.set(Te(this, e), t);
159
+ return super.set(Ce(this, e), t);
160
160
  }
161
161
  delete(e) {
162
- return super.delete(Ee(this, e));
162
+ return super.delete(we(this, e));
163
163
  }
164
164
  };
165
- function we({ _intern: e, _key: t }, n) {
165
+ function Se({ _intern: e, _key: t }, n) {
166
166
  let r = t(n);
167
167
  return e.has(r) ? e.get(r) : n;
168
168
  }
169
- function Te({ _intern: e, _key: t }, n) {
169
+ function Ce({ _intern: e, _key: t }, n) {
170
170
  let r = t(n);
171
171
  return e.has(r) ? e.get(r) : (e.set(r, n), n);
172
172
  }
173
- function Ee({ _intern: e, _key: t }, n) {
173
+ function we({ _intern: e, _key: t }, n) {
174
174
  let r = t(n);
175
175
  return e.has(r) && (n = e.get(r), e.delete(r)), n;
176
176
  }
177
- function De(e) {
177
+ function Te(e) {
178
178
  return typeof e == "object" && e ? e.valueOf() : e;
179
179
  }
180
180
  //#endregion
181
181
  //#region ../../node_modules/d3-array/src/ticks.js
182
- var Oe = Math.sqrt(50), ke = Math.sqrt(10), Ae = Math.sqrt(2);
183
- function je(e, t, n) {
184
- let r = (t - e) / Math.max(0, n), i = Math.floor(Math.log10(r)), a = r / 10 ** i, o = a >= Oe ? 10 : a >= ke ? 5 : a >= Ae ? 2 : 1, s, c, l;
185
- return i < 0 ? (l = 10 ** -i / o, s = Math.round(e * l), c = Math.round(t * l), s / l < e && ++s, c / l > t && --c, l = -l) : (l = 10 ** i * o, s = Math.round(e / l), c = Math.round(t / l), s * l < e && ++s, c * l > t && --c), c < s && .5 <= n && n < 2 ? je(e, t, n * 2) : [
182
+ var Ee = Math.sqrt(50), De = Math.sqrt(10), Oe = Math.sqrt(2);
183
+ function ke(e, t, n) {
184
+ let r = (t - e) / Math.max(0, n), i = Math.floor(Math.log10(r)), a = r / 10 ** i, o = a >= Ee ? 10 : a >= De ? 5 : a >= Oe ? 2 : 1, s, c, l;
185
+ return i < 0 ? (l = 10 ** -i / o, s = Math.round(e * l), c = Math.round(t * l), s / l < e && ++s, c / l > t && --c, l = -l) : (l = 10 ** i * o, s = Math.round(e / l), c = Math.round(t / l), s * l < e && ++s, c * l > t && --c), c < s && .5 <= n && n < 2 ? ke(e, t, n * 2) : [
186
186
  s,
187
187
  c,
188
188
  l
189
189
  ];
190
190
  }
191
- function Me(e, t, n) {
191
+ function Ae(e, t, n) {
192
192
  if (t = +t, e = +e, n = +n, !(n > 0)) return [];
193
193
  if (e === t) return [e];
194
- let r = t < e, [i, a, o] = r ? je(t, e, n) : je(e, t, n);
194
+ let r = t < e, [i, a, o] = r ? ke(t, e, n) : ke(e, t, n);
195
195
  if (!(a >= i)) return [];
196
196
  let s = a - i + 1, c = Array(s);
197
197
  if (r) {
@@ -201,336 +201,39 @@ function Me(e, t, n) {
201
201
  else for (let e = 0; e < s; ++e) c[e] = (i + e) * o;
202
202
  return c;
203
203
  }
204
- function Ne(e, t, n) {
205
- return t = +t, e = +e, n = +n, je(e, t, n)[2];
204
+ function je(e, t, n) {
205
+ return t = +t, e = +e, n = +n, ke(e, t, n)[2];
206
206
  }
207
- function Pe(e, t, n) {
207
+ function Me(e, t, n) {
208
208
  t = +t, e = +e, n = +n;
209
- let r = t < e, i = r ? Ne(t, e, n) : Ne(e, t, n);
209
+ let r = t < e, i = r ? je(t, e, n) : je(e, t, n);
210
210
  return (r ? -1 : 1) * (i < 0 ? 1 / -i : i);
211
211
  }
212
212
  //#endregion
213
213
  //#region ../../node_modules/d3-array/src/range.js
214
- function Fe(e, t, n) {
214
+ function Ne(e, t, n) {
215
215
  e = +e, t = +t, n = (i = arguments.length) < 2 ? (t = e, e = 0, 1) : i < 3 ? 1 : +n;
216
216
  for (var r = -1, i = Math.max(0, Math.ceil((t - e) / n)) | 0, a = Array(i); ++r < i;) a[r] = e + r * n;
217
217
  return a;
218
218
  }
219
219
  //#endregion
220
- //#region ../../node_modules/d3-color/src/define.js
221
- function Ie(e, t, n) {
222
- e.prototype = t.prototype = n, n.constructor = e;
223
- }
224
- function Le(e, t) {
225
- var n = Object.create(e.prototype);
226
- for (var r in t) n[r] = t[r];
227
- return n;
228
- }
229
- //#endregion
230
- //#region ../../node_modules/d3-color/src/color.js
231
- function C() {}
232
- var w = .7, Re = 1 / w, T = "\\s*([+-]?\\d+)\\s*", ze = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", E = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", Be = /^#([0-9a-f]{3,8})$/, Ve = RegExp(`^rgb\\(${T},${T},${T}\\)$`), He = RegExp(`^rgb\\(${E},${E},${E}\\)$`), Ue = RegExp(`^rgba\\(${T},${T},${T},${ze}\\)$`), We = RegExp(`^rgba\\(${E},${E},${E},${ze}\\)$`), Ge = RegExp(`^hsl\\(${ze},${E},${E}\\)$`), Ke = RegExp(`^hsla\\(${ze},${E},${E},${ze}\\)$`), qe = {
233
- aliceblue: 15792383,
234
- antiquewhite: 16444375,
235
- aqua: 65535,
236
- aquamarine: 8388564,
237
- azure: 15794175,
238
- beige: 16119260,
239
- bisque: 16770244,
240
- black: 0,
241
- blanchedalmond: 16772045,
242
- blue: 255,
243
- blueviolet: 9055202,
244
- brown: 10824234,
245
- burlywood: 14596231,
246
- cadetblue: 6266528,
247
- chartreuse: 8388352,
248
- chocolate: 13789470,
249
- coral: 16744272,
250
- cornflowerblue: 6591981,
251
- cornsilk: 16775388,
252
- crimson: 14423100,
253
- cyan: 65535,
254
- darkblue: 139,
255
- darkcyan: 35723,
256
- darkgoldenrod: 12092939,
257
- darkgray: 11119017,
258
- darkgreen: 25600,
259
- darkgrey: 11119017,
260
- darkkhaki: 12433259,
261
- darkmagenta: 9109643,
262
- darkolivegreen: 5597999,
263
- darkorange: 16747520,
264
- darkorchid: 10040012,
265
- darkred: 9109504,
266
- darksalmon: 15308410,
267
- darkseagreen: 9419919,
268
- darkslateblue: 4734347,
269
- darkslategray: 3100495,
270
- darkslategrey: 3100495,
271
- darkturquoise: 52945,
272
- darkviolet: 9699539,
273
- deeppink: 16716947,
274
- deepskyblue: 49151,
275
- dimgray: 6908265,
276
- dimgrey: 6908265,
277
- dodgerblue: 2003199,
278
- firebrick: 11674146,
279
- floralwhite: 16775920,
280
- forestgreen: 2263842,
281
- fuchsia: 16711935,
282
- gainsboro: 14474460,
283
- ghostwhite: 16316671,
284
- gold: 16766720,
285
- goldenrod: 14329120,
286
- gray: 8421504,
287
- green: 32768,
288
- greenyellow: 11403055,
289
- grey: 8421504,
290
- honeydew: 15794160,
291
- hotpink: 16738740,
292
- indianred: 13458524,
293
- indigo: 4915330,
294
- ivory: 16777200,
295
- khaki: 15787660,
296
- lavender: 15132410,
297
- lavenderblush: 16773365,
298
- lawngreen: 8190976,
299
- lemonchiffon: 16775885,
300
- lightblue: 11393254,
301
- lightcoral: 15761536,
302
- lightcyan: 14745599,
303
- lightgoldenrodyellow: 16448210,
304
- lightgray: 13882323,
305
- lightgreen: 9498256,
306
- lightgrey: 13882323,
307
- lightpink: 16758465,
308
- lightsalmon: 16752762,
309
- lightseagreen: 2142890,
310
- lightskyblue: 8900346,
311
- lightslategray: 7833753,
312
- lightslategrey: 7833753,
313
- lightsteelblue: 11584734,
314
- lightyellow: 16777184,
315
- lime: 65280,
316
- limegreen: 3329330,
317
- linen: 16445670,
318
- magenta: 16711935,
319
- maroon: 8388608,
320
- mediumaquamarine: 6737322,
321
- mediumblue: 205,
322
- mediumorchid: 12211667,
323
- mediumpurple: 9662683,
324
- mediumseagreen: 3978097,
325
- mediumslateblue: 8087790,
326
- mediumspringgreen: 64154,
327
- mediumturquoise: 4772300,
328
- mediumvioletred: 13047173,
329
- midnightblue: 1644912,
330
- mintcream: 16121850,
331
- mistyrose: 16770273,
332
- moccasin: 16770229,
333
- navajowhite: 16768685,
334
- navy: 128,
335
- oldlace: 16643558,
336
- olive: 8421376,
337
- olivedrab: 7048739,
338
- orange: 16753920,
339
- orangered: 16729344,
340
- orchid: 14315734,
341
- palegoldenrod: 15657130,
342
- palegreen: 10025880,
343
- paleturquoise: 11529966,
344
- palevioletred: 14381203,
345
- papayawhip: 16773077,
346
- peachpuff: 16767673,
347
- peru: 13468991,
348
- pink: 16761035,
349
- plum: 14524637,
350
- powderblue: 11591910,
351
- purple: 8388736,
352
- rebeccapurple: 6697881,
353
- red: 16711680,
354
- rosybrown: 12357519,
355
- royalblue: 4286945,
356
- saddlebrown: 9127187,
357
- salmon: 16416882,
358
- sandybrown: 16032864,
359
- seagreen: 3050327,
360
- seashell: 16774638,
361
- sienna: 10506797,
362
- silver: 12632256,
363
- skyblue: 8900331,
364
- slateblue: 6970061,
365
- slategray: 7372944,
366
- slategrey: 7372944,
367
- snow: 16775930,
368
- springgreen: 65407,
369
- steelblue: 4620980,
370
- tan: 13808780,
371
- teal: 32896,
372
- thistle: 14204888,
373
- tomato: 16737095,
374
- turquoise: 4251856,
375
- violet: 15631086,
376
- wheat: 16113331,
377
- white: 16777215,
378
- whitesmoke: 16119285,
379
- yellow: 16776960,
380
- yellowgreen: 10145074
381
- };
382
- Ie(C, Qe, {
383
- copy(e) {
384
- return Object.assign(new this.constructor(), this, e);
385
- },
386
- displayable() {
387
- return this.rgb().displayable();
388
- },
389
- hex: Je,
390
- formatHex: Je,
391
- formatHex8: Ye,
392
- formatHsl: Xe,
393
- formatRgb: Ze,
394
- toString: Ze
395
- });
396
- function Je() {
397
- return this.rgb().formatHex();
398
- }
399
- function Ye() {
400
- return this.rgb().formatHex8();
401
- }
402
- function Xe() {
403
- return ct(this).formatHsl();
404
- }
405
- function Ze() {
406
- return this.rgb().formatRgb();
407
- }
408
- function Qe(e) {
409
- var t, n;
410
- return e = (e + "").trim().toLowerCase(), (t = Be.exec(e)) ? (n = t[1].length, t = parseInt(t[1], 16), n === 6 ? $e(t) : n === 3 ? new D(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : n === 8 ? et(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : n === 4 ? et(t >> 12 & 15 | t >> 8 & 240, t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, ((t & 15) << 4 | t & 15) / 255) : null) : (t = Ve.exec(e)) ? new D(t[1], t[2], t[3], 1) : (t = He.exec(e)) ? new D(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = Ue.exec(e)) ? et(t[1], t[2], t[3], t[4]) : (t = We.exec(e)) ? et(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = Ge.exec(e)) ? st(t[1], t[2] / 100, t[3] / 100, 1) : (t = Ke.exec(e)) ? st(t[1], t[2] / 100, t[3] / 100, t[4]) : qe.hasOwnProperty(e) ? $e(qe[e]) : e === "transparent" ? new D(NaN, NaN, NaN, 0) : null;
411
- }
412
- function $e(e) {
413
- return new D(e >> 16 & 255, e >> 8 & 255, e & 255, 1);
414
- }
415
- function et(e, t, n, r) {
416
- return r <= 0 && (e = t = n = NaN), new D(e, t, n, r);
417
- }
418
- function tt(e) {
419
- return e instanceof C || (e = Qe(e)), e ? (e = e.rgb(), new D(e.r, e.g, e.b, e.opacity)) : new D();
420
- }
421
- function nt(e, t, n, r) {
422
- return arguments.length === 1 ? tt(e) : new D(e, t, n, r ?? 1);
423
- }
424
- function D(e, t, n, r) {
425
- this.r = +e, this.g = +t, this.b = +n, this.opacity = +r;
426
- }
427
- Ie(D, nt, Le(C, {
428
- brighter(e) {
429
- return e = e == null ? Re : Re ** +e, new D(this.r * e, this.g * e, this.b * e, this.opacity);
430
- },
431
- darker(e) {
432
- return e = e == null ? w : w ** +e, new D(this.r * e, this.g * e, this.b * e, this.opacity);
433
- },
434
- rgb() {
435
- return this;
436
- },
437
- clamp() {
438
- return new D(O(this.r), O(this.g), O(this.b), ot(this.opacity));
439
- },
440
- displayable() {
441
- return -.5 <= this.r && this.r < 255.5 && -.5 <= this.g && this.g < 255.5 && -.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
442
- },
443
- hex: rt,
444
- formatHex: rt,
445
- formatHex8: it,
446
- formatRgb: at,
447
- toString: at
448
- }));
449
- function rt() {
450
- return `#${k(this.r)}${k(this.g)}${k(this.b)}`;
451
- }
452
- function it() {
453
- return `#${k(this.r)}${k(this.g)}${k(this.b)}${k((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
454
- }
455
- function at() {
456
- let e = ot(this.opacity);
457
- return `${e === 1 ? "rgb(" : "rgba("}${O(this.r)}, ${O(this.g)}, ${O(this.b)}${e === 1 ? ")" : `, ${e})`}`;
458
- }
459
- function ot(e) {
460
- return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));
461
- }
462
- function O(e) {
463
- return Math.max(0, Math.min(255, Math.round(e) || 0));
464
- }
465
- function k(e) {
466
- return e = O(e), (e < 16 ? "0" : "") + e.toString(16);
467
- }
468
- function st(e, t, n, r) {
469
- return r <= 0 ? e = t = n = NaN : n <= 0 || n >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new A(e, t, n, r);
470
- }
471
- function ct(e) {
472
- if (e instanceof A) return new A(e.h, e.s, e.l, e.opacity);
473
- if (e instanceof C || (e = Qe(e)), !e) return new A();
474
- if (e instanceof A) return e;
475
- e = e.rgb();
476
- var t = e.r / 255, n = e.g / 255, r = e.b / 255, i = Math.min(t, n, r), a = Math.max(t, n, r), o = NaN, s = a - i, c = (a + i) / 2;
477
- return s ? (o = t === a ? (n - r) / s + (n < r) * 6 : n === a ? (r - t) / s + 2 : (t - n) / s + 4, s /= c < .5 ? a + i : 2 - a - i, o *= 60) : s = c > 0 && c < 1 ? 0 : o, new A(o, s, c, e.opacity);
478
- }
479
- function lt(e, t, n, r) {
480
- return arguments.length === 1 ? ct(e) : new A(e, t, n, r ?? 1);
481
- }
482
- function A(e, t, n, r) {
483
- this.h = +e, this.s = +t, this.l = +n, this.opacity = +r;
484
- }
485
- Ie(A, lt, Le(C, {
486
- brighter(e) {
487
- return e = e == null ? Re : Re ** +e, new A(this.h, this.s, this.l * e, this.opacity);
488
- },
489
- darker(e) {
490
- return e = e == null ? w : w ** +e, new A(this.h, this.s, this.l * e, this.opacity);
491
- },
492
- rgb() {
493
- var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, n = this.l, r = n + (n < .5 ? n : 1 - n) * t, i = 2 * n - r;
494
- return new D(ft(e >= 240 ? e - 240 : e + 120, i, r), ft(e, i, r), ft(e < 120 ? e + 240 : e - 120, i, r), this.opacity);
495
- },
496
- clamp() {
497
- return new A(ut(this.h), dt(this.s), dt(this.l), ot(this.opacity));
498
- },
499
- displayable() {
500
- return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
501
- },
502
- formatHsl() {
503
- let e = ot(this.opacity);
504
- return `${e === 1 ? "hsl(" : "hsla("}${ut(this.h)}, ${dt(this.s) * 100}%, ${dt(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`;
505
- }
506
- }));
507
- function ut(e) {
508
- return e = (e || 0) % 360, e < 0 ? e + 360 : e;
509
- }
510
- function dt(e) {
511
- return Math.max(0, Math.min(1, e || 0));
512
- }
513
- function ft(e, t, n) {
514
- return (e < 60 ? t + (n - t) * e / 60 : e < 180 ? n : e < 240 ? t + (n - t) * (240 - e) / 60 : t) * 255;
515
- }
516
- //#endregion
517
220
  //#region ../../node_modules/d3-format/src/formatDecimal.js
518
- function pt(e) {
221
+ function Pe(e) {
519
222
  return Math.abs(e = Math.round(e)) >= 1e21 ? e.toLocaleString("en").replace(/,/g, "") : e.toString(10);
520
223
  }
521
- function mt(e, t) {
224
+ function Fe(e, t) {
522
225
  if (!isFinite(e) || e === 0) return null;
523
226
  var n = (e = t ? e.toExponential(t - 1) : e.toExponential()).indexOf("e"), r = e.slice(0, n);
524
227
  return [r.length > 1 ? r[0] + r.slice(2) : r, +e.slice(n + 1)];
525
228
  }
526
229
  //#endregion
527
230
  //#region ../../node_modules/d3-format/src/exponent.js
528
- function ht(e) {
529
- return e = mt(Math.abs(e)), e ? e[1] : NaN;
231
+ function Ie(e) {
232
+ return e = Fe(Math.abs(e)), e ? e[1] : NaN;
530
233
  }
531
234
  //#endregion
532
235
  //#region ../../node_modules/d3-format/src/formatGroup.js
533
- function gt(e, t) {
236
+ function Le(e, t) {
534
237
  return function(n, r) {
535
238
  for (var i = n.length, a = [], o = 0, s = e[0], c = 0; i > 0 && s > 0 && (c + s + 1 > r && (s = Math.max(1, r - c)), a.push(n.substring(i -= s, i + s)), !((c += s + 1) > r));) s = e[o = (o + 1) % e.length];
536
239
  return a.reverse().join(t);
@@ -538,7 +241,7 @@ function gt(e, t) {
538
241
  }
539
242
  //#endregion
540
243
  //#region ../../node_modules/d3-format/src/formatNumerals.js
541
- function _t(e) {
244
+ function Re(e) {
542
245
  return function(t) {
543
246
  return t.replace(/[0-9]/g, function(t) {
544
247
  return e[+t];
@@ -547,11 +250,11 @@ function _t(e) {
547
250
  }
548
251
  //#endregion
549
252
  //#region ../../node_modules/d3-format/src/formatSpecifier.js
550
- var vt = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
551
- function yt(e) {
552
- if (!(t = vt.exec(e))) throw Error("invalid format: " + e);
253
+ var ze = /^(?:(.)?([<>=^]))?([+\-( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?(~)?([a-z%])?$/i;
254
+ function Be(e) {
255
+ if (!(t = ze.exec(e))) throw Error("invalid format: " + e);
553
256
  var t;
554
- return new bt({
257
+ return new Ve({
555
258
  fill: t[1],
556
259
  align: t[2],
557
260
  sign: t[3],
@@ -564,16 +267,16 @@ function yt(e) {
564
267
  type: t[10]
565
268
  });
566
269
  }
567
- yt.prototype = bt.prototype;
568
- function bt(e) {
270
+ Be.prototype = Ve.prototype;
271
+ function Ve(e) {
569
272
  this.fill = e.fill === void 0 ? " " : e.fill + "", this.align = e.align === void 0 ? ">" : e.align + "", this.sign = e.sign === void 0 ? "-" : e.sign + "", this.symbol = e.symbol === void 0 ? "" : e.symbol + "", this.zero = !!e.zero, this.width = e.width === void 0 ? void 0 : +e.width, this.comma = !!e.comma, this.precision = e.precision === void 0 ? void 0 : +e.precision, this.trim = !!e.trim, this.type = e.type === void 0 ? "" : e.type + "";
570
273
  }
571
- bt.prototype.toString = function() {
274
+ Ve.prototype.toString = function() {
572
275
  return this.fill + this.align + this.sign + this.symbol + (this.zero ? "0" : "") + (this.width === void 0 ? "" : Math.max(1, this.width | 0)) + (this.comma ? "," : "") + (this.precision === void 0 ? "" : "." + Math.max(0, this.precision | 0)) + (this.trim ? "~" : "") + this.type;
573
276
  };
574
277
  //#endregion
575
278
  //#region ../../node_modules/d3-format/src/formatTrim.js
576
- function xt(e) {
279
+ function He(e) {
577
280
  out: for (var t = e.length, n = 1, r = -1, i; n < t; ++n) switch (e[n]) {
578
281
  case ".":
579
282
  r = i = n;
@@ -589,46 +292,46 @@ function xt(e) {
589
292
  }
590
293
  //#endregion
591
294
  //#region ../../node_modules/d3-format/src/formatPrefixAuto.js
592
- var St;
593
- function Ct(e, t) {
594
- var n = mt(e, t);
595
- if (!n) return St = void 0, e.toPrecision(t);
596
- var r = n[0], i = n[1], a = i - (St = Math.max(-8, Math.min(8, Math.floor(i / 3))) * 3) + 1, o = r.length;
597
- return a === o ? r : a > o ? r + Array(a - o + 1).join("0") : a > 0 ? r.slice(0, a) + "." + r.slice(a) : "0." + Array(1 - a).join("0") + mt(e, Math.max(0, t + a - 1))[0];
295
+ var Ue;
296
+ function We(e, t) {
297
+ var n = Fe(e, t);
298
+ if (!n) return Ue = void 0, e.toPrecision(t);
299
+ var r = n[0], i = n[1], a = i - (Ue = Math.max(-8, Math.min(8, Math.floor(i / 3))) * 3) + 1, o = r.length;
300
+ return a === o ? r : a > o ? r + Array(a - o + 1).join("0") : a > 0 ? r.slice(0, a) + "." + r.slice(a) : "0." + Array(1 - a).join("0") + Fe(e, Math.max(0, t + a - 1))[0];
598
301
  }
599
302
  //#endregion
600
303
  //#region ../../node_modules/d3-format/src/formatRounded.js
601
- function wt(e, t) {
602
- var n = mt(e, t);
304
+ function Ge(e, t) {
305
+ var n = Fe(e, t);
603
306
  if (!n) return e + "";
604
307
  var r = n[0], i = n[1];
605
308
  return i < 0 ? "0." + Array(-i).join("0") + r : r.length > i + 1 ? r.slice(0, i + 1) + "." + r.slice(i + 1) : r + Array(i - r.length + 2).join("0");
606
309
  }
607
310
  //#endregion
608
311
  //#region ../../node_modules/d3-format/src/formatTypes.js
609
- var Tt = {
312
+ var Ke = {
610
313
  "%": (e, t) => (e * 100).toFixed(t),
611
314
  b: (e) => Math.round(e).toString(2),
612
315
  c: (e) => e + "",
613
- d: pt,
316
+ d: Pe,
614
317
  e: (e, t) => e.toExponential(t),
615
318
  f: (e, t) => e.toFixed(t),
616
319
  g: (e, t) => e.toPrecision(t),
617
320
  o: (e) => Math.round(e).toString(8),
618
- p: (e, t) => wt(e * 100, t),
619
- r: wt,
620
- s: Ct,
321
+ p: (e, t) => Ge(e * 100, t),
322
+ r: Ge,
323
+ s: We,
621
324
  X: (e) => Math.round(e).toString(16).toUpperCase(),
622
325
  x: (e) => Math.round(e).toString(16)
623
326
  };
624
327
  //#endregion
625
328
  //#region ../../node_modules/d3-format/src/identity.js
626
- function Et(e) {
329
+ function qe(e) {
627
330
  return e;
628
331
  }
629
332
  //#endregion
630
333
  //#region ../../node_modules/d3-format/src/locale.js
631
- var Dt = Array.prototype.map, Ot = [
334
+ var Je = Array.prototype.map, Ye = [
632
335
  "y",
633
336
  "z",
634
337
  "a",
@@ -647,49 +350,49 @@ var Dt = Array.prototype.map, Ot = [
647
350
  "Z",
648
351
  "Y"
649
352
  ];
650
- function kt(e) {
651
- var t = e.grouping === void 0 || e.thousands === void 0 ? Et : gt(Dt.call(e.grouping, Number), e.thousands + ""), n = e.currency === void 0 ? "" : e.currency[0] + "", r = e.currency === void 0 ? "" : e.currency[1] + "", i = e.decimal === void 0 ? "." : e.decimal + "", a = e.numerals === void 0 ? Et : _t(Dt.call(e.numerals, String)), o = e.percent === void 0 ? "%" : e.percent + "", s = e.minus === void 0 ? "−" : e.minus + "", c = e.nan === void 0 ? "NaN" : e.nan + "";
353
+ function Xe(e) {
354
+ var t = e.grouping === void 0 || e.thousands === void 0 ? qe : Le(Je.call(e.grouping, Number), e.thousands + ""), n = e.currency === void 0 ? "" : e.currency[0] + "", r = e.currency === void 0 ? "" : e.currency[1] + "", i = e.decimal === void 0 ? "." : e.decimal + "", a = e.numerals === void 0 ? qe : Re(Je.call(e.numerals, String)), o = e.percent === void 0 ? "%" : e.percent + "", s = e.minus === void 0 ? "−" : e.minus + "", c = e.nan === void 0 ? "NaN" : e.nan + "";
652
355
  function l(e, l) {
653
- e = yt(e);
654
- var u = e.fill, d = e.align, f = e.sign, p = e.symbol, m = e.zero, h = e.width, ee = e.comma, g = e.precision, _ = e.trim, v = e.type;
655
- v === "n" ? (ee = !0, v = "g") : Tt[v] || (g === void 0 && (g = 12), _ = !0, v = "g"), (m || u === "0" && d === "=") && (m = !0, u = "0", d = "=");
656
- var te = (l && l.prefix !== void 0 ? l.prefix : "") + (p === "$" ? n : p === "#" && /[boxX]/.test(v) ? "0" + v.toLowerCase() : ""), ne = (p === "$" ? r : /[%p]/.test(v) ? o : "") + (l && l.suffix !== void 0 ? l.suffix : ""), re = Tt[v], ie = /[defgprs%]/.test(v);
657
- g = g === void 0 ? 6 : /[gprs]/.test(v) ? Math.max(1, Math.min(21, g)) : Math.max(0, Math.min(20, g));
658
- function y(e) {
659
- var n = te, r = ne, o, l, p;
660
- if (v === "c") r = re(e) + r, e = "";
356
+ e = Be(e);
357
+ var u = e.fill, d = e.align, f = e.sign, p = e.symbol, m = e.zero, h = e.width, g = e.comma, _ = e.precision, v = e.trim, y = e.type;
358
+ y === "n" ? (g = !0, y = "g") : Ke[y] || (_ === void 0 && (_ = 12), v = !0, y = "g"), (m || u === "0" && d === "=") && (m = !0, u = "0", d = "=");
359
+ var b = (l && l.prefix !== void 0 ? l.prefix : "") + (p === "$" ? n : p === "#" && /[boxX]/.test(y) ? "0" + y.toLowerCase() : ""), ee = (p === "$" ? r : /[%p]/.test(y) ? o : "") + (l && l.suffix !== void 0 ? l.suffix : ""), te = Ke[y], x = /[defgprs%]/.test(y);
360
+ _ = _ === void 0 ? 6 : /[gprs]/.test(y) ? Math.max(1, Math.min(21, _)) : Math.max(0, Math.min(20, _));
361
+ function S(e) {
362
+ var n = b, r = ee, o, l, p;
363
+ if (y === "c") r = te(e) + r, e = "";
661
364
  else {
662
365
  e = +e;
663
- var y = e < 0 || 1 / e < 0;
664
- if (e = isNaN(e) ? c : re(Math.abs(e), g), _ && (e = xt(e)), y && +e == 0 && f !== "+" && (y = !1), n = (y ? f === "(" ? f : s : f === "-" || f === "(" ? "" : f) + n, r = (v === "s" && !isNaN(e) && St !== void 0 ? Ot[8 + St / 3] : "") + r + (y && f === "(" ? ")" : ""), ie) {
366
+ var S = e < 0 || 1 / e < 0;
367
+ if (e = isNaN(e) ? c : te(Math.abs(e), _), v && (e = He(e)), S && +e == 0 && f !== "+" && (S = !1), n = (S ? f === "(" ? f : s : f === "-" || f === "(" ? "" : f) + n, r = (y === "s" && !isNaN(e) && Ue !== void 0 ? Ye[8 + Ue / 3] : "") + r + (S && f === "(" ? ")" : ""), x) {
665
368
  for (o = -1, l = e.length; ++o < l;) if (p = e.charCodeAt(o), 48 > p || p > 57) {
666
369
  r = (p === 46 ? i + e.slice(o + 1) : e.slice(o)) + r, e = e.slice(0, o);
667
370
  break;
668
371
  }
669
372
  }
670
373
  }
671
- ee && !m && (e = t(e, Infinity));
672
- var b = n.length + e.length + r.length, x = b < h ? Array(h - b + 1).join(u) : "";
673
- switch (ee && m && (e = t(x + e, x.length ? h - r.length : Infinity), x = ""), d) {
374
+ g && !m && (e = t(e, Infinity));
375
+ var ne = n.length + e.length + r.length, C = ne < h ? Array(h - ne + 1).join(u) : "";
376
+ switch (g && m && (e = t(C + e, C.length ? h - r.length : Infinity), C = ""), d) {
674
377
  case "<":
675
- e = n + e + r + x;
378
+ e = n + e + r + C;
676
379
  break;
677
380
  case "=":
678
- e = n + x + e + r;
381
+ e = n + C + e + r;
679
382
  break;
680
383
  case "^":
681
- e = x.slice(0, b = x.length >> 1) + n + e + r + x.slice(b);
384
+ e = C.slice(0, ne = C.length >> 1) + n + e + r + C.slice(ne);
682
385
  break;
683
- default: e = x + n + e + r;
386
+ default: e = C + n + e + r;
684
387
  }
685
388
  return a(e);
686
389
  }
687
- return y.toString = function() {
390
+ return S.toString = function() {
688
391
  return e + "";
689
- }, y;
392
+ }, S;
690
393
  }
691
394
  function u(e, t) {
692
- var n = Math.max(-8, Math.min(8, Math.floor(ht(t) / 3))) * 3, r = 10 ** -n, i = l((e = yt(e), e.type = "f", e), { suffix: Ot[8 + n / 3] });
395
+ var n = Math.max(-8, Math.min(8, Math.floor(Ie(t) / 3))) * 3, r = 10 ** -n, i = l((e = Be(e), e.type = "f", e), { suffix: Ye[8 + n / 3] });
693
396
  return function(e) {
694
397
  return i(r * e);
695
398
  };
@@ -701,18 +404,35 @@ function kt(e) {
701
404
  }
702
405
  //#endregion
703
406
  //#region ../../node_modules/d3-format/src/defaultLocale.js
704
- var At, jt, Mt;
705
- Nt({
407
+ var Ze, Qe, $e;
408
+ et({
706
409
  thousands: ",",
707
410
  grouping: [3],
708
411
  currency: ["$", ""]
709
412
  });
710
- function Nt(e) {
711
- return At = kt(e), jt = At.format, Mt = At.formatPrefix, At;
413
+ function et(e) {
414
+ return Ze = Xe(e), Qe = Ze.format, $e = Ze.formatPrefix, Ze;
415
+ }
416
+ //#endregion
417
+ //#region ../core/src/utils/arrayUtils.js
418
+ function tt(e, t) {
419
+ return e.length == t.length && e.every((n, r) => e[r] === t[r]);
420
+ }
421
+ function nt(e) {
422
+ return Array.isArray(e) ? e : e === void 0 ? [] : [e];
423
+ }
424
+ function rt(e) {
425
+ return e[e.length - 1];
426
+ }
427
+ function it(e, t, n) {
428
+ if (t < 0 || t >= e.length) throw Error("Source index out of range.");
429
+ if (n < 0 || n > e.length - 1) throw Error("Destination index out of range.");
430
+ let [r] = e.splice(t, 1);
431
+ e.splice(n, 0, r);
712
432
  }
713
433
  //#endregion
714
434
  //#region ../core/src/data/sideInputBinding.js
715
- var Pt = class {
435
+ var at = class {
716
436
  #e;
717
437
  #t;
718
438
  #n = !1;
@@ -748,7 +468,7 @@ var Pt = class {
748
468
  isReady() {
749
469
  return this.#r && this.#n && this.#e.areDataDependenciesAvailable() && this.#t.every(({ collector: e, consumed: t }) => e.dataRevision === t);
750
470
  }
751
- }, Ft = class {
471
+ }, ot = class {
752
472
  stats = {
753
473
  count: 0,
754
474
  first: null
@@ -762,6 +482,9 @@ var Pt = class {
762
482
  get behavior() {
763
483
  return 0;
764
484
  }
485
+ get createsNewIdentity() {
486
+ return !1;
487
+ }
765
488
  get domainSensitiveScaleChannels() {
766
489
  return [];
767
490
  }
@@ -800,7 +523,7 @@ var Pt = class {
800
523
  initialized: this.#e,
801
524
  disposed: this.#t,
802
525
  params: "params" in e ? structuredClone(e.params) : void 0,
803
- view: It(e, this.paramRuntimeProvider),
526
+ view: st(e, this.paramRuntimeProvider),
804
527
  domainSensitiveScaleChannels: this.domainSensitiveScaleChannels
805
528
  };
806
529
  }
@@ -811,15 +534,15 @@ var Pt = class {
811
534
  }
812
535
  initialize() {}
813
536
  initializeOnce() {
814
- this.#e ||= (this.dataDependencies.length && (this.#i = new Pt(this)), this.initialize(), !0);
537
+ this.#e ||= (this.dataDependencies.length && (this.#i = new at(this)), this.initialize(), !0);
815
538
  }
816
539
  #a() {
817
- this._propagate = Function("children", "stats", Fe(this.children.length).map((e) => `const child${e} = children[${e}];`).join("\n") + `return function propagate(datum) {
540
+ this._propagate = Function("children", "stats", Ne(this.children.length).map((e) => `const child${e} = children[${e}];`).join("\n") + `return function propagate(datum) {
818
541
  if (stats.count === 0) {
819
542
  stats.first = structuredClone(datum);
820
543
  }
821
544
  stats.count++;
822
- ${Fe(this.children.length).map((e) => `child${e}.handle(datum);`).join("\n")}
545
+ ${Ne(this.children.length).map((e) => `child${e}.handle(datum);`).join("\n")}
823
546
  };`)(this.children, this.stats);
824
547
  }
825
548
  setParent(e) {
@@ -931,11 +654,11 @@ var Pt = class {
931
654
  }
932
655
  _propagate(e) {}
933
656
  };
934
- function It(e, t) {
657
+ function st(e, t) {
935
658
  if ("view" in e) return e.view;
936
659
  if (t && "getPathString" in t) return t;
937
660
  }
938
- function Lt(e) {
661
+ function ct(e) {
939
662
  let t = /* @__PURE__ */ new Set();
940
663
  for (; e;) {
941
664
  for (let n of e.domainSensitiveScaleChannels) t.add(n);
@@ -943,117 +666,55 @@ function Lt(e) {
943
666
  }
944
667
  return t;
945
668
  }
946
- function Rt(e) {
669
+ function lt(e) {
947
670
  return e.type == "file";
948
671
  }
949
- function zt(e) {
672
+ function ut(e) {
950
673
  return e.type == "facet";
951
674
  }
952
675
  //#endregion
953
- //#region ../core/src/ruler/rulerValue.js
954
- function Bt(e = ["x"], t = {}) {
955
- let n = {};
956
- for (let r of e) n[r] = t[r] ?? null;
957
- return {
958
- type: "ruler",
959
- values: n
960
- };
961
- }
962
- //#endregion
963
- //#region ../core/src/paramRuntime/paramUtils.js
964
- function j(e) {
965
- return typeof e == "object" && !!e && "expr" in e && S(e.expr);
966
- }
967
- function Vt(e) {
968
- if (j(e)) throw Error("ExprRef " + JSON.stringify(e) + " not allowed here. Expected a scalar value.");
969
- return e;
970
- }
971
- function Ht(e) {
972
- return ("expr" in e || "bind" in e) && !("select" in e) && !("ruler" in e);
973
- }
974
- function Ut(e) {
975
- return !("expr" in e || "bind" in e) && "select" in e;
976
- }
977
- function Wt(e) {
978
- return !("expr" in e || "bind" in e || "select" in e) && "ruler" in e;
979
- }
980
- function Gt(e) {
981
- if (!/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e)) throw Error("Invalid parameter name: " + e + ". Must be a valid JavaScript identifier.");
982
- return e;
983
- }
984
- function Kt(e, t, n) {
985
- if ("select" in e) {
986
- let t = Gi(e.select);
987
- if (Ki(t)) return t.toggle ? Fi() : Pi(null);
988
- if (qi(t)) {
989
- if (!t.encodings) throw Error("Interval selection \"" + e.name + "\" must have encodings defined!");
990
- return Ii(t.encodings);
991
- }
992
- throw Error("Unknown selection config for parameter \"" + e.name + "\".");
993
- }
994
- if ("ruler" in e) return Bt(e.ruler.encodings, e.value);
995
- if ("expr" in e) {
996
- let r = n ?? t?.createExpression(e.expr);
997
- if (!r) throw Error("Cannot evaluate expression for parameter \"" + e.name + "\".");
998
- return r(null);
676
+ //#region ../core/src/utils/specError.js
677
+ function dt(e) {
678
+ let t = /* @__PURE__ */ new Set();
679
+ for (; e instanceof Error && !t.has(e);) {
680
+ t.add(e);
681
+ let n = e.specLocation;
682
+ if (n) return n;
683
+ e = e.cause;
999
684
  }
1000
- return "value" in e ? e.value : null;
1001
- }
1002
- function qt(e, t, n, r, i = []) {
1003
- let a = { ...t }, o = [];
1004
- for (let [r, i] of Object.entries(t)) if (j(i)) {
1005
- let t = e.createExpression(i.expr), s = o.push({
1006
- key: r,
1007
- fn: t
1008
- }) - 1;
1009
- Object.defineProperty(a, r, {
1010
- enumerable: !0,
1011
- get: n ? () => c.get()[s] : () => t(null)
1012
- });
1013
- } else a[r] = i;
1014
- if (!n) return a;
1015
- for (let { key: t, expr: n } of i) o.push({
1016
- key: t,
1017
- fn: e.createExpression(n.expr)
1018
- });
1019
- if (!o.length) return a;
1020
- let s = Array.from(new Set(o.flatMap(({ fn: e }) => e.dependencies))), c = e.computed("expression properties", s, () => o.map(({ fn: e }) => e(null)), { equals: Jt }), l = c.get(), u = e.effect([c], () => {
1021
- let e = c.get(), t = new Set(o.filter((t, n) => l[n] !== e[n]).map(({ key: e }) => e));
1022
- l = e, n(t);
1023
- });
1024
- return r?.(c.dispose), r?.(u), a;
1025
685
  }
1026
- function Jt(e, t) {
1027
- return e.every((e, n) => e === t[n]);
686
+ function ft(e, t) {
687
+ return e instanceof Error && t && !dt(e) && Object.assign(e, { specLocation: t }), e;
1028
688
  }
1029
- function Yt(e, t, n, r) {
1030
- if (!j(t)) return t;
1031
- let i = () => {
1032
- throw Error(n);
1033
- }, a = e.watchExpression ? e.watchExpression(t.expr, i, {
1034
- scopeOwned: !1,
1035
- registerDisposer: r
1036
- }) : e.createExpression(t.expr);
1037
- if (!e.watchExpression) {
1038
- let e = a.subscribe(i);
1039
- r?.(e);
1040
- }
1041
- return a();
689
+ //#endregion
690
+ //#region ../core/src/utils/compileDatumAccessor.js
691
+ var pt = 0;
692
+ function mt(e, t, n, r) {
693
+ let i = Array.from(t, (e) => {
694
+ let t = JSON.stringify(e);
695
+ return `if (!(${t} in datum)) missingField(datum, ${t});`;
696
+ }).join("\n");
697
+ return Function("missingField", "context", `"use strict";
698
+ return function createAccessor(globalObject) {
699
+ // accessor ${pt++}
700
+ return function accessDatum(datum) {
701
+ ${i}
702
+ ${e}
703
+ }${r ? ".bind(context)" : ""};
704
+ };`)((e, t) => {
705
+ throw ft(/* @__PURE__ */ Error(`Invalid field "${t}". Available fields or properties: ${Object.keys(e).join(", ")}`), n);
706
+ }, r);
1042
707
  }
1043
- function Xt(e) {
1044
- return Object.assign(() => e, {
1045
- dependencies: [],
1046
- subscribe: () => () => void 0,
1047
- invalidate: () => void 0,
1048
- identifier: () => "constant",
1049
- fields: [],
1050
- globals: [],
1051
- code: JSON.stringify(e)
1052
- });
708
+ //#endregion
709
+ //#region ../core/src/utils/field.js
710
+ function T(t, n, r) {
711
+ let i = s(t), a = i.length === 1 ? i[0] : t;
712
+ return e(mt(`return datum${i.map((e) => `[${JSON.stringify(e)}]`).join("")};`, i.length === 1 ? i : [], r)(), [a], n ?? a);
1053
713
  }
1054
714
  //#endregion
1055
715
  //#region ../core/src/data/transforms/transform.js
1056
- var Zt = class extends Ft {
716
+ var ht = class extends ot {
717
+ inFacet = !1;
1057
718
  #e;
1058
719
  #t;
1059
720
  #n = 0;
@@ -1073,10 +734,10 @@ var Zt = class extends Ft {
1073
734
  super.complete(), this.#r = e, e == this.#n && (clearTimeout(this.#i), this.#i = void 0);
1074
735
  }
1075
736
  reset() {
1076
- this.#s(), super.reset();
737
+ this.#s(), this.inFacet = !1, super.reset();
1077
738
  }
1078
739
  beginBatch(e) {
1079
- this.#s(), super.beginBatch(e);
740
+ e.type == "facet" && (this.inFacet = !0), this.#s(), super.beginBatch(e);
1080
741
  }
1081
742
  requestReactiveRepropagate() {
1082
743
  if (this.#n++, this.#t === void 0) {
@@ -1091,10 +752,17 @@ var Zt = class extends Ft {
1091
752
  get label() {
1092
753
  return this.#e;
1093
754
  }
755
+ createFieldAccessor(e, t, { index: n, defaultValue: r } = {}) {
756
+ let i = e[t], a = Array.isArray(i), o = this.paramRuntimeProvider?.paramRuntime;
757
+ return T(a ? i[n] : i ?? r, void 0, o?.getSpecLocation(e, i == null ? [] : a ? [t, n] : [t]));
758
+ }
759
+ createFieldAccessors(e, t) {
760
+ return nt(e[t]).map((n, r) => this.createFieldAccessor(e, t, { index: r }));
761
+ }
1094
762
  watchExprRef(e, t) {
1095
- if (j(e)) {
763
+ if ($(e)) {
1096
764
  let n = e;
1097
- return this.paramRuntime.watchExpression(n.expr, t, {
765
+ return this.paramRuntime.watchExpression(n, t, {
1098
766
  scopeOwned: !1,
1099
767
  registerDisposer: (e) => this.registerDisposer(e)
1100
768
  });
@@ -1113,7 +781,7 @@ var Zt = class extends Ft {
1113
781
  #s() {
1114
782
  for (let e of this.#a) e();
1115
783
  }
1116
- }, M = "__uniqueId", Qt = 1e4, $t = [null], en = class extends Zt {
784
+ }, E = "__uniqueId", gt = 1e4, _t = [null], vt = class extends ht {
1117
785
  get behavior() {
1118
786
  return 2;
1119
787
  }
@@ -1125,1719 +793,2251 @@ var Zt = class extends Ft {
1125
793
  super.reset(), this._usedBlocks = 0, this._id = -1;
1126
794
  }
1127
795
  handle(e) {
1128
- e[M] = this.#e(), this._propagate(e);
796
+ e[E] = this.#e(), this._propagate(e);
1129
797
  }
1130
798
  #e() {
1131
- return ++this._id % 1e4 == 0 && (this._id = this.#t() * Qt), this._id;
799
+ return ++this._id % 1e4 == 0 && (this._id = this.#t() * gt), this._id;
1132
800
  }
1133
801
  #t() {
1134
802
  return this._usedBlocks < this._blocks.length ? this._blocks[this._usedBlocks++] : this.#n();
1135
803
  }
1136
804
  #n() {
1137
- let e = $t.length;
1138
- return $t[e] = this, this._blocks.push(e), this._usedBlocks++, e;
805
+ let e = _t.length;
806
+ return _t[e] = this, this._blocks.push(e), this._usedBlocks++, e;
1139
807
  }
1140
808
  };
1141
809
  //#endregion
1142
- //#region ../core/src/utils/field.js
1143
- function tn(t, n = t) {
1144
- return /^[A-Za-z0-9_]+$/.test(t) ? e(Function("validator", `
1145
- let validated = !validator;
1146
- return function accessField(datum) {
1147
- if (!validated) {
1148
- validator(datum);
1149
- validated = true;
1150
- }
1151
- return datum[${JSON.stringify(t)}];
1152
- }`)(function(e) {
1153
- t in e || nn(e, t);
1154
- }), [t], n) : c(t);
1155
- }
1156
- function nn(e, t) {
1157
- throw Error(`Invalid field "${t}". Available fields or properties: ${Object.keys(e).join(", ")}`);
1158
- }
1159
- //#endregion
1160
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/accessor.js
1161
- function N(e, t, n) {
1162
- return Object.assign(e, {
1163
- fields: t || [],
1164
- fname: n
1165
- });
1166
- }
1167
- //#endregion
1168
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/getter.js
1169
- function rn(e) {
1170
- return e.length === 1 ? an(e[0]) : on(e);
1171
- }
1172
- var an = (e) => function(t) {
1173
- return t[e];
1174
- }, on = (e) => {
1175
- let t = e.length;
1176
- return function(n) {
1177
- for (let r = 0; r < t; ++r) n = n[e[r]];
1178
- return n;
810
+ //#region ../core/src/selection/selectionPredicateTree.js
811
+ function yt(e, t) {
812
+ if (!("test" in e) || !("ref" in e.test)) return e;
813
+ let n = e.test.ref;
814
+ if (!Object.hasOwn(t, n)) throw Error(`Unknown predicate "${n}" in unit view.`);
815
+ return {
816
+ ...e,
817
+ test: t[n]
1179
818
  };
1180
- };
1181
- //#endregion
1182
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/error.js
1183
- function P(e) {
1184
- throw Error(e);
1185
819
  }
1186
- //#endregion
1187
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/splitAccessPath.js
1188
- function sn(e) {
1189
- let t = [], n = e.length, r = null, i = 0, a = "", o, s, c;
1190
- e += "";
1191
- function l() {
1192
- t.push(a + e.substring(o, s)), a = "", o = s + 1;
1193
- }
1194
- for (o = s = 0; s < n; ++s) if (c = e[s], c === "\\") a += e.substring(o, s++), o = s;
1195
- else if (c === r) l(), r = null, i = -1;
1196
- else if (r) continue;
1197
- else o === i && c === "\"" || o === i && c === "'" ? (o = s + 1, r = c) : c === "." && !i ? s > o ? l() : o = s + 1 : c === "[" ? (s > o && l(), i = o = s + 1) : c === "]" && (i || P("Access path missing open bracket: " + e), i > 0 && l(), i = 0, o = s + 1);
1198
- return i && P("Access path missing closing bracket: " + e), r && P("Access path missing closing quote: " + e), s > o && (s++, l()), t;
1199
- }
1200
- //#endregion
1201
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/field.js
1202
- function cn(e, t, n) {
1203
- let r = sn(e), i = r.length === 1 ? r[0] : e;
1204
- return N((n && n.get || rn)(r), [i], t || i);
1205
- }
1206
- cn("id"), N((e) => e, [], "identity"), N(() => 0, [], "zero"), N(() => 1, [], "one"), N(() => !0, [], "true"), N(() => !1, [], "false");
1207
- //#endregion
1208
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/interpreter.js
1209
- var ln = /* @__PURE__ */ new Set([
1210
- ...Object.getOwnPropertyNames(Object.prototype).filter((e) => typeof Object.prototype[e] == "function"),
1211
- "__proto__",
1212
- "then"
1213
- ]);
1214
- Array.isArray;
1215
- //#endregion
1216
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/isFunction.js
1217
- function un(e) {
1218
- return typeof e == "function";
1219
- }
1220
- //#endregion
1221
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/hasOwnProperty.js
1222
- function dn(e, t) {
1223
- return Object.hasOwn(e, t);
1224
- }
1225
- //#endregion
1226
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/isString.js
1227
- function fn(e) {
1228
- return typeof e == "string";
820
+ function bt(e) {
821
+ let t = "test" in e ? e.test : {
822
+ param: e.param,
823
+ ...e.empty === void 0 ? {} : { empty: e.empty },
824
+ ...e.project === void 0 ? {} : { project: e.project }
825
+ }, n = (e) => {
826
+ if (!e || typeof e != "object" || Array.isArray(e)) throw Error("Selection predicate must be an object.");
827
+ let t = e, r = [
828
+ "param",
829
+ "and",
830
+ "or",
831
+ "not"
832
+ ].filter((e) => e in t);
833
+ if (r.length !== 1) throw Error("Selection predicate must have exactly one operator.");
834
+ let i = r[0];
835
+ if (i === "param") {
836
+ if (typeof t.param == "string") {
837
+ if (Object.keys(t).some((e) => ![
838
+ "param",
839
+ "empty",
840
+ "project"
841
+ ].includes(e)) || typeof (t.empty ?? !0) != "boolean") throw Error("Invalid selection parameter predicate.");
842
+ if (t.project !== void 0) {
843
+ let e = t.project;
844
+ if (!e || typeof e != "object" || Array.isArray(e) || Object.keys(e).length === 0 || Object.entries(e).some(([e, t]) => !["x", "y"].includes(e) || t !== e && t !== e + "2")) throw Error("Invalid interval selection projection.");
845
+ }
846
+ return {
847
+ param: eo(t.param),
848
+ empty: t.empty ?? !0,
849
+ ...t.project ? { project: { ...t.project } } : {}
850
+ };
851
+ }
852
+ if (!t.param || typeof t.param != "object" || Object.keys(t.param).length !== 1 || !Array.isArray(t.param.or) || Object.keys(t).some((e) => !["param", "empty"].includes(e)) || typeof (t.empty ?? !0) != "boolean") throw Error("Invalid flat selection union.");
853
+ if (t.param.or.length === 0) throw Error("Selection test \"or\" must be a nonempty array.");
854
+ let e = Array.from(new Set(t.param.or.map(eo))), n = e.map((e) => ({ selectionActive: e })), r = e.map((e, t) => ({ all: [{
855
+ param: e,
856
+ empty: !0
857
+ }, n[t]] }));
858
+ return { any: t.empty === !1 ? r : [...r, { not: { any: n } }] };
859
+ }
860
+ if (Object.keys(t).length !== 1) throw Error("Selection predicate operators cannot be mixed.");
861
+ if (i === "not") return { not: n(t.not) };
862
+ let a = t[i];
863
+ if (!Array.isArray(a) || a.length === 0) throw Error(`Selection test "${i}" must be a nonempty array.`);
864
+ let o = a.map(n);
865
+ return i === "and" ? { all: o } : { any: o };
866
+ };
867
+ return n(t);
1229
868
  }
1230
- //#endregion
1231
- //#region ../../node_modules/vega-expression/node_modules/vega-util/build/toSet.js
1232
- function pn(e) {
1233
- let t = {}, n = e.length;
1234
- for (let r = 0; r < n; ++r) t[e[r] + ""] = !0;
1235
- return t;
869
+ function xt(e) {
870
+ let t = /* @__PURE__ */ new Set(), n = (e) => {
871
+ if ("param" in e) t.add(e.param);
872
+ else if ("selectionActive" in e) t.add(typeof e.selectionActive == "string" ? e.selectionActive : e.selectionActive.param);
873
+ else if ("not" in e) n(e.not);
874
+ else for (let t of "all" in e ? e.all : e.any) n(t);
875
+ };
876
+ return n(e), Array.from(t);
1236
877
  }
1237
- //#endregion
1238
- //#region ../../node_modules/vega-expression/build/vega-expression.js
1239
- var mn = "RawCode", hn = "Literal", gn = "Property", _n = "Identifier", vn = "ArrayExpression", yn = "BinaryExpression", bn = "CallExpression", xn = "ConditionalExpression", Sn = "LogicalExpression", Cn = "MemberExpression", wn = "ObjectExpression", Tn = "UnaryExpression";
1240
- function F(e) {
1241
- this.type = e;
878
+ function St(e) {
879
+ let t = /* @__PURE__ */ new Map(), n = (e) => {
880
+ if ("param" in e) t.set(e.param, { selectionActive: {
881
+ param: e.param,
882
+ type: e.type,
883
+ components: e.projections?.map(({ component: e }) => e) ?? []
884
+ } });
885
+ else if ("selectionActive" in e) t.set(e.selectionActive.param, e);
886
+ else if ("not" in e) n(e.not);
887
+ else for (let t of "all" in e ? e.all : e.any) n(t);
888
+ };
889
+ return n(e), { all: [e, { any: Array.from(t.values()) }] };
1242
890
  }
1243
- F.prototype.visit = function(e) {
1244
- let t, n, r;
1245
- if (e(this)) return 1;
1246
- for (t = En(this), n = 0, r = t.length; n < r; ++n) if (t[n].visit(e)) return 1;
1247
- };
1248
- function En(e) {
1249
- switch (e.type) {
1250
- case vn: return e.elements;
1251
- case yn:
1252
- case Sn: return [e.left, e.right];
1253
- case bn: return [e.callee].concat(e.arguments);
1254
- case xn: return [
1255
- e.test,
1256
- e.consequent,
1257
- e.alternate
1258
- ];
1259
- case Cn: return [e.object, e.property];
1260
- case wn: return e.properties;
1261
- case gn: return [e.key, e.value];
1262
- case Tn: return [e.argument];
1263
- case _n:
1264
- case hn:
1265
- case mn:
1266
- default: return [];
1267
- }
891
+ function Ct(e) {
892
+ if ("param" in e) return e.empty;
893
+ if ("selectionActive" in e) return !1;
894
+ if ("not" in e) return !Ct(e.not);
895
+ let t = "all" in e ? e.all : e.any;
896
+ return "all" in e ? t.every(Ct) : t.some(Ct);
1268
897
  }
1269
- var I, L, R, z, B, Dn = 1, On = 2, V = 3, H = 4, kn = 5, U = 6, W = 7, An = 8, jn = 9;
1270
- I = {}, I[Dn] = "Boolean", I[On] = "<end>", I[V] = "Identifier", I[H] = "Keyword", I[kn] = "Null", I[U] = "Numeric", I[W] = "Punctuator", I[An] = "String", I[jn] = "RegularExpression";
1271
- var Mn = "ArrayExpression", Nn = "BinaryExpression", Pn = "CallExpression", Fn = "ConditionalExpression", In = "Identifier", Ln = "Literal", Rn = "LogicalExpression", zn = "MemberExpression", Bn = "ObjectExpression", Vn = "Property", Hn = "UnaryExpression", G = "Unexpected token %0", Un = "Unexpected number", Wn = "Unexpected string", Gn = "Unexpected identifier", Kn = "Unexpected reserved word", qn = "Unexpected end of input", Jn = "Invalid regular expression", Yn = "Invalid regular expression: missing /", Xn = "Octal literals are not allowed in strict mode.", Zn = "Duplicate data property in object literal not allowed in strict mode", K = "ILLEGAL", Qn = "Disabled.", $n = /* @__PURE__ */ RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), er = /* @__PURE__ */ RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");
1272
- function tr(e, t) {
1273
- /* istanbul ignore next */
1274
- if (!e) throw Error("ASSERT: " + t);
1275
- }
1276
- function q(e) {
1277
- return e >= 48 && e <= 57;
898
+ function wt(e, t, n, r, i) {
899
+ let a = (e) => {
900
+ let t = n.findSelectionCapability?.(e);
901
+ if (t) return t;
902
+ let r = n.findValue(e);
903
+ if (!r || ![
904
+ "single",
905
+ "multi",
906
+ "interval"
907
+ ].includes(r.type)) throw Error(`Selection parameter "${e}" was not found.`);
908
+ return {
909
+ type: r.type,
910
+ components: r.type === "interval" ? Object.keys(r.intervals).map((e) => ({ component: e })) : []
911
+ };
912
+ }, o = t, s = (e) => {
913
+ let t = o[e];
914
+ if (t && "field" in t) return t.field;
915
+ if (t && "condition" in t) return (Array.isArray(t.condition) ? t.condition : [t.condition]).find((e) => "field" in e)?.field;
916
+ }, c = (e) => {
917
+ if ("all" in e) return { all: e.all.map(c) };
918
+ if ("any" in e) return { any: e.any.map(c) };
919
+ if ("not" in e) return { not: c(e.not) };
920
+ let t = "param" in e ? e.param : e.selectionActive, n = a(t);
921
+ if ("selectionActive" in e) return { selectionActive: {
922
+ param: t,
923
+ type: n.type,
924
+ components: n.components.map(({ component: e }) => e)
925
+ } };
926
+ if (e.project && n.type !== "interval") throw Error(`Selection "${t}" is not an interval selection; project is invalid.`);
927
+ if (n.type !== "interval") return {
928
+ param: t,
929
+ type: n.type,
930
+ empty: e.empty
931
+ };
932
+ let l = n.components.map(({ component: e }) => e);
933
+ if (e.project && (Object.keys(e.project).length !== l.length || l.some((t) => !(t in e.project)))) throw Error(`Selection "${t}" project must cover its declared components: ${l.join(", ")}.`);
934
+ let u = n.components.map(({ component: n, type: a }) => {
935
+ let c = e.project?.[n] ?? n;
936
+ if (![
937
+ "x",
938
+ "x2",
939
+ "y",
940
+ "y2"
941
+ ].includes(c)) throw Error(`Selection "${t}" has unsupported component "${n}".`);
942
+ let l = o[c];
943
+ if (e.project && (!l || !("field" in l))) throw Error(`Selection "${t}" project target "${c}" must be an unconditional field encoding.`);
944
+ let u = s(c);
945
+ if (!u) throw Error(`Selection "${t}" has no field for "${c}".`);
946
+ if (e.project) {
947
+ let e = i?.(c) ?? ("type" in l ? l.type : void 0) ?? ("type" in o[n] ? o[n].type : void 0);
948
+ if (![
949
+ "quantitative",
950
+ "index",
951
+ "locus"
952
+ ].includes(a) || e !== a) throw Error(`Selection "${t}" project target "${c}" must have matching quantitative, index, or locus type (${a} vs ${e}).`);
953
+ }
954
+ let d = n + "2", f = e.project ? void 0 : s(d);
955
+ return {
956
+ component: n,
957
+ input: c,
958
+ field: u,
959
+ ...f && f !== u ? {
960
+ secondaryInput: d,
961
+ secondaryField: f,
962
+ hitTest: r
963
+ } : {}
964
+ };
965
+ });
966
+ return {
967
+ param: t,
968
+ type: "interval",
969
+ empty: e.empty,
970
+ projections: u
971
+ };
972
+ };
973
+ return c(e);
1278
974
  }
1279
- function nr(e) {
1280
- return "0123456789abcdefABCDEF".includes(e);
975
+ function Tt(e, t) {
976
+ if ("all" in e || "any" in e) {
977
+ let n = ("all" in e ? e.all : e.any).map((e) => Tt(e, t));
978
+ return "all" in e ? (e) => n.every((t) => t(e)) : (e) => n.some((t) => t(e));
979
+ }
980
+ if ("not" in e) {
981
+ let n = Tt(e.not, t);
982
+ return (e) => !n(e);
983
+ }
984
+ if ("selectionActive" in e) {
985
+ let { param: n } = e.selectionActive;
986
+ return () => Et(t(n));
987
+ }
988
+ let { param: n, type: r, empty: i } = e;
989
+ if (r === "single") return (e) => {
990
+ let r = t(n);
991
+ return r.uniqueId == null ? i : r.uniqueId === e[E];
992
+ };
993
+ if (r === "multi") return (e) => {
994
+ let r = t(n);
995
+ return r.data.size === 0 ? i : r.data.has(e[E]);
996
+ };
997
+ let a = e.projections.map((e) => ({
998
+ ...e,
999
+ read: T(e.field),
1000
+ readSecondary: e.secondaryField ? T(e.secondaryField) : void 0
1001
+ }));
1002
+ return (e) => {
1003
+ let r = t(n);
1004
+ if (!Et(r)) return i;
1005
+ for (let t of a) {
1006
+ let n = r.intervals[t.component], i = t.read(e), a = t.readSecondary?.(e), [o, s] = n;
1007
+ if (o === s || !(a === void 0 ? o <= i && i < s : t.hitTest === "endpoints" ? o <= i && i < s || o <= a && a < s : t.hitTest === "encloses" ? o <= Math.min(i, a) && Math.max(i, a) <= s : o < Math.max(i, a) && Math.min(i, a) < s)) return !1;
1008
+ }
1009
+ return !0;
1010
+ };
1281
1011
  }
1282
- function rr(e) {
1283
- return "01234567".includes(e);
1012
+ function Et(e) {
1013
+ if (e.type === "single") return e.uniqueId != null;
1014
+ if (e.type === "multi") return e.data.size !== 0;
1015
+ if (e.type === "interval") return Object.values(e.intervals).every((e) => !!e);
1016
+ throw Error(`Unsupported selection type: ${e.type}`);
1284
1017
  }
1285
- function ir(e) {
1286
- return e === 32 || e === 9 || e === 11 || e === 12 || e === 160 || e >= 5760 && [
1287
- 5760,
1288
- 6158,
1289
- 8192,
1290
- 8193,
1291
- 8194,
1292
- 8195,
1293
- 8196,
1294
- 8197,
1295
- 8198,
1296
- 8199,
1297
- 8200,
1298
- 8201,
1299
- 8202,
1300
- 8239,
1301
- 8287,
1302
- 12288,
1303
- 65279
1304
- ].includes(e);
1018
+ //#endregion
1019
+ //#region ../core/src/encoder/accessor.js
1020
+ function Dt(e, t, n) {
1021
+ if (!e) throw Error("Cannot create an accessor without a channel.");
1022
+ function r(n) {
1023
+ let r = n;
1024
+ return r.fields ??= [], r.constant = r.fields.length === 0, r.channelDef = t, r.channel = e, r.sourceKey = At(t), r.scaleChannel = ((En(t) && t.resolutionChannel) ?? (Xn(e) && e)) || void 0, r.scaleChannel !== void 0 && (r.domainKeyBase = jt({
1025
+ scaleChannel: r.scaleChannel,
1026
+ source: kt(t)
1027
+ }).domainKeyBase), r.equals = (e) => e ? r === e || r.sourceKey !== void 0 && r.sourceKey === e.sourceKey : !1, r.asNumberAccessor = () => r, r;
1028
+ }
1029
+ function i(e) {
1030
+ if ($(e)) {
1031
+ let t = r(n.createExpression(e));
1032
+ if (t.fields.length > 0) throw Error("Expression in DatumDef/ValueDef cannot access data fields: " + e.expr);
1033
+ return t;
1034
+ }
1035
+ {
1036
+ let t = e;
1037
+ return r(() => t);
1038
+ }
1039
+ }
1040
+ if (wn(t)) try {
1041
+ return r(T(t.field, void 0, n?.getSpecLocation?.(t, ["field"])));
1042
+ } catch (e) {
1043
+ throw Error(`Invalid field definition: ${e.message}`, { cause: e });
1044
+ }
1045
+ if (jn(t)) return r(n.createExpression(t));
1046
+ if (Tn(t)) return i(t.datum);
1047
+ if (Cn(t)) return i(t.value);
1048
+ throw Error(`Invalid channel definition: "${e}": ${JSON.stringify(t)}! The channel definition must contain one of the following properties: "field", "datum", "value" or "expr".`);
1305
1049
  }
1306
- function J(e) {
1307
- return e === 10 || e === 13 || e === 8232 || e === 8233;
1050
+ function Ot(e) {
1051
+ return e.scaleChannel !== void 0;
1308
1052
  }
1309
- function ar(e) {
1310
- return e === 36 || e === 95 || e >= 65 && e <= 90 || e >= 97 && e <= 122 || e === 92 || e >= 128 && $n.test(String.fromCharCode(e));
1053
+ function kt(e) {
1054
+ if (wn(e)) return {
1055
+ kind: "field",
1056
+ value: e.field
1057
+ };
1058
+ if (jn(e)) return {
1059
+ kind: "expr",
1060
+ value: e.expr
1061
+ };
1062
+ if (Tn(e)) return {
1063
+ kind: "datum",
1064
+ value: e.datum
1065
+ };
1066
+ if (Cn(e)) return {
1067
+ kind: "value",
1068
+ value: e.value
1069
+ };
1070
+ throw Error("Cannot derive a domain key from channel definition: " + JSON.stringify(e));
1311
1071
  }
1312
- function or(e) {
1313
- return e === 36 || e === 95 || e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === 92 || e >= 128 && er.test(String.fromCharCode(e));
1072
+ function At(e) {
1073
+ let t = kt(e);
1074
+ return t.kind === "datum" || t.kind === "value" ? "constant|" + Pt(t.value) : t.kind + "|" + Nt(t);
1314
1075
  }
1315
- var sr = {
1316
- if: 1,
1317
- in: 1,
1318
- do: 1,
1319
- var: 1,
1320
- for: 1,
1321
- new: 1,
1322
- try: 1,
1323
- let: 1,
1324
- this: 1,
1325
- else: 1,
1326
- case: 1,
1327
- void: 1,
1328
- with: 1,
1329
- enum: 1,
1330
- while: 1,
1331
- break: 1,
1332
- catch: 1,
1333
- throw: 1,
1334
- const: 1,
1335
- yield: 1,
1336
- class: 1,
1337
- super: 1,
1338
- return: 1,
1339
- typeof: 1,
1340
- delete: 1,
1341
- switch: 1,
1342
- export: 1,
1343
- import: 1,
1344
- public: 1,
1345
- static: 1,
1346
- default: 1,
1347
- finally: 1,
1348
- extends: 1,
1349
- package: 1,
1350
- private: 1,
1351
- function: 1,
1352
- continue: 1,
1353
- debugger: 1,
1354
- interface: 1,
1355
- protected: 1,
1356
- instanceof: 1,
1357
- implements: 1
1358
- };
1359
- function cr() {
1360
- for (; R < z;) {
1361
- let e = L.charCodeAt(R);
1362
- if (ir(e) || J(e)) ++R;
1363
- else break;
1364
- }
1076
+ function jt({ scaleChannel: e, source: t, type: n }) {
1077
+ if (!e) throw Error("Cannot build a domain key without a scale channel.");
1078
+ let r = e + "|" + t.kind + "|" + Nt(t);
1079
+ return {
1080
+ domainKeyBase: r,
1081
+ domainKey: n ? n + "|" + r : void 0
1082
+ };
1365
1083
  }
1366
- function lr(e) {
1367
- var t, n, r, i = 0;
1368
- for (n = e === "u" ? 4 : 2, t = 0; t < n; ++t) R < z && nr(L[R]) ? (r = L[R++], i = i * 16 + "0123456789abcdef".indexOf(r.toLowerCase())) : X({}, G, K);
1369
- return String.fromCharCode(i);
1084
+ function Mt(e, t) {
1085
+ let { domainKey: n, domainKeyBase: r } = jt({
1086
+ scaleChannel: e.scaleChannel,
1087
+ source: kt(e.channelDef),
1088
+ type: t
1089
+ });
1090
+ if (!n) throw Error("Cannot finalize a domain key without a resolved type.");
1091
+ return e.domainKeyBase = r, e.domainKey = n, n;
1370
1092
  }
1371
- function ur() {
1372
- var e = L[R], t = 0, n, r;
1373
- for (e === "}" && X({}, G, K); R < z && (e = L[R++], nr(e));) t = t * 16 + "0123456789abcdef".indexOf(e.toLowerCase());
1374
- return (t > 1114111 || e !== "}") && X({}, G, K), t <= 65535 ? String.fromCharCode(t) : (n = (t - 65536 >> 10) + 55296, r = (t - 65536 & 1023) + 56320, String.fromCharCode(n, r));
1093
+ function Nt(e) {
1094
+ switch (e.kind) {
1095
+ case "field":
1096
+ case "expr": return e.value;
1097
+ case "datum":
1098
+ case "value": return Pt(e.value);
1099
+ default: throw Error("Unknown domain key source.");
1100
+ }
1375
1101
  }
1376
- function dr() {
1377
- var e = L.charCodeAt(R++), t = String.fromCharCode(e);
1378
- for (e === 92 && (L.charCodeAt(R) !== 117 && X({}, G, K), ++R, e = lr("u"), (!e || e === "\\" || !ar(e.charCodeAt(0))) && X({}, G, K), t = e); R < z && (e = L.charCodeAt(R), or(e));) ++R, t += String.fromCharCode(e), e === 92 && (t = t.substr(0, t.length - 1), L.charCodeAt(R) !== 117 && X({}, G, K), ++R, e = lr("u"), (!e || e === "\\" || !or(e.charCodeAt(0))) && X({}, G, K), t += e);
1379
- return t;
1102
+ function Pt(e) {
1103
+ return $(e) ? "expr:" + e.expr : e === void 0 ? "undefined" : JSON.stringify(e);
1380
1104
  }
1381
- function fr() {
1382
- for (var e = R++, t; R < z;) {
1383
- if (t = L.charCodeAt(R), t === 92) return R = e, dr();
1384
- if (or(t)) ++R;
1385
- else break;
1386
- }
1387
- return L.slice(e, R);
1105
+ //#endregion
1106
+ //#region ../../node_modules/d3-color/src/define.js
1107
+ function Ft(e, t, n) {
1108
+ e.prototype = t.prototype = n, n.constructor = e;
1388
1109
  }
1389
- function pr() {
1390
- var e = R, t = L.charCodeAt(R) === 92 ? dr() : fr();
1391
- return {
1392
- type: t.length === 1 ? V : sr.hasOwnProperty(t) ? H : t === "null" ? kn : t === "true" || t === "false" ? Dn : V,
1393
- value: t,
1394
- start: e,
1395
- end: R
1396
- };
1110
+ function It(e, t) {
1111
+ var n = Object.create(e.prototype);
1112
+ for (var r in t) n[r] = t[r];
1113
+ return n;
1397
1114
  }
1398
- function mr() {
1399
- var e = R, t = L.charCodeAt(R), n, r = L[R], i, a, o;
1400
- switch (t) {
1401
- case 46:
1402
- case 40:
1403
- case 41:
1404
- case 59:
1405
- case 44:
1406
- case 123:
1407
- case 125:
1408
- case 91:
1409
- case 93:
1410
- case 58:
1411
- case 63:
1412
- case 126: return ++R, {
1413
- type: W,
1414
- value: String.fromCharCode(t),
1415
- start: e,
1416
- end: R
1417
- };
1418
- default: if (n = L.charCodeAt(R + 1), n === 61) switch (t) {
1419
- case 43:
1420
- case 45:
1421
- case 47:
1422
- case 60:
1423
- case 62:
1424
- case 94:
1425
- case 124:
1426
- case 37:
1427
- case 38:
1428
- case 42: return R += 2, {
1429
- type: W,
1430
- value: String.fromCharCode(t) + String.fromCharCode(n),
1431
- start: e,
1432
- end: R
1433
- };
1434
- case 33:
1435
- case 61: return R += 2, L.charCodeAt(R) === 61 && ++R, {
1436
- type: W,
1437
- value: L.slice(e, R),
1438
- start: e,
1439
- end: R
1440
- };
1441
- }
1442
- }
1443
- if (o = L.substr(R, 4), o === ">>>=") return R += 4, {
1444
- type: W,
1445
- value: o,
1446
- start: e,
1447
- end: R
1448
- };
1449
- if (a = o.substr(0, 3), a === ">>>" || a === "<<=" || a === ">>=") return R += 3, {
1450
- type: W,
1451
- value: a,
1452
- start: e,
1453
- end: R
1454
- };
1455
- if (i = a.substr(0, 2), r === i[1] && "+-<>&|".includes(r) || i === "=>") return R += 2, {
1456
- type: W,
1457
- value: i,
1458
- start: e,
1459
- end: R
1460
- };
1461
- if (i === "//" && X({}, G, K), "<>=!+-*%&|^/".includes(r)) return ++R, {
1462
- type: W,
1463
- value: r,
1464
- start: e,
1465
- end: R
1466
- };
1467
- X({}, G, K);
1115
+ //#endregion
1116
+ //#region ../../node_modules/d3-color/src/color.js
1117
+ function Lt() {}
1118
+ var Rt = .7, zt = 1 / Rt, D = "\\s*([+-]?\\d+)\\s*", Bt = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*", O = "\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*", Vt = /^#([0-9a-f]{3,8})$/, Ht = RegExp(`^rgb\\(${D},${D},${D}\\)$`), Ut = RegExp(`^rgb\\(${O},${O},${O}\\)$`), Wt = RegExp(`^rgba\\(${D},${D},${D},${Bt}\\)$`), Gt = RegExp(`^rgba\\(${O},${O},${O},${Bt}\\)$`), Kt = RegExp(`^hsl\\(${Bt},${O},${O}\\)$`), qt = RegExp(`^hsla\\(${Bt},${O},${O},${Bt}\\)$`), Jt = {
1119
+ aliceblue: 15792383,
1120
+ antiquewhite: 16444375,
1121
+ aqua: 65535,
1122
+ aquamarine: 8388564,
1123
+ azure: 15794175,
1124
+ beige: 16119260,
1125
+ bisque: 16770244,
1126
+ black: 0,
1127
+ blanchedalmond: 16772045,
1128
+ blue: 255,
1129
+ blueviolet: 9055202,
1130
+ brown: 10824234,
1131
+ burlywood: 14596231,
1132
+ cadetblue: 6266528,
1133
+ chartreuse: 8388352,
1134
+ chocolate: 13789470,
1135
+ coral: 16744272,
1136
+ cornflowerblue: 6591981,
1137
+ cornsilk: 16775388,
1138
+ crimson: 14423100,
1139
+ cyan: 65535,
1140
+ darkblue: 139,
1141
+ darkcyan: 35723,
1142
+ darkgoldenrod: 12092939,
1143
+ darkgray: 11119017,
1144
+ darkgreen: 25600,
1145
+ darkgrey: 11119017,
1146
+ darkkhaki: 12433259,
1147
+ darkmagenta: 9109643,
1148
+ darkolivegreen: 5597999,
1149
+ darkorange: 16747520,
1150
+ darkorchid: 10040012,
1151
+ darkred: 9109504,
1152
+ darksalmon: 15308410,
1153
+ darkseagreen: 9419919,
1154
+ darkslateblue: 4734347,
1155
+ darkslategray: 3100495,
1156
+ darkslategrey: 3100495,
1157
+ darkturquoise: 52945,
1158
+ darkviolet: 9699539,
1159
+ deeppink: 16716947,
1160
+ deepskyblue: 49151,
1161
+ dimgray: 6908265,
1162
+ dimgrey: 6908265,
1163
+ dodgerblue: 2003199,
1164
+ firebrick: 11674146,
1165
+ floralwhite: 16775920,
1166
+ forestgreen: 2263842,
1167
+ fuchsia: 16711935,
1168
+ gainsboro: 14474460,
1169
+ ghostwhite: 16316671,
1170
+ gold: 16766720,
1171
+ goldenrod: 14329120,
1172
+ gray: 8421504,
1173
+ green: 32768,
1174
+ greenyellow: 11403055,
1175
+ grey: 8421504,
1176
+ honeydew: 15794160,
1177
+ hotpink: 16738740,
1178
+ indianred: 13458524,
1179
+ indigo: 4915330,
1180
+ ivory: 16777200,
1181
+ khaki: 15787660,
1182
+ lavender: 15132410,
1183
+ lavenderblush: 16773365,
1184
+ lawngreen: 8190976,
1185
+ lemonchiffon: 16775885,
1186
+ lightblue: 11393254,
1187
+ lightcoral: 15761536,
1188
+ lightcyan: 14745599,
1189
+ lightgoldenrodyellow: 16448210,
1190
+ lightgray: 13882323,
1191
+ lightgreen: 9498256,
1192
+ lightgrey: 13882323,
1193
+ lightpink: 16758465,
1194
+ lightsalmon: 16752762,
1195
+ lightseagreen: 2142890,
1196
+ lightskyblue: 8900346,
1197
+ lightslategray: 7833753,
1198
+ lightslategrey: 7833753,
1199
+ lightsteelblue: 11584734,
1200
+ lightyellow: 16777184,
1201
+ lime: 65280,
1202
+ limegreen: 3329330,
1203
+ linen: 16445670,
1204
+ magenta: 16711935,
1205
+ maroon: 8388608,
1206
+ mediumaquamarine: 6737322,
1207
+ mediumblue: 205,
1208
+ mediumorchid: 12211667,
1209
+ mediumpurple: 9662683,
1210
+ mediumseagreen: 3978097,
1211
+ mediumslateblue: 8087790,
1212
+ mediumspringgreen: 64154,
1213
+ mediumturquoise: 4772300,
1214
+ mediumvioletred: 13047173,
1215
+ midnightblue: 1644912,
1216
+ mintcream: 16121850,
1217
+ mistyrose: 16770273,
1218
+ moccasin: 16770229,
1219
+ navajowhite: 16768685,
1220
+ navy: 128,
1221
+ oldlace: 16643558,
1222
+ olive: 8421376,
1223
+ olivedrab: 7048739,
1224
+ orange: 16753920,
1225
+ orangered: 16729344,
1226
+ orchid: 14315734,
1227
+ palegoldenrod: 15657130,
1228
+ palegreen: 10025880,
1229
+ paleturquoise: 11529966,
1230
+ palevioletred: 14381203,
1231
+ papayawhip: 16773077,
1232
+ peachpuff: 16767673,
1233
+ peru: 13468991,
1234
+ pink: 16761035,
1235
+ plum: 14524637,
1236
+ powderblue: 11591910,
1237
+ purple: 8388736,
1238
+ rebeccapurple: 6697881,
1239
+ red: 16711680,
1240
+ rosybrown: 12357519,
1241
+ royalblue: 4286945,
1242
+ saddlebrown: 9127187,
1243
+ salmon: 16416882,
1244
+ sandybrown: 16032864,
1245
+ seagreen: 3050327,
1246
+ seashell: 16774638,
1247
+ sienna: 10506797,
1248
+ silver: 12632256,
1249
+ skyblue: 8900331,
1250
+ slateblue: 6970061,
1251
+ slategray: 7372944,
1252
+ slategrey: 7372944,
1253
+ snow: 16775930,
1254
+ springgreen: 65407,
1255
+ steelblue: 4620980,
1256
+ tan: 13808780,
1257
+ teal: 32896,
1258
+ thistle: 14204888,
1259
+ tomato: 16737095,
1260
+ turquoise: 4251856,
1261
+ violet: 15631086,
1262
+ wheat: 16113331,
1263
+ white: 16777215,
1264
+ whitesmoke: 16119285,
1265
+ yellow: 16776960,
1266
+ yellowgreen: 10145074
1267
+ };
1268
+ Ft(Lt, $t, {
1269
+ copy(e) {
1270
+ return Object.assign(new this.constructor(), this, e);
1271
+ },
1272
+ displayable() {
1273
+ return this.rgb().displayable();
1274
+ },
1275
+ hex: Yt,
1276
+ formatHex: Yt,
1277
+ formatHex8: Xt,
1278
+ formatHsl: Zt,
1279
+ formatRgb: Qt,
1280
+ toString: Qt
1281
+ });
1282
+ function Yt() {
1283
+ return this.rgb().formatHex();
1468
1284
  }
1469
- function hr(e) {
1470
- let t = "";
1471
- for (; R < z && nr(L[R]);) t += L[R++];
1472
- return t.length === 0 && X({}, G, K), ar(L.charCodeAt(R)) && X({}, G, K), {
1473
- type: U,
1474
- value: parseInt("0x" + t, 16),
1475
- start: e,
1476
- end: R
1477
- };
1285
+ function Xt() {
1286
+ return this.rgb().formatHex8();
1478
1287
  }
1479
- function gr(e) {
1480
- let t = "0" + L[R++];
1481
- for (; R < z && rr(L[R]);) t += L[R++];
1482
- return (ar(L.charCodeAt(R)) || q(L.charCodeAt(R))) && X({}, G, K), {
1483
- type: U,
1484
- value: parseInt(t, 8),
1485
- octal: !0,
1486
- start: e,
1487
- end: R
1488
- };
1288
+ function Zt() {
1289
+ return un(this).formatHsl();
1489
1290
  }
1490
- function _r() {
1491
- var e, t, n = L[R];
1492
- if (tr(q(n.charCodeAt(0)) || n === ".", "Numeric literal must start with a decimal digit or a decimal point"), t = R, e = "", n !== ".") {
1493
- if (e = L[R++], n = L[R], e === "0") {
1494
- if (n === "x" || n === "X") return ++R, hr(t);
1495
- if (rr(n)) return gr(t);
1496
- n && q(n.charCodeAt(0)) && X({}, G, K);
1497
- }
1498
- for (; q(L.charCodeAt(R));) e += L[R++];
1499
- n = L[R];
1500
- }
1501
- if (n === ".") {
1502
- for (e += L[R++]; q(L.charCodeAt(R));) e += L[R++];
1503
- n = L[R];
1504
- }
1505
- if (n === "e" || n === "E") {
1506
- if (e += L[R++], n = L[R], (n === "+" || n === "-") && (e += L[R++]), q(L.charCodeAt(R))) for (; q(L.charCodeAt(R));) e += L[R++];
1507
- else X({}, G, K);
1508
- }
1509
- return ar(L.charCodeAt(R)) && X({}, G, K), {
1510
- type: U,
1511
- value: parseFloat(e),
1512
- start: t,
1513
- end: R
1514
- };
1291
+ function Qt() {
1292
+ return this.rgb().formatRgb();
1515
1293
  }
1516
- function vr() {
1517
- var e = "", t, n, r, i, a = !1;
1518
- for (t = L[R], tr(t === "'" || t === "\"", "String literal must starts with a quote"), n = R, ++R; R < z;) {
1519
- if (r = L[R++], r === t) {
1520
- t = "";
1521
- break;
1522
- }
1523
- if (r === "\\") {
1524
- if (r = L[R++], !r || !J(r.charCodeAt(0))) switch (r) {
1525
- case "u":
1526
- case "x":
1527
- L[R] === "{" ? (++R, e += ur()) : e += lr(r);
1528
- break;
1529
- case "n":
1530
- e += "\n";
1531
- break;
1532
- case "r":
1533
- e += "\r";
1534
- break;
1535
- case "t":
1536
- e += " ";
1537
- break;
1538
- case "b":
1539
- e += "\b";
1540
- break;
1541
- case "f":
1542
- e += "\f";
1543
- break;
1544
- case "v":
1545
- e += "\v";
1546
- break;
1547
- default: rr(r) ? (i = "01234567".indexOf(r), i !== 0 && (a = !0), R < z && rr(L[R]) && (a = !0, i = i * 8 + "01234567".indexOf(L[R++]), "0123".includes(r) && R < z && rr(L[R]) && (i = i * 8 + "01234567".indexOf(L[R++]))), e += String.fromCharCode(i)) : e += r;
1548
- }
1549
- else r === "\r" && L[R] === "\n" && ++R;
1550
- } else if (J(r.charCodeAt(0))) break;
1551
- else e += r;
1552
- }
1553
- return t !== "" && X({}, G, K), {
1554
- type: An,
1555
- value: e,
1556
- octal: a,
1557
- start: n,
1558
- end: R
1559
- };
1294
+ function $t(e) {
1295
+ var t, n;
1296
+ return e = (e + "").trim().toLowerCase(), (t = Vt.exec(e)) ? (n = t[1].length, t = parseInt(t[1], 16), n === 6 ? en(t) : n === 3 ? new k(t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, (t & 15) << 4 | t & 15, 1) : n === 8 ? tn(t >> 24 & 255, t >> 16 & 255, t >> 8 & 255, (t & 255) / 255) : n === 4 ? tn(t >> 12 & 15 | t >> 8 & 240, t >> 8 & 15 | t >> 4 & 240, t >> 4 & 15 | t & 240, ((t & 15) << 4 | t & 15) / 255) : null) : (t = Ht.exec(e)) ? new k(t[1], t[2], t[3], 1) : (t = Ut.exec(e)) ? new k(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, 1) : (t = Wt.exec(e)) ? tn(t[1], t[2], t[3], t[4]) : (t = Gt.exec(e)) ? tn(t[1] * 255 / 100, t[2] * 255 / 100, t[3] * 255 / 100, t[4]) : (t = Kt.exec(e)) ? ln(t[1], t[2] / 100, t[3] / 100, 1) : (t = qt.exec(e)) ? ln(t[1], t[2] / 100, t[3] / 100, t[4]) : Jt.hasOwnProperty(e) ? en(Jt[e]) : e === "transparent" ? new k(NaN, NaN, NaN, 0) : null;
1297
+ }
1298
+ function en(e) {
1299
+ return new k(e >> 16 & 255, e >> 8 & 255, e & 255, 1);
1300
+ }
1301
+ function tn(e, t, n, r) {
1302
+ return r <= 0 && (e = t = n = NaN), new k(e, t, n, r);
1303
+ }
1304
+ function nn(e) {
1305
+ return e instanceof Lt || (e = $t(e)), e ? (e = e.rgb(), new k(e.r, e.g, e.b, e.opacity)) : new k();
1306
+ }
1307
+ function rn(e, t, n, r) {
1308
+ return arguments.length === 1 ? nn(e) : new k(e, t, n, r ?? 1);
1309
+ }
1310
+ function k(e, t, n, r) {
1311
+ this.r = +e, this.g = +t, this.b = +n, this.opacity = +r;
1312
+ }
1313
+ Ft(k, rn, It(Lt, {
1314
+ brighter(e) {
1315
+ return e = e == null ? zt : zt ** +e, new k(this.r * e, this.g * e, this.b * e, this.opacity);
1316
+ },
1317
+ darker(e) {
1318
+ return e = e == null ? Rt : Rt ** +e, new k(this.r * e, this.g * e, this.b * e, this.opacity);
1319
+ },
1320
+ rgb() {
1321
+ return this;
1322
+ },
1323
+ clamp() {
1324
+ return new k(A(this.r), A(this.g), A(this.b), cn(this.opacity));
1325
+ },
1326
+ displayable() {
1327
+ return -.5 <= this.r && this.r < 255.5 && -.5 <= this.g && this.g < 255.5 && -.5 <= this.b && this.b < 255.5 && 0 <= this.opacity && this.opacity <= 1;
1328
+ },
1329
+ hex: an,
1330
+ formatHex: an,
1331
+ formatHex8: on,
1332
+ formatRgb: sn,
1333
+ toString: sn
1334
+ }));
1335
+ function an() {
1336
+ return `#${j(this.r)}${j(this.g)}${j(this.b)}`;
1337
+ }
1338
+ function on() {
1339
+ return `#${j(this.r)}${j(this.g)}${j(this.b)}${j((isNaN(this.opacity) ? 1 : this.opacity) * 255)}`;
1340
+ }
1341
+ function sn() {
1342
+ let e = cn(this.opacity);
1343
+ return `${e === 1 ? "rgb(" : "rgba("}${A(this.r)}, ${A(this.g)}, ${A(this.b)}${e === 1 ? ")" : `, ${e})`}`;
1344
+ }
1345
+ function cn(e) {
1346
+ return isNaN(e) ? 1 : Math.max(0, Math.min(1, e));
1347
+ }
1348
+ function A(e) {
1349
+ return Math.max(0, Math.min(255, Math.round(e) || 0));
1350
+ }
1351
+ function j(e) {
1352
+ return e = A(e), (e < 16 ? "0" : "") + e.toString(16);
1353
+ }
1354
+ function ln(e, t, n, r) {
1355
+ return r <= 0 ? e = t = n = NaN : n <= 0 || n >= 1 ? e = t = NaN : t <= 0 && (e = NaN), new M(e, t, n, r);
1356
+ }
1357
+ function un(e) {
1358
+ if (e instanceof M) return new M(e.h, e.s, e.l, e.opacity);
1359
+ if (e instanceof Lt || (e = $t(e)), !e) return new M();
1360
+ if (e instanceof M) return e;
1361
+ e = e.rgb();
1362
+ var t = e.r / 255, n = e.g / 255, r = e.b / 255, i = Math.min(t, n, r), a = Math.max(t, n, r), o = NaN, s = a - i, c = (a + i) / 2;
1363
+ return s ? (o = t === a ? (n - r) / s + (n < r) * 6 : n === a ? (r - t) / s + 2 : (t - n) / s + 4, s /= c < .5 ? a + i : 2 - a - i, o *= 60) : s = c > 0 && c < 1 ? 0 : o, new M(o, s, c, e.opacity);
1364
+ }
1365
+ function dn(e, t, n, r) {
1366
+ return arguments.length === 1 ? un(e) : new M(e, t, n, r ?? 1);
1367
+ }
1368
+ function M(e, t, n, r) {
1369
+ this.h = +e, this.s = +t, this.l = +n, this.opacity = +r;
1370
+ }
1371
+ Ft(M, dn, It(Lt, {
1372
+ brighter(e) {
1373
+ return e = e == null ? zt : zt ** +e, new M(this.h, this.s, this.l * e, this.opacity);
1374
+ },
1375
+ darker(e) {
1376
+ return e = e == null ? Rt : Rt ** +e, new M(this.h, this.s, this.l * e, this.opacity);
1377
+ },
1378
+ rgb() {
1379
+ var e = this.h % 360 + (this.h < 0) * 360, t = isNaN(e) || isNaN(this.s) ? 0 : this.s, n = this.l, r = n + (n < .5 ? n : 1 - n) * t, i = 2 * n - r;
1380
+ return new k(mn(e >= 240 ? e - 240 : e + 120, i, r), mn(e, i, r), mn(e < 120 ? e + 240 : e - 120, i, r), this.opacity);
1381
+ },
1382
+ clamp() {
1383
+ return new M(fn(this.h), pn(this.s), pn(this.l), cn(this.opacity));
1384
+ },
1385
+ displayable() {
1386
+ return (0 <= this.s && this.s <= 1 || isNaN(this.s)) && 0 <= this.l && this.l <= 1 && 0 <= this.opacity && this.opacity <= 1;
1387
+ },
1388
+ formatHsl() {
1389
+ let e = cn(this.opacity);
1390
+ return `${e === 1 ? "hsl(" : "hsla("}${fn(this.h)}, ${pn(this.s) * 100}%, ${pn(this.l) * 100}%${e === 1 ? ")" : `, ${e})`}`;
1391
+ }
1392
+ }));
1393
+ function fn(e) {
1394
+ return e = (e || 0) % 360, e < 0 ? e + 360 : e;
1560
1395
  }
1561
- function yr(e, t) {
1562
- let n = e;
1563
- t.includes("u") && (n = n.replace(/\\u\{([0-9a-fA-F]+)\}/g, (e, t) => {
1564
- if (parseInt(t, 16) <= 1114111) return "x";
1565
- X({}, Jn);
1566
- }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"));
1567
- try {
1568
- new RegExp(n);
1569
- } catch {
1570
- X({}, Jn);
1396
+ function pn(e) {
1397
+ return Math.max(0, Math.min(1, e || 0));
1398
+ }
1399
+ function mn(e, t, n) {
1400
+ return (e < 60 ? t + (n - t) * e / 60 : e < 180 ? n : e < 240 ? t + (n - t) * (240 - e) / 60 : t) * 255;
1401
+ }
1402
+ //#endregion
1403
+ //#region ../core/src/encoder/encoder.js
1404
+ function hn(e, t, n, r = "intersects", i) {
1405
+ let a, o, s = xt(e), c = () => (a ??= wt(e, t, n, r, i), a);
1406
+ return s.every((e) => n.findValue(e)) && c(), Object.defineProperty((e) => !s.some((e) => !n.findValue(e)) && (o ??= Tt(c(), (e) => n.findValue(e)), o(e)), "selection", { get: c });
1407
+ }
1408
+ function gn(e, t, n, r, i = "intersects", a) {
1409
+ let o = Mn(t) || Nn(t) ? Array.isArray(t.condition) ? t.condition : [t.condition] : [], s = [...o, t], c = s.map((t, c) => {
1410
+ let l = o[c], u = Dt(e, t, r);
1411
+ if (Jn(e) && Cn(t)) {
1412
+ let e = t.value;
1413
+ if (e !== null && !$(e) && (typeof e != "string" || !$t(e))) throw ft(/* @__PURE__ */ Error("Invalid color: " + JSON.stringify(e)), r.getSpecLocation?.(t, ["value"]));
1414
+ }
1415
+ let d = l ? La(l) : void 0;
1416
+ return {
1417
+ accessor: u,
1418
+ predicate: d ? hn(d, n, r, i, a) : ao(c === s.length - 1)
1419
+ };
1420
+ });
1421
+ if (c.filter((e) => !e.accessor.constant).length > 1) throw Error("Only one accessor can be non-constant. Channel: " + e);
1422
+ return c;
1423
+ }
1424
+ function _n(e, t) {
1425
+ let n = {}, r = (t) => e.getScaleResolution(t)?.getScale(), i = (t, n) => {
1426
+ let r = e.getScaleResolution(t);
1427
+ e.paramRuntime.operation("encoder scale", [r.getMappingRef()], () => r.getScale(), n);
1428
+ };
1429
+ for (let [a, o] of Object.entries(t)) {
1430
+ if (!o) continue;
1431
+ let s = a;
1432
+ vn(s) || (n[s] = xn(gn(s, o, t, e.paramRuntime, e.mark.defaultHitTestMode, (t) => e.getScaleResolution(t)?.type), r, i));
1571
1433
  }
1572
- try {
1573
- return new RegExp(e, t);
1574
- } catch {
1575
- return null;
1434
+ return n;
1435
+ }
1436
+ function vn(e) {
1437
+ return e === "key" || e === "search" || e === "tooltip" || e === "order";
1438
+ }
1439
+ function yn(e) {
1440
+ return e.branches.map((e) => e.accessor);
1441
+ }
1442
+ function bn(e) {
1443
+ return e.branches.find((e) => !e.accessor.constant)?.accessor;
1444
+ }
1445
+ function xn(e, t, n) {
1446
+ if (e.length === 1) {
1447
+ let r = Sn(e[0].accessor, t, n);
1448
+ return Object.assign(r, { branches: e });
1576
1449
  }
1450
+ let r = e.map((e) => e.predicate), i = e.map((e) => Sn(e.accessor, t, n)), a = Object.assign((e) => {
1451
+ for (let t = 0; t < i.length; t++) if (r[t](e)) return i[t](e);
1452
+ }, {
1453
+ constant: !1,
1454
+ branches: e,
1455
+ channelDef: e.at(-1).accessor.channelDef
1456
+ });
1457
+ return Object.defineProperty(a, "scale", {
1458
+ enumerable: !0,
1459
+ get: () => i.find((e) => e.scale)?.scale
1460
+ });
1577
1461
  }
1578
- function br() {
1579
- var e = L[R], t, n, r, i;
1580
- for (tr(e === "/", "Regular expression literal must start with a slash"), t = L[R++], n = !1, r = !1; R < z;) if (e = L[R++], t += e, e === "\\") e = L[R++], J(e.charCodeAt(0)) && X({}, Yn), t += e;
1581
- else if (J(e.charCodeAt(0))) X({}, Yn);
1582
- else if (n) e === "]" && (n = !1);
1583
- else if (e === "/") {
1584
- r = !0;
1585
- break;
1586
- } else e === "[" && (n = !0);
1587
- return r || X({}, Yn), i = t.substr(1, t.length - 2), {
1588
- value: i,
1589
- literal: t
1590
- };
1462
+ function Sn(e, t, n) {
1463
+ let { channel: r, scaleChannel: i, channelDef: a } = e, o = e.scaleChannel ? t(i) : void 0;
1464
+ if (i && !o) throw Error(`Missing scale! "${r}": ${JSON.stringify(a)}`);
1465
+ let s = Object.assign(o ? (t) => o(e(t)) : (t) => e(t), {
1466
+ scale: o,
1467
+ constant: e.constant,
1468
+ branches: [{
1469
+ accessor: e,
1470
+ predicate: ao(!0)
1471
+ }],
1472
+ channelDef: a
1473
+ });
1474
+ return o && n?.(i, (e) => {
1475
+ o = e, s.scale = e;
1476
+ }), s;
1591
1477
  }
1592
- function xr() {
1593
- for (var e, t = "", n = ""; R < z && (e = L[R], or(e.charCodeAt(0)));) ++R, e === "\\" && R < z ? X({}, G, K) : (n += e, t += e);
1594
- return n.search(/[^gimuy]/g) >= 0 && X({}, Jn, n), {
1595
- value: n,
1596
- literal: t
1597
- };
1478
+ function Cn(e) {
1479
+ return e && "value" in e;
1598
1480
  }
1599
- function Sr() {
1600
- var e, t, n, r;
1601
- return B = null, cr(), e = R, t = br(), n = xr(), r = yr(t.value, n.value), {
1602
- literal: t.literal + n.literal,
1603
- value: r,
1604
- regex: {
1605
- pattern: t.value,
1606
- flags: n.value
1607
- },
1608
- start: e,
1609
- end: R
1610
- };
1481
+ function wn(e) {
1482
+ return e && "field" in e;
1611
1483
  }
1612
- function Cr(e) {
1613
- return e.type === V || e.type === H || e.type === Dn || e.type === kn;
1484
+ function Tn(e) {
1485
+ return e && "datum" in e;
1614
1486
  }
1615
- function wr() {
1616
- if (cr(), R >= z) return {
1617
- type: On,
1618
- start: R,
1619
- end: R
1620
- };
1621
- let e = L.charCodeAt(R);
1622
- return ar(e) ? pr() : e === 40 || e === 41 || e === 59 ? mr() : e === 39 || e === 34 ? vr() : e === 46 ? q(L.charCodeAt(R + 1)) ? _r() : mr() : q(e) ? _r() : mr();
1487
+ function En(e) {
1488
+ return wn(e) || Tn(e) || jn(e) || An(e);
1623
1489
  }
1624
- function Y() {
1625
- let e = B;
1626
- return R = e.end, B = wr(), R = e.end, e;
1490
+ function Dn(e) {
1491
+ if (Nn(e)) {
1492
+ let t = e.condition;
1493
+ return (Array.isArray(t) ? t : [t]).find((e) => En(e));
1494
+ }
1495
+ if (En(e)) return e;
1627
1496
  }
1628
- function Tr() {
1629
- let e = R;
1630
- B = wr(), R = e;
1497
+ function On(e) {
1498
+ let t = e && Dn(e);
1499
+ return t != null && t.type != "quantitative" && t.scale !== null;
1631
1500
  }
1632
- function Er(e) {
1633
- let t = new F(Mn);
1634
- return t.elements = e, t;
1501
+ function kn(e, t) {
1502
+ let n = e.mark.encoding[t];
1503
+ if (Array.isArray(n)) throw Error("Not a channel def with scale!");
1504
+ {
1505
+ let e = Dn(n);
1506
+ if (e) return e;
1507
+ }
1508
+ throw Error("Not a channel def with scale!");
1635
1509
  }
1636
- function Dr(e, t, n) {
1637
- let r = new F(e === "||" || e === "&&" ? Rn : Nn);
1638
- return r.operator = e, r.left = t, r.right = n, r;
1510
+ function An(e) {
1511
+ return e && "chrom" in e;
1639
1512
  }
1640
- function Or(e, t) {
1641
- let n = new F(Pn);
1642
- return n.callee = e, n.arguments = t, n;
1513
+ function jn(e) {
1514
+ return e && "expr" in e;
1643
1515
  }
1644
- function kr(e, t, n) {
1645
- let r = new F(Fn);
1646
- return r.test = e, r.consequent = t, r.alternate = n, r;
1516
+ function Mn(e) {
1517
+ return (wn(e) || Tn(e)) && "condition" in e;
1647
1518
  }
1648
- function Ar(e) {
1649
- let t = new F(In);
1650
- return t.name = e, t;
1519
+ function Nn(e) {
1520
+ return Cn(e) && "condition" in e;
1651
1521
  }
1652
- function jr(e) {
1653
- let t = new F(Ln);
1654
- return t.value = e.value, t.raw = L.slice(e.start, e.end), e.regex && (t.raw === "//" && (t.raw = "/(?:)/"), t.regex = e.regex), t;
1522
+ var Pn = ["x", "y"], Fn = ["x2", "y2"], In = ["xOffset", "yOffset"], Ln = [...Pn, ...Fn];
1523
+ function Rn(e) {
1524
+ return Pn.includes(e);
1655
1525
  }
1656
- function Mr(e, t, n) {
1657
- let r = new F(zn);
1658
- return r.computed = e === "[", r.object = t, r.property = n, r.computed || (n.member = !0), r;
1526
+ function zn(e) {
1527
+ return Ln.includes(e);
1659
1528
  }
1660
- function Nr(e) {
1661
- let t = new F(Bn);
1662
- return t.properties = e, t;
1529
+ function Bn(e) {
1530
+ return In.includes(e);
1663
1531
  }
1664
- function Pr(e, t, n) {
1665
- let r = new F(Vn);
1666
- return r.key = t, r.value = n, r.kind = e, r;
1532
+ function Vn(e) {
1533
+ return qn(e) == "x" ? "xOffset" : "yOffset";
1667
1534
  }
1668
- function Fr(e, t) {
1669
- let n = new F(Hn);
1670
- return n.operator = e, n.argument = t, n.prefix = !0, n;
1535
+ function Hn(e, t, n) {
1536
+ return t ?? (n ? 0 : e);
1671
1537
  }
1672
- function X(e, t) {
1673
- var n, r = Array.prototype.slice.call(arguments, 2), i = t.replace(/%(\d)/g, (e, t) => (tr(t < r.length, "Message reference must be in range"), r[t]));
1674
- throw n = Error(i), n.index = R, n.description = i, n;
1538
+ var Un = {
1539
+ x: "x2",
1540
+ y: "y2"
1541
+ }, Wn = Object.fromEntries([
1542
+ ...Object.entries(Un),
1543
+ ["xOffset", "x2Offset"],
1544
+ ["yOffset", "y2Offset"]
1545
+ ].map((e) => [e[1], e[0]]));
1546
+ function Gn(e) {
1547
+ return e in Wn;
1548
+ }
1549
+ function Kn(e) {
1550
+ let t = Un[e];
1551
+ if (t) return t;
1552
+ throw Error(`${e} has no secondary channel!`);
1675
1553
  }
1676
- function Ir(e) {
1677
- e.type === On && X(e, qn), e.type === U && X(e, Un), e.type === An && X(e, Wn), e.type === V && X(e, Gn), e.type === H && X(e, Kn), X(e, G, e.value);
1554
+ function qn(e) {
1555
+ return Wn[e] ?? e;
1678
1556
  }
1679
- function Z(e) {
1680
- let t = Y();
1681
- (t.type !== W || t.value !== e) && Ir(t);
1557
+ function Jn(e) {
1558
+ return [
1559
+ "color",
1560
+ "fill",
1561
+ "stroke"
1562
+ ].includes(qn(e));
1682
1563
  }
1683
- function Q(e) {
1684
- return B.type === W && B.value === e;
1564
+ function Yn(e) {
1565
+ return ["shape", "direction"].includes(e);
1685
1566
  }
1686
- function Lr(e) {
1687
- return B.type === H && B.value === e;
1567
+ function Xn(e) {
1568
+ return [
1569
+ "x",
1570
+ "y",
1571
+ "x2",
1572
+ "y2",
1573
+ "xOffset",
1574
+ "yOffset",
1575
+ "x2Offset",
1576
+ "y2Offset",
1577
+ "color",
1578
+ "fill",
1579
+ "stroke",
1580
+ "opacity",
1581
+ "fillOpacity",
1582
+ "strokeOpacity",
1583
+ "strokeWidth",
1584
+ "size",
1585
+ "shape",
1586
+ "direction",
1587
+ "angle",
1588
+ "dx",
1589
+ "dy",
1590
+ "sample"
1591
+ ].includes(e);
1688
1592
  }
1689
- function Rr() {
1690
- let e = [];
1691
- for (R = B.start, Z("["); !Q("]");) Q(",") ? (Y(), e.push(null)) : (e.push($()), Q("]") || Z(","));
1692
- return Y(), Er(e);
1593
+ function Zn(e) {
1594
+ switch (e) {
1595
+ case "shape": return [
1596
+ "circle",
1597
+ "square",
1598
+ "cross",
1599
+ "diamond",
1600
+ "triangle-up",
1601
+ "triangle-right",
1602
+ "triangle-down",
1603
+ "triangle-left",
1604
+ "tick-up",
1605
+ "tick-right",
1606
+ "tick-down",
1607
+ "tick-left",
1608
+ "x",
1609
+ "+"
1610
+ ];
1611
+ case "direction": return [
1612
+ "forward",
1613
+ "reverse",
1614
+ "both"
1615
+ ];
1616
+ }
1693
1617
  }
1694
- function zr() {
1695
- R = B.start;
1696
- let e = Y();
1697
- return e.type === An || e.type === U ? (e.octal && X(e, Xn), jr(e)) : Ar(e.value);
1618
+ function Qn(e) {
1619
+ if (!Yn(e)) throw Error("Not a discrete channel: " + e);
1620
+ let t = new Map(Zn(e).map((e, t) => [e, t]));
1621
+ return (n) => {
1622
+ let r = t.get(n);
1623
+ if (r !== void 0) return r;
1624
+ throw Error(`Invalid value for "${e}" channel: ${n}`);
1625
+ };
1698
1626
  }
1699
- function Br() {
1700
- var e, t, n, r;
1701
- if (R = B.start, e = B, e.type === V) return n = zr(), Z(":"), r = $(), Pr("init", n, r);
1702
- if (e.type === On || e.type === W) Ir(e);
1703
- else return t = zr(), Z(":"), r = $(), Pr("init", t, r);
1627
+ //#endregion
1628
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/accessor.js
1629
+ function N(e, t, n) {
1630
+ return Object.assign(e, {
1631
+ fields: t || [],
1632
+ fname: n
1633
+ });
1704
1634
  }
1705
- function Vr() {
1706
- var e = [], t, n, r, i = {}, a = String;
1707
- for (R = B.start, Z("{"); !Q("}");) t = Br(), n = t.key.type === In ? t.key.name : a(t.key.value), r = "$" + n, Object.prototype.hasOwnProperty.call(i, r) ? X({}, Zn) : i[r] = !0, e.push(t), Q("}") || Z(",");
1708
- return Z("}"), Nr(e);
1635
+ //#endregion
1636
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/getter.js
1637
+ function $n(e) {
1638
+ return e.length === 1 ? er(e[0]) : tr(e);
1709
1639
  }
1710
- function Hr() {
1711
- Z("(");
1712
- let e = ei();
1713
- return Z(")"), e;
1640
+ var er = (e) => function(t) {
1641
+ return t[e];
1642
+ }, tr = (e) => {
1643
+ let t = e.length;
1644
+ return function(n) {
1645
+ for (let r = 0; r < t; ++r) n = n[e[r]];
1646
+ return n;
1647
+ };
1648
+ };
1649
+ //#endregion
1650
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/error.js
1651
+ function P(e) {
1652
+ throw Error(e);
1714
1653
  }
1715
- var Ur = { if: 1 };
1716
- function Wr() {
1717
- var e, t, n;
1718
- if (Q("(")) return Hr();
1719
- if (Q("[")) return Rr();
1720
- if (Q("{")) return Vr();
1721
- if (e = B.type, R = B.start, e === V || Ur[B.value]) n = Ar(Y().value);
1722
- else if (e === An || e === U) B.octal && X(B, Xn), n = jr(Y());
1723
- else if (e === H) throw Error(Qn);
1724
- else e === Dn ? (t = Y(), t.value = t.value === "true", n = jr(t)) : e === kn ? (t = Y(), t.value = null, n = jr(t)) : Q("/") || Q("/=") ? (n = jr(Sr()), Tr()) : Ir(Y());
1725
- return n;
1654
+ //#endregion
1655
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/splitAccessPath.js
1656
+ function nr(e) {
1657
+ let t = [], n = e.length, r = null, i = 0, a = "", o, s, c;
1658
+ e += "";
1659
+ function l() {
1660
+ t.push(a + e.substring(o, s)), a = "", o = s + 1;
1661
+ }
1662
+ for (o = s = 0; s < n; ++s) if (c = e[s], c === "\\") a += e.substring(o, s++), o = s;
1663
+ else if (c === r) l(), r = null, i = -1;
1664
+ else if (r) continue;
1665
+ else o === i && c === "\"" || o === i && c === "'" ? (o = s + 1, r = c) : c === "." && !i ? s > o ? l() : o = s + 1 : c === "[" ? (s > o && l(), i = o = s + 1) : c === "]" && (i || P("Access path missing open bracket: " + e), i > 0 && l(), i = 0, o = s + 1);
1666
+ return i && P("Access path missing closing bracket: " + e), r && P("Access path missing closing quote: " + e), s > o && (s++, l()), t;
1726
1667
  }
1727
- function Gr() {
1728
- let e = [];
1729
- if (Z("("), !Q(")")) for (; R < z && (e.push($()), !Q(")"));) Z(",");
1730
- return Z(")"), e;
1668
+ //#endregion
1669
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/field.js
1670
+ function rr(e, t, n) {
1671
+ let r = nr(e), i = r.length === 1 ? r[0] : e;
1672
+ return N((n && n.get || $n)(r), [i], t || i);
1731
1673
  }
1732
- function Kr() {
1733
- R = B.start;
1734
- let e = Y();
1735
- return Cr(e) || Ir(e), Ar(e.value);
1674
+ rr("id"), N((e) => e, [], "identity"), N(() => 0, [], "zero"), N(() => 1, [], "one"), N(() => !0, [], "true"), N(() => !1, [], "false");
1675
+ //#endregion
1676
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/interpreter.js
1677
+ var ir = /* @__PURE__ */ new Set([
1678
+ ...Object.getOwnPropertyNames(Object.prototype).filter((e) => typeof Object.prototype[e] == "function"),
1679
+ "__proto__",
1680
+ "then"
1681
+ ]);
1682
+ Array.isArray;
1683
+ //#endregion
1684
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/isFunction.js
1685
+ function ar(e) {
1686
+ return typeof e == "function";
1687
+ }
1688
+ //#endregion
1689
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/hasOwnProperty.js
1690
+ function or(e, t) {
1691
+ return Object.hasOwn(e, t);
1692
+ }
1693
+ //#endregion
1694
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/isString.js
1695
+ function sr(e) {
1696
+ return typeof e == "string";
1697
+ }
1698
+ //#endregion
1699
+ //#region ../../node_modules/vega-expression/node_modules/vega-util/build/toSet.js
1700
+ function cr(e) {
1701
+ let t = {}, n = e.length;
1702
+ for (let r = 0; r < n; ++r) t[e[r] + ""] = !0;
1703
+ return t;
1736
1704
  }
1737
- function qr() {
1738
- return Z("."), Kr();
1705
+ //#endregion
1706
+ //#region ../../node_modules/vega-expression/build/vega-expression.js
1707
+ var lr = "RawCode", ur = "Literal", dr = "Property", fr = "Identifier", pr = "ArrayExpression", mr = "BinaryExpression", hr = "CallExpression", gr = "ConditionalExpression", _r = "LogicalExpression", vr = "MemberExpression", yr = "ObjectExpression", br = "UnaryExpression";
1708
+ function F(e) {
1709
+ this.type = e;
1739
1710
  }
1740
- function Jr() {
1741
- Z("[");
1742
- let e = ei();
1743
- return Z("]"), e;
1711
+ F.prototype.visit = function(e) {
1712
+ let t, n, r;
1713
+ if (e(this)) return 1;
1714
+ for (t = xr(this), n = 0, r = t.length; n < r; ++n) if (t[n].visit(e)) return 1;
1715
+ };
1716
+ function xr(e) {
1717
+ switch (e.type) {
1718
+ case pr: return e.elements;
1719
+ case mr:
1720
+ case _r: return [e.left, e.right];
1721
+ case hr: return [e.callee].concat(e.arguments);
1722
+ case gr: return [
1723
+ e.test,
1724
+ e.consequent,
1725
+ e.alternate
1726
+ ];
1727
+ case vr: return [e.object, e.property];
1728
+ case yr: return e.properties;
1729
+ case dr: return [e.key, e.value];
1730
+ case br: return [e.argument];
1731
+ case fr:
1732
+ case ur:
1733
+ case lr:
1734
+ default: return [];
1735
+ }
1744
1736
  }
1745
- function Yr() {
1746
- for (var e = Wr(), t, n;;) if (Q(".")) n = qr(), e = Mr(".", e, n);
1747
- else if (Q("(")) t = Gr(), e = Or(e, t);
1748
- else if (Q("[")) n = Jr(), e = Mr("[", e, n);
1749
- else break;
1750
- return e;
1737
+ var I, L, R, z, B, Sr = 1, Cr = 2, V = 3, H = 4, wr = 5, U = 6, W = 7, Tr = 8, Er = 9;
1738
+ I = {}, I[Sr] = "Boolean", I[Cr] = "<end>", I[V] = "Identifier", I[H] = "Keyword", I[wr] = "Null", I[U] = "Numeric", I[W] = "Punctuator", I[Tr] = "String", I[Er] = "RegularExpression";
1739
+ var Dr = "ArrayExpression", Or = "BinaryExpression", kr = "CallExpression", Ar = "ConditionalExpression", jr = "Identifier", Mr = "Literal", Nr = "LogicalExpression", Pr = "MemberExpression", Fr = "ObjectExpression", Ir = "Property", Lr = "UnaryExpression", G = "Unexpected token %0", Rr = "Unexpected number", zr = "Unexpected string", Br = "Unexpected identifier", Vr = "Unexpected reserved word", Hr = "Unexpected end of input", Ur = "Invalid regular expression", Wr = "Invalid regular expression: missing /", Gr = "Octal literals are not allowed in strict mode.", Kr = "Duplicate data property in object literal not allowed in strict mode", K = "ILLEGAL", qr = "Disabled.", Jr = /* @__PURE__ */ RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B2\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58\\u0C59\\u0C60\\u0C61\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D60\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19C1-\\u19C7\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005-\\u3007\\u3021-\\u3029\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6EF\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]"), Yr = /* @__PURE__ */ RegExp("[\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0300-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u0483-\\u0487\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0610-\\u061A\\u0620-\\u0669\\u066E-\\u06D3\\u06D5-\\u06DC\\u06DF-\\u06E8\\u06EA-\\u06FC\\u06FF\\u0710-\\u074A\\u074D-\\u07B1\\u07C0-\\u07F5\\u07FA\\u0800-\\u082D\\u0840-\\u085B\\u08A0-\\u08B2\\u08E4-\\u0963\\u0966-\\u096F\\u0971-\\u0983\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BC-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CE\\u09D7\\u09DC\\u09DD\\u09DF-\\u09E3\\u09E6-\\u09F1\\u0A01-\\u0A03\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A59-\\u0A5C\\u0A5E\\u0A66-\\u0A75\\u0A81-\\u0A83\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABC-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AD0\\u0AE0-\\u0AE3\\u0AE6-\\u0AEF\\u0B01-\\u0B03\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3C-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B5C\\u0B5D\\u0B5F-\\u0B63\\u0B66-\\u0B6F\\u0B71\\u0B82\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD0\\u0BD7\\u0BE6-\\u0BEF\\u0C00-\\u0C03\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C58\\u0C59\\u0C60-\\u0C63\\u0C66-\\u0C6F\\u0C81-\\u0C83\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBC-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CDE\\u0CE0-\\u0CE3\\u0CE6-\\u0CEF\\u0CF1\\u0CF2\\u0D01-\\u0D03\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4E\\u0D57\\u0D60-\\u0D63\\u0D66-\\u0D6F\\u0D7A-\\u0D7F\\u0D82\\u0D83\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DE6-\\u0DEF\\u0DF2\\u0DF3\\u0E01-\\u0E3A\\u0E40-\\u0E4E\\u0E50-\\u0E59\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB9\\u0EBB-\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EC8-\\u0ECD\\u0ED0-\\u0ED9\\u0EDC-\\u0EDF\\u0F00\\u0F18\\u0F19\\u0F20-\\u0F29\\u0F35\\u0F37\\u0F39\\u0F3E-\\u0F47\\u0F49-\\u0F6C\\u0F71-\\u0F84\\u0F86-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u1000-\\u1049\\u1050-\\u109D\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u135D-\\u135F\\u1380-\\u138F\\u13A0-\\u13F4\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16EE-\\u16F8\\u1700-\\u170C\\u170E-\\u1714\\u1720-\\u1734\\u1740-\\u1753\\u1760-\\u176C\\u176E-\\u1770\\u1772\\u1773\\u1780-\\u17D3\\u17D7\\u17DC\\u17DD\\u17E0-\\u17E9\\u180B-\\u180D\\u1810-\\u1819\\u1820-\\u1877\\u1880-\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1920-\\u192B\\u1930-\\u193B\\u1946-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u19D0-\\u19D9\\u1A00-\\u1A1B\\u1A20-\\u1A5E\\u1A60-\\u1A7C\\u1A7F-\\u1A89\\u1A90-\\u1A99\\u1AA7\\u1AB0-\\u1ABD\\u1B00-\\u1B4B\\u1B50-\\u1B59\\u1B6B-\\u1B73\\u1B80-\\u1BF3\\u1C00-\\u1C37\\u1C40-\\u1C49\\u1C4D-\\u1C7D\\u1CD0-\\u1CD2\\u1CD4-\\u1CF6\\u1CF8\\u1CF9\\u1D00-\\u1DF5\\u1DFC-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u200C\\u200D\\u203F\\u2040\\u2054\\u2071\\u207F\\u2090-\\u209C\\u20D0-\\u20DC\\u20E1\\u20E5-\\u20F0\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2160-\\u2188\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D7F-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2DE0-\\u2DFF\\u2E2F\\u3005-\\u3007\\u3021-\\u302F\\u3031-\\u3035\\u3038-\\u303C\\u3041-\\u3096\\u3099\\u309A\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FCC\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA62B\\uA640-\\uA66F\\uA674-\\uA67D\\uA67F-\\uA69D\\uA69F-\\uA6F1\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA78E\\uA790-\\uA7AD\\uA7B0\\uA7B1\\uA7F7-\\uA827\\uA840-\\uA873\\uA880-\\uA8C4\\uA8D0-\\uA8D9\\uA8E0-\\uA8F7\\uA8FB\\uA900-\\uA92D\\uA930-\\uA953\\uA960-\\uA97C\\uA980-\\uA9C0\\uA9CF-\\uA9D9\\uA9E0-\\uA9FE\\uAA00-\\uAA36\\uAA40-\\uAA4D\\uAA50-\\uAA59\\uAA60-\\uAA76\\uAA7A-\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEF\\uAAF2-\\uAAF6\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB5F\\uAB64\\uAB65\\uABC0-\\uABEA\\uABEC\\uABED\\uABF0-\\uABF9\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE00-\\uFE0F\\uFE20-\\uFE2D\\uFE33\\uFE34\\uFE4D-\\uFE4F\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF10-\\uFF19\\uFF21-\\uFF3A\\uFF3F\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC]");
1740
+ function Xr(e, t) {
1741
+ /* istanbul ignore next */
1742
+ if (!e) throw Error("ASSERT: " + t);
1751
1743
  }
1752
- function Xr() {
1753
- let e = Yr();
1754
- if (B.type === W && (Q("++") || Q("--"))) throw Error(Qn);
1755
- return e;
1744
+ function q(e) {
1745
+ return e >= 48 && e <= 57;
1756
1746
  }
1757
- function Zr() {
1758
- var e, t;
1759
- if (B.type !== W && B.type !== H) t = Xr();
1760
- else if (Q("++") || Q("--")) throw Error(Qn);
1761
- else if (Q("+") || Q("-") || Q("~") || Q("!")) e = Y(), t = Zr(), t = Fr(e.value, t);
1762
- else if (Lr("delete") || Lr("void") || Lr("typeof")) throw Error(Qn);
1763
- else t = Xr();
1764
- return t;
1747
+ function Zr(e) {
1748
+ return "0123456789abcdefABCDEF".includes(e);
1765
1749
  }
1766
1750
  function Qr(e) {
1767
- let t = 0;
1768
- if (e.type !== W && e.type !== H) return 0;
1769
- switch (e.value) {
1770
- case "||":
1771
- t = 1;
1772
- break;
1773
- case "&&":
1774
- t = 2;
1775
- break;
1776
- case "|":
1777
- t = 3;
1778
- break;
1779
- case "^":
1780
- t = 4;
1781
- break;
1782
- case "&":
1783
- t = 5;
1784
- break;
1785
- case "==":
1786
- case "!=":
1787
- case "===":
1788
- case "!==":
1789
- t = 6;
1790
- break;
1791
- case "<":
1792
- case ">":
1793
- case "<=":
1794
- case ">=":
1795
- case "instanceof":
1796
- case "in":
1797
- t = 7;
1798
- break;
1799
- case "<<":
1800
- case ">>":
1801
- case ">>>":
1802
- t = 8;
1803
- break;
1804
- case "+":
1805
- case "-":
1806
- t = 9;
1807
- break;
1808
- case "*":
1809
- case "/":
1810
- case "%": t = 11;
1811
- }
1812
- return t;
1813
- }
1814
- function $r() {
1815
- var e = B, t, n, r, i, a, o, s, c = Zr(), l;
1816
- if (r = B, i = Qr(r), i === 0) return c;
1817
- for (r.prec = i, Y(), t = [e, B], o = Zr(), a = [
1818
- c,
1819
- r,
1820
- o
1821
- ]; (i = Qr(B)) > 0;) {
1822
- for (; a.length > 2 && i <= a[a.length - 2].prec;) o = a.pop(), s = a.pop().value, c = a.pop(), t.pop(), n = Dr(s, c, o), a.push(n);
1823
- r = Y(), r.prec = i, a.push(r), t.push(B), n = Zr(), a.push(n);
1824
- }
1825
- for (l = a.length - 1, n = a[l], t.pop(); l > 1;) t.pop(), n = Dr(a[l - 1].value, a[l - 2], n), l -= 2;
1826
- return n;
1751
+ return "01234567".includes(e);
1827
1752
  }
1828
- function $() {
1829
- var e = $r(), t, n;
1830
- return Q("?") && (Y(), t = $(), Z(":"), n = $(), e = kr(e, t, n)), e;
1753
+ function $r(e) {
1754
+ return e === 32 || e === 9 || e === 11 || e === 12 || e === 160 || e >= 5760 && [
1755
+ 5760,
1756
+ 6158,
1757
+ 8192,
1758
+ 8193,
1759
+ 8194,
1760
+ 8195,
1761
+ 8196,
1762
+ 8197,
1763
+ 8198,
1764
+ 8199,
1765
+ 8200,
1766
+ 8201,
1767
+ 8202,
1768
+ 8239,
1769
+ 8287,
1770
+ 12288,
1771
+ 65279
1772
+ ].includes(e);
1831
1773
  }
1832
- function ei() {
1833
- let e = $();
1834
- if (Q(",")) throw Error(Qn);
1835
- return e;
1774
+ function ei(e) {
1775
+ return e === 10 || e === 13 || e === 8232 || e === 8233;
1836
1776
  }
1837
1777
  function ti(e) {
1838
- L = e, R = 0, z = L.length, B = null, Tr();
1839
- let t = ei();
1840
- if (B.type !== On) throw Error("Unexpect token after expression.");
1841
- return t;
1842
- }
1843
- var ni = {
1844
- NaN: "NaN",
1845
- E: "Math.E",
1846
- LN2: "Math.LN2",
1847
- LN10: "Math.LN10",
1848
- LOG2E: "Math.LOG2E",
1849
- LOG10E: "Math.LOG10E",
1850
- PI: "Math.PI",
1851
- SQRT1_2: "Math.SQRT1_2",
1852
- SQRT2: "Math.SQRT2",
1853
- MIN_VALUE: "Number.MIN_VALUE",
1854
- MAX_VALUE: "Number.MAX_VALUE"
1855
- };
1856
- function ri(e) {
1857
- function t(t, n, r, i) {
1858
- let a = e(n[0]);
1859
- return r && (a = r + "(" + a + ")", r.lastIndexOf("new ", 0) === 0 && (a = "(" + a + ")")), a + "." + t + (i < 0 ? "" : i === 0 ? "()" : "(" + n.slice(1).map(e).join(",") + ")");
1860
- }
1861
- function n(e, n, r) {
1862
- return (i) => t(e, i, n, r);
1863
- }
1864
- let r = "new Date", i = "String", a = "RegExp";
1865
- return {
1866
- isNaN: "Number.isNaN",
1867
- isFinite: "Number.isFinite",
1868
- abs: "Math.abs",
1869
- acos: "Math.acos",
1870
- asin: "Math.asin",
1871
- atan: "Math.atan",
1872
- atan2: "Math.atan2",
1873
- ceil: "Math.ceil",
1874
- cos: "Math.cos",
1875
- exp: "Math.exp",
1876
- floor: "Math.floor",
1877
- hypot: "Math.hypot",
1878
- log: "Math.log",
1879
- max: "Math.max",
1880
- min: "Math.min",
1881
- pow: "Math.pow",
1882
- random: "Math.random",
1883
- round: "Math.round",
1884
- sin: "Math.sin",
1885
- sqrt: "Math.sqrt",
1886
- tan: "Math.tan",
1887
- clamp: function(t) {
1888
- t.length < 3 && P("Missing arguments to clamp function."), t.length > 3 && P("Too many arguments to clamp function.");
1889
- let n = t.map(e);
1890
- return "Math.max(" + n[1] + ", Math.min(" + n[2] + "," + n[0] + "))";
1891
- },
1892
- now: "Date.now",
1893
- utc: "Date.UTC",
1894
- datetime: r,
1895
- date: n("getDate", r, 0),
1896
- day: n("getDay", r, 0),
1897
- year: n("getFullYear", r, 0),
1898
- month: n("getMonth", r, 0),
1899
- hours: n("getHours", r, 0),
1900
- minutes: n("getMinutes", r, 0),
1901
- seconds: n("getSeconds", r, 0),
1902
- milliseconds: n("getMilliseconds", r, 0),
1903
- time: n("getTime", r, 0),
1904
- timezoneoffset: n("getTimezoneOffset", r, 0),
1905
- utcdate: n("getUTCDate", r, 0),
1906
- utcday: n("getUTCDay", r, 0),
1907
- utcyear: n("getUTCFullYear", r, 0),
1908
- utcmonth: n("getUTCMonth", r, 0),
1909
- utchours: n("getUTCHours", r, 0),
1910
- utcminutes: n("getUTCMinutes", r, 0),
1911
- utcseconds: n("getUTCSeconds", r, 0),
1912
- utcmilliseconds: n("getUTCMilliseconds", r, 0),
1913
- length: n("length", null, -1),
1914
- parseFloat: "parseFloat",
1915
- parseInt: "parseInt",
1916
- upper: n("toUpperCase", i, 0),
1917
- lower: n("toLowerCase", i, 0),
1918
- substring: n("substring", i),
1919
- split: n("split", i),
1920
- trim: n("trim", i, 0),
1921
- btoa: "btoa",
1922
- atob: "atob",
1923
- encodeURIComponent: "encodeURIComponent",
1924
- regexp: a,
1925
- test: n("test", a),
1926
- if: function(t) {
1927
- t.length < 3 && P("Missing arguments to if function."), t.length > 3 && P("Too many arguments to if function.");
1928
- let n = t.map(e);
1929
- return "(" + n[0] + "?" + n[1] + ":" + n[2] + ")";
1930
- }
1931
- };
1778
+ return e === 36 || e === 95 || e >= 65 && e <= 90 || e >= 97 && e <= 122 || e === 92 || e >= 128 && Jr.test(String.fromCharCode(e));
1932
1779
  }
1933
- function ii(e) {
1934
- let t = e && e.length - 1;
1935
- return t && (e[0] === "\"" && e[t] === "\"" || e[0] === "'" && e[t] === "'") ? e.slice(1, -1) : e;
1780
+ function ni(e) {
1781
+ return e === 36 || e === 95 || e >= 65 && e <= 90 || e >= 97 && e <= 122 || e >= 48 && e <= 57 || e === 92 || e >= 128 && Yr.test(String.fromCharCode(e));
1936
1782
  }
1937
- function ai(e) {
1938
- e ||= {};
1939
- let t = e.allowed ? pn(e.allowed) : {}, n = e.forbidden ? pn(e.forbidden) : {}, r = e.constants || ni, i = (e.functions || ri)(d), a = e.globalvar, o = e.fieldvar, s = un(a) ? a : (e) => `${a}["${e}"]`, c = {}, l = {}, u = 0;
1940
- function d(e) {
1941
- if (fn(e)) return e;
1942
- let t = f[e.type];
1943
- return t ?? P("Unsupported type: " + e.type), t(e);
1944
- }
1945
- let f = {
1946
- Literal: (e) => e.raw,
1947
- Identifier: (e) => {
1948
- let i = e.name;
1949
- return u > 0 ? i : dn(n, i) ? P("Illegal identifier: " + i) : dn(r, i) ? r[i] : dn(t, i) ? i : (c[i] = 1, s(i));
1950
- },
1951
- MemberExpression: (e) => {
1952
- let t = !e.computed, n = d(e.object);
1953
- t && (u += 1);
1954
- let r = d(e.property);
1955
- return n === o && (l[ii(r)] = 1), t && --u, n + (t ? "." + r : "[" + r + "]");
1956
- },
1957
- CallExpression: (e) => {
1958
- e.callee.type !== "Identifier" && P("Illegal callee type: " + e.callee.type);
1959
- let t = e.callee.name, n = e.arguments, r = dn(i, t) && i[t];
1960
- return r || P("Unrecognized function: " + t), un(r) ? r(n) : r + "(" + n.map(d).join(",") + ")";
1961
- },
1962
- ArrayExpression: (e) => "[" + e.elements.map(d).join(",") + "]",
1963
- BinaryExpression: (e) => "(" + d(e.left) + " " + e.operator + " " + d(e.right) + ")",
1964
- UnaryExpression: (e) => "(" + e.operator + d(e.argument) + ")",
1965
- ConditionalExpression: (e) => "(" + d(e.test) + "?" + d(e.consequent) + ":" + d(e.alternate) + ")",
1966
- LogicalExpression: (e) => "(" + d(e.left) + e.operator + d(e.right) + ")",
1967
- ObjectExpression: (e) => {
1968
- for (let t of e.properties) {
1969
- let e = t.key.type === "Literal" ? String(t.key.value) : t.key.name;
1970
- ln.has(e) && P("Illegal property: " + e);
1971
- }
1972
- return "{" + e.properties.map(d).join(",") + "}";
1973
- },
1974
- Property: (e) => {
1975
- u += 1;
1976
- let t = d(e.key);
1977
- return --u, t + ":" + d(e.value);
1978
- }
1979
- };
1980
- function p(e) {
1981
- let t = {
1982
- code: d(e),
1983
- globals: Object.keys(c),
1984
- fields: Object.keys(l)
1985
- };
1986
- return c = {}, l = {}, t;
1783
+ var ri = {
1784
+ if: 1,
1785
+ in: 1,
1786
+ do: 1,
1787
+ var: 1,
1788
+ for: 1,
1789
+ new: 1,
1790
+ try: 1,
1791
+ let: 1,
1792
+ this: 1,
1793
+ else: 1,
1794
+ case: 1,
1795
+ void: 1,
1796
+ with: 1,
1797
+ enum: 1,
1798
+ while: 1,
1799
+ break: 1,
1800
+ catch: 1,
1801
+ throw: 1,
1802
+ const: 1,
1803
+ yield: 1,
1804
+ class: 1,
1805
+ super: 1,
1806
+ return: 1,
1807
+ typeof: 1,
1808
+ delete: 1,
1809
+ switch: 1,
1810
+ export: 1,
1811
+ import: 1,
1812
+ public: 1,
1813
+ static: 1,
1814
+ default: 1,
1815
+ finally: 1,
1816
+ extends: 1,
1817
+ package: 1,
1818
+ private: 1,
1819
+ function: 1,
1820
+ continue: 1,
1821
+ debugger: 1,
1822
+ interface: 1,
1823
+ protected: 1,
1824
+ instanceof: 1,
1825
+ implements: 1
1826
+ };
1827
+ function ii() {
1828
+ for (; R < z;) {
1829
+ let e = L.charCodeAt(R);
1830
+ if ($r(e) || ei(e)) ++R;
1831
+ else break;
1987
1832
  }
1988
- return p.functions = i, p.constants = r, p;
1989
- }
1990
- //#endregion
1991
- //#region ../core/src/utils/smoothstep.js
1992
- function oi(e, t, n) {
1993
- return n = (n - e) / (t - e), n = Math.max(0, Math.min(1, n)), n * n * (3 - 2 * n);
1994
1833
  }
1995
- //#endregion
1996
- //#region ../core/src/utils/clamp.js
1997
- function si(e, t = 0, n = 1) {
1998
- return Math.max(t, Math.min(n, e));
1834
+ function ai(e) {
1835
+ var t, n, r, i = 0;
1836
+ for (n = e === "u" ? 4 : 2, t = 0; t < n; ++t) R < z && Zr(L[R]) ? (r = L[R++], i = i * 16 + "0123456789abcdef".indexOf(r.toLowerCase())) : Y({}, G, K);
1837
+ return String.fromCharCode(i);
1999
1838
  }
2000
- //#endregion
2001
- //#region ../core/src/utils/linearstep.js
2002
- function ci(e, t, n) {
2003
- return si((n - e) / (t - e), 0, 1);
1839
+ function oi() {
1840
+ var e = L[R], t = 0, n, r;
1841
+ for (e === "}" && Y({}, G, K); R < z && (e = L[R++], Zr(e));) t = t * 16 + "0123456789abcdef".indexOf(e.toLowerCase());
1842
+ return (t > 1114111 || e !== "}") && Y({}, G, K), t <= 65535 ? String.fromCharCode(t) : (n = (t - 65536 >> 10) + 55296, r = (t - 65536 & 1023) + 56320, String.fromCharCode(n, r));
2004
1843
  }
2005
- //#endregion
2006
- //#region ../core/src/utils/expression.js
2007
- function li(e) {
2008
- return u(e) || ArrayBuffer.isView(e) ? e : null;
1844
+ function si() {
1845
+ var e = L.charCodeAt(R++), t = String.fromCharCode(e);
1846
+ for (e === 92 && (L.charCodeAt(R) !== 117 && Y({}, G, K), ++R, e = ai("u"), (!e || e === "\\" || !ti(e.charCodeAt(0))) && Y({}, G, K), t = e); R < z && (e = L.charCodeAt(R), ni(e));) ++R, t += String.fromCharCode(e), e === 92 && (t = t.substr(0, t.length - 1), L.charCodeAt(R) !== 117 && Y({}, G, K), ++R, e = ai("u"), (!e || e === "\\" || !ni(e.charCodeAt(0))) && Y({}, G, K), t += e);
1847
+ return t;
2009
1848
  }
2010
- function ui(e) {
2011
- return li(e) || (S(e) ? e : null);
1849
+ function ci() {
1850
+ for (var e = R++, t; R < z;) {
1851
+ if (t = L.charCodeAt(R), t === 92) return R = e, si();
1852
+ if (ni(t)) ++R;
1853
+ else break;
1854
+ }
1855
+ return L.slice(e, R);
2012
1856
  }
2013
- var di = {
2014
- clamp: si,
2015
- tickStep: Pe,
2016
- format(e, t) {
2017
- return jt(t)(e);
2018
- },
2019
- join(e, t) {
2020
- return li(e).join(t);
2021
- },
2022
- indexof(e, t, n) {
2023
- return ui(e).indexOf(t, n);
2024
- },
2025
- inrange: he,
2026
- lastindexof(e, t, n) {
2027
- return ui(e).lastIndexOf(t, n);
2028
- },
2029
- reverse(e) {
2030
- return S(e) ? Array.from(e).reverse().join("") : li(e).slice().reverse();
2031
- },
2032
- slice(e, t, n) {
2033
- return ui(e).slice(t, n);
2034
- },
2035
- mapHasKey(e, t) {
2036
- return e.has(t);
2037
- },
2038
- isArray: u,
2039
- isBoolean: ge,
2040
- isDefined(e) {
2041
- return e !== void 0;
2042
- },
2043
- isNumber: _e,
2044
- isObject: d,
2045
- isRegExp: ve,
2046
- isString: S,
2047
- isValid(e) {
2048
- return e != null && e === e;
2049
- },
2050
- lerp: ye,
2051
- linearstep: ci,
2052
- replace(e, t, n) {
2053
- return String(e).replace(t, n);
2054
- },
2055
- sort(e) {
2056
- return li(e).slice().sort(de);
2057
- },
2058
- center(e) {
2059
- let t = li(e);
2060
- return (t[0] + t[t.length - 1]) / 2;
2061
- },
2062
- span(e) {
2063
- return be(e);
2064
- },
2065
- smoothstep: oi
2066
- };
2067
- function fi(e) {
2068
- let t = !1, n = bi(e, {}, { resolveScaleResolution: () => (t = !0, {
2069
- channel: "analysis",
2070
- getDomainRef: () => void 0,
2071
- getMappingRef: () => void 0,
2072
- getConfigurationRef: () => void 0,
2073
- getZoomLevelRef: () => void 0
2074
- }) });
1857
+ function li() {
1858
+ var e = R, t = L.charCodeAt(R) === 92 ? si() : ci();
2075
1859
  return {
2076
- usesScaleHelper: t,
2077
- globals: n.globals
1860
+ type: t.length === 1 ? V : ri.hasOwnProperty(t) ? H : t === "null" ? wr : t === "true" || t === "false" ? Sr : V,
1861
+ value: t,
1862
+ start: e,
1863
+ end: R
2078
1864
  };
2079
1865
  }
2080
- function pi(e, t) {
2081
- let n = ri(e);
2082
- for (let e in di) n[e] = `this.${e}`;
2083
- for (let r of [
2084
- "scale",
2085
- "invert",
2086
- "domain",
2087
- "range",
2088
- "bandwidth",
2089
- "linearize",
2090
- "zoomLevel"
2091
- ]) n[r] = (n) => mi(e, t, r, n);
2092
- return n;
2093
- }
2094
- function mi(e, t, n, r) {
2095
- if (n === "zoomLevel" && r.length === 0) {
2096
- let e = [];
2097
- for (let r of ["x", "y"]) {
2098
- let i = t.resolveScaleResolution?.(r);
2099
- if (i) {
2100
- let a = t.getScaleHelper(n, r, i);
2101
- e.push(`${t.globalvar}["${a.codeName}"]()`);
2102
- }
1866
+ function ui() {
1867
+ var e = R, t = L.charCodeAt(R), n, r = L[R], i, a, o;
1868
+ switch (t) {
1869
+ case 46:
1870
+ case 40:
1871
+ case 41:
1872
+ case 59:
1873
+ case 44:
1874
+ case 123:
1875
+ case 125:
1876
+ case 91:
1877
+ case 93:
1878
+ case 58:
1879
+ case 63:
1880
+ case 126: return ++R, {
1881
+ type: W,
1882
+ value: String.fromCharCode(t),
1883
+ start: e,
1884
+ end: R
1885
+ };
1886
+ default: if (n = L.charCodeAt(R + 1), n === 61) switch (t) {
1887
+ case 43:
1888
+ case 45:
1889
+ case 47:
1890
+ case 60:
1891
+ case 62:
1892
+ case 94:
1893
+ case 124:
1894
+ case 37:
1895
+ case 38:
1896
+ case 42: return R += 2, {
1897
+ type: W,
1898
+ value: String.fromCharCode(t) + String.fromCharCode(n),
1899
+ start: e,
1900
+ end: R
1901
+ };
1902
+ case 33:
1903
+ case 61: return R += 2, L.charCodeAt(R) === 61 && ++R, {
1904
+ type: W,
1905
+ value: L.slice(e, R),
1906
+ start: e,
1907
+ end: R
1908
+ };
2103
1909
  }
2104
- return `Math.sqrt(${e.join("*") || "1"})`;
2105
1910
  }
2106
- if (r.length === 0) throw Error(`Scale helper "${n}" requires a literal channel name.`);
2107
- if ((n === "scale" || n === "invert" || n === "linearize") && r.length < 2) throw Error(`Scale helper "${n}" requires a channel name and a value.`);
2108
- if (n === "zoomLevel" && r.length > 1) throw Error("Scale helper \"zoomLevel\" accepts zero arguments or one literal channel name.");
2109
- let i = hi(r[0]);
2110
- if (!i) throw Error(`Scale helper "${n}" requires a literal channel name.`);
2111
- let a = t.resolveScaleResolution?.(i);
2112
- if (!a) throw Error(`Unknown scale channel "${i}" in expression helper "${n}".`);
2113
- let o = t.getScaleHelper(n, i, a), s = r.slice(1).map((t) => e(t)).join(",");
2114
- return `${t.globalvar}["${o.codeName}"](${s})`;
1911
+ if (o = L.substr(R, 4), o === ">>>=") return R += 4, {
1912
+ type: W,
1913
+ value: o,
1914
+ start: e,
1915
+ end: R
1916
+ };
1917
+ if (a = o.substr(0, 3), a === ">>>" || a === "<<=" || a === ">>=") return R += 3, {
1918
+ type: W,
1919
+ value: a,
1920
+ start: e,
1921
+ end: R
1922
+ };
1923
+ if (i = a.substr(0, 2), r === i[1] && "+-<>&|".includes(r) || i === "=>") return R += 2, {
1924
+ type: W,
1925
+ value: i,
1926
+ start: e,
1927
+ end: R
1928
+ };
1929
+ if (i === "//" && Y({}, G, K), "<>=!+-*%&|^/".includes(r)) return ++R, {
1930
+ type: W,
1931
+ value: r,
1932
+ start: e,
1933
+ end: R
1934
+ };
1935
+ Y({}, G, K);
2115
1936
  }
2116
- function hi(e) {
2117
- return e?.type === "Literal" && typeof e.value == "string" ? e.value : void 0;
1937
+ function di(e) {
1938
+ let t = "";
1939
+ for (; R < z && Zr(L[R]);) t += L[R++];
1940
+ return t.length === 0 && Y({}, G, K), ti(L.charCodeAt(R)) && Y({}, G, K), {
1941
+ type: U,
1942
+ value: parseInt("0x" + t, 16),
1943
+ start: e,
1944
+ end: R
1945
+ };
2118
1946
  }
2119
- function gi(e, t) {
2120
- let n = (n) => vi(t, e, n);
2121
- if (e === "domain") return () => n(() => t.getDomain());
2122
- if (e === "range") return () => n(() => t.getScale().range());
2123
- if (e === "bandwidth") return () => n(() => {
2124
- let e = t.getScale();
2125
- if (typeof e.bandwidth != "function") throw Error(`Scale channel "${t.channel}" does not support bandwidth().`);
2126
- return e.bandwidth();
2127
- });
2128
- if (e === "scale") return (e) => n(() => t.getScale()(e));
2129
- if (e === "invert") return (e) => n(() => t.getScale().invert(e));
2130
- if (e === "linearize") return (e) => n(() => e == null ? null : typeof t.fromComplex == "function" ? t.fromComplex(e) : e);
2131
- if (e === "zoomLevel") return () => n(() => t.getZoomLevel());
2132
- throw Error("Unknown scale helper: " + e);
1947
+ function fi(e) {
1948
+ let t = "0" + L[R++];
1949
+ for (; R < z && Qr(L[R]);) t += L[R++];
1950
+ return (ti(L.charCodeAt(R)) || q(L.charCodeAt(R))) && Y({}, G, K), {
1951
+ type: U,
1952
+ value: parseInt(t, 8),
1953
+ octal: !0,
1954
+ start: e,
1955
+ end: R
1956
+ };
1957
+ }
1958
+ function pi() {
1959
+ var e, t, n = L[R];
1960
+ if (Xr(q(n.charCodeAt(0)) || n === ".", "Numeric literal must start with a decimal digit or a decimal point"), t = R, e = "", n !== ".") {
1961
+ if (e = L[R++], n = L[R], e === "0") {
1962
+ if (n === "x" || n === "X") return ++R, di(t);
1963
+ if (Qr(n)) return fi(t);
1964
+ n && q(n.charCodeAt(0)) && Y({}, G, K);
1965
+ }
1966
+ for (; q(L.charCodeAt(R));) e += L[R++];
1967
+ n = L[R];
1968
+ }
1969
+ if (n === ".") {
1970
+ for (e += L[R++]; q(L.charCodeAt(R));) e += L[R++];
1971
+ n = L[R];
1972
+ }
1973
+ if (n === "e" || n === "E") {
1974
+ if (e += L[R++], n = L[R], (n === "+" || n === "-") && (e += L[R++]), q(L.charCodeAt(R))) for (; q(L.charCodeAt(R));) e += L[R++];
1975
+ else Y({}, G, K);
1976
+ }
1977
+ return ti(L.charCodeAt(R)) && Y({}, G, K), {
1978
+ type: U,
1979
+ value: parseFloat(e),
1980
+ start: t,
1981
+ end: R
1982
+ };
1983
+ }
1984
+ function mi() {
1985
+ var e = "", t, n, r, i, a = !1;
1986
+ for (t = L[R], Xr(t === "'" || t === "\"", "String literal must starts with a quote"), n = R, ++R; R < z;) {
1987
+ if (r = L[R++], r === t) {
1988
+ t = "";
1989
+ break;
1990
+ }
1991
+ if (r === "\\") {
1992
+ if (r = L[R++], !r || !ei(r.charCodeAt(0))) switch (r) {
1993
+ case "u":
1994
+ case "x":
1995
+ L[R] === "{" ? (++R, e += oi()) : e += ai(r);
1996
+ break;
1997
+ case "n":
1998
+ e += "\n";
1999
+ break;
2000
+ case "r":
2001
+ e += "\r";
2002
+ break;
2003
+ case "t":
2004
+ e += " ";
2005
+ break;
2006
+ case "b":
2007
+ e += "\b";
2008
+ break;
2009
+ case "f":
2010
+ e += "\f";
2011
+ break;
2012
+ case "v":
2013
+ e += "\v";
2014
+ break;
2015
+ default: Qr(r) ? (i = "01234567".indexOf(r), i !== 0 && (a = !0), R < z && Qr(L[R]) && (a = !0, i = i * 8 + "01234567".indexOf(L[R++]), "0123".includes(r) && R < z && Qr(L[R]) && (i = i * 8 + "01234567".indexOf(L[R++]))), e += String.fromCharCode(i)) : e += r;
2016
+ }
2017
+ else r === "\r" && L[R] === "\n" && ++R;
2018
+ } else if (ei(r.charCodeAt(0))) break;
2019
+ else e += r;
2020
+ }
2021
+ return t !== "" && Y({}, G, K), {
2022
+ type: Tr,
2023
+ value: e,
2024
+ octal: a,
2025
+ start: n,
2026
+ end: R
2027
+ };
2133
2028
  }
2134
- var _i = /* @__PURE__ */ new WeakSet();
2135
- function vi(e, t, n) {
2136
- if (_i.has(e)) throw Error(`Scale helper cycle detected while evaluating ${t}("${e.channel}").`);
2137
- _i.add(e);
2029
+ function hi(e, t) {
2030
+ let n = e;
2031
+ t.includes("u") && (n = n.replace(/\\u\{([0-9a-fA-F]+)\}/g, (e, t) => {
2032
+ if (parseInt(t, 16) <= 1114111) return "x";
2033
+ Y({}, Ur);
2034
+ }).replace(/[\uD800-\uDBFF][\uDC00-\uDFFF]/g, "x"));
2138
2035
  try {
2139
- return n();
2140
- } finally {
2141
- _i.delete(e);
2036
+ new RegExp(n);
2037
+ } catch {
2038
+ Y({}, Ur);
2142
2039
  }
2143
- }
2144
- function yi(e, t) {
2145
- return e === "domain" ? t.getDomainRef() : e === "linearize" ? t.getConfigurationRef() : e === "zoomLevel" ? t.getZoomLevelRef() : t.getMappingRef();
2146
- }
2147
- function bi(e, t = {}, n = {}) {
2148
2040
  try {
2149
- let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Set(), o = 1, s = {
2150
- ...n,
2151
- globalvar: "globalObject",
2152
- globalObject: t,
2153
- getScaleHelper(e, n, s) {
2154
- let c = e + ":" + n, l = i.get(c);
2155
- if (l) return l;
2156
- let u = r.get(c);
2157
- u || (u = yi(e, s), r.set(c, u));
2158
- let d = "__scale_helper_" + o++, f = {
2159
- codeName: d,
2160
- dependency: u
2161
- };
2162
- return i.set(c, f), e === "zoomLevel" && a.add(s), t[d] = gi(e, s), f;
2163
- }
2164
- }, c = ai({
2165
- forbidden: [],
2166
- allowed: ["datum", "undefined"],
2167
- globalvar: "globalObject",
2168
- fieldvar: "datum",
2169
- functions: (e) => pi(e, s)
2170
- })(ti(e)), l = Function("datum", "globalObject", `"use strict";
2171
- try {
2172
- return (${c.code});
2173
- } catch (e) {
2174
- throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
2175
- }`).bind(di), u = (e) => l(e, t);
2176
- return u.createEvaluator = (e) => (t) => l(t, e), u.fields = c.fields, u.globals = c.globals, u.code = c.code, u.scaleDependencies = Array.from(new Set(r.values())), u.zoomLevelResolutions = Array.from(a), u;
2177
- } catch (t) {
2178
- throw Error(`Invalid expression: ${e}, ${t.message}`, { cause: t });
2041
+ return new RegExp(e, t);
2042
+ } catch {
2043
+ return null;
2179
2044
  }
2180
2045
  }
2181
- var xi = ai({
2182
- forbidden: [],
2183
- allowed: ["event"],
2184
- globalvar: "globalObject"
2185
- });
2046
+ function gi() {
2047
+ var e = L[R], t, n, r, i;
2048
+ for (Xr(e === "/", "Regular expression literal must start with a slash"), t = L[R++], n = !1, r = !1; R < z;) if (e = L[R++], t += e, e === "\\") e = L[R++], ei(e.charCodeAt(0)) && Y({}, Wr), t += e;
2049
+ else if (ei(e.charCodeAt(0))) Y({}, Wr);
2050
+ else if (n) e === "]" && (n = !1);
2051
+ else if (e === "/") {
2052
+ r = !0;
2053
+ break;
2054
+ } else e === "[" && (n = !0);
2055
+ return r || Y({}, Wr), i = t.substr(1, t.length - 2), {
2056
+ value: i,
2057
+ literal: t
2058
+ };
2059
+ }
2060
+ function _i() {
2061
+ for (var e, t = "", n = ""; R < z && (e = L[R], ni(e.charCodeAt(0)));) ++R, e === "\\" && R < z ? Y({}, G, K) : (n += e, t += e);
2062
+ return n.search(/[^gimuy]/g) >= 0 && Y({}, Ur, n), {
2063
+ value: n,
2064
+ literal: t
2065
+ };
2066
+ }
2067
+ function vi() {
2068
+ var e, t, n, r;
2069
+ return B = null, ii(), e = R, t = gi(), n = _i(), r = hi(t.value, n.value), {
2070
+ literal: t.literal + n.literal,
2071
+ value: r,
2072
+ regex: {
2073
+ pattern: t.value,
2074
+ flags: n.value
2075
+ },
2076
+ start: e,
2077
+ end: R
2078
+ };
2079
+ }
2080
+ function yi(e) {
2081
+ return e.type === V || e.type === H || e.type === Sr || e.type === wr;
2082
+ }
2083
+ function bi() {
2084
+ if (ii(), R >= z) return {
2085
+ type: Cr,
2086
+ start: R,
2087
+ end: R
2088
+ };
2089
+ let e = L.charCodeAt(R);
2090
+ return ti(e) ? li() : e === 40 || e === 41 || e === 59 ? ui() : e === 39 || e === 34 ? mi() : e === 46 ? q(L.charCodeAt(R + 1)) ? pi() : ui() : q(e) ? pi() : ui();
2091
+ }
2092
+ function J() {
2093
+ let e = B;
2094
+ return R = e.end, B = bi(), R = e.end, e;
2095
+ }
2096
+ function xi() {
2097
+ let e = R;
2098
+ B = bi(), R = e;
2099
+ }
2186
2100
  function Si(e) {
2187
- try {
2188
- let t = xi(ti(e));
2189
- return Function("event", "globalObject", `"use strict";
2190
- try {
2191
- return !!(${t.code});
2192
- } catch (e) {
2193
- throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
2194
- }`);
2195
- } catch (t) {
2196
- throw Error(`Invalid expression: ${e}, ${t.message}`, { cause: t });
2197
- }
2101
+ let t = new F(Dr);
2102
+ return t.elements = e, t;
2198
2103
  }
2199
- //#endregion
2200
- //#region ../core/src/utils/interactionConfig.js
2201
- function Ci(e) {
2202
- if (typeof e == "string") {
2203
- let t = e.match(/^([a-zA-Z]+)(?:\[(.+)\])?$/);
2204
- if (!t) throw Error(`Invalid event type string: ${e}`);
2205
- let [, n, r] = t, i = { type: n };
2206
- return r && (i.filter = r), i;
2207
- }
2208
- return e;
2104
+ function Ci(e, t, n) {
2105
+ let r = new F(e === "||" || e === "&&" ? Nr : Or);
2106
+ return r.operator = e, r.left = t, r.right = n, r;
2209
2107
  }
2210
- function wi(e) {
2211
- return e?.filter ? Si(e.filter) : () => !0;
2108
+ function wi(e, t) {
2109
+ let n = new F(kr);
2110
+ return n.callee = e, n.arguments = t, n;
2212
2111
  }
2213
2112
  function Ti(e, t, n) {
2214
- if (!t.includes(e.type)) throw Error(n);
2215
- return e;
2113
+ let r = new F(Ar);
2114
+ return r.test = e, r.consequent = t, r.alternate = n, r;
2216
2115
  }
2217
- //#endregion
2218
- //#region ../core/src/selection/selectionPredicateTree.js
2219
- function Ei(e, t) {
2220
- if (!("test" in e) || !("ref" in e.test)) return e;
2221
- let n = e.test.ref;
2222
- if (!Object.hasOwn(t, n)) throw Error(`Unknown predicate "${n}" in unit view.`);
2223
- return {
2224
- ...e,
2225
- test: t[n]
2226
- };
2116
+ function Ei(e) {
2117
+ let t = new F(jr);
2118
+ return t.name = e, t;
2227
2119
  }
2228
2120
  function Di(e) {
2229
- let t = "test" in e ? e.test : {
2230
- param: e.param,
2231
- ...e.empty === void 0 ? {} : { empty: e.empty },
2232
- ...e.project === void 0 ? {} : { project: e.project }
2233
- }, n = (e) => {
2234
- if (!e || typeof e != "object" || Array.isArray(e)) throw Error("Selection predicate must be an object.");
2235
- let t = e, r = [
2236
- "param",
2237
- "and",
2238
- "or",
2239
- "not"
2240
- ].filter((e) => e in t);
2241
- if (r.length !== 1) throw Error("Selection predicate must have exactly one operator.");
2242
- let i = r[0];
2243
- if (i === "param") {
2244
- if (typeof t.param == "string") {
2245
- if (Object.keys(t).some((e) => ![
2246
- "param",
2247
- "empty",
2248
- "project"
2249
- ].includes(e)) || typeof (t.empty ?? !0) != "boolean") throw Error("Invalid selection parameter predicate.");
2250
- if (t.project !== void 0) {
2251
- let e = t.project;
2252
- if (!e || typeof e != "object" || Array.isArray(e) || Object.keys(e).length === 0 || Object.entries(e).some(([e, t]) => !["x", "y"].includes(e) || t !== e && t !== e + "2")) throw Error("Invalid interval selection projection.");
2253
- }
2254
- return {
2255
- param: Gt(t.param),
2256
- empty: t.empty ?? !0,
2257
- ...t.project ? { project: { ...t.project } } : {}
2258
- };
2259
- }
2260
- if (!t.param || typeof t.param != "object" || Object.keys(t.param).length !== 1 || !Array.isArray(t.param.or) || Object.keys(t).some((e) => !["param", "empty"].includes(e)) || typeof (t.empty ?? !0) != "boolean") throw Error("Invalid flat selection union.");
2261
- if (t.param.or.length === 0) throw Error("Selection test \"or\" must be a nonempty array.");
2262
- let e = Array.from(new Set(t.param.or.map(Gt))), n = e.map((e) => ({ selectionActive: e })), r = e.map((e, t) => ({ all: [{
2263
- param: e,
2264
- empty: !0
2265
- }, n[t]] }));
2266
- return { any: t.empty === !1 ? r : [...r, { not: { any: n } }] };
2267
- }
2268
- if (Object.keys(t).length !== 1) throw Error("Selection predicate operators cannot be mixed.");
2269
- if (i === "not") return { not: n(t.not) };
2270
- let a = t[i];
2271
- if (!Array.isArray(a) || a.length === 0) throw Error(`Selection test "${i}" must be a nonempty array.`);
2272
- let o = a.map(n);
2273
- return i === "and" ? { all: o } : { any: o };
2274
- };
2275
- return n(t);
2121
+ let t = new F(Mr);
2122
+ return t.value = e.value, t.raw = L.slice(e.start, e.end), e.regex && (t.raw === "//" && (t.raw = "/(?:)/"), t.regex = e.regex), t;
2276
2123
  }
2277
- function Oi(e) {
2278
- let t = /* @__PURE__ */ new Set(), n = (e) => {
2279
- if ("param" in e) t.add(e.param);
2280
- else if ("selectionActive" in e) t.add(typeof e.selectionActive == "string" ? e.selectionActive : e.selectionActive.param);
2281
- else if ("not" in e) n(e.not);
2282
- else for (let t of "all" in e ? e.all : e.any) n(t);
2283
- };
2284
- return n(e), Array.from(t);
2124
+ function Oi(e, t, n) {
2125
+ let r = new F(Pr);
2126
+ return r.computed = e === "[", r.object = t, r.property = n, r.computed || (n.member = !0), r;
2285
2127
  }
2286
2128
  function ki(e) {
2287
- let t = /* @__PURE__ */ new Map(), n = (e) => {
2288
- if ("param" in e) t.set(e.param, { selectionActive: {
2289
- param: e.param,
2290
- type: e.type,
2291
- components: e.projections?.map(({ component: e }) => e) ?? []
2292
- } });
2293
- else if ("selectionActive" in e) t.set(e.selectionActive.param, e);
2294
- else if ("not" in e) n(e.not);
2295
- else for (let t of "all" in e ? e.all : e.any) n(t);
2296
- };
2297
- return n(e), { all: [e, { any: Array.from(t.values()) }] };
2298
- }
2299
- function Ai(e) {
2300
- if ("param" in e) return e.empty;
2301
- if ("selectionActive" in e) return !1;
2302
- if ("not" in e) return !Ai(e.not);
2303
- let t = "all" in e ? e.all : e.any;
2304
- return "all" in e ? t.every(Ai) : t.some(Ai);
2129
+ let t = new F(Fr);
2130
+ return t.properties = e, t;
2305
2131
  }
2306
- function ji(e, t, n, r, i) {
2307
- let a = (e) => {
2308
- let t = n.findSelectionCapability?.(e);
2309
- if (t) return t;
2310
- let r = n.findValue(e);
2311
- if (!r || ![
2312
- "single",
2313
- "multi",
2314
- "interval"
2315
- ].includes(r.type)) throw Error(`Selection parameter "${e}" was not found.`);
2316
- return {
2317
- type: r.type,
2318
- components: r.type === "interval" ? Object.keys(r.intervals).map((e) => ({ component: e })) : []
2319
- };
2320
- }, o = t, s = (e) => {
2321
- let t = o[e];
2322
- if (t && "field" in t) return t.field;
2323
- if (t && "condition" in t) return (Array.isArray(t.condition) ? t.condition : [t.condition]).find((e) => "field" in e)?.field;
2324
- }, c = (e) => {
2325
- if ("all" in e) return { all: e.all.map(c) };
2326
- if ("any" in e) return { any: e.any.map(c) };
2327
- if ("not" in e) return { not: c(e.not) };
2328
- let t = "param" in e ? e.param : e.selectionActive, n = a(t);
2329
- if ("selectionActive" in e) return { selectionActive: {
2330
- param: t,
2331
- type: n.type,
2332
- components: n.components.map(({ component: e }) => e)
2333
- } };
2334
- if (e.project && n.type !== "interval") throw Error(`Selection "${t}" is not an interval selection; project is invalid.`);
2335
- if (n.type !== "interval") return {
2336
- param: t,
2337
- type: n.type,
2338
- empty: e.empty
2339
- };
2340
- let l = n.components.map(({ component: e }) => e);
2341
- if (e.project && (Object.keys(e.project).length !== l.length || l.some((t) => !(t in e.project)))) throw Error(`Selection "${t}" project must cover its declared components: ${l.join(", ")}.`);
2342
- let u = n.components.map(({ component: n, type: a }) => {
2343
- let c = e.project?.[n] ?? n;
2344
- if (![
2345
- "x",
2346
- "x2",
2347
- "y",
2348
- "y2"
2349
- ].includes(c)) throw Error(`Selection "${t}" has unsupported component "${n}".`);
2350
- let l = o[c];
2351
- if (e.project && (!l || !("field" in l))) throw Error(`Selection "${t}" project target "${c}" must be an unconditional field encoding.`);
2352
- let u = s(c);
2353
- if (!u) throw Error(`Selection "${t}" has no field for "${c}".`);
2354
- if (e.project) {
2355
- let e = i?.(c) ?? ("type" in l ? l.type : void 0) ?? ("type" in o[n] ? o[n].type : void 0);
2356
- if (![
2357
- "quantitative",
2358
- "index",
2359
- "locus"
2360
- ].includes(a) || e !== a) throw Error(`Selection "${t}" project target "${c}" must have matching quantitative, index, or locus type (${a} vs ${e}).`);
2361
- }
2362
- let d = n + "2", f = e.project ? void 0 : s(d);
2363
- return {
2364
- component: n,
2365
- input: c,
2366
- field: u,
2367
- ...f && f !== u ? {
2368
- secondaryInput: d,
2369
- secondaryField: f,
2370
- hitTest: r
2371
- } : {}
2372
- };
2373
- });
2374
- return {
2375
- param: t,
2376
- type: "interval",
2377
- empty: e.empty,
2378
- projections: u
2379
- };
2380
- };
2381
- return c(e);
2132
+ function Ai(e, t, n) {
2133
+ let r = new F(Ir);
2134
+ return r.key = t, r.value = n, r.kind = e, r;
2382
2135
  }
2383
- function Mi(e, t) {
2384
- if ("all" in e || "any" in e) {
2385
- let n = ("all" in e ? e.all : e.any).map((e) => Mi(e, t));
2386
- return "all" in e ? (e) => n.every((t) => t(e)) : (e) => n.some((t) => t(e));
2387
- }
2388
- if ("not" in e) {
2389
- let n = Mi(e.not, t);
2390
- return (e) => !n(e);
2136
+ function ji(e, t) {
2137
+ let n = new F(Lr);
2138
+ return n.operator = e, n.argument = t, n.prefix = !0, n;
2139
+ }
2140
+ function Y(e, t) {
2141
+ var n, r = Array.prototype.slice.call(arguments, 2), i = t.replace(/%(\d)/g, (e, t) => (Xr(t < r.length, "Message reference must be in range"), r[t]));
2142
+ throw n = Error(i), n.index = R, n.description = i, n;
2143
+ }
2144
+ function Mi(e) {
2145
+ e.type === Cr && Y(e, Hr), e.type === U && Y(e, Rr), e.type === Tr && Y(e, zr), e.type === V && Y(e, Br), e.type === H && Y(e, Vr), Y(e, G, e.value);
2146
+ }
2147
+ function X(e) {
2148
+ let t = J();
2149
+ (t.type !== W || t.value !== e) && Mi(t);
2150
+ }
2151
+ function Z(e) {
2152
+ return B.type === W && B.value === e;
2153
+ }
2154
+ function Ni(e) {
2155
+ return B.type === H && B.value === e;
2156
+ }
2157
+ function Pi() {
2158
+ let e = [];
2159
+ for (R = B.start, X("["); !Z("]");) Z(",") ? (J(), e.push(null)) : (e.push(Q()), Z("]") || X(","));
2160
+ return J(), Si(e);
2161
+ }
2162
+ function Fi() {
2163
+ R = B.start;
2164
+ let e = J();
2165
+ return e.type === Tr || e.type === U ? (e.octal && Y(e, Gr), Di(e)) : Ei(e.value);
2166
+ }
2167
+ function Ii() {
2168
+ var e, t, n, r;
2169
+ if (R = B.start, e = B, e.type === V) return n = Fi(), X(":"), r = Q(), Ai("init", n, r);
2170
+ if (e.type === Cr || e.type === W) Mi(e);
2171
+ else return t = Fi(), X(":"), r = Q(), Ai("init", t, r);
2172
+ }
2173
+ function Li() {
2174
+ var e = [], t, n, r, i = {}, a = String;
2175
+ for (R = B.start, X("{"); !Z("}");) t = Ii(), n = t.key.type === jr ? t.key.name : a(t.key.value), r = "$" + n, Object.prototype.hasOwnProperty.call(i, r) ? Y({}, Kr) : i[r] = !0, e.push(t), Z("}") || X(",");
2176
+ return X("}"), ki(e);
2177
+ }
2178
+ function Ri() {
2179
+ X("(");
2180
+ let e = Xi();
2181
+ return X(")"), e;
2182
+ }
2183
+ var zi = { if: 1 };
2184
+ function Bi() {
2185
+ var e, t, n;
2186
+ if (Z("(")) return Ri();
2187
+ if (Z("[")) return Pi();
2188
+ if (Z("{")) return Li();
2189
+ if (e = B.type, R = B.start, e === V || zi[B.value]) n = Ei(J().value);
2190
+ else if (e === Tr || e === U) B.octal && Y(B, Gr), n = Di(J());
2191
+ else if (e === H) throw Error(qr);
2192
+ else e === Sr ? (t = J(), t.value = t.value === "true", n = Di(t)) : e === wr ? (t = J(), t.value = null, n = Di(t)) : Z("/") || Z("/=") ? (n = Di(vi()), xi()) : Mi(J());
2193
+ return n;
2194
+ }
2195
+ function Vi() {
2196
+ let e = [];
2197
+ if (X("("), !Z(")")) for (; R < z && (e.push(Q()), !Z(")"));) X(",");
2198
+ return X(")"), e;
2199
+ }
2200
+ function Hi() {
2201
+ R = B.start;
2202
+ let e = J();
2203
+ return yi(e) || Mi(e), Ei(e.value);
2204
+ }
2205
+ function Ui() {
2206
+ return X("."), Hi();
2207
+ }
2208
+ function Wi() {
2209
+ X("[");
2210
+ let e = Xi();
2211
+ return X("]"), e;
2212
+ }
2213
+ function Gi() {
2214
+ for (var e = Bi(), t, n;;) if (Z(".")) n = Ui(), e = Oi(".", e, n);
2215
+ else if (Z("(")) t = Vi(), e = wi(e, t);
2216
+ else if (Z("[")) n = Wi(), e = Oi("[", e, n);
2217
+ else break;
2218
+ return e;
2219
+ }
2220
+ function Ki() {
2221
+ let e = Gi();
2222
+ if (B.type === W && (Z("++") || Z("--"))) throw Error(qr);
2223
+ return e;
2224
+ }
2225
+ function qi() {
2226
+ var e, t;
2227
+ if (B.type !== W && B.type !== H) t = Ki();
2228
+ else if (Z("++") || Z("--")) throw Error(qr);
2229
+ else if (Z("+") || Z("-") || Z("~") || Z("!")) e = J(), t = qi(), t = ji(e.value, t);
2230
+ else if (Ni("delete") || Ni("void") || Ni("typeof")) throw Error(qr);
2231
+ else t = Ki();
2232
+ return t;
2233
+ }
2234
+ function Ji(e) {
2235
+ let t = 0;
2236
+ if (e.type !== W && e.type !== H) return 0;
2237
+ switch (e.value) {
2238
+ case "||":
2239
+ t = 1;
2240
+ break;
2241
+ case "&&":
2242
+ t = 2;
2243
+ break;
2244
+ case "|":
2245
+ t = 3;
2246
+ break;
2247
+ case "^":
2248
+ t = 4;
2249
+ break;
2250
+ case "&":
2251
+ t = 5;
2252
+ break;
2253
+ case "==":
2254
+ case "!=":
2255
+ case "===":
2256
+ case "!==":
2257
+ t = 6;
2258
+ break;
2259
+ case "<":
2260
+ case ">":
2261
+ case "<=":
2262
+ case ">=":
2263
+ case "instanceof":
2264
+ case "in":
2265
+ t = 7;
2266
+ break;
2267
+ case "<<":
2268
+ case ">>":
2269
+ case ">>>":
2270
+ t = 8;
2271
+ break;
2272
+ case "+":
2273
+ case "-":
2274
+ t = 9;
2275
+ break;
2276
+ case "*":
2277
+ case "/":
2278
+ case "%": t = 11;
2391
2279
  }
2392
- if ("selectionActive" in e) {
2393
- let { param: n } = e.selectionActive;
2394
- return () => Ni(t(n));
2280
+ return t;
2281
+ }
2282
+ function Yi() {
2283
+ var e = B, t, n, r, i, a, o, s, c = qi(), l;
2284
+ if (r = B, i = Ji(r), i === 0) return c;
2285
+ for (r.prec = i, J(), t = [e, B], o = qi(), a = [
2286
+ c,
2287
+ r,
2288
+ o
2289
+ ]; (i = Ji(B)) > 0;) {
2290
+ for (; a.length > 2 && i <= a[a.length - 2].prec;) o = a.pop(), s = a.pop().value, c = a.pop(), t.pop(), n = Ci(s, c, o), a.push(n);
2291
+ r = J(), r.prec = i, a.push(r), t.push(B), n = qi(), a.push(n);
2395
2292
  }
2396
- let { param: n, type: r, empty: i } = e;
2397
- if (r === "single") return (e) => {
2398
- let r = t(n);
2399
- return r.uniqueId == null ? i : r.uniqueId === e[M];
2400
- };
2401
- if (r === "multi") return (e) => {
2402
- let r = t(n);
2403
- return r.data.size === 0 ? i : r.data.has(e[M]);
2404
- };
2405
- let a = e.projections.map((e) => ({
2406
- ...e,
2407
- read: tn(e.field),
2408
- readSecondary: e.secondaryField ? tn(e.secondaryField) : void 0
2409
- }));
2410
- return (e) => {
2411
- let r = t(n);
2412
- if (!Ni(r)) return i;
2413
- for (let t of a) {
2414
- let n = r.intervals[t.component], i = t.read(e), a = t.readSecondary?.(e), [o, s] = n;
2415
- if (!(a === void 0 ? o <= i && i < s : t.hitTest === "endpoints" ? o <= i && i < s || o <= a && a < s : t.hitTest === "encloses" ? o <= Math.min(i, a) && Math.max(i, a) <= s : o < Math.max(i, a) && Math.min(i, a) < s)) return !1;
2416
- }
2417
- return !0;
2418
- };
2293
+ for (l = a.length - 1, n = a[l], t.pop(); l > 1;) t.pop(), n = Ci(a[l - 1].value, a[l - 2], n), l -= 2;
2294
+ return n;
2419
2295
  }
2420
- function Ni(e) {
2421
- if (e.type === "single") return e.uniqueId != null;
2422
- if (e.type === "multi") return e.data.size !== 0;
2423
- if (e.type === "interval") return Object.values(e.intervals).every((e) => !!e);
2424
- throw Error(`Unsupported selection type: ${e.type}`);
2296
+ function Q() {
2297
+ var e = Yi(), t, n;
2298
+ return Z("?") && (J(), t = Q(), X(":"), n = Q(), e = Ti(e, t, n)), e;
2425
2299
  }
2426
- //#endregion
2427
- //#region ../core/src/selection/selection.js
2428
- function Pi(e) {
2429
- return {
2430
- type: "single",
2431
- datum: e,
2432
- uniqueId: e?.[M]
2433
- };
2300
+ function Xi() {
2301
+ let e = Q();
2302
+ if (Z(",")) throw Error(qr);
2303
+ return e;
2434
2304
  }
2435
- function Fi(e) {
2436
- return e ??= [], {
2437
- type: "multi",
2438
- data: new Map(e.map((e) => [e[M], e]))
2439
- };
2305
+ function Zi(e) {
2306
+ L = e, R = 0, z = L.length, B = null, xi();
2307
+ let t = Xi();
2308
+ if (B.type !== Cr) throw Error("Unexpect token after expression.");
2309
+ return t;
2440
2310
  }
2441
- function Ii(e) {
2311
+ var Qi = {
2312
+ NaN: "NaN",
2313
+ E: "Math.E",
2314
+ LN2: "Math.LN2",
2315
+ LN10: "Math.LN10",
2316
+ LOG2E: "Math.LOG2E",
2317
+ LOG10E: "Math.LOG10E",
2318
+ PI: "Math.PI",
2319
+ SQRT1_2: "Math.SQRT1_2",
2320
+ SQRT2: "Math.SQRT2",
2321
+ MIN_VALUE: "Number.MIN_VALUE",
2322
+ MAX_VALUE: "Number.MAX_VALUE"
2323
+ };
2324
+ function $i(e) {
2325
+ function t(t, n, r, i) {
2326
+ let a = e(n[0]);
2327
+ return r && (a = r + "(" + a + ")", r.lastIndexOf("new ", 0) === 0 && (a = "(" + a + ")")), a + "." + t + (i < 0 ? "" : i === 0 ? "()" : "(" + n.slice(1).map(e).join(",") + ")");
2328
+ }
2329
+ function n(e, n, r) {
2330
+ return (i) => t(e, i, n, r);
2331
+ }
2332
+ let r = "new Date", i = "String", a = "RegExp";
2442
2333
  return {
2443
- type: "interval",
2444
- intervals: Object.fromEntries(e.map((e) => [e, null]))
2334
+ isNaN: "Number.isNaN",
2335
+ isFinite: "Number.isFinite",
2336
+ abs: "Math.abs",
2337
+ acos: "Math.acos",
2338
+ asin: "Math.asin",
2339
+ atan: "Math.atan",
2340
+ atan2: "Math.atan2",
2341
+ ceil: "Math.ceil",
2342
+ cos: "Math.cos",
2343
+ exp: "Math.exp",
2344
+ floor: "Math.floor",
2345
+ hypot: "Math.hypot",
2346
+ log: "Math.log",
2347
+ max: "Math.max",
2348
+ min: "Math.min",
2349
+ pow: "Math.pow",
2350
+ random: "Math.random",
2351
+ round: "Math.round",
2352
+ sin: "Math.sin",
2353
+ sqrt: "Math.sqrt",
2354
+ tan: "Math.tan",
2355
+ clamp: function(t) {
2356
+ t.length < 3 && P("Missing arguments to clamp function."), t.length > 3 && P("Too many arguments to clamp function.");
2357
+ let n = t.map(e);
2358
+ return "Math.max(" + n[1] + ", Math.min(" + n[2] + "," + n[0] + "))";
2359
+ },
2360
+ now: "Date.now",
2361
+ utc: "Date.UTC",
2362
+ datetime: r,
2363
+ date: n("getDate", r, 0),
2364
+ day: n("getDay", r, 0),
2365
+ year: n("getFullYear", r, 0),
2366
+ month: n("getMonth", r, 0),
2367
+ hours: n("getHours", r, 0),
2368
+ minutes: n("getMinutes", r, 0),
2369
+ seconds: n("getSeconds", r, 0),
2370
+ milliseconds: n("getMilliseconds", r, 0),
2371
+ time: n("getTime", r, 0),
2372
+ timezoneoffset: n("getTimezoneOffset", r, 0),
2373
+ utcdate: n("getUTCDate", r, 0),
2374
+ utcday: n("getUTCDay", r, 0),
2375
+ utcyear: n("getUTCFullYear", r, 0),
2376
+ utcmonth: n("getUTCMonth", r, 0),
2377
+ utchours: n("getUTCHours", r, 0),
2378
+ utcminutes: n("getUTCMinutes", r, 0),
2379
+ utcseconds: n("getUTCSeconds", r, 0),
2380
+ utcmilliseconds: n("getUTCMilliseconds", r, 0),
2381
+ length: n("length", null, -1),
2382
+ parseFloat: "parseFloat",
2383
+ parseInt: "parseInt",
2384
+ upper: n("toUpperCase", i, 0),
2385
+ lower: n("toLowerCase", i, 0),
2386
+ substring: n("substring", i),
2387
+ split: n("split", i),
2388
+ trim: n("trim", i, 0),
2389
+ btoa: "btoa",
2390
+ atob: "atob",
2391
+ encodeURIComponent: "encodeURIComponent",
2392
+ regexp: a,
2393
+ test: n("test", a),
2394
+ if: function(t) {
2395
+ t.length < 3 && P("Missing arguments to if function."), t.length > 3 && P("Too many arguments to if function.");
2396
+ let n = t.map(e);
2397
+ return "(" + n[0] + "?" + n[1] + ":" + n[2] + ")";
2398
+ }
2445
2399
  };
2446
2400
  }
2447
- function Li(e, { add: t, remove: n, toggle: r }) {
2448
- let i = e.data;
2449
- for (let e of t ?? []) i.set(e[M], e);
2450
- for (let e of n ?? []) i.delete(e[M]);
2451
- for (let e of r ?? []) {
2452
- let t = e[M];
2453
- i.has(t) ? i.delete(t) : i.set(t, e);
2401
+ function ea(e) {
2402
+ let t = e && e.length - 1;
2403
+ return t && (e[0] === "\"" && e[t] === "\"" || e[0] === "'" && e[t] === "'") ? e.slice(1, -1) : e;
2404
+ }
2405
+ function ta(e) {
2406
+ e ||= {};
2407
+ let t = e.allowed ? cr(e.allowed) : {}, n = e.forbidden ? cr(e.forbidden) : {}, r = e.constants || Qi, i = (e.functions || $i)(d), a = e.globalvar, o = e.fieldvar, s = ar(a) ? a : (e) => `${a}["${e}"]`, c = {}, l = {}, u = 0;
2408
+ function d(e) {
2409
+ if (sr(e)) return e;
2410
+ let t = f[e.type];
2411
+ return t ?? P("Unsupported type: " + e.type), t(e);
2454
2412
  }
2455
- return {
2456
- type: "multi",
2457
- data: i
2413
+ let f = {
2414
+ Literal: (e) => e.raw,
2415
+ Identifier: (e) => {
2416
+ let i = e.name;
2417
+ return u > 0 ? i : or(n, i) ? P("Illegal identifier: " + i) : or(r, i) ? r[i] : or(t, i) ? i : (c[i] = 1, s(i));
2418
+ },
2419
+ MemberExpression: (e) => {
2420
+ let t = !e.computed, n = d(e.object);
2421
+ t && (u += 1);
2422
+ let r = d(e.property);
2423
+ return n === o && (l[ea(r)] = 1), t && --u, n + (t ? "." + r : "[" + r + "]");
2424
+ },
2425
+ CallExpression: (e) => {
2426
+ e.callee.type !== "Identifier" && P("Illegal callee type: " + e.callee.type);
2427
+ let t = e.callee.name, n = e.arguments, r = or(i, t) && i[t];
2428
+ return r || P("Unrecognized function: " + t), ar(r) ? r(n) : r + "(" + n.map(d).join(",") + ")";
2429
+ },
2430
+ ArrayExpression: (e) => "[" + e.elements.map(d).join(",") + "]",
2431
+ BinaryExpression: (e) => "(" + d(e.left) + " " + e.operator + " " + d(e.right) + ")",
2432
+ UnaryExpression: (e) => "(" + e.operator + d(e.argument) + ")",
2433
+ ConditionalExpression: (e) => "(" + d(e.test) + "?" + d(e.consequent) + ":" + d(e.alternate) + ")",
2434
+ LogicalExpression: (e) => "(" + d(e.left) + e.operator + d(e.right) + ")",
2435
+ ObjectExpression: (e) => {
2436
+ for (let t of e.properties) {
2437
+ let e = t.key.type === "Literal" ? String(t.key.value) : t.key.name;
2438
+ ir.has(e) && P("Illegal property: " + e);
2439
+ }
2440
+ return "{" + e.properties.map(d).join(",") + "}";
2441
+ },
2442
+ Property: (e) => {
2443
+ u += 1;
2444
+ let t = d(e.key);
2445
+ return --u, t + ":" + d(e.value);
2446
+ }
2458
2447
  };
2459
- }
2460
- function Ri(e, t) {
2461
- let n = !!(e.empty ?? !0), r = Gt(e.param), i = e.fields ?? {};
2462
- if (Ui(t)) return `${r}.uniqueId == null ? ${n} : ${r}.uniqueId === datum[${JSON.stringify(M)}]`;
2463
- if (Wi(t)) return `${r}.data.size == 0 ? ${n} : mapHasKey(${r}.data, datum[${JSON.stringify(M)}])`;
2464
- if (Hi(t)) {
2465
- let a = Object.keys(t.intervals), o = Object.keys(i).filter(Oa);
2466
- if (o.length === 0) throw Error("Filtering using interval selections requires at least one primary positional channel in the config! " + JSON.stringify(e));
2467
- if (o.some((e) => !a.includes(e))) throw Error(`Selection channels (${a.join(", ")}) do not match the fields: ${JSON.stringify(e)}!`);
2468
- let s = (e) => `datum[${JSON.stringify(e)}]`;
2469
- return a.map((e) => {
2470
- let t = Ia(e), a = i[e], o = i[t] ?? i[e], c = `${r}.intervals.${e}[0] <= ${s(o)}`, l = `${s(a)} <= ${r}.intervals.${e}[1]`;
2471
- return `(${r}.intervals.${e} ? (${c} && ${l}) : ${n})`;
2472
- }).join(" && ");
2448
+ function p(e) {
2449
+ let t = {
2450
+ code: d(e),
2451
+ globals: Object.keys(c),
2452
+ fields: Object.keys(l)
2453
+ };
2454
+ return c = {}, l = {}, t;
2473
2455
  }
2474
- throw Error(`Unrecognized selection type : ${JSON.stringify(t)}`);
2475
- }
2476
- function zi(e) {
2477
- if ("param" in e || "test" in e) return Di(e);
2478
- }
2479
- function Bi(e) {
2480
- return e?.selection ? Oi(e.selection) : [];
2481
- }
2482
- function Vi(e) {
2483
- let t = Object.values(e).flatMap((e) => e.branches.flatMap(({ predicate: e }) => e.selection ? [e.selection] : [])), n = /* @__PURE__ */ new Set();
2484
- return t.filter((e) => {
2485
- let t = JSON.stringify(e);
2486
- return !n.has(t) && (n.add(t), !0);
2487
- });
2488
- }
2489
- function Hi(e) {
2490
- return e.type === "interval";
2491
- }
2492
- function Ui(e) {
2493
- return e.type === "single";
2456
+ return p.functions = i, p.constants = r, p;
2494
2457
  }
2495
- function Wi(e) {
2496
- return e.type === "multi";
2458
+ //#endregion
2459
+ //#region ../core/src/utils/smoothstep.js
2460
+ function na(e, t, n) {
2461
+ return n = (n - e) / (t - e), n = Math.max(0, Math.min(1, n)), n * n * (3 - 2 * n);
2497
2462
  }
2498
- function Gi(e) {
2499
- let t = typeof e == "string" ? { type: e } : { ...e };
2500
- return t.on = t.on ? Ci(t.on) : Ki(t) ? { type: "click" } : void 0, t.clear = t.clear === !1 ? void 0 : t.clear === !0 || t.clear == null ? { type: "dblclick" } : Ci(t.clear), Ki(t) && t.on.type === "click" && t.toggle === void 0 && (t.toggle = !0), t;
2463
+ //#endregion
2464
+ //#region ../core/src/utils/clamp.js
2465
+ function ra(e, t = 0, n = 1) {
2466
+ return Math.max(t, Math.min(n, e));
2501
2467
  }
2502
- function Ki(e) {
2503
- return e && e.type == "point";
2468
+ //#endregion
2469
+ //#region ../core/src/utils/linearstep.js
2470
+ function ia(e, t, n) {
2471
+ return ra((n - e) / (t - e), 0, 1);
2504
2472
  }
2505
- function qi(e) {
2506
- return e && e.type == "interval";
2473
+ //#endregion
2474
+ //#region ../core/src/genome/indexGapMapping.js
2475
+ function aa(e, t, n = !1) {
2476
+ let r = 0, i = e.length;
2477
+ for (; r < i;) {
2478
+ let a = r + i >>> 1;
2479
+ e[a] < t || !n && e[a] === t ? r = a + 1 : i = a;
2480
+ }
2481
+ return r;
2507
2482
  }
2508
- function Ji(e) {
2509
- if (Ui(e)) return e.uniqueId != null;
2510
- if (Wi(e)) return e.data.size > 0;
2511
- if (Hi(e)) return Yi(e);
2512
- throw Error(`Unsupported selection type: ${e.type}`);
2483
+ var oa = /* @__PURE__ */ new WeakSet();
2484
+ function sa(e) {
2485
+ if (e && oa.has(e)) return e;
2486
+ let t = Array.from(new Set(e ?? [])).sort((e, t) => e - t);
2487
+ if (t.some((e) => !Number.isSafeInteger(e) || e < 0 || e >= 2 ** 44)) throw Error("Gap positions must be integers in [0, 2^44).");
2488
+ return oa.add(t), Object.freeze(t);
2513
2489
  }
2514
- function Yi(e) {
2515
- return Object.values(e.intervals).some((e) => e && e.length === 2);
2490
+ function ca(e = {}) {
2491
+ return e.gapWidth !== 0 && e.gapWidth !== null && e.gapPositions != null && !(Array.isArray(e.gapPositions) && e.gapPositions.length === 0);
2516
2492
  }
2517
- function Xi(e, t) {
2518
- return Object.entries(e.intervals).every(([e, n]) => (e == "x" || e == "y") && n && n[0] <= t[e] && n[1] >= t[e]);
2493
+ function la(e) {
2494
+ return e.gapWidth > 0 && e.gapPositions.length > 0;
2519
2495
  }
2520
- //#endregion
2521
- //#region ../core/src/encoder/accessor.js
2522
- function Zi(e, t, n) {
2523
- if (!e) throw Error("Cannot create an accessor without a channel.");
2524
- function r(n) {
2525
- let r = n;
2526
- return r.fields ??= [], r.constant = r.fields.length === 0, r.channelDef = t, r.channel = e, r.sourceKey = ea(t), r.scaleChannel = ((ga(t) && t.resolutionChannel) ?? (Ba(e) && e)) || void 0, r.scaleChannel !== void 0 && (r.domainKeyBase = ta({
2527
- scaleChannel: r.scaleChannel,
2528
- source: $i(t)
2529
- }).domainKeyBase), r.equals = (e) => e ? r === e || r.sourceKey !== void 0 && r.sourceKey === e.sourceKey : !1, r.asNumberAccessor = () => r, r;
2530
- }
2531
- function i(e) {
2532
- if (j(e)) {
2533
- let t = r(n.createExpression(e.expr));
2534
- if (t.fields.length > 0) throw Error("Expression in DatumDef/ValueDef cannot access data fields: " + e.expr);
2535
- return t;
2496
+ function ua(e) {
2497
+ let t = (t) => {
2498
+ let n = e[t]?.scale;
2499
+ return !!n && ca(n.props);
2500
+ };
2501
+ return Number(t("x")) | Number(t("y")) << 1;
2502
+ }
2503
+ function da({ domain: e, range: t, cuts: n, width: r, ranks: i, paddingInner: a, paddingOuter: o, align: s }) {
2504
+ let c = e[1] - e[0], l = t[1] - t[0], u = Math.sign(l), d = i?.[0] ?? aa(n, e[0]), f = i?.[1] ?? aa(n, e[1], !0), p = Math.abs(l) > r * (f - d), m = p ? r : 0, h = m * u, g = l - h * (f - d), _ = g / Math.max(i ? 2 ** -52 : 1, c - a + 2 * o), v = t[0] + (g - _ * (c - a)) * s;
2505
+ function y(t, r = 0, i = !1) {
2506
+ if (!p) return NaN;
2507
+ let o = Math.floor(t);
2508
+ return v + (o - e[0]) * _ + h * (aa(n, o, i) - d) + _ * (1 - a) * r;
2509
+ }
2510
+ function b(t, r = _, i = v) {
2511
+ let a = (t - i) * u, o = r * u;
2512
+ if (o === 0) return {
2513
+ value: e[0],
2514
+ rank: d
2515
+ };
2516
+ let s = 0, c = n.length;
2517
+ for (; s < c;) {
2518
+ let t = s + c >>> 1;
2519
+ (n[t] - e[0]) * o + m * (t + 1 - d) < a ? s = t + 1 : c = t;
2536
2520
  }
2537
- {
2538
- let t = e;
2539
- return r(() => t);
2521
+ if (s < n.length && m > 0) {
2522
+ let t = (n[s] - e[0]) * o + m * (s - d);
2523
+ if (a >= t) return {
2524
+ value: n[s],
2525
+ rank: s + (a - t) / m
2526
+ };
2540
2527
  }
2528
+ return {
2529
+ value: e[0] + (a - m * (s - d)) / o,
2530
+ rank: s
2531
+ };
2541
2532
  }
2542
- if (ma(t)) try {
2543
- return r(tn(t.field));
2544
- } catch (e) {
2545
- throw Error(`Invalid field definition: ${e.message}`, { cause: e });
2533
+ function ee(t, n, r) {
2534
+ let i = b(n), s = Math.abs(l) / Math.max(1, 1 - a + 2 * o), c = u * Math.min(s, Math.abs(_) / t);
2535
+ return te(c, n - c * (i.value - e[0]) - h * (i.rank - d) + r * l);
2546
2536
  }
2547
- if (xa(t)) return r(n.createExpression(t.expr));
2548
- if (ha(t)) return i(t.datum);
2549
- if (pa(t)) return i(t.value);
2550
- throw Error(`Invalid channel definition: "${e}": ${JSON.stringify(t)}! The channel definition must contain one of the following properties: "field", "datum", "value" or "expr".`);
2551
- }
2552
- function Qi(e) {
2553
- return e.scaleChannel !== void 0;
2554
- }
2555
- function $i(e) {
2556
- if (ma(e)) return {
2557
- kind: "field",
2558
- value: e.field
2559
- };
2560
- if (xa(e)) return {
2561
- kind: "expr",
2562
- value: e.expr
2563
- };
2564
- if (ha(e)) return {
2565
- kind: "datum",
2566
- value: e.datum
2567
- };
2568
- if (pa(e)) return {
2569
- kind: "value",
2570
- value: e.value
2537
+ function te(e, n) {
2538
+ let r = b(t[0] + e * 2 * o * s, e, n), i = b(t[1] + e * (a - 2 * o * (1 - s)), e, n);
2539
+ return {
2540
+ domain: [r.value, i.value],
2541
+ ranks: [r.rank, i.rank]
2542
+ };
2543
+ }
2544
+ function x(t, n) {
2545
+ let r = Math.log(t.step / _), i = _ * Math.exp(n * r), a = r === 0 ? n : Math.expm1(n * r) / Math.expm1(r), o = t.start + (e[0] - t.domainStart) * t.step + h * (d - t.firstRank);
2546
+ return te(i, v + a * (o - v));
2547
+ }
2548
+ return {
2549
+ fits: p,
2550
+ position: y,
2551
+ invertPoint: b,
2552
+ navigate: ee,
2553
+ interpolate: x,
2554
+ domainStart: e[0],
2555
+ step: _,
2556
+ start: v,
2557
+ firstRank: d,
2558
+ lastRank: f,
2559
+ gap: h
2571
2560
  };
2572
- throw Error("Cannot derive a domain key from channel definition: " + JSON.stringify(e));
2573
2561
  }
2574
- function ea(e) {
2575
- let t = $i(e);
2576
- return t.kind === "datum" || t.kind === "value" ? "constant|" + ia(t.value) : t.kind + "|" + ra(t);
2562
+ //#endregion
2563
+ //#region ../core/src/utils/expression.js
2564
+ function fa(e) {
2565
+ return u(e) || ArrayBuffer.isView(e) ? e : null;
2577
2566
  }
2578
- function ta({ scaleChannel: e, source: t, type: n }) {
2579
- if (!e) throw Error("Cannot build a domain key without a scale channel.");
2580
- let r = e + "|" + t.kind + "|" + ra(t);
2567
+ function pa(e) {
2568
+ return fa(e) || (w(e) ? e : null);
2569
+ }
2570
+ var ma = {
2571
+ clamp: ra,
2572
+ tickStep: Me,
2573
+ format(e, t) {
2574
+ return Qe(t)(e);
2575
+ },
2576
+ join(e, t) {
2577
+ return fa(e).join(t);
2578
+ },
2579
+ indexof(e, t, n) {
2580
+ return pa(e).indexOf(t, n);
2581
+ },
2582
+ inrange: pe,
2583
+ lastindexof(e, t, n) {
2584
+ return pa(e).lastIndexOf(t, n);
2585
+ },
2586
+ reverse(e) {
2587
+ return w(e) ? Array.from(e).reverse().join("") : fa(e).slice().reverse();
2588
+ },
2589
+ slice(e, t, n) {
2590
+ return pa(e).slice(t, n);
2591
+ },
2592
+ mapHasKey(e, t) {
2593
+ return e.has(t);
2594
+ },
2595
+ isArray: u,
2596
+ isBoolean: me,
2597
+ isDefined(e) {
2598
+ return e !== void 0;
2599
+ },
2600
+ isNumber: he,
2601
+ isObject: d,
2602
+ isRegExp: ge,
2603
+ isString: w,
2604
+ isValid(e) {
2605
+ return e != null && e === e;
2606
+ },
2607
+ lerp: _e,
2608
+ linearstep: ia,
2609
+ replace(e, t, n) {
2610
+ return String(e).replace(t, n);
2611
+ },
2612
+ sort(e) {
2613
+ return fa(e).slice().sort(le);
2614
+ },
2615
+ center(e) {
2616
+ let t = fa(e);
2617
+ return (t[0] + t[t.length - 1]) / 2;
2618
+ },
2619
+ span(e) {
2620
+ return ve(e);
2621
+ },
2622
+ smoothstep: na
2623
+ };
2624
+ function ha(e, t) {
2625
+ let n = !1, r = Ca(e, {}, {
2626
+ specLocation: t,
2627
+ resolveScaleResolution: () => (n = !0, {
2628
+ channel: "analysis",
2629
+ getDomainRef: () => void 0,
2630
+ getMappingRef: () => void 0,
2631
+ getConfigurationRef: () => void 0,
2632
+ getZoomLevelRef: () => void 0
2633
+ })
2634
+ });
2581
2635
  return {
2582
- domainKeyBase: r,
2583
- domainKey: n ? n + "|" + r : void 0
2636
+ usesScaleHelper: n,
2637
+ globals: r.globals
2584
2638
  };
2585
2639
  }
2586
- function na(e, t) {
2587
- let { domainKey: n, domainKeyBase: r } = ta({
2588
- scaleChannel: e.scaleChannel,
2589
- source: $i(e.channelDef),
2590
- type: t
2640
+ function ga(e, t) {
2641
+ let n = $i(e);
2642
+ for (let e in ma) n[e] = `this.${e}`;
2643
+ for (let r of [
2644
+ "scale",
2645
+ "invert",
2646
+ "domain",
2647
+ "range",
2648
+ "bandwidth",
2649
+ "bandstep",
2650
+ "linearize",
2651
+ "zoomLevel"
2652
+ ]) n[r] = (n) => _a(e, t, r, n);
2653
+ return n;
2654
+ }
2655
+ function _a(e, t, n, r) {
2656
+ if (n === "zoomLevel" && r.length === 0) {
2657
+ let e = [];
2658
+ for (let r of ["x", "y"]) {
2659
+ let i = t.resolveScaleResolution?.(r);
2660
+ if (i) {
2661
+ let a = t.getScaleHelper(n, r, i);
2662
+ e.push(`${t.globalvar}["${a.codeName}"]()`);
2663
+ }
2664
+ }
2665
+ return `Math.sqrt(${e.join("*") || "1"})`;
2666
+ }
2667
+ if (r.length === 0) throw Error(`Scale helper "${n}" requires a literal channel name.`);
2668
+ if ((n === "scale" || n === "invert" || n === "linearize") && r.length < 2) throw Error(`Scale helper "${n}" requires a channel name and a value.`);
2669
+ if (n === "zoomLevel" && r.length > 1) throw Error("Scale helper \"zoomLevel\" accepts zero arguments or one literal channel name.");
2670
+ if (n === "bandstep" && r.length > 2) throw Error("Scale helper \"bandstep\" accepts a channel and an optional pixel extent.");
2671
+ let i = va(r[0]);
2672
+ if (!i) throw Error(`Scale helper "${n}" requires a literal channel name.`);
2673
+ let a = t.resolveScaleResolution?.(i);
2674
+ if (!a) throw Error(`Unknown scale channel "${i}" in expression helper "${n}".`);
2675
+ let o = t.getScaleHelper(n, i, a), s = r.slice(1).map((t) => e(t)).join(",");
2676
+ return `${t.globalvar}["${o.codeName}"](${s})`;
2677
+ }
2678
+ function va(e) {
2679
+ return e?.type === "Literal" && typeof e.value == "string" ? e.value : void 0;
2680
+ }
2681
+ function ya(e, t) {
2682
+ let n = (n) => xa(t, e, n);
2683
+ if (e === "domain") return () => n(() => t.getDomain());
2684
+ if (e === "range") return () => n(() => t.getScale().range());
2685
+ if (e === "bandwidth") return () => n(() => {
2686
+ let e = t.getScale();
2687
+ if (typeof e.bandwidth != "function") throw Error(`Scale channel "${t.channel}" does not support bandwidth().`);
2688
+ return e.bandwidth();
2591
2689
  });
2592
- if (!n) throw Error("Cannot finalize a domain key without a resolved type.");
2593
- return e.domainKeyBase = r, e.domainKey = n, n;
2690
+ if (e === "bandstep") return (e) => n(() => {
2691
+ let n = t.getScale();
2692
+ if (typeof n.step != "function") throw Error(`Scale channel "${t.channel}" does not support bandstep().`);
2693
+ if (e !== void 0 && (!Number.isFinite(e) || e < 0)) throw Error("bandstep() extent must be finite and nonnegative.");
2694
+ if (ca(n.props) && e === void 0) throw Error("bandstep() requires a pixel extent for a scale with grouping gaps.");
2695
+ if (e === 0) return 0;
2696
+ let r = n.gapMapping?.(e)?.step ?? n.step(), i = n.range();
2697
+ return Math.sign(i[i.length - 1] - i[0]) * Math.abs(r);
2698
+ });
2699
+ if (e === "scale") return (e) => n(() => t.getScale()(e));
2700
+ if (e === "invert") return (e) => n(() => t.getScale().invert(e));
2701
+ if (e === "linearize") return (e) => n(() => e == null ? null : typeof t.fromComplex == "function" ? t.fromComplex(e) : e);
2702
+ if (e === "zoomLevel") return () => n(() => t.getZoomLevel());
2703
+ throw Error("Unknown scale helper: " + e);
2594
2704
  }
2595
- function ra(e) {
2596
- switch (e.kind) {
2597
- case "field":
2598
- case "expr": return e.value;
2599
- case "datum":
2600
- case "value": return ia(e.value);
2601
- default: throw Error("Unknown domain key source.");
2705
+ var ba = /* @__PURE__ */ new WeakSet();
2706
+ function xa(e, t, n) {
2707
+ if (ba.has(e)) throw Error(`Scale helper cycle detected while evaluating ${t}("${e.channel}").`);
2708
+ ba.add(e);
2709
+ try {
2710
+ return n();
2711
+ } finally {
2712
+ ba.delete(e);
2713
+ }
2714
+ }
2715
+ function Sa(e, t) {
2716
+ return e === "domain" ? t.getDomainRef() : e === "linearize" ? t.getConfigurationRef() : e === "zoomLevel" ? t.getZoomLevelRef() : t.getMappingRef();
2717
+ }
2718
+ function Ca(e, t = {}, n = {}) {
2719
+ try {
2720
+ let r = /* @__PURE__ */ new Map(), i = /* @__PURE__ */ new Map(), a = /* @__PURE__ */ new Set(), o = 1, s = {
2721
+ ...n,
2722
+ globalvar: "globalObject",
2723
+ globalObject: t,
2724
+ getScaleHelper(e, n, s) {
2725
+ let c = e + ":" + n, l = i.get(c);
2726
+ if (l) return l;
2727
+ let u = r.get(c);
2728
+ u || (u = Sa(e, s), r.set(c, u));
2729
+ let d = "__scale_helper_" + o++, f = {
2730
+ codeName: d,
2731
+ dependency: u
2732
+ };
2733
+ return i.set(c, f), e === "zoomLevel" && a.add(s), t[d] = ya(e, s), f;
2734
+ }
2735
+ }, c = ta({
2736
+ forbidden: [],
2737
+ allowed: ["datum", "undefined"],
2738
+ globalvar: "globalObject",
2739
+ fieldvar: "datum",
2740
+ functions: (e) => ga(e, s)
2741
+ }), l = Zi(e), u = /* @__PURE__ */ new Set();
2742
+ l.visit((e) => {
2743
+ e.type === "MemberExpression" && e.object.type === "Identifier" && e.object.name === "datum" && (!e.computed && e.property.type === "Identifier" ? u.add(e.property.name) : e.computed && e.property.type === "Literal" && (typeof e.property.value == "string" || typeof e.property.value == "number") && u.add(String(e.property.value)));
2744
+ });
2745
+ let d = c(l), f = mt(`try {
2746
+ return (${d.code});
2747
+ } catch (e) {
2748
+ throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
2749
+ }`, u, n.specLocation, ma), p = f(t);
2750
+ return p.createEvaluator = f, p.fields = d.fields, p.globals = d.globals, p.code = d.code, p.scaleDependencies = Array.from(new Set(r.values())), p.zoomLevelResolutions = Array.from(a), p;
2751
+ } catch (t) {
2752
+ throw ft(Error(`Invalid expression: ${e}, ${t.message}`, { cause: t }), n.specLocation);
2602
2753
  }
2603
2754
  }
2604
- function ia(e) {
2605
- return j(e) ? "expr:" + e.expr : e === void 0 ? "undefined" : JSON.stringify(e);
2755
+ var wa = ta({
2756
+ forbidden: [],
2757
+ allowed: ["event"],
2758
+ globalvar: "globalObject"
2759
+ });
2760
+ function Ta(e, t) {
2761
+ try {
2762
+ let t = wa(Zi(e));
2763
+ return Function("event", "globalObject", `"use strict";
2764
+ try {
2765
+ return !!(${t.code});
2766
+ } catch (e) {
2767
+ throw new Error("Error evaluating expression: " + ${JSON.stringify(e)} + ", " + e.message, e);
2768
+ }`);
2769
+ } catch (n) {
2770
+ throw ft(Error(`Invalid expression: ${e}, ${n.message}`, { cause: n }), t);
2771
+ }
2606
2772
  }
2607
2773
  //#endregion
2608
- //#region ../core/src/encoder/encoder.js
2609
- function aa(e, t, n, r = "intersects", i) {
2610
- let a, o, s = Oi(e), c = () => (a ??= ji(e, t, n, r, i), a);
2611
- return s.every((e) => n.findValue(e)) && c(), Object.defineProperty((e) => !s.some((e) => !n.findValue(e)) && (o ??= Mi(c(), (e) => n.findValue(e)), o(e)), "selection", { get: c });
2774
+ //#region ../core/src/utils/interactionConfig.js
2775
+ function Ea(e) {
2776
+ if (typeof e == "string") {
2777
+ let t = e.match(/^([a-zA-Z]+)(?:\[(.+)\])?$/);
2778
+ if (!t) throw Error(`Invalid event type string: ${e}`);
2779
+ let [, n, r] = t, i = { type: n };
2780
+ return r && (i.filter = r), i;
2781
+ }
2782
+ return e;
2612
2783
  }
2613
- function oa(e, t, n, r, i = "intersects", a) {
2614
- let o = Sa(t) || Ca(t) ? Array.isArray(t.condition) ? t.condition : [t.condition] : [], s = [...o, t], c = s.map((t, c) => {
2615
- let l = o[c], u = Zi(e, t, r), d = l ? zi(l) : void 0;
2616
- return {
2617
- accessor: u,
2618
- predicate: d ? aa(d, n, r, i, a) : Xt(c === s.length - 1)
2619
- };
2620
- });
2621
- if (c.filter((e) => !e.accessor.constant).length > 1) throw Error("Only one accessor can be non-constant. Channel: " + e);
2622
- return c;
2784
+ function Da(e, t) {
2785
+ return e?.filter ? Ta(e.filter, t) : () => !0;
2623
2786
  }
2624
- function sa(e, t) {
2625
- let n = {}, r = (t) => e.getScaleResolution(t)?.getScale(), i = (t, n) => {
2626
- let r = e.getScaleResolution(t);
2627
- e.paramRuntime.operation("encoder scale", [r.getMappingRef()], () => r.getScale(), n);
2787
+ function Oa(e, t, n) {
2788
+ return e.getSpecLocation(t, [n, ...typeof t?.[n] == "object" ? ["filter"] : []]);
2789
+ }
2790
+ function ka(e, t, n) {
2791
+ if (!t.includes(e.type)) throw Error(n);
2792
+ return e;
2793
+ }
2794
+ //#endregion
2795
+ //#region ../core/src/selection/selection.js
2796
+ function Aa(e) {
2797
+ return {
2798
+ type: "single",
2799
+ datum: e,
2800
+ uniqueId: e?.[E]
2628
2801
  };
2629
- for (let [a, o] of Object.entries(t)) {
2630
- if (!o) continue;
2631
- let s = a;
2632
- ca(s) || (n[s] = da(oa(s, o, t, e.paramRuntime, e.mark.defaultHitTestMode, (t) => e.getScaleResolution(t)?.type), r, i));
2633
- }
2634
- return n;
2635
2802
  }
2636
- function ca(e) {
2637
- return e === "key" || e === "search" || e === "tooltip" || e === "order";
2803
+ function ja(e) {
2804
+ return e ??= [], {
2805
+ type: "multi",
2806
+ data: new Map(e.map((e) => [e[E], e]))
2807
+ };
2638
2808
  }
2639
- function la(e) {
2640
- return e.branches.map((e) => e.accessor);
2809
+ function Ma(e, t) {
2810
+ if (!t || t.length === 0) return;
2811
+ let n = t.map((e) => T(e)), r = (e) => n.map((t) => t(e));
2812
+ if (Va(e)) return e.datum ? [r(e.datum)] : [];
2813
+ if (Ha(e)) return [...e.data.values()].map(r);
2814
+ throw Error(`Expected a point selection, got: ${JSON.stringify(e)}`);
2815
+ }
2816
+ function Na(e, t, n, r) {
2817
+ if (!t || t.length === 0) return;
2818
+ if (e === "single" && n.length > 1) throw Error("Single point selections expect at most one key tuple.");
2819
+ let i = [], a = [];
2820
+ for (let e of n) {
2821
+ let n = r(t, e);
2822
+ n ? i.push(n) : a.push(e);
2823
+ }
2824
+ return {
2825
+ selection: e === "single" ? Aa(i[0] ?? null) : ja(i),
2826
+ unresolved: a
2827
+ };
2641
2828
  }
2642
- function ua(e) {
2643
- return e.branches.find((e) => !e.accessor.constant)?.accessor;
2829
+ function Pa(e) {
2830
+ return {
2831
+ type: "interval",
2832
+ intervals: Object.fromEntries(e.map((e) => [e, null]))
2833
+ };
2644
2834
  }
2645
- function da(e, t, n) {
2646
- if (e.length === 1) {
2647
- let r = fa(e[0].accessor, t, n);
2648
- return Object.assign(r, { branches: e });
2835
+ function Fa(e, { add: t, remove: n, toggle: r }) {
2836
+ let i = e.data;
2837
+ for (let e of t ?? []) i.set(e[E], e);
2838
+ for (let e of n ?? []) i.delete(e[E]);
2839
+ for (let e of r ?? []) {
2840
+ let t = e[E];
2841
+ i.has(t) ? i.delete(t) : i.set(t, e);
2649
2842
  }
2650
- let r = e.map((e) => e.predicate), i = e.map((e) => fa(e.accessor, t, n)), a = Object.assign((e) => {
2651
- for (let t = 0; t < i.length; t++) if (r[t](e)) return i[t](e);
2652
- }, {
2653
- constant: !1,
2654
- branches: e,
2655
- channelDef: e.at(-1).accessor.channelDef
2656
- });
2657
- return Object.defineProperty(a, "scale", {
2658
- enumerable: !0,
2659
- get: () => i.find((e) => e.scale)?.scale
2660
- });
2843
+ return {
2844
+ type: "multi",
2845
+ data: i
2846
+ };
2661
2847
  }
2662
- function fa(e, t, n) {
2663
- let { channel: r, scaleChannel: i, channelDef: a } = e, o = e.scaleChannel ? t(i) : void 0;
2664
- if (i && !o) throw Error(`Missing scale! "${r}": ${JSON.stringify(a)}`);
2665
- let s = Object.assign(o ? (t) => o(e(t)) : (t) => e(t), {
2666
- scale: o,
2667
- constant: e.constant,
2668
- branches: [{
2669
- accessor: e,
2670
- predicate: Xt(!0)
2671
- }],
2672
- channelDef: a
2673
- });
2674
- return o && n?.(i, (e) => {
2675
- o = e, s.scale = e;
2676
- }), s;
2848
+ function Ia(e, t) {
2849
+ let n = !!(e.empty ?? !0), r = eo(e.param), i = e.fields ?? {};
2850
+ if (Va(t)) return `${r}.uniqueId == null ? ${n} : ${r}.uniqueId === datum[${JSON.stringify(E)}]`;
2851
+ if (Ha(t)) return `${r}.data.size == 0 ? ${n} : mapHasKey(${r}.data, datum[${JSON.stringify(E)}])`;
2852
+ if (Ba(t)) {
2853
+ let a = Object.keys(t.intervals), o = Object.keys(i).filter(Rn);
2854
+ if (o.length === 0) throw Error("Filtering using interval selections requires at least one primary positional channel in the config! " + JSON.stringify(e));
2855
+ if (o.some((e) => !a.includes(e))) throw Error(`Selection channels (${a.join(", ")}) do not match the fields: ${JSON.stringify(e)}!`);
2856
+ let s = (e) => `datum[${JSON.stringify(e)}]`;
2857
+ return a.map((e) => {
2858
+ let t = Kn(e), a = i[e], o = i[t] ?? i[e], c = `${r}.intervals.${e}[0] <= ${s(o)}`, l = `${s(a)} <= ${r}.intervals.${e}[1]`, u = `${r}.intervals.${e}[0] < ${r}.intervals.${e}[1]`;
2859
+ return `(${r}.intervals.${e} ? (${u} && ${c} && ${l}) : ${n})`;
2860
+ }).join(" && ");
2861
+ }
2862
+ throw Error(`Unrecognized selection type : ${JSON.stringify(t)}`);
2677
2863
  }
2678
- function pa(e) {
2679
- return e && "value" in e;
2864
+ function La(e) {
2865
+ if ("param" in e || "test" in e) return bt(e);
2680
2866
  }
2681
- function ma(e) {
2682
- return e && "field" in e;
2867
+ function Ra(e) {
2868
+ return e?.selection ? xt(e.selection) : [];
2683
2869
  }
2684
- function ha(e) {
2685
- return e && "datum" in e;
2870
+ function za(e) {
2871
+ let t = Object.values(e).flatMap((e) => e.branches.flatMap(({ predicate: e }) => e.selection ? [e.selection] : [])), n = /* @__PURE__ */ new Set();
2872
+ return t.filter((e) => {
2873
+ let t = JSON.stringify(e);
2874
+ return !n.has(t) && (n.add(t), !0);
2875
+ });
2686
2876
  }
2687
- function ga(e) {
2688
- return ma(e) || ha(e) || xa(e) || ba(e);
2877
+ function Ba(e) {
2878
+ return e.type === "interval";
2689
2879
  }
2690
- function _a(e) {
2691
- if (Ca(e)) {
2692
- let t = e.condition;
2693
- return (Array.isArray(t) ? t : [t]).find((e) => ga(e));
2694
- }
2695
- if (ga(e)) return e;
2880
+ function Va(e) {
2881
+ return e.type === "single";
2696
2882
  }
2697
- function va(e) {
2698
- let t = e && _a(e);
2699
- return t != null && t.type != "quantitative" && t.scale !== null;
2883
+ function Ha(e) {
2884
+ return e.type === "multi";
2700
2885
  }
2701
- function ya(e, t) {
2702
- let n = e.mark.encoding[t];
2703
- if (Array.isArray(n)) throw Error("Not a channel def with scale!");
2704
- {
2705
- let e = _a(n);
2706
- if (e) return e;
2707
- }
2708
- throw Error("Not a channel def with scale!");
2886
+ function Ua(e) {
2887
+ let t = typeof e == "string" ? { type: e } : { ...e };
2888
+ return t.on = t.on ? Ea(t.on) : Wa(t) ? { type: "click" } : void 0, t.clear = t.clear === !1 ? void 0 : t.clear === !0 || t.clear == null ? { type: "dblclick" } : Ea(t.clear), Wa(t) && t.on.type === "click" && t.toggle === void 0 && (t.toggle = !0), t;
2709
2889
  }
2710
- function ba(e) {
2711
- return e && "chrom" in e;
2890
+ function Wa(e) {
2891
+ return e && e.type == "point";
2712
2892
  }
2713
- function xa(e) {
2714
- return e && "expr" in e;
2893
+ function Ga(e) {
2894
+ return e && e.type == "interval";
2715
2895
  }
2716
- function Sa(e) {
2717
- return (ma(e) || ha(e)) && "condition" in e;
2896
+ function Ka(e) {
2897
+ if (Va(e)) return e.uniqueId != null;
2898
+ if (Ha(e)) return e.data.size > 0;
2899
+ if (Ba(e)) return qa(e);
2900
+ throw Error(`Unsupported selection type: ${e.type}`);
2718
2901
  }
2719
- function Ca(e) {
2720
- return pa(e) && "condition" in e;
2902
+ function qa(e) {
2903
+ return Object.values(e.intervals).some((e) => e && e.length === 2);
2721
2904
  }
2722
- var wa = ["x", "y"], Ta = ["x2", "y2"], Ea = ["xOffset", "yOffset"], Da = [...wa, ...Ta];
2723
- function Oa(e) {
2724
- return wa.includes(e);
2905
+ function Ja(e, t) {
2906
+ return Object.entries(e.intervals).every(([e, n]) => (e == "x" || e == "y") && n && n[0] < n[1] && n[0] <= t[e] && n[1] >= t[e]);
2725
2907
  }
2726
- function ka(e) {
2727
- return Da.includes(e);
2908
+ //#endregion
2909
+ //#region ../core/src/ruler/rulerValue.js
2910
+ function Ya(e = ["x"], t = {}) {
2911
+ let n = {};
2912
+ for (let r of e) n[r] = t[r] ?? null;
2913
+ return {
2914
+ type: "ruler",
2915
+ values: n
2916
+ };
2728
2917
  }
2729
- function Aa(e) {
2730
- return Ea.includes(e);
2918
+ //#endregion
2919
+ //#region ../core/src/paramRuntime/paramUtils.js
2920
+ function $(e) {
2921
+ return typeof e == "object" && !!e && "expr" in e && w(e.expr);
2731
2922
  }
2732
- function ja(e) {
2733
- return La(e) == "x" ? "xOffset" : "yOffset";
2923
+ function Xa(e) {
2924
+ if ($(e)) throw Error("ExprRef " + JSON.stringify(e) + " not allowed here. Expected a scalar value.");
2925
+ return e;
2734
2926
  }
2735
- function Ma(e, t, n) {
2736
- return t ?? (n ? 0 : e);
2927
+ function Za(e) {
2928
+ return ("expr" in e || "bind" in e) && !("select" in e) && !("ruler" in e);
2737
2929
  }
2738
- var Na = {
2739
- x: "x2",
2740
- y: "y2"
2741
- }, Pa = Object.fromEntries(Object.entries(Na).map((e) => [e[1], e[0]]));
2742
- function Fa(e) {
2743
- return e in Pa;
2930
+ function Qa(e) {
2931
+ return !("expr" in e || "bind" in e) && "select" in e;
2744
2932
  }
2745
- function Ia(e) {
2746
- let t = Na[e];
2747
- if (t) return t;
2748
- throw Error(`${e} has no secondary channel!`);
2933
+ function $a(e) {
2934
+ return !("expr" in e || "bind" in e || "select" in e) && "ruler" in e;
2749
2935
  }
2750
- function La(e) {
2751
- return Pa[e] ?? e;
2936
+ function eo(e) {
2937
+ if (!/^[a-zA-Z_$][0-9a-zA-Z_$]*$/.test(e)) throw Error("Invalid parameter name: " + e + ". Must be a valid JavaScript identifier.");
2938
+ return e;
2752
2939
  }
2753
- function Ra(e) {
2754
- return [
2755
- "color",
2756
- "fill",
2757
- "stroke"
2758
- ].includes(La(e));
2940
+ function to(e, t, n) {
2941
+ if ("select" in e) {
2942
+ let t = Ua(e.select);
2943
+ if (Wa(t)) return t.toggle ? ja() : Aa(null);
2944
+ if (Ga(t)) {
2945
+ if (!t.encodings) throw Error("Interval selection \"" + e.name + "\" must have encodings defined!");
2946
+ return Pa(t.encodings);
2947
+ }
2948
+ throw Error("Unknown selection config for parameter \"" + e.name + "\".");
2949
+ }
2950
+ if ("ruler" in e) return Ya(e.ruler.encodings, e.value);
2951
+ if ("expr" in e) {
2952
+ let r = n ?? t?.createExpression(e);
2953
+ if (!r) throw Error("Cannot evaluate expression for parameter \"" + e.name + "\".");
2954
+ return r(null);
2955
+ }
2956
+ return "value" in e ? e.value : null;
2759
2957
  }
2760
- function za(e) {
2761
- return ["shape", "direction"].includes(e);
2958
+ function no(e, t, n, r, i = []) {
2959
+ let a = { ...t }, o = [];
2960
+ for (let [r, i] of Object.entries(t)) if ($(i)) {
2961
+ let t = e.createExpression(i), s = o.push({
2962
+ key: r,
2963
+ fn: t
2964
+ }) - 1;
2965
+ Object.defineProperty(a, r, {
2966
+ enumerable: !0,
2967
+ get: n ? () => c.get()[s] : () => t(null)
2968
+ });
2969
+ } else a[r] = i;
2970
+ if (!n) return a;
2971
+ for (let { key: t, expr: n } of i) o.push({
2972
+ key: t,
2973
+ fn: e.createExpression(n)
2974
+ });
2975
+ if (!o.length) return a;
2976
+ let s = Array.from(new Set(o.flatMap(({ fn: e }) => e.dependencies))), c = e.computed("expression properties", s, () => o.map(({ fn: e }) => e(null)), { equals: ro }), l = c.get(), u = e.effect([c], () => {
2977
+ let e = c.get(), t = new Set(o.filter((t, n) => l[n] !== e[n]).map(({ key: e }) => e));
2978
+ l = e, n(t);
2979
+ });
2980
+ return r?.(c.dispose), r?.(u), a;
2762
2981
  }
2763
- function Ba(e) {
2764
- return [
2765
- "x",
2766
- "y",
2767
- "x2",
2768
- "y2",
2769
- "xOffset",
2770
- "yOffset",
2771
- "color",
2772
- "fill",
2773
- "stroke",
2774
- "opacity",
2775
- "fillOpacity",
2776
- "strokeOpacity",
2777
- "strokeWidth",
2778
- "size",
2779
- "shape",
2780
- "direction",
2781
- "angle",
2782
- "dx",
2783
- "dy",
2784
- "sample"
2785
- ].includes(e);
2982
+ function ro(e, t) {
2983
+ return e.every((e, n) => e === t[n]);
2786
2984
  }
2787
- function Va(e) {
2788
- switch (e) {
2789
- case "shape": return [
2790
- "circle",
2791
- "square",
2792
- "cross",
2793
- "diamond",
2794
- "triangle-up",
2795
- "triangle-right",
2796
- "triangle-down",
2797
- "triangle-left",
2798
- "tick-up",
2799
- "tick-right",
2800
- "tick-down",
2801
- "tick-left",
2802
- "x",
2803
- "+"
2804
- ];
2805
- case "direction": return [
2806
- "forward",
2807
- "reverse",
2808
- "both"
2809
- ];
2985
+ function io(e, t, n, r) {
2986
+ if (!$(t)) return t;
2987
+ let i = () => {
2988
+ throw Error(n);
2989
+ }, a = e.watchExpression ? e.watchExpression(t, i, {
2990
+ scopeOwned: !1,
2991
+ registerDisposer: r
2992
+ }) : e.createExpression(t);
2993
+ if (!e.watchExpression) {
2994
+ let e = a.subscribe(i);
2995
+ r?.(e);
2810
2996
  }
2997
+ return a();
2811
2998
  }
2812
- function Ha(e) {
2813
- if (!za(e)) throw Error("Not a discrete channel: " + e);
2814
- let t = new Map(Va(e).map((e, t) => [e, t]));
2815
- return (n) => {
2816
- let r = t.get(n);
2817
- if (r !== void 0) return r;
2818
- throw Error(`Invalid value for "${e}" channel: ${n}`);
2819
- };
2999
+ function ao(e) {
3000
+ return Object.assign(() => e, {
3001
+ dependencies: [],
3002
+ subscribe: () => () => void 0,
3003
+ invalidate: () => void 0,
3004
+ identifier: () => "constant",
3005
+ fields: [],
3006
+ globals: [],
3007
+ code: JSON.stringify(e)
3008
+ });
2820
3009
  }
2821
3010
  //#endregion
2822
- //#region ../core/src/utils/arrayUtils.js
2823
- function Ua(e, t) {
2824
- return e.length == t.length && e.every((n, r) => e[r] === t[r]);
2825
- }
2826
- function Wa(e) {
2827
- return Array.isArray(e) ? e : e === void 0 ? [] : [e];
2828
- }
2829
- function Ga(e) {
2830
- return e[e.length - 1];
3011
+ //#region ../core/src/utils/specOrigin.js
3012
+ var oo = /* @__PURE__ */ new WeakMap();
3013
+ function so(e, t, n) {
3014
+ let r = oo.get(e);
3015
+ return oo.set(t, {
3016
+ source: r?.source ?? e,
3017
+ path: n ?? r?.path
3018
+ }), t;
3019
+ }
3020
+ function co(e) {
3021
+ let t = structuredClone(e);
3022
+ function n(e, t) {
3023
+ if (e && typeof e == "object" && !oo.has(t)) {
3024
+ so(e, t);
3025
+ for (let r of Object.keys(e)) n(e[r], t[r]);
3026
+ }
3027
+ }
3028
+ return n(e, t), t;
2831
3029
  }
2832
- function Ka(e, t, n) {
2833
- if (t < 0 || t >= e.length) throw Error("Source index out of range.");
2834
- if (n < 0 || n > e.length - 1) throw Error("Destination index out of range.");
2835
- let [r] = e.splice(t, 1);
2836
- e.splice(n, 0, r);
3030
+ function lo(e, t, n) {
3031
+ if (!e || !t) return;
3032
+ let r = oo.get(e), i = t(r?.source ?? e);
3033
+ return i === void 0 ? void 0 : {
3034
+ origin: i,
3035
+ path: r?.path ?? n
3036
+ };
2837
3037
  }
2838
3038
  //#endregion
2839
3039
  //#region ../core/src/view/renderingContext/clipOptions.js
2840
- function qa(e) {
3040
+ function uo(e) {
2841
3041
  if (e.clip) return e.clip;
2842
3042
  if (e.clipRect) return {
2843
3043
  rect: e.clipRect,
@@ -2845,59 +3045,53 @@ function qa(e) {
2845
3045
  clipY: !0
2846
3046
  };
2847
3047
  }
2848
- function Ja(e, t) {
3048
+ function fo(e, t) {
2849
3049
  return e === t ? !0 : !e || !t ? !1 : e.clipX === t.clipX && e.clipY === t.clipY && e.rect.equals(t.rect);
2850
3050
  }
2851
- function Ya(e, t, n) {
3051
+ function po(e, t, n) {
2852
3052
  return t || n ? {
2853
3053
  rect: e,
2854
3054
  clipX: t,
2855
3055
  clipY: n
2856
3056
  } : void 0;
2857
3057
  }
2858
- function Xa(e, t) {
3058
+ function mo(e, t) {
2859
3059
  return t ? t.clipX && t.clipY ? e.intersect(t.rect) : t.clipX ? e.intersectX(t.rect) : t.clipY ? e.intersectY(t.rect) : e : e;
2860
3060
  }
2861
- function Za(e, t) {
3061
+ function ho(e, t) {
2862
3062
  if (!e) return t;
2863
3063
  if (!t) return e;
2864
3064
  let n = e.clipX || t.clipX, r = e.clipY || t.clipY, i = e.clipX && t.clipX ? e.rect.intersectX(t.rect) : t.clipX ? t.rect : e.rect, a = e.clipY && t.clipY ? e.rect.intersectY(t.rect) : t.clipY ? t.rect : e.rect;
2865
- return Ya(e.rect.modify({
3065
+ return po(e.rect.modify({
2866
3066
  x: () => i.x,
2867
3067
  y: () => a.y,
2868
3068
  width: () => i.width,
2869
3069
  height: () => a.height
2870
3070
  }), n, r);
2871
3071
  }
2872
- function Qa(e, t) {
2873
- if (e === !0) return Ya(t, !0, !0);
2874
- if (e === "x") return Ya(t, !0, !1);
2875
- if (e === "y") return Ya(t, !1, !0);
3072
+ function go(e, t) {
3073
+ if (e === !0) return po(t, !0, !0);
3074
+ if (e === "x") return po(t, !0, !1);
3075
+ if (e === "y") return po(t, !1, !0);
2876
3076
  }
2877
- function $a(e) {
2878
- let t = e.mark;
2879
- if (t) {
2880
- let e = t.properties.clip;
2881
- return {
2882
- clipX: e === !0 || e === "x",
2883
- clipY: e === !0 || e === "y"
2884
- };
2885
- }
2886
- let n = !1, r = !0, i = !0;
3077
+ function _o(e) {
3078
+ let t = !1, n = !0, r = !0, i = !1;
2887
3079
  return e.visit((e) => {
2888
- let t = e.mark;
2889
- if (t) {
2890
- n = !0;
2891
- let e = t.properties.clip;
2892
- r &&= e === !0 || e === "x", i &&= e === !0 || e === "y";
3080
+ let a = e.mark;
3081
+ if (a) {
3082
+ t = !0;
3083
+ let e = a.properties.clip;
3084
+ n &&= e === !0 || e === "x", r &&= e === !0 || e === "y", i ||= e === !0 || e === "x" || e === "y";
2893
3085
  }
2894
3086
  }), {
2895
- clipX: n && r,
2896
- clipY: n && i
3087
+ clipX: t && n,
3088
+ clipY: t && r,
3089
+ all: n && r,
3090
+ any: i
2897
3091
  };
2898
3092
  }
2899
- function eo(e, t, n) {
2900
- if (t !== "never") return Za(e, Qa(t, n));
3093
+ function vo(e, t, n) {
3094
+ if (t !== "never") return ho(e, go(t, n));
2901
3095
  }
2902
3096
  //#endregion
2903
- export { Ui as $, Ce as $t, va as A, Bt as At, Qi as B, D as Bt, Ba as C, Wt as Ct, za as D, Yt as Dt, ha as E, Xt as Et, pa as F, jt as Ft, Pi as G, nt as Gt, Vi as H, Qe as Ht, wa as I, Mt as It, Hi as J, Le as Jt, Bi as K, tt as Kt, Ma as L, yt as Lt, ka as M, Lt as Mt, Oa as N, zt as Nt, xa as O, Gt as Ot, Fa as P, Rt as Pt, Ji as Q, Me as Qt, Zi as R, ht as Rt, ga as S, ae as Sn, j as St, Ra as T, Ht as Tt, Ii as U, w as Ut, Gi as V, Re as Vt, Fi as W, lt as Wt, Wi as X, Ne as Xt, qi as Y, Fe as Yt, Ki as Z, Pe as Zt, la as _, s as _n, en as _t, $a as a, u as an, Ei as at, La as b, b as bn, qt as bt, Wa as c, _e as cn, Ai as ct, Ua as d, ye as dn, Ti as dt, xe as en, Ri as et, sa as f, te as fn, fi as ft, Ha as g, be as gn, tn as gt, ya as h, f as hn, si as ht, Ya as i, o as in, ki as it, Aa as j, Ft as jt, ma as k, Vt as kt, Ka as l, d as ln, Ci as lt, _a as m, re as mn, ci as mt, Ja as n, se as nn, Xi as nt, qa as o, ge as on, Oi as ot, aa as p, ne as pn, bi as pt, Yi as q, Ie as qt, Za as r, ue as rn, Li as rt, eo as s, ce as sn, Di as st, Xa as t, t as tn, zi as tt, Ga as u, S as un, wi as ut, ua as v, Se as vn, M as vt, ba as w, Ut as wt, Ia as x, x as xn, Kt as xt, ja as y, y as yn, Zt as yt, na as z, C as zt };
3097
+ export { ia as $, ct as $t, Ba as A, f as An, zt as At, Fa as B, Ot as Bt, za as C, he as Cn, Rn as Ct, Ma as D, b as Dn, Hn as Dt, Aa as E, _e as En, Pn as Et, Va as F, ne as Fn, nn as Ft, ha as G, Ct as Gt, Da as H, yt as Ht, Ia as I, C as In, Ft as It, aa as J, ht as Jt, Ca as K, vt as Kt, La as L, re as Ln, It as Lt, Ha as M, s as Mn, Rt as Mt, Wa as N, be as Nn, dn as Nt, Ra as O, ee as On, Lt as Ot, Ka as P, S as Pn, rn as Pt, sa as Q, ot as Qt, Na as R, Dt as Rt, Ua as S, oe as Sn, zn as St, ja as T, w as Tn, Cn as Tt, Oa as U, xt as Ut, Ea as V, St as Vt, ka as W, bt as Wt, la as X, ft as Xt, ua as Y, T as Yt, ca as Z, dt as Zt, ao as _, ae as _n, Yn as _t, _o as a, tt as an, kn as at, Xa as b, u as bn, On as bt, co as c, Be as cn, bn as ct, no as d, je as dn, Kn as dt, ut as en, ra as et, to as f, Me as fn, En as ft, Za as g, t as gn, Tn as gt, Qa as h, ye as hn, Jn as ht, po as i, rt as in, Dn as it, Ga as j, ve as jn, $t as jt, qa as k, te as kn, k as kt, lo as l, Ie as ln, Vn as lt, $a as m, xe as mn, An as mt, fo as n, nt as nn, _n as nt, uo as o, Qe as on, Qn as ot, $ as p, Ae as pn, Xn as pt, da as q, E as qt, ho as r, it as rn, hn as rt, vo as s, $e as sn, yn as st, mo as t, lt as tn, na as tt, so as u, Ne as un, qn as ut, io as v, ce as vn, jn as vt, Pa as w, d as wn, Gn as wt, Ya as x, me as xn, Bn as xt, eo as y, o as yn, wn as yt, Ja as z, Mt as zt };