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

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 (637) hide show
  1. package/README.md +1709 -390
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
  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 +37 -14
  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 +49 -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/SequenceFeatureDetails/useSequenceData.js +8 -5
  35. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  36. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  37. package/esm/BaseFeatureWidget/formatDetails.js +62 -83
  38. package/esm/BaseFeatureWidget/index.d.ts +2 -1
  39. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
  40. package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
  41. package/esm/BaseFeatureWidget/types.d.ts +12 -6
  42. package/esm/BaseFeatureWidget/util.d.ts +0 -10
  43. package/esm/BaseFeatureWidget/util.js +0 -17
  44. package/esm/CorePlugin.js +34 -3
  45. package/esm/PluginLoader.d.ts +24 -13
  46. package/esm/PluginLoader.js +167 -51
  47. package/esm/PluginManager.d.ts +130 -24
  48. package/esm/PluginManager.js +180 -32
  49. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  50. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  51. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  52. package/esm/ReExports/coreModules.generated.js +530 -0
  53. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  54. package/esm/ReExports/coreWorkerModules.generated.js +490 -0
  55. package/esm/ReExports/frameworkModules.d.ts +2 -0
  56. package/esm/ReExports/frameworkModules.js +68 -0
  57. package/esm/ReExports/frameworkShared.d.ts +12 -0
  58. package/esm/ReExports/frameworkShared.js +16 -0
  59. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  60. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  61. package/esm/ReExports/list.js +528 -79
  62. package/esm/ReExports/modules.d.ts +1 -1
  63. package/esm/ReExports/modules.js +10 -165
  64. package/esm/ReExports/registry.d.ts +1 -0
  65. package/esm/ReExports/registry.js +23 -5
  66. package/esm/ReExports/uiStub.d.ts +3 -0
  67. package/esm/ReExports/uiStub.js +33 -0
  68. package/esm/ReExports/workerModules.d.ts +2 -0
  69. package/esm/ReExports/workerModules.js +11 -0
  70. package/esm/TextSearch/TextSearchManager.d.ts +27 -13
  71. package/esm/TextSearch/TextSearchManager.js +77 -36
  72. package/esm/TextSearch/places.d.ts +12 -0
  73. package/esm/TextSearch/places.js +94 -0
  74. package/esm/assemblyManager/assembly.d.ts +21 -19
  75. package/esm/assemblyManager/assembly.js +28 -26
  76. package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
  77. package/esm/assemblyManager/assemblyAdapters.js +8 -2
  78. package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
  79. package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
  80. package/esm/assemblyManager/assemblyManager.d.ts +35 -180
  81. package/esm/assemblyManager/assemblyManager.js +47 -51
  82. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
  83. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
  84. package/esm/assemblyManager/geneticCodes.js +2 -5
  85. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
  86. package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
  87. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  88. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  89. package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
  90. package/esm/assemblyManager/loadRefNameMap.js +4 -9
  91. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  92. package/esm/assemblyManager/refNameMapKey.js +12 -0
  93. package/esm/checkPlugins.d.ts +2 -0
  94. package/esm/checkPlugins.js +38 -17
  95. package/esm/configuration/bamIndexFields.d.ts +49 -0
  96. package/esm/configuration/bamIndexFields.js +41 -0
  97. package/esm/configuration/configurationSchema.d.ts +101 -71
  98. package/esm/configuration/configurationSchema.js +207 -134
  99. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  100. package/esm/configuration/configurationSchemaUnion.js +56 -0
  101. package/esm/configuration/configurationSlot.d.ts +150 -60
  102. package/esm/configuration/configurationSlot.js +103 -75
  103. package/esm/configuration/fillLocations.d.ts +14 -0
  104. package/esm/configuration/fillLocations.js +14 -0
  105. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  106. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  107. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  108. package/esm/configuration/fullConfSnapshot.d.ts +4 -19
  109. package/esm/configuration/fullConfSnapshot.js +30 -52
  110. package/esm/configuration/getConf.d.ts +45 -41
  111. package/esm/configuration/getConf.js +111 -44
  112. package/esm/configuration/index.d.ts +26 -11
  113. package/esm/configuration/index.js +16 -7
  114. package/esm/configuration/indexType.d.ts +26 -0
  115. package/esm/configuration/indexType.js +38 -0
  116. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  117. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  118. package/esm/configuration/plot.d.ts +61 -0
  119. package/esm/configuration/plot.js +142 -0
  120. package/esm/configuration/readConfObject.d.ts +2 -24
  121. package/esm/configuration/readConfObject.js +20 -63
  122. package/esm/configuration/requirements.d.ts +37 -0
  123. package/esm/configuration/requirements.js +88 -0
  124. package/esm/configuration/schemaRegistry.d.ts +32 -15
  125. package/esm/configuration/schemaRegistry.js +33 -35
  126. package/esm/configuration/schemaTypes.d.ts +21 -5
  127. package/esm/configuration/schemaTypes.js +66 -55
  128. package/esm/configuration/slotFacade.d.ts +12 -29
  129. package/esm/configuration/slotFacade.js +44 -23
  130. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  131. package/esm/configuration/snapshotPreprocess.js +161 -0
  132. package/esm/configuration/tabixIndexFields.d.ts +30 -4
  133. package/esm/configuration/tabixIndexFields.js +21 -4
  134. package/esm/configuration/tabixShorthand.d.ts +34 -17
  135. package/esm/configuration/tabixShorthand.js +49 -22
  136. package/esm/configuration/types.d.ts +182 -43
  137. package/esm/configuration/uriShorthand.d.ts +9 -0
  138. package/esm/configuration/uriShorthand.js +16 -0
  139. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
  140. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
  141. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
  142. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
  143. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  144. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  145. package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
  146. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  147. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  148. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  149. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  150. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  151. package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
  152. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  153. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
  154. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
  155. package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
  156. package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
  157. package/esm/data_adapters/dataAdapterCache.js +44 -10
  158. package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
  159. package/esm/data_adapters/getFeatureAdapter.js +8 -8
  160. package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
  161. package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
  162. package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
  163. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  164. package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
  165. package/esm/pluggableElementTypes/DisplayType.js +28 -12
  166. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  167. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  168. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
  169. package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
  170. package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
  171. package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
  172. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  173. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  174. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  175. package/esm/pluggableElementTypes/ViewType.js +32 -4
  176. package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
  177. package/esm/pluggableElementTypes/WidgetType.js +6 -0
  178. package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
  179. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  180. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  181. package/esm/pluggableElementTypes/index.d.ts +2 -1
  182. package/esm/pluggableElementTypes/index.js +2 -9
  183. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
  184. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
  185. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
  186. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
  187. package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
  188. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
  189. package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
  190. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  191. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
  192. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  193. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  194. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  195. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  196. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
  197. package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
  198. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
  199. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  200. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  201. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
  202. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
  203. package/esm/pluggableElementTypes/models/index.d.ts +2 -3
  204. package/esm/pluggableElementTypes/models/index.js +2 -3
  205. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
  206. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
  207. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
  208. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
  209. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  210. package/esm/pluginDefinitions.d.ts +34 -7
  211. package/esm/pluginDefinitions.js +54 -20
  212. package/esm/rpc/BaseRpcDriver.d.ts +2 -2
  213. package/esm/rpc/BaseRpcDriver.js +25 -30
  214. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  215. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  216. package/esm/rpc/RpcClient.d.ts +18 -6
  217. package/esm/rpc/RpcClient.js +51 -16
  218. package/esm/rpc/RpcManager.d.ts +14 -10
  219. package/esm/rpc/RpcManager.js +11 -1
  220. package/esm/rpc/RpcRegistry.d.ts +40 -7
  221. package/esm/rpc/RpcServer.d.ts +3 -1
  222. package/esm/rpc/RpcServer.js +19 -12
  223. package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
  224. package/esm/rpc/WebWorkerRpcDriver.js +64 -68
  225. package/esm/rpc/byteBudget.d.ts +20 -5
  226. package/esm/rpc/byteBudget.js +16 -5
  227. package/esm/rpc/configSchema.d.ts +7 -21
  228. package/esm/rpc/coreRpcMethods.d.ts +4 -0
  229. package/esm/rpc/coreRpcMethods.js +4 -0
  230. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  231. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  232. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  233. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  234. package/esm/rpc/methods/CoreGetExportData.js +3 -4
  235. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  236. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  237. package/esm/rpc/methods/CoreGetFeatures.js +3 -5
  238. package/esm/rpc/methods/CoreGetRefNames.js +2 -12
  239. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
  240. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  241. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  242. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  243. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  244. package/esm/rpc/methods/layerFeatures.js +29 -0
  245. package/esm/svg/SvgExport.js +6 -7
  246. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  247. package/esm/svg/SvgThemeProviders.js +15 -0
  248. package/esm/svg/exportViewSvg.d.ts +28 -0
  249. package/esm/svg/exportViewSvg.js +13 -0
  250. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  251. package/esm/svg/normalizeSvgMarkup.js +99 -0
  252. package/esm/svg/serializeSvg.d.ts +7 -0
  253. package/esm/svg/serializeSvg.js +11 -0
  254. package/esm/svg/svgId.d.ts +1 -1
  255. package/esm/svg/svgId.js +1 -1
  256. package/esm/svg/svgReady.d.ts +9 -7
  257. package/esm/svg/svgReady.js +8 -7
  258. package/esm/svg/trackNames.d.ts +7 -5
  259. package/esm/svg/trackNames.js +12 -9
  260. package/esm/svg/wrapSvgExport.js +6 -74
  261. package/esm/ui/AddCustomPluginDialog.js +3 -8
  262. package/esm/ui/AppReadyMarker.d.ts +45 -0
  263. package/esm/ui/AppReadyMarker.js +89 -0
  264. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  265. package/esm/ui/CascadingMenu.js +181 -104
  266. package/esm/ui/DropDownMenu.js +2 -1
  267. package/esm/ui/ErrorBanner.js +1 -1
  268. package/esm/ui/ErrorBoundary.d.ts +2 -2
  269. package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
  270. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
  271. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  272. package/esm/ui/FileDropZone.js +2 -1
  273. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  274. package/esm/ui/HoverMenu.d.ts +1 -2
  275. package/esm/ui/HoverMenu.js +6 -3
  276. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  277. package/esm/ui/JexlFilterDialog.js +122 -50
  278. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  279. package/esm/ui/JexlFilterRowEditors.js +90 -0
  280. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  281. package/esm/ui/LazyBaseTooltip.js +9 -0
  282. package/esm/ui/LegendSwatchGlyph.js +26 -21
  283. package/esm/ui/LoadingOverlay.d.ts +14 -0
  284. package/esm/ui/LoadingOverlay.js +4 -2
  285. package/esm/ui/MenuTypes.d.ts +23 -53
  286. package/esm/ui/MenuTypes.js +3 -0
  287. package/esm/ui/MonospaceTextField.d.ts +2 -1
  288. package/esm/ui/MonospaceTextField.js +23 -20
  289. package/esm/ui/PaletteContext.d.ts +10 -5
  290. package/esm/ui/PaletteContext.js +44 -6
  291. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  292. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  293. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  294. package/esm/ui/RefNameAutocomplete/index.js +8 -2
  295. package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
  296. package/esm/ui/RefNameAutocomplete/util.js +42 -1
  297. package/esm/ui/ResizeHandle.d.ts +3 -1
  298. package/esm/ui/ResizeHandle.js +44 -11
  299. package/esm/ui/ScrollChrome.d.ts +13 -0
  300. package/esm/ui/ScrollChrome.js +11 -0
  301. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  302. package/esm/ui/ScrollEdgeShadow.js +14 -35
  303. package/esm/ui/ScrollZoomToggle.d.ts +4 -27
  304. package/esm/ui/ScrollZoomToggle.js +34 -51
  305. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  306. package/esm/ui/SessionJsonPanel.js +14 -0
  307. package/esm/ui/SettingsChangesTable.d.ts +1 -0
  308. package/esm/ui/SettingsChangesTable.js +49 -11
  309. package/esm/ui/ShareLinkField.d.ts +1 -3
  310. package/esm/ui/ShareLinkField.js +13 -40
  311. package/esm/ui/SizeSliderRow.d.ts +1 -3
  312. package/esm/ui/SizeSliderRow.js +4 -6
  313. package/esm/ui/SnackbarModel.js +79 -67
  314. package/esm/ui/StatusProgressBar.js +2 -2
  315. package/esm/ui/SvgColorLegend.d.ts +9 -4
  316. package/esm/ui/SvgColorLegend.js +82 -41
  317. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  318. package/esm/ui/VerticalScrollbar.js +29 -83
  319. package/esm/ui/ViewLoadingScreen.d.ts +5 -4
  320. package/esm/ui/ViewLoadingScreen.js +8 -32
  321. package/esm/ui/colorScale.d.ts +92 -0
  322. package/esm/ui/colorScale.js +72 -0
  323. package/esm/ui/colors.d.ts +64 -0
  324. package/esm/ui/colors.js +230 -1
  325. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  326. package/esm/ui/hoverBoxStyle.js +17 -2
  327. package/esm/ui/index.d.ts +12 -12
  328. package/esm/ui/index.js +14 -22
  329. package/esm/ui/launchViewMenu.js +15 -5
  330. package/esm/ui/legendMenuItem.d.ts +10 -32
  331. package/esm/ui/legendMenuItem.js +9 -36
  332. package/esm/ui/legendSpec.d.ts +15 -8
  333. package/esm/ui/legendSpec.js +14 -23
  334. package/esm/ui/makeSizeMenu.d.ts +0 -6
  335. package/esm/ui/makeSizeMenu.js +6 -30
  336. package/esm/ui/measureLegendText.js +1 -1
  337. package/esm/ui/menuItemAdornment.d.ts +9 -20
  338. package/esm/ui/menuItemAdornment.js +10 -32
  339. package/esm/ui/menuItems.d.ts +2 -7
  340. package/esm/ui/menuItems.js +1 -6
  341. package/esm/ui/multiTrackMenuItems.d.ts +6 -0
  342. package/esm/ui/palette.d.ts +118 -116
  343. package/esm/ui/palette.js +114 -75
  344. package/esm/ui/replaceViewAction.d.ts +1 -1
  345. package/esm/ui/replaceViewAction.js +1 -1
  346. package/esm/ui/theme.d.ts +43 -119
  347. package/esm/ui/theme.js +62 -78
  348. package/esm/ui/toggleMenuItems.d.ts +1 -3
  349. package/esm/ui/toggleMenuItems.js +6 -5
  350. package/esm/ui/useAssemblySelection.d.ts +4 -4
  351. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  352. package/esm/ui/viewHeaderHeight.js +1 -0
  353. package/esm/util/Base1DUtils.d.ts +5 -3
  354. package/esm/util/Base1DUtils.js +14 -6
  355. package/esm/util/Base1DViewModel.d.ts +2 -1
  356. package/esm/util/Base1DViewModel.js +3 -2
  357. package/esm/util/SvgCanvas.d.ts +15 -13
  358. package/esm/util/SvgCanvas.js +76 -56
  359. package/esm/util/TimeTraveller.d.ts +3 -0
  360. package/esm/util/TimeTraveller.js +34 -2
  361. package/esm/util/aborting.d.ts +39 -0
  362. package/esm/util/aborting.js +88 -6
  363. package/esm/util/adapterMetadata.d.ts +1 -1
  364. package/esm/util/adapterMetadata.js +6 -5
  365. package/esm/util/addAndShowTrack.d.ts +2 -5
  366. package/esm/util/addAndShowTrack.js +5 -1
  367. package/esm/util/addRelativeUris.d.ts +17 -5
  368. package/esm/util/addRelativeUris.js +46 -10
  369. package/esm/util/addTrackFromWidget.d.ts +2 -5
  370. package/esm/util/addTrackFromWidget.js +5 -4
  371. package/esm/util/aggregateFieldName.d.ts +10 -0
  372. package/esm/util/aggregateFieldName.js +8 -0
  373. package/esm/util/analytics.js +46 -13
  374. package/esm/util/animationAllowed.d.ts +9 -0
  375. package/esm/util/animationAllowed.js +13 -0
  376. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  377. package/esm/util/applyRowResizeWheel.js +10 -21
  378. package/esm/util/bandHeight.d.ts +10 -0
  379. package/esm/util/bandHeight.js +29 -0
  380. package/esm/util/bandLayout.d.ts +4 -4
  381. package/esm/util/bandLayout.js +4 -4
  382. package/esm/util/baseDisplayConfig.d.ts +8 -0
  383. package/esm/util/baseDisplayConfig.js +27 -0
  384. package/esm/util/bezierConnector.d.ts +4 -3
  385. package/esm/util/bezierConnector.js +38 -45
  386. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  387. package/esm/util/bgzfWorkerPool.js +20 -74
  388. package/esm/util/binnedAggregate.d.ts +17 -0
  389. package/esm/util/binnedAggregate.js +275 -0
  390. package/esm/util/cacheBudgets.d.ts +22 -19
  391. package/esm/util/cacheBudgets.js +22 -19
  392. package/esm/util/cachedSetup.d.ts +16 -6
  393. package/esm/util/cachedSetup.js +108 -38
  394. package/esm/util/categoricalField.d.ts +56 -0
  395. package/esm/util/categoricalField.js +73 -0
  396. package/esm/util/cellMatches.d.ts +23 -0
  397. package/esm/util/cellMatches.js +264 -0
  398. package/esm/util/cellsStep.d.ts +29 -0
  399. package/esm/util/cellsStep.js +437 -0
  400. package/esm/util/clampToContig.d.ts +17 -0
  401. package/esm/util/clampToContig.js +19 -0
  402. package/esm/util/coarseStripHTML.js +1 -2
  403. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  404. package/esm/util/color/cssColorsLevel4.js +1 -0
  405. package/esm/util/color/index.d.ts +5 -3
  406. package/esm/util/color/index.js +7 -4
  407. package/esm/util/colorBits.d.ts +3 -3
  408. package/esm/util/colorBits.js +19 -44
  409. package/esm/util/colorRamp.d.ts +49 -5
  410. package/esm/util/colorRamp.js +169 -18
  411. package/esm/util/colorScale.d.ts +156 -0
  412. package/esm/util/colorScale.js +243 -0
  413. package/esm/util/colorSchemes.d.ts +21 -0
  414. package/esm/util/colorSchemes.js +30 -0
  415. package/esm/util/copyToClipboard.js +8 -1
  416. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
  417. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
  418. package/esm/util/createSvgRasterCanvas.d.ts +10 -0
  419. package/esm/util/cssColorParse.d.ts +15 -0
  420. package/esm/util/cssColorParse.js +53 -0
  421. package/esm/util/diagonalizeRegions.d.ts +2 -3
  422. package/esm/util/diagonalizeRegions.js +8 -13
  423. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  424. package/esm/util/expandLooseSearchIndex.js +29 -0
  425. package/esm/util/featureTable.d.ts +224 -0
  426. package/esm/util/featureTable.js +366 -0
  427. package/esm/util/featureTransforms.d.ts +81 -0
  428. package/esm/util/featureTransforms.js +1231 -0
  429. package/esm/util/featureTypes.d.ts +24 -0
  430. package/esm/util/featureTypes.js +35 -0
  431. package/esm/util/fetchAndMaybeUnzip.js +16 -9
  432. package/esm/util/fetchContext.d.ts +7 -8
  433. package/esm/util/fetchContext.js +3 -3
  434. package/esm/util/fetchHub.d.ts +4 -2
  435. package/esm/util/fetchHub.js +2 -2
  436. package/esm/util/fetchPhases.d.ts +10 -10
  437. package/esm/util/fetchSeq.d.ts +2 -3
  438. package/esm/util/fetchSeq.js +2 -2
  439. package/esm/util/fieldReader.d.ts +17 -0
  440. package/esm/util/fieldReader.js +62 -0
  441. package/esm/util/formatBytes.js +1 -1
  442. package/esm/util/formatGuessers.d.ts +25 -14
  443. package/esm/util/formatGuessers.js +42 -27
  444. package/esm/util/formatRelativeTime.js +1 -1
  445. package/esm/util/freezeDeep.d.ts +8 -10
  446. package/esm/util/freezeDeep.js +8 -10
  447. package/esm/util/getLocationUri.d.ts +2 -1
  448. package/esm/util/getLocationUri.js +8 -2
  449. package/esm/util/groupKeys.d.ts +76 -0
  450. package/esm/util/groupKeys.js +156 -0
  451. package/esm/util/highlights.d.ts +10 -6
  452. package/esm/util/highlights.js +12 -25
  453. package/esm/util/hooks.d.ts +31 -2
  454. package/esm/util/hooks.js +72 -3
  455. package/esm/util/index.d.ts +11 -11
  456. package/esm/util/index.js +11 -10
  457. package/esm/util/indexCandidates.d.ts +1 -31
  458. package/esm/util/indexCandidates.js +5 -63
  459. package/esm/util/installFetch.d.ts +77 -37
  460. package/esm/util/installFetch.js +65 -38
  461. package/esm/util/installInitAutorun.d.ts +14 -13
  462. package/esm/util/installInitAutorun.js +17 -17
  463. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  464. package/esm/util/installPrerequisiteFetch.js +111 -0
  465. package/esm/util/intervals.js +9 -4
  466. package/esm/util/io/index.js +22 -15
  467. package/esm/util/isDataCurrent.d.ts +7 -5
  468. package/esm/util/isDataCurrent.js +9 -6
  469. package/esm/util/isTextEntryFocused.d.ts +7 -0
  470. package/esm/util/isTextEntryFocused.js +16 -0
  471. package/esm/util/jexl.js +24 -21
  472. package/esm/util/jexlFilterRows.d.ts +89 -0
  473. package/esm/util/jexlFilterRows.js +252 -0
  474. package/esm/util/jexlFilters.d.ts +32 -57
  475. package/esm/util/jexlFilters.js +31 -29
  476. package/esm/util/jexlStrings.d.ts +3 -4
  477. package/esm/util/jexlStrings.js +2 -3
  478. package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
  479. package/esm/util/layouts/GranularRectLayout.js +25 -8
  480. package/esm/util/lazyAfterAttach.d.ts +13 -0
  481. package/esm/util/lazyAfterAttach.js +31 -0
  482. package/esm/util/lazyWithPreload.d.ts +19 -0
  483. package/esm/util/lazyWithPreload.js +27 -0
  484. package/esm/util/legendCandidates.d.ts +72 -0
  485. package/esm/util/legendCandidates.js +138 -0
  486. package/esm/util/locString.js +5 -2
  487. package/esm/util/localStorage.js +4 -4
  488. package/esm/util/markEncoding.d.ts +150 -0
  489. package/esm/util/markEncoding.js +885 -0
  490. package/esm/util/markEncodingTypes.d.ts +595 -0
  491. package/esm/util/markEncodingTypes.js +8 -0
  492. package/esm/util/mst-reflection.d.ts +2 -20
  493. package/esm/util/mst-reflection.js +3 -53
  494. package/esm/util/mstUtils.d.ts +31 -23
  495. package/esm/util/mstUtils.js +39 -24
  496. package/esm/util/numericUtils.d.ts +7 -0
  497. package/esm/util/numericUtils.js +16 -0
  498. package/esm/util/numericValue.d.ts +14 -0
  499. package/esm/util/numericValue.js +34 -0
  500. package/esm/util/openFeatureWidget.d.ts +5 -0
  501. package/esm/util/openFeatureWidget.js +2 -2
  502. package/esm/util/openViews.d.ts +17 -0
  503. package/esm/util/openViews.js +22 -0
  504. package/esm/util/parentWalk.d.ts +1 -1
  505. package/esm/util/parentWalk.js +1 -1
  506. package/esm/util/parseLineByLine.d.ts +4 -5
  507. package/esm/util/parseLineByLine.js +8 -14
  508. package/esm/util/pluginStore.d.ts +6 -8
  509. package/esm/util/pluginStore.js +17 -16
  510. package/esm/util/preloadComponent.d.ts +5 -0
  511. package/esm/util/preloadComponent.js +11 -0
  512. package/esm/util/progress.d.ts +22 -22
  513. package/esm/util/progress.js +27 -26
  514. package/esm/util/quantileExtent.d.ts +49 -0
  515. package/esm/util/quantileExtent.js +162 -0
  516. package/esm/util/range.d.ts +13 -9
  517. package/esm/util/range.js +17 -8
  518. package/esm/util/renameRegions.d.ts +26 -6
  519. package/esm/util/renameRegions.js +68 -54
  520. package/esm/util/renderToStaticMarkup.js +24 -14
  521. package/esm/util/rxjs.d.ts +23 -8
  522. package/esm/util/rxjs.js +61 -15
  523. package/esm/util/samplesTsv.d.ts +49 -0
  524. package/esm/util/samplesTsv.js +86 -0
  525. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  526. package/esm/util/scheduleDetachedDestroy.js +24 -0
  527. package/esm/util/scrollLatch.d.ts +1 -0
  528. package/esm/util/scrollLatch.js +8 -0
  529. package/esm/util/selectEncodedFeature.d.ts +16 -0
  530. package/esm/util/selectEncodedFeature.js +34 -0
  531. package/esm/util/sessionSharing.d.ts +7 -5
  532. package/esm/util/sessionSharing.js +23 -23
  533. package/esm/util/shapeNameList.d.ts +2 -0
  534. package/esm/util/shapeNameList.js +6 -0
  535. package/esm/util/shapeNames.d.ts +7 -0
  536. package/esm/util/shapeNames.js +11 -0
  537. package/esm/util/simpleFeature.d.ts +0 -1
  538. package/esm/util/springAnimate.js +1 -1
  539. package/esm/util/starFusion.d.ts +26 -0
  540. package/esm/util/starFusion.js +37 -0
  541. package/esm/util/stepTables.d.ts +96 -0
  542. package/esm/util/stepTables.js +277 -0
  543. package/esm/util/svAlt.d.ts +145 -0
  544. package/esm/util/svAlt.js +364 -0
  545. package/esm/util/svgColorProps.d.ts +11 -0
  546. package/esm/util/svgColorProps.js +28 -1
  547. package/esm/util/systemColorScheme.d.ts +12 -0
  548. package/esm/util/systemColorScheme.js +27 -0
  549. package/esm/util/tabix.d.ts +19 -10
  550. package/esm/util/tabix.js +19 -14
  551. package/esm/util/thresholdScale.d.ts +91 -0
  552. package/esm/util/thresholdScale.js +166 -0
  553. package/esm/util/timeGate.d.ts +4 -5
  554. package/esm/util/timeGate.js +4 -5
  555. package/esm/util/trackConfigDelta.d.ts +26 -26
  556. package/esm/util/trackConfigDelta.js +63 -47
  557. package/esm/util/tracks.d.ts +120 -66
  558. package/esm/util/tracks.js +501 -151
  559. package/esm/util/translateTranscript.d.ts +44 -0
  560. package/esm/util/translateTranscript.js +102 -0
  561. package/esm/util/types/data.d.ts +0 -2
  562. package/esm/util/types/index.d.ts +121 -22
  563. package/esm/util/types/index.js +9 -0
  564. package/esm/util/types/mst.d.ts +3 -0
  565. package/esm/util/types/mst.js +4 -0
  566. package/esm/util/types/renameIds.d.ts +1 -0
  567. package/esm/util/types/renameIds.js +29 -0
  568. package/esm/util/types/services.d.ts +1 -1
  569. package/esm/util/unknownSnapshotKeys.d.ts +53 -0
  570. package/esm/util/unknownSnapshotKeys.js +76 -0
  571. package/esm/util/useFeatureSequence.js +5 -5
  572. package/esm/util/useFetch.d.ts +3 -4
  573. package/esm/util/useFetch.js +19 -10
  574. package/esm/util/useFetchPlugins.d.ts +6 -2
  575. package/esm/util/useFetchPlugins.js +7 -3
  576. package/esm/util/usePanZoom.js +10 -3
  577. package/esm/util/usePanelVirtualScroll.d.ts +7 -35
  578. package/esm/util/usePanelVirtualScroll.js +9 -36
  579. package/esm/util/useRafCommit.js +1 -0
  580. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  581. package/esm/util/useRowVirtualScroll.js +8 -49
  582. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  583. package/esm/util/useVirtualScrollWheel.js +40 -74
  584. package/esm/util/viewHighlights.d.ts +3 -0
  585. package/esm/util/viewHighlights.js +5 -0
  586. package/esm/util/viewStatus.d.ts +47 -15
  587. package/esm/util/viewStatus.js +34 -0
  588. package/esm/util/wheelZoom.d.ts +7 -1
  589. package/esm/util/wheelZoom.js +85 -19
  590. package/esm/util/whenViewSettled.d.ts +55 -8
  591. package/esm/util/whenViewSettled.js +56 -7
  592. package/esm/util/withFeatureDetails.js +4 -0
  593. package/esm/util/withLaunchInput.d.ts +174 -0
  594. package/esm/util/withLaunchInput.js +274 -0
  595. package/package.json +75 -24
  596. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  597. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
  598. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
  599. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  600. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  601. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  602. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  603. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  604. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  605. package/esm/ReExports/index.d.ts +0 -1
  606. package/esm/ReExports/index.js +0 -1
  607. package/esm/ReExports/publicUtil.d.ts +0 -1
  608. package/esm/ReExports/publicUtil.js +0 -28
  609. package/esm/configuration/promotableDefaults.d.ts +0 -199
  610. package/esm/configuration/promotableDefaults.js +0 -326
  611. package/esm/configuration/promotablePin.d.ts +0 -55
  612. package/esm/configuration/promotablePin.js +0 -1
  613. package/esm/configuration/promotableResolve.d.ts +0 -108
  614. package/esm/configuration/promotableResolve.js +0 -117
  615. package/esm/configuration/promotableSlots.d.ts +0 -12
  616. package/esm/configuration/promotableSlots.js +0 -45
  617. package/esm/configuration/slotShape.d.ts +0 -12
  618. package/esm/configuration/slotShape.js +0 -84
  619. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  620. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  621. package/esm/ui/PinAdornment.d.ts +0 -5
  622. package/esm/ui/PinAdornment.js +0 -79
  623. package/esm/ui/SvgGradientLegend.d.ts +0 -26
  624. package/esm/ui/SvgGradientLegend.js +0 -26
  625. package/esm/ui/highlightChipReveal.d.ts +0 -32
  626. package/esm/ui/highlightChipReveal.js +0 -39
  627. package/esm/ui/promotableMenuItems.d.ts +0 -19
  628. package/esm/ui/promotableMenuItems.js +0 -89
  629. package/esm/ui/promotablePinCoverage.d.ts +0 -44
  630. package/esm/ui/promotablePinCoverage.js +0 -87
  631. package/esm/util/applyInitSettings.d.ts +0 -79
  632. package/esm/util/applyInitSettings.js +0 -91
  633. package/esm/util/openDisplays.d.ts +0 -23
  634. package/esm/util/openDisplays.js +0 -79
  635. package/esm/util/stopToken.d.ts +0 -211
  636. package/esm/util/stopToken.js +0 -438
  637. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
