@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.10

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 (611) hide show
  1. package/README.md +1476 -265
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +16 -9
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +50 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
  28. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
  29. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  30. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
  31. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
  32. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
  33. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
  34. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  35. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  36. package/esm/BaseFeatureWidget/formatDetails.js +62 -83
  37. package/esm/BaseFeatureWidget/index.d.ts +2 -1
  38. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
  39. package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
  40. package/esm/BaseFeatureWidget/types.d.ts +12 -6
  41. package/esm/BaseFeatureWidget/util.d.ts +0 -10
  42. package/esm/BaseFeatureWidget/util.js +0 -17
  43. package/esm/CorePlugin.js +2 -2
  44. package/esm/PluginLoader.d.ts +24 -13
  45. package/esm/PluginLoader.js +167 -51
  46. package/esm/PluginManager.d.ts +130 -24
  47. package/esm/PluginManager.js +180 -32
  48. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  49. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  50. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  51. package/esm/ReExports/coreModules.generated.js +528 -0
  52. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  53. package/esm/ReExports/coreWorkerModules.generated.js +488 -0
  54. package/esm/ReExports/frameworkModules.d.ts +2 -0
  55. package/esm/ReExports/frameworkModules.js +68 -0
  56. package/esm/ReExports/frameworkShared.d.ts +12 -0
  57. package/esm/ReExports/frameworkShared.js +16 -0
  58. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  59. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  60. package/esm/ReExports/list.js +527 -79
  61. package/esm/ReExports/modules.d.ts +1 -1
  62. package/esm/ReExports/modules.js +10 -165
  63. package/esm/ReExports/registry.d.ts +1 -0
  64. package/esm/ReExports/registry.js +23 -5
  65. package/esm/ReExports/uiStub.d.ts +3 -0
  66. package/esm/ReExports/uiStub.js +33 -0
  67. package/esm/ReExports/workerModules.d.ts +2 -0
  68. package/esm/ReExports/workerModules.js +11 -0
  69. package/esm/TextSearch/TextSearchManager.d.ts +27 -13
  70. package/esm/TextSearch/TextSearchManager.js +77 -36
  71. package/esm/TextSearch/places.d.ts +12 -0
  72. package/esm/TextSearch/places.js +94 -0
  73. package/esm/assemblyManager/assembly.d.ts +21 -19
  74. package/esm/assemblyManager/assembly.js +28 -26
  75. package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
  76. package/esm/assemblyManager/assemblyAdapters.js +8 -2
  77. package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
  78. package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
  79. package/esm/assemblyManager/assemblyManager.d.ts +35 -180
  80. package/esm/assemblyManager/assemblyManager.js +47 -51
  81. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
  82. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
  83. package/esm/assemblyManager/geneticCodes.js +2 -5
  84. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
  85. package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
  86. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  87. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  88. package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
  89. package/esm/assemblyManager/loadRefNameMap.js +4 -9
  90. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  91. package/esm/assemblyManager/refNameMapKey.js +12 -0
  92. package/esm/checkPlugins.d.ts +2 -0
  93. package/esm/checkPlugins.js +38 -17
  94. package/esm/configuration/bamIndexFields.d.ts +49 -0
  95. package/esm/configuration/bamIndexFields.js +41 -0
  96. package/esm/configuration/configurationSchema.d.ts +101 -71
  97. package/esm/configuration/configurationSchema.js +207 -134
  98. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  99. package/esm/configuration/configurationSchemaUnion.js +56 -0
  100. package/esm/configuration/configurationSlot.d.ts +150 -60
  101. package/esm/configuration/configurationSlot.js +103 -75
  102. package/esm/configuration/fillLocations.d.ts +14 -0
  103. package/esm/configuration/fillLocations.js +14 -0
  104. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  105. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  106. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  107. package/esm/configuration/fullConfSnapshot.d.ts +4 -19
  108. package/esm/configuration/fullConfSnapshot.js +30 -52
  109. package/esm/configuration/getConf.d.ts +45 -41
  110. package/esm/configuration/getConf.js +111 -44
  111. package/esm/configuration/index.d.ts +24 -11
  112. package/esm/configuration/index.js +15 -7
  113. package/esm/configuration/indexType.d.ts +26 -0
  114. package/esm/configuration/indexType.js +38 -0
  115. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  116. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  117. package/esm/configuration/readConfObject.d.ts +2 -24
  118. package/esm/configuration/readConfObject.js +20 -63
  119. package/esm/configuration/requirements.d.ts +37 -0
  120. package/esm/configuration/requirements.js +88 -0
  121. package/esm/configuration/schemaRegistry.d.ts +32 -15
  122. package/esm/configuration/schemaRegistry.js +33 -35
  123. package/esm/configuration/schemaTypes.d.ts +21 -5
  124. package/esm/configuration/schemaTypes.js +66 -55
  125. package/esm/configuration/slotFacade.d.ts +12 -29
  126. package/esm/configuration/slotFacade.js +44 -23
  127. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  128. package/esm/configuration/snapshotPreprocess.js +161 -0
  129. package/esm/configuration/tabixIndexFields.d.ts +30 -4
  130. package/esm/configuration/tabixIndexFields.js +21 -4
  131. package/esm/configuration/tabixShorthand.d.ts +34 -17
  132. package/esm/configuration/tabixShorthand.js +49 -22
  133. package/esm/configuration/types.d.ts +182 -43
  134. package/esm/configuration/uriShorthand.d.ts +9 -0
  135. package/esm/configuration/uriShorthand.js +16 -0
  136. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
  137. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
  138. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
  139. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
  140. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  141. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  142. package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
  143. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  144. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  145. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  146. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  147. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  148. package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
  149. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  150. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
  151. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
  152. package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
  153. package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
  154. package/esm/data_adapters/dataAdapterCache.js +44 -10
  155. package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
  156. package/esm/data_adapters/getFeatureAdapter.js +8 -8
  157. package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
  158. package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
  159. package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
  160. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  161. package/esm/pluggableElementTypes/DisplayType.d.ts +46 -16
  162. package/esm/pluggableElementTypes/DisplayType.js +22 -12
  163. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  164. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  165. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
  166. package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
  167. package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
  168. package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
  169. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  170. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  171. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  172. package/esm/pluggableElementTypes/ViewType.js +32 -4
  173. package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
  174. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  175. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  176. package/esm/pluggableElementTypes/index.d.ts +2 -1
  177. package/esm/pluggableElementTypes/index.js +1 -1
  178. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
  179. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +65 -27
  180. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +72 -10
  181. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
  182. package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
  183. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +85 -16
  184. package/esm/pluggableElementTypes/models/BaseViewModel.js +53 -10
  185. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  186. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
  187. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  188. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  189. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  190. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  191. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
  192. package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
  193. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
  194. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  195. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  196. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
  197. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
  198. package/esm/pluggableElementTypes/models/index.d.ts +2 -3
  199. package/esm/pluggableElementTypes/models/index.js +2 -3
  200. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
  201. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
  202. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
  203. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
  204. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  205. package/esm/pluginDefinitions.d.ts +34 -7
  206. package/esm/pluginDefinitions.js +54 -20
  207. package/esm/rpc/BaseRpcDriver.d.ts +2 -2
  208. package/esm/rpc/BaseRpcDriver.js +25 -30
  209. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  210. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  211. package/esm/rpc/RpcClient.d.ts +18 -6
  212. package/esm/rpc/RpcClient.js +51 -16
  213. package/esm/rpc/RpcManager.d.ts +14 -10
  214. package/esm/rpc/RpcManager.js +11 -1
  215. package/esm/rpc/RpcRegistry.d.ts +40 -7
  216. package/esm/rpc/RpcServer.d.ts +3 -1
  217. package/esm/rpc/RpcServer.js +19 -12
  218. package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
  219. package/esm/rpc/WebWorkerRpcDriver.js +64 -68
  220. package/esm/rpc/byteBudget.d.ts +20 -5
  221. package/esm/rpc/byteBudget.js +16 -5
  222. package/esm/rpc/configSchema.d.ts +7 -21
  223. package/esm/rpc/coreRpcMethods.d.ts +4 -0
  224. package/esm/rpc/coreRpcMethods.js +4 -0
  225. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  226. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  227. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  228. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  229. package/esm/rpc/methods/CoreGetExportData.js +3 -4
  230. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  231. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  232. package/esm/rpc/methods/CoreGetFeatures.js +3 -5
  233. package/esm/rpc/methods/CoreGetRefNames.js +2 -12
  234. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
  235. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  236. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  237. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  238. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  239. package/esm/rpc/methods/layerFeatures.js +29 -0
  240. package/esm/svg/SvgExport.js +6 -7
  241. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  242. package/esm/svg/SvgThemeProviders.js +15 -0
  243. package/esm/svg/exportViewSvg.d.ts +28 -0
  244. package/esm/svg/exportViewSvg.js +13 -0
  245. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  246. package/esm/svg/normalizeSvgMarkup.js +99 -0
  247. package/esm/svg/serializeSvg.d.ts +7 -0
  248. package/esm/svg/serializeSvg.js +11 -0
  249. package/esm/svg/svgId.d.ts +1 -1
  250. package/esm/svg/svgId.js +1 -1
  251. package/esm/svg/svgReady.d.ts +9 -7
  252. package/esm/svg/svgReady.js +8 -7
  253. package/esm/svg/trackNames.d.ts +7 -5
  254. package/esm/svg/trackNames.js +12 -9
  255. package/esm/svg/wrapSvgExport.js +6 -74
  256. package/esm/ui/AddCustomPluginDialog.js +3 -8
  257. package/esm/ui/AppReadyMarker.d.ts +45 -0
  258. package/esm/ui/AppReadyMarker.js +89 -0
  259. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  260. package/esm/ui/CascadingMenu.js +181 -104
  261. package/esm/ui/DropDownMenu.js +2 -1
  262. package/esm/ui/ErrorBanner.js +1 -1
  263. package/esm/ui/ErrorBoundary.d.ts +2 -2
  264. package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
  265. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
  266. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  267. package/esm/ui/FileDropZone.js +2 -1
  268. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  269. package/esm/ui/HoverMenu.d.ts +1 -2
  270. package/esm/ui/HoverMenu.js +6 -3
  271. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  272. package/esm/ui/JexlFilterDialog.js +122 -49
  273. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  274. package/esm/ui/JexlFilterRowEditors.js +90 -0
  275. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  276. package/esm/ui/LazyBaseTooltip.js +9 -0
  277. package/esm/ui/LegendSwatchGlyph.js +26 -21
  278. package/esm/ui/LoadingOverlay.d.ts +14 -0
  279. package/esm/ui/LoadingOverlay.js +4 -2
  280. package/esm/ui/MenuTypes.d.ts +23 -53
  281. package/esm/ui/MenuTypes.js +3 -0
  282. package/esm/ui/MonospaceTextField.d.ts +2 -1
  283. package/esm/ui/MonospaceTextField.js +23 -20
  284. package/esm/ui/PaletteContext.d.ts +10 -5
  285. package/esm/ui/PaletteContext.js +44 -6
  286. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  287. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  288. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  289. package/esm/ui/RefNameAutocomplete/index.js +8 -2
  290. package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
  291. package/esm/ui/RefNameAutocomplete/util.js +42 -1
  292. package/esm/ui/ResizeHandle.d.ts +3 -1
  293. package/esm/ui/ResizeHandle.js +44 -11
  294. package/esm/ui/ScrollChrome.d.ts +13 -0
  295. package/esm/ui/ScrollChrome.js +11 -0
  296. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  297. package/esm/ui/ScrollEdgeShadow.js +14 -35
  298. package/esm/ui/ScrollZoomToggle.d.ts +4 -27
  299. package/esm/ui/ScrollZoomToggle.js +34 -51
  300. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  301. package/esm/ui/SessionJsonPanel.js +14 -0
  302. package/esm/ui/SettingsChangesTable.d.ts +1 -0
  303. package/esm/ui/SettingsChangesTable.js +49 -11
  304. package/esm/ui/ShareLinkField.d.ts +1 -3
  305. package/esm/ui/ShareLinkField.js +13 -40
  306. package/esm/ui/SizeSliderRow.d.ts +1 -3
  307. package/esm/ui/SizeSliderRow.js +4 -6
  308. package/esm/ui/SnackbarModel.js +79 -67
  309. package/esm/ui/StatusProgressBar.js +2 -2
  310. package/esm/ui/SvgColorLegend.d.ts +9 -4
  311. package/esm/ui/SvgColorLegend.js +82 -41
  312. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  313. package/esm/ui/VerticalScrollbar.js +29 -83
  314. package/esm/ui/ViewLoadingScreen.d.ts +5 -4
  315. package/esm/ui/ViewLoadingScreen.js +8 -32
  316. package/esm/ui/colorScale.d.ts +92 -0
  317. package/esm/ui/colorScale.js +72 -0
  318. package/esm/ui/colors.d.ts +64 -0
  319. package/esm/ui/colors.js +230 -1
  320. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  321. package/esm/ui/hoverBoxStyle.js +17 -2
  322. package/esm/ui/index.d.ts +12 -12
  323. package/esm/ui/index.js +14 -22
  324. package/esm/ui/launchViewMenu.js +15 -5
  325. package/esm/ui/legendMenuItem.d.ts +10 -32
  326. package/esm/ui/legendMenuItem.js +9 -36
  327. package/esm/ui/legendSpec.d.ts +15 -8
  328. package/esm/ui/legendSpec.js +14 -23
  329. package/esm/ui/makeSizeMenu.d.ts +0 -6
  330. package/esm/ui/makeSizeMenu.js +6 -30
  331. package/esm/ui/measureLegendText.js +1 -1
  332. package/esm/ui/menuItemAdornment.d.ts +9 -20
  333. package/esm/ui/menuItemAdornment.js +10 -32
  334. package/esm/ui/menuItems.d.ts +2 -7
  335. package/esm/ui/menuItems.js +1 -6
  336. package/esm/ui/multiTrackMenuItems.d.ts +6 -0
  337. package/esm/ui/palette.d.ts +118 -116
  338. package/esm/ui/palette.js +114 -75
  339. package/esm/ui/replaceViewAction.d.ts +1 -1
  340. package/esm/ui/replaceViewAction.js +1 -1
  341. package/esm/ui/theme.d.ts +43 -119
  342. package/esm/ui/theme.js +62 -78
  343. package/esm/ui/toggleMenuItems.d.ts +1 -3
  344. package/esm/ui/toggleMenuItems.js +6 -5
  345. package/esm/ui/useAssemblySelection.d.ts +4 -4
  346. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  347. package/esm/ui/viewHeaderHeight.js +1 -0
  348. package/esm/util/Base1DUtils.d.ts +5 -3
  349. package/esm/util/Base1DUtils.js +14 -6
  350. package/esm/util/Base1DViewModel.d.ts +2 -1
  351. package/esm/util/Base1DViewModel.js +3 -2
  352. package/esm/util/SvgCanvas.d.ts +15 -13
  353. package/esm/util/SvgCanvas.js +76 -56
  354. package/esm/util/aborting.d.ts +39 -0
  355. package/esm/util/aborting.js +88 -6
  356. package/esm/util/adapterMetadata.d.ts +1 -1
  357. package/esm/util/adapterMetadata.js +6 -5
  358. package/esm/util/addAndShowTrack.d.ts +2 -5
  359. package/esm/util/addAndShowTrack.js +5 -1
  360. package/esm/util/addRelativeUris.d.ts +17 -5
  361. package/esm/util/addRelativeUris.js +46 -10
  362. package/esm/util/addTrackFromWidget.d.ts +2 -5
  363. package/esm/util/addTrackFromWidget.js +5 -4
  364. package/esm/util/aggregateFieldName.d.ts +10 -0
  365. package/esm/util/aggregateFieldName.js +8 -0
  366. package/esm/util/analytics.js +46 -13
  367. package/esm/util/animationAllowed.d.ts +9 -0
  368. package/esm/util/animationAllowed.js +13 -0
  369. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  370. package/esm/util/applyRowResizeWheel.js +10 -21
  371. package/esm/util/bandHeight.d.ts +10 -0
  372. package/esm/util/bandHeight.js +29 -0
  373. package/esm/util/bandLayout.d.ts +4 -4
  374. package/esm/util/bandLayout.js +4 -4
  375. package/esm/util/bezierConnector.d.ts +4 -3
  376. package/esm/util/bezierConnector.js +38 -45
  377. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  378. package/esm/util/bgzfWorkerPool.js +20 -74
  379. package/esm/util/binnedAggregate.d.ts +17 -0
  380. package/esm/util/binnedAggregate.js +275 -0
  381. package/esm/util/cacheBudgets.d.ts +22 -19
  382. package/esm/util/cacheBudgets.js +22 -19
  383. package/esm/util/cachedSetup.d.ts +1 -1
  384. package/esm/util/cachedSetup.js +2 -2
  385. package/esm/util/categoricalField.d.ts +56 -0
  386. package/esm/util/categoricalField.js +73 -0
  387. package/esm/util/clampToContig.d.ts +17 -0
  388. package/esm/util/clampToContig.js +19 -0
  389. package/esm/util/coarseStripHTML.js +1 -2
  390. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  391. package/esm/util/color/cssColorsLevel4.js +1 -0
  392. package/esm/util/color/index.d.ts +5 -3
  393. package/esm/util/color/index.js +7 -4
  394. package/esm/util/colorBits.d.ts +3 -3
  395. package/esm/util/colorBits.js +19 -44
  396. package/esm/util/colorRamp.d.ts +49 -5
  397. package/esm/util/colorRamp.js +169 -18
  398. package/esm/util/colorScale.d.ts +156 -0
  399. package/esm/util/colorScale.js +243 -0
  400. package/esm/util/colorSchemes.d.ts +21 -0
  401. package/esm/util/colorSchemes.js +30 -0
  402. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
  403. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
  404. package/esm/util/createSvgRasterCanvas.d.ts +10 -0
  405. package/esm/util/cssColorParse.d.ts +15 -0
  406. package/esm/util/cssColorParse.js +53 -0
  407. package/esm/util/diagonalizeRegions.d.ts +2 -3
  408. package/esm/util/diagonalizeRegions.js +8 -13
  409. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  410. package/esm/util/expandLooseSearchIndex.js +29 -0
  411. package/esm/util/featureTable.d.ts +224 -0
  412. package/esm/util/featureTable.js +366 -0
  413. package/esm/util/featureTransforms.d.ts +80 -0
  414. package/esm/util/featureTransforms.js +1579 -0
  415. package/esm/util/featureTypes.d.ts +24 -0
  416. package/esm/util/featureTypes.js +35 -0
  417. package/esm/util/fetchAndMaybeUnzip.js +16 -9
  418. package/esm/util/fetchContext.d.ts +7 -8
  419. package/esm/util/fetchContext.js +3 -3
  420. package/esm/util/fetchHub.d.ts +4 -2
  421. package/esm/util/fetchHub.js +2 -2
  422. package/esm/util/fetchPhases.d.ts +10 -10
  423. package/esm/util/fetchSeq.d.ts +2 -3
  424. package/esm/util/fetchSeq.js +2 -2
  425. package/esm/util/fieldReader.d.ts +17 -0
  426. package/esm/util/fieldReader.js +62 -0
  427. package/esm/util/freezeDeep.d.ts +8 -10
  428. package/esm/util/freezeDeep.js +8 -10
  429. package/esm/util/groupKeys.d.ts +77 -0
  430. package/esm/util/groupKeys.js +155 -0
  431. package/esm/util/highlights.d.ts +10 -6
  432. package/esm/util/highlights.js +12 -25
  433. package/esm/util/hooks.d.ts +31 -2
  434. package/esm/util/hooks.js +72 -3
  435. package/esm/util/index.d.ts +11 -11
  436. package/esm/util/index.js +11 -10
  437. package/esm/util/indexCandidates.d.ts +1 -31
  438. package/esm/util/indexCandidates.js +5 -63
  439. package/esm/util/installFetch.d.ts +77 -37
  440. package/esm/util/installFetch.js +65 -38
  441. package/esm/util/installInitAutorun.d.ts +14 -13
  442. package/esm/util/installInitAutorun.js +17 -17
  443. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  444. package/esm/util/installPrerequisiteFetch.js +111 -0
  445. package/esm/util/io/index.js +19 -14
  446. package/esm/util/isDataCurrent.d.ts +7 -5
  447. package/esm/util/isDataCurrent.js +9 -6
  448. package/esm/util/isTextEntryFocused.d.ts +7 -0
  449. package/esm/util/isTextEntryFocused.js +16 -0
  450. package/esm/util/jexl.js +24 -21
  451. package/esm/util/jexlFilterRows.d.ts +89 -0
  452. package/esm/util/jexlFilterRows.js +252 -0
  453. package/esm/util/jexlFilters.d.ts +20 -27
  454. package/esm/util/jexlFilters.js +23 -11
  455. package/esm/util/jexlStrings.d.ts +3 -4
  456. package/esm/util/jexlStrings.js +2 -3
  457. package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
  458. package/esm/util/layouts/GranularRectLayout.js +25 -8
  459. package/esm/util/lazyAfterAttach.d.ts +13 -0
  460. package/esm/util/lazyAfterAttach.js +31 -0
  461. package/esm/util/lazyWithPreload.d.ts +19 -0
  462. package/esm/util/lazyWithPreload.js +27 -0
  463. package/esm/util/legendCandidates.d.ts +72 -0
  464. package/esm/util/legendCandidates.js +138 -0
  465. package/esm/util/localStorage.js +4 -4
  466. package/esm/util/markEncoding.d.ts +150 -0
  467. package/esm/util/markEncoding.js +845 -0
  468. package/esm/util/markEncodingTypes.d.ts +588 -0
  469. package/esm/util/markEncodingTypes.js +8 -0
  470. package/esm/util/mst-reflection.d.ts +2 -20
  471. package/esm/util/mst-reflection.js +3 -53
  472. package/esm/util/mstUtils.d.ts +31 -23
  473. package/esm/util/mstUtils.js +39 -24
  474. package/esm/util/numericUtils.d.ts +7 -0
  475. package/esm/util/numericUtils.js +16 -0
  476. package/esm/util/numericValue.d.ts +14 -0
  477. package/esm/util/numericValue.js +34 -0
  478. package/esm/util/openFeatureWidget.d.ts +5 -0
  479. package/esm/util/openFeatureWidget.js +2 -2
  480. package/esm/util/openViews.d.ts +17 -0
  481. package/esm/util/openViews.js +22 -0
  482. package/esm/util/parentWalk.d.ts +1 -1
  483. package/esm/util/parentWalk.js +1 -1
  484. package/esm/util/parseLineByLine.d.ts +4 -5
  485. package/esm/util/parseLineByLine.js +8 -14
  486. package/esm/util/pluginStore.d.ts +6 -8
  487. package/esm/util/pluginStore.js +17 -16
  488. package/esm/util/preloadComponent.d.ts +5 -0
  489. package/esm/util/preloadComponent.js +11 -0
  490. package/esm/util/progress.d.ts +22 -22
  491. package/esm/util/progress.js +27 -26
  492. package/esm/util/quantileExtent.d.ts +49 -0
  493. package/esm/util/quantileExtent.js +162 -0
  494. package/esm/util/range.d.ts +13 -9
  495. package/esm/util/range.js +17 -8
  496. package/esm/util/renameRegions.d.ts +26 -6
  497. package/esm/util/renameRegions.js +68 -54
  498. package/esm/util/renderToStaticMarkup.js +24 -14
  499. package/esm/util/rxjs.d.ts +23 -8
  500. package/esm/util/rxjs.js +61 -15
  501. package/esm/util/samplesTsv.d.ts +49 -0
  502. package/esm/util/samplesTsv.js +86 -0
  503. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  504. package/esm/util/scheduleDetachedDestroy.js +24 -0
  505. package/esm/util/scrollLatch.d.ts +1 -0
  506. package/esm/util/scrollLatch.js +8 -0
  507. package/esm/util/selectEncodedFeature.d.ts +16 -0
  508. package/esm/util/selectEncodedFeature.js +34 -0
  509. package/esm/util/sessionSharing.d.ts +7 -5
  510. package/esm/util/sessionSharing.js +23 -23
  511. package/esm/util/shapeNameList.d.ts +2 -0
  512. package/esm/util/shapeNameList.js +6 -0
  513. package/esm/util/shapeNames.d.ts +7 -0
  514. package/esm/util/shapeNames.js +11 -0
  515. package/esm/util/simpleFeature.d.ts +0 -1
  516. package/esm/util/starFusion.d.ts +26 -0
  517. package/esm/util/starFusion.js +37 -0
  518. package/esm/util/stepTables.d.ts +82 -0
  519. package/esm/util/stepTables.js +243 -0
  520. package/esm/util/svAlt.d.ts +145 -0
  521. package/esm/util/svAlt.js +364 -0
  522. package/esm/util/svgColorProps.d.ts +11 -0
  523. package/esm/util/svgColorProps.js +28 -1
  524. package/esm/util/systemColorScheme.d.ts +12 -0
  525. package/esm/util/systemColorScheme.js +27 -0
  526. package/esm/util/tabix.d.ts +13 -8
  527. package/esm/util/tabix.js +17 -12
  528. package/esm/util/thresholdScale.d.ts +91 -0
  529. package/esm/util/thresholdScale.js +166 -0
  530. package/esm/util/timeGate.d.ts +4 -5
  531. package/esm/util/timeGate.js +4 -5
  532. package/esm/util/trackConfigDelta.d.ts +26 -26
  533. package/esm/util/trackConfigDelta.js +63 -47
  534. package/esm/util/tracks.d.ts +121 -40
  535. package/esm/util/tracks.js +497 -112
  536. package/esm/util/translateTranscript.d.ts +44 -0
  537. package/esm/util/translateTranscript.js +102 -0
  538. package/esm/util/types/data.d.ts +0 -2
  539. package/esm/util/types/index.d.ts +121 -22
  540. package/esm/util/types/index.js +9 -0
  541. package/esm/util/types/mst.d.ts +3 -0
  542. package/esm/util/types/mst.js +4 -0
  543. package/esm/util/types/renameIds.d.ts +1 -0
  544. package/esm/util/types/renameIds.js +29 -0
  545. package/esm/util/types/services.d.ts +1 -1
  546. package/esm/util/unknownSnapshotKeys.d.ts +51 -0
  547. package/esm/util/unknownSnapshotKeys.js +82 -0
  548. package/esm/util/useFeatureSequence.js +5 -5
  549. package/esm/util/useFetch.d.ts +3 -4
  550. package/esm/util/useFetch.js +19 -10
  551. package/esm/util/useFetchPlugins.d.ts +6 -2
  552. package/esm/util/useFetchPlugins.js +7 -3
  553. package/esm/util/usePanelVirtualScroll.d.ts +7 -35
  554. package/esm/util/usePanelVirtualScroll.js +9 -36
  555. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  556. package/esm/util/useRowVirtualScroll.js +8 -49
  557. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  558. package/esm/util/useVirtualScrollWheel.js +40 -74
  559. package/esm/util/viewHighlights.d.ts +3 -0
  560. package/esm/util/viewHighlights.js +5 -0
  561. package/esm/util/viewStatus.d.ts +47 -15
  562. package/esm/util/viewStatus.js +34 -0
  563. package/esm/util/wheelZoom.d.ts +7 -1
  564. package/esm/util/wheelZoom.js +85 -19
  565. package/esm/util/whenViewSettled.d.ts +55 -8
  566. package/esm/util/whenViewSettled.js +56 -7
  567. package/esm/util/withLaunchInput.d.ts +174 -0
  568. package/esm/util/withLaunchInput.js +274 -0
  569. package/package.json +70 -20
  570. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  571. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
  572. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
  573. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  574. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  575. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  576. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  577. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  578. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  579. package/esm/ReExports/index.d.ts +0 -1
  580. package/esm/ReExports/index.js +0 -1
  581. package/esm/ReExports/publicUtil.d.ts +0 -1
  582. package/esm/ReExports/publicUtil.js +0 -28
  583. package/esm/configuration/promotableDefaults.d.ts +0 -199
  584. package/esm/configuration/promotableDefaults.js +0 -326
  585. package/esm/configuration/promotablePin.d.ts +0 -55
  586. package/esm/configuration/promotablePin.js +0 -1
  587. package/esm/configuration/promotableResolve.d.ts +0 -108
  588. package/esm/configuration/promotableResolve.js +0 -117
  589. package/esm/configuration/promotableSlots.d.ts +0 -12
  590. package/esm/configuration/promotableSlots.js +0 -45
  591. package/esm/configuration/slotShape.d.ts +0 -12
  592. package/esm/configuration/slotShape.js +0 -84
  593. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  594. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  595. package/esm/ui/PinAdornment.d.ts +0 -5
  596. package/esm/ui/PinAdornment.js +0 -79
  597. package/esm/ui/SvgGradientLegend.d.ts +0 -26
  598. package/esm/ui/SvgGradientLegend.js +0 -26
  599. package/esm/ui/highlightChipReveal.d.ts +0 -32
  600. package/esm/ui/highlightChipReveal.js +0 -39
  601. package/esm/ui/promotableMenuItems.d.ts +0 -19
  602. package/esm/ui/promotableMenuItems.js +0 -89
  603. package/esm/ui/promotablePinCoverage.d.ts +0 -44
  604. package/esm/ui/promotablePinCoverage.js +0 -87
  605. package/esm/util/applyInitSettings.d.ts +0 -79
  606. package/esm/util/applyInitSettings.js +0 -91
  607. package/esm/util/openDisplays.d.ts +0 -23
  608. package/esm/util/openDisplays.js +0 -79
  609. package/esm/util/stopToken.d.ts +0 -211
  610. package/esm/util/stopToken.js +0 -438
  611. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
