@jbrowse/core 5.0.0-beta.7 → 5.0.0-beta.9

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 (379) hide show
  1. package/README.md +427 -130
  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 +8 -9
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +8 -13
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -1
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +3 -3
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +1 -0
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +1 -4
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +53 -0
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -16
  19. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
  20. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  21. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  22. package/esm/BaseFeatureWidget/formatDetails.js +46 -79
  23. package/esm/BaseFeatureWidget/index.d.ts +1 -0
  24. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +35 -28
  25. package/esm/BaseFeatureWidget/stateModelFactory.js +94 -102
  26. package/esm/BaseFeatureWidget/types.d.ts +3 -0
  27. package/esm/BaseFeatureWidget/util.d.ts +0 -3
  28. package/esm/BaseFeatureWidget/util.js +0 -17
  29. package/esm/PluginLoader.d.ts +14 -9
  30. package/esm/PluginLoader.js +34 -26
  31. package/esm/PluginManager.d.ts +4 -4
  32. package/esm/PluginManager.js +1 -1
  33. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  34. package/esm/ReExports/coreModules.generated.js +492 -0
  35. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  36. package/esm/ReExports/coreWorkerModules.generated.js +453 -0
  37. package/esm/ReExports/frameworkModules.d.ts +2 -0
  38. package/esm/ReExports/frameworkModules.js +67 -0
  39. package/esm/ReExports/frameworkShared.d.ts +12 -0
  40. package/esm/ReExports/frameworkShared.js +16 -0
  41. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  42. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  43. package/esm/ReExports/list.js +493 -79
  44. package/esm/ReExports/modules.d.ts +1 -1
  45. package/esm/ReExports/modules.js +10 -87
  46. package/esm/ReExports/registry.d.ts +1 -0
  47. package/esm/ReExports/registry.js +23 -5
  48. package/esm/ReExports/uiStub.d.ts +2 -1
  49. package/esm/ReExports/uiStub.js +24 -2
  50. package/esm/ReExports/workerModules.js +8 -12
  51. package/esm/TextSearch/TextSearchManager.d.ts +3 -12
  52. package/esm/TextSearch/TextSearchManager.js +22 -10
  53. package/esm/assemblyManager/assembly.d.ts +10 -14
  54. package/esm/assemblyManager/assembly.js +10 -14
  55. package/esm/assemblyManager/assemblyConfigSchema.d.ts +23 -81
  56. package/esm/assemblyManager/assemblyManager.d.ts +10 -16
  57. package/esm/assemblyManager/assemblyManager.js +7 -10
  58. package/esm/assemblyManager/loadRefNameMap.js +3 -3
  59. package/esm/configuration/configurationSchema.d.ts +75 -31
  60. package/esm/configuration/configurationSchema.js +74 -40
  61. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  62. package/esm/configuration/configurationSchemaUnion.js +59 -0
  63. package/esm/configuration/configurationSlot.d.ts +37 -12
  64. package/esm/configuration/configurationSlot.js +83 -22
  65. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  66. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  67. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  68. package/esm/configuration/getConf.d.ts +17 -9
  69. package/esm/configuration/getConf.js +52 -7
  70. package/esm/configuration/index.d.ts +11 -4
  71. package/esm/configuration/index.js +7 -4
  72. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  73. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  74. package/esm/configuration/readConfObject.d.ts +2 -22
  75. package/esm/configuration/readConfObject.js +15 -49
  76. package/esm/configuration/requirements.d.ts +37 -0
  77. package/esm/configuration/requirements.js +88 -0
  78. package/esm/configuration/schemaRegistry.d.ts +21 -1
  79. package/esm/configuration/schemaRegistry.js +11 -0
  80. package/esm/configuration/schemaTypes.d.ts +3 -0
  81. package/esm/configuration/schemaTypes.js +10 -0
  82. package/esm/configuration/slotFacade.d.ts +35 -4
  83. package/esm/configuration/slotFacade.js +96 -9
  84. package/esm/configuration/snapshotPreprocess.d.ts +27 -0
  85. package/esm/configuration/snapshotPreprocess.js +102 -0
  86. package/esm/configuration/types.d.ts +161 -22
  87. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +2 -2
  88. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +11 -2
  89. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +12 -1
  90. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +2 -3
  91. package/esm/data_adapters/BaseAdapter/featureDensity.js +2 -3
  92. package/esm/data_adapters/BaseAdapter/index.d.ts +22 -3
  93. package/esm/data_adapters/BaseAdapter/types.d.ts +3 -4
  94. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  95. package/esm/data_adapters/BaseAdapter/zoomRange.js +1 -0
  96. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +9 -11
  97. package/esm/data_adapters/getSequenceSubAdapter.d.ts +1 -3
  98. package/esm/data_adapters/getSequenceSubAdapter.js +1 -3
  99. package/esm/pluggableElementTypes/AdapterType.d.ts +7 -7
  100. package/esm/pluggableElementTypes/RpcMethodType.d.ts +1 -1
  101. package/esm/pluggableElementTypes/RpcMethodType.js +3 -8
  102. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  103. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  104. package/esm/pluggableElementTypes/index.d.ts +1 -1
  105. package/esm/pluggableElementTypes/index.js +1 -1
  106. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +17 -7
  107. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +45 -48
  108. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +40 -36
  109. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +10 -13
  110. package/esm/pluggableElementTypes/models/BaseTrackModel.js +6 -6
  111. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +37 -17
  112. package/esm/pluggableElementTypes/models/BaseViewModel.js +25 -10
  113. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  114. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +1 -1
  115. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  116. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  117. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  118. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +57 -141
  119. package/esm/pluggableElementTypes/models/baseTrackConfig.js +22 -26
  120. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
  121. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  122. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  123. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +15 -7
  124. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +38 -29
  125. package/esm/pluggableElementTypes/models/index.d.ts +1 -2
  126. package/esm/pluggableElementTypes/models/index.js +1 -2
  127. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +3 -3
  128. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +4 -4
  129. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  130. package/esm/rpc/BaseRpcDriver.d.ts +1 -2
  131. package/esm/rpc/BaseRpcDriver.js +23 -30
  132. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  133. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  134. package/esm/rpc/RpcClient.d.ts +17 -6
  135. package/esm/rpc/RpcClient.js +42 -12
  136. package/esm/rpc/RpcManager.d.ts +8 -10
  137. package/esm/rpc/RpcManager.js +1 -1
  138. package/esm/rpc/RpcRegistry.d.ts +8 -2
  139. package/esm/rpc/RpcServer.d.ts +3 -1
  140. package/esm/rpc/RpcServer.js +19 -12
  141. package/esm/rpc/WebWorkerRpcDriver.d.ts +3 -3
  142. package/esm/rpc/WebWorkerRpcDriver.js +9 -47
  143. package/esm/rpc/byteBudget.d.ts +3 -5
  144. package/esm/rpc/byteBudget.js +4 -4
  145. package/esm/rpc/configSchema.d.ts +7 -21
  146. package/esm/rpc/coreRpcMethods.d.ts +1 -0
  147. package/esm/rpc/coreRpcMethods.js +1 -0
  148. package/esm/rpc/methods/CoreEncodeFeatures.d.ts +6 -5
  149. package/esm/rpc/methods/CoreEncodeFeatures.js +26 -31
  150. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  151. package/esm/rpc/methods/CoreGetEncodedFeature.js +31 -0
  152. package/esm/rpc/methods/CoreGetExportData.js +2 -2
  153. package/esm/rpc/methods/CoreGetFeatureDensity.js +2 -2
  154. package/esm/rpc/methods/CoreGetFeatures.js +2 -2
  155. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  156. package/esm/rpc/methods/layerFeatures.d.ts +26 -0
  157. package/esm/rpc/methods/layerFeatures.js +40 -0
  158. package/esm/svg/SvgExport.js +3 -4
  159. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  160. package/esm/svg/SvgThemeProviders.js +15 -0
  161. package/esm/svg/exportViewSvg.d.ts +32 -0
  162. package/esm/svg/exportViewSvg.js +13 -0
  163. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  164. package/esm/svg/normalizeSvgMarkup.js +99 -0
  165. package/esm/svg/serializeSvg.d.ts +7 -0
  166. package/esm/svg/serializeSvg.js +11 -0
  167. package/esm/svg/svgReady.d.ts +8 -7
  168. package/esm/svg/svgReady.js +8 -7
  169. package/esm/svg/trackNames.d.ts +5 -5
  170. package/esm/svg/trackNames.js +6 -6
  171. package/esm/svg/wrapSvgExport.js +6 -74
  172. package/esm/ui/CascadingMenu.js +83 -86
  173. package/esm/ui/ErrorMessageStackTraceDialog.js +0 -5
  174. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  175. package/esm/ui/HoverMenu.d.ts +1 -2
  176. package/esm/ui/HoverMenu.js +6 -3
  177. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  178. package/esm/ui/JexlFilterDialog.js +122 -49
  179. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  180. package/esm/ui/JexlFilterRowEditors.js +90 -0
  181. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  182. package/esm/ui/LazyBaseTooltip.js +9 -0
  183. package/esm/ui/LoadingOverlay.js +3 -1
  184. package/esm/ui/MonospaceTextField.d.ts +2 -1
  185. package/esm/ui/MonospaceTextField.js +21 -19
  186. package/esm/ui/PaletteContext.d.ts +7 -9
  187. package/esm/ui/PaletteContext.js +24 -10
  188. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  189. package/esm/ui/RefNameAutocomplete/index.js +1 -1
  190. package/esm/ui/ScrollChrome.d.ts +6 -9
  191. package/esm/ui/ScrollChrome.js +5 -6
  192. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  193. package/esm/ui/ScrollEdgeShadow.js +9 -24
  194. package/esm/ui/SettingsChangesTable.js +3 -3
  195. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  196. package/esm/ui/VerticalScrollbar.js +29 -83
  197. package/esm/ui/ViewLoadingScreen.d.ts +2 -2
  198. package/esm/ui/ViewLoadingScreen.js +3 -3
  199. package/esm/ui/colorScale.d.ts +26 -1
  200. package/esm/ui/colorScale.js +28 -5
  201. package/esm/ui/colors.d.ts +49 -1
  202. package/esm/ui/colors.js +139 -4
  203. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  204. package/esm/ui/hoverBoxStyle.js +17 -2
  205. package/esm/ui/index.d.ts +5 -3
  206. package/esm/ui/index.js +9 -7
  207. package/esm/ui/launchViewMenu.js +3 -3
  208. package/esm/ui/legendSpec.d.ts +2 -0
  209. package/esm/ui/legendSpec.js +3 -0
  210. package/esm/ui/palette.d.ts +0 -1
  211. package/esm/ui/palette.js +3 -27
  212. package/esm/ui/replaceViewAction.d.ts +1 -1
  213. package/esm/ui/replaceViewAction.js +1 -1
  214. package/esm/ui/theme.d.ts +1 -1
  215. package/esm/ui/theme.js +6 -40
  216. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  217. package/esm/ui/viewHeaderHeight.js +1 -0
  218. package/esm/util/Base1DUtils.d.ts +1 -1
  219. package/esm/util/Base1DUtils.js +2 -2
  220. package/esm/util/SvgCanvas.d.ts +15 -13
  221. package/esm/util/SvgCanvas.js +72 -53
  222. package/esm/util/aborting.d.ts +39 -0
  223. package/esm/util/aborting.js +84 -0
  224. package/esm/util/adapterMetadata.d.ts +1 -1
  225. package/esm/util/adapterMetadata.js +6 -6
  226. package/esm/util/addAndShowTrack.d.ts +1 -4
  227. package/esm/util/addRelativeUris.d.ts +10 -2
  228. package/esm/util/addRelativeUris.js +22 -7
  229. package/esm/util/addTrackFromWidget.d.ts +2 -5
  230. package/esm/util/animationAllowed.d.ts +9 -0
  231. package/esm/util/animationAllowed.js +13 -0
  232. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  233. package/esm/util/applyRowResizeWheel.js +10 -21
  234. package/esm/util/bandLayout.d.ts +4 -4
  235. package/esm/util/bandLayout.js +4 -4
  236. package/esm/util/bezierConnector.js +5 -4
  237. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  238. package/esm/util/bgzfWorkerPool.js +20 -74
  239. package/esm/util/cachedSetup.d.ts +1 -1
  240. package/esm/util/cachedSetup.js +2 -2
  241. package/esm/util/categoricalField.d.ts +37 -0
  242. package/esm/util/categoricalField.js +52 -0
  243. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  244. package/esm/util/color/cssColorsLevel4.js +1 -0
  245. package/esm/util/color/index.d.ts +5 -3
  246. package/esm/util/color/index.js +7 -4
  247. package/esm/util/colorBits.d.ts +1 -2
  248. package/esm/util/colorBits.js +17 -39
  249. package/esm/util/colorRamp.d.ts +27 -1
  250. package/esm/util/colorRamp.js +56 -2
  251. package/esm/util/colorSchemes.d.ts +9 -0
  252. package/esm/util/colorSchemes.js +7 -0
  253. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +11 -14
  254. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +14 -26
  255. package/esm/util/cssColorParse.d.ts +15 -0
  256. package/esm/util/cssColorParse.js +53 -0
  257. package/esm/util/diagonalizeRegions.d.ts +2 -3
  258. package/esm/util/diagonalizeRegions.js +7 -12
  259. package/esm/util/expandLooseSearchIndex.d.ts +7 -0
  260. package/esm/util/expandLooseSearchIndex.js +25 -0
  261. package/esm/util/featureTransforms.d.ts +30 -3
  262. package/esm/util/featureTransforms.js +233 -36
  263. package/esm/util/fetchAndMaybeUnzip.js +5 -6
  264. package/esm/util/fetchContext.d.ts +5 -6
  265. package/esm/util/fetchContext.js +1 -1
  266. package/esm/util/fetchHub.d.ts +3 -1
  267. package/esm/util/fetchHub.js +2 -2
  268. package/esm/util/fetchSeq.d.ts +2 -3
  269. package/esm/util/fetchSeq.js +2 -2
  270. package/esm/util/fieldReader.d.ts +17 -0
  271. package/esm/util/fieldReader.js +62 -0
  272. package/esm/util/groupKeys.d.ts +75 -0
  273. package/esm/util/groupKeys.js +152 -0
  274. package/esm/util/highlights.d.ts +6 -4
  275. package/esm/util/highlights.js +12 -25
  276. package/esm/util/hooks.d.ts +1 -2
  277. package/esm/util/hooks.js +1 -2
  278. package/esm/util/index.d.ts +3 -3
  279. package/esm/util/index.js +4 -3
  280. package/esm/util/indexCandidates.js +1 -1
  281. package/esm/util/installFetch.d.ts +13 -10
  282. package/esm/util/installFetch.js +11 -10
  283. package/esm/util/installPrerequisiteFetch.d.ts +5 -3
  284. package/esm/util/installPrerequisiteFetch.js +3 -4
  285. package/esm/util/io/index.js +12 -12
  286. package/esm/util/isDataCurrent.d.ts +7 -5
  287. package/esm/util/isDataCurrent.js +9 -6
  288. package/esm/util/jexl.js +24 -21
  289. package/esm/util/jexlFilterRows.d.ts +89 -0
  290. package/esm/util/jexlFilterRows.js +252 -0
  291. package/esm/util/jexlFilters.d.ts +7 -5
  292. package/esm/util/jexlStrings.d.ts +3 -4
  293. package/esm/util/jexlStrings.js +2 -3
  294. package/esm/util/legendCandidates.d.ts +31 -27
  295. package/esm/util/legendCandidates.js +79 -53
  296. package/esm/util/localStorage.js +4 -4
  297. package/esm/util/markEncoding.d.ts +32 -16
  298. package/esm/util/markEncoding.js +177 -150
  299. package/esm/util/markEncodingTypes.d.ts +137 -66
  300. package/esm/util/mstUtils.d.ts +19 -22
  301. package/esm/util/mstUtils.js +19 -22
  302. package/esm/util/numericUtils.d.ts +7 -0
  303. package/esm/util/numericUtils.js +16 -0
  304. package/esm/util/numericValue.d.ts +14 -0
  305. package/esm/util/numericValue.js +34 -0
  306. package/esm/util/openFeatureWidget.js +1 -2
  307. package/esm/util/openViews.d.ts +1 -0
  308. package/esm/util/openViews.js +3 -3
  309. package/esm/util/parseLineByLine.d.ts +3 -4
  310. package/esm/util/parseLineByLine.js +7 -13
  311. package/esm/util/progress.d.ts +21 -21
  312. package/esm/util/progress.js +27 -26
  313. package/esm/util/renameRegions.d.ts +1 -2
  314. package/esm/util/renderToStaticMarkup.js +16 -16
  315. package/esm/util/rxjs.d.ts +7 -8
  316. package/esm/util/rxjs.js +12 -15
  317. package/esm/util/simpleFeature.d.ts +0 -1
  318. package/esm/util/svgColorProps.d.ts +11 -0
  319. package/esm/util/svgColorProps.js +28 -1
  320. package/esm/util/tabix.d.ts +3 -4
  321. package/esm/util/tabix.js +6 -7
  322. package/esm/util/thresholdScale.d.ts +54 -0
  323. package/esm/util/thresholdScale.js +112 -0
  324. package/esm/util/timeGate.d.ts +4 -5
  325. package/esm/util/timeGate.js +4 -5
  326. package/esm/util/trackConfigDelta.d.ts +22 -18
  327. package/esm/util/trackConfigDelta.js +40 -38
  328. package/esm/util/tracks.d.ts +27 -4
  329. package/esm/util/tracks.js +116 -43
  330. package/esm/util/translateTranscript.d.ts +44 -0
  331. package/esm/util/translateTranscript.js +102 -0
  332. package/esm/util/types/index.d.ts +19 -7
  333. package/esm/util/types/services.d.ts +1 -1
  334. package/esm/util/unknownSnapshotKeys.d.ts +15 -0
  335. package/esm/util/unknownSnapshotKeys.js +13 -0
  336. package/esm/util/useFeatureSequence.js +4 -4
  337. package/esm/util/useFetch.d.ts +3 -4
  338. package/esm/util/useFetch.js +5 -6
  339. package/esm/util/usePanelVirtualScroll.d.ts +7 -39
  340. package/esm/util/usePanelVirtualScroll.js +9 -40
  341. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  342. package/esm/util/useRowVirtualScroll.js +8 -49
  343. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  344. package/esm/util/useVirtualScrollWheel.js +40 -84
  345. package/esm/util/viewHighlights.d.ts +3 -0
  346. package/esm/util/viewHighlights.js +5 -0
  347. package/esm/util/viewStatus.d.ts +24 -15
  348. package/esm/util/viewStatus.js +17 -0
  349. package/esm/util/withLaunchInput.d.ts +1 -1
  350. package/esm/util/withLaunchInput.js +0 -4
  351. package/package.json +26 -12
  352. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  353. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  354. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  355. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  356. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  357. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  358. package/esm/ReExports/barrelOnlyNames.d.ts +0 -5
  359. package/esm/ReExports/barrelOnlyNames.js +0 -63
  360. package/esm/ReExports/index.d.ts +0 -1
  361. package/esm/ReExports/index.js +0 -1
  362. package/esm/ReExports/publicTracks.d.ts +0 -1
  363. package/esm/ReExports/publicTracks.js +0 -14
  364. package/esm/ReExports/publicUi.d.ts +0 -4
  365. package/esm/ReExports/publicUi.js +0 -33
  366. package/esm/ReExports/publicUtil.d.ts +0 -1
  367. package/esm/ReExports/publicUtil.js +0 -32
  368. package/esm/ReExports/sharedModules.d.ts +0 -96
  369. package/esm/ReExports/sharedModules.js +0 -66
  370. package/esm/ReExports/workerNamespaceNames.d.ts +0 -11
  371. package/esm/ReExports/workerNamespaceNames.js +0 -275
  372. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  373. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  374. package/esm/ui/highlightChipReveal.d.ts +0 -32
  375. package/esm/ui/highlightChipReveal.js +0 -39
  376. package/esm/util/adapterConfigKey.d.ts +0 -12
  377. package/esm/util/adapterConfigKey.js +0 -14
  378. package/esm/util/stopToken.d.ts +0 -212
  379. package/esm/util/stopToken.js +0 -438
