@jbrowse/plugin-linear-genome-view 3.6.5 → 4.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 (392) hide show
  1. package/esm/BaseLinearDisplay/SVGLegend.d.ts +6 -0
  2. package/esm/BaseLinearDisplay/SVGLegend.js +17 -0
  3. package/esm/BaseLinearDisplay/calculateSvgLegendWidth.d.ts +2 -0
  4. package/esm/BaseLinearDisplay/calculateSvgLegendWidth.js +11 -0
  5. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +3 -3
  6. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +13 -24
  7. package/esm/BaseLinearDisplay/components/Block.js +2 -2
  8. package/esm/BaseLinearDisplay/components/BlockErrorMessage.js +2 -2
  9. package/esm/BaseLinearDisplay/components/BlockMsg.js +11 -2
  10. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/CollapseIntronsDialog.d.ts +9 -0
  11. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/CollapseIntronsDialog.js +42 -0
  12. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/TranscriptTable.d.ts +11 -0
  13. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/TranscriptTable.js +40 -0
  14. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/util.d.ts +19 -0
  15. package/esm/BaseLinearDisplay/components/CollapseIntronsDialog/util.js +45 -0
  16. package/esm/BaseLinearDisplay/components/FloatingLabels.d.ts +5 -0
  17. package/esm/BaseLinearDisplay/components/FloatingLabels.js +89 -0
  18. package/esm/BaseLinearDisplay/components/FloatingLegend.d.ts +8 -0
  19. package/esm/BaseLinearDisplay/components/FloatingLegend.js +43 -0
  20. package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +1 -5
  21. package/esm/BaseLinearDisplay/components/LinearBlocks.js +5 -42
  22. package/esm/BaseLinearDisplay/components/LoadingOverlay.d.ts +4 -0
  23. package/esm/BaseLinearDisplay/components/LoadingOverlay.js +49 -0
  24. package/esm/BaseLinearDisplay/components/MaxHeightReachedIndicator.d.ts +4 -0
  25. package/esm/BaseLinearDisplay/components/MaxHeightReachedIndicator.js +26 -0
  26. package/esm/BaseLinearDisplay/components/MenuPage.d.ts +8 -0
  27. package/esm/BaseLinearDisplay/components/MenuPage.js +24 -0
  28. package/esm/BaseLinearDisplay/components/NonBlockCanvasDisplayComponent.d.ts +19 -0
  29. package/esm/BaseLinearDisplay/components/NonBlockCanvasDisplayComponent.js +48 -0
  30. package/esm/BaseLinearDisplay/components/RenderedBlocks.d.ts +12 -0
  31. package/esm/BaseLinearDisplay/components/RenderedBlocks.js +22 -0
  32. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +4 -4
  33. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +5 -8
  34. package/esm/BaseLinearDisplay/components/TooLargeMessage.js +3 -3
  35. package/esm/BaseLinearDisplay/components/Tooltip.d.ts +2 -0
  36. package/esm/BaseLinearDisplay/components/Tooltip.js +10 -7
  37. package/esm/BaseLinearDisplay/components/types.d.ts +1 -0
  38. package/esm/BaseLinearDisplay/components/types.js +1 -0
  39. package/esm/BaseLinearDisplay/components/util.d.ts +21 -0
  40. package/esm/BaseLinearDisplay/components/util.js +116 -0
  41. package/esm/BaseLinearDisplay/index.d.ts +17 -8
  42. package/esm/BaseLinearDisplay/index.js +13 -6
  43. package/esm/BaseLinearDisplay/model.d.ts +1177 -0
  44. package/esm/BaseLinearDisplay/model.js +424 -0
  45. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +5 -5
  46. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js +11 -14
  47. package/esm/BaseLinearDisplay/models/NonBlockCanvasDisplayMixin.d.ts +21 -0
  48. package/esm/BaseLinearDisplay/models/NonBlockCanvasDisplayMixin.js +46 -0
  49. package/esm/BaseLinearDisplay/models/TrackHeightMixin.d.ts +3 -3
  50. package/esm/BaseLinearDisplay/models/TrackHeightMixin.js +2 -3
  51. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +1 -1
  52. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js +2 -3
  53. package/esm/BaseLinearDisplay/models/calculateLabelPositions.d.ts +24 -0
  54. package/esm/BaseLinearDisplay/models/calculateLabelPositions.js +60 -0
  55. package/esm/BaseLinearDisplay/models/configSchema.d.ts +2 -2
  56. package/esm/BaseLinearDisplay/models/configSchema.js +3 -3
  57. package/esm/BaseLinearDisplay/models/renderSvg.d.ts +3 -7
  58. package/esm/BaseLinearDisplay/models/renderSvg.js +22 -11
  59. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +37 -19
  60. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +151 -135
  61. package/esm/BaseLinearDisplay/models/util.d.ts +4 -4
  62. package/esm/BaseLinearDisplay/models/util.js +16 -13
  63. package/esm/BaseLinearDisplay/renderSvg.d.ts +3 -0
  64. package/esm/BaseLinearDisplay/renderSvg.js +59 -0
  65. package/esm/BaseLinearDisplay/types.d.ts +47 -0
  66. package/esm/BaseLinearDisplay/types.js +3 -0
  67. package/esm/BaseLinearDisplay/util.d.ts +15 -0
  68. package/esm/BaseLinearDisplay/util.js +61 -0
  69. package/esm/BasicTrack/configSchema.d.ts +16 -11
  70. package/esm/BasicTrack/index.js +1 -1
  71. package/esm/FeatureTrack/configSchema.d.ts +16 -11
  72. package/esm/FeatureTrack/index.js +1 -1
  73. package/esm/LaunchLinearGenomeView/index.js +12 -62
  74. package/esm/LinearBareDisplay/configSchema.d.ts +4 -4
  75. package/esm/LinearBareDisplay/configSchema.js +1 -1
  76. package/esm/LinearBareDisplay/index.d.ts +2 -2
  77. package/esm/LinearBareDisplay/index.js +5 -5
  78. package/esm/LinearBareDisplay/model.d.ts +959 -92
  79. package/esm/LinearBareDisplay/model.js +3 -6
  80. package/esm/LinearBasicDisplay/components/LinearBasicDisplayComponent.d.ts +5 -0
  81. package/esm/LinearBasicDisplay/components/LinearBasicDisplayComponent.js +9 -0
  82. package/esm/LinearBasicDisplay/configSchema.d.ts +4 -4
  83. package/esm/LinearBasicDisplay/configSchema.js +1 -1
  84. package/esm/LinearBasicDisplay/index.d.ts +2 -2
  85. package/esm/LinearBasicDisplay/index.js +6 -6
  86. package/esm/LinearBasicDisplay/model.d.ts +1134 -122
  87. package/esm/LinearBasicDisplay/model.js +116 -116
  88. package/esm/{LinearBasicDisplay → LinearFeatureDisplay}/components/AddFiltersDialog.js +2 -2
  89. package/esm/{LinearBasicDisplay → LinearFeatureDisplay}/components/SetMaxHeightDialog.js +3 -3
  90. package/{dist/LinearBasicDisplay → esm/LinearFeatureDisplay}/configSchema.d.ts +4 -4
  91. package/esm/LinearFeatureDisplay/configSchema.js +11 -0
  92. package/esm/LinearFeatureDisplay/index.d.ts +3 -0
  93. package/esm/LinearFeatureDisplay/index.js +2 -0
  94. package/esm/LinearFeatureDisplay/model.d.ts +1415 -0
  95. package/esm/LinearFeatureDisplay/model.js +265 -0
  96. package/esm/LinearGenomeView/SVGErrorBox.d.ts +5 -0
  97. package/esm/LinearGenomeView/SVGErrorBox.js +4 -0
  98. package/esm/LinearGenomeView/afterAttach.d.ts +5 -0
  99. package/esm/LinearGenomeView/afterAttach.js +95 -0
  100. package/esm/LinearGenomeView/components/CenterLine.js +6 -4
  101. package/esm/LinearGenomeView/components/Cytobands.js +4 -4
  102. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +1 -1
  103. package/esm/LinearGenomeView/components/ExportSvgDialog.js +5 -1
  104. package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +8 -2
  105. package/esm/LinearGenomeView/components/GetSequenceDialog.js +13 -16
  106. package/esm/LinearGenomeView/components/Gridlines.js +18 -15
  107. package/esm/LinearGenomeView/components/Header.js +9 -9
  108. package/esm/LinearGenomeView/components/HeaderPanControls.js +2 -2
  109. package/esm/LinearGenomeView/components/HeaderRegionWidth.js +4 -5
  110. package/esm/LinearGenomeView/components/HeaderTrackSelectorButton.js +2 -2
  111. package/esm/LinearGenomeView/components/HeaderZoomControls.js +3 -3
  112. package/esm/LinearGenomeView/components/Highlight.d.ts +1 -1
  113. package/esm/LinearGenomeView/components/Highlight.js +6 -6
  114. package/esm/LinearGenomeView/components/ImportForm.d.ts +1 -1
  115. package/esm/LinearGenomeView/components/ImportForm.js +14 -12
  116. package/esm/LinearGenomeView/components/ImportFormRefNameAutocomplete.js +3 -3
  117. package/esm/LinearGenomeView/components/LinearGenomeView.js +7 -7
  118. package/esm/LinearGenomeView/components/LinearGenomeViewContainer.js +7 -8
  119. package/esm/LinearGenomeView/components/MiniControls.js +6 -6
  120. package/esm/LinearGenomeView/components/NoTracksActiveButton.js +2 -2
  121. package/esm/LinearGenomeView/components/OverviewHighlight.d.ts +1 -1
  122. package/esm/LinearGenomeView/components/OverviewHighlight.js +5 -5
  123. package/esm/LinearGenomeView/components/OverviewRubberband.js +4 -4
  124. package/esm/LinearGenomeView/components/OverviewRubberbandHoverTooltip.js +9 -5
  125. package/esm/LinearGenomeView/components/OverviewScalebar.js +36 -28
  126. package/esm/LinearGenomeView/components/OverviewScalebarPolygon.js +5 -5
  127. package/esm/LinearGenomeView/components/OverviewScalebarTickLabels.js +7 -7
  128. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +1 -1
  129. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +1 -1
  130. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js +10 -10
  131. package/esm/LinearGenomeView/components/RegionWidthEditorDialog.d.ts +1 -1
  132. package/esm/LinearGenomeView/components/RegionWidthEditorDialog.js +6 -4
  133. package/esm/LinearGenomeView/components/Rubberband.js +9 -7
  134. package/esm/LinearGenomeView/components/RubberbandSpan.js +4 -5
  135. package/esm/LinearGenomeView/components/Scalebar.js +8 -10
  136. package/esm/LinearGenomeView/components/ScalebarCoordinateLabels.d.ts +1 -1
  137. package/esm/LinearGenomeView/components/ScalebarCoordinateLabels.js +50 -17
  138. package/esm/LinearGenomeView/components/ScalebarRefNameLabels.d.ts +1 -1
  139. package/esm/LinearGenomeView/components/ScalebarRefNameLabels.js +13 -11
  140. package/esm/LinearGenomeView/components/SearchBox.d.ts +1 -1
  141. package/esm/LinearGenomeView/components/SearchBox.js +8 -9
  142. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +1 -1
  143. package/esm/LinearGenomeView/components/SearchResultsDialog.js +2 -2
  144. package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +1 -1
  145. package/esm/LinearGenomeView/components/SearchResultsTable.js +4 -6
  146. package/esm/LinearGenomeView/components/SequenceSearchDialog.js +6 -6
  147. package/esm/LinearGenomeView/components/TrackContainer.js +32 -20
  148. package/esm/LinearGenomeView/components/TrackLabel.js +10 -11
  149. package/esm/LinearGenomeView/components/TrackLabelContainer.js +7 -8
  150. package/esm/LinearGenomeView/components/TrackLabelDragHandle.js +1 -1
  151. package/esm/LinearGenomeView/components/TrackLabelMenu.js +80 -68
  152. package/esm/LinearGenomeView/components/TrackRenderingContainer.d.ts +1 -2
  153. package/esm/LinearGenomeView/components/TrackRenderingContainer.js +5 -5
  154. package/esm/LinearGenomeView/components/TracksContainer.js +18 -15
  155. package/esm/LinearGenomeView/components/VerticalGuide.js +5 -3
  156. package/esm/LinearGenomeView/components/fetchSequence.d.ts +7 -2
  157. package/esm/LinearGenomeView/components/useRangeSelect.d.ts +27 -2
  158. package/esm/LinearGenomeView/components/useRangeSelect.js +26 -20
  159. package/esm/LinearGenomeView/components/useWheelScroll.js +22 -12
  160. package/esm/LinearGenomeView/components/util.d.ts +2 -13
  161. package/esm/LinearGenomeView/components/util.js +12 -31
  162. package/esm/LinearGenomeView/index.d.ts +1 -1
  163. package/esm/LinearGenomeView/index.js +3 -3
  164. package/esm/LinearGenomeView/keyboardHandler.d.ts +2 -0
  165. package/esm/LinearGenomeView/keyboardHandler.js +29 -0
  166. package/esm/LinearGenomeView/menuItems.d.ts +7 -0
  167. package/esm/LinearGenomeView/menuItems.js +299 -0
  168. package/esm/LinearGenomeView/model.d.ts +92 -89
  169. package/esm/LinearGenomeView/model.js +166 -414
  170. package/esm/LinearGenomeView/svgExportUtil.d.ts +9 -0
  171. package/esm/LinearGenomeView/svgExportUtil.js +6 -0
  172. package/{dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts → esm/LinearGenomeView/svgcomponents/SVGGridlines.d.ts} +2 -2
  173. package/esm/LinearGenomeView/svgcomponents/SVGGridlines.js +20 -0
  174. package/esm/LinearGenomeView/svgcomponents/SVGHeader.js +5 -5
  175. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.d.ts +4 -3
  176. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +24 -12
  177. package/esm/LinearGenomeView/svgcomponents/SVGRuler.js +13 -5
  178. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js +2 -2
  179. package/esm/LinearGenomeView/types.d.ts +5 -1
  180. package/esm/LinearGenomeView/util.d.ts +2 -2
  181. package/esm/LinearGenomeView/util.js +8 -6
  182. package/esm/index.d.ts +975 -94
  183. package/esm/index.js +37 -38
  184. package/esm/searchUtils.d.ts +1 -1
  185. package/esm/searchUtils.js +6 -4
  186. package/package.json +28 -33
  187. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +0 -8
  188. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +0 -72
  189. package/dist/BaseLinearDisplay/components/Block.d.ts +0 -14
  190. package/dist/BaseLinearDisplay/components/Block.js +0 -50
  191. package/dist/BaseLinearDisplay/components/BlockErrorMessage.d.ts +0 -7
  192. package/dist/BaseLinearDisplay/components/BlockErrorMessage.js +0 -27
  193. package/dist/BaseLinearDisplay/components/BlockLoadingMessage.d.ts +0 -6
  194. package/dist/BaseLinearDisplay/components/BlockLoadingMessage.js +0 -26
  195. package/dist/BaseLinearDisplay/components/BlockMsg.d.ts +0 -6
  196. package/dist/BaseLinearDisplay/components/BlockMsg.js +0 -20
  197. package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -9
  198. package/dist/BaseLinearDisplay/components/LinearBlocks.js +0 -61
  199. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.d.ts +0 -11
  200. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +0 -59
  201. package/dist/BaseLinearDisplay/components/TooLargeMessage.d.ts +0 -10
  202. package/dist/BaseLinearDisplay/components/TooLargeMessage.js +0 -25
  203. package/dist/BaseLinearDisplay/components/Tooltip.d.ts +0 -11
  204. package/dist/BaseLinearDisplay/components/Tooltip.js +0 -24
  205. package/dist/BaseLinearDisplay/index.d.ts +0 -8
  206. package/dist/BaseLinearDisplay/index.js +0 -20
  207. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +0 -311
  208. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +0 -325
  209. package/dist/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +0 -32
  210. package/dist/BaseLinearDisplay/models/FeatureDensityMixin.js +0 -122
  211. package/dist/BaseLinearDisplay/models/TrackHeightMixin.d.ts +0 -11
  212. package/dist/BaseLinearDisplay/models/TrackHeightMixin.js +0 -35
  213. package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +0 -2
  214. package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.js +0 -33
  215. package/dist/BaseLinearDisplay/models/configSchema.d.ts +0 -29
  216. package/dist/BaseLinearDisplay/models/configSchema.js +0 -35
  217. package/dist/BaseLinearDisplay/models/renderSvg.d.ts +0 -7
  218. package/dist/BaseLinearDisplay/models/renderSvg.js +0 -80
  219. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.d.ts +0 -78
  220. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +0 -229
  221. package/dist/BaseLinearDisplay/models/util.d.ts +0 -22
  222. package/dist/BaseLinearDisplay/models/util.js +0 -45
  223. package/dist/BasicTrack/configSchema.d.ts +0 -80
  224. package/dist/BasicTrack/configSchema.js +0 -10
  225. package/dist/BasicTrack/index.d.ts +0 -2
  226. package/dist/BasicTrack/index.js +0 -18
  227. package/dist/FeatureTrack/configSchema.d.ts +0 -80
  228. package/dist/FeatureTrack/configSchema.js +0 -10
  229. package/dist/FeatureTrack/index.d.ts +0 -2
  230. package/dist/FeatureTrack/index.js +0 -19
  231. package/dist/LaunchLinearGenomeView/index.d.ts +0 -2
  232. package/dist/LaunchLinearGenomeView/index.js +0 -70
  233. package/dist/LinearBareDisplay/configSchema.d.ts +0 -32
  234. package/dist/LinearBareDisplay/configSchema.js +0 -13
  235. package/dist/LinearBareDisplay/index.d.ts +0 -4
  236. package/dist/LinearBareDisplay/index.js +0 -26
  237. package/dist/LinearBareDisplay/model.d.ts +0 -309
  238. package/dist/LinearBareDisplay/model.js +0 -38
  239. package/dist/LinearBasicDisplay/components/AddFiltersDialog.js +0 -61
  240. package/dist/LinearBasicDisplay/components/SetMaxHeightDialog.js +0 -28
  241. package/dist/LinearBasicDisplay/configSchema.js +0 -13
  242. package/dist/LinearBasicDisplay/index.d.ts +0 -4
  243. package/dist/LinearBasicDisplay/index.js +0 -29
  244. package/dist/LinearBasicDisplay/model.d.ts +0 -346
  245. package/dist/LinearBasicDisplay/model.js +0 -192
  246. package/dist/LinearGenomeView/components/CenterLine.d.ts +0 -6
  247. package/dist/LinearGenomeView/components/CenterLine.js +0 -38
  248. package/dist/LinearGenomeView/components/Cytobands.d.ts +0 -9
  249. package/dist/LinearGenomeView/components/Cytobands.js +0 -89
  250. package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +0 -7
  251. package/dist/LinearGenomeView/components/ExportSvgDialog.js +0 -57
  252. package/dist/LinearGenomeView/components/GetSequenceDialog.d.ts +0 -6
  253. package/dist/LinearGenomeView/components/GetSequenceDialog.js +0 -109
  254. package/dist/LinearGenomeView/components/Gridlines.d.ts +0 -7
  255. package/dist/LinearGenomeView/components/Gridlines.js +0 -70
  256. package/dist/LinearGenomeView/components/Header.d.ts +0 -5
  257. package/dist/LinearGenomeView/components/Header.js +0 -38
  258. package/dist/LinearGenomeView/components/HeaderPanControls.d.ts +0 -6
  259. package/dist/LinearGenomeView/components/HeaderPanControls.js +0 -27
  260. package/dist/LinearGenomeView/components/HeaderRegionWidth.d.ts +0 -5
  261. package/dist/LinearGenomeView/components/HeaderRegionWidth.js +0 -21
  262. package/dist/LinearGenomeView/components/HeaderTrackSelectorButton.d.ts +0 -5
  263. package/dist/LinearGenomeView/components/HeaderTrackSelectorButton.js +0 -19
  264. package/dist/LinearGenomeView/components/HeaderZoomControls.d.ts +0 -5
  265. package/dist/LinearGenomeView/components/HeaderZoomControls.js +0 -109
  266. package/dist/LinearGenomeView/components/Highlight.d.ts +0 -12
  267. package/dist/LinearGenomeView/components/Highlight.js +0 -95
  268. package/dist/LinearGenomeView/components/ImportForm.d.ts +0 -6
  269. package/dist/LinearGenomeView/components/ImportForm.js +0 -80
  270. package/dist/LinearGenomeView/components/ImportFormRefNameAutocomplete.d.ts +0 -11
  271. package/dist/LinearGenomeView/components/ImportFormRefNameAutocomplete.js +0 -32
  272. package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +0 -5
  273. package/dist/LinearGenomeView/components/LinearGenomeView.js +0 -57
  274. package/dist/LinearGenomeView/components/LinearGenomeViewContainer.d.ts +0 -5
  275. package/dist/LinearGenomeView/components/LinearGenomeViewContainer.js +0 -98
  276. package/dist/LinearGenomeView/components/MiniControls.d.ts +0 -5
  277. package/dist/LinearGenomeView/components/MiniControls.js +0 -36
  278. package/dist/LinearGenomeView/components/NoTracksActiveButton.d.ts +0 -5
  279. package/dist/LinearGenomeView/components/NoTracksActiveButton.js +0 -23
  280. package/dist/LinearGenomeView/components/OverviewHighlight.d.ts +0 -8
  281. package/dist/LinearGenomeView/components/OverviewHighlight.js +0 -50
  282. package/dist/LinearGenomeView/components/OverviewRubberband.d.ts +0 -9
  283. package/dist/LinearGenomeView/components/OverviewRubberband.js +0 -113
  284. package/dist/LinearGenomeView/components/OverviewRubberbandHoverTooltip.d.ts +0 -10
  285. package/dist/LinearGenomeView/components/OverviewRubberbandHoverTooltip.js +0 -28
  286. package/dist/LinearGenomeView/components/OverviewScalebar.d.ts +0 -7
  287. package/dist/LinearGenomeView/components/OverviewScalebar.js +0 -146
  288. package/dist/LinearGenomeView/components/OverviewScalebarPolygon.d.ts +0 -8
  289. package/dist/LinearGenomeView/components/OverviewScalebarPolygon.js +0 -41
  290. package/dist/LinearGenomeView/components/OverviewScalebarTickLabels.d.ts +0 -10
  291. package/dist/LinearGenomeView/components/OverviewScalebarTickLabels.js +0 -37
  292. package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.d.ts +0 -8
  293. package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +0 -18
  294. package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.d.ts +0 -3
  295. package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +0 -56
  296. package/dist/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.d.ts +0 -3
  297. package/dist/LinearGenomeView/components/RefNameAutocomplete/HelpDialog.js +0 -11
  298. package/dist/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +0 -16
  299. package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js +0 -127
  300. package/dist/LinearGenomeView/components/RefNameAutocomplete/util.d.ts +0 -10
  301. package/dist/LinearGenomeView/components/RefNameAutocomplete/util.js +0 -53
  302. package/dist/LinearGenomeView/components/RegionWidthEditorDialog.d.ts +0 -6
  303. package/dist/LinearGenomeView/components/RegionWidthEditorDialog.js +0 -30
  304. package/dist/LinearGenomeView/components/Rubberband.d.ts +0 -7
  305. package/dist/LinearGenomeView/components/Rubberband.js +0 -35
  306. package/dist/LinearGenomeView/components/RubberbandSpan.d.ts +0 -15
  307. package/dist/LinearGenomeView/components/RubberbandSpan.js +0 -39
  308. package/dist/LinearGenomeView/components/RubberbandTooltip.d.ts +0 -5
  309. package/dist/LinearGenomeView/components/RubberbandTooltip.js +0 -20
  310. package/dist/LinearGenomeView/components/Scalebar.d.ts +0 -10
  311. package/dist/LinearGenomeView/components/Scalebar.js +0 -40
  312. package/dist/LinearGenomeView/components/ScalebarCoordinateLabels.d.ts +0 -6
  313. package/dist/LinearGenomeView/components/ScalebarCoordinateLabels.js +0 -29
  314. package/dist/LinearGenomeView/components/ScalebarCoordinateTicks.d.ts +0 -6
  315. package/dist/LinearGenomeView/components/ScalebarCoordinateTicks.js +0 -38
  316. package/dist/LinearGenomeView/components/ScalebarRefNameLabels.d.ts +0 -6
  317. package/dist/LinearGenomeView/components/ScalebarRefNameLabels.js +0 -46
  318. package/dist/LinearGenomeView/components/SearchBox.d.ts +0 -6
  319. package/dist/LinearGenomeView/components/SearchBox.js +0 -88
  320. package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +0 -9
  321. package/dist/LinearGenomeView/components/SearchResultsDialog.js +0 -15
  322. package/dist/LinearGenomeView/components/SearchResultsTable.d.ts +0 -8
  323. package/dist/LinearGenomeView/components/SearchResultsTable.js +0 -74
  324. package/dist/LinearGenomeView/components/SequenceSearchDialog.d.ts +0 -8
  325. package/dist/LinearGenomeView/components/SequenceSearchDialog.js +0 -67
  326. package/dist/LinearGenomeView/components/TrackContainer.d.ts +0 -8
  327. package/dist/LinearGenomeView/components/TrackContainer.js +0 -51
  328. package/dist/LinearGenomeView/components/TrackLabel.d.ts +0 -7
  329. package/dist/LinearGenomeView/components/TrackLabel.js +0 -49
  330. package/dist/LinearGenomeView/components/TrackLabelContainer.d.ts +0 -8
  331. package/dist/LinearGenomeView/components/TrackLabelContainer.js +0 -31
  332. package/dist/LinearGenomeView/components/TrackLabelDragHandle.d.ts +0 -8
  333. package/dist/LinearGenomeView/components/TrackLabelDragHandle.js +0 -32
  334. package/dist/LinearGenomeView/components/TrackLabelMenu.d.ts +0 -5
  335. package/dist/LinearGenomeView/components/TrackLabelMenu.js +0 -93
  336. package/dist/LinearGenomeView/components/TrackRenderingContainer.d.ts +0 -9
  337. package/dist/LinearGenomeView/components/TrackRenderingContainer.js +0 -50
  338. package/dist/LinearGenomeView/components/TracksContainer.d.ts +0 -7
  339. package/dist/LinearGenomeView/components/TracksContainer.js +0 -84
  340. package/dist/LinearGenomeView/components/VerticalGuide.d.ts +0 -7
  341. package/dist/LinearGenomeView/components/VerticalGuide.js +0 -31
  342. package/dist/LinearGenomeView/components/fetchSequence.d.ts +0 -4
  343. package/dist/LinearGenomeView/components/fetchSequence.js +0 -29
  344. package/dist/LinearGenomeView/components/useRangeSelect.d.ts +0 -59
  345. package/dist/LinearGenomeView/components/useRangeSelect.js +0 -131
  346. package/dist/LinearGenomeView/components/useSideScroll.d.ts +0 -6
  347. package/dist/LinearGenomeView/components/useSideScroll.js +0 -60
  348. package/dist/LinearGenomeView/components/useWheelScroll.d.ts +0 -7
  349. package/dist/LinearGenomeView/components/useWheelScroll.js +0 -62
  350. package/dist/LinearGenomeView/components/util.d.ts +0 -25
  351. package/dist/LinearGenomeView/components/util.js +0 -49
  352. package/dist/LinearGenomeView/consts.d.ts +0 -7
  353. package/dist/LinearGenomeView/consts.js +0 -10
  354. package/dist/LinearGenomeView/index.d.ts +0 -3
  355. package/dist/LinearGenomeView/index.js +0 -53
  356. package/dist/LinearGenomeView/model.d.ts +0 -268
  357. package/dist/LinearGenomeView/model.js +0 -1109
  358. package/dist/LinearGenomeView/svgcomponents/SVGBackground.d.ts +0 -5
  359. package/dist/LinearGenomeView/svgcomponents/SVGBackground.js +0 -10
  360. package/dist/LinearGenomeView/svgcomponents/SVGHeader.d.ts +0 -7
  361. package/dist/LinearGenomeView/svgcomponents/SVGHeader.js +0 -47
  362. package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.d.ts +0 -6
  363. package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +0 -42
  364. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.js +0 -8
  365. package/dist/LinearGenomeView/svgcomponents/SVGRuler.d.ts +0 -7
  366. package/dist/LinearGenomeView/svgcomponents/SVGRuler.js +0 -39
  367. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +0 -7
  368. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.js +0 -17
  369. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +0 -7
  370. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.js +0 -14
  371. package/dist/LinearGenomeView/svgcomponents/SVGTracks.d.ts +0 -21
  372. package/dist/LinearGenomeView/svgcomponents/SVGTracks.js +0 -32
  373. package/dist/LinearGenomeView/svgcomponents/util.d.ts +0 -8
  374. package/dist/LinearGenomeView/svgcomponents/util.js +0 -8
  375. package/dist/LinearGenomeView/types.d.ts +0 -43
  376. package/dist/LinearGenomeView/types.js +0 -2
  377. package/dist/LinearGenomeView/util.d.ts +0 -26
  378. package/dist/LinearGenomeView/util.js +0 -138
  379. package/dist/index.d.ts +0 -353
  380. package/dist/index.js +0 -120
  381. package/dist/searchUtils.d.ts +0 -26
  382. package/dist/searchUtils.js +0 -80
  383. package/esm/BaseLinearDisplay/components/BlockLoadingMessage.d.ts +0 -6
  384. package/esm/BaseLinearDisplay/components/BlockLoadingMessage.js +0 -24
  385. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +0 -311
  386. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +0 -286
  387. package/esm/LinearBasicDisplay/components/AddFiltersDialog.d.ts +0 -9
  388. package/esm/LinearBasicDisplay/components/SetMaxHeightDialog.d.ts +0 -8
  389. package/esm/LinearGenomeView/components/ScalebarCoordinateTicks.d.ts +0 -6
  390. package/esm/LinearGenomeView/components/ScalebarCoordinateTicks.js +0 -36
  391. /package/{dist/LinearBasicDisplay → esm/LinearFeatureDisplay}/components/AddFiltersDialog.d.ts +0 -0
  392. /package/{dist/LinearBasicDisplay → esm/LinearFeatureDisplay}/components/SetMaxHeightDialog.d.ts +0 -0
