@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,200 @@
1
+ import {
2
+ createPrimitiveEventProxy,
3
+ isWheelEvent,
4
+ overrideWheelEventDeltas,
5
+ } from "./interactionEvent.js";
6
+
7
+ /**
8
+ * Internal event object used by GenomeSpy's canvas interaction pipeline.
9
+ *
10
+ * Interaction is deliberately smaller than DOM Event. It models the pieces
11
+ * that GenomeSpy needs for hierarchical pointer handling:
12
+ * - `point` is always in canvas coordinates
13
+ * - `uiEvent` is the original native or synthesized low-level event
14
+ * - `target` is the resolved deepest view target after propagation
15
+ * - `currentTarget` and `relatedTarget` are used by synthesized
16
+ * `mouseenter` / `mouseleave` delivery
17
+ *
18
+ * Runtime flow:
19
+ * 1. `InteractionController` converts native canvas events into Interaction
20
+ * instances and asks `InteractionDispatcher` to route them.
21
+ * 2. Container views route the interaction through the view hierarchy and may
22
+ * add policy on top, such as wheel claiming, zoom handling, or scrollbar
23
+ * dispatch.
24
+ * 3. `InteractionDispatcher` compares successive hover paths and synthesizes
25
+ * subtree-level `mouseenter` / `mouseleave` transitions.
26
+ *
27
+ * Differences from the DOM model:
28
+ * - propagation is view-driven rather than browser-driven
29
+ * - only the event types used by GenomeSpy are represented
30
+ * - there is only `stopPropagation()`, not stop-immediate semantics
31
+ * - mark picking is not encoded into `target`; mark hover lives separately in
32
+ * `InteractionController`
33
+ *
34
+ * Mouse and wheel helpers:
35
+ * - `mouseEvent` exposes the underlying MouseEvent for imperative handlers
36
+ * - `proxiedMouseEvent` exposes only primitive properties for places that
37
+ * must not retain live DOM objects
38
+ * - `wheelEvent` exposes the underlying wheel-like event, optionally with
39
+ * temporary delta overrides applied by `setWheelDeltas()`
40
+ *
41
+ * Special event types:
42
+ * - `wheelclaimprobe` asks pointed views whether they would consume wheel,
43
+ * without running the actual wheel side effects yet
44
+ * - `touchgesture` is a synthesized high-level gesture event derived from
45
+ * touch input
46
+ */
47
+ export default class Interaction {
48
+ /** @type {MouseEvent} */
49
+ #primitiveMouseEventProxy;
50
+
51
+ /** @type {import("./interactionEvent.js").WheelLikeEvent | undefined} */
52
+ #wheelEventProxy;
53
+
54
+ /**
55
+ * @param {import("../view/layout/point.js").default} point
56
+ * @param {import("./interactionEvent.js").InteractionUiEvent} uiEvent
57
+ * @param {string} [type]
58
+ */
59
+ constructor(point, uiEvent, type) {
60
+ this.point = point;
61
+ this.#uiEvent = uiEvent;
62
+ this.stopped = false;
63
+ this.wheelClaimed = false;
64
+ this.#typeOverride = type;
65
+
66
+ /**
67
+ * The target is known only after the interaction has been resolved
68
+ * against the view hierarchy.
69
+ *
70
+ * @type {import("../view/view.js").default | undefined}
71
+ */
72
+ this.target = undefined;
73
+
74
+ /**
75
+ * Reserved for the new interaction dispatcher.
76
+ *
77
+ * @type {import("../view/view.js").default | undefined}
78
+ */
79
+ this.currentTarget = undefined;
80
+
81
+ /**
82
+ * Reserved for enter/leave-style transition events.
83
+ *
84
+ * @type {import("../view/view.js").default | undefined}
85
+ */
86
+ this.relatedTarget = undefined;
87
+ }
88
+
89
+ /** @type {import("./interactionEvent.js").InteractionUiEvent} */
90
+ #uiEvent;
91
+ /** @type {string | undefined} */
92
+ #typeOverride;
93
+ /** @type {{ deltaX: number, deltaY: number } | undefined} */
94
+ #wheelDeltaOverride;
95
+
96
+ get uiEvent() {
97
+ return this.#uiEvent;
98
+ }
99
+
100
+ set uiEvent(value) {
101
+ this.#uiEvent = value;
102
+ this.#primitiveMouseEventProxy = undefined;
103
+ this.#wheelEventProxy = undefined;
104
+ this.#wheelDeltaOverride = undefined;
105
+ }
106
+
107
+ stopPropagation() {
108
+ this.stopped = true;
109
+ }
110
+
111
+ /**
112
+ * Marks the current wheel interaction as claimed by the pointed view
113
+ * hierarchy.
114
+ *
115
+ * This is used both for real wheel events and for the synthetic
116
+ * `wheelclaimprobe` preflight. Controllers use the claimed state to decide
117
+ * whether the native wheel event should call `preventDefault()`.
118
+ */
119
+ claimWheel() {
120
+ if (this.type !== "wheel" && this.type !== "wheelclaimprobe") {
121
+ throw new Error("Can claim wheel only for wheel events!");
122
+ }
123
+
124
+ this.wheelClaimed = true;
125
+ }
126
+
127
+ /**
128
+ * @param {number} deltaX
129
+ * @param {number} deltaY
130
+ */
131
+ setWheelDeltas(deltaX, deltaY) {
132
+ if (!isWheelEvent(this.uiEvent)) {
133
+ throw new Error("Not a WheelEvent!");
134
+ }
135
+
136
+ this.#wheelDeltaOverride = { deltaX, deltaY };
137
+ this.#wheelEventProxy = undefined;
138
+ }
139
+
140
+ get type() {
141
+ return this.#typeOverride ?? this.uiEvent.type;
142
+ }
143
+
144
+ set type(value) {
145
+ this.#typeOverride = value;
146
+ }
147
+
148
+ /**
149
+ * Returns a primitive-only proxy of the underlying MouseEvent.
150
+ *
151
+ * This is intended for places such as expression evaluation, where the
152
+ * caller needs scalar event fields but should not receive a live DOM event
153
+ * object with methods, nested objects, or browser-specific prototypes.
154
+ */
155
+ get proxiedMouseEvent() {
156
+ if (!this.#primitiveMouseEventProxy) {
157
+ this.#primitiveMouseEventProxy = createPrimitiveEventProxy(
158
+ this.mouseEvent
159
+ );
160
+ }
161
+
162
+ return this.#primitiveMouseEventProxy;
163
+ }
164
+
165
+ get mouseEvent() {
166
+ if (this.uiEvent instanceof MouseEvent) {
167
+ return this.uiEvent;
168
+ } else {
169
+ throw new Error("Not a MouseEvent!");
170
+ }
171
+ }
172
+
173
+ /**
174
+ * Returns a wheel-like event with any temporary delta overrides applied.
175
+ *
176
+ * The wrapped event keeps the original event identity for all properties
177
+ * except `deltaX` and `deltaY`, which allows intermediate handlers to
178
+ * consume part of the wheel interaction while keeping downstream wheel
179
+ * handling on the same event instance.
180
+ */
181
+ get wheelEvent() {
182
+ if (!isWheelEvent(this.uiEvent)) {
183
+ throw new Error("Not a WheelEvent!");
184
+ }
185
+
186
+ if (!this.#wheelDeltaOverride) {
187
+ return this.uiEvent;
188
+ }
189
+
190
+ if (!this.#wheelEventProxy) {
191
+ this.#wheelEventProxy = overrideWheelEventDeltas(
192
+ this.uiEvent,
193
+ this.#wheelDeltaOverride.deltaX,
194
+ this.#wheelDeltaOverride.deltaY
195
+ );
196
+ }
197
+
198
+ return this.#wheelEventProxy;
199
+ }
200
+ }
@@ -17,13 +17,31 @@
17
17
  * @prop {"wheelclaimprobe"} type
