@genome-spy/core 0.54.0 → 0.56.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 (120) hide show
  1. package/dist/bundle/index.es.js +3867 -3671
  2. package/dist/bundle/index.js +99 -86
  3. package/dist/schema.json +4 -0
  4. package/dist/src/data/collector.d.ts.map +1 -1
  5. package/dist/src/data/collector.js +4 -0
  6. package/dist/src/data/flowNode.d.ts +14 -5
  7. package/dist/src/data/flowNode.d.ts.map +1 -1
  8. package/dist/src/data/flowNode.js +30 -7
  9. package/dist/src/data/sources/dataSource.d.ts +1 -2
  10. package/dist/src/data/sources/dataSource.d.ts.map +1 -1
  11. package/dist/src/data/sources/dataSource.js +0 -1
  12. package/dist/src/data/sources/inlineSource.d.ts +4 -0
  13. package/dist/src/data/sources/inlineSource.d.ts.map +1 -1
  14. package/dist/src/data/sources/inlineSource.js +18 -0
  15. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  16. package/dist/src/data/sources/lazy/axisGenomeSource.js +4 -0
  17. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  18. package/dist/src/data/sources/lazy/axisTickSource.js +4 -0
  19. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  20. package/dist/src/data/sources/lazy/bamSource.js +4 -0
  21. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  22. package/dist/src/data/sources/lazy/bigBedSource.js +4 -0
  23. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  24. package/dist/src/data/sources/lazy/bigWigSource.js +4 -0
  25. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  26. package/dist/src/data/sources/lazy/gff3Source.js +4 -0
  27. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  28. package/dist/src/data/sources/lazy/indexedFastaSource.js +4 -0
  29. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +2 -0
  30. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  31. package/dist/src/data/sources/lazy/singleAxisLazySource.js +2 -0
  32. package/dist/src/data/sources/namedSource.d.ts.map +1 -1
  33. package/dist/src/data/sources/namedSource.js +4 -0
  34. package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
  35. package/dist/src/data/sources/sequenceSource.js +4 -0
  36. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  37. package/dist/src/data/sources/urlSource.js +4 -0
  38. package/dist/src/data/transforms/aggregate.d.ts +2 -2
  39. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  40. package/dist/src/data/transforms/aggregate.js +4 -3
  41. package/dist/src/data/transforms/clone.d.ts +2 -2
  42. package/dist/src/data/transforms/clone.d.ts.map +1 -1
  43. package/dist/src/data/transforms/clone.js +4 -3
  44. package/dist/src/data/transforms/coverage.d.ts +2 -2
  45. package/dist/src/data/transforms/coverage.d.ts.map +1 -1
  46. package/dist/src/data/transforms/coverage.js +4 -3
  47. package/dist/src/data/transforms/filter.d.ts +2 -2
  48. package/dist/src/data/transforms/filter.d.ts.map +1 -1
  49. package/dist/src/data/transforms/filter.js +3 -3
  50. package/dist/src/data/transforms/filterScoredLabels.d.ts +2 -2
  51. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  52. package/dist/src/data/transforms/filterScoredLabels.js +4 -3
  53. package/dist/src/data/transforms/flatten.d.ts +3 -2
  54. package/dist/src/data/transforms/flatten.d.ts.map +1 -1
  55. package/dist/src/data/transforms/flatten.js +6 -3
  56. package/dist/src/data/transforms/flattenCompressedExons.d.ts +2 -2
  57. package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -1
  58. package/dist/src/data/transforms/flattenCompressedExons.js +4 -3
  59. package/dist/src/data/transforms/flattenDelimited.d.ts +2 -2
  60. package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -1
  61. package/dist/src/data/transforms/flattenDelimited.js +4 -3
  62. package/dist/src/data/transforms/flattenSequence.d.ts +3 -2
  63. package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -1
  64. package/dist/src/data/transforms/flattenSequence.js +6 -3
  65. package/dist/src/data/transforms/formula.d.ts +2 -2
  66. package/dist/src/data/transforms/formula.d.ts.map +1 -1
  67. package/dist/src/data/transforms/formula.js +4 -3
  68. package/dist/src/data/transforms/identifier.d.ts +2 -2
  69. package/dist/src/data/transforms/identifier.d.ts.map +1 -1
  70. package/dist/src/data/transforms/identifier.js +4 -3
  71. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +3 -2
  72. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
  73. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +11 -4
  74. package/dist/src/data/transforms/measureText.d.ts +5 -4
  75. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  76. package/dist/src/data/transforms/measureText.js +11 -8
  77. package/dist/src/data/transforms/pileup.d.ts +2 -2
  78. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  79. package/dist/src/data/transforms/pileup.js +4 -3
  80. package/dist/src/data/transforms/project.d.ts +3 -2
  81. package/dist/src/data/transforms/project.d.ts.map +1 -1
  82. package/dist/src/data/transforms/project.js +6 -3
  83. package/dist/src/data/transforms/regexExtract.d.ts +3 -2
  84. package/dist/src/data/transforms/regexExtract.d.ts.map +1 -1
  85. package/dist/src/data/transforms/regexExtract.js +6 -3
  86. package/dist/src/data/transforms/regexFold.d.ts +3 -2
  87. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  88. package/dist/src/data/transforms/regexFold.js +6 -3
  89. package/dist/src/data/transforms/sample.d.ts +3 -2
  90. package/dist/src/data/transforms/sample.d.ts.map +1 -1
  91. package/dist/src/data/transforms/sample.js +5 -3
  92. package/dist/src/data/transforms/stack.d.ts +2 -2
  93. package/dist/src/data/transforms/stack.d.ts.map +1 -1
  94. package/dist/src/data/transforms/stack.js +4 -3
  95. package/dist/src/data/transforms/transform.d.ts +10 -0
  96. package/dist/src/data/transforms/transform.d.ts.map +1 -0
  97. package/dist/src/data/transforms/transform.js +22 -0
  98. package/dist/src/gl/glslScaleGenerator.d.ts +1 -0
  99. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  100. package/dist/src/gl/glslScaleGenerator.js +3 -10
  101. package/dist/src/gl/includes/common.glsl.js +1 -1
  102. package/dist/src/gl/webGLHelper.d.ts +8 -0
  103. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  104. package/dist/src/gl/webGLHelper.js +40 -0
  105. package/dist/src/marks/mark.d.ts +8 -0
  106. package/dist/src/marks/mark.d.ts.map +1 -1
  107. package/dist/src/marks/mark.js +86 -19
  108. package/dist/src/marks/rule.d.ts.map +1 -1
  109. package/dist/src/marks/rule.js +23 -22
  110. package/dist/src/selection/selection.d.ts +24 -0
  111. package/dist/src/selection/selection.d.ts.map +1 -1
  112. package/dist/src/selection/selection.js +73 -2
  113. package/dist/src/spec/parameter.d.ts +3 -2
  114. package/dist/src/types/selectionTypes.d.ts +2 -2
  115. package/dist/src/view/axisView.js +2 -2
  116. package/dist/src/view/paramMediator.d.ts.map +1 -1
  117. package/dist/src/view/paramMediator.js +14 -8
  118. package/dist/src/view/unitView.d.ts.map +1 -1
  119. package/dist/src/view/unitView.js +46 -10
  120. package/package.json +2 -2