@@ -1,34 +1,71 @@
1
1
  import type PluginManager from '../../PluginManager.ts';
2
+ import type { LegacyDisplaySnapshot } from './migrateTrackConfig.ts';
2
3
  import type { Instance } from '@jbrowse/mobx-state-tree';
4
+ interface TrackConfigSnapshot {
5
+ trackId: string;
6
+ name: string;
7
+ type: string;
8
+ assemblyNames?: unknown;
9
+ textSearching?: {
10
+ textSearchAdapter?: unknown;
11
+ };
12
+ adapter?: {
13
+ type?: unknown;
14
+ };
15
+ displays?: LegacyDisplaySnapshot[];
16
+ }
17
+ /**
18
+ * Whether a track's adapter serves what a display type draws from: every
19
+ * `adapterCapabilities` entry the display asks for, among those the adapter
20
+ * type declares.
21
+ */
22
+ export declare function adapterFeeds(pluginManager: PluginManager, adapter: TrackConfigSnapshot['adapter']): (display: {
23
+ adapterCapabilities: readonly string[];
24
+ }) => boolean;
25
+ /**
26
+ * The display types of `trackType` a track on `adapter` can draw as, in the
27
+ * track type's order.
28
+ */
29
+ export declare function displayTypesFedBy(pluginManager: PluginManager, trackType: string, adapter: TrackConfigSnapshot['adapter']): string[];
30
+ /**
31
+ * The display types a view may open a track as, best first: those its adapter
32
+ * feeds, the ones its config declares leading in declared order. A declared
33
+ * display the adapter cannot feed stays in the config as settings and is never
34
+ * a candidate.
35
+ */
36
+ export declare function displayCandidates(pluginManager: PluginManager, track: {
37
+ type: string;
38
+ adapter?: TrackConfigSnapshot['adapter'];
39
+ displays?: readonly {
40
+ type: string;
41
+ }[];
42
+ }): string[];
3
43
  /**
4
44
  * Snapshot normalization shared by every track config schema (including
5
- * ReferenceSequenceTrack). Runs the `Core-preProcessTrackConfig` extension
6
- * point, expands the `displayDefaults` shorthand, auto-fills a stub display for
7
- * each of the track type's registered displays, normalizes legacy display-type
8
- * aliases to their canonical name, dedupes by type (first wins), and lifts
9
- * legacy renderer configs.
45
+ * ReferenceSequenceTrack). Loads retired display types as the displays they
46
+ * retired into, runs the `Core-preProcessTrackConfig` extension point,
47
+ * auto-fills a stub display for each of the track type's registered displays
48
+ * whose adapter capabilities the track's adapter declares, folds the
49
+ * `displayDefaults` shorthand into those entries, dedupes by type (first wins),
50
+ * and lifts legacy renderer configs.
10
51
  */
