@jbrowse/core 2.17.0 → 3.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 (354) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +1 -2
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +7 -13
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +1 -2
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +20 -25
  5. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +2 -3
  6. package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +3 -7
  7. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -2
  8. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +5 -8
  9. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +2 -3
  10. package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +7 -10
  11. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -2
  12. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +25 -55
  13. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +3 -4
  14. package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +16 -34
  15. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -2
  16. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -6
  17. package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +2 -3
  18. package/BaseFeatureWidget/BaseFeatureDetail/Position.js +2 -5
  19. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +1 -2
  20. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -5
  21. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +1 -2
  22. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +3 -5
  23. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +4 -5
  24. package/BaseFeatureWidget/BaseFeatureDetail/index.js +6 -14
  25. package/BaseFeatureWidget/BaseFeatureDetail/util.js +4 -13
  26. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +10 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +48 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +3 -4
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +33 -41
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +3 -4
  31. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +30 -29
  32. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +8 -0
  33. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +28 -0
  34. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +2 -10
  35. package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +11 -85
  36. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -2
  37. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +6 -25
  38. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +3 -4
  39. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -46
  40. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +3 -4
  41. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +101 -96
  42. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +2 -3
  43. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +49 -53
  44. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +2 -3
  45. package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +20 -55
  46. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +2 -2
  47. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +1 -2
  48. package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +2 -56
  49. package/BaseFeatureWidget/SequenceFeatureDetails/model.js +4 -66
  50. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +4 -5
  51. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +6 -9
  52. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +3 -4
  53. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +6 -7
  54. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +3 -4
  55. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +5 -9
  56. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +3 -4
  57. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +2 -4
  58. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +2 -3
  59. package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +3 -10
  60. package/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -0
  61. package/BaseFeatureWidget/SequenceFeatureDetails/types.js +2 -0
  62. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +1 -5
  63. package/BaseFeatureWidget/stateModelFactory.d.ts +2 -93
  64. package/BaseFeatureWidget/stateModelFactory.js +3 -73
  65. package/BaseFeatureWidget/types.d.ts +3 -3
  66. package/BaseFeatureWidget/util.js +0 -4
  67. package/CorePlugin.d.ts +1 -1
  68. package/CorePlugin.js +19 -12
  69. package/Plugin.d.ts +2 -5
  70. package/Plugin.js +0 -3
  71. package/PluginLoader.d.ts +1 -1
  72. package/PluginLoader.js +2 -19
  73. package/PluginManager.d.ts +17 -32
  74. package/PluginManager.js +15 -41
  75. package/ReExports/DataGrid.js +0 -1
  76. package/ReExports/list.d.ts +0 -5
  77. package/ReExports/list.js +3 -5
  78. package/ReExports/modules.d.ts +26 -22
  79. package/ReExports/modules.js +45 -44
  80. package/TextSearch/BaseResults.d.ts +4 -4
  81. package/TextSearch/TextSearchManager.d.ts +4 -16
  82. package/TextSearch/TextSearchManager.js +1 -13
  83. package/assemblyManager/assembly.d.ts +5 -100
  84. package/assemblyManager/assembly.js +30 -146
  85. package/assemblyManager/assemblyConfigSchema.d.ts +1 -34
  86. package/assemblyManager/assemblyConfigSchema.js +12 -46
  87. package/assemblyManager/assemblyManager.d.ts +7 -57
  88. package/assemblyManager/assemblyManager.js +2 -57
  89. package/configuration/configurationSchema.d.ts +4 -4
  90. package/configuration/configurationSchema.js +2 -14
  91. package/configuration/configurationSlot.d.ts +2 -13
  92. package/configuration/configurationSlot.js +2 -32
  93. package/configuration/index.d.ts +2 -2
  94. package/configuration/index.js +2 -2
  95. package/configuration/types.d.ts +2 -3
  96. package/configuration/util.d.ts +1 -25
  97. package/configuration/util.js +19 -56
  98. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +4 -14
  99. package/data_adapters/BaseAdapter/BaseAdapter.js +1 -10
  100. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +5 -114
  101. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +3 -79
  102. package/data_adapters/BaseAdapter/BaseOptions.d.ts +2 -2
  103. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +2 -2
  104. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +3 -6
  105. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +3 -3
  106. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +3 -3
  107. package/data_adapters/BaseAdapter/index.d.ts +4 -4
  108. package/data_adapters/BaseAdapter/types.d.ts +2 -2
  109. package/data_adapters/BaseAdapter/util.d.ts +6 -6
  110. package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  111. package/data_adapters/CytobandAdapter/CytobandAdapter.js +2 -6
  112. package/data_adapters/CytobandAdapter/configSchema.d.ts +0 -3
  113. package/data_adapters/CytobandAdapter/configSchema.js +1 -7
  114. package/data_adapters/CytobandAdapter/index.d.ts +1 -1
  115. package/data_adapters/CytobandAdapter/index.js +21 -8
  116. package/data_adapters/dataAdapterCache.d.ts +4 -22
  117. package/data_adapters/dataAdapterCache.js +2 -28
  118. package/data_adapters/util.d.ts +1 -0
  119. package/data_adapters/util.js +10 -0
  120. package/package.json +8 -11
  121. package/pluggableElementTypes/AdapterType.d.ts +2 -2
  122. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +2 -2
  123. package/pluggableElementTypes/ConnectionType.d.ts +3 -3
  124. package/pluggableElementTypes/DisplayType.d.ts +3 -9
  125. package/pluggableElementTypes/InternetAccountType.d.ts +2 -2
  126. package/pluggableElementTypes/PluggableElementBase.d.ts +1 -1
  127. package/pluggableElementTypes/PluggableElementBase.js +2 -2
  128. package/pluggableElementTypes/RpcMethodType.d.ts +5 -11
  129. package/pluggableElementTypes/RpcMethodType.js +7 -19
  130. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +9 -0
  131. package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +35 -0
  132. package/pluggableElementTypes/TextSearchAdapterType.d.ts +2 -2
  133. package/pluggableElementTypes/TrackType.d.ts +3 -3
  134. package/pluggableElementTypes/ViewType.d.ts +3 -3
  135. package/pluggableElementTypes/WidgetType.d.ts +4 -3
  136. package/pluggableElementTypes/index.d.ts +11 -11
  137. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -29
  138. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +1 -28
  139. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +3 -83
  140. package/pluggableElementTypes/models/BaseDisplayModel.js +2 -69
  141. package/pluggableElementTypes/models/BaseTrackModel.d.ts +4 -46
  142. package/pluggableElementTypes/models/BaseTrackModel.js +9 -63
  143. package/pluggableElementTypes/models/BaseViewModel.d.ts +2 -42
  144. package/pluggableElementTypes/models/BaseViewModel.js +2 -38
  145. package/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -119
  146. package/pluggableElementTypes/models/InternetAccountModel.js +3 -123
  147. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +0 -6
  148. package/pluggableElementTypes/models/baseConnectionConfig.js +1 -13
  149. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -15
  150. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -23
  151. package/pluggableElementTypes/models/baseTrackConfig.d.ts +2 -53
  152. package/pluggableElementTypes/models/baseTrackConfig.js +1 -58
  153. package/pluggableElementTypes/renderers/BoxRendererType.d.ts +7 -15
  154. package/pluggableElementTypes/renderers/BoxRendererType.js +3 -14
  155. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +4 -4
  156. package/pluggableElementTypes/renderers/CircularChordRendererType.js +3 -8
  157. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +6 -21
  158. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +2 -25
  159. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +5 -47
  160. package/pluggableElementTypes/renderers/FeatureRendererType.js +15 -68
  161. package/pluggableElementTypes/renderers/RendererType.d.ts +5 -9
  162. package/pluggableElementTypes/renderers/RendererType.js +3 -7
  163. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +3 -4
  164. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +11 -76
  165. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +2 -3
  166. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +10 -74
  167. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +9 -49
  168. package/pluggableElementTypes/renderers/ServerSideRendererType.js +10 -60
  169. package/pluggableElementTypes/renderers/index.d.ts +1 -1
  170. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +1 -3
  171. package/rpc/BaseRpcDriver.d.ts +3 -4
  172. package/rpc/BaseRpcDriver.js +20 -80
  173. package/rpc/MainThreadRpcDriver.d.ts +3 -7
  174. package/rpc/MainThreadRpcDriver.js +0 -5
  175. package/rpc/RpcManager.d.ts +3 -3
  176. package/rpc/RpcManager.js +2 -4
  177. package/rpc/WebWorkerRpcDriver.d.ts +3 -2
  178. package/rpc/WebWorkerRpcDriver.js +2 -13
  179. package/rpc/baseRpcConfig.d.ts +0 -3
  180. package/rpc/baseRpcConfig.js +1 -7
  181. package/rpc/configSchema.d.ts +0 -6
  182. package/rpc/configSchema.js +2 -11
  183. package/rpc/mainThreadRpcConfig.js +1 -7
  184. package/rpc/methods/CoreFreeResources.d.ts +0 -6
  185. package/rpc/methods/CoreFreeResources.js +2 -9
  186. package/rpc/methods/CoreGetFeatureDensityStats.d.ts +4 -5
  187. package/rpc/methods/CoreGetFeatureDensityStats.js +1 -1
  188. package/rpc/methods/CoreGetFeatureDetails.d.ts +2 -7
  189. package/rpc/methods/CoreGetFeatureDetails.js +0 -5
  190. package/rpc/methods/CoreGetFeatures.d.ts +5 -5
  191. package/rpc/methods/CoreGetFeatures.js +4 -5
  192. package/rpc/methods/CoreGetFileInfo.d.ts +1 -2
  193. package/rpc/methods/CoreGetFileInfo.js +1 -1
  194. package/rpc/methods/CoreGetMetadata.d.ts +1 -2
  195. package/rpc/methods/CoreGetMetadata.js +1 -1
  196. package/rpc/methods/CoreGetRefNames.d.ts +1 -2
  197. package/rpc/methods/CoreGetRefNames.js +1 -1
  198. package/rpc/methods/CoreRender.d.ts +2 -6
  199. package/rpc/methods/CoreRender.js +5 -7
  200. package/rpc/methods/util.d.ts +3 -3
  201. package/rpc/methods/util.js +0 -1
  202. package/rpc/webWorkerRpcConfig.js +1 -7
  203. package/stories/JBrowseCore.stories.d.ts +1 -1
  204. package/stories/JBrowseCore.stories.js +3 -3
  205. package/stories/examples/WithSequencePanel.d.ts +6 -7
  206. package/stories/examples/WithSequencePanel.js +9 -9
  207. package/tsconfig.build.tsbuildinfo +1 -1
  208. package/ui/AppLogo.d.ts +2 -3
  209. package/ui/AppLogo.js +2 -7
  210. package/ui/AssemblySelector.d.ts +5 -5
  211. package/ui/AssemblySelector.js +11 -36
  212. package/ui/BaseTooltip.d.ts +1 -2
  213. package/ui/BaseTooltip.js +10 -17
  214. package/ui/CascadingMenu.d.ts +3 -4
  215. package/ui/CascadingMenu.js +18 -57
  216. package/ui/CascadingMenuButton.d.ts +2 -3
  217. package/ui/CascadingMenuButton.js +18 -42
  218. package/ui/ColorPicker.d.ts +3 -4
  219. package/ui/ColorPicker.js +33 -37
  220. package/ui/Dialog.d.ts +2 -3
  221. package/ui/Dialog.js +15 -27
  222. package/ui/DraggableDialog.d.ts +5 -0
  223. package/ui/DraggableDialog.js +32 -0
  224. package/ui/DropDownMenu.d.ts +2 -3
  225. package/ui/DropDownMenu.js +10 -36
  226. package/ui/EditableTypography.d.ts +2 -3
  227. package/ui/EditableTypography.js +30 -59
  228. package/ui/ErrorBoundary.d.ts +3 -2
  229. package/ui/ErrorBoundary.js +3 -25
  230. package/ui/ErrorMessage.d.ts +1 -2
  231. package/ui/ErrorMessage.js +27 -34
  232. package/ui/ErrorMessageStackTraceDialog.d.ts +1 -2
  233. package/ui/ErrorMessageStackTraceDialog.js +13 -54
  234. package/ui/FactoryResetDialog.d.ts +1 -2
  235. package/ui/FactoryResetDialog.js +8 -13
  236. package/ui/FatalErrorDialog.d.ts +1 -2
  237. package/ui/FatalErrorDialog.js +11 -42
  238. package/ui/FileSelector/FileSelector.d.ts +5 -5
  239. package/ui/FileSelector/FileSelector.js +41 -80
  240. package/ui/FileSelector/LocalFileChooser.d.ts +2 -3
  241. package/ui/FileSelector/LocalFileChooser.js +17 -29
  242. package/ui/FileSelector/UrlChooser.d.ts +5 -5
  243. package/ui/FileSelector/UrlChooser.js +6 -7
  244. package/ui/Icons.d.ts +10 -11
  245. package/ui/Icons.js +10 -25
  246. package/ui/LoadingEllipses.d.ts +2 -3
  247. package/ui/LoadingEllipses.js +4 -7
  248. package/ui/Logo.d.ts +2 -3
  249. package/ui/Logo.js +5 -23
  250. package/ui/Menu.d.ts +3 -4
  251. package/ui/Menu.js +85 -122
  252. package/ui/MenuButton.d.ts +2 -3
  253. package/ui/MenuButton.js +11 -35
  254. package/ui/PrerenderedCanvas.d.ts +1 -2
  255. package/ui/PrerenderedCanvas.js +3 -25
  256. package/ui/RedErrorMessageBox.d.ts +1 -2
  257. package/ui/RedErrorMessageBox.js +2 -5
  258. package/ui/ResizeHandle.d.ts +1 -2
  259. package/ui/ResizeHandle.js +5 -27
  260. package/ui/ReturnToImportFormDialog.d.ts +1 -2
  261. package/ui/ReturnToImportFormDialog.js +8 -13
  262. package/ui/SanitizedHTML.d.ts +2 -3
  263. package/ui/SanitizedHTML.js +4 -24
  264. package/ui/Snackbar.d.ts +3 -4
  265. package/ui/Snackbar.js +41 -21
  266. package/ui/SnackbarContents.d.ts +5 -0
  267. package/ui/SnackbarContents.js +16 -0
  268. package/ui/SnackbarModel.d.ts +1 -26
  269. package/ui/SnackbarModel.js +22 -39
  270. package/ui/colors.d.ts +1 -1
  271. package/ui/colors.js +2 -2
  272. package/ui/index.d.ts +0 -2
  273. package/ui/index.js +1 -5
  274. package/ui/react-colorful.js +17 -10
  275. package/ui/theme.d.ts +1 -1
  276. package/ui/theme.js +7 -40
  277. package/util/Base1DUtils.d.ts +1 -1
  278. package/util/Base1DUtils.js +0 -12
  279. package/util/Base1DViewModel.d.ts +4 -81
  280. package/util/Base1DViewModel.js +4 -108
  281. package/util/QuickLRU.js +0 -9
  282. package/util/TimeTraveller.js +0 -4
  283. package/util/aborting.d.ts +0 -20
  284. package/util/aborting.js +0 -31
  285. package/util/analytics.js +1 -12
  286. package/util/blockTypes.d.ts +0 -11
  287. package/util/blockTypes.js +0 -13
  288. package/util/calculateDynamicBlocks.d.ts +1 -20
  289. package/util/calculateDynamicBlocks.js +1 -22
  290. package/util/calculateStaticBlocks.d.ts +2 -2
  291. package/util/calculateStaticBlocks.js +0 -2
  292. package/util/color/cssColorsLevel4.js +0 -1
  293. package/util/color/index.d.ts +0 -19
  294. package/util/color/index.js +0 -30
  295. package/util/compositeMap.js +0 -2
  296. package/util/dedupe.js +0 -1
  297. package/util/formatFastaStrings.d.ts +0 -13
  298. package/util/formatFastaStrings.js +0 -13
  299. package/util/idMaker.d.ts +1 -1
  300. package/util/idMaker.js +16 -12
  301. package/util/index.d.ts +27 -173
  302. package/util/index.js +53 -293
  303. package/util/io/RemoteFileWithRangeCache.d.ts +4 -5
  304. package/util/io/RemoteFileWithRangeCache.js +12 -14
  305. package/util/io/index.d.ts +3 -4
  306. package/util/io/index.js +5 -19
  307. package/util/jexl.js +3 -13
  308. package/util/jexlStrings.d.ts +0 -6
  309. package/util/jexlStrings.js +0 -8
  310. package/util/layouts/BaseLayout.d.ts +1 -1
  311. package/util/layouts/GranularRectLayout.d.ts +1 -17
  312. package/util/layouts/GranularRectLayout.js +4 -81
  313. package/util/layouts/MultiLayout.d.ts +1 -6
  314. package/util/layouts/MultiLayout.js +0 -6
  315. package/util/layouts/PrecomputedLayout.d.ts +1 -4
  316. package/util/layouts/PrecomputedLayout.js +0 -5
  317. package/util/layouts/PrecomputedMultiLayout.js +0 -2
  318. package/util/layouts/SceneGraph.d.ts +0 -12
  319. package/util/layouts/SceneGraph.js +0 -13
  320. package/util/makeAbortableReaction.d.ts +2 -0
  321. package/util/makeAbortableReaction.js +50 -0
  322. package/util/map-obj.js +0 -4
  323. package/util/mst-reflection.d.ts +1 -14
  324. package/util/mst-reflection.js +1 -28
  325. package/util/nanoid.d.ts +1 -1
  326. package/util/nanoid.js +0 -31
  327. package/util/nextTick.d.ts +1 -0
  328. package/util/nextTick.js +6 -0
  329. package/util/offscreenCanvasPonyfill.d.ts +0 -1
  330. package/util/offscreenCanvasPonyfill.js +1 -9
  331. package/util/offscreenCanvasUtils.d.ts +2 -3
  332. package/util/offscreenCanvasUtils.js +22 -21
  333. package/util/range.d.ts +0 -25
  334. package/util/range.js +0 -34
  335. package/util/rxjs.d.ts +3 -7
  336. package/util/rxjs.js +2 -9
  337. package/util/simpleFeature.d.ts +0 -50
  338. package/util/simpleFeature.js +0 -35
  339. package/util/stats.d.ts +3 -26
  340. package/util/stats.js +0 -25
  341. package/util/stopToken.d.ts +3 -0
  342. package/util/stopToken.js +29 -0
  343. package/util/tracks.d.ts +4 -26
  344. package/util/tracks.js +8 -33
  345. package/util/types/index.d.ts +14 -30
  346. package/util/types/index.js +5 -14
  347. package/util/types/mst.js +0 -9
  348. package/util/types/util.d.ts +2 -9
  349. package/util/useMeasure.d.ts +1 -1
  350. package/util/useMeasure.js +0 -1
  351. package/util/when.d.ts +1 -15
  352. package/util/when.js +3 -70
  353. package/rpc/remoteAbortSignals.d.ts +0 -36
  354. package/rpc/remoteAbortSignals.js +0 -79
