@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,32 @@
1
+ import { mergeConfigScopes } from "./mergeConfig.js";
2
+
3
+ /**
4
+ * @param {object} options
5
+ * @param {import("../spec/config.js").GenomeSpyConfig} options.defaultConfig
6
+ * @param {import("../spec/config.js").GenomeSpyConfig} [options.builtInTheme]
7
+ * @param {import("../spec/config.js").GenomeSpyConfig} [options.theme]
8
+ * @returns {import("../spec/config.js").GenomeSpyConfig}
9
+ */
10
+ export function resolveBaseConfig({ defaultConfig, builtInTheme, theme }) {
11
+ return /** @type {import("../spec/config.js").GenomeSpyConfig} */ (
12
+ mergeConfigScopes([defaultConfig, builtInTheme, theme])
13
+ );
14
+ }
15
+
16
+ /**
17
+ * Merges import-site config with imported root config.
18
+ * Imported config has higher precedence.
19
+ *
20
+ * @param {import("../spec/config.js").GenomeSpyConfig} [importConfig]
21
+ * @param {import("../spec/config.js").GenomeSpyConfig} [importedConfig]
22
+ * @returns {import("../spec/config.js").GenomeSpyConfig | undefined}
23
+ */
24
+ export function resolveImportedSpecConfig(importConfig, importedConfig) {
25
+ if (!importConfig && !importedConfig) {
26
+ return undefined;
27
+ }
28
+
29
+ return /** @type {import("../spec/config.js").GenomeSpyConfig} */ (
30
+ mergeConfigScopes([importConfig, importedConfig])
31
+ );
32
+ }
@@ -0,0 +1,40 @@
1
+ /**
2
+ * @param {string} rangeName
3
+ * @returns {rangeName is keyof import("../spec/config.js").RangeConfig}
4
+ */
5
+ export function isConfigRangeName(rangeName: string): rangeName is keyof import("../spec/config.js").RangeConfig;
6
+ /**
7
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
8
+ * @param {string} rangeName
9
+ * @returns {import("../spec/config.js").RangeConfig[keyof import("../spec/config.js").RangeConfig] | undefined}
10
+ */
11
+ export function getConfiguredNamedRange(scopes: import("../spec/config.js").GenomeSpyConfig[], rangeName: string): import("../spec/config.js").RangeConfig[keyof import("../spec/config.js").RangeConfig] | undefined;
12
+ /**
13
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
14
+ * @param {import("../spec/channel.js").Type} dataType
15
+ * @returns {import("../spec/config.js").ScaleConfig}
16
+ */
17
+ export function getConfiguredScaleConfig(scopes: import("../spec/config.js").GenomeSpyConfig[], dataType: import("../spec/channel.js").Type): import("../spec/config.js").ScaleConfig;
18
+ /**
19
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
20
+ * @returns {import("../spec/config.js").RangeConfig}
21
+ */
22
+ export function getConfiguredRangeConfig(scopes: import("../spec/config.js").GenomeSpyConfig[]): import("../spec/config.js").RangeConfig;
23
+ /**
24
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
25
+ * @param {object} options
26
+ * @param {import("../spec/channel.js").Channel} options.channel
27
+ * @param {import("../spec/channel.js").Type} options.dataType
28
+ * @param {boolean} options.isExplicitDomain
29
+ * @param {import("../spec/mark.js").MarkType[]} [options.markTypes]
30
+ * @param {boolean} [options.hasDomainMid]
31
+ * @returns {import("../spec/scale.js").Scale}
32
+ */
33
+ export function getConfiguredScaleDefaults(scopes: import("../spec/config.js").GenomeSpyConfig[], { channel, dataType, isExplicitDomain, markTypes, hasDomainMid }: {
34
+ channel: import("../spec/channel.js").Channel;
35
+ dataType: import("../spec/channel.js").Type;
36
+ isExplicitDomain: boolean;
37
+ markTypes?: import("../spec/mark.js").MarkType[];
38
+ hasDomainMid?: boolean;
39
+ }): import("../spec/scale.js").Scale;
40
+ //# sourceMappingURL=scaleConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scaleConfig.d.ts","sourceRoot":"","sources":["../../../src/config/scaleConfig.js"],"names":[],"mappings":"AAmCA;;;GAGG;AACH,6CAHW,MAAM,GACJ,SAAS,IAAI,MAAM,OAAO,mBAAmB,EAAE,WAAW,CAItE;AAED;;;;GAIG;AACH,gDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,aAC7C,MAAM,GACJ,OAAO,mBAAmB,EAAE,WAAW,CAAC,MAAM,OAAO,mBAAmB,EAAE,WAAW,CAAC,GAAG,SAAS,CAS9G;AA8CD;;;;GAIG;AACH,iDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,YAC7C,OAAO,oBAAoB,EAAE,IAAI,GAC/B,OAAO,mBAAmB,EAAE,WAAW,CAsBnD;AAED;;;GAGG;AACH,iDAHW,OAAO,mBAAmB,EAAE,eAAe,EAAE,GAC3C,OAAO,mBAAmB,EAAE,WAAW,CAWnD;AAED;;;;;;;;;GASG;AACH,mDATW,OAAO,mBAAmB,EAAE,eAAe,EAAE,oEAErD;IAAsD,OAAO,EAArD,OAAO,oBAAoB,EAAE,OAAO;IACO,QAAQ,EAAnD,OAAO,oBAAoB,EAAE,IAAI;IAChB,gBAAgB,EAAjC,OAAO;IACwC,SAAS,GAAxD,OAAO,iBAAiB,EAAE,QAAQ,EAAE;IAClB,YAAY,GAA9B,OAAO;CACf,GAAU,OAAO,kBAAkB,EAAE,KAAK,CAoE5C"}
@@ -0,0 +1,220 @@
1
+ import {
2
+ isColorChannel,
3
+ isDiscreteChannel,
4
+ isPositionalChannel,
5
+ } from "../encoder/encoder.js";
6
+ import { mergeConfigScopes } from "./mergeConfig.js";
7
+
8
+ /** @type {Record<string, keyof import("../spec/config.js").ScaleConfig>} */
9
+ const COLOR_SCHEME_KEYS = {
10
+ nominal: "nominalColorScheme",
11
+ ordinal: "ordinalColorScheme",
12
+ quantitative: "quantitativeColorScheme",
13
+ };
14
+
15
+ const HEATMAP_MARK_TYPES = new Set(["rect"]);
16
+ const NAMED_RANGE_KEYS = new Set([
17
+ "shape",
18
+ "size",
19
+ "angle",
20
+ "heatmap",
21
+ "ramp",
22
+ "diverging",
23
+ ]);
24
+
25
+ /**
26
+ * @param {unknown} scheme
27
+ * @returns {scheme is import("../spec/scale.js").SchemeParams | string}
28
+ */
29
+ function isConfiguredScheme(scheme) {
30
+ return (
31
+ typeof scheme == "string" ||
32
+ (scheme != null && typeof scheme == "object")
33
+ );
34
+ }
35
+
36
+ /**
37
+ * @param {string} rangeName
38
+ * @returns {rangeName is keyof import("../spec/config.js").RangeConfig}
39
+ */
40
+ export function isConfigRangeName(rangeName) {
41
+ return NAMED_RANGE_KEYS.has(rangeName);
42
+ }
43
+
44
+ /**
45
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
46
+ * @param {string} rangeName
47
+ * @returns {import("../spec/config.js").RangeConfig[keyof import("../spec/config.js").RangeConfig] | undefined}
48
+ */
49
+ export function getConfiguredNamedRange(scopes, rangeName) {
50
+ if (!isConfigRangeName(rangeName)) {
51
+ return undefined;
52
+ }
53
+
54
+ const rangeConfig = getConfiguredRangeConfig(scopes);
55
+ return rangeConfig[rangeName];
56
+ }
57
+
58
+ /**
59
+ * @param {import("../spec/channel.js").Type} dataType
60
+ * @returns {keyof import("../spec/config.js").ScaleConfig | undefined}
61
+ */
62
+ function getDataTypeBucket(dataType) {
63
+ if (
64
+ ["nominal", "ordinal", "quantitative", "index", "locus"].includes(
65
+ dataType
66
+ )
67
+ ) {
68
+ return /** @type {keyof import("../spec/config.js").ScaleConfig} */ (
69
+ dataType
70
+ );
71
+ }
72
+ }
73
+
74
+ /**
75
+ * @param {import("../spec/config.js").ScaleConfig | undefined} scaleConfig
76
+ */
77
+ function getBaseScaleConfig(scaleConfig) {
78
+ if (!scaleConfig) {
79
+ return {};
80
+ }
81
+
82
+ const base = /** @type {Record<string, any>} */ ({ ...scaleConfig });
83
+ for (const key of [
84
+ "nominal",
85
+ "ordinal",
86
+ "quantitative",
87
+ "index",
88
+ "locus",
89
+ "nominalColorScheme",
90
+ "ordinalColorScheme",
91
+ "quantitativeColorScheme",
92
+ // Deprecated aliases kept out of the resolved base scale object.
93
+ "indexColorScheme",
94
+ "locusColorScheme",
95
+ ]) {
96
+ delete base[key];
97
+ }
98
+
99
+ return base;
100
+ }
101
+
102
+ /**
103
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
104
+ * @param {import("../spec/channel.js").Type} dataType
105
+ * @returns {import("../spec/config.js").ScaleConfig}
106
+ */
107
+ export function getConfiguredScaleConfig(scopes, dataType) {
108
+ const dataTypeBucket = getDataTypeBucket(dataType);
109
+
110
+ return /** @type {import("../spec/config.js").ScaleConfig} */ (
111
+ mergeConfigScopes(
112
+ scopes.flatMap((scope) => {
113
+ const scale = /** @type {Record<string, any> | undefined} */ (
114
+ scope.scale
115
+ );
116
+ const typedScale =
117
+ scale && dataTypeBucket
118
+ ? /** @type {Record<string, any> | undefined} */ (
119
+ scale[dataTypeBucket]
120
+ )
121
+ : undefined;
122
+
123
+ return [scale, typedScale];
124
+ })
125
+ )
126
+ );
127
+ }
128
+
129
+ /**
130
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
131
+ * @returns {import("../spec/config.js").RangeConfig}
132
+ */
133
+ export function getConfiguredRangeConfig(scopes) {
134
+ return /** @type {import("../spec/config.js").RangeConfig} */ (
135
+ mergeConfigScopes(
136
+ scopes.map(
137
+ (scope) =>
138
+ /** @type {Record<string, any> | undefined} */ (scope.range)
139
+ )
140
+ )
141
+ );
142
+ }
143
+
144
+ /**
145
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
146
+ * @param {object} options
147
+ * @param {import("../spec/channel.js").Channel} options.channel
148
+ * @param {import("../spec/channel.js").Type} options.dataType
149
+ * @param {boolean} options.isExplicitDomain
150
+ * @param {import("../spec/mark.js").MarkType[]} [options.markTypes]
151
+ * @param {boolean} [options.hasDomainMid]
152
+ * @returns {import("../spec/scale.js").Scale}
153
+ */
154
+ export function getConfiguredScaleDefaults(
155
+ scopes,
156
+ { channel, dataType, isExplicitDomain, markTypes, hasDomainMid }
157
+ ) {
158
+ const scaleConfig = getConfiguredScaleConfig(scopes, dataType);
159
+ const rangeConfig = getConfiguredRangeConfig(scopes);
160
+
161
+ /** @type {import("../spec/scale.js").Scale} */
162
+ const props = {
163
+ ...getBaseScaleConfig(scaleConfig),
164
+ };
165
+
166
+ if (isExplicitDomain) {
167
+ props.zero = false;
168
+ } else if (props.zero === undefined && scaleConfig.zero !== undefined) {
169
+ props.zero = scaleConfig.zero;
170
+ }
171
+
172
+ if (isPositionalChannel(channel) && props.nice === undefined) {
173
+ props.nice =
174
+ scaleConfig.nice !== undefined
175
+ ? scaleConfig.nice
176
+ : !isExplicitDomain;
177
+ }
178
+
179
+ if (isColorChannel(channel) && props.scheme === undefined) {
180
+ if (dataType == "quantitative") {
181
+ const useDiverging =
182
+ hasDomainMid || scaleConfig.domainMid !== undefined;
183
+
184
+ // Mirror Vega-Lite defaults for quantitative color scales:
185
+ // domainMid -> diverging, rect-like marks -> heatmap, others -> ramp.
186
+ const rangeScheme = useDiverging
187
+ ? rangeConfig.diverging
188
+ : markTypes?.length &&
189
+ markTypes.every((markType) =>
190
+ HEATMAP_MARK_TYPES.has(markType)
191
+ )
192
+ ? rangeConfig.heatmap
193
+ : rangeConfig.ramp;
194
+
195
+ const configuredScheme = isConfiguredScheme(rangeScheme)
196
+ ? rangeScheme
197
+ : scaleConfig.quantitativeColorScheme;
198
+
199
+ if (isConfiguredScheme(configuredScheme)) {
200
+ props.scheme = configuredScheme;
201
+ }
202
+ } else {
203
+ const schemeKey =
204
+ COLOR_SCHEME_KEYS[dataType] ?? COLOR_SCHEME_KEYS.quantitative;
205
+ const configuredScheme = scaleConfig[schemeKey];
206
+
207
+ if (isConfiguredScheme(configuredScheme)) {
208
+ props.scheme = configuredScheme;
209
+ }
210
+ }
211
+ } else if (isDiscreteChannel(channel) && props.range === undefined) {
212
+ props.range = channel == "shape" ? (rangeConfig.shape ?? []) : [];
213
+ } else if (channel == "size" && props.range === undefined) {
214
+ props.range = rangeConfig.size;
215
+ } else if (channel == "angle" && props.range === undefined) {
216
+ props.range = rangeConfig.angle;
217
+ }
218
+
219
+ return props;
220
+ }
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @param {string | string[] | undefined} style
3
+ * @returns {string[]}
4
+ */
5
+ export function normalizeStyle(style: string | string[] | undefined): string[];
6
+ //# sourceMappingURL=styleUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"styleUtils.d.ts","sourceRoot":"","sources":["../../../src/config/styleUtils.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,sCAHW,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,GAC3B,MAAM,EAAE,CAOpB"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * @param {string | string[] | undefined} style
3
+ * @returns {string[]}
4
+ */
5
+ export function normalizeStyle(style) {
6
+ if (!style) {
7
+ return [];
8
+ }
9
+ return Array.isArray(style) ? style : [style];
10
+ }
@@ -0,0 +1,15 @@
1
+ /**
2
+ * @param {import("../spec/config.js").BuiltInThemeName} name
3
+ * @returns {string | undefined}
4
+ */
5
+ export function getBuiltInThemeBackground(name: import("../spec/config.js").BuiltInThemeName): string | undefined;
6
+ /**
7
+ * @param {import("../spec/config.js").BuiltInThemeName | import("../spec/config.js").BuiltInThemeName[] | undefined} selection
8
+ * @returns {import("../spec/config.js").GenomeSpyConfig | undefined}
9
+ */
10
+ export function resolveThemeSelection(selection: import("../spec/config.js").BuiltInThemeName | import("../spec/config.js").BuiltInThemeName[] | undefined): import("../spec/config.js").GenomeSpyConfig | undefined;
11
+ /**
12
+ * @type {import("../spec/config.js").BuiltInThemeName}
13
+ */
14
+ export const DEFAULT_THEME_NAME: import("../spec/config.js").BuiltInThemeName;
15
+ //# sourceMappingURL=themes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/config/themes.js"],"names":[],"mappings":"AA+QA;;;GAGG;AACH,gDAHW,OAAO,mBAAmB,EAAE,gBAAgB,GAC1C,MAAM,GAAG,SAAS,CAI9B;AAED;;;GAGG;AACH,iDAHW,OAAO,mBAAmB,EAAE,gBAAgB,GAAG,OAAO,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,SAAS,GACvG,OAAO,mBAAmB,EAAE,eAAe,GAAG,SAAS,CAWnE;AA1BD;;GAEG;AACH,iCAFU,OAAO,mBAAmB,EAAE,gBAAgB,CAER"}
@@ -0,0 +1,293 @@
1
+ import { mergeConfigScopes } from "./mergeConfig.js";
2
+
3
+ /** @type {import("../spec/config.js").GenomeSpyConfig} */
4
+ const VEGALITE_THEME = {
5
+ mark: {
6
+ color: "#4c78a8",
7
+ },
8
+ point: {
9
+ filled: false,
10
+ size: 30,
11
+ },
12
+ rule: {
13
+ color: "black",
14
+ },
15
+ text: {
16
+ color: "black",
17
+ },
18
+ view: {
19
+ stroke: "#ddd",
20
+ strokeWidth: 1,
21
+ },
22
+ axis: {
23
+ grid: false,
24
+ domain: true,
25
+ tickColor: "gray",
26
+ domainColor: "gray",
27
+ gridColor: "#ddd",
28
+ labelColor: "#333",
29
+ titleColor: "#333",
30
+ titleFontSize: 11,
31
+ titleFontWeight: "normal",
32
+ },
33
+ axisQuantitative: {
34
+ grid: true,
35
+ },
36
+ scale: {
37
+ nominalColorScheme: "tableau10",
38
+ ordinalColorScheme: "blues",
39
+ quantitativeColorScheme: "blues",
40
+ },
41
+ range: {
42
+ heatmap: "viridis",
43
+ ramp: "blues",
44
+ diverging: "blueorange",
45
+ },
46
+ };
47
+
48
+ /**
49
+ * Built-in themes. These can be selected with the `theme` property
50
+ * in view specs.
51
+ *
52
+ * TODO: Vega themes include additional properties (for example legend config,
53
+ * top-level background, and custom categorical range arrays) that are not yet
54
+ * configurable through GenomeSpy's theme/config surface.
55
+ *
56
+ * `background` mirrors Vega(-Lite) theme shape. GenomeSpy uses it only for
57
+ * root canvas clear color; subtree config resolution ignores it.
58
+ *
59
+ * @type {Record<import("../spec/config.js").BuiltInThemeName, import("../spec/config.js").GenomeSpyConfig & { background?: string}>}
60
+ */
61
+ const BUILT_IN_THEME_DEFINITIONS = {
62
+ genomespy: {},
63
+ vegalite: VEGALITE_THEME,
64
+ quartz: mergeConfigScopes([
65
+ VEGALITE_THEME,
66
+ {
67
+ background: "#f9f9f9",
68
+ view: {
69
+ fill: "#f9f9f9",
70
+ },
71
+ mark: {
72
+ color: "#ab5787",
73
+ },
74
+ point: {
75
+ size: 30,
76
+ },
77
+ axis: {
78
+ domainColor: "#979797",
79
+ domainWidth: 0.5,
80
+ gridWidth: 0.2,
81
+ labelColor: "#979797",
82
+ tickColor: "#979797",
83
+ tickWidth: 0.2,
84
+ titleColor: "#979797",
85
+ },
86
+ axisX: {
87
+ grid: true,
88
+ tickSize: 10,
89
+ },
90
+ axisY: {
91
+ domain: false,
92
+ grid: true,
93
+ tickSize: 0,
94
+ },
95
+ },
96
+ ]),
97
+ dark: mergeConfigScopes([
98
+ VEGALITE_THEME,
99
+ {
100
+ background: "#333",
101
+ view: {
102
+ fill: "#333",
103
+ stroke: "#888",
104
+ },
105
+ title: {
106
+ color: "#fff",
107
+ },
108
+ axis: {
109
+ domainColor: "#fff",
110
+ gridColor: "#888",
111
+ tickColor: "#fff",
112
+ labelColor: "#fff",
113
+ titleColor: "#fff",
114
+ },
115
+ text: {
116
+ color: "#fff",
117
+ },
118
+ rule: {
119
+ color: "#fff",
120
+ },
121
+ },
122
+ ]),
123
+ fivethirtyeight: mergeConfigScopes([
124
+ VEGALITE_THEME,
125
+ {
126
+ background: "#f0f0f0",
127
+ view: {
128
+ fill: "#f0f0f0",
129
+ },
130
+ mark: {
131
+ color: "#30a2da",
132
+ },
133
+ point: {
134
+ filled: true,
135
+ shape: "circle",
136
+ },
137
+ axis: {
138
+ domainColor: "#cbcbcb",
139
+ grid: true,
140
+ gridColor: "#cbcbcb",
141
+ gridWidth: 1,
142
+ labelColor: "#999",
143
+ labelFontSize: 10,
144
+ titleColor: "#333",
145
+ tickColor: "#cbcbcb",
146
+ tickSize: 10,
147
+ titleFontSize: 14,
148
+ titlePadding: 10,
149
+ labelPadding: 4,
150
+ },
151
+ axisNominal: {
152
+ grid: false,
153
+ },
154
+ axisOrdinal: {
155
+ grid: false,
156
+ },
157
+ title: {
158
+ anchor: "start",
159
+ fontSize: 24,
160
+ fontWeight: 600,
161
+ offset: 20,
162
+ },
163
+ },
164
+ ]),
165
+ urbaninstitute: mergeConfigScopes([
166
+ VEGALITE_THEME,
167
+ {
168
+ background: "#FFFFFF",
169
+ view: {
170
+ fill: "#FFFFFF",
171
+ // Vega theme uses "transparent". GenomeSpy color channels are RGB-only,
172
+ // so represent a transparent stroke via zero opacity.
173
+ stroke: "#000000",
174
+ strokeOpacity: 0,
175
+ },
176
+ mark: {
177
+ color: "#1696d2",
178
+ },
179
+ point: {
180
+ filled: true,
181
+ },
182
+ text: {
183
+ font: "Lato",
184
+ color: "#1696d2",
185
+ size: 11,
186
+ align: "center",
187
+ fontWeight: 400,
188
+ },
189
+ title: {
190
+ anchor: "start",
191
+ fontSize: 18,
192
+ font: "Lato",
193
+ },
194
+ axisX: {
195
+ domain: true,
196
+ domainColor: "#000000",
197
+ domainWidth: 1,
198
+ grid: false,
199
+ labelFontSize: 12,
200
+ labelFont: "Lato",
201
+ labelAngle: 0,
202
+ tickColor: "#000000",
203
+ tickSize: 5,
204
+ titleFontSize: 12,
205
+ titlePadding: 10,
206
+ titleFont: "Lato",
207
+ },
208
+ axisY: {
209
+ domain: false,
210
+ domainWidth: 1,
211
+ grid: true,
212
+ gridColor: "#DEDDDD",
213
+ gridWidth: 1,
214
+ labelFontSize: 12,
215
+ labelFont: "Lato",
216
+ labelPadding: 8,
217
+ ticks: false,
218
+ titleFontSize: 12,
219
+ titlePadding: 10,
220
+ titleFont: "Lato",
221
+ },
222
+ },
223
+ ]),
224
+ };
225
+
226
+ /** @type {import("../spec/config.js").BuiltInThemeName[]} */
227
+ const BUILT_IN_THEME_NAMES =
228
+ /** @type {import("../spec/config.js").BuiltInThemeName[]} */ (
229
+ Object.keys(BUILT_IN_THEME_DEFINITIONS)
230
+ );
231
+
232
+ /**
233
+ * @param {import("../spec/config.js").BuiltInThemeName} name
234
+ * @returns {import("../spec/config.js").GenomeSpyConfig}
235
+ */
236
+ function getThemeConfig(name) {
237
+ const config = { ...BUILT_IN_THEME_DEFINITIONS[name] };
238
+ delete config.background;
239
+ return /** @type {import("../spec/config.js").GenomeSpyConfig} */ (config);
240
+ }
241
+
242
+ /**
243
+ * @param {import("../spec/config.js").BuiltInThemeName | import("../spec/config.js").BuiltInThemeName[] | undefined} selection
244
+ * @returns {import("../spec/config.js").BuiltInThemeName[]}
245
+ */
246
+ function resolveThemeNames(selection) {
247
+ if (!selection) {
248
+ return [];
249
+ }
250
+
251
+ const names = Array.isArray(selection) ? selection : [selection];
252
+ const unknown = names.filter(
253
+ (name) => !(name in BUILT_IN_THEME_DEFINITIONS)
254
+ );
255
+ if (unknown.length > 0) {
256
+ throw new Error(
257
+ 'Unknown theme "' +
258
+ unknown[0] +
259
+ '". Available themes: ' +
260
+ BUILT_IN_THEME_NAMES.join(", ")
261
+ );
262
+ }
263
+
264
+ return names;
265
+ }
266
+
267
+ /**
268
+ * @type {import("../spec/config.js").BuiltInThemeName}
269
+ */
270
+ export const DEFAULT_THEME_NAME = "genomespy";
271
+
272
+ /**
273
+ * @param {import("../spec/config.js").BuiltInThemeName} name
274
+ * @returns {string | undefined}
275
+ */
276
+ export function getBuiltInThemeBackground(name) {
277
+ return BUILT_IN_THEME_DEFINITIONS[name].background;
278
+ }
279
+
280
+ /**
281
+ * @param {import("../spec/config.js").BuiltInThemeName | import("../spec/config.js").BuiltInThemeName[] | undefined} selection
282
+ * @returns {import("../spec/config.js").GenomeSpyConfig | undefined}
283
+ */
284
+ export function resolveThemeSelection(selection) {
285
+ const names = resolveThemeNames(selection);
286
+ if (names.length == 0) {
287
+ return undefined;
288
+ }
289
+
290
+ return /** @type {import("../spec/config.js").GenomeSpyConfig} */ (
291
+ mergeConfigScopes(names.map((name) => getThemeConfig(name)))
292
+ );
293
+ }
@@ -0,0 +1,12 @@
1
+ /**
2
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
3
+ * @returns {import("../spec/config.js").TitleConfig}
4
+ */
5
+ export function getConfiguredTitleConfig(scopes: import("../spec/config.js").GenomeSpyConfig[]): import("../spec/config.js").TitleConfig;
6
+ /**
7
+ * @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
8
+ * @param {string | string[]} [styleName]
9
+ * @returns {import("../spec/config.js").StyleConfig}
10
+ */
11
+ export function getConfiguredStyleConfig(scopes: import("../spec/config.js").GenomeSpyConfig[], styleName?: string | string[]): import("../spec/config.js").StyleConfig;
12
+ //# sourceMappingURL=titleConfig.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"titleConfig.d.ts","sourceRoot":"","sources":["../../../src/config/titleConfig.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,iDAHW,OAAO,mBAAmB,EAAE,eAAe,EAAE,GAC3C,OAAO,mBAAmB,EAAE,WAAW,CAWnD;AAED;;;;GAIG;AACH,iDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,cAC7C,MAAM,GAAG,MAAM,EAAE,GACf,OAAO,mBAAmB,EAAE,WAAW,CAoBnD"}