@genome-spy/core 0.52.0 → 0.53.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 (56) hide show
  1. package/dist/bundle/{index-C8lYPtq_.js → index-B5cesONJ.js} +21 -21
  2. package/dist/bundle/index-BJLu48Hz.js +274 -0
  3. package/dist/bundle/{index-Sk-Wtwdn.js → index-BywMLhhd.js} +963 -989
  4. package/dist/bundle/{index-BwFvhduA.js → index-CSayoXbw.js} +7 -9
  5. package/dist/bundle/{index-CkI3Kd2P.js → index-DAJ8JQLE.js} +6 -5
  6. package/dist/bundle/{index-BtRKzKhM.js → index-_tI-fMQF.js} +414 -415
  7. package/dist/bundle/{index-CmBp-spD.js → index-e0oKgZbZ.js} +36 -36
  8. package/dist/bundle/{index-Z7JiNsFI.js → index-oqw_s02W.js} +10 -11
  9. package/dist/bundle/{index-mihmTLo-.js → index-uO0O4Uv-.js} +22 -22
  10. package/dist/bundle/index.es.js +3622 -3668
  11. package/dist/bundle/index.js +102 -103
  12. package/dist/bundle/{long-CYrAUkxh.js → long-D4tVjLLz.js} +5 -5
  13. package/dist/bundle/remoteFile-BkTxwFub.js +90 -0
  14. package/dist/schema.json +1 -1
  15. package/dist/src/data/sources/dataUtils.d.ts +5 -0
  16. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  17. package/dist/src/data/sources/dataUtils.js +9 -0
  18. package/dist/src/data/sources/lazy/axisTickSource.js +1 -1
  19. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  20. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  21. package/dist/src/data/sources/lazy/bigWigSource.js +1 -1
  22. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +4 -6
  23. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  24. package/dist/src/data/sources/lazy/singleAxisLazySource.js +4 -18
  25. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  26. package/dist/src/data/sources/urlSource.js +12 -7
  27. package/dist/src/data/transforms/clone.d.ts +1 -2
  28. package/dist/src/data/transforms/clone.d.ts.map +1 -1
  29. package/dist/src/data/transforms/clone.js +19 -4
  30. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  31. package/dist/src/data/transforms/filterScoredLabels.js +1 -4
  32. package/dist/src/data/transforms/transformFactory.d.ts.map +1 -1
  33. package/dist/src/encoder/encoder.d.ts +1 -1
  34. package/dist/src/encoder/encoder.d.ts.map +1 -1
  35. package/dist/src/fonts/bmFontMetrics.d.ts.map +1 -1
  36. package/dist/src/genomeSpy.d.ts.map +1 -1
  37. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  38. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  39. package/dist/src/spec/axis.d.ts +0 -2
  40. package/dist/src/spec/scale.d.ts +1 -1
  41. package/dist/src/utils/cloner.d.ts +8 -2
  42. package/dist/src/utils/cloner.d.ts.map +1 -1
  43. package/dist/src/utils/cloner.js +19 -2
  44. package/dist/src/utils/cloner.test.js +16 -5
  45. package/dist/src/utils/expression.d.ts.map +1 -1
  46. package/dist/src/utils/ui/tooltip.d.ts +1 -1
  47. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  48. package/dist/src/view/paramMediator.d.ts +1 -1
  49. package/dist/src/view/paramMediator.d.ts.map +1 -1
  50. package/dist/src/view/scaleResolution.d.ts +9 -0
  51. package/dist/src/view/scaleResolution.d.ts.map +1 -1
  52. package/dist/src/view/scaleResolution.js +30 -0
  53. package/dist/src/view/zoom.d.ts.map +1 -1
  54. package/package.json +2 -2
  55. package/dist/bundle/index-Dixm7K89.js +0 -279
  56. package/dist/bundle/remoteFile-1_eCK3VV.js +0 -96
@@ -1,4 +1,4 @@
1
- import { b as Pi } from "./index-C8lYPtq_.js";
1
+ import { b as Pi } from "./index-B5cesONJ.js";
2
2
  import { g as Da } from "./_commonjsHelpers-BIiJCwQW.js";
3
3
  var re = {};