@@ -4,44 +4,36 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.FeatureDetails = exports.BaseCard = exports.BaseAttributes = exports.BaseCoreDetails = void 0;
7
- const react_1 = __importDefault(require("react"));
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const mobx_react_1 = require("mobx-react");
9
- // utils
10
- const ui_1 = require("../../ui");
11
9
  const util_1 = require("./util");
12
10
  const util_2 = require("../util");
13
- // locals
14
11
  const Attributes_1 = __importDefault(require("./Attributes"));
15
12
  const BaseCard_1 = __importDefault(require("./BaseCard"));
16
13
  const CoreDetails_1 = __importDefault(require("./CoreDetails"));
17
14
  const FeatureDetails_1 = __importDefault(require("./FeatureDetails"));
15
+ const ui_1 = require("../../ui");
18
16
  const BaseCoreDetails = (props) => {
19
17
  const { title = 'Primary data' } = props;
20
- return (react_1.default.createElement(BaseCard_1.default, { ...props, title: title },
21
- react_1.default.createElement(CoreDetails_1.default, { ...props })));
18
+ return ((0, jsx_runtime_1.jsx)(BaseCard_1.default, { ...props, title: title, children: (0, jsx_runtime_1.jsx)(CoreDetails_1.default, { ...props }) }));
22
19
  };