11
52
  export declare function preprocessTrackConfigSnapshot(pluginManager: PluginManager, snapshot: Record<string, unknown>): {
12
53
  trackId: string;
13
54
  name: string;
14
55
  type: string;
56
+ assemblyNames?: unknown;
57
+ textSearching?: {
58
+ textSearchAdapter?: unknown;
59
+ };
60
+ adapter?: {
61
+ type?: unknown;
62
+ };
15
63
  displays: {
16
64
  type: string;
17
65
  featureHeight?: {} | null | undefined;
18
66
  displayId: string;
19
67
  }[];
20
68
  };
21
- /**
22
- * The `addDisplayConf` action shared by every track config schema — appends a
23
- * display config unless one with the same displayId already exists.
24
- */
25
- interface DisplayConf {
26
- type: string;
27
- displayId: string;
28
- }
29
- export declare function trackConfigActions(self: unknown): {
30
- addDisplayConf(conf: DisplayConf): DisplayConf | undefined;
31
- };
32
69
  /**
33
70
  * #config BaseTrack
34
71
  * Configuration shared by all track types. Concrete tracks (FeatureTrack,
@@ -36,168 +73,92 @@ export declare function trackConfigActions(self: unknown): {
36
73
  * fields in addition to its own.
37
74
  */
38
75
  export declare function createBaseTrackConfig(pluginManager: PluginManager): import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