@@ -1,9 +1,8 @@
1
- import type { StopToken, StopTokenChecker } from './stopToken.ts';
2
1
  /**
3
2
  * Indeterminate phase: set `label` on the status channel, run `fn`, then restore
4
- * whatever phase encloses it — `''` when there is none. Pass `stopToken` and the
3
+ * whatever phase encloses it — `''` when there is none. Pass `signal` and the
5
4
  * phase becomes a cancellation boundary too: this is the labelled form of
6
- * {@link withStopTokenCheck}, so `fn` is checked on both sides of its await and
5
+ * {@link withAbortCheck}, so `fn` is checked on both sides of its await and
7
6
  * neither check has to be remembered at the call site. The determinate
8
7
  * counterpart is {@link withProgress}.
9
8
  *
@@ -15,7 +14,7 @@ import type { StopToken, StopTokenChecker } from './stopToken.ts';
15
14
  * fetching — `downloadPhase(label, location)` builds one — and a plain string
16
15
  * everywhere else. It nests and retires identically either way.
17
16
  */
18
- export declare function updateStatus<U>(msg: string | StatusPhase, cb: StatusCallback | undefined, fn: () => U | Promise<U>, stopToken?: StopToken): Promise<U>;
17
+ export declare function updateStatus<U>(msg: string | StatusPhase, cb: StatusCallback | undefined, fn: () => U | Promise<U>, signal?: AbortSignal): Promise<U>;
19
18
  /**
20
19
  * A determinate reading on the status channel: a phase label plus how far
21
20
  * through it the operation is. The loading UI renders the message and a bar.
@@ -150,7 +149,7 @@ export interface StatusStream {
150
149
  * the last label of a fetch that is over.
151
150
  *
152
151
  * It is not guarded by `isCurrent`: a run that has just finished is no longer
153
- * current, and a superseded run must retire its slot too or it votes forever.
152
+ * current, and its slot must still retire.
154
153
  */
