@genome-spy/core 0.73.0 → 0.75.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 (392) hide show
  1. package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
  2. package/dist/bundle/browser-BTgw5ieH.js +126 -0
  3. package/dist/bundle/chunk-DmhlhrBa.js +11 -0
  4. package/dist/bundle/esm-BDFRLEuD.js +1248 -0
  5. package/dist/bundle/esm-BygJiwh0.js +573 -0
  6. package/dist/bundle/esm-CGX-qz1d.js +155 -0
  7. package/dist/bundle/esm-CgfVIRJ-.js +121 -0
  8. package/dist/bundle/esm-CuMSzCHy.js +298 -0
  9. package/dist/bundle/esm-DMXpJXM4.js +369 -0
  10. package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
  11. package/dist/bundle/esm-DtE8VqAv.js +1015 -0
  12. package/dist/bundle/esm-sIoQYZ21.js +461 -0
  13. package/dist/bundle/index.es.js +21266 -25938
  14. package/dist/bundle/index.js +367 -383
  15. package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
  16. package/dist/schema.json +13421 -7210
  17. package/dist/src/config/axisConfig.d.ts +16 -0
  18. package/dist/src/config/axisConfig.d.ts.map +1 -0
  19. package/dist/src/config/axisConfig.js +84 -0
  20. package/dist/src/config/defaultConfig.d.ts +3 -0
  21. package/dist/src/config/defaultConfig.d.ts.map +1 -0
  22. package/dist/src/config/defaultConfig.js +38 -0
  23. package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
  24. package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
  25. package/dist/src/config/defaults/axisDefaults.js +72 -0
  26. package/dist/src/config/defaults/markDefaults.d.ts +15 -0
  27. package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
  28. package/dist/src/config/defaults/markDefaults.js +121 -0
  29. package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
  30. package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
  31. package/dist/src/config/defaults/scaleDefaults.js +18 -0
  32. package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
  33. package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
  34. package/dist/src/config/defaults/titleDefaults.js +47 -0
  35. package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
  36. package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
  37. package/dist/src/config/defaults/viewDefaults.js +2 -0
  38. package/dist/src/config/markConfig.d.ts +8 -0
  39. package/dist/src/config/markConfig.d.ts.map +1 -0
  40. package/dist/src/config/markConfig.js +27 -0
  41. package/dist/src/config/mergeConfig.d.ts +8 -0
  42. package/dist/src/config/mergeConfig.d.ts.map +1 -0
  43. package/dist/src/config/mergeConfig.js +81 -0
  44. package/dist/src/config/resolveConfig.d.ts +22 -0
  45. package/dist/src/config/resolveConfig.d.ts.map +1 -0
  46. package/dist/src/config/resolveConfig.js +32 -0
  47. package/dist/src/config/scaleConfig.d.ts +40 -0
  48. package/dist/src/config/scaleConfig.d.ts.map +1 -0
  49. package/dist/src/config/scaleConfig.js +220 -0
  50. package/dist/src/config/styleUtils.d.ts +6 -0
  51. package/dist/src/config/styleUtils.d.ts.map +1 -0
  52. package/dist/src/config/styleUtils.js +10 -0
  53. package/dist/src/config/themes.d.ts +15 -0
  54. package/dist/src/config/themes.d.ts.map +1 -0
  55. package/dist/src/config/themes.js +293 -0
  56. package/dist/src/config/titleConfig.d.ts +12 -0
  57. package/dist/src/config/titleConfig.d.ts.map +1 -0
  58. package/dist/src/config/titleConfig.js +42 -0
  59. package/dist/src/config/viewConfig.d.ts +7 -0
  60. package/dist/src/config/viewConfig.d.ts.map +1 -0
  61. package/dist/src/config/viewConfig.js +29 -0
  62. package/dist/src/data/flowNode.d.ts +22 -1
  63. package/dist/src/data/flowNode.d.ts.map +1 -1
  64. package/dist/src/data/flowNode.js +37 -1
  65. package/dist/src/data/formats/bed.d.ts.map +1 -1
  66. package/dist/src/data/formats/bed.js +6 -1
  67. package/dist/src/data/formats/bedpe.d.ts.map +1 -1
  68. package/dist/src/data/formats/bedpe.js +4 -0
  69. package/dist/src/data/formats/fasta.d.ts.map +1 -1
  70. package/dist/src/data/formats/fasta.js +4 -0
  71. package/dist/src/data/formats/parquet.d.ts.map +1 -1
  72. package/dist/src/data/formats/parquet.js +4 -0
  73. package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
  74. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  75. package/dist/src/data/sources/dataSourceFactory.js +5 -141
  76. package/dist/src/data/sources/dataUtils.d.ts +25 -0
  77. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  78. package/dist/src/data/sources/dataUtils.js +23 -0
  79. package/dist/src/data/sources/inlineSource.js +2 -2
  80. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  81. package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
  82. package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
  83. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  84. package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
  85. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  86. package/dist/src/data/sources/lazy/bamSource.js +11 -0
  87. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  88. package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
  89. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  90. package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
  91. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  92. package/dist/src/data/sources/lazy/gff3Source.js +12 -1
  93. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  94. package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
  95. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
  96. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
  97. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
  98. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
  99. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
  100. package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
  101. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  102. package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
  103. package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
  104. package/dist/src/data/sources/lazy/vcfSource.js +11 -0
  105. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  106. package/dist/src/data/sources/urlSource.js +13 -5
  107. package/dist/src/data/transforms/aggregate.d.ts +1 -0
  108. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  109. package/dist/src/data/transforms/aggregate.js +30 -8
  110. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
  111. package/dist/src/data/transforms/aggregateOps.js +12 -1
  112. package/dist/src/data/transforms/coverage.js +2 -2
  113. package/dist/src/data/transforms/filter.js +1 -1
  114. package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
  115. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  116. package/dist/src/data/transforms/filterScoredLabels.js +9 -0
  117. package/dist/src/data/transforms/measureText.d.ts +1 -0
  118. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  119. package/dist/src/data/transforms/measureText.js +14 -5
  120. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  121. package/dist/src/data/transforms/pileup.js +1 -2
  122. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  123. package/dist/src/data/transforms/regexFold.js +0 -1
  124. package/dist/src/embedFactory.d.ts +13 -0
  125. package/dist/src/embedFactory.d.ts.map +1 -0
  126. package/dist/src/embedFactory.js +127 -0
  127. package/dist/src/encoder/accessor.d.ts +3 -12
  128. package/dist/src/encoder/accessor.d.ts.map +1 -1
  129. package/dist/src/encoder/accessor.js +10 -65
  130. package/dist/src/encoder/encoder.d.ts +51 -8
  131. package/dist/src/encoder/encoder.d.ts.map +1 -1
  132. package/dist/src/encoder/encoder.js +179 -55
  133. package/dist/src/fonts/bmFontManager.js +1 -1
  134. package/dist/src/full.d.ts +2 -0
  135. package/dist/src/full.d.ts.map +1 -0
  136. package/dist/src/full.js +2 -0
  137. package/dist/src/genome/genome.d.ts +8 -0
  138. package/dist/src/genome/genome.d.ts.map +1 -1
  139. package/dist/src/genome/genome.js +16 -2
  140. package/dist/src/genome/genomeStore.js +1 -1
  141. package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -1
  142. package/dist/src/genome/rootGenomeConfig.js +6 -2
  143. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  144. package/dist/src/genome/scaleLocus.js +31 -7
  145. package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
  146. package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
  147. package/dist/src/genomeSpy/cursorManager.js +131 -0
  148. package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
  149. package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
  150. package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
  151. package/dist/src/genomeSpy/interactionController.d.ts +5 -0
  152. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
  153. package/dist/src/genomeSpy/interactionController.js +292 -59
  154. package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
  155. package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
  156. package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
  157. package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
  158. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
  159. package/dist/src/genomeSpy/viewContextFactory.js +12 -4
  160. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
  161. package/dist/src/genomeSpy/viewDataInit.js +7 -3
  162. package/dist/src/genomeSpy.d.ts +1 -124
  163. package/dist/src/genomeSpy.d.ts.map +1 -1
  164. package/dist/src/genomeSpy.js +7 -688
  165. package/dist/src/genomeSpyBase.d.ts +133 -0
  166. package/dist/src/genomeSpyBase.d.ts.map +1 -0
  167. package/dist/src/genomeSpyBase.js +719 -0
  168. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  169. package/dist/src/gl/arrayBuilder.js +0 -3
  170. package/dist/src/gl/colorUtils.d.ts.map +1 -1
  171. package/dist/src/gl/colorUtils.js +3 -0
  172. package/dist/src/gl/dataToVertices.d.ts +12 -14
  173. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  174. package/dist/src/gl/dataToVertices.js +121 -95
  175. package/dist/src/gl/glslScaleGenerator.d.ts +5 -2
  176. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  177. package/dist/src/gl/glslScaleGenerator.js +15 -15
  178. package/dist/src/gl/vertexRangeIndex.d.ts +23 -0
  179. package/dist/src/gl/vertexRangeIndex.d.ts.map +1 -0
  180. package/dist/src/gl/vertexRangeIndex.js +150 -0
  181. package/dist/src/index.d.ts +3 -9
  182. package/dist/src/index.d.ts.map +1 -1
  183. package/dist/src/index.js +5 -114
  184. package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
  185. package/dist/src/marks/link.d.ts.map +1 -1
  186. package/dist/src/marks/link.js +0 -23
  187. package/dist/src/marks/mark.d.ts +8 -1
  188. package/dist/src/marks/mark.d.ts.map +1 -1
  189. package/dist/src/marks/mark.js +61 -20
  190. package/dist/src/marks/markUtils.d.ts +18 -1
  191. package/dist/src/marks/markUtils.d.ts.map +1 -1
  192. package/dist/src/marks/markUtils.js +52 -4
  193. package/dist/src/marks/point.d.ts.map +1 -1
  194. package/dist/src/marks/point.js +6 -26
  195. package/dist/src/marks/rect.d.ts.map +1 -1
  196. package/dist/src/marks/rect.js +13 -21
  197. package/dist/src/marks/rule.d.ts +7 -2
  198. package/dist/src/marks/rule.d.ts.map +1 -1
  199. package/dist/src/marks/rule.js +125 -16
  200. package/dist/src/marks/text.d.ts.map +1 -1
  201. package/dist/src/marks/text.js +5 -47
  202. package/dist/src/minimal.d.ts +8 -0
  203. package/dist/src/minimal.d.ts.map +1 -0
  204. package/dist/src/minimal.js +21 -0
  205. package/dist/src/paramRuntime/expressionCompiler.d.ts +2 -1
  206. package/dist/src/paramRuntime/expressionCompiler.d.ts.map +1 -1
  207. package/dist/src/paramRuntime/expressionCompiler.js +3 -2
  208. package/dist/src/paramRuntime/expressionRef.d.ts +4 -1
  209. package/dist/src/paramRuntime/expressionRef.d.ts.map +1 -1
  210. package/dist/src/paramRuntime/expressionRef.js +10 -3
  211. package/dist/src/paramRuntime/graphRuntime.d.ts.map +1 -1
  212. package/dist/src/paramRuntime/graphRuntime.js +15 -6
  213. package/dist/src/paramRuntime/paramRuntime.d.ts +8 -2
  214. package/dist/src/paramRuntime/paramRuntime.d.ts.map +1 -1
  215. package/dist/src/paramRuntime/paramRuntime.js +10 -5
  216. package/dist/src/paramRuntime/types.d.ts +1 -0
  217. package/dist/src/paramRuntime/types.d.ts.map +1 -1
  218. package/dist/src/paramRuntime/types.js +1 -0
  219. package/dist/src/paramRuntime/viewParamRuntime.d.ts +24 -4
  220. package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
  221. package/dist/src/paramRuntime/viewParamRuntime.js +52 -6
  222. package/dist/src/scale/scale.d.ts.map +1 -1
  223. package/dist/src/scale/scale.js +14 -7
  224. package/dist/src/scales/axisResolution.d.ts.map +1 -1
  225. package/dist/src/scales/axisResolution.js +9 -5
  226. package/dist/src/scales/domainPlanner.d.ts +82 -16
  227. package/dist/src/scales/domainPlanner.d.ts.map +1 -1
  228. package/dist/src/scales/domainPlanner.js +364 -131
  229. package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
  230. package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
  231. package/dist/src/scales/indexLikeDomainUtils.js +67 -0
  232. package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
  233. package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
  234. package/dist/src/scales/resolutionMemberOrder.js +22 -0
  235. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
  236. package/dist/src/scales/scaleInstanceManager.js +7 -2
  237. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
  238. package/dist/src/scales/scaleInteractionController.js +43 -4
  239. package/dist/src/scales/scalePropsResolver.d.ts +5 -3
  240. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
  241. package/dist/src/scales/scalePropsResolver.js +108 -8
  242. package/dist/src/scales/scaleResolution.d.ts +35 -1
  243. package/dist/src/scales/scaleResolution.d.ts.map +1 -1
  244. package/dist/src/scales/scaleResolution.js +381 -66
  245. package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -1
  246. package/dist/src/scales/scaleResolutionTestUtils.js +6 -2
  247. package/dist/src/scales/scaleRules.d.ts.map +1 -1
  248. package/dist/src/scales/scaleRules.js +16 -2
  249. package/dist/src/scales/selectionDomainUtils.d.ts +30 -0
  250. package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -1
  251. package/dist/src/scales/selectionDomainUtils.js +116 -1
  252. package/dist/src/screenshotExport.d.ts +23 -0
  253. package/dist/src/screenshotExport.d.ts.map +1 -0
  254. package/dist/src/screenshotExport.js +44 -0
  255. package/dist/src/screenshotHarness.d.ts.map +1 -1
  256. package/dist/src/screenshotHarness.js +26 -25
  257. package/dist/src/spec/axis.d.ts +43 -32
  258. package/dist/src/spec/channel.d.ts +19 -13
  259. package/dist/src/spec/config.d.ts +264 -0
  260. package/dist/src/spec/data.d.ts +19 -0
  261. package/dist/src/spec/decoration.d.ts +51 -0
  262. package/dist/src/spec/exampleFiles.d.ts +12 -0
  263. package/dist/src/spec/exampleFiles.d.ts.map +1 -0
  264. package/dist/src/spec/exampleFiles.js +52 -0
  265. package/dist/src/spec/font.d.ts +1 -1
  266. package/dist/src/spec/mark.d.ts +97 -13
  267. package/dist/src/spec/parameter.d.ts +30 -10
  268. package/dist/src/spec/root.d.ts +14 -0
  269. package/dist/src/spec/scale.d.ts +31 -14
  270. package/dist/src/spec/title.d.ts +13 -2
  271. package/dist/src/spec/tooltip.d.ts +1 -1
  272. package/dist/src/spec/transform.d.ts +39 -4
  273. package/dist/src/spec/view.d.ts +67 -19
  274. package/dist/src/styles/genome-spy.css +55 -55
  275. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  276. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  277. package/dist/src/styles/genome-spy.css.js +23 -22
  278. package/dist/src/testSetup.d.ts +2 -0
  279. package/dist/src/testSetup.d.ts.map +1 -0
  280. package/dist/src/testSetup.js +5 -0
  281. package/dist/src/tooltip/dataTooltipHandler.js +8 -2
  282. package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
  283. package/dist/src/tooltip/tooltipContext.js +3 -2
  284. package/dist/src/types/embedApi.d.ts +7 -0
  285. package/dist/src/types/encoder.d.ts +17 -15
  286. package/dist/src/types/scaleResolutionApi.d.ts +20 -0
  287. package/dist/src/types/viewContext.d.ts +23 -1
  288. package/dist/src/utils/expression.d.ts +18 -10
  289. package/dist/src/utils/expression.d.ts.map +1 -1
  290. package/dist/src/utils/expression.js +354 -19
  291. package/dist/src/utils/field.d.ts.map +1 -1
  292. package/dist/src/utils/field.js +0 -1
  293. package/dist/src/utils/inertia.d.ts.map +1 -1
  294. package/dist/src/utils/inertia.js +0 -1
  295. package/dist/src/utils/inputBinding.d.ts +1 -1
  296. package/dist/src/utils/interaction.d.ts +109 -0
  297. package/dist/src/utils/interaction.d.ts.map +1 -0
  298. package/dist/src/utils/interaction.js +200 -0
  299. package/dist/src/utils/interactionEvent.d.ts +21 -42
  300. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  301. package/dist/src/utils/interactionEvent.js +43 -66
  302. package/dist/src/utils/kWayMerge.js +1 -1
  303. package/dist/src/utils/mergeObjects.d.ts.map +1 -1
  304. package/dist/src/utils/mergeObjects.js +0 -2
  305. package/dist/src/utils/radixSort.d.ts.map +1 -1
  306. package/dist/src/utils/radixSort.js +0 -2
  307. package/dist/src/utils/throttle.d.ts.map +1 -1
  308. package/dist/src/utils/throttle.js +0 -2
  309. package/dist/src/utils/ui/tooltip.d.ts +1 -0
  310. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  311. package/dist/src/utils/ui/tooltip.js +1 -0
  312. package/dist/src/utils/url.js +1 -1
  313. package/dist/src/view/axisGridView.d.ts +1 -1
  314. package/dist/src/view/axisGridView.d.ts.map +1 -1
  315. package/dist/src/view/axisGridView.js +2 -47
  316. package/dist/src/view/axisView.d.ts +2 -3
  317. package/dist/src/view/axisView.d.ts.map +1 -1
  318. package/dist/src/view/axisView.js +251 -106
  319. package/dist/src/view/concatView.d.ts +2 -1
  320. package/dist/src/view/concatView.d.ts.map +1 -1
  321. package/dist/src/view/concatView.js +4 -2
  322. package/dist/src/view/containerMutationHelper.d.ts +3 -0
  323. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  324. package/dist/src/view/containerMutationHelper.js +4 -1
  325. package/dist/src/view/facetView.d.ts +1 -1
  326. package/dist/src/view/facetView.js +3 -3
  327. package/dist/src/view/flowBuilder.d.ts +1 -1
  328. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  329. package/dist/src/view/flowBuilder.js +13 -9
  330. package/dist/src/view/gridView/gridChild.d.ts +6 -0
  331. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  332. package/dist/src/view/gridView/gridChild.js +72 -43
  333. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  334. package/dist/src/view/gridView/gridView.js +255 -101
  335. package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
  336. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
  337. package/dist/src/view/gridView/keyboardZoomController.js +1 -1
  338. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  339. package/dist/src/view/gridView/scrollbar.js +4 -2
  340. package/dist/src/view/gridView/selectionRect.d.ts +4 -0
  341. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  342. package/dist/src/view/gridView/selectionRect.js +20 -1
  343. package/dist/src/view/gridView/separatorView.d.ts +1 -0
  344. package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
  345. package/dist/src/view/gridView/separatorView.js +9 -0
  346. package/dist/src/view/interactionRouting.d.ts +20 -0
  347. package/dist/src/view/interactionRouting.d.ts.map +1 -0
  348. package/dist/src/view/interactionRouting.js +53 -0
  349. package/dist/src/view/layerView.d.ts.map +1 -1
  350. package/dist/src/view/layerView.js +12 -9
  351. package/dist/src/view/layout/grid.js +1 -1
  352. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  353. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
  354. package/dist/src/view/resolutionPlanner.d.ts +9 -0
  355. package/dist/src/view/resolutionPlanner.d.ts.map +1 -0
  356. package/dist/src/view/resolutionPlanner.js +302 -0
  357. package/dist/src/view/testUtils.d.ts +17 -3
  358. package/dist/src/view/testUtils.d.ts.map +1 -1
  359. package/dist/src/view/testUtils.js +62 -69
  360. package/dist/src/view/title.d.ts +8 -1
  361. package/dist/src/view/title.d.ts.map +1 -1
  362. package/dist/src/view/title.js +66 -76
  363. package/dist/src/view/unitView.d.ts +1 -1
  364. package/dist/src/view/unitView.d.ts.map +1 -1
  365. package/dist/src/view/unitView.js +72 -169
  366. package/dist/src/view/view.d.ts +76 -30
  367. package/dist/src/view/view.d.ts.map +1 -1
  368. package/dist/src/view/view.js +138 -48
  369. package/dist/src/view/viewFactory.d.ts +11 -3
  370. package/dist/src/view/viewFactory.d.ts.map +1 -1
  371. package/dist/src/view/viewFactory.js +37 -11
  372. package/dist/src/view/viewUtils.d.ts.map +1 -1
  373. package/dist/src/view/viewUtils.js +41 -5
  374. package/dist/src/view/zoom.d.ts +2 -2
  375. package/dist/src/view/zoom.d.ts.map +1 -1
  376. package/dist/src/view/zoom.js +21 -23
  377. package/package.json +18 -10
  378. package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
  379. package/dist/bundle/browser-0iNU5Wit.js +0 -138
  380. package/dist/bundle/index-BYsZN7b0.js +0 -1597
  381. package/dist/bundle/index-C3kClAEN.js +0 -1771
  382. package/dist/bundle/index-C7wOh6y1.js +0 -657
  383. package/dist/bundle/index-CRaQAuki.js +0 -326
  384. package/dist/bundle/index-D9v1PCj9.js +0 -507
  385. package/dist/bundle/index-GDOuv_D5.js +0 -266
  386. package/dist/bundle/index-Gt44EOIH.js +0 -628
  387. package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
  388. package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
  389. package/dist/bundle/unzip-Bac01w6X.js +0 -1492
  390. package/dist/src/config/scaleDefaults.d.ts +0 -8
  391. package/dist/src/config/scaleDefaults.d.ts.map +0 -1
  392. package/dist/src/config/scaleDefaults.js +0 -45
