@jbrowse/plugin-linear-genome-view 4.3.0 → 5.0.0-beta.2

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 (357) hide show
  1. package/esm/FeatureTrack/configSchema.d.ts +104 -65
  2. package/esm/FeatureTrack/configSchema.js +47 -1
  3. package/esm/FeatureTrack/index.js +1 -1
  4. package/esm/LaunchLinearGenomeView/index.d.ts +14 -0
  5. package/esm/LaunchLinearGenomeView/index.js +6 -12
  6. package/esm/LinearGenomeView/afterAttach.d.ts +20 -2
  7. package/esm/LinearGenomeView/afterAttach.js +250 -121
  8. package/esm/LinearGenomeView/components/CenterLine.d.ts +1 -1
  9. package/esm/LinearGenomeView/components/CenterLine.js +16 -7
  10. package/esm/LinearGenomeView/components/ConnectedHoverHighlight.d.ts +7 -0
  11. package/esm/LinearGenomeView/components/ConnectedHoverHighlight.js +22 -0
  12. package/esm/LinearGenomeView/components/CrisprGuidePanel.d.ts +3 -0
  13. package/esm/LinearGenomeView/components/CrisprGuidePanel.js +144 -0
  14. package/esm/LinearGenomeView/components/Cytobands.d.ts +6 -6
  15. package/esm/LinearGenomeView/components/Cytobands.js +76 -53
  16. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +7 -3
  17. package/esm/LinearGenomeView/components/ExportSvgDialog.js +11 -67
  18. package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +5 -9
  19. package/esm/LinearGenomeView/components/GetSequenceDialog.js +84 -88
  20. package/esm/LinearGenomeView/components/Gridlines.d.ts +1 -1
  21. package/esm/LinearGenomeView/components/Gridlines.js +29 -58
  22. package/esm/LinearGenomeView/components/Header.d.ts +1 -1
  23. package/esm/LinearGenomeView/components/Header.js +32 -16
  24. package/esm/LinearGenomeView/components/HeaderClearHighlightButton.d.ts +21 -0
  25. package/esm/LinearGenomeView/components/HeaderClearHighlightButton.js +35 -0
  26. package/esm/LinearGenomeView/components/HeaderPanControls.d.ts +3 -2
  27. package/esm/LinearGenomeView/components/HeaderPanControls.js +16 -7
  28. package/esm/LinearGenomeView/components/HeaderRegionWidth.d.ts +1 -1
  29. package/esm/LinearGenomeView/components/HeaderRegionWidth.js +9 -6
  30. package/esm/LinearGenomeView/components/HeaderSearchBoxRow.d.ts +6 -0
  31. package/esm/LinearGenomeView/components/HeaderSearchBoxRow.js +27 -0
  32. package/esm/LinearGenomeView/components/HeaderSearchBoxes.d.ts +5 -0
  33. package/esm/LinearGenomeView/components/HeaderSearchBoxes.js +28 -0
  34. package/esm/LinearGenomeView/components/HeaderTrackSelectorButton.d.ts +3 -2
  35. package/esm/LinearGenomeView/components/HeaderTrackSelectorButton.js +11 -4
  36. package/esm/LinearGenomeView/components/HeaderZoomControls.d.ts +3 -2
  37. package/esm/LinearGenomeView/components/HeaderZoomControls.js +67 -51
  38. package/esm/LinearGenomeView/components/Highlight.d.ts +1 -1
  39. package/esm/LinearGenomeView/components/Highlight.js +19 -23
  40. package/esm/LinearGenomeView/components/HighlightBand.d.ts +3 -2
  41. package/esm/LinearGenomeView/components/HighlightBand.js +25 -8
  42. package/esm/LinearGenomeView/components/HighlightChip.d.ts +9 -0
  43. package/esm/LinearGenomeView/components/HighlightChip.js +15 -0
  44. package/esm/LinearGenomeView/components/HoverPositionHighlight.d.ts +12 -0
  45. package/esm/LinearGenomeView/components/HoverPositionHighlight.js +25 -0
  46. package/esm/LinearGenomeView/components/ImportForm.d.ts +3 -4
  47. package/esm/LinearGenomeView/components/ImportForm.js +95 -61
  48. package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +1 -1
  49. package/esm/LinearGenomeView/components/LinearGenomeView.js +6 -5
  50. package/esm/LinearGenomeView/components/LinearGenomeViewContainer.d.ts +1 -1
  51. package/esm/LinearGenomeView/components/LinearGenomeViewContainer.js +89 -30
  52. package/esm/LinearGenomeView/components/MiniControls.d.ts +1 -1
  53. package/esm/LinearGenomeView/components/MiniControls.js +13 -10
  54. package/esm/LinearGenomeView/components/MotifListPanel.d.ts +3 -0
  55. package/esm/LinearGenomeView/components/MotifListPanel.js +59 -0
  56. package/esm/LinearGenomeView/components/NavigationAnnouncer.d.ts +32 -0
  57. package/esm/LinearGenomeView/components/NavigationAnnouncer.js +51 -0
  58. package/esm/LinearGenomeView/components/NoTracksActiveButton.d.ts +1 -1
  59. package/esm/LinearGenomeView/components/NoTracksActiveButton.js +1 -1
  60. package/esm/LinearGenomeView/components/OverviewHighlight.d.ts +2 -4
  61. package/esm/LinearGenomeView/components/OverviewHighlight.js +23 -44
  62. package/esm/LinearGenomeView/components/OverviewHighlightBand.d.ts +9 -0
  63. package/esm/LinearGenomeView/components/OverviewHighlightBand.js +26 -0
  64. package/esm/LinearGenomeView/components/OverviewRubberband.d.ts +3 -3
  65. package/esm/LinearGenomeView/components/OverviewRubberband.js +44 -57
  66. package/esm/LinearGenomeView/components/OverviewRubberbandHoverTooltip.d.ts +4 -5
  67. package/esm/LinearGenomeView/components/OverviewRubberbandHoverTooltip.js +13 -20
  68. package/esm/LinearGenomeView/components/OverviewScalebar.d.ts +3 -2
  69. package/esm/LinearGenomeView/components/OverviewScalebar.js +84 -79
  70. package/esm/LinearGenomeView/components/OverviewScalebarPolygon.d.ts +19 -5
  71. package/esm/LinearGenomeView/components/OverviewScalebarPolygon.js +55 -32
  72. package/esm/LinearGenomeView/components/OverviewScalebarTickLabels.d.ts +4 -5
  73. package/esm/LinearGenomeView/components/OverviewScalebarTickLabels.js +16 -18
  74. package/esm/LinearGenomeView/components/PaddingBlocks.d.ts +7 -0
  75. package/esm/LinearGenomeView/components/PaddingBlocks.js +61 -0
  76. package/esm/LinearGenomeView/components/RangeSelectOverlay.d.ts +9 -0
  77. package/esm/LinearGenomeView/components/RangeSelectOverlay.js +20 -0
  78. package/esm/LinearGenomeView/components/RegionWidthEditorDialog.d.ts +2 -3
  79. package/esm/LinearGenomeView/components/RegionWidthEditorDialog.js +19 -26
  80. package/esm/LinearGenomeView/components/Rubberband.d.ts +1 -1
  81. package/esm/LinearGenomeView/components/Rubberband.js +13 -16
  82. package/esm/LinearGenomeView/components/SVGHighlightBand.d.ts +10 -0
  83. package/esm/LinearGenomeView/components/SVGHighlightBand.js +9 -0
  84. package/esm/LinearGenomeView/components/Scalebar.d.ts +2 -2
  85. package/esm/LinearGenomeView/components/Scalebar.js +16 -21
  86. package/esm/LinearGenomeView/components/ScalebarCoordinateLabels.d.ts +1 -1
  87. package/esm/LinearGenomeView/components/ScalebarCoordinateLabels.js +54 -35
  88. package/esm/LinearGenomeView/components/ScalebarRefNameLabels.d.ts +1 -1
  89. package/esm/LinearGenomeView/components/ScalebarRefNameLabels.js +142 -126
  90. package/esm/LinearGenomeView/components/SearchBox.d.ts +22 -2
  91. package/esm/LinearGenomeView/components/SearchBox.js +58 -66
  92. package/esm/LinearGenomeView/components/SearchPanelForm.d.ts +9 -0
  93. package/esm/LinearGenomeView/components/SearchPanelForm.js +18 -0
  94. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +3 -3
  95. package/esm/LinearGenomeView/components/SearchResultsDialog.js +5 -7
  96. package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +4 -3
  97. package/esm/LinearGenomeView/components/SearchResultsTable.js +45 -53
  98. package/esm/LinearGenomeView/components/SequenceFeatureHoverHighlight.d.ts +5 -0
  99. package/esm/LinearGenomeView/components/SequenceFeatureHoverHighlight.js +37 -0
  100. package/esm/LinearGenomeView/components/SequenceFeatureHoverHighlightExtension.d.ts +2 -0
  101. package/esm/LinearGenomeView/components/SequenceFeatureHoverHighlightExtension.js +5 -0
  102. package/esm/LinearGenomeView/components/SequencePatternPanel.d.ts +3 -0
  103. package/esm/LinearGenomeView/components/SequencePatternPanel.js +42 -0
  104. package/esm/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -2
  105. package/esm/LinearGenomeView/components/SequenceSearchDialog.js +31 -53
  106. package/esm/LinearGenomeView/components/StrandCheckboxes.d.ts +8 -0
  107. package/esm/LinearGenomeView/components/StrandCheckboxes.js +13 -0
  108. package/esm/LinearGenomeView/components/TrackContainer.d.ts +1 -1
  109. package/esm/LinearGenomeView/components/TrackContainer.js +83 -39
  110. package/esm/LinearGenomeView/components/TrackLabel.d.ts +2 -3
  111. package/esm/LinearGenomeView/components/TrackLabel.js +11 -24
  112. package/esm/LinearGenomeView/components/TrackLabelButtons.d.ts +7 -0
  113. package/esm/LinearGenomeView/components/TrackLabelButtons.js +33 -0
  114. package/esm/LinearGenomeView/components/TrackLabelDragHandle.d.ts +2 -5
  115. package/esm/LinearGenomeView/components/TrackLabelDragHandle.js +6 -2
  116. package/esm/LinearGenomeView/components/TrackLabelMenu.d.ts +1 -1
  117. package/esm/LinearGenomeView/components/TrackLabelMenu.js +32 -85
  118. package/esm/LinearGenomeView/components/TrackLabelRefNameWarning.d.ts +22 -0
  119. package/esm/LinearGenomeView/components/TrackLabelRefNameWarning.js +46 -0
  120. package/esm/LinearGenomeView/components/TrackRenderingContainer.d.ts +1 -1
  121. package/esm/LinearGenomeView/components/TrackRenderingContainer.js +72 -18
  122. package/esm/LinearGenomeView/components/TracksContainer.d.ts +1 -1
  123. package/esm/LinearGenomeView/components/TracksContainer.js +65 -32
  124. package/esm/LinearGenomeView/components/VerticalGuide.d.ts +1 -1
  125. package/esm/LinearGenomeView/components/VerticalGuide.js +6 -13
  126. package/esm/LinearGenomeView/components/ZoomButton.d.ts +7 -0
  127. package/esm/LinearGenomeView/components/ZoomButton.js +27 -0
  128. package/esm/LinearGenomeView/components/ZoomTransform.d.ts +9 -0
  129. package/esm/LinearGenomeView/components/ZoomTransform.js +37 -0
  130. package/esm/LinearGenomeView/components/defaultMotifs.d.ts +1 -0
  131. package/esm/LinearGenomeView/components/defaultMotifs.js +22 -0
  132. package/esm/LinearGenomeView/components/fetchSequence.d.ts +7 -8
  133. package/esm/LinearGenomeView/components/fetchSequence.js +17 -9
  134. package/esm/LinearGenomeView/components/recentLocationsMenu.d.ts +15 -0
  135. package/esm/LinearGenomeView/components/recentLocationsMenu.js +36 -0
  136. package/esm/LinearGenomeView/components/searchModes.d.ts +13 -0
  137. package/esm/LinearGenomeView/components/searchModes.js +22 -0
  138. package/esm/LinearGenomeView/components/trackLabelMenuItems.d.ts +7 -0
  139. package/esm/LinearGenomeView/components/trackLabelMenuItems.js +67 -0
  140. package/esm/LinearGenomeView/components/useRangeSelect.d.ts +11 -66
  141. package/esm/LinearGenomeView/components/useRangeSelect.js +82 -91
  142. package/esm/LinearGenomeView/components/useSearchBoxPrefs.d.ts +26 -0
  143. package/esm/LinearGenomeView/components/useSearchBoxPrefs.js +58 -0
  144. package/esm/LinearGenomeView/components/useSideScroll.d.ts +1 -1
  145. package/esm/LinearGenomeView/components/useSideScroll.js +87 -19
  146. package/esm/LinearGenomeView/components/util.d.ts +20 -6
  147. package/esm/LinearGenomeView/components/util.js +27 -6
  148. package/esm/LinearGenomeView/consts.d.ts +7 -2
  149. package/esm/LinearGenomeView/consts.js +18 -2
  150. package/esm/LinearGenomeView/flyTo.d.ts +38 -0
  151. package/esm/LinearGenomeView/flyTo.js +135 -0
  152. package/esm/LinearGenomeView/headerFit.d.ts +27 -0
  153. package/esm/LinearGenomeView/headerFit.js +59 -0
  154. package/esm/LinearGenomeView/index.d.ts +32 -2
  155. package/esm/LinearGenomeView/index.js +16 -6
  156. package/esm/LinearGenomeView/initKeys.d.ts +12 -0
  157. package/esm/LinearGenomeView/initKeys.js +68 -0
  158. package/esm/LinearGenomeView/keyboardHandler.d.ts +7 -0
  159. package/esm/LinearGenomeView/keyboardHandler.js +10 -0
  160. package/esm/LinearGenomeView/launchKeys.d.ts +2 -0
  161. package/esm/LinearGenomeView/launchKeys.js +23 -0
  162. package/esm/LinearGenomeView/lazyDialogs.d.ts +7 -11
  163. package/esm/LinearGenomeView/lazyDialogs.js +3 -3
  164. package/esm/LinearGenomeView/linkedViewSync.d.ts +20 -0
  165. package/esm/LinearGenomeView/linkedViewSync.js +58 -0
  166. package/esm/LinearGenomeView/menuItems.d.ts +27 -2
  167. package/esm/LinearGenomeView/menuItems.js +137 -101
  168. package/esm/LinearGenomeView/model.d.ts +3238 -136
  169. package/esm/LinearGenomeView/model.js +2425 -528
  170. package/esm/LinearGenomeView/sharedScaleContainer.d.ts +18 -0
  171. package/esm/LinearGenomeView/sharedScaleContainer.js +17 -0
  172. package/esm/LinearGenomeView/showRegionsWithUndo.d.ts +35 -0
  173. package/esm/LinearGenomeView/showRegionsWithUndo.js +44 -0
  174. package/esm/LinearGenomeView/stickyChrome.d.ts +19 -0
  175. package/esm/LinearGenomeView/stickyChrome.js +30 -0
  176. package/esm/LinearGenomeView/svgcomponents/SVGGridlines.d.ts +1 -1
  177. package/esm/LinearGenomeView/svgcomponents/SVGGridlines.js +15 -16
  178. package/esm/LinearGenomeView/svgcomponents/SVGHeader.d.ts +2 -3
  179. package/esm/LinearGenomeView/svgcomponents/SVGHeader.js +45 -33
  180. package/esm/LinearGenomeView/svgcomponents/SVGHighlights.d.ts +5 -0
  181. package/esm/LinearGenomeView/svgcomponents/SVGHighlights.js +26 -0
  182. package/esm/LinearGenomeView/svgcomponents/SVGHighlightsOverlay.d.ts +5 -0
  183. package/esm/LinearGenomeView/svgcomponents/SVGHighlightsOverlay.js +13 -0
  184. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.d.ts +1 -3
  185. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +77 -41
  186. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +1 -1
  187. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.js +23 -3
  188. package/esm/LinearGenomeView/svgcomponents/SVGRowHeader.d.ts +8 -0
  189. package/esm/LinearGenomeView/svgcomponents/SVGRowHeader.js +37 -0
  190. package/esm/LinearGenomeView/svgcomponents/SVGRuler.d.ts +3 -3
  191. package/esm/LinearGenomeView/svgcomponents/SVGRuler.js +64 -36
  192. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +1 -1
  193. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.js +7 -5
  194. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +5 -3
  195. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.js +43 -7
  196. package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +8 -14
  197. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js +16 -21
  198. package/esm/LinearGenomeView/svgcomponents/SVGView.d.ts +18 -0
  199. package/esm/LinearGenomeView/svgcomponents/SVGView.js +13 -0
  200. package/esm/LinearGenomeView/svgcomponents/figureContract.d.ts +45 -0
  201. package/esm/LinearGenomeView/svgcomponents/figureContract.js +130 -0
  202. package/esm/LinearGenomeView/svgcomponents/renderViewTracks.d.ts +76 -0
  203. package/esm/LinearGenomeView/svgcomponents/renderViewTracks.js +66 -0
  204. package/esm/LinearGenomeView/svgcomponents/useViewSvgFigure.d.ts +70 -0
  205. package/esm/LinearGenomeView/svgcomponents/useViewSvgFigure.js +263 -0
  206. package/esm/LinearGenomeView/svgcomponents/util.d.ts +92 -5
  207. package/esm/LinearGenomeView/svgcomponents/util.js +236 -3
  208. package/esm/LinearGenomeView/types.d.ts +17 -31
  209. package/esm/LinearGenomeView/types.js +1 -0
  210. package/esm/LinearGenomeView/util.d.ts +332 -12
  211. package/esm/LinearGenomeView/util.js +606 -62
  212. package/esm/MultiLevelRubberband/MultiLevelRubberband.d.ts +6 -0
  213. package/esm/MultiLevelRubberband/MultiLevelRubberband.js +37 -0
  214. package/esm/MultiLevelRubberband/VerticalGuide.d.ts +6 -0
  215. package/esm/MultiLevelRubberband/VerticalGuide.js +21 -0
  216. package/esm/MultiLevelRubberband/index.d.ts +2 -0
  217. package/esm/MultiLevelRubberband/index.js +1 -0
  218. package/esm/MultiLevelRubberband/types.d.ts +6 -0
  219. package/esm/MultiLevelRubberband/useRangeSelect.d.ts +24 -0
  220. package/esm/MultiLevelRubberband/useRangeSelect.js +136 -0
  221. package/esm/displayKitTests/perRegionTestEnv.d.ts +1286 -0
  222. package/esm/displayKitTests/perRegionTestEnv.js +138 -0
  223. package/esm/index.d.ts +122 -1235
  224. package/esm/index.js +101 -24
  225. package/esm/lazyPluginExports.d.ts +23 -0
  226. package/esm/lazyPluginExports.js +36 -0
  227. package/esm/searchUtils.d.ts +55 -11
  228. package/esm/searchUtils.js +342 -45
  229. package/esm/shared/RubberbandSpan.d.ts +15 -0
  230. package/esm/shared/RubberbandSpan.js +33 -0
  231. package/esm/shared/coordLabels.d.ts +40 -0
  232. package/esm/shared/coordLabels.js +119 -0
  233. package/package.json +18 -19
  234. package/esm/BaseLinearDisplay/SVGLegend.d.ts +0 -6
  235. package/esm/BaseLinearDisplay/SVGLegend.js +0 -17
  236. package/esm/BaseLinearDisplay/calculateSvgLegendWidth.d.ts +0 -2
  237. package/esm/BaseLinearDisplay/calculateSvgLegendWidth.js +0 -11
  238. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +0 -8
  239. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +0 -53
  240. package/esm/BaseLinearDisplay/components/Block.d.ts +0 -14
  241. package/esm/BaseLinearDisplay/components/Block.js +0 -45
  242. package/esm/BaseLinearDisplay/components/BlockErrorMessage.d.ts +0 -7
  243. package/esm/BaseLinearDisplay/components/BlockErrorMessage.js +0 -22
  244. package/esm/BaseLinearDisplay/components/BlockMsg.d.ts +0 -6
  245. package/esm/BaseLinearDisplay/components/BlockMsg.js +0 -26
  246. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/CollapseIntronsDialog.d.ts +0 -9
  247. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/CollapseIntronsDialog.js +0 -42
  248. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/TranscriptTable.d.ts +0 -11
  249. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/TranscriptTable.js +0 -40
  250. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/util.d.ts +0 -19
  251. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/util.js +0 -45
  252. package/esm/BaseLinearDisplay/components/FloatingLabels.d.ts +0 -5
  253. package/esm/BaseLinearDisplay/components/FloatingLabels.js +0 -75
  254. package/esm/BaseLinearDisplay/components/FloatingLegend.d.ts +0 -8
  255. package/esm/BaseLinearDisplay/components/FloatingLegend.js +0 -43
  256. package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -5
  257. package/esm/BaseLinearDisplay/components/LinearBlocks.js +0 -23
  258. package/esm/BaseLinearDisplay/components/LoadingOverlay.d.ts +0 -5
  259. package/esm/BaseLinearDisplay/components/LoadingOverlay.js +0 -49
  260. package/esm/BaseLinearDisplay/components/MaxHeightReachedIndicator.d.ts +0 -4
  261. package/esm/BaseLinearDisplay/components/MaxHeightReachedIndicator.js +0 -26
  262. package/esm/BaseLinearDisplay/components/MenuPage.d.ts +0 -8
  263. package/esm/BaseLinearDisplay/components/MenuPage.js +0 -24
  264. package/esm/BaseLinearDisplay/components/NonBlockCanvasDisplayComponent.d.ts +0 -21
  265. package/esm/BaseLinearDisplay/components/NonBlockCanvasDisplayComponent.js +0 -52
  266. package/esm/BaseLinearDisplay/components/RenderedBlocks.d.ts +0 -12
  267. package/esm/BaseLinearDisplay/components/RenderedBlocks.js +0 -22
  268. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +0 -12
  269. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +0 -18
  270. package/esm/BaseLinearDisplay/components/TooLargeMessage.d.ts +0 -10
  271. package/esm/BaseLinearDisplay/components/TooLargeMessage.js +0 -20
  272. package/esm/BaseLinearDisplay/components/Tooltip.d.ts +0 -13
  273. package/esm/BaseLinearDisplay/components/Tooltip.js +0 -22
  274. package/esm/BaseLinearDisplay/components/types.d.ts +0 -1
  275. package/esm/BaseLinearDisplay/components/util.d.ts +0 -21
  276. package/esm/BaseLinearDisplay/components/util.js +0 -107
  277. package/esm/BaseLinearDisplay/index.d.ts +0 -17
  278. package/esm/BaseLinearDisplay/index.js +0 -13
  279. package/esm/BaseLinearDisplay/model.d.ts +0 -1197
  280. package/esm/BaseLinearDisplay/model.js +0 -432
  281. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +0 -32
  282. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js +0 -113
  283. package/esm/BaseLinearDisplay/models/NonBlockCanvasDisplayMixin.d.ts +0 -26
  284. package/esm/BaseLinearDisplay/models/NonBlockCanvasDisplayMixin.js +0 -57
  285. package/esm/BaseLinearDisplay/models/SvgFloatingLabels.d.ts +0 -8
  286. package/esm/BaseLinearDisplay/models/SvgFloatingLabels.js +0 -19
  287. package/esm/BaseLinearDisplay/models/TrackHeightMixin.d.ts +0 -11
  288. package/esm/BaseLinearDisplay/models/TrackHeightMixin.js +0 -31
  289. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +0 -2
  290. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js +0 -29
  291. package/esm/BaseLinearDisplay/models/configSchema.d.ts +0 -29
  292. package/esm/BaseLinearDisplay/models/configSchema.js +0 -33
  293. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +0 -98
  294. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +0 -242
  295. package/esm/BaseLinearDisplay/models/util.d.ts +0 -9
  296. package/esm/BaseLinearDisplay/models/util.js +0 -43
  297. package/esm/BaseLinearDisplay/renderSvg.d.ts +0 -3
  298. package/esm/BaseLinearDisplay/renderSvg.js +0 -63
  299. package/esm/BaseLinearDisplay/types.d.ts +0 -43
  300. package/esm/BaseLinearDisplay/types.js +0 -3
  301. package/esm/BaseLinearDisplay/util.d.ts +0 -16
  302. package/esm/BaseLinearDisplay/util.js +0 -71
  303. package/esm/BasicTrack/configSchema.d.ts +0 -85
  304. package/esm/BasicTrack/configSchema.js +0 -8
  305. package/esm/BasicTrack/index.d.ts +0 -2
  306. package/esm/BasicTrack/index.js +0 -12
  307. package/esm/LinearBareDisplay/configSchema.d.ts +0 -32
  308. package/esm/LinearBareDisplay/configSchema.js +0 -11
  309. package/esm/LinearBareDisplay/index.d.ts +0 -4
  310. package/esm/LinearBareDisplay/index.js +0 -20
  311. package/esm/LinearBareDisplay/model.d.ts +0 -1196
  312. package/esm/LinearBareDisplay/model.js +0 -32
  313. package/esm/LinearBasicDisplay/components/LinearBasicDisplayComponent.d.ts +0 -5
  314. package/esm/LinearBasicDisplay/components/LinearBasicDisplayComponent.js +0 -9
  315. package/esm/LinearBasicDisplay/configSchema.d.ts +0 -32
  316. package/esm/LinearBasicDisplay/configSchema.js +0 -11
  317. package/esm/LinearBasicDisplay/index.d.ts +0 -4
  318. package/esm/LinearBasicDisplay/index.js +0 -20
  319. package/esm/LinearBasicDisplay/model.d.ts +0 -1391
  320. package/esm/LinearBasicDisplay/model.js +0 -158
  321. package/esm/LinearFeatureDisplay/components/AddFiltersDialog.d.ts +0 -9
  322. package/esm/LinearFeatureDisplay/components/AddFiltersDialog.js +0 -58
  323. package/esm/LinearFeatureDisplay/components/SetMaxHeightDialog.d.ts +0 -8
  324. package/esm/LinearFeatureDisplay/components/SetMaxHeightDialog.js +0 -26
  325. package/esm/LinearFeatureDisplay/configSchema.d.ts +0 -32
  326. package/esm/LinearFeatureDisplay/configSchema.js +0 -11
  327. package/esm/LinearFeatureDisplay/index.d.ts +0 -3
  328. package/esm/LinearFeatureDisplay/index.js +0 -2
  329. package/esm/LinearFeatureDisplay/model.d.ts +0 -1443
  330. package/esm/LinearFeatureDisplay/model.js +0 -305
  331. package/esm/LinearGenomeView/SVGErrorBox.d.ts +0 -5
  332. package/esm/LinearGenomeView/SVGErrorBox.js +0 -4
  333. package/esm/LinearGenomeView/components/ImportFormRefNameAutocomplete.d.ts +0 -11
  334. package/esm/LinearGenomeView/components/ImportFormRefNameAutocomplete.js +0 -27
  335. package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.d.ts +0 -5
  336. package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +0 -13
  337. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.d.ts +0 -3
  338. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +0 -17
  339. package/esm/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.d.ts +0 -3
  340. package/esm/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js +0 -8
  341. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +0 -16
  342. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js +0 -101
  343. package/esm/LinearGenomeView/components/RefNameAutocomplete/util.d.ts +0 -10
  344. package/esm/LinearGenomeView/components/RefNameAutocomplete/util.js +0 -45
  345. package/esm/LinearGenomeView/components/RubberbandSpan.d.ts +0 -15
  346. package/esm/LinearGenomeView/components/RubberbandSpan.js +0 -32
  347. package/esm/LinearGenomeView/components/RubberbandTooltip.d.ts +0 -5
  348. package/esm/LinearGenomeView/components/RubberbandTooltip.js +0 -17
  349. package/esm/LinearGenomeView/components/TrackLabelContainer.d.ts +0 -8
  350. package/esm/LinearGenomeView/components/TrackLabelContainer.js +0 -25
  351. package/esm/LinearGenomeView/components/useWheelScroll.d.ts +0 -7
  352. package/esm/LinearGenomeView/components/useWheelScroll.js +0 -69
  353. package/esm/LinearGenomeView/svgExportUtil.d.ts +0 -9
  354. package/esm/LinearGenomeView/svgExportUtil.js +0 -6
  355. package/esm/LinearGenomeView/svgcomponents/SVGBackground.d.ts +0 -5
  356. package/esm/LinearGenomeView/svgcomponents/SVGBackground.js +0 -7
  357. /package/esm/{BaseLinearDisplay/components → MultiLevelRubberband}/types.js +0 -0