39
- /**
40
- * #slot
41
- */
42
76
  readonly name: {
43
- readonly description: "descriptive name of the track, falls back to the trackId when unset";
44
- readonly type: "string";
45
- readonly defaultValue: "";
77
+ type: "string";
78
+ } & {
79
+ defaultValue: string;
46
80
  };
47
- /**
48
- * #slot
49
- */
50
81
  readonly assemblyNames: {
51
- readonly description: "name of the assembly (or assemblies) track belongs to";
52
- readonly type: "stringArray";
53
- readonly defaultValue: readonly ["assemblyName"];
82
+ type: "stringArray";
83
+ } & {
84
+ defaultValue: unknown;
54
85
  };
55
- /**
56
- * #slot
57
- */
58
86
  readonly description: {
59
- readonly description: "a description of the track";
60
- readonly type: "string";
61
- readonly defaultValue: "";
87
+ type: "string";
88
+ } & {
89
+ defaultValue: string;
62
90
  };
63
- /**
64
- * #slot
65
- */
66
91
  readonly category: {
67
- readonly description: "the category and sub-categories of a track";
68
- readonly type: "stringArray";
69
- readonly defaultValue: readonly [];
92
+ type: "stringArray";
93
+ } & {
94
+ defaultValue: unknown;
70
95
  };
