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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (637) hide show
  1. package/README.md +1709 -390
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +37 -14
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +49 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
  28. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
  29. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  30. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
  31. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
  32. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
  33. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
  34. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +8 -5
  35. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  36. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  37. package/esm/BaseFeatureWidget/formatDetails.js +62 -83
  38. package/esm/BaseFeatureWidget/index.d.ts +2 -1
  39. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
  40. package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
  41. package/esm/BaseFeatureWidget/types.d.ts +12 -6
  42. package/esm/BaseFeatureWidget/util.d.ts +0 -10
  43. package/esm/BaseFeatureWidget/util.js +0 -17
  44. package/esm/CorePlugin.js +34 -3
  45. package/esm/PluginLoader.d.ts +24 -13
  46. package/esm/PluginLoader.js +167 -51
  47. package/esm/PluginManager.d.ts +130 -24
  48. package/esm/PluginManager.js +180 -32
  49. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  50. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  51. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  52. package/esm/ReExports/coreModules.generated.js +530 -0
  53. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  54. package/esm/ReExports/coreWorkerModules.generated.js +490 -0
  55. package/esm/ReExports/frameworkModules.d.ts +2 -0
  56. package/esm/ReExports/frameworkModules.js +68 -0
  57. package/esm/ReExports/frameworkShared.d.ts +12 -0
  58. package/esm/ReExports/frameworkShared.js +16 -0
  59. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  60. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  61. package/esm/ReExports/list.js +528 -79
  62. package/esm/ReExports/modules.d.ts +1 -1
  63. package/esm/ReExports/modules.js +10 -165
  64. package/esm/ReExports/registry.d.ts +1 -0
  65. package/esm/ReExports/registry.js +23 -5
  66. package/esm/ReExports/uiStub.d.ts +3 -0
  67. package/esm/ReExports/uiStub.js +33 -0
  68. package/esm/ReExports/workerModules.d.ts +2 -0
  69. package/esm/ReExports/workerModules.js +11 -0
  70. package/esm/TextSearch/TextSearchManager.d.ts +27 -13
  71. package/esm/TextSearch/TextSearchManager.js +77 -36
  72. package/esm/TextSearch/places.d.ts +12 -0
  73. package/esm/TextSearch/places.js +94 -0
  74. package/esm/assemblyManager/assembly.d.ts +21 -19
  75. package/esm/assemblyManager/assembly.js +28 -26
  76. package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
  77. package/esm/assemblyManager/assemblyAdapters.js +8 -2
  78. package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
  79. package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
  80. package/esm/assemblyManager/assemblyManager.d.ts +35 -180
  81. package/esm/assemblyManager/assemblyManager.js +47 -51
  82. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
  83. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
  84. package/esm/assemblyManager/geneticCodes.js +2 -5
  85. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
  86. package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
  87. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  88. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  89. package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
  90. package/esm/assemblyManager/loadRefNameMap.js +4 -9
  91. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  92. package/esm/assemblyManager/refNameMapKey.js +12 -0
  93. package/esm/checkPlugins.d.ts +2 -0
  94. package/esm/checkPlugins.js +38 -17
  95. package/esm/configuration/bamIndexFields.d.ts +49 -0
  96. package/esm/configuration/bamIndexFields.js +41 -0
  97. package/esm/configuration/configurationSchema.d.ts +101 -71
  98. package/esm/configuration/configurationSchema.js +207 -134
  99. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  100. package/esm/configuration/configurationSchemaUnion.js +56 -0
  101. package/esm/configuration/configurationSlot.d.ts +150 -60
  102. package/esm/configuration/configurationSlot.js +103 -75
  103. package/esm/configuration/fillLocations.d.ts +14 -0
  104. package/esm/configuration/fillLocations.js +14 -0
  105. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  106. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  107. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  108. package/esm/configuration/fullConfSnapshot.d.ts +4 -19
  109. package/esm/configuration/fullConfSnapshot.js +30 -52
  110. package/esm/configuration/getConf.d.ts +45 -41
  111. package/esm/configuration/getConf.js +111 -44
  112. package/esm/configuration/index.d.ts +26 -11
  113. package/esm/configuration/index.js +16 -7
  114. package/esm/configuration/indexType.d.ts +26 -0
  115. package/esm/configuration/indexType.js +38 -0
  116. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  117. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  118. package/esm/configuration/plot.d.ts +61 -0
  119. package/esm/configuration/plot.js +142 -0
  120. package/esm/configuration/readConfObject.d.ts +2 -24
  121. package/esm/configuration/readConfObject.js +20 -63
  122. package/esm/configuration/requirements.d.ts +37 -0
  123. package/esm/configuration/requirements.js +88 -0
  124. package/esm/configuration/schemaRegistry.d.ts +32 -15
  125. package/esm/configuration/schemaRegistry.js +33 -35
  126. package/esm/configuration/schemaTypes.d.ts +21 -5
  127. package/esm/configuration/schemaTypes.js +66 -55
  128. package/esm/configuration/slotFacade.d.ts +12 -29
  129. package/esm/configuration/slotFacade.js +44 -23
  130. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  131. package/esm/configuration/snapshotPreprocess.js +161 -0
  132. package/esm/configuration/tabixIndexFields.d.ts +30 -4
  133. package/esm/configuration/tabixIndexFields.js +21 -4
  134. package/esm/configuration/tabixShorthand.d.ts +34 -17
  135. package/esm/configuration/tabixShorthand.js +49 -22
  136. package/esm/configuration/types.d.ts +182 -43
  137. package/esm/configuration/uriShorthand.d.ts +9 -0
  138. package/esm/configuration/uriShorthand.js +16 -0
  139. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
  140. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
  141. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
  142. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
  143. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  144. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  145. package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
  146. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  147. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  148. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  149. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  150. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  151. package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
  152. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  153. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
  154. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
  155. package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
  156. package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
  157. package/esm/data_adapters/dataAdapterCache.js +44 -10
  158. package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
  159. package/esm/data_adapters/getFeatureAdapter.js +8 -8
  160. package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
  161. package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
  162. package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
  163. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  164. package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
  165. package/esm/pluggableElementTypes/DisplayType.js +28 -12
  166. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  167. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  168. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
  169. package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
  170. package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
  171. package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
  172. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  173. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  174. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  175. package/esm/pluggableElementTypes/ViewType.js +32 -4
  176. package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
  177. package/esm/pluggableElementTypes/WidgetType.js +6 -0
  178. package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
  179. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  180. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  181. package/esm/pluggableElementTypes/index.d.ts +2 -1
  182. package/esm/pluggableElementTypes/index.js +2 -9
  183. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
  184. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
  185. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
  186. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
  187. package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
  188. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
  189. package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
  190. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  191. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
  192. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  193. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  194. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  195. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  196. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
  197. package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
  198. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
  199. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  200. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  201. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
  202. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
  203. package/esm/pluggableElementTypes/models/index.d.ts +2 -3
  204. package/esm/pluggableElementTypes/models/index.js +2 -3
  205. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
  206. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
  207. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
  208. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
  209. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  210. package/esm/pluginDefinitions.d.ts +34 -7
  211. package/esm/pluginDefinitions.js +54 -20
  212. package/esm/rpc/BaseRpcDriver.d.ts +2 -2
  213. package/esm/rpc/BaseRpcDriver.js +25 -30
  214. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  215. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  216. package/esm/rpc/RpcClient.d.ts +18 -6
  217. package/esm/rpc/RpcClient.js +51 -16
  218. package/esm/rpc/RpcManager.d.ts +14 -10
  219. package/esm/rpc/RpcManager.js +11 -1
  220. package/esm/rpc/RpcRegistry.d.ts +40 -7
  221. package/esm/rpc/RpcServer.d.ts +3 -1
  222. package/esm/rpc/RpcServer.js +19 -12
  223. package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
  224. package/esm/rpc/WebWorkerRpcDriver.js +64 -68
  225. package/esm/rpc/byteBudget.d.ts +20 -5
  226. package/esm/rpc/byteBudget.js +16 -5
  227. package/esm/rpc/configSchema.d.ts +7 -21
  228. package/esm/rpc/coreRpcMethods.d.ts +4 -0
  229. package/esm/rpc/coreRpcMethods.js +4 -0
  230. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  231. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  232. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  233. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  234. package/esm/rpc/methods/CoreGetExportData.js +3 -4
  235. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  236. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  237. package/esm/rpc/methods/CoreGetFeatures.js +3 -5
  238. package/esm/rpc/methods/CoreGetRefNames.js +2 -12
  239. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
  240. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  241. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  242. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  243. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  244. package/esm/rpc/methods/layerFeatures.js +29 -0
  245. package/esm/svg/SvgExport.js +6 -7
  246. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  247. package/esm/svg/SvgThemeProviders.js +15 -0
  248. package/esm/svg/exportViewSvg.d.ts +28 -0
  249. package/esm/svg/exportViewSvg.js +13 -0
  250. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  251. package/esm/svg/normalizeSvgMarkup.js +99 -0
  252. package/esm/svg/serializeSvg.d.ts +7 -0
  253. package/esm/svg/serializeSvg.js +11 -0
  254. package/esm/svg/svgId.d.ts +1 -1
  255. package/esm/svg/svgId.js +1 -1
  256. package/esm/svg/svgReady.d.ts +9 -7
  257. package/esm/svg/svgReady.js +8 -7
  258. package/esm/svg/trackNames.d.ts +7 -5
  259. package/esm/svg/trackNames.js +12 -9
  260. package/esm/svg/wrapSvgExport.js +6 -74
  261. package/esm/ui/AddCustomPluginDialog.js +3 -8
  262. package/esm/ui/AppReadyMarker.d.ts +45 -0
  263. package/esm/ui/AppReadyMarker.js +89 -0
  264. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  265. package/esm/ui/CascadingMenu.js +181 -104
  266. package/esm/ui/DropDownMenu.js +2 -1
  267. package/esm/ui/ErrorBanner.js +1 -1
  268. package/esm/ui/ErrorBoundary.d.ts +2 -2
  269. package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
  270. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
  271. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  272. package/esm/ui/FileDropZone.js +2 -1
  273. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  274. package/esm/ui/HoverMenu.d.ts +1 -2
  275. package/esm/ui/HoverMenu.js +6 -3
  276. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  277. package/esm/ui/JexlFilterDialog.js +122 -50
  278. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  279. package/esm/ui/JexlFilterRowEditors.js +90 -0
  280. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  281. package/esm/ui/LazyBaseTooltip.js +9 -0
  282. package/esm/ui/LegendSwatchGlyph.js +26 -21
  283. package/esm/ui/LoadingOverlay.d.ts +14 -0
  284. package/esm/ui/LoadingOverlay.js +4 -2
  285. package/esm/ui/MenuTypes.d.ts +23 -53
  286. package/esm/ui/MenuTypes.js +3 -0
  287. package/esm/ui/MonospaceTextField.d.ts +2 -1
  288. package/esm/ui/MonospaceTextField.js +23 -20
  289. package/esm/ui/PaletteContext.d.ts +10 -5
  290. package/esm/ui/PaletteContext.js +44 -6
  291. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  292. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  293. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  294. package/esm/ui/RefNameAutocomplete/index.js +8 -2
  295. package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
  296. package/esm/ui/RefNameAutocomplete/util.js +42 -1
  297. package/esm/ui/ResizeHandle.d.ts +3 -1
  298. package/esm/ui/ResizeHandle.js +44 -11
  299. package/esm/ui/ScrollChrome.d.ts +13 -0
  300. package/esm/ui/ScrollChrome.js +11 -0
  301. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  302. package/esm/ui/ScrollEdgeShadow.js +14 -35
  303. package/esm/ui/ScrollZoomToggle.d.ts +4 -27
  304. package/esm/ui/ScrollZoomToggle.js +34 -51
  305. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  306. package/esm/ui/SessionJsonPanel.js +14 -0
  307. package/esm/ui/SettingsChangesTable.d.ts +1 -0
  308. package/esm/ui/SettingsChangesTable.js +49 -11
  309. package/esm/ui/ShareLinkField.d.ts +1 -3
  310. package/esm/ui/ShareLinkField.js +13 -40
  311. package/esm/ui/SizeSliderRow.d.ts +1 -3
  312. package/esm/ui/SizeSliderRow.js +4 -6
  313. package/esm/ui/SnackbarModel.js +79 -67
  314. package/esm/ui/StatusProgressBar.js +2 -2
  315. package/esm/ui/SvgColorLegend.d.ts +9 -4
  316. package/esm/ui/SvgColorLegend.js +82 -41
  317. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  318. package/esm/ui/VerticalScrollbar.js +29 -83
  319. package/esm/ui/ViewLoadingScreen.d.ts +5 -4
  320. package/esm/ui/ViewLoadingScreen.js +8 -32
  321. package/esm/ui/colorScale.d.ts +92 -0
  322. package/esm/ui/colorScale.js +72 -0
  323. package/esm/ui/colors.d.ts +64 -0
  324. package/esm/ui/colors.js +230 -1
  325. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  326. package/esm/ui/hoverBoxStyle.js +17 -2
  327. package/esm/ui/index.d.ts +12 -12
  328. package/esm/ui/index.js +14 -22
  329. package/esm/ui/launchViewMenu.js +15 -5
  330. package/esm/ui/legendMenuItem.d.ts +10 -32
  331. package/esm/ui/legendMenuItem.js +9 -36
  332. package/esm/ui/legendSpec.d.ts +15 -8
  333. package/esm/ui/legendSpec.js +14 -23
  334. package/esm/ui/makeSizeMenu.d.ts +0 -6
  335. package/esm/ui/makeSizeMenu.js +6 -30
  336. package/esm/ui/measureLegendText.js +1 -1
  337. package/esm/ui/menuItemAdornment.d.ts +9 -20
  338. package/esm/ui/menuItemAdornment.js +10 -32
  339. package/esm/ui/menuItems.d.ts +2 -7
  340. package/esm/ui/menuItems.js +1 -6
  341. package/esm/ui/multiTrackMenuItems.d.ts +6 -0
  342. package/esm/ui/palette.d.ts +118 -116
  343. package/esm/ui/palette.js +114 -75
  344. package/esm/ui/replaceViewAction.d.ts +1 -1
  345. package/esm/ui/replaceViewAction.js +1 -1
  346. package/esm/ui/theme.d.ts +43 -119
  347. package/esm/ui/theme.js +62 -78
  348. package/esm/ui/toggleMenuItems.d.ts +1 -3
  349. package/esm/ui/toggleMenuItems.js +6 -5
  350. package/esm/ui/useAssemblySelection.d.ts +4 -4
  351. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  352. package/esm/ui/viewHeaderHeight.js +1 -0
  353. package/esm/util/Base1DUtils.d.ts +5 -3
  354. package/esm/util/Base1DUtils.js +14 -6
  355. package/esm/util/Base1DViewModel.d.ts +2 -1
  356. package/esm/util/Base1DViewModel.js +3 -2
  357. package/esm/util/SvgCanvas.d.ts +15 -13
  358. package/esm/util/SvgCanvas.js +76 -56
  359. package/esm/util/TimeTraveller.d.ts +3 -0
  360. package/esm/util/TimeTraveller.js +34 -2
  361. package/esm/util/aborting.d.ts +39 -0
  362. package/esm/util/aborting.js +88 -6
  363. package/esm/util/adapterMetadata.d.ts +1 -1
  364. package/esm/util/adapterMetadata.js +6 -5
  365. package/esm/util/addAndShowTrack.d.ts +2 -5
  366. package/esm/util/addAndShowTrack.js +5 -1
  367. package/esm/util/addRelativeUris.d.ts +17 -5
  368. package/esm/util/addRelativeUris.js +46 -10
  369. package/esm/util/addTrackFromWidget.d.ts +2 -5
  370. package/esm/util/addTrackFromWidget.js +5 -4
  371. package/esm/util/aggregateFieldName.d.ts +10 -0
  372. package/esm/util/aggregateFieldName.js +8 -0
  373. package/esm/util/analytics.js +46 -13
  374. package/esm/util/animationAllowed.d.ts +9 -0
  375. package/esm/util/animationAllowed.js +13 -0
  376. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  377. package/esm/util/applyRowResizeWheel.js +10 -21
  378. package/esm/util/bandHeight.d.ts +10 -0
  379. package/esm/util/bandHeight.js +29 -0
  380. package/esm/util/bandLayout.d.ts +4 -4
  381. package/esm/util/bandLayout.js +4 -4
  382. package/esm/util/baseDisplayConfig.d.ts +8 -0
  383. package/esm/util/baseDisplayConfig.js +27 -0
  384. package/esm/util/bezierConnector.d.ts +4 -3
  385. package/esm/util/bezierConnector.js +38 -45
  386. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  387. package/esm/util/bgzfWorkerPool.js +20 -74
  388. package/esm/util/binnedAggregate.d.ts +17 -0
  389. package/esm/util/binnedAggregate.js +275 -0
  390. package/esm/util/cacheBudgets.d.ts +22 -19
  391. package/esm/util/cacheBudgets.js +22 -19
  392. package/esm/util/cachedSetup.d.ts +16 -6
  393. package/esm/util/cachedSetup.js +108 -38
  394. package/esm/util/categoricalField.d.ts +56 -0
  395. package/esm/util/categoricalField.js +73 -0
  396. package/esm/util/cellMatches.d.ts +23 -0
  397. package/esm/util/cellMatches.js +264 -0
  398. package/esm/util/cellsStep.d.ts +29 -0
  399. package/esm/util/cellsStep.js +437 -0
  400. package/esm/util/clampToContig.d.ts +17 -0
  401. package/esm/util/clampToContig.js +19 -0
  402. package/esm/util/coarseStripHTML.js +1 -2
  403. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  404. package/esm/util/color/cssColorsLevel4.js +1 -0
  405. package/esm/util/color/index.d.ts +5 -3
  406. package/esm/util/color/index.js +7 -4
  407. package/esm/util/colorBits.d.ts +3 -3
  408. package/esm/util/colorBits.js +19 -44
  409. package/esm/util/colorRamp.d.ts +49 -5
  410. package/esm/util/colorRamp.js +169 -18
  411. package/esm/util/colorScale.d.ts +156 -0
  412. package/esm/util/colorScale.js +243 -0
  413. package/esm/util/colorSchemes.d.ts +21 -0
  414. package/esm/util/colorSchemes.js +30 -0
  415. package/esm/util/copyToClipboard.js +8 -1
  416. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
  417. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
  418. package/esm/util/createSvgRasterCanvas.d.ts +10 -0
  419. package/esm/util/cssColorParse.d.ts +15 -0
  420. package/esm/util/cssColorParse.js +53 -0
  421. package/esm/util/diagonalizeRegions.d.ts +2 -3
  422. package/esm/util/diagonalizeRegions.js +8 -13
  423. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  424. package/esm/util/expandLooseSearchIndex.js +29 -0
  425. package/esm/util/featureTable.d.ts +224 -0
  426. package/esm/util/featureTable.js +366 -0
  427. package/esm/util/featureTransforms.d.ts +81 -0
  428. package/esm/util/featureTransforms.js +1231 -0
  429. package/esm/util/featureTypes.d.ts +24 -0
  430. package/esm/util/featureTypes.js +35 -0
  431. package/esm/util/fetchAndMaybeUnzip.js +16 -9
  432. package/esm/util/fetchContext.d.ts +7 -8
  433. package/esm/util/fetchContext.js +3 -3
  434. package/esm/util/fetchHub.d.ts +4 -2
  435. package/esm/util/fetchHub.js +2 -2
  436. package/esm/util/fetchPhases.d.ts +10 -10
  437. package/esm/util/fetchSeq.d.ts +2 -3
  438. package/esm/util/fetchSeq.js +2 -2
  439. package/esm/util/fieldReader.d.ts +17 -0
  440. package/esm/util/fieldReader.js +62 -0
  441. package/esm/util/formatBytes.js +1 -1
  442. package/esm/util/formatGuessers.d.ts +25 -14
  443. package/esm/util/formatGuessers.js +42 -27
  444. package/esm/util/formatRelativeTime.js +1 -1
  445. package/esm/util/freezeDeep.d.ts +8 -10
  446. package/esm/util/freezeDeep.js +8 -10
  447. package/esm/util/getLocationUri.d.ts +2 -1
  448. package/esm/util/getLocationUri.js +8 -2
  449. package/esm/util/groupKeys.d.ts +76 -0
  450. package/esm/util/groupKeys.js +156 -0
  451. package/esm/util/highlights.d.ts +10 -6
  452. package/esm/util/highlights.js +12 -25
  453. package/esm/util/hooks.d.ts +31 -2
  454. package/esm/util/hooks.js +72 -3
  455. package/esm/util/index.d.ts +11 -11
  456. package/esm/util/index.js +11 -10
  457. package/esm/util/indexCandidates.d.ts +1 -31
  458. package/esm/util/indexCandidates.js +5 -63
  459. package/esm/util/installFetch.d.ts +77 -37
  460. package/esm/util/installFetch.js +65 -38
  461. package/esm/util/installInitAutorun.d.ts +14 -13
  462. package/esm/util/installInitAutorun.js +17 -17
  463. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  464. package/esm/util/installPrerequisiteFetch.js +111 -0
  465. package/esm/util/intervals.js +9 -4
  466. package/esm/util/io/index.js +22 -15
  467. package/esm/util/isDataCurrent.d.ts +7 -5
  468. package/esm/util/isDataCurrent.js +9 -6
  469. package/esm/util/isTextEntryFocused.d.ts +7 -0
  470. package/esm/util/isTextEntryFocused.js +16 -0
  471. package/esm/util/jexl.js +24 -21
  472. package/esm/util/jexlFilterRows.d.ts +89 -0
  473. package/esm/util/jexlFilterRows.js +252 -0
  474. package/esm/util/jexlFilters.d.ts +32 -57
  475. package/esm/util/jexlFilters.js +31 -29
  476. package/esm/util/jexlStrings.d.ts +3 -4
  477. package/esm/util/jexlStrings.js +2 -3
  478. package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
  479. package/esm/util/layouts/GranularRectLayout.js +25 -8
  480. package/esm/util/lazyAfterAttach.d.ts +13 -0
  481. package/esm/util/lazyAfterAttach.js +31 -0
  482. package/esm/util/lazyWithPreload.d.ts +19 -0
  483. package/esm/util/lazyWithPreload.js +27 -0
  484. package/esm/util/legendCandidates.d.ts +72 -0
  485. package/esm/util/legendCandidates.js +138 -0
  486. package/esm/util/locString.js +5 -2
  487. package/esm/util/localStorage.js +4 -4
  488. package/esm/util/markEncoding.d.ts +150 -0
  489. package/esm/util/markEncoding.js +885 -0
  490. package/esm/util/markEncodingTypes.d.ts +595 -0
  491. package/esm/util/markEncodingTypes.js +8 -0
  492. package/esm/util/mst-reflection.d.ts +2 -20
  493. package/esm/util/mst-reflection.js +3 -53
  494. package/esm/util/mstUtils.d.ts +31 -23
  495. package/esm/util/mstUtils.js +39 -24
  496. package/esm/util/numericUtils.d.ts +7 -0
  497. package/esm/util/numericUtils.js +16 -0
  498. package/esm/util/numericValue.d.ts +14 -0
  499. package/esm/util/numericValue.js +34 -0
  500. package/esm/util/openFeatureWidget.d.ts +5 -0
  501. package/esm/util/openFeatureWidget.js +2 -2
  502. package/esm/util/openViews.d.ts +17 -0
  503. package/esm/util/openViews.js +22 -0
  504. package/esm/util/parentWalk.d.ts +1 -1
  505. package/esm/util/parentWalk.js +1 -1
  506. package/esm/util/parseLineByLine.d.ts +4 -5
  507. package/esm/util/parseLineByLine.js +8 -14
  508. package/esm/util/pluginStore.d.ts +6 -8
  509. package/esm/util/pluginStore.js +17 -16
  510. package/esm/util/preloadComponent.d.ts +5 -0
  511. package/esm/util/preloadComponent.js +11 -0
  512. package/esm/util/progress.d.ts +22 -22
  513. package/esm/util/progress.js +27 -26
  514. package/esm/util/quantileExtent.d.ts +49 -0
  515. package/esm/util/quantileExtent.js +162 -0
  516. package/esm/util/range.d.ts +13 -9
  517. package/esm/util/range.js +17 -8
  518. package/esm/util/renameRegions.d.ts +26 -6
  519. package/esm/util/renameRegions.js +68 -54
  520. package/esm/util/renderToStaticMarkup.js +24 -14
  521. package/esm/util/rxjs.d.ts +23 -8
  522. package/esm/util/rxjs.js +61 -15
  523. package/esm/util/samplesTsv.d.ts +49 -0
  524. package/esm/util/samplesTsv.js +86 -0
  525. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  526. package/esm/util/scheduleDetachedDestroy.js +24 -0
  527. package/esm/util/scrollLatch.d.ts +1 -0
  528. package/esm/util/scrollLatch.js +8 -0
  529. package/esm/util/selectEncodedFeature.d.ts +16 -0
  530. package/esm/util/selectEncodedFeature.js +34 -0
  531. package/esm/util/sessionSharing.d.ts +7 -5
  532. package/esm/util/sessionSharing.js +23 -23
  533. package/esm/util/shapeNameList.d.ts +2 -0
  534. package/esm/util/shapeNameList.js +6 -0
  535. package/esm/util/shapeNames.d.ts +7 -0
  536. package/esm/util/shapeNames.js +11 -0
  537. package/esm/util/simpleFeature.d.ts +0 -1
  538. package/esm/util/springAnimate.js +1 -1
  539. package/esm/util/starFusion.d.ts +26 -0
  540. package/esm/util/starFusion.js +37 -0
  541. package/esm/util/stepTables.d.ts +96 -0
  542. package/esm/util/stepTables.js +277 -0
  543. package/esm/util/svAlt.d.ts +145 -0
  544. package/esm/util/svAlt.js +364 -0
  545. package/esm/util/svgColorProps.d.ts +11 -0
  546. package/esm/util/svgColorProps.js +28 -1
  547. package/esm/util/systemColorScheme.d.ts +12 -0
  548. package/esm/util/systemColorScheme.js +27 -0
  549. package/esm/util/tabix.d.ts +19 -10
  550. package/esm/util/tabix.js +19 -14
  551. package/esm/util/thresholdScale.d.ts +91 -0
  552. package/esm/util/thresholdScale.js +166 -0
  553. package/esm/util/timeGate.d.ts +4 -5
  554. package/esm/util/timeGate.js +4 -5
  555. package/esm/util/trackConfigDelta.d.ts +26 -26
  556. package/esm/util/trackConfigDelta.js +63 -47
  557. package/esm/util/tracks.d.ts +120 -66
  558. package/esm/util/tracks.js +501 -151
  559. package/esm/util/translateTranscript.d.ts +44 -0
  560. package/esm/util/translateTranscript.js +102 -0
  561. package/esm/util/types/data.d.ts +0 -2
  562. package/esm/util/types/index.d.ts +121 -22
  563. package/esm/util/types/index.js +9 -0
  564. package/esm/util/types/mst.d.ts +3 -0
  565. package/esm/util/types/mst.js +4 -0
  566. package/esm/util/types/renameIds.d.ts +1 -0
  567. package/esm/util/types/renameIds.js +29 -0
  568. package/esm/util/types/services.d.ts +1 -1
  569. package/esm/util/unknownSnapshotKeys.d.ts +53 -0
  570. package/esm/util/unknownSnapshotKeys.js +76 -0
  571. package/esm/util/useFeatureSequence.js +5 -5
  572. package/esm/util/useFetch.d.ts +3 -4
  573. package/esm/util/useFetch.js +19 -10
  574. package/esm/util/useFetchPlugins.d.ts +6 -2
  575. package/esm/util/useFetchPlugins.js +7 -3
  576. package/esm/util/usePanZoom.js +10 -3
  577. package/esm/util/usePanelVirtualScroll.d.ts +7 -35
  578. package/esm/util/usePanelVirtualScroll.js +9 -36
  579. package/esm/util/useRafCommit.js +1 -0
  580. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  581. package/esm/util/useRowVirtualScroll.js +8 -49
  582. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  583. package/esm/util/useVirtualScrollWheel.js +40 -74
  584. package/esm/util/viewHighlights.d.ts +3 -0
  585. package/esm/util/viewHighlights.js +5 -0
  586. package/esm/util/viewStatus.d.ts +47 -15
  587. package/esm/util/viewStatus.js +34 -0
  588. package/esm/util/wheelZoom.d.ts +7 -1
  589. package/esm/util/wheelZoom.js +85 -19
  590. package/esm/util/whenViewSettled.d.ts +55 -8
  591. package/esm/util/whenViewSettled.js +56 -7
  592. package/esm/util/withFeatureDetails.js +4 -0
  593. package/esm/util/withLaunchInput.d.ts +174 -0
  594. package/esm/util/withLaunchInput.js +274 -0
  595. package/package.json +75 -24
  596. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  597. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
  598. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
  599. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  600. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  601. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  602. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  603. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  604. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  605. package/esm/ReExports/index.d.ts +0 -1
  606. package/esm/ReExports/index.js +0 -1
  607. package/esm/ReExports/publicUtil.d.ts +0 -1
  608. package/esm/ReExports/publicUtil.js +0 -28
  609. package/esm/configuration/promotableDefaults.d.ts +0 -199
  610. package/esm/configuration/promotableDefaults.js +0 -326
  611. package/esm/configuration/promotablePin.d.ts +0 -55
  612. package/esm/configuration/promotablePin.js +0 -1
  613. package/esm/configuration/promotableResolve.d.ts +0 -108
  614. package/esm/configuration/promotableResolve.js +0 -117
  615. package/esm/configuration/promotableSlots.d.ts +0 -12
  616. package/esm/configuration/promotableSlots.js +0 -45
  617. package/esm/configuration/slotShape.d.ts +0 -12
  618. package/esm/configuration/slotShape.js +0 -84
  619. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  620. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  621. package/esm/ui/PinAdornment.d.ts +0 -5
  622. package/esm/ui/PinAdornment.js +0 -79
  623. package/esm/ui/SvgGradientLegend.d.ts +0 -26
  624. package/esm/ui/SvgGradientLegend.js +0 -26
  625. package/esm/ui/highlightChipReveal.d.ts +0 -32
  626. package/esm/ui/highlightChipReveal.js +0 -39
  627. package/esm/ui/promotableMenuItems.d.ts +0 -19
  628. package/esm/ui/promotableMenuItems.js +0 -89
  629. package/esm/ui/promotablePinCoverage.d.ts +0 -44
  630. package/esm/ui/promotablePinCoverage.js +0 -87
  631. package/esm/util/applyInitSettings.d.ts +0 -79
  632. package/esm/util/applyInitSettings.js +0 -91
  633. package/esm/util/openDisplays.d.ts +0 -23
  634. package/esm/util/openDisplays.js +0 -79
  635. package/esm/util/stopToken.d.ts +0 -211
  636. package/esm/util/stopToken.js +0 -438
  637. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