@@ -0,0 +1,42 @@
1
+ import { mergeConfigScopes } from "./mergeConfig.js";
2
+ import { normalizeStyle } from "./styleUtils.js";
3
+
4
+ /**
5
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
6
+ * @returns {import("../spec/config.js").TitleConfig}
7
+ */
8
+ export function getConfiguredTitleConfig(scopes) {
9
+ return /** @type {import("../spec/config.js").TitleConfig} */ (
10
+ mergeConfigScopes(
11
+ scopes.map(
12
+ (scope) =>
13
+ /** @type {Record<string, any> | undefined} */ (scope.title)
14
+ )
15
+ )
16
+ );
17
+ }
18
+
19
+ /**
20
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
21
+ * @param {string | string[]} [styleName]
22
+ * @returns {import("../spec/config.js").StyleConfig}
23
+ */
24
+ export function getConfiguredStyleConfig(scopes, styleName) {
25
+ const styles = normalizeStyle(styleName);
26
+ if (styles.length == 0) {
27
+ return {};
28
+ }
29
+
30
+ return /** @type {import("../spec/config.js").StyleConfig} */ (
31
+ mergeConfigScopes(
32
+ scopes.flatMap((scope) =>
33
+ styles.map(
34
+ (name) =>
35
+ /** @type {Record<string, any> | undefined} */ (
36
+ scope.style?.[name]
37
+ )
38
+ )
39
+ )
40
+ )
41
+ );
42
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
3
+ * @param {import("../spec/view.js").ViewBackground} [explicitViewBackground]
4
+ * @returns {import("../spec/view.js").ViewBackground}
5
+ */
6
+ export function getConfiguredViewBackground(scopes: import("../spec/config.js").GenomeSpyConfig[], explicitViewBackground?: import("../spec/view.js").ViewBackground): import("../spec/view.js").ViewBackground;
7
+ //# sourceMappingURL=viewConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewConfig.d.ts","sourceRoot":"","sources":["../../../src/config/viewConfig.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,oDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,2BAC7C,OAAO,iBAAiB,EAAE,cAAc,GACtC,OAAO,iBAAiB,EAAE,cAAc,CAsBpD"}
@@ -0,0 +1,29 @@
1
+ import { mergeConfigScopes } from "./mergeConfig.js";
2
+ import { normalizeStyle } from "./styleUtils.js";
3
+
4
+ /**
5
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
6
+ * @param {import("../spec/view.js").ViewBackground} [explicitViewBackground]
7
+ * @returns {import("../spec/view.js").ViewBackground}
8
+ */
9
+ export function getConfiguredViewBackground(scopes, explicitViewBackground) {
10
+ // Mirrors Vega-Lite behavior: view backgrounds use the implicit "cell"
11
+ // style, and explicit view.style entries augment it.
12
+ const styles = ["cell", ...normalizeStyle(explicitViewBackground?.style)];
13
+
14
+ return /** @type {import("../spec/view.js").ViewBackground} */ (
15
+ mergeConfigScopes(
16
+ scopes
17
+ .flatMap((scope) => [
18
+ /** @type {Record<string, any> | undefined} */ (scope.view),
19
+ ...styles.map(
20
+ (styleName) =>
21
+ /** @type {Record<string, any> | undefined} */ (
22
+ scope.style?.[styleName]
23
+ )
24
+ ),
25
+ ])
26
+ .concat([explicitViewBackground])
27
+ )
28
+ );
29
+ }
@@ -1,3 +1,13 @@
1
+ /**
2
+ * Walks upstream from a flow node and collects scale channels whose current
3
+ * domain affects the produced data. Downstream encodings on these channels
4
+ * must not re-register as domain contributors or they will invalidate the
5
+ * domain that they themselves depend on.
6
+ *
7
+ * @param {FlowNode | undefined} node
8
+ * @returns {Set<import("../spec/channel.js").ChannelWithScale>}
9
+ */
10
+ export function collectDomainSensitiveScaleChannels(node: FlowNode | undefined): Set<import("../spec/channel.js").ChannelWithScale>;
1
11
  /**
2
12
  * @param {import("../types/flowBatch.js").FlowBatch} flowBatch
3
13
  * @returns {flowBatch is import("../types/flowBatch.js").FileBatch}
@@ -24,7 +34,9 @@ export const BEHAVIOR_MODIFIES: number;
24
34
  */
25
35
  export const BEHAVIOR_COLLECTS: number;
26
36
  /**
27
- * @typedef {{paramRuntime?: import("../paramRuntime/viewParamRuntime.js").default}} ParamRuntimeProvider
37
+ * @typedef {object} ParamRuntimeProvider
38
+ * @prop {import("../paramRuntime/viewParamRuntime.js").default} [paramRuntime]
39
+ * @prop {import("../types/viewContext.js").default} [context]
28
40
  */
29
41
  /**
30
42
  * This is heavily inspired by Vega's and Vega-Lite's data flow system.
@@ -49,6 +61,14 @@ export default class FlowNode {
49
61
  */
50
62
  paramRuntimeProvider: ParamRuntimeProvider;
51
63
  get behavior(): number;
64
+ /**
65
+ * Scale channels whose current domain affects this node's output.
66
+ * Downstream views must not feed these channels back into shared-domain
67
+ * resolution or domain-dependent flows can invalidate themselves.
68
+ *
69
+ * @returns {import("../spec/channel.js").ChannelWithScale[]}
70
+ */
71
+ get domainSensitiveScaleChannels(): import("../spec/channel.js").ChannelWithScale[];
52
72
  /**
53
73
  * A human-readable label for the node. Used for debugging and logging.
54
74
  *
@@ -173,6 +193,7 @@ export default class FlowNode {
173
193
  }
174
194
  export type ParamRuntimeProvider = {
175
195
  paramRuntime?: import("../paramRuntime/viewParamRuntime.js").default;
196
+ context?: import("../types/viewContext.js").default;
176
197
  };
177
198
  /**
178
199
  * This is heavily inspired by Vega's and Vega-Lite's data flow system.
@@ -1 +1 @@
1
- {"version":3,"file":"flowNode.d.ts","sourceRoot":"","sources":["../../../src/data/flowNode.js"],"names":[],"mappings":"AA8YA;;;GAGG;AACH,uCAHW,OAAO,uBAAuB,EAAE,SAAS,GACvC,SAAS,IAAI,OAAO,uBAAuB,EAAE,SAAS,CAIlE;AAED;;;GAGG;AACH,wCAHW,OAAO,uBAAuB,EAAE,SAAS,GACvC,SAAS,IAAI,OAAO,uBAAuB,EAAE,UAAU,CAInE;AA1ZD;;;GAGG;AACH,qCAAsC;AAEtC;;;GAGG;AACH,uCAAwC;AAExC;;;GAGG;AACH,uCAAwC;AAExC;;GAEG;AAEH;;;;;GAKG;AACH;IAoCI;;OAEG;IACH,mCAFW,oBAAoB,EAa9B;IAjDD;;QAEI,oBAAoB;eAAT,KAAK;MAElB;IAWF;;;;OAIG;IACH,sBAFU,oBAAoB,CAEF;IAE5B,uBAEC;IAED;;;;OAIG;IACH,aAFa,MAAM,CAIlB;IAQG,yBAAyB;IACzB,UADW,QAAQ,EAAE,CACH;IAElB,uBAAuB;IACvB,QADW,QAAQ,CACI;IAEvB,2CAA2C;IAC3C,mBAAsB;IAG1B,wBAEC;IAED;;;OAGG;IACH,cASC;IAED;;;;;;OAMG;IACH,mBAEC;IAED;;;OAGG;IACH,uBAMC;IA2QD;;;OAGG;IACH,4BAHW,KAAK,QAKf;IAxPD;;;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,CAAC,CAAS,IAAQ,EAAR,QAAQ,KAAE,IAAI,CAAC,GAAG;QAAE,aAAa,CAAC,EAAE,CAAS,IAAQ,EAAR,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,2BAFW,MAAM,IAAI,QAQpB;IAED;;OAEG;IACH,gBAWC;IAED;;OAEG;IACH,uBAOC;IAED;;;;OAIG;IACH,sBAFW,OAAO,uBAAuB,EAAE,SAAS,QAMnD;IAED;;;OAGG;IACH,8BAHa,OAAO,qCAAqC,EAAE,OAAO,CAcjE;IAED;;;;OAIG;IACH,8BAQC;;CASJ;mCAvXY;IAAC,YAAY,CAAC,EAAE,OAAO,qCAAqC,EAAE,OAAO,CAAA;CAAC;;;;oBAMtE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;mBACnB,KAAK,EAAE"}
1
+ {"version":3,"file":"flowNode.d.ts","sourceRoot":"","sources":["../../../src/data/flowNode.js"],"names":[],"mappings":"AA2ZA;;;;;;;;GAQG;AACH,0DAHW,QAAQ,GAAG,SAAS,GAClB,GAAG,CAAC,OAAO,oBAAoB,EAAE,gBAAgB,CAAC,CAc9D;AAED;;;GAGG;AACH,uCAHW,OAAO,uBAAuB,EAAE,SAAS,GACvC,SAAS,IAAI,OAAO,uBAAuB,EAAE,SAAS,CAIlE;AAED;;;GAGG;AACH,wCAHW,OAAO,uBAAuB,EAAE,SAAS,GACvC,SAAS,IAAI,OAAO,uBAAuB,EAAE,UAAU,CAInE;AA9bD;;;GAGG;AACH,qCAAsC;AAEtC;;;GAGG;AACH,uCAAwC;AAExC;;;GAGG;AACH,uCAAwC;AAExC;;;;GAIG;AAEH;;;;;GAKG;AACH;IA+CI;;OAEG;IACH,mCAFW,oBAAoB,EAa9B;IA5DD;;QAEI,oBAAoB;eAAT,KAAK;MAElB;IAWF;;;;OAIG;IACH,sBAFU,oBAAoB,CAEF;IAE5B,uBAEC;IAED;;;;;;OAMG;IACH,oCAFa,OAAO,oBAAoB,EAAE,gBAAgB,EAAE,CAI3D;IAED;;;;OAIG;IACH,aAFa,MAAM,CAIlB;IAQG,yBAAyB;IACzB,UADW,QAAQ,EAAE,CACH;IAElB,uBAAuB;IACvB,QADW,QAAQ,CACI;IAEvB,2CAA2C;IAC3C,mBAAsB;IAG1B,wBAEC;IAED;;;OAGG;IACH,cASC;IAED;;;;;;OAMG;IACH,mBAEC;IAED;;;OAGG;IACH,uBAMC;IA2QD;;;OAGG;IACH,4BAHW,KAAK,QAKf;IAxPD;;;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,CAAC,CAAS,IAAQ,EAAR,QAAQ,KAAE,IAAI,CAAC,GAAG;QAAE,aAAa,CAAC,EAAE,CAAS,IAAQ,EAAR,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,2BAFW,MAAM,IAAI,QAQpB;IAED;;OAEG;IACH,gBAWC;IAED;;OAEG;IACH,uBAOC;IAED;;;;OAIG;IACH,sBAFW,OAAO,uBAAuB,EAAE,SAAS,QAMnD;IAED;;;OAGG;IACH,8BAHa,OAAO,qCAAqC,EAAE,OAAO,CAcjE;IAED;;;;OAIG;IACH,8BAQC;;CASJ;;mBAnYS,OAAO,qCAAqC,EAAE,OAAO;cACrD,OAAO,yBAAyB,EAAE,OAAO;;;;;oBAMtC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;;;mBACnB,KAAK,EAAE"}
@@ -19,7 +19,9 @@ export const BEHAVIOR_MODIFIES = 1 << 1;
19
19
  export const BEHAVIOR_COLLECTS = 1 << 2;
20
20
 
21
21
  /**
22
- * @typedef {{paramRuntime?: import("../paramRuntime/viewParamRuntime.js").default}} ParamRuntimeProvider
22
+ * @typedef {object} ParamRuntimeProvider
23
+ * @prop {import("../paramRuntime/viewParamRuntime.js").default} [paramRuntime]
24
+ * @prop {import("../types/viewContext.js").default} [context]
23
25
  */
24
26
 
25
27
  /**
@@ -55,6 +57,17 @@ export default class FlowNode {
55
57
  return 0;
56
58
  }
57
59
 
60
+ /**
61
+ * Scale channels whose current domain affects this node's output.
62
+ * Downstream views must not feed these channels back into shared-domain
63
+ * resolution or domain-dependent flows can invalidate themselves.
64
+ *
65
+ * @returns {import("../spec/channel.js").ChannelWithScale[]}
66
+ */
67
+ get domainSensitiveScaleChannels() {
68
+ return [];
69
+ }
70
+
58
71
  /**
59
72
  * A human-readable label for the node. Used for debugging and logging.
60
73
  *
@@ -396,6 +409,29 @@ export default class FlowNode {
396
409
  }
397
410
  }
398
411
 
412
+ /**
413
+ * Walks upstream from a flow node and collects scale channels whose current
414
+ * domain affects the produced data. Downstream encodings on these channels
415
+ * must not re-register as domain contributors or they will invalidate the
416
+ * domain that they themselves depend on.
417
+ *
418
+ * @param {FlowNode | undefined} node
419
+ * @returns {Set<import("../spec/channel.js").ChannelWithScale>}
420
+ */
421
+ export function collectDomainSensitiveScaleChannels(node) {
422
+ /** @type {Set<import("../spec/channel.js").ChannelWithScale>} */
423
+ const channels = new Set();
424
+
425
+ while (node) {
426
+ for (const channel of node.domainSensitiveScaleChannels) {
427
+ channels.add(channel);
428
+ }
429
+ node = node.parent;
430
+ }
431
+
432
+ return channels;
433
+ }
434
+
399
435
  /**
400
436
  * @param {import("../types/flowBatch.js").FlowBatch} flowBatch
401
437
  * @returns {flowBatch is import("../types/flowBatch.js").FileBatch}
@@ -1 +1 @@
1
- {"version":3,"file":"bed.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/bed.js"],"names":[],"mappings":"AAWA;;;;;GAKG;AACH,kCAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAqC1C"}
1
+ {"version":3,"file":"bed.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/bed.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,kCAHW,MAAM,GACJ,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC,CAsC1C"}
@@ -1,3 +1,5 @@
1
+ import { formats as vegaFormats } from "vega-loader";
2
+
1
3
  const blankLinePattern = /^\s*$/;
2
4
  const controlLinePattern = /^\s*(?:browser\b|track\b|#)/;
3
5
 
@@ -44,10 +46,13 @@ export default async function bed(data) {
44
46
  throw new Error(
45
47
  `Cannot parse BED line ${i + 1}: ${
46
48
  /** @type {Error} */ (error).message
47
- }`
49
+ }`,
50
+ { cause: error }
48
51
  );