23
20
  exports.BaseCoreDetails = BaseCoreDetails;
24
21
  const BaseAttributes = (props) => {
25
22
  const { feature } = props;
26
- return (react_1.default.createElement(BaseCard_1.default, { ...props, title: "Attributes" },
27
- react_1.default.createElement(Attributes_1.default, { ...props, attributes: feature })));
23
+ return ((0, jsx_runtime_1.jsx)(BaseCard_1.default, { ...props, title: "Attributes", children: (0, jsx_runtime_1.jsx)(Attributes_1.default, { ...props, attributes: feature }) }));
28
24
  };
29
25
  exports.BaseAttributes = BaseAttributes;
30
26
  const BaseFeatureDetail = (0, mobx_react_1.observer)(function ({ model }) {
31
27
  const { error, featureData } = model;
32
28
  if (error) {
33
- return react_1.default.createElement(ui_1.ErrorMessage, { error: error });
29
+ return (0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error });
34
30
  }
35
31
  else if (!featureData) {
36
32
  return null;
37
33
  }
38
34
  else {
39
- // replacing undefined with null helps with allowing fields to be hidden,
40
- // setting null is not allowed by jexl so we set it to undefined to hide.
41
- // see config guide. this replacement happens both here and when
42
- // snapshotting the featureData
43
35
  const featureData2 = (0, util_2.replaceUndefinedWithNull)(featureData);
44
- return (0, util_1.isEmpty)(featureData2) ? null : (react_1.default.createElement(FeatureDetails_1.default, { model: model, feature: featureData2 }));
36
+ return (0, util_1.isEmpty)(featureData2) ? null : ((0, jsx_runtime_1.jsx)(FeatureDetails_1.default, { model: model, feature: featureData2 }));
45
37
  }
46
38
  });
