@genome-spy/core 0.65.0 → 0.67.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 (249) hide show
  1. package/dist/bundle/browser-BRemItdO.js +138 -0
  2. package/dist/bundle/{index-CD7FLu9x.js → index-BatuyGAI.js} +23 -21
  3. package/dist/bundle/{index-C0llXMqm.js → index-ByuE8dvu.js} +140 -88
  4. package/dist/bundle/index-Cq3QFUxX.js +1781 -0
  5. package/dist/bundle/index-D28m8tSW.js +1607 -0
  6. package/dist/bundle/index-DbJ0oeYM.js +631 -0
  7. package/dist/bundle/index.es.js +15821 -14601
  8. package/dist/bundle/index.js +214 -212
  9. package/dist/bundle/{inflate-DRgHi_KK.js → inflate-GtwLkvSP.js} +222 -224
  10. package/dist/bundle/unzip-NywezaRR.js +1492 -0
  11. package/dist/schema.json +13 -3
  12. package/dist/src/config/scaleDefaults.d.ts +8 -0
  13. package/dist/src/config/scaleDefaults.d.ts.map +1 -0
  14. package/dist/src/config/scaleDefaults.js +45 -0
  15. package/dist/src/data/flowHandle.d.ts +2 -0
  16. package/dist/src/data/flowHandle.d.ts.map +1 -1
  17. package/dist/src/data/flowHandle.js +1 -0
  18. package/dist/src/data/flowInit.d.ts +12 -4
  19. package/dist/src/data/flowInit.d.ts.map +1 -1
  20. package/dist/src/data/flowInit.js +115 -16
  21. package/dist/src/data/sources/lazy/axisTickSource.js +1 -1
  22. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +1 -1
  23. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  24. package/dist/src/data/sources/lazy/singleAxisLazySource.js +10 -3
  25. package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -1
  26. package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +5 -1
  27. package/dist/src/data/transforms/filterScoredLabels.d.ts +1 -1
  28. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  29. package/dist/src/data/transforms/filterScoredLabels.js +1 -1
  30. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
  31. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +2 -1
  32. package/dist/src/encoder/encoder.d.ts +1 -1
  33. package/dist/src/encoder/encoder.d.ts.map +1 -1
  34. package/dist/src/encoder/encoder.js +1 -1
  35. package/dist/src/genome/scaleLocus.d.ts +39 -0
  36. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  37. package/dist/src/genome/scaleLocus.js +76 -0
  38. package/dist/src/genomeSpy/canvasExport.d.ts +19 -0
  39. package/dist/src/genomeSpy/canvasExport.d.ts.map +1 -0
  40. package/dist/src/genomeSpy/canvasExport.js +66 -0
  41. package/dist/src/genomeSpy/containerUi.d.ts +17 -0
  42. package/dist/src/genomeSpy/containerUi.d.ts.map +1 -0
  43. package/dist/src/genomeSpy/containerUi.js +78 -0
  44. package/dist/src/genomeSpy/eventListenerRegistry.d.ts +19 -0
  45. package/dist/src/genomeSpy/eventListenerRegistry.d.ts.map +1 -0
  46. package/dist/src/genomeSpy/eventListenerRegistry.js +38 -0
  47. package/dist/src/genomeSpy/inputBindingManager.d.ts +14 -0
  48. package/dist/src/genomeSpy/inputBindingManager.d.ts.map +1 -0
  49. package/dist/src/genomeSpy/inputBindingManager.js +63 -0
  50. package/dist/src/genomeSpy/interactionController.d.ts +40 -0
  51. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -0
  52. package/dist/src/genomeSpy/interactionController.js +371 -0
  53. package/dist/src/genomeSpy/keyboardListenerManager.d.ts +10 -0
  54. package/dist/src/genomeSpy/keyboardListenerManager.d.ts.map +1 -0
  55. package/dist/src/genomeSpy/keyboardListenerManager.js +31 -0
  56. package/dist/src/genomeSpy/loadingIndicatorManager.d.ts +15 -0
  57. package/dist/src/genomeSpy/loadingIndicatorManager.d.ts.map +1 -0
  58. package/dist/src/genomeSpy/loadingIndicatorManager.js +92 -0
  59. package/dist/src/genomeSpy/renderCoordinator.d.ts +22 -0
  60. package/dist/src/genomeSpy/renderCoordinator.d.ts.map +1 -0
  61. package/dist/src/genomeSpy/renderCoordinator.js +118 -0
  62. package/dist/src/genomeSpy/viewContextFactory.d.ts +18 -0
  63. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -0
  64. package/dist/src/genomeSpy/viewContextFactory.js +79 -0
  65. package/dist/src/genomeSpy/viewDataInit.d.ts +22 -0
  66. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -0
  67. package/dist/src/genomeSpy/viewDataInit.js +160 -0
  68. package/dist/src/genomeSpy/viewDataInit.test.d.ts +2 -0
  69. package/dist/src/genomeSpy/viewDataInit.test.d.ts.map +1 -0
  70. package/dist/src/genomeSpy/viewHierarchyConfig.d.ts +14 -0
  71. package/dist/src/genomeSpy/viewHierarchyConfig.d.ts.map +1 -0
  72. package/dist/src/genomeSpy/viewHierarchyConfig.js +24 -0
  73. package/dist/src/genomeSpy/viewHighlight.d.ts +5 -0
  74. package/dist/src/genomeSpy/viewHighlight.d.ts.map +1 -0
  75. package/dist/src/genomeSpy/viewHighlight.js +30 -0
  76. package/dist/src/genomeSpy.d.ts +17 -71
  77. package/dist/src/genomeSpy.d.ts.map +1 -1
  78. package/dist/src/genomeSpy.js +197 -741
  79. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  80. package/dist/src/gl/dataToVertices.js +16 -4
  81. package/dist/src/gl/glslScaleGenerator.d.ts +1 -1
  82. package/dist/src/gl/webGLHelper.d.ts +2 -2
  83. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  84. package/dist/src/gl/webGLHelper.js +4 -4
  85. package/dist/src/index.d.ts.map +1 -1
  86. package/dist/src/index.js +2 -12
  87. package/dist/src/marks/mark.d.ts.map +1 -1
  88. package/dist/src/marks/mark.js +4 -2
  89. package/dist/src/{view → scales}/axisResolution.d.ts +9 -16
  90. package/dist/src/scales/axisResolution.d.ts.map +1 -0
  91. package/dist/src/{view → scales}/axisResolution.js +29 -18
  92. package/dist/src/scales/axisResolution.test.d.ts.map +1 -0
  93. package/dist/src/scales/scaleDomainAggregator.d.ts +57 -0
  94. package/dist/src/scales/scaleDomainAggregator.d.ts.map +1 -0
  95. package/dist/src/scales/scaleDomainAggregator.js +167 -0
  96. package/dist/src/scales/scaleDomainAggregator.test.d.ts +2 -0
  97. package/dist/src/scales/scaleDomainAggregator.test.d.ts.map +1 -0
  98. package/dist/src/scales/scaleInstanceManager.d.ts +40 -0
  99. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -0
  100. package/dist/src/scales/scaleInstanceManager.js +317 -0
  101. package/dist/src/scales/scaleInstanceManager.test.d.ts +2 -0
  102. package/dist/src/scales/scaleInstanceManager.test.d.ts.map +1 -0
  103. package/dist/src/scales/scaleInteractionController.d.ts +73 -0
  104. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -0
  105. package/dist/src/scales/scaleInteractionController.js +336 -0
  106. package/dist/src/scales/scaleInteractionController.test.d.ts +2 -0
  107. package/dist/src/scales/scaleInteractionController.test.d.ts.map +1 -0
  108. package/dist/src/scales/scalePropsResolver.d.ts +23 -0
  109. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -0
  110. package/dist/src/scales/scalePropsResolver.js +74 -0
  111. package/dist/src/{view → scales}/scaleResolution.d.ts +53 -35
  112. package/dist/src/scales/scaleResolution.d.ts.map +1 -0
  113. package/dist/src/scales/scaleResolution.js +732 -0
  114. package/dist/src/scales/scaleResolution.test.d.ts.map +1 -0
  115. package/dist/src/scales/scaleResolutionConstants.d.ts +6 -0
  116. package/dist/src/scales/scaleResolutionConstants.d.ts.map +1 -0
  117. package/dist/src/scales/scaleResolutionConstants.js +5 -0
  118. package/dist/src/scales/scaleRules.d.ts +16 -0
  119. package/dist/src/scales/scaleRules.d.ts.map +1 -0
  120. package/dist/src/scales/scaleRules.js +103 -0
  121. package/dist/src/scales/scaleRules.test.d.ts +2 -0
  122. package/dist/src/scales/scaleRules.test.d.ts.map +1 -0
  123. package/dist/src/spec/channel.d.ts +13 -18
  124. package/dist/src/spec/scale.d.ts +6 -0
  125. package/dist/src/types/embedApi.d.ts +5 -0
  126. package/dist/src/types/scaleResolutionApi.d.ts +1 -1
  127. package/dist/src/utils/domainArray.d.ts.map +1 -1
  128. package/dist/src/utils/domainArray.js +3 -0
  129. package/dist/src/utils/indexer.d.ts +3 -0
  130. package/dist/src/utils/indexer.d.ts.map +1 -1
  131. package/dist/src/utils/indexer.js +3 -0
  132. package/dist/src/view/concatView.d.ts +18 -0
  133. package/dist/src/view/concatView.d.ts.map +1 -1
  134. package/dist/src/view/concatView.js +73 -0
  135. package/dist/src/view/concatView.test.d.ts +2 -0
  136. package/dist/src/view/concatView.test.d.ts.map +1 -0
  137. package/dist/src/view/containerMutationHelper.d.ts +74 -0
  138. package/dist/src/view/containerMutationHelper.d.ts.map +1 -0
  139. package/dist/src/view/containerMutationHelper.js +118 -0
  140. package/dist/src/view/containerView.d.ts +0 -7
  141. package/dist/src/view/containerView.d.ts.map +1 -1
  142. package/dist/src/view/containerView.js +0 -10
  143. package/dist/src/view/facetView.d.ts.map +1 -1
  144. package/dist/src/view/facetView.js +0 -15
  145. package/dist/src/view/flowBuilder.d.ts +5 -3
  146. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  147. package/dist/src/view/flowBuilder.js +69 -6
  148. package/dist/src/view/gridView/gridChild.d.ts +11 -0
  149. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  150. package/dist/src/view/gridView/gridChild.js +32 -6
  151. package/dist/src/view/gridView/gridView.d.ts +39 -1
  152. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  153. package/dist/src/view/gridView/gridView.js +106 -48
  154. package/dist/src/view/gridView/gridView.test.d.ts +2 -0
  155. package/dist/src/view/gridView/gridView.test.d.ts.map +1 -0
  156. package/dist/src/view/gridView/scrollbar.d.ts +39 -8
  157. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  158. package/dist/src/view/gridView/scrollbar.js +184 -69
  159. package/dist/src/view/layerView.d.ts +14 -0
  160. package/dist/src/view/layerView.d.ts.map +1 -1
  161. package/dist/src/view/layerView.js +66 -0
  162. package/dist/src/view/layerView.test.d.ts +2 -0
  163. package/dist/src/view/layerView.test.d.ts.map +1 -0
  164. package/dist/src/view/testUtils.d.ts.map +1 -1
  165. package/dist/src/view/testUtils.js +7 -1
  166. package/dist/src/view/unitView.d.ts.map +1 -1
  167. package/dist/src/view/unitView.js +41 -36
  168. package/dist/src/view/view.d.ts +18 -6
  169. package/dist/src/view/view.d.ts.map +1 -1
  170. package/dist/src/view/view.js +30 -4
  171. package/package.json +2 -2
  172. package/dist/bundle/browser-txUcLy2H.js +0 -123
  173. package/dist/bundle/index-BQpbYrv4.js +0 -1712
  174. package/dist/bundle/index-BhtHKLUo.js +0 -73
  175. package/dist/bundle/index-CCe8rnZz.js +0 -716
  176. package/dist/bundle/index-DhcU-Gk-.js +0 -1487
  177. package/dist/src/data/collector.test.js +0 -138
  178. package/dist/src/data/dataFlow.test.js +0 -38
  179. package/dist/src/data/flow.test.js +0 -81
  180. package/dist/src/data/flowInit.test.js +0 -413
  181. package/dist/src/data/flowNode.test.js +0 -50
  182. package/dist/src/data/flowOptimizer.test.js +0 -209
  183. package/dist/src/data/formats/fasta.test.js +0 -27
  184. package/dist/src/data/sources/inlineSource.test.js +0 -63
  185. package/dist/src/data/sources/sequenceSource.test.js +0 -81
  186. package/dist/src/data/transforms/aggregate.test.js +0 -134
  187. package/dist/src/data/transforms/clone.test.js +0 -11
  188. package/dist/src/data/transforms/coverage.test.js +0 -238
  189. package/dist/src/data/transforms/filter.test.js +0 -20
  190. package/dist/src/data/transforms/flatten.test.js +0 -96
  191. package/dist/src/data/transforms/flattenDelimited.test.js +0 -90
  192. package/dist/src/data/transforms/flattenSequence.test.js +0 -34
  193. package/dist/src/data/transforms/formula.test.js +0 -25
  194. package/dist/src/data/transforms/identifier.test.js +0 -92
  195. package/dist/src/data/transforms/pileup.test.js +0 -70
  196. package/dist/src/data/transforms/project.test.js +0 -32
  197. package/dist/src/data/transforms/regexExtract.test.js +0 -70
  198. package/dist/src/data/transforms/regexFold.test.js +0 -201
  199. package/dist/src/data/transforms/sample.test.js +0 -38
  200. package/dist/src/data/transforms/stack.test.js +0 -91
  201. package/dist/src/encoder/accessor.test.js +0 -162
  202. package/dist/src/encoder/encoder.test.js +0 -105
  203. package/dist/src/genome/genome.test.js +0 -268
  204. package/dist/src/genome/genomes.test.js +0 -8
  205. package/dist/src/genome/scaleIndex.test.js +0 -78
  206. package/dist/src/genome/scaleLocus.test.js +0 -4
  207. package/dist/src/scale/scale.test.js +0 -326
  208. package/dist/src/scale/ticks.test.js +0 -46
  209. package/dist/src/selection/selection.test.js +0 -14
  210. package/dist/src/utils/addBaseUrl.test.js +0 -30
  211. package/dist/src/utils/binnedIndex.test.js +0 -201
  212. package/dist/src/utils/cloner.test.js +0 -35
  213. package/dist/src/utils/coalesce.test.js +0 -16
  214. package/dist/src/utils/concatIterables.test.js +0 -8
  215. package/dist/src/utils/domainArray.test.js +0 -130
  216. package/dist/src/utils/indexer.test.js +0 -49
  217. package/dist/src/utils/interactionEvent.test.js +0 -35
  218. package/dist/src/utils/iterateNestedMaps.test.js +0 -33
  219. package/dist/src/utils/kWayMerge.test.js +0 -30
  220. package/dist/src/utils/mergeObjects.test.js +0 -42
  221. package/dist/src/utils/numberExtractor.test.js +0 -6
  222. package/dist/src/utils/propertyCacher.test.js +0 -89
  223. package/dist/src/utils/propertyCoalescer.test.js +0 -25
  224. package/dist/src/utils/radixSort.test.js +0 -51
  225. package/dist/src/utils/reservationMap.test.js +0 -20
  226. package/dist/src/utils/ringBuffer.test.js +0 -39
  227. package/dist/src/utils/topK.test.js +0 -54
  228. package/dist/src/utils/trees.test.js +0 -135
  229. package/dist/src/utils/url.test.js +0 -28
  230. package/dist/src/utils/variableTools.test.js +0 -13
  231. package/dist/src/view/axisResolution.d.ts.map +0 -1
  232. package/dist/src/view/axisResolution.test.d.ts.map +0 -1
  233. package/dist/src/view/axisResolution.test.js +0 -206
  234. package/dist/src/view/flowBuilder.test.js +0 -125
  235. package/dist/src/view/gridView/selectionRect.test.js +0 -87
  236. package/dist/src/view/layout/flexLayout.test.js +0 -323
  237. package/dist/src/view/layout/grid.test.js +0 -71
  238. package/dist/src/view/layout/rectangle.test.js +0 -192
  239. package/dist/src/view/paramMediator.test.js +0 -282
  240. package/dist/src/view/scaleResolution.d.ts.map +0 -1
  241. package/dist/src/view/scaleResolution.js +0 -1059
  242. package/dist/src/view/scaleResolution.test.d.ts.map +0 -1
  243. package/dist/src/view/scaleResolution.test.js +0 -645
  244. package/dist/src/view/view.test.js +0 -245
  245. package/dist/src/view/viewDispose.test.js +0 -110
  246. package/dist/src/view/viewFactory.test.js +0 -25
  247. package/dist/src/view/viewUtils.test.js +0 -87
  248. /package/dist/src/{view → scales}/axisResolution.test.d.ts +0 -0
  249. /package/dist/src/{view → scales}/scaleResolution.test.d.ts +0 -0