71
- /**
72
- * #slot
73
- */
74
96
  readonly metadata: {
75
- readonly type: "frozen";
76
- readonly description: "anything to add about this track";
77
- readonly defaultValue: {};
97
+ type: "frozen";
98
+ } & {
99
+ defaultValue: unknown;
78
100
  };
79
- /**
80
- * #slot
81
- * where this track's data comes from. Its `type` names the adapter for
82
- * the file format (`BamAdapter`, `Gff3TabixAdapter`, ...) and the rest of
83
- * the object is that adapter's own slots — see the adapter pages for
84
- * each. Most adapters also accept a `uri` shorthand in place of writing
85
- * their location slots out.
86
- */
87
- readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
101
+ readonly adapter: import("@jbrowse/core/PluginManager").PluggableConfigSchemaType;
88
102
  readonly textSearching: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
89
- /**
90
- * #slot textSearching.indexingAttributes
91
- */
92
103
  readonly indexingAttributes: {
93
- readonly type: "stringArray";
94
- readonly description: "list of which feature attributes to index for text searching";
95
- readonly defaultValue: readonly ["Name", "ID", "symbol"];
104
+ type: "stringArray";
105
+ } & {
106
+ defaultValue: unknown;
96
107
  };
97
- /**
98
- * #slot textSearching.indexingFeatureTypesToExclude
99
- */
100
108
  readonly indexingFeatureTypesToExclude: {
101
- readonly type: "stringArray";
102
- readonly description: "list of feature types to exclude in text search index";
103
- readonly defaultValue: readonly ["CDS", "exon"];
109
+ type: "stringArray";
110
+ } & {
111
+ defaultValue: unknown;
104
112
  };