@@ -1,30 +1,34 @@
1
1
  import type { Instance } from '@jbrowse/mobx-state-tree';
2
2
  /**
3
3
  * #config BaseConnection
4
- * #gotcha A connection config is only a pointer: the hub's track list is
5
- * fetched when the connection loads and held in memory, and is **not** written
6
- * into a saved or shared session. Only a track you actually open is stored
7
- * (under `connectionTrackConfigs`, keyed by `trackId`), which is what keeps a
8
- * shared session small even against a very large hub.
4
+ * #gotcha JBrowse fetches the hub's track list when the connection loads and
5
+ * holds it in memory, and does **not** write it into a saved or shared session.
6
+ * The session stores only the tracks you open (under `connectionTrackConfigs`,
7
+ * keyed by `trackId`), so a shared session stays small even for a very large
8
+ * hub.
9
9
  */
10
10
  declare const BaseConnectionConfig: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
11
- /**
12
- * #slot
13
- */
14
11
  readonly name: {
15
- readonly type: "string";
16
- readonly defaultValue: "nameOfConnection";
17
- readonly description: "a unique name for this connection";
12
+ type: "string";
13
+ } & {
14
+ defaultValue: string;
18
15
  };
19
- /**
20
- * #slot
21
- */
22
16
  readonly assemblyNames: {
23
- readonly type: "stringArray";
24
- readonly defaultValue: readonly [];
25
- readonly description: "optional list of names of assemblies in this connection";
17
+ type: "stringArray";
18
+ } & {
19
+ defaultValue: unknown;
26
20
  };
