@genome-spy/core 0.73.0 → 0.75.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (392) hide show
  1. package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
  2. package/dist/bundle/browser-BTgw5ieH.js +126 -0
  3. package/dist/bundle/chunk-DmhlhrBa.js +11 -0
  4. package/dist/bundle/esm-BDFRLEuD.js +1248 -0
  5. package/dist/bundle/esm-BygJiwh0.js +573 -0
  6. package/dist/bundle/esm-CGX-qz1d.js +155 -0
  7. package/dist/bundle/esm-CgfVIRJ-.js +121 -0
  8. package/dist/bundle/esm-CuMSzCHy.js +298 -0
  9. package/dist/bundle/esm-DMXpJXM4.js +369 -0
  10. package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
  11. package/dist/bundle/esm-DtE8VqAv.js +1015 -0
  12. package/dist/bundle/esm-sIoQYZ21.js +461 -0
  13. package/dist/bundle/index.es.js +21266 -25938
  14. package/dist/bundle/index.js +367 -383
  15. package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
  16. package/dist/schema.json +13421 -7210
  17. package/dist/src/config/axisConfig.d.ts +16 -0
  18. package/dist/src/config/axisConfig.d.ts.map +1 -0
  19. package/dist/src/config/axisConfig.js +84 -0
  20. package/dist/src/config/defaultConfig.d.ts +3 -0
  21. package/dist/src/config/defaultConfig.d.ts.map +1 -0
  22. package/dist/src/config/defaultConfig.js +38 -0
  23. package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
  24. package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
  25. package/dist/src/config/defaults/axisDefaults.js +72 -0
  26. package/dist/src/config/defaults/markDefaults.d.ts +15 -0
  27. package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
  28. package/dist/src/config/defaults/markDefaults.js +121 -0
  29. package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
  30. package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
  31. package/dist/src/config/defaults/scaleDefaults.js +18 -0
  32. package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
  33. package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
  34. package/dist/src/config/defaults/titleDefaults.js +47 -0
  35. package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
  36. package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
  37. package/dist/src/config/defaults/viewDefaults.js +2 -0
  38. package/dist/src/config/markConfig.d.ts +8 -0
  39. package/dist/src/config/markConfig.d.ts.map +1 -0
  40. package/dist/src/config/markConfig.js +27 -0
  41. package/dist/src/config/mergeConfig.d.ts +8 -0
  42. package/dist/src/config/mergeConfig.d.ts.map +1 -0
  43. package/dist/src/config/mergeConfig.js +81 -0
  44. package/dist/src/config/resolveConfig.d.ts +22 -0
  45. package/dist/src/config/resolveConfig.d.ts.map +1 -0
  46. package/dist/src/config/resolveConfig.js +32 -0
  47. package/dist/src/config/scaleConfig.d.ts +40 -0
  48. package/dist/src/config/scaleConfig.d.ts.map +1 -0
  49. package/dist/src/config/scaleConfig.js +220 -0
  50. package/dist/src/config/styleUtils.d.ts +6 -0
  51. package/dist/src/config/styleUtils.d.ts.map +1 -0
  52. package/dist/src/config/styleUtils.js +10 -0
  53. package/dist/src/config/themes.d.ts +15 -0
  54. package/dist/src/config/themes.d.ts.map +1 -0
  55. package/dist/src/config/themes.js +293 -0
  56. package/dist/src/config/titleConfig.d.ts +12 -0
  57. package/dist/src/config/titleConfig.d.ts.map +1 -0
  58. package/dist/src/config/titleConfig.js +42 -0
  59. package/dist/src/config/viewConfig.d.ts +7 -0
  60. package/dist/src/config/viewConfig.d.ts.map +1 -0
  61. package/dist/src/config/viewConfig.js +29 -0
  62. package/dist/src/data/flowNode.d.ts +22 -1
  63. package/dist/src/data/flowNode.d.ts.map +1 -1
  64. package/dist/src/data/flowNode.js +37 -1
  65. package/dist/src/data/formats/bed.d.ts.map +1 -1
  66. package/dist/src/data/formats/bed.js +6 -1
  67. package/dist/src/data/formats/bedpe.d.ts.map +1 -1
  68. package/dist/src/data/formats/bedpe.js +4 -0
  69. package/dist/src/data/formats/fasta.d.ts.map +1 -1
  70. package/dist/src/data/formats/fasta.js +4 -0
  71. package/dist/src/data/formats/parquet.d.ts.map +1 -1
  72. package/dist/src/data/formats/parquet.js +4 -0
  73. package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
  74. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  75. package/dist/src/data/sources/dataSourceFactory.js +5 -141
  76. package/dist/src/data/sources/dataUtils.d.ts +25 -0
  77. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  78. package/dist/src/data/sources/dataUtils.js +23 -0
  79. package/dist/src/data/sources/inlineSource.js +2 -2
  80. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  81. package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
  82. package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
  83. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  84. package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
  85. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  86. package/dist/src/data/sources/lazy/bamSource.js +11 -0
  87. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  88. package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
  89. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  90. package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
  91. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  92. package/dist/src/data/sources/lazy/gff3Source.js +12 -1
  93. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  94. package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
  95. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
  96. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
  97. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
  98. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
  99. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
  100. package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
  101. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  102. package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
  103. package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
  104. package/dist/src/data/sources/lazy/vcfSource.js +11 -0
  105. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  106. package/dist/src/data/sources/urlSource.js +13 -5
  107. package/dist/src/data/transforms/aggregate.d.ts +1 -0
  108. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  109. package/dist/src/data/transforms/aggregate.js +30 -8
  110. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
  111. package/dist/src/data/transforms/aggregateOps.js +12 -1
  112. package/dist/src/data/transforms/coverage.js +2 -2
  113. package/dist/src/data/transforms/filter.js +1 -1
  114. package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
  115. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  116. package/dist/src/data/transforms/filterScoredLabels.js +9 -0
  117. package/dist/src/data/transforms/measureText.d.ts +1 -0
  118. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  119. package/dist/src/data/transforms/measureText.js +14 -5
  120. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  121. package/dist/src/data/transforms/pileup.js +1 -2
  122. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  123. package/dist/src/data/transforms/regexFold.js +0 -1
  124. package/dist/src/embedFactory.d.ts +13 -0
  125. package/dist/src/embedFactory.d.ts.map +1 -0
  126. package/dist/src/embedFactory.js +127 -0
  127. package/dist/src/encoder/accessor.d.ts +3 -12
  128. package/dist/src/encoder/accessor.d.ts.map +1 -1
  129. package/dist/src/encoder/accessor.js +10 -65
  130. package/dist/src/encoder/encoder.d.ts +51 -8
  131. package/dist/src/encoder/encoder.d.ts.map +1 -1
  132. package/dist/src/encoder/encoder.js +179 -55
  133. package/dist/src/fonts/bmFontManager.js +1 -1
  134. package/dist/src/full.d.ts +2 -0
  135. package/dist/src/full.d.ts.map +1 -0
  136. package/dist/src/full.js +2 -0
  137. package/dist/src/genome/genome.d.ts +8 -0
  138. package/dist/src/genome/genome.d.ts.map +1 -1
  139. package/dist/src/genome/genome.js +16 -2
  140. package/dist/src/genome/genomeStore.js +1 -1
  141. package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -1
  142. package/dist/src/genome/rootGenomeConfig.js +6 -2
  143. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  144. package/dist/src/genome/scaleLocus.js +31 -7
  145. package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
  146. package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
  147. package/dist/src/genomeSpy/cursorManager.js +131 -0
  148. package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
  149. package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
  150. package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
  151. package/dist/src/genomeSpy/interactionController.d.ts +5 -0
  152. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
  153. package/dist/src/genomeSpy/interactionController.js +292 -59
  154. package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
  155. package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
  156. package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
  157. package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
  158. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
  159. package/dist/src/genomeSpy/viewContextFactory.js +12 -4
  160. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
  161. package/dist/src/genomeSpy/viewDataInit.js +7 -3
  162. package/dist/src/genomeSpy.d.ts +1 -124
  163. package/dist/src/genomeSpy.d.ts.map +1 -1
  164. package/dist/src/genomeSpy.js +7 -688
  165. package/dist/src/genomeSpyBase.d.ts +133 -0
  166. package/dist/src/genomeSpyBase.d.ts.map +1 -0
  167. package/dist/src/genomeSpyBase.js +719 -0
  168. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  169. package/dist/src/gl/arrayBuilder.js +0 -3
  170. package/dist/src/gl/colorUtils.d.ts.map +1 -1
  171. package/dist/src/gl/colorUtils.js +3 -0
  172. package/dist/src/gl/dataToVertices.d.ts +12 -14
  173. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  174. package/dist/src/gl/dataToVertices.js +121 -95
  175. package/dist/src/gl/glslScaleGenerator.d.ts +5 -2
  176. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  177. package/dist/src/gl/glslScaleGenerator.js +15 -15
  178. package/dist/src/gl/vertexRangeIndex.d.ts +23 -0
  179. package/dist/src/gl/vertexRangeIndex.d.ts.map +1 -0
  180. package/dist/src/gl/vertexRangeIndex.js +150 -0
  181. package/dist/src/index.d.ts +3 -9
  182. package/dist/src/index.d.ts.map +1 -1
  183. package/dist/src/index.js +5 -114
  184. package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
  185. package/dist/src/marks/link.d.ts.map +1 -1
  186. package/dist/src/marks/link.js +0 -23
  187. package/dist/src/marks/mark.d.ts +8 -1
  188. package/dist/src/marks/mark.d.ts.map +1 -1
  189. package/dist/src/marks/mark.js +61 -20
  190. package/dist/src/marks/markUtils.d.ts +18 -1
  191. package/dist/src/marks/markUtils.d.ts.map +1 -1
  192. package/dist/src/marks/markUtils.js +52 -4
  193. package/dist/src/marks/point.d.ts.map +1 -1
  194. package/dist/src/marks/point.js +6 -26
  195. package/dist/src/marks/rect.d.ts.map +1 -1
  196. package/dist/src/marks/rect.js +13 -21
  197. package/dist/src/marks/rule.d.ts +7 -2
  198. package/dist/src/marks/rule.d.ts.map +1 -1
  199. package/dist/src/marks/rule.js +125 -16
  200. package/dist/src/marks/text.d.ts.map +1 -1
  201. package/dist/src/marks/text.js +5 -47
  202. package/dist/src/minimal.d.ts +8 -0
  203. package/dist/src/minimal.d.ts.map +1 -0
  204. package/dist/src/minimal.js +21 -0
  205. package/dist/src/paramRuntime/expressionCompiler.d.ts +2 -1
  206. package/dist/src/paramRuntime/expressionCompiler.d.ts.map +1 -1
  207. package/dist/src/paramRuntime/expressionCompiler.js +3 -2
  208. package/dist/src/paramRuntime/expressionRef.d.ts +4 -1
  209. package/dist/src/paramRuntime/expressionRef.d.ts.map +1 -1
  210. package/dist/src/paramRuntime/expressionRef.js +10 -3
  211. package/dist/src/paramRuntime/graphRuntime.d.ts.map +1 -1
  212. package/dist/src/paramRuntime/graphRuntime.js +15 -6
  213. package/dist/src/paramRuntime/paramRuntime.d.ts +8 -2
  214. package/dist/src/paramRuntime/paramRuntime.d.ts.map +1 -1
  215. package/dist/src/paramRuntime/paramRuntime.js +10 -5
  216. package/dist/src/paramRuntime/types.d.ts +1 -0
  217. package/dist/src/paramRuntime/types.d.ts.map +1 -1
  218. package/dist/src/paramRuntime/types.js +1 -0
  219. package/dist/src/paramRuntime/viewParamRuntime.d.ts +24 -4
  220. package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
  221. package/dist/src/paramRuntime/viewParamRuntime.js +52 -6
  222. package/dist/src/scale/scale.d.ts.map +1 -1
  223. package/dist/src/scale/scale.js +14 -7
  224. package/dist/src/scales/axisResolution.d.ts.map +1 -1
  225. package/dist/src/scales/axisResolution.js +9 -5
  226. package/dist/src/scales/domainPlanner.d.ts +82 -16
  227. package/dist/src/scales/domainPlanner.d.ts.map +1 -1
  228. package/dist/src/scales/domainPlanner.js +364 -131
  229. package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
  230. package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
  231. package/dist/src/scales/indexLikeDomainUtils.js +67 -0
  232. package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
  233. package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
  234. package/dist/src/scales/resolutionMemberOrder.js +22 -0
  235. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
  236. package/dist/src/scales/scaleInstanceManager.js +7 -2
  237. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
  238. package/dist/src/scales/scaleInteractionController.js +43 -4
  239. package/dist/src/scales/scalePropsResolver.d.ts +5 -3
  240. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
  241. package/dist/src/scales/scalePropsResolver.js +108 -8
  242. package/dist/src/scales/scaleResolution.d.ts +35 -1
  243. package/dist/src/scales/scaleResolution.d.ts.map +1 -1
  244. package/dist/src/scales/scaleResolution.js +381 -66
  245. package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -1
  246. package/dist/src/scales/scaleResolutionTestUtils.js +6 -2
  247. package/dist/src/scales/scaleRules.d.ts.map +1 -1
  248. package/dist/src/scales/scaleRules.js +16 -2
  249. package/dist/src/scales/selectionDomainUtils.d.ts +30 -0
  250. package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -1
  251. package/dist/src/scales/selectionDomainUtils.js +116 -1
  252. package/dist/src/screenshotExport.d.ts +23 -0
  253. package/dist/src/screenshotExport.d.ts.map +1 -0
  254. package/dist/src/screenshotExport.js +44 -0
  255. package/dist/src/screenshotHarness.d.ts.map +1 -1
  256. package/dist/src/screenshotHarness.js +26 -25
  257. package/dist/src/spec/axis.d.ts +43 -32
  258. package/dist/src/spec/channel.d.ts +19 -13
  259. package/dist/src/spec/config.d.ts +264 -0
  260. package/dist/src/spec/data.d.ts +19 -0
  261. package/dist/src/spec/decoration.d.ts +51 -0
  262. package/dist/src/spec/exampleFiles.d.ts +12 -0
  263. package/dist/src/spec/exampleFiles.d.ts.map +1 -0
  264. package/dist/src/spec/exampleFiles.js +52 -0
  265. package/dist/src/spec/font.d.ts +1 -1
  266. package/dist/src/spec/mark.d.ts +97 -13
  267. package/dist/src/spec/parameter.d.ts +30 -10
  268. package/dist/src/spec/root.d.ts +14 -0
  269. package/dist/src/spec/scale.d.ts +31 -14
  270. package/dist/src/spec/title.d.ts +13 -2
  271. package/dist/src/spec/tooltip.d.ts +1 -1
  272. package/dist/src/spec/transform.d.ts +39 -4
  273. package/dist/src/spec/view.d.ts +67 -19
  274. package/dist/src/styles/genome-spy.css +55 -55
  275. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  276. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  277. package/dist/src/styles/genome-spy.css.js +23 -22
  278. package/dist/src/testSetup.d.ts +2 -0
  279. package/dist/src/testSetup.d.ts.map +1 -0
  280. package/dist/src/testSetup.js +5 -0
  281. package/dist/src/tooltip/dataTooltipHandler.js +8 -2
  282. package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
  283. package/dist/src/tooltip/tooltipContext.js +3 -2
  284. package/dist/src/types/embedApi.d.ts +7 -0
  285. package/dist/src/types/encoder.d.ts +17 -15
  286. package/dist/src/types/scaleResolutionApi.d.ts +20 -0
  287. package/dist/src/types/viewContext.d.ts +23 -1
  288. package/dist/src/utils/expression.d.ts +18 -10
  289. package/dist/src/utils/expression.d.ts.map +1 -1
  290. package/dist/src/utils/expression.js +354 -19
  291. package/dist/src/utils/field.d.ts.map +1 -1
  292. package/dist/src/utils/field.js +0 -1
  293. package/dist/src/utils/inertia.d.ts.map +1 -1
  294. package/dist/src/utils/inertia.js +0 -1
  295. package/dist/src/utils/inputBinding.d.ts +1 -1
  296. package/dist/src/utils/interaction.d.ts +109 -0
  297. package/dist/src/utils/interaction.d.ts.map +1 -0
  298. package/dist/src/utils/interaction.js +200 -0
  299. package/dist/src/utils/interactionEvent.d.ts +21 -42
  300. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  301. package/dist/src/utils/interactionEvent.js +43 -66
  302. package/dist/src/utils/kWayMerge.js +1 -1
  303. package/dist/src/utils/mergeObjects.d.ts.map +1 -1
  304. package/dist/src/utils/mergeObjects.js +0 -2
  305. package/dist/src/utils/radixSort.d.ts.map +1 -1
  306. package/dist/src/utils/radixSort.js +0 -2
  307. package/dist/src/utils/throttle.d.ts.map +1 -1
  308. package/dist/src/utils/throttle.js +0 -2
  309. package/dist/src/utils/ui/tooltip.d.ts +1 -0
  310. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  311. package/dist/src/utils/ui/tooltip.js +1 -0
  312. package/dist/src/utils/url.js +1 -1
  313. package/dist/src/view/axisGridView.d.ts +1 -1
  314. package/dist/src/view/axisGridView.d.ts.map +1 -1
  315. package/dist/src/view/axisGridView.js +2 -47
  316. package/dist/src/view/axisView.d.ts +2 -3
  317. package/dist/src/view/axisView.d.ts.map +1 -1
  318. package/dist/src/view/axisView.js +251 -106
  319. package/dist/src/view/concatView.d.ts +2 -1
  320. package/dist/src/view/concatView.d.ts.map +1 -1
  321. package/dist/src/view/concatView.js +4 -2
  322. package/dist/src/view/containerMutationHelper.d.ts +3 -0
  323. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  324. package/dist/src/view/containerMutationHelper.js +4 -1
  325. package/dist/src/view/facetView.d.ts +1 -1
  326. package/dist/src/view/facetView.js +3 -3
  327. package/dist/src/view/flowBuilder.d.ts +1 -1
  328. package/dist/src/view/flowBuilder.d.ts.map +1 -1
  329. package/dist/src/view/flowBuilder.js +13 -9
  330. package/dist/src/view/gridView/gridChild.d.ts +6 -0
  331. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  332. package/dist/src/view/gridView/gridChild.js +72 -43
  333. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  334. package/dist/src/view/gridView/gridView.js +255 -101
  335. package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
  336. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
  337. package/dist/src/view/gridView/keyboardZoomController.js +1 -1
  338. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  339. package/dist/src/view/gridView/scrollbar.js +4 -2
  340. package/dist/src/view/gridView/selectionRect.d.ts +4 -0
  341. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  342. package/dist/src/view/gridView/selectionRect.js +20 -1
  343. package/dist/src/view/gridView/separatorView.d.ts +1 -0
  344. package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
  345. package/dist/src/view/gridView/separatorView.js +9 -0
  346. package/dist/src/view/interactionRouting.d.ts +20 -0
  347. package/dist/src/view/interactionRouting.d.ts.map +1 -0
  348. package/dist/src/view/interactionRouting.js +53 -0
  349. package/dist/src/view/layerView.d.ts.map +1 -1
  350. package/dist/src/view/layerView.js +12 -9
  351. package/dist/src/view/layout/grid.js +1 -1
  352. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  353. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
  354. package/dist/src/view/resolutionPlanner.d.ts +9 -0
  355. package/dist/src/view/resolutionPlanner.d.ts.map +1 -0
  356. package/dist/src/view/resolutionPlanner.js +302 -0
  357. package/dist/src/view/testUtils.d.ts +17 -3
  358. package/dist/src/view/testUtils.d.ts.map +1 -1
  359. package/dist/src/view/testUtils.js +62 -69
  360. package/dist/src/view/title.d.ts +8 -1
  361. package/dist/src/view/title.d.ts.map +1 -1
  362. package/dist/src/view/title.js +66 -76
  363. package/dist/src/view/unitView.d.ts +1 -1
  364. package/dist/src/view/unitView.d.ts.map +1 -1
  365. package/dist/src/view/unitView.js +72 -169
  366. package/dist/src/view/view.d.ts +76 -30
  367. package/dist/src/view/view.d.ts.map +1 -1
  368. package/dist/src/view/view.js +138 -48
  369. package/dist/src/view/viewFactory.d.ts +11 -3
  370. package/dist/src/view/viewFactory.d.ts.map +1 -1
  371. package/dist/src/view/viewFactory.js +37 -11
  372. package/dist/src/view/viewUtils.d.ts.map +1 -1
  373. package/dist/src/view/viewUtils.js +41 -5
  374. package/dist/src/view/zoom.d.ts +2 -2
  375. package/dist/src/view/zoom.d.ts.map +1 -1
  376. package/dist/src/view/zoom.js +21 -23
  377. package/package.json +18 -10
  378. package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
  379. package/dist/bundle/browser-0iNU5Wit.js +0 -138
  380. package/dist/bundle/index-BYsZN7b0.js +0 -1597
  381. package/dist/bundle/index-C3kClAEN.js +0 -1771
  382. package/dist/bundle/index-C7wOh6y1.js +0 -657
  383. package/dist/bundle/index-CRaQAuki.js +0 -326
  384. package/dist/bundle/index-D9v1PCj9.js +0 -507
  385. package/dist/bundle/index-GDOuv_D5.js +0 -266
  386. package/dist/bundle/index-Gt44EOIH.js +0 -628
  387. package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
  388. package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
  389. package/dist/bundle/unzip-Bac01w6X.js +0 -1492
  390. package/dist/src/config/scaleDefaults.d.ts +0 -8
  391. package/dist/src/config/scaleDefaults.d.ts.map +0 -1
  392. package/dist/src/config/scaleDefaults.js +0 -45