@@ -1,9 +1,14 @@
1
1
  import { TrackSelector as TrackSelectorIcon } from '@jbrowse/core/ui/Icons';
2
- import { getSession, isSessionWithAddTracks, toLocale, } from '@jbrowse/core/util';
2
+ import { radioItems } from '@jbrowse/core/ui/menuItems';
3
+ import { assembleLocStrings, getDialogHost, getSession, isSessionWithAddSessionTrack, toLocale, } from '@jbrowse/core/util';
4
+ import { basePaintedAt } from '@jbrowse/core/util/Base1DUtils';
5
+ import { copyText } from '@jbrowse/core/util/copyText';
3
6
  import CenterFocusStrongIcon from '@mui/icons-material/CenterFocusStrong';
4
7
  import ContentCopyIcon from '@mui/icons-material/ContentCopy';
8
+ import ExpandLessIcon from '@mui/icons-material/ExpandLess';
9
+ import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
5
10
  import FolderOpenIcon from '@mui/icons-material/FolderOpen';
6
- import LabelIcon from '@mui/icons-material/Label';
11
+ import LaunchIcon from '@mui/icons-material/Launch';
7
12
  import MenuOpenIcon from '@mui/icons-material/MenuOpen';
8
13
  import PaletteIcon from '@mui/icons-material/Palette';
