@genome-spy/core 0.37.4 → 0.39.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 (360) hide show
  1. package/dist/bundle/__vite-browser-external-ENoMJThg.js +8 -0
  2. package/dist/bundle/_commonjsHelpers-QtkX90xp.js +30 -0
  3. package/dist/bundle/index-1QVesMzU.js +1074 -0
  4. package/dist/bundle/index-Cbz74kpR.js +638 -0
  5. package/dist/bundle/index-LD6yPc3X.js +515 -0
  6. package/dist/bundle/index-Pv3tKJ1W.js +2190 -0
  7. package/dist/bundle/index-UyrC0vvF.js +72 -0
  8. package/dist/bundle/index-Y-LdHNIz.js +501 -0
  9. package/dist/bundle/index-gn8bhQ8w.js +4050 -0
  10. package/dist/bundle/index-lmJu1tfP.js +1372 -0
  11. package/dist/bundle/index-z4Cs62EO.js +279 -0
  12. package/dist/bundle/index.es.js +6467 -20590
  13. package/dist/bundle/index.js +92 -123
  14. package/dist/bundle/long-Veu0zKh9.js +2382 -0
  15. package/dist/bundle/remoteFile-Ur-gRKsH.js +96 -0
  16. package/dist/schema.json +524 -122
  17. package/dist/src/data/collector.d.ts +11 -11
  18. package/dist/src/data/collector.d.ts.map +1 -1
  19. package/dist/src/data/collector.js +8 -8
  20. package/dist/src/data/dataFlow.d.ts +18 -18
  21. package/dist/src/data/dataFlow.d.ts.map +1 -1
  22. package/dist/src/data/dataFlow.js +7 -7
  23. package/dist/src/data/flowNode.d.ts +9 -9
  24. package/dist/src/data/flowNode.d.ts.map +1 -1
  25. package/dist/src/data/flowNode.js +5 -5
  26. package/dist/src/data/flowOptimizer.d.ts +11 -11
  27. package/dist/src/data/flowOptimizer.d.ts.map +1 -1
  28. package/dist/src/data/flowOptimizer.js +7 -7
  29. package/dist/src/data/flowTestUtils.d.ts +2 -2
  30. package/dist/src/data/flowTestUtils.d.ts.map +1 -1
  31. package/dist/src/data/flowTestUtils.js +1 -1
  32. package/dist/src/data/sources/dataSource.js +1 -1
  33. package/dist/src/data/sources/dataSourceFactory.d.ts +3 -3
  34. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  35. package/dist/src/data/sources/dataSourceFactory.js +20 -20
  36. package/dist/src/data/sources/dataUtils.d.ts +20 -20
  37. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  38. package/dist/src/data/sources/dataUtils.js +11 -11
  39. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts +3 -3
  40. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +1 -1
  41. package/dist/src/data/sources/dynamic/axisGenomeSource.js +2 -2
  42. package/dist/src/data/sources/dynamic/axisTickSource.d.ts +6 -6
  43. package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +1 -1
  44. package/dist/src/data/sources/dynamic/axisTickSource.js +4 -4
  45. package/dist/src/data/sources/dynamic/bamSource.d.ts +7 -13
  46. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -1
  47. package/dist/src/data/sources/dynamic/bamSource.js +35 -27
  48. package/dist/src/data/sources/dynamic/bigBedSource.d.ts +9 -9
  49. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -1
  50. package/dist/src/data/sources/dynamic/bigBedSource.js +31 -18
  51. package/dist/src/data/sources/dynamic/bigWigSource.d.ts +7 -7
  52. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -1
  53. package/dist/src/data/sources/dynamic/bigWigSource.js +33 -26
  54. package/dist/src/data/sources/dynamic/gff3Source.d.ts +9 -0
  55. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -1
  56. package/dist/src/data/sources/dynamic/gff3Source.js +17 -2
  57. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +6 -9
  58. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -1
  59. package/dist/src/data/sources/dynamic/indexedFastaSource.js +28 -18
  60. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +10 -10
  61. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -1
  62. package/dist/src/data/sources/dynamic/singleAxisLazySource.js +6 -6
  63. package/dist/src/data/sources/dynamic/tabixSource.d.ts +11 -8
  64. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -1
  65. package/dist/src/data/sources/dynamic/tabixSource.js +31 -17
  66. package/dist/src/data/sources/inlineSource.d.ts +7 -7
  67. package/dist/src/data/sources/inlineSource.d.ts.map +1 -1
  68. package/dist/src/data/sources/inlineSource.js +5 -5
  69. package/dist/src/data/sources/namedSource.d.ts +9 -9
  70. package/dist/src/data/sources/namedSource.d.ts.map +1 -1
  71. package/dist/src/data/sources/namedSource.js +6 -6
  72. package/dist/src/data/sources/sequenceSource.d.ts +7 -7
  73. package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
  74. package/dist/src/data/sources/sequenceSource.js +4 -4
  75. package/dist/src/data/sources/urlSource.d.ts +7 -7
  76. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  77. package/dist/src/data/sources/urlSource.js +4 -4
  78. package/dist/src/data/transforms/aggregate.d.ts +3 -3
  79. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  80. package/dist/src/data/transforms/aggregate.js +2 -2
  81. package/dist/src/data/transforms/clone.d.ts +2 -2
  82. package/dist/src/data/transforms/clone.d.ts.map +1 -1
  83. package/dist/src/data/transforms/clone.js +1 -1
  84. package/dist/src/data/transforms/coverage.d.ts +3 -3
  85. package/dist/src/data/transforms/coverage.d.ts.map +1 -1
  86. package/dist/src/data/transforms/coverage.js +1 -1
  87. package/dist/src/data/transforms/coverage.test.js +1 -1
  88. package/dist/src/data/transforms/filter.d.ts +3 -3
  89. package/dist/src/data/transforms/filter.d.ts.map +1 -1
  90. package/dist/src/data/transforms/filter.js +2 -2
  91. package/dist/src/data/transforms/filter.test.js +1 -1
  92. package/dist/src/data/transforms/filterScoredLabels.d.ts +4 -4
  93. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  94. package/dist/src/data/transforms/filterScoredLabels.js +3 -3
  95. package/dist/src/data/transforms/flatten.d.ts +2 -2
  96. package/dist/src/data/transforms/flatten.d.ts.map +1 -1
  97. package/dist/src/data/transforms/flatten.js +3 -3
  98. package/dist/src/data/transforms/flatten.test.js +6 -6
  99. package/dist/src/data/transforms/flattenCompressedExons.d.ts +2 -2
  100. package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -1
  101. package/dist/src/data/transforms/flattenCompressedExons.js +1 -1
  102. package/dist/src/data/transforms/flattenDelimited.d.ts +2 -2
  103. package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -1
  104. package/dist/src/data/transforms/flattenDelimited.js +2 -2
  105. package/dist/src/data/transforms/flattenDelimited.test.js +5 -5
  106. package/dist/src/data/transforms/flattenSequence.d.ts +2 -2
  107. package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -1
  108. package/dist/src/data/transforms/flattenSequence.js +1 -1
  109. package/dist/src/data/transforms/flattenSequence.test.js +1 -1
  110. package/dist/src/data/transforms/formula.d.ts +3 -3
  111. package/dist/src/data/transforms/formula.d.ts.map +1 -1
  112. package/dist/src/data/transforms/formula.js +2 -2
  113. package/dist/src/data/transforms/identifier.d.ts +3 -3
  114. package/dist/src/data/transforms/identifier.d.ts.map +1 -1
  115. package/dist/src/data/transforms/identifier.js +2 -2
  116. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +3 -3
  117. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
  118. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +2 -2
  119. package/dist/src/data/transforms/measureText.d.ts +2 -2
  120. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  121. package/dist/src/data/transforms/measureText.js +1 -1
  122. package/dist/src/data/transforms/pileup.d.ts +3 -3
  123. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  124. package/dist/src/data/transforms/pileup.js +1 -1
  125. package/dist/src/data/transforms/pileup.test.js +1 -1
  126. package/dist/src/data/transforms/project.d.ts +2 -2
  127. package/dist/src/data/transforms/project.d.ts.map +1 -1
  128. package/dist/src/data/transforms/project.js +1 -1
  129. package/dist/src/data/transforms/project.test.js +1 -1
  130. package/dist/src/data/transforms/regexExtract.d.ts +2 -2
  131. package/dist/src/data/transforms/regexExtract.d.ts.map +1 -1
  132. package/dist/src/data/transforms/regexExtract.js +1 -1
  133. package/dist/src/data/transforms/regexExtract.test.js +3 -3
  134. package/dist/src/data/transforms/regexFold.d.ts +2 -2
  135. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  136. package/dist/src/data/transforms/regexFold.js +2 -2
  137. package/dist/src/data/transforms/regexFold.test.js +3 -3
  138. package/dist/src/data/transforms/sample.d.ts +2 -2
  139. package/dist/src/data/transforms/sample.d.ts.map +1 -1
  140. package/dist/src/data/transforms/sample.js +2 -2
  141. package/dist/src/data/transforms/stack.d.ts +3 -3
  142. package/dist/src/data/transforms/stack.d.ts.map +1 -1
  143. package/dist/src/data/transforms/stack.js +2 -2
  144. package/dist/src/data/transforms/stack.test.js +2 -2
  145. package/dist/src/data/transforms/transformFactory.d.ts +5 -5
  146. package/dist/src/data/transforms/transformFactory.d.ts.map +1 -1
  147. package/dist/src/data/transforms/transformFactory.js +3 -3
  148. package/dist/src/encoder/accessor.d.ts +6 -6
  149. package/dist/src/encoder/accessor.d.ts.map +1 -1
  150. package/dist/src/encoder/accessor.js +4 -4
  151. package/dist/src/encoder/encoder.d.ts +59 -59
  152. package/dist/src/encoder/encoder.d.ts.map +1 -1
  153. package/dist/src/encoder/encoder.js +47 -42
  154. package/dist/src/encoder/encoder.test.js +4 -4
  155. package/dist/src/fonts/bmFontManager.d.ts +7 -7
  156. package/dist/src/fonts/bmFontManager.d.ts.map +1 -1
  157. package/dist/src/fonts/bmFontManager.js +3 -3
  158. package/dist/src/fonts/bmFontMetrics.d.ts +6 -6
  159. package/dist/src/fonts/bmFontMetrics.d.ts.map +1 -1
  160. package/dist/src/fonts/bmFontMetrics.js +4 -4
  161. package/dist/src/genome/genome.d.ts +7 -7
  162. package/dist/src/genome/genome.d.ts.map +1 -1
  163. package/dist/src/genome/genome.js +2 -2
  164. package/dist/src/genome/genomeStore.d.ts +2 -2
  165. package/dist/src/genome/genomeStore.d.ts.map +1 -1
  166. package/dist/src/genome/genomeStore.js +1 -1
  167. package/dist/src/genome/locusFormat.d.ts +7 -7
  168. package/dist/src/genome/locusFormat.d.ts.map +1 -1
  169. package/dist/src/genome/locusFormat.js +4 -4
  170. package/dist/src/genome/scaleIndex.d.ts +1 -1
  171. package/dist/src/genome/scaleIndex.d.ts.map +1 -1
  172. package/dist/src/genome/scaleIndex.js +1 -1
  173. package/dist/src/genome/scaleLocus.d.ts +2 -2
  174. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  175. package/dist/src/genome/scaleLocus.js +3 -3
  176. package/dist/src/genomeSpy.d.ts +12 -12
  177. package/dist/src/genomeSpy.d.ts.map +1 -1
  178. package/dist/src/genomeSpy.js +51 -34
  179. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  180. package/dist/src/gl/dataToVertices.d.ts +19 -19
  181. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  182. package/dist/src/gl/dataToVertices.js +11 -11
  183. package/dist/src/gl/link.vertex.glsl.js +1 -1
  184. package/dist/src/gl/point.fragment.glsl.js +1 -1
  185. package/dist/src/gl/point.vertex.glsl.js +1 -1
  186. package/dist/src/gl/webGLHelper.d.ts +4 -4
  187. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  188. package/dist/src/gl/webGLHelper.js +2 -2
  189. package/dist/src/index.d.ts.map +1 -1
  190. package/dist/src/index.js +1 -1
  191. package/dist/src/marks/link.d.ts.map +1 -1
  192. package/dist/src/marks/link.js +35 -14
  193. package/dist/src/marks/mark.d.ts +35 -32
  194. package/dist/src/marks/mark.d.ts.map +1 -1
  195. package/dist/src/marks/mark.js +26 -23
  196. package/dist/src/marks/markUtils.d.ts +10 -10
  197. package/dist/src/marks/markUtils.d.ts.map +1 -1
  198. package/dist/src/marks/markUtils.js +5 -5
  199. package/dist/src/marks/pointMark.d.ts +1 -1
  200. package/dist/src/marks/pointMark.d.ts.map +1 -1
  201. package/dist/src/marks/pointMark.js +7 -7
  202. package/dist/src/marks/rectMark.d.ts +2 -2
  203. package/dist/src/marks/rectMark.d.ts.map +1 -1
  204. package/dist/src/marks/rectMark.js +7 -7
  205. package/dist/src/marks/rule.js +6 -6
  206. package/dist/src/marks/text.d.ts +1 -1
  207. package/dist/src/marks/text.d.ts.map +1 -1
  208. package/dist/src/marks/text.js +6 -6
  209. package/dist/src/scale/colorUtils.d.ts +4 -4
  210. package/dist/src/scale/colorUtils.d.ts.map +1 -1
  211. package/dist/src/scale/colorUtils.js +2 -2
  212. package/dist/src/scale/glslScaleGenerator.d.ts +3 -3
  213. package/dist/src/scale/glslScaleGenerator.d.ts.map +1 -1
  214. package/dist/src/scale/glslScaleGenerator.js +2 -2
  215. package/dist/src/scale/scale.d.ts +3 -3
  216. package/dist/src/scale/scale.d.ts.map +1 -1
  217. package/dist/src/scale/scale.js +2 -2
  218. package/dist/src/scale/ticks.d.ts +4 -4
  219. package/dist/src/scale/ticks.js +4 -4
  220. package/dist/src/spec/axis.d.ts +1 -1
  221. package/dist/src/spec/channel.d.ts +2 -2
  222. package/dist/src/spec/data.d.ts +2 -2
  223. package/dist/src/spec/mark.d.ts +36 -14
  224. package/dist/src/spec/root.d.ts +2 -2
  225. package/dist/src/spec/sampleView.d.ts +5 -5
  226. package/dist/src/spec/scale.d.ts +1 -1
  227. package/dist/src/spec/title.d.ts +1 -1
  228. package/dist/src/spec/view.d.ts +36 -9
  229. package/dist/src/tooltip/dataTooltipHandler.js +1 -1
  230. package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts.map +1 -1
  231. package/dist/src/tooltip/refseqGeneTooltipHandler.js +1 -1
  232. package/dist/src/tooltip/tooltipHandler.d.ts +1 -1
  233. package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -1
  234. package/dist/src/tooltip/tooltipHandler.ts +1 -1
  235. package/dist/src/types/embedApi.d.ts +3 -3
  236. package/dist/src/types/encoder.d.ts +4 -4
  237. package/dist/src/types/flowBatch.d.ts +1 -1
  238. package/dist/src/types/rendering.d.ts +3 -3
  239. package/dist/src/types/scaleResolutionApi.d.ts +2 -2
  240. package/dist/src/types/viewContext.d.ts +41 -12
  241. package/dist/src/utils/animator.d.ts +2 -2
  242. package/dist/src/utils/animator.d.ts.map +1 -1
  243. package/dist/src/utils/animator.js +1 -1
  244. package/dist/src/utils/inertia.d.ts +3 -3
  245. package/dist/src/utils/inertia.d.ts.map +1 -1
  246. package/dist/src/utils/inertia.js +1 -1
  247. package/dist/src/utils/interactionEvent.d.ts +5 -5
  248. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  249. package/dist/src/utils/interactionEvent.js +2 -2
  250. package/dist/src/utils/trees.js +1 -1
  251. package/dist/src/view/axisGridView.d.ts +17 -16
  252. package/dist/src/view/axisGridView.d.ts.map +1 -1
  253. package/dist/src/view/axisGridView.js +24 -20
  254. package/dist/src/view/axisResolution.d.ts +10 -10
  255. package/dist/src/view/axisResolution.d.ts.map +1 -1
  256. package/dist/src/view/axisResolution.js +6 -6
  257. package/dist/src/view/axisResolution.test.js +1 -1
  258. package/dist/src/view/axisView.d.ts +18 -17
  259. package/dist/src/view/axisView.d.ts.map +1 -1
  260. package/dist/src/view/axisView.js +39 -35
  261. package/dist/src/view/concatView.d.ts +5 -5
  262. package/dist/src/view/concatView.d.ts.map +1 -1
  263. package/dist/src/view/concatView.js +23 -23
  264. package/dist/src/view/containerView.d.ts +10 -8
  265. package/dist/src/view/containerView.d.ts.map +1 -1
  266. package/dist/src/view/containerView.js +18 -13
  267. package/dist/src/view/facetView.d.ts +12 -12
  268. package/dist/src/view/facetView.d.ts.map +1 -1
  269. package/dist/src/view/facetView.js +19 -19
  270. package/dist/src/view/flowBuilder.d.ts +4 -4
  271. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  272. package/dist/src/view/flowBuilder.js +13 -13
  273. package/dist/src/view/flowBuilder.test.js +7 -7
  274. package/dist/src/view/gridView.d.ts +63 -35
  275. package/dist/src/view/gridView.d.ts.map +1 -1
  276. package/dist/src/view/gridView.js +400 -113
  277. package/dist/src/view/layerView.d.ts +12 -14
  278. package/dist/src/view/layerView.d.ts.map +1 -1
  279. package/dist/src/view/layerView.js +55 -26
  280. package/dist/src/{utils → view}/layout/flexLayout.d.ts +6 -6
  281. package/dist/src/view/layout/flexLayout.d.ts.map +1 -0
  282. package/dist/src/{utils → view}/layout/flexLayout.js +4 -4
  283. package/dist/src/view/layout/grid.d.ts.map +1 -0
  284. package/dist/src/{utils → view}/layout/padding.d.ts +4 -4
  285. package/dist/src/view/layout/padding.d.ts.map +1 -0
  286. package/dist/src/{utils → view}/layout/padding.js +2 -2
  287. package/dist/src/view/layout/point.d.ts.map +1 -0
  288. package/dist/src/{utils → view}/layout/rectangle.d.ts +8 -2
  289. package/dist/src/view/layout/rectangle.d.ts.map +1 -0
  290. package/dist/src/{utils → view}/layout/rectangle.js +22 -2
  291. package/dist/src/{utils → view}/layout/rectangle.test.js +8 -0
  292. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts +10 -10
  293. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  294. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +10 -10
  295. package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts +2 -2
  296. package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts.map +1 -1
  297. package/dist/src/view/renderingContext/compositeViewRenderingContext.js +4 -4
  298. package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts +4 -4
  299. package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts.map +1 -1
  300. package/dist/src/view/renderingContext/debuggingViewRenderingContext.js +3 -3
  301. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts +8 -8
  302. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts.map +1 -1
  303. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.js +4 -4
  304. package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts +6 -6
  305. package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts.map +1 -1
  306. package/dist/src/view/renderingContext/simpleViewRenderingContext.js +7 -7
  307. package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts +4 -4
  308. package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts.map +1 -1
  309. package/dist/src/view/renderingContext/svgViewRenderingContext.js +6 -6
  310. package/dist/src/view/renderingContext/viewRenderingContext.d.ts +10 -10
  311. package/dist/src/view/renderingContext/viewRenderingContext.d.ts.map +1 -1
  312. package/dist/src/view/renderingContext/viewRenderingContext.js +5 -5
  313. package/dist/src/view/scaleResolution.d.ts +21 -17
  314. package/dist/src/view/scaleResolution.d.ts.map +1 -1
  315. package/dist/src/view/scaleResolution.js +33 -26
  316. package/dist/src/view/scaleResolution.test.js +57 -72
  317. package/dist/src/view/testUtils.d.ts +6 -15
  318. package/dist/src/view/testUtils.d.ts.map +1 -1
  319. package/dist/src/view/testUtils.js +40 -44
  320. package/dist/src/view/title.d.ts +3 -3
  321. package/dist/src/view/title.d.ts.map +1 -1
  322. package/dist/src/view/title.js +12 -12
  323. package/dist/src/view/unitView.d.ts +31 -30
  324. package/dist/src/view/unitView.d.ts.map +1 -1
  325. package/dist/src/view/unitView.js +30 -22
  326. package/dist/src/view/view.d.ts +86 -57
  327. package/dist/src/view/view.d.ts.map +1 -1
  328. package/dist/src/view/view.js +148 -103
  329. package/dist/src/view/view.test.js +9 -8
  330. package/dist/src/view/viewError.d.ts +9 -0
  331. package/dist/src/view/viewError.d.ts.map +1 -0
  332. package/dist/src/view/viewError.js +11 -0
  333. package/dist/src/view/viewFactory.d.ts +53 -20
  334. package/dist/src/view/viewFactory.d.ts.map +1 -1
  335. package/dist/src/view/viewFactory.js +148 -33
  336. package/dist/src/view/viewFactory.test.js +8 -0
  337. package/dist/src/view/viewUtils.d.ts +14 -12
  338. package/dist/src/view/viewUtils.d.ts.map +1 -1
  339. package/dist/src/view/viewUtils.js +10 -63
  340. package/dist/src/view/zoom.d.ts +4 -4
  341. package/dist/src/view/zoom.d.ts.map +1 -1
  342. package/dist/src/view/zoom.js +3 -3
  343. package/package.json +7 -5
  344. package/dist/src/utils/layout/flexLayout.d.ts.map +0 -1
  345. package/dist/src/utils/layout/grid.d.ts.map +0 -1
  346. package/dist/src/utils/layout/padding.d.ts.map +0 -1
  347. package/dist/src/utils/layout/point.d.ts.map +0 -1
  348. package/dist/src/utils/layout/rectangle.d.ts.map +0 -1
  349. package/dist/src/view/implicitRootView.d.ts +0 -9
  350. package/dist/src/view/implicitRootView.d.ts.map +0 -1
  351. package/dist/src/view/implicitRootView.js +0 -23
  352. package/dist/src/view/importView.d.ts +0 -17
  353. package/dist/src/view/importView.d.ts.map +0 -1
  354. package/dist/src/view/importView.js +0 -22
  355. /package/dist/src/{utils → view}/layout/flexLayout.test.js +0 -0
  356. /package/dist/src/{utils → view}/layout/grid.d.ts +0 -0
  357. /package/dist/src/{utils → view}/layout/grid.js +0 -0
  358. /package/dist/src/{utils → view}/layout/grid.test.js +0 -0
  359. /package/dist/src/{utils → view}/layout/point.d.ts +0 -0
  360. /package/dist/src/{utils → view}/layout/point.js +0 -0
