@genome-spy/core 0.72.0 → 0.74.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (396) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
  3. package/dist/bundle/browser-BTgw5ieH.js +126 -0
  4. package/dist/bundle/chunk-DmhlhrBa.js +11 -0
  5. package/dist/bundle/esm-BDFRLEuD.js +1248 -0
  6. package/dist/bundle/esm-BygJiwh0.js +573 -0
  7. package/dist/bundle/esm-CGX-qz1d.js +155 -0
  8. package/dist/bundle/esm-CgfVIRJ-.js +121 -0
  9. package/dist/bundle/esm-CuMSzCHy.js +298 -0
  10. package/dist/bundle/esm-DMXpJXM4.js +369 -0
  11. package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
  12. package/dist/bundle/esm-DtE8VqAv.js +1015 -0
  13. package/dist/bundle/esm-sIoQYZ21.js +461 -0
  14. package/dist/bundle/index.es.js +21078 -24556
  15. package/dist/bundle/index.js +379 -383
  16. package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
  17. package/dist/schema.json +13349 -7082
  18. package/dist/src/config/axisConfig.d.ts +16 -0
  19. package/dist/src/config/axisConfig.d.ts.map +1 -0
  20. package/dist/src/config/axisConfig.js +84 -0
  21. package/dist/src/config/defaultConfig.d.ts +3 -0
  22. package/dist/src/config/defaultConfig.d.ts.map +1 -0
  23. package/dist/src/config/defaultConfig.js +38 -0
  24. package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
  25. package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
  26. package/dist/src/config/defaults/axisDefaults.js +72 -0
  27. package/dist/src/config/defaults/markDefaults.d.ts +15 -0
  28. package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
  29. package/dist/src/config/defaults/markDefaults.js +121 -0
  30. package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
  31. package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
  32. package/dist/src/config/defaults/scaleDefaults.js +18 -0
  33. package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
  34. package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
  35. package/dist/src/config/defaults/titleDefaults.js +47 -0
  36. package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
  37. package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
  38. package/dist/src/config/defaults/viewDefaults.js +2 -0
  39. package/dist/src/config/markConfig.d.ts +8 -0
  40. package/dist/src/config/markConfig.d.ts.map +1 -0
  41. package/dist/src/config/markConfig.js +27 -0
  42. package/dist/src/config/mergeConfig.d.ts +8 -0
  43. package/dist/src/config/mergeConfig.d.ts.map +1 -0
  44. package/dist/src/config/mergeConfig.js +81 -0
  45. package/dist/src/config/resolveConfig.d.ts +22 -0
  46. package/dist/src/config/resolveConfig.d.ts.map +1 -0
  47. package/dist/src/config/resolveConfig.js +32 -0
  48. package/dist/src/config/scaleConfig.d.ts +40 -0
  49. package/dist/src/config/scaleConfig.d.ts.map +1 -0
  50. package/dist/src/config/scaleConfig.js +220 -0
  51. package/dist/src/config/styleUtils.d.ts +6 -0
  52. package/dist/src/config/styleUtils.d.ts.map +1 -0
  53. package/dist/src/config/styleUtils.js +10 -0
  54. package/dist/src/config/themes.d.ts +15 -0
  55. package/dist/src/config/themes.d.ts.map +1 -0
  56. package/dist/src/config/themes.js +293 -0
  57. package/dist/src/config/titleConfig.d.ts +12 -0
  58. package/dist/src/config/titleConfig.d.ts.map +1 -0
  59. package/dist/src/config/titleConfig.js +42 -0
  60. package/dist/src/config/viewConfig.d.ts +7 -0
  61. package/dist/src/config/viewConfig.d.ts.map +1 -0
  62. package/dist/src/config/viewConfig.js +29 -0
  63. package/dist/src/data/flowNode.d.ts +22 -1
  64. package/dist/src/data/flowNode.d.ts.map +1 -1
  65. package/dist/src/data/flowNode.js +37 -1
  66. package/dist/src/data/formats/bed.d.ts +8 -0
  67. package/dist/src/data/formats/bed.d.ts.map +1 -0
  68. package/dist/src/data/formats/bed.js +58 -0
  69. package/dist/src/data/formats/bedpe.d.ts +8 -0
  70. package/dist/src/data/formats/bedpe.d.ts.map +1 -0
  71. package/dist/src/data/formats/bedpe.js +164 -0
  72. package/dist/src/data/formats/fasta.d.ts.map +1 -1
  73. package/dist/src/data/formats/fasta.js +4 -0
  74. package/dist/src/data/formats/parquet.d.ts.map +1 -1
  75. package/dist/src/data/formats/parquet.js +4 -0
  76. package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
  77. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  78. package/dist/src/data/sources/dataSourceFactory.js +5 -141
  79. package/dist/src/data/sources/dataUtils.d.ts +16 -0
  80. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  81. package/dist/src/data/sources/dataUtils.js +53 -3
  82. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  83. package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
  84. package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
  85. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  86. package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
  87. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  88. package/dist/src/data/sources/lazy/bamSource.js +11 -0
  89. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  90. package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
  91. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  92. package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
  93. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  94. package/dist/src/data/sources/lazy/gff3Source.js +12 -1
  95. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  96. package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
  97. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
  98. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
  99. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
  100. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
  101. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
  102. package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
  103. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  104. package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
  105. package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
  106. package/dist/src/data/sources/lazy/vcfSource.js +11 -0
  107. package/dist/src/data/sources/urlSource.d.ts +4 -0
  108. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  109. package/dist/src/data/sources/urlSource.js +138 -16
  110. package/dist/src/data/transforms/aggregate.d.ts +1 -0
  111. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  112. package/dist/src/data/transforms/aggregate.js +30 -8
  113. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
  114. package/dist/src/data/transforms/aggregateOps.js +12 -1
  115. package/dist/src/data/transforms/coverage.js +2 -2
  116. package/dist/src/data/transforms/filter.js +1 -1
  117. package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
  118. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  119. package/dist/src/data/transforms/filterScoredLabels.js +9 -0
  120. package/dist/src/data/transforms/measureText.d.ts +1 -0
  121. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  122. package/dist/src/data/transforms/measureText.js +14 -5
  123. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  124. package/dist/src/data/transforms/pileup.js +1 -2
  125. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  126. package/dist/src/data/transforms/regexFold.js +0 -1
  127. package/dist/src/embedFactory.d.ts +13 -0
  128. package/dist/src/embedFactory.d.ts.map +1 -0
  129. package/dist/src/embedFactory.js +127 -0
  130. package/dist/src/encoder/accessor.d.ts +3 -12
  131. package/dist/src/encoder/accessor.d.ts.map +1 -1
  132. package/dist/src/encoder/accessor.js +10 -65
  133. package/dist/src/encoder/encoder.d.ts +51 -8
  134. package/dist/src/encoder/encoder.d.ts.map +1 -1
  135. package/dist/src/encoder/encoder.js +179 -55
  136. package/dist/src/fonts/bmFontManager.js +1 -1
  137. package/dist/src/full.d.ts +2 -0
  138. package/dist/src/full.d.ts.map +1 -0
  139. package/dist/src/full.js +2 -0
  140. package/dist/src/genome/assemblyPreflight.d.ts +31 -0
  141. package/dist/src/genome/assemblyPreflight.d.ts.map +1 -0
  142. package/dist/src/genome/assemblyPreflight.js +99 -0
  143. package/dist/src/genome/genome.d.ts +10 -2
  144. package/dist/src/genome/genome.d.ts.map +1 -1
  145. package/dist/src/genome/genome.js +20 -2
  146. package/dist/src/genome/genomeStore.d.ts +34 -3
  147. package/dist/src/genome/genomeStore.d.ts.map +1 -1
  148. package/dist/src/genome/genomeStore.js +409 -18
  149. package/dist/src/genome/rootGenomeConfig.d.ts +26 -0
  150. package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -0
  151. package/dist/src/genome/rootGenomeConfig.js +98 -0
  152. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  153. package/dist/src/genome/scaleLocus.js +26 -7
  154. package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
  155. package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
  156. package/dist/src/genomeSpy/cursorManager.js +131 -0
  157. package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
  158. package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
  159. package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
  160. package/dist/src/genomeSpy/interactionController.d.ts +10 -1
  161. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
  162. package/dist/src/genomeSpy/interactionController.js +448 -40
  163. package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
  164. package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
  165. package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
  166. package/dist/src/genomeSpy/renderCoordinator.js +1 -1
  167. package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
  168. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
  169. package/dist/src/genomeSpy/viewContextFactory.js +12 -4
  170. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
  171. package/dist/src/genomeSpy/viewDataInit.js +7 -3
  172. package/dist/src/genomeSpy.d.ts +1 -114
  173. package/dist/src/genomeSpy.d.ts.map +1 -1
  174. package/dist/src/genomeSpy.js +7 -614
  175. package/dist/src/genomeSpyBase.d.ts +133 -0
  176. package/dist/src/genomeSpyBase.d.ts.map +1 -0
  177. package/dist/src/genomeSpyBase.js +719 -0
  178. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  179. package/dist/src/gl/arrayBuilder.js +0 -3
  180. package/dist/src/gl/canvasSizeHelper.d.ts +74 -0
  181. package/dist/src/gl/canvasSizeHelper.d.ts.map +1 -0
  182. package/dist/src/gl/canvasSizeHelper.js +203 -0
  183. package/dist/src/gl/colorUtils.d.ts.map +1 -1
  184. package/dist/src/gl/colorUtils.js +3 -0
  185. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  186. package/dist/src/gl/dataToVertices.js +13 -8
  187. package/dist/src/gl/glslScaleGenerator.d.ts +2 -2
  188. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  189. package/dist/src/gl/glslScaleGenerator.js +5 -7
  190. package/dist/src/gl/webGLHelper.d.ts +25 -11
  191. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  192. package/dist/src/gl/webGLHelper.js +59 -33
  193. package/dist/src/index.d.ts +3 -9
  194. package/dist/src/index.d.ts.map +1 -1
  195. package/dist/src/index.js +5 -111
  196. package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
  197. package/dist/src/marks/link.d.ts.map +1 -1
  198. package/dist/src/marks/link.js +5 -26
  199. package/dist/src/marks/mark.d.ts +8 -1
  200. package/dist/src/marks/mark.d.ts.map +1 -1
  201. package/dist/src/marks/mark.js +67 -21
  202. package/dist/src/marks/markUtils.d.ts +18 -1
  203. package/dist/src/marks/markUtils.d.ts.map +1 -1
  204. package/dist/src/marks/markUtils.js +52 -4
  205. package/dist/src/marks/point.d.ts.map +1 -1
  206. package/dist/src/marks/point.js +6 -26
  207. package/dist/src/marks/rect.d.ts.map +1 -1
  208. package/dist/src/marks/rect.js +13 -21
  209. package/dist/src/marks/rule.d.ts +7 -2
  210. package/dist/src/marks/rule.d.ts.map +1 -1
  211. package/dist/src/marks/rule.js +125 -16
  212. package/dist/src/marks/text.d.ts.map +1 -1
  213. package/dist/src/marks/text.js +5 -47
  214. package/dist/src/minimal.d.ts +8 -0
  215. package/dist/src/minimal.d.ts.map +1 -0
  216. package/dist/src/minimal.js +21 -0
  217. package/dist/src/paramRuntime/viewParamRuntime.d.ts +19 -0
  218. package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
  219. package/dist/src/paramRuntime/viewParamRuntime.js +35 -0
  220. package/dist/src/scale/scale.d.ts.map +1 -1
  221. package/dist/src/scale/scale.js +13 -7
  222. package/dist/src/scales/axisResolution.d.ts.map +1 -1
  223. package/dist/src/scales/axisResolution.js +9 -5
  224. package/dist/src/scales/domainPlanner.d.ts +58 -7
  225. package/dist/src/scales/domainPlanner.d.ts.map +1 -1
  226. package/dist/src/scales/domainPlanner.js +395 -40
  227. package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
  228. package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
  229. package/dist/src/scales/indexLikeDomainUtils.js +67 -0
  230. package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
  231. package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
  232. package/dist/src/scales/resolutionMemberOrder.js +22 -0
  233. package/dist/src/scales/scaleInstanceManager.d.ts +2 -1
  234. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
  235. package/dist/src/scales/scaleInstanceManager.js +10 -11
  236. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
  237. package/dist/src/scales/scaleInteractionController.js +59 -18
  238. package/dist/src/scales/scalePropsResolver.d.ts +3 -1
  239. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
  240. package/dist/src/scales/scalePropsResolver.js +83 -6
  241. package/dist/src/scales/scaleResolution.d.ts +39 -0
  242. package/dist/src/scales/scaleResolution.d.ts.map +1 -1
  243. package/dist/src/scales/scaleResolution.js +504 -82
  244. package/dist/src/scales/scaleResolutionTestUtils.d.ts +21 -0
  245. package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -0
  246. package/dist/src/scales/scaleResolutionTestUtils.js +37 -0
  247. package/dist/src/scales/scaleRules.d.ts.map +1 -1
  248. package/dist/src/scales/scaleRules.js +16 -2
  249. package/dist/src/scales/selectionDomainUtils.d.ts +52 -0
  250. package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -0
  251. package/dist/src/scales/selectionDomainUtils.js +194 -0
  252. package/dist/src/scales/zoomDomainUtils.d.ts +18 -0
  253. package/dist/src/scales/zoomDomainUtils.d.ts.map +1 -0
  254. package/dist/src/scales/zoomDomainUtils.js +69 -0
  255. package/dist/src/screenshotHarness.d.ts +16 -0
  256. package/dist/src/screenshotHarness.d.ts.map +1 -0
  257. package/dist/src/screenshotHarness.js +241 -0
  258. package/dist/src/singlePageApp.js +1 -1
  259. package/dist/src/spec/axis.d.ts +41 -30
  260. package/dist/src/spec/channel.d.ts +15 -9
  261. package/dist/src/spec/config.d.ts +264 -0
  262. package/dist/src/spec/data.d.ts +30 -3
  263. package/dist/src/spec/decoration.d.ts +51 -0
  264. package/dist/src/spec/exampleFiles.d.ts +12 -0
  265. package/dist/src/spec/exampleFiles.d.ts.map +1 -0
  266. package/dist/src/spec/exampleFiles.js +52 -0
  267. package/dist/src/spec/font.d.ts +1 -1
  268. package/dist/src/spec/genome.d.ts +22 -2
  269. package/dist/src/spec/mark.d.ts +97 -13
  270. package/dist/src/spec/parameter.d.ts +62 -5
  271. package/dist/src/spec/root.d.ts +34 -1
  272. package/dist/src/spec/scale.d.ts +46 -5
  273. package/dist/src/spec/title.d.ts +13 -2
  274. package/dist/src/spec/tooltip.d.ts +1 -1
  275. package/dist/src/spec/transform.d.ts +39 -4
  276. package/dist/src/spec/view.d.ts +67 -19
  277. package/dist/src/styles/genome-spy.css +63 -55
  278. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  279. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  280. package/dist/src/styles/genome-spy.css.js +31 -22
  281. package/dist/src/testSetup.d.ts +2 -0
  282. package/dist/src/testSetup.d.ts.map +1 -0
  283. package/dist/src/testSetup.js +5 -0
  284. package/dist/src/tooltip/dataTooltipHandler.js +66 -11
  285. package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
  286. package/dist/src/tooltip/tooltipContext.js +3 -2
  287. package/dist/src/types/embedApi.d.ts +26 -0
  288. package/dist/src/types/encoder.d.ts +17 -15
  289. package/dist/src/types/scaleResolutionApi.d.ts +20 -0
  290. package/dist/src/types/viewContext.d.ts +23 -1
  291. package/dist/src/utils/expression.d.ts +2 -2
  292. package/dist/src/utils/expression.d.ts.map +1 -1
  293. package/dist/src/utils/expression.js +63 -8
  294. package/dist/src/utils/field.d.ts.map +1 -1
  295. package/dist/src/utils/field.js +0 -1
  296. package/dist/src/utils/inertia.d.ts.map +1 -1
  297. package/dist/src/utils/inertia.js +0 -1
  298. package/dist/src/utils/inferSpecBaseUrl.d.ts +14 -0
  299. package/dist/src/utils/inferSpecBaseUrl.d.ts.map +1 -0
  300. package/dist/src/utils/inferSpecBaseUrl.js +73 -0
  301. package/dist/src/utils/inputBinding.d.ts +1 -1
  302. package/dist/src/utils/interaction.d.ts +109 -0
  303. package/dist/src/utils/interaction.d.ts.map +1 -0
  304. package/dist/src/utils/interaction.js +200 -0
  305. package/dist/src/utils/interactionEvent.d.ts +62 -33
  306. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  307. package/dist/src/utils/interactionEvent.js +86 -48
  308. package/dist/src/utils/kWayMerge.js +1 -1
  309. package/dist/src/utils/mergeObjects.d.ts.map +1 -1
  310. package/dist/src/utils/mergeObjects.js +0 -2
  311. package/dist/src/utils/radixSort.d.ts.map +1 -1
  312. package/dist/src/utils/radixSort.js +0 -2
  313. package/dist/src/utils/throttle.d.ts.map +1 -1
  314. package/dist/src/utils/throttle.js +0 -2
  315. package/dist/src/utils/ui/tooltip.d.ts +1 -0
  316. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  317. package/dist/src/utils/ui/tooltip.js +1 -0
  318. package/dist/src/utils/url.js +1 -1
  319. package/dist/src/view/axisGridView.d.ts +1 -1
  320. package/dist/src/view/axisGridView.d.ts.map +1 -1
  321. package/dist/src/view/axisGridView.js +2 -47
  322. package/dist/src/view/axisView.d.ts +2 -3
  323. package/dist/src/view/axisView.d.ts.map +1 -1
  324. package/dist/src/view/axisView.js +251 -106
  325. package/dist/src/view/concatView.d.ts +2 -1
  326. package/dist/src/view/concatView.d.ts.map +1 -1
  327. package/dist/src/view/concatView.js +4 -2
  328. package/dist/src/view/containerMutationHelper.d.ts +3 -0
  329. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  330. package/dist/src/view/containerMutationHelper.js +12 -1
  331. package/dist/src/view/dataReadiness.d.ts +2 -2
  332. package/dist/src/view/dataReadiness.d.ts.map +1 -1
  333. package/dist/src/view/dataReadiness.js +63 -58
  334. package/dist/src/view/facetView.d.ts +1 -1
  335. package/dist/src/view/facetView.js +4 -4
  336. package/dist/src/view/flowBuilder.js +2 -2
  337. package/dist/src/view/gridView/gridChild.d.ts +13 -0
  338. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  339. package/dist/src/view/gridView/gridChild.js +247 -49
  340. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  341. package/dist/src/view/gridView/gridView.js +296 -99
  342. package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
  343. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
  344. package/dist/src/view/gridView/keyboardZoomController.js +1 -1
  345. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  346. package/dist/src/view/gridView/scrollbar.js +4 -2
  347. package/dist/src/view/gridView/selectionRect.d.ts +4 -0
  348. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  349. package/dist/src/view/gridView/selectionRect.js +20 -1
  350. package/dist/src/view/gridView/separatorView.d.ts +1 -0
  351. package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
  352. package/dist/src/view/gridView/separatorView.js +9 -0
  353. package/dist/src/view/interactionRouting.d.ts +20 -0
  354. package/dist/src/view/interactionRouting.d.ts.map +1 -0
  355. package/dist/src/view/interactionRouting.js +53 -0
  356. package/dist/src/view/layerView.d.ts.map +1 -1
  357. package/dist/src/view/layerView.js +12 -9
  358. package/dist/src/view/layout/grid.js +1 -1
  359. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  360. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
  361. package/dist/src/view/testUtils.d.ts +17 -3
  362. package/dist/src/view/testUtils.d.ts.map +1 -1
  363. package/dist/src/view/testUtils.js +62 -69
  364. package/dist/src/view/title.d.ts +8 -1
  365. package/dist/src/view/title.d.ts.map +1 -1
  366. package/dist/src/view/title.js +66 -76
  367. package/dist/src/view/unitView.d.ts +1 -1
  368. package/dist/src/view/unitView.d.ts.map +1 -1
  369. package/dist/src/view/unitView.js +67 -17
  370. package/dist/src/view/view.d.ts +76 -30
  371. package/dist/src/view/view.d.ts.map +1 -1
  372. package/dist/src/view/view.js +136 -47
  373. package/dist/src/view/viewFactory.d.ts +11 -3
  374. package/dist/src/view/viewFactory.d.ts.map +1 -1
  375. package/dist/src/view/viewFactory.js +37 -11
  376. package/dist/src/view/viewUtils.d.ts.map +1 -1
  377. package/dist/src/view/viewUtils.js +41 -5
  378. package/dist/src/view/zoom.d.ts +15 -3
  379. package/dist/src/view/zoom.d.ts.map +1 -1
  380. package/dist/src/view/zoom.js +375 -80
  381. package/package.json +20 -10
  382. package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
  383. package/dist/bundle/browser-0iNU5Wit.js +0 -138
  384. package/dist/bundle/index-BYsZN7b0.js +0 -1597
  385. package/dist/bundle/index-C3kClAEN.js +0 -1771
  386. package/dist/bundle/index-C7wOh6y1.js +0 -657
  387. package/dist/bundle/index-CRaQAuki.js +0 -326
  388. package/dist/bundle/index-D9v1PCj9.js +0 -507
  389. package/dist/bundle/index-GDOuv_D5.js +0 -266
  390. package/dist/bundle/index-Gt44EOIH.js +0 -628
  391. package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
  392. package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
  393. package/dist/bundle/unzip-Bac01w6X.js +0 -1492
  394. package/dist/src/config/scaleDefaults.d.ts +0 -8
  395. package/dist/src/config/scaleDefaults.d.ts.map +0 -1
  396. package/dist/src/config/scaleDefaults.js +0 -45
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @param {import("../spec/view.js").ViewSpec} spec
3
+ * @param {{ new(...args: any[]): import("../view/view.js").default }} [viewType]
4
+ * @returns {Promise<import("../view/view.js").default>}
5
+ */
6
+ export function initView(spec: import("../spec/view.js").ViewSpec, viewType?: {
7
+ new (...args: any[]): import("../view/view.js").default;
8
+ }): Promise<import("../view/view.js").default>;
9
+ /**
10
+ * @param {import("../view/view.js").default} view
11
+ * @param {import("../spec/channel.js").ChannelWithScale} channel
12
+ * @returns {import("./scaleResolution.js").default}
13
+ */
14
+ export function getRequiredScaleResolution(view: import("../view/view.js").default, channel: import("../spec/channel.js").ChannelWithScale): import("./scaleResolution.js").default;
15
+ /**
16
+ * @param {import("../view/view.js").default} view
17
+ * @param {import("../spec/channel.js").ChannelWithScale} channel
18
+ * @returns {any[]}
19
+ */
20
+ export function getScaleDomain(view: import("../view/view.js").default, channel: import("../spec/channel.js").ChannelWithScale): any[];
21
+ //# sourceMappingURL=scaleResolutionTestUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleResolutionTestUtils.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleResolutionTestUtils.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,+BAJW,OAAO,iBAAiB,EAAE,QAAQ,aAClC;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACxD,OAAO,CAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC,CAQtD;AAED;;;;GAIG;AACH,iDAJW,OAAO,iBAAiB,EAAE,OAAO,WACjC,OAAO,oBAAoB,EAAE,gBAAgB,GAC3C,OAAO,sBAAsB,EAAE,OAAO,CAQlD;AAED;;;;GAIG;AACH,qCAJW,OAAO,iBAAiB,EAAE,OAAO,WACjC,OAAO,oBAAoB,EAAE,gBAAgB,GAC3C,GAAG,EAAE,CAIjB"}
@@ -0,0 +1,37 @@
1
+ import { createHeadlessEngine } from "../genomeSpy/headlessBootstrap.js";
2
+ import UnitView from "../view/unitView.js";
3
+
4
+ /**
5
+ * @param {import("../spec/view.js").ViewSpec} spec
6
+ * @param {{ new(...args: any[]): import("../view/view.js").default }} [viewType]
7
+ * @returns {Promise<import("../view/view.js").default>}
8
+ */
9
+ export async function initView(spec, viewType = UnitView) {
10
+ const { view } = await createHeadlessEngine(spec);
11
+ if (!(view instanceof viewType)) {
12
+ throw new Error("ViewClass and the spec do not match!");
13
+ }
14
+ return view;
15
+ }
16
+
17
+ /**
18
+ * @param {import("../view/view.js").default} view
19
+ * @param {import("../spec/channel.js").ChannelWithScale} channel
20
+ * @returns {import("./scaleResolution.js").default}
21
+ */
22
+ export function getRequiredScaleResolution(view, channel) {
23
+ const resolution = view.getScaleResolution(channel);
24
+ if (!resolution) {
25
+ throw new Error(`Expected ${channel} scale resolution.`);
26
+ }
27
+ return resolution;
28
+ }
29
+
30
+ /**
31
+ * @param {import("../view/view.js").default} view
32
+ * @param {import("../spec/channel.js").ChannelWithScale} channel
33
+ * @returns {any[]}
34
+ */
35
+ export function getScaleDomain(view, channel) {
36
+ return getRequiredScaleResolution(view, channel).scale.domain();
37
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"scaleRules.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleRules.js"],"names":[],"mappings":"AAcA;;GAEG;AAEH;;;;GAIG;AACH,6CAJW,OAAO,YACP,OAAO,oBAAoB,EAAE,IAAI,GAC/B,OAAO,kBAAkB,EAAE,SAAS,CAkEhD;AAED;;;GAGG;AACH,6CAHW,OAAO,kBAAkB,EAAE,KAAK,WAChC,OAAO,QAWjB;sBAvFY,OAAO,oBAAoB,EAAE,OAAO"}
1
+ {"version":3,"file":"scaleRules.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleRules.js"],"names":[],"mappings":"AAcA;;GAEG;AAEH;;;;GAIG;AACH,6CAJW,OAAO,YACP,OAAO,oBAAoB,EAAE,IAAI,GAC/B,OAAO,kBAAkB,EAAE,SAAS,CA2EhD;AAED;;;GAGG;AACH,6CAHW,OAAO,kBAAkB,EAAE,KAAK,WAChC,OAAO,QAgBjB;sBArGY,OAAO,oBAAoB,EAAE,OAAO"}
@@ -22,6 +22,15 @@ import {
22
22
  * @returns {import("../spec/scale.js").ScaleType}
23
23
  */
24
24
  export function getDefaultScaleType(channel, dataType) {
25
+ // TODO: Follow up with Vega-Lite-like discrete positional scale inference.
26
+ // For nominal/ordinal x/y channels, the default should not always be "band".
27
+ // The choice should depend on resolved mark usage and related signals:
28
+ // - rect/bar/rule/tick-like coverage -> "band"
29
+ // - point/text/link-like centered positions -> "point"
30
+ // - explicit relative band sizing / axis tickBand / nested offsets -> "band"
31
+ // This requires passing richer context than just channel + dataType.
32
+ //
33
+ // Keep the current behavior in this branch to avoid changing existing specs.
25
34
  // TODO: Band scale, Bin-Quantitative
26
35
 
27
36
  if (dataType == INDEX || dataType == LOCUS) {
@@ -93,11 +102,16 @@ export function getDefaultScaleType(channel, dataType) {
93
102
  */
94
103
  export function applyLockedProperties(props, channel) {
95
104
  if (isPositionalChannel(channel) && props.type !== "ordinal") {
96
- // Unit ranges are a temporary default until pixel ranges are adopted.
105
+ // Positional scales currently operate in unit coordinates.
106
+ // Keep this invariant until pixel ranges are adopted.
97
107
  props.range = [0, 1];
98
108
  }
99
109
 
100
- if (channel == "opacity" && isContinuous(props.type)) {
110
+ if (
111
+ channel == "opacity" &&
112
+ isContinuous(props.type) &&
113
+ props.clamp === undefined
114
+ ) {
101
115
  props.clamp = true;
102
116
  }
103
117
  }
@@ -0,0 +1,52 @@
1
+ /**
2
+ * @param {{ findRuntimeForParam: (name: string) => any }} paramRuntime
3
+ * @param {string} paramName
4
+ */
5
+ export function requireParamRuntime(paramRuntime: {
6
+ findRuntimeForParam: (name: string) => any;
7
+ }, paramName: string): any;
8
+ /**
9
+ * @param {any} selection
10
+ * @param {string} paramName
11
+ */
12
+ export function requireIntervalSelection(selection: any, paramName: string): import("../types/selectionTypes.js").IntervalSelection;
13
+ /**
14
+ * Resolves the runtime-backed interval selection binding used by a linked
15
+ * domain. Matching is based on the actual resolved runtime slot instead of
16
+ * parameter name alone, so scoped params with the same name remain distinct.
17
+ *
18
+ * @param {import("../view/view.js").default} view
19
+ * @param {string} paramName
20
+ * @param {"x" | "y"} encoding
21
+ */
22
+ export function resolveIntervalSelectionBinding(view: import("../view/view.js").default, paramName: string, encoding: "x" | "y"): {
23
+ runtime: any;
24
+ selection: import("../types/selectionTypes.js").IntervalSelection;
25
+ };
26
+ /**
27
+ * @param {import("../view/view.js").default} root
28
+ * @param {any} runtime
29
+ * @param {string} paramName
30
+ * @param {"x" | "y"} encoding
31
+ */
32
+ export function findIntervalSelectionBindingOwners(root: import("../view/view.js").default, runtime: any, paramName: string, encoding: "x" | "y"): {
33
+ view: import("../view/view.js").default;
34
+ param: import("../spec/parameter.js").SelectionParameter;
35
+ }[];
36
+ /**
37
+ * @param {import("../view/view.js").default} view
38
+ * @param {any} runtime
39
+ * @param {string} paramName
40
+ * @param {"x" | "y"} encoding
41
+ */
42
+ export function hasIntervalSelectionBindingInScope(view: import("../view/view.js").default, runtime: any, paramName: string, encoding: "x" | "y"): boolean;
43
+ /**
44
+ * @param {number[]} interval
45
+ * @param {number[]} zoomExtent
46
+ * @param {{ roundToIntegers?: boolean }} [options]
47
+ * @returns {[number, number] | undefined}
48
+ */
49
+ export function normalizeIntervalForSelection(interval: number[], zoomExtent: number[], options?: {
50
+ roundToIntegers?: boolean;
51
+ }): [number, number] | undefined;
52
+ //# sourceMappingURL=selectionDomainUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selectionDomainUtils.d.ts","sourceRoot":"","sources":["../../../src/scales/selectionDomainUtils.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,kDAHW;IAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAA;CAAE,aAC9C,MAAM,OAUhB;AAED;;;GAGG;AACH,oDAHW,GAAG,aACH,MAAM,0DAgBhB;AAED;;;;;;;;GAQG;AACH,sDAJW,OAAO,iBAAiB,EAAE,OAAO,aACjC,MAAM,YACN,GAAG,GAAG,GAAG;;;EAiBnB;AAED;;;;;GAKG;AACH,yDALW,OAAO,iBAAiB,EAAE,OAAO,WACjC,GAAG,aACH,MAAM,YACN,GAAG,GAAG,GAAG;UAGG,OAAO,iBAAiB,EAAE,OAAO;WAAS,OAAO,sBAAsB,EAAE,kBAAkB;IAuBjH;AAED;;;;;GAKG;AACH,yDALW,OAAO,iBAAiB,EAAE,OAAO,WACjC,GAAG,aACH,MAAM,YACN,GAAG,GAAG,GAAG,WA8CnB;AAED;;;;;GAKG;AACH,wDALW,MAAM,EAAE,cACR,MAAM,EAAE,YACR;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAsCxC"}
@@ -0,0 +1,194 @@
1
+ import { isSelectionParameter } from "../paramRuntime/paramUtils.js";
2
+ import {
3
+ asSelectionConfig,
4
+ isIntervalSelection,
5
+ isIntervalSelectionConfig,
6
+ } from "../selection/selection.js";
7
+
8
+ /**
9
+ * @param {{ findRuntimeForParam: (name: string) => any }} paramRuntime
10
+ * @param {string} paramName
11
+ */
12
+ export function requireParamRuntime(paramRuntime, paramName) {
13
+ const runtime = paramRuntime.findRuntimeForParam(paramName);
14
+ if (!runtime) {
15
+ throw new Error(
16
+ `Selection domain parameter "${paramName}" was not found.`
17
+ );
18
+ }
19
+ return runtime;
20
+ }
21
+
22
+ /**
23
+ * @param {any} selection
24
+ * @param {string} paramName
25
+ */
26
+ export function requireIntervalSelection(selection, paramName) {
27
+ if (!selection) {
28
+ throw new Error(
29
+ `Selection domain parameter "${paramName}" was not found.`
30
+ );
31
+ }
32
+
33
+ if (!isIntervalSelection(selection)) {
34
+ throw new Error(
35
+ `Selection domain parameter "${paramName}" must be an interval selection.`
36
+ );
37
+ }
38
+
39
+ return selection;
40
+ }
41
+
42
+ /**
43
+ * Resolves the runtime-backed interval selection binding used by a linked
44
+ * domain. Matching is based on the actual resolved runtime slot instead of
45
+ * parameter name alone, so scoped params with the same name remain distinct.
46
+ *
47
+ * @param {import("../view/view.js").default} view
48
+ * @param {string} paramName
49
+ * @param {"x" | "y"} encoding
50
+ */
51
+ export function resolveIntervalSelectionBinding(view, paramName, encoding) {
52
+ const runtime = view.paramRuntime.findRuntimeForParam
53
+ ? requireParamRuntime(view.paramRuntime, paramName)
54
+ : view.paramRuntime;
55
+ const selection = requireIntervalSelection(
56
+ runtime.getValue
57
+ ? runtime.getValue(paramName)
58
+ : view.paramRuntime.findValue(paramName),
59
+ paramName
60
+ );
61
+
62
+ return {
63
+ runtime,
64
+ selection,
65
+ };
66
+ }
67
+
68
+ /**
69
+ * @param {import("../view/view.js").default} root
70
+ * @param {any} runtime
71
+ * @param {string} paramName
72
+ * @param {"x" | "y"} encoding
73
+ */
74
+ export function findIntervalSelectionBindingOwners(root, runtime, paramName, encoding) {
75
+ /** @type {{ view: import("../view/view.js").default, param: import("../spec/parameter.js").SelectionParameter }[]} */
76
+ const owners = [];
77
+
78
+ root.visit((view) => {
79
+ const param = view.paramRuntime?.paramConfigs?.get(paramName);
80
+ if (!param || !isSelectionParameter(param)) {
81
+ return;
82
+ }
83
+
84
+ const select = asSelectionConfig(param.select);
85
+ if (
86
+ !isIntervalSelectionConfig(select) ||
87
+ !select.encodings?.includes(encoding)
88
+ ) {
89
+ return;
90
+ }
91
+
92
+ if (view.paramRuntime.findRuntimeForParam(paramName) === runtime) {
93
+ owners.push({ view, param });
94
+ }
95
+ });
96
+
97
+ return owners;
98
+ }
99
+
100
+ /**
101
+ * @param {import("../view/view.js").default} view
102
+ * @param {any} runtime
103
+ * @param {string} paramName
104
+ * @param {"x" | "y"} encoding
105
+ */
106
+ export function hasIntervalSelectionBindingInScope(
107
+ view,
108
+ runtime,
109
+ paramName,
110
+ encoding
111
+ ) {
112
+ const seen = new Set();
113
+ const ancestorGroups = [
114
+ view.getLayoutAncestors?.(),
115
+ view.getDataAncestors?.(),
116
+ [view],
117
+ ];
118
+
119
+ for (const views of ancestorGroups) {
120
+ for (const candidateView of views ?? []) {
121
+ if (!candidateView || seen.has(candidateView)) {
122
+ continue;
123
+ }
124
+
125
+ seen.add(candidateView);
126
+
127
+ const param = candidateView.paramRuntime?.paramConfigs?.get(paramName);
128
+ if (!param || !isSelectionParameter(param)) {
129
+ continue;
130
+ }
131
+
132
+ const select = asSelectionConfig(param.select);
133
+ if (
134
+ !isIntervalSelectionConfig(select) ||
135
+ !select.encodings?.includes(encoding)
136
+ ) {
137
+ continue;
138
+ }
139
+
140
+ if (
141
+ candidateView.paramRuntime.findRuntimeForParam?.(paramName) ===
142
+ runtime
143
+ ) {
144
+ return true;
145
+ }
146
+ }
147
+ }
148
+
149
+ return false;
150
+ }
151
+
152
+ /**
153
+ * @param {number[]} interval
154
+ * @param {number[]} zoomExtent
155
+ * @param {{ roundToIntegers?: boolean }} [options]
156
+ * @returns {[number, number] | undefined}
157
+ */
158
+ export function normalizeIntervalForSelection(
159
+ interval,
160
+ zoomExtent,
161
+ options = {}
162
+ ) {
163
+ if (!interval || interval.length !== 2) {
164
+ return;
165
+ }
166
+
167
+ const a = Number(interval[0]);
168
+ const b = Number(interval[1]);
169
+ if (!Number.isFinite(a) || !Number.isFinite(b)) {
170
+ return;
171
+ }
172
+
173
+ let min = Math.min(a, b);
174
+ let max = Math.max(a, b);
175
+
176
+ min = Math.max(zoomExtent[0], min);
177
+ max = Math.min(zoomExtent[1], max);
178
+
179
+ if (min > max) {
180
+ return;
181
+ }
182
+
183
+ if (options.roundToIntegers) {
184
+ min = Math.ceil(min);
185
+ max = Math.ceil(max);
186
+ min = Math.max(zoomExtent[0], min);
187
+ max = Math.min(zoomExtent[1], max);
188
+ if (min > max) {
189
+ return;
190
+ }
191
+ }
192
+
193
+ return [min, max];
194
+ }
@@ -0,0 +1,18 @@
1
+ /**
2
+ * @typedef {import("../types/encoder.js").VegaScale} VegaScale
3
+ */
4
+ /**
5
+ * Zooms a numeric two-point domain according to scale type.
6
+ *
7
+ * @param {VegaScale} scale
8
+ * @param {[number, number]} domain
9
+ * @param {number} anchor
10
+ * @param {number} scaleFactor
11
+ * @param {{ onUnsupported?: "throw" | "identity" }} [options]
12
+ * @returns {[number, number]}
13
+ */
14
+ export function zoomDomainByScaleType(scale: VegaScale, domain: [number, number], anchor: number, scaleFactor: number, options?: {
15
+ onUnsupported?: "throw" | "identity";
16
+ }): [number, number];
17
+ export type VegaScale = import("../types/encoder.js").VegaScale;
18
+ //# sourceMappingURL=zoomDomainUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoomDomainUtils.d.ts","sourceRoot":"","sources":["../../../src/scales/zoomDomainUtils.js"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;;;;;GASG;AACH,6CAPW,SAAS,UACT,CAAC,MAAM,EAAE,MAAM,CAAC,UAChB,MAAM,eACN,MAAM,YACN;IAAE,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;CAAE,GACtC,CAAC,MAAM,EAAE,MAAM,CAAC,CAsD5B;wBAjEY,OAAO,qBAAqB,EAAE,SAAS"}
@@ -0,0 +1,69 @@
1
+ import { zoomLinear, zoomLog, zoomPow, zoomSymlog } from "vega-util";
2
+
3
+ /**
4
+ * @typedef {import("../types/encoder.js").VegaScale} VegaScale
5
+ */
6
+
7
+ /**
8
+ * Zooms a numeric two-point domain according to scale type.
9
+ *
10
+ * @param {VegaScale} scale
11
+ * @param {[number, number]} domain
12
+ * @param {number} anchor
13
+ * @param {number} scaleFactor
14
+ * @param {{ onUnsupported?: "throw" | "identity" }} [options]
15
+ * @returns {[number, number]}
16
+ */
17
+ export function zoomDomainByScaleType(
18
+ scale,
19
+ domain,
20
+ anchor,
21
+ scaleFactor,
22
+ options = {}
23
+ ) {
24
+ const onUnsupported = options.onUnsupported ?? "throw";
25
+
26
+ switch (scale.type) {
27
+ case "linear":
28
+ case "index":
29
+ case "locus":
30
+ return /** @type {[number, number]} */ (
31
+ zoomLinear(domain, anchor, scaleFactor)
32
+ );
33
+
34
+ case "log":
35
+ return /** @type {[number, number]} */ (
36
+ zoomLog(domain, anchor, scaleFactor)
37
+ );
38
+
39
+ case "pow":
40
+ case "sqrt": {
41
+ const powScale =
42
+ /** @type {import("d3-scale").ScalePower<number, number>} */ (
43
+ /** @type {any} */ (scale)
44
+ );
45
+ return /** @type {[number, number]} */ (
46
+ zoomPow(domain, anchor, scaleFactor, powScale.exponent())
47
+ );
48
+ }
49
+
50
+ case "symlog": {
51
+ const symlogScale =
52
+ /** @type {import("d3-scale").ScaleSymLog<number, number>} */ (
53
+ /** @type {any} */ (scale)
54
+ );
55
+ return /** @type {[number, number]} */ (
56
+ zoomSymlog(domain, anchor, scaleFactor, symlogScale.constant())
57
+ );
58
+ }
59
+
60
+ default:
61
+ if (onUnsupported === "identity") {
62
+ return domain;
63
+ } else {
64
+ throw new Error(
65
+ "Zooming is not implemented for: " + scale.type
66
+ );
67
+ }
68
+ }
69
+ }
@@ -0,0 +1,16 @@
1
+ export type ScreenshotState = {
2
+ status: string;
3
+ detail: string;
4
+ error: string;
5
+ capture: () => Promise<{
6
+ logicalSize: {
7
+ width: number;
8
+ height: number;
9
+ };
10
+ dataUrl: string;
11
+ }>;
12
+ };
13
+ export type ScreenshotWindow = Window & typeof globalThis & {
14
+ __genomeSpyScreenshot: ScreenshotState;
15
+ };
16
+ //# sourceMappingURL=screenshotHarness.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"screenshotHarness.d.ts","sourceRoot":"","sources":["../../src/screenshotHarness.js"],"names":[],"mappings":"8BAQa;IACR,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5F;+BAIS,MAAM,GAAG,OAAO,UAAU,GAAG;IAAE,qBAAqB,EAAE,eAAe,CAAA;CAAE"}