@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
@@ -1,5 +1,6 @@
1
1
  import { PrimaryPositionalChannel, Scalar } from "./channel.js";
2
2
  import { ShadowProps } from "./mark.js";
3
+ import { ZIndexProps } from "./decoration.js";
3
4
 
4
5
  export interface ExprRef {
5
6
  /**
@@ -180,22 +181,17 @@ export type SelectionInitInterval =
180
181
  export type InteractionEventType =
181
182
  | "click"
182
183
  | "dblclick"
184
+ | "mouseenter"
185
+ | "mouseleave"
183
186
  | "mouseover"
184
187
  | "mousedown"
185
188
  | "wheel";
186
189
 
187
- // TODO: merge with InteractionEventType
188
- export type DomEventType =
189
- | "click"
190
- | "dblclick"
191
- | "mouseover"
192
- | "pointerover"
193
- | "mousedown"
194
- | "wheel";
190
+ export type DomEventType = InteractionEventType | "pointerover";
195
191
 
196
192
  export interface EventConfig {
197
193
  /**
198
- * The type of event to listen to. For example, `"click"` or `"mouseover"`.
194
+ * The type of event to listen to. For example, `"click"` or `"mouseenter"`.
199
195
  */
200
196
  type: DomEventType;
201
197
 
@@ -286,7 +282,14 @@ export interface IntervalSelectionConfig extends BaseSelectionConfig<"interval">
286
282
  zoom?: DomEventType | EventConfig | string | boolean;
287
283
  }
288
284
 