@@ -2,7 +2,16 @@
2
2
  * @extends {TabixSource<import("@gmod/gff").GFF3Feature>}
3
3
  */
4
4
  export default class Gff3Source extends TabixSource<import("@gmod/gff").GFF3Feature> {
5
+ /**
6
+ * @param {import("../../../spec/data.js").TabixData} params
7
+ * @param {import("../../../view/view.js").default} view
8
+ */
5
9
  constructor(params: import("../../../spec/data.js").TabixData, view: import("../../../view/view.js").default);
10
+ /**
11
+ * @param {string[]} lines
12
+ */
13
+ _parseFeatures(lines: string[]): any;
14
+ #private;
6
15
  }
7
16
  import TabixSource from "./tabixSource.js";
8
17
  //# sourceMappingURL=gff3Source.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gff3Source.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/gff3Source.js"],"names":[],"mappings":"AAGA;;GAEG;AACH;IAaqF,8GAAsrC;CAD1wC;wBAjBuB,kBAAkB"}
1
+ {"version":3,"file":"gff3Source.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/gff3Source.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IAII;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EASjD;IAED;;OAEG;IACH,sBAFW,MAAM,EAAE,OASlB;;CACJ;wBAjCuB,kBAAkB"}
@@ -1,16 +1,31 @@
1
- import gff from "@gmod/gff";
2
1
  import TabixSource from "./tabixSource.js";
