@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,16 @@
1
+ /**
2
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
3
+ * @param {object} options
4
+ * @param {import("../spec/channel.js").PrimaryPositionalChannel} options.channel
5
+ * @param {import("../spec/axis.js").AxisOrient} [options.orient]
6
+ * @param {import("../spec/channel.js").Type} [options.type]
7
+ * @param {string | string[]} [options.style]
8
+ * @returns {import("../spec/config.js").AxisConfig}
9
+ */
10
+ export function getConfiguredAxisDefaults(scopes: import("../spec/config.js").GenomeSpyConfig[], { channel, orient, type, style }: {
11
+ channel: import("../spec/channel.js").PrimaryPositionalChannel;
12
+ orient?: import("../spec/axis.js").AxisOrient;
13
+ type?: import("../spec/channel.js").Type;
14
+ style?: string | string[];
15
+ }): import("../spec/config.js").AxisConfig;
16
+ //# sourceMappingURL=axisConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisConfig.d.ts","sourceRoot":"","sources":["../../../src/config/axisConfig.js"],"names":[],"mappings":"AA0BA;;;;;;;;GAQG;AACH,kDARW,OAAO,mBAAmB,EAAE,eAAe,EAAE,oCAErD;IAAuE,OAAO,EAAtE,OAAO,oBAAoB,EAAE,wBAAwB;IACN,MAAM,GAArD,OAAO,iBAAiB,EAAE,UAAU;IACQ,IAAI,GAAhD,OAAO,oBAAoB,EAAE,IAAI;IACL,KAAK,GAAjC,MAAM,GAAG,MAAM,EAAE;CACzB,GAAU,OAAO,mBAAmB,EAAE,UAAU,CAkDlD"}
@@ -0,0 +1,84 @@
1
+ import { mergeConfigScopes } from "./mergeConfig.js";
2
+ import { normalizeStyle } from "./styleUtils.js";
3
+
4
+ /** @type {Record<import("../spec/channel.js").PrimaryPositionalChannel, keyof import("../spec/config.js").GenomeSpyConfig>} */
5
+ const CHANNEL_BUCKETS = {
6
+ x: "axisX",
7
+ y: "axisY",
8
+ };
9
+
10
+ /** @type {Record<import("../spec/axis.js").AxisOrient, keyof import("../spec/config.js").GenomeSpyConfig>} */
11
+ const ORIENT_BUCKETS = {
12
+ top: "axisTop",
13
+ bottom: "axisBottom",
14
+ left: "axisLeft",
15
+ right: "axisRight",
16
+ };
17
+
18
+ /** @type {Partial<Record<import("../spec/channel.js").Type, keyof import("../spec/config.js").GenomeSpyConfig>>} */
19
+ const TYPE_BUCKETS = {
20
+ nominal: "axisNominal",
21
+ ordinal: "axisOrdinal",
22
+ quantitative: "axisQuantitative",
23
+ index: "axisIndex",
24
+ locus: "axisLocus",
25
+ };
26
+
27
+ /**
28
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
29
+ * @param {object} options
30
+ * @param {import("../spec/channel.js").PrimaryPositionalChannel} options.channel
31
+ * @param {import("../spec/axis.js").AxisOrient} [options.orient]
32
+ * @param {import("../spec/channel.js").Type} [options.type]
33
+ * @param {string | string[]} [options.style]
34
+ * @returns {import("../spec/config.js").AxisConfig}
35
+ */
36
+ export function getConfiguredAxisDefaults(
37
+ scopes,
38
+ { channel, orient, type, style }
39
+ ) {
40
+ const styles = normalizeStyle(style);
41
+
42
+ return /** @type {import("../spec/config.js").AxisConfig} */ (
43
+ mergeConfigScopes(
44
+ scopes.flatMap((scope) => {
45
+ const channelBucket = CHANNEL_BUCKETS[channel];
46
+ const orientBucket = orient
47
+ ? ORIENT_BUCKETS[orient]
48
+ : undefined;
49
+ const typeBucket = type ? TYPE_BUCKETS[type] : undefined;
50
+ const bucketConfigs = [
51
+ /** @type {Record<string, any> | undefined} */ (scope.axis),
52
+ /** @type {Record<string, any> | undefined} */ (
53
+ channelBucket ? scope[channelBucket] : undefined
54
+ ),
55
+ /** @type {Record<string, any> | undefined} */ (
56
+ orientBucket ? scope[orientBucket] : undefined
57
+ ),
58
+ /** @type {Record<string, any> | undefined} */ (
59
+ typeBucket ? scope[typeBucket] : undefined
60
+ ),
61
+ ];
62
+ const bucketStyles = bucketConfigs.flatMap((config) =>
63
+ normalizeStyle(config?.style)
64
+ );
65
+
66
+ return [
67
+ ...bucketStyles.map(
68
+ (styleName) =>
69
+ /** @type {Record<string, any> | undefined} */ (
70
+ scope.style?.[styleName]
71
+ )
72
+ ),
73
+ ...bucketConfigs,
74
+ ...styles.map(
75
+ (styleName) =>
76
+ /** @type {Record<string, any> | undefined} */ (
77
+ scope.style?.[styleName]
78
+ )
79
+ ),
80
+ ];
81
+ })
82
+ )
83
+ );
84
+ }
@@ -0,0 +1,3 @@
1
+ /** @type {import("../spec/config.js").GenomeSpyConfig} */
2
+ export const INTERNAL_DEFAULT_CONFIG: import("../spec/config.js").GenomeSpyConfig;
3
+ //# sourceMappingURL=defaultConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../../src/config/defaultConfig.js"],"names":[],"mappings":"AAiBA,0DAA0D;AAC1D,sCADW,OAAO,mBAAmB,EAAE,eAAe,CAoBpD"}
@@ -0,0 +1,38 @@
1
+ import {
2
+ LINK_MARK_DEFAULTS,
3
+ MARK_DEFAULTS,
4
+ POINT_MARK_DEFAULTS,
5
+ RECT_MARK_DEFAULTS,
6
+ RULE_MARK_DEFAULTS,
7
+ TICK_MARK_DEFAULTS,
8
+ TEXT_MARK_DEFAULTS,
9
+ } from "./defaults/markDefaults.js";
10
+ import { AXIS_DEFAULTS, LOCUS_AXIS_DEFAULTS } from "./defaults/axisDefaults.js";
11
+ import { RANGE_DEFAULTS, SCALE_DEFAULTS } from "./defaults/scaleDefaults.js";
12
+ import {
13
+ TITLE_DEFAULTS,
14
+ TITLE_STYLE_DEFAULTS,
15
+ } from "./defaults/titleDefaults.js";
16
+ import { VIEW_DEFAULTS } from "./defaults/viewDefaults.js";
17
+
18
+ /** @type {import("../spec/config.js").GenomeSpyConfig} */
19
+ export const INTERNAL_DEFAULT_CONFIG = {
20
+ view: VIEW_DEFAULTS,
21
+
22
+ mark: MARK_DEFAULTS,
23
+ point: POINT_MARK_DEFAULTS,
24
+ rect: RECT_MARK_DEFAULTS,
25
+ rule: RULE_MARK_DEFAULTS,
26
+ tick: TICK_MARK_DEFAULTS,
27
+ text: TEXT_MARK_DEFAULTS,
28
+ link: LINK_MARK_DEFAULTS,
29
+
30
+ axis: AXIS_DEFAULTS,
31
+ axisLocus: LOCUS_AXIS_DEFAULTS,
32
+
33
+ scale: SCALE_DEFAULTS,
34
+ range: RANGE_DEFAULTS,
35
+
36
+ title: TITLE_DEFAULTS,
37
+ style: TITLE_STYLE_DEFAULTS,
38
+ };
@@ -0,0 +1,5 @@
1
+ /** @type {import("../../spec/config.js").AxisConfig} */
2
+ export const AXIS_DEFAULTS: import("../../spec/config.js").AxisConfig;
3
+ /** @type {import("../../spec/config.js").AxisConfig} */
4
+ export const LOCUS_AXIS_DEFAULTS: import("../../spec/config.js").AxisConfig;
5
+ //# sourceMappingURL=axisDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"axisDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/axisDefaults.js"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,4BADW,OAAO,sBAAsB,EAAE,UAAU,CA8ClD;AAEF,wDAAwD;AACxD,kCADW,OAAO,sBAAsB,EAAE,UAAU,CAuBlD"}
@@ -0,0 +1,72 @@
1
+ /** @type {import("../../spec/config.js").AxisConfig} */
2
+ export const AXIS_DEFAULTS = {
3
+ values: null,
4
+
5
+ minExtent: 20,
6
+ maxExtent: Infinity,
7
+ offset: 0,
8
+
9
+ domain: true,
10
+ domainWidth: 1,
11
+ domainColor: "gray",
12
+ domainDash: null,
13
+ domainDashOffset: 0,
14
+ domainCap: "square",
15
+
16
+ ticks: true,
17
+ tickSize: 5,
18
+ tickWidth: 1,
19
+ tickColor: "gray",
20
+ tickDash: null,
21
+ tickDashOffset: 0,
22
+ tickCap: "square",
23
+
24
+ tickCount: null,
25
+ tickMinStep: null,
26
+
27
+ labels: true,
28
+ labelAlign: "center",
29
+ labelBaseline: "middle",
30
+ labelPadding: 4,
31
+ labelFontSize: 10,
32
+ labelLimit: 180,
33
+ labelColor: "black",
34
+ format: null,
35
+
36
+ titleColor: "black",
37
+ titleFont: "sans-serif",
38
+ titleFontSize: 10,
39
+ titlePadding: 3,
40
+
41
+ grid: false,
42
+ gridCap: "butt",
43
+ gridColor: "lightgray",
44
+ gridDash: null,
45
+ gridOpacity: 1,
46
+ gridWidth: 1,
47
+ };
48
+
49
+ /** @type {import("../../spec/config.js").AxisConfig} */
50
+ export const LOCUS_AXIS_DEFAULTS = {
51
+ chromTicks: true,
52
+ chromTickSize: 18,
53
+ chromTickWidth: 1,
54
+ chromTickColor: "#989898",
55
+ chromTickDash: [4, 2],
56
+ chromTickDashOffset: 1,
57
+
58
+ chromLabels: true,
59
+ chromLabelFontSize: 13,
60
+ chromLabelFontWeight: "normal",
61
+ chromLabelFontStyle: "normal",
62
+ chromLabelColor: "black",
63
+ chromLabelAlign: "left",
64
+ chromLabelPadding: 7,
65
+
66
+ chromGrid: false,
67
+ chromGridCap: "butt",
68
+ chromGridColor: "gray",
69
+ chromGridDash: [1, 5],
70
+ chromGridOpacity: 1,
71
+ chromGridWidth: 1,
72
+ };
@@ -0,0 +1,15 @@
1
+ /** @type {import("../../spec/config.js").MarkConfig} */
2
+ export const MARK_DEFAULTS: import("../../spec/config.js").MarkConfig;
3
+ /** @type {import("../../spec/config.js").PointConfig} */
4
+ export const POINT_MARK_DEFAULTS: import("../../spec/config.js").PointConfig;
5
+ /** @type {import("../../spec/config.js").RectConfig} */
6
+ export const RECT_MARK_DEFAULTS: import("../../spec/config.js").RectConfig;
7
+ /** @type {import("../../spec/config.js").RuleConfig} */
8
+ export const RULE_MARK_DEFAULTS: import("../../spec/config.js").RuleConfig;
9
+ /** @type {import("../../spec/config.js").TickConfig} */
10
+ export const TICK_MARK_DEFAULTS: import("../../spec/config.js").TickConfig;
11
+ /** @type {import("../../spec/config.js").TextConfig} */
12
+ export const TEXT_MARK_DEFAULTS: import("../../spec/config.js").TextConfig;
13
+ /** @type {import("../../spec/config.js").LinkConfig} */
14
+ export const LINK_MARK_DEFAULTS: import("../../spec/config.js").LinkConfig;
15
+ //# sourceMappingURL=markDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/markDefaults.js"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,4BADW,OAAO,sBAAsB,EAAE,UAAU,CAKlD;AAEF,yDAAyD;AACzD,kCADW,OAAO,sBAAsB,EAAE,WAAW,CAkBnD;AAEF,wDAAwD;AACxD,iCADW,OAAO,sBAAsB,EAAE,UAAU,CAYlD;AAEF,wDAAwD;AACxD,iCADW,OAAO,sBAAsB,EAAE,UAAU,CAWlD;AAEF,wDAAwD;AACxD,iCADW,OAAO,sBAAsB,EAAE,UAAU,CAUlD;AAEF,wDAAwD;AACxD,iCADW,OAAO,sBAAsB,EAAE,UAAU,CAiClD;AAEF,wDAAwD;AACxD,iCADW,OAAO,sBAAsB,EAAE,UAAU,CAmBlD"}
@@ -0,0 +1,121 @@
1
+ /** @type {import("../../spec/config.js").MarkConfig} */
2
+ export const MARK_DEFAULTS = {
3
+ xOffset: 0,
4
+ yOffset: 0,
5
+ minBufferSize: 0,
6
+ };
7
+
8
+ /** @type {import("../../spec/config.js").PointConfig} */
9
+ export const POINT_MARK_DEFAULTS = {
10
+ x: 0.5,
11
+ y: 0.5,
12
+ color: "#4c78a8",
13
+ filled: true,
14
+ opacity: 1.0,
15
+ size: 100.0,
16
+ semanticScore: 0.0,
17
+ shape: "circle",
18
+ strokeWidth: 2.0,
19
+ fillGradientStrength: 0.0,
20
+ dx: 0,
21
+ dy: 0,
22
+ angle: 0,
23
+ sampleFacetPadding: 0.1,
24
+ semanticZoomFraction: 0.02,
25
+ minPickingSize: 2.0,
26
+ };
27
+
28
+ /** @type {import("../../spec/config.js").RectConfig} */
29
+ export const RECT_MARK_DEFAULTS = {
30
+ x2: undefined,
31
+ y2: undefined,
32
+ filled: true,
33
+ color: "#4c78a8",
34
+ opacity: 1.0,
35
+ strokeWidth: 3,
36
+ cornerRadius: 0.0,
37
+ minWidth: 0.5,
38
+ minHeight: 0.5,
39
+ minOpacity: 1.0,
40
+ };
41
+
42
+ /** @type {import("../../spec/config.js").RuleConfig} */
43
+ export const RULE_MARK_DEFAULTS = {
44
+ x2: undefined,
45
+ y2: undefined,
46
+ size: 1,
47
+ color: "black",
48
+ opacity: 1.0,
49
+ minLength: 0.0,
50
+ strokeDash: null,
51
+ strokeDashOffset: 0,
52
+ strokeCap: "butt",
53
+ };
54
+
55
+ /** @type {import("../../spec/config.js").TickConfig} */
56
+ export const TICK_MARK_DEFAULTS = {
57
+ color: "black",
58
+ opacity: 1.0,
59
+ minLength: 0.0,
60
+ strokeDash: null,
61
+ strokeDashOffset: 0,
62
+ strokeCap: "butt",
63
+ orient: undefined,
64
+ thickness: 1,
65
+ };
66
+
67
+ /** @type {import("../../spec/config.js").TextConfig} */
68
+ export const TEXT_MARK_DEFAULTS = {
69
+ x: 0.5,
70
+ y: 0.5,
71
+ x2: undefined,
72
+ y2: undefined,
73
+ text: "",
74
+ size: 11.0,
75
+ color: "black",
76
+ opacity: 1.0,
77
+ font: undefined,
78
+ fontStyle: undefined,
79
+ fontWeight: undefined,
80
+ align: "center",
81
+ baseline: "middle",
82
+ dx: 0,
83
+ dy: 0,
84
+ angle: 0,
85
+ fitToBand: false,
86
+ squeeze: true,
87
+ paddingX: 0,
88
+ paddingY: 0,
89
+ flushX: true,
90
+ flushY: true,
91
+ logoLetters: false,
92
+ viewportEdgeFadeWidthTop: 0,
93
+ viewportEdgeFadeWidthRight: 0,
94
+ viewportEdgeFadeWidthBottom: 0,
95
+ viewportEdgeFadeWidthLeft: 0,
96
+ viewportEdgeFadeDistanceTop: -Infinity,
97
+ viewportEdgeFadeDistanceRight: -Infinity,
98
+ viewportEdgeFadeDistanceBottom: -Infinity,
99
+ viewportEdgeFadeDistanceLeft: -Infinity,
100
+ };
101
+
102
+ /** @type {import("../../spec/config.js").LinkConfig} */
103
+ export const LINK_MARK_DEFAULTS = {
104
+ x: 0.0,
105
+ x2: undefined,
106
+ y: 0.0,
107
+ y2: undefined,
108
+ size: 1.0,
109
+ color: "black",
110
+ opacity: 1.0,
111
+ segments: 101,
112
+ arcHeightFactor: 1.0,
113
+ minArcHeight: 1.5,
114
+ minPickingSize: 3.0,
115
+ clampApex: false,
116
+ maxChordLength: 50000,
117
+ arcFadingDistance: false,
118
+ noFadingOnPointSelection: true,
119
+ linkShape: "arc",
120
+ orient: "vertical",
121
+ };
@@ -0,0 +1,5 @@
1
+ /** @type {import("../../spec/config.js").ScaleConfig} */
2
+ export const SCALE_DEFAULTS: import("../../spec/config.js").ScaleConfig;
3
+ /** @type {import("../../spec/config.js").RangeConfig} */
4
+ export const RANGE_DEFAULTS: import("../../spec/config.js").RangeConfig;
5
+ //# sourceMappingURL=scaleDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/scaleDefaults.js"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,6BADW,OAAO,sBAAsB,EAAE,WAAW,CAUnD;AAEF,yDAAyD;AACzD,6BADW,OAAO,sBAAsB,EAAE,WAAW,CAKnD"}
@@ -0,0 +1,18 @@
1
+ /** @type {import("../../spec/config.js").ScaleConfig} */
2
+ export const SCALE_DEFAULTS = {
3
+ nominalColorScheme: "tableau10",
4
+ ordinalColorScheme: "blues",
5
+ quantitativeColorScheme: "viridis",
6
+ // TODO: If GenomeSpy adopts Vega-Lite-like discrete positional scale
7
+ // inference, add the corresponding default padding knobs here as config
8
+ // defaults, e.g. pointPadding, bandPaddingInner, bandPaddingOuter,
9
+ // rectBandPaddingInner, tickBandPaddingInner, and barBandPaddingInner for
10
+ // the future rect-backed "bar" mark.
11
+ };
12
+
13
+ /** @type {import("../../spec/config.js").RangeConfig} */
14
+ export const RANGE_DEFAULTS = {
15
+ shape: ["circle", "square", "triangle-up", "cross", "diamond"],
16
+ size: [0, 400],
17
+ angle: [0, 360],
18
+ };
@@ -0,0 +1,5 @@
1
+ /** @type {import("../../spec/config.js").TitleConfig} */
2
+ export const TITLE_DEFAULTS: import("../../spec/config.js").TitleConfig;
3
+ /** @type {Record<string, import("../../spec/config.js").StyleConfig>} */
4
+ export const TITLE_STYLE_DEFAULTS: Record<string, import("../../spec/config.js").StyleConfig>;
5
+ //# sourceMappingURL=titleDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titleDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/titleDefaults.js"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,6BADW,OAAO,sBAAsB,EAAE,WAAW,CAgBnD;AAEF,yEAAyE;AACzE,mCADW,MAAM,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC,CA4BnE"}
@@ -0,0 +1,47 @@
1
+ /** @type {import("../../spec/config.js").TitleConfig} */
2
+ export const TITLE_DEFAULTS = {
3
+ anchor: "middle",
4
+ frame: "group",
5
+ offset: 10,
6
+ orient: "top",
7
+ align: undefined,
8
+ angle: 0,
9
+ baseline: "alphabetic",
10
+ dx: 0,
11
+ dy: 0,
12
+ color: undefined,
13
+ font: undefined,
14
+ fontSize: 12,
15
+ fontStyle: "normal",
16
+ fontWeight: "normal",
17
+ };
18
+
19
+ /** @type {Record<string, import("../../spec/config.js").StyleConfig>} */
20
+ export const TITLE_STYLE_DEFAULTS = {
21
+ "track-title": {
22
+ orient: "left",
23
+ anchor: "middle",
24
+ align: "right",
25
+ baseline: "middle",
26
+ angle: 0,
27
+ fontSize: 12,
28
+ },
29
+ overlay: {
30
+ orient: "top",
31
+ anchor: "start",
32
+ align: "left",
33
+ baseline: "top",
34
+ offset: -10,
35
+ dx: 10,
36
+ fontSize: 12,
37
+ },
38
+ "overlay-title": {
39
+ orient: "top",
40
+ anchor: "start",
41
+ align: "left",
42
+ baseline: "top",
43
+ offset: -10,
44
+ dx: 10,
45
+ fontSize: 12,
46
+ },
47
+ };
@@ -0,0 +1,3 @@
1
+ /** @type {import("../../spec/config.js").ViewConfig} */
2
+ export const VIEW_DEFAULTS: import("../../spec/config.js").ViewConfig;
3
+ //# sourceMappingURL=viewDefaults.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"viewDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/viewDefaults.js"],"names":[],"mappings":"AAAA,wDAAwD;AACxD,4BADW,OAAO,sBAAsB,EAAE,UAAU,CACpB"}
@@ -0,0 +1,2 @@
1
+ /** @type {import("../../spec/config.js").ViewConfig} */
2
+ export const VIEW_DEFAULTS = {};
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
3
+ * @param {import("../spec/mark.js").MarkType} markType
4
+ * @param {string | string[] | undefined} style
5
+ * @returns {Record<string, any>}
6
+ */
7
+ export function getConfiguredMarkDefaults(scopes: import("../spec/config.js").GenomeSpyConfig[], markType: import("../spec/mark.js").MarkType, style: string | string[] | undefined): Record<string, any>;
8
+ //# sourceMappingURL=markConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"markConfig.d.ts","sourceRoot":"","sources":["../../../src/config/markConfig.js"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,kDALW,OAAO,mBAAmB,EAAE,eAAe,EAAE,YAC7C,OAAO,iBAAiB,EAAE,QAAQ,SAClC,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAC3B,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAmB/B"}
@@ -0,0 +1,27 @@
1
+ import { mergeConfigScopes } from "./mergeConfig.js";
2
+ import { normalizeStyle } from "./styleUtils.js";
3
+
4
+ /**
5
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
6
+ * @param {import("../spec/mark.js").MarkType} markType
7
+ * @param {string | string[] | undefined} style
8
+ * @returns {Record<string, any>}
9
+ */
10
+ export function getConfiguredMarkDefaults(scopes, markType, style) {
11
+ // Match Vega-Lite-like behavior: mark-type style (e.g. "point") is always
12
+ // part of style resolution, and explicit mark.style entries augment it.
13
+ const styles = [markType, ...normalizeStyle(style)];
14
+
15
+ return mergeConfigScopes(
16
+ scopes.flatMap((scope) => [
17
+ /** @type {Record<string, any> | undefined} */ (scope.mark),
18
+ /** @type {Record<string, any> | undefined} */ (scope[markType]),
19
+ ...styles.map(
20
+ (styleName) =>
21
+ /** @type {Record<string, any> | undefined} */ (
22
+ scope.style?.[styleName]
23
+ )
24
+ ),
25
+ ])
26
+ );
27
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Deep merges configuration objects using "last scope wins" precedence.
3
+ *
4
+ * @param {Array<Record<string, any> | undefined>} scopes
5
+ * @returns {Record<string, any>}
6
+ */
7
+ export function mergeConfigScopes(scopes: Array<Record<string, any> | undefined>): Record<string, any>;
8
+ //# sourceMappingURL=mergeConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mergeConfig.d.ts","sourceRoot":"","sources":["../../../src/config/mergeConfig.js"],"names":[],"mappings":"AA6DA;;;;;GAKG;AACH,0CAHW,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,SAAS,CAAC,GACpC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAe/B"}
@@ -0,0 +1,81 @@
1
+ import { isObject } from "vega-util";
2
+
3
+ /**
4
+ * @param {any} value
5
+ * @returns {value is Record<string, any>}
6
+ */
7
+ function isPlainObject(value) {
8
+ return isObject(value) && !Array.isArray(value);
9
+ }
10
+
11
+ /**
12
+ * @param {Record<string, any>} value
13
+ * @returns {Record<string, any>}
14
+ */
15
+ function cloneObject(value) {
16
+ /** @type {Record<string, any>} */
17
+ const clone = {};
18
+ for (const [key, entry] of Object.entries(value)) {
19
+ clone[key] = cloneValue(entry);
20
+ }
21
+ return clone;
22
+ }
23
+
24
+ /**
25
+ * @param {any} value
26
+ * @returns {any}
27
+ */
28
+ function cloneValue(value) {
29
+ if (Array.isArray(value)) {
30
+ return value.map(cloneValue);
31
+ }
32
+
33
+ if (isPlainObject(value)) {
34
+ return cloneObject(value);
35
+ }
36
+
37
+ return value;
38
+ }
39
+
40
+ /**
41
+ * @param {Record<string, any>} target
42
+ * @param {Record<string, any>} source
43
+ */
44
+ function mergeInto(target, source) {
45
+ for (const [key, sourceValue] of Object.entries(source)) {
46
+ if (sourceValue === undefined) {
47
+ continue;
48
+ }
49
+
50
+ const targetValue = target[key];
51
+
52
+ if (isPlainObject(sourceValue) && isPlainObject(targetValue)) {
53
+ mergeInto(targetValue, sourceValue);
54
+ } else {
55
+ target[key] = cloneValue(sourceValue);
56
+ }
57
+ }
58
+
59
+ return target;
60
+ }
61
+
62
+ /**
63
+ * Deep merges configuration objects using "last scope wins" precedence.
64
+ *
65
+ * @param {Array<Record<string, any> | undefined>} scopes
66
+ * @returns {Record<string, any>}
67
+ */
68
+ export function mergeConfigScopes(scopes) {
69
+ /** @type {Record<string, any>} */
70
+ const merged = {};
71
+
72
+ for (const scope of scopes) {
73
+ if (!scope) {
74
+ continue;
75
+ }
76
+
77
+ mergeInto(merged, scope);
78
+ }
79
+
80
+ return merged;
81
+ }
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @param {object} options
3
+ * @param {import("../spec/config.js").GenomeSpyConfig} options.defaultConfig
4
+ * @param {import("../spec/config.js").GenomeSpyConfig} [options.builtInTheme]
5
+ * @param {import("../spec/config.js").GenomeSpyConfig} [options.theme]
6
+ * @returns {import("../spec/config.js").GenomeSpyConfig}
7
+ */
8
+ export function resolveBaseConfig({ defaultConfig, builtInTheme, theme }: {
9
+ defaultConfig: import("../spec/config.js").GenomeSpyConfig;
10
+ builtInTheme?: import("../spec/config.js").GenomeSpyConfig;
11
+ theme?: import("../spec/config.js").GenomeSpyConfig;
12
+ }): import("../spec/config.js").GenomeSpyConfig;
13
+ /**
14
+ * Merges import-site config with imported root config.
15
+ * Imported config has higher precedence.
16
+ *
17
+ * @param {import("../spec/config.js").GenomeSpyConfig} [importConfig]
18
+ * @param {import("../spec/config.js").GenomeSpyConfig} [importedConfig]
19
+ * @returns {import("../spec/config.js").GenomeSpyConfig | undefined}
20
+ */
21
+ export function resolveImportedSpecConfig(importConfig?: import("../spec/config.js").GenomeSpyConfig, importedConfig?: import("../spec/config.js").GenomeSpyConfig): import("../spec/config.js").GenomeSpyConfig | undefined;
22
+ //# sourceMappingURL=resolveConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveConfig.d.ts","sourceRoot":"","sources":["../../../src/config/resolveConfig.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,0EALG;IAA6D,aAAa,EAAlE,OAAO,mBAAmB,EAAE,eAAe;IACW,YAAY,GAAlE,OAAO,mBAAmB,EAAE,eAAe;IACW,KAAK,GAA3D,OAAO,mBAAmB,EAAE,eAAe;CACnD,GAAU,OAAO,mBAAmB,EAAE,eAAe,CAMvD;AAED;;;;;;;GAOG;AACH,yDAJW,OAAO,mBAAmB,EAAE,eAAe,mBAC3C,OAAO,mBAAmB,EAAE,eAAe,GACzC,OAAO,mBAAmB,EAAE,eAAe,GAAG,SAAS,CAUnE"}