27
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId">>;
21
+ type: {
22
+ type: "string";
23
+ } & {
24
+ defaultValue: string;
25
+ };
26
+ connectionId: {
27
+ type: "string";
28
+ } & {
29
+ defaultValue: string;
30
+ };
31
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
28
32
  export default BaseConnectionConfig;
29
33
  export type BaseConnectionConfigSchema = typeof BaseConnectionConfig;
30
34
  export type BaseConnectionConfigModel = Instance<BaseConnectionConfigSchema>;
@@ -1,11 +1,11 @@
1
1
  import { ConfigurationSchema } from '../../configuration/index.js';
2
2
  /**
3
3
  * #config BaseConnection
4
- * #gotcha A connection config is only a pointer: the hub's track list is
5
- * fetched when the connection loads and held in memory, and is **not** written
6
- * into a saved or shared session. Only a track you actually open is stored
7
- * (under `connectionTrackConfigs`, keyed by `trackId`), which is what keeps a
8
- * shared session small even against a very large hub.
4
+ * #gotcha JBrowse fetches the hub's track list when the connection loads and
5
+ * holds it in memory, and does **not** write it into a saved or shared session.
6
+ * The session stores only the tracks you open (under `connectionTrackConfigs`,
7
+ * keyed by `trackId`), so a shared session stays small even for a very large
8
+ * hub.
9
9
  */
