@genome-spy/core 0.36.1 → 0.37.1

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 (523) hide show
  1. package/README.md +1 -0
  2. package/dist/{index.es.js → bundle/index.es.js} +2253 -2115
  3. package/dist/{index.js → bundle/index.js} +180 -44
  4. package/dist/src/data/collector.d.ts +36 -0
  5. package/dist/src/data/collector.d.ts.map +1 -0
  6. package/dist/src/data/collector.js +184 -0
  7. package/dist/src/data/collector.test.js +84 -0
  8. package/dist/src/data/dataFlow.d.ts +65 -0
  9. package/dist/src/data/dataFlow.d.ts.map +1 -0
  10. package/dist/src/data/dataFlow.js +142 -0
  11. package/dist/src/data/dataFlow.test.js +5 -0
  12. package/dist/src/data/facetNode.d.ts +17 -0
  13. package/dist/src/data/facetNode.d.ts.map +1 -0
  14. package/dist/src/data/facetNode.js +17 -0
  15. package/dist/src/data/flow.test.js +72 -0
  16. package/dist/src/data/flowNode.d.ts +136 -0
  17. package/dist/src/data/flowNode.d.ts.map +1 -0
  18. package/dist/src/data/flowNode.js +286 -0
  19. package/dist/src/data/flowNode.test.js +50 -0
  20. package/dist/src/data/flowOptimizer.d.ts +27 -0
  21. package/dist/src/data/flowOptimizer.d.ts.map +1 -0
  22. package/dist/src/data/flowOptimizer.js +133 -0
  23. package/dist/src/data/flowOptimizer.test.js +193 -0
  24. package/dist/src/data/flowTestUtils.d.ts +30 -0
  25. package/dist/src/data/flowTestUtils.d.ts.map +1 -0
  26. package/dist/src/data/flowTestUtils.js +63 -0
  27. package/dist/src/data/formats/fasta.d.ts +20 -0
  28. package/dist/src/data/formats/fasta.d.ts.map +1 -0
  29. package/dist/src/data/formats/fasta.js +32 -0
  30. package/dist/src/data/formats/fasta.test.js +27 -0
  31. package/dist/src/data/sources/dataSource.d.ts +12 -0
  32. package/dist/src/data/sources/dataSource.d.ts.map +1 -0
  33. package/dist/src/data/sources/dataSource.js +25 -0
  34. package/dist/src/data/sources/dataSourceFactory.d.ts +16 -0
  35. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -0
  36. package/dist/src/data/sources/dataSourceFactory.js +127 -0
  37. package/dist/src/data/sources/dataUtils.d.ts +50 -0
  38. package/dist/src/data/sources/dataUtils.d.ts.map +1 -0
  39. package/dist/src/data/sources/dataUtils.js +83 -0
  40. package/dist/src/data/sources/dynamic/README.md +3 -0
  41. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts +13 -0
  42. package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +1 -0
  43. package/dist/src/data/sources/dynamic/axisGenomeSource.js +19 -0
  44. package/dist/src/data/sources/dynamic/axisTickSource.d.ts +18 -0
  45. package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +1 -0
  46. package/dist/src/data/sources/dynamic/axisTickSource.js +73 -0
  47. package/dist/src/data/sources/dynamic/bamSource.d.ts +46 -0
  48. package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -0
  49. package/dist/src/data/sources/dynamic/bamSource.js +115 -0
  50. package/dist/src/data/sources/dynamic/bigBedSource.d.ts +51 -0
  51. package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -0
  52. package/dist/src/data/sources/dynamic/bigBedSource.js +128 -0
  53. package/dist/src/data/sources/dynamic/bigWigSource.d.ts +58 -0
  54. package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -0
  55. package/dist/src/data/sources/dynamic/bigWigSource.js +166 -0
  56. package/dist/src/data/sources/dynamic/gff3Source.d.ts +8 -0
  57. package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -0
  58. package/dist/src/data/sources/dynamic/gff3Source.js +19 -0
  59. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +30 -0
  60. package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -0
  61. package/dist/src/data/sources/dynamic/indexedFastaSource.js +86 -0
  62. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +42 -0
  63. package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -0
  64. package/dist/src/data/sources/dynamic/singleAxisLazySource.js +129 -0
  65. package/dist/src/data/sources/dynamic/tabixSource.d.ts +54 -0
  66. package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -0
  67. package/dist/src/data/sources/dynamic/tabixSource.js +140 -0
  68. package/dist/src/data/sources/dynamic/windowedMixin.d.ts +32 -0
  69. package/dist/src/data/sources/dynamic/windowedMixin.d.ts.map +1 -0
  70. package/dist/src/data/sources/dynamic/windowedMixin.js +53 -0
  71. package/dist/src/data/sources/inlineSource.d.ts +16 -0
  72. package/dist/src/data/sources/inlineSource.d.ts.map +1 -0
  73. package/dist/src/data/sources/inlineSource.js +68 -0
  74. package/dist/src/data/sources/inlineSource.test.js +56 -0
  75. package/dist/src/data/sources/namedSource.d.ts +25 -0
  76. package/dist/src/data/sources/namedSource.d.ts.map +1 -0
  77. package/dist/src/data/sources/namedSource.js +80 -0
  78. package/dist/src/data/sources/sequenceSource.d.ts +17 -0
  79. package/dist/src/data/sources/sequenceSource.d.ts.map +1 -0
  80. package/dist/src/data/sources/sequenceSource.js +47 -0
  81. package/dist/src/data/sources/sequenceSource.test.js +46 -0
  82. package/dist/src/data/sources/urlSource.d.ts +16 -0
  83. package/dist/src/data/sources/urlSource.d.ts.map +1 -0
  84. package/dist/src/data/sources/urlSource.js +74 -0
  85. package/dist/src/data/transforms/aggregate.d.ts +18 -0
  86. package/dist/src/data/transforms/aggregate.d.ts.map +1 -0
  87. package/dist/src/data/transforms/aggregate.js +67 -0
  88. package/dist/src/data/transforms/clone.d.ts +15 -0
  89. package/dist/src/data/transforms/clone.d.ts.map +1 -0
  90. package/dist/src/data/transforms/clone.js +40 -0
  91. package/dist/src/data/transforms/clone.test.js +11 -0
  92. package/dist/src/data/transforms/coverage.d.ts +30 -0
  93. package/dist/src/data/transforms/coverage.d.ts.map +1 -0
  94. package/dist/src/data/transforms/coverage.js +183 -0
  95. package/dist/src/data/transforms/coverage.test.js +123 -0
  96. package/dist/src/data/transforms/filter.d.ts +12 -0
  97. package/dist/src/data/transforms/filter.d.ts.map +1 -0
  98. package/dist/src/data/transforms/filter.js +33 -0
  99. package/dist/src/data/transforms/filter.test.js +18 -0
  100. package/dist/src/data/transforms/filterScoredLabels.d.ts +29 -0
  101. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -0
  102. package/dist/src/data/transforms/filterScoredLabels.js +134 -0
  103. package/dist/src/data/transforms/flatten.d.ts +10 -0
  104. package/dist/src/data/transforms/flatten.d.ts.map +1 -0
  105. package/dist/src/data/transforms/flatten.js +68 -0
  106. package/dist/src/data/transforms/flatten.test.js +93 -0
  107. package/dist/src/data/transforms/flattenCompressedExons.d.ts +19 -0
  108. package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -0
  109. package/dist/src/data/transforms/flattenCompressedExons.js +53 -0
  110. package/dist/src/data/transforms/flattenDelimited.d.ts +10 -0
  111. package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -0
  112. package/dist/src/data/transforms/flattenDelimited.js +66 -0
  113. package/dist/src/data/transforms/flattenDelimited.test.js +87 -0
  114. package/dist/src/data/transforms/flattenSequence.d.ts +11 -0
  115. package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -0
  116. package/dist/src/data/transforms/flattenSequence.js +35 -0
  117. package/dist/src/data/transforms/flattenSequence.test.js +34 -0
  118. package/dist/src/data/transforms/formula.d.ts +13 -0
  119. package/dist/src/data/transforms/formula.d.ts.map +1 -0
  120. package/dist/src/data/transforms/formula.js +35 -0
  121. package/dist/src/data/transforms/formula.test.js +19 -0
  122. package/dist/src/data/transforms/identifier.d.ts +40 -0
  123. package/dist/src/data/transforms/identifier.d.ts.map +1 -0
  124. package/dist/src/data/transforms/identifier.js +106 -0
  125. package/dist/src/data/transforms/identifier.test.js +83 -0
  126. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +10 -0
  127. package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -0
  128. package/dist/src/data/transforms/linearizeGenomicCoordinate.js +97 -0
  129. package/dist/src/data/transforms/measureText.d.ts +18 -0
  130. package/dist/src/data/transforms/measureText.d.ts.map +1 -0
  131. package/dist/src/data/transforms/measureText.js +42 -0
  132. package/dist/src/data/transforms/pileup.d.ts +10 -0
  133. package/dist/src/data/transforms/pileup.d.ts.map +1 -0
  134. package/dist/src/data/transforms/pileup.js +126 -0
  135. package/dist/src/data/transforms/pileup.test.js +70 -0
  136. package/dist/src/data/transforms/project.d.ts +13 -0
  137. package/dist/src/data/transforms/project.d.ts.map +1 -0
  138. package/dist/src/data/transforms/project.js +38 -0
  139. package/dist/src/data/transforms/project.test.js +32 -0
  140. package/dist/src/data/transforms/regexExtract.d.ts +13 -0
  141. package/dist/src/data/transforms/regexExtract.d.ts.map +1 -0
  142. package/dist/src/data/transforms/regexExtract.js +57 -0
  143. package/dist/src/data/transforms/regexExtract.test.js +67 -0
  144. package/dist/src/data/transforms/regexFold.d.ts +14 -0
  145. package/dist/src/data/transforms/regexFold.d.ts.map +1 -0
  146. package/dist/src/data/transforms/regexFold.js +139 -0
  147. package/dist/src/data/transforms/regexFold.test.js +160 -0
  148. package/dist/src/data/transforms/sample.d.ts +42 -0
  149. package/dist/src/data/transforms/sample.d.ts.map +1 -0
  150. package/dist/src/data/transforms/sample.js +99 -0
  151. package/dist/src/data/transforms/sample.test.js +38 -0
  152. package/dist/src/data/transforms/stack.d.ts +11 -0
  153. package/dist/src/data/transforms/stack.d.ts.map +1 -0
  154. package/dist/src/data/transforms/stack.js +134 -0
  155. package/dist/src/data/transforms/stack.test.js +91 -0
  156. package/dist/src/data/transforms/transformFactory.d.ts +12 -0
  157. package/dist/src/data/transforms/transformFactory.d.ts.map +1 -0
  158. package/dist/src/data/transforms/transformFactory.js +59 -0
  159. package/dist/src/encoder/accessor.d.ts +15 -0
  160. package/dist/src/encoder/accessor.d.ts.map +1 -0
  161. package/dist/src/encoder/accessor.js +76 -0
  162. package/dist/src/encoder/accessor.test.js +47 -0
  163. package/dist/src/encoder/encoder.d.ts +144 -0
  164. package/dist/src/encoder/encoder.d.ts.map +1 -0
  165. package/dist/src/encoder/encoder.js +400 -0
  166. package/dist/src/encoder/encoder.test.js +98 -0
  167. package/dist/src/fonts/Lato-Regular.json +1267 -0
  168. package/dist/src/fonts/Lato-Regular.png +0 -0
  169. package/dist/src/fonts/OFL.txt +93 -0
  170. package/dist/src/fonts/README.md +3 -0
  171. package/dist/src/fonts/bmFontManager.d.ts +182 -0
  172. package/dist/src/fonts/bmFontManager.d.ts.map +1 -0
  173. package/dist/src/fonts/bmFontManager.js +359 -0
  174. package/dist/src/fonts/bmFontMetrics.d.ts +45 -0
  175. package/dist/src/fonts/bmFontMetrics.d.ts.map +1 -0
  176. package/dist/src/fonts/bmFontMetrics.js +108 -0
  177. package/dist/src/genome/genome.d.ts +172 -0
  178. package/dist/src/genome/genome.d.ts.map +1 -0
  179. package/dist/src/genome/genome.js +379 -0
  180. package/dist/src/genome/genome.test.js +226 -0
  181. package/dist/src/genome/genomeStore.d.ts +20 -0
  182. package/dist/src/genome/genomeStore.d.ts.map +1 -0
  183. package/dist/src/genome/genomeStore.js +54 -0
  184. package/dist/src/genome/locusFormat.d.ts +14 -0
  185. package/dist/src/genome/locusFormat.d.ts.map +1 -0
  186. package/dist/src/genome/locusFormat.js +37 -0
  187. package/dist/src/genome/scaleIndex.d.ts +6 -0
  188. package/dist/src/genome/scaleIndex.d.ts.map +1 -0
  189. package/dist/src/genome/scaleIndex.js +165 -0
  190. package/dist/src/genome/scaleIndex.test.js +78 -0
  191. package/dist/src/genome/scaleLocus.d.ts +3 -0
  192. package/dist/src/genome/scaleLocus.d.ts.map +1 -0
  193. package/dist/src/genome/scaleLocus.js +101 -0
  194. package/dist/src/genome/scaleLocus.test.js +4 -0
  195. package/dist/src/genomeSpy.d.ts +141 -0
  196. package/dist/src/genomeSpy.d.ts.map +1 -0
  197. package/dist/src/genomeSpy.js +788 -0
  198. package/dist/src/gl/arrayBuilder.d.ts +71 -0
  199. package/dist/src/gl/arrayBuilder.d.ts.map +1 -0
  200. package/dist/src/gl/arrayBuilder.js +199 -0
  201. package/dist/src/gl/dataToVertices.d.ts +194 -0
  202. package/dist/src/gl/dataToVertices.d.ts.map +1 -0
  203. package/dist/src/gl/dataToVertices.js +639 -0
  204. package/dist/src/gl/includes/common.glsl.js +2 -0
  205. package/dist/src/gl/includes/picking.fragment.glsl.js +2 -0
  206. package/dist/src/gl/includes/picking.vertex.glsl.js +2 -0
  207. package/dist/src/gl/includes/sampleFacet.glsl.js +2 -0
  208. package/dist/src/gl/includes/scales.glsl.js +2 -0
  209. package/dist/src/gl/link.fragment.glsl.js +2 -0
  210. package/dist/src/gl/link.vertex.glsl.js +2 -0
  211. package/dist/src/gl/point.fragment.glsl.js +2 -0
  212. package/dist/src/gl/point.vertex.glsl.js +2 -0
  213. package/dist/src/gl/rect.fragment.glsl.js +2 -0
  214. package/dist/src/gl/rect.vertex.glsl.js +2 -0
  215. package/dist/src/gl/rule.fragment.glsl.js +2 -0
  216. package/dist/src/gl/rule.vertex.glsl.js +2 -0
  217. package/dist/src/gl/text.fragment.glsl.js +2 -0
  218. package/dist/src/gl/text.vertex.glsl.js +2 -0
  219. package/dist/src/gl/webGLHelper.d.ts +118 -0
  220. package/dist/src/gl/webGLHelper.d.ts.map +1 -0
  221. package/dist/src/gl/webGLHelper.js +513 -0
  222. package/dist/src/img/bowtie.svg +1 -0
  223. package/dist/src/img/genomespy-favicon.svg +34 -0
  224. package/dist/src/index.d.ts +15 -0
  225. package/dist/src/index.d.ts.map +1 -0
  226. package/dist/src/index.html +11 -0
  227. package/dist/src/index.js +129 -0
  228. package/dist/src/marks/link.d.ts +11 -0
  229. package/dist/src/marks/link.d.ts.map +1 -0
  230. package/dist/src/marks/link.js +175 -0
  231. package/dist/src/marks/mark.d.ts +226 -0
  232. package/dist/src/marks/mark.d.ts.map +1 -0
  233. package/dist/src/marks/mark.js +1004 -0
  234. package/dist/src/marks/markUtils.d.ts +23 -0
  235. package/dist/src/marks/markUtils.d.ts.map +1 -0
  236. package/dist/src/marks/markUtils.js +125 -0
  237. package/dist/src/marks/pointMark.d.ts +11 -0
  238. package/dist/src/marks/pointMark.d.ts.map +1 -0
  239. package/dist/src/marks/pointMark.js +251 -0
  240. package/dist/src/marks/rectMark.d.ts +18 -0
  241. package/dist/src/marks/rectMark.d.ts.map +1 -0
  242. package/dist/src/marks/rectMark.js +255 -0
  243. package/dist/src/marks/rule.d.ts +6 -0
  244. package/dist/src/marks/rule.d.ts.map +1 -0
  245. package/dist/src/marks/rule.js +250 -0
  246. package/dist/src/marks/text.d.ts +13 -0
  247. package/dist/src/marks/text.d.ts.map +1 -0
  248. package/dist/src/marks/text.js +279 -0
  249. package/dist/src/scale/colorUtils.d.ts +34 -0
  250. package/dist/src/scale/colorUtils.d.ts.map +1 -0
  251. package/dist/src/scale/colorUtils.js +184 -0
  252. package/dist/src/scale/glslScaleGenerator.d.ts +45 -0
  253. package/dist/src/scale/glslScaleGenerator.d.ts.map +1 -0
  254. package/dist/src/scale/glslScaleGenerator.js +506 -0
  255. package/dist/src/scale/scale.d.ts +10 -0
  256. package/dist/src/scale/scale.d.ts.map +1 -0
  257. package/dist/src/scale/scale.js +456 -0
  258. package/dist/src/scale/scale.test.js +324 -0
  259. package/dist/src/scale/ticks.d.ts +47 -0
  260. package/dist/src/scale/ticks.d.ts.map +1 -0
  261. package/dist/src/scale/ticks.js +203 -0
  262. package/dist/src/scale/ticks.test.js +40 -0
  263. package/dist/src/singlePageApp.d.ts +2 -0
  264. package/dist/src/singlePageApp.d.ts.map +1 -0
  265. package/dist/src/singlePageApp.js +13 -0
  266. package/dist/src/spec/axis.d.ts +402 -0
  267. package/dist/src/spec/channel.d.ts +440 -0
  268. package/dist/src/spec/data.d.ts +370 -0
  269. package/dist/src/spec/font.d.ts +15 -0
  270. package/dist/src/spec/genome.d.ts +35 -0
  271. package/dist/src/spec/mark.d.ts +435 -0
  272. package/dist/src/spec/root.d.ts +22 -0
  273. package/dist/src/spec/sampleView.d.ts +185 -0
  274. package/dist/src/spec/scale.d.ts +273 -0
  275. package/dist/src/spec/title.d.ts +102 -0
  276. package/dist/src/spec/tooltip.d.ts +9 -0
  277. package/dist/src/spec/transform.d.ts +504 -0
  278. package/dist/src/spec/view.d.ts +214 -0
  279. package/dist/src/styles/genome-spy.css.d.ts +3 -0
  280. package/dist/src/styles/genome-spy.css.d.ts.map +1 -0
  281. package/dist/src/styles/genome-spy.css.js +114 -0
  282. package/dist/src/styles/genome-spy.scss +153 -0
  283. package/dist/src/tooltip/dataTooltipHandler.d.ts +2 -0
  284. package/dist/src/tooltip/dataTooltipHandler.d.ts.map +1 -0
  285. package/dist/src/tooltip/dataTooltipHandler.js +64 -0
  286. package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts +2 -0
  287. package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts.map +1 -0
  288. package/dist/src/tooltip/refseqGeneTooltipHandler.js +78 -0
  289. package/dist/src/tooltip/tooltipHandler.d.ts +9 -0
  290. package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -0
  291. package/dist/src/tooltip/tooltipHandler.ts +12 -0
  292. package/dist/src/types/bmFont.d.ts +58 -0
  293. package/dist/src/types/embedApi.d.ts +67 -0
  294. package/dist/src/types/encoder.d.ts +84 -0
  295. package/dist/src/types/flowBatch.d.ts +40 -0
  296. package/dist/src/types/rendering.d.ts +65 -0
  297. package/dist/src/types/scaleResolutionApi.d.ts +40 -0
  298. package/dist/src/types/viewContext.d.ts +85 -0
  299. package/dist/src/utils/addBaseUrl.d.ts +6 -0
  300. package/dist/src/utils/addBaseUrl.d.ts.map +1 -0
  301. package/dist/src/utils/addBaseUrl.js +19 -0
  302. package/dist/src/utils/addBaseUrl.test.js +22 -0
  303. package/dist/src/utils/animator.d.ts +41 -0
  304. package/dist/src/utils/animator.d.ts.map +1 -0
  305. package/dist/src/utils/animator.js +83 -0
  306. package/dist/src/utils/arrayUtils.d.ts +34 -0
  307. package/dist/src/utils/arrayUtils.d.ts.map +1 -0
  308. package/dist/src/utils/arrayUtils.js +61 -0
  309. package/dist/src/utils/binnedIndex.d.ts +23 -0
  310. package/dist/src/utils/binnedIndex.d.ts.map +1 -0
  311. package/dist/src/utils/binnedIndex.js +167 -0
  312. package/dist/src/utils/binnedIndex.test.js +155 -0
  313. package/dist/src/utils/clamp.d.ts +7 -0
  314. package/dist/src/utils/clamp.d.ts.map +1 -0
  315. package/dist/src/utils/clamp.js +8 -0
  316. package/dist/src/utils/cloner.d.ts +16 -0
  317. package/dist/src/utils/cloner.d.ts.map +1 -0
  318. package/dist/src/utils/cloner.js +34 -0
  319. package/dist/src/utils/cloner.test.js +24 -0
  320. package/dist/src/utils/coalesce.d.ts +6 -0
  321. package/dist/src/utils/coalesce.d.ts.map +1 -0
  322. package/dist/src/utils/coalesce.js +11 -0
  323. package/dist/src/utils/coalesce.test.js +16 -0
  324. package/dist/src/utils/concatIterables.d.ts +8 -0
  325. package/dist/src/utils/concatIterables.d.ts.map +1 -0
  326. package/dist/src/utils/concatIterables.js +26 -0
  327. package/dist/src/utils/concatIterables.test.js +8 -0
  328. package/dist/src/utils/debounce.d.ts +8 -0
  329. package/dist/src/utils/debounce.d.ts.map +1 -0
  330. package/dist/src/utils/debounce.js +37 -0
  331. package/dist/src/utils/domainArray.d.ts +61 -0
  332. package/dist/src/utils/domainArray.d.ts.map +1 -0
  333. package/dist/src/utils/domainArray.js +216 -0
  334. package/dist/src/utils/domainArray.test.js +130 -0
  335. package/dist/src/utils/eerp.d.ts +12 -0
  336. package/dist/src/utils/eerp.d.ts.map +1 -0
  337. package/dist/src/utils/eerp.js +13 -0
  338. package/dist/src/utils/expression.d.ts +9 -0
  339. package/dist/src/utils/expression.d.ts.map +1 -0
  340. package/dist/src/utils/expression.js +32 -0
  341. package/dist/src/utils/field.d.ts +17 -0
  342. package/dist/src/utils/field.d.ts.map +1 -0
  343. package/dist/src/utils/field.js +28 -0
  344. package/dist/src/utils/formatObject.d.ts +7 -0
  345. package/dist/src/utils/formatObject.d.ts.map +1 -0
  346. package/dist/src/utils/formatObject.js +37 -0
  347. package/dist/src/utils/indexer.d.ts +16 -0
  348. package/dist/src/utils/indexer.d.ts.map +1 -0
  349. package/dist/src/utils/indexer.js +43 -0
  350. package/dist/src/utils/indexer.test.js +47 -0
  351. package/dist/src/utils/inertia.d.ts +42 -0
  352. package/dist/src/utils/inertia.d.ts.map +1 -0
  353. package/dist/src/utils/inertia.js +124 -0
  354. package/dist/src/utils/interactionEvent.d.ts +26 -0
  355. package/dist/src/utils/interactionEvent.d.ts.map +1 -0
  356. package/dist/src/utils/interactionEvent.js +33 -0
  357. package/dist/src/utils/iterateNestedMaps.d.ts +11 -0
  358. package/dist/src/utils/iterateNestedMaps.d.ts.map +1 -0
  359. package/dist/src/utils/iterateNestedMaps.js +21 -0
  360. package/dist/src/utils/iterateNestedMaps.test.js +33 -0
  361. package/dist/src/utils/kWayMerge.d.ts +9 -0
  362. package/dist/src/utils/kWayMerge.d.ts.map +1 -0
  363. package/dist/src/utils/kWayMerge.js +42 -0
  364. package/dist/src/utils/kWayMerge.test.js +26 -0
  365. package/dist/src/utils/layout/flexLayout.d.ts +182 -0
  366. package/dist/src/utils/layout/flexLayout.d.ts.map +1 -0
  367. package/dist/src/utils/layout/flexLayout.js +381 -0
  368. package/dist/src/utils/layout/flexLayout.test.js +323 -0
  369. package/dist/src/utils/layout/grid.d.ts +29 -0
  370. package/dist/src/utils/layout/grid.d.ts.map +1 -0
  371. package/dist/src/utils/layout/grid.js +95 -0
  372. package/dist/src/utils/layout/grid.test.js +71 -0
  373. package/dist/src/utils/layout/padding.d.ts +83 -0
  374. package/dist/src/utils/layout/padding.d.ts.map +1 -0
  375. package/dist/src/utils/layout/padding.js +155 -0
  376. package/dist/src/utils/layout/point.d.ts +16 -0
  377. package/dist/src/utils/layout/point.d.ts.map +1 -0
  378. package/dist/src/utils/layout/point.js +23 -0
  379. package/dist/src/utils/layout/rectangle.d.ts +142 -0
  380. package/dist/src/utils/layout/rectangle.d.ts.map +1 -0
  381. package/dist/src/utils/layout/rectangle.js +296 -0
  382. package/dist/src/utils/layout/rectangle.test.js +172 -0
  383. package/dist/src/utils/mergeObjects.d.ts +15 -0
  384. package/dist/src/utils/mergeObjects.d.ts.map +1 -0
  385. package/dist/src/utils/mergeObjects.js +99 -0
  386. package/dist/src/utils/mergeObjects.test.js +42 -0
  387. package/dist/src/utils/numberExtractor.d.ts +9 -0
  388. package/dist/src/utils/numberExtractor.d.ts.map +1 -0
  389. package/dist/src/utils/numberExtractor.js +24 -0
  390. package/dist/src/utils/numberExtractor.test.js +6 -0
  391. package/dist/src/utils/point.d.ts +9 -0
  392. package/dist/src/utils/point.d.ts.map +1 -0
  393. package/dist/src/utils/point.js +14 -0
  394. package/dist/src/utils/propertyCacher.d.ts +30 -0
  395. package/dist/src/utils/propertyCacher.d.ts.map +1 -0
  396. package/dist/src/utils/propertyCacher.js +70 -0
  397. package/dist/src/utils/propertyCacher.test.js +85 -0
  398. package/dist/src/utils/propertyCoalescer.d.ts +15 -0
  399. package/dist/src/utils/propertyCoalescer.d.ts.map +1 -0
  400. package/dist/src/utils/propertyCoalescer.js +42 -0
  401. package/dist/src/utils/propertyCoalescer.test.js +22 -0
  402. package/dist/src/utils/reservationMap.d.ts +42 -0
  403. package/dist/src/utils/reservationMap.d.ts.map +1 -0
  404. package/dist/src/utils/reservationMap.js +103 -0
  405. package/dist/src/utils/reservationMap.test.js +20 -0
  406. package/dist/src/utils/scaleNull.d.ts +13 -0
  407. package/dist/src/utils/scaleNull.d.ts.map +1 -0
  408. package/dist/src/utils/scaleNull.js +21 -0
  409. package/dist/src/utils/setOperations.d.ts +31 -0
  410. package/dist/src/utils/setOperations.d.ts.map +1 -0
  411. package/dist/src/utils/setOperations.js +75 -0
  412. package/dist/src/utils/smoothstep.d.ts +7 -0
  413. package/dist/src/utils/smoothstep.d.ts.map +1 -0
  414. package/dist/src/utils/smoothstep.js +10 -0
  415. package/dist/src/utils/throttle.d.ts +8 -0
  416. package/dist/src/utils/throttle.d.ts.map +1 -0
  417. package/dist/src/utils/throttle.js +34 -0
  418. package/dist/src/utils/topK.d.ts +22 -0
  419. package/dist/src/utils/topK.d.ts.map +1 -0
  420. package/dist/src/utils/topK.js +76 -0
  421. package/dist/src/utils/topK.test.js +64 -0
  422. package/dist/src/utils/transition.d.ts +44 -0
  423. package/dist/src/utils/transition.d.ts.map +1 -0
  424. package/dist/src/utils/transition.js +74 -0
  425. package/dist/src/utils/trees.d.ts +56 -0
  426. package/dist/src/utils/trees.d.ts.map +1 -0
  427. package/dist/src/utils/trees.js +92 -0
  428. package/dist/src/utils/trees.test.js +130 -0
  429. package/dist/src/utils/ui/tooltip.d.ts +50 -0
  430. package/dist/src/utils/ui/tooltip.d.ts.map +1 -0
  431. package/dist/src/utils/ui/tooltip.js +189 -0
  432. package/dist/src/utils/url.d.ts +9 -0
  433. package/dist/src/utils/url.d.ts.map +1 -0
  434. package/dist/src/utils/url.js +22 -0
  435. package/dist/src/utils/variableTools.d.ts +14 -0
  436. package/dist/src/utils/variableTools.d.ts.map +1 -0
  437. package/dist/src/utils/variableTools.js +24 -0
  438. package/dist/src/utils/variableTools.test.js +13 -0
  439. package/dist/src/view/axisGridView.d.ts +39 -0
  440. package/dist/src/view/axisGridView.d.ts.map +1 -0
  441. package/dist/src/view/axisGridView.js +246 -0
  442. package/dist/src/view/axisResolution.d.ts +24 -0
  443. package/dist/src/view/axisResolution.d.ts.map +1 -0
  444. package/dist/src/view/axisResolution.js +141 -0
  445. package/dist/src/view/axisResolution.test.js +201 -0
  446. package/dist/src/view/axisView.d.ts +49 -0
  447. package/dist/src/view/axisView.d.ts.map +1 -0
  448. package/dist/src/view/axisView.js +629 -0
  449. package/dist/src/view/concatView.d.ts +16 -0
  450. package/dist/src/view/concatView.d.ts.map +1 -0
  451. package/dist/src/view/concatView.js +84 -0
  452. package/dist/src/view/containerView.d.ts +43 -0
  453. package/dist/src/view/containerView.d.ts.map +1 -0
  454. package/dist/src/view/containerView.js +137 -0
  455. package/dist/src/view/facetView.d.ts +71 -0
  456. package/dist/src/view/facetView.d.ts.map +1 -0
  457. package/dist/src/view/facetView.js +492 -0
  458. package/dist/src/view/flowBuilder.d.ts +37 -0
  459. package/dist/src/view/flowBuilder.d.ts.map +1 -0
  460. package/dist/src/view/flowBuilder.js +383 -0
  461. package/dist/src/view/flowBuilder.test.js +125 -0
  462. package/dist/src/view/gridView.d.ts +111 -0
  463. package/dist/src/view/gridView.d.ts.map +1 -0
  464. package/dist/src/view/gridView.js +1086 -0
  465. package/dist/src/view/implicitRootView.d.ts +9 -0
  466. package/dist/src/view/implicitRootView.d.ts.map +1 -0
  467. package/dist/src/view/implicitRootView.js +23 -0
  468. package/dist/src/view/importView.d.ts +17 -0
  469. package/dist/src/view/importView.d.ts.map +1 -0
  470. package/dist/src/view/importView.js +22 -0
  471. package/dist/src/view/layerView.d.ts +25 -0
  472. package/dist/src/view/layerView.d.ts.map +1 -0
  473. package/dist/src/view/layerView.js +77 -0
  474. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts +30 -0
  475. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -0
  476. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +175 -0
  477. package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts +14 -0
  478. package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts.map +1 -0
  479. package/dist/src/view/renderingContext/compositeViewRenderingContext.js +51 -0
  480. package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts +51 -0
  481. package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts.map +1 -0
  482. package/dist/src/view/renderingContext/debuggingViewRenderingContext.js +94 -0
  483. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts +60 -0
  484. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts.map +1 -0
  485. package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.js +128 -0
  486. package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts +19 -0
  487. package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts.map +1 -0
  488. package/dist/src/view/renderingContext/simpleViewRenderingContext.js +64 -0
  489. package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts +22 -0
  490. package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts.map +1 -0
  491. package/dist/src/view/renderingContext/svgViewRenderingContext.js +125 -0
  492. package/dist/src/view/renderingContext/viewRenderingContext.d.ts +33 -0
  493. package/dist/src/view/renderingContext/viewRenderingContext.d.ts.map +1 -0
  494. package/dist/src/view/renderingContext/viewRenderingContext.js +41 -0
  495. package/dist/src/view/scaleResolution.d.ts +170 -0
  496. package/dist/src/view/scaleResolution.d.ts.map +1 -0
  497. package/dist/src/view/scaleResolution.js +874 -0
  498. package/dist/src/view/scaleResolution.test.js +658 -0
  499. package/dist/src/view/testUtils.d.ts +30 -0
  500. package/dist/src/view/testUtils.d.ts.map +1 -0
  501. package/dist/src/view/testUtils.js +101 -0
  502. package/dist/src/view/title.d.ts +6 -0
  503. package/dist/src/view/title.d.ts.map +1 -0
  504. package/dist/src/view/title.js +165 -0
  505. package/dist/src/view/unitView.d.ts +93 -0
  506. package/dist/src/view/unitView.d.ts.map +1 -0
  507. package/dist/src/view/unitView.js +345 -0
  508. package/dist/src/view/view.d.ts +291 -0
  509. package/dist/src/view/view.d.ts.map +1 -0
  510. package/dist/src/view/view.js +691 -0
  511. package/dist/src/view/view.test.js +214 -0
  512. package/dist/src/view/viewFactory.d.ts +76 -0
  513. package/dist/src/view/viewFactory.d.ts.map +1 -0
  514. package/dist/src/view/viewFactory.js +178 -0
  515. package/dist/src/view/viewFactory.test.js +17 -0
  516. package/dist/src/view/viewUtils.d.ts +90 -0
  517. package/dist/src/view/viewUtils.d.ts.map +1 -0
  518. package/dist/src/view/viewUtils.js +326 -0
  519. package/dist/src/view/zoom.d.ts +23 -0
  520. package/dist/src/view/zoom.d.ts.map +1 -0
  521. package/dist/src/view/zoom.js +89 -0
  522. package/package.json +17 -12
  523. package/dist/style.css +0 -1