18
18
  */
19
19
  /**
20
- * @typedef {UIEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
20
+ * @typedef {Pick<
21
+ * WheelEvent,
22
+ * "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey"
23
+ * >} WheelLikeEvent
24
+ */
25
+ /**
26
+ * @typedef {UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
21
27
  */
22
28
  /**
23
29
  * @param {unknown} eventLike
24
30
  * @returns {eventLike is TouchGestureEvent}
25
31
  */
26
32
  export function isTouchGestureEvent(eventLike: unknown): eventLike is TouchGestureEvent;
33
+ /**
34
+ * @param {unknown} eventLike
35
+ * @returns {eventLike is WheelLikeEvent}
36
+ */
37
+ export function isWheelEvent(eventLike: unknown): eventLike is WheelLikeEvent;
38
+ /**
39
+ * @param {WheelLikeEvent} wheelEvent
40
+ * @param {number} deltaX
41
+ * @param {number} deltaY
42
+ * @returns {WheelLikeEvent}
43
+ */
44
+ export function overrideWheelEventDeltas(wheelEvent: WheelLikeEvent, deltaX: number, deltaY: number): WheelLikeEvent;
27
45
  /**
28
46
  * Create a safe proxy for an event-like object that exposes only primitive
29
47
  * (string, number, boolean, bigint, symbol, undefined) properties and null.
@@ -33,46 +51,6 @@ export function isTouchGestureEvent(eventLike: unknown): eventLike is TouchGestu
33
51
  * @template T
34
52
  */