package/dist/schema.json CHANGED
@@ -2353,7 +2353,9 @@
2353
2353
  "type": "object"
2354
2354
  },
2355
2355
  "FieldOrDatumDefWithCondition<MarkPropFieldDef<Type>,(string|null)>": {
2356
- "additionalProperties": false,
2356
+ "additionalProperties": {
2357
+ "not": {}
2358
+ },
2357
2359
  "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
2358
2360
  "properties": {
2359
2361
  "condition": {
@@ -2410,7 +2412,9 @@
2410
2412
  "type": "object"
2411
2413
  },
2412
2414
  "FieldOrDatumDefWithCondition<MarkPropFieldDef<Type>,number>": {
2413
- "additionalProperties": false,
2415
+ "additionalProperties": {
2416
+ "not": {}
2417
+ },
2414
2418
  "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
2415
2419
  "properties": {
2416
2420
  "condition": {
@@ -2467,7 +2471,9 @@
2467
2471
  "type": "object"
2468
2472
  },
2469
2473
  "FieldOrDatumDefWithCondition<MarkPropFieldDef<TypeForShape>,(string|null)>": {
2470
- "additionalProperties": false,
2474
+ "additionalProperties": {
2475
+ "not": {}
2476
+ },
2471
2477
  "description": "A FieldDef with Condition<ValueDef> { condition: {value: ...}, field: ..., ... }",
2472
2478
  "properties": {
2473
2479
  "condition": {
@@ -8667,6 +8673,10 @@
8667
8673
  "description": "The alignment of the steps within the scale range.\n\nThis value must lie in the range `[0,1]`. A value of `0.5` indicates that the steps should be centered within the range. A value of `0` or `1` may be used to shift the bands to one side, say to position them adjacent to an axis.\n\n__Default value:__ `0.5`",
8668
8674
  "type": "number"
8669
8675
  },
8676
+ "assembly": {
8677
+ "description": "The genome assembly name for locus scales. If undefined, the default genome from the genome store is used.",
8678
+ "type": "string"
8679
+ },
8670
8680
  "base": {
8671
8681
  "description": "The logarithm base of the `log` scale (default `10`).",
8672
8682
  "type": "number"
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @param {import("../spec/channel.js").Channel} channel
3
+ * @param {import("../spec/channel.js").Type} dataType
4
+ * @param {boolean} isExplicitDomain
5
+ * @returns {import("../spec/scale.js").Scale}
6
+ */
7
+ export function getDefaultScaleProperties(channel: import("../spec/channel.js").Channel, dataType: import("../spec/channel.js").Type, isExplicitDomain: boolean): import("../spec/scale.js").Scale;
8
+ //# sourceMappingURL=scaleDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleDefaults.d.ts","sourceRoot":"","sources":["../../../src/config/scaleDefaults.js"],"names":[],"mappings":"AAOA;;;;;GAKG;AACH,mDALW,OAAO,oBAAoB,EAAE,OAAO,YACpC,OAAO,oBAAoB,EAAE,IAAI,oBACjC,OAAO,GACL,OAAO,kBAAkB,EAAE,KAAK,CAiC5C"}
@@ -0,0 +1,45 @@
1
+ import {
2
+ isColorChannel,
3
+ isDiscreteChannel,
4
+ isPositionalChannel,
5
+ } from "../encoder/encoder.js";
6
+ import { NOMINAL, ORDINAL } from "../scales/scaleResolutionConstants.js";
7
+
8
+ /**
9
+ * @param {import("../spec/channel.js").Channel} channel
10
+ * @param {import("../spec/channel.js").Type} dataType
11
+ * @param {boolean} isExplicitDomain
12
+ * @returns {import("../spec/scale.js").Scale}
13
+ */
14
+ export function getDefaultScaleProperties(channel, dataType, isExplicitDomain) {
15
+ /** @type {import("../spec/scale.js").Scale} */
16
+ const props = {};
17
+
18
+ if (isExplicitDomain) {
19
+ props.zero = false;
20
+ }
21
+
22
+ if (isPositionalChannel(channel)) {
23
+ props.nice = !isExplicitDomain;
24
+ } else if (isColorChannel(channel)) {
25
+ // TODO: Named ranges
26
+ props.scheme =
27
+ dataType == NOMINAL
28
+ ? "tableau10"
29
+ : dataType == ORDINAL
30
+ ? "blues"
31
+ : "viridis";
32
+ } else if (isDiscreteChannel(channel)) {
33
+ // Shapes of point mark, for example
34
+ props.range =
35
+ channel == "shape"
36
+ ? ["circle", "square", "triangle-up", "cross", "diamond"]
37
+ : [];
38
+ } else if (channel == "size") {
39
+ props.range = [0, 400]; // TODO: Configurable default. This is currently optimized for points.
40
+ } else if (channel == "angle") {
41
+ props.range = [0, 360];
42
+ }
43
+
44
+ return props;
45
+ }
@@ -2,6 +2,7 @@
2
2
  * @typedef {object} FlowHandle
3
3
  * @prop {import("./sources/dataSource.js").default} [dataSource]
4
4
  * @prop {import("./collector.js").default} [collector]
5
+ * @prop {import("./flowNode.js").default} [node]
5
6
  */
6
7
  /**
7
8
  * @param {FlowHandle} [handle]
@@ -11,5 +12,6 @@ export function createFlowHandle(handle?: FlowHandle): FlowHandle;
11
12
  export type FlowHandle = {
12
13
  dataSource?: import("./sources/dataSource.js").default;
13
14
  collector?: import("./collector.js").default;
15
+ node?: import("./flowNode.js").default;
14
16
  };
15
17
  //# sourceMappingURL=flowHandle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowHandle.d.ts","sourceRoot":"","sources":["../../../src/data/flowHandle.js"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;GAGG;AACH,0CAHW,UAAU,GACR,UAAU,CAItB;;iBAVS,OAAO,yBAAyB,EAAE,OAAO;gBACzC,OAAO,gBAAgB,EAAE,OAAO"}
1
+ {"version":3,"file":"flowHandle.d.ts","sourceRoot":"","sources":["../../../src/data/flowHandle.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH;;;GAGG;AACH,0CAHW,UAAU,GACR,UAAU,CAItB;;iBAXS,OAAO,yBAAyB,EAAE,OAAO;gBACzC,OAAO,gBAAgB,EAAE,OAAO;WAChC,OAAO,eAAe,EAAE,OAAO"}
@@ -2,6 +2,7 @@
2
2
  * @typedef {object} FlowHandle
3
3
  * @prop {import("./sources/dataSource.js").default} [dataSource]
4
4
  * @prop {import("./collector.js").default} [collector]
5
+ * @prop {import("./flowNode.js").default} [node]
5
6
  */
6
7
 
7
8
  /**
@@ -43,6 +43,8 @@ export function syncFlowHandles(root: import("../view/view.js").default, canonic
43
43
  *
44
44
  * @param {import("../view/view.js").default} subtreeRoot
45
45
  * @param {import("./dataFlow.js").default} flow
46
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
47
+ * @param {(view: import("../view/view.js").default) => boolean} [viewInitializationPredicate]
46
48
  * @returns {{
47
49
  * dataFlow: import("./dataFlow.js").default,
48
50
  * unitViews: UnitView[],
@@ -50,7 +52,7 @@ export function syncFlowHandles(root: import("../view/view.js").default, canonic
50
52
  * graphicsPromises: Promise<import("../marks/mark.js").default>[]
51
53
  * }}
52
54
  */
53
- export function initializeViewSubtree(subtreeRoot: import("../view/view.js").default, flow: import("./dataFlow.js").default): {
55
+ export function initializeViewSubtree(subtreeRoot: import("../view/view.js").default, flow: import("./dataFlow.js").default, viewFilter?: (view: import("../view/view.js").default) => boolean, viewInitializationPredicate?: (view: import("../view/view.js").default) => boolean): {
54
56
  dataFlow: import("./dataFlow.js").default;
55
57
  unitViews: UnitView[];
56
58
  dataSources: Set<import("./sources/dataSource.js").default>;
@@ -61,25 +63,31 @@ export function initializeViewSubtree(subtreeRoot: import("../view/view.js").def
61
63
  * This includes sources that are overridden deeper in the hierarchy.
62
64
  *
63
65
  * @param {import("../view/view.js").default | import("../view/view.js").default[]} subtreeRoot
66
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
64
67
  * @returns {Set<import("./sources/dataSource.js").default>}
65
68
  */
66
- export function collectViewSubtreeDataSources(subtreeRoot: import("../view/view.js").default | import("../view/view.js").default[]): Set<import("./sources/dataSource.js").default>;
69
+ export function collectViewSubtreeDataSources(subtreeRoot: import("../view/view.js").default | import("../view/view.js").default[], viewFilter?: (view: import("../view/view.js").default) => boolean): Set<import("./sources/dataSource.js").default>;
67
70
  /**
68
71
  * Collects the nearest data sources under a subtree root.
69
72
  * These sources define data-ready boundaries for subtree-level loading.
70
73
  *
71
74
  * @param {import("../view/view.js").default} subtreeRoot
75
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
72
76
  * @returns {Set<import("./sources/dataSource.js").default>}
73
77
  */
74
- export function collectNearestViewSubtreeDataSources(subtreeRoot: import("../view/view.js").default): Set<import("./sources/dataSource.js").default>;
78
+ export function collectNearestViewSubtreeDataSources(subtreeRoot: import("../view/view.js").default, viewFilter?: (view: import("../view/view.js").default) => boolean): Set<import("./sources/dataSource.js").default>;
75
79
  /**
76
80
  * Loads the nearest data sources for a subtree.
77
81
  * Use the returned promise as a subtree-level "data ready" signal.
78
82
  *
79
83
  * @param {import("../view/view.js").default} subtreeRoot
80
84
  * @param {Set<import("./sources/dataSource.js").default>} [dataSources]
85
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
86
+ * @param {{ queueReload?: boolean }} [loadOptions]
81
87
  * @returns {Promise<void[]>}
82
88
  */
83
- export function loadViewSubtreeData(subtreeRoot: import("../view/view.js").default, dataSources?: Set<import("./sources/dataSource.js").default>): Promise<void[]>;
89
+ export function loadViewSubtreeData(subtreeRoot: import("../view/view.js").default, dataSources?: Set<import("./sources/dataSource.js").default>, viewFilter?: (view: import("../view/view.js").default) => boolean, loadOptions?: {
90
+ queueReload?: boolean;
91
+ }): Promise<void[]>;
84
92
  import UnitView from "../view/unitView.js";
85
93
  //# sourceMappingURL=flowInit.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"flowInit.d.ts","sourceRoot":"","sources":["../../../src/data/flowInit.js"],"names":[],"mappings":"AAoCA;;;;;GAKG;AACH,sCAHW,OAAO,iBAAiB,EAAE,OAAO,qBACjC,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,EAAE,OAAO,yBAAyB,EAAE,OAAO,CAAC,QAcnG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,mDATW,OAAO,iBAAiB,EAAE,OAAO,QACjC,OAAO,eAAe,EAAE,OAAO,GAC7B;IACN,QAAQ,EAAE,OAAO,eAAe,EAAE,OAAO,CAAC;IAC1C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC5D,gBAAgB,EAAE,OAAO,CAAC,OAAO,kBAAkB,EAAE,OAAO,CAAC,EAAE,CAAA;CAClE,CAsDH;AAED;;;;;;GAMG;AACH,2DAHW,OAAO,iBAAiB,EAAE,OAAO,GAAG,OAAO,iBAAiB,EAAE,OAAO,EAAE,GACrE,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,CAmB1D;AAED;;;;;;GAMG;AACH,kEAHW,OAAO,iBAAiB,EAAE,OAAO,GAC/B,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,CAY1D;AAED;;;;;;;GAOG;AACH,iDAJW,OAAO,iBAAiB,EAAE,OAAO,gBACjC,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,GAC5C,OAAO,CAAC,IAAI,EAAE,CAAC,CAe3B;qBA7NoB,qBAAqB"}
1
+ {"version":3,"file":"flowInit.d.ts","sourceRoot":"","sources":["../../../src/data/flowInit.js"],"names":[],"mappings":"AAyDA;;;;;GAKG;AACH,sCAHW,OAAO,iBAAiB,EAAE,OAAO,qBACjC,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,EAAE,OAAO,yBAAyB,EAAE,OAAO,CAAC,QAcnG;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,mDAXW,OAAO,iBAAiB,EAAE,OAAO,QACjC,OAAO,eAAe,EAAE,OAAO,eAC/B,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,KAAK,OAAO,gCACpD,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,KAAK,OAAO,GAClD;IACN,QAAQ,EAAE,OAAO,eAAe,EAAE,OAAO,CAAC;IAC1C,SAAS,EAAE,QAAQ,EAAE,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,CAAC;IAC5D,gBAAgB,EAAE,OAAO,CAAC,OAAO,kBAAkB,EAAE,OAAO,CAAC,EAAE,CAAA;CAClE,CA4FH;AAED;;;;;;;GAOG;AACH,2DAJW,OAAO,iBAAiB,EAAE,OAAO,GAAG,OAAO,iBAAiB,EAAE,OAAO,EAAE,eACvE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,KAAK,OAAO,GAClD,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,CAsB1D;AAED;;;;;;;GAOG;AACH,kEAJW,OAAO,iBAAiB,EAAE,OAAO,eACjC,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,KAAK,OAAO,GAClD,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,CAe1D;AAED;;;;;;;;;GASG;AACH,iDANW,OAAO,iBAAiB,EAAE,OAAO,gBACjC,GAAG,CAAC,OAAO,yBAAyB,EAAE,OAAO,CAAC,eAC9C,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,KAAK,OAAO,gBACpD;IAAE,WAAW,CAAC,EAAE,OAAO,CAAA;CAAE,GACvB,OAAO,CAAC,IAAI,EAAE,CAAC,CAuB3B;qBA5SoB,qBAAqB"}
@@ -2,10 +2,12 @@ import UnitView from "../view/unitView.js";
2
2
  import { buildDataFlow } from "../view/flowBuilder.js";
3
3
  import { optimizeDataFlow } from "./flowOptimizer.js";
4
4
  import { VISIT_SKIP } from "../view/view.js";
5
- import { reconfigureScales } from "../view/scaleResolution.js";
5
+ import { reconfigureScaleDomains } from "../scales/scaleResolution.js";
6
6
 
7
7
  /** @type {WeakMap<import("./sources/dataSource.js").default, Promise<void>>} */
8
8
  const inFlightLoads = new WeakMap();
9
+ /** @type {WeakMap<import("./sources/dataSource.js").default, Promise<void>>} */
10
+ const queuedReloads = new WeakMap();
9
11
 
10
12
  /**
11
13
  * Deduplicate concurrent loads for shared sources without changing propagation.
@@ -16,12 +18,31 @@ const inFlightLoads = new WeakMap();
16
18
  * promise settles, the source may be loaded again later as usual.
17
19
  *
18
20
  * @param {import("./sources/dataSource.js").default} dataSource
21
+ * @param {{ queueReload?: boolean }} [options]
19
22
  * @returns {Promise<void>}
20
23
  */
21
- function loadDataSourceOnce(dataSource) {
24
+ function loadDataSourceOnce(dataSource, options) {
22
25
  const existing = inFlightLoads.get(dataSource);
23
26
  if (existing) {
24
- return existing;
27
+ if (!options?.queueReload) {
28
+ return existing;
29
+ }
30
+ const queued = queuedReloads.get(dataSource);
31
+ if (queued) {
32
+ return queued;
33
+ }
34
+ const reload = existing
35
+ .catch(
36
+ /** @returns {void} */ () => {
37
+ // Nop: ensure a queued reload can proceed after a failure.
38
+ }
39
+ )
40
+ .then(() => loadDataSourceOnce(dataSource))
41
+ .finally(() => {
42
+ queuedReloads.delete(dataSource);
43
+ });
44
+ queuedReloads.set(dataSource, reload);
45
+ return reload;
25
46
  }
26
47
 
27
48
  const loadPromise = Promise.resolve()
@@ -92,6 +113,8 @@ export function syncFlowHandles(root, canonicalBySource) {
92
113
  *
93
114
  * @param {import("../view/view.js").default} subtreeRoot
94
115
  * @param {import("./dataFlow.js").default} flow
116
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
117
+ * @param {(view: import("../view/view.js").default) => boolean} [viewInitializationPredicate]
95
118
  * @returns {{
96
119
  * dataFlow: import("./dataFlow.js").default,
97
120
  * unitViews: UnitView[],
@@ -99,12 +122,44 @@ export function syncFlowHandles(root, canonicalBySource) {
99
122
  * graphicsPromises: Promise<import("../marks/mark.js").default>[]
100
123
  * }}
101
124
  */
102
- export function initializeViewSubtree(subtreeRoot, flow) {
103
- const dataFlow = buildDataFlow(subtreeRoot, flow);
104
- const canonicalBySource = optimizeDataFlow(dataFlow);
105
- syncFlowHandles(subtreeRoot, canonicalBySource);
106
- const subtreeViews = subtreeRoot.getDescendants();
107
- const dataSources = collectViewSubtreeDataSources(subtreeViews);
125
+ export function initializeViewSubtree(
126
+ subtreeRoot,
127
+ flow,
128
+ viewFilter,
129
+ viewInitializationPredicate
130
+ ) {
131
+ const shouldInitializeView = viewInitializationPredicate ?? (() => true);
132
+ const subtreeViews = collectSubtreeViews(subtreeRoot, viewFilter);
133
+ const viewsToInitialize = subtreeViews.filter(shouldInitializeView);
134
+ if (viewsToInitialize.length === 0) {
135
+ return {
136
+ dataFlow: flow,
137
+ unitViews: [],
138
+ dataSources: new Set(),
139
+ graphicsPromises: [],
140
+ };
141
+ }
142
+
143
+ const viewsToInitializeSet = new Set(viewsToInitialize);
144
+ for (const view of viewsToInitialize) {
145
+ view._setDataInitializationState("pending");
146
+ }
147
+
148
+ let dataFlow;
149
+ try {
150
+ dataFlow = buildDataFlow(subtreeRoot, flow, viewFilter, (view) =>
151
+ viewsToInitializeSet.has(view)
152
+ );
153
+ const canonicalBySource = optimizeDataFlow(dataFlow);
154
+ syncFlowHandles(subtreeRoot, canonicalBySource);
155
+ } catch (error) {
156
+ for (const view of viewsToInitialize) {
157
+ view._setDataInitializationState("none");
158
+ }
159
+ throw error;
160
+ }
161
+
162
+ const dataSources = collectViewSubtreeDataSources(viewsToInitialize);
108
163
 
109
164
  // Initialize flow nodes for the sources that belong to this subtree.
110
165
  for (const dataSource of dataSources) {
@@ -112,7 +167,9 @@ export function initializeViewSubtree(subtreeRoot, flow) {
112
167
  }
113
168
 
114
169
  /** @type {UnitView[]} */
115
- const unitViews = subtreeViews.filter((view) => view instanceof UnitView);
170
+ const unitViews = viewsToInitialize.filter(
171
+ (view) => view instanceof UnitView
172
+ );
116
173
 
117
174
  /** @type {Promise<import("../marks/mark.js").default>[]} */
118
175
  const graphicsPromises = [];
@@ -145,6 +202,10 @@ export function initializeViewSubtree(subtreeRoot, flow) {
145
202
  view.registerDisposer(view.flowHandle.collector.observe(observer));
146
203
  }
147
204
 
205
+ for (const view of viewsToInitialize) {
206
+ view._setDataInitializationState("ready");
207
+ }
208
+
148
209
  return {
149
210
  dataFlow,
150
211
  unitViews,
@@ -158,15 +219,19 @@ export function initializeViewSubtree(subtreeRoot, flow) {
158
219
  * This includes sources that are overridden deeper in the hierarchy.
159
220
  *
160
221
  * @param {import("../view/view.js").default | import("../view/view.js").default[]} subtreeRoot
222
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
161
223
  * @returns {Set<import("./sources/dataSource.js").default>}
162
224
  */
163
- export function collectViewSubtreeDataSources(subtreeRoot) {
225
+ export function collectViewSubtreeDataSources(subtreeRoot, viewFilter) {
164
226
  const subtreeViews = Array.isArray(subtreeRoot)
165
227
  ? subtreeRoot
166
- : subtreeRoot.getDescendants();
228
+ : collectSubtreeViews(subtreeRoot, viewFilter);
167
229
  /** @type {Set<import("./sources/dataSource.js").default>} */
168
230
  const dataSources = new Set();
169
231
  for (const view of subtreeViews) {
232
+ if (viewFilter && !viewFilter(view)) {
233
+ continue;
234
+ }
170
235
  // Walk up to the nearest view that owns a data source.
171
236
  let current = view;
172
237
  while (current && !current.flowHandle?.dataSource) {
@@ -184,12 +249,16 @@ export function collectViewSubtreeDataSources(subtreeRoot) {
184
249
  * These sources define data-ready boundaries for subtree-level loading.
185
250
  *
186
251
  * @param {import("../view/view.js").default} subtreeRoot
252
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
187
253
  * @returns {Set<import("./sources/dataSource.js").default>}
188
254
  */
189
- export function collectNearestViewSubtreeDataSources(subtreeRoot) {
255
+ export function collectNearestViewSubtreeDataSources(subtreeRoot, viewFilter) {
190
256
  /** @type {Set<import("./sources/dataSource.js").default>} */
191
257
  const dataSources = new Set();
192
258
  subtreeRoot.visit((view) => {
259
+ if (viewFilter && !viewFilter(view)) {
260
+ return VISIT_SKIP;
261
+ }
193
262
  if (view.flowHandle?.dataSource) {
194
263
  dataSources.add(view.flowHandle.dataSource);
195
264
  return VISIT_SKIP;
@@ -204,23 +273,53 @@ export function collectNearestViewSubtreeDataSources(subtreeRoot) {
204
273
  *
205
274
  * @param {import("../view/view.js").default} subtreeRoot
206
275
  * @param {Set<import("./sources/dataSource.js").default>} [dataSources]
276
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
277
+ * @param {{ queueReload?: boolean }} [loadOptions]
207
278
  * @returns {Promise<void[]>}
208
279
  */
209
280
  export function loadViewSubtreeData(
210
281
  subtreeRoot,
211
- dataSources = collectNearestViewSubtreeDataSources(subtreeRoot)
282
+ dataSources,
283
+ viewFilter,
284
+ loadOptions
212
285
  ) {
286
+ if (!dataSources) {
287
+ dataSources = collectNearestViewSubtreeDataSources(
288
+ subtreeRoot,
289
+ viewFilter
290
+ );
291
+ }
213
292
  return Promise.all(
214
293
  Array.from(dataSources).map((dataSource) =>
215
- loadDataSourceOnce(dataSource)
294
+ loadDataSourceOnce(dataSource, loadOptions)
216
295
  )
217
296
  ).then((results) => {
218
- reconfigureScales(subtreeRoot);
297
+ reconfigureScaleDomains(subtreeRoot, viewFilter);
219
298
  broadcastSubtreeDataReady(subtreeRoot);
220
299
  return results;
221
300
  });
222
301
  }
223
302
 
303
+ /**
304
+ * @param {import("../view/view.js").default} subtreeRoot
305
+ * @param {(view: import("../view/view.js").default) => boolean} [viewFilter]
306
+ * @returns {import("../view/view.js").default[]}
307
+ */
308
+ function collectSubtreeViews(subtreeRoot, viewFilter) {
309
+ /** @type {import("../view/view.js").default[]} */
310
+ const views = [];
311
+ if (!viewFilter) {
312
+ return subtreeRoot.getDescendants();
313
+ }
314
+ subtreeRoot.visit((view) => {
315
+ if (!viewFilter(view)) {
316
+ return VISIT_SKIP;
317
+ }
318
+ views.push(view);
319
+ });
320
+ return views;
321
+ }
322
+
224
323
  /**
225
324
  * Broadcasts a subtree-scoped data-ready event to views within the subtree.
226
325
  *
@@ -50,7 +50,7 @@ export default class AxisTickSource extends SingleAxisLazySource {
50
50
  // Note, although this function is async, it is not awaited. Data are updated
51
51
  // synchronously to ensure that the new ticks are available before the next frame is drawn.
52
52
 
53
- const scale = this.scaleResolution.scale;
53
+ const scale = this.scaleResolution.getScale();
54
54
  const axisLength = this.scaleResolution.getAxisLength();
55
55
  const axisParams = this.params.axis;
56
56
 
@@ -16,7 +16,7 @@ export default class SingleAxisLazySource extends DataSource {
16
16
  protected initializedPromise: Promise<void>;
17
17
  /** @type {import("../../../spec/channel.js").PrimaryPositionalChannel} */
18
18
  channel: import("../../../spec/channel.js").PrimaryPositionalChannel;
19
- scaleResolution: import("../../../view/scaleResolution.js").default;
19
+ scaleResolution: import("../../../scales/scaleResolution.js").default;
20
20
  /**
21
21
  * Convenience getter for genome.
22
22
  *
@@ -1 +1 @@
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"}
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,sEAA4D;IA+BhE;;;;OAIG;IACH,oEASC;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;uBArIsB,kBAAkB"}
@@ -1,6 +1,6 @@
1
1
  import UnitView from "../../../view/unitView.js";
2
2
  import DataSource from "../dataSource.js";
3
- import { reconfigureScales } from "../../../view/scaleResolution.js";
3
+ import { reconfigureScaleDomains } from "../../../scales/scaleResolution.js";
4
4
 
5
5
  /**
6
6
  * Base class for data sources that listen a domain and propagate data lazily.
@@ -71,7 +71,14 @@ export default class SingleAxisLazySource extends DataSource {
71
71
  * @protected
72
72
  */
73
73
  get genome() {
74
- return this.scaleResolution.getGenome();
74
+ const scale = this.scaleResolution.getScale();
75
+ if ("genome" in scale) {
76
+ const genome = scale.genome();
77
+ if (genome) {
78
+ return genome;
79
+ }
80
+ }
81
+ throw new Error("No genome has been defined!");
75
82
  }
76
83
 
77
84
  /**
@@ -123,6 +130,6 @@ export default class SingleAxisLazySource extends DataSource {
123
130
 
124
131
  this.complete();
125
132
 
126
- reconfigureScales(this.view);
133
+ reconfigureScaleDomains(this.view);
127
134
  }
128
135
  }
@@ -1 +1 @@
1
- {"version":3,"file":"singleAxisWindowedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisWindowedSource.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IAWI;;;OAGG;IACH,kBAHU;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,4BAA4B,EAAE,OAAO,CAAA;KAAC,CAGvE;IAEP;;;OAGG;IACH,0CAHW,OAAO,uBAAuB,EAAE,aAAa,QAqBvD;IAED;;;;OAIG;IACH,wBAFW,MAAM,EAAE,QAqBlB;IAcD;;;;;OAKG;IACH,iCAHW,MAAM,EAAE,iBAKlB;IApBD;;OAEG;IACH,mCAOC;IAYD;;;;;;;;;OASG;IACH,4BAHa,CAAC,YAHH,MAAM,EAAE,UACR,CAAC,eAAe,EAAE,OAAO,mCAAmC,EAAE,0BAA0B,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3H,OAAO,CAAC,CAAC,EAAE,CAAC,CAoCvB;IAED;;;;;;OAMG;IACH,yCALW,MAAM,EAAE,cACR,MAAM,YACN,CAAS,IAAQ,EAAR,MAAM,EAAE,KAAE,IAAI,QAyBjC;;CACJ;iCA3KgC,2BAA2B"}
1
+ {"version":3,"file":"singleAxisWindowedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisWindowedSource.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IAWI;;;OAGG;IACH,kBAHU;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,4BAA4B,EAAE,OAAO,CAAA;KAAC,CAGvE;IAEP;;;OAGG;IACH,0CAHW,OAAO,uBAAuB,EAAE,aAAa,QAqBvD;IAED;;;;OAIG;IACH,wBAFW,MAAM,EAAE,QAqBlB;IAcD;;;;;OAKG;IACH,iCAHW,MAAM,EAAE,iBAKlB;IApBD;;OAEG;IACH,mCAOC;IAYD;;;;;;;;;OASG;IACH,4BAHa,CAAC,YAHH,MAAM,EAAE,UACR,CAAC,eAAe,EAAE,OAAO,mCAAmC,EAAE,0BAA0B,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3H,OAAO,CAAC,CAAC,EAAE,CAAC,CAwCvB;IAED;;;;;;OAMG;IACH,yCALW,MAAM,EAAE,cACR,MAAM,YACN,CAAS,IAAQ,EAAR,MAAM,EAAE,KAAE,IAAI,QAyBjC;;CACJ;iCA/KgC,2BAA2B"}
@@ -125,7 +125,11 @@ export default class SingleAxisWindowedSource extends SingleAxisLazySource {
125
125
 
126
126
  try {
127
127
  const resultByChrom = await Promise.all(
128
- discreteChromosomeIntervals.map(async (d) => loader(d, signal))
128
+ discreteChromosomeIntervals.map(
129
+ async (
130
+ /** @type {import("@genome-spy/core/genome/genome.js").DiscreteChromosomeInterval} */ d
131
+ ) => loader(d, signal)
132
+ )
129
133
  );
130
134
 
131
135
  if (!signal.aborted) {
@@ -20,7 +20,7 @@ export default class FilterScoredLabelsTransform extends Transform {
20
20
  padding: number;
21
21
  /** @type {Map<any, ReservationMap>} */
22
22
  reservationMaps: Map<any, ReservationMap>;
23
- resolution: import("../../view/scaleResolution.js").default;
23
+ resolution: import("../../scales/scaleResolution.js").default;
24
24
  schedule: () => void;
25
25
  _filterAndPropagate(): void;
26
26
  groups: Map<any, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"filterScoredLabels.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.js"],"names":[],"mappings":"AAOA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,wBAAwB,QAC1D,OAAO,oBAAoB,EAAE,OAAO,EA6C9C;IAxCG,mEAAoB;IAEpB,oBAAoB;IACpB,OADW,GAAG,EAAE,CACD;IAEf,mBAAoC;IAMpC,sDAA8C;IAC9C,oDAAgE;IAChE,wDAAuD;IACvD,sDAAmD;IACnD,mDAA6C;IAC7C,mDAA6C;IAC7C,gCAAgC;IAChC,cADW,CAAS,IAAG,EAAH,GAAG,KAAE,GAAG,CAGd;IACd,gBAAuC;IAEvC,uCAAuC;IACvC,iBADW,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CACH;IAEhC,4DAAuD;IAIvD,qBAAuE;IAyB3E,4BAsEC;IAKG,sBAAuB;CAU9B;sBA3JqB,gBAAgB;2BAFX,+BAA+B"}
1
+ {"version":3,"file":"filterScoredLabels.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.js"],"names":[],"mappings":"AAOA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,wBAAwB,QAC1D,OAAO,oBAAoB,EAAE,OAAO,EA6C9C;IAxCG,mEAAoB;IAEpB,oBAAoB;IACpB,OADW,GAAG,EAAE,CACD;IAEf,mBAAoC;IAMpC,sDAA8C;IAC9C,oDAAgE;IAChE,wDAAuD;IACvD,sDAAmD;IACnD,mDAA6C;IAC7C,mDAA6C;IAC7C,gCAAgC;IAChC,cADW,CAAS,IAAG,EAAH,GAAG,KAAE,GAAG,CAGd;IACd,gBAAuC;IAEvC,uCAAuC;IACvC,iBADW,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CACH;IAEhC,8DAAuD;IAIvD,qBAAuE;IAyB3E,4BAsEC;IAKG,sBAAuB;CAU9B;sBA3JqB,gBAAgB;2BAFX,+BAA+B"}
@@ -76,7 +76,7 @@ export default class FilterScoredLabelsTransform extends Transform {
76
76
  _filterAndPropagate() {
77
77
  super.reset();
78
78
 
79
- const scale = this.resolution.scale;
79
+ const scale = this.resolution.getScale();
80
80
  const rangeSpan = this.resolution.getAxisLength();
81
81
  if (!rangeSpan) {
82
82
  // The view size is not (yet) available
@@ -1 +1 @@
1
- {"version":3,"file":"linearizeGenomicCoordinate.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/linearizeGenomicCoordinate.js"],"names":[],"mappings":"AAKA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,gCAAgC,QAClE,OAAO,oBAAoB,EAAE,OAAO,EAgG9C;IAvFG,2EAAoB;CAwF3B;sBA3GqB,gBAAgB"}
1
+ {"version":3,"file":"linearizeGenomicCoordinate.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/linearizeGenomicCoordinate.js"],"names":[],"mappings":"AAKA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,gCAAgC,QAClE,OAAO,oBAAoB,EAAE,OAAO,EAiG9C;IAxFG,2EAAoB;CAyF3B;sBA5GqB,gBAAgB"}
@@ -28,7 +28,8 @@ export default class LinearizeGenomicCoordinate extends Transform {
28
28
  throw new Error("Invalid channel: " + channel);
29
29
  }
30
30
 
31
- const genome = view.getScaleResolution(channel).getGenome();
31
+ const scale = view.getScaleResolution(channel).getScale();
32
+ const genome = "genome" in scale ? scale.genome() : undefined;
32
33
  if (!genome) {
33
34
  throw new Error(
34
35
  "LinearizeGenomicCoordinate transform requires a locus scale!"
@@ -109,7 +109,7 @@ export function getPrimaryChannel(channel: import("../spec/channel.js").Channel)
109
109
  *
110
110
  * @param {import("../spec/channel.js").Channel} channel
111
111
  */
112
- 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")[];
112
+ export function getChannelWithSecondarys(channel: import("../spec/channel.js").Channel): import("../spec/channel.js").Channel[];
113
113
  /**
114
114
  * @param {import("../spec/channel.js").Channel} channel
115
115
  */
@@ -1 +1 @@
1
- {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/encoder/encoder.js"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"encoder.d.ts","sourceRoot":"","sources":["../../../src/encoder/encoder.js"],"names":[],"mappings":"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"}
@@ -75,7 +75,7 @@ export default function createEncoders(unitView, encoding) {
75
75
  /**
76
76
  * @param {import("../spec/channel.js").ChannelWithScale} channel */
77
77
  const scaleSource = (channel) =>
78
- unitView.getScaleResolution(channel)?.scale;
78
+ unitView.getScaleResolution(channel)?.getScale();
79
79
 
80
80
  for (const [channel, channelDef] of Object.entries(encoding)) {
81
81
  if (!channelDef) {
@@ -1,3 +1,42 @@
1
1
  export default function scaleLocus(): import("./scaleLocus.js").ScaleLocus;
2
2
  export function isScaleLocus(scale: any): scale is import("./scaleLocus.js").ScaleLocus;
3
+ /**
4
+ * @param {import("./genome.js").default | { genome?: () => import("./genome.js").default } | undefined} scaleOrGenome
5
+ * @param {number} value
6
+ * @returns {number | import("./genome.js").ChromosomalLocus}
7
+ */
8
+ export function toComplexValue(scaleOrGenome: import("./genome.js").default | {
9
+ genome?: () => import("./genome.js").default;
10
+ } | undefined, value: number): number | import("./genome.js").ChromosomalLocus;
11
+ /**
12
+ * @param {import("./genome.js").default | { genome?: () => import("./genome.js").default } | undefined} scaleOrGenome
13
+ * @param {number | import("./genome.js").ChromosomalLocus} complex
14
+ * @returns {number}
15
+ */
16
+ export function fromComplexValue(scaleOrGenome: import("./genome.js").default | {
17
+ genome?: () => import("./genome.js").default;
18
+ } | undefined, complex: number | import("./genome.js").ChromosomalLocus): number;
19
+ /**
20
+ * @param {import("./genome.js").default | { genome?: () => import("./genome.js").default } | undefined} scaleOrGenome
21
+ * @param {import("../spec/scale.js").ScalarDomain | import("../spec/scale.js").ComplexDomain} interval
22
+ * @returns {number[]}
23
+ */
24
+ export function fromComplexInterval(scaleOrGenome: import("./genome.js").default | {
25
+ genome?: () => import("./genome.js").default;
26
+ } | undefined, interval: import("../spec/scale.js").ScalarDomain | import("../spec/scale.js").ComplexDomain): number[];
27
+ /**
28
+ * @param {import("./genome.js").default | { genome?: () => import("./genome.js").default } | undefined} scaleOrGenome
29
+ * @param {import("../spec/scale.js").ScalarDomain | import("../spec/scale.js").ComplexDomain} interval
30
+ * @returns {import("../spec/scale.js").ScalarDomain | import("../spec/scale.js").ComplexDomain}
31
+ */
32
+ export function toComplexInterval(scaleOrGenome: import("./genome.js").default | {
33
+ genome?: () => import("./genome.js").default;
34
+ } | undefined, interval: import("../spec/scale.js").ScalarDomain | import("../spec/scale.js").ComplexDomain): import("../spec/scale.js").ScalarDomain | import("../spec/scale.js").ComplexDomain;
35
+ /**
36
+ * @param {import("./genome.js").default | { genome?: () => import("./genome.js").default } | undefined} scaleOrGenome
37
+ * @returns {number[]}
38
+ */
39
+ export function getGenomeExtent(scaleOrGenome: import("./genome.js").default | {
40
+ genome?: () => import("./genome.js").default;
41
+ } | undefined): number[];
3
42
  //# sourceMappingURL=scaleLocus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scaleLocus.d.ts","sourceRoot":"","sources":["../../../src/genome/scaleLocus.js"],"names":[],"mappings":"AAIA,2EAyFC"}
1
+ {"version":3,"file":"scaleLocus.d.ts","sourceRoot":"","sources":["../../../src/genome/scaleLocus.js"],"names":[],"mappings":"AAMA,2EAyFC;;AASD;;;;GAIG;AACH,8CAJW,OAAO,aAAa,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,SAC5F,MAAM,GACJ,MAAM,GAAG,OAAO,aAAa,EAAE,gBAAgB,CAK3D;AAED;;;;GAIG;AACH,gDAJW,OAAO,aAAa,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,WAC5F,MAAM,GAAG,OAAO,aAAa,EAAE,gBAAgB,GAC7C,MAAM,CAQlB;AAED;;;;GAIG;AACH,mDAJW,OAAO,aAAa,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,YAC5F,OAAO,kBAAkB,EAAE,YAAY,GAAG,OAAO,kBAAkB,EAAE,aAAa,GAChF,MAAM,EAAE,CAQpB;AAED;;;;GAIG;AACH,iDAJW,OAAO,aAAa,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,YAC5F,OAAO,kBAAkB,EAAE,YAAY,GAAG,OAAO,kBAAkB,EAAE,aAAa,GAChF,OAAO,kBAAkB,EAAE,YAAY,GAAG,OAAO,kBAAkB,EAAE,aAAa,CAO9F;AAED;;;GAGG;AACH,+CAHW,OAAO,aAAa,EAAE,OAAO,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,OAAO,aAAa,EAAE,OAAO,CAAA;CAAE,GAAG,SAAS,GAC1F,MAAM,EAAE,CAQpB"}