@@ -20,6 +20,10 @@ function containingViewOf(node) {
20
20
  }
21
21
  return undefined;
22
22
  }
23
+ function bodyInDom(view) {
24
+ const parent = containingViewOf(view);
25
+ return (view.bodyMounted !== false && (parent === undefined || bodyInDom(parent)));
26
+ }
23
27
  /**
24
28
  * #stateModel BaseViewModel
25
29
  * #category view
@@ -50,7 +54,7 @@ const BaseViewModel = types
50
54
  *
51
55
  * `ViewContainer` mounts a view's body only while an IntersectionObserver
52
56
  * says it is on screen, to hold the app under the WebGL2 context ceiling
53
- * (`reference/GPU_CONTEXT_BUDGET.md`). A view below the fold therefore has
57
+ * (`reference/GPU_PORTABILITY.md`). A view below the fold therefore has
54
58
  * no canvas, so nothing ever calls `markCanvasDrawn` and the pre-first-paint
55
59
  * term of `displayPhase` pins every display in it at `loading` with nothing
56
60
  * left to resolve it — which parks `[data-app-phase="ready"]` for the whole
@@ -69,15 +73,27 @@ const BaseViewModel = types
69
73
  .views(self => ({
70
74
  /**
71
75
  * #getter
72
- * Whether this view's body is in the DOM, counting the views it is nested
73
- * inside — which is the question a display's phase actually asks.
76
+ * Overridable hook (default true): whether this view's mounted body
77
+ * renders its own displays. A linear genome view collapsed to its ruler
78
+ * mounts the scalebar and none of its tracks, so a display in it can no
79
+ * more paint than one in a view scrolled off screen. Views nested in this
80
+ * one are unaffected: they paint wherever their own body is.
81
+ */
82
+ get rendersDisplays() {
83
+ return true;
84
+ },
85
+ /**
86
+ * #getter
87
+ * Whether this view's displays have a canvas to paint into: its body is in
88
+ * the DOM, counting the views it is nested inside, and the body renders
89
+ * them (`rendersDisplays`). This is the question a display's phase asks.
74
90
  *
75
- * `bodyMounted` alone answers it only for a view a container renders
76
- * directly. A view nested in another view (a synteny row, a breakpoint
77
- * panel) has no container writing its flag, so it reads `true` forever
78
- * while its whole subtree is out of the DOM, and every display in it waits
79
- * for a first paint that nothing will make — the hang this flag exists to
80
- * prevent, one level down.
91
+ * `bodyMounted` alone answers the DOM half only for a view a container
92
+ * renders directly. A view nested in another view (a synteny row, a
93
+ * breakpoint panel) has no container writing its flag, so it reads `true`
94
+ * forever while its whole subtree is out of the DOM, and every display in
95
+ * it waits for a first paint that nothing will make — the hang this flag
96
+ * exists to prevent, one level down.
81
97
  *
82
98
  * An ancestor that does not carry the flag at all leaves the answer alone
83
99
  * rather than excusing the paint: only an explicit `false` unmounts, so a
@@ -85,8 +101,7 @@ const BaseViewModel = types
85
101
  * that shows up as a slow test rather than as a picture of an empty view.
86
102
  */
