@jbrowse/plugin-linear-genome-view 2.5.0 → 2.6.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 (459) hide show
  1. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +1 -1
  2. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js +0 -1
  3. package/dist/BaseLinearDisplay/components/Block.d.ts +3 -3
  4. package/dist/BaseLinearDisplay/components/Block.js +0 -1
  5. package/dist/BaseLinearDisplay/components/BlockMsg.d.ts +1 -1
  6. package/dist/BaseLinearDisplay/components/BlockMsg.js +0 -1
  7. package/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +3 -2
  8. package/dist/BaseLinearDisplay/components/LinearBlocks.js +0 -1
  9. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +0 -1
  10. package/dist/BaseLinearDisplay/components/TooLargeMessage.d.ts +2 -1
  11. package/dist/BaseLinearDisplay/components/TooLargeMessage.js +0 -1
  12. package/dist/BaseLinearDisplay/components/Tooltip.d.ts +2 -1
  13. package/dist/BaseLinearDisplay/components/Tooltip.js +0 -1
  14. package/dist/BaseLinearDisplay/index.d.ts +5 -2
  15. package/dist/BaseLinearDisplay/index.js +7 -2
  16. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +62 -142
  17. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js +34 -356
  18. package/dist/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +99 -0
  19. package/dist/BaseLinearDisplay/models/FeatureDensityMixin.js +189 -0
  20. package/dist/BaseLinearDisplay/models/TrackHeightMixin.d.ts +30 -0
  21. package/dist/BaseLinearDisplay/models/TrackHeightMixin.js +55 -0
  22. package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +2 -0
  23. package/dist/BaseLinearDisplay/models/autorunFeatureDensityStats.js +41 -0
  24. package/dist/BaseLinearDisplay/models/configSchema.js +1 -1
  25. package/dist/BaseLinearDisplay/models/renderSvg.d.ts +8 -0
  26. package/dist/BaseLinearDisplay/models/renderSvg.js +82 -0
  27. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js +20 -17
  28. package/dist/BaseLinearDisplay/models/util.js +0 -1
  29. package/dist/BasicTrack/configSchema.js +1 -1
  30. package/dist/BasicTrack/index.js +0 -1
  31. package/dist/FeatureTrack/configSchema.d.ts +1 -3
  32. package/dist/FeatureTrack/configSchema.js +1 -1
  33. package/dist/FeatureTrack/index.js +0 -1
  34. package/dist/LaunchLinearGenomeView/index.js +0 -1
  35. package/dist/LinearBareDisplay/configSchema.d.ts +1 -0
  36. package/dist/LinearBareDisplay/configSchema.js +1 -1
  37. package/dist/LinearBareDisplay/index.js +0 -1
  38. package/dist/LinearBareDisplay/model.d.ts +52 -39
  39. package/dist/LinearBareDisplay/model.js +1 -1
  40. package/dist/LinearBasicDisplay/components/SetMaxHeight.d.ts +2 -1
  41. package/dist/LinearBasicDisplay/components/SetMaxHeight.js +0 -1
  42. package/dist/LinearBasicDisplay/configSchema.d.ts +1 -0
  43. package/dist/LinearBasicDisplay/configSchema.js +1 -1
  44. package/dist/LinearBasicDisplay/index.js +0 -1
  45. package/dist/LinearBasicDisplay/model.d.ts +67 -66
  46. package/dist/LinearBasicDisplay/model.js +1 -1
  47. package/dist/LinearGenomeView/components/CenterLine.d.ts +2 -1
  48. package/dist/LinearGenomeView/components/CenterLine.js +0 -1
  49. package/dist/LinearGenomeView/components/Cytobands.d.ts +2 -1
  50. package/dist/LinearGenomeView/components/Cytobands.js +0 -1
  51. package/dist/LinearGenomeView/components/ExportSvgDialog.d.ts +2 -1
  52. package/dist/LinearGenomeView/components/ExportSvgDialog.js +0 -1
  53. package/dist/LinearGenomeView/components/GetSequenceDialog.d.ts +2 -1
  54. package/dist/LinearGenomeView/components/GetSequenceDialog.js +0 -1
  55. package/dist/LinearGenomeView/components/Gridlines.d.ts +2 -1
  56. package/dist/LinearGenomeView/components/Gridlines.js +0 -1
  57. package/dist/LinearGenomeView/components/Header.d.ts +2 -1
  58. package/dist/LinearGenomeView/components/Header.js +0 -1
  59. package/dist/LinearGenomeView/components/ImportForm.d.ts +2 -1
  60. package/dist/LinearGenomeView/components/ImportForm.js +0 -1
  61. package/dist/LinearGenomeView/components/LinearGenomeView.d.ts +2 -1
  62. package/dist/LinearGenomeView/components/LinearGenomeView.js +28 -5
  63. package/dist/LinearGenomeView/components/MiniControls.d.ts +3 -2
  64. package/dist/LinearGenomeView/components/MiniControls.js +20 -41
  65. package/dist/LinearGenomeView/components/OverviewRubberband.d.ts +1 -1
  66. package/dist/LinearGenomeView/components/OverviewRubberband.js +0 -1
  67. package/dist/LinearGenomeView/components/OverviewScalebar.d.ts +2 -2
  68. package/dist/LinearGenomeView/components/OverviewScalebar.js +10 -5
  69. package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.d.ts +10 -0
  70. package/dist/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +21 -0
  71. package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.d.ts +5 -0
  72. package/dist/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +51 -0
  73. package/dist/LinearGenomeView/components/{HelpDialog.d.ts → RefNameAutocomplete/HelpDialog.d.ts} +2 -1
  74. package/dist/LinearGenomeView/components/{HelpDialog.js → RefNameAutocomplete/HelpDialog.js} +0 -1
  75. package/dist/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +18 -0
  76. package/dist/LinearGenomeView/components/RefNameAutocomplete/index.js +110 -0
  77. package/dist/LinearGenomeView/components/RefNameAutocomplete/util.d.ts +12 -0
  78. package/dist/LinearGenomeView/components/RefNameAutocomplete/util.js +58 -0
  79. package/dist/LinearGenomeView/components/Rubberband.d.ts +1 -1
  80. package/dist/LinearGenomeView/components/Rubberband.js +0 -1
  81. package/dist/LinearGenomeView/components/RubberbandSpan.d.ts +2 -1
  82. package/dist/LinearGenomeView/components/RubberbandSpan.js +0 -1
  83. package/dist/LinearGenomeView/components/Scalebar.js +0 -1
  84. package/dist/LinearGenomeView/components/SearchBox.d.ts +2 -1
  85. package/dist/LinearGenomeView/components/SearchBox.js +0 -1
  86. package/dist/LinearGenomeView/components/SearchResultsDialog.d.ts +2 -1
  87. package/dist/LinearGenomeView/components/SearchResultsDialog.js +0 -1
  88. package/dist/LinearGenomeView/components/SearchResultsTable.d.ts +2 -1
  89. package/dist/LinearGenomeView/components/SearchResultsTable.js +0 -1
  90. package/dist/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -1
  91. package/dist/LinearGenomeView/components/SequenceSearchDialog.js +0 -1
  92. package/dist/LinearGenomeView/components/TrackContainer.d.ts +3 -3
  93. package/dist/LinearGenomeView/components/TrackContainer.js +12 -69
  94. package/dist/LinearGenomeView/components/TrackLabel.js +7 -12
  95. package/dist/LinearGenomeView/components/TrackLabelContainer.d.ts +9 -0
  96. package/dist/LinearGenomeView/components/TrackLabelContainer.js +31 -0
  97. package/dist/LinearGenomeView/components/TrackRenderingContainer.d.ts +10 -0
  98. package/dist/LinearGenomeView/components/TrackRenderingContainer.js +73 -0
  99. package/dist/LinearGenomeView/components/TracksContainer.d.ts +1 -1
  100. package/dist/LinearGenomeView/components/TracksContainer.js +2 -3
  101. package/dist/LinearGenomeView/components/VerticalGuide.d.ts +2 -1
  102. package/dist/LinearGenomeView/components/VerticalGuide.js +0 -1
  103. package/dist/LinearGenomeView/components/ZoomControls.d.ts +2 -1
  104. package/dist/LinearGenomeView/components/ZoomControls.js +0 -1
  105. package/dist/LinearGenomeView/components/hooks.js +0 -1
  106. package/dist/LinearGenomeView/components/util.js +0 -1
  107. package/dist/LinearGenomeView/index.js +0 -1
  108. package/dist/LinearGenomeView/model.d.ts +13 -12
  109. package/dist/LinearGenomeView/model.js +25 -26
  110. package/dist/LinearGenomeView/svgcomponents/SVGBackground.d.ts +2 -1
  111. package/dist/LinearGenomeView/svgcomponents/SVGBackground.js +0 -1
  112. package/dist/LinearGenomeView/svgcomponents/SVGHeader.d.ts +3 -4
  113. package/dist/LinearGenomeView/svgcomponents/SVGHeader.js +7 -3
  114. package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +1 -2
  115. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +2 -1
  116. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.js +0 -1
  117. package/dist/LinearGenomeView/svgcomponents/SVGRuler.d.ts +2 -1
  118. package/dist/LinearGenomeView/svgcomponents/SVGRuler.js +0 -1
  119. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +2 -1
  120. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.js +0 -1
  121. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +2 -1
  122. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.js +0 -1
  123. package/dist/LinearGenomeView/svgcomponents/SVGTracks.d.ts +2 -1
  124. package/dist/LinearGenomeView/svgcomponents/SVGTracks.js +0 -1
  125. package/dist/LinearGenomeView/util.d.ts +2 -2
  126. package/dist/LinearGenomeView/util.js +0 -1
  127. package/dist/index.d.ts +160 -134
  128. package/dist/index.js +6 -4
  129. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.d.ts +1 -1
  130. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js +0 -1
  131. package/esm/BaseLinearDisplay/components/Block.d.ts +3 -3
  132. package/esm/BaseLinearDisplay/components/Block.js +0 -1
  133. package/esm/BaseLinearDisplay/components/BlockMsg.d.ts +1 -1
  134. package/esm/BaseLinearDisplay/components/BlockMsg.js +0 -1
  135. package/esm/BaseLinearDisplay/components/LinearBlocks.d.ts +3 -2
  136. package/esm/BaseLinearDisplay/components/LinearBlocks.js +0 -1
  137. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js +0 -1
  138. package/esm/BaseLinearDisplay/components/TooLargeMessage.d.ts +2 -1
  139. package/esm/BaseLinearDisplay/components/TooLargeMessage.js +0 -1
  140. package/esm/BaseLinearDisplay/components/Tooltip.d.ts +2 -1
  141. package/esm/BaseLinearDisplay/components/Tooltip.js +0 -1
  142. package/esm/BaseLinearDisplay/index.d.ts +5 -2
  143. package/esm/BaseLinearDisplay/index.js +3 -1
  144. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.d.ts +62 -142
  145. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js +36 -335
  146. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.d.ts +99 -0
  147. package/esm/BaseLinearDisplay/models/FeatureDensityMixin.js +183 -0
  148. package/esm/BaseLinearDisplay/models/TrackHeightMixin.d.ts +30 -0
  149. package/esm/BaseLinearDisplay/models/TrackHeightMixin.js +52 -0
  150. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.d.ts +2 -0
  151. package/esm/BaseLinearDisplay/models/autorunFeatureDensityStats.js +38 -0
  152. package/esm/BaseLinearDisplay/models/configSchema.js +1 -1
  153. package/esm/BaseLinearDisplay/models/renderSvg.d.ts +8 -0
  154. package/esm/BaseLinearDisplay/models/renderSvg.js +53 -0
  155. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js +20 -17
  156. package/esm/BaseLinearDisplay/models/util.js +0 -1
  157. package/esm/BasicTrack/configSchema.js +1 -1
  158. package/esm/BasicTrack/index.js +0 -1
  159. package/esm/FeatureTrack/configSchema.d.ts +1 -3
  160. package/esm/FeatureTrack/configSchema.js +1 -1
  161. package/esm/FeatureTrack/index.js +0 -1
  162. package/esm/LaunchLinearGenomeView/index.js +0 -1
  163. package/esm/LinearBareDisplay/configSchema.d.ts +1 -0
  164. package/esm/LinearBareDisplay/configSchema.js +1 -1
  165. package/esm/LinearBareDisplay/index.js +0 -1
  166. package/esm/LinearBareDisplay/model.d.ts +52 -39
  167. package/esm/LinearBareDisplay/model.js +1 -1
  168. package/esm/LinearBasicDisplay/components/SetMaxHeight.d.ts +2 -1
  169. package/esm/LinearBasicDisplay/components/SetMaxHeight.js +0 -1
  170. package/esm/LinearBasicDisplay/configSchema.d.ts +1 -0
  171. package/esm/LinearBasicDisplay/configSchema.js +1 -1
  172. package/esm/LinearBasicDisplay/index.js +0 -1
  173. package/esm/LinearBasicDisplay/model.d.ts +67 -66
  174. package/esm/LinearBasicDisplay/model.js +1 -1
  175. package/esm/LinearGenomeView/components/CenterLine.d.ts +2 -1
  176. package/esm/LinearGenomeView/components/CenterLine.js +0 -1
  177. package/esm/LinearGenomeView/components/Cytobands.d.ts +2 -1
  178. package/esm/LinearGenomeView/components/Cytobands.js +0 -1
  179. package/esm/LinearGenomeView/components/ExportSvgDialog.d.ts +2 -1
  180. package/esm/LinearGenomeView/components/ExportSvgDialog.js +0 -1
  181. package/esm/LinearGenomeView/components/GetSequenceDialog.d.ts +2 -1
  182. package/esm/LinearGenomeView/components/GetSequenceDialog.js +0 -1
  183. package/esm/LinearGenomeView/components/Gridlines.d.ts +2 -1
  184. package/esm/LinearGenomeView/components/Gridlines.js +0 -1
  185. package/esm/LinearGenomeView/components/Header.d.ts +2 -1
  186. package/esm/LinearGenomeView/components/Header.js +0 -1
  187. package/esm/LinearGenomeView/components/ImportForm.d.ts +2 -1
  188. package/esm/LinearGenomeView/components/ImportForm.js +0 -1
  189. package/esm/LinearGenomeView/components/LinearGenomeView.d.ts +2 -1
  190. package/esm/LinearGenomeView/components/LinearGenomeView.js +4 -4
  191. package/esm/LinearGenomeView/components/MiniControls.d.ts +3 -2
  192. package/esm/LinearGenomeView/components/MiniControls.js +20 -18
  193. package/esm/LinearGenomeView/components/OverviewRubberband.d.ts +1 -1
  194. package/esm/LinearGenomeView/components/OverviewRubberband.js +0 -1
  195. package/esm/LinearGenomeView/components/OverviewScalebar.d.ts +2 -2
  196. package/esm/LinearGenomeView/components/OverviewScalebar.js +10 -5
  197. package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.d.ts +10 -0
  198. package/esm/LinearGenomeView/components/RefNameAutocomplete/AutocompleteTextField.js +15 -0
  199. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.d.ts +5 -0
  200. package/esm/LinearGenomeView/components/RefNameAutocomplete/EndAdornment.js +22 -0
  201. package/esm/LinearGenomeView/components/{HelpDialog.d.ts → RefNameAutocomplete/HelpDialog.d.ts} +2 -1
  202. package/esm/LinearGenomeView/components/{HelpDialog.js → RefNameAutocomplete/HelpDialog.js} +0 -1
  203. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.d.ts +18 -0
  204. package/esm/LinearGenomeView/components/RefNameAutocomplete/index.js +82 -0
  205. package/esm/LinearGenomeView/components/RefNameAutocomplete/util.d.ts +12 -0
  206. package/esm/LinearGenomeView/components/RefNameAutocomplete/util.js +49 -0
  207. package/esm/LinearGenomeView/components/Rubberband.d.ts +1 -1
  208. package/esm/LinearGenomeView/components/Rubberband.js +0 -1
  209. package/esm/LinearGenomeView/components/RubberbandSpan.d.ts +2 -1
  210. package/esm/LinearGenomeView/components/RubberbandSpan.js +0 -1
  211. package/esm/LinearGenomeView/components/Scalebar.js +0 -1
  212. package/esm/LinearGenomeView/components/SearchBox.d.ts +2 -1
  213. package/esm/LinearGenomeView/components/SearchBox.js +0 -1
  214. package/esm/LinearGenomeView/components/SearchResultsDialog.d.ts +2 -1
  215. package/esm/LinearGenomeView/components/SearchResultsDialog.js +0 -1
  216. package/esm/LinearGenomeView/components/SearchResultsTable.d.ts +2 -1
  217. package/esm/LinearGenomeView/components/SearchResultsTable.js +0 -1
  218. package/esm/LinearGenomeView/components/SequenceSearchDialog.d.ts +2 -1
  219. package/esm/LinearGenomeView/components/SequenceSearchDialog.js +0 -1
  220. package/esm/LinearGenomeView/components/TrackContainer.d.ts +3 -3
  221. package/esm/LinearGenomeView/components/TrackContainer.js +13 -70
  222. package/esm/LinearGenomeView/components/TrackLabel.js +7 -12
  223. package/esm/LinearGenomeView/components/TrackLabelContainer.d.ts +9 -0
  224. package/esm/LinearGenomeView/components/TrackLabelContainer.js +26 -0
  225. package/esm/LinearGenomeView/components/TrackRenderingContainer.d.ts +10 -0
  226. package/esm/LinearGenomeView/components/TrackRenderingContainer.js +48 -0
  227. package/esm/LinearGenomeView/components/TracksContainer.d.ts +1 -1
  228. package/esm/LinearGenomeView/components/TracksContainer.js +2 -3
  229. package/esm/LinearGenomeView/components/VerticalGuide.d.ts +2 -1
  230. package/esm/LinearGenomeView/components/VerticalGuide.js +0 -1
  231. package/esm/LinearGenomeView/components/ZoomControls.d.ts +2 -1
  232. package/esm/LinearGenomeView/components/ZoomControls.js +0 -1
  233. package/esm/LinearGenomeView/components/hooks.js +0 -1
  234. package/esm/LinearGenomeView/components/util.js +0 -1
  235. package/esm/LinearGenomeView/index.js +0 -1
  236. package/esm/LinearGenomeView/model.d.ts +13 -12
  237. package/esm/LinearGenomeView/model.js +21 -22
  238. package/esm/LinearGenomeView/svgcomponents/SVGBackground.d.ts +2 -1
  239. package/esm/LinearGenomeView/svgcomponents/SVGBackground.js +0 -1
  240. package/esm/LinearGenomeView/svgcomponents/SVGHeader.d.ts +3 -4
  241. package/esm/LinearGenomeView/svgcomponents/SVGHeader.js +7 -3
  242. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js +1 -2
  243. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.d.ts +2 -1
  244. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.js +0 -1
  245. package/esm/LinearGenomeView/svgcomponents/SVGRuler.d.ts +2 -1
  246. package/esm/LinearGenomeView/svgcomponents/SVGRuler.js +0 -1
  247. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.d.ts +2 -1
  248. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.js +0 -1
  249. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.d.ts +2 -1
  250. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.js +0 -1
  251. package/esm/LinearGenomeView/svgcomponents/SVGTracks.d.ts +2 -1
  252. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js +0 -1
  253. package/esm/LinearGenomeView/util.d.ts +2 -2
  254. package/esm/LinearGenomeView/util.js +0 -1
  255. package/esm/index.d.ts +160 -134
  256. package/esm/index.js +1 -2
  257. package/package.json +3 -4
  258. package/dist/BaseLinearDisplay/components/BaseLinearDisplay.js.map +0 -1
  259. package/dist/BaseLinearDisplay/components/Block.js.map +0 -1
  260. package/dist/BaseLinearDisplay/components/BlockMsg.js.map +0 -1
  261. package/dist/BaseLinearDisplay/components/LinearBlocks.js.map +0 -1
  262. package/dist/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +0 -1
  263. package/dist/BaseLinearDisplay/components/TooLargeMessage.js.map +0 -1
  264. package/dist/BaseLinearDisplay/components/Tooltip.js.map +0 -1
  265. package/dist/BaseLinearDisplay/index.js.map +0 -1
  266. package/dist/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +0 -1
  267. package/dist/BaseLinearDisplay/models/configSchema.js.map +0 -1
  268. package/dist/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +0 -1
  269. package/dist/BaseLinearDisplay/models/util.js.map +0 -1
  270. package/dist/BasicTrack/configSchema.js.map +0 -1
  271. package/dist/BasicTrack/index.js.map +0 -1
  272. package/dist/FeatureTrack/configSchema.js.map +0 -1
  273. package/dist/FeatureTrack/index.js.map +0 -1
  274. package/dist/LaunchLinearGenomeView/index.js.map +0 -1
  275. package/dist/LinearBareDisplay/configSchema.js.map +0 -1
  276. package/dist/LinearBareDisplay/index.js.map +0 -1
  277. package/dist/LinearBareDisplay/model.js.map +0 -1
  278. package/dist/LinearBasicDisplay/components/SetMaxHeight.js.map +0 -1
  279. package/dist/LinearBasicDisplay/configSchema.js.map +0 -1
  280. package/dist/LinearBasicDisplay/index.js.map +0 -1
  281. package/dist/LinearBasicDisplay/model.js.map +0 -1
  282. package/dist/LinearGenomeView/components/CenterLine.js.map +0 -1
  283. package/dist/LinearGenomeView/components/Cytobands.js.map +0 -1
  284. package/dist/LinearGenomeView/components/ExportSvgDialog.js.map +0 -1
  285. package/dist/LinearGenomeView/components/GetSequenceDialog.js.map +0 -1
  286. package/dist/LinearGenomeView/components/Gridlines.js.map +0 -1
  287. package/dist/LinearGenomeView/components/Header.js.map +0 -1
  288. package/dist/LinearGenomeView/components/HelpDialog.js.map +0 -1
  289. package/dist/LinearGenomeView/components/ImportForm.js.map +0 -1
  290. package/dist/LinearGenomeView/components/LinearGenomeView.js.map +0 -1
  291. package/dist/LinearGenomeView/components/MiniControls.js.map +0 -1
  292. package/dist/LinearGenomeView/components/OverviewRubberband.js.map +0 -1
  293. package/dist/LinearGenomeView/components/OverviewScalebar.js.map +0 -1
  294. package/dist/LinearGenomeView/components/RefNameAutocomplete.d.ts +0 -23
  295. package/dist/LinearGenomeView/components/RefNameAutocomplete.js +0 -189
  296. package/dist/LinearGenomeView/components/RefNameAutocomplete.js.map +0 -1
  297. package/dist/LinearGenomeView/components/Rubberband.js.map +0 -1
  298. package/dist/LinearGenomeView/components/RubberbandSpan.js.map +0 -1
  299. package/dist/LinearGenomeView/components/Scalebar.js.map +0 -1
  300. package/dist/LinearGenomeView/components/SearchBox.js.map +0 -1
  301. package/dist/LinearGenomeView/components/SearchResultsDialog.js.map +0 -1
  302. package/dist/LinearGenomeView/components/SearchResultsTable.js.map +0 -1
  303. package/dist/LinearGenomeView/components/SequenceSearchDialog.js.map +0 -1
  304. package/dist/LinearGenomeView/components/TrackContainer.js.map +0 -1
  305. package/dist/LinearGenomeView/components/TrackLabel.js.map +0 -1
  306. package/dist/LinearGenomeView/components/TracksContainer.js.map +0 -1
  307. package/dist/LinearGenomeView/components/VerticalGuide.js.map +0 -1
  308. package/dist/LinearGenomeView/components/ZoomControls.js.map +0 -1
  309. package/dist/LinearGenomeView/components/hooks.js.map +0 -1
  310. package/dist/LinearGenomeView/components/util.js.map +0 -1
  311. package/dist/LinearGenomeView/index.js.map +0 -1
  312. package/dist/LinearGenomeView/model.js.map +0 -1
  313. package/dist/LinearGenomeView/svgcomponents/SVGBackground.js.map +0 -1
  314. package/dist/LinearGenomeView/svgcomponents/SVGHeader.js.map +0 -1
  315. package/dist/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js.map +0 -1
  316. package/dist/LinearGenomeView/svgcomponents/SVGRegionSeparators.js.map +0 -1
  317. package/dist/LinearGenomeView/svgcomponents/SVGRuler.js.map +0 -1
  318. package/dist/LinearGenomeView/svgcomponents/SVGScalebar.js.map +0 -1
  319. package/dist/LinearGenomeView/svgcomponents/SVGTrackLabel.js.map +0 -1
  320. package/dist/LinearGenomeView/svgcomponents/SVGTracks.js.map +0 -1
  321. package/dist/LinearGenomeView/util.js.map +0 -1
  322. package/dist/index.js.map +0 -1
  323. package/esm/BaseLinearDisplay/components/BaseLinearDisplay.js.map +0 -1
  324. package/esm/BaseLinearDisplay/components/Block.js.map +0 -1
  325. package/esm/BaseLinearDisplay/components/BlockMsg.js.map +0 -1
  326. package/esm/BaseLinearDisplay/components/LinearBlocks.js.map +0 -1
  327. package/esm/BaseLinearDisplay/components/ServerSideRenderedBlockContent.js.map +0 -1
  328. package/esm/BaseLinearDisplay/components/TooLargeMessage.js.map +0 -1
  329. package/esm/BaseLinearDisplay/components/Tooltip.js.map +0 -1
  330. package/esm/BaseLinearDisplay/index.js.map +0 -1
  331. package/esm/BaseLinearDisplay/models/BaseLinearDisplayModel.js.map +0 -1
  332. package/esm/BaseLinearDisplay/models/configSchema.js.map +0 -1
  333. package/esm/BaseLinearDisplay/models/serverSideRenderedBlock.js.map +0 -1
  334. package/esm/BaseLinearDisplay/models/util.js.map +0 -1
  335. package/esm/BasicTrack/configSchema.js.map +0 -1
  336. package/esm/BasicTrack/index.js.map +0 -1
  337. package/esm/FeatureTrack/configSchema.js.map +0 -1
  338. package/esm/FeatureTrack/index.js.map +0 -1
  339. package/esm/LaunchLinearGenomeView/index.js.map +0 -1
  340. package/esm/LinearBareDisplay/configSchema.js.map +0 -1
  341. package/esm/LinearBareDisplay/index.js.map +0 -1
  342. package/esm/LinearBareDisplay/model.js.map +0 -1
  343. package/esm/LinearBasicDisplay/components/SetMaxHeight.js.map +0 -1
  344. package/esm/LinearBasicDisplay/configSchema.js.map +0 -1
  345. package/esm/LinearBasicDisplay/index.js.map +0 -1
  346. package/esm/LinearBasicDisplay/model.js.map +0 -1
  347. package/esm/LinearGenomeView/components/CenterLine.js.map +0 -1
  348. package/esm/LinearGenomeView/components/Cytobands.js.map +0 -1
  349. package/esm/LinearGenomeView/components/ExportSvgDialog.js.map +0 -1
  350. package/esm/LinearGenomeView/components/GetSequenceDialog.js.map +0 -1
  351. package/esm/LinearGenomeView/components/Gridlines.js.map +0 -1
  352. package/esm/LinearGenomeView/components/Header.js.map +0 -1
  353. package/esm/LinearGenomeView/components/HelpDialog.js.map +0 -1
  354. package/esm/LinearGenomeView/components/ImportForm.js.map +0 -1
  355. package/esm/LinearGenomeView/components/LinearGenomeView.js.map +0 -1
  356. package/esm/LinearGenomeView/components/MiniControls.js.map +0 -1
  357. package/esm/LinearGenomeView/components/OverviewRubberband.js.map +0 -1
  358. package/esm/LinearGenomeView/components/OverviewScalebar.js.map +0 -1
  359. package/esm/LinearGenomeView/components/RefNameAutocomplete.d.ts +0 -23
  360. package/esm/LinearGenomeView/components/RefNameAutocomplete.js +0 -161
  361. package/esm/LinearGenomeView/components/RefNameAutocomplete.js.map +0 -1
  362. package/esm/LinearGenomeView/components/Rubberband.js.map +0 -1
  363. package/esm/LinearGenomeView/components/RubberbandSpan.js.map +0 -1
  364. package/esm/LinearGenomeView/components/Scalebar.js.map +0 -1
  365. package/esm/LinearGenomeView/components/SearchBox.js.map +0 -1
  366. package/esm/LinearGenomeView/components/SearchResultsDialog.js.map +0 -1
  367. package/esm/LinearGenomeView/components/SearchResultsTable.js.map +0 -1
  368. package/esm/LinearGenomeView/components/SequenceSearchDialog.js.map +0 -1
  369. package/esm/LinearGenomeView/components/TrackContainer.js.map +0 -1
  370. package/esm/LinearGenomeView/components/TrackLabel.js.map +0 -1
  371. package/esm/LinearGenomeView/components/TracksContainer.js.map +0 -1
  372. package/esm/LinearGenomeView/components/VerticalGuide.js.map +0 -1
  373. package/esm/LinearGenomeView/components/ZoomControls.js.map +0 -1
  374. package/esm/LinearGenomeView/components/hooks.js.map +0 -1
  375. package/esm/LinearGenomeView/components/util.js.map +0 -1
  376. package/esm/LinearGenomeView/index.js.map +0 -1
  377. package/esm/LinearGenomeView/model.js.map +0 -1
  378. package/esm/LinearGenomeView/svgcomponents/SVGBackground.js.map +0 -1
  379. package/esm/LinearGenomeView/svgcomponents/SVGHeader.js.map +0 -1
  380. package/esm/LinearGenomeView/svgcomponents/SVGLinearGenomeView.js.map +0 -1
  381. package/esm/LinearGenomeView/svgcomponents/SVGRegionSeparators.js.map +0 -1
  382. package/esm/LinearGenomeView/svgcomponents/SVGRuler.js.map +0 -1
  383. package/esm/LinearGenomeView/svgcomponents/SVGScalebar.js.map +0 -1
  384. package/esm/LinearGenomeView/svgcomponents/SVGTrackLabel.js.map +0 -1
  385. package/esm/LinearGenomeView/svgcomponents/SVGTracks.js.map +0 -1
  386. package/esm/LinearGenomeView/util.js.map +0 -1
  387. package/esm/index.js.map +0 -1
  388. package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +0 -117
  389. package/src/BaseLinearDisplay/components/Block.tsx +0 -77
  390. package/src/BaseLinearDisplay/components/BlockMsg.tsx +0 -42
  391. package/src/BaseLinearDisplay/components/LinearBlocks.tsx +0 -119
  392. package/src/BaseLinearDisplay/components/ServerSideRenderedBlockContent.tsx +0 -69
  393. package/src/BaseLinearDisplay/components/TooLargeMessage.tsx +0 -36
  394. package/src/BaseLinearDisplay/components/Tooltip.tsx +0 -107
  395. package/src/BaseLinearDisplay/index.ts +0 -12
  396. package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +0 -768
  397. package/src/BaseLinearDisplay/models/configSchema.ts +0 -59
  398. package/src/BaseLinearDisplay/models/serverSideRenderedBlock.ts +0 -318
  399. package/src/BaseLinearDisplay/models/util.ts +0 -67
  400. package/src/BasicTrack/configSchema.ts +0 -23
  401. package/src/BasicTrack/index.ts +0 -18
  402. package/src/FeatureTrack/configSchema.ts +0 -27
  403. package/src/FeatureTrack/index.ts +0 -18
  404. package/src/LaunchLinearGenomeView/index.ts +0 -66
  405. package/src/LinearBareDisplay/configSchema.ts +0 -27
  406. package/src/LinearBareDisplay/index.test.js +0 -34
  407. package/src/LinearBareDisplay/index.ts +0 -25
  408. package/src/LinearBareDisplay/model.ts +0 -53
  409. package/src/LinearBasicDisplay/components/SetMaxHeight.tsx +0 -73
  410. package/src/LinearBasicDisplay/configSchema.ts +0 -27
  411. package/src/LinearBasicDisplay/index.ts +0 -25
  412. package/src/LinearBasicDisplay/model.ts +0 -214
  413. package/src/LinearGenomeView/README.md +0 -9
  414. package/src/LinearGenomeView/components/CenterLine.tsx +0 -65
  415. package/src/LinearGenomeView/components/Cytobands.tsx +0 -154
  416. package/src/LinearGenomeView/components/ExportSvgDialog.tsx +0 -149
  417. package/src/LinearGenomeView/components/GetSequenceDialog.tsx +0 -269
  418. package/src/LinearGenomeView/components/Gridlines.tsx +0 -119
  419. package/src/LinearGenomeView/components/Header.tsx +0 -126
  420. package/src/LinearGenomeView/components/HelpDialog.tsx +0 -69
  421. package/src/LinearGenomeView/components/ImportForm.tsx +0 -217
  422. package/src/LinearGenomeView/components/LinearGenomeView.test.tsx +0 -167
  423. package/src/LinearGenomeView/components/LinearGenomeView.tsx +0 -72
  424. package/src/LinearGenomeView/components/MiniControls.tsx +0 -55
  425. package/src/LinearGenomeView/components/OverviewRubberband.tsx +0 -219
  426. package/src/LinearGenomeView/components/OverviewScalebar.tsx +0 -345
  427. package/src/LinearGenomeView/components/RefNameAutocomplete.tsx +0 -321
  428. package/src/LinearGenomeView/components/Rubberband.tsx +0 -89
  429. package/src/LinearGenomeView/components/RubberbandSpan.tsx +0 -99
  430. package/src/LinearGenomeView/components/Scalebar.test.tsx +0 -145
  431. package/src/LinearGenomeView/components/Scalebar.tsx +0 -199
  432. package/src/LinearGenomeView/components/SearchBox.tsx +0 -123
  433. package/src/LinearGenomeView/components/SearchResultsDialog.tsx +0 -57
  434. package/src/LinearGenomeView/components/SearchResultsTable.tsx +0 -121
  435. package/src/LinearGenomeView/components/SequenceSearchDialog.tsx +0 -136
  436. package/src/LinearGenomeView/components/TrackContainer.tsx +0 -180
  437. package/src/LinearGenomeView/components/TrackLabel.tsx +0 -143
  438. package/src/LinearGenomeView/components/TracksContainer.tsx +0 -114
  439. package/src/LinearGenomeView/components/VerticalGuide.tsx +0 -37
  440. package/src/LinearGenomeView/components/ZoomControls.tsx +0 -62
  441. package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.tsx.snap +0 -1520
  442. package/src/LinearGenomeView/components/hooks.ts +0 -306
  443. package/src/LinearGenomeView/components/util.ts +0 -76
  444. package/src/LinearGenomeView/hg38DisplayedRegions.json +0 -3187
  445. package/src/LinearGenomeView/index.test.ts +0 -993
  446. package/src/LinearGenomeView/index.ts +0 -17
  447. package/src/LinearGenomeView/model.ts +0 -1532
  448. package/src/LinearGenomeView/svgcomponents/SVGBackground.tsx +0 -21
  449. package/src/LinearGenomeView/svgcomponents/SVGHeader.tsx +0 -93
  450. package/src/LinearGenomeView/svgcomponents/SVGLinearGenomeView.tsx +0 -114
  451. package/src/LinearGenomeView/svgcomponents/SVGRegionSeparators.tsx +0 -31
  452. package/src/LinearGenomeView/svgcomponents/SVGRuler.tsx +0 -125
  453. package/src/LinearGenomeView/svgcomponents/SVGScalebar.tsx +0 -57
  454. package/src/LinearGenomeView/svgcomponents/SVGTrackLabel.tsx +0 -47
  455. package/src/LinearGenomeView/svgcomponents/SVGTracks.tsx +0 -67
  456. package/src/LinearGenomeView/util.test.ts +0 -33
  457. package/src/LinearGenomeView/util.ts +0 -182
  458. package/src/LinearGenomeView/volvoxDisplayedRegions.json +0 -16
  459. package/src/index.ts +0 -85