10
10
  const BaseConnectionConfig = ConfigurationSchema('BaseConnection', {
11
11
  /**
@@ -3,44 +3,39 @@
3
3
  * the "base" internet account type
4
4
  */
5
5
  export declare const BaseInternetAccountConfig: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
6
- /**
7
- * #slot
8
- */
9
6
  readonly name: {
10
- readonly description: "descriptive name of the internet account";
11
- readonly type: "string";
12
- readonly defaultValue: "";
7
+ type: "string";
8
+ } & {
9
+ defaultValue: string;
13
10
  };
14
- /**
15
- * #slot
16
- */
17
11
  readonly description: {
18
- readonly description: "a description of the internet account";
19
- readonly type: "string";
20
- readonly defaultValue: "";
12
+ type: "string";
13
+ } & {
14
+ defaultValue: string;
21
15
  };
22
- /**
23
- * #slot
24
- */
25
16
  readonly authHeader: {
26
- readonly description: "request header for credentials";
27
- readonly type: "string";
28
- readonly defaultValue: "Authorization";
17
+ type: "string";
18
+ } & {
19
+ defaultValue: string;
29
20
  };
30
- /**
31
- * #slot
32
- */
33
21
  readonly tokenType: {
34
- readonly description: "a custom name for a token to include in the header";
35
- readonly type: "string";
36
- readonly defaultValue: "";
22
+ type: "string";
23
+ } & {
24
+ defaultValue: string;
37
25
  };
38
- /**
39
- * #slot
40
- */
41
26
  readonly domains: {
42
- readonly description: "array of valid domains the url can contain to use this account";
43
- readonly type: "stringArray";
44
- readonly defaultValue: readonly [];
27
+ type: "stringArray";
28
+ } & {
29
+ defaultValue: unknown;
45
30
  };
46
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>;
31
+ type: {
32
+ type: "string";
33
+ } & {
34
+ defaultValue: string;
35
+ };
36
+ internetAccountId: {
37
+ type: "string";
38
+ } & {
39
+ defaultValue: string;
40
+ };
41
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
@@ -12,23 +12,16 @@ export declare function preprocessTrackConfigSnapshot(pluginManager: PluginManag
12
12
  trackId: string;
13
13
  name: string;
14
14
  type: string;
15
+ assemblyNames?: unknown;
16
+ textSearching?: {
17
+ textSearchAdapter?: unknown;
18
+ };
15
19
  displays: {
16
20
  type: string;
17
21
  featureHeight?: {} | null | undefined;
18
22
  displayId: string;
19
23
  }[];
20
24
  };
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
25
  /**
33
26
  * #config BaseTrack
34
27
  * Configuration shared by all track types. Concrete tracks (FeatureTrack,
@@ -36,168 +29,91 @@ export declare function trackConfigActions(self: unknown): {
36
29
  * fields in addition to its own.
37
30
  */
38
31
  export declare function createBaseTrackConfig(pluginManager: PluginManager): import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
39
- /**
40
- * #slot
41
- */
42
32
  readonly name: {
43
- readonly description: "descriptive name of the track, falls back to the trackId when unset";
44
- readonly type: "string";
45
- readonly defaultValue: "";
33
+ type: "string";
34
+ } & {
35
+ defaultValue: string;
46
36
  };
47
- /**
48
- * #slot
49
- */
50
37
  readonly assemblyNames: {
51
- readonly description: "name of the assembly (or assemblies) track belongs to";
52
- readonly type: "stringArray";
53
- readonly defaultValue: readonly ["assemblyName"];
38
+ type: "stringArray";
39
+ } & {
40
+ defaultValue: unknown;
54
41
  };
55
- /**
56
- * #slot
57
- */
58
42
  readonly description: {
59
- readonly description: "a description of the track";
60
- readonly type: "string";
61
- readonly defaultValue: "";
43
+ type: "string";
44
+ } & {
45
+ defaultValue: string;
62
46
  };
63
- /**
64
- * #slot
65
- */
66
47
  readonly category: {
67
- readonly description: "the category and sub-categories of a track";
68
- readonly type: "stringArray";
69
- readonly defaultValue: readonly [];
48
+ type: "stringArray";
49
+ } & {
50
+ defaultValue: unknown;
70
51
  };
71
- /**
72
- * #slot
73
- */
74
52
  readonly metadata: {
75
- readonly type: "frozen";
76
- readonly description: "anything to add about this track";
77
- readonly defaultValue: {};
53
+ type: "frozen";
54
+ } & {
55
+ defaultValue: unknown;
78
56
  };
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
57
  readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
88
58
  readonly textSearching: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
89
- /**
90
- * #slot textSearching.indexingAttributes
91
- */
92
59
  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"];
60
+ type: "stringArray";
61
+ } & {
62
+ defaultValue: unknown;
96
63
  };
97
- /**
98
- * #slot textSearching.indexingFeatureTypesToExclude
99
- */
100
64
  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"];
65
+ type: "stringArray";
66
+ } & {
67
+ defaultValue: unknown;
104
68
  };
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
69
  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 [];