49
52
  }
50
53
  }
51
54
 
52
55
  return rows;
53
56
  }
57
+
58
+ vegaFormats("bed", bed);
@@ -1 +1 @@
1
- {"version":3,"file":"bedpe.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/bedpe.js"],"names":[],"mappings":"AA+EA;;;GAGG;AACH,oCAHW,MAAM,WACN;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,yBA8EhC"}
1
+ {"version":3,"file":"bedpe.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/bedpe.js"],"names":[],"mappings":"AAiFA;;;GAGG;AACH,oCAHW,MAAM,WACN;IAAE,OAAO,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,yBA8EhC"}
@@ -1,3 +1,5 @@
1
+ import { formats as vegaFormats } from "vega-loader";
2
+
1
3
  const blankLinePattern = /^\s*$/;
2
4
  const controlLinePattern = /^\s*(?:browser\b|track\b|#)/;
3
5
 
@@ -158,3 +160,5 @@ export default function bedpe(data, format = {}) {
158
160
 
159
161
  return rows;
160
162
  }
163
+
164
+ vegaFormats("bedpe", bedpe);
@@ -1 +1 @@
1
- {"version":3,"file":"fasta.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/fasta.js"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,oCAJW,MAAM,WACN,GAAG,GACD,aAAa,EAAE,CAsB3B;;;;;gBA3BS,MAAM;cACN,MAAM"}
1
+ {"version":3,"file":"fasta.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/fasta.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,oCAJW,MAAM,WACN,GAAG,GACD,aAAa,EAAE,CAsB3B;;;;;gBA3BS,MAAM;cACN,MAAM"}
@@ -1,3 +1,5 @@
1
+ import { formats as vegaFormats } from "vega-loader";
2
+
1
3
  /**
2
4
  * A bare-bones FASTA-parser
3
5
  *
@@ -30,3 +32,5 @@ export default function fasta(data, options) {
30
32
 
31
33
  return sequences;
32
34
  }
35
+
36
+ vegaFormats("fasta", fasta);
@@ -1 +1 @@
1
- {"version":3,"file":"parquet.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/parquet.js"],"names":[],"mappings":"AAYA;;;;;GAKG;AACH,+BAJW,WAAW,GAAC,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAC,GAAG,CAAC,EAAE,CAAC,CAWzC"}
1
+ {"version":3,"file":"parquet.d.ts","sourceRoot":"","sources":["../../../../src/data/formats/parquet.js"],"names":[],"mappings":"AAcA;;;;;GAKG;AACH,+BAJW,WAAW,GAAC,UAAU,GACpB,OAAO,CAAC,MAAM,CAAC,MAAM,EAAC,GAAG,CAAC,EAAE,CAAC,CAWzC"}
@@ -1,3 +1,5 @@
1
+ import { formats as vegaFormats } from "vega-loader";
2
+
1
3
  /*
2
4
  * Adapted from: https://github.com/vega/vega-loader-parquet/blob/main/src/index.js
3
5
  */
@@ -27,3 +29,5 @@ export default async function parquet(data) {
27
29
  }
28
30
 
29
31
  parquet.responseType = "arrayBuffer";
32
+
33
+ vegaFormats("parquet", parquet);
@@ -1,19 +1,8 @@
1
- /**
2
- * Registers a lazy data source for a custom type.
3
- *
4
- * @template {import("../../spec/data.js").LazyDataParams} P
5
- * @param {LazySourceEntry<P>["guard"]} guard
6
- * @param {LazySourceEntry<P>["Source"]} Source
7
- * @returns {() => void}
8
- */
9
- export function registerLazyDataSource<P extends import("../../spec/data.js").LazyDataParams>(guard: LazySourceEntry<P>["guard"], Source: LazySourceEntry<P>["Source"]): () => void;
10
1
  /**
11
2
  * @param {Partial<import("../../spec/data.js").Data>} params
12
3
  * @param {import("../../view/view.js").default} view
13
4
  */
14
5
  export default function createDataSource(params: Partial<import("../../spec/data.js").Data>, view: import("../../view/view.js").default): import("./dataSource.js").default;
15
- export type LazySourceEntry<P extends import("../../spec/data.js").LazyDataParams> = {
16
- guard: (params: import("../../spec/data.js").LazyDataParams) => params is P;
17
- Source: new (params: P, view: import("../../view/view.js").default) => import("./dataSource.js").default;
18
- };
6
+ export { registerLazyDataSource };
7
+ import { registerLazyDataSource } from "./lazy/lazyDataSourceRegistry.js";
19
8
  //# sourceMappingURL=dataSourceFactory.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"dataSourceFactory.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataSourceFactory.js"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AACH,uCAL2D,CAAC,SAA/C,OAAQ,oBAAoB,EAAE,cAAe,SAC/C,eAAe,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAC3B,eAAe,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,GAC1B,MAAM,IAAI,CAYtB;AAED;;;GAGG;AACH,iDAHW,OAAO,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,QAC1C,OAAO,oBAAoB,EAAE,OAAO,qCAgB9C;4BAhD0D,CAAC,SAA/C,OAAQ,oBAAoB,EAAE,cAAe,IAC7C;IACR,KAAK,EAAE,CAAC,MAAM,EAAE,OAAO,oBAAoB,EAAE,cAAc,KAAK,MAAM,IAAI,CAAC,CAAC;IAC5E,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,OAAO,oBAAoB,EAAE,OAAO,KAAK,OAAO,iBAAiB,EAAE,OAAO,CAAA;CACzG"}
1
+ {"version":3,"file":"dataSourceFactory.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataSourceFactory.js"],"names":[],"mappings":"AAQA;;;GAGG;AACH,iDAHW,OAAO,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,QAC1C,OAAO,oBAAoB,EAAE,OAAO,qCAgB9C;;uCApBM,kCAAkC"}
@@ -1,45 +1,10 @@
1
1
  import InlineSource, { isInlineData } from "./inlineSource.js";
2
2
  import UrlSource, { isUrlData } from "./urlSource.js";
3
3
  import SequenceSource, { isSequenceGenerator } from "./sequenceSource.js";
4
- import AxisTickSource from "./lazy/axisTickSource.js";
5
- import AxisGenomeSource from "./lazy/axisGenomeSource.js";
6
- import IndexedFastaSource from "./lazy/indexedFastaSource.js";
7
- import BigWigSource from "./lazy/bigWigSource.js";
8
- import BigBedSource from "./lazy/bigBedSource.js";
9
- import BamSource from "./lazy/bamSource.js";
10
- import Gff3Source from "./lazy/gff3Source.js";
11
- import VcfSource from "./lazy/vcfSource.js";
12
-
13
- /**
14
- * @template {import("../../spec/data.js").LazyDataParams} P
15
- * @typedef {{
16
- * guard: (params: import("../../spec/data.js").LazyDataParams) => params is P,
17
- * Source: new (params: P, view: import("../../view/view.js").default) => import("./dataSource.js").default
18
- * }} LazySourceEntry
19
- */
20
-
21
- /** @type {LazySourceEntry<any>[]} */
22
- const customLazySources = [];
23
-
24
- /**
25
- * Registers a lazy data source for a custom type.
26
- *
27
- * @template {import("../../spec/data.js").LazyDataParams} P
28
- * @param {LazySourceEntry<P>["guard"]} guard
29
- * @param {LazySourceEntry<P>["Source"]} Source
30
- * @returns {() => void}
31
- */
32
- export function registerLazyDataSource(guard, Source) {
33
- /** @type {LazySourceEntry<any>} */
34
- const entry = { guard, Source };
35
- customLazySources.push(entry);
36
- return () => {
37
- const index = customLazySources.indexOf(entry);
38
- if (index >= 0) {
39
- customLazySources.splice(index, 1);
40
- }
41
- };
42
- }
4
+ import {
5
+ createLazyDataSource,
6
+ registerLazyDataSource,
7
+ } from "./lazy/lazyDataSourceRegistry.js";
43
8
 
44
9
  /**
45
10
  * @param {Partial<import("../../spec/data.js").Data>} params
@@ -70,105 +35,4 @@ function isLazyData(params) {
70
35
  return "lazy" in params;
71
36
  }
72
37
 
73
- /**
74
- *
75
- * @param {import("../../spec/data.js").LazyDataParams} params
76
- * @returns {params is import("../../spec/data.js").AxisTicksData}
77
- */
78
- function isAxisTickSource(params) {
79
- return params?.type == "axisTicks";
80
- }
81
-
82
- /**
83
- *
84
- * @param {import("../../spec/data.js").LazyDataParams} params
85
- * @returns {params is import("../../spec/data.js").AxisGenomeData}
86
- */
87
- function isAxisGenomeSource(params) {
88
- return params?.type == "axisGenome";
89
- }
90
-
91
- /**
92
- *
93
- * @param {import("../../spec/data.js").LazyDataParams} params
94
- * @returns {params is import("../../spec/data.js").IndexedFastaData}
95
- */
96
- function isIndexedFastaSource(params) {
97
- return params?.type == "indexedFasta";
98
- }
99
-
100
- /**
101
- *
102
- * @param {import("../../spec/data.js").LazyDataParams} params
103
- * @returns {params is import("../../spec/data.js").BigWigData}
104
- */
105
- function isBigWigSource(params) {
106
- return params?.type == "bigwig";
107
- }
108
-
109
- /**
110
- *
111
- * @param {import("../../spec/data.js").LazyDataParams} params
112
- * @returns {params is import("../../spec/data.js").BigBedData}
113
- */
114
- function isBigBedSource(params) {
115
- return params?.type == "bigbed";
116
- }
117
-
118
- /**
119
- *
120
- * @param {import("../../spec/data.js").LazyDataParams} params
121
- * @returns {params is import("../../spec/data.js").BamData}
122
- */
123
- function isBamSource(params) {
124
- return params?.type == "bam";
125
- }
126
-
127
- /**
128
- * @param {import("../../spec/data.js").LazyDataParams} params
129
- * @returns {params is import("../../spec/data.js").Gff3Data}
130
- */
131
- function isGff3Source(params) {
132
- return params?.type == "gff3";
133
- }
134
-
135
- /**
136
- * @param {import("../../spec/data.js").LazyDataParams} params
137
- * @returns {params is import("../../spec/data.js").VcfData}
138
- */
139
- function isVcfSource(params) {
140
- return params?.type == "vcf";
141
- }
142
-
143
- /** @type {LazySourceEntry<any>[]} */
144
- const builtinLazySources = [
145
- { guard: isAxisTickSource, Source: AxisTickSource },
146
- { guard: isAxisGenomeSource, Source: AxisGenomeSource },
147
- { guard: isIndexedFastaSource, Source: IndexedFastaSource },
148
- { guard: isBigWigSource, Source: BigWigSource },
149
- { guard: isBigBedSource, Source: BigBedSource },
150
- { guard: isBamSource, Source: BamSource },
151
- { guard: isGff3Source, Source: Gff3Source },
152
- { guard: isVcfSource, Source: VcfSource },
153
- ];
154
-
155
- /**
156
- * @param {import("../../spec/data.js").LazyDataParams} params
157
- * @param {import("../../view/view.js").default} view
158
- */
159
- function createLazyDataSource(params, view) {
160
- for (const entry of customLazySources) {
161
- if (entry.guard(params)) {
162
- return new entry.Source(/** @type {any} */ (params), view);
163
- }
164
- }
165
- for (const entry of builtinLazySources) {
166
- if (entry.guard(params)) {
167
- return new entry.Source(/** @type {any} */ (params), view);
168
- }
169
- }
170
-
171
- throw new Error(
172
- "Cannot figure out the data source type: " + JSON.stringify(params)
173
- );
174
- }
38
+ export { registerLazyDataSource };
@@ -8,10 +8,12 @@
8
8
  */
9
9
  export function getFormat(params: import("../../spec/data.js").DataSource, urls?: string | string[]): {
10
10
  type?: "csv" | "tsv";
11
+ columns?: string[];
11
12
  parse?: import("../../spec/data.js").Parse | null;
12
13
  } | {
13
14
  type?: "dsv";
14
15
  delimiter: string;
16
+ columns?: string[];
15
17
  parse?: import("../../spec/data.js").Parse | null;
16
18
  } | {
17
19
  type?: "json";
@@ -28,6 +30,29 @@ export function getFormat(params: import("../../spec/data.js").DataSource, urls?
28
30
  type: string;
29
31
  parse?: import("../../spec/data.js").Parse | null;
30
32
  };
33
+ /**
34
+ * Vega's DSV readers support synthetic header rows via `format.header`.
35
+ * GenomeSpy exposes the user-facing option as `format.columns`.
36
+ *
37
+ * @param {import("../../spec/data.js").DataFormat} format
38
+ */
39
+ export function toVegaLoaderFormat(format: import("../../spec/data.js").DataFormat): {
40
+ type?: "csv" | "tsv";
41
+ columns?: string[];
42
+ parse?: import("../../spec/data.js").Parse | null;
43
+ } | {
44
+ type?: "dsv";
45
+ delimiter: string;
46
+ columns?: string[];
47
+ parse?: import("../../spec/data.js").Parse | null;
48
+ } | {
49
+ type?: "json";
50
+ property?: string;
51
+ parse?: import("../../spec/data.js").Parse | null;
52
+ } | {
53
+ type: string;
54
+ parse?: import("../../spec/data.js").Parse | null;
55
+ };
31
56
  /**
32
57
  * @param {string} type
33
58
  * @returns {string}
@@ -1 +1 @@
1
- {"version":3,"file":"dataUtils.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataUtils.js"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,kCAJW,OAAO,oBAAoB,EAAE,UAAU,SAEvC,MAAM,GAAG,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;EAsB3B;AAED;;;GAGG;AACH,mCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;GAEG;AACH,wCAFW,MAAM,GAAG,MAAM,EAAE,UA2B3B;AAED;;GAEG;AACH,sCAFW,MAAM,WAWhB;AAkBD;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,aAAa,CAInE;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,aAAa,CAInE;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,cAAc,CAIpE;AAED;;;;GAIG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,OAAO,CAI7D;AAED;;GAEG;AACH,wCAFW,MAAM,GAAG,SAAS,WAI5B;AA/CM,+BAAgC,GAAG,QAI3B,OAAO,uBAAuB,EAAE,MAAM;;UAGtB,OAAO,gBAAgB,EAAE,KAAK,qCANR"}
1
+ {"version":3,"file":"dataUtils.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/dataUtils.js"],"names":[],"mappings":"AAMA;;;;;;;GAOG;AACH,kCAJW,OAAO,oBAAoB,EAAE,UAAU,SAEvC,MAAM,GAAG,MAAM,EAAE;;;;;;;;;;;;;;;;;;;;;;;EAsB3B;AAED;;;;;GAKG;AACH,2CAFW,OAAO,oBAAoB,EAAE,UAAU;;;;;;;;;;;;;;;;EAiBjD;AAED;;;GAGG;AACH,mCAHW,MAAM,GACJ,MAAM,CAIlB;AAED;;GAEG;AACH,wCAFW,MAAM,GAAG,MAAM,EAAE,UA2B3B;AAED;;GAEG;AACH,sCAFW,MAAM,WAWhB;AAkBD;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,aAAa,CAInE;AAED;;;GAGG;AACH,4CAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,aAAa,CAInE;AAED;;;GAGG;AACH,6CAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,cAAc,CAIpE;AAED;;;;GAIG;AACH,sCAHW,OAAO,oBAAoB,EAAE,UAAU,GACtC,UAAU,IAAI,OAAO,oBAAoB,EAAE,OAAO,CAI7D;AAED;;GAEG;AACH,wCAFW,MAAM,GAAG,SAAS,WAI5B;AA/CM,+BAAgC,GAAG,QAI3B,OAAO,uBAAuB,EAAE,MAAM;;UAGtB,OAAO,gBAAgB,EAAE,KAAK,qCANR"}
@@ -34,6 +34,29 @@ export function getFormat(params, urls = []) {
34
34
  return format;
35
35
  }
36
36
 
37
+ /**
38
+ * Vega's DSV readers support synthetic header rows via `format.header`.
39
+ * GenomeSpy exposes the user-facing option as `format.columns`.
40
+ *
41
+ * @param {import("../../spec/data.js").DataFormat} format
42
+ */
43
+ export function toVegaLoaderFormat(format) {
44
+ const readFormat = { ...format };
45
+
46
+ if (
47
+ (isCsvDataFormat(readFormat) || isDsvDataFormat(readFormat)) &&
48
+ readFormat.columns &&
49
+ !("header" in readFormat)
50
+ ) {
51
+ // @ts-ignore Vega loader supports `header`, but the public data format
52
+ // type intentionally exposes the GenomeSpy-level `columns` property
53
+ // instead.
54
+ readFormat.header = readFormat.columns;
55
+ }
56
+
57
+ return readFormat;
58
+ }
59
+
37
60
  /**
38
61
  * @param {string} type
39
62
  * @returns {string}
@@ -1,5 +1,5 @@
1
1
  import { read } from "vega-loader";
2
- import { getFormat, makeWrapper } from "./dataUtils.js";
2
+ import { getFormat, makeWrapper, toVegaLoaderFormat } from "./dataUtils.js";
3
3
  import DataSource from "./dataSource.js";
4
4
 
5
5
  /**
@@ -79,7 +79,7 @@ export default class InlineSource extends DataSource {
79
79
  data = [values];
80
80
  } else if (typeof values == "string") {
81
81
  // It's a string that needs to be parsed
82
- data = read(values, getFormat(this.params));
82
+ data = read(values, toVegaLoaderFormat(getFormat(this.params)));
83
83
  } else {
84
84
  throw new Error(
85
85
  '"values" in data configuration is not an array, object, or a string!'
@@ -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;CASJ;iCAtBgC,2BAA2B"}
1
+ {"version":3,"file":"axisGenomeSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisGenomeSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH;IACI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,cAAc,QAC9C,OAAO,uBAAuB,EAAE,OAAO,EAIjD;CASJ;iCAtBgC,2BAA2B"}
@@ -1,3 +1,4 @@
1
+ import { registerBuiltInLazyDataSource } from "./lazyDataSourceRegistry.js";
1
2
  import SingleAxisLazySource from "./singleAxisLazySource.js";
2
3
 
3
4
  /**
@@ -21,3 +22,13 @@ export default class AxisGenomeSource extends SingleAxisLazySource {
21
22
  this.publishData([this.genome.chromosomes]);
22
23
  }
23
24
  }
25
+
26
+ /**
27
+ * @param {import("../../../spec/data.js").LazyDataParams} params
28
+ * @returns {params is import("../../../spec/data.js").AxisGenomeData}
29
+ */
30
+ function isAxisGenomeSource(params) {
31
+ return params?.type == "axisGenome";
32
+ }
33
+
34
+ registerBuiltInLazyDataSource(isAxisGenomeSource, AxisGenomeSource);
@@ -12,7 +12,7 @@ export default class AxisTickSource extends SingleAxisLazySource {
12
12
  */
13
13
  ticks: import("../../../spec/channel.js").Scalar[];
14
14
  params: import("../../../spec/data.js").AxisTicksData;
15
- onDomainChanged(): void;
15
+ onDomainChanged(): Promise<void>;
16
16
  }
17
17
  import SingleAxisLazySource from "./singleAxisLazySource.js";
18
18
  //# sourceMappingURL=axisTickSource.d.ts.map
@@ -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;IAcxB,wBAkCC;CACJ;iCAzEgC,2BAA2B"}
1
+ {"version":3,"file":"axisTickSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/axisTickSource.js"],"names":[],"mappings":"AAaA;;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,iCAkCC;CACJ;iCAzEgC,2BAA2B"}