35
53
  export function createPrimitiveEventProxy<T>(target: T): T;
36
- /**
37
- * This class wraps a MouseEvent (or similar) and allows for
38
- * its propagation through the view hierarchy in a similar manner
39
- * as in the DOM.
40
- */
41
- export default class InteractionEvent {
42
- /**
43
- * @param {import("../view/layout/point.js").default} point Event coordinates
44
- * inside the visualization canvas.
45
- * @param {InteractionUiEvent} uiEvent The event to be wrapped
46
- */
47
- constructor(point: import("../view/layout/point.js").default, uiEvent: InteractionUiEvent);
48
- point: import("../view/layout/point.js").default;
49
- uiEvent: InteractionUiEvent;
50
- stopped: boolean;
51
- wheelClaimed: boolean;
52
- /**
53
- * The target is known only in the bubbling phase
54
- *
55
- * @type {import("../view/view.js").default}
56
- */
57
- target: import("../view/view.js").default;
58
- stopPropagation(): void;
59
- /**
60
- * Marks the event as wheel-owned by the current interaction path.
61
- * This is used by native wheel probes to decide preventDefault timing.
62
- */
63
- claimWheel(): void;
64
- /**
65
- * The event type string of the underlying UI event (e.g. "click", "keydown").
66
- *
67
- * This getter proxies and returns the `type` property from the internal `UIEvent` instance (`this.uiEvent`).
68
- *
69
- * @returns {string} The UI event type.
70
- */
71
- get type(): string;
72
- get proxiedMouseEvent(): MouseEvent;
73
- get mouseEvent(): MouseEvent;
74
- #private;
75
- }
76
54
  export type TouchGestureEvent = {
77
55
  type: "touchgesture";
78
56
  phase: "move" | "end";
@@ -90,5 +68,6 @@ export type TouchGestureEvent = {
90
68
  export type WheelClaimProbeEvent = {
91
69
  type: "wheelclaimprobe";
92
70
  };
93
- export type InteractionUiEvent = UIEvent | TouchGestureEvent | WheelClaimProbeEvent;
71
+ export type WheelLikeEvent = Pick<WheelEvent, "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey">;
72
+ export type InteractionUiEvent = UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent;
94
73
  //# sourceMappingURL=interactionEvent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"interactionEvent.d.ts","sourceRoot":"","sources":["../../../src/utils/interactionEvent.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AAEH;;GAEG;AAEH;;;GAGG;AACH,+CAHW,OAAO,GACL,SAAS,IAAI,iBAAiB,CAoB1C;AA4ED;;;;;;;GAOG;AACH,0CAFa,CAAC,UAFH,CAAC,GACC,CAAC,CA0Eb;AAzJD;;;;GAIG;AACH;IAII;;;;OAIG;IACH,mBAJW,OAAO,yBAAyB,EAAE,OAAO,WAEzC,kBAAkB,EAc5B;IAXG,iDAAkB;IAClB,4BAAsB;IACtB,iBAAoB;IACpB,sBAAyB;IAEzB;;;;OAIG;IACH,QAFU,OAAO,iBAAiB,EAAE,OAAO,CAEpB;IAG3B,wBAEC;IAED;;;OAGG;IACH,mBAMC;IAED;;;;;;OAMG;IACH,YAFa,MAAM,CAIlB;IAED,oCAQC;IAED,6BAMC;;CACJ;;UAtHS,cAAc;WACd,MAAM,GAAG,KAAK;kBACd,CAAC,GAAG,CAAC;YACL,MAAM;YACN,MAAM;YACN,MAAM;qBACN,MAAM,IAAI;;;;;;;;UASV,iBAAiB;;iCAId,OAAO,GAAG,iBAAiB,GAAG,oBAAoB"}
1
+ {"version":3,"file":"interactionEvent.d.ts","sourceRoot":"","sources":["../../../src/utils/interactionEvent.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;GAGG;AACH,+CAHW,OAAO,GACL,SAAS,IAAI,iBAAiB,CAoB1C;AAED;;;GAGG;AACH,wCAHW,OAAO,GACL,SAAS,IAAI,cAAc,CAmBvC;AAED;;;;;GAKG;AACH,qDALW,cAAc,UACd,MAAM,UACN,MAAM,GACJ,cAAc,CAe1B;AAED;;;;;;;GAOG;AACH,0CAFa,CAAC,UAFH,CAAC,GACC,CAAC,CA0Eb;;UAhLS,cAAc;WACd,MAAM,GAAG,KAAK;kBACd,CAAC,GAAG,CAAC;YACL,MAAM;YACN,MAAM;YACN,MAAM;qBACN,MAAM,IAAI;;;;;;;;UASV,iBAAiB;;6BAId,IAAI,CACT,UAAU,EACjB,MAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAC7E;iCAIS,OAAO,GAAG,cAAc,GAAG,iBAAiB,GAAG,oBAAoB"}
@@ -19,7 +19,14 @@
19
19
  */
20
20
 
21
21
  /**
22
- * @typedef {UIEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
22
+ * @typedef {Pick<
23
+ * WheelEvent,
24
+ * "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey"
25
+ * >} WheelLikeEvent
26
+ */
27
+
28
+ /**
29
+ * @typedef {UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
23
30
  */
24
31
 
25
32
  /**
@@ -47,77 +54,47 @@ export function isTouchGestureEvent(eventLike) {
47
54
  }
48
55
 
49
56
  /**
50
- * This class wraps a MouseEvent (or similar) and allows for
51
- * its propagation through the view hierarchy in a similar manner
52
- * as in the DOM.
57
+ * @param {unknown} eventLike
58
+ * @returns {eventLike is WheelLikeEvent}
53
59
  */
54
- export default class InteractionEvent {
55
- /** @type {MouseEvent} */
56
- #primitiveMouseEventProxy;
57
-
58
- /**
59
- * @param {import("../view/layout/point.js").default} point Event coordinates
60
- * inside the visualization canvas.
61
- * @param {InteractionUiEvent} uiEvent The event to be wrapped
62
- */
63
- constructor(point, uiEvent) {
64
- this.point = point;
65
- this.uiEvent = uiEvent;
66
- this.stopped = false;
67
- this.wheelClaimed = false;
68
-
69
- /**
70
- * The target is known only in the bubbling phase
71
- *
72
- * @type {import("../view/view.js").default}
73
- */
74
- this.target = undefined;
75
- }
76
-
77
- stopPropagation() {
78
- this.stopped = true;
79
- }
80
-
81
- /**
82
- * Marks the event as wheel-owned by the current interaction path.
83
- * This is used by native wheel probes to decide preventDefault timing.
84
- */
85
- claimWheel() {
86
- if (this.type !== "wheel" && this.type !== "wheelclaimprobe") {
87
- throw new Error("Can claim wheel only for wheel events!");
88
- }
89
-
90
- this.wheelClaimed = true;
60
+ export function isWheelEvent(eventLike) {
61
+ if (!eventLike || typeof eventLike !== "object") {
62
+ return false;
91
63
  }
92
64
 
93
- /**
94
- * The event type string of the underlying UI event (e.g. "click", "keydown").
95
- *
96
- * This getter proxies and returns the `type` property from the internal `UIEvent` instance (`this.uiEvent`).
97
- *
98
- * @returns {string} The UI event type.
99
- */
100
- get type() {
101
- return this.uiEvent.type;
102
- }
65
+ const candidate =
66
+ /** @type {{type?: unknown, deltaX?: unknown, deltaY?: unknown, deltaMode?: unknown, preventDefault?: unknown}} */ (
67
+ eventLike
68
+ );
103
69
 
104
- get proxiedMouseEvent() {
105
- if (!this.#primitiveMouseEventProxy) {
106
- this.#primitiveMouseEventProxy = createPrimitiveEventProxy(
107
- this.mouseEvent
108
- );
109
- }
70
+ return (
71
+ candidate.type === "wheel" &&
72
+ Number.isFinite(candidate.deltaX) &&
73
+ Number.isFinite(candidate.deltaY) &&
74
+ Number.isFinite(candidate.deltaMode) &&
75
+ typeof candidate.preventDefault === "function"
76
+ );
77
+ }
110
78
 
111
- return this.#primitiveMouseEventProxy;
112
- }
79
+ /**
80
+ * @param {WheelLikeEvent} wheelEvent
81
+ * @param {number} deltaX
82
+ * @param {number} deltaY
83
+ * @returns {WheelLikeEvent}
84
+ */
85
+ export function overrideWheelEventDeltas(wheelEvent, deltaX, deltaY) {
86
+ return new Proxy(wheelEvent, {
87
+ get(target, prop) {
88
+ if (prop === "deltaX") {
89
+ return deltaX;
90
+ } else if (prop === "deltaY") {
91
+ return deltaY;
92
+ }
113
93
 
114
- get mouseEvent() {
115
- if (this.uiEvent instanceof MouseEvent) {
116
- return this.uiEvent;
117
- } else {
118
- throw new Error("Not a MouseEvent!");
119
- }
120
- }
94
+ const value = Reflect.get(target, prop, target);
95
+ return typeof value === "function" ? value.bind(target) : value;
96
+ },
97
+ });
121
98
  }
122
99
 
123
100
  /**
@@ -26,7 +26,7 @@ export default function kWayMerge(arrays, handler, accessor = (x) => +x) {
26
26
  }
27
27
  }
28
28
 
29
- let i = 0;
29
+ let i;
30
30
  while ((i = heap.pop()) !== undefined) {
31
31
  const array = arrays[i];
32
32
  let pointer = pointers[i];
@@ -1 +1 @@
1
- {"version":3,"file":"mergeObjects.d.ts","sourceRoot":"","sources":["../../../src/utils/mergeObjects.js"],"names":[],"mappings":"AAGA;;;;;;;;;;GAUG;AACH,qCAFa,CAAC,WAJF,CAAC,EAAE,cACJ,MAAM,SACN,MAAM,EAAE,GACN,CAAC,CAiFb"}
1
+ {"version":3,"file":"mergeObjects.d.ts","sourceRoot":"","sources":["../../../src/utils/mergeObjects.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,qCAFa,CAAC,WAJF,CAAC,EAAE,cACJ,MAAM,SACN,MAAM,EAAE,GACN,CAAC,CAgFb"}
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-depth */
2
1
  import { isObject } from "vega-util";
3
2
 
4
3
  /**
@@ -40,7 +39,6 @@ export default function mergeObjects(objects, propertyOf, skip) {
40
39
 
41
40
  /** @param {any} obj */
42
41
  const merger = (obj) => {
43
- // eslint-disable-next-line guard-for-in
44
42
  for (let prop in obj) {
45
43
  const sourceValue = obj[prop];
46
44
  if (!skip.includes(prop) && sourceValue !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"radixSort.d.ts","sourceRoot":"","sources":["../../../src/utils/radixSort.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH,uCAFW,MAAM,EAAE,YA8DlB;AAeD;;GAEG;AACH,8CAFW,MAAM,EAAE,YA0DlB"}
1
+ {"version":3,"file":"radixSort.d.ts","sourceRoot":"","sources":["../../../src/utils/radixSort.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH,uCAFW,MAAM,EAAE,YA6DlB;AAeD;;GAEG;AACH,8CAFW,MAAM,EAAE,YAyDlB"}
@@ -39,7 +39,6 @@ export default function radixSort(arr) {
39
39
  /**
40
40
  * @param {*} i number
41
41
  */
42
- // eslint-disable-next-line no-loop-func
43
42
  const getDigit = (/** @type {number} */ i) => {
44
43
  const value = arr[i];
45
44
 
@@ -117,7 +116,6 @@ export function radixSortIntoLookupArray(arr) {
117
116
  /**
118
117
  * @param {*} i number
119
118
  */
120
- // eslint-disable-next-line no-loop-func
121
119
  const getDigit = (i) => {
122
120
  const value = arr[indexes[i]]; // Use index to access array value
123
121
 
@@ -1 +1 @@
1
- {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/utils/throttle.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wDAHW,MAAM,GACJ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CA8D/D"}
1
+ {"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/utils/throttle.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wDAHW,MAAM,GACJ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CA4D/D"}
@@ -19,9 +19,7 @@ export default function throttle(func, limit) {
19
19
  let lastContext = null;
20
20
 
21
21
  const throttled = function () {
22
- // eslint-disable-next-line no-invalid-this
23
22
  lastContext = this;
24
- // eslint-disable-next-line prefer-rest-params
25
23
  lastArgs = arguments;
26
24
 
27
25
  const now = Date.now();
@@ -1,4 +1,5 @@
1
1
  export const SUPPRESS_TOOLTIP_CLASS_NAME: "gs-suppress-tooltip";
2
+ export const FREEZE_INTERACTION_CLASS_NAME: "gs-freeze-interaction";
2
3
  export default class Tooltip {
3
4
  /**
4
5
  * @param {HTMLElement} container
@@ -1 +1 @@
1
- {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/tooltip.js"],"names":[],"mappings":"AAIA,0CAA2C,qBAAqB,CAAC;AAEjE;IAsBI;;OAEG;IACH,uBAFW,WAAW,EAUrB;IAED;;OAEG;IACH,mBAFW,OAAO,EAQjB;IAED,cAVW,OAAO,CAYjB;IAED;;OAEG;IACH,qBAFW,OAAO,EAOjB;IAED,eATW,OAAO,CAWjB;IAED,uBAEC;IAED;;OAEG;IACH,0BAFW,OAAO,QAOjB;IAED,wBAEC;IAED;;OAEG;IACH,4BAFW,UAAU,QAsCpB;IA/BG,8BAA2D;IAiC/D,wBAiBC;IAED;;OAEG;IACH,oBAFW,MAAM,GAAG,OAAO,KAAK,EAAE,cAAc,GAAG,WAAW,QAqB7D;IAED,cAGC;IAED;;;;;;;OAOG;IACH,gBAFa,CAAC,SAFH,CAAC,cACD,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAyBlF;IAED,sBAEC;;CACJ"}
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/tooltip.js"],"names":[],"mappings":"AAIA,0CAA2C,qBAAqB,CAAC;AACjE,4CAA6C,uBAAuB,CAAC;AAErE;IAsBI;;OAEG;IACH,uBAFW,WAAW,EAUrB;IAED;;OAEG;IACH,mBAFW,OAAO,EAQjB;IAED,cAVW,OAAO,CAYjB;IAED;;OAEG;IACH,qBAFW,OAAO,EAOjB;IAED,eATW,OAAO,CAWjB;IAED,uBAEC;IAED;;OAEG;IACH,0BAFW,OAAO,QAOjB;IAED,wBAEC;IAED;;OAEG;IACH,4BAFW,UAAU,QAsCpB;IA/BG,8BAA2D;IAiC/D,wBAiBC;IAED;;OAEG;IACH,oBAFW,MAAM,GAAG,OAAO,KAAK,EAAE,cAAc,GAAG,WAAW,QAqB7D;IAED,cAGC;IAED;;;;;;;OAOG;IACH,gBAFa,CAAC,SAFH,CAAC,cACD,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAyBlF;IAED,sBAEC;;CACJ"}
@@ -3,6 +3,7 @@ import { html, render } from "lit";
3
3
  import { peek } from "../arrayUtils.js";
4
4
 
5
5
  export const SUPPRESS_TOOLTIP_CLASS_NAME = "gs-suppress-tooltip";
6
+ export const FREEZE_INTERACTION_CLASS_NAME = "gs-freeze-interaction";
6
7
 
7
8
  export default class Tooltip {
8
9
  #sticky = false;
@@ -58,7 +58,7 @@ export function resolveUrl(base, append, runtimeBase = getRuntimeBase()) {
58
58
  } else if (runtimeBase) {
59
59
  return new URL(append, runtimeBase).href;
60
60
  }
61
- } catch (_error) {
61
+ } catch {
62
62
  // Fall back to simple concatenation below.
63
63
  }
64
64
 
@@ -19,7 +19,7 @@ export default class AxisGridView extends LayerView<import("../spec/view.js").La
19
19
  * @param {import("./view.js").ViewOptions} [options]
20
20
  */
21
21
  constructor(axisProps: Axis, type: string, context: import("../types/viewContext.js").default, layoutParent: import("./containerView.js").default, dataParent: import("./view.js").default, options?: import("./view.js").ViewOptions);
22
- axisProps: import("../spec/axis.js").GenomeAxis | import("../spec/axis.js").Axis;
22
+ axisProps: import("../spec/axis.js").Axis;
23
23
  getOrient(): import("../spec/axis.js").AxisOrient;
24
24
  }
25
25
  export type PositionalChannel = import("../spec/channel.js").PrimaryPositionalChannel;
@@ -1 +1 @@
1
- {"version":3,"file":"axisGridView.d.ts","sourceRoot":"","sources":["../../../src/view/axisGridView.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;GAMG;AACH;IACI;;;;;;;OAOG;IACH,uBAPW,IAAI,QAEJ,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,EA6BzC;IAHG,iFAA8B;IAKlC,kDAEC;CAKJ;gCAxDY,OAAO,oBAAoB,EAAE,wBAAwB;iCACrD,OAAO,iBAAiB,EAAE,kBAAkB;;;;mBAM5C,OAAO,WAAW,EAAE,OAAO;;;;mBAC3B,OAAO,iBAAiB,EAAE,IAAI;;;;yBAC9B,OAAO,iBAAiB,EAAE,UAAU;sBAd3B,gBAAgB"}
1
+ {"version":3,"file":"axisGridView.d.ts","sourceRoot":"","sources":["../../../src/view/axisGridView.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;GAMG;AACH;IACI;;;;;;;OAOG;IACH,uBAPW,IAAI,QAEJ,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,EAkBzC;IAHG,0CAA0B;IAK9B,kDAEC;CAKJ;gCA7CY,OAAO,oBAAoB,EAAE,wBAAwB;iCACrD,OAAO,iBAAiB,EAAE,kBAAkB;;;;mBAM5C,OAAO,WAAW,EAAE,OAAO;;;;mBAC3B,OAAO,iBAAiB,EAAE,IAAI;;;;yBAC9B,OAAO,iBAAiB,EAAE,UAAU;sBAd3B,gBAAgB"}
@@ -24,19 +24,8 @@ export default class AxisGridView extends LayerView {
24
24
  * @param {import("./view.js").ViewOptions} [options]
25
25
  */
26
26
  constructor(axisProps, type, context, layoutParent, dataParent, options) {
27
- // Now the presence of genomeAxis is based on field type, not scale type.
28
- // TODO: Use scale instead. However, it would make the initialization much more
29
- // complex because scales are not available before scale resolution.
30
- const genomeAxis = type == "locus";
31
-
32
- /** @type {Axis | GenomeAxis} */
33
- const fullAxisProps = {
34
- ...(genomeAxis ? defaultGenomeAxisProps : defaultAxisProps),
35
- ...axisProps,
36
- };
37
-
38
27
  super(
39
- createAxisGrid(fullAxisProps, type),
28
+ createAxisGrid(axisProps, type),
40
29
  context,
41
30
  layoutParent,
42
31
  dataParent,
@@ -47,7 +36,7 @@ export default class AxisGridView extends LayerView {
47
36
  }
48
37
  );
49
38
 
50
- this.axisProps = fullAxisProps;
39
+ this.axisProps = axisProps;
51
40
 
52
41
  markViewAsNonAddressable(this, { skipSubtree: true });
53
42
  }
@@ -61,40 +50,6 @@ export default class AxisGridView extends LayerView {
61
50
  }
62
51
  }
63
52
 
64
- /**
65
- * Based on: https://vega.github.io/vega-lite/docs/axis.html
66
- * TODO: The defaults should be taken from config (theme)
67
- *
68
- * @type {Axis}
69
- */
70
- const defaultAxisProps = {
71
- values: null,
72
-
73
- grid: false,
74
- gridCap: "butt",
75
- gridColor: "lightgray",
76
- gridDash: null,
77
- gridOpacity: 1,
78
- gridWidth: 1,
79
-
80
- tickCount: null,
81
- tickMinStep: null,
82
- };
83
-
84
- /**
85
- * @type {import("../spec/axis.js").GenomeAxis}
86
- */
87
- const defaultGenomeAxisProps = {
88
- ...defaultAxisProps,
89
-
90
- chromGrid: false,
91
- chromGridCap: "butt",
92
- chromGridColor: "gray",
93
- chromGridDash: [1, 5],
94
- chromGridOpacity: 1,
95
- chromGridWidth: 1,
96
- };
97
-
98
53
  /**
99
54
  * @param {Axis} axisProps
100
55
  * @param {string} type
@@ -31,8 +31,6 @@ export default class AxisView extends LayerView<import("../spec/view.js").LayerS
31
31
  * @typedef {import("../spec/axis.js").GenomeAxis} GenomeAxis
32
32
  * @typedef {import("../spec/axis.js").AxisOrient} AxisOrient
33
33
  * @typedef {import("./layout/flexLayout.js").SizeDef} SizeDef
34
- *
35
- * @typedef {Axis & { extent: number }} AugmentedAxis
36
34
  */
37
35
  /**
38
36
  * @param {Axis} axisProps
@@ -43,8 +41,9 @@ export default class AxisView extends LayerView<import("../spec/view.js").LayerS
43
41
  * @param {import("./view.js").ViewOptions} [options]
44
42
  */
45
43
  constructor(axisProps: import("../spec/axis.js").Axis, type: string, context: import("../types/viewContext.js").default, layoutParent: import("./containerView.js").default, dataParent: import("./view.js").default, options?: import("./view.js").ViewOptions);
46
- axisProps: import("../spec/axis.js").GenomeAxis | import("../spec/axis.js").Axis;
44
+ axisProps: import("../spec/axis.js").Axis | import("../spec/axis.js").GenomeAxis;
47
45
  getPerpendicularSize(): number;
46
+ #private;
48
47
  }
49
48
  import LayerView from "./layerView.js";
50
49
  //# sourceMappingURL=axisView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"axisView.d.ts","sourceRoot":"","sources":["../../../src/view/axisView.js"],"names":[],"mappings":"AAqCA;;GAEG;AACH,kIAEC;AAyYD;;;;GAIG;AACH,wFAHW,MAAM,uCAkNhB;AAnnBD;;GAEG;AACH,8BAFU,MAAM,CAAC,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,sCAAY,CAAC,CAKnF;AAEF;;GAEG;AACH,8BAFU,MAAM,uCAAa,OAAO,oBAAoB,EAAE,wBAAwB,CAAC,CAMjF;AASF;;;;;GAKG;AACH;IACI;;;;;;;;;;OAUG;IAEH;;;;;;;OAOG;IACH,6DALW,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,EAkCzC;IAHG,iFAA8B;IAmBlC,+BAEC;CAKJ;sBA9HqB,gBAAgB"}
1
+ {"version":3,"file":"axisView.d.ts","sourceRoot":"","sources":["../../../src/view/axisView.js"],"names":[],"mappings":"AAuCA;;GAEG;AACH,kIAEC;AAqhBD;;;;GAIG;AACH,wFAHW,MAAM,uCAqNhB;AAlwBD;;GAEG;AACH,8BAFU,MAAM,CAAC,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,sCAAY,CAAC,CAKnF;AAEF;;GAEG;AACH,8BAFU,MAAM,uCAAa,OAAO,oBAAoB,EAAE,wBAAwB,CAAC,CAMjF;AASF;;;;;GAKG;AACH;IAeI;;;;;;;;OAQG;IAEH;;;;;;;OAOG;IACH,6DALW,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,EAsDzC;IARG,iFAA8B;IA8ClC,+BAEC;;CAuEJ;sBAxPqB,gBAAgB"}