289
- export interface BrushConfig extends ShadowProps {
285
+ export interface BrushConfig extends ShadowProps, ZIndexProps {
286
+ /**
287
+ * Mouse cursor shown while the pointer is over the interval mark.
288
+ *
289
+ * __Default value:__ `{ expr: "intervalDragActive ? 'grabbing' : 'move'" }`
290
+ */
291
+ cursor?: string | ExprRef;
292
+
290
293
  /**
291
294
  * The fill color of the interval mark.
292
295
  *
@@ -323,6 +326,23 @@ export interface BrushConfig extends ShadowProps {
323
326
  */
324
327
  strokeWidth?: number;
325
328
 
329
+ /**
330
+ * Whether the brush rectangle should be clipped to the viewport.
331
+ *
332
+ * __Default value:__ `true`
333
+ */
334
+ clip?: boolean | "never";
335
+
336
+ /**
337
+ * Z-order of the interval mark relative to the view content.
338
+ *
339
+ * Values greater than `0` render after the view marks. Values less than or
340
+ * equal to `0` render before the marks.
341
+ *
342
+ * __Default value:__ `1`
343
+ */
344
+ zindex?: number;
345
+
326
346
  /**
327
347
  * Where to display the measurement text (e.g., number of base pairs) for the interval selection.
328
348
  *
@@ -1,4 +1,5 @@
1
1
  import { GenomeConfig, GenomeDefinition } from "./genome.js";
2
+ import { BuiltInThemeName, GenomeSpyConfig } from "./config.js";
2
3
  import { ViewSpec } from "./view.js";
3
4
 
4
5
  export type NamedGenomeConfig = GenomeDefinition | Record<string, never>;
@@ -36,6 +37,19 @@ export interface RootConfig {
36
37
  * https://vega.github.io/vega-lite/docs/data.html#datasets
37
38
  */
38
39
  datasets?: Record<string, any[]>;
40
+
41
+ /**
42
+ * Global configuration defaults and theme tokens.
43
+ *
44
+ * The configuration is inherited by descendant views and can be overridden
45
+ * by view-local `config` objects.
46
+ */
47
+ config?: GenomeSpyConfig;
48
+
49
+ /**
50
+ * Selects built-in theme preset(s) for the whole visualization.
51
+ */
52
+ theme?: BuiltInThemeName | BuiltInThemeName[];
39
53
  }
40
54
 
41
55
  export type RootSpec = ViewSpec & RootConfig;
@@ -68,7 +68,7 @@ export interface Scale {
68
68
  *
69
69
  * For _ordinal_ and _nominal_ fields, `domain` can be an array that lists valid input values.
70
70
  */
71
- domain?: ScalarDomain | ComplexDomain | SelectionDomainRef;
71
+ domain?: ScalarDomain | ComplexDomain | SelectionDomainRef | ExprRef;
72
72
 
73
73
  /**
74
74
  * Inserts a single mid-point value into a two-element domain. The mid-point value must lie between the domain minimum and maximum values. This property can be useful for setting a midpoint for [diverging color scales](https://vega.github.io/vega-lite/docs/scale.html#piecewise). The domainMid property is only intended for use with scales supporting continuous, piecewise domains.
@@ -92,6 +92,18 @@ export interface Scale {
92
92
  */
93
93
  reverse?: boolean;
94
94
 
95
+ /**
96
+ * Controls whether domain updates are applied immediately or with a smooth
97
+ * transition.
98
+ *
99
+ * Set this to `false` to apply domain updates immediately. The default is
100
+ * `true`, except for domains defined by an `ExprRef`, which default to
101
+ * `false` unless overridden.
102
+ *
103
+ * __Default value:__ `true`, except `false` for ExprRef-driven domains.
104
+ */
105
+ domainTransition?: boolean | Record<string, unknown>;
106
+
95
107
  /**
96
108
  * The range of the scale. One of:
97
109
  *
@@ -234,6 +246,13 @@ export interface Scale {
234
246
  * If `true` and the scale is used on a positional channel, it can bee zoomed and translated interactively.
235
247
  */
236
248
  zoom?: boolean | ZoomParams;
249
+
250
+ /**
251
+ * The numbering offset used when formatting tick labels on index and locus scales.
252
+ *
253
+ * __Default value:__ `0`
254
+ */
255
+ numberingOffset?: number;
237
256
  }
238
257
 
239
258
  export type InlineLocusAssembly = GenomeDefinition;
@@ -245,25 +264,23 @@ export interface SelectionDomainRef {
245
264
  param: string;
246
265
 
247
266
  /**
248
- * Selection interval channel to use.
267
+ * Initial configured domain for the linked scale when the linked interval
268
+ * selection is empty.
249
269
  *
250
- * If omitted, GenomeSpy infers the channel from the scale channel when
251
- * possible (e.g., `x` -> `x`, `x2` -> `x`, `y` -> `y`, `y2` -> `y`).
270
+ * Only supported when the linked scale is zoomable.
271
+ *
272
+ * Clearing the linked interval selection resets the domain to the normal
273
+ * default/data-derived domain instead of restoring `initial`.
252
274
  */
253
- encoding?: "x" | "y";
275
+ initial?: ScalarDomain | ComplexDomain;
254
276
 
255
277
  /**
256
- * Domain synchronization mode.
257
- *
258
- * - `"oneWay"`: selection drives the domain.
259
- * - `"twoWay"`: selection drives the domain and zoom/pan updates selection.
260
- *
261
- * __Default value:__ implicit auto mode:
278
+ * Selection interval channel to use.
262
279
  *
263
- * - `"twoWay"` when the linked scale is zoomable
264
- * - `"oneWay"` otherwise
280
+ * If omitted, GenomeSpy infers the channel from the scale channel when
281
+ * possible (e.g., `x` -> `x`, `x2` -> `x`, `y` -> `y`, `y2` -> `y`).
265
282
  */
266
- sync?: "oneWay" | "twoWay";
283
+ encoding?: "x" | "y";
267
284
  }
268
285
 
269
286
  export interface SchemeParams {
@@ -10,12 +10,13 @@
10
10
 
11
11
  import { Align, Baseline, FontStyle, FontWeight } from "./font.js";
12
12
  import { ExprRef } from "./parameter.js";
13
+ import { ZIndexProps } from "./decoration.js";
13
14
 
14
15
  export type TitleOrient = "none" | "left" | "right" | "top" | "bottom";
15
16
  export type TitleAnchor = null | "start" | "middle" | "end";
16
17
  export type TitleFrame = "bounds" | "group";
17
18
 
18
- export interface Title {
19
+ export interface Title extends ZIndexProps {
19
20
  /**
20
21
  * The title text.
21
22
  */
@@ -24,7 +25,7 @@ export interface Title {
24
25
  /**
25
26
  * A mark style property to apply to the title text mark. If not specified, a default style of `"group-title"` is applied.
26
27
  */
27
- style?: string;
28
+ style?: string | string[];
28
29
 
29
30
  /**
30
31
  * The anchor position for placing the title and subtitle text. One of `"start"`, `"middle"`, or `"end"`. For example, with an orientation of top these anchor positions map to a left-, center-, or right-aligned title.
@@ -41,6 +42,16 @@ export interface Title {
41
42
  */
42
43
  offset?: number;
43
44
 
45
+ /**
46
+ * Z-order of the title relative to the view content.
47
+ *
48
+ * Values greater than `0` render after the view marks. Values less than or
49
+ * equal to `0` render before the marks.
50
+ *
51
+ * __Default value:__ `1`
52
+ */
53
+ zindex?: number;
54
+
44
55
  /**
45
56
  * Default title orientation (`"none"`, `"top"`, `"bottom"`, `"left"`, or `"right"`)
46
57
  */
@@ -6,4 +6,4 @@ export interface HandledTooltip {
6
6
 
7
7
  // TODO: Encoding / data: https://vega.github.io/vega-lite/docs/tooltip.html#encoding
8
8
 
9
- export type Tooltip = HandledTooltip | null;
9
+ export type Tooltip = HandledTooltip | null | false;
@@ -1,4 +1,5 @@
1
1
  import { PositionalChannel } from "./channel.js";
2
+ import { FontStyle, FontWeight } from "./font.js";
2
3
  import { ExprRef } from "./parameter.js";
3
4
 
4
5
  /**
@@ -177,7 +178,7 @@ export interface StackParams extends TransformParamsBase {
177
178
  *
178
179
  * **Default:** `["y0", "y1"]`
179
180
  */
180
- as: string[];
181
+ as?: string[];
181
182
 
182
183
  /**
183
184
  * Cardinality, e.g., the number if distinct bases or amino acids. Used for
@@ -204,7 +205,9 @@ export type AggregateOp =
204
205
  | "min"
205
206
  | "max"
206
207
  | "mean"
208
+ | "q1"
207
209
  | "median"
210
+ | "q3"
208
211
  | "variance";
209
212
 
210
213
  export interface AggregateParams extends TransformParamsBase {
@@ -225,7 +228,7 @@ export interface AggregateParams extends TransformParamsBase {
225
228
 
226
229
  /**
227
230
  * The aggregation operations to be performed on the fields, such as `"sum"`,
228
- * `"average"`, or `"count"`.
231
+ * `"q1"`, `"median"`, `"q3"`, or `"count"`.
229
232
  */
230
233
  ops?: AggregateOp[];
231
234
 
@@ -424,13 +427,45 @@ export interface SampleParams extends TransformParamsBase {
424
427
  export interface MeasureTextParams extends TransformParamsBase {
425
428
  type: "measureText";
426
429
 
430
+ /**
431
+ * The field that contains the text to be measured.
432
+ */
427
433
  field: Field;
428
434
 
435
+ /**
436
+ * The font size in pixels.
437
+ */
429
438
  fontSize: number | ExprRef;
430
439
 
431
- as: string;
440
+ /**
441
+ * The font typeface. Uses the same asynchronously loaded SDF fonts as the
442
+ * `"text"` mark.
443
+ *
444
+ * **Default:** `"Lato"`
445
+ */
446
+ font?: string;
447
+
448
+ /**
449
+ * The font style. Valid values: `"normal"` and `"italic"`.
450
+ *
451
+ * **Default:** `"normal"`
452
+ */
453
+ fontStyle?: FontStyle;
454
+
455
+ /**
456
+ * The font weight. The following strings and numbers are valid values:
457
+ * `"thin"` (`100`), `"light"` (`300`), `"regular"` (`400`),
458
+ * `"normal"` (`400`), `"medium"` (`500`), `"bold"` (`700`),
459
+ * `"black"` (`900`)
460
+ *
461
+ * **Default:** `"regular"`
462
+ */
463
+ fontWeight?: FontWeight;
432
464
 
433
- // TODO: FontFamily etc
465
+ /**
466
+ * The output field where the measured width is written.
467
+ */
468
+ as: string;
434
469
  }
435
470
 
436
471
  export interface MergeFacetsParams extends TransformParamsBase {
@@ -6,17 +6,12 @@ import {
6
6
  FacetFieldDef,
7
7
  PrimaryPositionalChannel,
8
8
  } from "./channel.js";
9
- import {
10
- FillAndStrokeProps,
11
- MarkProps,
12
- MarkType,
13
- RectProps,
14
- RuleProps,
15
- ShadowProps,
16
- } from "./mark.js";
9
+ import { MarkProps, MarkType, RuleProps } from "./mark.js";
17
10
  import { ExprRef } from "./parameter.js";
18
11
  import { Title } from "./title.js";
19
12
  import { Parameter } from "./parameter.js";
13
+ import { GenomeSpyConfig } from "./config.js";
14
+ import { ViewBackgroundProps, ZIndexProps } from "./decoration.js";
20
15
 
21
16
  export interface SizeDef {
22
17
  /**
@@ -84,22 +79,50 @@ export type Paddings = Partial<Record<Side, number>>;
84
79
 
85
80
  export type PaddingConfig = Paddings | number;
86
81
 
87
- interface CompleteViewBackground extends RectProps, FillAndStrokeProps {
88
- // TODO: style?: string | string[];
82
+ export interface ViewBackground extends ViewBackgroundProps {
83
+ /**
84
+ * Named style reference(s) resolved from `config.style`.
85
+ * If an array is provided, later styles override earlier ones.
86
+ *
87
+ * __Default value:__ `"cell"`
88
+ */
89
+ style?: string | string[];
89
90
 
90
- // TODO: Move to FillAndStrokeProps or something
91
- strokeWidth?: number;
92
- }
91
+ /**
92
+ * Z-order of the background fill relative to the view content.
93
+ *
94
+ * Values greater than `0` render after the view marks. Values less than or
95
+ * equal to `0` render before the marks.
96
+ *
97
+ * __Default value:__ `0`
98
+ */
99
+ zindex?: number;
93
100
 
94
- export type ViewBackground = Pick<
95
- CompleteViewBackground,
96
- "fill" | "fillOpacity" | "stroke" | "strokeWidth" | "strokeOpacity"
97
- > &
98
- ShadowProps;
101
+ /**
102
+ * Z-order of the background stroke relative to the view content.
103
+ *
104
+ * Values greater than `0` render after the view marks. Values less than or
105
+ * equal to `0` render before the marks.
106
+ *
107
+ * __Default value:__ `0`, or `10` when the view content is clipped or
108
+ * scrollable.
109
+ */
110
+ strokeZindex?: number;
111
+ }
99
112
 
100
- export interface SeparatorProps extends Omit<RuleProps, "type"> {
113
+ export interface SeparatorProps extends Omit<RuleProps, "type">, ZIndexProps {
101
114
  type?: "rule";
102
115
 
116
+ /**
117
+ * Z-order of the separator relative to the view content.
118
+ *
119
+ * Values greater than `0` render after the view marks. Values less than or
120
+ * equal to `0` render before the marks.
121
+ *
122
+ * __Default value:__ `0`
123
+ */
124
+ zindex?: number;
125
+
103
126
  /**
104
127
  * Whether separators extend into the plot margin (axes/padding) around
105
128
  * the grid.
@@ -118,6 +141,15 @@ export interface ViewSpecBase extends ResolveSpec {
118
141
  */
119
142
  name?: string;
120
143
 
144
+ /**
145
+ * Mouse cursor shown while the pointer is inside the view.
146
+ * The deepest matching cursor wins: mark cursor first, then the pointed
147
+ * view, then ancestor views outward toward the root.
148
+ *
149
+ * __Default value:__ browser default
150
+ */
151
+ cursor?: string | ExprRef;
152
+
121
153
  /**
122
154
  * Height of the view. If a number, it is interpreted as pixels.
123
155
  * Check [child sizing](https://genomespy.app/docs/grammar/composition/concat/#child-sizing)
@@ -172,6 +204,13 @@ export interface ViewSpecBase extends ResolveSpec {
172
204
  */
173
205
  params?: Parameter[];
174
206
 
207
+ /**
208
+ * Configures defaults for this view subtree.
209
+ *
210
+ * Properties in child views override properties inherited from ancestors.
211
+ */
212
+ config?: GenomeSpyConfig;
213
+
175
214
  /**
176
215
  * Specifies a [data source](https://genomespy.app/docs/grammar/data/).
177
216
  * If omitted, the data source is inherited from the parent view.
@@ -433,6 +472,15 @@ export interface ImportSpec {
433
472
  */
434
473
  visible?: boolean;
435
474
 
475
+ /**
476
+ * Configures defaults for the imported subtree at the import site.
477
+ *
478
+ * This config is merged before the imported spec's own root-level `config`,
479
+ * so imported specs can remain self-contained and override import-site
480
+ * defaults where needed.
481
+ */
482
+ config?: GenomeSpyConfig;
483
+
436
484
  /**
437
485
  * The method to import a specification.
438
486
  */
@@ -1,17 +1,17 @@
1
- :root {
2
- --genome-spy-basic-spacing: 10px;
3
- --genome-spy-font-family:
4
- system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
5
- "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
6
- }
1
+ @scope {
2
+ :scope {
3
+ --genome-spy-basic-spacing: 10px;
4
+ --genome-spy-font-family:
5
+ system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
6
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
7
7
 
8
- .genome-spy {
9
- font-family: var(--genome-spy-font-family);
8
+ font-family: var(--genome-spy-font-family);
10
9
 
11
- position: relative;
10
+ position: relative;
12
11
 
13
- display: flex;
14
- flex-direction: column;
12
+ display: flex;
13
+ flex-direction: column;
14
+ }
15
15
 
16
16
  .canvas-wrapper {
17
17
  position: relative;
@@ -190,6 +190,50 @@
190
190
  }
191
191
  }
192
192
 
193
+ .gs-input-binding {
194
+ display: grid;
195
+ grid-template-columns: max-content max-content;
196
+ column-gap: 1em;
197
+ row-gap: 0.3em;
198
+ justify-items: start;
199
+
200
+ > select,
201
+ > input:not([type="checkbox"]) {
202
+ width: 100%;
203
+ }
204
+
205
+ input[type="range"] + span {
206
+ display: inline-block;
207
+ margin-left: 0.3em;
208
+ min-width: 2.2em;
209
+ font-variant-numeric: tabular-nums;
210
+ }
211
+
212
+ input[type="range"],
213
+ input[type="radio"] {
214
+ vertical-align: text-bottom;
215
+ }
216
+
217
+ .radio-group {
218
+ display: flex;
219
+ align-items: center;
220
+ }
221
+
222
+ .description {
223
+ max-width: 26em;
224
+ grid-column: 1 / -1;
225
+ color: #777;
226
+ font-size: 90%;
227
+ margin-top: -0.5em;
228
+ }
229
+ }
230
+
231
+ .gs-input-bindings {
232
+ flex-basis: content;
233
+ font-size: 14px;
234
+ padding: var(--genome-spy-basic-spacing);
235
+ }
236
+
193
237
  .message-box {
194
238
  display: flex;
195
239
  align-items: center;
@@ -206,47 +250,3 @@
206
250
  }
207
251
  }
208
252
  }
209
-
210
- .gs-input-binding {
211
- display: grid;
212
- grid-template-columns: max-content max-content;
213
- column-gap: 1em;
214
- row-gap: 0.3em;
215
- justify-items: start;
216
-
217
- > select,
218
- > input:not([type="checkbox"]) {
219
- width: 100%;
220
- }
221
-
222
- input[type="range"] + span {
223
- display: inline-block;
224
- margin-left: 0.3em;
225
- min-width: 2.2em;
226
- font-variant-numeric: tabular-nums;
227
- }
228
-
229
- input[type="range"],
230
- input[type="radio"] {
231
- vertical-align: text-bottom;
232
- }
233
-
234
- .radio-group {
235
- display: flex;
236
- align-items: center;
237
- }
238
-
239
- .description {
240
- max-width: 26em;
241
- grid-column: 1 / -1;
242
- color: #777;
243
- font-size: 90%;
244
- margin-top: -0.5em;
245
- }
246
- }
247
-
248
- .gs-input-bindings {
249
- flex-basis: content;
250
- font-size: 14px;
251
- padding: var(--genome-spy-basic-spacing);
252
- }
@@ -1,3 +1,3 @@
1
1
  export default css;
2
- declare const css: "\n:root {\n--genome-spy-basic-spacing: 10px;\n--genome-spy-font-family: system-ui, \"Segoe UI\", Roboto, Helvetica, Arial,\nsans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n}\n\n.genome-spy {\nfont-family: var(--genome-spy-font-family);\n\nposition: relative;\n\ndisplay: flex;\nflex-direction: column;\n\n.canvas-wrapper {\nposition: relative;\nflex-grow: 1;\noverflow: hidden;\n}\n\ncanvas {\ndisplay: block;\ntouch-action: none;\ntransform: scale(1, 1);\nopacity: 1;\ntransition:\ntransform 0.6s,\nopacity 0.6s;\n\n&:focus,\n&:focus-visible {\noutline: none;\n}\n}\n\n.loading {\n> canvas {\ntransform: scale(0.95, 0.95);\nopacity: 0;\n}\n}\n\n.loading-indicators {\nposition: absolute;\ninset: 0;\n\nuser-select: none;\npointer-events: none;\n\ndiv {\nposition: absolute;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\n\n> div {\nfont-size: 11px;\ntransition: opacity 0.2s;\nbackground: white;\npadding: 2px 5px;\ndisplay: flex;\nborder-radius: 3px;\ngap: 0.5em;\nopacity: 0;\n\n&.loading {\nopacity: 0.5;\n}\n\n&.error {\nopacity: 0.8;\ncolor: firebrick;\n}\n\n> * {\ndisplay: block;\n}\n\nimg {\nwidth: 1.5em;\nheight: 1.5em;\n}\n}\n}\n}\n\n.tooltip {\nposition: absolute;\n\nmax-width: 450px;\noverflow: hidden;\n\n--background-color: #f6f6f6;\nbackground: var(--background-color);\npadding: var(--genome-spy-basic-spacing);\n\n--font-size: 12px;\nfont-size: var(--font-size);\n\nbox-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);\n\n&:not(.sticky) {\npointer-events: none;\n}\n\ntransition:\noutline-color 0.3s ease-in-out,\nbox-shadow 0.3s ease-in-out;\n\noutline: 0px solid transparent;\n&.sticky {\noutline: 2px solid black;\nbox-shadow: 0px 3px 18px 0px rgba(0, 0, 0, 0.3);\n}\n\nz-index: 100;\n\n> :last-child {\nmargin-bottom: 0;\n}\n\n> .title {\npadding-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nmargin-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nborder-bottom: 1px dashed var(--background-color);\nborder-bottom: 1px dashed\ncolor-mix(in srgb, black 25%, var(--background-color));\n}\n\n.summary {\nfont-size: 12px;\n}\n\ntable {\n&:first-child {\nmargin-top: 0;\n}\n\nborder-collapse: collapse;\n\nth,\ntd {\npadding: 2px 0.4em;\nvertical-align: top;\nfont-size: var(--font-size);\n\n&:first-child {\npadding-left: 0;\n}\n}\n\nth {\ntext-align: left;\nfont-weight: bold;\n}\n}\n\n.color-legend {\ndisplay: inline-block;\nwidth: 0.8em;\nheight: 0.8em;\nmargin-left: 0.4em;\nbox-shadow: 0px 0px 3px 1px white;\n}\n\n.color-legend-unmapped {\nbackground-color: transparent;\nborder: 1px solid black;\nbox-sizing: border-box;\nbox-shadow: none;\n}\n\n.attributes {\n.hovered {\nbackground-color: #e0e0e0;\n}\n}\n\n.na {\ncolor: #aaa;\nfont-style: italic;\nfont-size: 80%;\n}\n}\n\n.gene-track-tooltip {\n.summary {\nfont-size: 90%;\n}\n}\n\n.message-box {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: 0;\nheight: 100%;\nwidth: 100%;\n\n> div {\nborder: 1px solid red;\npadding: 10px;\nbackground: #fff0f0;\n}\n}\n}\n\n.gs-input-binding {\ndisplay: grid;\ngrid-template-columns: max-content max-content;\ncolumn-gap: 1em;\nrow-gap: 0.3em;\njustify-items: start;\n\n> select,\n> input:not([type=\"checkbox\"]) {\nwidth: 100%;\n}\n\ninput[type=\"range\"] + span {\ndisplay: inline-block;\nmargin-left: 0.3em;\nmin-width: 2.2em;\nfont-variant-numeric: tabular-nums;\n}\n\ninput[type=\"range\"],\ninput[type=\"radio\"] {\nvertical-align: text-bottom;\n}\n\n.radio-group {\ndisplay: flex;\nalign-items: center;\n}\n\n.description {\nmax-width: 26em;\ngrid-column: 1 / -1;\ncolor: #777;\nfont-size: 90%;\nmargin-top: -0.5em;\n}\n}\n\n.gs-input-bindings {\nflex-basis: content;\nfont-size: 14px;\npadding: var(--genome-spy-basic-spacing);\n}\n";
2
+ declare const css: "\n@scope {\n:scope {\n--genome-spy-basic-spacing: 10px;\n--genome-spy-font-family:\nsystem-ui, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif,\n\"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n\nfont-family: var(--genome-spy-font-family);\n\nposition: relative;\n\ndisplay: flex;\nflex-direction: column;\n}\n\n.canvas-wrapper {\nposition: relative;\nflex-grow: 1;\noverflow: hidden;\n}\n\ncanvas {\ndisplay: block;\ntouch-action: none;\ntransform: scale(1, 1);\nopacity: 1;\ntransition:\ntransform 0.6s,\nopacity 0.6s;\n\n&:focus,\n&:focus-visible {\noutline: none;\n}\n}\n\n.loading {\n> canvas {\ntransform: scale(0.95, 0.95);\nopacity: 0;\n}\n}\n\n.loading-indicators {\nposition: absolute;\ninset: 0;\n\nuser-select: none;\npointer-events: none;\n\ndiv {\nposition: absolute;\ndisplay: flex;\nalign-items: center;\njustify-content: center;\n\n> div {\nfont-size: 11px;\ntransition: opacity 0.2s;\nbackground: white;\npadding: 2px 5px;\ndisplay: flex;\nborder-radius: 3px;\ngap: 0.5em;\nopacity: 0;\n\n&.loading {\nopacity: 0.5;\n}\n\n&.error {\nopacity: 0.8;\ncolor: firebrick;\n}\n\n> * {\ndisplay: block;\n}\n\nimg {\nwidth: 1.5em;\nheight: 1.5em;\n}\n}\n}\n}\n\n.tooltip {\nposition: absolute;\n\nmax-width: 450px;\noverflow: hidden;\n\n--background-color: #f6f6f6;\nbackground: var(--background-color);\npadding: var(--genome-spy-basic-spacing);\n\n--font-size: 12px;\nfont-size: var(--font-size);\n\nbox-shadow: 0px 3px 15px 0px rgba(0, 0, 0, 0.21);\n\n&:not(.sticky) {\npointer-events: none;\n}\n\ntransition:\noutline-color 0.3s ease-in-out,\nbox-shadow 0.3s ease-in-out;\n\noutline: 0px solid transparent;\n&.sticky {\noutline: 2px solid black;\nbox-shadow: 0px 3px 18px 0px rgba(0, 0, 0, 0.3);\n}\n\nz-index: 100;\n\n> :last-child {\nmargin-bottom: 0;\n}\n\n> .title {\npadding-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nmargin-bottom: calc(var(--genome-spy-basic-spacing) / 2);\nborder-bottom: 1px dashed var(--background-color);\nborder-bottom: 1px dashed\ncolor-mix(in srgb, black 25%, var(--background-color));\n}\n\n.summary {\nfont-size: 12px;\n}\n\ntable {\n&:first-child {\nmargin-top: 0;\n}\n\nborder-collapse: collapse;\n\nth,\ntd {\npadding: 2px 0.4em;\nvertical-align: top;\nfont-size: var(--font-size);\n\n&:first-child {\npadding-left: 0;\n}\n}\n\nth {\ntext-align: left;\nfont-weight: bold;\n}\n}\n\n.color-legend {\ndisplay: inline-block;\nwidth: 0.8em;\nheight: 0.8em;\nmargin-left: 0.4em;\nbox-shadow: 0px 0px 3px 1px white;\n}\n\n.color-legend-unmapped {\nbackground-color: transparent;\nborder: 1px solid black;\nbox-sizing: border-box;\nbox-shadow: none;\n}\n\n.attributes {\n.hovered {\nbackground-color: #e0e0e0;\n}\n}\n\n.na {\ncolor: #aaa;\nfont-style: italic;\nfont-size: 80%;\n}\n}\n\n.gene-track-tooltip {\n.summary {\nfont-size: 90%;\n}\n}\n\n.gs-input-binding {\ndisplay: grid;\ngrid-template-columns: max-content max-content;\ncolumn-gap: 1em;\nrow-gap: 0.3em;\njustify-items: start;\n\n> select,\n> input:not([type=\"checkbox\"]) {\nwidth: 100%;\n}\n\ninput[type=\"range\"] + span {\ndisplay: inline-block;\nmargin-left: 0.3em;\nmin-width: 2.2em;\nfont-variant-numeric: tabular-nums;\n}\n\ninput[type=\"range\"],\ninput[type=\"radio\"] {\nvertical-align: text-bottom;\n}\n\n.radio-group {\ndisplay: flex;\nalign-items: center;\n}\n\n.description {\nmax-width: 26em;\ngrid-column: 1 / -1;\ncolor: #777;\nfont-size: 90%;\nmargin-top: -0.5em;\n}\n}\n\n.gs-input-bindings {\nflex-basis: content;\nfont-size: 14px;\npadding: var(--genome-spy-basic-spacing);\n}\n\n.message-box {\ndisplay: flex;\nalign-items: center;\njustify-content: center;\nposition: absolute;\ntop: 0;\nheight: 100%;\nwidth: 100%;\n\n> div {\nborder: 1px solid red;\npadding: 10px;\nbackground: #fff0f0;\n}\n}\n}\n";
3
3
  //# sourceMappingURL=genome-spy.css.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"genome-spy.css.d.ts","sourceRoot":"","sources":["../../../src/styles/genome-spy.css.js"],"names":[],"mappings":";AAAA,osHA4PE"}
1
+ {"version":3,"file":"genome-spy.css.d.ts","sourceRoot":"","sources":["../../../src/styles/genome-spy.css.js"],"names":[],"mappings":";AAAA,isHA6PE"}
@@ -1,17 +1,18 @@
1
1
  const css = `
2
- :root {
2
+ @scope {
3
+ :scope {
3
4
  --genome-spy-basic-spacing: 10px;
4
- --genome-spy-font-family: system-ui, "Segoe UI", Roboto, Helvetica, Arial,
5
- sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
6
- }
5
+ --genome-spy-font-family:
6
+ system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif,
7
+ "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
7
8
 
8
- .genome-spy {
9
9
  font-family: var(--genome-spy-font-family);
10
10
 
11
11
  position: relative;
12
12
 
13
13
  display: flex;
14
14
  flex-direction: column;
15
+ }
15
16
 
16
17
  .canvas-wrapper {
17
18
  position: relative;
@@ -190,23 +191,6 @@ font-size: 90%;
190
191
  }
191
192
  }
192
193
 
193
- .message-box {
194
- display: flex;
195
- align-items: center;
196
- justify-content: center;
197
- position: absolute;
198
- top: 0;
199
- height: 100%;
200
- width: 100%;
201
-
202
- > div {
203
- border: 1px solid red;
204
- padding: 10px;
205
- background: #fff0f0;
206
- }
207
- }
208
- }
209
-
210
194
  .gs-input-binding {
211
195
  display: grid;
212
196
  grid-template-columns: max-content max-content;
@@ -250,5 +234,22 @@ flex-basis: content;
250
234
  font-size: 14px;
251
235
  padding: var(--genome-spy-basic-spacing);
252
236
  }
237
+
238
+ .message-box {
239
+ display: flex;
240
+ align-items: center;
241
+ justify-content: center;
242
+ position: absolute;
243
+ top: 0;
244
+ height: 100%;
245
+ width: 100%;
246
+
247
+ > div {
248
+ border: 1px solid red;
249
+ padding: 10px;
250
+ background: #fff0f0;
251
+ }
252
+ }
253
+ }
253
254
  `;
254
255
  export default css;
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=testSetup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"testSetup.d.ts","sourceRoot":"","sources":["../../src/testSetup.js"],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ import "./data/formats/parquet.js";
2
+ import "./data/formats/bed.js";
3
+ import "./data/formats/bedpe.js";
4
+ import "./data/formats/fasta.js";
5
+ import "./data/sources/lazy/registerBuiltInLazySources.js";