@genome-spy/core 0.72.0 → 0.74.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 (396) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
  3. package/dist/bundle/browser-BTgw5ieH.js +126 -0
  4. package/dist/bundle/chunk-DmhlhrBa.js +11 -0
  5. package/dist/bundle/esm-BDFRLEuD.js +1248 -0
  6. package/dist/bundle/esm-BygJiwh0.js +573 -0
  7. package/dist/bundle/esm-CGX-qz1d.js +155 -0
  8. package/dist/bundle/esm-CgfVIRJ-.js +121 -0
  9. package/dist/bundle/esm-CuMSzCHy.js +298 -0
  10. package/dist/bundle/esm-DMXpJXM4.js +369 -0
  11. package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
  12. package/dist/bundle/esm-DtE8VqAv.js +1015 -0
  13. package/dist/bundle/esm-sIoQYZ21.js +461 -0
  14. package/dist/bundle/index.es.js +21078 -24556
  15. package/dist/bundle/index.js +379 -383
  16. package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
  17. package/dist/schema.json +13349 -7082
  18. package/dist/src/config/axisConfig.d.ts +16 -0
  19. package/dist/src/config/axisConfig.d.ts.map +1 -0
  20. package/dist/src/config/axisConfig.js +84 -0
  21. package/dist/src/config/defaultConfig.d.ts +3 -0
  22. package/dist/src/config/defaultConfig.d.ts.map +1 -0
  23. package/dist/src/config/defaultConfig.js +38 -0
  24. package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
  25. package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
  26. package/dist/src/config/defaults/axisDefaults.js +72 -0
  27. package/dist/src/config/defaults/markDefaults.d.ts +15 -0
  28. package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
  29. package/dist/src/config/defaults/markDefaults.js +121 -0
  30. package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
  31. package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
  32. package/dist/src/config/defaults/scaleDefaults.js +18 -0
  33. package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
  34. package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
  35. package/dist/src/config/defaults/titleDefaults.js +47 -0
  36. package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
  37. package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
  38. package/dist/src/config/defaults/viewDefaults.js +2 -0
  39. package/dist/src/config/markConfig.d.ts +8 -0
  40. package/dist/src/config/markConfig.d.ts.map +1 -0
  41. package/dist/src/config/markConfig.js +27 -0
  42. package/dist/src/config/mergeConfig.d.ts +8 -0
  43. package/dist/src/config/mergeConfig.d.ts.map +1 -0
  44. package/dist/src/config/mergeConfig.js +81 -0
  45. package/dist/src/config/resolveConfig.d.ts +22 -0
  46. package/dist/src/config/resolveConfig.d.ts.map +1 -0
  47. package/dist/src/config/resolveConfig.js +32 -0
  48. package/dist/src/config/scaleConfig.d.ts +40 -0
  49. package/dist/src/config/scaleConfig.d.ts.map +1 -0
  50. package/dist/src/config/scaleConfig.js +220 -0
  51. package/dist/src/config/styleUtils.d.ts +6 -0
  52. package/dist/src/config/styleUtils.d.ts.map +1 -0
  53. package/dist/src/config/styleUtils.js +10 -0
  54. package/dist/src/config/themes.d.ts +15 -0
  55. package/dist/src/config/themes.d.ts.map +1 -0
  56. package/dist/src/config/themes.js +293 -0
  57. package/dist/src/config/titleConfig.d.ts +12 -0
  58. package/dist/src/config/titleConfig.d.ts.map +1 -0
  59. package/dist/src/config/titleConfig.js +42 -0
  60. package/dist/src/config/viewConfig.d.ts +7 -0
  61. package/dist/src/config/viewConfig.d.ts.map +1 -0
  62. package/dist/src/config/viewConfig.js +29 -0
  63. package/dist/src/data/flowNode.d.ts +22 -1
  64. package/dist/src/data/flowNode.d.ts.map +1 -1
  65. package/dist/src/data/flowNode.js +37 -1
  66. package/dist/src/data/formats/bed.d.ts +8 -0
  67. package/dist/src/data/formats/bed.d.ts.map +1 -0
  68. package/dist/src/data/formats/bed.js +58 -0
  69. package/dist/src/data/formats/bedpe.d.ts +8 -0
  70. package/dist/src/data/formats/bedpe.d.ts.map +1 -0
  71. package/dist/src/data/formats/bedpe.js +164 -0
  72. package/dist/src/data/formats/fasta.d.ts.map +1 -1
  73. package/dist/src/data/formats/fasta.js +4 -0
  74. package/dist/src/data/formats/parquet.d.ts.map +1 -1
  75. package/dist/src/data/formats/parquet.js +4 -0
  76. package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
  77. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  78. package/dist/src/data/sources/dataSourceFactory.js +5 -141
  79. package/dist/src/data/sources/dataUtils.d.ts +16 -0
  80. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  81. package/dist/src/data/sources/dataUtils.js +53 -3
  82. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  83. package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
  84. package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
  85. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  86. package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
  87. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  88. package/dist/src/data/sources/lazy/bamSource.js +11 -0
  89. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  90. package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
  91. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  92. package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
  93. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  94. package/dist/src/data/sources/lazy/gff3Source.js +12 -1
  95. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  96. package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
  97. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
  98. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
  99. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
  100. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
  101. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
  102. package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
  103. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  104. package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
  105. package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
  106. package/dist/src/data/sources/lazy/vcfSource.js +11 -0
  107. package/dist/src/data/sources/urlSource.d.ts +4 -0
  108. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  109. package/dist/src/data/sources/urlSource.js +138 -16
  110. package/dist/src/data/transforms/aggregate.d.ts +1 -0
  111. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  112. package/dist/src/data/transforms/aggregate.js +30 -8
  113. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
  114. package/dist/src/data/transforms/aggregateOps.js +12 -1
  115. package/dist/src/data/transforms/coverage.js +2 -2
  116. package/dist/src/data/transforms/filter.js +1 -1
  117. package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
  118. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  119. package/dist/src/data/transforms/filterScoredLabels.js +9 -0
  120. package/dist/src/data/transforms/measureText.d.ts +1 -0
  121. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  122. package/dist/src/data/transforms/measureText.js +14 -5
  123. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  124. package/dist/src/data/transforms/pileup.js +1 -2
  125. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  126. package/dist/src/data/transforms/regexFold.js +0 -1
  127. package/dist/src/embedFactory.d.ts +13 -0
  128. package/dist/src/embedFactory.d.ts.map +1 -0
  129. package/dist/src/embedFactory.js +127 -0
  130. package/dist/src/encoder/accessor.d.ts +3 -12
  131. package/dist/src/encoder/accessor.d.ts.map +1 -1
  132. package/dist/src/encoder/accessor.js +10 -65
  133. package/dist/src/encoder/encoder.d.ts +51 -8
  134. package/dist/src/encoder/encoder.d.ts.map +1 -1
  135. package/dist/src/encoder/encoder.js +179 -55
  136. package/dist/src/fonts/bmFontManager.js +1 -1
  137. package/dist/src/full.d.ts +2 -0
  138. package/dist/src/full.d.ts.map +1 -0
  139. package/dist/src/full.js +2 -0
  140. package/dist/src/genome/assemblyPreflight.d.ts +31 -0
  141. package/dist/src/genome/assemblyPreflight.d.ts.map +1 -0
  142. package/dist/src/genome/assemblyPreflight.js +99 -0
  143. package/dist/src/genome/genome.d.ts +10 -2
  144. package/dist/src/genome/genome.d.ts.map +1 -1
  145. package/dist/src/genome/genome.js +20 -2
  146. package/dist/src/genome/genomeStore.d.ts +34 -3
  147. package/dist/src/genome/genomeStore.d.ts.map +1 -1
  148. package/dist/src/genome/genomeStore.js +409 -18
  149. package/dist/src/genome/rootGenomeConfig.d.ts +26 -0
  150. package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -0
  151. package/dist/src/genome/rootGenomeConfig.js +98 -0
  152. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  153. package/dist/src/genome/scaleLocus.js +26 -7
  154. package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
  155. package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
  156. package/dist/src/genomeSpy/cursorManager.js +131 -0
  157. package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
  158. package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
  159. package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
  160. package/dist/src/genomeSpy/interactionController.d.ts +10 -1
  161. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
  162. package/dist/src/genomeSpy/interactionController.js +448 -40
  163. package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
  164. package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
  165. package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
  166. package/dist/src/genomeSpy/renderCoordinator.js +1 -1
  167. package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
  168. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
  169. package/dist/src/genomeSpy/viewContextFactory.js +12 -4
  170. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
  171. package/dist/src/genomeSpy/viewDataInit.js +7 -3
  172. package/dist/src/genomeSpy.d.ts +1 -114
  173. package/dist/src/genomeSpy.d.ts.map +1 -1
  174. package/dist/src/genomeSpy.js +7 -614
  175. package/dist/src/genomeSpyBase.d.ts +133 -0
  176. package/dist/src/genomeSpyBase.d.ts.map +1 -0
  177. package/dist/src/genomeSpyBase.js +719 -0
  178. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  179. package/dist/src/gl/arrayBuilder.js +0 -3
  180. package/dist/src/gl/canvasSizeHelper.d.ts +74 -0
  181. package/dist/src/gl/canvasSizeHelper.d.ts.map +1 -0
  182. package/dist/src/gl/canvasSizeHelper.js +203 -0
  183. package/dist/src/gl/colorUtils.d.ts.map +1 -1
  184. package/dist/src/gl/colorUtils.js +3 -0
  185. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  186. package/dist/src/gl/dataToVertices.js +13 -8
  187. package/dist/src/gl/glslScaleGenerator.d.ts +2 -2
  188. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  189. package/dist/src/gl/glslScaleGenerator.js +5 -7
  190. package/dist/src/gl/webGLHelper.d.ts +25 -11
  191. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  192. package/dist/src/gl/webGLHelper.js +59 -33
  193. package/dist/src/index.d.ts +3 -9
  194. package/dist/src/index.d.ts.map +1 -1
  195. package/dist/src/index.js +5 -111
  196. package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
  197. package/dist/src/marks/link.d.ts.map +1 -1
  198. package/dist/src/marks/link.js +5 -26
  199. package/dist/src/marks/mark.d.ts +8 -1
  200. package/dist/src/marks/mark.d.ts.map +1 -1
  201. package/dist/src/marks/mark.js +67 -21
  202. package/dist/src/marks/markUtils.d.ts +18 -1
  203. package/dist/src/marks/markUtils.d.ts.map +1 -1
  204. package/dist/src/marks/markUtils.js +52 -4
  205. package/dist/src/marks/point.d.ts.map +1 -1
  206. package/dist/src/marks/point.js +6 -26
  207. package/dist/src/marks/rect.d.ts.map +1 -1
  208. package/dist/src/marks/rect.js +13 -21
  209. package/dist/src/marks/rule.d.ts +7 -2
  210. package/dist/src/marks/rule.d.ts.map +1 -1
  211. package/dist/src/marks/rule.js +125 -16
  212. package/dist/src/marks/text.d.ts.map +1 -1
  213. package/dist/src/marks/text.js +5 -47
  214. package/dist/src/minimal.d.ts +8 -0
  215. package/dist/src/minimal.d.ts.map +1 -0
  216. package/dist/src/minimal.js +21 -0
  217. package/dist/src/paramRuntime/viewParamRuntime.d.ts +19 -0
  218. package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
  219. package/dist/src/paramRuntime/viewParamRuntime.js +35 -0
  220. package/dist/src/scale/scale.d.ts.map +1 -1
  221. package/dist/src/scale/scale.js +13 -7
  222. package/dist/src/scales/axisResolution.d.ts.map +1 -1
  223. package/dist/src/scales/axisResolution.js +9 -5
  224. package/dist/src/scales/domainPlanner.d.ts +58 -7
  225. package/dist/src/scales/domainPlanner.d.ts.map +1 -1
  226. package/dist/src/scales/domainPlanner.js +395 -40
  227. package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
  228. package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
  229. package/dist/src/scales/indexLikeDomainUtils.js +67 -0
  230. package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
  231. package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
  232. package/dist/src/scales/resolutionMemberOrder.js +22 -0
  233. package/dist/src/scales/scaleInstanceManager.d.ts +2 -1
  234. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
  235. package/dist/src/scales/scaleInstanceManager.js +10 -11
  236. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
  237. package/dist/src/scales/scaleInteractionController.js +59 -18
  238. package/dist/src/scales/scalePropsResolver.d.ts +3 -1
  239. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
  240. package/dist/src/scales/scalePropsResolver.js +83 -6
  241. package/dist/src/scales/scaleResolution.d.ts +39 -0
  242. package/dist/src/scales/scaleResolution.d.ts.map +1 -1
  243. package/dist/src/scales/scaleResolution.js +504 -82
  244. package/dist/src/scales/scaleResolutionTestUtils.d.ts +21 -0
  245. package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -0
  246. package/dist/src/scales/scaleResolutionTestUtils.js +37 -0
  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 +52 -0
  250. package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -0
  251. package/dist/src/scales/selectionDomainUtils.js +194 -0
  252. package/dist/src/scales/zoomDomainUtils.d.ts +18 -0
  253. package/dist/src/scales/zoomDomainUtils.d.ts.map +1 -0
  254. package/dist/src/scales/zoomDomainUtils.js +69 -0
  255. package/dist/src/screenshotHarness.d.ts +16 -0
  256. package/dist/src/screenshotHarness.d.ts.map +1 -0
  257. package/dist/src/screenshotHarness.js +241 -0
  258. package/dist/src/singlePageApp.js +1 -1
  259. package/dist/src/spec/axis.d.ts +41 -30
  260. package/dist/src/spec/channel.d.ts +15 -9
  261. package/dist/src/spec/config.d.ts +264 -0
  262. package/dist/src/spec/data.d.ts +30 -3
  263. package/dist/src/spec/decoration.d.ts +51 -0
  264. package/dist/src/spec/exampleFiles.d.ts +12 -0
  265. package/dist/src/spec/exampleFiles.d.ts.map +1 -0
  266. package/dist/src/spec/exampleFiles.js +52 -0
  267. package/dist/src/spec/font.d.ts +1 -1
  268. package/dist/src/spec/genome.d.ts +22 -2
  269. package/dist/src/spec/mark.d.ts +97 -13
  270. package/dist/src/spec/parameter.d.ts +62 -5
  271. package/dist/src/spec/root.d.ts +34 -1
  272. package/dist/src/spec/scale.d.ts +46 -5
  273. package/dist/src/spec/title.d.ts +13 -2
  274. package/dist/src/spec/tooltip.d.ts +1 -1
  275. package/dist/src/spec/transform.d.ts +39 -4
  276. package/dist/src/spec/view.d.ts +67 -19
  277. package/dist/src/styles/genome-spy.css +63 -55
  278. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  279. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  280. package/dist/src/styles/genome-spy.css.js +31 -22
  281. package/dist/src/testSetup.d.ts +2 -0
  282. package/dist/src/testSetup.d.ts.map +1 -0
  283. package/dist/src/testSetup.js +5 -0
  284. package/dist/src/tooltip/dataTooltipHandler.js +66 -11
  285. package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
  286. package/dist/src/tooltip/tooltipContext.js +3 -2
  287. package/dist/src/types/embedApi.d.ts +26 -0
  288. package/dist/src/types/encoder.d.ts +17 -15
  289. package/dist/src/types/scaleResolutionApi.d.ts +20 -0
  290. package/dist/src/types/viewContext.d.ts +23 -1
  291. package/dist/src/utils/expression.d.ts +2 -2
  292. package/dist/src/utils/expression.d.ts.map +1 -1
  293. package/dist/src/utils/expression.js +63 -8
  294. package/dist/src/utils/field.d.ts.map +1 -1
  295. package/dist/src/utils/field.js +0 -1
  296. package/dist/src/utils/inertia.d.ts.map +1 -1
  297. package/dist/src/utils/inertia.js +0 -1
  298. package/dist/src/utils/inferSpecBaseUrl.d.ts +14 -0
  299. package/dist/src/utils/inferSpecBaseUrl.d.ts.map +1 -0
  300. package/dist/src/utils/inferSpecBaseUrl.js +73 -0
  301. package/dist/src/utils/inputBinding.d.ts +1 -1
  302. package/dist/src/utils/interaction.d.ts +109 -0
  303. package/dist/src/utils/interaction.d.ts.map +1 -0
  304. package/dist/src/utils/interaction.js +200 -0
  305. package/dist/src/utils/interactionEvent.d.ts +62 -33
  306. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  307. package/dist/src/utils/interactionEvent.js +86 -48
  308. package/dist/src/utils/kWayMerge.js +1 -1
  309. package/dist/src/utils/mergeObjects.d.ts.map +1 -1
  310. package/dist/src/utils/mergeObjects.js +0 -2
  311. package/dist/src/utils/radixSort.d.ts.map +1 -1
  312. package/dist/src/utils/radixSort.js +0 -2
  313. package/dist/src/utils/throttle.d.ts.map +1 -1
  314. package/dist/src/utils/throttle.js +0 -2
  315. package/dist/src/utils/ui/tooltip.d.ts +1 -0
  316. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  317. package/dist/src/utils/ui/tooltip.js +1 -0
  318. package/dist/src/utils/url.js +1 -1
  319. package/dist/src/view/axisGridView.d.ts +1 -1
  320. package/dist/src/view/axisGridView.d.ts.map +1 -1
  321. package/dist/src/view/axisGridView.js +2 -47
  322. package/dist/src/view/axisView.d.ts +2 -3
  323. package/dist/src/view/axisView.d.ts.map +1 -1
  324. package/dist/src/view/axisView.js +251 -106
  325. package/dist/src/view/concatView.d.ts +2 -1
  326. package/dist/src/view/concatView.d.ts.map +1 -1
  327. package/dist/src/view/concatView.js +4 -2
  328. package/dist/src/view/containerMutationHelper.d.ts +3 -0
  329. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  330. package/dist/src/view/containerMutationHelper.js +12 -1
  331. package/dist/src/view/dataReadiness.d.ts +2 -2
  332. package/dist/src/view/dataReadiness.d.ts.map +1 -1
  333. package/dist/src/view/dataReadiness.js +63 -58
  334. package/dist/src/view/facetView.d.ts +1 -1
  335. package/dist/src/view/facetView.js +4 -4
  336. package/dist/src/view/flowBuilder.js +2 -2
  337. package/dist/src/view/gridView/gridChild.d.ts +13 -0
  338. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  339. package/dist/src/view/gridView/gridChild.js +247 -49
  340. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  341. package/dist/src/view/gridView/gridView.js +296 -99
  342. package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
  343. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
  344. package/dist/src/view/gridView/keyboardZoomController.js +1 -1
  345. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  346. package/dist/src/view/gridView/scrollbar.js +4 -2
  347. package/dist/src/view/gridView/selectionRect.d.ts +4 -0
  348. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  349. package/dist/src/view/gridView/selectionRect.js +20 -1
  350. package/dist/src/view/gridView/separatorView.d.ts +1 -0
  351. package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
  352. package/dist/src/view/gridView/separatorView.js +9 -0
  353. package/dist/src/view/interactionRouting.d.ts +20 -0
  354. package/dist/src/view/interactionRouting.d.ts.map +1 -0
  355. package/dist/src/view/interactionRouting.js +53 -0
  356. package/dist/src/view/layerView.d.ts.map +1 -1
  357. package/dist/src/view/layerView.js +12 -9
  358. package/dist/src/view/layout/grid.js +1 -1
  359. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  360. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
  361. package/dist/src/view/testUtils.d.ts +17 -3
  362. package/dist/src/view/testUtils.d.ts.map +1 -1
  363. package/dist/src/view/testUtils.js +62 -69
  364. package/dist/src/view/title.d.ts +8 -1
  365. package/dist/src/view/title.d.ts.map +1 -1
  366. package/dist/src/view/title.js +66 -76
  367. package/dist/src/view/unitView.d.ts +1 -1
  368. package/dist/src/view/unitView.d.ts.map +1 -1
  369. package/dist/src/view/unitView.js +67 -17
  370. package/dist/src/view/view.d.ts +76 -30
  371. package/dist/src/view/view.d.ts.map +1 -1
  372. package/dist/src/view/view.js +136 -47
  373. package/dist/src/view/viewFactory.d.ts +11 -3
  374. package/dist/src/view/viewFactory.d.ts.map +1 -1
  375. package/dist/src/view/viewFactory.js +37 -11
  376. package/dist/src/view/viewUtils.d.ts.map +1 -1
  377. package/dist/src/view/viewUtils.js +41 -5
  378. package/dist/src/view/zoom.d.ts +15 -3
  379. package/dist/src/view/zoom.d.ts.map +1 -1
  380. package/dist/src/view/zoom.js +375 -80
  381. package/package.json +20 -10
  382. package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
  383. package/dist/bundle/browser-0iNU5Wit.js +0 -138
  384. package/dist/bundle/index-BYsZN7b0.js +0 -1597
  385. package/dist/bundle/index-C3kClAEN.js +0 -1771
  386. package/dist/bundle/index-C7wOh6y1.js +0 -657
  387. package/dist/bundle/index-CRaQAuki.js +0 -326
  388. package/dist/bundle/index-D9v1PCj9.js +0 -507
  389. package/dist/bundle/index-GDOuv_D5.js +0 -266
  390. package/dist/bundle/index-Gt44EOIH.js +0 -628
  391. package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
  392. package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
  393. package/dist/bundle/unzip-Bac01w6X.js +0 -1492
  394. package/dist/src/config/scaleDefaults.d.ts +0 -8
  395. package/dist/src/config/scaleDefaults.d.ts.map +0 -1
  396. package/dist/src/config/scaleDefaults.js +0 -45