@@ -1,321 +0,0 @@
1
- import React, { Suspense, lazy, useMemo, useEffect, useState } from 'react'
2
- import { observer } from 'mobx-react'
3
- import { getSession, useDebounce, measureText } from '@jbrowse/core/util'
4
- import BaseResult, {
5
- RefSequenceResult,
6
- } from '@jbrowse/core/TextSearch/BaseResults'
7
- import {
8
- Autocomplete,
9
- AutocompleteRenderInputParams,
10
- IconButton,
11
- InputAdornment,
12
- TextField,
13
- TextFieldProps as TFP,
14
- } from '@mui/material'
15
-
16
- // icons
17
- import SearchIcon from '@mui/icons-material/Search'
18
- import HelpIcon from '@mui/icons-material/Help'
19
-
20
- // locals
21
- import { LinearGenomeViewModel } from '..'
22
-
23
- // lazy
24
- const HelpDialog = lazy(() => import('./HelpDialog'))
25
-
26
- export interface Option {
27
- group?: string
28
- result: BaseResult
29
- }
30
-
31
- function aggregateResults(results: BaseResult[]) {
32
- const m: { [key: string]: BaseResult[] } = {}
33
-
34
- for (const result of results) {
35
- const displayString = result.getDisplayString()
36
- if (!m[displayString]) {
37
- m[displayString] = []
38
- }
39
- m[displayString].push(result)
40
- }
41
- return m
42
- }
43
-
44
- function getDeduplicatedResult(results: BaseResult[]) {
45
- return Object.entries(aggregateResults(results)).map(
46
- ([displayString, results]) =>
47
- results.length === 1
48
- ? {
49
- result: results[0],
50
- }
51
- : {
52
- // deduplicate a "multi-result"
53
- result: new BaseResult({
54
- displayString,
55
- results,
56
- label: displayString,
57
- }),
58
- },
59
- )
60
- }
61
-
62
- // the logic of this method is to only apply a filter to RefSequenceResults
63
- // because they do not have a matchedObject. the trix search results already
64
- // filter so don't need re-filtering
65
- function filterOptions(options: Option[], searchQuery: string) {
66
- return options.filter(
67
- ({ result }) =>
68
- result.getLabel().toLowerCase().includes(searchQuery) ||
69
- result.matchedObject,
70
- )
71
- }
72
-
73
- function getFiltered(opts: Option[], inputValue: string) {
74
- const filtered = filterOptions(opts, inputValue.toLocaleLowerCase())
75
- return [
76
- ...filtered.slice(0, 100),
77
- ...(filtered.length > 100
78
- ? [
79
- {
80
- group: 'limitOption',
81
- result: new BaseResult({
82
- label: 'keep typing for more results',
83
- }),
84
- },
85
- ]
86
- : []),
87
- ]
88
- }
89
-
90
- function RefNameAutocomplete({
91
- model,
92
- onSelect,
93
- assemblyName,
94
- style,
95
- fetchResults,
96
- onChange,
97
- value,
98
- showHelp = true,
99
- minWidth = 200,
100
- maxWidth = 550,
101
- TextFieldProps = {},
102
- }: {
103
- model: LinearGenomeViewModel
104
- onSelect?: (region: BaseResult) => void
105
- onChange?: (val: string) => void
106
- assemblyName?: string
107
- value?: string
108
- fetchResults: (query: string) => Promise<BaseResult[]>
109
- style?: React.CSSProperties
110
- minWidth?: number
111
- maxWidth?: number
112
- showHelp?: boolean
113
- TextFieldProps?: TFP
114
- }) {
115
- const session = getSession(model)
116
- const { assemblyManager } = session
117
- const [open, setOpen] = useState(false)
118
- const [loaded, setLoaded] = useState(true)
119
- const [currentSearch, setCurrentSearch] = useState('')
120
- const [inputValue, setInputValue] = useState('')
121
- const [searchOptions, setSearchOptions] = useState<Option[]>()
122
- const debouncedSearch = useDebounce(currentSearch, 300)
123
- const assembly = assemblyName ? assemblyManager.get(assemblyName) : undefined
124
- const { coarseVisibleLocStrings, hasDisplayedRegions } = model
125
-
126
- const regions = assembly?.regions
127
-
128
- const options = useMemo(
129
- () =>
130
- regions?.map(option => ({
131
- result: new RefSequenceResult({
132
- refName: option.refName,
133
- label: option.refName,
134
- matchedAttribute: 'refName',
135
- }),
136
- })) || [],
137
- [regions],
138
- )
139
-
140
- useEffect(() => {
141
- let active = true
142
-
143
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
144
- ;(async () => {
145
- try {
146
- if (debouncedSearch === '' || !assemblyName) {
147
- return
148
- }
149
-
150
- setLoaded(false)
151
- const results = await fetchResults(debouncedSearch)
152
- if (active) {
153
- setLoaded(true)
154
- setSearchOptions(getDeduplicatedResult(results))
155
- }
156
- } catch (e) {
157
- console.error(e)
158
- if (active) {
159
- session.notify(`${e}`, 'error')
160
- }
161
- }
162
- })()
163
-
164
- return () => {
165
- active = false
166
- }
167
- }, [assemblyName, fetchResults, debouncedSearch, session, model])
168
-
169
- const inputBoxVal = coarseVisibleLocStrings || value || ''
170
-
171
- // heuristic, text width + 60 accommodates help icon and search
172
- // icon
173
- const width = Math.min(
174
- Math.max(measureText(inputBoxVal, 14) + 100, minWidth),
175
- maxWidth,
176
- )
177
-
178
- // notes on implementation:
179
- // The selectOnFocus setting helps highlight the field when clicked
180
- return (
181
- <>
182
- <Autocomplete
183
- data-testid="autocomplete"
184
- disableListWrap
185
- disableClearable
186
- disabled={!assemblyName}
187
- freeSolo
188
- includeInputInList
189
- selectOnFocus
190
- style={{ ...style, width }}
191
- value={inputBoxVal}
192
- loading={!loaded}
193
- inputValue={inputValue}
194
- onInputChange={(_event, newInputValue) => {
195
- setInputValue(newInputValue)
196
- onChange?.(newInputValue)
197
- }}
198
- loadingText="loading results"
199
- open={open}
200
- onOpen={() => setOpen(true)}
201
- onClose={() => {
202
- setOpen(false)
203
- setLoaded(true)
204
- if (hasDisplayedRegions) {
205
- setCurrentSearch('')
206
- setSearchOptions(undefined)
207
- }
208
- }}
209
- onChange={(_event, selectedOption) => {
210
- if (!selectedOption || !assemblyName) {
211
- return
212
- }
213
-
214
- if (typeof selectedOption === 'string') {
215
- // handles string inputs on keyPress enter
216
- onSelect?.(new BaseResult({ label: selectedOption }))
217
- } else {
218
- onSelect?.(selectedOption.result)
219
- }
220
- setInputValue(inputBoxVal)
221
- }}
222
- options={!searchOptions?.length ? options : searchOptions}
223
- getOptionDisabled={option => option.group === 'limitOption'}
224
- filterOptions={(opts, { inputValue }) => getFiltered(opts, inputValue)}
225
- renderInput={params => (
226
- <AutocompleteTextField
227
- showHelp={showHelp}
228
- params={params}
229
- inputBoxVal={inputBoxVal}
230
- TextFieldProps={TextFieldProps}
231
- setCurrentSearch={setCurrentSearch}
232
- setInputValue={setInputValue}
233
- />
234
- )}
235
- getOptionLabel={opt =>
236
- typeof opt === 'string' ? opt : opt.result.getDisplayString()
237
- }
238
- />
239
- </>
240
- )
241
- }
242
-
243
- function AutocompleteTextField({
244
- TextFieldProps,
245
- inputBoxVal,
246
- params,
247
- showHelp,
248
- setInputValue,
249
- setCurrentSearch,
250
- }: {
251
- TextFieldProps: TFP
252
- inputBoxVal: string
253
- showHelp?: boolean
254
- params: AutocompleteRenderInputParams
255
- setInputValue: (arg: string) => void
256
- setCurrentSearch: (arg: string) => void
257
- }) {
258
- const { helperText, InputProps = {} } = TextFieldProps
259
- return (
260
- <TextField
261
- onBlur={() =>
262
- // this is used to restore a refName or the non-user-typed input
263
- // to the box on blurring
264
- setInputValue(inputBoxVal)
265
- }
266
- {...params}
267
- {...TextFieldProps}
268
- size="small"
269
- helperText={helperText}
270
- InputProps={{
271
- ...params.InputProps,
272
- ...InputProps,
273
-
274
- endAdornment: (
275
- <EndAdornment
276
- showHelp={showHelp}
277
- endAdornment={params.InputProps.endAdornment}
278
- />
279
- ),
280
- }}
281
- placeholder="Search for location"
282
- onChange={e => setCurrentSearch(e.target.value)}
283
- />
284
- )
285
- }
286
-
287
- function HelpAdornment() {
288
- const [isHelpDialogDisplayed, setHelpDialogDisplayed] = useState(false)
289
- return (
290
- <>
291
- <IconButton onClick={() => setHelpDialogDisplayed(true)} size="small">
292
- <HelpIcon fontSize="small" />
293
- </IconButton>
294
- {isHelpDialogDisplayed ? (
295
- <Suspense fallback={<div />}>
296
- <HelpDialog handleClose={() => setHelpDialogDisplayed(false)} />
297
- </Suspense>
298
- ) : null}
299
- </>
300
- )
301
- }
302
-
303
- function EndAdornment({
304
- showHelp,
305
- endAdornment,
306
- }: {
307
- showHelp?: boolean
308
- endAdornment: React.ReactNode
309
- }) {
310
- return (
311
- <>
312
- <InputAdornment position="end" style={{ marginRight: 7 }}>
313
- <SearchIcon fontSize="small" />
314
- {showHelp ? <HelpAdornment /> : null}
315
- </InputAdornment>
316
- {endAdornment}
317
- </>
318
- )
319
- }
320
-
321
- export default observer(RefNameAutocomplete)
@@ -1,89 +0,0 @@
1
- import React, { useRef } from 'react'
2
- import { observer } from 'mobx-react'
3
- import { makeStyles } from 'tss-react/mui'
4
- import { Menu } from '@jbrowse/core/ui'
5
-
6
- // locals
7
- import VerticalGuide from './VerticalGuide'
8
- import RubberbandSpan from './RubberbandSpan'
9
- import { useRangeSelect } from './hooks'
10
- import { LinearGenomeViewModel } from '..'
11
-
12
- type LGV = LinearGenomeViewModel
13
-
14
- const useStyles = makeStyles()({
15
- rubberbandControl: {
16
- cursor: 'crosshair',
17
- width: '100%',
18
- minHeight: 8,
19
- },
20
- })
21
-
22
- function Rubberband({
23
- model,
24
- ControlComponent = <div />,
25
- }: {
26
- model: LGV
27
- ControlComponent?: React.ReactElement
28
- }) {
29
- const ref = useRef<HTMLDivElement>(null)
30
- const { classes } = useStyles()
31
-
32
- const {
33
- guideX,
34
- rubberbandOn,
35
- leftBpOffset,
36
- rightBpOffset,
37
- numOfBpSelected,
38
- width,
39
- left,
40
- anchorPosition,
41
- handleMenuItemClick,
42
- open,
43
- handleClose,
44
- mouseMove,
45
- mouseDown,
46
- mouseOut,
47
- } = useRangeSelect(ref, model)
48
-
49
- return (
50
- <>
51
- {guideX !== undefined ? (
52
- <VerticalGuide model={model} coordX={guideX} />
53
- ) : rubberbandOn ? (
54
- <RubberbandSpan
55
- leftBpOffset={leftBpOffset}
56
- rightBpOffset={rightBpOffset}
57
- numOfBpSelected={numOfBpSelected}
58
- width={width}
59
- left={left}
60
- />
61
- ) : null}
62
- {anchorPosition ? (
63
- <Menu
64
- anchorReference="anchorPosition"
65
- anchorPosition={{
66
- left: anchorPosition.clientX,
67
- top: anchorPosition.clientY,
68
- }}
69
- onMenuItemClick={handleMenuItemClick}
70
- open={open}
71
- onClose={handleClose}
72
- menuItems={model.rubberBandMenuItems()}
73
- />
74
- ) : null}
75
- <div
76
- data-testid="rubberband_controls"
77
- className={classes.rubberbandControl}
78
- ref={ref}
79
- onMouseDown={mouseDown}
80
- onMouseMove={mouseMove}
81
- onMouseOut={mouseOut}
82
- >
83
- {ControlComponent}
84
- </div>
85
- </>
86
- )
87
- }
88
-
89
- export default observer(Rubberband)
@@ -1,99 +0,0 @@
1
- import React, { useRef } from 'react'
2
- import { makeStyles } from 'tss-react/mui'
3
- import { Popover, Typography, alpha } from '@mui/material'
4
- import { stringify, toLocale } from '@jbrowse/core/util'
5
-
6
- const useStyles = makeStyles()(theme => {
7
- const { primary, tertiary } = theme.palette
8
- const background = tertiary
9
- ? alpha(tertiary.light, 0.7)
10
- : alpha(primary.light, 0.7)
11
- return {
12
- rubberband: {
13
- height: '100%',
14
- background,
15
- position: 'absolute',
16
- zIndex: 10,
17
- textAlign: 'center',
18
- overflow: 'hidden',
19
- },
20
- rubberbandControl: {
21
- cursor: 'crosshair',
22
- width: '100%',
23
- minHeight: 8,
24
- },
25
- rubberbandText: {
26
- color: tertiary ? tertiary.contrastText : primary.contrastText,
27
- },
28
- popover: {
29
- mouseEvents: 'none',
30
- cursor: 'crosshair',
31
- },
32
- paper: {
33
- paddingLeft: theme.spacing(1),
34
- paddingRight: theme.spacing(1),
35
- },
36
- }
37
- })
38
-
39
- interface Offset {
40
- coord: number
41
- refName?: string
42
- oob?: boolean
43
- }
44
-
45
- export default function RubberbandSpan({
46
- leftBpOffset,
47
- rightBpOffset,
48
- numOfBpSelected,
49
- left,
50
- width,
51
- }: {
52
- leftBpOffset: Offset
53
- rightBpOffset: Offset
54
- numOfBpSelected?: number
55
- left: number
56
- width: number
57
- }) {
58
- const ref = useRef(null)
59
- const { classes } = useStyles()
60
- return (
61
- <>
62
- {ref.current ? (
63
- <>
64
- <Popover
65
- className={classes.popover}
66
- classes={{ paper: classes.paper }}
67
- open
68
- anchorEl={ref.current}
69
- anchorOrigin={{ vertical: 'top', horizontal: 'left' }}
70
- transformOrigin={{ vertical: 'bottom', horizontal: 'right' }}
71
- keepMounted
72
- disableRestoreFocus
73
- >
74
- <Typography>{stringify(leftBpOffset)}</Typography>
75
- </Popover>
76
- <Popover
77
- className={classes.popover}
78
- classes={{ paper: classes.paper }}
79
- open
80
- anchorEl={ref.current}
81
- anchorOrigin={{ vertical: 'top', horizontal: 'right' }}
82
- transformOrigin={{ vertical: 'bottom', horizontal: 'left' }}
83
- keepMounted
84
- disableRestoreFocus
85
- >
86
- <Typography>{stringify(rightBpOffset)}</Typography>
87
- </Popover>
88
- </>
89
- ) : null}
90
- <div ref={ref} className={classes.rubberband} style={{ left, width }}>
91
- {numOfBpSelected ? (
92
- <Typography variant="h6" className={classes.rubberbandText}>
93
- {toLocale(numOfBpSelected)} bp
94
- </Typography>
95
- ) : null}
96
- </div>
97
- </>
98
- )
99
- }
@@ -1,145 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import React from 'react'
3
- import { render } from '@testing-library/react'
4
- import { createTestSession } from '@jbrowse/web/src/rootModel'
5
- import Scalebar from './Scalebar'
6
- jest.mock('@jbrowse/web/src/makeWorkerInstance', () => () => {})
7
-
8
- describe('Scalebar genome view component', () => {
9
- it('renders two regions', () => {
10
- const session = createTestSession({
11
- views: [
12
- {
13
- type: 'LinearGenomeView',
14
- offsetPx: 0,
15
- bpPerPx: 1,
16
- displayedRegions: [
17
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 100 },
18
- {
19
- assemblyName: 'volvox',
20
- refName: 'ctgB',
21
- start: 100,
22
- end: 200,
23
- },
24
- ],
25
- tracks: [],
26
- configuration: {},
27
- },
28
- ],
29
- }) as any
30
- session.addAssemblyConf({
31
- name: 'volMyt1',
32
- sequence: {
33
- trackId: 'ref0',
34
- type: 'ReferenceSequenceTrack',
35
- adapter: {
36
- type: 'FromConfigSequenceAdapter',
37
- features: [
38
- {
39
- refName: 'ctgA',
40
- uniqueId: 'firstId',
41
- start: 0,
42
- end: 10,
43
- seq: 'cattgttgcg',
44
- },
45
- ],
46
- },
47
- },
48
- })
49
- const model = session.views[0]
50
- const { getByTestId } = render(<Scalebar model={model} />)
51
- const ret1 = getByTestId('refLabel-ctgA')
52
- const ret2 = getByTestId('refLabel-ctgB')
53
- expect(ret1.style.left).toBe('-1px')
54
- expect(ret2.style.left).toBe('101px')
55
- })
56
- it('renders two regions when scrolled to the left, the label is ctgA to the actual blocks', () => {
57
- const session = createTestSession({
58
- views: [
59
- {
60
- type: 'LinearGenomeView',
61
- offsetPx: -100,
62
- bpPerPx: 1,
63
- displayedRegions: [
64
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 100 },
65
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 100 },
66
- ],
67
- tracks: [],
68
- configuration: {},
69
- },
70
- ],
71
- }) as any
72
- session.addAssemblyConf({
73
- name: 'volMyt1',
74
- sequence: {
75
- trackId: 'ref0',
76
- type: 'ReferenceSequenceTrack',
77
- adapter: {
78
- type: 'FromConfigSequenceAdapter',
79
- features: [
80
- {
81
- refName: 'ctgA',
82
- uniqueId: 'firstId',
83
- start: 0,
84
- end: 10,
85
- seq: 'cattgttgcg',
86
- },
87
- ],
88
- },
89
- },
90
- })
91
- const model = session.views[0]
92
- const { getByTestId } = render(<Scalebar model={model} />)
93
- const ret1 = getByTestId('refLabel-ctgA')
94
- const ret2 = getByTestId('refLabel-ctgB')
95
- expect(ret1.style.left).toBe('99px')
96
- expect(ret2.style.left).toBe('201px')
97
- })
98
-
99
- it('renders two regions when scrolled to the left, the label is ctgA to the actual blocks', () => {
100
- const session = createTestSession({
101
- views: [
102
- {
103
- type: 'LinearGenomeView',
104
- offsetPx: -100,
105
- bpPerPx: 1,
106
- displayedRegions: [
107
- { assemblyName: 'volvox', refName: 'ctgA', start: 0, end: 1000 },
108
- { assemblyName: 'volvox', refName: 'ctgB', start: 0, end: 1 },
109
- { assemblyName: 'volvox', refName: 'ctgC', start: 0, end: 1 },
110
- { assemblyName: 'volvox', refName: 'ctgD', start: 0, end: 1 },
111
- ],
112
- tracks: [],
113
- configuration: {},
114
- },
115
- ],
116
- }) as any
117
- session.addAssemblyConf({
118
- name: 'volMyt1',
119
- sequence: {
120
- trackId: 'ref0',
121
- type: 'ReferenceSequenceTrack',
122
- adapter: {
123
- type: 'FromConfigSequenceAdapter',
124
- features: [
125
- {
126
- refName: 'ctgA',
127
- uniqueId: 'firstId',
128
- start: 0,
129
- end: 10,
130
- seq: 'cattgttgcg',
131
- },
132
- ],
133
- },
134
- },
135
- })
136
- const model = session.views[0]
137
- const { queryByTestId } = render(<Scalebar model={model} />)
138
- const ret2 = queryByTestId('refLabel-ctgB')
139
- const ret3 = queryByTestId('refLabel-ctgC')
140
- const ret4 = queryByTestId('refLabel-ctgD')
141
- expect(ret2).toBe(null)
142
- expect(ret3).toBe(null)
143
- expect(ret4).toBe(null)
144
- })
145
- })