@jbrowse/core 4.3.0 → 5.0.0-beta.2

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 (1140) hide show
  1. package/README.md +822 -0
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
  28. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  29. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
  30. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
  31. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
  32. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
  33. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
  34. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
  35. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
  36. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
  37. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
  38. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
  39. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
  40. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
  41. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
  42. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
  43. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
  44. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
  45. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
  46. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
  47. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
  48. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
  49. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
  50. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
  51. package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
  52. package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
  53. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
  54. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
  55. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
  56. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
  57. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
  58. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
  59. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
  60. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
  61. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
  62. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
  63. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
  64. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
  65. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
  66. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
  67. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
  68. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
  69. package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
  70. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
  71. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
  72. package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
  73. package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
  74. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
  75. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
  76. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
  77. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
  78. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
  79. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
  80. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
  81. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
  82. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
  83. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
  84. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
  85. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
  86. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
  87. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
  88. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
  89. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
  90. package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
  91. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
  92. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
  93. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
  94. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
  95. package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
  96. package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
  97. package/esm/BaseFeatureWidget/configSchema.js +1 -1
  98. package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
  99. package/esm/BaseFeatureWidget/formatDetails.js +103 -0
  100. package/esm/BaseFeatureWidget/index.d.ts +3 -1
  101. package/esm/BaseFeatureWidget/index.js +2 -2
  102. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
  103. package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
  104. package/esm/BaseFeatureWidget/types.d.ts +4 -3
  105. package/esm/BaseFeatureWidget/util.d.ts +4 -29
  106. package/esm/BaseFeatureWidget/util.js +20 -84
  107. package/esm/CorePlugin.js +11 -6
  108. package/esm/PhasedScheduler.d.ts +4 -2
  109. package/esm/PhasedScheduler.js +18 -2
  110. package/esm/Plugin.d.ts +6 -1
  111. package/esm/Plugin.js +7 -0
  112. package/esm/PluginLoader.d.ts +41 -40
  113. package/esm/PluginLoader.js +206 -78
  114. package/esm/PluginManager.d.ts +421 -55
  115. package/esm/PluginManager.js +461 -89
  116. package/esm/ReExports/BaseFeatureDetails.js +7 -6
  117. package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
  118. package/esm/ReExports/MuiDataGridReExports.js +58 -130
  119. package/esm/ReExports/MuiReExports.d.ts +3 -134
  120. package/esm/ReExports/MuiReExports.js +43 -16
  121. package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
  122. package/esm/ReExports/MuiStylesReExports.js +55 -0
  123. package/esm/ReExports/index.js +1 -1
  124. package/esm/ReExports/lazify.d.ts +2 -2
  125. package/esm/ReExports/lazify.js +16 -3
  126. package/esm/ReExports/list.js +54 -229
  127. package/esm/ReExports/modules.js +62 -93
  128. package/esm/ReExports/muiComponentNames.d.ts +18 -0
  129. package/esm/ReExports/muiComponentNames.js +130 -0
  130. package/esm/ReExports/publicUtil.d.ts +1 -0
  131. package/esm/ReExports/publicUtil.js +28 -0
  132. package/esm/ReExports/registry.d.ts +2 -0
  133. package/esm/ReExports/registry.js +28 -0
  134. package/esm/ReExports/sharedModules.d.ts +96 -0
  135. package/esm/ReExports/sharedModules.js +59 -0
  136. package/esm/ReExports/uiStub.d.ts +1 -0
  137. package/esm/ReExports/uiStub.js +13 -0
  138. package/esm/ReExports/workerModules.d.ts +2 -0
  139. package/esm/ReExports/workerModules.js +10 -0
  140. package/esm/TextSearch/BaseResults.d.ts +20 -21
  141. package/esm/TextSearch/BaseResults.js +8 -33
  142. package/esm/TextSearch/TextSearchManager.d.ts +14 -34
  143. package/esm/TextSearch/TextSearchManager.js +87 -34
  144. package/esm/assemblyManager/assembly.d.ts +307 -34
  145. package/esm/assemblyManager/assembly.js +551 -262
  146. package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
  147. package/esm/assemblyManager/assemblyAdapters.js +18 -0
  148. package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
  149. package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
  150. package/esm/assemblyManager/assemblyManager.d.ts +711 -303
  151. package/esm/assemblyManager/assemblyManager.js +351 -46
  152. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
  153. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
  154. package/esm/assemblyManager/geneticCodes.d.ts +21 -0
  155. package/esm/assemblyManager/geneticCodes.js +47 -0
  156. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
  157. package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
  158. package/esm/assemblyManager/index.d.ts +1 -1
  159. package/esm/assemblyManager/index.js +2 -2
  160. package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
  161. package/esm/assemblyManager/loadRefNameMap.js +80 -0
  162. package/esm/assemblyManager/refNameColors.d.ts +1 -0
  163. package/esm/assemblyManager/refNameColors.js +32 -0
  164. package/esm/assemblyManager/refNameMaps.d.ts +26 -0
  165. package/esm/assemblyManager/refNameMaps.js +87 -0
  166. package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
  167. package/esm/assemblyManager/refNameMismatch.js +66 -0
  168. package/esm/checkPlugins.d.ts +11 -0
  169. package/esm/checkPlugins.js +77 -0
  170. package/esm/configuration/configurationSchema.d.ts +122 -20
  171. package/esm/configuration/configurationSchema.js +374 -140
  172. package/esm/configuration/configurationSlot.d.ts +283 -30
  173. package/esm/configuration/configurationSlot.js +205 -226
  174. package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
  175. package/esm/configuration/formatAboutConfigSchema.js +58 -0
  176. package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
  177. package/esm/configuration/formatDetailsConfigSchema.js +90 -0
  178. package/esm/configuration/fullConfSnapshot.d.ts +28 -0
  179. package/esm/configuration/fullConfSnapshot.js +66 -0
  180. package/esm/configuration/getConf.d.ts +88 -0
  181. package/esm/configuration/getConf.js +74 -0
  182. package/esm/configuration/index.d.ts +19 -3
  183. package/esm/configuration/index.js +19 -2
  184. package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
  185. package/esm/configuration/mergeFormatCallbacks.js +24 -0
  186. package/esm/configuration/promotableDefaults.d.ts +199 -0
  187. package/esm/configuration/promotableDefaults.js +332 -0
  188. package/esm/configuration/promotablePin.d.ts +55 -0
  189. package/esm/configuration/promotableResolve.d.ts +108 -0
  190. package/esm/configuration/promotableResolve.js +117 -0
  191. package/esm/configuration/promotableSlots.d.ts +12 -0
  192. package/esm/configuration/promotableSlots.js +45 -0
  193. package/esm/configuration/readConfObject.d.ts +56 -0
  194. package/esm/configuration/readConfObject.js +161 -0
  195. package/esm/configuration/schemaRegistry.d.ts +35 -0
  196. package/esm/configuration/schemaRegistry.js +50 -0
  197. package/esm/configuration/schemaTypes.d.ts +23 -0
  198. package/esm/configuration/schemaTypes.js +94 -0
  199. package/esm/configuration/slotFacade.d.ts +82 -0
  200. package/esm/configuration/slotFacade.js +89 -0
  201. package/esm/configuration/slotShape.d.ts +12 -0
  202. package/esm/configuration/slotShape.js +84 -0
  203. package/esm/configuration/slotValueUtils.d.ts +17 -0
  204. package/esm/configuration/slotValueUtils.js +25 -0
  205. package/esm/configuration/tabixIndexFields.d.ts +44 -0
  206. package/esm/configuration/tabixIndexFields.js +45 -0
  207. package/esm/configuration/tabixShorthand.d.ts +34 -0
  208. package/esm/configuration/tabixShorthand.js +45 -0
  209. package/esm/configuration/types.d.ts +170 -7
  210. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
  211. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
  212. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
  213. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
  214. package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
  215. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
  216. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
  217. package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
  218. package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
  219. package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
  220. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
  221. package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
  222. package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
  223. package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
  224. package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
  225. package/esm/data_adapters/BaseAdapter/index.js +6 -5
  226. package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
  227. package/esm/data_adapters/BaseAdapter/stats.js +89 -24
  228. package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
  229. package/esm/data_adapters/BaseAdapter/types.js +1 -0
  230. package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
  231. package/esm/data_adapters/BaseAdapter/util.js +14 -3
  232. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  233. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
  234. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
  235. package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
  236. package/esm/data_adapters/CytobandAdapter/index.js +3 -3
  237. package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
  238. package/esm/data_adapters/adapterSessionRefcount.js +96 -0
  239. package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
  240. package/esm/data_adapters/dataAdapterCache.js +62 -22
  241. package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
  242. package/esm/data_adapters/getFeatureAdapter.js +27 -0
  243. package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
  244. package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
  245. package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
  246. package/esm/pluggableElementTypes/AdapterType.js +44 -5
  247. package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
  248. package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
  249. package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
  250. package/esm/pluggableElementTypes/ConnectionType.js +1 -1
  251. package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
  252. package/esm/pluggableElementTypes/DisplayType.js +53 -5
  253. package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
  254. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
  255. package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
  256. package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
  257. package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
  258. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
  259. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
  260. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
  261. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
  262. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
  263. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
  264. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
  265. package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
  266. package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
  267. package/esm/pluggableElementTypes/TrackType.js +1 -1
  268. package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
  269. package/esm/pluggableElementTypes/ViewType.js +84 -4
  270. package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
  271. package/esm/pluggableElementTypes/WidgetType.js +1 -1
  272. package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
  273. package/esm/pluggableElementTypes/addMenuItems.js +82 -0
  274. package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
  275. package/esm/pluggableElementTypes/extendElementType.js +73 -0
  276. package/esm/pluggableElementTypes/index.d.ts +7 -7
  277. package/esm/pluggableElementTypes/index.js +24 -14
  278. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
  279. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
  280. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
  281. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
  282. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
  283. package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
  284. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
  285. package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
  286. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
  287. package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
  288. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
  289. package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
  290. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
  291. package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
  292. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
  293. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
  294. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
  295. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
  296. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
  297. package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
  298. package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
  299. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
  300. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
  301. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
  302. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
  303. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
  304. package/esm/pluggableElementTypes/models/index.d.ts +6 -3
  305. package/esm/pluggableElementTypes/models/index.js +10 -8
  306. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
  307. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
  308. package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
  309. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
  310. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
  311. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
  312. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
  313. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
  314. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
  315. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
  316. package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
  317. package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
  318. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
  319. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
  320. package/esm/pluginDefinitions.d.ts +198 -0
  321. package/esm/pluginDefinitions.js +220 -0
  322. package/esm/rpc/BaseRpcDriver.d.ts +27 -35
  323. package/esm/rpc/BaseRpcDriver.js +74 -107
  324. package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
  325. package/esm/rpc/MainThreadRpcDriver.js +18 -29
  326. package/esm/rpc/RpcClient.d.ts +38 -0
  327. package/esm/rpc/RpcClient.js +154 -0
  328. package/esm/rpc/RpcManager.d.ts +116 -27
  329. package/esm/rpc/RpcManager.js +177 -50
  330. package/esm/rpc/RpcRegistry.d.ts +275 -0
  331. package/esm/rpc/RpcRegistry.js +1 -0
  332. package/esm/rpc/RpcServer.d.ts +41 -0
  333. package/esm/rpc/RpcServer.js +235 -0
  334. package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
  335. package/esm/rpc/WebWorkerRpcDriver.js +312 -27
  336. package/esm/rpc/byteBudget.d.ts +58 -0
  337. package/esm/rpc/byteBudget.js +50 -0
  338. package/esm/rpc/configSchema.d.ts +27 -5
  339. package/esm/rpc/configSchema.js +40 -16
  340. package/esm/rpc/coreRpcMethods.d.ts +3 -5
  341. package/esm/rpc/coreRpcMethods.js +10 -12
  342. package/esm/rpc/explainTransferError.d.ts +35 -0
  343. package/esm/rpc/explainTransferError.js +158 -0
  344. package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
  345. package/esm/rpc/methods/CoreFreeResources.js +17 -6
  346. package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
  347. package/esm/rpc/methods/CoreGetExportData.js +26 -15
  348. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  349. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  350. package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
  351. package/esm/rpc/methods/CoreGetFeatures.js +15 -17
  352. package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
  353. package/esm/rpc/methods/CoreGetInfo.js +12 -0
  354. package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
  355. package/esm/rpc/methods/CoreGetMetadata.js +6 -9
  356. package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
  357. package/esm/rpc/methods/CoreGetRefNames.js +24 -13
  358. package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
  359. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
  360. package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
  361. package/esm/rpc/methods/CoreGetRegions.js +6 -9
  362. package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
  363. package/esm/rpc/methods/CoreGetSequence.js +12 -13
  364. package/esm/rpc/serializeError/index.d.ts +9 -0
  365. package/esm/rpc/serializeError/index.js +86 -0
  366. package/esm/svg/SvgExport.d.ts +30 -0
  367. package/esm/svg/SvgExport.js +53 -0
  368. package/esm/svg/constants.d.ts +1 -0
  369. package/esm/svg/constants.js +5 -0
  370. package/esm/svg/saveSvgAsImage.d.ts +6 -0
  371. package/esm/svg/saveSvgAsImage.js +90 -0
  372. package/esm/svg/svgId.d.ts +42 -0
  373. package/esm/svg/svgId.js +84 -0
  374. package/esm/svg/svgReady.d.ts +137 -0
  375. package/esm/svg/svgReady.js +164 -0
  376. package/esm/svg/trackNames.d.ts +27 -0
  377. package/esm/svg/trackNames.js +31 -0
  378. package/esm/svg/wrapSvgExport.d.ts +12 -0
  379. package/esm/svg/wrapSvgExport.js +78 -0
  380. package/esm/ui/ActionLink.d.ts +7 -0
  381. package/esm/ui/ActionLink.js +9 -0
  382. package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
  383. package/esm/ui/AddCustomPluginDialog.js +61 -0
  384. package/esm/ui/AddGenomePane.d.ts +8 -0
  385. package/esm/ui/AddGenomePane.js +228 -0
  386. package/esm/ui/AdvancedOptions.d.ts +6 -0
  387. package/esm/ui/AdvancedOptions.js +17 -0
  388. package/esm/ui/AppLogo.d.ts +1 -1
  389. package/esm/ui/AppLogo.js +2 -2
  390. package/esm/ui/AssemblySelector.d.ts +5 -8
  391. package/esm/ui/AssemblySelector.js +8 -26
  392. package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
  393. package/esm/ui/BaseExportSvgDialog.js +84 -0
  394. package/esm/ui/BaseTooltip.d.ts +14 -3
  395. package/esm/ui/BaseTooltip.js +151 -34
  396. package/esm/ui/CascadingMenu.d.ts +9 -18
  397. package/esm/ui/CascadingMenu.js +390 -41
  398. package/esm/ui/CascadingMenuButton.d.ts +9 -11
  399. package/esm/ui/CascadingMenuButton.js +36 -18
  400. package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
  401. package/esm/ui/CascadingMenuHelpDialog.js +4 -5
  402. package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
  403. package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
  404. package/esm/ui/ColorPicker.d.ts +6 -9
  405. package/esm/ui/ColorPicker.js +36 -39
  406. package/esm/ui/ConfirmDialog.d.ts +2 -9
  407. package/esm/ui/ConfirmDialog.js +6 -9
  408. package/esm/ui/ContextMenu.d.ts +50 -0
  409. package/esm/ui/ContextMenu.js +55 -0
  410. package/esm/ui/CopyToClipboardButton.d.ts +10 -0
  411. package/esm/ui/CopyToClipboardButton.js +14 -0
  412. package/esm/ui/Crosshairs.d.ts +10 -0
  413. package/esm/ui/Crosshairs.js +15 -0
  414. package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
  415. package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
  416. package/esm/ui/DataGridFlexContainer.d.ts +9 -2
  417. package/esm/ui/DataGridFlexContainer.js +4 -3
  418. package/esm/ui/Dialog.d.ts +5 -2
  419. package/esm/ui/Dialog.js +35 -27
  420. package/esm/ui/DraggableDialog.d.ts +3 -3
  421. package/esm/ui/DraggableDialog.js +50 -12
  422. package/esm/ui/DropDownMenu.d.ts +4 -2
  423. package/esm/ui/DropDownMenu.js +4 -4
  424. package/esm/ui/EditableTypography.d.ts +3 -1
  425. package/esm/ui/EditableTypography.js +34 -26
  426. package/esm/ui/ErrorActions.d.ts +24 -0
  427. package/esm/ui/ErrorActions.js +20 -0
  428. package/esm/ui/ErrorBanner.d.ts +7 -0
  429. package/esm/ui/ErrorBanner.js +35 -0
  430. package/esm/ui/ErrorBar.d.ts +6 -0
  431. package/esm/ui/ErrorBar.js +35 -0
  432. package/esm/ui/ErrorBoundary.d.ts +29 -5
  433. package/esm/ui/ErrorBoundary.js +32 -2
  434. package/esm/ui/ErrorMessage.d.ts +2 -4
  435. package/esm/ui/ErrorMessage.js +17 -52
  436. package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
  437. package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
  438. package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
  439. package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
  440. package/esm/ui/ErrorOverlay.d.ts +8 -0
  441. package/esm/ui/ErrorOverlay.js +5 -0
  442. package/esm/ui/ExportSvgDialog.d.ts +7 -0
  443. package/esm/ui/ExportSvgDialog.js +9 -0
  444. package/esm/ui/ExternalLink.d.ts +1 -1
  445. package/esm/ui/FactoryResetDialog.d.ts +1 -1
  446. package/esm/ui/FactoryResetDialog.js +6 -15
  447. package/esm/ui/FatalErrorDialog.d.ts +3 -2
  448. package/esm/ui/FatalErrorDialog.js +6 -5
  449. package/esm/ui/FileDropZone.d.ts +25 -0
  450. package/esm/ui/FileDropZone.js +128 -0
  451. package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
  452. package/esm/ui/FileSelector/FileSelector.js +59 -30
  453. package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
  454. package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
  455. package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
  456. package/esm/ui/FileSelector/LocationInput.js +8 -12
  457. package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
  458. package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
  459. package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
  460. package/esm/ui/FileSelector/UrlChooser.js +26 -2
  461. package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
  462. package/esm/ui/FileSelector/emptySourceType.js +14 -0
  463. package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
  464. package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
  465. package/esm/ui/FileSelector/util.d.ts +58 -3
  466. package/esm/ui/FileSelector/util.js +128 -11
  467. package/esm/ui/GpuFallbackButton.d.ts +12 -0
  468. package/esm/ui/GpuFallbackButton.js +20 -0
  469. package/esm/ui/HoverMenu.d.ts +12 -3
  470. package/esm/ui/HoverMenu.js +31 -9
  471. package/esm/ui/HoverTooltip.d.ts +27 -0
  472. package/esm/ui/HoverTooltip.js +24 -0
  473. package/esm/ui/Icons.d.ts +6 -4
  474. package/esm/ui/Icons.js +9 -0
  475. package/esm/ui/InfoDialog.d.ts +7 -0
  476. package/esm/ui/InfoDialog.js +16 -0
  477. package/esm/ui/InlineMenuControls.d.ts +6 -0
  478. package/esm/ui/InlineMenuControls.js +17 -0
  479. package/esm/ui/JexlFilterDialog.d.ts +23 -0
  480. package/esm/ui/JexlFilterDialog.js +94 -0
  481. package/esm/ui/LabeledCheckbox.d.ts +9 -0
  482. package/esm/ui/LabeledCheckbox.js +7 -0
  483. package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
  484. package/esm/ui/LegendSwatchGlyph.js +25 -0
  485. package/esm/ui/LoadingDots.d.ts +1 -0
  486. package/esm/ui/LoadingDots.js +30 -0
  487. package/esm/ui/LoadingEllipses.d.ts +17 -1
  488. package/esm/ui/LoadingEllipses.js +20 -29
  489. package/esm/ui/LoadingOverlay.d.ts +23 -0
  490. package/esm/ui/LoadingOverlay.js +137 -0
  491. package/esm/ui/LoadingProgress.d.ts +16 -0
  492. package/esm/ui/LoadingProgress.js +16 -0
  493. package/esm/ui/Logo.d.ts +2 -2
  494. package/esm/ui/Logo.js +23 -24
  495. package/esm/ui/Menu.js +1 -1
  496. package/esm/ui/MenuItemChevron.d.ts +3 -0
  497. package/esm/ui/MenuItemChevron.js +19 -0
  498. package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
  499. package/esm/ui/MenuItemEndDecoration.js +28 -0
  500. package/esm/ui/MenuItemTrailing.d.ts +12 -0
  501. package/esm/ui/MenuItemTrailing.js +42 -0
  502. package/esm/ui/MenuTypes.d.ts +134 -5
  503. package/esm/ui/MenuTypes.js +16 -1
  504. package/esm/ui/MonospaceTextField.d.ts +9 -0
  505. package/esm/ui/MonospaceTextField.js +37 -0
  506. package/esm/ui/NumberTextField.d.ts +31 -0
  507. package/esm/ui/NumberTextField.js +33 -0
  508. package/esm/ui/PaletteContext.d.ts +92 -0
  509. package/esm/ui/PaletteContext.js +133 -0
  510. package/esm/ui/PinAdornment.d.ts +5 -0
  511. package/esm/ui/PinAdornment.js +85 -0
  512. package/esm/ui/PluggableComponent.d.ts +10 -0
  513. package/esm/ui/PluggableComponent.js +19 -0
  514. package/esm/ui/PluggableComponents.d.ts +29 -0
  515. package/esm/ui/PluggableComponents.js +28 -0
  516. package/esm/ui/PluggableElements.d.ts +23 -0
  517. package/esm/ui/PluggableElements.js +24 -0
  518. package/esm/ui/PluginStoreCard.d.ts +17 -0
  519. package/esm/ui/PluginStoreCard.js +45 -0
  520. package/esm/ui/PopoverPicker.d.ts +6 -0
  521. package/esm/ui/PopoverPicker.js +25 -0
  522. package/esm/ui/PrerenderedCanvas.d.ts +1 -1
  523. package/esm/ui/PrerenderedCanvas.js +5 -4
  524. package/esm/ui/ProgressChip.d.ts +37 -0
  525. package/esm/ui/ProgressChip.js +66 -0
  526. package/esm/ui/RedErrorMessageBox.d.ts +1 -1
  527. package/esm/ui/RedErrorMessageBox.js +9 -3
  528. package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
  529. package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
  530. package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
  531. package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
  532. package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
  533. package/esm/ui/RefNameAutocomplete/index.js +78 -0
  534. package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
  535. package/esm/ui/RefNameAutocomplete/util.js +168 -0
  536. package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
  537. package/esm/ui/ReplaceCurrentViewButton.js +22 -0
  538. package/esm/ui/ResizeHandle.d.ts +13 -7
  539. package/esm/ui/ResizeHandle.js +42 -55
  540. package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
  541. package/esm/ui/ReturnToImportFormDialog.js +7 -9
  542. package/esm/ui/SanitizedHTML.d.ts +6 -1
  543. package/esm/ui/SanitizedHTML.js +7 -47
  544. package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
  545. package/esm/ui/ScrollEdgeShadow.js +98 -0
  546. package/esm/ui/ScrollZoomToggle.d.ts +38 -0
  547. package/esm/ui/ScrollZoomToggle.js +92 -0
  548. package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
  549. package/esm/ui/SequenceAdapterInputs.js +30 -0
  550. package/esm/ui/SettingsChangesTable.d.ts +14 -0
  551. package/esm/ui/SettingsChangesTable.js +49 -0
  552. package/esm/ui/ShareLinkField.d.ts +6 -0
  553. package/esm/ui/ShareLinkField.js +42 -0
  554. package/esm/ui/SingleSlider.d.ts +8 -0
  555. package/esm/ui/SingleSlider.js +11 -0
  556. package/esm/ui/SizeSliderRow.d.ts +16 -0
  557. package/esm/ui/SizeSliderRow.js +50 -0
  558. package/esm/ui/SliderTooltip.d.ts +2 -0
  559. package/esm/ui/SliderTooltip.js +17 -0
  560. package/esm/ui/Snackbar.d.ts +4 -2
  561. package/esm/ui/Snackbar.js +11 -8
  562. package/esm/ui/SnackbarContents.d.ts +1 -1
  563. package/esm/ui/SnackbarContents.js +21 -3
  564. package/esm/ui/SnackbarModel.d.ts +40 -0
  565. package/esm/ui/SnackbarModel.js +43 -11
  566. package/esm/ui/StackTraceButton.d.ts +5 -0
  567. package/esm/ui/StackTraceButton.js +16 -0
  568. package/esm/ui/StatusProgressBar.d.ts +37 -0
  569. package/esm/ui/StatusProgressBar.js +76 -0
  570. package/esm/ui/SubmitDialog.d.ts +6 -0
  571. package/esm/ui/SubmitDialog.js +9 -0
  572. package/esm/ui/SubmitForm.d.ts +23 -0
  573. package/esm/ui/SubmitForm.js +23 -0
  574. package/esm/ui/SvgColorLegend.d.ts +13 -0
  575. package/esm/ui/SvgColorLegend.js +65 -0
  576. package/esm/ui/SvgGradientLegend.d.ts +26 -0
  577. package/esm/ui/SvgGradientLegend.js +26 -0
  578. package/esm/ui/TagTextField.d.ts +40 -0
  579. package/esm/ui/TagTextField.js +32 -0
  580. package/esm/ui/VerticalScrollbar.d.ts +45 -0
  581. package/esm/ui/VerticalScrollbar.js +158 -0
  582. package/esm/ui/ViewLoadingScreen.d.ts +24 -0
  583. package/esm/ui/ViewLoadingScreen.js +76 -0
  584. package/esm/ui/addExtensionElement.d.ts +18 -0
  585. package/esm/ui/addExtensionElement.js +23 -0
  586. package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
  587. package/esm/ui/buildExtraTrackMenuItems.js +14 -0
  588. package/esm/ui/colorSwatchStyle.d.ts +9 -0
  589. package/esm/ui/colorSwatchStyle.js +11 -0
  590. package/esm/ui/colors.d.ts +61 -8
  591. package/esm/ui/colors.js +135 -1
  592. package/esm/ui/extensionSelectors.d.ts +38 -0
  593. package/esm/ui/extensionSelectors.js +49 -0
  594. package/esm/ui/filterMenuItems.d.ts +112 -0
  595. package/esm/ui/filterMenuItems.js +86 -0
  596. package/esm/ui/formatErrorStack.d.ts +1 -0
  597. package/esm/ui/formatErrorStack.js +56 -0
  598. package/esm/ui/gpuFallback.d.ts +33 -0
  599. package/esm/ui/gpuFallback.js +39 -0
  600. package/esm/ui/highlightChipReveal.d.ts +32 -0
  601. package/esm/ui/highlightChipReveal.js +39 -0
  602. package/esm/ui/hoverBoxStyle.d.ts +11 -0
  603. package/esm/ui/hoverBoxStyle.js +13 -0
  604. package/esm/ui/index.d.ts +76 -4
  605. package/esm/ui/index.js +90 -19
  606. package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
  607. package/esm/ui/inlineMenuRowWidth.js +8 -0
  608. package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
  609. package/esm/ui/launchTargetsMenuItem.js +24 -0
  610. package/esm/ui/launchViewMenu.d.ts +4 -0
  611. package/esm/ui/launchViewMenu.js +42 -0
  612. package/esm/ui/legendMenuItem.d.ts +38 -0
  613. package/esm/ui/legendMenuItem.js +44 -0
  614. package/esm/ui/legendSpec.d.ts +62 -0
  615. package/esm/ui/legendSpec.js +78 -0
  616. package/esm/ui/loadingDotKeyframes.d.ts +18 -0
  617. package/esm/ui/loadingDotKeyframes.js +17 -0
  618. package/esm/ui/makeSizeMenu.d.ts +30 -0
  619. package/esm/ui/makeSizeMenu.js +82 -0
  620. package/esm/ui/mapStackTrace.d.ts +8 -0
  621. package/esm/ui/mapStackTrace.js +108 -0
  622. package/esm/ui/measureLegendText.d.ts +1 -0
  623. package/esm/ui/measureLegendText.js +8 -0
  624. package/esm/ui/menuItemAdornment.d.ts +33 -0
  625. package/esm/ui/menuItemAdornment.js +50 -0
  626. package/esm/ui/menuItems.d.ts +28 -0
  627. package/esm/ui/menuItems.js +26 -0
  628. package/esm/ui/menuLabels.d.ts +41 -0
  629. package/esm/ui/menuLabels.js +43 -0
  630. package/esm/ui/multiTrackMenuItems.d.ts +19 -0
  631. package/esm/ui/multiTrackMenuItems.js +15 -0
  632. package/esm/ui/palette.d.ts +559 -0
  633. package/esm/ui/palette.js +746 -0
  634. package/esm/ui/parseError.d.ts +4 -0
  635. package/esm/ui/parseError.js +18 -0
  636. package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
  637. package/esm/ui/persistentScrollbarStyle.js +53 -0
  638. package/esm/ui/promotableMenuItems.d.ts +19 -0
  639. package/esm/ui/promotableMenuItems.js +91 -0
  640. package/esm/ui/promotablePinCoverage.d.ts +44 -0
  641. package/esm/ui/promotablePinCoverage.js +88 -0
  642. package/esm/ui/radioSubMenu.d.ts +33 -0
  643. package/esm/ui/radioSubMenu.js +32 -0
  644. package/esm/ui/react-colorful.js +5 -1
  645. package/esm/ui/replaceViewAction.d.ts +31 -0
  646. package/esm/ui/replaceViewAction.js +39 -0
  647. package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
  648. package/esm/ui/rewriteExternalAnchors.js +8 -0
  649. package/esm/ui/scrollZoomLabels.d.ts +17 -0
  650. package/esm/ui/scrollZoomLabels.js +22 -0
  651. package/esm/ui/showSubMenu.d.ts +19 -0
  652. package/esm/ui/showSubMenu.js +30 -0
  653. package/esm/ui/sliderScale.d.ts +6 -0
  654. package/esm/ui/sliderScale.js +30 -0
  655. package/esm/ui/statusProgressKeyframes.d.ts +6 -0
  656. package/esm/ui/statusProgressKeyframes.js +14 -0
  657. package/esm/ui/stripStackTraceMessage.d.ts +1 -0
  658. package/esm/ui/stripStackTraceMessage.js +9 -0
  659. package/esm/ui/styleTheme.d.ts +158 -0
  660. package/esm/ui/styleTheme.js +115 -0
  661. package/esm/ui/submenuAim.d.ts +30 -0
  662. package/esm/ui/submenuAim.js +37 -0
  663. package/esm/ui/theme.d.ts +343 -29
  664. package/esm/ui/theme.js +258 -342
  665. package/esm/ui/toggleMenuItems.d.ts +42 -0
  666. package/esm/ui/toggleMenuItems.js +60 -0
  667. package/esm/ui/useAssemblySelection.d.ts +153 -0
  668. package/esm/ui/useAssemblySelection.js +54 -0
  669. package/esm/ui/useCoalescedPointer.d.ts +36 -0
  670. package/esm/ui/useCoalescedPointer.js +60 -0
  671. package/esm/ui/useCopyToClipboard.d.ts +15 -0
  672. package/esm/ui/useCopyToClipboard.js +41 -0
  673. package/esm/ui/useExportSvgPreference.d.ts +1 -0
  674. package/esm/ui/useExportSvgPreference.js +4 -0
  675. package/esm/ui/useMouseTracking.d.ts +71 -0
  676. package/esm/ui/useMouseTracking.js +179 -0
  677. package/esm/ui/useRecentLocations.d.ts +28 -0
  678. package/esm/ui/useRecentLocations.js +31 -0
  679. package/esm/ui/wrapComponent.d.ts +47 -0
  680. package/esm/ui/wrapComponent.js +58 -0
  681. package/esm/ui/zIndexes.d.ts +28 -0
  682. package/esm/ui/zIndexes.js +38 -0
  683. package/esm/util/Base1DUtils.d.ts +204 -16
  684. package/esm/util/Base1DUtils.js +310 -175
  685. package/esm/util/Base1DViewModel.d.ts +97 -20
  686. package/esm/util/Base1DViewModel.js +148 -39
  687. package/esm/util/FileSaver/index.d.ts +1 -0
  688. package/esm/util/FileSaver/index.js +27 -0
  689. package/esm/util/IntervalTree.d.ts +18 -39
  690. package/esm/util/IntervalTree.js +63 -244
  691. package/esm/util/SvgCanvas.d.ts +81 -0
  692. package/esm/util/SvgCanvas.js +500 -0
  693. package/esm/util/TimeTraveller.d.ts +12 -0
  694. package/esm/util/TimeTraveller.js +130 -27
  695. package/esm/util/aborting.d.ts +17 -4
  696. package/esm/util/aborting.js +30 -25
  697. package/esm/util/adapterMetadata.d.ts +20 -0
  698. package/esm/util/adapterMetadata.js +39 -0
  699. package/esm/util/addAndShowTrack.d.ts +22 -0
  700. package/esm/util/addAndShowTrack.js +27 -0
  701. package/esm/util/addRelativeUris.d.ts +17 -0
  702. package/esm/util/addRelativeUris.js +42 -0
  703. package/esm/util/addTrackComponent.d.ts +72 -0
  704. package/esm/util/addTrackComponent.js +53 -0
  705. package/esm/util/addTrackFromWidget.d.ts +94 -0
  706. package/esm/util/addTrackFromWidget.js +90 -0
  707. package/esm/util/analytics.d.ts +32 -3
  708. package/esm/util/analytics.js +102 -49
  709. package/esm/util/animationAllowed.d.ts +17 -0
  710. package/esm/util/animationAllowed.js +22 -0
  711. package/esm/util/applyRowResizeWheel.d.ts +10 -0
  712. package/esm/util/applyRowResizeWheel.js +34 -0
  713. package/esm/util/assemblyConfigUtils.d.ts +144 -0
  714. package/esm/util/assemblyConfigUtils.js +498 -0
  715. package/esm/util/bandHeight.d.ts +53 -0
  716. package/esm/util/bandHeight.js +56 -0
  717. package/esm/util/bandLayout.d.ts +51 -0
  718. package/esm/util/bandLayout.js +36 -0
  719. package/esm/util/bezierConnector.d.ts +14 -0
  720. package/esm/util/bezierConnector.js +108 -0
  721. package/esm/util/bgzfWorkerPool.d.ts +78 -0
  722. package/esm/util/bgzfWorkerPool.js +81 -0
  723. package/esm/util/blockTypes.d.ts +64 -45
  724. package/esm/util/blockTypes.js +67 -74
  725. package/esm/util/bpUtils.d.ts +81 -0
  726. package/esm/util/bpUtils.js +103 -0
  727. package/esm/util/cacheBudgets.d.ts +55 -0
  728. package/esm/util/cacheBudgets.js +55 -0
  729. package/esm/util/cachedSetup.d.ts +51 -0
  730. package/esm/util/cachedSetup.js +87 -0
  731. package/esm/util/calculateDynamicBlocks.d.ts +5 -0
  732. package/esm/util/calculateDynamicBlocks.js +85 -82
  733. package/esm/util/calculateStaticBlocks.d.ts +2 -3
  734. package/esm/util/calculateStaticBlocks.js +48 -71
  735. package/esm/util/chooseGridPitch.d.ts +9 -0
  736. package/esm/util/chooseGridPitch.js +31 -0
  737. package/esm/util/clampToContig.d.ts +26 -0
  738. package/esm/util/clampToContig.js +28 -0
  739. package/esm/util/cmpStr.d.ts +1 -0
  740. package/esm/util/cmpStr.js +7 -0
  741. package/esm/util/coarseStripHTML.js +3 -15
  742. package/esm/util/color/cssColorsLevel4.js +6 -2
  743. package/esm/util/color/index.d.ts +81 -2
  744. package/esm/util/color/index.js +194 -25
  745. package/esm/util/color-bits/bit.d.ts +4 -0
  746. package/esm/util/color-bits/bit.js +37 -0
  747. package/esm/util/color-bits/convert.d.ts +23 -0
  748. package/esm/util/color-bits/convert.js +294 -0
  749. package/esm/util/color-bits/core.d.ts +34 -0
  750. package/esm/util/color-bits/core.js +67 -0
  751. package/esm/util/color-bits/format.d.ts +24 -0
  752. package/esm/util/color-bits/format.js +82 -0
  753. package/esm/util/color-bits/functions.d.ts +33 -0
  754. package/esm/util/color-bits/functions.js +70 -0
  755. package/esm/util/color-bits/index.d.ts +5 -0
  756. package/esm/util/color-bits/index.js +4 -0
  757. package/esm/util/color-bits/parse.d.ts +17 -0
  758. package/esm/util/color-bits/parse.js +382 -0
  759. package/esm/util/colorBits.d.ts +39 -0
  760. package/esm/util/colorBits.js +180 -0
  761. package/esm/util/colorRamp.d.ts +37 -0
  762. package/esm/util/colorRamp.js +93 -0
  763. package/esm/util/colord.d.ts +8 -0
  764. package/esm/util/colord.js +43 -191
  765. package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
  766. package/esm/util/convertCodingSequenceToPeptides.js +51 -4
  767. package/esm/util/copyText.d.ts +18 -0
  768. package/esm/util/copyText.js +30 -0
  769. package/esm/util/copyToClipboard.d.ts +4 -0
  770. package/esm/util/copyToClipboard.js +58 -0
  771. package/esm/util/createStopTokenRotation.d.ts +118 -0
  772. package/esm/util/createStopTokenRotation.js +127 -0
  773. package/esm/util/createSvgRasterCanvas.d.ts +7 -0
  774. package/esm/util/createSvgRasterCanvas.js +22 -0
  775. package/esm/util/crypto.d.ts +24 -0
  776. package/esm/util/crypto.js +85 -2
  777. package/esm/util/dataGridUtils.d.ts +9 -0
  778. package/esm/util/dataGridUtils.js +36 -0
  779. package/esm/util/dedupe.js +1 -0
  780. package/esm/util/deepEqual.d.ts +8 -0
  781. package/esm/util/deepEqual.js +22 -0
  782. package/esm/util/deepMerge.d.ts +20 -0
  783. package/esm/util/deepMerge.js +44 -0
  784. package/esm/util/diagonalizeRegions.d.ts +23 -0
  785. package/esm/util/diagonalizeRegions.js +192 -0
  786. package/esm/util/environment.d.ts +4 -0
  787. package/esm/util/environment.js +43 -0
  788. package/esm/util/eventPoint.d.ts +32 -0
  789. package/esm/util/eventPoint.js +28 -0
  790. package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
  791. package/esm/util/fetchAndMaybeUnzip.js +64 -0
  792. package/esm/util/fetchContext.d.ts +82 -0
  793. package/esm/util/fetchContext.js +59 -0
  794. package/esm/util/fetchHub.d.ts +15 -0
  795. package/esm/util/fetchHub.js +31 -0
  796. package/esm/util/fetchJson.d.ts +1 -0
  797. package/esm/util/fetchJson.js +7 -0
  798. package/esm/util/fetchPhases.d.ts +77 -0
  799. package/esm/util/fetchPhases.js +1 -0
  800. package/esm/util/fetchSeq.d.ts +5 -1
  801. package/esm/util/fetchSeq.js +18 -6
  802. package/esm/util/fileHandleStore.d.ts +19 -2
  803. package/esm/util/fileHandleStore.js +95 -35
  804. package/esm/util/flatbush/index.d.ts +27 -6
  805. package/esm/util/flatbush/index.js +194 -218
  806. package/esm/util/formatBytes.d.ts +9 -0
  807. package/esm/util/formatBytes.js +18 -0
  808. package/esm/util/formatFastaStrings.d.ts +13 -0
  809. package/esm/util/formatFastaStrings.js +13 -0
  810. package/esm/util/formatGuessers.d.ts +30 -0
  811. package/esm/util/formatGuessers.js +69 -0
  812. package/esm/util/formatRelativeTime.d.ts +1 -0
  813. package/esm/util/formatRelativeTime.js +25 -0
  814. package/esm/util/frameCoalescer.d.ts +30 -0
  815. package/esm/util/frameCoalescer.js +22 -0
  816. package/esm/util/freezeDeep.d.ts +28 -0
  817. package/esm/util/freezeDeep.js +41 -0
  818. package/esm/util/geneticCodes.d.ts +56 -0
  819. package/esm/util/geneticCodes.js +371 -0
  820. package/esm/util/getFileName.d.ts +11 -0
  821. package/esm/util/getFileName.js +34 -0
  822. package/esm/util/getLocationUri.d.ts +49 -0
  823. package/esm/util/getLocationUri.js +63 -0
  824. package/esm/util/getRelativeX.d.ts +4 -0
  825. package/esm/util/getRelativeX.js +7 -0
  826. package/esm/util/getStr.d.ts +6 -0
  827. package/esm/util/getStr.js +15 -0
  828. package/esm/util/highlights.d.ts +21 -0
  829. package/esm/util/highlights.js +100 -0
  830. package/esm/util/hooks.d.ts +168 -0
  831. package/esm/util/hooks.js +443 -0
  832. package/esm/util/htmlText.d.ts +13 -0
  833. package/esm/util/htmlText.js +66 -0
  834. package/esm/util/idMaker.d.ts +1 -1
  835. package/esm/util/idMaker.js +31 -18
  836. package/esm/util/index.d.ts +81 -268
  837. package/esm/util/index.js +135 -853
  838. package/esm/util/indexCandidates.d.ts +50 -0
  839. package/esm/util/indexCandidates.js +101 -0
  840. package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
  841. package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
  842. package/esm/util/installFetch.d.ts +220 -0
  843. package/esm/util/installFetch.js +206 -0
  844. package/esm/util/installInitAutorun.d.ts +62 -0
  845. package/esm/util/installInitAutorun.js +107 -0
  846. package/esm/util/intervals.d.ts +20 -0
  847. package/esm/util/intervals.js +37 -0
  848. package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
  849. package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
  850. package/esm/util/io/index.d.ts +39 -2
  851. package/esm/util/io/index.js +115 -12
  852. package/esm/util/isDataCurrent.d.ts +7 -0
  853. package/esm/util/isDataCurrent.js +9 -0
  854. package/esm/util/isWebWorker.js +1 -2
  855. package/esm/util/iupac.d.ts +4 -0
  856. package/esm/util/iupac.js +59 -0
  857. package/esm/util/jexl.js +141 -17
  858. package/esm/util/jexlFilters.d.ts +75 -0
  859. package/esm/util/jexlFilters.js +49 -0
  860. package/esm/util/jexlStrings.d.ts +22 -1
  861. package/esm/util/jexlStrings.js +21 -14
  862. package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
  863. package/esm/util/layouts/GranularRectLayout.js +99 -356
  864. package/esm/util/layouts/index.d.ts +1 -7
  865. package/esm/util/layouts/index.js +2 -6
  866. package/esm/util/layouts/intervalUtils.d.ts +12 -1
  867. package/esm/util/layouts/intervalUtils.js +13 -31
  868. package/esm/util/layouts/placeRect.d.ts +50 -0
  869. package/esm/util/layouts/placeRect.js +97 -0
  870. package/esm/util/lazyAfterAttach.d.ts +13 -0
  871. package/esm/util/lazyAfterAttach.js +31 -0
  872. package/esm/util/leadingEdgeAutorun.d.ts +40 -0
  873. package/esm/util/leadingEdgeAutorun.js +51 -0
  874. package/esm/util/legendCandidates.d.ts +50 -0
  875. package/esm/util/legendCandidates.js +87 -0
  876. package/esm/util/librpc.d.ts +5 -2
  877. package/esm/util/librpc.js +6 -1
  878. package/esm/util/linkify.js +2 -0
  879. package/esm/util/locString.d.ts +72 -0
  880. package/esm/util/locString.js +178 -7
  881. package/esm/util/locStringsToRegions.d.ts +10 -0
  882. package/esm/util/locStringsToRegions.js +35 -0
  883. package/esm/util/localStorage.d.ts +36 -0
  884. package/esm/util/localStorage.js +137 -0
  885. package/esm/util/makeAssembly.d.ts +54 -0
  886. package/esm/util/makeAssembly.js +52 -0
  887. package/esm/util/makeTrackId.d.ts +14 -0
  888. package/esm/util/makeTrackId.js +14 -0
  889. package/esm/util/matchTrackId.d.ts +11 -0
  890. package/esm/util/matchTrackId.js +14 -0
  891. package/esm/util/measureText.d.ts +24 -0
  892. package/esm/util/measureText.js +51 -0
  893. package/esm/util/mst-reflection.d.ts +14 -4
  894. package/esm/util/mst-reflection.js +33 -32
  895. package/esm/util/mstUtils.d.ts +100 -0
  896. package/esm/util/mstUtils.js +140 -0
  897. package/esm/util/nanoid.d.ts +0 -4
  898. package/esm/util/nanoid.js +10 -20
  899. package/esm/util/numericUtils.d.ts +20 -0
  900. package/esm/util/numericUtils.js +127 -0
  901. package/esm/util/objectUtils.d.ts +2 -0
  902. package/esm/util/objectUtils.js +9 -0
  903. package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
  904. package/esm/util/offscreenCanvasPonyfill.js +5 -47
  905. package/esm/util/openDisplays.d.ts +23 -0
  906. package/esm/util/openDisplays.js +79 -0
  907. package/esm/util/openFeatureWidget.d.ts +33 -0
  908. package/esm/util/openFeatureWidget.js +64 -0
  909. package/esm/util/paintLayer.d.ts +32 -0
  910. package/esm/util/paintLayer.js +33 -0
  911. package/esm/util/parentWalk.d.ts +32 -0
  912. package/esm/util/parentWalk.js +84 -0
  913. package/esm/util/parseLineByLine.d.ts +45 -2
  914. package/esm/util/parseLineByLine.js +156 -15
  915. package/esm/util/parseMotifList.d.ts +17 -0
  916. package/esm/util/parseMotifList.js +69 -0
  917. package/esm/util/pluginStore.d.ts +114 -0
  918. package/esm/util/pluginStore.js +260 -0
  919. package/esm/util/pointerPresence.d.ts +5 -0
  920. package/esm/util/pointerPresence.js +21 -0
  921. package/esm/util/progress.d.ts +459 -0
  922. package/esm/util/progress.js +820 -0
  923. package/esm/util/range.d.ts +46 -1
  924. package/esm/util/range.js +68 -2
  925. package/esm/util/renameRegions.d.ts +21 -0
  926. package/esm/util/renameRegions.js +129 -0
  927. package/esm/util/renderToStaticMarkup.d.ts +2 -0
  928. package/esm/util/renderToStaticMarkup.js +50 -0
  929. package/esm/util/reorder.d.ts +35 -0
  930. package/esm/util/reorder.js +83 -0
  931. package/esm/util/resolveRowHeight.d.ts +27 -0
  932. package/esm/util/resolveRowHeight.js +30 -0
  933. package/esm/util/revlist.d.ts +13 -0
  934. package/esm/util/revlist.js +14 -0
  935. package/esm/util/rowStackGeometry.d.ts +66 -0
  936. package/esm/util/rowStackGeometry.js +70 -0
  937. package/esm/util/rpc.d.ts +16 -1
  938. package/esm/util/rpc.js +12 -1
  939. package/esm/util/rxjs.d.ts +30 -1
  940. package/esm/util/rxjs.js +88 -10
  941. package/esm/util/sameStrings.d.ts +16 -0
  942. package/esm/util/sameStrings.js +20 -0
  943. package/esm/util/scrollLatch.d.ts +4 -0
  944. package/esm/util/scrollLatch.js +59 -0
  945. package/esm/util/selectNamedRegions.d.ts +136 -0
  946. package/esm/util/selectNamedRegions.js +222 -0
  947. package/esm/util/seqUtils.d.ts +17 -0
  948. package/esm/util/seqUtils.js +80 -0
  949. package/esm/util/sessionServices.d.ts +29 -0
  950. package/esm/util/sessionServices.js +46 -0
  951. package/esm/util/sessionSharing.d.ts +38 -0
  952. package/esm/util/sessionSharing.js +154 -0
  953. package/esm/util/sessionStorage.d.ts +1 -0
  954. package/esm/util/sessionStorage.js +15 -0
  955. package/esm/util/setStackTraceLimit.d.ts +6 -0
  956. package/esm/util/setStackTraceLimit.js +20 -0
  957. package/esm/util/simpleFeature.d.ts +112 -4
  958. package/esm/util/simpleFeature.js +181 -29
  959. package/esm/util/springAnimate.d.ts +20 -0
  960. package/esm/util/springAnimate.js +80 -0
  961. package/esm/util/stats.d.ts +25 -2
  962. package/esm/util/stats.js +39 -8
  963. package/esm/util/stopToken.d.ts +207 -15
  964. package/esm/util/stopToken.js +403 -55
  965. package/esm/util/stringUtils.d.ts +5 -0
  966. package/esm/util/stringUtils.js +34 -0
  967. package/esm/util/svgColorProps.d.ts +7 -0
  968. package/esm/util/svgColorProps.js +28 -0
  969. package/esm/util/tabix.d.ts +126 -0
  970. package/esm/util/tabix.js +149 -0
  971. package/esm/util/tags.d.ts +2 -0
  972. package/esm/util/tags.js +5 -0
  973. package/esm/util/temporaryAssembly.d.ts +21 -0
  974. package/esm/util/temporaryAssembly.js +29 -0
  975. package/esm/util/tickLabels.d.ts +36 -0
  976. package/esm/util/tickLabels.js +45 -0
  977. package/esm/util/timeGate.d.ts +26 -0
  978. package/esm/util/timeGate.js +79 -0
  979. package/esm/util/trackConfigDelta.d.ts +84 -0
  980. package/esm/util/trackConfigDelta.js +190 -0
  981. package/esm/util/tracks.d.ts +398 -30
  982. package/esm/util/tracks.js +699 -191
  983. package/esm/util/tss-react/cssAndCx.js +11 -66
  984. package/esm/util/tss-react/index.d.ts +11 -2
  985. package/esm/util/tss-react/index.js +9 -2
  986. package/esm/util/tss-react/makeStyles.js +7 -4
  987. package/esm/util/tss-react/mergeClasses.js +1 -0
  988. package/esm/util/tss-react/tools/classnames.d.ts +3 -0
  989. package/esm/util/tss-react/tools/classnames.js +3 -0
  990. package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
  991. package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
  992. package/esm/util/tss-react/types.d.ts +1 -1
  993. package/esm/util/tss-react/types.js +1 -6
  994. package/esm/util/types/ElementId.js +1 -1
  995. package/esm/util/types/data.d.ts +75 -0
  996. package/esm/util/types/data.js +41 -0
  997. package/esm/util/types/index.d.ts +402 -120
  998. package/esm/util/types/index.js +90 -64
  999. package/esm/util/types/isAny.d.ts +11 -0
  1000. package/esm/util/types/isAny.js +1 -0
  1001. package/esm/util/types/mst.d.ts +71 -47
  1002. package/esm/util/types/mst.js +27 -22
  1003. package/esm/util/types/predicate.d.ts +9 -0
  1004. package/esm/util/types/predicate.js +1 -0
  1005. package/esm/util/types/renderingServices.d.ts +16 -0
  1006. package/esm/util/types/renderingServices.js +1 -0
  1007. package/esm/util/types/services.d.ts +55 -0
  1008. package/esm/util/types/services.js +10 -0
  1009. package/esm/util/types/util.d.ts +8 -2
  1010. package/esm/util/unknownSnapshotKeys.d.ts +36 -0
  1011. package/esm/util/unknownSnapshotKeys.js +69 -0
  1012. package/esm/util/unzip.d.ts +1 -0
  1013. package/esm/util/unzip.js +6 -0
  1014. package/esm/util/useEventCallback.d.ts +1 -0
  1015. package/esm/util/useEventCallback.js +16 -0
  1016. package/esm/util/useFeatureSequence.d.ts +13 -7
  1017. package/esm/util/useFeatureSequence.js +56 -78
  1018. package/esm/util/useFetch.d.ts +56 -0
  1019. package/esm/util/useFetch.js +188 -0
  1020. package/esm/util/useFetchPlugins.d.ts +12 -0
  1021. package/esm/util/useFetchPlugins.js +14 -0
  1022. package/esm/util/useMeasure.d.ts +11 -1
  1023. package/esm/util/useMeasure.js +20 -6
  1024. package/esm/util/usePanZoom.d.ts +75 -0
  1025. package/esm/util/usePanZoom.js +175 -0
  1026. package/esm/util/usePanelVirtualScroll.d.ts +37 -0
  1027. package/esm/util/usePanelVirtualScroll.js +42 -0
  1028. package/esm/util/usePointerDrag.d.ts +37 -0
  1029. package/esm/util/usePointerDrag.js +61 -0
  1030. package/esm/util/useRafCommit.d.ts +4 -0
  1031. package/esm/util/useRafCommit.js +50 -0
  1032. package/esm/util/useResizeDrag.d.ts +91 -0
  1033. package/esm/util/useResizeDrag.js +105 -0
  1034. package/esm/util/useRowVirtualScroll.d.ts +32 -0
  1035. package/esm/util/useRowVirtualScroll.js +63 -0
  1036. package/esm/util/useVirtualScrollWheel.d.ts +7 -0
  1037. package/esm/util/useVirtualScrollWheel.js +108 -0
  1038. package/esm/util/viewStatus.d.ts +81 -0
  1039. package/esm/util/viewStatus.js +37 -0
  1040. package/esm/util/virtualRange.d.ts +36 -0
  1041. package/esm/util/virtualRange.js +26 -0
  1042. package/esm/util/webStorage.d.ts +26 -0
  1043. package/esm/util/webStorage.js +92 -0
  1044. package/esm/util/wheelZoom.d.ts +59 -0
  1045. package/esm/util/wheelZoom.js +231 -0
  1046. package/esm/util/whenViewSettled.d.ts +40 -0
  1047. package/esm/util/whenViewSettled.js +41 -0
  1048. package/esm/util/withFeatureDetails.d.ts +34 -0
  1049. package/esm/util/withFeatureDetails.js +59 -0
  1050. package/esm/util/withLaunchInput.d.ts +123 -0
  1051. package/esm/util/withLaunchInput.js +228 -0
  1052. package/package.json +243 -820
  1053. package/esm/ReExports/DataGrid.d.ts +0 -1
  1054. package/esm/ReExports/DataGrid.js +0 -1
  1055. package/esm/configuration/util.d.ts +0 -10
  1056. package/esm/configuration/util.js +0 -123
  1057. package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
  1058. package/esm/data_adapters/util.d.ts +0 -1
  1059. package/esm/data_adapters/util.js +0 -6
  1060. package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
  1061. package/esm/pluggableElementTypes/GlyphType.js +0 -18
  1062. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
  1063. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
  1064. package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
  1065. package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
  1066. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
  1067. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
  1068. package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
  1069. package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
  1070. package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
  1071. package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
  1072. package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
  1073. package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
  1074. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
  1075. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
  1076. package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
  1077. package/esm/pluggableElementTypes/renderers/index.js +0 -6
  1078. package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
  1079. package/esm/pluggableElementTypes/renderers/util.js +0 -14
  1080. package/esm/rpc/baseRpcConfig.d.ts +0 -8
  1081. package/esm/rpc/baseRpcConfig.js +0 -10
  1082. package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
  1083. package/esm/rpc/mainThreadRpcConfig.js +0 -8
  1084. package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
  1085. package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
  1086. package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
  1087. package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
  1088. package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
  1089. package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
  1090. package/esm/rpc/methods/CoreRender.d.ts +0 -14
  1091. package/esm/rpc/methods/CoreRender.js +0 -40
  1092. package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
  1093. package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
  1094. package/esm/rpc/methods/util.d.ts +0 -15
  1095. package/esm/rpc/methods/util.js +0 -7
  1096. package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
  1097. package/esm/rpc/webWorkerRpcConfig.js +0 -8
  1098. package/esm/ui/MenuButton.d.ts +0 -1
  1099. package/esm/ui/MenuButton.js +0 -1
  1100. package/esm/ui/MenuItems.d.ts +0 -15
  1101. package/esm/ui/MenuItems.js +0 -59
  1102. package/esm/ui/useEvent.d.ts +0 -1
  1103. package/esm/ui/useEvent.js +0 -10
  1104. package/esm/util/blobToDataURL.d.ts +0 -1
  1105. package/esm/util/blobToDataURL.js +0 -14
  1106. package/esm/util/compositeMap.d.ts +0 -11
  1107. package/esm/util/compositeMap.js +0 -59
  1108. package/esm/util/flatqueue/index.d.ts +0 -11
  1109. package/esm/util/flatqueue/index.js +0 -61
  1110. package/esm/util/layouts/BaseLayout.d.ts +0 -30
  1111. package/esm/util/layouts/MultiLayout.d.ts +0 -12
  1112. package/esm/util/layouts/MultiLayout.js +0 -40
  1113. package/esm/util/layouts/PileupLayout.d.ts +0 -41
  1114. package/esm/util/layouts/PileupLayout.js +0 -202
  1115. package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
  1116. package/esm/util/layouts/PrecomputedLayout.js +0 -71
  1117. package/esm/util/layouts/SceneGraph.d.ts +0 -31
  1118. package/esm/util/layouts/SceneGraph.js +0 -121
  1119. package/esm/util/makeAbortableReaction.d.ts +0 -3
  1120. package/esm/util/makeAbortableReaction.js +0 -47
  1121. package/esm/util/map-obj/index.d.ts +0 -13
  1122. package/esm/util/map-obj/index.js +0 -92
  1123. package/esm/util/nextTick.d.ts +0 -1
  1124. package/esm/util/nextTick.js +0 -3
  1125. package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
  1126. package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
  1127. package/esm/util/offscreenCanvasUtils.d.ts +0 -12
  1128. package/esm/util/offscreenCanvasUtils.js +0 -19
  1129. package/esm/util/renderToAbstractCanvas.d.ts +0 -17
  1130. package/esm/util/renderToAbstractCanvas.js +0 -53
  1131. package/esm/util/transferables.d.ts +0 -2
  1132. package/esm/util/transferables.js +0 -35
  1133. package/esm/util/tss-react/mui/index.d.ts +0 -1
  1134. package/esm/util/tss-react/mui/index.js +0 -1
  1135. package/esm/util/tss-react/mui/mui.d.ts +0 -10
  1136. package/esm/util/tss-react/mui/mui.js +0 -5
  1137. package/esm/util/when.d.ts +0 -1
  1138. package/esm/util/when.js +0 -1
  1139. /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
  1140. /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
