@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
@@ -1,12 +1,13 @@
1
+ import FeatureRendererType from './FeatureRendererType';
1
2
  import GranularRectLayout from '../../util/layouts/GranularRectLayout';
2
3
  import MultiLayout from '../../util/layouts/MultiLayout';
3
- import { SerializedLayout, BaseLayout } from '../../util/layouts/BaseLayout';
4
4
  import PrecomputedLayout from '../../util/layouts/PrecomputedLayout';
5
- import FeatureRendererType, { RenderArgs as FeatureRenderArgs, RenderArgsSerialized as FeatureRenderArgsSerialized, RenderArgsDeserialized as FeatureRenderArgsDeserialized, RenderResults as FeatureRenderResults, ResultsSerialized as FeatureResultsSerialized, ResultsDeserialized as FeatureResultsDeserialized } from './FeatureRendererType';
6
- import { Region, Feature } from '../../util';
7
- import { AnyConfigurationModel } from '../../configuration';
8
- import SerializableFilterChain from './util/serializableFilterChain';
9
- import RpcManager from '../../rpc/RpcManager';
5
+ import type { RenderArgs as FeatureRenderArgs, RenderArgsDeserialized as FeatureRenderArgsDeserialized, RenderArgsSerialized as FeatureRenderArgsSerialized, RenderResults as FeatureRenderResults, ResultsDeserialized as FeatureResultsDeserialized, ResultsSerialized as FeatureResultsSerialized } from './FeatureRendererType';
6
+ import type { AnyConfigurationModel } from '../../configuration';
7
+ import type { Feature, Region } from '../../util';
8
+ import type SerializableFilterChain from './util/serializableFilterChain';
9
+ import type RpcManager from '../../rpc/RpcManager';
10
+ import type { BaseLayout, SerializedLayout } from '../../util/layouts/BaseLayout';
10
11
  export interface LayoutSessionProps {
11
12
  config: AnyConfigurationModel;
12
13
  bpPerPx: number;
@@ -25,10 +26,6 @@ export declare class LayoutSession implements LayoutSessionProps {
25
26
  constructor(args: LayoutSessionProps);
26
27
  update(props: LayoutSessionProps): void;
27
28
  makeLayout(): MultiLayout<GranularRectLayout<unknown>, unknown>;
28
- /**
29
- * @param layout -
30
- * @returns true if the given layout is a valid one to use for this session
31
- */
32
29
  cachedLayoutIsValid(cachedLayout: CachedLayout): boolean;
33
30
  cachedLayout: CachedLayout | undefined;
34
31
  get layout(): MyMultiLayout;
@@ -74,10 +71,5 @@ export default class BoxRendererType extends FeatureRendererType {
74
71
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
75
72
  createLayoutInWorker(args: RenderArgsDeserialized): GranularRectLayout<unknown>;
76
73
  serializeResultsInWorker(results: RenderResults, args: RenderArgsDeserialized): ResultsSerialized;
77
- /**
78
- * gets layout and renders
79
- *
80
- * @param props - render args
81
- */
82
74
  render(props: RenderArgsDeserialized): Promise<RenderResults>;
83
75
  }
@@ -5,14 +5,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.LayoutSession = void 0;
7
7
  const fast_deep_equal_1 = __importDefault(require("fast-deep-equal"));
8
- // layouts
8
+ const FeatureRendererType_1 = __importDefault(require("./FeatureRendererType"));
9
+ const configuration_1 = require("../../configuration");
10
+ const util_1 = require("../../util");
9
11
  const GranularRectLayout_1 = __importDefault(require("../../util/layouts/GranularRectLayout"));
10
12
  const MultiLayout_1 = __importDefault(require("../../util/layouts/MultiLayout"));
11
13
  const PrecomputedLayout_1 = __importDefault(require("../../util/layouts/PrecomputedLayout"));
12
- // other
13
- const FeatureRendererType_1 = __importDefault(require("./FeatureRendererType"));
14
- const util_1 = require("../../util");
15
- const configuration_1 = require("../../configuration");
16
14
  class LayoutSession {
17
15
  constructor(args) {
18
16
  this.config = args.config;
@@ -31,10 +29,6 @@ class LayoutSession {
31
29
  pitchY: (0, configuration_1.readConfObject)(this.config, 'noSpacing') ? 1 : 3,
32
30
  });
33
31
  }
34
- /**
35
- * @param layout -
36
- * @returns true if the given layout is a valid one to use for this session
37
- */
38
32
  cachedLayoutIsValid(cachedLayout) {
39
33
  return (cachedLayout.layout.subLayoutConstructorArgs.pitchX === this.bpPerPx &&
40
34
  (0, fast_deep_equal_1.default)((0, configuration_1.readConfObject)(this.config), cachedLayout.config) &&
@@ -111,11 +105,6 @@ class BoxRendererType extends FeatureRendererType_1.default {
111
105
  serialized.maxHeightReached = serialized.layout.maxHeightReached;
112
106
  return serialized;
113
107
  }
114
- /**
115
- * gets layout and renders
116
- *
117
- * @param props - render args
118
- */
119
108
  async render(props) {
120
109
  const layout = props.layout ||
121
110
  this.createLayoutInWorker(props);
@@ -1,7 +1,7 @@
1
- import React from 'react';
2
- import { SimpleFeature, SimpleFeatureSerialized } from '../../util';
3
1
  import FeatureRenderer from './FeatureRendererType';
4
- import { ThemeOptions } from '@mui/material';
2
+ import { SimpleFeature } from '../../util';
3
+ import type { SimpleFeatureSerialized } from '../../util';
4
+ import type { ThemeOptions } from '@mui/material';
5
5
  export default class CircularChordRendererType extends FeatureRenderer {
6
6
  supportsSVG: boolean;
7
7
  deserializeResultsInClient(res: {
@@ -20,7 +20,7 @@ export default class CircularChordRendererType extends FeatureRenderer {
20
20
  } | {
21
21
  features: Map<string, SimpleFeature>;
22
22
  blockKey: string;
23
- reactElement: React.JSX.Element;
23
+ reactElement: import("react/jsx-runtime").JSX.Element;
24
24
  html: string;
25
25
  };
26
26
  }
@@ -3,10 +3,10 @@ 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"));
7
- const util_1 = require("../../util");
6
+ const jsx_runtime_1 = require("react/jsx-runtime");
8
7
  const FeatureRendererType_1 = __importDefault(require("./FeatureRendererType"));
9
8
  const RpcRenderedSvgGroup_1 = __importDefault(require("./RpcRenderedSvgGroup"));
9
+ const util_1 = require("../../util");
10
10
  class CircularChordRendererType extends FeatureRendererType_1.default {
11
11
  constructor() {
12
12
  super(...arguments);
@@ -14,11 +14,7 @@ class CircularChordRendererType extends FeatureRendererType_1.default {
14
14
  }
15
15
  deserializeResultsInClient(res, args) {
16
16
  const deserializedFeatures = new Map(res.features.map(f => util_1.SimpleFeature.fromJSON(f)).map(f => [f.id(), f]));
17
- // if we are rendering svg, we skip hydration
18
17
  if (args.exportSVG) {
19
- // only return the res if the renderer explicitly has
20
- // this.supportsSVG support to avoid garbage being rendered in SVG
21
- // document
22
18
  return {
23
19
  ...res,
24
20
  features: deserializedFeatures,
@@ -28,12 +24,11 @@ class CircularChordRendererType extends FeatureRendererType_1.default {
28
24
  : '<text y="12" fill="black">SVG export not supported for this track</text>',
29
25
  };
30
26
  }
31
- // hydrate res using ServerSideRenderedContent
32
27
  return {
33
28
  ...res,
34
29
  features: deserializedFeatures,
35
30
  blockKey: 'circularChord',
36
- reactElement: (react_1.default.createElement(RpcRenderedSvgGroup_1.default, { ...args, ...res, features: deserializedFeatures, RenderingComponent: this.ReactComponent })),
31
+ reactElement: ((0, jsx_runtime_1.jsx)(RpcRenderedSvgGroup_1.default, { ...args, ...res, features: deserializedFeatures, RenderingComponent: this.ReactComponent })),
37
32
  };
38
33
  }
39
34
  }
@@ -1,8 +1,9 @@
1
- import { Feature } from '../../util/simpleFeature';
2
- import { Region } from '../../util/types';
3
- import ServerSideRenderer, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, ResultsSerialized as ServerSideResultsSerialized, ResultsDeserialized as ServerSideResultsDeserialized } from './ServerSideRendererType';
4
- import RpcManager from '../../rpc/RpcManager';
5
- import { AnyConfigurationModel } from '../../configuration';
1
+ import ServerSideRenderer from './ServerSideRendererType';
2
+ import type { RenderArgs as ServerSideRenderArgs, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderArgsSerialized as ServerSideRenderArgsSerialized, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
3
+ import type { AnyConfigurationModel } from '../../configuration';
4
+ import type RpcManager from '../../rpc/RpcManager';
5
+ import type { Feature } from '../../util/simpleFeature';
6
+ import type { Region } from '../../util/types';
6
7
  export interface RenderArgs extends ServerSideRenderArgs {
7
8
  blockKey: string;
8
9
  }
@@ -23,26 +24,10 @@ export interface ResultsSerializedSvgExport extends ResultsSerialized {
23
24
  reactElement: unknown;
24
25
  }
25
26
  export default class ComparativeServerSideRenderer extends ServerSideRenderer {
26
- /**
27
- * directly modifies the render arguments to prepare them to be serialized
28
- * and sent to the worker.
29
- *
30
- * @param args - the arguments passed to render
31
- * @returns the same object
32
- */
33
27
  renameRegionsIfNeeded(args: RenderArgs): Promise<RenderArgs>;
34
28
  serializeArgsInClient(args: RenderArgs): ServerSideRenderArgsSerialized;
35
29
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
36
- /**
37
- * Render method called on the client. Serializes args, then
38
- * calls `render` with the RPC manager.
39
- */
40
30
  renderInClient(rpcManager: RpcManager, args: RenderArgs): Promise<ServerSideResultsSerialized>;
41
- /**
42
- * @param renderArgs -
43
- * @param feature -
44
- * @returns true if this feature passes all configured filters
45
- */
46
31
  featurePassesFilters(renderArgs: RenderArgsDeserialized, feature: Feature): boolean;
47
32
  getFeatures(renderArgs: {
48
33
  regions: Region[];
@@ -3,22 +3,15 @@ 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 rxjs_1 = require("rxjs");
6
7
  const operators_1 = require("rxjs/operators");
7
8
  const ServerSideRendererType_1 = __importDefault(require("./ServerSideRendererType"));
8
9
  const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
9
10
  const util_1 = require("../../util");
10
- const rxjs_1 = require("rxjs");
11
11
  function isSvgExport(e) {
12
12
  return 'canvasRecordedData' in e;
13
13
  }
14
14
  class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
15
- /**
16
- * directly modifies the render arguments to prepare them to be serialized
17
- * and sent to the worker.
18
- *
19
- * @param args - the arguments passed to render
20
- * @returns the same object
21
- */
22
15
  async renameRegionsIfNeeded(args) {
23
16
  return args;
24
17
  }
@@ -29,7 +22,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
29
22
  };
30
23
  return super.serializeArgsInClient(deserializedArgs);
31
24
  }
32
- // deserialize some of the results that came back from the worker
33
25
  deserializeResultsInClient(result, args) {
34
26
  const deserialized = super.deserializeResultsInClient(result, args);
35
27
  return {
@@ -37,10 +29,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
37
29
  blockKey: args.blockKey,
38
30
  };
39
31
  }
40
- /**
41
- * Render method called on the client. Serializes args, then
42
- * calls `render` with the RPC manager.
43
- */
44
32
  async renderInClient(rpcManager, args) {
45
33
  const results = (await rpcManager.call(args.sessionId, 'ComparativeRender', args));
46
34
  if (isSvgExport(results)) {
@@ -49,11 +37,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
49
37
  }
50
38
  return results;
51
39
  }
52
- /**
53
- * @param renderArgs -
54
- * @param feature -
55
- * @returns true if this feature passes all configured filters
56
- */
57
40
  featurePassesFilters(renderArgs, feature) {
58
41
  return renderArgs.filters
59
42
  ? renderArgs.filters.passes(feature, renderArgs)
@@ -64,8 +47,6 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
64
47
  const { regions, sessionId, adapterConfig } = renderArgs;
65
48
  const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
66
49
  const requestRegions = regions.map(r => {
67
- // make sure the requested region's start and end are integers, if
68
- // there is a region specification.
69
50
  const requestRegion = { ...r };
70
51
  if (requestRegion.start) {
71
52
  requestRegion.start = Math.floor(requestRegion.start);
@@ -75,13 +56,9 @@ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
75
56
  }
76
57
  return requestRegion;
77
58
  });
78
- // note that getFeaturesInMultipleRegions does not do glyph expansion
79
59
  const res = await (0, rxjs_1.firstValueFrom)(dataAdapter
80
60
  .getFeaturesInMultipleRegions(requestRegions, renderArgs)
81
- .pipe(
82
- // @ts-expect-error
83
- (0, operators_1.filter)(f => this.featurePassesFilters(renderArgs, f)), (0, operators_1.toArray)()));
84
- // dedupe needed xref https://github.com/GMOD/jbrowse-components/pull/3404/
61
+ .pipe((0, operators_1.filter)(f => this.featurePassesFilters(renderArgs, f)), (0, operators_1.toArray)()));
85
62
  return (0, util_1.dedupe)(res, f => f.id());
86
63
  }
87
64
  }
@@ -1,7 +1,8 @@
1
- import { Feature, SimpleFeatureSerialized } from '../../util/simpleFeature';
2
- import { AugmentedRegion as Region } from '../../util/types';
3
- import ServerSideRendererType, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderResults as ServerSideRenderResults, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
4
- import { AnyConfigurationModel } from '../../configuration';
1
+ import ServerSideRendererType from './ServerSideRendererType';
2
+ import type { RenderArgs as ServerSideRenderArgs, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderResults as ServerSideRenderResults, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
3
+ import type { AnyConfigurationModel } from '../../configuration';
4
+ import type { Feature, SimpleFeatureSerialized } from '../../util/simpleFeature';
5
+ import type { AugmentedRegion as Region } from '../../util/types';
5
6
  export interface RenderArgs extends ServerSideRenderArgs {
6
7
  displayModel?: {
7
8
  id: string;
@@ -38,55 +39,12 @@ export interface ResultsDeserialized extends ServerSideResultsDeserialized {
38
39
  blockKey: string;
39
40
  }
40
41
  export default class FeatureRendererType extends ServerSideRendererType {
41
- /**
42
- * replaces the `displayModel` param (which on the client is a MST model)
43
- * with a stub that only contains the `selectedFeature`, since this is the
44
- * only part of the track model that most renderers read. also serializes the
45
- * config and regions to JSON from MST objects.
46
- *
47
- * @param args - the arguments passed to render
48
- */
49
42
  serializeArgsInClient(args: RenderArgs): ServerSideRenderArgsSerialized;
50
- /**
51
- * Adds feature deserialization to base server-side result deserialization
52
- *
53
- * @param results - the results of the render
54
- * @param args - the arguments passed to render
55
- */
56
43
  deserializeResultsInClient(result: ResultsSerialized, args: RenderArgs): ResultsDeserialized;
57
- /**
58
- * Adds feature serialization to base server-side result serialization
59
- *
60
- * @param result - object containing the results of calling the `render`
61
- * method
62
- * @param args - deserialized render args
63
- */
64
44
  serializeResultsInWorker(result: RenderResults, args: RenderArgsDeserialized): ResultsSerialized;
65
- /**
66
- * will expand if soft clipping or feature glyphs are shown
67
- *
68
- * @param region - rendering region
69
- * @param _renderArgs - render args, unused, may be used in deriving classes
70
- */
71
45
  getExpandedRegion(region: Region, _renderArgs: RenderArgsDeserialized): Region;
72
- /**
73
- * use the dataAdapter to fetch the features to be rendered
74
- *
75
- * @param renderArgs -
76
- * @returns Map of features as `{ id => feature, ... }`
77
- */
78
46
  getFeatures(renderArgs: RenderArgsDeserialized): Promise<Map<string, Feature>>;
79
- /**
80
- * @param renderArgs -
81
- * @param feature -
82
- * @returns true if this feature passes all configured filters
83
- */
84
47
  featurePassesFilters(renderArgs: RenderArgsDeserialized, feature: Feature): boolean;
85
- /**
86
- * gets features and renders
87
- *
88
- * @param props - render args
89
- */
90
48
  render(props: RenderArgsDeserialized & {
91
49
  features?: Map<string, Feature>;
92
50
  }): Promise<RenderResults>;
@@ -3,39 +3,22 @@ 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 operators_1 = require("rxjs/operators");
7
- const clone_1 = __importDefault(require("clone"));
8
6
  const rxjs_1 = require("rxjs");
9
- // locals
10
- const util_1 = require("../../util");
11
- const simpleFeature_1 = __importDefault(require("../../util/simpleFeature"));
12
- const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
7
+ const operators_1 = require("rxjs/operators");
13
8
  const ServerSideRendererType_1 = __importDefault(require("./ServerSideRendererType"));
14
9
  const BaseAdapter_1 = require("../../data_adapters/BaseAdapter");
10
+ const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
11
+ const util_1 = require("../../util");
12
+ const simpleFeature_1 = __importDefault(require("../../util/simpleFeature"));
13
+ const stopToken_1 = require("../../util/stopToken");
15
14
  class FeatureRendererType extends ServerSideRendererType_1.default {
16
- /**
17
- * replaces the `displayModel` param (which on the client is a MST model)
18
- * with a stub that only contains the `selectedFeature`, since this is the
19
- * only part of the track model that most renderers read. also serializes the
20
- * config and regions to JSON from MST objects.
21
- *
22
- * @param args - the arguments passed to render
23
- */
24
15
  serializeArgsInClient(args) {
25
- const { regions } = args;
26
- const serializedArgs = {
16
+ return super.serializeArgsInClient({
27
17
  ...args,
28
18
  displayModel: undefined,
29
- regions: (0, clone_1.default)(regions),
30
- };
31
- return super.serializeArgsInClient(serializedArgs);
19
+ regions: structuredClone(args.regions),
20
+ });
32
21
  }
33
- /**
34
- * Adds feature deserialization to base server-side result deserialization
35
- *
36
- * @param results - the results of the render
37
- * @param args - the arguments passed to render
38
- */
39
22
  deserializeResultsInClient(result, args) {
40
23
  const deserializedFeatures = new Map(result.features.map(f => simpleFeature_1.default.fromJSON(f)).map(f => [f.id(), f]));
41
24
  const deserialized = super.deserializeResultsInClient({
@@ -48,13 +31,6 @@ class FeatureRendererType extends ServerSideRendererType_1.default {
48
31
  features: deserializedFeatures,
49
32
  };
50
33
  }
51
- /**
52
- * Adds feature serialization to base server-side result serialization
53
- *
54
- * @param result - object containing the results of calling the `render`
55
- * method
56
- * @param args - deserialized render args
57
- */
58
34
  serializeResultsInWorker(result, args) {
59
35
  const serialized = super.serializeResultsInWorker(result, args);
60
36
  const { features } = result;
@@ -63,65 +39,36 @@ class FeatureRendererType extends ServerSideRendererType_1.default {
63
39
  features: (0, util_1.iterMap)(features.values(), f => f.toJSON(), features.size),
64
40
  };
65
41
  }
66
- /**
67
- * will expand if soft clipping or feature glyphs are shown
68
- *
69
- * @param region - rendering region
70
- * @param _renderArgs - render args, unused, may be used in deriving classes
71
- */
72
42
  getExpandedRegion(region, _renderArgs) {
73
43
  return region;
74
44
  }
75
- /**
76
- * use the dataAdapter to fetch the features to be rendered
77
- *
78
- * @param renderArgs -
79
- * @returns Map of features as `{ id => feature, ... }`
80
- */
81
45
  async getFeatures(renderArgs) {
82
46
  const pm = this.pluginManager;
83
- const { signal, regions, sessionId, adapterConfig } = renderArgs;
47
+ const { stopToken, regions, sessionId, adapterConfig } = renderArgs;
84
48
  const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
85
49
  if (!(0, BaseAdapter_1.isFeatureAdapter)(dataAdapter)) {
86
50
  throw new Error('Adapter does not support retrieving features');
87
51
  }
88
- // make sure the requested region's start and end are integers, if
89
- // there is a region specification.
90
- const requestRegions = regions.map(r => {
91
- const requestRegion = { ...r };
92
- if (requestRegion.start) {
93
- requestRegion.start = Math.floor(requestRegion.start);
94
- }
95
- if (requestRegion.end) {
96
- requestRegion.end = Math.ceil(requestRegion.end);
97
- }
98
- return requestRegion;
99
- });
52
+ const requestRegions = regions.map(r => ({
53
+ ...r,
54
+ start: Math.floor(r.start),
55
+ end: Math.ceil(r.end),
56
+ }));
100
57
  const region = requestRegions[0];
101
58
  const featureObservable = requestRegions.length === 1
102
59
  ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), renderArgs)
103
60
  : dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
104
61
  const feats = await (0, rxjs_1.firstValueFrom)(featureObservable.pipe((0, operators_1.toArray)()));
105
- (0, util_1.checkAbortSignal)(signal);
62
+ (0, stopToken_1.checkStopToken)(stopToken);
106
63
  return new Map(feats
107
64
  .filter(feat => this.featurePassesFilters(renderArgs, feat))
108
65
  .map(feat => [feat.id(), feat]));
109
66
  }
110
- /**
111
- * @param renderArgs -
112
- * @param feature -
113
- * @returns true if this feature passes all configured filters
114
- */
115
67
  featurePassesFilters(renderArgs, feature) {
116
68
  return renderArgs.filters
117
69
  ? renderArgs.filters.passes(feature, renderArgs)
118
70
  : true;
119
71
  }
120
- /**
121
- * gets features and renders
122
- *
123
- * @param props - render args
124
- */
125
72
  async render(props) {
126
73
  const features = props.features || (await this.getFeatures(props));
127
74
  const result = await super.render({ ...props, features });
@@ -1,11 +1,11 @@
1
- import { ReactElement } from 'react';
1
+ import type React from 'react';
2
2
  import PluggableElementBase from '../PluggableElementBase';
3
- import { AnyConfigurationSchemaType } from '../../configuration';
4
- import { AnyReactComponentType } from '../../util';
5
- import PluginManager from '../../PluginManager';
3
+ import type PluginManager from '../../PluginManager';
4
+ import type { AnyConfigurationSchemaType } from '../../configuration';
5
+ import type { AnyReactComponentType } from '../../util';
6
6
  export type RenderProps = Record<string, unknown>;
7
7
  export interface RenderResults {
8
- reactElement?: ReactElement;
8
+ reactElement?: React.ReactElement;
9
9
  html?: string;
10
10
  }
11
11
  export default class RendererType extends PluggableElementBase {
@@ -21,9 +21,5 @@ export default class RendererType extends PluggableElementBase {
21
21
  pluginManager: PluginManager;
22
22
  });
23
23
  render(props: RenderProps): Promise<RenderResults>;
24
- /**
25
- * frees resources associated with the given range, session, etc.
26
- * optionally returns the number of data items deleted
27
- */
28
24
  freeResources(): number;
29
25
  }
@@ -3,7 +3,7 @@ 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
7
  const PluggableElementBase_1 = __importDefault(require("../PluggableElementBase"));
8
8
  class RendererType extends PluggableElementBase_1.default {
9
9
  constructor(stuff) {
@@ -15,14 +15,10 @@ class RendererType extends PluggableElementBase_1.default {
15
15
  }
16
16
  async render(props) {
17
17
  return {
18
- reactElement: react_1.default.createElement(this.ReactComponent, props, null),
18
+ reactElement: (0, jsx_runtime_1.jsx)(this.ReactComponent, { ...props }),
19
19
  };
20
20
  }
21
- /**
22
- * frees resources associated with the given range, session, etc.
23
- * optionally returns the number of data items deleted
24
- */
25
- freeResources( /* specification: {} */) {
21
+ freeResources() {
26
22
  return 0;
27
23
  }
28
24
  }
@@ -1,6 +1,5 @@
1
- import React from 'react';
2
- import { AnyReactComponentType, Feature } from '../../util';
3
- import { ThemeOptions } from '@mui/material';
1
+ import type { AnyReactComponentType, Feature } from '../../util';
2
+ import type { ThemeOptions } from '@mui/material';
4
3
  interface Props {
5
4
  html: string;
6
5
  features: Map<string, Feature>;
@@ -8,5 +7,5 @@ interface Props {
8
7
  displayModel?: any;
9
8
  RenderingComponent: AnyReactComponentType;
10
9
  }
11
- declare const RpcRenderedSvgGroup: (props: Props) => React.JSX.Element;
10
+ declare const RpcRenderedSvgGroup: (props: Props) => import("react/jsx-runtime").JSX.Element;
12
11
  export default RpcRenderedSvgGroup;
@@ -1,44 +1,16 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
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
- };
25
2
  Object.defineProperty(exports, "__esModule", { value: true });
26
- const react_1 = __importStar(require("react"));
27
- const mobx_react_1 = require("mobx-react");
28
- // locals
29
- const util_1 = require("../../util");
3
+ const jsx_runtime_1 = require("react/jsx-runtime");
4
+ const react_1 = require("react");
30
5
  const material_1 = require("@mui/material");
6
+ const mobx_react_1 = require("mobx-react");
7
+ const client_1 = require("react-dom/client");
31
8
  const ui_1 = require("../../ui");
32
- const mobx_state_tree_1 = require("mobx-state-tree");
33
- // eslint-disable-next-line react/no-deprecated
34
- const react_dom_1 = require("react-dom");
35
- const NewHydrate = (0, mobx_react_1.observer)(function RpcRenderedSvgGroup(props) {
9
+ const util_1 = require("../../util");
10
+ const RpcRenderedSvgGroup = (0, mobx_react_1.observer)(function RpcRenderedSvgGroup(props) {
36
11
  const { html, theme, RenderingComponent, ...rest } = props;
37
12
  const ref = (0, react_1.useRef)(null);
38
- // this `any` is a react-dom/client::Root
39
- const rootRef = (0, react_1.useRef)();
40
- const root = (0, mobx_state_tree_1.getRoot)(props.displayModel);
41
- const hydrateRoot = root.hydrateFn;
13
+ const rootRef = (0, react_1.useRef)(null);
42
14
  (0, react_1.useEffect)(() => {
43
15
  const renderTimeout = (0, util_1.rIC)(() => {
44
16
  var _a;
@@ -47,56 +19,19 @@ const NewHydrate = (0, mobx_react_1.observer)(function RpcRenderedSvgGroup(props
47
19
  }
48
20
  const jbrowseTheme = (0, ui_1.createJBrowseTheme)(theme);
49
21
  rootRef.current =
50
- (_a = rootRef.current) !== null && _a !== void 0 ? _a : hydrateRoot(ref.current, react_1.default.createElement(material_1.ThemeProvider, { theme: jbrowseTheme },
51
- react_1.default.createElement(RenderingComponent, { ...rest })));
22
+ (_a = rootRef.current) !== null && _a !== void 0 ? _a : (0, client_1.hydrateRoot)(ref.current, (0, jsx_runtime_1.jsx)(material_1.ThemeProvider, { theme: jbrowseTheme, children: (0, jsx_runtime_1.jsx)(RenderingComponent, { ...rest }) }));
52
23
  });
53
24
  return () => {
54
25
  if (renderTimeout !== undefined) {
55
26
  clearTimeout(renderTimeout);
56
27
  }
57
28
  const root = rootRef.current;
58
- rootRef.current = undefined;
29
+ rootRef.current = null;
59
30
  setTimeout(() => {
60
31
  root === null || root === void 0 ? void 0 : root.unmount();
61
32
  });
62
33
  };
63
- // biome-ignore lint/correctness/useExhaustiveDependencies:
64
- }, [RenderingComponent, hydrateRoot, theme, rest]);
65
- return react_1.default.createElement("g", { ref: ref, dangerouslySetInnerHTML: { __html: html } });
66
- });
67
- const OldHydrate = (0, mobx_react_1.observer)(function OldHydrate(props) {
68
- const { html, RenderingComponent } = props;
69
- const ref = (0, react_1.useRef)(null);
70
- (0, react_1.useEffect)(() => {
71
- const domNode = ref.current;
72
- function doHydrate() {
73
- if (domNode && html) {
74
- if (domNode.innerHTML) {
75
- (0, react_dom_1.unmountComponentAtNode)(domNode);
76
- }
77
- // setting outline:none fixes react "focusable" element issue. see
78
- // https://github.com/GMOD/jbrowse-components/issues/2160
79
- domNode.style.outline = 'none';
80
- domNode.innerHTML = html;
81
- // use requestIdleCallback to defer main-thread rendering and
82
- // hydration for when we have some free time. helps keep the
83
- // framerate up.
84
- (0, util_1.rIC)(() => {
85
- (0, react_dom_1.hydrate)(react_1.default.createElement(RenderingComponent, { ...props }), domNode);
86
- });
87
- }
88
- }
89
- doHydrate();
90
- return () => {
91
- if (domNode) {
92
- (0, react_dom_1.unmountComponentAtNode)(domNode);
93
- }
94
- };
95
- }, [html, RenderingComponent, props]);
96
- return react_1.default.createElement("g", { ref: ref });
97
- });
98
- const RpcRenderedSvgGroup = (0, mobx_react_1.observer)(function (props) {
99
- const root = (0, mobx_state_tree_1.getRoot)(props.displayModel);
100
- return root.hydrateFn ? react_1.default.createElement(NewHydrate, { ...props }) : react_1.default.createElement(OldHydrate, { ...props });
34
+ }, [RenderingComponent, theme, rest]);
35
+ return (0, jsx_runtime_1.jsx)("g", { ref: ref, dangerouslySetInnerHTML: { __html: html } });
101
36
  });
102
37
  exports.default = RpcRenderedSvgGroup;