70
+ type: "stringArray";
71
+ } & {
72
+ defaultValue: unknown;
126
73
  };
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
- */
74
+ readonly textSearchAdapter: import("@jbrowse/mobx-state-tree").ITypeUnion<any, any, any>;
75
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
151
76
  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
- */
159
77
  readonly formatDetails: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
160
78
  readonly feature: {
161
- readonly type: "frozen";
162
- readonly description: "adds extra fields to the feature details";
163
- readonly defaultValue: {};
164
- readonly contextVariable: ["feature"];
79
+ type: "frozen";
80
+ } & {
81
+ defaultValue: unknown;
165
82
  };
166
83
  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"];
84
+ type: "frozen";
85
+ } & {
86
+ defaultValue: unknown;
171
87
  };
172
88
  readonly depth: {
173
- readonly type: "maybeNumber";
174
- readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
89
+ type: "maybeNumber";
175
90
  };
176
91
  readonly maxDepth: {
177
- readonly type: "maybeNumber";
178
- readonly description: "hide subfeatures nested deeper than this, default no limit";
92
+ type: "maybeNumber";
179
93
  };
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
- */
94
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
188
95
  readonly formatAbout: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
189
96
  readonly config: {
190
- readonly type: "frozen";
191
- readonly description: "formats configuration object in about dialog";
192
- readonly defaultValue: {};
193
- readonly contextVariable: ["config"];
97
+ type: "frozen";
98
+ } & {
99
+ defaultValue: unknown;
194
100
  };