@@ -0,0 +1,461 @@
1
+ import { t as e } from "./esm-CGX-qz1d.js";
2
+ import { n as t, r as n } from "./esm-BDFRLEuD.js";
3
+ import { r, t as i } from "./browser-BTgw5ieH.js";
4
+ import { t as a } from "./AbortablePromiseCache-3gHJdF3E.js";
5
+ //#region ../../node_modules/@gmod/tabix/esm/chunk.js
6
+ var o = class {
7
+ constructor(e, t, n, r) {
8
+ this.minv = e, this.maxv = t, this.bin = n, this._fetchedSize = r;
9
+ }
10
+ toUniqueString() {
11
+ return `${this.minv}..${this.maxv} (bin ${this.bin}, fetchedSize ${this.fetchedSize()})`;
12
+ }
13
+ toString() {
14
+ return this.toUniqueString();
15
+ }
16
+ compareTo(e) {
17
+ return this.minv.compareTo(e.minv) || this.maxv.compareTo(e.maxv) || this.bin - e.bin;
18
+ }
19
+ fetchedSize() {
20
+ return this._fetchedSize === void 0 ? this.maxv.blockPosition + 65536 - this.minv.blockPosition : this._fetchedSize;
21
+ }
22
+ }, s = class {
23
+ constructor({ filehandle: e, renameRefSeqs: t = (e) => e }) {
24
+ this.filehandle = e, this.renameRefSeq = t;
25
+ }
26
+ async getMetadata(e = {}) {
27
+ let { indices: t, ...n } = await this.parse(e);
28
+ return n;
29
+ }
30
+ _findFirstData(e, t) {
31
+ return e ? e.compareTo(t) > 0 ? t : e : t;
32
+ }
33
+ async parse(e = {}) {
34
+ return this.parseP ||= this._parse(e).catch((e) => {
35
+ throw this.parseP = void 0, e;
36
+ }), this.parseP;
37
+ }
38
+ async hasRefSeq(e, t = {}) {
39
+ return !!(await this.parse(t)).indices[e]?.binIndex;
40
+ }
41
+ _parseNameBytes(e) {
42
+ let t = 0, n = 0, r = [], i = {}, a = new TextDecoder("utf8");
43
+ for (let o = 0; o < e.length; o += 1) if (!e[o]) {
44
+ if (n < o) {
45
+ let s = this.renameRefSeq(a.decode(e.subarray(n, o)));
46
+ r[t] = s, i[s] = t;
47
+ }
48
+ n = o + 1, t += 1;
49
+ }
50
+ return {
51
+ refNameToId: i,
52
+ refIdToName: r
53
+ };
54
+ }
55
+ }, c = 65536, l = c * c;
56
+ function u(e, t = 0) {
57
+ let n = e[t] | e[t + 1] << 8 | e[t + 2] << 16 | e[t + 3] << 24;
58
+ return ((e[t + 4] | e[t + 5] << 8 | e[t + 6] << 16 | e[t + 7] << 24) >>> 0) * l + (n >>> 0);
59
+ }
60
+ //#endregion
61
+ //#region ../../node_modules/@gmod/tabix/esm/util.js
62
+ function d(e, t) {
63
+ return t.minv.blockPosition - e.maxv.blockPosition < 65e3 && t.maxv.blockPosition - e.minv.blockPosition < 5e6;
64
+ }
65
+ function f(e, t) {
66
+ let n = [], r;
67
+ if (e.length === 0) return e;
68
+ e.sort(function(e, t) {
69
+ let n = e.minv.blockPosition - t.minv.blockPosition;
70
+ return n === 0 ? e.minv.dataPosition - t.minv.dataPosition : n;
71
+ });
72
+ for (let i of e) (!t || i.maxv.compareTo(t) > 0) && (r === void 0 ? (n.push(i), r = i) : d(r, i) ? i.maxv.compareTo(r.maxv) > 0 && (r.maxv = i.maxv) : (n.push(i), r = i));
73
+ return n;
74
+ }
75
+ //#endregion
76
+ //#region ../../node_modules/@gmod/tabix/esm/virtualOffset.js
77
+ var p = class {
78
+ constructor(e, t) {
79
+ this.blockPosition = e, this.dataPosition = t;
80
+ }
81
+ toString() {
82
+ return `${this.blockPosition}:${this.dataPosition}`;
83
+ }
84
+ compareTo(e) {
85
+ return this.blockPosition - e.blockPosition || this.dataPosition - e.dataPosition;
86
+ }
87
+ };
88
+ function m(e, t = 0) {
89
+ return new p(e[t + 7] * 1099511627776 + e[t + 6] * 4294967296 + e[t + 5] * 16777216 + e[t + 4] * 65536 + e[t + 3] * 256 + e[t + 2], e[t + 1] << 8 | e[t]);
90
+ }
91
+ //#endregion
92
+ //#region ../../node_modules/@gmod/tabix/esm/csi.js
93
+ var h = 21582659, g = 38359875, _ = {
94
+ 0: "generic",
95
+ 1: "SAM",
96
+ 2: "VCF"
97
+ };
98
+ function v(e, t) {
99
+ return e * 2 ** t;
100
+ }
101
+ function y(e, t) {
102
+ return Math.floor(e / 2 ** t);
103
+ }
104
+ var b = class extends s {
105
+ constructor(e) {
106
+ super(e), this.maxBinNumber = 0, this.depth = 0, this.minShift = 0;
107
+ }
108
+ async lineCount(e, t = {}) {
109
+ let n = await this.parse(t), r = n.refNameToId[e];
110
+ if (r === void 0 || !n.indices[r]) return -1;
111
+ let { stats: i } = n.indices[r];
112
+ return i ? i.lineCount : -1;
113
+ }
114
+ indexCov() {
115
+ throw Error("CSI indexes do not support indexcov");
116
+ }
117
+ parseAuxData(e, t) {
118
+ let n = new DataView(e.buffer), r = n.getInt32(t, !0), i = r & 65536 ? "zero-based-half-open" : "1-based-closed", a = _[r & 15];
119
+ if (!a) throw Error(`invalid Tabix preset format flags ${r}`);
120
+ let o = {
121
+ ref: n.getInt32(t + 4, !0),
122
+ start: n.getInt32(t + 8, !0),
123
+ end: n.getInt32(t + 12, !0)
124
+ }, s = n.getInt32(t + 16, !0), c = s ? String.fromCharCode(s) : void 0, l = n.getInt32(t + 20, !0), u = n.getInt32(t + 24, !0), { refIdToName: d, refNameToId: f } = this._parseNameBytes(e.subarray(t + 28, t + 28 + u));
125
+ return {
126
+ refIdToName: d,
127
+ refNameToId: f,
128
+ skipLines: l,
129
+ metaChar: c,
130
+ columnNumbers: o,
131
+ format: a,
132
+ coordinateType: i
133
+ };
134
+ }
135
+ async _parse(e = {}) {
136
+ let n = await t(await this.filehandle.readFile(e)), r = new DataView(n.buffer), i;
137
+ if (r.getUint32(0, !0) === h) i = 1;
138
+ else if (r.getUint32(0, !0) === g) i = 2;
139
+ else throw Error("Not a CSI file");
140
+ this.minShift = r.getInt32(4, !0), this.depth = r.getInt32(8, !0), this.maxBinNumber = ((1 << (this.depth + 1) * 3) - 1) / 7;
141
+ let a = 2 ** (this.minShift + this.depth * 3), s = r.getInt32(12, !0), c = s && s >= 30 ? this.parseAuxData(n, 16) : {
142
+ refIdToName: [],
143
+ refNameToId: {},
144
+ metaChar: void 0,
145
+ columnNumbers: {
146
+ ref: 0,
147
+ start: 1,
148
+ end: 2
149
+ },
150
+ coordinateType: "zero-based-half-open",
151
+ format: "generic"
152
+ }, l = r.getInt32(16 + s, !0), u, d = 16 + s + 4, f = Array(l).fill(0).map(() => {
153
+ let e = r.getInt32(d, !0);
154
+ d += 4;
155
+ let t = {}, i;
156
+ for (let a = 0; a < e; a += 1) {
157
+ let e = r.getUint32(d, !0);
158
+ if (e > this.maxBinNumber) i = this.parsePseudoBin(n, d + 4), d += 48;
159
+ else {
160
+ let i = m(n, d + 4);
161
+ u = this._findFirstData(u, i);
162
+ let a = r.getInt32(d + 12, !0);
163
+ d += 16;
164
+ let s = Array(a);
165
+ for (let t = 0; t < a; t += 1) {
166
+ let r = m(n, d), i = m(n, d + 8);
167
+ d += 16, s[t] = new o(r, i, e);
168
+ }
169
+ t[e] = s;
170
+ }
171
+ }
172
+ return {
173
+ binIndex: t,
174
+ stats: i
175
+ };
176
+ });
177
+ return {
178
+ ...c,
179
+ csi: !0,
180
+ refCount: l,
181
+ maxBlockSize: 65536,
182
+ firstDataLine: u,
183
+ csiVersion: i,
184
+ indices: f,
185
+ depth: this.depth,
186
+ maxBinNumber: this.maxBinNumber,
187
+ maxRefLength: a
188
+ };
189
+ }
190
+ parsePseudoBin(e, t) {
191
+ return { lineCount: u(e, t + 28) };
192
+ }
193
+ async blocksForRange(e, t, n, r = {}) {
194
+ t < 0 && (t = 0);
195
+ let i = await this.parse(r), a = i.refNameToId[e];
196
+ if (a === void 0) return [];
197
+ let s = i.indices[a];
198
+ if (!s) return [];
199
+ let c = this.reg2bins(t, n), l = [];
200
+ for (let [e, t] of c) for (let n = e; n <= t; n++) if (s.binIndex[n]) for (let e of s.binIndex[n]) l.push(new o(e.minv, e.maxv, n));
201
+ return f(l, new p(0, 0));
202
+ }
203
+ reg2bins(e, t) {
204
+ --e, e < 1 && (e = 1), t > 2 ** 50 && (t = 2 ** 34), --t;
205
+ let n = 0, r = 0, i = this.minShift + this.depth * 3, a = [];
206
+ for (; n <= this.depth; i -= 3, r += v(1, n * 3), n += 1) {
207
+ let n = r + y(e, i), o = r + y(t, i);
208
+ if (o - n + a.length > this.maxBinNumber) throw Error(`query ${e}-${t} is too large for current binning scheme (shift ${this.minShift}, depth ${this.depth}), try a smaller query or a coarser index binning scheme`);
209
+ a.push([n, o]);
210
+ }
211
+ return a;
212
+ }
213
+ }, x = 21578324, S = 14;
214
+ function C(e, t) {
215
+ return e += 1, --t, [
216
+ [0, 0],
217
+ [1 + (e >> 26), 1 + (t >> 26)],
218
+ [9 + (e >> 23), 9 + (t >> 23)],
219
+ [73 + (e >> 20), 73 + (t >> 20)],
220
+ [585 + (e >> 17), 585 + (t >> 17)],
221
+ [4681 + (e >> 14), 4681 + (t >> 14)]
222
+ ];
223
+ }
224
+ var w = class extends s {
225
+ async lineCount(e, t = {}) {
226
+ let n = await this.parse(t), r = n.refNameToId[e];
227
+ return r === void 0 || !n.indices[r] ? -1 : n.indices[r].stats?.lineCount ?? -1;
228
+ }
229
+ async _parse(e = {}) {
230
+ let n = await t(await this.filehandle.readFile(e)), r = new DataView(n.buffer);
231
+ if (r.getUint32(0, !0) !== x) throw Error("Not a TBI file");
232
+ let i = r.getUint32(4, !0), a = r.getUint32(8, !0), s = a & 65536 ? "zero-based-half-open" : "1-based-closed", c = {
233
+ 0: "generic",
234
+ 1: "SAM",
235
+ 2: "VCF"
236
+ }[a & 15];
237
+ if (!c) throw Error(`invalid Tabix preset format flags ${a}`);
238
+ let l = {
239
+ ref: r.getInt32(12, !0),
240
+ start: r.getInt32(16, !0),
241
+ end: r.getInt32(20, !0)
242
+ }, u = r.getInt32(24, !0), d = ((1 << 18) - 1) / 7, f = 2 ** 29, p = u ? String.fromCharCode(u) : void 0, h = r.getInt32(28, !0), g = r.getInt32(32, !0), { refNameToId: _, refIdToName: v } = this._parseNameBytes(n.slice(36, 36 + g)), y = 36 + g, b;
243
+ return {
244
+ indices: Array(i).fill(0).map(() => {
245
+ let e = r.getInt32(y, !0);
246
+ y += 4;
247
+ let t = {}, i;
248
+ for (let a = 0; a < e; a += 1) {
249
+ let e = r.getUint32(y, !0);
250
+ if (y += 4, e > d + 1) throw Error("tabix index contains too many bins, please use a CSI index");
251
+ if (e === d + 1) {
252
+ let e = r.getInt32(y, !0);
253
+ y += 4, e === 2 && (i = this.parsePseudoBin(n, y)), y += 16 * e;
254
+ } else {
255
+ let i = r.getInt32(y, !0);
256
+ y += 4;
257
+ let a = Array(i);
258
+ for (let t = 0; t < i; t += 1) {
259
+ let r = m(n, y), i = m(n, y + 8);
260
+ y += 16, b = this._findFirstData(b, r), a[t] = new o(r, i, e);
261
+ }
262
+ t[e] = a;
263
+ }
264
+ }
265
+ let a = r.getInt32(y, !0);
266
+ y += 4;
267
+ let s = Array(a);
268
+ for (let e = 0; e < a; e += 1) s[e] = m(n, y), y += 8, b = this._findFirstData(b, s[e]);
269
+ return {
270
+ binIndex: t,
271
+ linearIndex: s,
272
+ stats: i
273
+ };
274
+ }),
275
+ metaChar: p,
276
+ maxBinNumber: d,
277
+ maxRefLength: f,
278
+ skipLines: h,
279
+ firstDataLine: b,
280
+ columnNumbers: l,
281
+ coordinateType: s,
282
+ format: c,
283
+ refIdToName: v,
284
+ refNameToId: _,
285
+ maxBlockSize: 65536
286
+ };
287
+ }
288
+ parsePseudoBin(e, t) {
289
+ return { lineCount: u(e, t + 16) };
290
+ }
291
+ async blocksForRange(e, t, n, r = {}) {
292
+ t < 0 && (t = 0);
293
+ let i = await this.parse(r), a = i.refNameToId[e];
294
+ if (a === void 0) return [];
295
+ let s = i.indices[a];
296
+ if (!s) return [];
297
+ (s.linearIndex.length > 0 ? s.linearIndex[t >> S >= s.linearIndex.length ? s.linearIndex.length - 1 : t >> S] : new p(0, 0)) || console.warn("querying outside of possible tabix range");
298
+ let c = C(t, n), l = [];
299
+ for (let [e, t] of c) for (let n = e; n <= t; n++) if (s.binIndex[n]) for (let e of s.binIndex[n]) l.push(new o(e.minv, e.maxv, n));
300
+ let u = s.linearIndex.length, d, m = Math.min(t >> 14, u - 1), h = Math.min(n >> 14, u - 1);
301
+ for (let e = m; e <= h; ++e) {
302
+ let t = s.linearIndex[e];
303
+ t && (!d || t.compareTo(d) < 0) && (d = t);
304
+ }
305
+ return f(l, d);
306
+ }
307
+ }, T = class {
308
+ constructor({ path: t, filehandle: n, url: o, tbiPath: s, tbiUrl: c, tbiFilehandle: l, csiPath: u, csiUrl: d, csiFilehandle: f, renameRefSeqs: p, chunkCacheSize: m = 5 * 2 ** 20 }) {
309
+ this.cache = new e({ maxSize: 1e3 });
310
+ let h = p ?? ((e) => e);
311
+ if (n) this.filehandle = n;
312
+ else if (t) this.filehandle = new i(t);
313
+ else if (o) this.filehandle = new r(o);
314
+ else throw TypeError("must provide either filehandle or path");
315
+ if (l) this.index = new w({
316
+ filehandle: l,
317
+ renameRefSeqs: h
318
+ });
319
+ else if (f) this.index = new b({
320
+ filehandle: f,
321
+ renameRefSeqs: h
322
+ });
323
+ else if (s) this.index = new w({
324
+ filehandle: new i(s),
325
+ renameRefSeqs: h
326
+ });
327
+ else if (u) this.index = new b({
328
+ filehandle: new i(u),
329
+ renameRefSeqs: h
330
+ });
331
+ else if (t) this.index = new w({
332
+ filehandle: new i(`${t}.tbi`),
333
+ renameRefSeqs: h
334
+ });
335
+ else if (d) this.index = new b({ filehandle: new r(d) });
336
+ else if (c) this.index = new w({ filehandle: new r(c) });
337
+ else if (o) this.index = new w({ filehandle: new r(`${o}.tbi`) });
338
+ else throw TypeError("must provide one of tbiFilehandle, tbiPath, csiFilehandle, csiPath, tbiUrl, csiUrl");
339
+ this.renameRefSeq = h, this.hasCustomRenameRefSeq = p !== void 0, this.chunkCache = new a({
340
+ cache: new e({ maxSize: Math.floor(m / 65536) }),
341
+ fill: (e, t) => this.readChunk(e, { signal: t })
342
+ });
343
+ }
344
+ calculateFileOffset(e, t, n, r, i) {
345
+ return e[n] * 256 + (r - t[n]) + i + 1;
346
+ }
347
+ async getLines(e, t, n, r) {
348
+ let i, a = {}, o;
349
+ typeof r == "function" ? o = r : (a = r, o = r.lineCallback, i = r.signal);
350
+ let s = await this.index.getMetadata(a), c = t ?? 0, l = n ?? s.maxRefLength;
351
+ if (!(c <= l)) throw TypeError("invalid start and end coordinates. start must be less than or equal to end");
352
+ if (c === l) return;
353
+ let u = await this.index.blocksForRange(e, c, l, a), d = new TextDecoder("utf8"), f = s.format === "VCF", p = {
354
+ ref: s.columnNumbers.ref || 0,
355
+ start: s.columnNumbers.start || 0,
356
+ end: f ? 8 : s.columnNumbers.end || 0
357
+ }, m = Math.max(p.ref, p.start, p.end), h = s.metaChar?.charCodeAt(0), g = s.coordinateType === "1-based-closed" ? -1 : 0, _ = !this.hasCustomRenameRefSeq;
358
+ for (let t of u) {
359
+ let { buffer: n, cpositions: r, dpositions: a } = await this.chunkCache.get(t.toString(), t, i), s = 0, u = 0, v = d.decode(n);
360
+ if (n.length == v.length) for (; s < v.length;) {
361
+ let n = v.indexOf("\n", s);
362
+ if (n === -1) break;
363
+ let i = v.slice(s, n);
364
+ if (a) {
365
+ let e = s + t.minv.dataPosition;
366
+ for (; u < a.length && e >= a[u];) u++;
367
+ }
368
+ let d = this.checkLine(e, c, l, i, p.ref, p.start, p.end, m, h, g, f, _);
369
+ if (d === null) return;
370
+ d !== void 0 && o(i, this.calculateFileOffset(r, a, u, s, t.minv.dataPosition), d.start, d.end), s = n + 1;
371
+ }
372
+ else for (; s < n.length;) {
373
+ let i = n.indexOf(10, s);
374
+ if (i === -1) break;
375
+ let v = n.slice(s, i), y = d.decode(v);
376
+ if (a) {
377
+ let e = s + t.minv.dataPosition;
378
+ for (; u < a.length && e >= a[u];) u++;
379
+ }
380
+ let b = this.checkLine(e, c, l, y, p.ref, p.start, p.end, m, h, g, f, _);
381
+ if (b === null) return;
382
+ b !== void 0 && o(y, this.calculateFileOffset(r, a, u, s, t.minv.dataPosition), b.start, b.end), s = i + 1;
383
+ }
384
+ }
385
+ }
386
+ async getMetadata(e = {}) {
387
+ return this.index.getMetadata(e);
388
+ }
389
+ async getHeaderBuffer(e = {}) {
390
+ let { firstDataLine: n, metaChar: r, maxBlockSize: i } = await this.getMetadata(e), a = (n?.blockPosition || 0) + i, o = await t(await this.filehandle.read(a, 0, e));
391
+ if (r) {
392
+ let e = -1, t = r.charCodeAt(0);
393
+ for (let n = 0, r = o.length; n < r; n++) {
394
+ let r = o[n];
395
+ if (n === e + 1 && r !== t) break;
396
+ r === 10 && (e = n);
397
+ }
398
+ return o.subarray(0, e + 1);
399
+ }
400
+ return o;
401
+ }
402
+ async getHeader(e = {}) {
403
+ let t = new TextDecoder("utf8"), n = await this.getHeaderBuffer(e);
404
+ return t.decode(n);
405
+ }
406
+ async getReferenceSequenceNames(e = {}) {
407
+ return (await this.getMetadata(e)).refIdToName;
408
+ }
409
+ checkLine(e, t, n, r, i, a, o, s, c, l, u, d) {
410
+ if (c !== void 0 && r.charCodeAt(0) === c) return;
411
+ if (r.length < 500) {
412
+ let s = r.split(" "), c = s[i - 1];
413
+ if (!(d ? c === e : this.renameRefSeq(c) === e)) return;
414
+ let f = +s[a - 1] + l;
415
+ if (f >= n) return null;
416
+ let p;
417
+ return p = o === 0 || o === a ? f + 1 : u ? this._getVcfEnd(f, s[3], s[o - 1]) : +s[o - 1], p <= t ? void 0 : {
418
+ start: f,
419
+ end: p
420
+ };
421
+ }
422
+ let f = -1, p = [-1];
423
+ for (let e = 0; e < s; e++) {
424
+ let e = r.indexOf(" ", f + 1);
425
+ if (e === -1) {
426
+ p.push(r.length);
427
+ break;
428
+ }
429
+ p.push(e), f = e;
430
+ }
431
+ let m = r.slice(p[i - 1] + 1, p[i]);
432
+ if (!(d ? m === e : this.renameRefSeq(m) === e)) return;
433
+ let h = +r.slice(p[a - 1] + 1, p[a]) + l;
434
+ if (h >= n) return null;
435
+ let g;
436
+ if (g = o === 0 || o === a ? h + 1 : u ? this._getVcfEnd(h, r.slice(p[3] + 1, p[4]), r.slice(p[o - 1] + 1, p[o])) : +r.slice(p[o - 1] + 1, p[o]), !(g <= t)) return {
437
+ start: h,
438
+ end: g
439
+ };
440
+ }
441
+ _getVcfEnd(e, t, n) {
442
+ let r = e + t.length;
443
+ if (n.includes("SVTYPE=TRA")) return e + 1;
444
+ if (n[0] !== ".") {
445
+ let e = n.indexOf("END=");
446
+ if (e !== -1 && (e === 0 || n[e - 1] === ";")) {
447
+ let t = e + 4, i = n.indexOf(";", t);
448
+ i === -1 && (i = n.length), r = Number.parseInt(n.slice(t, i), 10);
449
+ }
450
+ }
451
+ return r;
452
+ }
453
+ async lineCount(e, t = {}) {
454
+ return this.index.lineCount(e, t);
455
+ }
456
+ async readChunk(e, t = {}) {
457
+ return n(await this.filehandle.read(e.fetchedSize(), e.minv.blockPosition, t), e, this.cache);
458
+ }
459
+ };
460
+ //#endregion
461
+ export { b as CSI, w as TBI, T as TabixIndexedFile };