105
- /**
106
- * #slot textSearching.indexingFeatureTypesToInclude
107
- * The only feature types to index, dropping every other type the file
108
- * carries. Empty (the default) means no allow list, i.e. index
109
- * everything `indexingFeatureTypesToExclude` does not name.
110
- *
111
- * Use this instead of the exclude list when the file draws from a
112
- * vocabulary you do not control. An NCBI RefSeq GFF3 uses 115 feature
113
- * types, 80 of them leaf records with nothing to search for — a `match`
114
- * is labelled with a bare UUID, a `cDNA_match` with an MD5, every
115
- * `biological_region` with the literal string "biological region" — so
116
- * a deny list leaks whichever type is added next, while the allow list
117
- * (gene, pseudogene, and the transcript types) does not grow. Both may
118
- * be set: this one admits, the exclude list then narrows.
119
- *
120
- * GFF3 only; the GTF and VCF indexers do not filter by type.
121
- */
122
113
  readonly indexingFeatureTypesToInclude: {
123
- readonly type: "stringArray";
124
- readonly description: "the only feature types to index; empty means index every type not excluded";
125
- readonly defaultValue: readonly [];
114
+ type: "stringArray";
115
+ } & {
116
+ defaultValue: unknown;
126
117
  };
127
- /**
128
- * #slot textSearching.textSearchAdapter
129
- * a per-track name search index, normally a `TrixTextSearchAdapter`
130
- * over what `jbrowse text-index --tracks` built. Without one, this
131
- * track's features are only findable through an assembly-wide search
132
- * adapter.
133
- */
134
- readonly textSearchAdapter: import("@jbrowse/mobx-state-tree").IAnyType;
135
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
136
- /**
137
- * #slot
138
- * An **array** of full display configs, e.g.
139
- * `displays: [{ type: 'LinearBasicDisplay', color: 'green' }]`. Each entry
140
- * names a display `type`; use this when you need exact control — your own
141
- * `displayId`, different settings for two displays, or choosing which
142
- * display is the default.
143
- *
144
- * For the common case, prefer the `displayDefaults` shorthand instead — an
145
- * object of appearance settings (e.g. `displayDefaults: { color: 'green' }`)
146
- * that JBrowse routes to whichever display uses each setting, so you don't
147
- * have to name the display or write the array.
148
- *
149
- * See the [track config guide](/docs/config_guides/tracks/#configuring-displays).
150
- */
151
- readonly displays: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
152
- /**
153
- * #slot
154
- * jexl callbacks that add, rewrite or hide fields in this track's
155
- * feature-details panel. Four slots, listed at
156
- * [FormatDetails](/docs/config/formatdetails), and the same schema exists
157
- * session-wide as `configuration.formatDetails`.
158
- */
118
+ readonly textSearchAdapter: import("@jbrowse/mobx-state-tree").ITypeUnion<any, any, import("../../configuration/types.ts").PluggableConfigNode | undefined>;
119
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
120
+ readonly displays: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/core/PluginManager").PluggableConfigSchemaType>;
159
121
  readonly formatDetails: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
160
122
  readonly feature: {
161
- readonly type: "frozen";
162
- readonly description: "adds extra fields to the feature details";
163
- readonly defaultValue: {};
164
- readonly contextVariable: ["feature"];
123
+ type: "frozen";
124
+ } & {
125
+ defaultValue: unknown;
165
126
  };
166
127
  readonly subfeatures: {
167
- readonly type: "frozen";
168
- readonly description: "adds extra fields to the subfeatures of a feature";
169
- readonly defaultValue: {};
170
- readonly contextVariable: ["feature"];
128
+ type: "frozen";
129
+ } & {
130
+ defaultValue: unknown;
171
131
  };
172
132
  readonly depth: {
173
- readonly type: "maybeNumber";
174
- readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
133
+ type: "maybeNumber";
175
134
  };
176
135
  readonly maxDepth: {
177
- readonly type: "maybeNumber";
178
- readonly description: "hide subfeatures nested deeper than this, default no limit";
136
+ type: "maybeNumber";
179
137
  };
180
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
181
- /**
182
- * #slot
183
- * jexl callbacks that add, rewrite or hide fields in this track's About
184
- * dialog. Two slots, listed at
185
- * [FormatAbout](/docs/config/formatabout), and the same schema exists
186
- * session-wide as `configuration.formatAbout`.
187
- */
138
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
188
139
  readonly formatAbout: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
189
140
  readonly config: {
190
- readonly type: "frozen";
191
- readonly description: "formats configuration object in about dialog";
192
- readonly defaultValue: {};
193
- readonly contextVariable: ["config"];
141
+ type: "frozen";
142
+ } & {
143
+ defaultValue: unknown;
194
144
  };
195
145
  readonly hideUris: {
196
- readonly type: "boolean";
197
- readonly defaultValue: false;
146
+ type: "boolean";
147
+ } & {
148
+ defaultValue: boolean;
198
149
  };
199
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
200
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "trackId">>;
150
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
151
+ type: {
152
+ type: "string";
153
+ } & {
154
+ defaultValue: string;
155
+ };
156
+ trackId: {
157
+ type: "string";
158
+ } & {
159
+ defaultValue: string;
160
+ };
161
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "trackId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
201
162
  export type BaseTrackConfigSchema = ReturnType<typeof createBaseTrackConfig>;
202
163
  export type BaseTrackConfig = Instance<BaseTrackConfigSchema>;
203
164
  export {};
@@ -1,67 +1,101 @@
1
1
  import { types } from '@jbrowse/mobx-state-tree';
2
2
  import { ConfigurationSchema, FormatAboutConfigSchemaFactory, FormatDetailsConfigSchemaFactory, } from '../../configuration/index.js';
3
+ import { expandLooseSearchIndex } from '../../util/expandLooseSearchIndex.js';
3
4
  import { expandTrackConfigShorthand } from './expandTrackConfigShorthand.js';
