@jbrowse/core 5.0.0-beta.8 → 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,275 +0,0 @@
1
- import { DATA_GRID_NAMES } from './MuiDataGridReExports.js';
2
- import { MUI_COMPONENT_NAMES } from './muiComponentNames.js';
3
- // Own-key names of each namespace-shaped UI module the RPC worker stubs.
4
- // workerModules.test.ts pins them to modules.ts; agent-docs/reference/EAGER_BUNDLE.md
5
- export const REACT_DOM_NAMES = [
6
- '__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE',
7
- 'createPortal',
8
- 'default',
9
- 'flushSync',
10
- 'preconnect',
11
- 'prefetchDNS',
12
- 'preinit',
13
- 'preinitModule',
14
- 'preload',
15
- 'preloadModule',
16
- 'requestFormReset',
17
- 'unstable_batchedUpdates',
18
- 'useFormState',
19
- 'useFormStatus',
20
- 'version',
21
- ];
22
- export const REACT_DOM_CLIENT_NAMES = [
23
- 'createRoot',
24
- 'default',
25
- 'hydrateRoot',
26
- 'version',
27
- ];
28
- export const MOBX_REACT_NAMES = [
29
- 'Observer',
30
- '_observerFinalizationRegistry',
31
- 'clearTimers',
32
- 'enableStaticRendering',
33
- 'isUsingStaticRendering',
34
- 'observer',
35
- 'useLocalObservable',
36
- ];
37
- export const MUI_UTILS_NAMES = [
38
- 'capitalize',
39
- 'createChainedFunction',
40
- 'createSvgIcon',
41
- 'debounce',
42
- 'deprecatedPropType',
43
- 'getActiveElement',
44
- 'isMuiElement',
45
- 'mergeSlotProps',
46
- 'ownerDocument',
47
- 'ownerWindow',
48
- 'requirePropFactory',
49
- 'setRef',
50
- 'unstable_ClassNameGenerator',
51
- 'unstable_memoTheme',
52
- 'unstable_useEnhancedEffect',
53
- 'unstable_useId',
54
- 'unsupportedProp',
55
- 'useControlled',
56
- 'useEventCallback',
57
- 'useForkRef',
58
- ];
59
- export const MUI_STYLES_NAMES = [
60
- 'CssVarsProvider',
61
- 'Experimental_CssVarsProvider',
62
- 'StyledEngineProvider',
63
- 'THEME_ID',
64
- 'ThemeProvider',
65
- 'adaptV4Theme',
66
- 'alpha',
67
- 'createColorScheme',
68
- 'createStyles',
69
- 'createTheme',
70
- 'css',
71
- 'darken',
72
- 'decomposeColor',
73
- 'duration',
74
- 'easing',
75
- 'emphasize',
76
- 'enhanceHighContrast',
77
- 'experimental_sx',
78
- 'extendTheme',
79
- 'getContrastRatio',
80
- 'getInitColorSchemeScript',
81
- 'getLuminance',
82
- 'getOverlayAlpha',
83
- 'hexToRgb',
84
- 'hslToRgb',
85
- 'keyframes',
86
- 'makeStyles',
87
- 'private_createTypography',
88
- 'private_excludeVariablesFromRoot',
89
- 'recomposeColor',
90
- 'responsiveFontSizes',
91
- 'rgbToHex',
92
- 'shouldSkipGeneratingVar',
93
- 'styled',
94
- 'unstable_createBreakpoints',
95
- 'unstable_createMuiStrictModeTheme',
96
- 'unstable_getUnit',
97
- 'unstable_toUnitless',
98
- 'useColorScheme',
99
- 'useTheme',
100
- 'useThemeProps',
101
- 'withStyles',
102
- 'withTheme',
103
- ];
104
- export const TSS_REACT_NAMES = ['cx', 'keyframes', 'makeStyles'];
105
- export const MATERIAL_UI_LAB_NAMES = [
106
- 'Alert',
107
- 'Autocomplete',
108
- 'ToggleButton',
109
- 'ToggleButtonGroup',
110
- ];
111
- export const MUI_MATERIAL_NAMES = [
112
- ...MUI_COMPONENT_NAMES,
113
- 'alpha',
114
- 'createTheme',
115
- 'useTheme',
116
- ];
117
- export const MATERIAL_UI_CORE_NAMES = [
118
- ...MUI_COMPONENT_NAMES,
119
- 'alpha',
120
- 'makeStyles',
121
- 'useTheme',
122
- ];
123
- export const CORE_UI_NAMES = [
124
- 'ActionLink',
125
- 'AssemblySelector',
126
- 'BaseExportSvgDialog',
127
- 'BaseTooltip',
128
- 'CONTEXT_MENU_Z_INDEX',
129
- 'CascadingMenu',
130
- 'CascadingMenuButton',
131
- 'ConfirmDialog',
132
- 'ContextMenu',
133
- 'CopyToClipboardButton',
134
- 'Crosshairs',
135
- 'Dialog',
136
- 'EditableTypography',
137
- 'ErrorBanner',
138
- 'ErrorBar',
139
- 'ErrorMessage',
140
- 'ErrorOverlay',
141
- 'ExportSvgDialog',
142
- 'ExternalLink',
143
- 'FatalErrorDialog',
144
- 'FileDropZone',
145
- 'FileSelector',
146
- 'GpuFallbackButton',
147
- 'INLINE_MENU_ROW_WIDTH',
148
- 'InfoDialog',
149
- 'JexlFilterDialog',
150
- 'LAUNCH_LABEL',
151
- 'LEGEND_ROW_HEIGHT',
152
- 'LEGEND_SVG_GUTTER_WIDTH',
153
- 'LEGEND_SWATCH',
154
- 'LabeledCheckbox',
155
- 'LegendSwatchGlyph',
156
- 'LoadingEllipses',
157
- 'LoadingOverlay',
158
- 'LoadingProgress',
159
- 'LogoFull',
160
- 'Logomark',
161
- 'MAX_LEGEND_ITEMS',
162
- 'Menu',
163
- 'MonospaceTextField',
164
- 'NumberTextField',
165
- 'PluggableComponent',
166
- 'PluggableComponents',
167
- 'PluggableElements',
168
- 'PrerenderedCanvas',
169
- 'ProgressChip',
170
- 'RefNameAutocomplete',
171
- 'RefNameAutocompleteEndAdornment',
172
- 'ReplaceCurrentViewButton',
173
- 'ResetToDefaultButton',
174
- 'ResizeHandle',
175
- 'SanitizedHTML',
176
- 'ScrollChrome',
177
- 'ScrollEdgeShadow',
178
- 'SettingsChangesTable',
179
- 'ShareLinkField',
180
- 'SingleSlider',
181
- 'SliderTooltip',
182
- 'StatusProgressBar',
183
- 'SubmitDialog',
184
- 'SubmitForm',
185
- 'SvgColorLegend',
186
- 'TOOLTIP_Z_INDEX',
187
- 'TagTextField',
188
- 'VIEW_HEADER_HEIGHT',
189
- 'VerticalScrollbar',
190
- 'ViewLoadingScreen',
191
- 'addExtensionElement',
192
- 'adornmentReservePx',
193
- 'checkboxItem',
194
- 'colorFwdStrand',
195
- 'colorInterchrom',
196
- 'colorLongInsert',
197
- 'colorLongreadInv',
198
- 'colorNeutralRead',
199
- 'colorPairLL',
200
- 'colorPairLR',
201
- 'colorPairLRDark',
202
- 'colorPairRL',
203
- 'colorPairRR',
204
- 'colorRevStrand',
205
- 'colorScaleIsEmpty',
206
- 'colorShortInsert',
207
- 'colorSplitReadInversion',
208
- 'colorSupplementary',
209
- 'colorUnmappedMate',
210
- 'colorUnmappedMateDark',
211
- 'createJBrowseBaseTheme',
212
- 'createJBrowseTheme',
213
- 'createJBrowseThemeFromArgs',
214
- 'defaultThemes',
215
- 'getInputWidth',
216
- 'hoverBoxStyle',
217
- 'launchTargetsMenuItem',
218
- 'legendEntries',
219
- 'legendIsReadable',
220
- 'legendSpecOf',
221
- 'legendSwatches',
222
- 'makeSizeMenu',
223
- 'makeSizeSubMenu',
224
- 'matchesTrackSelector',
225
- 'measureLegendText',
226
- 'methylated5hmC',
227
- 'methylated5mC',
228
- 'nonEmptyLegendSections',
229
- 'pushIntoSubMenu',
230
- 'pushLaunchViewMenuItem',
231
- 'radioItems',
232
- 'replaceViewAction',
233
- 'resolveSubMenu',
234
- 'sliderScale',
235
- 'staysOpenOnClick',
236
- 'tagColorPalette',
237
- 'unmethylated5mC',
238
- 'useAssemblySelection',
239
- 'useCopyToClipboard',
240
- 'useExportSvgPreference',
241
- 'useMouseState',
242
- 'useMouseTracking',
243
- 'useRecentLocations',
244
- 'wrapComponent',
245
- ];
246
- const BASE_FEATURE_DETAIL_NAMES = [
247
- 'Attributes',
248
- 'BaseAttributes',
249
- 'BaseCard',
250
- 'BaseCoreDetails',
251
- 'FeatureDetails',
252
- 'FeatureWash',
253
- ];
254
- export const WORKER_NAMESPACE_NAMES = {
255
- 'react-dom': REACT_DOM_NAMES,
256
- 'react-dom/client': REACT_DOM_CLIENT_NAMES,
257
- 'mobx-react': MOBX_REACT_NAMES,
258
- '@mui/material/utils': MUI_UTILS_NAMES,
259
- '@material-ui/core/utils': MUI_UTILS_NAMES,
260
- 'tss-react': TSS_REACT_NAMES,
261
- 'tss-react/mui': TSS_REACT_NAMES,
262
- '@mui/material': MUI_MATERIAL_NAMES,
263
- '@material-ui/core': MATERIAL_UI_CORE_NAMES,
264
- '@mui/material/styles': MUI_STYLES_NAMES,
265
- '@material-ui/core/styles': MUI_STYLES_NAMES,
266
- '@material-ui/lab': MATERIAL_UI_LAB_NAMES,
267
- '@mui/x-data-grid': DATA_GRID_NAMES,
268
- '@jbrowse/core/ui': CORE_UI_NAMES,
269
- // @mui/icons-material is NOT re-exported, so a plugin that wants an icon
270
- // bundles icons-material, which reads `createSvgIcon` off this module. The
271
- // main thread serves it (modules.ts) and the worker has to as well, or the
272
- // plugin throws at module scope building its icons.
273
- '@mui/material/SvgIcon': ['createSvgIcon'],
274
- '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': BASE_FEATURE_DETAIL_NAMES,
275
- };
@@ -1,51 +0,0 @@
1
- import type { HighlightType } from '../../util/highlights.ts';
2
- /**
3
- * #stateModel HighlightsMixin
4
- * #category view
5
- *
6
- * The `view.highlight` band state shared verbatim by the LinearGenomeView and
7
- * DotplotView: an array of translucent highlight regions plus the
8
- * `showHighlightChips` toggle for their interactive chips. Both views compose
9
- * this so the props and actions stay identical by construction rather than by
10
- * two hand-kept copies. Visibility across all views is the session-wide
11
- * `highlightsVisible` flag (on BaseSession), not a prop here.
12
- */
13
- export default function HighlightsMixin(): import("@jbrowse/mobx-state-tree").IModelType<{
14
- /**
15
- * #property
16
- * translucent highlight bands, seeded from URL params or session JSON and
17
- * added interactively via the rubber-band menu
18
- */
19
- highlight: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IType<HighlightType, HighlightType, HighlightType>>, [undefined]>;
20
- /**
21
- * #property
22
- * pins the interactive highlight chip (link icon + context menu) to every
23
- * highlight band; off by default, where a band instead reveals its chip
24
- * while the pointer is in it. This is what a screenshot needs, since
25
- * nothing hovers in one
26
- */
27
- showHighlightChips: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").ISimpleType<boolean>, [undefined]>;
28
- }, {
29
- /**
30
- * #action
31
- */
32
- addToHighlights(highlight: HighlightType): void;
33
- /**
34
- * #action
35
- */
36
- setHighlight(highlight?: HighlightType[]): void;
37
- /**
38
- * #action
39
- */
40
- removeHighlight(highlight: HighlightType): void;
41
- /**
42
- * #action
43
- */
44
- updateHighlight(old: HighlightType, updates: Partial<HighlightType>): void;
45
- /**
46
- * #action
47
- */
48
- setShowHighlightChips(arg: boolean): void;
49
- } & {
50
- afterAttach(): void;
51
- }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
@@ -1,78 +0,0 @@
1
- import { cast, types } from '@jbrowse/mobx-state-tree';
2
- import { revealHighlightsOnGrowth } from '../../util/highlights.js';
3
- import { getSession } from '../../util/index.js';
4
- /**
5
- * #stateModel HighlightsMixin
6
- * #category view
7
- *
8
- * The `view.highlight` band state shared verbatim by the LinearGenomeView and
9
- * DotplotView: an array of translucent highlight regions plus the
10
- * `showHighlightChips` toggle for their interactive chips. Both views compose
11
- * this so the props and actions stay identical by construction rather than by
12
- * two hand-kept copies. Visibility across all views is the session-wide
13
- * `highlightsVisible` flag (on BaseSession), not a prop here.
14
- */
15
- export default function HighlightsMixin() {
16
- return types
17
- .model({
18
- /**
19
- * #property
20
- * translucent highlight bands, seeded from URL params or session JSON and
21
- * added interactively via the rubber-band menu
22
- */
23
- highlight: types.stripDefault(types.array(types.frozen()), []),
24
- /**
25
- * #property
26
- * pins the interactive highlight chip (link icon + context menu) to every
27
- * highlight band; off by default, where a band instead reveals its chip
28
- * while the pointer is in it. This is what a screenshot needs, since
29
- * nothing hovers in one
30
- */
31
- showHighlightChips: types.stripDefault(types.boolean, false),
32
- })
33
- .actions(self => ({
34
- /**
35
- * #action
36
- */
37
- addToHighlights(highlight) {
38
- self.highlight.push(highlight);
39
- },
40
- /**
41
- * #action
42
- */
43
- setHighlight(highlight) {
44
- self.highlight = cast(highlight);
45
- },
46
- /**
47
- * #action
48
- */
49
- removeHighlight(highlight) {
50
- self.highlight.remove(highlight);
51
- },
52
- /**
53
- * #action
54
- */
55
- updateHighlight(old, updates) {
56
- const idx = self.highlight.indexOf(old);
57
- if (idx !== -1) {
58
- self.highlight[idx] = { ...old, ...updates };
59
- // reachable from the highlight grid, which lists entries even with
60
- // the bands off, so recoloring there would otherwise do nothing
61
- // visible. Not a growth, so revealHighlightsOnGrowth can't see it
62
- getSession(self).revealHighlights();
63
- }
64
- },
65
- /**
66
- * #action
67
- */
68
- setShowHighlightChips(arg) {
69
- self.showHighlightChips = arg;
70
- },
71
- }))
72
- .actions(self => ({
73
- afterAttach() {
74
- // covers the rubber-band menu, dotplot drag and URL init alike
75
- revealHighlightsOnGrowth(self, () => self.highlight.length);
76
- },
77
- }));
78
- }
@@ -1,32 +0,0 @@
1
- import type { MouseTracker } from './useMouseTracking.ts';
2
- export declare const OverlayPointerProvider: import("react").Provider<MouseTracker | undefined>;
3
- /**
4
- * The stripe a band occupies: an x span across a full-height band, a y span
5
- * across a full-width one. The other axis is the whole overlay, which is why it
6
- * isn't here.
7
- */
8
- export type HighlightStripe = {
9
- left: number;
10
- width: number;
11
- } | {
12
- top: number;
13
- height: number;
14
- };
15
- /**
16
- * Whether a band should be drawing its chip, and the `setOpen` that keeps it
17
- * drawn while its menu is up.
18
- *
19
- * A band reveals its chip while the pointer is in its stripe, so the highlight's
20
- * menu is reachable where the highlight is rather than only from the view menu,
21
- * and a view full of bands is not also a view full of link icons. `persistent`
22
- * is the `showHighlightChips` pin, which a screenshot needs because nothing
23
- * hovers in one.
24
- *
25
- * The menu is the reason this owns state at all: it is portalled out of the
26
- * band, so opening it moves the pointer off the stripe that revealed it, and
27
- * unmounting the chip under an open menu takes the menu's own anchor with it.
28
- */
29
- export declare function useHighlightChip(stripe: HighlightStripe | undefined, persistent: boolean): {
30
- chipVisible: boolean;
31
- setMenuOpen: import("react").Dispatch<import("react").SetStateAction<boolean>>;
32
- };
@@ -1,39 +0,0 @@
1
- import { createContext, use, useState } from 'react';
2
- import { useMouseSelector } from './useMouseTracking.js';
3
- /**
4
- * The pointer over the surface a view's highlight bands are positioned in — the
5
- * LinearGenomeView's tracks container, the DotplotView's plot area. Published by
6
- * whichever of those bound the handlers.
7
- *
8
- * A context rather than a prop because a band is often drawn by another plugin
9
- * through an extension point (grid-bookmark's bookmark bands), and those carry
10
- * only their `{ model }` props bag — the band families are siblings on screen
11
- * and would otherwise reach the pointer two different ways.
12
- */
13
- const OverlayPointerContext = createContext(undefined);
14
- export const OverlayPointerProvider = OverlayPointerContext.Provider;
15
- function pointerInStripe(stripe, state) {
16
- return 'left' in stripe
17
- ? state.x >= stripe.left && state.x < stripe.left + stripe.width
18
- : state.y >= stripe.top && state.y < stripe.top + stripe.height;
19
- }
20
- /**
21
- * Whether a band should be drawing its chip, and the `setOpen` that keeps it
22
- * drawn while its menu is up.
23
- *
24
- * A band reveals its chip while the pointer is in its stripe, so the highlight's
25
- * menu is reachable where the highlight is rather than only from the view menu,
26
- * and a view full of bands is not also a view full of link icons. `persistent`
27
- * is the `showHighlightChips` pin, which a screenshot needs because nothing
28
- * hovers in one.
29
- *
30
- * The menu is the reason this owns state at all: it is portalled out of the
31
- * band, so opening it moves the pointer off the stripe that revealed it, and
32
- * unmounting the chip under an open menu takes the menu's own anchor with it.
33
- */
34
- export function useHighlightChip(stripe, persistent) {
35
- const tracker = use(OverlayPointerContext);
36
- const [menuOpen, setMenuOpen] = useState(false);
37
- const hovered = useMouseSelector(tracker, state => !!state && !!stripe && pointerInStripe(stripe, state));
38
- return { chipVisible: persistent || hovered || menuOpen, setMenuOpen };
39
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * The adapter-config axis of a fetch key: the config a fetch was issued
3
- * against, as one string. Every fetch that refetches on an adapter edit folds
4
- * this in — the comparative displays, the prerequisite reads, the density
5
- * tier, the global family's signature — so the axis is spelled once and cannot
6
- * drift between them.
7
- *
8
- * Not `adapterConfigCacheKey`: that one short-circuits on `adapterId`, which is
9
- * right for sharing one adapter instance and wrong for freshness, where an
10
- * edit to a config carrying an id still has to read as a different fetch.
11
- */
12
- export declare function adapterConfigKey(adapterConfig: Record<string, unknown>): string;
@@ -1,14 +0,0 @@
1
- /**
2
- * The adapter-config axis of a fetch key: the config a fetch was issued
3
- * against, as one string. Every fetch that refetches on an adapter edit folds
4
- * this in — the comparative displays, the prerequisite reads, the density
5
- * tier, the global family's signature — so the axis is spelled once and cannot
6
- * drift between them.
7
- *
8
- * Not `adapterConfigCacheKey`: that one short-circuits on `adapterId`, which is
9
- * right for sharing one adapter instance and wrong for freshness, where an
10
- * edit to a config carrying an id still has to read as a different fetch.
11
- */
12
- export function adapterConfigKey(adapterConfig) {
13
- return JSON.stringify(adapterConfig);
14
- }