195
101
  readonly hideUris: {
196
- readonly type: "boolean";
197
- readonly defaultValue: false;
102
+ type: "boolean";
103
+ } & {
104
+ defaultValue: boolean;
198
105
  };
199
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
200
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "trackId">>;
106
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
107
+ type: {
108
+ type: "string";
109
+ } & {
110
+ defaultValue: string;
111
+ };
112
+ trackId: {
113
+ type: "string";
114
+ } & {
115
+ defaultValue: string;
116
+ };
117
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "trackId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
201
118
  export type BaseTrackConfigSchema = ReturnType<typeof createBaseTrackConfig>;
202
119
  export type BaseTrackConfig = Instance<BaseTrackConfigSchema>;
203
- export {};
@@ -1,5 +1,6 @@
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
5
  import { liftLegacyRendererConfig } from './migrateTrackConfig.js';
5
6
  /**
@@ -54,8 +55,17 @@ export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
54
55
  // are all aliases of one canonical type). First occurrence wins to preserve
55
56
  // the default (displays[0]).
56
57
  const seenTypes = new Set();
58
+ const { textSearching } = snap;
57
59
  return {
58
60
  ...snap,
61
+ ...(textSearching?.textSearchAdapter
62
+ ? {
63
+ textSearching: {
64
+ ...textSearching,
65
+ textSearchAdapter: expandLooseSearchIndex(textSearching.textSearchAdapter, snap.assemblyNames),
66
+ },
67
+ }
68
+ : {}),
59
69
  displays: displays
60
70
  .map(d => {
61
71
  const canonical = displayAliasMap.get(d.type);
@@ -76,23 +86,6 @@ export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
76
86
  .map(d => liftLegacyRendererConfig(d, snap.trackId)),
77
87
  };
78
88
  }
79
- export function trackConfigActions(self) {
80
- const { displays } = self;
81
- return {
82
- addDisplayConf(conf) {
83
- const { type } = conf;
84
- if (!type) {
85
- throw new Error('display type not specified');
86
- }
87
- const display = displays.find(d => d.displayId === conf.displayId);
88
- if (display) {
89
- return display;
90
- }
91
- const length = displays.push(conf);
92
- return displays[length - 1];
93
- },
94
- };
95
- }
96
89
  /**
97
90
  * #config BaseTrack
98
91
  * Configuration shared by all track types. Concrete tracks (FeatureTrack,
@@ -192,11 +185,17 @@ export function createBaseTrackConfig(pluginManager) {
192
185
  /**
193
186
  * #slot textSearching.textSearchAdapter
194
187
  * a per-track name search index, normally a `TrixTextSearchAdapter`
195
- * over what `jbrowse text-index --tracks` built. Without one, this
188
+ * over what `jbrowse text-index --tracks` built; `{ uri: 'genes.ix' }`
189
+ * is enough, searching this track's assemblies. Without one, this
196
190
  * track's features are only findable through an assembly-wide search
197
191
  * adapter.
198
192
  */