155
154
  clear: () => void;
156
155
  }
@@ -238,7 +237,7 @@ export declare function throttleStatusEmits(emit: StatusCallback): (status: RpcS
238
237
  * of a burst, not each one in turn.
239
238
  *
240
239
  * Both fetch families own one: `FetchMixin` for the LGV displays, and
241
- * `createStopTokenRotation` for the bare-autorun fetches (dotplot, synteny)
240
+ * `createAbortRotation` for the bare-autorun fetches (dotplot, synteny)
242
241
  * that compose no fetch mixin — and a display that has both lends the mixin's
243
242
  * to the rotation rather than opening a second on one field. A plain function
244
243
  * rather than shared model state because the two families declare their status
@@ -298,13 +297,13 @@ declare function downloadStatusReporter(statusCallback: StatusCallback | undefin
298
297
  * which: bytes for the index readers, blocks and expected-value chunks for
299
298
  * `@gmod/hic`. All of them report `(current, total?)`.
300
299
  *
301
- * `stopToken` makes the phase a cancellation boundary, exactly as it does on
300
+ * `signal` makes the phase a cancellation boundary, exactly as it does on
302
301
  * {@link updateStatus} — `fn` is checked on both sides of its await.
303
302
  *
304
303
  * A {@link StatusPhase} `label` carries its source onto the readings too, so a
305
304
  * download that stalls part-way through still names the file it was reading.
306
305
  */
307
- export declare function downloadStatus<T>(label: string | StatusPhase, statusCallback: StatusCallback | undefined, fn: (onProgress: ReturnType<typeof downloadStatusReporter>) => T | Promise<T>, stopToken?: StopToken): Promise<T>;
306
+ export declare function downloadStatus<T>(label: string | StatusPhase, statusCallback: StatusCallback | undefined, fn: (onProgress: ReturnType<typeof downloadStatusReporter>) => T | Promise<T>, signal?: AbortSignal): Promise<T>;
308
307
  /**
309
308
  * One concurrent operation's contribution to a fan-out's shared status: what it
310
309
  * is reporting right now, plus how much of each phase it has already finished
@@ -415,20 +414,22 @@ export declare function createStatusFanOut(statusCallback: StatusCallback | unde
415
414
  */
416
415
  export type ProgressReporter = (current?: number) => void;
417
416
  /**
418
- * The single per-iteration callback for long synchronous worker loops. The
419
- * returned `report(current)` is called once per outer-loop iteration and does
420
- * two throttled jobs on each call:
417
+ * The single per-iteration callback for long worker loops. The returned
418
+ * `report(current)` is called once per outer-loop iteration and does two jobs
419
+ * on each call:
421
420
  *
422
- * - checks the stop token via the existing throttled {@link checkStopTokenThrottled}
423
- * machinery, so cancellation interrupts the loop within milliseconds instead
424
- * of only at phase boundaries, and
421
+ * - checks `signal`, which sees only an abort that landed at the loop's last
422
+ * await, and
425
423
  * - emits a {@link StatusWithProgress} through `statusCallback` at most once per
426
424
  * `throttleMs`, so the main thread gets a live percentage without flooding
427
425
  * the postMessage channel.
428
426
  *
427
+ * `report()` never yields, so it does not make a loop interruptible. A loop
428
+ * that can run for seconds takes `createAbortBreakpoint` beside it.
429
+ *
429
430
  * Both jobs are optional: with no `statusCallback`/`total` this is purely a
430
- * throttled cancellation tick, so a loop has exactly one inner callback whether
431
- * or not it drives the progress UI.
431
+ * cancellation tick, so a loop has exactly one inner callback whether or not
432
+ * it drives the progress UI.
432
433
  *
433
434
  * Emission is gated on wall-clock time (`throttleMs`) through {@link
434
435
  * createTimeGate}, which thins the `Date.now()` reads as well as the emits —
@@ -436,24 +437,23 @@ export type ProgressReporter = (current?: number) => void;
436
437
  * plain `for` and call `report()` once per item (it owns the counter), or
437
438
  * `report(n)` for an explicit position.
438
439
  */
439
- export declare function createProgressReporter({ label, total, statusCallback, stopToken, stopTokenCheck, throttleMs, }: {
440
+ export declare function createProgressReporter({ label, total, statusCallback, signal, throttleMs, }: {
440
441
  label?: string;
441
442
  total?: number;
442
443
  statusCallback?: (status: RpcStatus) => void;
443
- stopToken?: StopToken;
444
- stopTokenCheck?: StopTokenChecker;
444
+ signal?: AbortSignal;
445
445
  throttleMs?: number;
446
446
  }): ProgressReporter;
447
447
  /**
448
448
  * Run a measurable phase: shows `label` at 0%, hands `fn` a {@link
449
- * ProgressReporter} to drive during the work, then checks the stop token once
449
+ * ProgressReporter} to drive during the work, then checks the signal once
450
450
  * more and restores the enclosing phase. The determinate counterpart to
451
451
  * `updateStatus`, and it nests the same way — see {@link openPhase}.
452
452
  */
453
- export declare function withProgress<T>({ label, total, statusCallback, stopToken, }: {
453
+ export declare function withProgress<T>({ label, total, statusCallback, signal, }: {
454
454
  label: string;
455
455
  total: number;
456
456
  statusCallback?: (status: RpcStatus) => void;
457
- stopToken?: StopToken;
457
+ signal?: AbortSignal;
458
458
  }, fn: (report: ProgressReporter) => T | Promise<T>): Promise<T>;
459
459
  export {};
@@ -1,4 +1,4 @@
1
- import { checkStopTokenThrottled, createStopTokenChecker, withStopTokenCheck, } from './stopToken.js';
1
+ import { checkAbortSignal, withAbortCheck } from './aborting.js';
2
2
  import { createTimeGate } from './timeGate.js';
3
3
  const openPhases = new WeakMap();
4
4
  /**
@@ -41,9 +41,9 @@ function openPhase(cb, label) {
41
41
  }
42
42
  /**
43
43
  * Indeterminate phase: set `label` on the status channel, run `fn`, then restore
44
- * whatever phase encloses it — `''` when there is none. Pass `stopToken` and the
44
+ * whatever phase encloses it — `''` when there is none. Pass `signal` and the
45
45
  * phase becomes a cancellation boundary too: this is the labelled form of
46
- * {@link withStopTokenCheck}, so `fn` is checked on both sides of its await and
46
+ * {@link withAbortCheck}, so `fn` is checked on both sides of its await and
47
47
  * neither check has to be remembered at the call site. The determinate
48
48
  * counterpart is {@link withProgress}.
49
49
  *
@@ -55,7 +55,7 @@ function openPhase(cb, label) {
55
55
  * fetching — `downloadPhase(label, location)` builds one — and a plain string
56
56
  * everywhere else. It nests and retires identically either way.
57
57
  */
58
- export async function updateStatus(msg, cb, fn, stopToken) {
58
+ export async function updateStatus(msg, cb, fn, signal) {
59
59
  const endPhase = openPhase(cb, msg);
60
60
  // pessimistic, so anything leaving this scope other than a value — a throw, a
61
61
  // cancel — retires the phase as unfinished
@@ -65,7 +65,7 @@ export async function updateStatus(msg, cb, fn, stopToken) {
65
65
  // forever — the error surfaces under a stale "Downloading file"
66
66
  try {
67
67
  cb?.(msg);
68
- const result = await withStopTokenCheck(stopToken, fn);
68
+ const result = await withAbortCheck(signal, fn);
69
69
  outcome = 'completed';
70
70
  return result;
71
71
  }
@@ -341,7 +341,7 @@ export function throttleStatusEmits(emit) {
341
341
  * of a burst, not each one in turn.
342
342
  *
343
343
  * Both fetch families own one: `FetchMixin` for the LGV displays, and
344
- * `createStopTokenRotation` for the bare-autorun fetches (dotplot, synteny)
344
+ * `createAbortRotation` for the bare-autorun fetches (dotplot, synteny)
345
345
  * that compose no fetch mixin — and a display that has both lends the mixin's
346
346
  * to the rotation rather than opening a second on one field. A plain function
347
347
  * rather than shared model state because the two families declare their status
@@ -531,14 +531,14 @@ function downloadStatusReporter(statusCallback, label) {
531
531
  * which: bytes for the index readers, blocks and expected-value chunks for
532
532
  * `@gmod/hic`. All of them report `(current, total?)`.
533
533
  *
534
- * `stopToken` makes the phase a cancellation boundary, exactly as it does on
534
+ * `signal` makes the phase a cancellation boundary, exactly as it does on
535
535
  * {@link updateStatus} — `fn` is checked on both sides of its await.
536
536
  *
537
537
  * A {@link StatusPhase} `label` carries its source onto the readings too, so a
538
538
  * download that stalls part-way through still names the file it was reading.
539
539
  */
540
- export async function downloadStatus(label, statusCallback, fn, stopToken) {
541
- return updateStatus(label, statusCallback, () => fn(downloadStatusReporter(statusCallback, label)), stopToken);
540
+ export async function downloadStatus(label, statusCallback, fn, signal) {
541
+ return updateStatus(label, statusCallback, () => fn(downloadStatusReporter(statusCallback, label)), signal);
542
542
  }
543
543
  /** How much of `message` this slot has already finished. */
544
544
  function finished(slot, message) {
@@ -751,20 +751,22 @@ function continuesPhase(previous, status) {
751
751
  reading.current >= previous.current);
752
752
  }
753
753
  /**
754
- * The single per-iteration callback for long synchronous worker loops. The
755
- * returned `report(current)` is called once per outer-loop iteration and does
756
- * two throttled jobs on each call:
754
+ * The single per-iteration callback for long worker loops. The returned
755
+ * `report(current)` is called once per outer-loop iteration and does two jobs
756
+ * on each call:
757
757
  *
758
- * - checks the stop token via the existing throttled {@link checkStopTokenThrottled}
759
- * machinery, so cancellation interrupts the loop within milliseconds instead
760
- * of only at phase boundaries, and
758
+ * - checks `signal`, which sees only an abort that landed at the loop's last
759
+ * await, and
761
760
  * - emits a {@link StatusWithProgress} through `statusCallback` at most once per
762
761
  * `throttleMs`, so the main thread gets a live percentage without flooding
763
762
  * the postMessage channel.
764
763
  *
764
+ * `report()` never yields, so it does not make a loop interruptible. A loop
765
+ * that can run for seconds takes `createAbortBreakpoint` beside it.
766
+ *
765
767
  * Both jobs are optional: with no `statusCallback`/`total` this is purely a
766
- * throttled cancellation tick, so a loop has exactly one inner callback whether
767
- * or not it drives the progress UI.
768
+ * cancellation tick, so a loop has exactly one inner callback whether or not
769
+ * it drives the progress UI.
768
770
  *
769
771
  * Emission is gated on wall-clock time (`throttleMs`) through {@link
770
772
  * createTimeGate}, which thins the `Date.now()` reads as well as the emits —
@@ -772,13 +774,12 @@ function continuesPhase(previous, status) {
772
774
  * plain `for` and call `report()` once per item (it owns the counter), or
773
775
  * `report(n)` for an explicit position.
774
776
  */
775
- export function createProgressReporter({ label = '', total, statusCallback, stopToken, stopTokenCheck, throttleMs = 100, }) {
776
- const checker = stopTokenCheck ?? createStopTokenChecker(stopToken);
777
+ export function createProgressReporter({ label = '', total, statusCallback, signal, throttleMs = 100, }) {
777
778
  const emitDue = createTimeGate();
778
779
  let count = 0;
779
780
  return (current = count) => {
780
781
  count = current + 1;
781
- checkStopTokenThrottled(checker);
782
+ checkAbortSignal(signal);
782
783
  if (statusCallback !== undefined &&
783
784
  total !== undefined &&
784
785
  emitDue(throttleMs)) {
@@ -788,29 +789,29 @@ export function createProgressReporter({ label = '', total, statusCallback, stop
788
789
  }
789
790
  /**
790
791
  * Run a measurable phase: shows `label` at 0%, hands `fn` a {@link
791
- * ProgressReporter} to drive during the work, then checks the stop token once
792
+ * ProgressReporter} to drive during the work, then checks the signal once
792
793
  * more and restores the enclosing phase. The determinate counterpart to
793
794
  * `updateStatus`, and it nests the same way — see {@link openPhase}.
794
795
  */
795
- export async function withProgress({ label, total, statusCallback, stopToken, }, fn) {
796
+ export async function withProgress({ label, total, statusCallback, signal, }, fn) {
796
797
  const report = createProgressReporter({
797
798
  label,
798
799
  total,
799
800
  statusCallback,
800
- stopToken,
801
+ signal,
801
802
  });
802
803
  const endPhase = openPhase(statusCallback, label);
803
804
  // pessimistic for the same reason as `updateStatus`: a phase that leaves this
804
805
  // scope any way other than returning did not finish its work
805
806
  let outcome = 'failed';
806
807
  try {
807
- // inside the try, because `report` checks the stop token before it emits and
808
- // so throws here on a token already stopped. Outside, that threw past the
808
+ // inside the try, because `report` checks the signal before it emits and
809
+ // so throws here on one already aborted. Outside, that threw past the
809
810
  // close and left the phase open on the channel — a slot whose last word is a
810
811
  // label is one `aggregateStatus` counts as in flight for the rest of the
811
812
  // batch.
812
813
  report(0);
813
- const result = await withStopTokenCheck(stopToken, () => fn(report));
814
+ const result = await withAbortCheck(signal, () => fn(report));
814
815
  outcome = 'completed';
815
816
  return result;
816
817
  }
@@ -0,0 +1,49 @@
1
+ /** The quantile "Clip outliers" clips at on a scale whose own default is the extremes. */
2
+ export declare const DEFAULT_CLIP_QUANTILE = 0.99;
3
+ /**
4
+ * #api
5
+ * The quantile a clip toggle writes: a scale's declared default where that
6
+ * clips, below 1, else {@link DEFAULT_CLIP_QUANTILE}.
7
+ */
8
+ export declare function clipQuantileOf(declaredDefault: unknown): number;
9
+ /**
10
+ * #api
11
+ * The `k`th smallest of `a[0, n)`, permuting `a` in place. Exact, where a
12
+ * histogram collapses skewed contact counts into its bottom bucket, and O(n)
13
+ * where a sort of 4.5M counts measured ~1s. Median-of-three because Hi-C
14
+ * contacts arrive nearly sorted.
15
+ */
16
+ export declare function selectNth(a: Float32Array, n: number, k: number): number;
17
+ /**
18
+ * #api
19
+ * The least and greatest finite values of `values[0, count)`,
20
+ * `[Infinity, -Infinity]` where none is finite.
21
+ */
22
+ export declare function finiteExtremes(values: ArrayLike<number>, count: number): [number, number];
23
+ /**
24
+ * #api
25
+ * The nearest-rank `quantile` of `a[0, n)`: the smallest value at least that
26
+ * share of them sit at or below, so a handful of values clips at their
27
+ * maximum. Permutes `a`; 0 where `n` is.
28
+ */
29
+ export declare function quantileOf(a: Float32Array, n: number, quantile: number): number;
30
+ /**
31
+ * #api
32
+ * What the open ends of a scale follow over `values[0, count)`: at a
33
+ * `quantile` of 1 their finite extremes, and below it each end clipped at
34
+ * that quantile of the values on its side of 0, so one spike takes neither
35
+ * the axis nor the ramp, and a sparse tail of the other sign keeps its own
36
+ * end. An axis that starts at 0 adds it itself. Under 0.5 reads as 0.5,
37
+ * where the ends meet rather than cross. `scales.y.domainQuantile` and a
38
+ * colour's `domainQuantile` both name it. `[Infinity, -Infinity]` where
39
+ * nothing is finite.
40
+ */
41
+ export declare function quantileExtent(values: ArrayLike<number>, count: number, quantile?: number): [number, number];
42
+ /**
43
+ * #api
44
+ * {@link quantileExtent} as a scale's open ends read it: over every finite
45
+ * value on a linear scale, and on a log scale over the positive ones, since a
46
+ * 0 or a negative met there would floor the domain at 1 and fold a domain
47
+ * below 1 flat. `[Infinity, -Infinity]` where the scale reads nothing.
48
+ */
49
+ export declare function scaleExtent(values: ArrayLike<number>, count: number, scale: string, quantile?: number): [number, number];
@@ -0,0 +1,162 @@
1
+ /** The quantile "Clip outliers" clips at on a scale whose own default is the extremes. */
2
+ export const DEFAULT_CLIP_QUANTILE = 0.99;
3
+ /**
4
+ * #api
5
+ * The quantile a clip toggle writes: a scale's declared default where that
6
+ * clips, below 1, else {@link DEFAULT_CLIP_QUANTILE}.
7
+ */
8
+ export function clipQuantileOf(declaredDefault) {
9
+ return typeof declaredDefault === 'number' && declaredDefault < 1
10
+ ? declaredDefault
11
+ : DEFAULT_CLIP_QUANTILE;
12
+ }
13
+ function swap(a, i, j) {
14
+ const t = a[i];
15
+ a[i] = a[j];
16
+ a[j] = t;
17
+ }
18
+ /**
19
+ * #api
20
+ * The `k`th smallest of `a[0, n)`, permuting `a` in place. Exact, where a
21
+ * histogram collapses skewed contact counts into its bottom bucket, and O(n)
22
+ * where a sort of 4.5M counts measured ~1s. Median-of-three because Hi-C
23
+ * contacts arrive nearly sorted.
24
+ */
25
+ export function selectNth(a, n, k) {
26
+ let lo = 0;
27
+ let hi = n - 1;
28
+ while (lo < hi) {
29
+ const mid = (lo + hi) >>> 1;
30
+ if (a[mid] < a[lo]) {
31
+ swap(a, mid, lo);
32
+ }
33
+ if (a[hi] < a[lo]) {
34
+ swap(a, hi, lo);
35
+ }
36
+ if (a[hi] < a[mid]) {
37
+ swap(a, hi, mid);
38
+ }
39
+ const pivot = a[mid];
40
+ let i = lo;
41
+ let j = hi;
42
+ while (i <= j) {
43
+ while (a[i] < pivot) {
44
+ i++;
45
+ }
46
+ while (a[j] > pivot) {
47
+ j--;
48
+ }
49
+ if (i <= j) {
50
+ swap(a, i, j);
51
+ i++;
52
+ j--;
53
+ }
54
+ }
55
+ if (k <= j) {
56
+ hi = j;
57
+ }
58
+ else if (k >= i) {
59
+ lo = i;
60
+ }
61
+ else {
62
+ return a[k];
63
+ }
64
+ }
65
+ return a[k];
66
+ }
67
+ /**
68
+ * #api
69
+ * The least and greatest finite values of `values[0, count)`,
70
+ * `[Infinity, -Infinity]` where none is finite.
71
+ */
72
+ export function finiteExtremes(values, count) {
73
+ let min = Infinity;
74
+ let max = -Infinity;
75
+ for (let i = 0; i < count; i++) {
76
+ const v = values[i];
77
+ if (Number.isFinite(v)) {
78
+ if (v < min) {
79
+ min = v;
80
+ }
81
+ if (v > max) {
82
+ max = v;
83
+ }
84
+ }
85
+ }
86
+ return [min, max];
87
+ }
88
+ /**
89
+ * #api
90
+ * The nearest-rank `quantile` of `a[0, n)`: the smallest value at least that
91
+ * share of them sit at or below, so a handful of values clips at their
92
+ * maximum. Permutes `a`; 0 where `n` is.
93
+ */
94
+ export function quantileOf(a, n, quantile) {
95
+ return n === 0
96
+ ? 0
97
+ : selectNth(a, n, Math.min(n - 1, Math.max(0, Math.ceil(quantile * n) - 1)));
98
+ }
99
+ function lowQuantileOf(a, n, quantile) {
100
+ return n === 0
101
+ ? 0
102
+ : selectNth(a, n, Math.max(0, Math.min(n - 1, n - Math.ceil(quantile * n))));
103
+ }
104
+ /**
105
+ * #api
106
+ * What the open ends of a scale follow over `values[0, count)`: at a
107
+ * `quantile` of 1 their finite extremes, and below it each end clipped at
108
+ * that quantile of the values on its side of 0, so one spike takes neither
109
+ * the axis nor the ramp, and a sparse tail of the other sign keeps its own
110
+ * end. An axis that starts at 0 adds it itself. Under 0.5 reads as 0.5,
111
+ * where the ends meet rather than cross. `scales.y.domainQuantile` and a
112
+ * colour's `domainQuantile` both name it. `[Infinity, -Infinity]` where
113
+ * nothing is finite.
114
+ */
115
+ export function quantileExtent(values, count, quantile = 1) {
116
+ if (!(quantile < 1)) {
117
+ return finiteExtremes(values, count);
118
+ }
119
+ const q = Math.max(0.5, quantile);
120
+ const positive = new Float32Array(count);
121
+ const negative = new Float32Array(count);
122
+ let np = 0;
123
+ let nn = 0;
124
+ for (let i = 0; i < count; i++) {
125
+ const v = values[i];
126
+ if (Number.isFinite(v)) {
127
+ if (v >= 0) {
128
+ positive[np++] = v;
129
+ }
130
+ else {
131
+ negative[nn++] = v;
132
+ }
133
+ }
134
+ }
135
+ if (np + nn === 0) {
136
+ return [Infinity, -Infinity];
137
+ }
138
+ const low = nn > 0 ? lowQuantileOf(negative, nn, q) : lowQuantileOf(positive, np, q);
139
+ const high = np > 0 ? quantileOf(positive, np, q) : quantileOf(negative, nn, q);
140
+ return [Math.min(low, high), high];
141
+ }
142
+ /**
143
+ * #api
144
+ * {@link quantileExtent} as a scale's open ends read it: over every finite
145
+ * value on a linear scale, and on a log scale over the positive ones, since a
146
+ * 0 or a negative met there would floor the domain at 1 and fold a domain
147
+ * below 1 flat. `[Infinity, -Infinity]` where the scale reads nothing.
148
+ */
149
+ export function scaleExtent(values, count, scale, quantile = 1) {
150
+ if (scale !== 'log') {
151
+ return quantileExtent(values, count, quantile);
152
+ }
153
+ const positive = new Float32Array(count);
154
+ let np = 0;
155
+ for (let i = 0; i < count; i++) {
156
+ const v = values[i];
157
+ if (v > 0 && Number.isFinite(v)) {
158
+ positive[np++] = v;
159
+ }
160
+ }
161
+ return quantileExtent(positive, np, quantile);
162
+ }
@@ -20,9 +20,15 @@ export declare function doesIntersect2(left1: number, right1: number, left2: num
20
20
  /**
21
21
  * Compute the expanded fetch range a tabix adapter must "redispatch" to when
22
22
  * features found in a query extend past the requested window. Returns the union
23
- * of the query with the bounds of every feature whose type is not in
24
- * `dontRedispatchSet`, or `undefined` when nothing extends past the query (no
25
- * redispatch needed).
23
+ * of the query with the bounds of every line `expands` admits, or `undefined`
24
+ * when nothing extends past the query (no redispatch needed).
25
+ *
26
+ * **A predicate, not a set of types**, because the useful question is not what a
27
+ * record is called. The bound exists to reach a record's *children*, so what
28
+ * disqualifies a record is having none — and in GFF3 that is answerable exactly,
29
+ * from whether the record carries an `ID` for a `Parent` to reference. A type
30
+ * blocklist can only ever approximate it, and it is the caller's format that
31
+ * knows how: this file reads no column but the coordinates.
26
32
  *
27
33
  * Feature coordinates arrive interbase, matching the query: @gmod/tabix applies
28
34
  * the index's coordinate offset before invoking the line callback, so a GFF/GTF
@@ -30,15 +36,13 @@ export declare function doesIntersect2(left1: number, right1: number, left2: num
30
36
  *
31
37
  * Seeding the accumulator with the query bounds is what makes the result a
32
38
  * union rather than just the feature bounds. A redispatch narrower than the
33
- * original window would drop a dontRedispatch-typed feature that the first
34
- * fetch found inside the query but that falls outside the expanded range, since
35
- * those types are deliberately excluded from the bounds.
39
+ * original window would drop an excluded line that the first fetch found inside
40
+ * the query but that falls outside the expanded range.
36
41
  */
37
- export declare function calculateRedispatchRange(features: {
42
+ export declare function calculateRedispatchRange<T extends {
38
43
  start: number;
39
44
  end: number;
40
- type: string;
41
- }[], dontRedispatchSet: Set<string>, queryStart: number, queryEnd: number): {
45
+ }>(features: T[], expands: (feature: T) => boolean, queryStart: number, queryEnd: number): {
42
46
  start: number;
43
47
  end: number;
44
48
  } | undefined;
package/esm/util/range.js CHANGED
@@ -45,9 +45,15 @@ export function doesIntersect2(left1, right1, left2, right2) {
45
45
  /**
46
46
  * Compute the expanded fetch range a tabix adapter must "redispatch" to when
47
47
  * features found in a query extend past the requested window. Returns the union
48
- * of the query with the bounds of every feature whose type is not in
49
- * `dontRedispatchSet`, or `undefined` when nothing extends past the query (no
50
- * redispatch needed).
48
+ * of the query with the bounds of every line `expands` admits, or `undefined`
49
+ * when nothing extends past the query (no redispatch needed).
50
+ *
51
+ * **A predicate, not a set of types**, because the useful question is not what a
52
+ * record is called. The bound exists to reach a record's *children*, so what
53
+ * disqualifies a record is having none — and in GFF3 that is answerable exactly,
54
+ * from whether the record carries an `ID` for a `Parent` to reference. A type
55
+ * blocklist can only ever approximate it, and it is the caller's format that
56
+ * knows how: this file reads no column but the coordinates.
51
57
  *
52
58
  * Feature coordinates arrive interbase, matching the query: @gmod/tabix applies
53
59
  * the index's coordinate offset before invoking the line callback, so a GFF/GTF
@@ -55,15 +61,18 @@ export function doesIntersect2(left1, right1, left2, right2) {
55
61
  *
56
62
  * Seeding the accumulator with the query bounds is what makes the result a
57
63
  * union rather than just the feature bounds. A redispatch narrower than the
58
- * original window would drop a dontRedispatch-typed feature that the first
59
- * fetch found inside the query but that falls outside the expanded range, since
60
- * those types are deliberately excluded from the bounds.
64
+ * original window would drop an excluded line that the first fetch found inside
65
+ * the query but that falls outside the expanded range.
61
66
  */
62
- export function calculateRedispatchRange(features, dontRedispatchSet, queryStart, queryEnd) {
67
+ export function calculateRedispatchRange(features, expands, queryStart, queryEnd) {
63
68
  let minStart = queryStart;
64
69
  let maxEnd = queryEnd;
70
+ // bounds first: only a line reaching past the current bound can widen it, so
71
+ // the predicate, which may scan the line's text, runs on those few lines and
72
+ // not on every line in the window
65
73
  for (const feature of features) {
66
- if (!dontRedispatchSet.has(feature.type)) {
74
+ if ((feature.start < minStart || feature.end > maxEnd) &&
75
+ expands(feature)) {
67
76
  if (feature.start < minStart) {
68
77
  minStart = feature.start;
69
78
  }
@@ -1,21 +1,41 @@
1
1
  import type { StatusCallback } from './progress.ts';
2
- import type { StopToken } from './stopToken.ts';
3
2
  import type { AssemblyManager, Region } from './types/index.ts';
4
3
  import type { Region as MUIRegion } from './types/mst.ts';
5
4
  import type { Instance } from '@jbrowse/mobx-state-tree';
6
5
  export declare function renameRegionIfNeeded(refNameMap: Record<string, string> | undefined, region: Region | Instance<typeof MUIRegion>, getSeqAdapterRefName?: (refName: string) => string): Region & {
7
6
  originalRefName?: string;
8
7
  };
9
- export declare function renameRegionsIfNeeded<ARGTYPE extends {
10
- assemblyName?: string;
8
+ interface RenameArgs {
11
9
  regions?: Region[];
12
- stopToken?: StopToken;
10
+ signal?: AbortSignal;
13
11
  adapterConfig: Record<string, unknown>;
14
12
  sessionId: string;
15
13
  statusCallback?: StatusCallback;
16
- }>(assemblyManager: AssemblyManager, args: ARGTYPE): Promise<ARGTYPE & {
17
- sequenceAdapter: Record<string, unknown> | undefined;
14
+ }
15
+ /**
16
+ * Rename for a request about one genome, which is every request but a
17
+ * comparative one. The call's genome is its regions' genome, and renaming
18
+ * writes it as the call's `assemblyName`, the one field a call names its
19
+ * genome in: `RpcMethodType.serializeArguments` turns it into the reference a
20
+ * BAM/CRAM or scan adapter is built with. A region on another assembly is
21
+ * refused: a request over a synteny adapter renames with
22
+ * {@link renameComparativeRegions}.
23
+ */
24
+ export declare function renameRegionsIfNeeded<ARGTYPE extends RenameArgs>(assemblyManager: AssemblyManager, args: ARGTYPE): Promise<ARGTYPE & {
25
+ assemblyName: string | undefined;
18
26
  regions: (Region & {
19
27
  originalRefName?: string;
20
28
  })[];
21
29
  }>;
30
+ /**
31
+ * Rename for a comparative request (synteny, dotplot, chords), whose regions
32
+ * sit on two or more assemblies and are each renamed against their own. Such a
33
+ * request has no genome of its own, so it names none and no reference rides
34
+ * on it; a synteny adapter reads no reference.
35
+ */
36
+ export declare function renameComparativeRegions<ARGTYPE extends RenameArgs>(assemblyManager: AssemblyManager, args: ARGTYPE): Promise<ARGTYPE & {
37
+ regions: (Region & {
38
+ originalRefName?: string;
39
+ })[];
40
+ }>;
41
+ export {};