4
- import { liftLegacyRendererConfig } from './migrateTrackConfig.js';
5
+ import { liftLegacyRendererConfig, migrateRetiredDisplays, } from './migrateTrackConfig.js';
6
+ /**
7
+ * Whether a track's adapter serves what a display type draws from: every
8
+ * `adapterCapabilities` entry the display asks for, among those the adapter
9
+ * type declares.
10
+ */
11
+ export function adapterFeeds(pluginManager, adapter) {
12
+ const type = adapter?.type;
13
+ const capabilities = new Set(typeof type === 'string' && pluginManager.hasAdapterType(type)
14
+ ? pluginManager.getAdapterType(type).adapterCapabilities
15
+ : []);
16
+ return (display) => display.adapterCapabilities.every(c => capabilities.has(c));
17
+ }
18
+ /**
19
+ * The display types of `trackType` a track on `adapter` can draw as, in the
20
+ * track type's order.
21
+ */
22
+ export function displayTypesFedBy(pluginManager, trackType, adapter) {
23
+ return pluginManager
24
+ .getTrackType(trackType)
25
+ .displayTypes.filter(adapterFeeds(pluginManager, adapter))
26
+ .map(d => d.name);
27
+ }
28
+ /**
29
+ * The display types a view may open a track as, best first: those its adapter
30
+ * feeds, the ones its config declares leading in declared order. A declared
31
+ * display the adapter cannot feed stays in the config as settings and is never
32
+ * a candidate.
33
+ */
34
+ export function displayCandidates(pluginManager, track) {
35
+ const declared = (track.displays ?? []).map(d => pluginManager.resolveDisplayTypeRecord(d.type)?.name ?? d.type);
36
+ const rank = (name) => {
37
+ const i = declared.indexOf(name);
38
+ return i === -1 ? declared.length : i;
39
+ };
40
+ return displayTypesFedBy(pluginManager, track.type, track.adapter).sort((a, b) => rank(a) - rank(b));
41
+ }
5
42
  /**
6
43
  * Snapshot normalization shared by every track config schema (including
7
- * ReferenceSequenceTrack). Runs the `Core-preProcessTrackConfig` extension
8
- * point, expands the `displayDefaults` shorthand, auto-fills a stub display for
9
- * each of the track type's registered displays, normalizes legacy display-type
10
- * aliases to their canonical name, dedupes by type (first wins), and lifts
11
- * legacy renderer configs.
44
+ * ReferenceSequenceTrack). Loads retired display types as the displays they
45
+ * retired into, runs the `Core-preProcessTrackConfig` extension point,
46
+ * auto-fills a stub display for each of the track type's registered displays
47
+ * whose adapter capabilities the track's adapter declares, folds the
48
+ * `displayDefaults` shorthand into those entries, dedupes by type (first wins),
49
+ * and lifts legacy renderer configs.
12
50
  */
13
51
  export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