199
- textSearchAdapter: pluginManager.pluggableConfigSchemaType('text search adapter'),
193
+ // Not `types.maybe(union)`: that unions the real type *before*
194
+ // `optional(undefined)`, and every member here is all-default, so an
195
+ // omitted key still resolved to the first registered one rather than
196
+ // to nothing (see textSearchAdapterSlotOmission.test.ts). Listing the
197
+ // undefined branch first is what actually wins the omitted-key default.
198
+ textSearchAdapter: types.union(types.optional(types.undefined, undefined), pluginManager.pluggableConfigSchemaType('text search adapter')),
200
199
  }),
201
200
  /**
202
201
  * #slot
@@ -217,17 +216,15 @@ export function createBaseTrackConfig(pluginManager) {
217
216
  /**
218
217
  * #slot
219
218
  * jexl callbacks that add, rewrite or hide fields in this track's
220
- * feature-details panel. Four slots, listed at
221
- * [FormatDetails](/docs/config/formatdetails), and the same schema exists
222
- * session-wide as `configuration.formatDetails`.
219
+ * feature-details panel. The same schema exists session-wide as
220
+ * `configuration.formatDetails`.
223
221
  */
224
222
  formatDetails: FormatDetailsConfigSchemaFactory(),
225
223
  /**
226
224
  * #slot
227
225
  * jexl callbacks that add, rewrite or hide fields in this track's About
228
- * dialog. Two slots, listed at
229
- * [FormatAbout](/docs/config/formatabout), and the same schema exists
230
- * session-wide as `configuration.formatAbout`.
226
+ * dialog. The same schema exists session-wide as
227
+ * `configuration.formatAbout`.
231
228
  */