@@ -0,0 +1,155 @@
1
+ //#region ../../node_modules/@jbrowse/quick-lru/esm/index.js
2
+ var e = function(e, t, n, r, i) {
3
+ if (r === "m") throw TypeError("Private method is not writable");
4
+ if (r === "a" && !i) throw TypeError("Private accessor was defined without a setter");
5
+ if (typeof t == "function" ? e !== t || !i : !t.has(e)) throw TypeError("Cannot write private member to an object whose class did not declare it");
6
+ return r === "a" ? i.call(e, n) : i ? i.value = n : t.set(e, n), n;
7
+ }, t = function(e, t, n, r) {
8
+ if (n === "a" && !r) throw TypeError("Private accessor was defined without a getter");
9
+ if (typeof t == "function" ? e !== t || !r : !t.has(e)) throw TypeError("Cannot read private member from an object whose class did not declare it");
10
+ return n === "m" ? r : n === "a" ? r.call(e) : r ? r.value : t.get(e);
11
+ }, n, r, i, a, o, s, c, l, u, d, f, p, m, h, g, _ = class extends Map {
12
+ constructor(t = {}) {
13
+ if (super(), n.add(this), r.set(this, 0), i.set(this, /* @__PURE__ */ new Map()), a.set(this, /* @__PURE__ */ new Map()), o.set(this, void 0), s.set(this, void 0), c.set(this, void 0), !(t.maxSize && t.maxSize > 0)) throw TypeError("`maxSize` must be a number greater than 0");
14
+ if (typeof t.maxAge == "number" && t.maxAge === 0) throw TypeError("`maxAge` must be a number greater than 0");
15
+ e(this, o, t.maxSize, "f"), e(this, s, t.maxAge || Infinity, "f"), e(this, c, t.onEviction, "f");
16
+ }
17
+ get __oldCache() {
18
+ return t(this, a, "f");
19
+ }
20
+ get(e) {
21
+ if (t(this, i, "f").has(e)) {
22
+ let r = t(this, i, "f").get(e);
23
+ return t(this, n, "m", f).call(this, e, r);
24
+ }
25
+ if (t(this, a, "f").has(e)) {
26
+ let r = t(this, a, "f").get(e);
27
+ if (!t(this, n, "m", u).call(this, e, r)) return t(this, n, "m", h).call(this, e, r), r.value;
28
+ }
29
+ }
30
+ set(e, r, { maxAge: a = t(this, s, "f") } = {}) {
31
+ let o = typeof a == "number" && a !== Infinity ? Date.now() + a : void 0;
32
+ return t(this, i, "f").has(e) ? t(this, i, "f").set(e, {
33
+ value: r,
34
+ expiry: o
35
+ }) : t(this, n, "m", m).call(this, e, {
36
+ value: r,
37
+ expiry: o
38
+ }), this;
39
+ }
40
+ has(e) {
41
+ return t(this, i, "f").has(e) ? !t(this, n, "m", u).call(this, e, t(this, i, "f").get(e)) : t(this, a, "f").has(e) ? !t(this, n, "m", u).call(this, e, t(this, a, "f").get(e)) : !1;
42
+ }
43
+ peek(e) {
44
+ if (t(this, i, "f").has(e)) return t(this, n, "m", p).call(this, e, t(this, i, "f"));
45
+ if (t(this, a, "f").has(e)) return t(this, n, "m", p).call(this, e, t(this, a, "f"));
46
+ }
47
+ expiresIn(e) {
48
+ let n = t(this, i, "f").get(e) ?? t(this, a, "f").get(e);
49
+ if (n) return n.expiry ? n.expiry - Date.now() : Infinity;
50
+ }
51
+ delete(n) {
52
+ var o;
53
+ let s = t(this, i, "f").delete(n);
54
+ return s && e(this, r, (o = t(this, r, "f"), o--, o), "f"), t(this, a, "f").delete(n) || s;
55
+ }
56
+ clear() {
57
+ t(this, i, "f").clear(), t(this, a, "f").clear(), e(this, r, 0, "f");
58
+ }
59
+ resize(s) {
60
+ if (!(s && s > 0)) throw TypeError("`maxSize` must be a number greater than 0");
61
+ let c = [...t(this, n, "m", g).call(this)], u = c.length - s;
62
+ u < 0 ? (e(this, i, new Map(c), "f"), e(this, a, /* @__PURE__ */ new Map(), "f"), e(this, r, c.length, "f")) : (u > 0 && t(this, n, "m", l).call(this, c.slice(0, u)), e(this, a, new Map(c.slice(u)), "f"), e(this, i, /* @__PURE__ */ new Map(), "f"), e(this, r, 0, "f")), e(this, o, s, "f");
63
+ }
64
+ evict(o = 1) {
65
+ let s = o;
66
+ if (!s || s <= 0) return;
67
+ let c = [...t(this, n, "m", g).call(this)], u = Math.trunc(Math.min(s, Math.max(c.length - 1, 0)));
68
+ u <= 0 || (t(this, n, "m", l).call(this, c.slice(0, u)), e(this, a, new Map(c.slice(u)), "f"), e(this, i, /* @__PURE__ */ new Map(), "f"), e(this, r, 0, "f"));
69
+ }
70
+ *keys() {
71
+ for (let [e] of this) yield e;
72
+ }
73
+ *values() {
74
+ for (let [, e] of this) yield e;
75
+ }
76
+ *[(r = /* @__PURE__ */ new WeakMap(), i = /* @__PURE__ */ new WeakMap(), a = /* @__PURE__ */ new WeakMap(), o = /* @__PURE__ */ new WeakMap(), s = /* @__PURE__ */ new WeakMap(), c = /* @__PURE__ */ new WeakMap(), n = /* @__PURE__ */ new WeakSet(), l = function(e) {
77
+ if (typeof t(this, c, "f") == "function") for (let [n, r] of e) t(this, c, "f").call(this, n, r.value);
78
+ }, u = function(e, n) {
79
+ return typeof n.expiry == "number" && n.expiry <= Date.now() ? (typeof t(this, c, "f") == "function" && t(this, c, "f").call(this, e, n.value), this.delete(e)) : !1;
80
+ }, d = function(e, r) {
81
+ if (!t(this, n, "m", u).call(this, e, r)) return r.value;
82
+ }, f = function(e, r) {
83
+ return r.expiry ? t(this, n, "m", d).call(this, e, r) : r.value;
84
+ }, p = function(e, r) {
85
+ let i = r.get(e);
86
+ return t(this, n, "m", f).call(this, e, i);
87
+ }, m = function(s, c) {
88
+ var u;
89
+ t(this, i, "f").set(s, c), e(this, r, (u = t(this, r, "f"), u++, u), "f"), t(this, r, "f") >= t(this, o, "f") && (e(this, r, 0, "f"), t(this, n, "m", l).call(this, t(this, a, "f")), e(this, a, t(this, i, "f"), "f"), e(this, i, /* @__PURE__ */ new Map(), "f"));
90
+ }, h = function(e, r) {
91
+ t(this, a, "f").delete(e), t(this, n, "m", m).call(this, e, r);
92
+ }, g = function* () {
93
+ for (let e of t(this, a, "f")) {
94
+ let [r, a] = e;
95
+ t(this, i, "f").has(r) || t(this, n, "m", u).call(this, r, a) || (yield e);
96
+ }
97
+ for (let e of t(this, i, "f")) {
98
+ let [r, i] = e;
99
+ t(this, n, "m", u).call(this, r, i) || (yield e);
100
+ }
101
+ }, Symbol.iterator)]() {
102
+ for (let e of t(this, i, "f")) {
103
+ let [r, i] = e;
104
+ t(this, n, "m", u).call(this, r, i) || (yield [r, i.value]);
105
+ }
106
+ for (let e of t(this, a, "f")) {
107
+ let [r, a] = e;
108
+ t(this, i, "f").has(r) || t(this, n, "m", u).call(this, r, a) || (yield [r, a.value]);
109
+ }
110
+ }
111
+ *entriesDescending() {
112
+ let e = [...t(this, i, "f")];
113
+ for (let r = e.length - 1; r >= 0; --r) {
114
+ let [i, a] = e[r];
115
+ t(this, n, "m", u).call(this, i, a) || (yield [i, a.value]);
116
+ }
117
+ e = [...t(this, a, "f")];
118
+ for (let r = e.length - 1; r >= 0; --r) {
119
+ let [a, o] = e[r];
120
+ t(this, i, "f").has(a) || t(this, n, "m", u).call(this, a, o) || (yield [a, o.value]);
121
+ }
122
+ }
123
+ *entriesAscending() {
124
+ for (let [e, r] of t(this, n, "m", g).call(this)) yield [e, r.value];
125
+ }
126
+ get size() {
127
+ if (!t(this, r, "f")) return t(this, a, "f").size;
128
+ let e = 0;
129
+ for (let n of t(this, a, "f").keys()) t(this, i, "f").has(n) || e++;
130
+ return Math.min(t(this, r, "f") + e, t(this, o, "f"));
131
+ }
132
+ get maxSize() {
133
+ return t(this, o, "f");
134
+ }
135
+ get maxAge() {
136
+ return t(this, s, "f");
137
+ }
138
+ entries() {
139
+ return this.entriesAscending();
140
+ }
141
+ forEach(e, t = this) {
142
+ for (let [n, r] of this.entriesAscending()) e.call(t, r, n, this);
143
+ }
144
+ get [Symbol.toStringTag]() {
145
+ return "QuickLRU";
146
+ }
147
+ toString() {
148
+ return `QuickLRU(${this.size}/${this.maxSize})`;
149
+ }
150
+ [Symbol.for("nodejs.util.inspect.custom")]() {
151
+ return this.toString();
152
+ }
153
+ };
154
+ //#endregion
155
+ export { _ as t };
@@ -0,0 +1,121 @@
1
+ import { t as e } from "./esm-BDFRLEuD.js";
2
+ import { t } from "./browser-BTgw5ieH.js";
3
+ //#region node_modules/@gmod/indexedfasta/esm/indexedFasta.js
4
+ function n(e, t, n, r) {
5
+ return e + t * Math.floor(r / n) + r % n;
6
+ }
7
+ async function r(e, t = {}) {
8
+ let n = new TextDecoder("utf8").decode(await e.readFile(t)), r = [], i = [], a = [], o = [], s = [], c = {}, l = 0, u = n.length, d = 0;
9
+ for (; l < u;) {
10
+ let e = n.indexOf("\n", l);
11
+ e === -1 && (e = u);
12
+ let t = n.slice(l, e);
13
+ if (t.endsWith("\r") && (t = t.slice(0, -1)), t = t.trim(), l = e + 1, t.length === 0) continue;
14
+ let f = t.indexOf(" "), p = t.indexOf(" ", f + 1), m = t.indexOf(" ", p + 1), h = t.indexOf(" ", m + 1), g = t.slice(0, f);
15
+ if (g.startsWith(">")) throw Error("found > in sequence name, might have supplied FASTA file for the FASTA index");
16
+ r.push(g), a.push(+t.slice(f + 1, p)), i.push(+t.slice(p + 1, m)), o.push(+t.slice(m + 1, h)), s.push(+t.slice(h + 1)), c[g] = d, d++;
17
+ }
18
+ return {
19
+ names: r,
20
+ nameToIndex: c,
21
+ offsets: i,
22
+ lengths: a,
23
+ lineLengths: o,
24
+ lineBytes: s
25
+ };
26
+ }
27
+ var i = class {
28
+ constructor({ fasta: e, fai: n, path: r, faiPath: i }) {
29
+ if (e) this.fasta = e;
30
+ else if (r) this.fasta = new t(r);
31
+ else throw Error("Need to pass filehandle for fasta or path to localfile");
32
+ if (n) this.fai = n;
33
+ else if (i) this.fai = new t(i);
34
+ else if (r) this.fai = new t(`${r}.fai`);
35
+ else throw Error("Need to pass filehandle for or path to localfile");
36
+ }
37
+ async _getIndexes(e) {
38
+ return this.indexes ||= r(this.fai, e).catch((e) => {
39
+ throw this.indexes = void 0, e;
40
+ }), this.indexes;
41
+ }
42
+ async getSequenceNames(e) {
43
+ return (await this._getIndexes(e)).names;
44
+ }
45
+ async getSequenceSizes(e) {
46
+ let t = await this._getIndexes(e);
47
+ if (!t.sizesCache) {
48
+ let e = {};
49
+ for (let n = 0; n < t.names.length; n++) e[t.names[n]] = t.lengths[n];
50
+ t.sizesCache = e;
51
+ }
52
+ return t.sizesCache;
53
+ }
54
+ async getSequenceSize(e, t) {
55
+ let n = await this._getIndexes(t), r = n.nameToIndex[e];
56
+ return r === void 0 ? void 0 : n.lengths[r];
57
+ }
58
+ async hasReferenceSequence(e, t) {
59
+ return (await this._getIndexes(t)).nameToIndex[e] !== void 0;
60
+ }
61
+ async getResiduesByName(e, t, n, r) {
62
+ let i = await this._getIndexes(r), a = i.nameToIndex[e];
63
+ if (a !== void 0) return this._fetchFromIndex(i.offsets[a], i.lineBytes[a], i.lineLengths[a], i.lengths[a], t, n, r);
64
+ }
65
+ async getSequence(e, t, n, r) {
66
+ return this.getResiduesByName(e, t, n, r);
67
+ }
68
+ async _fetchFromIndex(e, t, r, i, a = 0, o, s) {
69
+ let c = o;
70
+ if (a < 0) throw TypeError("regionStart cannot be less than 0");
71
+ if ((c === void 0 || c > i) && (c = i), a >= c) return "";
72
+ let l = n(e, t, r, a), u = n(e, t, r, c) - l, d = new TextDecoder("utf8").decode(await this.fasta.read(u, l, s)).replace(/\s+/g, "");
73
+ if (/[^\x20-\x7e]/.test(d.slice(0, 1e3))) throw Error("Non-ASCII characters detected in sequence. The file may be gzip compressed. Use BgzipIndexedFasta for bgzip files, or decompress the file.");
74
+ return d;
75
+ }
76
+ }, a = class extends i {
77
+ constructor({ fasta: n, path: r, fai: i, faiPath: a, gzi: o, gziPath: s }) {
78
+ super({
79
+ fasta: n,
80
+ path: r,
81
+ fai: i,
82
+ faiPath: a
83
+ }), n && o ? this.fasta = new e({
84
+ filehandle: n,
85
+ gziFilehandle: o
86
+ }) : r && s && (this.fasta = new e({
87
+ filehandle: new t(r),
88
+ gziFilehandle: new t(s)
89
+ }));
90
+ }
91
+ };
92
+ //#endregion
93
+ //#region node_modules/@gmod/indexedfasta/esm/index.js
94
+ function o(e) {
95
+ return e.split(">").filter((e) => /\S/.test(e)).map((e) => {
96
+ let [t, ...n] = e.split("\n"), [r, ...i] = t.split(" "), a = n.join("").replace(/\s/g, "");
97
+ return {
98
+ id: r,
99
+ description: i.join(" "),
100
+ sequence: a
101
+ };
102
+ });
103
+ }
104
+ var s = class {
105
+ constructor({ fasta: e, path: n }) {
106
+ if (e) this.fasta = e;
107
+ else if (n) this.fasta = new t(n);
108
+ else throw Error("Need to pass fasta or path");
109
+ this.data = this.fasta.readFile().then((e) => o(new TextDecoder("utf8").decode(e)));
110
+ }
111
+ async fetch(e, t, n) {
112
+ let r = (await this.data).find((t) => t.id === e), i = n - t;
113
+ if (!r) throw Error(`no sequence with id ${e} exists`);
114
+ return r.sequence.slice(t, i);
115
+ }
116
+ async getSequenceNames() {
117
+ return (await this.data).map((e) => e.id);
118
+ }
119
+ };
120
+ //#endregion
121
+ export { a as BgzipIndexedFasta, s as FetchableSmallFasta, i as IndexedFasta, o as parseSmallFasta };
@@ -0,0 +1,298 @@
1
+ //#region ../../node_modules/gff-nostream/esm/util.js
2
+ var e = {};
3
+ for (let t = 0; t < 256; t++) {
4
+ let n = t.toString(16).toUpperCase().padStart(2, "0");
5
+ e[n] = String.fromCharCode(t), e[n.toLowerCase()] = String.fromCharCode(t);
6
+ }
7
+ function t(t) {
8
+ let n = t.indexOf("%");
9
+ if (n === -1) return t;
10
+ let r = "", i = 0, a = n;
11
+ for (; a < t.length;) if (t[a] === "%" && a + 2 < t.length) {
12
+ r += t.slice(i, a);
13
+ let n = e[t.slice(a + 1, a + 3)];
14
+ n === void 0 ? r += t.slice(a, a + 3) : r += n, a += 3, i = a;
15
+ } else a++;
16
+ return r + t.slice(i);
17
+ }
18
+ function n(e) {
19
+ if (e.length === 0 || e === ".") return {};
20
+ let n = {}, r = e.length;
21
+ e[r - 1] === "\n" && (r = e[r - 2] === "\r" ? r - 2 : r - 1, e = e.slice(0, r));
22
+ let i = 0;
23
+ for (; i < r;) {
24
+ let a = e.indexOf(";", i);
25
+ if (a === -1 && (a = r), a > i) {
26
+ let r = e.indexOf("=", i);
27
+ if (r !== -1 && r < a && r + 1 < a) {
28
+ let o = e.slice(i, r), s = n[o];
29
+ s || (s = [], n[o] = s);
30
+ let c = r + 1;
31
+ for (; c < a;) {
32
+ let n = e.indexOf(",", c);
33
+ if ((n === -1 || n > a) && (n = a), n > c) {
34
+ let r = e.slice(c, n);
35
+ s.push(t(r));
36
+ }
37
+ c = n + 1;
38
+ }
39
+ }
40
+ }
41
+ i = a + 1;
42
+ }
43
+ return n;
44
+ }
45
+ function r(e) {
46
+ if (e.length === 0 || e === ".") return {};
47
+ let t = {}, n = e.length;
48
+ e[n - 1] === "\n" && (n = e[n - 2] === "\r" ? n - 2 : n - 1, e = e.slice(0, n));
49
+ let r = 0;
50
+ for (; r < n;) {
51
+ let i = e.indexOf(";", r);
52
+ if (i === -1 && (i = n), i > r) {
53
+ let n = e.indexOf("=", r);
54
+ if (n !== -1 && n < i && n + 1 < i) {
55
+ let a = e.slice(r, n), o = t[a];
56
+ o || (o = [], t[a] = o);
57
+ let s = n + 1;
58
+ for (; s < i;) {
59
+ let t = e.indexOf(",", s);
60
+ (t === -1 || t > i) && (t = i), t > s && o.push(e.slice(s, t)), s = t + 1;
61
+ }
62
+ }
63
+ }
64
+ r = i + 1;
65
+ }
66
+ return t;
67
+ }
68
+ function i(e) {
69
+ return e.length === 0 || e === "." ? null : t(e);
70
+ }
71
+ function a(e) {
72
+ return e.length === 0 || e === "." ? null : e;
73
+ }
74
+ function o(e) {
75
+ let t = e.split(" "), r = t[0], o = t[1], s = t[2], c = t[3], l = t[4], u = t[5], d = t[6], f = t[7], p = t[8];
76
+ return {
77
+ seq_id: i(r),
78
+ source: i(o),
79
+ type: i(s),
80
+ start: c.length === 0 || c === "." ? null : +c,
81
+ end: l.length === 0 || l === "." ? null : +l,
82
+ score: u.length === 0 || u === "." ? null : +u,
83
+ strand: a(d),
84
+ phase: a(f),
85
+ attributes: p.length === 0 || p === "." ? null : n(p)
86
+ };
87
+ }
88
+ function s(e) {
89
+ let t = e.split(" "), n = t[0], i = t[1], o = t[2], s = t[3], c = t[4], l = t[5], u = t[6], d = t[7], f = t[8];
90
+ return {
91
+ seq_id: a(n),
92
+ source: a(i),
93
+ type: a(o),
94
+ start: s.length === 0 || s === "." ? null : +s,
95
+ end: c.length === 0 || c === "." ? null : +c,
96
+ score: l.length === 0 || l === "." ? null : +l,
97
+ strand: a(u),
98
+ phase: a(d),
99
+ attributes: f.length === 0 || f === "." ? null : r(f)
100
+ };
101
+ }
102
+ var c = new Set([
103
+ "start",
104
+ "end",
105
+ "seq_id",
106
+ "score",
107
+ "type",
108
+ "source",
109
+ "phase",
110
+ "strand"
111
+ ]);
112
+ function l(e) {
113
+ if (e === "+") return 1;
114
+ if (e === "-") return -1;
115
+ if (e === ".") return 0;
116
+ }
117
+ function u(e, n) {
118
+ if (e.length === 0 || e === ".") return;
119
+ let r = e.length;
120
+ e[r - 1] === "\n" && (r = e[r - 2] === "\r" ? r - 2 : r - 1, e = e.slice(0, r));
121
+ let i = 0;
122
+ for (; i < r;) {
123
+ let a = e.indexOf(";", i);
124
+ if (a === -1 && (a = r), a > i) {
125
+ let r = e.indexOf("=", i);
126
+ if (r !== -1 && r < a && r + 1 < a) {
127
+ let o = e.slice(i, r);
128
+ if (o === "_lineHash") {
129
+ i = a + 1;
130
+ continue;
131
+ }
132
+ let s = o.toLowerCase();
133
+ c.has(s) && (s += "2");
134
+ let l = [], u = r + 1;
135
+ for (; u < a;) {
136
+ let n = e.indexOf(",", u);
137
+ if ((n === -1 || n > a) && (n = a), n > u) {
138
+ let r = e.slice(u, n);
139
+ l.push(t(r));
140
+ }
141
+ u = n + 1;
142
+ }
143
+ n[s] = l.length === 1 ? l[0] : l;
144
+ }
145
+ }
146
+ i = a + 1;
147
+ }
148
+ }
149
+ function d(e, t) {
150
+ if (e.length === 0 || e === ".") return;
151
+ let n = e.length;
152
+ e[n - 1] === "\n" && (n = e[n - 2] === "\r" ? n - 2 : n - 1, e = e.slice(0, n));
153
+ let r = 0;
154
+ for (; r < n;) {
155
+ let i = e.indexOf(";", r);
156
+ if (i === -1 && (i = n), i > r) {
157
+ let n = e.indexOf("=", r);
158
+ if (n !== -1 && n < i && n + 1 < i) {
159
+ let a = e.slice(r, n);
160
+ if (a === "_lineHash") {
161
+ r = i + 1;
162
+ continue;
163
+ }
164
+ let o = a.toLowerCase();
165
+ c.has(o) && (o += "2");
166
+ let s = [], l = n + 1;
167
+ for (; l < i;) {
168
+ let t = e.indexOf(",", l);
169
+ (t === -1 || t > i) && (t = i), t > l && s.push(e.slice(l, t)), l = t + 1;
170
+ }
171
+ t[o] = s.length === 1 ? s[0] : s;
172
+ }
173
+ }
174
+ r = i + 1;
175
+ }
176
+ }
177
+ function f(e) {
178
+ let n = e.split(" "), r = n[0], i = n[1], a = n[2], o = n[3], s = n[4], c = n[5], d = n[6], f = n[7], p = n[8], m = {
179
+ refName: r.length === 0 || r === "." ? "" : t(r),
180
+ source: i.length === 0 || i === "." ? null : t(i),
181
+ type: a.length === 0 || a === "." ? null : t(a),
182
+ start: o.length === 0 || o === "." ? 0 : o - 1,
183
+ end: s.length === 0 || s === "." ? 0 : +s,
184
+ score: c.length === 0 || c === "." ? void 0 : +c,
185
+ strand: l(d),
186
+ phase: f.length === 0 || f === "." ? void 0 : +f,
187
+ subfeatures: []
188
+ };
189
+ return u(p, m), m;
190
+ }
191
+ function p(e) {
192
+ let t = e.split(" "), n = t[0], r = t[1], i = t[2], a = t[3], o = t[4], s = t[5], c = t[6], u = t[7], f = t[8], p = {
193
+ refName: n.length === 0 || n === "." ? "" : n,
194
+ source: r.length === 0 || r === "." ? null : r,
195
+ type: i.length === 0 || i === "." ? null : i,
196
+ start: a.length === 0 || a === "." ? 0 : a - 1,
197
+ end: o.length === 0 || o === "." ? 0 : +o,
198
+ score: s.length === 0 || s === "." ? void 0 : +s,
199
+ strand: l(c),
200
+ phase: u.length === 0 || u === "." ? void 0 : +u,
201
+ subfeatures: []
202
+ };
203
+ return d(f, p), p;
204
+ }
205
+ //#endregion
206
+ //#region ../../node_modules/gff-nostream/esm/api.js
207
+ function m(e) {
208
+ return _(g(e));
209
+ }
210
+ function h(e) {
211
+ return v(g(e));
212
+ }
213
+ function g(e) {
214
+ let t = e.split(/\r?\n/), n = [];
215
+ for (let e = 0; e < t.length; e++) {
216
+ let r = t[e];
217
+ if (r.length === 0 || r[0] === "#") {
218
+ if (r.startsWith("##FASTA")) break;
219
+ continue;
220
+ }
221
+ if (r[0] === ">") break;
222
+ n.push({
223
+ line: r,
224
+ start: 0,
225
+ end: 0,
226
+ hasEscapes: r.includes("%")
227
+ });
228
+ }
229
+ return n;
230
+ }
231
+ function _(e) {
232
+ let t = [], n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
233
+ for (let i = 0; i < e.length; i++) {
234
+ let a = e[i], c = a.hasEscapes ? o(a.line) : s(a.line);
235
+ c.child_features = [], c.derived_features = [], a.lineHash !== void 0 && (c.attributes ||= {}, c.attributes._lineHash = [String(a.lineHash)]);
236
+ let l = c.attributes, u = l?.ID, d = l?.Parent;
237
+ if (!u && !d) {
238
+ t.push([c]);
239
+ continue;
240
+ }
241
+ let f;
242
+ if (u) {
243
+ let e = u[0], i = n.get(e);
244
+ if (i) i.push(c), f = i;
245
+ else {
246
+ f = [c], d || t.push(f), n.set(e, f);
247
+ let i = r.get(e);
248
+ if (i) {
249
+ for (let e = 0; e < i.length; e++) c.child_features.push(i[e]);
250
+ r.delete(e);
251
+ }
252
+ }
253
+ } else f = [c];
254
+ if (d) for (let e = 0; e < d.length; e++) {
255
+ let t = d[e], i = n.get(t);
256
+ if (i) for (let e = 0; e < i.length; e++) i[e].child_features.push(f);
257
+ else {
258
+ let e = r.get(t);
259
+ e || (e = [], r.set(t, e)), e.push(f);
260
+ }
261
+ }
262
+ }
263
+ return t;
264
+ }
265
+ function v(e) {
266
+ let t = [], n = /* @__PURE__ */ new Map(), r = /* @__PURE__ */ new Map();
267
+ for (let i = 0; i < e.length; i++) {
268
+ let a = e[i], o = a.hasEscapes ? f(a.line) : p(a.line);
269
+ a.lineHash !== void 0 && (o._lineHash = String(a.lineHash));
270
+ let s = o.id, c = o.parent;
271
+ if (!s && !c) {
272
+ t.push(o);
273
+ continue;
274
+ }
275
+ if (s && !n.get(s)) {
276
+ c || t.push(o), n.set(s, o);
277
+ let e = r.get(s);
278
+ if (e) {
279
+ for (let t = 0; t < e.length; t++) o.subfeatures.push(e[t]);
280
+ r.delete(s);
281
+ }
282
+ }
283
+ if (c) {
284
+ let e = Array.isArray(c) ? c : [c];
285
+ for (let t = 0; t < e.length; t++) {
286
+ let i = e[t], a = n.get(i);
287
+ if (a) a.subfeatures.push(o);
288
+ else {
289
+ let e = r.get(i);
290
+ e || (e = [], r.set(i, e)), e.push(o);
291
+ }
292
+ }
293
+ }
294
+ }
295
+ return t;
296
+ }
297
+ //#endregion
298
+ export { _ as parseRecords, v as parseRecordsJBrowse, m as parseStringSync, h as parseStringSyncJBrowse };