47
39
  exports.default = BaseFeatureDetail;
@@ -1,13 +1,9 @@
1
1
  "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
2
  Object.defineProperty(exports, "__esModule", { value: true });
6
3
  exports.isEmpty = isEmpty;
7
4
  exports.generateTitle = generateTitle;
8
5
  exports.generateMaxWidth = generateMaxWidth;
9
6
  exports.accessNested = accessNested;
10
- const is_object_1 = __importDefault(require("is-object"));
11
7
  const util_1 = require("../../util");
12
8
  const util_2 = require("../util");
13
9
  function isEmpty(obj) {
@@ -21,21 +17,16 @@ function generateTitle(name, id, type) {
21
17
  function generateMaxWidth(array, prefix) {
22
18
  return (Math.ceil((0, util_1.max)(array.map(key => (0, util_1.measureText)([...prefix, key[0]].join('.'), 12)))) + 10);
23
19
  }
24
- // pick using a path from an object, similar to _.get from lodash with special
25
- // logic for Descriptions from e.g. VCF headers
26
- //
27
- // @param arr example ['a','b'], obj = {a:{b:'hello}}
28
- // @returns hello (with special addition to grab description also)
29
20
  function accessNested(arr, obj = {}) {
30
21
  let obj2 = obj;
31
- arr.forEach(elt => {
32
- if ((0, is_object_1.default)(obj2)) {
22
+ for (const elt of arr) {
23
+ if ((0, util_1.isObject)(obj2)) {
33
24
  obj2 = obj2[elt];
34
25
  }
35
- });
26
+ }
36
27
  return typeof obj2 === 'string'
37
28
  ? obj2
38
- : (0, is_object_1.default)(obj2) && typeof obj2.Description === 'string'
29
+ : (0, util_1.isObject)(obj2) && typeof obj2.Description === 'string'
39
30
  ? obj2.Description
40
31
  : undefined;
41
32
  }
@@ -0,0 +1,10 @@
1
+ import type { SequenceFeatureDetailsModel } from './model';
2
+ import type { SimpleFeatureSerialized } from '../../util';
3
+ import type { SeqState } from '../util';
4
+ declare const SequenceContents: ({ mode, feature, sequence, model, }: {
5
+ mode: string;
6
+ feature: SimpleFeatureSerialized;
7
+ sequence: SeqState;
8
+ model: SequenceFeatureDetailsModel;
9
+ }) => import("react/jsx-runtime").JSX.Element;
10
+ export default SequenceContents;
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const mobx_react_1 = require("mobx-react");
8
+ const util_1 = require("../../util");
9
+ const util_2 = require("../util");
10
+ const CDNASequence_1 = __importDefault(require("./seqtypes/CDNASequence"));
11
+ const CDSSequence_1 = __importDefault(require("./seqtypes/CDSSequence"));
12
+ const GenomicSequence_1 = __importDefault(require("./seqtypes/GenomicSequence"));
13
+ const ProteinSequence_1 = __importDefault(require("./seqtypes/ProteinSequence"));
14
+ const SequenceContents = (0, mobx_react_1.observer)(function ({ mode, feature, sequence, model, }) {
15
+ var _a;
16
+ let { seq, upstream = '', downstream = '' } = sequence;
17
+ const children = ((_a = feature.subfeatures) === null || _a === void 0 ? void 0 : _a.sort((a, b) => a.start - b.start).map(sub => ({
18
+ ...sub,
19
+ start: sub.start - feature.start,
20
+ end: sub.end - feature.start,
21
+ }))) || [];
22
+ let cds = (0, util_2.dedupe)(children.filter(sub => sub.type === 'CDS'));
23
+ let utr = (0, util_2.dedupe)(children.filter(sub => { var _a; return (_a = sub.type) === null || _a === void 0 ? void 0 : _a.match(/utr/i); }));
24
+ let exons = (0, util_2.dedupe)(children.filter(sub => sub.type === 'exon'));
25
+ if (!utr.length && cds.length && exons.length) {
26
+ utr = (0, util_2.calculateUTRs)(cds, exons);
27
+ }
28
+ if (!utr.length && cds.length && !exons.length) {
29
+ utr = (0, util_2.calculateUTRs2)(cds, {
30
+ start: 0,
31
+ end: feature.end - feature.start,
32
+ type: 'gene',
33
+ });
34
+ }
35
+ if (feature.strand === -1) {
36
+ ;
37
+ [seq, upstream, downstream] = [
38
+ (0, util_1.revcom)(seq),
39
+ (0, util_1.revcom)(downstream),
40
+ (0, util_1.revcom)(upstream),
41
+ ];
42
+ cds = (0, util_2.revlist)(cds, seq.length);
43
+ exons = (0, util_2.revlist)(exons, seq.length);
44
+ utr = (0, util_2.revlist)(utr, seq.length);
45
+ }
46
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: mode === 'genomic' ? ((0, jsx_runtime_1.jsx)(GenomicSequence_1.default, { feature: feature, model: model, sequence: seq })) : mode === 'genomic_sequence_updownstream' ? ((0, jsx_runtime_1.jsx)(GenomicSequence_1.default, { model: model, feature: feature, sequence: seq, upstream: upstream, downstream: downstream })) : mode === 'cds' ? ((0, jsx_runtime_1.jsx)(CDSSequence_1.default, { model: model, cds: cds, sequence: seq })) : mode === 'cdna' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq })) : mode === 'protein' ? ((0, jsx_runtime_1.jsx)(ProteinSequence_1.default, { model: model, cds: cds, codonTable: (0, util_1.generateCodonTable)(util_1.defaultCodonTable), sequence: seq })) : mode === 'gene' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq, includeIntrons: true })) : mode === 'gene_collapsed_intron' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, includeIntrons: true, collapseIntron: true })) : mode === 'gene_updownstream' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true })) : mode === 'gene_updownstream_collapsed_intron' ? ((0, jsx_runtime_1.jsx)(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true, collapseIntron: true })) : ((0, jsx_runtime_1.jsx)("div", { children: "Unknown type" })) }));
47
+ });
48
+ exports.default = SequenceContents;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
- import { SimpleFeatureSerialized } from '../../util';
3
- import { BaseFeatureWidgetModel } from '../stateModelFactory';
1
+ import type { SimpleFeatureSerialized } from '../../util';
2
+ import type { BaseFeatureWidgetModel } from '../stateModelFactory';
4
3
  declare const SequenceFeatureDetails: ({ model, feature, }: {
5
4
  model: BaseFeatureWidgetModel;
6
5
  feature: SimpleFeatureSerialized;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default SequenceFeatureDetails;
@@ -15,31 +15,37 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
39
+ const jsx_runtime_1 = require("react/jsx-runtime");
40
+ const react_1 = require("react");
30
41
  const material_1 = require("@mui/material");
31
42
  const mobx_react_1 = require("mobx-react");
32
- // locals
33
43
  const hooks_1 = require("./hooks");
34
44
  const ui_1 = require("../../ui");
35
- // icons
36
45
  const SequenceFeatureMenu_1 = __importDefault(require("./dialogs/SequenceFeatureMenu"));
37
46
  const SequenceTypeSelector_1 = __importDefault(require("./dialogs/SequenceTypeSelector"));
38
- // lazies
39
47
  const SequencePanel = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SequencePanel'))));
40
48
  const SequenceDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/SequenceDialog'))));
41
- // set the key on this component to feature.id to clear state after new feature
42
- // is selected
43
49
  const SequenceFeatureDetails = (0, mobx_react_1.observer)(function ({ model, feature, }) {
44
50
  const { sequenceFeatureDetails } = model;
45
51
  const { upDownBp } = sequenceFeatureDetails;
@@ -50,33 +56,19 @@ const SequenceFeatureDetails = (0, mobx_react_1.observer)(function ({ model, fea
50
56
  (0, react_1.useEffect)(() => {
51
57
  sequenceFeatureDetails.setFeature(feature);
52
58
  }, [sequenceFeatureDetails, feature]);
53
- return (react_1.default.createElement(react_1.default.Fragment, null,
54
- react_1.default.createElement("div", null,
55
- react_1.default.createElement(SequenceTypeSelector_1.default, { model: sequenceFeatureDetails }),
56
- react_1.default.createElement(SequenceFeatureMenu_1.default, { ref: seqPanelRef, model: sequenceFeatureDetails, extraItems: [
57
- {
58
- label: 'Open in dialog',
59
- onClick: () => {
60
- // this is given a setTimeout because it allows the menu to
61
- // close before dialog opens
62
- setTimeout(() => {
63
- setOpenInDialog(true);
64
- }, 1);
65
- },
66
- },
67
- ] })),
68
- openInDialog ? (react_1.default.createElement("div", null,
69
- "Open in dialog...",
70
- react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(ui_1.LoadingEllipses, null) },
71
- react_1.default.createElement(SequenceDialog, { model: model, feature: feature, handleClose: () => {
72
- setOpenInDialog(false);
73
- } })))) : (react_1.default.createElement("div", null,
74
- feature.type === 'gene' ? (react_1.default.createElement(material_1.Typography, null, "Note: inspect subfeature sequences for protein/CDS computations")) : null,
75
- error ? (react_1.default.createElement(ui_1.ErrorMessage, { error: error })) : !sequence ? (react_1.default.createElement(ui_1.LoadingEllipses, null)) : 'error' in sequence ? (react_1.default.createElement(react_1.default.Fragment, null,
76
- react_1.default.createElement(material_1.Typography, { color: "error" }, sequence.error),
77
- react_1.default.createElement(material_1.Button, { variant: "contained", color: "inherit", onClick: () => {
78
- setForce(true);
79
- } }, "Force load"))) : (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(ui_1.LoadingEllipses, null) },
80
- react_1.default.createElement(SequencePanel, { ref: seqPanelRef, feature: feature, sequence: sequence, model: sequenceFeatureDetails })))))));
59
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(SequenceTypeSelector_1.default, { model: sequenceFeatureDetails }), (0, jsx_runtime_1.jsx)(SequenceFeatureMenu_1.default, { ref: seqPanelRef, model: sequenceFeatureDetails, extraItems: [
60
+ {
61
+ label: 'Open in dialog',
62
+ onClick: () => {
63
+ setTimeout(() => {
64
+ setOpenInDialog(true);
65
+ }, 1);
66
+ },
67
+ },
68
+ ] })] }), openInDialog ? ((0, jsx_runtime_1.jsxs)("div", { children: ["Open in dialog...", (0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(ui_1.LoadingEllipses, {}), children: (0, jsx_runtime_1.jsx)(SequenceDialog, { model: model, feature: feature, handleClose: () => {
69
+ setOpenInDialog(false);
70
+ } }) })] })) : ((0, jsx_runtime_1.jsxs)("div", { children: [feature.type === 'gene' ? ((0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Note: inspect subfeature sequences for protein/CDS computations" })) : null, error ? ((0, jsx_runtime_1.jsx)(ui_1.ErrorMessage, { error: error })) : !sequence ? ((0, jsx_runtime_1.jsx)(ui_1.LoadingEllipses, {})) : 'error' in sequence ? ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { color: "error", children: sequence.error }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", color: "inherit", onClick: () => {
71
+ setForce(true);
72
+ }, children: "Force load" })] })) : ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(ui_1.LoadingEllipses, {}), children: (0, jsx_runtime_1.jsx)(SequencePanel, { ref: seqPanelRef, feature: feature, sequence: sequence, model: sequenceFeatureDetails }) }))] }))] }));
81
73
  });