package/dist/schema.json CHANGED
@@ -4512,6 +4512,10 @@
4512
4512
  ],
4513
4513
  "type": "string"
4514
4514
  },
4515
+ "toggle": {
4516
+ "description": "Controls whether data values should be toggled (inserted or removed from a point selection) when clicking with the shift key pressed.\n\n- `true` -- additional values can be selected by shift-clicking.\n- `false` -- only a single value can be selected at a time.\n\n__Default value:__ `true`",
4517
+ "type": "boolean"
4518
+ },
4515
4519
  "type": {
4516
4520
  "const": "point",
4517
4521
  "description": "Determines the default event processing and data query for the selection. Vega-Lite currently supports two selection types:\n\n- `\"point\"` -- to select multiple discrete data values; the first value is selected on `click` and additional values toggled on shift-click.\n- `\"interval\"` -- to select a continuous range of data values on `drag`.",
@@ -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,4 +1,4 @@
1
- export default class AggregateTransform extends FlowNode {
1
+ export default class AggregateTransform extends Transform {
2
2
  /**
3
3
  * @param {import("../../spec/transform.js").AggregateParams} params
4
4
  *
@@ -17,5 +17,5 @@ export default class AggregateTransform extends FlowNode {
17
17
  */
18
18
  as: string[];
19
19
  }
20
- import FlowNode from "../flowNode.js";
20
+ import Transform from "./transform.js";
21
21
  //# sourceMappingURL=aggregate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"aggregate.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/aggregate.js"],"names":[],"mappings":"AAMA;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;qBA9GyC,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"}
@@ -1,10 +1,11 @@
1
1
  import { group as d3group } from "d3-array";
2
- import FlowNode, { BEHAVIOR_CLONES } from "../flowNode.js";
2
+ import { BEHAVIOR_CLONES } from "../flowNode.js";
3
3
  import { field } from "../../utils/field.js";
4
4
  import iterateNestedMaps from "../../utils/iterateNestedMaps.js";
5
+ import Transform from "./transform.js";
5
6
  import AGGREGATE_OPS from "./aggregateOps.js";
6
7
 
7
- export default class AggregateTransform extends FlowNode {
8
+ export default class AggregateTransform extends Transform {
8
9
  get behavior() {
9
10
  return BEHAVIOR_CLONES;
10
11
  }
@@ -15,7 +16,7 @@ export default class AggregateTransform extends FlowNode {
15
16
  * @typedef {import("../flowNode.js").Datum} Datum
16
17
  */
17
18
  constructor(params) {
18
- super();
19
+ super(params);
19
20
  this.params = params;
20
21
 
21
22
  /** @type {any[]} */
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Clones the data objects that pass through.
3
3
  */
4
- export default class CloneTransform extends FlowNode {
4
+ export default class CloneTransform extends Transform {
5
5
  constructor();
6
6
  /**
7
7
  * Signals that a new batch of data will be propagated.
@@ -11,5 +11,5 @@ export default class CloneTransform extends FlowNode {
11
11
  beginBatch: (flowBatch?: import("../../types/flowBatch.js").FlowBatch) => void;
12
12
  #private;
13
13
  }
14
- import FlowNode from "../flowNode.js";
14
+ import Transform from "./transform.js";
15
15
  //# sourceMappingURL=clone.d.ts.map
@@ -1 +1 @@
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
+ {"version":3,"file":"clone.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/clone.js"],"names":[],"mappings":"AAKA;;GAEG;AACH;IAWI,cAmCC;IAXG;;;;OAIG;IACH,yBAFW,OAAO,0BAA0B,EAAE,SAAS,UAOtD;;CAER;sBApDqB,gBAAgB"}
@@ -1,11 +1,12 @@
1
1
  import { shallowArrayEquals } from "../../utils/arrayUtils.js";
2
2
  import createCloner, { getAllProperties } from "../../utils/cloner.js";
3
- import FlowNode, { BEHAVIOR_CLONES, isFileBatch } from "../flowNode.js";
3
+ import { BEHAVIOR_CLONES, isFileBatch } from "../flowNode.js";
4
+ import Transform from "./transform.js";
4
5
 
5
6
  /**
6
7
  * Clones the data objects that pass through.
7
8
  */
8
- export default class CloneTransform extends FlowNode {
9
+ export default class CloneTransform extends Transform {
9
10
  get behavior() {
10
11
  return BEHAVIOR_CLONES;
11
12
  }
@@ -17,7 +18,7 @@ export default class CloneTransform extends FlowNode {
17
18
  #clone = (datum) => datum;
18
19
 
19
20
  constructor() {
20
- super();
21
+ super({ type: "clone" });
21
22
 
22
23
  /** @param {import("../flowNode.js").Datum} datum */
23
24
  const setupCloner = (datum) => {
@@ -7,7 +7,7 @@
7
7
  * way to implement it is a separate transform that bins the coverage
8
8
  * segments and calculates weighted averages.
9
9
  */
10
- export default class CoverageTransform extends FlowNode {
10
+ export default class CoverageTransform extends Transform {
11
11
  /**
12
12
  * @typedef {import("../flowNode.js").Datum} Datum
13
13
  */
@@ -36,6 +36,6 @@ export default class CoverageTransform extends FlowNode {
36
36
  */
37
37
  ends: FlatQueue<number>;
38
38
  }
39
- import FlowNode from "../flowNode.js";
39
+ import Transform from "./transform.js";
40
40
  import FlatQueue from "flatqueue";
41
41
  //# sourceMappingURL=coverage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/coverage.js"],"names":[],"mappings":";AAKA;;;;;;;GAOG;AACH;IAKI;;OAEG;IAEH;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,cAAc,EAgD1D;IA5CG,yDAAoB;IAEpB,mDAAwC;IACxC,iDAAoC;IAEpC,mCAAmC;IACnC,sBADoB,GAAG,KAAE,MAAM,CAGT;IACtB,mCAAmC;IACnC,uBADoB,GAAG,KAAE,MAAM,CACsC;IAErE;;;;;MAKC;IAED,sEACsE,MAAM,oCAgBvE;IAEL;;;;OAIG;IACH,MAFU,UAAU,MAAM,CAAC,CAEA;CA0IlC;qBA7MyC,gBAAgB;sBAHpC,WAAW"}
1
+ {"version":3,"file":"coverage.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/coverage.js"],"names":[],"mappings":";AAMA;;;;;;;GAOG;AACH;IAKI;;OAEG;IAEH;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,cAAc,EAgD1D;IA5CG,yDAAoB;IAEpB,mDAAwC;IACxC,iDAAoC;IAEpC,mCAAmC;IACnC,sBADoB,GAAG,KAAE,MAAM,CAGT;IACtB,mCAAmC;IACnC,uBADoB,GAAG,KAAE,MAAM,CACsC;IAErE;;;;;MAKC;IAED,sEACsE,MAAM,oCAgBvE;IAEL;;;;OAIG;IACH,MAFU,UAAU,MAAM,CAAC,CAEA;CA0IlC;sBA7MqB,gBAAgB;sBAJhB,WAAW"}
@@ -1,7 +1,8 @@
1
1
  import FlatQueue from "flatqueue";
2
2
 
3
3
  import { field } from "../../utils/field.js";
4
- import FlowNode, { BEHAVIOR_CLONES } from "../flowNode.js";
4
+ import { BEHAVIOR_CLONES } from "../flowNode.js";
5
+ import Transform from "./transform.js";
5
6
 
6
7
  /**
7
8
  * Computes coverage for sorted segments
@@ -11,7 +12,7 @@ import FlowNode, { BEHAVIOR_CLONES } from "../flowNode.js";
11
12
  * way to implement it is a separate transform that bins the coverage
12
13
  * segments and calculates weighted averages.
13
14
  */
14
- export default class CoverageTransform extends FlowNode {
15
+ export default class CoverageTransform extends Transform {
15
16
  get behavior() {
16
17
  return BEHAVIOR_CLONES;
17
18
  }
@@ -24,7 +25,7 @@ export default class CoverageTransform extends FlowNode {
24
25
  * @param {import("../../spec/transform.js").CoverageParams} params
25
26
  */
26
27
  constructor(params) {
27
- super();
28
+ super(params);
28
29
  this.params = params;
29
30
 
30
31
  this.startAccessor = field(params.start);
@@ -8,7 +8,7 @@ export function isExprFilterParams(params: import("../../spec/transform.js").Fil
8
8
  * @returns {params is import("../../spec/transform.js").SelectionFilterParams}
9
9
  */
10
10
  export function isSelectionFilterParams(params: import("../../spec/transform.js").FilterParams): params is import("../../spec/transform.js").SelectionFilterParams;
11
- export default class FilterTransform extends FlowNode {
11
+ export default class FilterTransform extends Transform {
12
12
  /**
13
13
  *
14
14
  * @param {import("../../spec/transform.js").FilterParams} params
@@ -19,5 +19,5 @@ export default class FilterTransform extends FlowNode {
19
19
  /** @type {import("../../view/paramMediator.js").ExprRefFunction} */
20
20
  predicate: import("../../view/paramMediator.js").ExprRefFunction;
21
21
  }
22
- import FlowNode from "../flowNode.js";
22
+ import Transform from "./transform.js";
23
23
  //# sourceMappingURL=filter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filter.js"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,2CAHW,OAAO,yBAAyB,EAAE,YAAY,gEAKxD;AAED;;;GAGG;AACH,gDAHW,OAAO,yBAAyB,EAAE,YAAY,qEAKxD;AAzDD;IACI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,YAAY,yBAC9C,OAAO,gBAAgB,EAAE,qBAAqB,EASxD;IAJG,uDAAoB;IAEpB,oEAAoE;IACpE,WADW,OAAO,6BAA6B,EAAE,eAAe,CACtC;CA6BjC;qBA3CoB,gBAAgB"}
1
+ {"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filter.js"],"names":[],"mappings":"AA8CA;;;GAGG;AACH,2CAHW,OAAO,yBAAyB,EAAE,YAAY,gEAKxD;AAED;;;GAGG;AACH,gDAHW,OAAO,yBAAyB,EAAE,YAAY,qEAKxD;AAzDD;IACI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,YAAY,yBAC9C,OAAO,gBAAgB,EAAE,qBAAqB,EASxD;IAJG,uDAAoB;IAEpB,oEAAoE;IACpE,WADW,OAAO,6BAA6B,EAAE,eAAe,CACtC;CA6BjC;sBA3CqB,gBAAgB"}
@@ -1,14 +1,14 @@
1
1
  import { makeSelectionTestExpression } from "../../selection/selection.js";
2
- import FlowNode from "../flowNode.js";
2
+ import Transform from "./transform.js";
3
3
 
4
- export default class FilterTransform extends FlowNode {
4
+ export default class FilterTransform extends Transform {
5
5
  /**
6
6
  *
7
7
  * @param {import("../../spec/transform.js").FilterParams} params
8
8
  * @param {import("../flowNode.js").ParamMediatorProvider} paramMediatorProvider
9
9
  */
10
10
  constructor(params, paramMediatorProvider) {
11
- super(paramMediatorProvider);
11
+ super(params, paramMediatorProvider);
12
12
 
13
13
  this.params = params;
14
14