@genome-spy/core 0.53.1 → 0.55.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 (121) hide show
  1. package/dist/bundle/{_commonjsHelpers-BIiJCwQW.js → _commonjsHelpers-DSebQMb9.js} +2 -4
  2. package/dist/bundle/{index-B5cesONJ.js → index-B6haPltu.js} +33 -65
  3. package/dist/bundle/{index-uO0O4Uv-.js → index-BhtH2nrr.js} +3 -5
  4. package/dist/bundle/{index-_tI-fMQF.js → index-BpoXW6_f.js} +5 -6
  5. package/dist/bundle/{index-BywMLhhd.js → index-COovE1Oo.js} +75 -105
  6. package/dist/bundle/{index-BJLu48Hz.js → index-CjesiOz_.js} +2 -2
  7. package/dist/bundle/{index-oqw_s02W.js → index-HGQZ77IK.js} +2 -2
  8. package/dist/bundle/{index-DAJ8JQLE.js → index-WACuLhO6.js} +64 -119
  9. package/dist/bundle/{index-e0oKgZbZ.js → index-_ftu0t0z.js} +2 -3
  10. package/dist/bundle/{index-CSayoXbw.js → index-nCZhu2o-.js} +3 -3
  11. package/dist/bundle/index.es.js +4363 -4313
  12. package/dist/bundle/index.js +105 -99
  13. package/dist/bundle/{long-D4tVjLLz.js → long-BXK3UEks.js} +9 -16
  14. package/dist/bundle/{remoteFile-BkTxwFub.js → remoteFile-DuIsnepi.js} +1 -1
  15. package/dist/schema.json +36 -2
  16. package/dist/src/data/collector.d.ts.map +1 -1
  17. package/dist/src/data/collector.js +4 -0
  18. package/dist/src/data/flowNode.d.ts +14 -5
  19. package/dist/src/data/flowNode.d.ts.map +1 -1
  20. package/dist/src/data/flowNode.js +30 -7
  21. package/dist/src/data/sources/dataSource.d.ts +1 -2
  22. package/dist/src/data/sources/dataSource.d.ts.map +1 -1
  23. package/dist/src/data/sources/dataSource.js +0 -1
  24. package/dist/src/data/sources/inlineSource.d.ts +4 -0
  25. package/dist/src/data/sources/inlineSource.d.ts.map +1 -1
  26. package/dist/src/data/sources/inlineSource.js +18 -0
  27. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  28. package/dist/src/data/sources/lazy/axisGenomeSource.js +4 -0
  29. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  30. package/dist/src/data/sources/lazy/axisTickSource.js +4 -0
  31. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  32. package/dist/src/data/sources/lazy/bamSource.js +4 -0
  33. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  34. package/dist/src/data/sources/lazy/bigBedSource.js +4 -0
  35. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  36. package/dist/src/data/sources/lazy/bigWigSource.js +4 -0
  37. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  38. package/dist/src/data/sources/lazy/gff3Source.js +4 -0
  39. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  40. package/dist/src/data/sources/lazy/indexedFastaSource.js +4 -0
  41. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +2 -0
  42. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  43. package/dist/src/data/sources/lazy/singleAxisLazySource.js +2 -0
  44. package/dist/src/data/sources/namedSource.d.ts.map +1 -1
  45. package/dist/src/data/sources/namedSource.js +4 -0
  46. package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
  47. package/dist/src/data/sources/sequenceSource.js +4 -0
  48. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  49. package/dist/src/data/sources/urlSource.js +4 -0
  50. package/dist/src/data/transforms/aggregate.d.ts +12 -9
  51. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  52. package/dist/src/data/transforms/aggregate.js +67 -24
  53. package/dist/src/data/transforms/aggregate.test.d.ts +2 -0
  54. package/dist/src/data/transforms/aggregate.test.d.ts.map +1 -0
  55. package/dist/src/data/transforms/aggregate.test.js +134 -0
  56. package/dist/src/data/transforms/aggregateOps.d.ts +6 -0
  57. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -0
  58. package/dist/src/data/transforms/aggregateOps.js +17 -0
  59. package/dist/src/data/transforms/clone.d.ts +2 -2
  60. package/dist/src/data/transforms/clone.d.ts.map +1 -1
  61. package/dist/src/data/transforms/clone.js +4 -3
  62. package/dist/src/data/transforms/coverage.d.ts +2 -2
  63. package/dist/src/data/transforms/coverage.d.ts.map +1 -1
  64. package/dist/src/data/transforms/coverage.js +4 -3
  65. package/dist/src/data/transforms/filter.d.ts +2 -2
  66. package/dist/src/data/transforms/filter.d.ts.map +1 -1
  67. package/dist/src/data/transforms/filter.js +3 -3
  68. package/dist/src/data/transforms/filterScoredLabels.d.ts +2 -2
  69. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  70. package/dist/src/data/transforms/filterScoredLabels.js +4 -3
  71. package/dist/src/data/transforms/flatten.d.ts +3 -2
  72. package/dist/src/data/transforms/flatten.d.ts.map +1 -1
  73. package/dist/src/data/transforms/flatten.js +6 -3
  74. package/dist/src/data/transforms/flattenCompressedExons.d.ts +2 -2
  75. package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -1
  76. package/dist/src/data/transforms/flattenCompressedExons.js +4 -3
  77. package/dist/src/data/transforms/flattenDelimited.d.ts +2 -2
  78. package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -1
  79. package/dist/src/data/transforms/flattenDelimited.js +4 -3
  80. package/dist/src/data/transforms/flattenSequence.d.ts +3 -2
  81. package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -1
  82. package/dist/src/data/transforms/flattenSequence.js +6 -3
  83. package/dist/src/data/transforms/formula.d.ts +2 -2
  84. package/dist/src/data/transforms/formula.d.ts.map +1 -1
  85. package/dist/src/data/transforms/formula.js +4 -3
  86. package/dist/src/data/transforms/identifier.d.ts +2 -2
  87. package/dist/src/data/transforms/identifier.d.ts.map +1 -1
  88. package/dist/src/data/transforms/identifier.js +4 -3
  89. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +3 -2
  90. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
  91. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +11 -4
  92. package/dist/src/data/transforms/measureText.d.ts +5 -4
  93. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  94. package/dist/src/data/transforms/measureText.js +11 -8
  95. package/dist/src/data/transforms/pileup.d.ts +2 -2
  96. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  97. package/dist/src/data/transforms/pileup.js +4 -3
  98. package/dist/src/data/transforms/project.d.ts +3 -2
  99. package/dist/src/data/transforms/project.d.ts.map +1 -1
  100. package/dist/src/data/transforms/project.js +6 -3
  101. package/dist/src/data/transforms/regexExtract.d.ts +3 -2
  102. package/dist/src/data/transforms/regexExtract.d.ts.map +1 -1
  103. package/dist/src/data/transforms/regexExtract.js +6 -3
  104. package/dist/src/data/transforms/regexFold.d.ts +3 -2
  105. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  106. package/dist/src/data/transforms/regexFold.js +6 -3
  107. package/dist/src/data/transforms/sample.d.ts +3 -2
  108. package/dist/src/data/transforms/sample.d.ts.map +1 -1
  109. package/dist/src/data/transforms/sample.js +5 -3
  110. package/dist/src/data/transforms/stack.d.ts +2 -2
  111. package/dist/src/data/transforms/stack.d.ts.map +1 -1
  112. package/dist/src/data/transforms/stack.js +4 -3
  113. package/dist/src/data/transforms/transform.d.ts +10 -0
  114. package/dist/src/data/transforms/transform.d.ts.map +1 -0
  115. package/dist/src/data/transforms/transform.js +22 -0
  116. package/dist/src/spec/title.d.ts +1 -1
  117. package/dist/src/spec/transform.d.ts +32 -2
  118. package/dist/src/view/axisView.js +2 -2
  119. package/dist/src/view/gridView.d.ts.map +1 -1
  120. package/dist/src/view/gridView.js +7 -3
  121. package/package.json +2 -2