4
4
  (function(e) {
@@ -177,7 +177,7 @@ function aa(e) {
177
177
  e.bi_valid > 8 ? Ye(e, e.bi_buf) : e.bi_valid > 0 && (e.pending_buf[e.pending++] = e.bi_buf), e.bi_buf = 0, e.bi_valid = 0;
178
178
  }
179
179
  function Wa(e, i, t, a) {
180
- aa(e), a && (Ye(e, t), Ye(e, ~t)), Ra.arraySet(e.pending_buf, e.window, i, t, e.pending), e.pending += t;
180
+ aa(e), Ye(e, t), Ye(e, ~t), Ra.arraySet(e.pending_buf, e.window, i, t, e.pending), e.pending += t;
181
181
  }
182
182
  function Jt(e, i, t, a) {
183
183
  var r = i * 2, n = t * 2;
@@ -282,7 +282,7 @@ function Qa(e) {
282
282
  ii || (Ga(), ii = !0), e.l_desc = new xt(e.dyn_ltree, ji), e.d_desc = new xt(e.dyn_dtree, Vi), e.bl_desc = new xt(e.bl_tree, Ji), e.bi_buf = 0, e.bi_valid = 0, ia(e);
283
283
  }
284
284
  function na(e, i, t, a) {
285
- C(e, (Ua << 1) + (a ? 1 : 0), 3), Wa(e, i, t, !0);
285
+ C(e, (Ua << 1) + (a ? 1 : 0), 3), Wa(e, i, t);
286
286
  }
287
287
  function en(e) {
288
288
  C(e, Ki << 1, 3), ee(e, Ht, ne), Xa(e);
@@ -560,7 +560,7 @@ function ua(e, i, t, a, r, n) {
560
560
  return ue(e, X);
561
561
  a === 8 && (a = 9);
562
562
  var f = new Ln();
563
- return e.state = f, f.strm = e, f.wrap = h, f.gzhead = null, f.w_bits = a, f.w_size = 1 << f.w_bits, f.w_mask = f.w_size - 1, f.hash_bits = r + 7, f.hash_size = 1 << f.hash_bits, f.hash_mask = f.hash_size - 1, f.hash_shift = ~~((f.hash_bits + S - 1) / S), f.window = new B.Buf8(f.w_size * 2), f.head = new B.Buf16(f.hash_size), f.prev = new B.Buf16(f.w_size), f.lit_bufsize = 1 << r + 6, f.pending_buf_size = f.lit_bufsize * 4, f.pending_buf = new B.Buf8(f.pending_buf_size), f.d_buf = 1 * f.lit_bufsize, f.l_buf = (1 + 2) * f.lit_bufsize, f.level = i, f.strategy = n, f.method = t, _a(e);
563
+ return e.state = f, f.strm = e, f.wrap = h, f.gzhead = null, f.w_bits = a, f.w_size = 1 << f.w_bits, f.w_mask = f.w_size - 1, f.hash_bits = r + 7, f.hash_size = 1 << f.hash_bits, f.hash_mask = f.hash_size - 1, f.hash_shift = ~~((f.hash_bits + S - 1) / S), f.window = new B.Buf8(f.w_size * 2), f.head = new B.Buf16(f.hash_size), f.prev = new B.Buf16(f.w_size), f.lit_bufsize = 1 << r + 6, f.pending_buf_size = f.lit_bufsize * 4, f.pending_buf = new B.Buf8(f.pending_buf_size), f.d_buf = 1 * f.lit_bufsize, f.l_buf = 3 * f.lit_bufsize, f.level = i, f.strategy = n, f.method = t, _a(e);
564
564
  }
565
565
  function Rn(e, i) {
566
566
  return ua(e, i, vt, pn, xn, gn);
@@ -1036,7 +1036,7 @@ var je = {}, j = {}, it = 30, Gn = 12, Wn = function(i, t) {
1036
1036
  if (i === ui ? (m = Je = f, x = 19) : i === mt ? (m = jn, I -= 257, Je = Vn, Gt -= 257, x = 256) : (m = Jn, Je = Qn, x = -1), z = 0, v = 0, o = d, p = h, w = g, k = 0, T = -1, N = 1 << g, y = N - 1, i === mt && N > oi || i === di && N > _i)
1037
1037
  return 1;
1038
1038
  for (; ; ) {
1039
- Wt = o - k, f[v] < x ? (Qe = 0, et = f[v]) : f[v] > x ? (Qe = Je[Gt + f[v]], et = m[I + f[v]]) : (Qe = 32 + 64, et = 0), E = 1 << o - k, c = 1 << w, d = c;
1039
+ Wt = o - k, f[v] < x ? (Qe = 0, et = f[v]) : f[v] > x ? (Qe = Je[Gt + f[v]], et = m[I + f[v]]) : (Qe = 96, et = 0), E = 1 << o - k, c = 1 << w, d = c;
1040
1040
  do
1041
1041
  c -= E, n[p + (z >> k) + c] = Wt << 24 | Qe << 16 | et | 0;
1042
1042
  while (c !== 0);
@@ -0,0 +1,90 @@
1
+ import { b as d } from "./index-B5cesONJ.js";
2
+ class b {
3
+ async getBufferFromResponse(e) {
4
+ const t = await e.arrayBuffer();
5
+ return d.Buffer.from(t);
6
+ }
7
+ constructor(e, t = {}) {
8
+ this.baseOverrides = {}, this.url = e;
9
+ const r = t.fetch || globalThis.fetch.bind(globalThis);
10
+ if (!r)
11
+ throw new TypeError("no fetch function supplied, and none found in global environment");
12
+ t.overrides && (this.baseOverrides = t.overrides), this.fetchImplementation = r;
13
+ }
14
+ async fetch(e, t) {
15
+ let r;
16
+ try {
17
+ r = await this.fetchImplementation(e, t);
18
+ } catch (s) {
19
+ if (`${s}`.includes("Failed to fetch"))
20
+ console.warn(`generic-filehandle: refetching ${e} to attempt to work around chrome CORS header caching bug`), r = await this.fetchImplementation(e, {
21
+ ...t,
22
+ cache: "reload"
23
+ });
24
+ else
25
+ throw s;
26
+ }
27
+ return r;
28
+ }
29
+ async read(e, t = 0, r, s = 0, h = {}) {
30
+ const { headers: n = {}, signal: c, overrides: a = {} } = h;
31
+ r < 1 / 0 ? n.range = `bytes=${s}-${s + r}` : r === 1 / 0 && s !== 0 && (n.range = `bytes=${s}-`);
32
+ const l = {
33
+ ...this.baseOverrides,
34
+ ...a,
35
+ headers: {
36
+ ...n,
37
+ ...a.headers,
38
+ ...this.baseOverrides.headers
39
+ },
40
+ method: "GET",
41
+ redirect: "follow",
42
+ mode: "cors",
43
+ signal: c
44
+ }, i = await this.fetch(this.url, l);
45
+ if (!i.ok)
46
+ throw new Error(`HTTP ${i.status} ${i.statusText} ${this.url}`);
47
+ if (i.status === 200 && s === 0 || i.status === 206) {
48
+ const f = await this.getBufferFromResponse(i), u = f.copy(e, t, 0, Math.min(r, f.length)), w = i.headers.get("content-range"), o = /\/(\d+)$/.exec(w || "");
49
+ return o != null && o[1] && (this._stat = { size: parseInt(o[1], 10) }), { bytesRead: u, buffer: e };
50
+ }
51
+ throw i.status === 200 ? new Error("${this.url} fetch returned status 200, expected 206") : new Error(`HTTP ${i.status} fetching ${this.url}`);
52
+ }
53
+ async readFile(e = {}) {
54
+ let t, r;
55
+ typeof e == "string" ? (t = e, r = {}) : (t = e.encoding, r = e, delete r.encoding);
56
+ const { headers: s = {}, signal: h, overrides: n = {} } = r, c = {
57
+ headers: s,
58
+ method: "GET",
59
+ redirect: "follow",
60
+ mode: "cors",
61
+ signal: h,
62
+ ...this.baseOverrides,
63
+ ...n
64
+ }, a = await this.fetch(this.url, c);
65
+ if (!a)
66
+ throw new Error("generic-filehandle failed to fetch");
67
+ if (a.status !== 200)
68
+ throw Object.assign(new Error(`HTTP ${a.status} fetching ${this.url}`), {
69
+ status: a.status
70
+ });
71
+ if (t === "utf8")
72
+ return a.text();
73
+ if (t)
74
+ throw new Error(`unsupported encoding: ${t}`);
75
+ return this.getBufferFromResponse(a);
76
+ }
77
+ async stat() {
78
+ if (!this._stat) {
79
+ const e = d.Buffer.allocUnsafe(10);
80
+ if (await this.read(e, 0, 10, 0), !this._stat)
81
+ throw new Error(`unable to determine size of file at ${this.url}`);
82
+ }
83
+ return this._stat;
84
+ }
85
+ async close() {
86
+ }
87
+ }
88
+ export {
89
+ b as R
90
+ };
package/dist/schema.json CHANGED
@@ -7132,7 +7132,7 @@
7132
7132
  "description": "Extending the domain so that it starts and ends on nice round values. This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value. Nicing is useful if the domain is computed from data and may be irregular. For example, for a domain of _[0.201479…, 0.996679…]_, a nice domain might be _[0.2, 1.0]_.\n\nFor quantitative scales such as linear, `nice` can be either a boolean flag or a number. If `nice` is a number, it will represent a desired tick count. This allows greater control over the step size used to extend the bounds, guaranteeing that the returned ticks will exactly cover the domain.\n\n__Default value:__ `true` for unbinned _quantitative_ fields; `false` otherwise."
7133
7133
  },
7134
7134
  "padding": {
7135
- "description": "For _[continuous](https://vega.github.io/vega-lite/docs/scale.html#continuous)_ scales, expands the scale domain to accommodate the specified number of pixels on each of the scale range. The scale range must represent pixels for this parameter to function as intended. Padding adjustment is performed prior to all other adjustments, including the effects of the `zero`, `nice`, `domainMin`, and `domainMax` properties.\n\nFor _[band](https://vega.github.io/vega-lite/docs/scale.html#band)_ scales, shortcut for setting `paddingInner` and `paddingOuter` to the same value.\n\nFor _[point](https://vega.github.io/vega-lite/docs/scale.html#point)_ scales, alias for `paddingOuter`.\n\n__Default value:__ For _continuous_ scales, derived from the [scale config](https://vega.github.io/vega-lite/docs/scale.html#config)'s `continuousPadding`. For _band and point_ scales, see `paddingInner` and `paddingOuter`. By default, Vega-Lite sets padding such that _width/height = number of unique values * step_.",
7135
+ "description": "For _[continuous](https://vega.github.io/vega-lite/docs/scale.html#continuous)_ scales, expands the scale domain to accommodate the specified number of pixels on each of the scale range. The scale range must represent pixels for this parameter to function as intended. Padding adjustment is performed prior to all other adjustments, including the effects of the `zero`, `nice`, `domainMin`, and `domainMax` properties.\n\nFor _[band](https://vega.github.io/vega-lite/docs/scale.html#band)_ scales, shortcut for setting `paddingInner` and `paddingOuter` to the same value.\n\nFor _[point](https://vega.github.io/vega-lite/docs/scale.html#point)_ scales, alias for `paddingOuter`.\n\n__Default value:__ For _continuous_ scales, derived from the [scale config](https://vega.github.io/vega-lite/docs/scale.html#config)'s `continuousPadding`. For _band and point_ scales, see `paddingInner` and `paddingOuter`. By default, Vega-Lite sets padding such that _width/height = number of unique values * step_.",
7136
7136
  "minimum": 0,
7137
7137
  "type": "number"
7138
7138
  },
@@ -19,6 +19,11 @@ export function getFormat(params: import("../../spec/data.js").DataSource): {
19
19
  } | {
20
20
  type: string;
21
21
  };
22
+ /**
23
+ * @param {string} type
24
+ * @returns {string}
25
+ */
26
+ export function responseType(type: string): string;
22
27
  /**
23
28
  * @param {string | string[]} url
24
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"dataUtils.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataUtils.js"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,kCAHW,OAAO,oBAAoB,EAAE,UAAU;;;;;;;;;;;;;EAsBjD;AAED;;GAEG;AACH,wCAFW,MAAM,GAAG,MAAM,EAAE,UAU3B;AAWD;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,4DAKjD;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,4DAKjD;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,UAAU,6DAKjD;AAED;;;;GAIG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,sDAKjD;AAxCM,+BAAgC,GAAG,QAI3B,OAAO,uBAAuB,EAAE,MAAM;;UAGtB,OAAO,gBAAgB,EAAE,KAAK,qCANR"}
1
+ {"version":3,"file":"dataUtils.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataUtils.js"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,kCAHW,OAAO,oBAAoB,EAAE,UAAU;;;;;;;;;;;;;EAsBjD;AAED;;;GAGG;AACH,mCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;GAEG;AACH,wCAFW,MAAM,GAAG,MAAM,EAAE,UAU3B;AAWD;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,4DAKjD;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,4DAKjD;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,UAAU,6DAKjD;AAED;;;;GAIG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,sDAKjD;AAxCM,+BAAgC,GAAG,QAI3B,OAAO,uBAAuB,EAAE,MAAM;;UAGtB,OAAO,gBAAgB,EAAE,KAAK,qCANR"}
@@ -1,3 +1,4 @@
1
+ import { formats } from "vega-loader";
1
2
  import { withoutExprRef } from "../../view/paramMediator.js";
2
3
  import { isInlineData } from "./inlineSource.js";
3
4
 
@@ -29,6 +30,14 @@ export function getFormat(params) {
29
30
  return format;
30
31
  }
31
32
 
33
+ /**
34
+ * @param {string} type
35
+ * @returns {string}
36
+ */
37
+ export function responseType(type) {
38
+ return formats(type)?.responseType ?? "text";
39
+ }
40
+
32
41
  /**
33
42
  * @param {string | string[]} url
34
43
  */
@@ -47,8 +47,8 @@ export default class AxisTickSource extends SingleAxisLazySource {
47
47
  // synchronously to ensure that the new ticks are available before the next frame is drawn.
48
48
 
49
49
  const scale = this.scaleResolution.scale;
50
+ const axisLength = this.scaleResolution.getAxisLength();
50
51
  const axisParams = this.params.axis;
51
- const axisLength = this.getAxisLength();
52
52
 
53
53
  /**
54
54
  * Make ticks more dense in small plots.
@@ -1 +1 @@
1
- {"version":3,"file":"bamSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bamSource.js"],"names":[],"mappings":"AAGA;IAeI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,OAAO,QACvC,OAAO,uBAAuB,EAAE,OAAO,EAmDjD;IAhED;;;;;;;;OAQG;IACH,sBAFgB,MAAM,KAAK,MAAM,CAEH;IAkB1B,gDAAgC;IAQhC,iCA4BE;;CAmCT;qCAxGoC,+BAA+B"}
1
+ {"version":3,"file":"bamSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bamSource.js"],"names":[],"mappings":"AAGA;IAeI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,OAAO,QACvC,OAAO,uBAAuB,EAAE,OAAO,EAmDjD;IAhED;;;;;;;;OAQG;IACH,gBAFU,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAEH;IAkB1B,gDAAgC;IAQhC,iCA4BE;;CAmCT;qCAxGoC,+BAA+B"}
@@ -1 +1 @@
1
- {"version":3,"file":"bigBedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bigBedSource.js"],"names":[],"mappings":"AAOA;IAUI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EAmCjD;IA9CD,0CAA0C;IAC1C,QADW,OAAO,WAAW,EAAE,OAAO,CAC/B;IAEP,yCAAyC;IACzC,KADW,OAAO,WAAW,EAAE,MAAM,CACjC;IAEJ,4GAA4G;IAC5G,mBADmB,MAAM,UAAU;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,MAAM,EAAE,GAAG,CAAC,CAC9F;IA8BN,mDAA6B;;CAoFpC;qCA5HoC,+BAA+B"}
1
+ {"version":3,"file":"bigBedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bigBedSource.js"],"names":[],"mappings":"AAOA;IAUI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EAmCjD;IA9CD,0CAA0C;IAC1C,QADW,OAAO,WAAW,EAAE,OAAO,CAC/B;IAEP,yCAAyC;IACzC,KADW,OAAO,WAAW,EAAE,MAAM,CACjC;IAEJ,4GAA4G;IAC5G,WADW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,MAAM,EAAE,GAAG,CAAC,CAC9F;IA8BN,mDAA6B;;CAoFpC;qCA5HoC,+BAA+B"}
@@ -111,7 +111,7 @@ export default class BigWigSource extends SingleAxisWindowedSource {
111
111
  await this.initializedPromise;
112
112
 
113
113
  // TODO: Postpone the initial load until layout is computed and remove 700.
114
- const length = this.getAxisLength() || 700;
114
+ const length = this.scaleResolution.getAxisLength() || 700;
115
115
 
116
116
  const reductionLevel = findReductionLevel(
117
117
  domain,
@@ -15,11 +15,6 @@ export default class SingleAxisLazySource extends DataSource {
15
15
  /** @type {import("../../../spec/channel.js").PrimaryPositionalChannel} */
16
16
  channel: import("../../../spec/channel.js").PrimaryPositionalChannel;
17
17
  scaleResolution: import("../../../view/scaleResolution.js").default;
18
- /**
19
- * Returns the length of the axis in pixels. Chooses the smallest of the views.
20
- * They should all be the same, but some exotic configuration might break that assumption.
21
- */
22
- getAxisLength(): number;
23
18
  /**
24
19
  * Convenience getter for genome.
25
20
  *
@@ -42,7 +37,10 @@ export default class SingleAxisLazySource extends DataSource {
42
37
  */
43
38
  protected requestRender(): void;
44
39
  /**
45
- * Resets the data flow and propagates the data.
40
+ * Resets the data flow and propagates the data, which should be an array of data chunks.
41
+ * A chunk is an ordinary array of data objects. Typically all data objects are stored
42
+ * in a single chunk, but sometimes they may be split into multiple chunks, e.g., one per
43
+ * chromosome.
46
44
  *
47
45
  * @param {import("../../flowNode.js").Datum[][]} chunks An array of data chunks.
48
46
  * @protected
@@ -1 +1 @@
1
- {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAOI;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,WACvC,OAAO,0BAA0B,EAAE,wBAAwB,EA+CrE;IAvDD;;;OAGG;IACH,4CAAuC;IAmBnC,2EAA2E;IAC3E,SADW,OAAO,0BAA0B,EAAE,wBAAwB,CAChD;IAEtB,oEAA4D;IA+BhE;;;OAGG;IACH,wBAWC;IAED;;;;OAIG;IACH,oEAEC;IAED;;;;;;OAMG;IACH,wBAJW,MAAM,EAAE,iBACR,OAAO,yBAAyB,EAAE,gBAAgB,EAAE,QAK9D;IAED;;;;;OAKG;IACH,gCAGC;IAQD;;;;;OAKG;IACH,8BAHW,OAAO,mBAAmB,EAAE,KAAK,EAAE,EAAE,QAgB/C;CACJ;uBA1IsB,kBAAkB"}
1
+ {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAOI;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,WACvC,OAAO,0BAA0B,EAAE,wBAAwB,EA+CrE;IAvDD;;;OAGG;IACH,4CAAuC;IAmBnC,2EAA2E;IAC3E,SADW,OAAO,0BAA0B,EAAE,wBAAwB,CAChD;IAEtB,oEAA4D;IA+BhE;;;;OAIG;IACH,oEAEC;IAED;;;;;;OAMG;IACH,wBAJW,MAAM,EAAE,iBACR,OAAO,yBAAyB,EAAE,gBAAgB,EAAE,QAK9D;IAED;;;;;OAKG;IACH,gCAGC;IAQD;;;;;;;;OAQG;IACH,8BAHW,OAAO,mBAAmB,EAAE,KAAK,EAAE,EAAE,QAgB/C;CACJ;uBA5HsB,kBAAkB"}
@@ -63,23 +63,6 @@ export default class SingleAxisLazySource extends DataSource {
63
63
  );
64
64
  }
65
65
 
66
- /**
67
- * Returns the length of the axis in pixels. Chooses the smallest of the views.
68
- * They should all be the same, but some exotic configuration might break that assumption.
69
- */
70
- getAxisLength() {
71
- const lengths = this.scaleResolution.members
72
- .map(
73
- (m) =>
74
- m.view.coords?.[this.channel === "x" ? "width" : "height"]
75
- )
76
- .filter((len) => len > 0);
77
-
78
- return lengths.length
79
- ? lengths.reduce((a, b) => Math.min(a, b), 10000)
80
- : 0;
81
- }
82
-
83
66
  /**
84
67
  * Convenience getter for genome.
85
68
  *
@@ -118,7 +101,10 @@ export default class SingleAxisLazySource extends DataSource {
118
101
  }
119
102
 
120
103
  /**
121
- * Resets the data flow and propagates the data.
104
+ * Resets the data flow and propagates the data, which should be an array of data chunks.
105
+ * A chunk is an ordinary array of data objects. Typically all data objects are stored
106
+ * in a single chunk, but sometimes they may be split into multiple chunks, e.g., one per
107
+ * chromosome.
122
108
  *
123
109
  * @param {import("../../flowNode.js").Datum[][]} chunks An array of data chunks.
124
110
  * @protected
@@ -1 +1 @@
1
- {"version":3,"file":"urlSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/urlSource.js"],"names":[],"mappings":"AASA;;;GAGG;AACH,gCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,gDAKpD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,OAAO,QACpC,OAAO,oBAAoB,EAAE,OAAO,EAU9C;IALG,6CAEC;IAED,gBAAiC;CAiExC;uBA5FsB,iBAAiB"}
1
+ {"version":3,"file":"urlSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/urlSource.js"],"names":[],"mappings":"AASA;;;GAGG;AACH,gCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,gDAKpD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,OAAO,QACpC,OAAO,oBAAoB,EAAE,OAAO,EAU9C;IALG,6CAEC;IAED,gBAAiC;CAsExC;uBAjGsB,iBAAiB"}
@@ -1,5 +1,5 @@
1
1
  import { read } from "vega-loader";
2
- import { getFormat } from "./dataUtils.js";
2
+ import { getFormat, responseType } from "./dataUtils.js";
3
3
  import DataSource from "./dataSource.js";
4
4
  import {
5
5
  activateExprRefProps,
@@ -40,6 +40,9 @@ export default class UrlSource extends DataSource {
40
40
  /** @type {string[]} */
41
41
  const urls = Array.isArray(url) ? url : [url];
42
42
 
43
+ const format = getFormat(this.params);
44
+ const type = responseType(format.type);
45
+
43
46
  if (urls.length === 0 || !urls[0]) {
44
47
  this.reset();
45
48
  this.complete();
@@ -54,8 +57,11 @@ export default class UrlSource extends DataSource {
54
57
  if (!result.ok) {
55
58
  throw new Error(`${result.status} ${result.statusText}`);
56
59
  }
57
- // TODO: what about binary data (for arrow), etc?
58
- return result.text();
60
+ // @ts-ignore
61
+ return typeof result[type] == "function"
62
+ ? // @ts-ignore
63
+ result[type]()
64
+ : result.text();
59
65
  } catch (e) {
60
66
  throw new Error(
61
67
  `Could not load data: ${url}. Reason: ${e.message}`
@@ -64,13 +70,13 @@ export default class UrlSource extends DataSource {
64
70
  };
65
71
 
66
72
  /**
67
- * @param {string} text
73
+ * @param {any} content
68
74
  * @param {string} [url]
69
75
  */
70
- const readAndParse = (text, url) => {
76
+ const readAndParse = (content, url) => {
71
77
  try {
72
78
  /** @type {any[]} */
73
- const data = read(text, getFormat(this.params));
79
+ const data = read(content, format);
74
80
  this.beginBatch({ type: "file", url: url });
75
81
  for (const d of data) {
76
82
  this._propagate(d);
@@ -89,7 +95,6 @@ export default class UrlSource extends DataSource {
89
95
  } catch (e) {
90
96
  this.setLoadingStatus("error", e.message);
91
97
  }
92
-
93
98
  this.complete();
94
99
  }
95
100
  }
@@ -3,14 +3,13 @@
3
3
  */
4
4
  export default class CloneTransform extends FlowNode {
5
5
  constructor();
6
- /** @param {any} datum */
7
- handle: (datum: any) => void;
8
6
  /**
9
7
  * Signals that a new batch of data will be propagated.
10
8
  *
11
9
  * @param {import("../../types/flowBatch.js").FlowBatch} [flowBatch]
12
10
  */
13
11
  beginBatch: (flowBatch?: import("../../types/flowBatch.js").FlowBatch) => void;
12
+ #private;
14
13
  }
15
14
  import FlowNode from "../flowNode.js";
16
15
  //# sourceMappingURL=clone.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/clone.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAKI,cA2BC;IApBO,yBAAyB;IACzB,gBALQ,GAAG,UAK2C;IAO1D;;;;OAIG;IACH,yBAFW,OAAO,0BAA0B,EAAE,SAAS,UAQtD;CAER;qBAtCsD,gBAAgB"}
1
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/clone.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAWI,cAmCC;IAXG;;;;OAIG;IACH,yBAFW,OAAO,0BAA0B,EAAE,SAAS,UAOtD;;CAER;qBApDsD,gBAAgB"}
@@ -1,4 +1,5 @@
1
- import createCloner from "../../utils/cloner.js";
1
+ import { shallowArrayEquals } from "../../utils/arrayUtils.js";
2
+ import createCloner, { getAllProperties } from "../../utils/cloner.js";
2
3
  import FlowNode, { BEHAVIOR_CLONES, isFileBatch } from "../flowNode.js";
3
4
 
4
5
  /**
@@ -9,13 +10,28 @@ export default class CloneTransform extends FlowNode {
9
10
  return BEHAVIOR_CLONES;
10
11
  }
11
12
 
13
+ /** @type {string[]} */
14
+ #lastBatchFields;
15
+
16
+ /** @type {(datum: import("../flowNode.js").Datum) => import("../flowNode.js").Datum} */
17
+ #clone = (datum) => datum;
18
+
12
19
  constructor() {
13
20
  super();
14
21
 
15
- /** @param {any} datum */
22
+ /** @param {import("../flowNode.js").Datum} datum */
16
23
  const setupCloner = (datum) => {
17
- const clone = createCloner(datum);
24
+ // Create a new cloner if the fields have changed
25
+ const fields = getAllProperties(datum);
26
+ if (
27
+ !this.#lastBatchFields ||
28
+ !shallowArrayEquals(fields, this.#lastBatchFields)
29
+ ) {
30
+ this.#lastBatchFields = fields;
31
+ this.#clone = createCloner(datum);
32
+ }
18
33
 
34
+ const clone = this.#clone;
19
35
  /** @param {any} datum */
20
36
  this.handle = (datum) => this._propagate(clone(datum));
21
37
 
@@ -31,7 +47,6 @@ export default class CloneTransform extends FlowNode {
31
47
  */
32
48
  this.beginBatch = (flowBatch) => {
33
49
  if (isFileBatch(flowBatch)) {
34
- // TODO: Only create new cloner if the props change
35
50
  this.handle = setupCloner;
36
51
  }
37
52
  super.beginBatch(flowBatch);
@@ -1 +1 @@
1
- {"version":3,"file":"filterScoredLabels.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.js"],"names":[],"mappings":"AAMA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,wBAAwB,QAC1D,OAAO,oBAAoB,EAAE,OAAO,EA2C9C;IAtCG,mEAAoB;IAEpB,oBAAoB;IACpB,OADW,GAAG,EAAE,CACD;IAEf,mBAAoC;IAMpC,iDAAyC;IACzC,mDAA6C;IAC7C,mDAA6C;IAC7C,mDAA6C;IAC7C,gCAAgC;IAChC,qBADoB,GAAG,KAAE,GAAG,CAGd;IACd,gBAAuC;IAEvC,uCAAuC;IACvC,iBADW,IAAI,GAAG,EAAE,cAAc,CAAC,CACH;IAEhC,4DAAuD;IAIvD,qBAAuE;IAgBvE,eAAiD;IAWrD,4BA4CC;IAKG,sBAAuB;CAU9B;qBApI2C,gBAAgB;2BAEjC,+BAA+B"}
1
+ {"version":3,"file":"filterScoredLabels.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.js"],"names":[],"mappings":"AAMA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,wBAAwB,QAC1D,OAAO,oBAAoB,EAAE,OAAO,EA2C9C;IAtCG,mEAAoB;IAEpB,oBAAoB;IACpB,OADW,GAAG,EAAE,CACD;IAEf,mBAAoC;IAMpC,iDAAyC;IACzC,mDAA6C;IAC7C,mDAA6C;IAC7C,mDAA6C;IAC7C,gCAAgC;IAChC,qBADoB,GAAG,KAAE,GAAG,CAGd;IACd,gBAAuC;IAEvC,uCAAuC;IACvC,iBADW,IAAI,GAAG,EAAE,cAAc,CAAC,CACH;IAEhC,4DAAuD;IAIvD,qBAAuE;IAgBvE,eAAiD;IAWrD,4BAyCC;IAKG,sBAAuB;CAU9B;qBAjI2C,gBAAgB;2BAEjC,+BAA+B"}
@@ -76,10 +76,7 @@ export default class FilterScoredLabelsTransform extends FlowNode {
76
76
  super.reset();
77
77
 
78
78
  const scale = this.resolution.scale;
79
- const rangeSpan =
80
- this.resolution.members[0].view.coords?.[
81
- this.channel == "x" ? "width" : "height"
82
- ];
79
+ const rangeSpan = this.resolution.getAxisLength();
83
80
  if (!rangeSpan) {
84
81
  // The view size is not (yet) available
85
82
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"transformFactory.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/transformFactory.js"],"names":[],"mappings":"AA+CA;;;GAGG;AACH,gDAHW,OAAO,yBAAyB,EAAE,mBAAmB,SACrD,OAAO,oBAAoB,EAAE,OAAO,oCAS9C;AAtCD;;;;GAIG;AACH,qDAFsC,GAAG,SAAS,OAAO,oBAAoB,EAAE,OAAO,KAAK,OAAO,gBAAgB,EAAE,OAAO,EAsBzH"}
1
+ {"version":3,"file":"transformFactory.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/transformFactory.js"],"names":[],"mappings":"AA+CA;;;GAGG;AACH,gDAHW,OAAO,yBAAyB,EAAE,mBAAmB,SACrD,OAAO,oBAAoB,EAAE,OAAO,oCAS9C;AAtCD;;;;GAIG;AACH,yBAFU,OAAO,MAAM,EAAE,KAAK,MAAM,EAAE,GAAG,EAAE,IAAI,CAAC,EAAE,OAAO,oBAAoB,EAAE,OAAO,KAAK,OAAO,gBAAgB,EAAE,OAAO,CAAC,CAsB1H"}
@@ -105,7 +105,7 @@ export function getPrimaryChannel(channel: import("../spec/channel.js").Channel)
105
105
  *
106
106
  * @param {import("../spec/channel.js").Channel} channel
107
107
  */
108
- export function getChannelWithSecondarys(channel: import("../spec/channel.js").Channel): ("search" | "fill" | "stroke" | "angle" | "sample" | "color" | "fillOpacity" | "opacity" | "strokeOpacity" | "strokeWidth" | "text" | "size" | "x" | "y" | "x2" | "y2" | "shape" | "dx" | "dy" | "uniqueId" | "facetIndex" | "semanticScore")[];
108
+ export function getChannelWithSecondarys(channel: import("../spec/channel.js").Channel): ("search" | "fill" | "stroke" | "angle" | "sample" | "color" | "fillOpacity" | "opacity" | "strokeOpacity" | "strokeWidth" | "x" | "y" | "text" | "size" | "x2" | "y2" | "shape" | "dx" | "dy" | "uniqueId" | "facetIndex" | "semanticScore")[];
109
109
  /**
110
110
  * @param {import("../spec/channel.js").Channel} channel
111
111
  */
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/encoder/encoder.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,iDAJW,OAAO,qBAAqB,EAAE,OAAO,YACrC,OAAO,oBAAoB,EAAE,QAAQ,gGAgC/C;AAED;;;;GAIG;AACH,4DAJW,OAAO,qBAAqB,EAAE,QAAQ,EAAE,yBAC9B,OAAO,oBAAoB,EAAE,gBAAgB,KAAK,OAAO,qBAAqB,EAAE,SAAS,yCAqC7G;AAED;;;;GAIG;AACH,4IAHqB,OAAO,oBAAoB,EAAE,gBAAgB,KAAK,OAAO,qBAAqB,EAAE,SAAS,yCAqC7G;AAED;;;;;GAKG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,2DAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,qIAKjD;AAED;;;GAGG;AACH,kDAHW,OAAO,oBAAoB,EAAE,UAAU,kEAWjD;AAED;;;GAGG;AACH,6CAHW,OAAO,qBAAqB,EAAE,OAAO,WACrC,OAAO,oBAAoB,EAAE,OAAO,s9CAS9C;AAED;;;GAGG;AACH,iDAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,0CAHW,OAAO,oBAAoB,EAAE,UAAU,0DAKjD;AAED;;;GAGG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,sDAKjD;AAED;;;GAGG;AACH,2DAHW,OAAO,oBAAoB,EAAE,UAAU,wMAQjD;AAED;;;GAGG;AACH,oDAHW,OAAO,oBAAoB,EAAE,UAAU,wGAKjD;AAoBD;;;GAGG;AACH,oDAHW,OAAO,oBAAoB,EAAE,OAAO,oEAM9C;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,OAAO,6DAM9C;AAqBD;;;GAGG;AACH,4CAFW,MAAM,WAIhB;AAED;;;;GAIG;AACH,oDAFW,OAAO,oBAAoB,EAAE,OAAO,2DAS9C;AAED;;;;;GAKG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,wCAI9C;AAED;;;;GAIG;AACH,kDAFW,OAAO,oBAAoB,EAAE,OAAO,mPAM9C;AAED;;GAEG;AACH,wCAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;;GAIG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,OAAO,4DAsB9C;AAED;;;;;GAKG;AACH,0CAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,GAAG,EAAE,CAsBjB;AAED;;;GAGG;AACH,gDAHW,OAAO,oBAAoB,EAAE,OAAO,UACzB,GAAG,KAAE,MAAM,CAmBhC;AA5LD;;GAEG;AACH,wCAFU,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,CAEb;AAEpD;;GAEG;AACH,0CAFU,OAAO,oBAAoB,EAAE,0BAA0B,EAAE,CAEX;AAExD;;GAEG;AACH,iCAFU,OAAO,oBAAoB,EAAE,iBAAiB,EAAE,CAKxD;AAoBF;;;;GAIG;AACH,gCAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,CAKtH;AAEF;;;;GAIG;AACH,8BAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAInG"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/encoder/encoder.js"],"names":[],"mappings":"AAEA;;;;;;;;GAQG;AACH,iDAJW,OAAO,qBAAqB,EAAE,OAAO,YACrC,OAAO,oBAAoB,EAAE,QAAQ,gGAgC/C;AAED;;;;GAIG;AACH,4DAJW,OAAO,qBAAqB,EAAE,QAAQ,EAAE,eACxC,CAAC,OAAO,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,KAAK,OAAO,qBAAqB,EAAE,SAAS,yCAqC7G;AAED;;;;GAIG;AACH,kIAHW,CAAC,OAAO,EAAE,OAAO,oBAAoB,EAAE,gBAAgB,KAAK,OAAO,qBAAqB,EAAE,SAAS,yCAqC7G;AAED;;;;;GAKG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,2DAKjD;AAED;;;GAGG;AACH,uCAHW,OAAO,oBAAoB,EAAE,UAAU,qIAKjD;AAED;;;GAGG;AACH,kDAHW,OAAO,oBAAoB,EAAE,UAAU,kEAWjD;AAED;;;GAGG;AACH,6CAHW,OAAO,qBAAqB,EAAE,OAAO,WACrC,OAAO,oBAAoB,EAAE,OAAO,s9CAS9C;AAED;;;GAGG;AACH,iDAHW,OAAO,oBAAoB,EAAE,UAAU,4FAKjD;AAED;;;GAGG;AACH,0CAHW,OAAO,oBAAoB,EAAE,UAAU,0DAKjD;AAED;;;GAGG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,sDAKjD;AAED;;;GAGG;AACH,2DAHW,OAAO,oBAAoB,EAAE,UAAU,wMAQjD;AAED;;;GAGG;AACH,oDAHW,OAAO,oBAAoB,EAAE,UAAU,wGAKjD;AAoBD;;;GAGG;AACH,oDAHW,OAAO,oBAAoB,EAAE,OAAO,oEAM9C;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,OAAO,6DAM9C;AAqBD;;;GAGG;AACH,4CAFW,MAAM,WAIhB;AAED;;;;GAIG;AACH,oDAFW,OAAO,oBAAoB,EAAE,OAAO,2DAS9C;AAED;;;;;GAKG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,wCAI9C;AAED;;;;GAIG;AACH,kDAFW,OAAO,oBAAoB,EAAE,OAAO,mPAM9C;AAED;;GAEG;AACH,wCAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;;GAIG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,WAI9C;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,OAAO,4DAsB9C;AAED;;;;;GAKG;AACH,0CAHW,OAAO,oBAAoB,EAAE,OAAO,GAClC,GAAG,EAAE,CAsBjB;AAED;;;GAGG;AACH,gDAHW,OAAO,oBAAoB,EAAE,OAAO,UACzB,GAAG,KAAE,MAAM,CAmBhC;AA5LD;;GAEG;AACH,wCAFU,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,CAEb;AAEpD;;GAEG;AACH,0CAFU,OAAO,oBAAoB,EAAE,0BAA0B,EAAE,CAEX;AAExD;;GAEG;AACH,iCAFU,OAAO,oBAAoB,EAAE,iBAAiB,EAAE,CAKxD;AAoBF;;;;GAIG;AACH,gCAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,0BAA0B,CAAC,CAAC,CAKtH;AAEF;;;;GAIG;AACH,8BAFU,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,oBAAoB,EAAE,OAAO,CAAC,CAAC,CAInG"}
@@ -1 +1 @@
1
- {"version":3,"file":"bmFontMetrics.d.ts","sourceRoot":"","sources":["../../../src/fonts/bmFontMetrics.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,2CAHW,OAAO,oBAAoB,EAAE,MAAM,GACjC,aAAa,CAqFzB;AA3GD,4BAA6B;;;;;;;mBAUhB,OAAO,oBAAoB,EAAE,IAAI;;;;;;;;yBAG7B,MAAM,aAAa,MAAM,KAAK,MAAM;8BAChC,MAAM,KAAK,IAAI;oBACnB,MAAM,KAAK,IAAI;aACtB,MAAM;eACN,MAAM;aACN,MAAM;YACN,OAAO,oBAAoB,EAAE,MAAM"}
1
+ {"version":3,"file":"bmFontMetrics.d.ts","sourceRoot":"","sources":["../../../src/fonts/bmFontMetrics.js"],"names":[],"mappings":"AAIA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,2CAHW,OAAO,oBAAoB,EAAE,MAAM,GACjC,aAAa,CAqFzB;AA3GD,4BAA6B;;;;;;;mBAUhB,OAAO,oBAAoB,EAAE,IAAI;;;;;;;;kBAGpC,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,KAAK,MAAM;mBAC3C,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI;aAC1B,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI;aACtB,MAAM;eACN,MAAM;aACN,MAAM;YACN,OAAO,oBAAoB,EAAE,MAAM"}
@@ -1 +1 @@
1
- {"version":3,"file":"genomeSpy.d.ts","sourceRoot":"","sources":["../../src/genomeSpy.js"],"names":[],"mappings":"AA6CA;IACI;;;;;OAKG;IAEH;;;;;OAKG;IACH,uBAJW,WAAW,qDAEX,OAAO,qBAAqB,EAAE,YAAY,EA6FpD;IA1FG,uBAA0B;IAC1B,oDAAsB;IAItB,6BAA6B;IAC7B,uBADW,CAAC,MAAM,IAAI,CAAC,EAAE,CACM;IAE/B,sCAAsC;IACtC,wCAAgB;IAEhB,yBAAoC;IAEpC,4CAA4C;IAC5C,oBADW,QAAU,MAAM,KAAE,MAAM,EAAE,CAAC,EAAE,CACZ;IAE5B,mBAAoD;IAEpD,0BAA0B;IAC1B,aADW,WAAW,CACM;IAE5B;;;;;OAKG;IACH,qEAF0B,OAAO,CAE8B;IAE/D,2CAA2C;IAC3C,mBADW,4BAA4B,CACL;IAClC,2CAA2C;IAC3C,iBADW,4BAA4B,CACP;IAEhC,oDAAoD;IACpD,6BAAgC;IAEhC;;;OAGG;IACH,eAFU;QAAE,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,oBAAoB,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAEpF;IAE9B,uBAA+C;IAE/C;;;OAGG;IACH,oBAFU,IAAI,MAAM,EAAE,QAAU,aAAa,KAAE,IAAI,CAAC,EAAE,CAAC,CAEpB;IAEnC;;;;;;OAMG;IACH,yCAFkC,GAAG,KAAK,IAAI,GAEd;IAEhC;;;OAGG;IACH,kDAFkC,GAAG,KAAK,IAAI,GAEL;IAEzC,oFAAoF;IACpF,iBADW,OAAO,MAAM,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC,CAK9E;IAED,mBAAmB;IACnB,2CAAyB;IAEzB;;;;OAIG;IACH;gBAF8B,OAAO,wBAAwB,EAAE,iBAAiB;iBAAW,MAAM;OAEnE;IAE9B;;OAEG;IACH,wBAFU,WAAW,CAEkB;IAEvC,oBAAoB;IACpB,kBADW,KAAK,CACiB;IA2CrC;;;OAGG;IACH,2CAFkB,MAAM,KAAK,GAAG,EAAE,QAIjC;IAED;;OAEG;IACH,+BAFW,MAAM,YAShB;IAED;;;;OAIG;IACH,sBAHW,MAAM,QACN,GAAG,EAAE,QAaf;IAED;;;;;OAKG;IACH,gBAHW,kBAAkB,YAClB,GAAG,QAQb;IAED;;;OAGG;IACH,iCAwDC;IA4DG,uBAQC;IAGD,mCAGE;IAOF,sCAEE;IAGF,iBAA0C;IAW9C;;OAEG;IACH,gBAuBC;IAED,sCA6MC;IAED;;;OAGG;IACH,UAFa,QAAQ,OAAO,CAAC,CA6B5B;IAED,4BA8JC;IAvIe,iCAAoC;IAyIpD;;;OAGG;IACH,kBAHW,MAAM,KACN,MAAM,QAqEhB;IAED;;;;;;;OAOG;IACH,oDAHuB,QAAQ,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAYlF;IAED,sBA6CC;IAED,kBAIC;IAED,iCAOC;IAED,iCASC;IAED,qFAWC;;CACJ;;;;iCAt8BY,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB;4BAP7B,uBAAuB;qBAZ9C,qBAAqB;wBAIlB,yBAAyB;yCARR,yDAAyD;oBAYvD,oBAAoB;kBAT7C,wBAAwB;wBALlB,qBAAqB;oBATzB,uBAAuB;qBAOtB,oBAAoB"}
1
+ {"version":3,"file":"genomeSpy.d.ts","sourceRoot":"","sources":["../../src/genomeSpy.js"],"names":[],"mappings":"AA6CA;IACI;;;;;OAKG;IAEH;;;;;OAKG;IACH,uBAJW,WAAW,qDAEX,OAAO,qBAAqB,EAAE,YAAY,EA6FpD;IA1FG,uBAA0B;IAC1B,oDAAsB;IAItB,6BAA6B;IAC7B,uBADW,CAAC,MAAM,IAAI,CAAC,EAAE,CACM;IAE/B,sCAAsC;IACtC,wCAAgB;IAEhB,yBAAoC;IAEpC,4CAA4C;IAC5C,oBADW,QAAU,MAAM,KAAE,MAAM,EAAE,CAAC,EAAE,CACZ;IAE5B,mBAAoD;IAEpD,0BAA0B;IAC1B,aADW,WAAW,CACM;IAE5B;;;;;OAKG;IACH,qEAF0B,OAAO,CAE8B;IAE/D,2CAA2C;IAC3C,mBADW,4BAA4B,CACL;IAClC,2CAA2C;IAC3C,iBADW,4BAA4B,CACP;IAEhC,oDAAoD;IACpD,6BAAgC;IAEhC;;;OAGG;IACH,eAFU;QAAE,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,oBAAoB,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAEpF;IAE9B,uBAA+C;IAE/C;;;OAGG;IACH,oBAFU,IAAI,MAAM,EAAE,QAAU,aAAa,KAAE,IAAI,CAAC,EAAE,CAAC,CAEpB;IAEnC;;;;;;OAMG;IACH,iBAFU,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAEhB;IAEhC;;;OAGG;IACH,0BAFU,IAAI,MAAM,EAAE,IAAI,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC,CAAC,CAEP;IAEzC,oFAAoF;IACpF,iBADW,OAAO,MAAM,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC,CAK9E;IAED,mBAAmB;IACnB,2CAAyB;IAEzB;;;;OAIG;IACH;gBAF8B,OAAO,wBAAwB,EAAE,iBAAiB;iBAAW,MAAM;OAEnE;IAE9B;;OAEG;IACH,wBAFU,WAAW,CAEkB;IAEvC,oBAAoB;IACpB,kBADW,KAAK,CACiB;IA2CrC;;;OAGG;IACH,oCAFW,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,EAAE,QAIjC;IAED;;OAEG;IACH,+BAFW,MAAM,YAShB;IAED;;;;OAIG;IACH,sBAHW,MAAM,QACN,GAAG,EAAE,QAaf;IAED;;;;;OAKG;IACH,gBAHW,kBAAkB,YAClB,GAAG,QAQb;IAED;;;OAGG;IACH,iCAwDC;IA4DG,uBAQC;IAGD,mCAGE;IAOF,sCAEE;IAGF,iBAA0C;IAW9C;;OAEG;IACH,gBAuBC;IAED,sCA6MC;IAED;;;OAGG;IACH,UAFa,QAAQ,OAAO,CAAC,CA6B5B;IAED,4BA8JC;IAvIe,iCAAoC;IAyIpD;;;OAGG;IACH,kBAHW,MAAM,KACN,MAAM,QAqEhB;IAED;;;;;;;OAOG;IACH,oDAHuB,QAAQ,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAYlF;IAED,sBA6CC;IAED,kBAIC;IAED,iCAOC;IAED,iCASC;IAED,qFAWC;;CACJ;;;;iCAt8BY,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB;4BAP7B,uBAAuB;qBAZ9C,qBAAqB;wBAIlB,yBAAyB;yCARR,yDAAyD;oBAYvD,oBAAoB;kBAT7C,wBAAwB;wBALlB,qBAAqB;oBATzB,uBAAuB;qBAOtB,oBAAoB"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataToVertices.d.ts","sourceRoot":"","sources":["../../../src/gl/dataToVertices.js"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH;IACI;;;OAGG;IAEH;;;;;;OAMG;IACH;;qBAJW,MAAM,EAAE;sBACR,MAAM;OAyFhB;IArFG,8FAAwB;IAIxB,sGAQK;IAQL,0BAAoC;IAEpC,8BAAoD;IA2DpD,mBAAmB;IAEnB,yFAAyF;IACzF,UADW,IAAI,GAAG,EAAE,UAAU,CAAC,CACkB;IAGrD;;;;OAIG;IACH,mBAFW,GAAG,QAcb;IAED;;OAEG;IACH,oBAFW,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,QAM5B;IAED;;;OAGG;IACH,cAHW,GAAG,QACH,MAAM,EAAE,kCAYlB;IAED;;;;OAIG;IACH,sBAJW,OAAO,qBAAqB,EAAE,IAAI,OAClC,MAAM,OACN,MAAM,QAgEhB;IAED;;;;;OAKG;IACH,mBAFW,OAAO,qBAAqB,EAAE,KAAK,QAI7C;IAhEO;;;MAAyB;IAkEjC;QAEQ,kJAAkJ;gBAAvI,OAAO,MAAM,EAAE;YAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAE9I,8BAA8B;;QAE9B,8CAA8C;;;MAIrD;CACJ;AAED;IACI;;;;;;OAMG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OA+BhB;IAnBG,qBAkBW;CA8BlB;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;gCACR,MAAM;uBAEN,MAAM,EAAE;mBACR,MAAM;OAwBhB;IARG,uBAAgC;IAEhC,8BAA8D;IAE9D,6CAA+D;IAC/D,4CAA6D;CA6CpE;AAED;IACI;;;;;;OAMG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OAShB;CACJ;AAED;IACI;;;;;OAKG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OAShB;CAYJ;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;qBACR,OAAO,2BAA2B,EAAE,aAAa;oBACjD,OAAO,MAAM,EAAE,GAAG,CAAC;wBACnB,MAAM;sBACN,OAAO;OA6CjB;IA9BG,4DAA2B;IAC3B,2DAA0B;IAE1B,gCAA4B;IAO5B,qCAAqC;IACrC,sBADmB,GAAG,KAAK,MAAM,CAMf;IAElB,oDAGC;IACD,qDAGC;IAED,8CAAiE;CAgJxE;;;;;;;;YAnnBS,MAAM;;;;WACN,MAAM;YACN,OAAO,yBAAyB,EAAE,MAAM;;yBAjBzB,mBAAmB"}
1
+ {"version":3,"file":"dataToVertices.d.ts","sourceRoot":"","sources":["../../../src/gl/dataToVertices.js"],"names":[],"mappings":"AAgBA;;;;;GAKG;AACH;IACI;;;OAGG;IAEH;;;;;;OAMG;IACH;;qBAJW,MAAM,EAAE;sBACR,MAAM;OAyFhB;IArFG,8FAAwB;IAIxB,sGAQK;IAQL,0BAAoC;IAEpC,8BAAoD;IA2DpD,mBAAmB;IAEnB,yFAAyF;IACzF,UADW,IAAI,GAAG,EAAE,UAAU,CAAC,CACkB;IAGrD;;;;OAIG;IACH,mBAFW,GAAG,QAcb;IAED;;OAEG;IACH,oBAFW,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,QAM5B;IAED;;;OAGG;IACH,cAHW,GAAG,QACH,MAAM,EAAE,kCAYlB;IAED;;;;OAIG;IACH,sBAJW,OAAO,qBAAqB,EAAE,IAAI,OAClC,MAAM,OACN,MAAM,QAgEhB;IAED;;;;;OAKG;IACH,mBAFW,OAAO,qBAAqB,EAAE,KAAK,QAI7C;IAhEO;;;MAAyB;IAkEjC;QAEQ,kJAAkJ;gBAAvI,OAAO,MAAM,EAAE;YAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAE9I,8BAA8B;;QAE9B,8CAA8C;;;MAIrD;CACJ;AAED;IACI;;;;;;OAMG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OA+BhB;IAnBG,qBAkBW;CA8BlB;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;gCACR,MAAM;uBAEN,MAAM,EAAE;mBACR,MAAM;OAwBhB;IARG,uBAAgC;IAEhC,8BAA8D;IAE9D,6CAA+D;IAC/D,4CAA6D;CA6CpE;AAED;IACI;;;;;;OAMG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OAShB;CACJ;AAED;IACI;;;;;OAKG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OAShB;CAYJ;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;qBACR,OAAO,2BAA2B,EAAE,aAAa;oBACjD,OAAO,MAAM,EAAE,GAAG,CAAC;wBACnB,MAAM;sBACN,OAAO;OA6CjB;IA9BG,4DAA2B;IAC3B,2DAA0B;IAE1B,gCAA4B;IAO5B,qCAAqC;IACrC,cADW,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAMf;IAElB,oDAGC;IACD,qDAGC;IAED,8CAAiE;CAgJxE;;;;;;;;YAnnBS,MAAM;;;;WACN,MAAM;YACN,OAAO,yBAAyB,EAAE,MAAM;;yBAjBzB,mBAAmB"}
@@ -1 +1 @@
1
- {"version":3,"file":"glslScaleGenerator.d.ts","sourceRoot":"","sources":["../../../src/gl/glslScaleGenerator.js"],"names":[],"mappings":";AAqDA;;;;;GAKG;AACH,kDAJW,OAAO,mBACP,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,mDALW,OAAO,mBACP,MAAM,SACN,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAClC,aAAa,CA4CzB;AAED;;;;;;;GAOG;AACH,4DAJW,OAAO,mBACP,MAAM,GACJ,aAAa,CAkCzB;AAED;;;;;;GAMG;AACH,0CANW,OAAO,SACP,GAAG,mBACH,MAAM,+BACN,OAAO,EAAE,GACP,aAAa,CA+BzB;AACD;;;;;GAKG;AACH,qDALW,OAAO,SACP,GAAG,mBACH,MAAM,GACJ,aAAa,CAyBzB;AAED;;;;;GAKG;AAEH,2CALW,OAAO,SACP,GAAG,cACH,OAAO,oBAAoB,EAAE,UAAU;;;;;;EAwQjD;AAED;;;;GAIG;AACH,wDAHW,OAAO,aACP,OAAO,qBAAqB,EAAE,QAAQ,EAAE,UAuClD;AAmED;;GAEG;AACH,qDAFW,OAAO,6BAQjB;AA+CD;;;;GAIG;AACH,iDAHW,OAAO,qBAAqB,EAAE,SAAS,WACvC,OAAO,oBAAoB,EAAE,OAAO;mBAQjB,MAAM;sBAAoB,sBAAsB,GAAG,sBAAsB,GAAG,uBAAuB;;;;;;EAkBhI;AAED;;;;GAIG;AACH,2CAFW,MAAM,WAIhB;AAED;;;;GAIG;AACH,sCAFW,MAAM,EAAE,WAIlB;AAMD;;;GAGG;AACH,sCAHW,MAAM,QACN,MAAM,EAAE,YAYlB;AAED;;;GAGG;AACH,2CAHW,MAAM,QACN,MAAM,EAAE,YAUlB;AAYD;;GAEG;AACH,qDAFW,MAAM,EAAE,YAIlB;AAED;;GAEG;AAEH;;;;;GAKG;AACH,+CAFW,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAAC,+DA4BtG;AAED;;GAEG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,GAAG,OAAO,oBAAoB,EAAE,OAAO,EAAE,UAIvF;AAwBD;;;;GAIG;AACH,uCAJW,MAAM,EAAE,cACR,MAAM,EAAE,GACN,MAAM,CAgClB;AAr1BD,uCAAwC;AACxC,uCAAwC;AACxC,oCAAqC;AACrC,mDAAoD;AACpD,6CAA8C;AAC9C,kDAAmD;AACnD,oDAAqD;AACrD,qCAAsC;AAmyB/B,uCAJI,GAAG,WACH,OAAO,GACL,MAAM,EAAE,CAQF;sBAnyBN,OAAO,oBAAoB,EAAE,OAAO;;aA+BvC,OAAO;kBACP,MAAM;0BACN,MAAM;oBACN,MAAM;oBACN,MAAM;kBACN,MAAM;kBACN,MAAM;mBACF,GAAG,KAAK,GAAG;;;;;8BA6fZ,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;;;;uBAgMhD,CAAC,MAAM,EAAE,OAAO,CAAC;0BApvBJ,WAAW"}
1
+ {"version":3,"file":"glslScaleGenerator.d.ts","sourceRoot":"","sources":["../../../src/gl/glslScaleGenerator.js"],"names":[],"mappings":";AAqDA;;;;;GAKG;AACH,kDAJW,OAAO,mBACP,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,mDALW,OAAO,mBACP,MAAM,SACN,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAClC,aAAa,CA4CzB;AAED;;;;;;;GAOG;AACH,4DAJW,OAAO,mBACP,MAAM,GACJ,aAAa,CAkCzB;AAED;;;;;;GAMG;AACH,0CANW,OAAO,SACP,GAAG,mBACH,MAAM,+BACN,OAAO,EAAE,GACP,aAAa,CA+BzB;AACD;;;;;GAKG;AACH,qDALW,OAAO,SACP,GAAG,mBACH,MAAM,GACJ,aAAa,CAyBzB;AAED;;;;;GAKG;AAEH,2CALW,OAAO,SACP,GAAG,cACH,OAAO,oBAAoB,EAAE,UAAU;;;;;;EAwQjD;AAED;;;;GAIG;AACH,wDAHW,OAAO,aACP,OAAO,qBAAqB,EAAE,QAAQ,EAAE,UAuClD;AAmED;;GAEG;AACH,qDAFW,OAAO,6BAQjB;AA+CD;;;;GAIG;AACH,iDAHW,OAAO,qBAAqB,EAAE,SAAS,WACvC,OAAO,oBAAoB,EAAE,OAAO;mBAQjB,MAAM;sBAAoB,sBAAsB,GAAG,sBAAsB,GAAG,uBAAuB;;;;;;EAkBhI;AAED;;;;GAIG;AACH,2CAFW,MAAM,WAIhB;AAED;;;;GAIG;AACH,sCAFW,MAAM,EAAE,WAIlB;AAMD;;;GAGG;AACH,sCAHW,MAAM,QACN,MAAM,EAAE,YAYlB;AAED;;;GAGG;AACH,2CAHW,MAAM,QACN,MAAM,EAAE,YAUlB;AAYD;;GAEG;AACH,qDAFW,MAAM,EAAE,YAIlB;AAED;;GAEG;AAEH;;;;;GAKG;AACH,+CAFW,QAAQ,OAAO,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAAC,+DA4BtG;AAED;;GAEG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,GAAG,OAAO,oBAAoB,EAAE,OAAO,EAAE,UAIvF;AAwBD;;;;GAIG;AACH,uCAJW,MAAM,EAAE,cACR,MAAM,EAAE,GACN,MAAM,CAgClB;AAr1BD,uCAAwC;AACxC,uCAAwC;AACxC,oCAAqC;AACrC,mDAAoD;AACpD,6CAA8C;AAC9C,kDAAmD;AACnD,oDAAqD;AACrD,qCAAsC;AAmyB/B,uCAJI,GAAG,WACH,OAAO,GACL,MAAM,EAAE,CAQF;sBAnyBN,OAAO,oBAAoB,EAAE,OAAO;;aA+BvC,OAAO;kBACP,MAAM;0BACN,MAAM;oBACN,MAAM;oBACN,MAAM;kBACN,MAAM;kBACN,MAAM;eACN,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG;;;;;8BA6fZ,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;;;;uBAgMhD,CAAC,MAAM,EAAE,OAAO,CAAC;0BApvBJ,WAAW"}
@@ -135,9 +135,7 @@ export interface Axis extends BaseAxis {
135
135
 
136
136
  export interface BaseAxis<
137
137
  N = number,
138
- NS = number,
139
138
  B = boolean,
140
- BNS = number | boolean,
141
139
  S = string,
142
140
  C = string,
143
141
  FW = string,
@@ -130,7 +130,7 @@ export interface Scale {
130
130
  round?: boolean;
131
131
 
132
132
  /**
133
- * For _[continuous](https://vega.github.io/vega-lite/docs/scale.html#continuous)_ scales, expands the scale domain to accommodate the specified number of pixels on each of the scale range. The scale range must represent pixels for this parameter to function as intended. Padding adjustment is performed prior to all other adjustments, including the effects of the `zero`, `nice`, `domainMin`, and `domainMax` properties.
133
+ * For _[continuous](https://vega.github.io/vega-lite/docs/scale.html#continuous)_ scales, expands the scale domain to accommodate the specified number of pixels on each of the scale range. The scale range must represent pixels for this parameter to function as intended. Padding adjustment is performed prior to all other adjustments, including the effects of the `zero`, `nice`, `domainMin`, and `domainMax` properties.
134
134
  *
135
135
  * For _[band](https://vega.github.io/vega-lite/docs/scale.html#band)_ scales, shortcut for setting `paddingInner` and `paddingOuter` to the same value.
136
136
  *
@@ -8,9 +8,15 @@
8
8
  *
9
9
  * @param {T} template The template object that
10
10
  * @returns {(function(T):T) & { properties: string[] }}
11
- * @template T
11
+ * @template {object} [T=object]
12
12
  */
13
- export default function createCloner<T>(template: T): ((arg0: T) => T) & {
13
+ export default function createCloner<T extends object = object>(template: T): ((arg0: T) => T) & {
14
14
  properties: string[];
15
15
  };
16
+ /**
17
+ * Needed for proxied Apache Arrow tables.
18
+ *
19
+ * @param {object} obj
20
+ */
21
+ export function getAllProperties(obj: object): string[];
16
22
  //# sourceMappingURL=cloner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cloner.d.ts","sourceRoot":"","sources":["../../../src/utils/cloner.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH;gBAH6C,MAAM,EAAE;EAwBpD"}
1
+ {"version":3,"file":"cloner.d.ts","sourceRoot":"","sources":["../../../src/utils/cloner.js"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH;gBAH6C,MAAM,EAAE;EAwBpD;AAED;;;;GAIG;AACH,sCAFW,MAAM,YAYhB"}
@@ -8,12 +8,12 @@
8
8
  *
9
9
  * @param {T} template The template object that
10
10
  * @returns {(function(T):T) & { properties: string[] }}
11
- * @template T
11
+ * @template {object} [T=object]
12
12
  */
13
13
  export default function createCloner(template) {
14
14
  // TODO: Check that only properties, not methods get cloned
15
15
  const properties = /** @type {string[]} */ (
16
- Object.keys(template).filter((k) => typeof k == "string")
16
+ getAllProperties(template).filter((k) => typeof k == "string")
17
17
  );
18
18
 
19
19
  const cloner = /** @type {(function(T):T) & { properties: string[] }} */ (
@@ -32,3 +32,20 @@ export default function createCloner(template) {
32
32
 
33
33
  return cloner;
34
34
  }
35
+
36
+ /**
37
+ * Needed for proxied Apache Arrow tables.
38
+ *
39
+ * @param {object} obj
40
+ */
41
+ export function getAllProperties(obj) {
42
+ /** @type {string[]} */
43
+ let props = [];
44
+ do {
45
+ props = props.concat(Object.keys(obj));
46
+ obj = Object.getPrototypeOf(obj);
47
+ } while (obj && obj !== Object.prototype); // Traverse until the end of the prototype chain
48
+
49
+ const uniqueProps = Array.from(new Set(props));
50
+ return uniqueProps;
51
+ }
@@ -1,10 +1,11 @@
1
1
  import { expect, test } from "vitest";
2
- import createCloner from "./cloner.js";
2
+ import createCloner, { getAllProperties } from "./cloner.js";
3
3
 
4
4
  const template = {
5
+ 1: "iddqd",
5
6
  a: 1,
6
- b: "xyzzy",
7
- 3: "iddqd",
7
+ c: "xyzzy",
8
+ b: "idclip",
8
9
  };
9
10
 
10
11
  test("Cloner clones object properly", () => {
@@ -14,11 +15,21 @@ test("Cloner clones object properly", () => {
14
15
  expect(makeClone(template)).not.toBe(template);
15
16
 
16
17
  const another = {
18
+ 1: "hello",
17
19
  a: 2,
18
- b: "idkfa",
19
- 3: "hello",
20
+ c: "idkfa",
21
+ b: "idclip",
20
22
  };
21
23
 
22
24
  expect(makeClone(another)).toEqual(another);
23
25
  expect(makeClone(another)).not.toBe(another);
24
26
  });
27
+
28
+ test("getAllProperties", () => {
29
+ expect(getAllProperties(template)).toEqual(["1", "a", "c", "b"]);
30
+
31
+ const obj = Object.create(template);
32
+ obj.d = 42;
33
+
34
+ expect(getAllProperties(obj)).toEqual(["d", "1", "a", "c", "b"]);
35
+ });