87
103
  get effectiveBodyMounted() {
88
- return (self.bodyMounted &&
89
- containingViewOf(self)?.effectiveBodyMounted !== false);
104
+ return this.rendersDisplays && bodyInDom(self);
90
105
  },
91
106
  /**
92
107
  * #method
@@ -94,6 +109,34 @@ const BaseViewModel = types
94
109
  menuItems() {
95
110
  return [];
96
111
  },
112
+ /**
113
+ * #getter
114
+ * The tracks this view puts in the census — its own, not a nested view's.
115
+ *
116
+ * Empty here, and overridden by the views that have any: the base cannot
117
+ * read `self.tracks` for them, because what a view keeps under that name
118
+ * is the view's business. react-msaview's holds its MSA annotation rows —
119
+ * `{ReactComponent, model}` objects with no configuration and no displays
120
+ * — and a base that helped itself to them handed them to the readiness
121
+ * marker as tracks, which error-paged every session holding an MSA view.
122
+ */
123
+ get ownTracks() {
124
+ return [];
125
+ },
126
+ /**
127
+ * #getter
128
+ * The views nested directly inside this one, which the census counts as
129
+ * views in their own right — a synteny stack's genome rows, a breakpoint
130
+ * split view's panels.
131
+ *
132
+ * Empty here for the same reason, and the dotplot is why it has to be a
133
+ * declaration rather than a walk of `views`: that prop name holds its two
134
+ * 1D *axis* models, which are view-shaped and are not views the user
135
+ * opened. No structural test separates the two — only the view knows.
136
+ */
137
+ get ownViews() {
138
+ return [];
139
+ },
97
140
  }))