@@ -0,0 +1,94 @@
1
+ import type { AssemblyNameResolver } from './tracks.ts';
2
+ import type { AbstractSessionModel, SessionWithPublishTrackConf, TrackContainer } from './types/index.ts';
3
+ import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
4
+ /**
5
+ * Whether the target track list currently displays any of the track's
6
+ * assemblies, i.e. the track can be shown there after adding it.
7
+ *
8
+ * Both sides resolve through the aliases, because the two names meeting here
9
+ * come from different places: the container holds whatever the session opened
10
+ * the view on, and the config holds whatever its author wrote. `===` read a
11
+ * track configured against `hg38` as undisplayable in a view on `GRCh38`, so
12
+ * the add landed and nothing appeared, under a snackbar naming the assembly the
13
+ * user was looking at as one this view does not have open.
14
+ */
15
+ export declare function containerDisplaysAssembly(container: {
16
+ assemblyNames?: readonly string[];
17
+ } | undefined, assemblyNames: readonly (string | undefined)[] | undefined, assemblyManager: AssemblyNameResolver): boolean;
18
+ /** the slice of the add-track widget every workflow's submit path writes to */
19
+ export interface AddTrackWidgetSelf extends IStateTreeNode {
20
+ /**
21
+ * Where a submitted track opens: the view, or one track list within it when
22
+ * the widget was opened from a synteny level's track selector. Not the same
23
+ * as `view` — a workflow reaching past this for `view` adds the track to the
24
+ * wrong list.
25
+ */
26
+ trackContainer: TrackContainer | undefined;
27
+ clearData: () => void;
28
+ }
29
+ /**
30
+ * The slice of the add-track widget a whole workflow gets: the submit path
31
+ * above plus the assembly it writes into. Structural rather than the widget's
32
+ * own model type, so a plugin contributing a workflow doesn't take a package
33
+ * dependency on the plugin that owns the widget.
34
+ */
35
+ export interface AddTrackWorkflowModel extends AddTrackWidgetSelf {
36
+ assembly: string | undefined;
37
+ setAssembly: (arg: string) => void;
38
+ }
39
+ /**
40
+ * Reset the form and dismiss the widget after a successful add.
41
+ *
42
+ * Only ever on an add that landed something: finishing throws away what the
43
+ * user assembled, so doing it when every config was rejected buries the
44
+ * snackbars explaining why behind an empty form with nothing to retry from.
45
+ */
46
+ export declare function finishAddTrack(model: AddTrackWidgetSelf, session: AbstractSessionModel): void;
47
+ /**
48
+ * Add one track config from an add-track workflow, reveal it, and dismiss the
49
+ * widget — the tail every workflow shares, so all of them decide "show vs.
50
+ * warn vs. dismiss" the same way.
51
+ *
52
+ * Three things a workflow doing this by hand has got wrong:
53
+ *
54
+ * - It shows the track in `model.view`, which is the wrong list when the widget
55
+ * was opened from a synteny level's track selector. `trackContainer` is the
56
+ * target.
57
+ * - It shows a track whose assembly the container doesn't display, which is
58
+ * silently nothing on screen. Say so instead.
59
+ * - It dismisses the widget even when `publishTrackConf` rejected the config,
60
+ * wiping the form behind the error snackbar.
61
+ *
62
+ * **A track on an assembly the view synthesized takes neither destination.** The
63
+ * widget reads its assembly off the containing view and offers no choice of one
64
+ * outside it (`setAssembly` lists `session.assemblyNames`, which excludes the
65
+ * temporary ones), so a user opening a file in a read-vs-ref panel arrives here
66
+ * naming an assembly that goes back when that view closes — and a session list
67
+ * would keep the config, once per file, in the snapshot they save and share.
68
+ * That is ADR-084's leak reached through the widget rather than through a
69
+ * launcher, so it takes ADR-084's answer: the config rides on the track as
70
+ * `showTrack`'s `inlineConf`, works for the life of the view, and goes out with
71
+ * it. The container is the one this assembly came from, so it displays it.
72
+ *
73
+ * Returns the added config, or undefined when `publishTrackConf` rejected it — it
74
+ * has already surfaced its own error, and a second, vaguer snackbar on top of
75
+ * that helps nobody.
76
+ */
77
+ export declare function addTrackFromWidget({ model, session, conf, }: {
78
+ model: AddTrackWidgetSelf;
79
+ session: AbstractSessionModel;
80
+ conf: Parameters<SessionWithPublishTrackConf['publishTrackConf']>[0] & {
81
+ trackId: string;
82
+ name?: string;
83
+ assemblyNames?: (string | undefined)[];
84
+ };
85
+ }): (import("@jbrowse/mobx-state-tree").$EmptyObjectBrand & Partial<{
86
+ [x: string]: any;
87
+ }> & {
88
+ trackId: string;
89
+ name?: string;
90
+ assemblyNames?: (string | undefined)[];
91
+ }) | (import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
92
+ setSubschema(slotName: string, data: Record<string, unknown>): any;
93
+ setSlot(slotName: string, value: unknown): void;
94
+ } & IStateTreeNode<import("../configuration/types.ts").AnyConfigurationSchemaType>) | undefined;
@@ -0,0 +1,90 @@
1
+ import { namesTemporaryAssembly } from './temporaryAssembly.js';
2
+ import { isSameAssemblyName } from './tracks.js';
3
+ import { isSessionModelWithWidgets, isSessionWithPublishTrackConf, } from './types/index.js';
4
+ /**
5
+ * Whether the target track list currently displays any of the track's
6
+ * assemblies, i.e. the track can be shown there after adding it.
7
+ *
8
+ * Both sides resolve through the aliases, because the two names meeting here
9
+ * come from different places: the container holds whatever the session opened
10
+ * the view on, and the config holds whatever its author wrote. `===` read a
11
+ * track configured against `hg38` as undisplayable in a view on `GRCh38`, so
12
+ * the add landed and nothing appeared, under a snackbar naming the assembly the
13
+ * user was looking at as one this view does not have open.
14
+ */
15
+ export function containerDisplaysAssembly(container, assemblyNames, assemblyManager) {
16
+ return !!container?.assemblyNames?.some(a => assemblyNames?.some(b => isSameAssemblyName(a, b, assemblyManager)));
17
+ }
18
+ /**
19
+ * Reset the form and dismiss the widget after a successful add.
20
+ *
21
+ * Only ever on an add that landed something: finishing throws away what the
22
+ * user assembled, so doing it when every config was rejected buries the
23
+ * snackbars explaining why behind an empty form with nothing to retry from.
24
+ */
25
+ export function finishAddTrack(model, session) {
26
+ model.clearData();
27
+ if (isSessionModelWithWidgets(session)) {
28
+ session.hideWidget(model);
29
+ }
30
+ }
31
+ /**
32
+ * Add one track config from an add-track workflow, reveal it, and dismiss the
33
+ * widget — the tail every workflow shares, so all of them decide "show vs.
34
+ * warn vs. dismiss" the same way.
35
+ *
36
+ * Three things a workflow doing this by hand has got wrong:
37
+ *
38
+ * - It shows the track in `model.view`, which is the wrong list when the widget
39
+ * was opened from a synteny level's track selector. `trackContainer` is the
40
+ * target.
41
+ * - It shows a track whose assembly the container doesn't display, which is
42
+ * silently nothing on screen. Say so instead.
43
+ * - It dismisses the widget even when `publishTrackConf` rejected the config,
44
+ * wiping the form behind the error snackbar.
45
+ *
46
+ * **A track on an assembly the view synthesized takes neither destination.** The
47
+ * widget reads its assembly off the containing view and offers no choice of one
48
+ * outside it (`setAssembly` lists `session.assemblyNames`, which excludes the
49
+ * temporary ones), so a user opening a file in a read-vs-ref panel arrives here
50
+ * naming an assembly that goes back when that view closes — and a session list
51
+ * would keep the config, once per file, in the snapshot they save and share.
52
+ * That is ADR-084's leak reached through the widget rather than through a
53
+ * launcher, so it takes ADR-084's answer: the config rides on the track as
54
+ * `showTrack`'s `inlineConf`, works for the life of the view, and goes out with
55
+ * it. The container is the one this assembly came from, so it displays it.
56
+ *
57
+ * Returns the added config, or undefined when `publishTrackConf` rejected it — it
58
+ * has already surfaced its own error, and a second, vaguer snackbar on top of
59
+ * that helps nobody.
60
+ */
61
+ export function addTrackFromWidget({ model, session, conf, }) {
62
+ if (!isSessionWithPublishTrackConf(session)) {
63
+ throw new Error("Can't add tracks to this session");
64
+ }
65
+ const { trackContainer } = model;
66
+ if (namesTemporaryAssembly(session, conf)) {
67
+ if (!trackContainer) {
68
+ session.notify(`Could not add "${conf.name ?? conf.trackId}": the view it was being added to has closed, and it uses an assembly that only that view had.`, 'warning');
69
+ return undefined;
70
+ }
71
+ void trackContainer.launchTrack(conf.trackId, {}, {}, conf);
72
+ finishAddTrack(model, session);
73
+ return conf;
74
+ }
75
+ const added = session.publishTrackConf(conf);
76
+ if (!added) {
77
+ return undefined;
78
+ }
79
+ if (containerDisplaysAssembly(trackContainer, conf.assemblyNames, session.assemblyManager)) {
80
+ void trackContainer?.launchTrack(conf.trackId);
81
+ }
82
+ else {
83
+ const assemblies = conf.assemblyNames?.filter(a => !!a) ?? [];
84
+ session.notify(`Added track "${conf.name ?? conf.trackId}" to the session, but it was not displayed because it uses ${assemblies.length
85
+ ? `assembly "${assemblies.join('", "')}"`
86
+ : 'an assembly'}, which is not open in this view. Open a view for that assembly and use its track selector to display it.`, 'warning');
87
+ }
88
+ finishAddTrack(model, session);
89
+ return added;
90
+ }
@@ -1,3 +1,32 @@
1
- export declare function writeAWSAnalytics(rootModel: any, initialTimeStamp: number, sessionQuery?: string | null): Promise<void>;
2
- export declare function writeGAAnalytics(rootModel: any, initialTimestamp: number): Promise<void>;
3
- export declare function doAnalytics(rootModel: any, initialTimestamp: number, initialSessionQuery: string | null | undefined): void;
1
+ import type { AnyConfigurationModel } from '../configuration/index.ts';
2
+ declare global {
3
+ interface Window {
4
+ ga?: (...args: unknown[]) => void;
5
+ }
6
+ }
7
+ type TrackConfig = AnyConfigurationModel & {
8
+ type: string;
9
+ };
10
+ interface AnalyticsRootModel {
11
+ jbrowse: {
12
+ tracks: TrackConfig[];
13
+ assemblies: unknown[];
14
+ plugins?: {
15
+ name?: string;
16
+ }[];
17
+ };
18
+ session?: {
19
+ sessionTracks: TrackConfig[];
20
+ views: unknown[];
21
+ };
22
+ version: string;
23
+ }
24
+ type AnalyticsRootModelWithConfig = AnalyticsRootModel & {
25
+ jbrowse: {
26
+ configuration: AnyConfigurationModel;
27
+ };
28
+ };
29
+ export declare function writeAWSAnalytics(rootModel: AnalyticsRootModel, initialTimestamp: number, sessionQuery?: string | null): Promise<void>;
30
+ export declare function writeGAAnalytics(rootModel: AnalyticsRootModel, initialTimestamp: number): Promise<void>;
31
+ export declare function doAnalytics(rootModel: AnalyticsRootModelWithConfig | undefined, initialTimestamp: number, initialSessionQuery: string | null | undefined): void;
32
+ export {};
@@ -1,80 +1,133 @@
1
- import { readConfObject } from "../configuration/index.js";
2
- import { isElectron } from "../util/index.js";
3
- export async function writeAWSAnalytics(rootModel, initialTimeStamp, sessionQuery) {
1
+ import { effectiveRenderer, getGraphicsCapabilities, } from '@jbrowse/render-core/graphicsCapabilities';
2
+ import { readConfObject } from '../configuration/index.js';
3
+ import { isElectron, rIC } from '../util/index.js';
4
+ // Both writers are fire-and-forget from several call sites, so they swallow
5
+ // their own failures rather than rejecting: a floating rejected promise trips
6
+ // the webpack-dev-server overlay (it listens for unhandledrejection), and an
7
+ // analytics ping is never worth interrupting a session for.
8
+ export async function writeAWSAnalytics(rootModel, initialTimestamp, sessionQuery) {
4
9
  try {
5
10
  const url = 'https://analytics.jbrowse.org/api/v1';
6
- const multiAssemblyTracks = rootModel.jbrowse.tracks.filter((track) => (readConfObject(track, 'assemblyNames') || []).length > 1).length;
7
- const savedSessionCount = Object.keys(localStorage).filter(name => name.includes('localSaved-')).length;
11
+ const multiAssemblyTracks = rootModel.jbrowse.tracks.filter(track => readConfObject(track, 'assemblyNames').length > 1).length;
12
+ // which rendering backend is actually drawing (WebGPU/WebGL2/Canvas2D) —
13
+ // capabilities *and* any page-wide pin, so a session that fell back to
14
+ // Canvas2D is counted as Canvas2D rather than as what the hardware could
15
+ // have done. Reporting the capability answer here is what made "how many
16
+ // users end up on Canvas2D" unanswerable.
17
+ const capabilities = await getGraphicsCapabilities();
18
+ const renderer = effectiveRenderer(capabilities);
19
+ // The coarse bit only. `glRenderer` names the exact driver and stays local
20
+ // to the stack-trace dialog, the same line vendor/architecture hold — this
21
+ // says whether a WebGL2 user is on a rasterizer, which is the population
22
+ // that pays ~25x Canvas2D on the main thread and the number that decides
23
+ // whether the ladder should route around it. 'unknown' where nothing probed
24
+ // or the browser withholds the extension, which must not read as 'false'.
25
+ const softwareRendering = capabilities.softwareWebgl ?? 'unknown';
8
26
  const { jbrowse: config, session, version: ver } = rootModel;
9
27
  const { tracks, assemblies, plugins } = config;
28
+ // stats to be recorded in db
10
29
  const stats = {
11
30
  ver,
12
- 'plugins-count': plugins?.length || 0,
13
- 'plugin-names': plugins?.map((p) => p.name).join(','),
31
+ 'plugins-count': plugins?.length ?? 0,
32
+ 'plugin-names': plugins?.map(p => p.name).join(','),
14
33
  'assemblies-count': assemblies.length,
15
34
  'tracks-count': tracks.length,
16
- 'session-tracks-count': session?.sessionTracks.length || 0,
17
- 'open-views': session?.views.length || 0,
35
+ 'session-tracks-count': session?.sessionTracks.length ?? 0,
36
+ 'open-views': session?.views.length ?? 0,
18
37
  'synteny-tracks-count': multiAssemblyTracks,
19
- 'saved-sessions-count': savedSessionCount,
20
- 'existing-session-param-type': sessionQuery?.split('-')[0] || 'none',
38
+ // No `saved-sessions-count`: it counted localStorage keys matching
39
+ // `localSaved-`, a format nothing has written since autosaved sessions
40
+ // moved to IndexedDB (`sessionsDB`), so it reported 0 for every user. The
41
+ // live count is `savedSessionMetadata`, which is web-only and populated by
42
+ // an async open — reporting it here would race the boot rather than
43
+ // measure anything, so the field is gone instead of re-sourced.
44
+ // field if existing session param in query before autogenerated param
45
+ 'existing-session-param-type': sessionQuery?.split('-', 1)[0] || 'none',
46
+ // screen geometry
21
47
  'scn-h': window.screen.height,
22
48
  'scn-w': window.screen.width,
49
+ // window geometry
23
50
  'win-h': window.innerHeight,
24
51
  'win-w': window.innerWidth,
52
+ dpr: window.devicePixelRatio,
25
53
  electron: isElectron,
26
- loadTime: (Date.now() - initialTimeStamp) / 1000,
54
+ renderer,
55
+ 'software-rendering': softwareRendering,
56
+ loadTime: (Date.now() - initialTimestamp) / 1000,
27
57
  jb2: true,
28
58
  };
29
- tracks.forEach((track) => {
59
+ // tallies get processed in the lambda, keyed as e.g. track-types-FeatureTrack
60
+ const trackTypeCounts = {};
61
+ for (const track of tracks) {
30
62
  const key = `track-types-${track.type}`;
31
- stats[key] = stats[key] + 1 || 1;
32
- });
33
- session?.sessionTracks.forEach((track) => {
63
+ trackTypeCounts[key] = (trackTypeCounts[key] ?? 0) + 1;
64
+ }
65
+ const sessionTrackTypeCounts = {};
66
+ for (const track of session?.sessionTracks ?? []) {
34
67
  const key = `sessionTrack-types-${track.type}`;
35
- stats[key] = stats[key] + 1 || 1;
36
- });
37
- const qs = Object.keys(stats)
38
- .map(key => `${key}=${stats[key]}`)
39
- .join('&');
68
+ sessionTrackTypeCounts[key] = (sessionTrackTypeCounts[key] ?? 0) + 1;
69
+ }
70
+ Object.assign(stats, trackTypeCounts, sessionTrackTypeCounts);
71
+ const qs = new URLSearchParams(Object.entries(stats).map(([key, value]) => [key, String(value)])).toString();
40
72
  await fetch(`${url}?${qs}`);
41
73
  }
42
74
  catch (e) {
43
- console.error('Failed to write analytics to AWS.', e);
75
+ console.warn('Failed to write analytics to AWS.', e);
44
76
  }
45
77
  }
46
78
  export async function writeGAAnalytics(rootModel, initialTimestamp) {
47
- const jbrowseUser = 'UA-7115575-5';
48
- const stats = {
49
- 'tracks-count': rootModel.jbrowse.tracks.length,
50
- ver: rootModel.version,
51
- electron: isElectron,
52
- loadTime: Date.now() - initialTimestamp,
53
- pluginNames: rootModel.jbrowse.plugins?.map((plugin) => plugin.name) || '',
54
- };
55
- let analyticsScript = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){";
56
- analyticsScript +=
57
- '(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),';
58
- analyticsScript +=
59
- 'm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)';
60
- analyticsScript +=
61
- "})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');";
62
- analyticsScript += `ga('create', '${jbrowseUser}', 'auto', 'jbrowseTracker');`;
63
- const gaData = {};
64
- const googleDimensions = 'tracks-count ver electron loadTime pluginNames';
65
- for (const [index, key] of googleDimensions.split(/\s+/).entries()) {
66
- gaData[`dimension${index + 1}`] = stats[key];
79
+ try {
80
+ const jbrowseUser = 'UA-7115575-5';
81
+ const loadTime = Date.now() - initialTimestamp;
82
+ // custom dimension/metric indices are wired up on the GA property side, so
83
+ // this order (tracks-count, ver, electron, loadTime, pluginNames) must stay
84
+ // dimension1..5
85
+ const gaData = {
86
+ dimension1: rootModel.jbrowse.tracks.length, // this is all possible tracks
87
+ dimension2: rootModel.version,
88
+ dimension3: isElectron,
89
+ dimension4: loadTime,
90
+ dimension5: rootModel.jbrowse.plugins?.map(p => p.name).join(',') ?? '',
91
+ metric1: Math.round(loadTime),
92
+ };
93
+ // Plugin names come from the loaded config and are not trusted content (a
94
+ // config can be loaded from an arbitrary URL). Only this static bootstrap,
95
+ // with no interpolated data, is ever parsed as script source; gaData is
96
+ // handed to ga() as a real JS value afterward so untrusted strings can never
97
+ // break out of the <script> tag the way interpolating them into it would.
98
+ const analyticsBootstrap = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){" +
99
+ '(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),' +
100
+ 'm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)' +
101
+ "})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');";
102
+ const analyticsScriptNode = document.createElement('script');
103
+ analyticsScriptNode.innerHTML = analyticsBootstrap;
104
+ document.head.append(analyticsScriptNode);
105
+ window.ga?.('create', jbrowseUser, 'auto', 'jbrowseTracker');
106
+ window.ga?.('jbrowseTracker.send', 'pageview', gaData);
107
+ }
108
+ catch (e) {
109
+ console.warn('Failed to write analytics to GA.', e);
67
110
  }
68
- gaData.metric1 = Math.round(stats.loadTime);
69
- analyticsScript += `ga('jbrowseTracker.send', 'pageview',${JSON.stringify(gaData)});`;
70
- const analyticsScriptNode = document.createElement('script');
71
- analyticsScriptNode.innerHTML = analyticsScript;
72
- document.getElementsByTagName('head')[0].append(analyticsScriptNode);
73
111
  }
112
+ // One pageview per page load, not per pluginManager. jbrowse-web rebuilds the
113
+ // whole pluginManager (and rootModel) whenever plugins change, and StrictMode
114
+ // builds it twice on mount — without this guard each rebuild re-pings AWS and
115
+ // appends another Google Analytics <script> to <head>, inflating pageviews and
116
+ // growing the document on every plugin install.
117
+ let analyticsSent = false;
74
118
  export function doAnalytics(rootModel, initialTimestamp, initialSessionQuery) {
75
119
  if (rootModel &&
120
+ !analyticsSent &&
76
121
  !readConfObject(rootModel.jbrowse.configuration, 'disableAnalytics')) {
77
- writeAWSAnalytics(rootModel, initialTimestamp, initialSessionQuery);
78
- writeGAAnalytics(rootModel, initialTimestamp);
122
+ analyticsSent = true;
123
+ // Defer off the critical load path: writeGAAnalytics injects a third-party
124
+ // Google Analytics script and writeAWSAnalytics probes graphics
125
+ // capabilities, together ~hundreds of ms of main-thread work at startup.
126
+ // loadTime is still measured from initialTimestamp, so the reported metric
127
+ // is unaffected by running these when the browser is idle.
128
+ rIC(() => {
129
+ void writeAWSAnalytics(rootModel, initialTimestamp, initialSessionQuery);
130
+ void writeGAAnalytics(rootModel, initialTimestamp);
131
+ });
79
132
  }
80
133
  }
@@ -0,0 +1,17 @@
1
+ import type { AnimationMode } from './types/index.ts';
2
+ /**
3
+ * Whether a motion may play at all, before anything about what would move is
4
+ * consulted: a frame clock has to exist, and the resolved animation mode has to
5
+ * allow motion — 'enabled' always does, 'disabled' never does, and 'system'
6
+ * honors the OS prefers-reduced-motion setting, so reduced-motion users get
7
+ * instant snaps unless they explicitly opt in. The mode comes from the session
8
+ * preference (`configuration.preferences.animationMode` + user override), which
9
+ * is `getSession(self).animationMode`.
10
+ *
11
+ * In core rather than beside either caller because the two that ask are a
12
+ * feature-layout morph in the canvas plugin and a viewport flight in the LGV,
13
+ * and a second copy of this check is a second answer to "does this user want
14
+ * motion" — the one a reduced-motion reader notices when only half the app
15
+ * honors it.
16
+ */
17
+ export declare function animationAllowed(mode: AnimationMode): boolean;
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Whether a motion may play at all, before anything about what would move is
3
+ * consulted: a frame clock has to exist, and the resolved animation mode has to
4
+ * allow motion — 'enabled' always does, 'disabled' never does, and 'system'
5
+ * honors the OS prefers-reduced-motion setting, so reduced-motion users get
6
+ * instant snaps unless they explicitly opt in. The mode comes from the session
7
+ * preference (`configuration.preferences.animationMode` + user override), which
8
+ * is `getSession(self).animationMode`.
9
+ *
10
+ * In core rather than beside either caller because the two that ask are a
11
+ * feature-layout morph in the canvas plugin and a viewport flight in the LGV,
12
+ * and a second copy of this check is a second answer to "does this user want
13
+ * motion" — the one a reduced-motion reader notices when only half the app
14
+ * honors it.
15
+ */
16
+ export function animationAllowed(mode) {
17
+ const hasFrameClock = typeof requestAnimationFrame === 'function';
18
+ const prefersReduced = typeof matchMedia === 'function' &&
19
+ matchMedia('(prefers-reduced-motion: reduce)').matches;
20
+ return (hasFrameClock &&
21
+ (mode === 'enabled' || (mode === 'system' && !prefersReduced)));
22
+ }
@@ -0,0 +1,10 @@
1
+ interface RowResizeTarget {
2
+ effectiveRowHeight: number;
3
+ scrollTop: number;
4
+ nrow: number;
5
+ viewportHeight: number;
6
+ setRowHeight: (n: number) => void;
7
+ setScrollTop: (n: number) => void;
8
+ }
9
+ export declare function applyRowResizeWheel(e: WheelEvent, el: HTMLElement, model: RowResizeTarget): void;
10
+ export {};
@@ -0,0 +1,34 @@
1
+ // shift+wheel resizes the sample rows (a vertical-zoom gesture) rather than
2
+ // scrolling, keeping the row under the cursor pinned in place as the height
3
+ // changes. Shared by every row-stack display — both variant displays and MAF —
4
+ // so the gesture stays identical wherever rows have a resolved height and a
5
+ // scroll offset. setScrollTop clamps to the new scrollableHeight, so the raw
6
+ // target is passed through unclamped.
7
+ import { normalizeWheelDelta } from './wheelZoom.js';
8
+ const MAX_ROW_HEIGHT = 20;
9
+ // px of row-height change per pixel of normalized wheel scroll. A mouse notch
10
+ // (~100px) nudges the height ~0.4px; a trackpad's small continuous deltas
11
+ // accumulate smoothly instead of the old sign-based ±1-per-event, which flew
12
+ // through the whole range on a trackpad's event flood.
13
+ const RESIZE_PX_PER_WHEEL_PX = 1 / 240;
14
+ export function applyRowResizeWheel(e, el, model) {
15
+ e.preventDefault();
16
+ // scroll up (deltaY < 0) grows rows; proportional to the normalized delta so
17
+ // the speed is consistent across mice/trackpads and finer than ±1/event.
18
+ const delta = -normalizeWheelDelta(e.deltaY, e.deltaMode) * RESIZE_PX_PER_WHEEL_PX;
19
+ // guard nrow=0 (no samples) so the auto-fit floor stays finite
20
+ const minRowHeight = model.viewportHeight / Math.max(1, model.nrow);
21
+ // The cap may stop the gesture going further; it may never move the rows on
22
+ // its own. So both heights that can already sit above MAX_ROW_HEIGHT raise
23
+ // it: the auto-fit floor (few samples), and the current height (a pinned
24
+ // `rowHeight` — the config slot and the "Custom..." dialog are both
25
+ // unbounded, and MAF's own docs example is 12 while a bases-mode row wants
26
+ // more). Without the second, a 40px pinned row met `min(20, 40.4)` on the
27
+ // first notch of a *grow* gesture and halved.
28
+ const maxRowHeight = Math.max(MAX_ROW_HEIGHT, minRowHeight, model.effectiveRowHeight);
29
+ const newRowHeight = Math.max(minRowHeight, Math.min(maxRowHeight, model.effectiveRowHeight + delta));
30
+ const mouseY = e.clientY - el.getBoundingClientRect().top;
31
+ const rowUnderMouse = (mouseY + model.scrollTop) / model.effectiveRowHeight;
32
+ model.setRowHeight(newRowHeight);
33
+ model.setScrollTop(rowUnderMouse * newRowHeight - mouseY);
34
+ }
@@ -0,0 +1,144 @@
1
+ import type { FileLocation } from './types/data.ts';
2
+ export declare const adapterTypes: readonly ['IndexedFastaAdapter', 'BgzipFastaAdapter', 'FastaAdapter', 'TwoBitAdapter', 'ChromSizesAdapter'];
3
+ export type AdapterType = (typeof adapterTypes)[number];
4
+ export declare const adapterLabels: Record<AdapterType, string>;
5
+ export declare function adapterHasSequence(adapterSelection: AdapterType): adapterSelection is "BgzipFastaAdapter" | "FastaAdapter" | "IndexedFastaAdapter" | "TwoBitAdapter";
6
+ export interface FormState {
7
+ adapterSelection: AdapterType;
8
+ assemblyName: string;
9
+ assemblyDisplayName: string;
10
+ fastaLocation: FileLocation;
11
+ faiLocation: FileLocation;
12
+ gziLocation: FileLocation;
13
+ twoBitLocation: FileLocation;
14
+ chromSizesLocation: FileLocation;
15
+ refNameAliasesLocation: FileLocation;
16
+ cytobandsLocation: FileLocation;
17
+ }
18
+ export type LocationField = {
19
+ [K in keyof FormState]: FormState[K] extends FileLocation ? K : never;
20
+ }[keyof FormState];
21
+ export declare const sidecarRoles: readonly ['fai', 'gzi'];
22
+ export type SidecarRole = (typeof sidecarRoles)[number];
23
+ export declare const sidecars: {
24
+ readonly fai: {
25
+ readonly field: 'faiLocation';
26
+ readonly ext: '.fai';
27
+ readonly label: 'FASTA index (.fai) file';
28
+ };
29
+ readonly gzi: {
30
+ readonly field: 'gziLocation';
31
+ readonly ext: '.gzi';
32
+ readonly label: 'FASTA gzip index (.gzi) file';
33
+ };
34
+ };
35
+ export declare function makeSetField(setForm: (update: (prev: FormState) => FormState) => void): <K extends keyof FormState>(key: K) => (value: FormState[K]) => void;
36
+ export declare function initialFormState(): FormState;
37
+ export declare function applyPrimaryFile(state: FormState, location: FileLocation): FormState;
38
+ export declare function applyTwoBitFile(state: FormState, location: FileLocation): FormState;
39
+ export declare function clearFormFields(state: FormState): FormState;
40
+ export declare function clearSequenceFiles(state: FormState): FormState;
41
+ export declare function getBaseAssemblyConfig(state: FormState): {
42
+ name: string;
43
+ displayName?: string | undefined;
44
+ refNameAliases?: {
45
+ adapter: {
46
+ type: string;
47
+ location: FileLocation;
48
+ };
49
+ } | undefined;
50
+ cytobands?: {
51
+ adapter: {
52
+ type: string;
53
+ cytobandLocation: FileLocation;
54
+ };
55
+ } | undefined;
56
+ };
57
+ export type AssemblyAdapter = {
58
+ type: 'IndexedFastaAdapter';
59
+ fastaLocation: FileLocation;
60
+ faiLocation: FileLocation;
61
+ } | {
62
+ type: 'BgzipFastaAdapter';
63
+ fastaLocation: FileLocation;
64
+ faiLocation: FileLocation;
65
+ gziLocation: FileLocation;
66
+ } | {
67
+ type: 'UnindexedFastaAdapter';
68
+ fastaLocation: FileLocation;
69
+ } | {
70
+ type: 'TwoBitAdapter';
71
+ twoBitLocation: FileLocation;
72
+ chromSizesLocation?: FileLocation;
73
+ } | {
74
+ type: 'ChromSizesAdapter';
75
+ chromSizesLocation: FileLocation;
76
+ };
77
+ export type AssemblyConf = ReturnType<typeof getBaseAssemblyConfig> & {
78
+ sequence: {
79
+ type: 'ReferenceSequenceTrack';
80
+ trackId: string;
81
+ adapter: AssemblyAdapter;
82
+ };
83
+ };
84
+ export declare function isBlank(location: FileLocation): boolean;
85
+ export declare function formHasSequence(form: FormState): boolean;
86
+ export declare function getAssemblyName(form: FormState): string;
87
+ export declare function getMissingSidecars(form: FormState): ({
88
+ readonly field: 'faiLocation';
89
+ readonly ext: '.fai';
90
+ readonly label: 'FASTA index (.fai) file';
91
+ } | {
92
+ readonly field: 'gziLocation';
93
+ readonly ext: '.gzi';
94
+ readonly label: 'FASTA gzip index (.gzi) file';
95
+ })[];
96
+ export declare function isFormReady(form: FormState): boolean;
97
+ export declare function isFormDirty(form: FormState): boolean;
98
+ export declare function partitionExtraLocations(form: FormState): {
99
+ used: FileLocation[];
100
+ unused: FileLocation[];
101
+ };
102
+ export declare function getAssemblyNameFromFilename(filename: string): string;
103
+ export declare function detectAdapterType(filename: string): AdapterType | undefined;
104
+ export type FileRole = 'fasta' | 'fastaGz' | 'fai' | 'gzi' | 'twoBit' | 'chromSizes' | 'cytobands' | 'refNameAliases';
105
+ export declare function classifyFilename(filename: string): FileRole | undefined;
106
+ export declare function classifyAssemblyFiles(locations: FileLocation[]): Partial<FormState>;
107
+ export declare function isSequenceRole(role: FileRole | undefined): boolean;
108
+ export interface ClassifiedLocation {
109
+ location: FileLocation;
110
+ role: FileRole | undefined;
111
+ }
112
+ export declare function classifyLocations(locations: FileLocation[]): ClassifiedLocation[];
113
+ /**
114
+ * Rebuild the file-location fields (plus adapter/name) of `state` from a freshly
115
+ * classified set of dropped/pasted files.
116
+ *
117
+ * The file set is authoritative: a field it says nothing about resets, so
118
+ * deleting a URL from the box clears the slot it filled. `edited` is the way out
119
+ * — the fields the user set by hand, which the classifier never gets to answer
120
+ * for. Without it, typing a .fai into the "this format needs its index" input
121
+ * and then adding one more URL wiped the .fai and the pane re-asked for it.
122
+ *
123
+ * refName aliases and cytobands merge instead of resetting even when untouched:
124
+ * they are the two slots "More options" also fills, and no file set that omits
125
+ * them is making a claim about them.
126
+ */
127
+ export declare function applyClassifiedFiles(state: FormState, locations: FileLocation[], edited: ReadonlySet<keyof FormState>): FormState;
128
+ export declare function buildAssemblyConf(form: FormState, resolveFastaAdapter: (fastaLocation: FileLocation) => Promise<AssemblyAdapter> | AssemblyAdapter): Promise<AssemblyConf>;
129
+ export declare function urlTextToLocations(text: string): FileLocation[];
130
+ export type AdapterConfigResult = {
131
+ kind: 'ready';
132
+ adapter: AssemblyAdapter;
133
+ } | {
134
+ kind: 'needsFastaIndex';
135
+ fastaLocation: FileLocation;
136
+ };
137
+ export declare function getAdapterConfig({ adapterSelection, fastaLocation, faiLocation, gziLocation, twoBitLocation, chromSizesLocation, }: {
138
+ adapterSelection: AdapterType;
139
+ fastaLocation: FileLocation;
140
+ faiLocation: FileLocation;
141
+ gziLocation: FileLocation;
142
+ twoBitLocation: FileLocation;
143
+ chromSizesLocation: FileLocation;
144
+ }): AdapterConfigResult;