14
- const snap = expandTrackConfigShorthand(pluginManager.evaluateExtensionPoint(
52
+ const pre = pluginManager.evaluateExtensionPoint(
15
53
  /** #extensionPoint Core-preProcessTrackConfig | sync | Rewrite a track config snapshot before it is instantiated */
16
- 'Core-preProcessTrackConfig', structuredClone(snapshot)), pluginManager);
17
- // expandTrackConfigShorthand folds any `displayDefaults` shorthand into
18
- // `displays`, but its early-return branches can leave a malformed `displays`
19
- // untouched; guard so MST union-type probing never crashes on a non-array
20
- // `displays`.
21
- const displays = Array.isArray(snap.displays) ? snap.displays : [];
22
- if (snap.trackId !== 'placeholderId') {
23
- // Add any of the track type's possible displays not already on the snapshot
54
+ 'Core-preProcessTrackConfig', migrateRetiredDisplays(pluginManager, structuredClone(snapshot)));
55
+ // a non-array `displays` would crash MST union-type probing
56
+ const declared = Array.isArray(pre.displays) ? pre.displays : [];
57
+ let displays = declared;
58
+ if (pre.trackId !== 'placeholderId') {
59
+ // The displays the config declared lead, in its order; every other one
60
+ // the adapter feeds follows in the track type's own order.
24
61
  try {
25
- const configDisplayTypes = new Set(displays.map(d => d.type));
26
- for (const d of pluginManager.getTrackType(snap.type).displayTypes) {
27
- if (!configDisplayTypes.has(d.name)) {
28
- displays.push({
29
- displayId: `${snap.trackId}-${d.name}`,
30
- type: d.name,
31
- });
32
- }
33
- }
62
+ const declaredTypes = new Set(declared.map(d => d.type));
63
+ const feeds = adapterFeeds(pluginManager, pre.adapter);
64
+ displays = [
65
+ ...declared,
66
+ ...pluginManager
67
+ .getTrackType(pre.type ?? '')
68
+ .displayTypes.filter(d => !declaredTypes.has(d.name) && feeds(d))
69
+ .map(d => ({ displayId: `${pre.trackId}-${d.name}`, type: d.name })),
70
+ ];
34
71
  }
35
72
  catch (e) {
36
- throw new Error(`Unknown track type "${snap.type}" in ${JSON.stringify(snap)}`, { cause: e });
73
+ throw new Error(`Unknown track type "${pre.type}" in ${JSON.stringify(pre)}`, { cause: e });
37
74
  }
38
75
  }
39
- const displayElements = pluginManager.getDisplayElements();
40
- const knownDisplayTypes = new Set(displayElements.map(d => d.name));
41
- // Map of legacy display type → canonical name, built from each DisplayType's
42
- // `aliases` declaration. Lets each display "own" its renames without a central
43
- // migration file.
44
- const displayAliasMap = new Map();
45
- for (const d of displayElements) {
46
- if (d.aliases) {
47
- for (const alias of d.aliases) {
48
- displayAliasMap.set(alias, d.name);
49
- }
50
- }
51
- }
52
- // After alias normalization, dedupe by type so the track config holds one
53
- // display per type (old sessions can carry several display configs whose types
54
- // are all aliases of one canonical type). First occurrence wins to preserve
55
- // the default (displays[0]).
76
+ const snap = expandTrackConfigShorthand({ ...pre, displays }, pluginManager);
77
+ const knownDisplayTypes = new Set(pluginManager.getDisplayElements().map(d => d.name));
78
+ // one display per type; the first keeps its place as the default
56
79
  const seenTypes = new Set();
80
+ const { textSearching } = snap;
57
81
  return {
58
82
  ...snap,
59
- displays: displays
60
- .map(d => {
61
- const canonical = displayAliasMap.get(d.type);
62
- return canonical ? { ...d, type: canonical } : d;
83
+ ...(textSearching?.textSearchAdapter
84
+ ? {
85
+ textSearching: {
86
+ ...textSearching,
87
+ textSearchAdapter: expandLooseSearchIndex(textSearching.textSearchAdapter, snap.assemblyNames),
88
+ },
89
+ }
90
+ : {}),
91
+ displays: snap.displays
92
+ .filter(d => {
93
+ const known = knownDisplayTypes.has(d.type);
94
+ if (!known) {
95
+ console.warn(`Dropping display of unknown type "${d.type}" from track "${snap.trackId}": no registered display type has that name`);
96
+ }
97
+ return known;
63
98
  })
64
- .filter(d => knownDisplayTypes.has(d.type))
65
99
  .filter(d => {
66
100
  const dup = seenTypes.has(d.type);
67
101
  seenTypes.add(d.type);
@@ -70,23 +104,6 @@ export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
70
104
  .map(d => liftLegacyRendererConfig(d, snap.trackId)),
71
105
  };
72
106
  }
73
- export function trackConfigActions(self) {
74
- const { displays } = self;
75
- return {
76
- addDisplayConf(conf) {
77
- const { type } = conf;
78
- if (!type) {
79
- throw new Error('display type not specified');
80
- }
81
- const display = displays.find(d => d.displayId === conf.displayId);
82
- if (display) {
83
- return display;
84
- }
85
- const length = displays.push(conf);
86
- return displays[length - 1];
87
- },
88
- };
89
- }
90
107
  /**
91
108
  * #config BaseTrack
92
109
  * Configuration shared by all track types. Concrete tracks (FeatureTrack,
@@ -94,6 +111,14 @@ export function trackConfigActions(self) {
94
111
  * fields in addition to its own.
95
112
  */
96
113
  export function createBaseTrackConfig(pluginManager) {
114
+ const none = types.optional(types.undefined, undefined);
115
+ const adapter = pluginManager.pluggableConfigSchemaType('text search adapter');
116
+ // A dispatcher rather than `types.maybe` or member order. Every adapter here
117
+ // is all-default, so an omitted key has to resolve to nothing rather than the
118
+ // first registered adapter (textSearchAdapterSlotOmission.test.ts). And
119
+ // clearing a set slot, as undo does, must not hand `undefined` to the current
120
+ // adapter's preProcessSnapshot, which MST's own matching does to test it.
121
+ const optionalTextSearchAdapter = types.union({ dispatcher: snapshot => (snapshot === undefined ? none : adapter) }, none, adapter);
97
122
  return ConfigurationSchema('BaseTrack', {
98
123
  /**
99
124
  * #slot
@@ -186,11 +211,12 @@ export function createBaseTrackConfig(pluginManager) {
186
211
  /**
187
212
  * #slot textSearching.textSearchAdapter
188
213
  * a per-track name search index, normally a `TrixTextSearchAdapter`
189
- * over what `jbrowse text-index --tracks` built. Without one, this
214
+ * over what `jbrowse text-index --tracks` built; `'genes.ix'` is
215
+ * enough, searching this track's assemblies. Without one, this
190
216
  * track's features are only findable through an assembly-wide search
191
217
  * adapter.
192
218
  */
193
- textSearchAdapter: pluginManager.pluggableConfigSchemaType('text search adapter'),
219
+ textSearchAdapter: optionalTextSearchAdapter,
194
220
  }),
195
221
  /**
196
222
  * #slot
@@ -211,17 +237,15 @@ export function createBaseTrackConfig(pluginManager) {
211
237
  /**
212
238
  * #slot
213
239
  * jexl callbacks that add, rewrite or hide fields in this track's
214
- * feature-details panel. Four slots, listed at
215
- * [FormatDetails](/docs/config/formatdetails), and the same schema exists
216
- * session-wide as `configuration.formatDetails`.
240
+ * feature-details panel. The same schema exists session-wide as
241
+ * `configuration.formatDetails`.
217
242
  */
218
243
  formatDetails: FormatDetailsConfigSchemaFactory(),
219
244
  /**
220
245
  * #slot
221
246
  * jexl callbacks that add, rewrite or hide fields in this track's About
222
- * dialog. Two slots, listed at
223
- * [FormatAbout](/docs/config/formatabout), and the same schema exists
224
- * session-wide as `configuration.formatAbout`.
247
+ * dialog. The same schema exists session-wide as
248
+ * `configuration.formatAbout`.
225
249
  */
226
250
  formatAbout: FormatAboutConfigSchemaFactory(),
227
251
  }, {
@@ -231,6 +255,5 @@ export function createBaseTrackConfig(pluginManager) {
231
255
  */
232
256
  explicitIdentifier: 'trackId',
233
257
  explicitlyTyped: true,
234
- actions: trackConfigActions,
235
258
  });
236
259
  }
@@ -39,17 +39,15 @@ function useTrackDataExport({ model, regions, regionStr, type, options, }) {
39
39
  getConf(model, 'trackId'),
40
40
  regionStr,
41
41
  type,
42
- // a string, not the boolean: useFetch reads a `false` anywhere in an
43
- // array key as "don't fetch", so the gated state would fetch nothing
44
- force ? 'forced' : 'gated',
42
+ force,
45
43
  ]
46
- : null, async (_name, _trackId, _regions, fileType, mode, stopToken, statusCallback) => fetchTrackData({
44
+ : null, async (_name, _trackId, _regions, fileType, forced, signal, statusCallback) => fetchTrackData({
47
45
  model,
48
46
  regions,
49
47
  type: fileType,
50
48
  options,
51
- force: mode === 'forced',
52
- stopToken,
49
+ force: forced,
50
+ signal,
53
51
  statusCallback,
54
52
  }));
55
53
  return { result: data, error, loading: isLoading, status, setForce };
@@ -1,7 +1,6 @@
1
1
  import type { AnyConfigurationModel } from '../../../configuration/index.ts';
2
2
  import type { Region } from '../../../util/index.ts';
3
3
  import type { StatusCallback } from '../../../util/progress.ts';
4
- import type { StopToken } from '../../../util/stopToken.ts';
5
4
  import type { FileTypeExporter } from '../saveTrackFileTypes/types.ts';
6
5
  import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
7
6
  /**
@@ -41,15 +40,15 @@ export interface TrackDataResult {
41
40
  *
42
41
  * This reads every feature in the visible region, which on a deep track is the
43
42
  * same work the display itself does — worth cancelling when the dialog closes,
44
- * and worth naming while it runs, hence the stop token and status callback.
43
+ * and worth naming while it runs, hence the signal and status callback.
45
44
  */
46
- export declare function fetchTrackData({ model, regions, type, options, force, stopToken, statusCallback, }: {
45
+ export declare function fetchTrackData({ model, regions, type, options, force, signal, statusCallback, }: {
47
46
  model: ExportableTrack;
48
47
  regions: Region[];
49
48
  type: string;
50
49
  options: Record<string, FileTypeExporter>;
51
50
  /** skip the size pre-flight — the user has seen the estimate and said yes */
52
51
  force?: boolean;
53
- stopToken?: StopToken;
52
+ signal?: AbortSignal;
54
53
  statusCallback?: StatusCallback;
55
54
  }): Promise<TrackDataResult>;
@@ -30,13 +30,13 @@ function endWithNewline(str) {
30
30
  *
31
31
  * This reads every feature in the visible region, which on a deep track is the
32
32
  * same work the display itself does — worth cancelling when the dialog closes,
33
- * and worth naming while it runs, hence the stop token and status callback.
33
+ * and worth naming while it runs, hence the signal and status callback.
34
34
  */
35
- export async function fetchTrackData({ model, regions, type, options, force, stopToken, statusCallback, }) {
35
+ export async function fetchTrackData({ model, regions, type, options, force, signal, statusCallback, }) {
36
36
  const session = getSession(model);
37
37
  const sessionId = getRpcSessionId(model);
38
38
  const adapterConfig = getConf(model, ['adapter']);
39
- const opts = { stopToken, statusCallback };
39
+ const opts = { signal, statusCallback };
40
40
  const { exportsDataViaAdapter } = model;
41
41
  // The same index lookup the display's gate takes before it fetches, for the
42
42
  // same reason: this menu item pulls the region the display just refused to