@@ -1,5 +1,5 @@
1
- import { b as Pi } from "./index-B5cesONJ.js";
2
- import { g as Da } from "./_commonjsHelpers-BIiJCwQW.js";
1
+ import { b as Pi } from "./index-B6haPltu.js";
2
+ import { g as Da } from "./_commonjsHelpers-DSebQMb9.js";
3
3
  var re = {};
4
4
  (function(e) {
5
5
  var i = typeof Uint8Array < "u" && typeof Uint16Array < "u" && typeof Int32Array < "u";
@@ -248,8 +248,7 @@ function ti(e, i, t) {
248
248
  do
249
249
  ee(e, n, e.bl_tree);
250
250
  while (--f !== 0);
251
- else
252
- n !== 0 ? (n !== r && (ee(e, n, e.bl_tree), f--), ee(e, Xi, e.bl_tree), C(e, f - 3, 2)) : f <= 10 ? (ee(e, qi, e.bl_tree), C(e, f - 3, 3)) : (ee(e, Gi, e.bl_tree), C(e, f - 11, 7));
251
+ else n !== 0 ? (n !== r && (ee(e, n, e.bl_tree), f--), ee(e, Xi, e.bl_tree), C(e, f - 3, 2)) : f <= 10 ? (ee(e, qi, e.bl_tree), C(e, f - 3, 3)) : (ee(e, Gi, e.bl_tree), C(e, f - 11, 7));
253
252
  f = 0, r = n, h === 0 ? (_ = 138, l = 3) : n === h ? (_ = 6, l = 3) : (_ = 7, l = 4);
254
253
  }
255
254
  }
@@ -726,8 +725,7 @@ function $n() {
726
725
  }
727
726
  var va = $n, Ce = ie, Ue = re, Dt = Ee, Rt = Kt, Mn = va, ga = Object.prototype.toString, Hn = 0, yt = 4, ze = 0, fi = 1, hi = 2, Pn = -1, Kn = 0, Yn = 8;
728
727
  function be(e) {
729
- if (!(this instanceof be))
730
- return new be(e);
728
+ if (!(this instanceof be)) return new be(e);
731
729
  this.options = Ue.assign({
732
730
  level: Pn,
733
731
  method: Yn,
@@ -1183,8 +1181,7 @@ function vr(e, i) {
1183
1181
  f--, l += a[n++] << o, o += 8;
1184
1182
  }
1185
1183
  t.length = l, t.head && (t.head.extra_len = l), t.flags & 512 && (m[0] = l & 255, m[1] = l >>> 8 & 255, t.check = Q(t.check, m, 2, 0)), l = 0, o = 0;
1186
- } else
1187
- t.head && (t.head.extra = null);
1184
+ } else t.head && (t.head.extra = null);
1188
1185
  t.mode = pi;
1189
1186
  case pi:
1190
1187
  if (t.flags & 1024 && (u = t.length, u > f && (u = f), u && (t.head && (y = t.head.extra_len - t.length, t.head.extra || (t.head.extra = new Array(t.head.extra_len)), M.arraySet(
@@ -1209,8 +1206,7 @@ function vr(e, i) {
1209
1206
  while (y && u < f);
1210
1207
  if (t.flags & 512 && (t.check = Q(t.check, a, u, n)), f -= u, n += u, y)
1211
1208
  break e;
1212
- } else
1213
- t.head && (t.head.name = null);
1209
+ } else t.head && (t.head.name = null);
1214
1210
  t.length = 0, t.mode = ki;
1215
1211
  case ki:
1216
1212
  if (t.flags & 4096) {
@@ -1222,8 +1218,7 @@ function vr(e, i) {
1222
1218
  while (y && u < f);
1223
1219
  if (t.flags & 512 && (t.check = Q(t.check, a, u, n)), f -= u, n += u, y)
1224
1220
  break e;
1225
- } else
1226
- t.head && (t.head.comment = null);
1221
+ } else t.head && (t.head.comment = null);
1227
1222
  t.mode = Ei;
1228
1223
  case Ei:
1229
1224
  if (t.flags & 512) {
@@ -1603,8 +1598,7 @@ function pr() {
1603
1598
  }
1604
1599
  var xr = pr, Ae = j, Me = re, _t = Ee, L = Na, Ct = Kt, kr = va, Er = xr, za = Object.prototype.toString;
1605
1600
  function xe(e) {
1606
- if (!(this instanceof xe))
1607
- return new xe(e);
1601
+ if (!(this instanceof xe)) return new xe(e);
1608
1602
  this.options = Me.assign({
1609
1603
  chunkSize: 16384,
1610
1604
  windowBits: 0,
@@ -2317,8 +2311,7 @@ s.shiftRightUnsigned = function(i) {
2317
2311
  if (i < 32) {
2318
2312
  var a = this.low;
2319
2313
  return O(a >>> i | t << 32 - i, t >>> i, this.unsigned);
2320
- } else
2321
- return i === 32 ? O(t, 0, this.unsigned) : O(t >>> i - 32, 0, this.unsigned);
2314
+ } else return i === 32 ? O(t, 0, this.unsigned) : O(t >>> i - 32, 0, this.unsigned);
2322
2315
  };
2323
2316
  s.shru = s.shiftRightUnsigned;
2324
2317
  s.shr_u = s.shiftRightUnsigned;
@@ -1,4 +1,4 @@
1
- import { b as d } from "./index-B5cesONJ.js";
1
+ import { b as d } from "./index-B6haPltu.js";
2
2
  class b {
3
3
  async getBufferFromResponse(e) {
4
4
  const t = await e.arrayBuffer();
package/dist/schema.json CHANGED
@@ -2,16 +2,50 @@
2
2
  "$ref": "#/definitions/RootSpec",
3
3
  "$schema": "http://json-schema.org/draft-07/schema#",
4
4
  "definitions": {
5
+ "AggregateOp": {
6
+ "enum": [
7
+ "count",
8
+ "valid",
9
+ "sum",
10
+ "min",
11
+ "max",
12
+ "mean",
13
+ "median",
14
+ "variance"
15
+ ],
16
+ "type": "string"
17
+ },
5
18
  "AggregateParams": {
6
19
  "additionalProperties": false,
7
20
  "properties": {
21
+ "as": {
22
+ "description": "The names for the output fields corresponding to each aggregated field. If not provided, names will be automatically created using the operation and field names (e.g., `sum_field`, `average_field`).",
23
+ "items": {
24
+ "type": "string"
25
+ },
26
+ "type": "array"
27
+ },
28
+ "fields": {
29
+ "description": "The data fields to apply aggregate functions to. This array should correspond with the `ops` and `as` arrays. If no fields or operations are specified, a count aggregation will be applied by default.",
30
+ "items": {
31
+ "$ref": "#/definitions/Field"
32
+ },
33
+ "type": "array"
34
+ },
8
35
  "groupby": {
9
- "description": "Which fields to use for grouping. Missing `groupby` results in a single group that includes all the data items.",
36
+ "description": "The fields by which to group the data. If these are not defined, all data objects will be grouped into a single category.",
10
37
  "items": {
11
38
  "$ref": "#/definitions/Field"
12
39
  },
13
40
  "type": "array"
14
41
  },
42
+ "ops": {
43
+ "description": "The aggregation operations to be performed on the fields, such as `\"sum\"`, `\"average\"`, or `\"count\"`.",
44
+ "items": {
45
+ "$ref": "#/definitions/AggregateOp"
46
+ },
47
+ "type": "array"
48
+ },
15
49
  "type": {
16
50
  "const": "aggregate",
17
51
  "description": "The type of the transform to be applied",
@@ -8020,7 +8054,7 @@
8020
8054
  },
8021
8055
  "orient": {
8022
8056
  "$ref": "#/definitions/TitleOrient",
8023
- "description": "Default title orientation (`\"top\"`, `\"bottom\"`, `\"left\"`, or `\"right\"`)"
8057
+ "description": "Default title orientation (`\"none\"`, `\"top\"`, `\"bottom\"`, `\"left\"`, or `\"right\"`)"
8024
8058
  },
8025
8059
  "style": {
8026
8060
  "description": "A mark style property to apply to the title text mark. If not specified, a default style of `\"group-title\"` is applied.",
@@ -1 +1 @@
1
- {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../src/data/collector.js"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH;IA8BI;;OAEG;IACH,qBAFW,OAAO,sBAAsB,EAAE,aAAa,EAetD;IAVG,qDAA2C;IAE3C,2CAA2C;IAC3C,WADW,QAAU,SAAS,KAAE,IAAI,CAAC,EAAE,CACpB;IAGnB,yFAAyF;IACzF,cADW,IAAI,OAAO,oBAAoB,EAAE,MAAM,EAAE,+BAAO,CACN;IAuHzD;;OAEG;IACH,mDAmBC;IAED;;;OAGG;IACH,6DAF6B,IAAI,QAUhC;IAED;;OAEG;IACH,uBAMC;IA8CD;;;;OAIG;IACH,8BAFW,MAAM,iCA4BhB;;CACJ;qBA3SyD,eAAe"}
1
+ {"version":3,"file":"collector.d.ts","sourceRoot":"","sources":["../../../src/data/collector.js"],"names":[],"mappings":"AAUA;;;;;GAKG;AACH;IAkCI;;OAEG;IACH,qBAFW,OAAO,sBAAsB,EAAE,aAAa,EAetD;IAVG,qDAA2C;IAE3C,2CAA2C;IAC3C,WADW,QAAU,SAAS,KAAE,IAAI,CAAC,EAAE,CACpB;IAGnB,yFAAyF;IACzF,cADW,IAAI,OAAO,oBAAoB,EAAE,MAAM,EAAE,+BAAO,CACN;IAuHzD;;OAEG;IACH,mDAmBC;IAED;;;OAGG;IACH,6DAF6B,IAAI,QAUhC;IAED;;OAEG;IACH,uBAMC;IA8CD;;;;OAIG;IACH,8BAFW,MAAM,iCA4BhB;;CACJ;qBA/SyD,eAAe"}
@@ -44,6 +44,10 @@ export default class Collector extends FlowNode {
44
44
  return BEHAVIOR_COLLECTS;
45
45
  }
46
46
 
47
+ get label() {
48
+ return "collect";
49
+ }
50
+
47
51
  /**
48
52
  * @param {import("../spec/transform.js").CollectParams} [params]
49
53
  */
@@ -37,14 +37,24 @@ export default class FlowNode {
37
37
  * @param {ParamMediatorProvider} [paramMediatorProvider]
38
38
  */
39
39
  constructor(paramMediatorProvider?: ParamMediatorProvider);
40
+ stats: {
41
+ count: number;
42
+ /** @type {Datum} */
43
+ first: Datum;
44
+ };
40
45
  /**
41
46
  * An object that provides a paramMediator. (Most likely a View)
42
47
  *
43
48
  * @type {ParamMediatorProvider}
44
- * @protected
45
49
  */
46
- protected paramMediatorProvider: ParamMediatorProvider;
50
+ paramMediatorProvider: ParamMediatorProvider;
47
51
  get behavior(): number;
52
+ /**
53
+ * A human-readable label for the node. Used for debugging and logging.
54
+ *
55
+ * @returns {string}
56
+ */
57
+ get label(): string;
48
58
  /** @type {FlowNode[]} */
49
59
  children: FlowNode[];
50
60
  /** @type {FlowNode} */
@@ -62,11 +72,10 @@ export default class FlowNode {
62
72
  */
63
73
  initialize(): void;
64
74
  /**
65
- *
66
- * @param {any} datum
75
+ * @param {Datum} datum
67
76
  * @protected
68
77
  */
69
- protected _propagate(datum: any): void;
78
+ protected _propagate(datum: Datum): void;
70
79
  /**
71
80
  *
72
81
  * @param {FlowNode} parent
@@ -1 +1 @@
1
- {"version":3,"file":"flowNode.d.ts","sourceRoot":"","sources":["../../../src/data/flowNode.js"],"names":[],"mappings":"AAgTA;;;GAGG;AACH,uCAHW,OAAO,uBAAuB,EAAE,SAAS,0DAKnD;AAED;;;GAGG;AACH,wCAHW,OAAO,uBAAuB,EAAE,SAAS,2DAKnD;AA5TD;;;GAGG;AACH,qCAAsC;AAEtC;;;GAGG;AACH,uCAAwC;AAExC;;;GAGG;AACH,uCAAwC;AAExC;;GAEG;AAEH;;;;;GAKG;AACH;IAaI;;OAEG;IACH,oCAFW,qBAAqB,EAa/B;IA1BD;;;;;OAKG;IACH,iCAHU,qBAAqB,CAGF;IAE7B,uBAEC;IAQG,yBAAyB;IACzB,UADW,QAAQ,EAAE,CACH;IAElB,uBAAuB;IACvB,QADW,QAAQ,CACI;IAEvB,2CAA2C;IAC3C,mBAAsB;IAG1B;;;OAGG;IACH,cAMC;IAED;;;OAGG;IACH,mBAEC;IAyND;;;;OAIG;IACH,4BAHW,GAAG,QAKb;IA9MD;;;OAGG;IACH,kBAFW,QAAQ,QAIlB;IAED;;;OAGG;IACH,gBAFW,QAAQ,QAUlB;IAED;;OAEG;IACH,YAFW,QAAQ,QAQlB;IAED;;OAEG;IACH,6BAFW,QAAQ,QAMlB;IAED;;OAEG;IACH,0BAFW,QAAQ,QAalB;IAED;;;OAGG;IACH,mBAFW,QAAQ,QAWlB;IAED;;OAEG;IACH,eAiBC;IAED,kBAEC;IAED,uBAEC;IAED,sBAEC;IAED;;;;OAIG;IACH,eAFW,QAAU,QAAQ,KAAE,IAAI,CAAC,GAAG;QAAE,aAAa,CAAC,SAAW,QAAQ,KAAE,IAAI,CAAA;KAAC,QAchF;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,MAAM,CAWlB;IAED;;;OAGG;IACH,cAFW,KAAK,QAKf;IAED,iBAMC;IAED;;;;OAIG;IACH,sBAFW,OAAO,uBAAuB,EAAE,SAAS,QAMnD;IAED;;;OAGG;IACH,0EASC;IAED;;;;OAIG;IACH,8BAQC;;CAUJ;oCAzRY;IAAC,aAAa,EAAE,OAAO,0BAA0B,EAAE,OAAO,CAAA;CAAC;;;;oBAM3D,OAAO,MAAM,EAAE,GAAG,CAAC;;;;mBACnB,KAAK,EAAE"}
1
+ {"version":3,"file":"flowNode.d.ts","sourceRoot":"","sources":["../../../src/data/flowNode.js"],"names":[],"mappings":"AAuUA;;;GAGG;AACH,uCAHW,OAAO,uBAAuB,EAAE,SAAS,0DAKnD;AAED;;;GAGG;AACH,wCAHW,OAAO,uBAAuB,EAAE,SAAS,2DAKnD;AAnVD;;;GAGG;AACH,qCAAsC;AAEtC;;;GAGG;AACH,uCAAwC;AAExC;;;GAGG;AACH,uCAAwC;AAExC;;GAEG;AAEH;;;;;GAKG;AACH;IA2BI;;OAEG;IACH,oCAFW,qBAAqB,EAa/B;IAxCD;;QAEI,oBAAoB;eAAT,KAAK;MAElB;IAEF;;;;OAIG;IACH,uBAFU,qBAAqB,CAEF;IAE7B,uBAEC;IAED;;;;OAIG;IACH,oBAEC;IAQG,yBAAyB;IACzB,UADW,QAAQ,EAAE,CACH;IAElB,uBAAuB;IACvB,QADW,QAAQ,CACI;IAEvB,2CAA2C;IAC3C,mBAAsB;IAG1B;;;OAGG;IACH,cASC;IAED;;;OAGG;IACH,mBAEC;IAgOD;;;OAGG;IACH,4BAHW,KAAK,QAKf;IA7MD;;;OAGG;IACH,kBAFW,QAAQ,QAIlB;IAED;;;OAGG;IACH,gBAFW,QAAQ,QAUlB;IAED;;OAEG;IACH,YAFW,QAAQ,QAQlB;IAED;;OAEG;IACH,6BAFW,QAAQ,QAMlB;IAED;;OAEG;IACH,0BAFW,QAAQ,QAalB;IAED;;;OAGG;IACH,mBAFW,QAAQ,QAWlB;IAED;;OAEG;IACH,eAiBC;IAED,kBAEC;IAED,uBAEC;IAED,sBAEC;IAED;;;;OAIG;IACH,eAFW,QAAU,QAAQ,KAAE,IAAI,CAAC,GAAG;QAAE,aAAa,CAAC,SAAW,QAAQ,KAAE,IAAI,CAAA;KAAC,QAchF;IAED;;;OAGG;IACH,wBAHW,MAAM,GACJ,MAAM,CAWlB;IAED;;;OAGG;IACH,cAFW,KAAK,QAKf;IAED,iBAMC;IAED;;;;OAIG;IACH,sBAFW,OAAO,uBAAuB,EAAE,SAAS,QAMnD;IAED;;;OAGG;IACH,0EASC;IAED;;;;OAIG;IACH,8BAQC;;CASJ;oCAhTY;IAAC,aAAa,EAAE,OAAO,0BAA0B,EAAE,OAAO,CAAA;CAAC;;;;oBAM3D,OAAO,MAAM,EAAE,GAAG,CAAC;;;;mBACnB,KAAK,EAAE"}
@@ -29,11 +29,16 @@ export const BEHAVIOR_COLLECTS = 1 << 2;
29
29
  * @typedef {Datum[]} Data
30
30
  */
31
31
  export default class FlowNode {
32
+ stats = {
33
+ count: 0,
34
+ /** @type {Datum} */
35
+ first: null,
36
+ };
37
+
32
38
  /**
33
39
  * An object that provides a paramMediator. (Most likely a View)
34
40
  *
35
41
  * @type {ParamMediatorProvider}
36
- * @protected
37
42
  */
38
43
  paramMediatorProvider = null;
39
44
 
@@ -41,6 +46,15 @@ export default class FlowNode {
41
46
  return 0;
42
47
  }
43
48
 
49
+ /**
50
+ * A human-readable label for the node. Used for debugging and logging.
51
+ *
52
+ * @returns {string}
53
+ */
54
+ get label() {
55
+ return `(${this.constructor.name})`;
56
+ }
57
+
44
58
  /**
45
59
  * @param {ParamMediatorProvider} [paramMediatorProvider]
46
60
  */
@@ -67,6 +81,9 @@ export default class FlowNode {
67
81
  for (const child of this.children) {
68
82
  child.reset();
69
83
  }
84
+
85
+ this.stats.count = 0;
86
+ this.stats.first = null;
70
87
  }
71
88
 
72
89
  /**
@@ -84,13 +101,20 @@ export default class FlowNode {
84
101
  #updatePropagator() {
85
102
  this._propagate = Function(
86
103
  "children",
104
+ "stats",
87
105
  range(this.children.length)
88
106
  .map((i) => `const child${i} = children[${i}];`)
89
107
  .join("\n") +
90
- `return function propagate(datum) {${range(this.children.length)
108
+ `return function propagate(datum) {
109
+ if (stats.count === 0) {
110
+ stats.first = structuredClone(datum);
111
+ }
112
+ stats.count++;
113
+ ${range(this.children.length)
91
114
  .map((i) => `child${i}.handle(datum);`)
92
- .join("\n")}}`
93
- )(this.children);
115
+ .join("\n")}
116
+ };`
117
+ )(this.children, this.stats);
94
118
  }
95
119
 
96
120
  /**
@@ -227,7 +251,7 @@ export default class FlowNode {
227
251
  const childTree = this.children
228
252
  .map((child) => child.subtreeToString(depth + 1))
229
253
  .join("");
230
- return `${" ".repeat(depth * 2)}* ${this.constructor.name}${
254
+ return `${" ".repeat(depth * 2)}* ${this.label}${
231
255
  ("identifier" in this && this.identifier
232
256
  ? ": " + this.identifier
233
257
  : "") ?? ""
@@ -293,8 +317,7 @@ export default class FlowNode {
293
317
  }
294
318
 
295
319
  /**
296
- *
297
- * @param {any} datum
320
+ * @param {Datum} datum
298
321
  * @protected
299
322
  */
300
323
  _propagate(datum) {
@@ -5,9 +5,8 @@ export default class DataSource extends FlowNode {
5
5
  constructor(view: import("../../view/view.js").default);
6
6
  /**
7
7
  * @type {import("../../view/view.js").default}
8
- * @protected
9
8
  */
10
- protected view: import("../../view/view.js").default;
9
+ view: import("../../view/view.js").default;
11
10
  /**
12
11
  * Returns a string that identifies a data source. Data sources with the
13
12
  * same identifier can be merged.
@@ -1 +1 @@
1
- {"version":3,"file":"dataSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataSource.js"],"names":[],"mappings":"AAEA;IAOI;;OAEG;IACH,kBAFW,OAAO,oBAAoB,EAAE,OAAO,EAM9C;IAbD;;;OAGG;IACH,gBAHU,OAAO,oBAAoB,EAAE,OAAO,CAGzC;IAWL;;;;;OAKG;IACH,yBAEC;IAED;;;;;;OAMG;IACH,mCAJW,OAAO,4BAA4B,EAAE,iBAAiB,WACtD,MAAM,QAKhB;IAcD,sBAEC;CAKJ;qBA1DoB,gBAAgB"}
1
+ {"version":3,"file":"dataSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataSource.js"],"names":[],"mappings":"AAEA;IAMI;;OAEG;IACH,kBAFW,OAAO,oBAAoB,EAAE,OAAO,EAM9C;IAZD;;OAEG;IACH,MAFU,OAAO,oBAAoB,EAAE,OAAO,CAEzC;IAWL;;;;;OAKG;IACH,yBAEC;IAED;;;;;;OAMG;IACH,mCAJW,OAAO,4BAA4B,EAAE,iBAAiB,WACtD,MAAM,QAKhB;IAcD,sBAEC;CAKJ;qBAzDoB,gBAAgB"}
@@ -3,7 +3,6 @@ import FlowNode from "../flowNode.js";
3
3
  export default class DataSource extends FlowNode {
4
4
  /**
5
5
  * @type {import("../../view/view.js").default}
6
- * @protected
7
6
  */
8
7
  view;
9
8
 
@@ -10,6 +10,10 @@ export default class InlineSource extends DataSource {
10
10
  */
11
11
  constructor(params: import("../../spec/data.js").InlineData, view: import("../../view/view.js").default);
12
12
  params: import("../../spec/data.js").InlineData;
13
+ /**
14
+ * Returns true if the data source emits a single dummy datum.
15
+ */
16
+ isTrivial(): boolean;
13
17
  loadSynchronously(): void;
14
18
  }
15
19
  import DataSource from "./dataSource.js";
@@ -1 +1 @@
1
- {"version":3,"file":"inlineSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/inlineSource.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,mCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,mDAKpD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,UAAU,QACvC,OAAO,oBAAoB,EAAE,OAAO,EAY9C;IAPG,gDAAoB;IASxB,0BAiCC;CAKJ;uBAjEsB,iBAAiB"}
1
+ {"version":3,"file":"inlineSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/inlineSource.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,mCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,mDAKpD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,UAAU,QACvC,OAAO,oBAAoB,EAAE,OAAO,EAY9C;IAPG,gDAAoB;IAaxB;;OAEG;IACH,qBASC;IAED,0BAiCC;CAKJ;uBAnFsB,iBAAiB"}
@@ -27,6 +27,24 @@ export default class InlineSource extends DataSource {
27
27
  }
28
28
  }
29
29
 
30
+ get label() {
31
+ return "inlineSource";
32
+ }
33
+
34
+ /**
35
+ * Returns true if the data source emits a single dummy datum.
36
+ */
37
+ isTrivial() {
38
+ const values = this.params.values;
39
+ /** @type {any} */
40
+ const value = Array.isArray(values) ? values[0] : values;
41
+ return !!(
42
+ value &&
43
+ Object.keys(value).length == 0 &&
44
+ value.constructor === Object
45
+ );
46
+ }
47
+
30
48
  loadSynchronously() {
31
49
  const values = this.params.values;
32
50
 
@@ -1 +1 @@
1
- {"version":3,"file":"axisGenomeSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisGenomeSource.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,cAAc,QAC9C,OAAO,uBAAuB,EAAE,OAAO,EAIjD;CAKJ;iCAlBgC,2BAA2B"}
1
+ {"version":3,"file":"axisGenomeSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisGenomeSource.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,cAAc,QAC9C,OAAO,uBAAuB,EAAE,OAAO,EAIjD;CASJ;iCAtBgC,2BAA2B"}
@@ -13,6 +13,10 @@ export default class AxisGenomeSource extends SingleAxisLazySource {
13
13
  super(view, params.channel);
14
14
  }
15
15
 
16
+ get label() {
17
+ return "axisGenomeSource";
18
+ }
19
+
16
20
  async load() {
17
21
  this.publishData([this.genome.chromosomes]);
18
22
  }
@@ -1 +1 @@
1
- {"version":3,"file":"axisTickSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisTickSource.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IAMI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,aAAa,QAC7C,OAAO,uBAAuB,EAAE,OAAO,EAYjD;IAnBD;;OAEG;IACH,OAFU,OAAO,0BAA0B,EAAE,MAAM,EAAE,CAE1C;IAeP,sDAAoB;IAUxB,wBAkCC;CACJ;iCArEgC,2BAA2B"}
1
+ {"version":3,"file":"axisTickSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisTickSource.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IAMI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,aAAa,QAC7C,OAAO,uBAAuB,EAAE,OAAO,EAYjD;IAnBD;;OAEG;IACH,OAFU,OAAO,0BAA0B,EAAE,MAAM,EAAE,CAE1C;IAeP,sDAAoB;IAcxB,wBAkCC;CACJ;iCAzEgC,2BAA2B"}
@@ -35,6 +35,10 @@ export default class AxisTickSource extends SingleAxisLazySource {
35
35
  this.params = params;
36
36
  }
37
37
 
38
+ get label() {
39
+ return "axisTickSource";
40
+ }
41
+
38
42
  async load() {
39
43
  // Force the ticks to be recalculated. This is needed because the async
40
44
  // initialization process and non-deterministic order of events.
@@ -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,gBAFU,CAAC,GAAG,EAAE,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;;CAuCT;qCA5GoC,+BAA+B"}
@@ -71,6 +71,10 @@ export default class BamSource extends SingleAxisWindowedSource {
71
71
  });
72
72
  }
73
73
 
74
+ get label() {
75
+ return "bamSource";
76
+ }
77
+
74
78
  /**
75
79
  * @param {number[]} interval linearized domain
76
80
  */
@@ -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,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"}
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;;CAwFpC;qCAhIoC,+BAA+B"}
@@ -54,6 +54,10 @@ export default class BigBedSource extends SingleAxisWindowedSource {
54
54
  this.#initialize();
55
55
  }
56
56
 
57
+ get label() {
58
+ return "bigBedSource";
59
+ }
60
+
57
61
  #initialize() {
58
62
  this.initializedPromise = new Promise((resolve, reject) => {
59
63
  Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"bigWigSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bigWigSource.js"],"names":[],"mappings":"AAOA;;GAEG;AACH;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EAmCjD;IATG,mDAA6B;IA2DjC;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAqBlB;IAED;;;OAGG;IAEH,uBAJW,MAAM,EAAE,kBACR,MAAM,iBA2BhB;;CACJ;qCA3JoC,+BAA+B"}
1
+ {"version":3,"file":"bigWigSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/bigWigSource.js"],"names":[],"mappings":"AAOA;;GAEG;AACH;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,UAAU,QAC1C,OAAO,uBAAuB,EAAE,OAAO,EAmCjD;IATG,mDAA6B;IA+DjC;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAqBlB;IAED;;;OAGG;IAEH,uBAJW,MAAM,EAAE,kBACR,MAAM,iBA2BhB;;CACJ;qCA/JoC,+BAA+B"}
@@ -54,6 +54,10 @@ export default class BigWigSource extends SingleAxisWindowedSource {
54
54
  this.#initialize();
55
55
  }
56
56
 
57
+ get label() {
58
+ return "bigWigSource";
59
+ }
60
+
57
61
  #initialize() {
58
62
  this.initializedPromise = new Promise((resolve, reject) => {
59
63
  Promise.all([
@@ -1 +1 @@
1
- {"version":3,"file":"gff3Source.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/gff3Source.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EASjD;IAED;;OAEG;IACH,sBAFW,MAAM,EAAE,OAUlB;;CACJ;wBAlCuB,kBAAkB"}
1
+ {"version":3,"file":"gff3Source.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/gff3Source.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EASjD;IAMD;;OAEG;IACH,sBAFW,MAAM,EAAE,OAUlB;;CACJ;wBAtCuB,kBAAkB"}
@@ -20,6 +20,10 @@ export default class Gff3Source extends TabixSource {
20
20
  });
21
21
  }
22
22
 
23
+ get label() {
24
+ return "gff3Source";
25
+ }
26
+
23
27
  /**
24
28
  * @param {string[]} lines
25
29
  */
@@ -1 +1 @@
1
- {"version":3,"file":"indexedFastaSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/indexedFastaSource.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,gBAAgB,QAChD,OAAO,uBAAuB,EAAE,OAAO,EA+CjD;IAjCG,yDAAgC;IAQhC,iCAwBE;IATM,iDAKE;CA6BjB;qCA5EoC,+BAA+B"}
1
+ {"version":3,"file":"indexedFastaSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/indexedFastaSource.js"],"names":[],"mappings":"AAGA;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,gBAAgB,QAChD,OAAO,uBAAuB,EAAE,OAAO,EA+CjD;IAjCG,yDAAgC;IAQhC,iCAwBE;IATM,iDAKE;CAiCjB;qCAhFoC,+BAA+B"}
@@ -53,6 +53,10 @@ export default class IndexedFastaSource extends SingleAxisWindowedSource {
53
53
  });
54
54
  }
55
55
 
56
+ get label() {
57
+ return "bigWigSource";
58
+ }
59
+
56
60
  /**
57
61
  * @param {number[]} interval linearized domain
58
62
  */
@@ -1,5 +1,7 @@
1
1
  /**
2
2
  * Base class for data sources that listen a domain and propagate data lazily.
3
+ *
4
+ * @abstract
3
5
  */
4
6
  export default class SingleAxisLazySource extends DataSource {
5
7
  /**
@@ -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;;;;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"}
1
+ {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;;;GAIG;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;uBA9HsB,kBAAkB"}
@@ -4,6 +4,8 @@ import { reconfigureScales } from "../../../view/scaleResolution.js";
4
4
 
5
5
  /**
6
6
  * Base class for data sources that listen a domain and propagate data lazily.
7
+ *
8
+ * @abstract
7
9
  */
8
10
  export default class SingleAxisLazySource extends DataSource {
9
11
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"namedSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/namedSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,kCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,kDAKpD;AAED;IAOI;;;;OAIG;IACH,oBAJW,OAAO,oBAAoB,EAAE,SAAS,QACtC,OAAO,oBAAoB,EAAE,OAAO,mBAC3B,MAAM,KAAE,GAAG,EAAE,EAOhC;IAFG,iBALgB,MAAM,KAAE,GAAG,EAAE,CAKL;IACxB,+CAAoB;IAUxB;;;;OAIG;IACH,yBAFW,OAAO,gBAAgB,EAAE,KAAK,EAAE,QAM1C;IAED,0BA0BC;;CAKJ;uBA/EsB,iBAAiB"}
1
+ {"version":3,"file":"namedSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/namedSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,kCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,kDAKpD;AAED;IAOI;;;;OAIG;IACH,oBAJW,OAAO,oBAAoB,EAAE,SAAS,QACtC,OAAO,oBAAoB,EAAE,OAAO,mBAC3B,MAAM,KAAE,GAAG,EAAE,EAOhC;IAFG,iBALgB,MAAM,KAAE,GAAG,EAAE,CAKL;IACxB,+CAAoB;IAcxB;;;;OAIG;IACH,yBAFW,OAAO,gBAAgB,EAAE,KAAK,EAAE,QAM1C;IAED,0BA0BC;;CAKJ;uBAnFsB,iBAAiB"}
@@ -35,6 +35,10 @@ export default class NamedSource extends DataSource {
35
35
  return this.params.name;
36
36
  }
37
37
 
38
+ get label() {
39
+ return "namedSource";
40
+ }
41
+
38
42
  /**
39
43
  * Update the named data. If data is omitted, a data provider is used instead.
40
44
  *
@@ -1 +1 @@
1
- {"version":3,"file":"sequenceSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/sequenceSource.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,0CAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,0DAKpD;AAED;IACI;;;;OAIG;IACH,oBAHW,OAAO,oBAAoB,EAAE,iBAAiB,QAC9C,OAAO,oBAAoB,EAAE,OAAO,EAiB9C;IAZG,sDAIC;IAUL,0BAcC;CAKJ;uBApDsB,iBAAiB"}
1
+ {"version":3,"file":"sequenceSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/sequenceSource.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,0CAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,0DAKpD;AAED;IACI;;;;OAIG;IACH,oBAHW,OAAO,oBAAoB,EAAE,iBAAiB,QAC9C,OAAO,oBAAoB,EAAE,OAAO,EAiB9C;IAZG,sDAIC;IAcL,0BAcC;CAKJ;uBAxDsB,iBAAiB"}
@@ -35,6 +35,10 @@ export default class SequenceSource extends DataSource {
35
35
  }
36
36
  }
37
37
 
38
+ get label() {
39
+ return "sequenceSource";
40
+ }
41
+
38
42
  loadSynchronously() {
39
43
  const as = withoutExprRef(this.sequence.as) ?? "data";
40
44
  const start = withoutExprRef(this.sequence.start) ?? 0;
@@ -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;CAsExC;uBAjGsB,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;CA0ExC;uBArGsB,iBAAiB"}
@@ -34,6 +34,10 @@ export default class UrlSource extends DataSource {
34
34
  return JSON.stringify({ params: this.params, baseUrl: this.baseUrl });
35
35
  }
36
36
 
37
+ get label() {
38
+ return "urlSource";
39
+ }
40
+
37
41
  async load() {
38
42
  const url = withoutExprRef(this.params.url);
39
43
 
@@ -1,18 +1,21 @@
1
- /**
2
- * A minimal aggregate transform that just counts grouped (by a single field) data items.
3
- * Work in progress.
4
- *
5
- * Eventually this will implement the most of Vega's aggregate transform:
6
- * https://vega.github.io/vega/docs/transforms/aggregate/
7
- */
8
- export default class AggregateTransform extends FlowNode {
1
+ export default class AggregateTransform extends Transform {
9
2
  /**
10
3
  * @param {import("../../spec/transform.js").AggregateParams} params
4
+ *
5
+ * @typedef {import("../flowNode.js").Datum} Datum
11
6
  */
12
7
  constructor(params: import("../../spec/transform.js").AggregateParams);
13
8
  params: import("../../spec/transform.js").AggregateParams;
14
9
  /** @type {any[]} */
15
10
  buffer: any[];
11
+ /**
12
+ * @type {((arr: Datum[]) => number)[]}
13
+ */
14
+ ops: ((arr: import("../flowNode.js").Datum[]) => number)[];
15
+ /**
16
+ * @type {string[]}
17
+ */
18
+ as: string[];
16
19
  }
17
- import FlowNode from "../flowNode.js";
20
+ import Transform from "./transform.js";
18
21
  //# sourceMappingURL=aggregate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/aggregate.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AACH;IAKI;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,eAAe,EAQ3D;IAJG,0DAAoB;IAEpB,oBAAoB;IACpB,QADW,GAAG,EAAE,CACA;CA4CvB;qBApEyC,gBAAgB"}
1
+ {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/aggregate.js"],"names":[],"mappings":"AAOA;IAKI;;;;OAIG;IACH,oBAJW,OAAO,yBAAyB,EAAE,eAAe,EA6C3D;IAvCG,0DAAoB;IAEpB,oBAAoB;IACpB,QADW,GAAG,EAAE,CACA;IAEhB;;OAEG;IACH,iDAF6B,MAAM,IAEtB;IACb;;OAEG;IACH,IAFU,MAAM,EAAE,CAEN;CAiFnB;sBA5GqB,gBAAgB"}