232
229
  formatAbout: FormatAboutConfigSchemaFactory(),
233
230
  }, {
@@ -237,6 +234,5 @@ export function createBaseTrackConfig(pluginManager) {
237
234
  */
238
235
  explicitIdentifier: 'trackId',
239
236
  explicitlyTyped: true,
240
- actions: trackConfigActions,
241
237
  });
242
238
  }
@@ -43,13 +43,13 @@ function useTrackDataExport({ model, regions, regionStr, type, options, }) {
43
43
  // array key as "don't fetch", so the gated state would fetch nothing
44
44
  force ? 'forced' : 'gated',
45
45
  ]
46
- : null, async (_name, _trackId, _regions, fileType, mode, stopToken, statusCallback) => fetchTrackData({
46
+ : null, async (_name, _trackId, _regions, fileType, mode, signal, statusCallback) => fetchTrackData({
47
47
  model,
48
48
  regions,
49
49
  type: fileType,
50
50
  options,
51
51
  force: mode === 'forced',
52
- stopToken,
52
+ signal,
53
53
  statusCallback,
54
54
  }));
55
55
  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
@@ -1,19 +1,27 @@
1
1
  import type PluginManager from '../../PluginManager.ts';
2
+ import type { AnyConfigurationSchemaType } from '../../configuration/index.ts';
2
3
  export interface DisplaySnapshot {
3
4
  type: string;
4
5
  displayId?: string;
5
6
  [key: string]: unknown;
6
7
  }
7
8
  /**
8
- * Pure: route each shorthand `displayDefaults: {...}` setting to the display
9
- * types that define it. A setting goes to every display type whose config schema
10
- * has that slot, so slot names disambiguate across displays on their own (e.g.
11
- * `color` → LinearVariantDisplay, `strokeColor` → ChordVariantDisplay). Keys no
12
- * display defines are returned as `unknownKeys` for the caller to surface.
9
+ * Route each shorthand `displayDefaults: {...}` setting to the display types
10
+ * whose slot of that name takes its value, so slot names disambiguate across
11
+ * displays (`color` → LinearVariantDisplay, `strokeColor` →
12
+ * ChordVariantDisplay) and so do the values: `displayMode: 'compact'` on a
13
+ * FeatureTrack reaches the feature display and not the arc display, whose
14
+ * `displayMode` is `arcs | semicircles`. A key no display declares is an `unknownKeys`
15
+ * entry, and one every declaring display refuses a `refused` entry carrying
16
+ * each display's reason.
13
17
  */
14
- export declare function collectDisplayOverrides(displaySettings: Record<string, unknown>, displaySlots: Map<string, Set<string>>): {
18
+ export declare function collectDisplayOverrides(displaySettings: Record<string, unknown>, displaySchemas: ReadonlyMap<string, AnyConfigurationSchemaType>): {
15
19
  overrides: Map<string, Record<string, unknown>>;
16
20
  unknownKeys: string[];
21
+ refused: {
22
+ key: string;
23
+ reasons: string[];
24
+ }[];
17
25
  };
18
26
  /**
19
27
  * Pure: fold per-display override props into a `displays` array, creating an
@@ -25,7 +33,7 @@ export declare function mergeOverridesIntoDisplays(displays: DisplaySnapshot[],
25
33
  * Expands the shorthand `displayDefaults` **object** into the explicit `displays`
26
34
  * **array**, so users can set display settings without naming the display type
27
35
  * or nesting in `displays:[{type,...}]`. `displayDefaults:{color:'green'}` routes
28
- * each setting to the display type(s) that define that slot, folding them into
36
+ * each setting to the display type(s) whose slot takes it, folding them into
29
37
  * whatever `displays` array the track already has (explicit entries win).
30
38
  *
31
39
  * `displayDefaults` is kept separate from `displays` (rather than overloading