@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
@@ -41,7 +41,7 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
41
41
  /**
42
42
  * #volatile
43
43
  */
44
- volatileRegions: BasicRegion[] | undefined;
44
+ regions: BasicRegion[] | undefined;
45
45
  /**
46
46
  * #volatile
47
47
  */
@@ -196,10 +196,6 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
196
196
  * #getter
197
197
  */
198
198
  readonly initialized: boolean;
199
- /**
200
- * #getter
201
- */
202
- readonly regions: BasicRegion[] | undefined;
203
199
  /**
204
200
  * #getter
205
201
  * note: lowerCaseRefNameAliases not included here: this allows the list
@@ -298,6 +294,16 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
298
294
  */
299
295
  isValidRefName(refName: string): boolean;
300
296
  } & {
297
+ /**
298
+ * #method
299
+ * Where a refName — canonical or any alias — sits in this assembly's own
300
+ * order, which is what chromosome painting hands its palette out by.
301
+ * Canonicalized first because a name off a feature can be the FILE's
302
+ * spelling (`1` against a canonical `chr1`), and a missed probe is silent:
303
+ * the painter falls back to a hash color. Undefined before the regions
304
+ * load and for a name the assembly lacks.
305
+ */
306
+ getRefNamePosition(refName: string): number | undefined;
301
307
  /**
302
308
  * #method
303
309
  * The other names this assembly has for the same sequence as `refName` —
@@ -316,21 +322,17 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
316
322
  *
317
323
  * The load reports progress (the adapter's index download, or for an
318
324
  * in-memory adapter the whole file) through the `statusCallback` of
319
- * whichever caller started it. The others await it silently, and that is
320
- * deliberate rather than a gap worth plumbing around: the callers sharing
321
- * an entry are almost always the N displayed regions of ONE display, so
322
- * their callbacks all write into that display's aggregated status bar and
323
- * the first one is already reporting on behalf of the rest. The costs of
324
- * getting this "right" — a listener set per key, registration, and
325
- * deregistration on settle — buy visibility only for a second display on
326
- * the same file, and for a first caller torn down mid-load, which is a
327
- * no-op rather than a hazard because the callbacks are `isAlive`-guarded
328
- * at the display end.
325
+ * whichever caller started it. The other callers get no progress
326
+ * updates. The callers sharing an entry are almost always the N
327
+ * displayed regions of one display, so their callbacks all write into
328
+ * that display's aggregated status bar, where the first caller already
329
+ * reports for the rest. A listener set per key, with registration and
330
+ * deregistration on settle, would add progress only for a second display
331
+ * on the same file and for a first caller torn down mid-load. The latter
332
+ * is a no-op because the display guards its callbacks with `isAlive`.
329
333
  *
330
- * If that ever stops being enough, the fix is not a subscription list
331
- * bolted on here: it is for the assembly to hold the in-flight status as
332
- * observable state that consumers read, which is what this model is
333
- * already made of.
334
+ * If per-caller progress is ever needed, the assembly should hold the
335
+ * in-flight status as observable state that consumers read.
334
336
  */
335
337
  getRefNameMapForAdapter(adapterConf: AdapterConf, options: BaseOptions): Promise<RefNameAliases>;
336
338
  /**
@@ -1,13 +1,13 @@
1
1
  import { addDisposer, getParent, isAlive, types, } from '@jbrowse/mobx-state-tree';
2
2
  import { onBecomeObserved } from 'mobx';
3
3
  import { getConf } from '../configuration/index.js';
4
- import { adapterConfigCacheKey } from '../data_adapters/dataAdapterCache.js';
5
4
  import QuickLRU from '../util/QuickLRU/index.js';
6
5
  import { createStatusFanOut, createStatusWindow, statusFraction, statusMessageText, statusSource, } from '../util/progress.js';
7
6
  import { getAssemblyRegions, getCytobands, getRefNameAliases, } from './assemblyAdapters.js';
8
7
  import { getGeneticCodesFromFile, lookupGeneticCodeId } from './geneticCodes.js';
9
8
  import { loadRefNameMap } from './loadRefNameMap.js';
10
9
  import { defaultRefNameColors } from './refNameColors.js';
10
+ import { refNameMapKey } from './refNameMapKey.js';
11
11
  import { buildRefNameMaps, checkRefName, groupNamesByCanonicalRefName, } from './refNameMaps.js';
12
12
  // re-exported so `@jbrowse/core/assemblyManager/assembly` stays the public entry
13
13
  // point for these, as plugins import them from here
@@ -52,7 +52,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
52
52
  /**
53
53
  * #volatile
54
54
  */
55
- volatileRegions: undefined,
55
+ regions: undefined,
56
56
  /**
57
57
  * #volatile
58
58
  */
@@ -140,7 +140,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
140
140
  * #getter
141
141
  */
142
142
  get displayName() {
143
- return self.getConf('displayName') || self.getConf('name') || '';
143
+ return self.getConf('displayName') || this.name;
144
144
  },
145
145
  /**
146
146
  * #getter
@@ -197,7 +197,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
197
197
  * in place by the time refNameAliases becomes observable.
198
198
  */
199
199
  setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }) {
200
- self.volatileRegions = regions;
200
+ self.regions = regions;
201
201
  self.refNameAliases = refNameAliases;
202
202
  self.lowerCaseRefNameAliases = lowerCaseRefNameAliases;
203
203
  self.canonicalToSeqAdapterRefNames = canonicalToSeqAdapterRefNames;
@@ -365,7 +365,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
365
365
  // are watched because consumers observe them independently (regions vs
366
366
  // refNameAliases/allRefNames); load() is idempotent so the overlapping
367
367
  // triggers collapse to a single fetch.
368
- for (const prop of ['volatileRegions', 'refNameAliases']) {
368
+ for (const prop of ['regions', 'refNameAliases']) {
369
369
  addDisposer(self, onBecomeObserved(self, prop, () => {
370
370
  // nothing awaits this fire-and-forget kick, so swallow the
371
371
  // rejection: load() has already logged it and recorded it on
@@ -382,12 +382,6 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
382
382
  get initialized() {
383
383
  return !!self.refNameAliases;
384
384
  },
385
- /**
386
- * #getter
387
- */
388
- get regions() {
389
- return self.volatileRegions;
390
- },
391
385
  /**
392
386
  * #getter
393
387
  * note: lowerCaseRefNameAliases not included here: this allows the list
@@ -548,6 +542,18 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
548
542
  },
549
543
  }))
550
544
  .views(self => ({
545
+ /**
546
+ * #method
547
+ * Where a refName — canonical or any alias — sits in this assembly's own
548
+ * order, which is what chromosome painting hands its palette out by.
549
+ * Canonicalized first because a name off a feature can be the FILE's
550
+ * spelling (`1` against a canonical `chr1`), and a missed probe is silent:
551
+ * the painter falls back to a hash color. Undefined before the regions
552
+ * load and for a name the assembly lacks.
553
+ */
554
+ getRefNamePosition(refName) {
555
+ return self.refNameToIndex?.get(self.getCanonicalRefName2(refName));
556
+ },
551
557
  /**
552
558
  * #method
553
559
  * The other names this assembly has for the same sequence as `refName` —
@@ -569,27 +575,23 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
569
575
  *
570
576
  * The load reports progress (the adapter's index download, or for an
571
577
  * in-memory adapter the whole file) through the `statusCallback` of
572
- * whichever caller started it. The others await it silently, and that is
573
- * deliberate rather than a gap worth plumbing around: the callers sharing
574
- * an entry are almost always the N displayed regions of ONE display, so
575
- * their callbacks all write into that display's aggregated status bar and
576
- * the first one is already reporting on behalf of the rest. The costs of
577
- * getting this "right" — a listener set per key, registration, and
578
- * deregistration on settle — buy visibility only for a second display on
579
- * the same file, and for a first caller torn down mid-load, which is a
580
- * no-op rather than a hazard because the callbacks are `isAlive`-guarded
581
- * at the display end.
578
+ * whichever caller started it. The other callers get no progress
579
+ * updates. The callers sharing an entry are almost always the N
580
+ * displayed regions of one display, so their callbacks all write into
581
+ * that display's aggregated status bar, where the first caller already
582
+ * reports for the rest. A listener set per key, with registration and
583
+ * deregistration on settle, would add progress only for a second display
584
+ * on the same file and for a first caller torn down mid-load. The latter
585
+ * is a no-op because the display guards its callbacks with `isAlive`.
582
586
  *
583
- * If that ever stops being enough, the fix is not a subscription list
584
- * bolted on here: it is for the assembly to hold the in-flight status as
585
- * observable state that consumers read, which is what this model is
586
- * already made of.
587
+ * If per-caller progress is ever needed, the assembly should hold the
588
+ * in-flight status as observable state that consumers read.
587
589
  */
588
590
  getRefNameMapForAdapter(adapterConf, options) {
589
591
  if (!options.sessionId) {
590
592
  throw new Error('sessionId is required');
591
593
  }
592
- const key = adapterConfigCacheKey(adapterConf);
594
+ const key = refNameMapKey(adapterConf, options);
593
595
  let entry = self.adapterLoads.get(key);
594
596
  if (!entry) {
595
597
  // evict on failure so a later call can retry
@@ -4,7 +4,7 @@ import type { BaseOptions } from '../data_adapters/BaseAdapter/index.ts';
4
4
  interface AdapterArgs {
5
5
  config: AnyConfigurationModel;
6
6
  pluginManager: PluginManager;
7
- opts?: BaseOptions;
7
+ opts: BaseOptions;
8
8
  }
9
9
  export declare function getRefNameAliases({ config, pluginManager, opts, }: AdapterArgs): Promise<import("../data_adapters/BaseAdapter/BaseRefNameAliasAdapter.ts").Alias[]>;
10
10
  export declare function getCytobands({ config, pluginManager, opts, }: AdapterArgs): Promise<import("../util/simpleFeature.ts").Feature[]>;
@@ -1,3 +1,4 @@
1
+ import { isRegionsAdapter } from '../data_adapters/BaseAdapter/util.js';
1
2
  async function instantiateAdapter(config, pluginManager) {
2
3
  const CLASS = await pluginManager
3
4
  .getAdapterType(config.type)
@@ -6,7 +7,7 @@ async function instantiateAdapter(config, pluginManager) {
6
7
  }
7
8
  export async function getRefNameAliases({ config, pluginManager, opts, }) {
8
9
  const adapter = await instantiateAdapter(config, pluginManager);
9
- return adapter.getRefNameAliases(opts ?? {});
10
+ return adapter.getRefNameAliases(opts);
10
11
  }
11
12
  export async function getCytobands({ config, pluginManager, opts, }) {
12
13
  const adapter = await instantiateAdapter(config, pluginManager);
@@ -14,5 +15,10 @@ export async function getCytobands({ config, pluginManager, opts, }) {
14
15
  }
15
16
  export async function getAssemblyRegions({ config, pluginManager, opts, }) {
16
17
  const adapter = await instantiateAdapter(config, pluginManager);
17
- return adapter.getRegions(opts ?? {});
18
+ // an assembly written with no sequence at all gets whatever adapter the
19
+ // union defaults to, which lists no regions
20
+ if (!isRegionsAdapter(adapter)) {
21
+ throw new Error(`a ${config.type} cannot supply an assembly's sequence: give the assembly a "uri" or a "sequence.adapter"`);
22
+ }
23
+ return adapter.getRegions(opts);
18
24
  }
@@ -1,6 +1,6 @@
1
1
  import type PluginManager from '../PluginManager.ts';
2
2
  import type { Instance } from '@jbrowse/mobx-state-tree';
3
- export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.ts';
3
+ export { expandAssemblySequence, expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.ts';
4
4
  /**
5
5
  * #config BaseAssembly
6
6
  * #category assemblyManagement
@@ -31,15 +31,15 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
31
31
  * The flattest form: an assembly is just a `name` and a sequence-file `uri`.
32
32
  * jbrowse-core picks the adapter (`Bgzip`/`Indexed`/`TwoBit`) from the
33
33
  * extension, derives the `.fai`/`.gzi` siblings, and fills in the
34
- * `ReferenceSequenceTrack`. `refNameAliases`/`cytobands` take the same bare
35
- * `{ uri }` shorthand. (Keep the `uri` *key* rather than a bare string so
36
- * relative URIs still resolve against the config's location.)
34
+ * `ReferenceSequenceTrack`. `refNameAliases`/`cytobands` are each just their
35
+ * file, as a path or `{ uri }`; an alias file named `…sequence_report.tsv` is
36
+ * read as NCBI's sequence report, anything else as a chromAlias-style table.
37
37
  * ```js
38
38
  * {
39
39
  * name: 'hg38',
40
40
  * uri: 'https://example.com/hg38.fa.gz',
41
- * refNameAliases: { uri: 'https://example.com/hg38.aliases.txt' },
42
- * cytobands: { uri: 'https://example.com/hg38.cytoBand.txt' },
41
+ * refNameAliases: 'https://example.com/hg38.aliases.txt',
42
+ * cytobands: 'https://example.com/hg38.cytoBand.txt',
43
43
  * }
44
44
  * ```
45
45
  *
@@ -84,7 +84,8 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
84
84
  * #example custom-display-name-and-genetic-codes-sidecar
85
85
  * Sets a `displayName` for the assembly selector and loads the per-refName
86
86
  * genetic codes from a sidecar TSV (`geneticCodesLocation`) instead of inlining
87
- * them — handy when a config generator emits the mapping separately:
87
+ * them, which is the shape to use when a config generator emits the mapping
88
+ * separately:
88
89
  * ```js
89
90
  * {
90
91
  * name: 'hg38',
@@ -99,102 +100,42 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
99
100
  * ```
100
101
  */
101
102
  declare function assemblyConfigSchema(pluginManager: PluginManager): import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
102
- /**
103
- * #slot
104
- * aliases are "reference name aliases" e.g. aliases for hg38 might be
105
- * "GRCh38"
106
- */
107
103
  readonly aliases: {
108
- readonly type: "stringArray";
109
- readonly defaultValue: readonly [];
110
- readonly description: "Other possible names for the assembly";
104
+ type: "stringArray";
105
+ } & {
106
+ defaultValue: unknown;
111
107
  };
112
- /**
113
- * #slot
114
- * sequence refers to a reference sequence track that has an adapter
115
- * containing, importantly, a sequence adapter such as
116
- * IndexedFastaAdapter
117
- */
118
108
  readonly sequence: import("../configuration/types.ts").AnyConfigurationSchemaType;
119
- /**
120
- * #slot
121
- */
122
109
  readonly refNameColors: {
123
- readonly type: "stringArray";
124
- readonly defaultValue: readonly [];
125
- readonly description: "Define custom colors for each reference sequence. Will cycle through this list if there are not enough colors for every sequence.";
110
+ type: "stringArray";
111
+ } & {
112
+ defaultValue: unknown;
126
113
  };
127
- /**
128
- * #slot
129
- * Maps a reference sequence name to an NCBI genetic-code (translation
130
- * table) id for sequences that don't use the standard code, e.g.
131
- * `{ "chrM": 2 }` for the vertebrate mitochondrial code or
132
- * `{ "chrPltd": 11 }` for a plastid. Drives the reference sequence track's
133
- * translation rows; unlisted refNames use the standard code (1). CDS-level
134
- * translation reads the GFF `transl_table` attribute directly and ignores
135
- * this.
136
- *
137
- * #example
138
- * Mitochondrial contig translated with the vertebrate mitochondrial code
139
- * (NCBI table 2), a plastid contig with table 11; keys are matched through
140
- * refName aliasing:
141
- * ```js
142
- * { chrM: 2, chrPltd: 11 }
143
- * ```
144
- */
145
114
  readonly geneticCodes: {
146
- readonly type: "frozen";
147
- readonly defaultValue: {};
148
- readonly description: "Map of reference sequence name to NCBI genetic-code (translation table) id for sequences not using the standard code, e.g. { \"chrM\": 2 }";
115
+ type: "frozen";
116
+ } & {
117
+ defaultValue: unknown;
149
118
  };
150
- /**
151
- * #slot
152
- * Optional file (tab-separated `refName<TAB>geneticCodeId`, `#` comments
153
- * allowed) to load the same refName-to-genetic-code mapping from, instead
154
- * of inlining it — useful when a config generator emits a sidecar rather
155
- * than inlining per assembly. Entries in the inline `geneticCodes` slot
156
- * take precedence over the file.
157
- *
158
- * #example
159
- * The TSV is `refName<TAB>geneticCodeId` with optional `#` comment lines:
160
- * ```js
161
- * { uri: 'https://example.com/hg38.genetic_codes.tsv' }
162
- * ```
163
- */
164
119
  readonly geneticCodesLocation: {
165
- readonly type: "fileLocation";
166
- readonly defaultValue: {
167
- readonly uri: "";
168
- readonly locationType: "UriLocation";
169
- };
170
- readonly description: "Optional TSV file of refName<TAB>geneticCodeId, an alternative to inlining the geneticCodes map";
120
+ type: "maybeFileLocation";
171
121
  };
172
122
  readonly refNameAliases: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
173
- /**
174
- * #slot refNameAliases.adapter
175
- * refNameAliases help resolve e.g. chr1 and 1 as the same entity the
176
- * data for refNameAliases are fetched from an adapter, that is
177
- * commonly a tsv like chromAliases.txt from UCSC or similar
178
- */
179
- readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
180
- }, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
123
+ readonly adapter: import("@jbrowse/core/PluginManager").PluggableConfigSchemaType;
124
+ }, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
181
125
  readonly cytobands: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
182
- /**
183
- * #slot cytobands.adapter
184
- * cytoband data is fetched from an adapter, and can be displayed by
185
- * a view type as ideograms
186
- */
187
- readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
188
- }, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
189
- /**
190
- * #slot
191
- */
126
+ readonly adapter: import("@jbrowse/core/PluginManager").PluggableConfigSchemaType;
127
+ }, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
192
128
  readonly displayName: {
193
- readonly type: "string";
194
- readonly defaultValue: "";
195
- readonly description: "A human readable display name for the assembly e.g. \"Homo sapiens (hg38)\" while the assembly name may just be \"hg38\"";
129
+ type: "string";
130
+ } & {
131
+ defaultValue: string;
196
132
  };
197
- }, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "name">>;
133
+ name: {
134
+ type: "string";
135
+ } & {
136
+ defaultValue: string;
137
+ };
138
+ }, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "name", undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
198
139
  export default assemblyConfigSchema;
199
140
  /** the assembly config schema IType (use with `getConf`, `ConfigurationReference`, etc.) */
200
141
  export type BaseAssemblyConfigSchema = ReturnType<typeof assemblyConfigSchema>;
@@ -1,6 +1,28 @@
1
1
  import { ConfigurationSchema } from '../configuration/index.js';
2
2
  import { expandAssemblyShorthand } from './expandAssemblyConfigShorthand.js';
3
- export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.js';
3
+ export { expandAssemblySequence, expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.js';
4
+ /**
5
+ * A sidecar sub-schema written as just its file: `'aliases.txt'` or
6
+ * `{ uri: 'aliases.txt' }` becomes `{ adapter: { type, uri } }`, with `type`
7
+ * picked from the uri. baseUri, stamped by addRelativeUris, rides along. An
8
+ * explicit `adapter` passes through untouched.
9
+ */
10
+ function fileAdapterShorthand(typeFor) {
11
+ return {
12
+ shorthand: 'uri',
13
+ preProcessSnapshot: (snap) => {
14
+ const { uri, baseUri, adapter } = snap;
15
+ if (adapter) {
16
+ return snap;
17
+ }
18
+ return {
19
+ adapter: typeof uri === 'string'
20
+ ? { type: typeFor(uri), uri, ...(baseUri ? { baseUri } : {}) }
21
+ : { type: typeFor('') },
22
+ };
23
+ },
24
+ };
25
+ }
4
26
  /**
5
27
  * #config BaseAssembly
6
28
  * #category assemblyManagement
@@ -31,15 +53,15 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
31
53
  * The flattest form: an assembly is just a `name` and a sequence-file `uri`.
32
54
  * jbrowse-core picks the adapter (`Bgzip`/`Indexed`/`TwoBit`) from the
33
55
  * extension, derives the `.fai`/`.gzi` siblings, and fills in the
34
- * `ReferenceSequenceTrack`. `refNameAliases`/`cytobands` take the same bare
35
- * `{ uri }` shorthand. (Keep the `uri` *key* rather than a bare string so
36
- * relative URIs still resolve against the config's location.)
56
+ * `ReferenceSequenceTrack`. `refNameAliases`/`cytobands` are each just their
57
+ * file, as a path or `{ uri }`; an alias file named `…sequence_report.tsv` is
58
+ * read as NCBI's sequence report, anything else as a chromAlias-style table.
37
59
  * ```js
38
60
  * {
39
61
  * name: 'hg38',
40
62
  * uri: 'https://example.com/hg38.fa.gz',
41
- * refNameAliases: { uri: 'https://example.com/hg38.aliases.txt' },
42
- * cytobands: { uri: 'https://example.com/hg38.cytoBand.txt' },
63
+ * refNameAliases: 'https://example.com/hg38.aliases.txt',
64
+ * cytobands: 'https://example.com/hg38.cytoBand.txt',
43
65
  * }
44
66
  * ```
45
67
  *
@@ -84,7 +106,8 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
84
106
  * #example custom-display-name-and-genetic-codes-sidecar
85
107
  * Sets a `displayName` for the assembly selector and loads the per-refName
86
108
  * genetic codes from a sidecar TSV (`geneticCodesLocation`) instead of inlining
87
- * them — handy when a config generator emits the mapping separately:
109
+ * them, which is the shape to use when a config generator emits the mapping
110
+ * separately:
88
111
  * ```js
89
112
  * {
90
113
  * name: 'hg38',
@@ -164,8 +187,7 @@ function assemblyConfigSchema(pluginManager) {
164
187
  * ```
165
188
  */
166
189
  geneticCodesLocation: {
167
- type: 'fileLocation',
168
- defaultValue: { uri: '', locationType: 'UriLocation' },
190
+ type: 'maybeFileLocation',
169
191
  description: 'Optional TSV file of refName<TAB>geneticCodeId, an alternative to inlining the geneticCodes map',
170
192
  },
171
193
  refNameAliases: ConfigurationSchema('RefNameAliases', {
@@ -176,26 +198,9 @@ function assemblyConfigSchema(pluginManager) {
176
198
  * commonly a tsv like chromAliases.txt from UCSC or similar
177
199
  */
178
200
  adapter: pluginManager.pluggableConfigSchemaType('adapter'),
179
- }, {
180
- // the alias file is always a RefNameAliasAdapter, so both its type
181
- // and the `adapter` nesting are boilerplate: allow a bare
182
- // `refNameAliases: { uri: 'aliases.txt' }` (baseUri, stamped next to
183
- // the uri key by addRelativeUris, rides along). An explicit `adapter`
184
- // passes through untouched; absent, the empty default is filled in.
185
- preProcessSnapshot: snap => snap.adapter
186
- ? snap
187
- : {
188
- adapter: {
189
- type: 'RefNameAliasAdapter',
190
- ...(snap.uri
191
- ? {
192
- uri: snap.uri,
193
- ...(snap.baseUri ? { baseUri: snap.baseUri } : {}),
194
- }
195
- : {}),
196
- },
197
- },
198
- }),
201
+ }, fileAdapterShorthand(uri => /sequence_report\.tsv(\.gz)?$/i.test(uri)
202
+ ? 'NcbiSequenceReportAliasAdapter'
203
+ : 'RefNameAliasAdapter')),
199
204
  cytobands: ConfigurationSchema('Cytoband', {
200
205
  /**
201
206
  * #slot cytobands.adapter
@@ -203,24 +208,7 @@ function assemblyConfigSchema(pluginManager) {
203
208
  * a view type as ideograms
204
209
  */
205
210
  adapter: pluginManager.pluggableConfigSchemaType('adapter'),
206
- }, {
207
- // same shorthand as refNameAliases: `cytobands: { uri: 'cytoBand.txt' }`
208
- // fills in the CytobandAdapter; an explicit `adapter` passes through,
209
- // absent it defaults to the empty adapter.
210
- preProcessSnapshot: snap => snap.adapter
211
- ? snap
212
- : {
213
- adapter: {
214
- type: 'CytobandAdapter',
215
- ...(snap.uri
216
- ? {
217
- uri: snap.uri,
218
- ...(snap.baseUri ? { baseUri: snap.baseUri } : {}),
219
- }
220
- : {}),
221
- },
222
- },
223
- }),
211
+ }, fileAdapterShorthand(() => 'CytobandAdapter')),
224
212
  /**
225
213
  * #slot
226
214
  */