3
2
 
4
3
  /**
5
4
  * @extends {TabixSource<import("@gmod/gff").GFF3Feature>}
6
5
  */
7
6
  export default class Gff3Source extends TabixSource {
7
+ /** @type {import("@gmod/gff").default} */
8
+ #gff;
9
+
10
+ /**
11
+ * @param {import("../../../spec/data.js").TabixData} params
12
+ * @param {import("../../../view/view.js").default} view
13
+ */
14
+ constructor(params, view) {
15
+ super(params, view);
16
+
17
+ import("@gmod/gff").then((gff) => {
18
+ // TODO: Fix race condition
19
+ this.#gff = gff.default;
20
+ });
21
+ }
22
+
8
23
  /**
9
24
  * @param {string[]} lines
10
25
  */
11
26
  _parseFeatures(lines) {
12
27
  // eslint-disable-next-line no-sync
13
- const features = gff.parseStringSync(lines.join("\n"), {
28
+ const features = this.#gff?.parseStringSync(lines.join("\n"), {
14
29
  parseSequences: false,
15
30
  });
16
31
 
@@ -2,9 +2,6 @@ declare const IndexedFastaSource_base: {
2
2
  new (...args: any[]): {
3
3
  [x: string]: any;
4
4
  lastQuantizedInterval: number[];
5
- /**
6
- *
7
- */
8
5
  quantizeInterval(interval: number[], windowSize: number): number[];
9
6
  checkAndUpdateLastInterval(interval: number[]): boolean;
10
7
  };
@@ -14,12 +11,13 @@ declare const IndexedFastaSource_base: {
14
11
  */
15
12
  export default class IndexedFastaSource extends IndexedFastaSource_base {
16
13
  /**
17
- * @param {import("../../../spec/data").IndexedFastaData} params
18
- * @param {import("../../../view/view").default} view
14
+ * @param {import("../../../spec/data.js").IndexedFastaData} params
15
+ * @param {import("../../../view/view.js").default} view
19
16
  */
20
- constructor(params: import("../../../spec/data").IndexedFastaData, view: import("../../../view/view").default);
21
- params: import("../../../spec/data").IndexedFastaData;
22
- fasta: IndexedFasta;
17
+ constructor(params: import("../../../spec/data.js").IndexedFastaData, view: import("../../../view/view.js").default);
18
+ params: import("../../../spec/data.js").IndexedFastaData;
19
+ initializedPromise: Promise<any>;
20
+ fasta: import("@gmod/indexedfasta").IndexedFasta;
23
21
  /**
24
22
  * Listen to the domain change event and update data when the covered windows change.
25
23
  *
@@ -28,6 +26,5 @@ export default class IndexedFastaSource extends IndexedFastaSource_base {
28
26
  onDomainChanged(domain: number[]): Promise<void>;
29
27
  }
30
28
  import SingleAxisLazySource from "./singleAxisLazySource.js";
31
- import { IndexedFasta } from "@gmod/indexedfasta";
32
29
  export {};
33
30
  //# sourceMappingURL=indexedFastaSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexedFastaSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/indexedFastaSource.js"],"names":[],"mappings":";;;;QAcA;;WAEG;;;;;AAFH;;GAEG;AACH;IAGI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,gBAAgB,QAC7C,OAAO,oBAAoB,EAAE,OAAO,EAyB9C;IAbG,sDAAgC;IAShC,oBAGE;IAGN;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAgClB;CACJ;iCAjFgC,2BAA2B;6BAH/B,oBAAoB"}
1
+ {"version":3,"file":"indexedFastaSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/indexedFastaSource.js"],"names":[],"mappings":";;;;;;;;AAIA;;GAEG;AACH;IAGI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,gBAAgB,QAChD,OAAO,uBAAuB,EAAE,OAAO,EA2CjD;IA/BG,yDAAgC;IAMhC,iCAwBE;IATM,iDAKE;IAOd;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAkClB;CACJ;iCA/FgC,2BAA2B"}
@@ -1,17 +1,7 @@
1
- import { Buffer } from "buffer";
2
- import { IndexedFasta } from "@gmod/indexedfasta";
3
- import { RemoteFile } from "generic-filehandle";
4
-
5
1
  import SingleAxisLazySource from "./singleAxisLazySource.js";
6
2
  import windowedMixin from "./windowedMixin.js";
7
3
  import addBaseUrl from "../../../utils/addBaseUrl.js";
8
4
 
9
- // Hack needed by @gmod/indexedfasta
10
- // TODO: Submit a PR to @gmod/indexedfasta to make this unnecessary
11
- if (typeof window !== "undefined") {
12
- window.Buffer = Buffer;
13
- }
14
-
15
5
  /**
16
6
  *
17
7
  */
@@ -19,11 +9,11 @@ export default class IndexedFastaSource extends windowedMixin(
19
9
  SingleAxisLazySource
20
10
  ) {
21
11
  /**
22
- * @param {import("../../../spec/data").IndexedFastaData} params
23
- * @param {import("../../../view/view").default} view
12
+ * @param {import("../../../spec/data.js").IndexedFastaData} params
13
+ * @param {import("../../../view/view.js").default} view
24
14
  */
25
15
  constructor(params, view) {
26
- /** @type {import("../../../spec/data").IndexedFastaData} */
16
+ /** @type {import("../../../spec/data.js").IndexedFastaData} */
27
17
  const paramsWithDefaults = {
28
18
  channel: "x",
29
19
  windowSize: 7000,
@@ -38,12 +28,30 @@ export default class IndexedFastaSource extends windowedMixin(
38
28
  throw new Error("No URL provided for IndexedFastaSource");
39
29
  }
40
30
 
41
- const withBase = (/** @type {string} */ uri) =>
42
- new RemoteFile(addBaseUrl(uri, this.view.getBaseUrl()));
31
+ this.initializedPromise = new Promise((resolve) => {
32
+ Promise.all([
33
+ import("buffer"),
34
+ import("@gmod/indexedfasta"),
35
+ import("generic-filehandle"),
36
+ ]).then(([{ Buffer }, { IndexedFasta }, { RemoteFile }]) => {
37
+ // Hack needed by @gmod/indexedfasta
38
+ // TODO: Submit a PR to @gmod/indexedfasta to make this unnecessary
39
+ if (typeof window !== "undefined") {
40
+ window.Buffer ??= Buffer;
41
+ }
43
42
 
44
- this.fasta = new IndexedFasta({
45
- fasta: withBase(this.params.url),
46
- fai: withBase(this.params.indexUrl ?? this.params.url + ".fai"),
43
+ const withBase = (/** @type {string} */ uri) =>
44
+ new RemoteFile(addBaseUrl(uri, this.view.getBaseUrl()));
45
+
46
+ this.fasta = new IndexedFasta({
47
+ fasta: withBase(this.params.url),
48
+ fai: withBase(
49
+ this.params.indexUrl ?? this.params.url + ".fai"
50
+ ),
51
+ });
52
+
53
+ resolve();
54
+ });
47
55
  });
48
56
  }
49
57
 
@@ -59,6 +67,8 @@ export default class IndexedFastaSource extends windowedMixin(
59
67
  return;
60
68
  }
61
69
 
70
+ await this.initializedPromise;
71
+
62
72
  const quantizedInterval = this.quantizeInterval(domain, windowSize);
63
73
 
64
74
  if (this.checkAndUpdateLastInterval(quantizedInterval)) {
@@ -3,13 +3,13 @@
3
3
  */
4
4
  export default class SingleAxisLazySource extends DataSource {
5
5
  /**
6
- * @param {import("../../../view/view").default} view
7
- * @param {import("../../../spec/channel").PrimaryPositionalChannel} channel
6
+ * @param {import("../../../view/view.js").default} view
7
+ * @param {import("../../../spec/channel.js").PrimaryPositionalChannel} channel
8
8
  */
9
- constructor(view: import("../../../view/view").default, channel: import("../../../spec/channel").PrimaryPositionalChannel);
10
- view: import("../../../view/view").default;
11
- /** @type {import("../../../spec/channel").PrimaryPositionalChannel} */
12
- channel: import("../../../spec/channel").PrimaryPositionalChannel;
9
+ constructor(view: import("../../../view/view.js").default, channel: import("../../../spec/channel.js").PrimaryPositionalChannel);
10
+ view: import("../../../view/view.js").default;
11
+ /** @type {import("../../../spec/channel.js").PrimaryPositionalChannel} */
12
+ channel: import("../../../spec/channel.js").PrimaryPositionalChannel;
13
13
  scaleResolution: import("../../../view/scaleResolution.js").default;
14
14
  /**
15
15
  * Returns the length of the axis in pixels. Chooses the smallest of the views.
@@ -24,9 +24,9 @@ export default class SingleAxisLazySource extends DataSource {
24
24
  * Listen to the domain change event and update data when the covered windows change.
25
25
  *
26
26
  * @param {number[]} domain Linearized domain
27
- * @param {import("../../../spec/genome").ChromosomalLocus[]} complexDomain Chrom/Pos domain
27
+ * @param {import("../../../spec/genome.js").ChromosomalLocus[]} complexDomain Chrom/Pos domain
28
28
  */
29
- onDomainChanged(domain: number[], complexDomain: import("../../../spec/genome").ChromosomalLocus[]): Promise<void>;
29
+ onDomainChanged(domain: number[], complexDomain: import("../../../spec/genome.js").ChromosomalLocus[]): Promise<void>;
30
30
  /**
31
31
  * TODO: Get rid of this method.
32
32
  * Rendering should be requested by the collector.
@@ -34,9 +34,9 @@ export default class SingleAxisLazySource extends DataSource {
34
34
  requestRender(): void;
35
35
  /**
36
36
  *
37
- * @param {import("../../flowNode").Datum[]} data
37
+ * @param {import("../../flowNode.js").Datum[]} data
38
38
  */
39
- publishData(data: import("../../flowNode").Datum[]): void;
39
+ publishData(data: import("../../flowNode.js").Datum[]): void;
40
40
  }
41
41
  import DataSource from "../dataSource.js";
42
42
  //# sourceMappingURL=singleAxisLazySource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI;;;OAGG;IACH,kBAHW,OAAO,oBAAoB,EAAE,OAAO,WACpC,OAAO,uBAAuB,EAAE,wBAAwB,EAiDlE;IA5CG,2CAAgB;IAYhB,wEAAwE;IACxE,SADW,OAAO,uBAAuB,EAAE,wBAAwB,CAC7C;IAEtB,oEAA4D;IA+BhE;;;OAGG;IACH,wBAWC;IAED;;OAEG;IACH,0DAEC;IAED;;;;;OAKG;IACH,wBAHW,MAAM,EAAE,iBACR,OAAO,sBAAsB,EAAE,gBAAgB,EAAE,iBAI3D;IAED;;;OAGG;IACH,sBAGC;IAQD;;;OAGG;IACH,kBAFW,OAAO,gBAAgB,EAAE,KAAK,EAAE,QAe1C;CACJ;uBA/HsB,kBAAkB"}
1
+ {"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/singleAxisLazySource.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,WACvC,OAAO,0BAA0B,EAAE,wBAAwB,EAiDrE;IA5CG,8CAAgB;IAYhB,2EAA2E;IAC3E,SADW,OAAO,0BAA0B,EAAE,wBAAwB,CAChD;IAEtB,oEAA4D;IA+BhE;;;OAGG;IACH,wBAWC;IAED;;OAEG;IACH,0DAEC;IAED;;;;;OAKG;IACH,wBAHW,MAAM,EAAE,iBACR,OAAO,yBAAyB,EAAE,gBAAgB,EAAE,iBAI9D;IAED;;;OAGG;IACH,sBAGC;IAQD;;;OAGG;IACH,kBAFW,OAAO,mBAAmB,EAAE,KAAK,EAAE,QAe7C;CACJ;uBA/HsB,kBAAkB"}
@@ -7,8 +7,8 @@ import { reconfigureScales } from "../../../view/scaleResolution.js";
7
7
  */
8
8
  export default class SingleAxisLazySource extends DataSource {
9
9
  /**
10
- * @param {import("../../../view/view").default} view
11
- * @param {import("../../../spec/channel").PrimaryPositionalChannel} channel
10
+ * @param {import("../../../view/view.js").default} view
11
+ * @param {import("../../../spec/channel.js").PrimaryPositionalChannel} channel
12
12
  */
13
13
  constructor(view, channel) {
14
14
  super();
@@ -25,7 +25,7 @@ export default class SingleAxisLazySource extends DataSource {
25
25
  );
26
26
  }
27
27
 
28
- /** @type {import("../../../spec/channel").PrimaryPositionalChannel} */
28
+ /** @type {import("../../../spec/channel.js").PrimaryPositionalChannel} */
29
29
  this.channel = channel;
30
30
 
31
31
  this.scaleResolution = this.view.getScaleResolution(channel);
@@ -46,7 +46,7 @@ export default class SingleAxisLazySource extends DataSource {
46
46
  if (this.view.isVisible()) {
47
47
  this.onDomainChanged(
48
48
  this.scaleResolution.getDomain(),
49
- /** @type {import("../../../spec/genome").ChromosomalLocus[]} */
49
+ /** @type {import("../../../spec/genome.js").ChromosomalLocus[]} */
50
50
  (this.scaleResolution.getComplexDomain())
51
51
  );
52
52
  }
@@ -87,7 +87,7 @@ export default class SingleAxisLazySource extends DataSource {
87
87
  * Listen to the domain change event and update data when the covered windows change.
88
88
  *
89
89
  * @param {number[]} domain Linearized domain
90
- * @param {import("../../../spec/genome").ChromosomalLocus[]} complexDomain Chrom/Pos domain
90
+ * @param {import("../../../spec/genome.js").ChromosomalLocus[]} complexDomain Chrom/Pos domain
91
91
  */
92
92
  async onDomainChanged(domain, complexDomain) {
93
93
  // Override me
@@ -110,7 +110,7 @@ export default class SingleAxisLazySource extends DataSource {
110
110
 
111
111
  /**
112
112
  *
113
- * @param {import("../../flowNode").Datum[]} data
113
+ * @param {import("../../flowNode.js").Datum[]} data
114
114
  */
115
115
  publishData(data) {
116
116
  this.reset();
@@ -1,7 +1,10 @@
1
1
  declare const TabixSource_base: {
2
2
  new (...args: any[]): {
3
3
  [x: string]: any;
4
- lastQuantizedInterval: number[];
4
+ lastQuantizedInterval: number[]; /**
5
+ * @param {import("../../../spec/data.js").TabixData} params
6
+ * @param {import("../../../view/view.js").default} view
7
+ */
5
8
  quantizeInterval(interval: number[], windowSize: number): number[];
6
9
  checkAndUpdateLastInterval(interval: number[]): boolean;
7
10
  };
@@ -11,21 +14,22 @@ declare const TabixSource_base: {
11
14
  */
12
15
  export default class TabixSource<T> extends TabixSource_base {
13
16
  /**
14
- * @param {import("../../../spec/data").TabixData} params
15
- * @param {import("../../../view/view").default} view
17
+ * @param {import("../../../spec/data.js").TabixData} params
18
+ * @param {import("../../../view/view.js").default} view
16
19
  */
17
- constructor(params: import("../../../spec/data").TabixData, view: import("../../../view/view").default);
20
+ constructor(params: import("../../../spec/data.js").TabixData, view: import("../../../view/view.js").default);
18
21
  /** Keep track of the order of the requests */
19
22
  lastRequestId: number;
20
- /** @type {TabixIndexedFile} */
21
- tbiIndex: TabixIndexedFile;
22
- params: import("../../../spec/data").TabixData;
23
+ /** @type {import("@gmod/tabix").TabixIndexedFile} */
24
+ tbiIndex: import("@gmod/tabix").TabixIndexedFile;
25
+ params: import("../../../spec/data.js").TabixData;
23
26
  /**
24
27
  * Listen to the domain change event and update data when the covered windows change.
25
28
  *
26
29
  * @param {number[]} domain Linearized domain
27
30
  */
28
31
  onDomainChanged(domain: number[]): Promise<void>;
32
+ initializedPromise: Promise<any>;
29
33
  /**
30
34
  * Listen to the domain change event and update data when the covered windows change.
31
35
  *
@@ -49,6 +53,5 @@ export default class TabixSource<T> extends TabixSource_base {
49
53
  _parseFeatures(lines: string[]): T[];
50
54
  }
51
55
  import SingleAxisLazySource from "./singleAxisLazySource.js";
52
- import { TabixIndexedFile } from "@gmod/tabix";
53
56
  export {};
54
57
  //# sourceMappingURL=tabixSource.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"tabixSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/tabixSource.js"],"names":[],"mappings":";;;;;;;;AAQA;;GAEG;AACH;IAOI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,SAAS,QACtC,OAAO,oBAAoB,EAAE,OAAO,EAoC9C;IA5CD,8CAA8C;IAC9C,sBAAkB;IAElB,+BAA+B;IAC/B,UADW,gBAAgB,CAClB;IAiBL,+CAAgC;IAyBpC;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAclB;IAED;;;;OAIG;IACH,oBAFW,MAAM,EAAE,iBAWlB;IAED;;;OAGG;IACH,sBAFW,MAAM,EAAE;;;;OAkClB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,GACN,CAAC,EAAE,CAIf;CACJ;iCAxIgC,2BAA2B;iCAF3B,aAAa"}
1
+ {"version":3,"file":"tabixSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/dynamic/tabixSource.js"],"names":[],"mappings":";;;yCAeI;;;WAGG;;;;;AAbP;;GAEG;AACH;IAOI;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EAmDjD;IA3DD,8CAA8C;IAC9C,sBAAkB;IAElB,qDAAqD;IACrD,UADW,OAAO,aAAa,EAAE,gBAAgB,CACxC;IAiBL,kDAAgC;IAwCpC;;;;OAIG;IACH,wBAFW,MAAM,EAAE,iBAclB;IA3CG,iCAuBE;IAsBN;;;;OAIG;IACH,oBAFW,MAAM,EAAE,iBAWlB;IAED;;;OAGG;IACH,sBAFW,MAAM,EAAE;;;;OAoClB;IAED;;;;OAIG;IACH,sBAHW,MAAM,EAAE,GACN,CAAC,EAAE,CAIf;CACJ;iCAzJgC,2BAA2B"}
@@ -1,6 +1,3 @@
1
- import { RemoteFile } from "generic-filehandle";
2
- import { TabixIndexedFile } from "@gmod/tabix";
3
-
4
1
  import SingleAxisLazySource from "./singleAxisLazySource.js";
5
2
  import windowedMixin from "./windowedMixin.js";
6
3
  import { debounce } from "../../../utils/debounce.js";
@@ -13,15 +10,15 @@ export default class TabixSource extends windowedMixin(SingleAxisLazySource) {
13
10
  /** Keep track of the order of the requests */
14
11
  lastRequestId = 0;
15
12
 
16
- /** @type {TabixIndexedFile} */
13
+ /** @type {import("@gmod/tabix").TabixIndexedFile} */
17
14
  tbiIndex;
18
15
 
19
16
  /**
20
- * @param {import("../../../spec/data").TabixData} params
21
- * @param {import("../../../view/view").default} view
17
+ * @param {import("../../../spec/data.js").TabixData} params
18
+ * @param {import("../../../view/view.js").default} view
22
19
  */
23
20
  constructor(params, view) {
24
- /** @type {import("../../../spec/data").TabixData} */
21
+ /** @type {import("../../../spec/data.js").TabixData} */
25
22
  const paramsWithDefaults = {
26
23
  channel: "x",
27
24
  windowSize: 3_000_000,
@@ -37,16 +34,6 @@ export default class TabixSource extends windowedMixin(SingleAxisLazySource) {
37
34
  throw new Error("No URL provided for TabixSource");
38
35
  }
39
36
 
40
- const withBase = (/** @type {string} */ uri) =>
41
- new RemoteFile(addBaseUrl(uri, this.view.getBaseUrl()));
42
-
43
- this.tbiIndex = new TabixIndexedFile({
44
- filehandle: withBase(this.params.url),
45
- tbiFilehandle: withBase(
46
- this.params.indexUrl ?? this.params.url + ".tbi"
47
- ),
48
- });
49
-
50
37
  if (this.params.debounceDomainChange > 0) {
51
38
  this.onDomainChanged = debounce(
52
39
  this.onDomainChanged.bind(this),
@@ -54,6 +41,31 @@ export default class TabixSource extends windowedMixin(SingleAxisLazySource) {
54
41
  false
55
42
  );
56
43
  }
44
+
45
+ this.initializedPromise = new Promise((resolve) => {
46
+ Promise.all([
47
+ import("buffer"),
48
+ import("@gmod/tabix"),
49
+ import("generic-filehandle"),
50
+ ]).then(([{ Buffer }, { TabixIndexedFile }, { RemoteFile }]) => {
51
+ // Hack needed by @gmod/tabix
52
+ if (typeof window !== "undefined") {
53
+ window.Buffer ??= Buffer;
54
+ }
55
+
56
+ const withBase = (/** @type {string} */ uri) =>
57
+ new RemoteFile(addBaseUrl(uri, this.view.getBaseUrl()));
58
+
59
+ this.tbiIndex = new TabixIndexedFile({
60
+ filehandle: withBase(this.params.url),
61
+ tbiFilehandle: withBase(
62
+ this.params.indexUrl ?? this.params.url + ".tbi"
63
+ ),
64
+ });
65
+
66
+ resolve();
67
+ });
68
+ });
57
69
  }
58
70
 
59
71
  /**
@@ -96,6 +108,8 @@ export default class TabixSource extends windowedMixin(SingleAxisLazySource) {
96
108
  * @param {number[]} interval
97
109
  */
98
110
  async getFeatures(interval) {
111
+ await this.initializedPromise;
112
+
99
113
  let requestId = ++this.lastRequestId;
100
114
 
101
115
  // TODO: Abort previous requests
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @param {Partial<import("../../spec/data").Data>} data
3
- * @returns {data is import("../../spec/data").InlineData}
2
+ * @param {Partial<import("../../spec/data.js").Data>} data
3
+ * @returns {data is import("../../spec/data.js").InlineData}
4
4
  */
5
- export function isInlineData(data: Partial<import("../../spec/data").Data>): data is import("../../spec/data").InlineData;
5
+ export function isInlineData(data: Partial<import("../../spec/data.js").Data>): data is import("../../spec/data.js").InlineData;
6
6
  export default class InlineSource extends DataSource {
7
7
  /**
8
- * @param {import("../../spec/data").InlineData} params
9
- * @param {import("../../view/view").default} view
8
+ * @param {import("../../spec/data.js").InlineData} params
9
+ * @param {import("../../view/view.js").default} view
10
10
  */
11
- constructor(params: import("../../spec/data").InlineData, view: import("../../view/view").default);
12
- params: import("../../spec/data").InlineData;
11
+ constructor(params: import("../../spec/data.js").InlineData, view: import("../../view/view.js").default);
12
+ params: import("../../spec/data.js").InlineData;
13
13
  loadSynchronously(): void;
14
14
  }
15
15
  import DataSource from "./dataSource.js";
@@ -1 +1 @@
1
- {"version":3,"file":"inlineSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/inlineSource.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,mCAHW,QAAQ,OAAO,iBAAiB,EAAE,IAAI,CAAC,gDAKjD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,iBAAiB,EAAE,UAAU,QACpC,OAAO,iBAAiB,EAAE,OAAO,EAY3C;IAPG,6CAAoB;IASxB,0BAiCC;CAKJ;uBAjEsB,iBAAiB"}
1
+ {"version":3,"file":"inlineSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/inlineSource.js"],"names":[],"mappings":"AAIA;;;GAGG;AACH,mCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,mDAKpD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,UAAU,QACvC,OAAO,oBAAoB,EAAE,OAAO,EAY9C;IAPG,gDAAoB;IASxB,0BAiCC;CAKJ;uBAjEsB,iBAAiB"}
@@ -3,8 +3,8 @@ import { getFormat, makeWrapper } from "./dataUtils.js";
3
3
  import DataSource from "./dataSource.js";
4
4
 
5
5
  /**
6
- * @param {Partial<import("../../spec/data").Data>} data
7
- * @returns {data is import("../../spec/data").InlineData}
6
+ * @param {Partial<import("../../spec/data.js").Data>} data
7
+ * @returns {data is import("../../spec/data.js").InlineData}
8
8
  */
9
9
  export function isInlineData(data) {
10
10
  return "values" in data;
@@ -12,8 +12,8 @@ export function isInlineData(data) {
12
12
 
13
13
  export default class InlineSource extends DataSource {
14
14
  /**
15
- * @param {import("../../spec/data").InlineData} params
16
- * @param {import("../../view/view").default} view
15
+ * @param {import("../../spec/data.js").InlineData} params
16
+ * @param {import("../../view/view.js").default} view
17
17
  */
18
18
  constructor(params, view) {
19
19
  super();
@@ -32,7 +32,7 @@ export default class InlineSource extends DataSource {
32
32
 
33
33
  let data = [];
34
34
 
35
- /** @type {(x: any) => import("../flowNode").Datum} */
35
+ /** @type {(x: any) => import("../flowNode.js").Datum} */
36
36
  let wrap = (x) => x;
37
37
 
38
38
  if (Array.isArray(values)) {
@@ -1,23 +1,23 @@
1
1
  /**
2
- * @param {Partial<import("../../spec/data").Data>} data
3
- * @returns {data is import("../../spec/data").NamedData}
2
+ * @param {Partial<import("../../spec/data.js").Data>} data
3
+ * @returns {data is import("../../spec/data.js").NamedData}
4
4
  */
5
- export function isNamedData(data: Partial<import("../../spec/data").Data>): data is import("../../spec/data").NamedData;
5
+ export function isNamedData(data: Partial<import("../../spec/data.js").Data>): data is import("../../spec/data.js").NamedData;
6
6
  export default class NamedSource extends DataSource {
7
7
  /**
8
- * @param {import("../../spec/data").NamedData} params
9
- * @param {import("../../view/view").default} view
8
+ * @param {import("../../spec/data.js").NamedData} params
9
+ * @param {import("../../view/view.js").default} view
10
10
  * @param {function(string):any[]} provider Function that retrieves a dataset using a name
11
11
  */
12
- constructor(params: import("../../spec/data").NamedData, view: import("../../view/view").default, provider: (arg0: string) => any[]);
12
+ constructor(params: import("../../spec/data.js").NamedData, view: import("../../view/view.js").default, provider: (arg0: string) => any[]);
13
13
  provider: (arg0: string) => any[];
14
- params: import("../../spec/data").NamedData;
14
+ params: import("../../spec/data.js").NamedData;
15
15
  /**
16
16
  * Update the named data. If data is omitted, a data provider is used instead.
17
17
  *
18
- * @param {import("../flowNode").Datum[]} [data]
18
+ * @param {import("../flowNode.js").Datum[]} [data]
19
19
  */
20
- updateDynamicData(data?: import("../flowNode").Datum[]): void;
20
+ updateDynamicData(data?: import("../flowNode.js").Datum[]): void;
21
21
  loadSynchronously(): void;
22
22
  #private;
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"namedSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/namedSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,kCAHW,QAAQ,OAAO,iBAAiB,EAAE,IAAI,CAAC,+CAKjD;AAED;IAOI;;;;OAIG;IACH,oBAJW,OAAO,iBAAiB,EAAE,SAAS,QACnC,OAAO,iBAAiB,EAAE,OAAO,mBACxB,MAAM,KAAE,GAAG,EAAE,EAOhC;IAFG,iBALgB,MAAM,KAAE,GAAG,EAAE,CAKL;IACxB,4CAAoB;IAUxB;;;;OAIG;IACH,yBAFW,OAAO,aAAa,EAAE,KAAK,EAAE,QAMvC;IAED,0BA0BC;;CAKJ;uBA/EsB,iBAAiB"}
1
+ {"version":3,"file":"namedSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/namedSource.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,kCAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,kDAKpD;AAED;IAOI;;;;OAIG;IACH,oBAJW,OAAO,oBAAoB,EAAE,SAAS,QACtC,OAAO,oBAAoB,EAAE,OAAO,mBAC3B,MAAM,KAAE,GAAG,EAAE,EAOhC;IAFG,iBALgB,MAAM,KAAE,GAAG,EAAE,CAKL;IACxB,+CAAoB;IAUxB;;;;OAIG;IACH,yBAFW,OAAO,gBAAgB,EAAE,KAAK,EAAE,QAM1C;IAED,0BA0BC;;CAKJ;uBA/EsB,iBAAiB"}
@@ -2,8 +2,8 @@ import DataSource from "./dataSource.js";
2
2
  import { makeWrapper } from "./dataUtils.js";
3
3
 
4
4
  /**
5
- * @param {Partial<import("../../spec/data").Data>} data
6
- * @returns {data is import("../../spec/data").NamedData}
5
+ * @param {Partial<import("../../spec/data.js").Data>} data
6
+ * @returns {data is import("../../spec/data.js").NamedData}
7
7
  */
8
8
  export function isNamedData(data) {
9
9
  return "name" in data;
@@ -17,8 +17,8 @@ export default class NamedSource extends DataSource {
17
17
  #explicitData;
18
18
 
19
19
  /**
20
- * @param {import("../../spec/data").NamedData} params
21
- * @param {import("../../view/view").default} view
20
+ * @param {import("../../spec/data.js").NamedData} params
21
+ * @param {import("../../view/view.js").default} view
22
22
  * @param {function(string):any[]} provider Function that retrieves a dataset using a name
23
23
  */
24
24
  constructor(params, view, provider) {
@@ -38,7 +38,7 @@ export default class NamedSource extends DataSource {
38
38
  /**
39
39
  * Update the named data. If data is omitted, a data provider is used instead.
40
40
  *
41
- * @param {import("../flowNode").Datum[]} [data]
41
+ * @param {import("../flowNode.js").Datum[]} [data]
42
42
  */
43
43
  updateDynamicData(data) {
44
44
  // TODO: Throw is data is undefined and the provider is unable to provide any data
@@ -50,7 +50,7 @@ export default class NamedSource extends DataSource {
50
50
  const data =
51
51
  this.#explicitData ?? this.provider(this.params.name) ?? [];
52
52
 
53
- /** @type {(x: any) => import("../flowNode").Datum} */
53
+ /** @type {(x: any) => import("../flowNode.js").Datum} */
54
54
  let wrap = (x) => x;
55
55
 
56
56
  if (Array.isArray(data)) {
@@ -1,16 +1,16 @@
1
1
  /**
2
- * @param {Partial<import("../../spec/data").Data>} data
3
- * @returns {data is import("../../spec/data").SequenceGenerator}
2
+ * @param {Partial<import("../../spec/data.js").Data>} data
3
+ * @returns {data is import("../../spec/data.js").SequenceGenerator}
4
4
  */
5
- export function isSequenceGenerator(data: Partial<import("../../spec/data").Data>): data is import("../../spec/data").SequenceGenerator;
5
+ export function isSequenceGenerator(data: Partial<import("../../spec/data.js").Data>): data is import("../../spec/data.js").SequenceGenerator;
6
6
  export default class SequenceSource extends DataSource {
7
7
  /**
8
8
  *
9
- * @param {import("../../spec/data").SequenceGenerator} params
10
- * @param {import("../../view/view").default} view
9
+ * @param {import("../../spec/data.js").SequenceGenerator} params
10
+ * @param {import("../../view/view.js").default} view
11
11
  */
12
- constructor(params: import("../../spec/data").SequenceGenerator, view: import("../../view/view").default);
13
- sequence: import("../../spec/data").SequenceParams;
12
+ constructor(params: import("../../spec/data.js").SequenceGenerator, view: import("../../view/view.js").default);
13
+ sequence: import("../../spec/data.js").SequenceParams;
14
14
  loadSynchronously(): void;
15
15
  }
16
16
  import DataSource from "./dataSource.js";
@@ -1 +1 @@
1
- {"version":3,"file":"sequenceSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/sequenceSource.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,0CAHW,QAAQ,OAAO,iBAAiB,EAAE,IAAI,CAAC,uDAKjD;AAED;IACI;;;;OAIG;IACH,oBAHW,OAAO,iBAAiB,EAAE,iBAAiB,QAC3C,OAAO,iBAAiB,EAAE,OAAO,EAY3C;IARG,mDAA+B;IAUnC,0BAaC;CAKJ;uBA9CsB,iBAAiB"}
1
+ {"version":3,"file":"sequenceSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/sequenceSource.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,0CAHW,QAAQ,OAAO,oBAAoB,EAAE,IAAI,CAAC,0DAKpD;AAED;IACI;;;;OAIG;IACH,oBAHW,OAAO,oBAAoB,EAAE,iBAAiB,QAC9C,OAAO,oBAAoB,EAAE,OAAO,EAY9C;IARG,sDAA+B;IAUnC,0BAaC;CAKJ;uBA9CsB,iBAAiB"}
@@ -1,8 +1,8 @@
1
1
  import DataSource from "./dataSource.js";
2
2
 
3
3
  /**
4
- * @param {Partial<import("../../spec/data").Data>} data
5
- * @returns {data is import("../../spec/data").SequenceGenerator}
4
+ * @param {Partial<import("../../spec/data.js").Data>} data
5
+ * @returns {data is import("../../spec/data.js").SequenceGenerator}
6
6
  */
7
7
  export function isSequenceGenerator(data) {
8
8
  return "sequence" in data;
@@ -11,8 +11,8 @@ export function isSequenceGenerator(data) {
11
11
  export default class SequenceSource extends DataSource {
12
12
  /**
13
13
  *
14
- * @param {import("../../spec/data").SequenceGenerator} params
15
- * @param {import("../../view/view").default} view
14
+ * @param {import("../../spec/data.js").SequenceGenerator} params
15
+ * @param {import("../../view/view.js").default} view
16
16
  */
17
17
  constructor(params, view) {
18
18
  super();
@@ -1,15 +1,15 @@
1
1
  /**
2
- * @param {Partial<import("../../spec/data").Data>} data
3
- * @returns {data is import("../../spec/data").UrlData}
2
+ * @param {Partial<import("../../spec/data.js").Data>} data
3
+ * @returns {data is import("../../spec/data.js").UrlData}
4
4
  */
5
- export function isUrlData(data: Partial<import("../../spec/data").Data>): data is import("../../spec/data").UrlData;
5
+ export function isUrlData(data: Partial<import("../../spec/data.js").Data>): data is import("../../spec/data.js").UrlData;
6
6
  export default class UrlSource extends DataSource {
7
7
  /**
8
- * @param {import("../../spec/data").UrlData} params
9
- * @param {import("../../view/view").default} view
8
+ * @param {import("../../spec/data.js").UrlData} params
9
+ * @param {import("../../view/view.js").default} view
10
10
  */
11
- constructor(params: import("../../spec/data").UrlData, view: import("../../view/view").default);
12
- params: import("../../spec/data").UrlData;
11
+ constructor(params: import("../../spec/data.js").UrlData, view: import("../../view/view.js").default);
12
+ params: import("../../spec/data.js").UrlData;
13
13
  baseUrl: string;
14
14
  }
15
15
  import DataSource from "./dataSource.js";