82
74
  exports.default = SequenceFeatureDetails;
@@ -1,8 +1,7 @@
1
- import React from 'react';
2
- import { BaseFeatureWidgetModel } from '../stateModelFactory';
3
- import { SimpleFeatureSerialized } from '../../util';
1
+ import type { SimpleFeatureSerialized } from '../../util';
2
+ import type { BaseFeatureWidgetModel } from '../stateModelFactory';
4
3
  declare const SequenceFeaturePanel: ({ model, feature, }: {
5
4
  model: BaseFeatureWidgetModel;
6
5
  feature: SimpleFeatureSerialized;
7
- }) => React.JSX.Element;
6
+ }) => import("react/jsx-runtime").JSX.Element;
8
7
  export default SequenceFeaturePanel;
@@ -15,27 +15,35 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
28
38
  Object.defineProperty(exports, "__esModule", { value: true });
29
- const react_1 = __importStar(require("react"));
39
+ const jsx_runtime_1 = require("react/jsx-runtime");
40
+ const react_1 = require("react");
41
+ const Help_1 = __importDefault(require("@mui/icons-material/Help"));
30
42
  const material_1 = require("@mui/material");
31
43
  const mobx_react_1 = require("mobx-react");
32
44
  const mui_1 = require("tss-react/mui");