@@ -0,0 +1,4 @@
1
+ declare const MaxHeightReached: import("react").NamedExoticComponent<{
2
+ top: number;
3
+ }>;
4
+ export default MaxHeightReached;
@@ -0,0 +1,26 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { memo } from 'react';
3
+ import { makeStyles } from '@jbrowse/core/util/tss-react';
4
+ const useStyles = makeStyles()({
5
+ heightOverflowed: {
6
+ position: 'absolute',
7
+ color: 'rgb(77,77,77)',
8
+ borderBottom: '2px solid rgb(77,77,77)',
9
+ textShadow: 'white 0px 0px 1px',
10
+ whiteSpace: 'nowrap',
11
+ width: '100%',
12
+ fontWeight: 'bold',
13
+ textAlign: 'center',
14
+ zIndex: 999,
15
+ boxSizing: 'border-box',
16
+ },
17
+ });
18
+ const MaxHeightReached = memo(function MaxHeightReached({ top, }) {
19
+ const { classes } = useStyles();
20
+ return (_jsx("div", { className: classes.heightOverflowed, style: {
21
+ top,
22
+ pointerEvents: 'none',
23
+ height: 16,
24
+ }, children: "Max height reached" }));
25
+ });
26
+ export default MaxHeightReached;
@@ -0,0 +1,8 @@
1
+ import type { Coord } from './types.ts';
2
+ import type { BaseLinearDisplayModel } from '../model.ts';
3
+ declare const MenuPage: ({ onClose, contextCoord, model, }: {
4
+ model: BaseLinearDisplayModel;
5
+ contextCoord: Coord;
6
+ onClose: () => void;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export default MenuPage;
@@ -0,0 +1,24 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { Menu } from '@jbrowse/core/ui';
3
+ import { observer } from 'mobx-react';
4
+ const MenuPage = observer(function MenuPage({ onClose, contextCoord, model, }) {
5
+ const items = model.contextMenuItems();
6
+ return (_jsx(Menu, { open: items.length > 0, onMenuItemClick: (_, callback) => {
7
+ callback();
8
+ onClose();
9
+ }, onClose: () => {
10
+ onClose();
11
+ model.setContextMenuFeature(undefined);
12
+ }, slotProps: {
13
+ transition: {
14
+ onExit: () => {
15
+ onClose();
16
+ model.setContextMenuFeature(undefined);
17
+ },
18
+ },
19
+ }, anchorReference: "anchorPosition", anchorPosition: {
20
+ top: contextCoord[1],
21
+ left: contextCoord[0],
22
+ }, menuItems: items }));
23
+ });
24
+ export default MenuPage;
@@ -0,0 +1,19 @@
1
+ import React from 'react';
2
+ import type { LegendItem } from '../model.ts';
3
+ export interface NonBlockCanvasDisplayModel {
4
+ error?: unknown;
5
+ regionTooLarge?: boolean;
6
+ reload: () => void;
7
+ regionCannotBeRendered: () => React.ReactElement | null;
8
+ drawn: boolean;
9
+ loading: boolean;
10
+ lastDrawnOffsetPx?: number;
11
+ statusMessage?: string;
12
+ showLegend?: boolean;
13
+ legendItems?: () => LegendItem[];
14
+ }
15
+ declare const NonBlockCanvasDisplayComponent: ({ model, children, }: {
16
+ model: NonBlockCanvasDisplayModel;
17
+ children?: React.ReactNode;
18
+ }) => import("react/jsx-runtime").JSX.Element | null;
19
+ export default NonBlockCanvasDisplayComponent;
@@ -0,0 +1,48 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from 'react';
3
+ import { LoadingEllipses } from '@jbrowse/core/ui';
4
+ import { getContainingView } from '@jbrowse/core/util';
5
+ import { makeStyles } from '@jbrowse/core/util/tss-react';
6
+ import { observer } from 'mobx-react';
7
+ import BlockErrorMessage from "./BlockErrorMessage.js";
8
+ import FloatingLegend from "./FloatingLegend.js";
9
+ const useStyles = makeStyles()({
10
+ loading: {
11
+ position: 'absolute',
12
+ top: 0,
13
+ left: 0,
14
+ right: 0,
15
+ bottom: 0,
16
+ backgroundColor: 'rgba(255, 255, 255, 0.15)',
17
+ backgroundImage: `repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(0, 0, 0, 0.05) 8px, rgba(0, 0, 0, 0.05) 16px)`,
18
+ pointerEvents: 'none',
19
+ display: 'flex',
20
+ justifyContent: 'center',
21
+ alignItems: 'center',
22
+ zIndex: 1,
23
+ },
24
+ loadingMessage: {
25
+ zIndex: 2,
26
+ pointerEvents: 'none',
27
+ },
28
+ });
29
+ const NonBlockCanvasDisplayComponent = observer(function NonBlockCanvasDisplayComponent({ model, children, }) {
30
+ const { error, regionTooLarge } = model;
31
+ return error ? (_jsx(BlockErrorMessage, { model: model })) : regionTooLarge ? (model.regionCannotBeRendered()) : (_jsx(DataDisplay, { model: model, children: children }));
32
+ });
33
+ const DataDisplay = observer(function DataDisplay({ model, children, }) {
34
+ const { drawn, loading, showLegend, legendItems } = model;
35
+ const view = getContainingView(model);
36
+ const items = legendItems?.() ?? [];
37
+ const calculatedLeft = (model.lastDrawnOffsetPx ?? 0) - view.offsetPx;
38
+ return (_jsxs("div", { "data-testid": `drawn-${drawn}`, children: [_jsx("div", { style: {
39
+ position: 'absolute',
40
+ left: calculatedLeft,
41
+ }, children: children }), showLegend && items.length > 0 ? _jsx(FloatingLegend, { items: items }) : null, calculatedLeft !== 0 || loading ? _jsx(LoadingBar, { model: model }) : null] }));
42
+ });
43
+ const LoadingBar = observer(function LoadingBar({ model, }) {
44
+ const { classes } = useStyles();
45
+ const { statusMessage } = model;
46
+ return (_jsx("div", { className: classes.loading, children: _jsx("div", { className: classes.loadingMessage, children: _jsx(LoadingEllipses, { message: statusMessage }) }) }));
47
+ });
48
+ export default NonBlockCanvasDisplayComponent;
@@ -0,0 +1,12 @@
1
+ import type { BlockModel } from '../models/serverSideRenderedBlock.ts';
2
+ import type { BlockSet } from '@jbrowse/core/util/blockTypes';
3
+ declare const RenderedBlocks: ({ model, }: {
4
+ model: {
5
+ id: string;
6
+ blockDefinitions: BlockSet;
7
+ blockState: {
8
+ get: (key: string) => BlockModel | undefined;
9
+ };
10
+ };
11
+ }) => import("react/jsx-runtime").JSX.Element[];
12
+ export default RenderedBlocks;
@@ -0,0 +1,22 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { observer } from 'mobx-react';
3
+ import { ContentBlock as ContentBlockComponent, ElidedBlock as ElidedBlockComponent, InterRegionPaddingBlock as InterRegionPaddingBlockComponent, } from "./Block.js";
4
+ import MaxHeightReached from "./MaxHeightReachedIndicator.js";
5
+ const RenderedBlocks = observer(function RenderedBlocks({ model, }) {
6
+ const { blockDefinitions, blockState } = model;
7
+ return blockDefinitions.map(block => {
8
+ const key = `${model.id}-${block.key}`;
9
+ if (block.type === 'ContentBlock') {
10
+ const state = blockState.get(block.key);
11
+ return (_jsxs(ContentBlockComponent, { block: block, children: [state?.ReactComponent ? (_jsx(state.ReactComponent, { model: state })) : null, state?.maxHeightReached ? (_jsx(MaxHeightReached, { top: state.layout.getTotalHeight() - 16 })) : null] }, key));
12
+ }
13
+ else if (block.type === 'ElidedBlock') {
14
+ return _jsx(ElidedBlockComponent, { width: block.widthPx }, key);
15
+ }
16
+ else if (block.type === 'InterRegionPaddingBlock') {
17
+ return (_jsx(InterRegionPaddingBlockComponent, { width: block.widthPx, style: { background: 'none' }, boundary: block.variant === 'boundary' }, key));
18
+ }
19
+ throw new Error(`invalid block type ${JSON.stringify(block)}`);
20
+ });
21
+ });
22
+ export default RenderedBlocks;
@@ -2,10 +2,10 @@ declare const ServerSideRenderedBlockContent: ({ model, }: {
2
2
  model: {
3
3
  error?: unknown;
4
4
  reload: () => void;
5
- message: React.ReactNode;
6
- filled?: boolean;
7
- status?: string;
5
+ message?: React.ReactNode;
6
+ statusMessage?: string;
8
7
  reactElement?: React.ReactElement;
8
+ isRenderingPending?: boolean;
9
9
  };
10
- }) => import("react/jsx-runtime").JSX.Element | undefined;
10
+ }) => import("react/jsx-runtime").JSX.Element;
11
11
  export default ServerSideRenderedBlockContent;