@@ -0,0 +1,435 @@
1
+ import { Scalar } from "./channel";
2
+ import { Align, Baseline, FontStyle, FontWeight } from "./font";
3
+ import { Tooltip } from "./tooltip";
4
+
5
+ export type MarkType = "rect" | "point" | "rule" | "text" | "link";
6
+
7
+ export interface FillAndStrokeProps {
8
+ /** The fill color */
9
+ fill?: string;
10
+
11
+ /** The fill opacity. Value between [0, 1]. */
12
+ fillOpacity?: number;
13
+
14
+ /** The stroke color */
15
+ stroke?: string;
16
+
17
+ /** The stroke opacity. Value between [0, 1]. */
18
+ strokeOpacity?: number;
19
+ }
20
+
21
+ export interface SecondaryPositionProps {
22
+ x2?: number;
23
+ y2?: number;
24
+ }
25
+
26
+ export interface AngleProps {
27
+ /**
28
+ * The rotation angle in degrees.
29
+ *
30
+ * **Default value:** `0`
31
+ */
32
+ angle?: number;
33
+ }
34
+
35
+ /**
36
+ * Specifies how mark should be faded at the viewport edges.
37
+ * This is mainly used to make axis labels pretty.
38
+ */
39
+ export interface ViewportEdgeFadeProps {
40
+ viewportEdgeFadeWidthTop?: number;
41
+ viewportEdgeFadeWidthRight?: number;
42
+ viewportEdgeFadeWidthBottom?: number;
43
+ viewportEdgeFadeWidthLeft?: number;
44
+
45
+ viewportEdgeFadeDistanceTop?: number;
46
+ viewportEdgeFadeDistanceRight?: number;
47
+ viewportEdgeFadeDistanceBottom?: number;
48
+ viewportEdgeFadeDistanceLeft?: number;
49
+ }
50
+
51
+ export interface RectProps extends SecondaryPositionProps {
52
+ /**
53
+ * Clamps the minimum size-dependent opacity. The property does not affect the
54
+ * `opacity` channel. Valid values are between `0` and `1`.
55
+ *
56
+ * When a rectangle would be smaller than what is specified in `minHeight` and
57
+ * `minWidth`, it is faded out proportionally. Example: a rectangle would be
58
+ * rendered as one pixel wide, but `minWidth` clamps it to five pixels. The
59
+ * rectangle is actually rendered as five pixels wide, but its opacity is
60
+ * multiplied by 0.2. With this setting, you can limit the factor to, for
61
+ * example, 0.5 to keep the rectangles more clearly visible.
62
+ *
63
+ * **Default value:** `0`
64
+ */
65
+ // TODO: Rename to minCompensatedOpacity or something like that
66
+ minOpacity?: number;
67
+
68
+ /**
69
+ * The minimum width of a rectangle in pixels. The property clamps rectangles'
70
+ * widths when the viewport is zoomed out.
71
+ *
72
+ * This property also reduces flickering of very narrow rectangles when zooming.
73
+ * The value should generally be at least one.
74
+ *
75
+ * **Default value:** `1`
76
+ */
77
+ minWidth?: number;
78
+
79
+ /**
80
+ * The minimum height of a rectangle in pixels. The property clamps rectangles' heights.
81
+ *
82
+ * **Default value:** `0`
83
+ */
84
+ minHeight?: number;
85
+
86
+ /**
87
+ * Radius of the rounded corners.
88
+ *
89
+ * **Default value:** `0`
90
+ */
91
+ cornerRadius?: number;
92
+
93
+ /**
94
+ * Radius of the top left rounded corner. Has higher precedence than `cornerRadius`.
95
+ *
96
+ * **Default value:** (None)
97
+ */
98
+ cornerRadiusTopLeft?: number;
99
+
100
+ /**
101
+ * Radius of the top right rounded corner. Has higher precedence than `cornerRadius`.
102
+ *
103
+ * **Default value:** (None)
104
+ */
105
+ cornerRadiusTopRight?: number;
106
+
107
+ /**
108
+ * Radius of the bottom left rounded corner. Has higher precedence than `cornerRadius`.
109
+ *
110
+ * **Default value:** (None)
111
+ */
112
+ cornerRadiusBottomLeft?: number;
113
+
114
+ /**
115
+ * Radius of the bottom right rounded corner. Has higher precedence than `cornerRadius`.
116
+ *
117
+ * **Default value:** (None)
118
+ */
119
+ cornerRadiusBottomRight?: number;
120
+ }
121
+
122
+ export interface RuleProps extends SecondaryPositionProps {
123
+ /**
124
+ * The minimum length of the rule in pixels. Use this property to ensure that
125
+ * very short ranged rules remain visible even when the user zooms out.
126
+ *
127
+ * **Default value:** `0`
128
+ */
129
+ minLength?: number;
130
+
131
+ /**
132
+ * An array of of alternating stroke and gap lengths or `null` for solid strokes.
133
+ *
134
+ * **Default value:** `null`
135
+ */
136
+ strokeDash?: number[];
137
+
138
+ /**
139
+ * An offset for the stroke dash pattern.
140
+ *
141
+ * **Default value:** `0`
142
+ */
143
+ strokeDashOffset?: number;
144
+
145
+ /**
146
+ * The style of stroke ends. Available choices: `"butt"`, `"round`", and `"square"`.
147
+ *
148
+ * **Default value:** `"butt"`
149
+ */
150
+ strokeCap?: "butt" | "square" | "round";
151
+ }
152
+
153
+ export interface TextProps
154
+ extends SecondaryPositionProps,
155
+ AngleProps,
156
+ ViewportEdgeFadeProps {
157
+ /**
158
+ * The text to display. The format of numeric data can be customized by
159
+ * setting a [format specifier](https://github.com/d3/d3-format#locale_format)
160
+ * to channel definition's `format` property.
161
+ *
162
+ * **Default value:** `""`
163
+ */
164
+ text?: Scalar;
165
+
166
+ /**
167
+ * The font size in pixels.
168
+ *
169
+ * **Default value:** `11`
170
+ */
171
+ size?: number;
172
+
173
+ /**
174
+ * The font typeface. GenomeSpy uses [SDF](https://github.com/Chlumsky/msdfgen)
175
+ * versions of [Google Fonts](https://fonts.google.com/). Check their
176
+ * availability at the [A-Frame
177
+ * Fonts](https://github.com/etiennepinchon/aframe-fonts/tree/master/fonts)
178
+ * repository. System fonts are **not** supported.
179
+ *
180
+ * **Default value:** `"Lato"`
181
+ */
182
+ font?: string;
183
+
184
+ /**
185
+ * The font style. Valid values: `"normal"` and `"italic"`.
186
+ *
187
+ * **Default value:** `"normal"`
188
+ */
189
+ fontStyle?: FontStyle;
190
+
191
+ /**
192
+ * The font weight. The following strings and numbers are valid values:
193
+ * `"thin"` (`100`), `"light"` (`300`), `"regular"` (`400`),
194
+ * `"normal"` (`400`), `"medium"` (`500`), `"bold"` (`700`),
195
+ * `"black"` (`900`)
196
+ *
197
+ * **Default value:** `"regular"`
198
+ */
199
+ fontWeight?: FontWeight;
200
+
201
+ /**
202
+ * The horizontal alignment of the text. One of `"left"`, `"center"`, or `"right"`.
203
+ *
204
+ * **Default value:** `"left"`
205
+ */
206
+ align?: Align;
207
+
208
+ /**
209
+ * The vertical alignment of the text. One of `"top"`, `"middle"`, `"bottom"`.
210
+ *
211
+ * **Default value:** `"bottom"`
212
+ */
213
+ baseline?: Baseline;
214
+
215
+ /**
216
+ * The horizontal offset between the text and its anchor point, in pixels.
217
+ * Applied after the rotation by `angle`.
218
+ */
219
+ dx?: number;
220
+
221
+ /**
222
+ * The vertical offset between the text and its anchor point, in pixels.
223
+ * Applied after the rotation by `angle`.
224
+ */
225
+ dy?: number;
226
+
227
+ /**
228
+ * If true, sets the secondary positional channel that allows the text to be squeezed
229
+ * (see the `squeeze` property).
230
+ * Can be used when:
231
+ * 1) `"band"`, `"index"`, or `"locus"` scale is being used and
232
+ * 2) only the primary positional channel is specified.
233
+ *
234
+ * **Default value:** `false`
235
+ */
236
+ fitToBand?: boolean;
237
+
238
+ /**
239
+ * The horizontal padding, in pixels, when the `x2` channel is used for ranged text.
240
+ *
241
+ * **Default value:** `0`
242
+ */
243
+ paddingX?: number;
244
+
245
+ /**
246
+ * The vertical padding, in pixels, when the `y2` channel is used for ranged text.
247
+ *
248
+ * **Default value:** `0`
249
+ */
250
+ paddingY?: number;
251
+
252
+ /**
253
+ * If true, the text is kept inside the viewport when the range of `x` and `x2`
254
+ * intersect the viewport.
255
+ */
256
+ flushX?: boolean;
257
+
258
+ /**
259
+ * If true, the text is kept inside the viewport when the range of `y` and `y2`
260
+ * intersect the viewport.
261
+ */
262
+ flushY?: boolean;
263
+
264
+ /**
265
+ * If the `squeeze` property is true and secondary positional channels (`x2` and/or `y2`)
266
+ * are used, the text is scaled to fit mark's width and/or height.
267
+ *
268
+ * **Default value:** `true`
269
+ */
270
+ squeeze?: boolean;
271
+
272
+ /**
273
+ * Stretch letters so that they can be used with [sequence logos](https://en.wikipedia.org/wiki/Sequence_logo), etc...
274
+ */
275
+ logoLetters?: boolean;
276
+ }
277
+
278
+ export interface PointProps extends AngleProps {
279
+ /**
280
+ * One of `"circle"`, `"square"`, `"cross"`, `"diamond"`, `"triangle-up"`,
281
+ * `"triangle-down"`, `"triangle-right"`, or `"triangle-left"`.
282
+ *
283
+ * **Default value:** `"circle"`
284
+ */
285
+ shape?: string;
286
+
287
+ /**
288
+ * Should the stroke only grow inwards, e.g, the diameter/outline is not affected by the stroke width.
289
+ * Thus, a point that has a zero size has no visible stroke. This allows strokes to be used with
290
+ * geometric zoom, etc.
291
+ *
292
+ * **Default value:** `false`
293
+ */
294
+ inwardStroke?: boolean;
295
+
296
+ /**
297
+ * Gradient strength controls the amount of the gradient eye-candy effect in the fill color.
298
+ * Valid values are between 0 and 1.
299
+ *
300
+ * **Default value:** `0`
301
+ */
302
+ fillGradientStrength?: number;
303
+
304
+ /**
305
+ * Padding between sample facet's upper/lower edge and the maximum point size. This property
306
+ * controls how tightly points are squeezed when facet's height is smaller than the maximum
307
+ * point size. The unit is a proportion of facet's height. The value must be between `0`
308
+ * and `0.5`. This property has no effect when sample faceting is not used.
309
+ *
310
+ * **Default value:** `0.1`
311
+ */
312
+ sampleFacetPadding?: number;
313
+
314
+ /**
315
+ * TODO
316
+ *
317
+ * **Default value:** `0.02`
318
+ */
319
+ semanticZoomFraction?: number;
320
+
321
+ /**
322
+ * Enables geometric zooming. The value is the base two logarithmic zoom level where the maximum
323
+ * point size is reached.
324
+ *
325
+ * **Default value:** `0`
326
+ */
327
+ geometricZoomBound?: number;
328
+ }
329
+
330
+ export interface LinkProps extends SecondaryPositionProps {
331
+ /**
332
+ * The number of segments in the bézier curve. Affects the rendering quality and performance.
333
+ * Use a higher value for a smoother curve.
334
+ *
335
+ * **Default value:* `101`
336
+ */
337
+ segments?: number;
338
+
339
+ /**
340
+ * Scaling factor of the arc's sagitta. The default value `1.0` produces roughly circular arcs.
341
+ *
342
+ * **Default value:** `1.0`
343
+ */
344
+ sagittaScaleFactor?: number;
345
+
346
+ /**
347
+ * Minimum length of the arc's sagitta. Makes very short links more clearly visible.
348
+ *
349
+ * **Default value:** `1.5`
350
+ */
351
+ minSagittaLength?: number;
352
+
353
+ /**
354
+ * TODO
355
+ */
356
+ color2?: string;
357
+
358
+ /**
359
+ * TODO
360
+ */
361
+ size2?: number;
362
+ }
363
+
364
+ // TODO: Mark-specific configs
365
+ export interface MarkConfig
366
+ extends PointProps,
367
+ RectProps,
368
+ TextProps,
369
+ RuleProps,
370
+ LinkProps,
371
+ FillAndStrokeProps {
372
+ // Channels.
373
+ x?: number;
374
+ y?: number;
375
+ color?: string;
376
+ opacity?: number;
377
+ size?: number;
378
+
379
+ /**
380
+ * Whether the `color` represents the `fill` color (`true`) or the `stroke` color (`false`).
381
+ */
382
+ filled?: boolean;
383
+
384
+ /**
385
+ * If true, the mark is clipped to the UnitView's rectangle. By default, clipping
386
+ * is enabled for marks that have zoomable positional scales.
387
+ */
388
+ clip?: boolean | "never";
389
+
390
+ /**
391
+ * Offsets of the `x` and `x2` coordinates in pixels. The offset is applied
392
+ * after the viewport scaling and translation.
393
+ *
394
+ * **Default value:** `0`
395
+ */
396
+ xOffset?: number;
397
+
398
+ /**
399
+ * Offsets of the `y` and `y2` coordinates in pixels. The offset is applied
400
+ * after the viewport scaling and translation.
401
+ *
402
+ * **Default value:** `0`
403
+ */
404
+ yOffset?: number;
405
+
406
+ /**
407
+ * TODO
408
+ */
409
+ tooltip?: Tooltip;
410
+
411
+ /**
412
+ * The stroke width in pixels.
413
+ */
414
+ strokeWidth?: number;
415
+
416
+ /**
417
+ * Minimum size for WebGL buffers (number of data items).
418
+ * Allows for using `bufferSubData()` to update graphics.
419
+ *
420
+ * This property is intended for internal use.
421
+ */
422
+ minBufferSize?: number;
423
+
424
+ /**
425
+ * Builds and index for efficient rendering of subsets of the data.
426
+ * The data must be sorted by the x coordinate.
427
+ *
428
+ * TODO: This should be enabled automatically if the data are sorted.
429
+ */
430
+ buildIndex?: boolean;
431
+ }
432
+
433
+ export interface MarkConfigAndType extends MarkConfig {
434
+ type: MarkType;
435
+ }
@@ -0,0 +1,22 @@
1
+ import { GenomeConfig } from "./genome";
2
+ import { ViewSpec } from "./view";
3
+
4
+ interface RootConfig {
5
+ $schema?: string;
6
+
7
+ genome?: GenomeConfig;
8
+
9
+ baseUrl?: string;
10
+
11
+ /**
12
+ * Background color of the canvas.
13
+ */
14
+ background?: string;
15
+
16
+ /**
17
+ * https://vega.github.io/vega-lite/docs/data.html#datasets
18
+ */
19
+ datasets?: Record<string, any[]>;
20
+ }
21
+
22
+ export type RootSpec = ViewSpec & RootConfig;
@@ -0,0 +1,185 @@
1
+ import { Type } from "./channel";
2
+ import { Data } from "./data";
3
+ import { Align, FontStyle, FontWeight } from "./font";
4
+ import { Scale } from "./scale";
5
+ import { LayerSpec, UnitSpec, ViewSpecBase, ViewBackground } from "./view";
6
+
7
+ // TODO: Figure out how this could be moved to the app package and excluded
8
+ // from the core package.
9
+
10
+ /**
11
+ * A view specification for a SampleView.
12
+ * This is only functional in the GenomeSpy app.
13
+ */
14
+ export interface SampleSpec extends ViewSpecBase {
15
+ /**
16
+ * Sample metadata definition.
17
+ * If the object is empty, the sample identifiers will be inferred from the data.
18
+ */
19
+ samples: SampleDef;
20
+
21
+ /**
22
+ * An object defining the view background and outline. The background is
23
+ * repeated for each group.
24
+ */
25
+ view?: ViewBackground;
26
+ /**
27
+ * The view specification to be repeated for each sample.
28
+ */
29
+ spec: LayerSpec | UnitSpec;
30
+
31
+ stickySummaries?: boolean;
32
+ }
33
+
34
+ export interface SampleAttributeDef {
35
+ /**
36
+ * The attribute type. One of `"nominal"`, `"ordinal"`, or `"quantitative"`.
37
+ */
38
+ type: Type; // TODO: Omit index/locus from available types
39
+
40
+ /**
41
+ * Scale definition for the (default) color channel
42
+ */
43
+ scale?: Scale;
44
+
45
+ /**
46
+ * An optional scale definition for mapping the attribute to
47
+ * the width of a metadata rectangle.
48
+ */
49
+ barScale?: Scale;
50
+
51
+ /**
52
+ * Width of the column in pixels.
53
+ */
54
+ width?: number;
55
+
56
+ /**
57
+ * Whether the attribute is visible by default.
58
+ */
59
+ visible?: boolean;
60
+ }
61
+
62
+ export interface SampleDef {
63
+ /**
64
+ * Optional metadata about the samples.
65
+ */
66
+ data?: Data;
67
+
68
+ /**
69
+ * Explicitly specify the sample attributes.
70
+ */
71
+ attributes?: Record<string, SampleAttributeDef>;
72
+
73
+ /**
74
+ * Text in the label title
75
+ *
76
+ * **Default:** `"Sample name"`
77
+ */
78
+ labelTitleText?: string;
79
+
80
+ /**
81
+ * How much space in pixels to reserve for the labels.
82
+ *
83
+ * **Default:** `140`
84
+ */
85
+ labelLength?: number;
86
+
87
+ /**
88
+ * The font typeface. GenomeSpy uses [SDF](https://github.com/Chlumsky/msdfgen)
89
+ * versions of [Google Fonts](https://fonts.google.com/). Check their
90
+ * availability at the [A-Frame
91
+ * Fonts](https://github.com/etiennepinchon/aframe-fonts/tree/master/fonts)
92
+ * repository. System fonts are **not** supported.
93
+ *
94
+ * **Default value:** `"Lato"`
95
+ */
96
+ labelFont?: string;
97
+
98
+ /**
99
+ * The font style. Valid values: `"normal"` and `"italic"`.
100
+ *
101
+ * **Default value:** `"normal"`
102
+ */
103
+ labelFontStyle?: FontStyle;
104
+
105
+ /**
106
+ * The font weight. The following strings and numbers are valid values:
107
+ * `"thin"` (`100`), `"light"` (`300`), `"regular"` (`400`),
108
+ * `"normal"` (`400`), `"medium"` (`500`), `"bold"` (`700`),
109
+ * `"black"` (`900`)
110
+ *
111
+ * **Default value:** `"regular"`
112
+ */
113
+ labelFontWeight?: FontWeight;
114
+
115
+ /**
116
+ * The font size in pixels.
117
+ *
118
+ * **Default value:** `11`
119
+ */
120
+ labelFontSize?: number;
121
+
122
+ /**
123
+ * The horizontal alignment of the text. One of `"left"`, `"center"`, or `"right"`.
124
+ *
125
+ * **Default value:** `"left"`
126
+ */
127
+ labelAlign?: Align;
128
+
129
+ /**
130
+ * Default size (width) of the metadata attribute columns.
131
+ * Can be configured per attribute using the `attributes` property.
132
+ *
133
+ * **Default value:** `10`
134
+ */
135
+ attributeSize?: number;
136
+
137
+ /**
138
+ * The font typeface. GenomeSpy uses [SDF](https://github.com/Chlumsky/msdfgen)
139
+ * versions of [Google Fonts](https://fonts.google.com/). Check their
140
+ * availability at the [A-Frame
141
+ * Fonts](https://github.com/etiennepinchon/aframe-fonts/tree/master/fonts)
142
+ * repository. System fonts are **not** supported.
143
+ *
144
+ * **Default value:** `"Lato"`
145
+ */
146
+ attributeLabelFont?: string;
147
+
148
+ /**
149
+ * The font style. Valid values: `"normal"` and `"italic"`.
150
+ *
151
+ * **Default value:** `"normal"`
152
+ */
153
+ attributeLabelFontStyle?: FontStyle;
154
+
155
+ /**
156
+ * The font weight. The following strings and numbers are valid values:
157
+ * `"thin"` (`100`), `"light"` (`300`), `"regular"` (`400`),
158
+ * `"normal"` (`400`), `"medium"` (`500`), `"bold"` (`700`),
159
+ * `"black"` (`900`)
160
+ *
161
+ * **Default value:** `"regular"`
162
+ */
163
+ attributeLabelFontWeight?: FontWeight;
164
+
165
+ /**
166
+ * The font size in pixels.
167
+ *
168
+ * **Default value:** `11`
169
+ */
170
+ attributeLabelFontSize?: number;
171
+
172
+ /**
173
+ * Angle to be added to the default label angle (-90).
174
+ *
175
+ * **Default value:** `0`
176
+ */
177
+ attributeLabelAngle?: number;
178
+
179
+ /**
180
+ * Spacing between attribute columns in pixels.
181
+ *
182
+ * **Default value:** `1`
183
+ */
184
+ attributeSpacing?: number;
185
+ }