33
- // locals
34
45
  const ui_1 = require("../../ui");
35
46
  const util_1 = require("../../util");
36
- // icons
37
- const Help_1 = __importDefault(require("@mui/icons-material/Help"));
38
- // lazies
39
47
  const SequenceFeatureDetails = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./SequenceFeatureDetails'))));
40
48
  const HelpDialog = (0, react_1.lazy)(() => Promise.resolve().then(() => __importStar(require('./dialogs/HelpDialog'))));
41
49
  const useStyles = (0, mui_1.makeStyles)()(theme => ({
@@ -47,25 +55,18 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
47
55
  marginBottom: theme.spacing(4),
48
56
  },
49
57
  }));
50
- // display the stitched-together sequence of a gene's CDS, cDNA, or protein
51
- // sequence. this is a best effort and weird genomic phenomena could lead these
52
- // to not be 100% accurate
53
58
  const SequenceFeaturePanel = (0, mobx_react_1.observer)(function ({ model, feature, }) {
54
59
  const { classes } = useStyles();
55
60
  const [shown, setShown] = (0, react_1.useState)(false);
56
- return (react_1.default.createElement("div", { className: classes.container },
57
- react_1.default.createElement(material_1.FormControl, { className: classes.formControl },
58
- react_1.default.createElement(material_1.Button, { variant: "contained", onClick: () => {
59
- setShown(!shown);
60
- } }, shown ? 'Hide feature sequence' : 'Show feature sequence')),
61
- react_1.default.createElement(material_1.IconButton, { onClick: () => {
62
- (0, util_1.getSession)(model).queueDialog(handleClose => [
63
- HelpDialog,
64
- { handleClose },
65
- ]);
66
- } },
67
- react_1.default.createElement(Help_1.default, null)),
68
- shown ? (react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(ui_1.LoadingEllipses, null) },
69
- react_1.default.createElement(SequenceFeatureDetails, { key: feature.uniqueId, model: model, feature: feature }))) : null));
61
+ return ((0, jsx_runtime_1.jsxs)("div", { className: classes.container, children: [(0, jsx_runtime_1.jsx)(material_1.FormControl, { className: classes.formControl, children: (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", onClick: () => {
62
+ setShown(!shown);
63
+ }, children: shown ? 'Hide feature sequence' : 'Show feature sequence' }) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: () => {
64
+ (0, util_1.getSession)(model).queueDialog(handleClose => [
65
+ HelpDialog,
66
+ {
67
+ handleClose,
68
+ },
69
+ ]);
70
+ }, children: (0, jsx_runtime_1.jsx)(Help_1.default, {}) }), shown ? ((0, jsx_runtime_1.jsx)(react_1.Suspense, { fallback: (0, jsx_runtime_1.jsx)(ui_1.LoadingEllipses, {}), children: (0, jsx_runtime_1.jsx)(SequenceFeatureDetails, { model: model, feature: feature }, feature.uniqueId) })) : null] }));
70
71
  });
71
72
  exports.default = SequenceFeaturePanel;
@@ -0,0 +1,8 @@
1
+ import type { SequenceFeatureDetailsModel } from './model';
2
+ import type { SimpleFeatureSerialized } from '../../util';
3
+ declare const SequenceName: ({ mode, model, feature, }: {
4
+ model: SequenceFeatureDetailsModel;
5
+ mode: string;
6
+ feature: SimpleFeatureSerialized;
7
+ }) => import("react/jsx-runtime").JSX.Element;
8
+ export default SequenceName;
@@ -0,0 +1,28 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const mobx_react_1 = require("mobx-react");
5
+ const util_1 = require("../../util");
6
+ function getStrand(strand) {
7
+ if (strand === -1) {
8
+ return '(-)';
9
+ }
10
+ else if (strand === 1) {
11
+ return '(+)';
12
+ }
13
+ else {
14
+ return '';
15
+ }
16
+ }
17
+ const SequenceName = (0, mobx_react_1.observer)(function ({ mode, model, feature, }) {
18
+ return ((0, jsx_runtime_1.jsx)("div", { style: { background: 'white' }, children: `>${[
19
+ [feature.name || feature.id, mode].filter(f => !!f).join('-'),
20
+ `${feature.refName}:${(0, util_1.toLocale)(feature.start + 1)}-${(0, util_1.toLocale)(feature.end)}${getStrand(feature.strand)}`,
21
+ mode.endsWith('updownstream')
22
+ ? `+/- ${(0, util_1.toLocale)(model.upDownBp)} up/downstream bp`
23
+ : '',
24
+ ]
25
+ .filter(f => !!f)
26
+ .join(' ')}\n` }));
27
+ });
28
+ exports.default = SequenceName;
@@ -1,11 +1,3 @@
1
- import React from 'react';
2
- import { SimpleFeatureSerialized } from '../../util';
3
- import { SeqState } from '../util';
4
- import { SequenceFeatureDetailsModel } from './model';
5
- interface SequencePanelProps {
6
- sequence: SeqState;
7
- feature: SimpleFeatureSerialized;
8
- model: SequenceFeatureDetailsModel;
9
- }
10
- declare const SequencePanel: React.ForwardRefExoticComponent<SequencePanelProps & React.RefAttributes<HTMLDivElement>>;
1
+ import type { SequencePanelProps } from './types';
2
+ declare const SequencePanel: import("react").ForwardRefExoticComponent<SequencePanelProps & import("react").RefAttributes<HTMLDivElement>>;
11
3
  export default SequencePanel;