98
141
  .actions(self => ({
99
142
  /**
@@ -20,31 +20,41 @@ export declare const InternetAccount: import("@jbrowse/mobx-state-tree").IModelT
20
20
  */
21
21
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
22
22
  readonly name: {
23
- readonly description: "descriptive name of the internet account";
24
- readonly type: "string";
25
- readonly defaultValue: "";
23
+ type: "string";
24
+ } & {
25
+ defaultValue: string;
26
26
  };
27
27
  readonly description: {
28
- readonly description: "a description of the internet account";
29
- readonly type: "string";
30
- readonly defaultValue: "";
28
+ type: "string";
29
+ } & {
30
+ defaultValue: string;
31
31
  };
32
32
  readonly authHeader: {
33
- readonly description: "request header for credentials";
34
- readonly type: "string";
35
- readonly defaultValue: "Authorization";
33
+ type: "string";
34
+ } & {
35
+ defaultValue: string;
36
36
  };
37
37
  readonly tokenType: {
38
- readonly description: "a custom name for a token to include in the header";
39
- readonly type: "string";
40
- readonly defaultValue: "";
38
+ type: "string";
39
+ } & {
40
+ defaultValue: string;
41
41
  };
42
42
  readonly domains: {
43
- readonly description: "array of valid domains the url can contain to use this account";
44
- readonly type: "stringArray";
45
- readonly defaultValue: readonly [];
43
+ type: "stringArray";
44
+ } & {
45
+ defaultValue: unknown;
46
46
  };
47
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
47
+ type: {
48
+ type: "string";
49
+ } & {
50
+ defaultValue: string;
51
+ };
52
+ internetAccountId: {
53
+ type: "string";
54
+ } & {
55
+ defaultValue: string;
56
+ };
57
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
48
58
  }, {
49
59
  /**
50
60
  * #getter
@@ -1,8 +1,10 @@
1
1
  import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
2
2
  /**
3
- * Dev-only check that a display's fetch foundation attached it exactly once —
4
- * the one ordering contract here that is a *state* rather than a declaration,
5
- * so no selector can reach it. No-op in production.
3
+ * Checks that a display's fetch foundation attached it exactly once — the one
4
+ * ordering contract here that is a *state* rather than a declaration, so no
5
+ * selector can reach it. Costs a `WeakSet` lookup, so it runs in a production
6
+ * build too and reports through `contractReports`, which is silent until
7
+ * something arms it.
6
8
  *
7
9
  * Called once per display from **whichever fetch foundation installed its
8
10
  * autoruns** — `MultiRegionDisplayMixin`'s `afterAttach` for the per-region
@@ -48,7 +50,7 @@ export type FetchAutorunOutcome =
48
50
  * answers nothing either way — the same deferral `awaitingPrerequisite` gets,
49
51
  * reached from inside the foundation rather than declared by the display. The
50
52
  * per-region family's in-flight-fetch skip is the case: `reload()` signals the
51
- * running fetch's stop token but `activeStopToken` clears in `runFetch`'s
53
+ * running fetch's signal but `activeSignal` clears in `runFetch`'s
52
54
  * finally, so the very next run can still see `isLoading` — and that fetch
53
55
  * ending bumps `fetchGeneration`, which the autorun tracks. Consuming the bump
54
56
  * there would answer the retry with a run that predates it.
@@ -58,8 +60,9 @@ interface RetryContractHost {
58
60
  reloadCounter: number;
59
61
  fetchInert: boolean;
60
62
  /**
61
- * Optional: the comparative family has no two-stage fetch, so nothing there
62
- * declares it. A family that grows one declares it and gets the deferral.
63
+ * Optional: chord and the breakpoint overlay have no two-stage fetch, so
64
+ * neither declares it. A fetch that grows one declares it and gets the
65
+ * deferral.
63
66
  */
64
67
  awaitingPrerequisite?: boolean;
65
68
  /**
@@ -69,14 +72,15 @@ interface RetryContractHost {
69
72
  */
70
73
  viewportEmpty?: boolean;
71
74
  }
72
- /** Called by `FetchMixin.runFetch`. Dev-only. */
75
+ /** Called by `FetchMixin.runFetch`. */
73
76
  export declare function noteFetchStarted(self: object): void;
74
77
  /** Reads and clears the flag above, so each check starts from a known state. */
75
78
  export declare function takeFetchStarted(self: object): boolean;
76
79
  /**
77
- * Dev-only check that a display's `reload()` can actually reach a fetch — the
78
- * retry contract, which `DisplayErrorBar` depends on and which no type can
79
- * state. No-op in production.
80
+ * Checks that a display's `reload()` can actually reach a fetch — the retry
81
+ * contract, which `DisplayErrorBar` depends on and which no type can state.
82
+ * Costs an `untracked` read per autorun run against a fetch, so it runs in a
83
+ * production build too and reports through `contractReports`.
80
84
  *
81
85
  * **The button is the contract.** `DisplayErrorBar`'s only action is
82
86
  * `model.reload()`, so every state that can raise the error bar has to be one
@@ -89,7 +93,7 @@ export declare function takeFetchStarted(self: object): boolean;
89
93
  * has changed. Arc shipped exactly that: a `prepare` declining on `dataCurrent`,
90
94
  * with the error clearing on click and no arcs ever coming back. The fix this
91
95
  * message asks for is what `GlobalFetchMixin.reload()` now does for that whole
92
- * family — drop `loadedFetchSignature`, so `dataCurrent` goes false and the
96
+ * family — drop `loadedFetchKey`, so `dataCurrent` goes false and the
93
97
  * gate opens.
94
98
  *
95
99
  * Detected at the moment it happens rather than statically, because the relation
@@ -1,19 +1,19 @@
1
1
  import { getMembers } from '@jbrowse/mobx-state-tree';
2
+ import { reportContractViolation } from '@jbrowse/render-core/contractReports';
2
3
  import { untracked } from 'mobx';
3
4
  // Nodes whose fetch foundation has already installed its autoruns. Keyed on the
4
5
  // node rather than the model type: every display of a type would otherwise
5
6
  // report from the second instance onward.
6
7
  const attached = new WeakSet();
7
8
  function report(message) {
8
- // `console.error`, never `throw`: an error escaping `afterAttach` is read by
9
- // the session loader as an invalid track and the display is silently dropped
10
- // — which would hide the very contract violation this is reporting.
11
- console.error(`[jbrowse display contract] ${message}`);
9
+ reportContractViolation('display', message);
12
10
  }
13
11
  /**
14
- * Dev-only check that a display's fetch foundation attached it exactly once —
15
- * the one ordering contract here that is a *state* rather than a declaration,
16
- * so no selector can reach it. No-op in production.
12
+ * Checks that a display's fetch foundation attached it exactly once — the one
13
+ * ordering contract here that is a *state* rather than a declaration, so no
14
+ * selector can reach it. Costs a `WeakSet` lookup, so it runs in a production
15
+ * build too and reports through `contractReports`, which is silent until
16
+ * something arms it.
17
17
  *
18
18
  * Called once per display from **whichever fetch foundation installed its
19
19
  * autoruns** — `MultiRegionDisplayMixin`'s `afterAttach` for the per-region
@@ -46,19 +46,17 @@ function report(message) {
46
46
  * points nowhere near the cause.
47
47
  */
48
48
  export function assertDisplayContract(self, installedBy = "the per-region fetch foundation's afterAttach") {
49
- if (process.env.NODE_ENV !== 'production') {
50
- if (attached.has(self)) {
51
- report(`${getMembers(self).name}: ${installedBy} ran twice on one display, ` +
52
- `so its fetch autoruns are installed twice (double fetches, double ` +
53
- `clears). Our MST fork auto-chains lifecycle hooks, so the usual ` +
54
- `cause is a superAfterAttach() call in this display's afterAttach — ` +
55
- `delete it. Otherwise this display composes two fetch foundations, ` +
56
- `or calls an installer it already gets from a mixin. ` +
57
- `See agent-docs/ARCHITECTURE.md §"What not to do".`);
58
- }
59
- else {
60
- attached.add(self);
61
- }
49
+ if (attached.has(self)) {
50
+ report(`${getMembers(self).name}: ${installedBy} ran twice on one display, ` +
51
+ `so its fetch autoruns are installed twice (double fetches, double ` +
52
+ `clears). Our MST fork auto-chains lifecycle hooks, so the usual ` +
53
+ `cause is a superAfterAttach() call in this display's afterAttach — ` +
54
+ `delete it. Otherwise this display composes two fetch foundations, ` +
55
+ `or calls an installer it already gets from a mixin. ` +
56
+ `See agent-docs/ARCHITECTURE.md §"What not to do".`);
57
+ }
58
+ else {
59
+ attached.add(self);
62
60
  }
63
61
  }
64
62
  // Displays whose fetch has started since the last time the caller looked, and
@@ -85,11 +83,8 @@ export function assertDisplayContract(self, installedBy = "the per-region fetch
85
83
  // on the display with the liveliest one.
86
84
  const fetchStarted = new WeakSet();
87
85
  const ledgers = new WeakMap();
88
- /** Called by `FetchMixin.runFetch`. Dev-only. */
86
+ /** Called by `FetchMixin.runFetch`. */
89
87
  export function noteFetchStarted(self) {
90
- if (process.env.NODE_ENV === 'production') {
91
- return;
92
- }
93
88
  fetchStarted.add(self);
94
89
  ledgers.get(self)?.('fetched');
95
90
  }
@@ -98,9 +93,10 @@ export function takeFetchStarted(self) {
98
93
  return fetchStarted.delete(self);
99
94
  }
100
95
  /**
101
- * Dev-only check that a display's `reload()` can actually reach a fetch — the
102
- * retry contract, which `DisplayErrorBar` depends on and which no type can
103
- * state. No-op in production.
96
+ * Checks that a display's `reload()` can actually reach a fetch — the retry
97
+ * contract, which `DisplayErrorBar` depends on and which no type can state.
98
+ * Costs an `untracked` read per autorun run against a fetch, so it runs in a
99
+ * production build too and reports through `contractReports`.
104
100
  *
105
101
  * **The button is the contract.** `DisplayErrorBar`'s only action is
106
102
  * `model.reload()`, so every state that can raise the error bar has to be one
@@ -113,7 +109,7 @@ export function takeFetchStarted(self) {
113
109
  * has changed. Arc shipped exactly that: a `prepare` declining on `dataCurrent`,
114
110
  * with the error clearing on click and no arcs ever coming back. The fix this
115
111
  * message asks for is what `GlobalFetchMixin.reload()` now does for that whole
116
- * family — drop `loadedFetchSignature`, so `dataCurrent` goes false and the
112
+ * family — drop `loadedFetchKey`, so `dataCurrent` goes false and the
117
113
  * gate opens.
118
114
  *
119
115
  * Detected at the moment it happens rather than statically, because the relation
@@ -195,9 +191,6 @@ export function takeFetchStarted(self) {
195
191
  * is worse than the bug being checked for.
196
192
  */
197
193
  export function makeRetryContractCheck(self) {
198
- if (process.env.NODE_ENV === 'production') {
199
- return () => { };
200
- }
201
194
  // eslint-disable-next-line no-restricted-syntax -- instrumentation
202
195
  let lastCounter = untracked(() => self.reloadCounter);
203
196
  function noteRetryContractOutcome(outcome) {
@@ -229,7 +222,7 @@ export function makeRetryContractCheck(self) {
229
222
  `fetch autorun's gate still declines, so Retry is a dead ` +
230
223
  `button — it clears the error and nothing refetches. reload() has ` +
231
224
  `to invalidate whatever that gate reads, not just bump the ` +
232
- `counter (GlobalFetchMixin.reload drops loadedFetchSignature so ` +
225
+ `counter (GlobalFetchMixin.reload drops loadedFetchKey so ` +
233
226
  `dataCurrent goes false). If this display is deliberately not ` +
234
227
  `fetching, say so with fetchInert — the loading scrim and the SVG ` +
235
228
  `export read it too; if this run declined only because a ` +
@@ -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>, any>>;
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>, any>>;