9
14
  import PhotoCameraIcon from '@mui/icons-material/PhotoCamera';
@@ -11,34 +16,49 @@ import SearchIcon from '@mui/icons-material/Search';
11
16
  import SyncAltIcon from '@mui/icons-material/SyncAlt';
12
17
  import VisibilityIcon from '@mui/icons-material/Visibility';
13
18
  import ZoomInIcon from '@mui/icons-material/ZoomIn';
14
- import { ExportSvgDialog, GetSequenceDialog, ReturnToImportFormDialog, SequenceSearchDialog, } from "./lazyDialogs.js";
15
- function toLocaleRounded(n) {
16
- return toLocale(Math.round(n));
17
- }
18
- export function rewriteOnClicks(self, trackType, viewMenuActions) {
19
- for (const action of viewMenuActions) {
20
- if ('subMenu' in action) {
21
- rewriteOnClicks(self, trackType, action.subMenu);
22
- }
23
- if ('onClick' in action) {
24
- const holdOnClick = action.onClick;
25
- action.onClick = (...args) => {
26
- for (const track of self.tracks) {
27
- if (track.type === trackType) {
28
- holdOnClick.apply(track, [track, ...args]);
29
- }
30
- }
31
- };
32
- }
33
- }
19
+ import { ExportSvgDialog, GetSequenceDialog, ReturnToImportFormDialog, SequenceSearchDialog, } from './lazyDialogs.js';
20
+ const TRACK_LABEL_OPTIONS = [
21
+ { value: 'overlapping', label: 'Overlapping' },
22
+ { value: 'offset', label: 'Offset' },
23
+ { value: 'hidden', label: 'Hidden' },
24
+ ];
25
+ /**
26
+ * Zoom all the way out, shared by the view menu and the header's zoom menu —
27
+ * one definition so the two cannot drift in label, and the view menu is the
28
+ * only one of the two that survives `hideHeader`.
29
+ *
30
+ * The zoom menu earns it on the merits: this is the bottom of the same "Zoom
31
+ * out 100x" ladder, and it is where someone already zooming looks.
32
+ *
33
+ * The label is the import form's button text verbatim (`ImportForm.tsx`), which
34
+ * is where most people meet the phrase. No icon: the four-arrows glyph it
35
+ * carried reads as "fullscreen", and nothing else names the same gesture, so a
36
+ * substitute would be decoration rather than a distinction.
37
+ */
38
+ export function showAllRegionsMenuItem(self) {
39
+ return {
40
+ label: 'Show all regions in assembly',
41
+ onClick: () => {
42
+ self.showAllRegionsInAssembly();
43
+ },
44
+ };
34
45
  }
46
+ /**
47
+ * Build the main view menu items
48
+ */
35
49
  export function buildMenuItems(self) {
36
50
  if (!self.hasDisplayedRegions) {
37
51
  return [];
38
52
  }
39
- const { canShowCytobands, showCytobands } = self;
40
53
  const session = getSession(self);
41
54
  const menuItems = [
55
+ {
56
+ label: self.scalebarOnly ? 'Expand tracks' : 'Collapse to ruler',
57
+ icon: self.scalebarOnly ? ExpandMoreIcon : ExpandLessIcon,
58
+ onClick: () => {
59
+ self.setScalebarOnly(!self.scalebarOnly);
60
+ },
61
+ },
42
62
  {
43
63
  label: 'Return to import form',
44
64
  onClick: () => {
@@ -52,7 +72,7 @@ export function buildMenuItems(self) {
52
72
  },
53
73
  icon: FolderOpenIcon,
54
74
  },
55
- ...(isSessionWithAddTracks(session)
75
+ ...(isSessionWithAddSessionTrack(session)
56
76
  ? [
57
77
  {
58
78
  label: 'Sequence search',
@@ -84,16 +104,24 @@ export function buildMenuItems(self) {
84
104
  },
85
105
  {
86
106
  label: 'Open track selector',
87
- onClick: self.activateTrackSelector,
107
+ onClick: () => {
108
+ self.activateTrackSelector();
109
+ },
88
110
  icon: TrackSelectorIcon,
89
111
  },
112
+ // Top-level rather than under a "Navigation" group: with scroll-to-zoom
113
+ // gone from here the group held two rows, and a popup for two is a click
114
+ // charged for nothing. Not under "Show...", which is visibility toggles.
115
+ showAllRegionsMenuItem(self),
90
116
  {
91
117
  label: 'Horizontally flip',
92
118
  icon: SyncAltIcon,
93
- onClick: self.horizontallyFlip,
119
+ onClick: () => {
120
+ self.horizontallyFlip();
121
+ },
94
122
  },
95
123
  {
96
- label: 'Color by CDS and draw amino acids',
124
+ label: 'Color CDS by reading frame',
97
125
  type: 'checkbox',
98
126
  checked: self.colorByCDS,
99
127
  icon: PaletteIcon,
@@ -105,10 +133,6 @@ export function buildMenuItems(self) {
105
133
  label: 'Show...',
106
134
  icon: VisibilityIcon,
107
135
  subMenu: [
108
- {
109
- label: 'Show all regions in assembly',
110
- onClick: self.showAllRegionsInAssembly,
111
- },
112
136
  {
113
137
  label: 'Show center line',
114
138
  type: 'checkbox',
@@ -121,6 +145,10 @@ export function buildMenuItems(self) {
121
145
  label: 'Show header',
122
146
  type: 'checkbox',
123
147
  checked: !self.hideHeader,
148
+ // opts out of the checkbox "stay open" default: with the header
149
+ // hidden these same items are reachable from MiniControls, which this
150
+ // row unmounts — leaving the menu anchored to a removed node
151
+ keepMenuOpen: false,
124
152
  onClick: () => {
125
153
  self.setHideHeader(!self.hideHeader);
126
154
  },
@@ -150,6 +178,16 @@ export function buildMenuItems(self) {
150
178
  self.setHideNoTracksActive(!self.hideNoTracksActive);
151
179
  },
152
180
  },
181
+ {
182
+ // no icon: the palette it used to carry sat directly against the
183
+ // color-by-CDS one above it, which is the reason it moved here
184
+ label: 'Show amino acids when zoomed in',
185
+ type: 'checkbox',
186
+ checked: self.showAminoAcids,
187
+ onClick: () => {
188
+ self.setShowAminoAcids(!self.showAminoAcids);
189
+ },
190
+ },
153
191
  {
154
192
  label: 'Show guidelines',
155
193
  type: 'checkbox',
@@ -158,95 +196,74 @@ export function buildMenuItems(self) {
158
196
  self.setShowGridlines(!self.showGridlines);
159
197
  },
160
198
  },
161
- ...(canShowCytobands
199
+ ...(self.canShowCytobands
162
200
  ? [
163
201
  {
164
202
  label: 'Show ideogram',
165
203
  type: 'checkbox',
166
204
  checked: self.showCytobands,
167
205
  onClick: () => {
168
- self.setShowCytobands(!showCytobands);
206
+ self.setShowCytobands(!self.showCytobands);
169
207
  },
170
208
  },
171
209
  ]
172
210
  : []),
173
- ],
174
- },
175
- {
176
- label: 'Track labels',
177
- icon: LabelIcon,
178
- subMenu: [
179
- {
180
- label: 'Overlapping',
181
- icon: VisibilityIcon,
182
- type: 'radio',
183
- checked: self.trackLabelsSetting === 'overlapping',
184
- onClick: () => {
185
- self.setTrackLabels('overlapping');
186
- },
187
- },
188
- {
189
- label: 'Offset',
190
- icon: VisibilityIcon,
191
- type: 'radio',
192
- checked: self.trackLabelsSetting === 'offset',
193
- onClick: () => {
194
- self.setTrackLabels('offset');
195
- },
196
- },
197
- {
198
- label: 'Hidden',
199
- icon: VisibilityIcon,
200
- type: 'radio',
201
- checked: self.trackLabelsSetting === 'hidden',
202
- onClick: () => {
203
- self.setTrackLabels('hidden');
204
- },
205
- },
211
+ // Where a track's name is drawn, and "Hidden" is one of the three
212
+ // answers, so this is a visibility setting like everything above it.
213
+ // Inline under a subheader rather than in a submenu of its own: it was a
214
+ // top-level row for three radios, and nesting it here instead would have
215
+ // put those radios a popup further from the hamburger than they were.
216
+ // The icons went with it — all three rows carried the same one, which
217
+ // told a reader nothing about which to pick.
218
+ { type: 'subHeader', label: 'Track labels' },
219
+ ...radioItems(TRACK_LABEL_OPTIONS, self.effectiveTrackLabels, setting => {
220
+ self.setTrackLabels(setting);
221
+ }),
206
222
  ],
207
223
  },
208
224
  ];
209
- for (const [key, value] of self.trackTypeActions.entries()) {
210
- if (value.length) {
211
- menuItems.push({
212
- type: 'divider',
213
- }, {
214
- type: 'subHeader',
215
- label: key,
216
- });
217
- for (const action of value) {
218
- menuItems.push(action);
219
- }
220
- }
221
- }
222
225
  return menuItems;
223
226
  }
224
- export function buildRubberBandMenuItems(self) {
227
+ /**
228
+ * Build rubberband selection menu items. `launchItems` are the plugin-supplied
229
+ * things a selection can start (`rubberBandLaunchMenuItems()`); they collect
230
+ * under one "Launch" submenu so the menu stays three actions plus a group
231
+ * however many plugins are loaded, and vanish entirely when none apply.
232
+ */
233
+ export function buildRubberBandMenuItems(self, launchItems) {
234
+ // captured once here and used by the items below rather than re-read inside
235
+ // their onClick: the menu's onClose runs first and may release the selection,
236
+ // which would leave the click reading undefined and silently doing nothing
225
237
  const { leftOffset, rightOffset } = self;
226
- const leftRef = leftOffset?.refName ?? '';
227
- const rightRef = rightOffset?.refName ?? '';
228
- const leftCoord = toLocaleRounded((leftOffset?.coord ?? 0) + 1);
229
- const rightCoord = toLocaleRounded(rightOffset?.coord ?? 0);
230
- const rangeString = leftRef === rightRef
231
- ? `${leftRef}:${leftCoord}-${rightCoord}`
232
- : `${leftRef}:${leftCoord}..${rightRef}:${rightCoord}`;
238
+ // The same regions `Get sequence` fetches and `Zoom to region` navigates to,
239
+ // named the way the header names what it is showing. Arithmetic on the two
240
+ // offsets' `coord` cannot do this: `coord` is the POINT convention, so on a
241
+ // reversed region it names neither the base painted at the pixel nor the ends
242
+ // in ascending order, and a `leftRef === rightRef` test calls a selection
243
+ // crossing a collapsed intron one range when it is two.
244
+ const rangeString = assembleLocStrings(self.getSelectedRegions(leftOffset, rightOffset));
233
245
  return [
234
246
  {
235
247
  label: 'Zoom to region',
236
248
  icon: ZoomInIcon,
237
249
  onClick: () => {
238
- self.moveTo(self.leftOffset, self.rightOffset);
250
+ self.moveTo(leftOffset, rightOffset);
239
251
  },
240
252
  },
241
253
  {
242
254
  label: 'Get sequence',
243
255
  icon: MenuOpenIcon,
244
256
  onClick: () => {
245
- getSession(self).queueDialog(handleClose => [
257
+ const regions = self.getSelectedRegions(leftOffset, rightOffset);
258
+ getDialogHost(self).queueDialog(handleClose => [
246
259
  GetSequenceDialog,
247
260
  {
248
261
  model: self,
249
- handleClose,
262
+ regions,
263
+ handleClose: () => {
264
+ handleClose();
265
+ self.setOffsets();
266
+ },
250
267
  },
251
268
  ]);
252
269
  },
@@ -254,41 +271,60 @@ export function buildRubberBandMenuItems(self) {
254
271
  {
255
272
  label: 'Copy range',
256
273
  icon: ContentCopyIcon,
257
- onClick: async () => {
258
- const { default: copy } = await import('copy-to-clipboard');
259
- copy(rangeString);
274
+ onClick: () => {
275
+ void copyText(self, rangeString, 'range');
260
276
  },
261
277
  },
278
+ ...(launchItems.length
279
+ ? [
280
+ {
281
+ label: 'Launch',
282
+ icon: LaunchIcon,
283
+ type: 'subMenu',
284
+ subMenu: launchItems,
285
+ },
286
+ ]
287
+ : []),
262
288
  ];
263
289
  }
290
+ /**
291
+ * Build rubberband click menu items (single click on rubberband area)
292
+ */
264
293
  export function buildRubberbandClickMenuItems(self, clickOffset) {
265
- const { coord, refName } = clickOffset;
266
- if (coord === undefined || refName === undefined) {
294
+ const { refName, start, end, reversed, offset } = clickOffset;
295
+ if (refName === undefined || start === undefined || end === undefined) {
267
296
  return [];
268
297
  }
269
- const locString = `${refName}:${toLocaleRounded(coord + 1)}`;
298
+ // `basePaintedAt`, not `coord`: `coord` is the point convention, which on a
299
+ // reversed region names the base one PAST the one under the pointer — and at
300
+ // the region's first column names a base off the end of the contig entirely.
301
+ // Forward the two agree, so this only ever moves the reversed answer.
302
+ //
303
+ // The result is 0-based, which is what `centerAt` takes (it goes through
304
+ // `bpToPx`); the label adds the 1 back.
305
+ const coord0 = basePaintedAt({ start, end, reversed }, offset);
306
+ const locString = `${refName}:${toLocale(coord0 + 1)}`;
270
307
  return [
271
308
  {
272
309
  label: 'Center view here',
273
310
  icon: CenterFocusStrongIcon,
274
311
  onClick: () => {
275
- self.centerAt(coord, refName);
312
+ self.centerAt(coord0, refName);
276
313
  },
277
314
  },
278
315
  {
279
316
  label: 'Zoom to base level',
280
317
  icon: ZoomInIcon,
281
318
  onClick: () => {
282
- self.centerAt(coord, refName);
319
+ self.centerAt(coord0, refName);
283
320
  self.zoomTo(self.minBpPerPx);
284
321
  },
285
322
  },
286
323
  {
287
324
  label: `Copy coordinate (${locString})`,
288
325
  icon: ContentCopyIcon,
289
- onClick: async () => {
290
- const { default: copy } = await import('copy-to-clipboard');
291
- copy(locString);
326
+ onClick: () => {
327
+ void copyText(self, locString, 'coordinate');
292
328
  },
293
329
  },
294
330
  ];