@@ -3,106 +3,32 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- const react_1 = __importDefault(require("react"));
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
7
8
  const mobx_react_1 = require("mobx-react");
8
- // locals
9
- const util_1 = require("../../util");
10
- const util_2 = require("../util");
11
- // panel types
12
- const CDNASequence_1 = __importDefault(require("./seqtypes/CDNASequence"));
13
- const ProteinSequence_1 = __importDefault(require("./seqtypes/ProteinSequence"));
14
- const GenomicSequence_1 = __importDefault(require("./seqtypes/GenomicSequence"));
15
- const CDSSequence_1 = __importDefault(require("./seqtypes/CDSSequence"));
16
- function getStrand(strand) {
17
- if (strand === -1) {
18
- return '(-)';
19
- }
20
- else if (strand === 1) {
21
- return '(+)';
22
- }
23
- else {
24
- return '';
25
- }
26
- }
9
+ const SequenceContents_1 = __importDefault(require("./SequenceContents"));
10
+ const SequenceName_1 = __importDefault(require("./SequenceName"));
27
11
  function WordWrap({ children }) {
28
- return (react_1.default.createElement("pre", { style: {
29
- /* raw styles instead of className so that html copy works */
12
+ return ((0, jsx_runtime_1.jsx)("pre", { style: {
30
13
  fontFamily: 'monospace',
31
14
  color: 'black',
32
15
  fontSize: 11,
33
- } }, children));
16
+ }, children: children }));
34
17
  }
35
18
  function NoWordWrap({ children }) {
36
- return (react_1.default.createElement("div", { style: {
37
- /* raw styles instead of className so that html copy works */
19
+ return ((0, jsx_runtime_1.jsx)("div", { style: {
38
20
  fontFamily: 'monospace',
39
21
  color: 'black',
40
22
  fontSize: 11,
41
23
  maxWidth: 600,
42
24
  whiteSpace: 'wrap',
43
25
  wordBreak: 'break-all',
44
- } }, children));
26
+ }, children: children }));
45
27
  }
46
- const SequencePanel = (0, mobx_react_1.observer)(react_1.default.forwardRef(function S(props, ref) {
47
- const { model, feature } = props;
28
+ const SequencePanel = (0, mobx_react_1.observer)((0, react_1.forwardRef)(function S(props, ref) {
29
+ const { sequence, model, feature } = props;
48
30
  const { showCoordinates, mode } = model;
49
- let { sequence: { seq, upstream = '', downstream = '' }, } = props;
50
- const { subfeatures = [] } = feature;
51
- const children = subfeatures
52
- .sort((a, b) => a.start - b.start)
53
- .map(sub => ({
54
- ...sub,
55
- start: sub.start - feature.start,
56
- end: sub.end - feature.start,
57
- }));
58
- // we filter duplicate entries in cds and exon lists duplicate entries
59
- // may be rare but was seen in Gencode v36 track NCList, likely a bug
60
- // on GFF3 or probably worth ignoring here (produces broken protein
61
- // translations if included)
62
- //
63
- // position 1:224,800,006..225,203,064 gene ENSG00000185842.15 first
64
- // transcript ENST00000445597.6
65
- //
66
- // http://localhost:3000/?config=test_data%2Fconfig.json&session=share-FUl7G1isvF&password=HXh5Y
67
- let cds = (0, util_2.dedupe)(children.filter(sub => sub.type === 'CDS'));
68
- let utr = (0, util_2.dedupe)(children.filter(sub => { var _a; return (_a = sub.type) === null || _a === void 0 ? void 0 : _a.match(/utr/i); }));
69
- let exons = (0, util_2.dedupe)(children.filter(sub => sub.type === 'exon'));
70
- if (!utr.length && cds.length && exons.length) {
71
- utr = (0, util_2.calculateUTRs)(cds, exons);
72
- }
73
- if (!utr.length && cds.length && !exons.length) {
74
- utr = (0, util_2.calculateUTRs2)(cds, {
75
- start: 0,
76
- end: feature.end - feature.start,
77
- type: 'gene',
78
- });
79
- }
80
- if (feature.strand === -1) {
81
- // doing this in a single assignment is needed because downstream and
82
- // upstream are swapped so this avoids a temp variable
83
- ;
84
- [seq, upstream, downstream] = [
85
- (0, util_1.revcom)(seq),
86
- (0, util_1.revcom)(downstream),
87
- (0, util_1.revcom)(upstream),
88
- ];
89
- cds = (0, util_2.revlist)(cds, seq.length);
90
- exons = (0, util_2.revlist)(exons, seq.length);
91
- utr = (0, util_2.revlist)(utr, seq.length);
92
- }
93
- const codonTable = (0, util_1.generateCodonTable)(util_1.defaultCodonTable);
94
31
  const Container = showCoordinates ? WordWrap : NoWordWrap;
95
- return (react_1.default.createElement("div", { "data-testid": "sequence_panel", ref: ref, style: { maxHeight: 300, overflow: 'auto' } },
96
- react_1.default.createElement(Container, null,
97
- react_1.default.createElement("div", { style: { background: 'white' } }, `>${[
98
- `${feature.name || feature.id}-${mode}`,
99
- `${feature.refName}:${(0, util_1.toLocale)(feature.start + 1)}-${(0, util_1.toLocale)(feature.end)}${getStrand(feature.strand)}`,
100
- mode.endsWith('updownstream')
101
- ? `+/- ${(0, util_1.toLocale)(model.upDownBp)} up/downstream bp`
102
- : '',
103
- ]
104
- .filter(f => !!f)
105
- .join(' ')}\n`),
106
- mode === 'genomic' ? (react_1.default.createElement(GenomicSequence_1.default, { feature: feature, model: model, sequence: seq })) : mode === 'genomic_sequence_updownstream' ? (react_1.default.createElement(GenomicSequence_1.default, { model: model, feature: feature, sequence: seq, upstream: upstream, downstream: downstream })) : mode === 'cds' ? (react_1.default.createElement(CDSSequence_1.default, { model: model, cds: cds, sequence: seq })) : mode === 'cdna' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq })) : mode === 'protein' ? (react_1.default.createElement(ProteinSequence_1.default, { model: model, cds: cds, codonTable: codonTable, sequence: seq })) : mode === 'gene' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, utr: utr, sequence: seq, includeIntrons: true })) : mode === 'gene_collapsed_intron' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, includeIntrons: true, collapseIntron: true })) : mode === 'gene_updownstream' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true })) : mode === 'gene_updownstream_collapsed_intron' ? (react_1.default.createElement(CDNASequence_1.default, { model: model, exons: exons, feature: feature, cds: cds, sequence: seq, utr: utr, upstream: upstream, downstream: downstream, includeIntrons: true, collapseIntron: true })) : (react_1.default.createElement("div", null, "Unknown type")))));
32
+ return ((0, jsx_runtime_1.jsx)("div", { "data-testid": "sequence_panel", ref: ref, style: { maxHeight: 300, overflow: 'auto' }, children: (0, jsx_runtime_1.jsxs)(Container, { children: [(0, jsx_runtime_1.jsx)(SequenceName_1.default, { model: model, mode: mode, feature: feature }), (0, jsx_runtime_1.jsx)(SequenceContents_1.default, { model: model, mode: mode, feature: feature, sequence: sequence })] }) }));
107
33
  }));
