react-msaview 6.5.0 → 8.0.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 (414) hide show
  1. package/README.md +13 -11
  2. package/bundle/index.js +122 -112
  3. package/bundle/index.js.map +4 -4
  4. package/dist/colorSchemes.js +1 -2
  5. package/dist/colorSchemes.js.map +1 -1
  6. package/dist/columnStats.d.ts +28 -0
  7. package/dist/columnStats.js +34 -0
  8. package/dist/columnStats.js.map +1 -0
  9. package/dist/components/DragHandle.d.ts +3 -2
  10. package/dist/components/DragHandle.js +11 -5
  11. package/dist/components/DragHandle.js.map +1 -1
  12. package/dist/components/Loading.js +2 -2
  13. package/dist/components/Loading.js.map +1 -1
  14. package/dist/components/MSAView.js +17 -6
  15. package/dist/components/MSAView.js.map +1 -1
  16. package/dist/components/MSAViewer.d.ts +69 -4
  17. package/dist/components/MSAViewer.js +201 -8
  18. package/dist/components/MSAViewer.js.map +1 -1
  19. package/dist/components/PortalTooltip.d.ts +11 -0
  20. package/dist/components/PortalTooltip.js +29 -0
  21. package/dist/components/PortalTooltip.js.map +1 -0
  22. package/dist/components/ResizeHandles.d.ts +3 -3
  23. package/dist/components/ResizeHandles.js +13 -24
  24. package/dist/components/ResizeHandles.js.map +1 -1
  25. package/dist/components/SequenceTextArea.js +3 -3
  26. package/dist/components/SequenceTextArea.js.map +1 -1
  27. package/dist/components/Track.js +41 -22
  28. package/dist/components/Track.js.map +1 -1
  29. package/dist/components/dialogs/{InterProScanDialog.d.ts → AnnotationFileDialog.d.ts} +2 -2
  30. package/dist/components/dialogs/AnnotationFileDialog.js +92 -0
  31. package/dist/components/dialogs/AnnotationFileDialog.js.map +1 -0
  32. package/dist/components/dialogs/ExportSVGDialog.js +5 -3
  33. package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
  34. package/dist/components/dialogs/FeatureDialog.js +13 -9
  35. package/dist/components/dialogs/FeatureDialog.js.map +1 -1
  36. package/dist/components/dialogs/TrackInfoDialog.js +1 -1
  37. package/dist/components/dialogs/TrackInfoDialog.js.map +1 -1
  38. package/dist/components/header/GappynessSlider.js +6 -11
  39. package/dist/components/header/GappynessSlider.js.map +1 -1
  40. package/dist/components/header/Header.js +7 -0
  41. package/dist/components/header/Header.js.map +1 -1
  42. package/dist/components/header/HeaderStatusArea.js +0 -2
  43. package/dist/components/header/HeaderStatusArea.js.map +1 -1
  44. package/dist/components/header/LoadWarnings.d.ts +6 -0
  45. package/dist/components/header/LoadWarnings.js +35 -0
  46. package/dist/components/header/LoadWarnings.js.map +1 -0
  47. package/dist/components/header/MultiAlignmentSelector.js +0 -0
  48. package/dist/components/header/MultiAlignmentSelector.js.map +1 -1
  49. package/dist/components/header/ScrollZoomIcons.d.ts +6 -0
  50. package/dist/components/header/ScrollZoomIcons.js +35 -0
  51. package/dist/components/header/ScrollZoomIcons.js.map +1 -0
  52. package/dist/components/header/TreeSettingsMenu.js +7 -1
  53. package/dist/components/header/TreeSettingsMenu.js.map +1 -1
  54. package/dist/components/header/UnshareableDataWarning.d.ts +6 -0
  55. package/dist/components/header/UnshareableDataWarning.js +40 -0
  56. package/dist/components/header/UnshareableDataWarning.js.map +1 -0
  57. package/dist/components/header/ZoomControls.js +49 -6
  58. package/dist/components/header/ZoomControls.js.map +1 -1
  59. package/dist/components/header/getAnnotationsMenu.js +11 -14
  60. package/dist/components/header/getAnnotationsMenu.js.map +1 -1
  61. package/dist/components/header/settingsMenuItems.js +10 -7
  62. package/dist/components/header/settingsMenuItems.js.map +1 -1
  63. package/dist/components/import/ImportForm.js +1 -1
  64. package/dist/components/import/ImportForm.js.map +1 -1
  65. package/dist/components/import/ImportFormExamples.js +2 -6
  66. package/dist/components/import/ImportFormExamples.js.map +1 -1
  67. package/dist/components/import/util.js +2 -0
  68. package/dist/components/import/util.js.map +1 -1
  69. package/dist/components/minimap/Minimap.js +1 -2
  70. package/dist/components/minimap/Minimap.js.map +1 -1
  71. package/dist/components/msa/AnnotationLegend.js +27 -19
  72. package/dist/components/msa/AnnotationLegend.js.map +1 -1
  73. package/dist/components/msa/MSACanvas.js +1 -1
  74. package/dist/components/msa/MSACanvas.js.map +1 -1
  75. package/dist/components/msa/MSACanvasBlock.js +17 -20
  76. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  77. package/dist/components/msa/MSAMouseoverCanvas.js +2 -1
  78. package/dist/components/msa/MSAMouseoverCanvas.js.map +1 -1
  79. package/dist/components/msa/domainBandCursor.d.ts +7 -11
  80. package/dist/components/msa/domainBandCursor.js +7 -11
  81. package/dist/components/msa/domainBandCursor.js.map +1 -1
  82. package/dist/components/msa/drawFeatureSpans.d.ts +53 -0
  83. package/dist/components/msa/drawFeatureSpans.js +78 -0
  84. package/dist/components/msa/drawFeatureSpans.js.map +1 -0
  85. package/dist/components/msa/legendRows.d.ts +8 -0
  86. package/dist/components/msa/legendRows.js +16 -0
  87. package/dist/components/msa/legendRows.js.map +1 -0
  88. package/dist/components/msa/msaRaster.d.ts +30 -27
  89. package/dist/components/msa/msaRaster.js +193 -90
  90. package/dist/components/msa/msaRaster.js.map +1 -1
  91. package/dist/components/msa/packDomainLanes.d.ts +20 -0
  92. package/dist/components/msa/packDomainLanes.js +33 -0
  93. package/dist/components/msa/packDomainLanes.js.map +1 -0
  94. package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +3 -1
  95. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +51 -87
  96. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  97. package/dist/components/msa/renderHighlights.d.ts +44 -4
  98. package/dist/components/msa/renderHighlights.js +99 -11
  99. package/dist/components/msa/renderHighlights.js.map +1 -1
  100. package/dist/components/msa/renderMSABlock.d.ts +1 -2
  101. package/dist/components/msa/renderMSABlock.js +28 -31
  102. package/dist/components/msa/renderMSABlock.js.map +1 -1
  103. package/dist/components/msa/renderMSAMouseover.js +9 -30
  104. package/dist/components/msa/renderMSAMouseover.js.map +1 -1
  105. package/dist/components/msa/tileColor.js +4 -7
  106. package/dist/components/msa/tileColor.js.map +1 -1
  107. package/dist/components/msa/useMsaBlockMouse.d.ts +5 -3
  108. package/dist/components/msa/useMsaBlockMouse.js +6 -6
  109. package/dist/components/msa/useMsaBlockMouse.js.map +1 -1
  110. package/dist/components/renderCtx.d.ts +1 -1
  111. package/dist/components/rowpanels/RowPanelBlock.d.ts +9 -0
  112. package/dist/components/rowpanels/RowPanelBlock.js +86 -0
  113. package/dist/components/rowpanels/RowPanelBlock.js.map +1 -0
  114. package/dist/components/rowpanels/RowPanelHeaders.d.ts +12 -0
  115. package/dist/components/rowpanels/RowPanelHeaders.js +38 -0
  116. package/dist/components/rowpanels/RowPanelHeaders.js.map +1 -0
  117. package/dist/components/{msa/ColumnStats.d.ts → rowpanels/RowPanels.d.ts} +2 -2
  118. package/dist/components/rowpanels/RowPanels.js +32 -0
  119. package/dist/components/rowpanels/RowPanels.js.map +1 -0
  120. package/dist/components/rowpanels/headerLayout.d.ts +1 -0
  121. package/dist/components/rowpanels/headerLayout.js +5 -0
  122. package/dist/components/rowpanels/headerLayout.js.map +1 -0
  123. package/dist/components/rowpanels/renderFeaturePanel.d.ts +21 -0
  124. package/dist/components/rowpanels/renderFeaturePanel.js +37 -0
  125. package/dist/components/rowpanels/renderFeaturePanel.js.map +1 -0
  126. package/dist/components/rowpanels/renderRowPanel.d.ts +23 -0
  127. package/dist/components/rowpanels/renderRowPanel.js +22 -0
  128. package/dist/components/rowpanels/renderRowPanel.js.map +1 -0
  129. package/dist/components/rowpanels/renderStrip.d.ts +20 -0
  130. package/dist/components/rowpanels/renderStrip.js +26 -0
  131. package/dist/components/rowpanels/renderStrip.js.map +1 -0
  132. package/dist/components/tracks/TrackBlocks.js +13 -16
  133. package/dist/components/tracks/TrackBlocks.js.map +1 -1
  134. package/dist/components/tracks/TrackTooltipContent.d.ts +15 -0
  135. package/dist/components/tracks/TrackTooltipContent.js +109 -0
  136. package/dist/components/tracks/TrackTooltipContent.js.map +1 -0
  137. package/dist/components/tracks/drawTracks.d.ts +30 -12
  138. package/dist/components/tracks/drawTracks.js +127 -34
  139. package/dist/components/tracks/drawTracks.js.map +1 -1
  140. package/dist/components/tracks/useTrackHover.d.ts +22 -0
  141. package/dist/components/tracks/useTrackHover.js +30 -0
  142. package/dist/components/tracks/useTrackHover.js.map +1 -0
  143. package/dist/components/tree/CladeLabels.d.ts +12 -0
  144. package/dist/components/tree/CladeLabels.js +48 -0
  145. package/dist/components/tree/CladeLabels.js.map +1 -0
  146. package/dist/components/tree/TreeCanvas.js +6 -4
  147. package/dist/components/tree/TreeCanvas.js.map +1 -1
  148. package/dist/components/tree/TreeCanvasBlock.js +6 -21
  149. package/dist/components/tree/TreeCanvasBlock.js.map +1 -1
  150. package/dist/components/tree/TreeOverview.d.ts +14 -0
  151. package/dist/components/tree/TreeOverview.js +75 -0
  152. package/dist/components/tree/TreeOverview.js.map +1 -0
  153. package/dist/components/tree/TreeRuler.js +11 -5
  154. package/dist/components/tree/TreeRuler.js.map +1 -1
  155. package/dist/components/tree/cladeBrackets.d.ts +25 -0
  156. package/dist/components/tree/cladeBrackets.js +51 -0
  157. package/dist/components/tree/cladeBrackets.js.map +1 -0
  158. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js +2 -2
  159. package/dist/components/tree/dialogs/TreeNodeInfoDialog.js.map +1 -1
  160. package/dist/components/tree/renderTreeCanvas.d.ts +0 -1
  161. package/dist/components/tree/renderTreeCanvas.js +221 -47
  162. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  163. package/dist/components/tree/renderTreeOverview.d.ts +52 -0
  164. package/dist/components/tree/renderTreeOverview.js +138 -0
  165. package/dist/components/tree/renderTreeOverview.js.map +1 -0
  166. package/dist/components/tree/scaleBar.d.ts +10 -0
  167. package/dist/components/tree/scaleBar.js +24 -0
  168. package/dist/components/tree/scaleBar.js.map +1 -0
  169. package/dist/components/tree/useTreeHover.js +2 -4
  170. package/dist/components/tree/useTreeHover.js.map +1 -1
  171. package/dist/constants.d.ts +18 -1
  172. package/dist/constants.js +51 -8
  173. package/dist/constants.js.map +1 -1
  174. package/dist/createPaletteMap.d.ts +7 -6
  175. package/dist/createPaletteMap.js +10 -9
  176. package/dist/createPaletteMap.js.map +1 -1
  177. package/dist/element.d.ts +13 -0
  178. package/dist/element.js +269 -0
  179. package/dist/element.js.map +1 -0
  180. package/dist/featureFields.d.ts +11 -0
  181. package/dist/featureFields.js +17 -0
  182. package/dist/featureFields.js.map +1 -0
  183. package/dist/fetchUtils.d.ts +7 -7
  184. package/dist/fetchUtils.js +4 -32
  185. package/dist/fetchUtils.js.map +1 -1
  186. package/dist/flatToTree.js +1 -2
  187. package/dist/flatToTree.js.map +1 -1
  188. package/dist/ggplotPalettes.d.ts +10 -0
  189. package/dist/ggplotPalettes.js +58 -0
  190. package/dist/ggplotPalettes.js.map +1 -1
  191. package/dist/hierarchy.d.ts +29 -1
  192. package/dist/hierarchy.js +82 -19
  193. package/dist/hierarchy.js.map +1 -1
  194. package/dist/index.d.ts +10 -1
  195. package/dist/index.js +10 -2
  196. package/dist/index.js.map +1 -1
  197. package/dist/model/DataModel.js +4 -4
  198. package/dist/model/DataModel.js.map +1 -1
  199. package/dist/model/msaModel.d.ts +3 -2
  200. package/dist/model/msaModel.js +3 -2
  201. package/dist/model/msaModel.js.map +1 -1
  202. package/dist/model/treeModel.d.ts +30 -0
  203. package/dist/model/treeModel.js +37 -1
  204. package/dist/model/treeModel.js.map +1 -1
  205. package/dist/model.d.ts +792 -259
  206. package/dist/model.js +2092 -675
  207. package/dist/model.js.map +1 -1
  208. package/dist/mount.d.ts +11 -0
  209. package/dist/mount.js +22 -0
  210. package/dist/mount.js.map +1 -0
  211. package/dist/neighborJoining.js +8 -32
  212. package/dist/neighborJoining.js.map +1 -1
  213. package/dist/renderToStaticMarkup.d.ts +15 -13
  214. package/dist/renderToStaticMarkup.js +37 -25
  215. package/dist/renderToStaticMarkup.js.map +1 -1
  216. package/dist/renderToSvg.js +198 -68
  217. package/dist/renderToSvg.js.map +1 -1
  218. package/dist/rowCoordinateCalculations.d.ts +26 -28
  219. package/dist/rowCoordinateCalculations.js +13 -39
  220. package/dist/rowCoordinateCalculations.js.map +1 -1
  221. package/dist/scales.d.ts +22 -0
  222. package/dist/scales.js +30 -0
  223. package/dist/scales.js.map +1 -0
  224. package/dist/seqPosToGlobalCol.d.ts +2 -3
  225. package/dist/seqPosToGlobalCol.js +5 -4
  226. package/dist/seqPosToGlobalCol.js.map +1 -1
  227. package/dist/sequenceLogo.d.ts +6 -11
  228. package/dist/sequenceLogo.js +6 -11
  229. package/dist/sequenceLogo.js.map +1 -1
  230. package/dist/stripDefault.d.ts +7 -14
  231. package/dist/stripDefault.js +7 -14
  232. package/dist/stripDefault.js.map +1 -1
  233. package/dist/svgTestUtil.d.ts +306 -124
  234. package/dist/types.d.ts +295 -3
  235. package/dist/umd.d.ts +2 -0
  236. package/dist/umd.js +4 -2
  237. package/dist/umd.js.map +1 -1
  238. package/dist/useCanvasAutorun.d.ts +5 -10
  239. package/dist/useCanvasAutorun.js +5 -10
  240. package/dist/useCanvasAutorun.js.map +1 -1
  241. package/dist/useMsaSvgFigure.d.ts +20 -0
  242. package/dist/useMsaSvgFigure.js +46 -0
  243. package/dist/useMsaSvgFigure.js.map +1 -0
  244. package/dist/util.d.ts +10 -4
  245. package/dist/util.js +37 -10
  246. package/dist/util.js.map +1 -1
  247. package/dist/version.d.ts +1 -1
  248. package/dist/version.js +1 -1
  249. package/dist/wuss.d.ts +14 -0
  250. package/dist/wuss.js +55 -0
  251. package/dist/wuss.js.map +1 -0
  252. package/package.json +23 -14
  253. package/src/colorSchemes.ts +1 -2
  254. package/src/columnStats.ts +58 -0
  255. package/src/components/DragHandle.tsx +18 -7
  256. package/src/components/Loading.tsx +14 -8
  257. package/src/components/MSAView.tsx +19 -5
  258. package/src/components/MSAViewer.tsx +326 -10
  259. package/src/components/PortalTooltip.tsx +47 -0
  260. package/src/components/ResizeHandles.tsx +21 -36
  261. package/src/components/SequenceTextArea.tsx +3 -3
  262. package/src/components/Track.tsx +55 -18
  263. package/src/components/dialogs/AnnotationFileDialog.tsx +162 -0
  264. package/src/components/dialogs/ExportSVGDialog.tsx +7 -2
  265. package/src/components/dialogs/FeatureDialog.tsx +13 -9
  266. package/src/components/dialogs/TrackInfoDialog.tsx +1 -1
  267. package/src/components/header/GappynessSlider.tsx +6 -11
  268. package/src/components/header/Header.tsx +10 -0
  269. package/src/components/header/HeaderStatusArea.tsx +0 -5
  270. package/src/components/header/LoadWarnings.tsx +48 -0
  271. package/src/components/header/MultiAlignmentSelector.tsx +0 -0
  272. package/src/components/header/ScrollZoomIcons.tsx +52 -0
  273. package/src/components/header/TreeSettingsMenu.tsx +7 -1
  274. package/src/components/header/UnshareableDataWarning.tsx +56 -0
  275. package/src/components/header/ZoomControls.tsx +74 -14
  276. package/src/components/header/getAnnotationsMenu.ts +13 -17
  277. package/src/components/header/settingsMenuItems.ts +11 -6
  278. package/src/components/import/ImportForm.tsx +2 -2
  279. package/src/components/import/ImportFormExamples.tsx +4 -8
  280. package/src/components/import/util.ts +2 -0
  281. package/src/components/minimap/Minimap.tsx +1 -2
  282. package/src/components/msa/AnnotationLegend.tsx +48 -38
  283. package/src/components/msa/MSACanvas.tsx +3 -5
  284. package/src/components/msa/MSACanvasBlock.tsx +17 -21
  285. package/src/components/msa/MSAMouseoverCanvas.tsx +2 -1
  286. package/src/components/msa/domainBandCursor.ts +7 -11
  287. package/src/components/msa/drawFeatureSpans.ts +150 -0
  288. package/src/components/msa/legendRows.ts +24 -0
  289. package/src/components/msa/msaRaster.ts +236 -88
  290. package/src/components/msa/packDomainLanes.ts +36 -0
  291. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +69 -123
  292. package/src/components/msa/renderHighlights.ts +141 -10
  293. package/src/components/msa/renderMSABlock.ts +29 -38
  294. package/src/components/msa/renderMSAMouseover.ts +9 -39
  295. package/src/components/msa/tileColor.ts +4 -7
  296. package/src/components/msa/useMsaBlockMouse.ts +6 -6
  297. package/src/components/renderCtx.ts +1 -0
  298. package/src/components/rowpanels/RowPanelBlock.tsx +139 -0
  299. package/src/components/rowpanels/RowPanelHeaders.tsx +57 -0
  300. package/src/components/rowpanels/RowPanels.tsx +77 -0
  301. package/src/components/rowpanels/headerLayout.ts +5 -0
  302. package/src/components/rowpanels/renderFeaturePanel.ts +66 -0
  303. package/src/components/rowpanels/renderRowPanel.ts +41 -0
  304. package/src/components/rowpanels/renderStrip.ts +46 -0
  305. package/src/components/tracks/TrackBlocks.tsx +13 -18
  306. package/src/components/tracks/TrackTooltipContent.tsx +156 -0
  307. package/src/components/tracks/drawTracks.ts +169 -38
  308. package/src/components/tracks/useTrackHover.ts +42 -0
  309. package/src/components/tree/CladeLabels.tsx +77 -0
  310. package/src/components/tree/TreeCanvas.tsx +4 -3
  311. package/src/components/tree/TreeCanvasBlock.tsx +10 -32
  312. package/src/components/tree/TreeOverview.tsx +106 -0
  313. package/src/components/tree/TreeRuler.tsx +29 -5
  314. package/src/components/tree/cladeBrackets.ts +73 -0
  315. package/src/components/tree/dialogs/TreeNodeInfoDialog.tsx +2 -2
  316. package/src/components/tree/renderTreeCanvas.ts +312 -48
  317. package/src/components/tree/renderTreeOverview.ts +212 -0
  318. package/src/components/tree/scaleBar.ts +23 -0
  319. package/src/components/tree/useTreeHover.ts +2 -4
  320. package/src/constants.ts +61 -8
  321. package/src/createPaletteMap.ts +10 -9
  322. package/src/element.ts +321 -0
  323. package/src/featureFields.ts +19 -0
  324. package/src/fetchUtils.ts +7 -40
  325. package/src/flatToTree.ts +1 -2
  326. package/src/ggplotPalettes.ts +60 -0
  327. package/src/hierarchy.ts +97 -20
  328. package/src/index.ts +46 -6
  329. package/src/model/DataModel.ts +5 -4
  330. package/src/model/msaModel.ts +3 -2
  331. package/src/model/treeModel.ts +42 -0
  332. package/src/model.ts +2492 -793
  333. package/src/mount.tsx +32 -0
  334. package/src/neighborJoining.ts +8 -32
  335. package/src/rawImports.d.ts +9 -0
  336. package/src/renderToStaticMarkup.ts +41 -25
  337. package/src/renderToSvg.tsx +365 -92
  338. package/src/rowCoordinateCalculations.ts +16 -62
  339. package/src/scales.ts +47 -0
  340. package/src/seqPosToGlobalCol.ts +5 -4
  341. package/src/sequenceLogo.ts +6 -11
  342. package/src/stripDefault.ts +7 -14
  343. package/src/types.ts +352 -12
  344. package/src/umd.ts +4 -2
  345. package/src/useCanvasAutorun.ts +5 -10
  346. package/src/useMsaSvgFigure.ts +72 -0
  347. package/src/util.ts +40 -14
  348. package/src/version.ts +1 -1
  349. package/src/wuss.ts +62 -0
  350. package/dist/components/dialogs/InterProScanDialog.js +0 -137
  351. package/dist/components/dialogs/InterProScanDialog.js.map +0 -1
  352. package/dist/components/dialogs/InterProScanFileDialog.d.ts +0 -7
  353. package/dist/components/dialogs/InterProScanFileDialog.js +0 -64
  354. package/dist/components/dialogs/InterProScanFileDialog.js.map +0 -1
  355. package/dist/components/msa/ColumnStats.js +0 -42
  356. package/dist/components/msa/ColumnStats.js.map +0 -1
  357. package/dist/launchInterProScan.d.ts +0 -13
  358. package/dist/launchInterProScan.js +0 -110
  359. package/dist/launchInterProScan.js.map +0 -1
  360. package/dist/useColorContrast.d.ts +0 -10
  361. package/dist/useColorContrast.js +0 -13
  362. package/dist/useColorContrast.js.map +0 -1
  363. package/src/clustalX.test.ts +0 -74
  364. package/src/colSpace.test.ts +0 -67
  365. package/src/collapseLogic.test.ts +0 -115
  366. package/src/colorSchemes.docs.test.ts +0 -57
  367. package/src/columnCounts.test.ts +0 -73
  368. package/src/columnStats.test.ts +0 -94
  369. package/src/columnTracks.test.ts +0 -97
  370. package/src/components/dialogs/InterProScanDialog.tsx +0 -214
  371. package/src/components/dialogs/InterProScanFileDialog.tsx +0 -138
  372. package/src/components/minimap/minimapLayout.test.ts +0 -71
  373. package/src/components/msa/ColumnStats.tsx +0 -54
  374. package/src/components/msa/msaRaster.test.ts +0 -145
  375. package/src/components/msa/renderBoxFeatureCanvasBlock.test.ts +0 -51
  376. package/src/components/tree/renderTreeCanvas.test.ts +0 -296
  377. package/src/dataInitialized.test.ts +0 -42
  378. package/src/domainBands.test.ts +0 -122
  379. package/src/domainLetterColor.test.ts +0 -80
  380. package/src/exportFileName.test.ts +0 -40
  381. package/src/fetchUtils.test.ts +0 -83
  382. package/src/flatToTree.test.ts +0 -51
  383. package/src/hierarchy.test.ts +0 -228
  384. package/src/highlights.test.ts +0 -70
  385. package/src/impgRender.test.tsx +0 -68
  386. package/src/largeTree.test.ts +0 -67
  387. package/src/launchInterProScan.ts +0 -167
  388. package/src/loadErrorDisplay.test.tsx +0 -102
  389. package/src/modelFilehandleLoaders.test.ts +0 -137
  390. package/src/modelReset.test.ts +0 -120
  391. package/src/neighborJoining.test.ts +0 -164
  392. package/src/parseAsn1.test.ts +0 -36
  393. package/src/propertyConservation.test.ts +0 -36
  394. package/src/renderColumnTracksSvg.test.tsx +0 -108
  395. package/src/renderDomainsSvg.test.tsx +0 -118
  396. package/src/renderHighlightsSvg.test.tsx +0 -85
  397. package/src/renderMinimapSvg.test.tsx +0 -62
  398. package/src/renderRasterSvg.test.tsx +0 -144
  399. package/src/renderSequenceLogoSvg.test.tsx +0 -165
  400. package/src/renderToSvg.test.tsx +0 -65
  401. package/src/reset.test.ts +0 -61
  402. package/src/rowCoordinateCalculations.test.ts +0 -211
  403. package/src/rowSpace.test.ts +0 -46
  404. package/src/segmentOverlay.test.ts +0 -70
  405. package/src/seqPosToGlobalCol.test.ts +0 -59
  406. package/src/sequenceLogo.test.ts +0 -88
  407. package/src/setFontSize.test.ts +0 -33
  408. package/src/stripDefault.test.ts +0 -48
  409. package/src/stripDefaultSnapshot.test.ts +0 -87
  410. package/src/treeMetadata.test.ts +0 -39
  411. package/src/useCanvasAutorun.test.tsx +0 -98
  412. package/src/useColorContrast.ts +0 -18
  413. package/src/viewChrome.test.tsx +0 -134
  414. package/src/wheelZoom.test.ts +0 -46