@@ -1,21 +1,18 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { Suspense, isValidElement, lazy } from 'react';
3
3
  import { observer } from 'mobx-react';
4
- import BlockLoadingMessage from './BlockLoadingMessage';
5
- import BlockMsg from './BlockMsg';
6
- const BlockErrorMessage = lazy(() => import('./BlockErrorMessage'));
7
- const ServerSideRenderedBlockContent = observer(function ({ model, }) {
4
+ import BlockMsg from "./BlockMsg.js";
5
+ import LoadingOverlay from "./LoadingOverlay.js";
6
+ const BlockErrorMessage = lazy(() => import("./BlockErrorMessage.js"));
7
+ const ServerSideRenderedBlockContent = observer(function ServerSideRenderedBlockContent({ model, }) {
8
8
  if (model.error) {
9
9
  return (_jsx(Suspense, { fallback: null, children: _jsx(BlockErrorMessage, { model: model }) }));
10
10
  }
11
11
  else if (model.message) {
12
12
  return isValidElement(model.message) ? (model.message) : (_jsx(BlockMsg, { message: `${model.message}`, severity: "info" }));
13
13
  }
14
- else if (!model.filled) {
15
- return _jsx(BlockLoadingMessage, { model: model });
16
- }
17
14
  else {
18
- return model.reactElement;
15
+ return (_jsx(LoadingOverlay, { statusMessage: model.statusMessage, children: model.reactElement }));
19
16
  }
20
17
  });
21
18
  export default ServerSideRenderedBlockContent;
@@ -1,9 +1,9 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { isAlive } from '@jbrowse/mobx-state-tree';
2
3
  import { Button } from '@mui/material';
3
4
  import { observer } from 'mobx-react';
4
- import { isAlive } from 'mobx-state-tree';
5
- import BlockMsg from '../components/BlockMsg';
6
- const TooLargeMessage = observer(function ({ model, }) {
5
+ import BlockMsg from "../components/BlockMsg.js";
6
+ const TooLargeMessage = observer(function TooLargeMessage({ model, }) {
7
7
  const { regionTooLargeReason } = model;
8
8
  return (_jsx(BlockMsg, { severity: "warning", action: _jsx(Button, { onClick: () => {
9
9
  if (isAlive(model)) {
@@ -4,6 +4,8 @@ type Coord = [number, number];
4
4
  declare const Tooltip: ({ model, clientMouseCoord, }: {
5
5
  model: {
6
6
  featureUnderMouse: Feature | undefined;
7
+ featureIdUnderMouse: string | undefined;
8
+ mouseoverExtraInformation: string | undefined;
7
9
  configuration: AnyConfigurationModel;
8
10
  };
9
11
  clientMouseCoord: Coord;
@@ -1,5 +1,5 @@
1
1
  import { jsx as _jsx } from "react/jsx-runtime";
2
- import { forwardRef, isValidElement } from 'react';
2
+ import { forwardRef, isValidElement, useMemo } from 'react';
3
3
  import { getConf } from '@jbrowse/core/configuration';
4
4
  import { SanitizedHTML } from '@jbrowse/core/ui';
5
5
  import BaseTooltip from '@jbrowse/core/ui/BaseTooltip';
@@ -7,13 +7,16 @@ import { observer } from 'mobx-react';
7
7
  const TooltipContents = forwardRef(function TooltipContents2({ message }, ref) {
8
8
  return (_jsx("div", { ref: ref, children: isValidElement(message) ? (message) : message ? (_jsx(SanitizedHTML, { html: String(message) })) : null }));
9
9
  });
10
- const Tooltip = observer(function ({ model, clientMouseCoord, }) {
11
- const { featureUnderMouse } = model;
10
+ const Tooltip = observer(function Tooltip({ model, clientMouseCoord, }) {
11
+ const { featureUnderMouse, featureIdUnderMouse, mouseoverExtraInformation } = model;
12
12
  const x = clientMouseCoord[0] + 15;
13
13
  const y = clientMouseCoord[1];
14
- const contents = featureUnderMouse
15
- ? getConf(model, 'mouseover', { feature: featureUnderMouse })
16
- : undefined;
17
- return featureUnderMouse && contents ? (_jsx(BaseTooltip, { clientPoint: { x, y }, children: _jsx(TooltipContents, { message: contents }) })) : null;
14
+ const contents = useMemo(() => featureUnderMouse || mouseoverExtraInformation
15
+ ? getConf(model, 'mouseover', {
16
+ feature: featureUnderMouse,
17
+ mouseoverExtraInformation,
18
+ })
19
+ : undefined, [featureUnderMouse, model, mouseoverExtraInformation]);
20
+ return featureIdUnderMouse && contents ? (_jsx(BaseTooltip, { clientPoint: { x, y }, children: _jsx(TooltipContents, { message: contents }) })) : null;
18
21
  });
19
22
  export default Tooltip;
@@ -0,0 +1 @@
1
+ export type Coord = [number, number];
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,21 @@
1
+ import type { LinearGenomeViewModel } from '../../LinearGenomeView/index.ts';
2
+ import type { FloatingLabelData, LayoutRecord } from '../types.ts';
3
+ import type { Assembly } from '@jbrowse/core/assemblyManager/assembly';
4
+ export interface FeatureLabelData {
5
+ leftPx: number;
6
+ rightPx: number;
7
+ topPx: number;
8
+ totalFeatureHeight: number;
9
+ floatingLabels: FloatingLabelData[];
10
+ featureWidth: number;
11
+ totalLayoutWidth: number;
12
+ }
13
+ export declare function deduplicateFeatureLabels(layoutFeatures: {
14
+ entries(): IterableIterator<readonly [string, LayoutRecord | undefined]>;
15
+ }, view: LinearGenomeViewModel, assembly: Assembly | undefined, bpPerPx: number): Map<string, FeatureLabelData>;
16
+ export declare function getViewportLeftEdge(offsetPx: number): number;
17
+ export declare function clampToViewport(featureLeftPx: number, featureRightPx: number, offsetPx: number): {
18
+ leftPx: number;
19
+ rightPx: number;
20
+ };
21
+ export declare function calculateFloatingLabelPosition(featureLeftPx: number, featureRightPx: number, labelWidth: number, offsetPx: number, viewportLeft: number): number;
@@ -0,0 +1,116 @@
1
+ import { clamp } from '@jbrowse/core/util';
2
+ function calculateFeaturePixelPositions(view, assembly, refName, left, right, bpPerPx) {
3
+ const canonicalRefName = assembly?.getCanonicalRefName(refName) || refName;
4
+ const leftBpPx = view.bpToPx({
5
+ refName: canonicalRefName,
6
+ coord: left,
7
+ })?.offsetPx;
8
+ const rightBpPx = view.bpToPx({
9
+ refName: canonicalRefName,
10
+ coord: right,
11
+ })?.offsetPx;
12
+ if (leftBpPx !== undefined) {
13
+ const rightEstimate = rightBpPx !== undefined ? rightBpPx : leftBpPx + (right - left) / bpPerPx;
14
+ return {
15
+ leftPx: Math.min(leftBpPx, rightEstimate),
16
+ rightPx: Math.max(leftBpPx, rightEstimate),
17
+ };
18
+ }
19
+ else if (rightBpPx !== undefined) {
20
+ const leftEstimate = rightBpPx - (right - left) / bpPerPx;
21
+ return {
22
+ leftPx: Math.min(leftEstimate, rightBpPx),
23
+ rightPx: Math.max(leftEstimate, rightBpPx),
24
+ };
25
+ }
26
+ return undefined;
27
+ }
28
+ function calculateMultiRegionPositions(view, assembly, refName, left, right) {
29
+ const canonicalRefName = assembly?.getCanonicalRefName(refName) || refName;
30
+ const visibleRegions = view.displayedRegions.filter(r => r.refName === canonicalRefName && r.start < right && r.end > left);
31
+ if (visibleRegions.length === 0) {
32
+ return undefined;
33
+ }
34
+ let minLeftPx = Infinity;
35
+ let maxRightPx = -Infinity;
36
+ for (const region of visibleRegions) {
37
+ const regionStart = Math.max(left, region.start);
38
+ const regionEnd = Math.min(right, region.end);
39
+ const startPx = view.bpToPx({
40
+ refName: canonicalRefName,
41
+ coord: regionStart,
42
+ })?.offsetPx;
43
+ const endPx = view.bpToPx({
44
+ refName: canonicalRefName,
45
+ coord: regionEnd,
46
+ })?.offsetPx;
47
+ if (startPx !== undefined && endPx !== undefined) {
48
+ minLeftPx = Math.min(minLeftPx, startPx, endPx);
49
+ maxRightPx = Math.max(maxRightPx, startPx, endPx);
50
+ }
51
+ }
52
+ if (minLeftPx === Infinity || maxRightPx === -Infinity) {
53
+ return undefined;
54
+ }
55
+ return { leftPx: minLeftPx, rightPx: maxRightPx };
56
+ }
57
+ function getFeaturePositions(view, assembly, refName, left, right, bpPerPx) {
58
+ return (calculateFeaturePixelPositions(view, assembly, refName, left, right, bpPerPx) || calculateMultiRegionPositions(view, assembly, refName, left, right));
59
+ }
60
+ export function deduplicateFeatureLabels(layoutFeatures, view, assembly, bpPerPx) {
61
+ const featureLabels = new Map();
62
+ for (const [key, val] of layoutFeatures.entries()) {
63
+ if (!val?.[4]) {
64
+ continue;
65
+ }
66
+ const [, topPx, , , feature] = val;
67
+ const { refName, floatingLabels, totalFeatureHeight, actualTopPx, featureWidth, totalLayoutWidth, featureStartBp, featureEndBp, } = feature;
68
+ const effectiveTopPx = actualTopPx ?? topPx;
69
+ if (!floatingLabels ||
70
+ floatingLabels.length === 0 ||
71
+ !totalFeatureHeight ||
72
+ featureWidth === undefined ||
73
+ totalLayoutWidth === undefined ||
74
+ featureStartBp === undefined ||
75
+ featureEndBp === undefined) {
76
+ continue;
77
+ }
78
+ const positions = getFeaturePositions(view, assembly, refName, featureStartBp, featureEndBp, bpPerPx);
79
+ if (!positions) {
80
+ continue;
81
+ }
82
+ const existing = featureLabels.get(key);
83
+ if (!existing || positions.leftPx < existing.leftPx) {
84
+ featureLabels.set(key, {
85
+ leftPx: positions.leftPx,
86
+ rightPx: positions.rightPx,
87
+ topPx: effectiveTopPx,
88
+ totalFeatureHeight,
89
+ floatingLabels,
90
+ featureWidth,
91
+ totalLayoutWidth,
92
+ });
93
+ }
94
+ }
95
+ return featureLabels;
96
+ }
97
+ export function getViewportLeftEdge(offsetPx) {
98
+ return Math.max(0, offsetPx);
99
+ }
100
+ export function clampToViewport(featureLeftPx, featureRightPx, offsetPx) {
101
+ const viewportLeft = getViewportLeftEdge(offsetPx);
102
+ return {
103
+ leftPx: Math.max(featureLeftPx, viewportLeft),
104
+ rightPx: Math.max(featureRightPx, viewportLeft),
105
+ };
106
+ }
107
+ export function calculateFloatingLabelPosition(featureLeftPx, featureRightPx, labelWidth, offsetPx, viewportLeft) {
108
+ const featureWidth = featureRightPx - featureLeftPx;
109
+ if (labelWidth > featureWidth) {
110
+ return featureLeftPx - offsetPx;
111
+ }
112
+ const leftPx = Math.max(featureLeftPx, viewportLeft);
113
+ const naturalX = leftPx - offsetPx;
114
+ const maxX = featureRightPx - offsetPx - labelWidth;
115
+ return clamp(naturalX, 0, maxX);
116
+ }
@@ -1,8 +1,17 @@
1
- export { default as baseLinearDisplayConfigSchema } from './models/configSchema';
2
- export type { BlockModel } from './models/serverSideRenderedBlock';
3
- export { BaseLinearDisplay } from './models/BaseLinearDisplayModel';
4
- export type { BaseLinearDisplayModel, BaseLinearDisplayStateModel, ExportSvgDisplayOptions, } from './models/BaseLinearDisplayModel';
5
- export { BlockMsg, Tooltip, default as BaseLinearDisplayComponent, } from './components/BaseLinearDisplay';
6
- export { default as TrackHeightMixin } from './models/TrackHeightMixin';
7
- export { default as FeatureDensityMixin } from './models/FeatureDensityMixin';
8
- export { default as TooLargeMessage } from './components/TooLargeMessage';
1
+ export { default as baseLinearDisplayConfigSchema } from './models/configSchema.ts';
2
+ export type { BlockModel } from './models/serverSideRenderedBlock.ts';
3
+ export { BaseLinearDisplay } from './model.ts';
4
+ export type { BaseLinearDisplayModel, BaseLinearDisplayStateModel, LegendItem, } from './model.ts';
5
+ export type { ExportSvgDisplayOptions, FloatingLabelData, LayoutFeatureMetadata, } from './types.ts';
6
+ export { createSubfeatureLabelMetadata } from './types.ts';
7
+ export { BlockMsg, Tooltip, default as BaseLinearDisplayComponent, } from './components/BaseLinearDisplay.tsx';
8
+ export { default as TrackHeightMixin } from './models/TrackHeightMixin.tsx';
9
+ export { default as FeatureDensityMixin } from './models/FeatureDensityMixin.tsx';
10
+ export { type NonBlockCanvasDisplayMixinType, default as NonBlockCanvasDisplayMixin, } from './models/NonBlockCanvasDisplayMixin.tsx';
11
+ export { drawCanvasImageData } from './util.ts';
12
+ export { default as TooLargeMessage } from './components/TooLargeMessage.tsx';
13
+ export { default as FloatingLegend } from './components/FloatingLegend.tsx';
14
+ export { default as NonBlockCanvasDisplayComponent } from './components/NonBlockCanvasDisplayComponent.tsx';
15
+ export type { NonBlockCanvasDisplayModel } from './components/NonBlockCanvasDisplayComponent.tsx';
16
+ export { default as SVGLegend } from './SVGLegend.tsx';
17
+ export { calculateSvgLegendWidth } from './calculateSvgLegendWidth.ts';
@@ -1,6 +1,13 @@
1
- export { default as baseLinearDisplayConfigSchema } from './models/configSchema';
2
- export { BaseLinearDisplay } from './models/BaseLinearDisplayModel';
3
- export { BlockMsg, Tooltip, default as BaseLinearDisplayComponent, } from './components/BaseLinearDisplay';
4
- export { default as TrackHeightMixin } from './models/TrackHeightMixin';
5
- export { default as FeatureDensityMixin } from './models/FeatureDensityMixin';
6
- export { default as TooLargeMessage } from './components/TooLargeMessage';
1
+ export { default as baseLinearDisplayConfigSchema } from "./models/configSchema.js";
2
+ export { BaseLinearDisplay } from "./model.js";
3
+ export { createSubfeatureLabelMetadata } from "./types.js";
4
+ export { BlockMsg, Tooltip, default as BaseLinearDisplayComponent, } from "./components/BaseLinearDisplay.js";
5
+ export { default as TrackHeightMixin } from "./models/TrackHeightMixin.js";
6
+ export { default as FeatureDensityMixin } from "./models/FeatureDensityMixin.js";
7
+ export { default as NonBlockCanvasDisplayMixin, } from "./models/NonBlockCanvasDisplayMixin.js";
8
+ export { drawCanvasImageData } from "./util.js";
9
+ export { default as TooLargeMessage } from "./components/TooLargeMessage.js";
10
+ export { default as FloatingLegend } from "./components/FloatingLegend.js";
11
+ export { default as NonBlockCanvasDisplayComponent } from "./components/NonBlockCanvasDisplayComponent.js";
12
+ export { default as SVGLegend } from "./SVGLegend.js";
13
+ export { calculateSvgLegendWidth } from "./calculateSvgLegendWidth.js";