108
34
  exports.default = SequencePanel;
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  export default function HelpDialog({ handleClose, }: {
3
2
  handleClose: () => void;
4
- }): React.JSX.Element;
3
+ }): import("react/jsx-runtime").JSX.Element;
@@ -4,33 +4,14 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.default = HelpDialog;
7
- const react_1 = __importDefault(require("react"));
8
- const material_1 = require("@mui/material");
7
+ const jsx_runtime_1 = require("react/jsx-runtime");
9
8
  const ui_1 = require("@jbrowse/core/ui");
10
- // icons
11
9
  const Settings_1 = __importDefault(require("@mui/icons-material/Settings"));
10
+ const material_1 = require("@mui/material");
12
11
  function HelpDialog({ handleClose, }) {
13
- return (react_1.default.createElement(ui_1.Dialog, { maxWidth: "xl", open: true, onClose: () => {
12
+ return ((0, jsx_runtime_1.jsxs)(ui_1.Dialog, { maxWidth: "xl", open: true, onClose: () => {
14
13
  handleClose();
15
- }, title: "Feature sequence panel help" },
16
- react_1.default.createElement(material_1.DialogContent, null,
17
- react_1.default.createElement(material_1.Typography, { paragraph: true }, "The \"Feature sequence\" panel shows the underlying genomic sequence for a given feature, fetched from the reference genome."),
18
- react_1.default.createElement(material_1.Typography, null, "For gene features, this panel does special calculations to e.g. stitch together the coding sequence, the options are:"),
19
- react_1.default.createElement("ul", null,
20
- react_1.default.createElement("li", null, "CDS - shows the stitched together CDS sequences"),
21
- react_1.default.createElement("li", null, "Protein - the translated coding sequence, with the \"standard\" genetic code"),
22
- react_1.default.createElement("li", null, "cDNA - shows the 'copy DNA' of transcript, formed from exon sequences"),
23
- react_1.default.createElement("li", null, "Genomic w/ introns +/- Nbp up+down stream - the sequence underlying the entire gene including including introns, with UTR and CDS highlighted")),
24
- react_1.default.createElement(material_1.Typography, { paragraph: true }, "For other feature types, the options are:"),
25
- react_1.default.createElement("ul", null,
26
- react_1.default.createElement("li", null, "Genomic +/- Nbp up+down stream - the reference genome sequence underlying the feature, with the up and downstream sequence")),
27
- react_1.default.createElement(material_1.Typography, null,
28
- "Note 1: you can use the \"gear icon\" ",
29
- react_1.default.createElement(Settings_1.default, null),
30
- " to edit the number of bp displayed up/downstream and in the intron region"),
31
- react_1.default.createElement(material_1.Typography, null, "Note 2: The 'Copy HTML' function retains the colors from the sequence panel but cannot be pasted into some programs like notepad that only expect plain text.")),
32
- react_1.default.createElement(material_1.DialogActions, null,
33
- react_1.default.createElement(material_1.Button, { onClick: () => {
34
- handleClose();
35
- }, autoFocus: true, variant: "contained" }, "Close"))));
14
+ }, title: "Feature sequence panel help", children: [(0, jsx_runtime_1.jsxs)(material_1.DialogContent, { children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { paragraph: true, children: "The \"Feature sequence\" panel shows the underlying genomic sequence for a given feature, fetched from the reference genome." }), (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "For gene features, this panel does special calculations to e.g. stitch together the coding sequence, the options are:" }), (0, jsx_runtime_1.jsxs)("ul", { children: [(0, jsx_runtime_1.jsx)("li", { children: "CDS - shows the stitched together CDS sequences" }), (0, jsx_runtime_1.jsx)("li", { children: "Protein - the translated coding sequence, with the \"standard\" genetic code" }), (0, jsx_runtime_1.jsx)("li", { children: "cDNA - shows the 'copy DNA' of transcript, formed from exon sequences" }), (0, jsx_runtime_1.jsx)("li", { children: "Genomic w/ introns +/- Nbp up+down stream - the sequence underlying the entire gene including including introns, with UTR and CDS highlighted" })] }), (0, jsx_runtime_1.jsx)(material_1.Typography, { paragraph: true, children: "For other feature types, the options are:" }), (0, jsx_runtime_1.jsx)("ul", { children: (0, jsx_runtime_1.jsx)("li", { children: "Genomic +/- Nbp up+down stream - the reference genome sequence underlying the feature, with the up and downstream sequence" }) }), (0, jsx_runtime_1.jsxs)(material_1.Typography, { children: ["Note 1: you can use the \"gear icon\" ", (0, jsx_runtime_1.jsx)(Settings_1.default, {}), " to edit the number of bp displayed up/downstream and in the intron region"] }), (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Note 2: The 'Copy HTML' function retains the colors from the sequence panel but cannot be pasted into some programs like notepad that only expect plain text." })] }), (0, jsx_runtime_1.jsx)(material_1.DialogActions, { children: (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: () => {
15
+ handleClose();
16
+ }, autoFocus: true, variant: "contained", children: "Close" }) })] }));
36
17
  }
@@ -1,9 +1,8 @@
1
- import React from 'react';
2
- import { SimpleFeatureSerialized } from '../../../util';
3
- import { BaseFeatureWidgetModel } from '../../stateModelFactory';
1
+ import type { SimpleFeatureSerialized } from '../../../util';
2
+ import type { BaseFeatureWidgetModel } from '../../stateModelFactory';
4
3
  declare const SequenceDialog: ({ handleClose, model, feature, }: {
5
4
  handleClose: () => void;
6
5
  feature: SimpleFeatureSerialized;
7
6
  model: BaseFeatureWidgetModel;
8
- }) => React.JSX.Element;
7
+ }) => import("react/jsx-runtime").JSX.Element;
9
8
  export default SequenceDialog;