@@ -16,9 +16,8 @@ let scratch;
16
16
  const colorCache = new Map();
17
17
  /**
18
18
  * CSS color string -> the packed pixel an ImageData holds for it. Painting a 1x1
19
- * canvas and reading it back handles every form a color scheme can produce --
20
- * hex, rgb(), hsl(), named -- without a parser of our own, and the cache means
21
- * each distinct color is resolved once per session rather than once per cell.
19
+ * canvas and reading it back parses hex, rgb(), hsl() and named colors; the
20
+ * cache resolves each distinct color once per session.
22
21
  */
23
22
  export function cssColorToPixel(css) {
24
23
  const hit = colorCache.get(css);
@@ -42,21 +41,46 @@ export function cssColorToPixel(css) {
42
41
  colorCache.set(css, packed);
43
42
  return packed;
44
43
  }
44
+ function cellPixelFn(spec, toPixel) {
45
+ const { columns, relativeTo, colorAt, bg, hover } = spec;
46
+ const bgPixel = toPixel(bg);
47
+ const hoverPixel = toPixel(hover);
48
+ const reference = relativeTo ? columns.get(relativeTo) : undefined;
49
+ return (name, col, letter) => {
50
+ if (reference && name !== relativeTo && letter === reference[col]) {
51
+ return hoverPixel;
52
+ }
53
+ const color = colorAt(col, letter);
54
+ return color === undefined ? bgPixel : toPixel(color);
55
+ };
56
+ }
45
57
  /**
46
58
  * Packs a rectangle of the alignment into one pixel per cell, in `rowNames`
47
59
  * order, ready to hand to putImageData. Cells past the end of a row, and rows
48
- * with no sequence at all, stay transparent -- what the per-cell tile painter
49
- * also leaves behind.
60
+ * with no sequence, stay transparent, as in the per-cell painter.
50
61
  *
51
- * `colStep`/`rowStep` sample instead of covering, which is how the minimap fits
52
- * a whole alignment into a 12px bar.
62
+ * `colStep`/`rowStep` sample every nth cell, which fits a whole alignment into
63
+ * the minimap's 12px bar. `colSpan`/`rowSpan` average each block of that many
64
+ * cells into one pixel, so a zoom below a device pixel per column still shows
65
+ * every column's color without blending neighbouring rows.
53
66
  */
54
- export function rasterPixels({ spec, col0, row0, width, height, colStep = 1, rowStep = 1, toPixel = cssColorToPixel, }) {
55
- const { rowNames, columns, relativeTo, colorAt, bg, hover } = spec;
56
- const out = new Uint32Array(width * height);
57
- const bgPixel = toPixel(bg);
58
- const hoverPixel = toPixel(hover);
59
- const reference = relativeTo ? columns.get(relativeTo) : undefined;
67
+ export function rasterPixels({ spec, col0, row0, width, height, colStep = 1, rowStep = 1, colSpan = 1, rowSpan = 1, toPixel = cssColorToPixel, out = new Uint32Array(width * height), }) {
68
+ if (colSpan > 1 || rowSpan > 1) {
69
+ averagePixels({
70
+ spec,
71
+ col0,
72
+ row0,
73
+ width,
74
+ height,
75
+ colSpan,
76
+ rowSpan,
77
+ toPixel,
78
+ out,
79
+ });
80
+ return out;
81
+ }
82
+ const { rowNames, columns } = spec;
83
+ const cellPixel = cellPixelFn(spec, toPixel);
60
84
  for (let r = 0; r < height; r++) {
61
85
  const name = rowNames[row0 + r * rowStep];
62
86
  if (name === undefined) {
@@ -66,7 +90,6 @@ export function rasterPixels({ spec, col0, row0, width, height, colStep = 1, row
66
90
  if (!str) {
67
91
  continue;
68
92
  }
69
- const isReference = name === relativeTo;
70
93
  const base = r * width;
71
94
  for (let c = 0; c < width; c++) {
72
95
  const col = col0 + c * colStep;
@@ -74,21 +97,64 @@ export function rasterPixels({ spec, col0, row0, width, height, colStep = 1, row
74
97
  if (letter === undefined) {
75
98
  break;
76
99
  }
77
- if (reference && !isReference && letter === reference[col]) {
78
- out[base + c] = hoverPixel;
100
+ out[base + c] = cellPixel(name, col, letter);
101
+ }
102
+ }
103
+ return out;
104
+ }
105
+ function averagePixels({ spec, col0, row0, width, height, colSpan, rowSpan, toPixel, out, }) {
106
+ const { rowNames, columns } = spec;
107
+ const cellPixel = cellPixelFn(spec, toPixel);
108
+ const cells = colSpan * rowSpan;
109
+ const rShift = littleEndian ? 0 : 24;
110
+ const gShift = littleEndian ? 8 : 16;
111
+ const bShift = littleEndian ? 16 : 8;
112
+ const aShift = littleEndian ? 24 : 0;
113
+ const names = [];
114
+ const strs = [];
115
+ for (let r = 0; r < height; r++) {
116
+ names.length = 0;
117
+ strs.length = 0;
118
+ for (let dr = 0; dr < rowSpan; dr++) {
119
+ const name = rowNames[row0 + r * rowSpan + dr];
120
+ const str = name === undefined ? undefined : columns.get(name);
121
+ if (name !== undefined && str) {
122
+ names.push(name);
123
+ strs.push(str);
79
124
  }
80
- else {
81
- const color = colorAt(col, letter);
82
- out[base + c] = color === undefined ? bgPixel : toPixel(color);
125
+ }
126
+ const base = r * width;
127
+ for (let c = 0; c < width; c++) {
128
+ // premultiplied, so a cell past the end of a row dilutes the alpha of its
129
+ // pixel rather than darkening its color
130
+ let sumR = 0;
131
+ let sumG = 0;
132
+ let sumB = 0;
133
+ let sumA = 0;
134
+ for (let i = 0; i < strs.length; i++) {
135
+ const str = strs[i];
136
+ const name = names[i];
137
+ for (let dc = 0; dc < colSpan; dc++) {
138
+ const col = col0 + c * colSpan + dc;
139
+ const letter = str[col];
140
+ if (letter === undefined) {
141
+ break;
142
+ }
143
+ const p = cellPixel(name, col, letter);
144
+ const a = (p >>> aShift) & 255;
145
+ sumR += ((p >>> rShift) & 255) * a;
146
+ sumG += ((p >>> gShift) & 255) * a;
147
+ sumB += ((p >>> bShift) & 255) * a;
148
+ sumA += a;
149
+ }
83
150
  }
151
+ out[base + c] =
152
+ sumA === 0
153
+ ? 0
154
+ : packRgba(Math.round(sumR / sumA), Math.round(sumG / sumA), Math.round(sumB / sumA), Math.round(sumA / cells));
84
155
  }
85
156
  }
86
- return out;
87
157
  }
88
- // Getting a context object back is not the same as getting one that can do
89
- // this: the headless render shim hands back a context carrying only measureText,
90
- // which a truthiness test accepts and putImageData then does not survive. Name
91
- // the methods the raster actually calls, so every caller degrades together.
92
158
  function usableRasterCtx(ctx) {
93
159
  const c = ctx;
94
160
  return (!!c &&
@@ -109,13 +175,13 @@ function makeRasterCanvas(width, height) {
109
175
  ? { canvas: canvas, ctx }
110
176
  : undefined;
111
177
  }
112
- function paint(pixels, width, height) {
178
+ function paint(width, height, fill) {
113
179
  const made = makeRasterCanvas(width, height);
114
180
  if (!made) {
115
181
  return undefined;
116
182
  }
117
183
  const image = made.ctx.createImageData(width, height);
118
- new Uint32Array(image.data.buffer).set(pixels);
184
+ fill(new Uint32Array(image.data.buffer));
119
185
  made.ctx.putImageData(image, 0, 0);
120
186
  return made.canvas;
121
187
  }
@@ -127,8 +193,8 @@ export function rasterSupported() {
127
193
  return supported;
128
194
  }
129
195
  const caches = new WeakMap();
130
- // Everything a cell's color depends on. A change to any of them makes every
131
- // cached tile stale, which a fresh cache expresses without tracking which.
196
+ // Everything a cell's color depends on; a change to any of them starts a fresh
197
+ // cache.
132
198
  function rasterKeys(model, theme) {
133
199
  return [
134
200
  model.columns,
@@ -163,8 +229,16 @@ function getCache(model, theme) {
163
229
  caches.set(model, next);
164
230
  return next;
165
231
  }
166
- function getTile(cache, tileRow, tileCol) {
167
- const key = `${tileRow}_${tileCol}`;
232
+ // Cells averaged into one tile pixel along an axis: the smallest power of two
233
+ // that brings a pixel back to at least one device pixel. Powers of two keep the
234
+ // number of distinct tile sets a zoom sweep builds to a handful.
235
+ function cellsPerPixel(devicePixelsPerCell) {
236
+ return devicePixelsPerCell >= 1
237
+ ? 1
238
+ : 2 ** Math.ceil(Math.log2(1 / devicePixelsPerCell));
239
+ }
240
+ function getTile({ cache, tileRow, tileCol, colSpan, rowSpan, }) {
241
+ const key = `${colSpan}_${rowSpan}_${tileRow}_${tileCol}`;
168
242
  const hit = cache.tiles.get(key);
169
243
  if (hit) {
170
244
  // re-inserting makes this the newest entry: a Map iterates in insertion
@@ -173,14 +247,25 @@ function getTile(cache, tileRow, tileCol) {
173
247
  cache.tiles.set(key, hit);
174
248
  return hit;
175
249
  }
176
- const col0 = tileCol * rasterTileSize;
177
- const row0 = tileRow * rasterTileSize;
178
- const width = Math.min(rasterTileSize, cache.numColumns - col0);
179
- const height = Math.min(rasterTileSize, cache.numRows - row0);
250
+ const col0 = tileCol * rasterTileSize * colSpan;
251
+ const row0 = tileRow * rasterTileSize * rowSpan;
252
+ const width = Math.min(rasterTileSize, Math.ceil((cache.numColumns - col0) / colSpan));
253
+ const height = Math.min(rasterTileSize, Math.ceil((cache.numRows - row0) / rowSpan));
180
254
  if (width <= 0 || height <= 0) {
181
255
  return undefined;
182
256
  }
183
- const canvas = paint(rasterPixels({ spec: cache.spec, col0, row0, width, height }), width, height);
257
+ const canvas = paint(width, height, out => {
258
+ rasterPixels({
259
+ spec: cache.spec,
260
+ col0,
261
+ row0,
262
+ width,
263
+ height,
264
+ colSpan,
265
+ rowSpan,
266
+ out,
267
+ });
268
+ });
184
269
  if (!canvas) {
185
270
  return undefined;
186
271
  }
@@ -196,30 +281,35 @@ function getTile(cache, tileRow, tileCol) {
196
281
  /**
197
282
  * Paints the alignment background of one MSA block from cached
198
283
  * one-pixel-per-cell tiles. The tiles do not depend on the zoom level, so a zoom
199
- * frame costs a handful of drawImage calls instead of a fillRect per visible
200
- * cell -- which ran to 885ms per block at the minimum column width.
284
+ * frame costs a handful of drawImage calls. A fillRect per visible cell measured
285
+ * 885ms per block at the minimum column width.
286
+ *
287
+ * Below a device pixel per cell the tiles average cells together, per axis.
288
+ * The browser's image smoothing blurs both axes, which turns every row
289
+ * boundary into a gradient at fit-to-width, where only the columns are narrow.
201
290
  */
202
291
  export function drawMsaRaster({ ctx, model, theme, offsetX, offsetY, }) {
203
292
  const { colWidth, rowHeight, blockSize, highResScaleFactor } = model;
204
293
  const cache = getCache(model, theme);
294
+ const colSpan = cellsPerPixel(colWidth * highResScaleFactor);
295
+ const rowSpan = cellsPerPixel(rowHeight * highResScaleFactor);
205
296
  ctx.resetTransform();
206
297
  ctx.scale(highResScaleFactor, highResScaleFactor);
207
298
  ctx.translate(-offsetX, -offsetY);
208
- // below a pixel per cell a tile carries more cells than the block has room
209
- // for, so let the browser downsample it rather than letting whichever cell
210
- // landed last win
211
- ctx.imageSmoothingEnabled = colWidth < 1 || rowHeight < 1;
212
- const tileWidth = rasterTileSize * colWidth;
213
- const tileHeight = rasterTileSize * rowHeight;
299
+ ctx.imageSmoothingEnabled = false;
300
+ const pixelWidth = colWidth * colSpan;
301
+ const pixelHeight = rowHeight * rowSpan;
302
+ const tileWidth = rasterTileSize * pixelWidth;
303
+ const tileHeight = rasterTileSize * pixelHeight;
214
304
  const firstCol = Math.max(0, Math.floor(offsetX / tileWidth));
215
305
  const lastCol = Math.floor((offsetX + blockSize) / tileWidth);
216
306
  const firstRow = Math.max(0, Math.floor(offsetY / tileHeight));
217
307
  const lastRow = Math.floor((offsetY + blockSize) / tileHeight);
218
308
  for (let tileRow = firstRow; tileRow <= lastRow; tileRow++) {
219
309
  for (let tileCol = firstCol; tileCol <= lastCol; tileCol++) {
220
- const tile = getTile(cache, tileRow, tileCol);
310
+ const tile = getTile({ cache, tileRow, tileCol, colSpan, rowSpan });
221
311
  if (tile) {
222
- ctx.drawImage(tile, 0, 0, tile.width, tile.height, tileCol * tileWidth, tileRow * tileHeight, tile.width * colWidth, tile.height * rowHeight);
312
+ ctx.drawImage(tile, 0, 0, tile.width, tile.height, tileCol * tileWidth, tileRow * tileHeight, tile.width * pixelWidth, tile.height * pixelHeight);
223
313
  }
224
314
  }
225
315
  }
@@ -229,12 +319,11 @@ export function drawMsaRaster({ ctx, model, theme, offsetX, offsetY, }) {
229
319
  /**
230
320
  * A raster canvas as a PNG data URI, for embedding in the SVG export.
231
321
  *
232
- * toDataURL is the synchronous read-back. The DOM canvas has it, and so does a
233
- * node canvas standing in for OffscreenCanvas headlessly; a browser
234
- * OffscreenCanvas -- which is what the tile and thumbnail caches hold wherever
235
- * it exists -- gets copied onto a DOM canvas first. Returns undefined wherever
236
- * the read-back is unavailable (jsdom) rather than throwing, which is the
237
- * signal to fall back to drawing the thing in vector.
322
+ * toDataURL is the synchronous read-back. The DOM canvas and a headless node
323
+ * canvas have it; a browser OffscreenCanvas, which the tile and thumbnail
324
+ * caches hold where it exists, is copied onto a DOM canvas first. Returns
325
+ * undefined where read-back is unavailable (jsdom), and the caller then draws
326
+ * in vector.
238
327
  */
239
328
  export function canvasHref(canvas) {
240
329
  if (!canvas) {
@@ -261,52 +350,63 @@ export function canvasHref(canvas) {
261
350
  return undefined;
262
351
  }
263
352
  }
264
- // A canvas much past this many pixels fails to allocate, and the browser's own
265
- // per-side limit is lower still, so a raster bigger than either samples down.
266
- // The result is still drawn across the same rectangle -- it loses cell-exact
267
- // detail at a size where no figure could show it anyway.
353
+ // A canvas much past this many pixels fails to allocate, and the browser's
354
+ // per-side limit is lower still, so a larger raster averages down per axis and
355
+ // is drawn across the same rectangle. An alignment that hits the limit on
356
+ // columns alone keeps every row.
268
357
  const maxImagePixels = 64e6;
269
358
  const maxImageSide = 16384;
270
359
  /**
271
360
  * The alignment rectangle [col0, col0+numCols) x [row0, row0+numRows) as a PNG
272
361
  * data URI, for the SVG export.
273
362
  *
274
- * SVG has no blit, so the export cannot reuse the tile cache the live canvas
275
- * draws from: one <image> is the whole background instead. That is the
276
- * difference between an export that scales and one that does not -- the vector
277
- * path emits a <rect> per cell, and a 200x500 alignment exhausts the heap
278
- * building them.
363
+ * SVG has no blit, so the export draws the whole background as one <image>. The
364
+ * vector path emits a <rect> per cell, and a 200x500 alignment exhausts the
365
+ * heap building them.
279
366
  *
280
- * Returns undefined wherever a canvas cannot be read back (jsdom, notably),
281
- * which is the signal to keep the per-cell path.
367
+ * Returns undefined where a canvas cannot be read back (jsdom), and the caller
368
+ * then keeps the per-cell path.
282
369
  */
283
370
  export function rasterImageHref({ model, theme, col0, row0, numCols, numRows, }) {
284
371
  if (numCols <= 0 || numRows <= 0 || typeof document === 'undefined') {
285
372
  return undefined;
286
373
  }
287
374
  const cache = getCache(model, theme);
288
- let step = 1;
289
- while (Math.ceil(numCols / step) * Math.ceil(numRows / step) > maxImagePixels ||
290
- Math.ceil(numCols / step) > maxImageSide ||
291
- Math.ceil(numRows / step) > maxImageSide) {
292
- step *= 2;
375
+ let colSpan = 1;
376
+ let rowSpan = 1;
377
+ while (Math.ceil(numCols / colSpan) > maxImageSide) {
378
+ colSpan *= 2;
293
379
  }
294
- const width = Math.ceil(numCols / step);
295
- const height = Math.ceil(numRows / step);
296
- return canvasHref(paint(rasterPixels({
297
- spec: cache.spec,
298
- col0,
299
- row0,
300
- width,
301
- height,
302
- colStep: step,
303
- rowStep: step,
304
- }), width, height));
380
+ while (Math.ceil(numRows / rowSpan) > maxImageSide) {
381
+ rowSpan *= 2;
382
+ }
383
+ while (Math.ceil(numCols / colSpan) * Math.ceil(numRows / rowSpan) >
384
+ maxImagePixels) {
385
+ if (numCols / colSpan >= numRows / rowSpan) {
386
+ colSpan *= 2;
387
+ }
388
+ else {
389
+ rowSpan *= 2;
390
+ }
391
+ }
392
+ const width = Math.ceil(numCols / colSpan);
393
+ const height = Math.ceil(numRows / rowSpan);
394
+ return canvasHref(paint(width, height, out => {
395
+ rasterPixels({
396
+ spec: cache.spec,
397
+ col0,
398
+ row0,
399
+ width,
400
+ height,
401
+ colSpan,
402
+ rowSpan,
403
+ out,
404
+ });
405
+ }));
305
406
  }
306
407
  /**
307
- * The whole alignment sampled down to a strip small enough to sit behind the
308
- * minimap thumb, cached alongside the block tiles because it goes stale under
309
- * exactly the same conditions.
408
+ * The whole alignment sampled down to a strip behind the minimap thumb, cached
409
+ * with the block tiles since the same keys invalidate both.
310
410
  */
311
411
  export function msaThumbnail({ model, theme, height, }) {
312
412
  const cache = getCache(model, theme);
@@ -323,15 +423,18 @@ export function msaThumbnail({ model, theme, height, }) {
323
423
  const h = Math.ceil(numRows / rowStep);
324
424
  cache.thumbnail = {
325
425
  height,
326
- canvas: paint(rasterPixels({
327
- spec: cache.spec,
328
- col0: 0,
329
- row0: 0,
330
- width: w,
331
- height: h,
332
- colStep,
333
- rowStep,
334
- }), w, h),
426
+ canvas: paint(w, h, out => {
427
+ rasterPixels({
428
+ spec: cache.spec,
429
+ col0: 0,
430
+ row0: 0,
431
+ width: w,
432
+ height: h,
433
+ colStep,
434
+ rowStep,
435
+ out,
436
+ });
437
+ }),
335
438
  };
336
439
  }
337
440
  return cache.thumbnail.canvas;
@@ -1 +1 @@
1
- {"version":3,"file":"msaRaster.js","sourceRoot":"","sources":["../../../src/components/msa/msaRaster.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"msaRaster.js","sourceRoot":"","sources":["../../../src/components/msa/msaRaster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Assigns each of one row's bands a lane: the first lane whose last band ends
3
+ * before this one starts, so only bands that actually overlap stack. A row of
4
+ * adjacent exons packs into a single lane; a family with a domain nested inside
5
+ * it takes two.
6
+ *
7
+ * Packing runs left to right, but the result keeps the input's largest-first
8
+ * paint order. `laneCount` is the row's depth, which the renderer divides the
9
+ * row height by so a deep stack stays inside its own row.
10
+ *
11
+ * The coordinates are whatever the caller packs in: alignment columns for the
12
+ * overlay, residue positions for a `features` row panel.
13
+ */
14
+ export declare function packDomainLanes<T extends {
15
+ startCol: number;
16
+ endCol: number;
17
+ }>(bands: T[]): (T & {
18
+ lane: number;
19
+ laneCount: number;
20
+ })[];
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Assigns each of one row's bands a lane: the first lane whose last band ends
3
+ * before this one starts, so only bands that actually overlap stack. A row of
4
+ * adjacent exons packs into a single lane; a family with a domain nested inside
5
+ * it takes two.
6
+ *
7
+ * Packing runs left to right, but the result keeps the input's largest-first
8
+ * paint order. `laneCount` is the row's depth, which the renderer divides the
9
+ * row height by so a deep stack stays inside its own row.
10
+ *
11
+ * The coordinates are whatever the caller packs in: alignment columns for the
12
+ * overlay, residue positions for a `features` row panel.
13
+ */
14
+ export function packDomainLanes(bands) {
15
+ const laneEnds = [];
16
+ const lanes = new Array(bands.length);
17
+ const byStart = bands
18
+ .map((_, i) => i)
19
+ .sort((a, b) => bands[a].startCol - bands[b].startCol);
20
+ for (const i of byStart) {
21
+ const { startCol, endCol } = bands[i];
22
+ const found = laneEnds.findIndex(end => end <= startCol);
23
+ const lane = found === -1 ? laneEnds.length : found;
24
+ laneEnds[lane] = endCol;
25
+ lanes[i] = lane;
26
+ }
27
+ return bands.map((band, i) => ({
28
+ ...band,
29
+ lane: lanes[i],
30
+ laneCount: laneEnds.length,
31
+ }));
32
+ }
33
+ //# sourceMappingURL=packDomainLanes.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packDomainLanes.js","sourceRoot":"","sources":["../../../src/components/msa/packDomainLanes.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,eAAe,CAC7B,KAAU;IAEV,MAAM,QAAQ,GAAa,EAAE,CAAA;IAC7B,MAAM,KAAK,GAAG,IAAI,KAAK,CAAS,KAAK,CAAC,MAAM,CAAC,CAAA;IAC7C,MAAM,OAAO,GAAG,KAAK;SAClB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SAChB,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC,QAAQ,CAAC,CAAA;IAE1D,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;QACtC,MAAM,KAAK,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,QAAQ,CAAC,CAAA;QACxD,MAAM,IAAI,GAAG,KAAK,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAA;QACnD,QAAQ,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;QACvB,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACjB,CAAC;IAED,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QAC7B,GAAG,IAAI;QACP,IAAI,EAAE,KAAK,CAAC,CAAC,CAAE;QACf,SAAS,EAAE,QAAQ,CAAC,MAAM;KAC3B,CAAC,CAAC,CAAA;AACL,CAAC"}
@@ -1,9 +1,11 @@
1
1
  import type { MsaViewModel } from '../../model.ts';
2
2
  import type { RenderCtx } from '../renderCtx.ts';
3
- export declare function renderBoxFeatureCanvasBlock({ model, offsetX, offsetY, ctx, highResScaleFactorOverride, blockSizeXOverride, blockSizeYOverride, }: {
3
+ import type { Theme } from '@mui/material';
4
+ export declare function renderBoxFeatureCanvasBlock({ model, theme, offsetX, offsetY, ctx, highResScaleFactorOverride, blockSizeXOverride, blockSizeYOverride, }: {
4
5
  offsetX: number;
5
6
  offsetY: number;
6
7
  model: MsaViewModel;
8
+ theme: Theme;
7
9
  ctx: RenderCtx;
8
10
  highResScaleFactorOverride?: number;
9
11
  blockSizeXOverride?: number;