@jbrowse/core 4.2.1 → 5.0.0-beta.1

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 (1124) hide show
  1. package/README.md +783 -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 +40 -40
  113. package/esm/PluginLoader.js +166 -82
  114. package/esm/PluginManager.d.ts +368 -55
  115. package/esm/PluginManager.js +326 -85
  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 +84 -65
  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/TextSearch/BaseResults.d.ts +20 -21
  135. package/esm/TextSearch/BaseResults.js +8 -33
  136. package/esm/TextSearch/TextSearchManager.d.ts +14 -34
  137. package/esm/TextSearch/TextSearchManager.js +87 -34
  138. package/esm/assemblyManager/assembly.d.ts +307 -34
  139. package/esm/assemblyManager/assembly.js +551 -262
  140. package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
  141. package/esm/assemblyManager/assemblyAdapters.js +18 -0
  142. package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
  143. package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
  144. package/esm/assemblyManager/assemblyManager.d.ts +711 -303
  145. package/esm/assemblyManager/assemblyManager.js +351 -46
  146. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
  147. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
  148. package/esm/assemblyManager/geneticCodes.d.ts +21 -0
  149. package/esm/assemblyManager/geneticCodes.js +47 -0
  150. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
  151. package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
  152. package/esm/assemblyManager/index.d.ts +1 -1
  153. package/esm/assemblyManager/index.js +2 -2
  154. package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
  155. package/esm/assemblyManager/loadRefNameMap.js +80 -0
  156. package/esm/assemblyManager/refNameColors.d.ts +1 -0
  157. package/esm/assemblyManager/refNameColors.js +32 -0
  158. package/esm/assemblyManager/refNameMaps.d.ts +26 -0
  159. package/esm/assemblyManager/refNameMaps.js +87 -0
  160. package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
  161. package/esm/assemblyManager/refNameMismatch.js +66 -0
  162. package/esm/checkPlugins.d.ts +11 -0
  163. package/esm/checkPlugins.js +77 -0
  164. package/esm/configuration/configurationSchema.d.ts +154 -19
  165. package/esm/configuration/configurationSchema.js +359 -138
  166. package/esm/configuration/configurationSlot.d.ts +283 -30
  167. package/esm/configuration/configurationSlot.js +205 -226
  168. package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
  169. package/esm/configuration/formatAboutConfigSchema.js +58 -0
  170. package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
  171. package/esm/configuration/formatDetailsConfigSchema.js +90 -0
  172. package/esm/configuration/fullConfSnapshot.d.ts +28 -0
  173. package/esm/configuration/fullConfSnapshot.js +66 -0
  174. package/esm/configuration/getConf.d.ts +88 -0
  175. package/esm/configuration/getConf.js +74 -0
  176. package/esm/configuration/index.d.ts +19 -3
  177. package/esm/configuration/index.js +19 -2
  178. package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
  179. package/esm/configuration/mergeFormatCallbacks.js +24 -0
  180. package/esm/configuration/promotableDefaults.d.ts +199 -0
  181. package/esm/configuration/promotableDefaults.js +326 -0
  182. package/esm/configuration/promotablePin.d.ts +55 -0
  183. package/esm/configuration/promotableResolve.d.ts +108 -0
  184. package/esm/configuration/promotableResolve.js +117 -0
  185. package/esm/configuration/promotableSlots.d.ts +12 -0
  186. package/esm/configuration/promotableSlots.js +45 -0
  187. package/esm/configuration/readConfObject.d.ts +56 -0
  188. package/esm/configuration/readConfObject.js +161 -0
  189. package/esm/configuration/schemaRegistry.d.ts +35 -0
  190. package/esm/configuration/schemaRegistry.js +50 -0
  191. package/esm/configuration/schemaTypes.d.ts +23 -0
  192. package/esm/configuration/schemaTypes.js +94 -0
  193. package/esm/configuration/slotFacade.d.ts +82 -0
  194. package/esm/configuration/slotFacade.js +89 -0
  195. package/esm/configuration/slotShape.d.ts +12 -0
  196. package/esm/configuration/slotShape.js +84 -0
  197. package/esm/configuration/slotValueUtils.d.ts +17 -0
  198. package/esm/configuration/slotValueUtils.js +25 -0
  199. package/esm/configuration/tabixIndexFields.d.ts +44 -0
  200. package/esm/configuration/tabixIndexFields.js +45 -0
  201. package/esm/configuration/tabixShorthand.d.ts +34 -0
  202. package/esm/configuration/tabixShorthand.js +45 -0
  203. package/esm/configuration/types.d.ts +170 -7
  204. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
  205. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
  206. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +120 -7
  207. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
  208. package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
  209. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
  210. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
  211. package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
  212. package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
  213. package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
  214. package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
  215. package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
  216. package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
  217. package/esm/data_adapters/BaseAdapter/index.js +5 -5
  218. package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
  219. package/esm/data_adapters/BaseAdapter/stats.js +48 -22
  220. package/esm/data_adapters/BaseAdapter/types.d.ts +10 -8
  221. package/esm/data_adapters/BaseAdapter/types.js +1 -0
  222. package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
  223. package/esm/data_adapters/BaseAdapter/util.js +14 -3
  224. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  225. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
  226. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
  227. package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
  228. package/esm/data_adapters/CytobandAdapter/index.js +3 -3
  229. package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
  230. package/esm/data_adapters/adapterSessionRefcount.js +96 -0
  231. package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
  232. package/esm/data_adapters/dataAdapterCache.js +62 -22
  233. package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
  234. package/esm/data_adapters/getFeatureAdapter.js +27 -0
  235. package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
  236. package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
  237. package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
  238. package/esm/pluggableElementTypes/AdapterType.js +44 -5
  239. package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
  240. package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
  241. package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
  242. package/esm/pluggableElementTypes/ConnectionType.js +1 -1
  243. package/esm/pluggableElementTypes/DisplayType.d.ts +10 -0
  244. package/esm/pluggableElementTypes/DisplayType.js +14 -1
  245. package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
  246. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
  247. package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
  248. package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
  249. package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
  250. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
  251. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
  252. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
  253. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
  254. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
  255. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
  256. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
  257. package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
  258. package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
  259. package/esm/pluggableElementTypes/TrackType.js +1 -1
  260. package/esm/pluggableElementTypes/ViewType.d.ts +2 -1
  261. package/esm/pluggableElementTypes/ViewType.js +9 -2
  262. package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
  263. package/esm/pluggableElementTypes/WidgetType.js +1 -1
  264. package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
  265. package/esm/pluggableElementTypes/addMenuItems.js +82 -0
  266. package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
  267. package/esm/pluggableElementTypes/extendElementType.js +68 -0
  268. package/esm/pluggableElementTypes/index.d.ts +7 -7
  269. package/esm/pluggableElementTypes/index.js +24 -14
  270. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
  271. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
  272. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +605 -84
  273. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
  274. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +196 -55
  275. package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
  276. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
  277. package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -16
  278. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
  279. package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
  280. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
  281. package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
  282. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +174 -0
  283. package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -0
  284. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
  285. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
  286. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
  287. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
  288. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
  289. package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
  290. package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
  291. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
  292. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
  293. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
  294. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
  295. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
  296. package/esm/pluggableElementTypes/models/index.d.ts +6 -3
  297. package/esm/pluggableElementTypes/models/index.js +10 -8
  298. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
  299. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
  300. package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
  301. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
  302. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
  303. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
  304. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
  305. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
  306. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
  307. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
  308. package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
  309. package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
  310. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
  311. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
  312. package/esm/pluginDefinitions.d.ts +198 -0
  313. package/esm/pluginDefinitions.js +220 -0
  314. package/esm/rpc/BaseRpcDriver.d.ts +27 -35
  315. package/esm/rpc/BaseRpcDriver.js +74 -107
  316. package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
  317. package/esm/rpc/MainThreadRpcDriver.js +18 -29
  318. package/esm/rpc/RpcClient.d.ts +38 -0
  319. package/esm/rpc/RpcClient.js +154 -0
  320. package/esm/rpc/RpcManager.d.ts +116 -27
  321. package/esm/rpc/RpcManager.js +177 -50
  322. package/esm/rpc/RpcRegistry.d.ts +265 -0
  323. package/esm/rpc/RpcRegistry.js +1 -0
  324. package/esm/rpc/RpcServer.d.ts +41 -0
  325. package/esm/rpc/RpcServer.js +235 -0
  326. package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
  327. package/esm/rpc/WebWorkerRpcDriver.js +312 -27
  328. package/esm/rpc/byteBudget.d.ts +49 -0
  329. package/esm/rpc/byteBudget.js +50 -0
  330. package/esm/rpc/configSchema.d.ts +27 -5
  331. package/esm/rpc/configSchema.js +40 -16
  332. package/esm/rpc/coreRpcMethods.d.ts +2 -5
  333. package/esm/rpc/coreRpcMethods.js +9 -12
  334. package/esm/rpc/explainTransferError.d.ts +35 -0
  335. package/esm/rpc/explainTransferError.js +158 -0
  336. package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
  337. package/esm/rpc/methods/CoreFreeResources.js +17 -6
  338. package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
  339. package/esm/rpc/methods/CoreGetExportData.js +26 -15
  340. package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
  341. package/esm/rpc/methods/CoreGetFeatures.js +15 -17
  342. package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
  343. package/esm/rpc/methods/CoreGetInfo.js +12 -0
  344. package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
  345. package/esm/rpc/methods/CoreGetMetadata.js +6 -9
  346. package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
  347. package/esm/rpc/methods/CoreGetRefNames.js +24 -13
  348. package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
  349. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
  350. package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
  351. package/esm/rpc/methods/CoreGetRegions.js +6 -9
  352. package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
  353. package/esm/rpc/methods/CoreGetSequence.js +12 -13
  354. package/esm/rpc/serializeError/index.d.ts +9 -0
  355. package/esm/rpc/serializeError/index.js +86 -0
  356. package/esm/svg/SvgExport.d.ts +30 -0
  357. package/esm/svg/SvgExport.js +53 -0
  358. package/esm/svg/constants.d.ts +1 -0
  359. package/esm/svg/constants.js +5 -0
  360. package/esm/svg/saveSvgAsImage.d.ts +6 -0
  361. package/esm/svg/saveSvgAsImage.js +90 -0
  362. package/esm/svg/svgId.d.ts +42 -0
  363. package/esm/svg/svgId.js +84 -0
  364. package/esm/svg/svgReady.d.ts +136 -0
  365. package/esm/svg/svgReady.js +164 -0
  366. package/esm/svg/trackNames.d.ts +27 -0
  367. package/esm/svg/trackNames.js +31 -0
  368. package/esm/svg/wrapSvgExport.d.ts +12 -0
  369. package/esm/svg/wrapSvgExport.js +78 -0
  370. package/esm/ui/ActionLink.d.ts +7 -0
  371. package/esm/ui/ActionLink.js +9 -0
  372. package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
  373. package/esm/ui/AddCustomPluginDialog.js +61 -0
  374. package/esm/ui/AddGenomePane.d.ts +8 -0
  375. package/esm/ui/AddGenomePane.js +228 -0
  376. package/esm/ui/AdvancedOptions.d.ts +6 -0
  377. package/esm/ui/AdvancedOptions.js +17 -0
  378. package/esm/ui/AppLogo.d.ts +1 -1
  379. package/esm/ui/AppLogo.js +2 -2
  380. package/esm/ui/AssemblySelector.d.ts +5 -8
  381. package/esm/ui/AssemblySelector.js +8 -26
  382. package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
  383. package/esm/ui/BaseExportSvgDialog.js +84 -0
  384. package/esm/ui/BaseTooltip.d.ts +14 -3
  385. package/esm/ui/BaseTooltip.js +151 -34
  386. package/esm/ui/CascadingMenu.d.ts +9 -18
  387. package/esm/ui/CascadingMenu.js +368 -41
  388. package/esm/ui/CascadingMenuButton.d.ts +9 -11
  389. package/esm/ui/CascadingMenuButton.js +36 -18
  390. package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
  391. package/esm/ui/CascadingMenuHelpDialog.js +4 -5
  392. package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
  393. package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
  394. package/esm/ui/ColorPicker.d.ts +6 -9
  395. package/esm/ui/ColorPicker.js +36 -39
  396. package/esm/ui/ConfirmDialog.d.ts +2 -9
  397. package/esm/ui/ConfirmDialog.js +6 -9
  398. package/esm/ui/ContextMenu.d.ts +50 -0
  399. package/esm/ui/ContextMenu.js +55 -0
  400. package/esm/ui/CopyToClipboardButton.d.ts +10 -0
  401. package/esm/ui/CopyToClipboardButton.js +14 -0
  402. package/esm/ui/Crosshairs.d.ts +10 -0
  403. package/esm/ui/Crosshairs.js +15 -0
  404. package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
  405. package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
  406. package/esm/ui/DataGridFlexContainer.d.ts +9 -2
  407. package/esm/ui/DataGridFlexContainer.js +4 -3
  408. package/esm/ui/Dialog.d.ts +5 -2
  409. package/esm/ui/Dialog.js +35 -27
  410. package/esm/ui/DraggableDialog.d.ts +3 -3
  411. package/esm/ui/DraggableDialog.js +50 -12
  412. package/esm/ui/DropDownMenu.d.ts +4 -2
  413. package/esm/ui/DropDownMenu.js +4 -4
  414. package/esm/ui/EditableTypography.d.ts +3 -1
  415. package/esm/ui/EditableTypography.js +34 -26
  416. package/esm/ui/ErrorActions.d.ts +24 -0
  417. package/esm/ui/ErrorActions.js +20 -0
  418. package/esm/ui/ErrorBanner.d.ts +7 -0
  419. package/esm/ui/ErrorBanner.js +35 -0
  420. package/esm/ui/ErrorBar.d.ts +6 -0
  421. package/esm/ui/ErrorBar.js +35 -0
  422. package/esm/ui/ErrorBoundary.d.ts +29 -5
  423. package/esm/ui/ErrorBoundary.js +32 -2
  424. package/esm/ui/ErrorMessage.d.ts +2 -4
  425. package/esm/ui/ErrorMessage.js +17 -52
  426. package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
  427. package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
  428. package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
  429. package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
  430. package/esm/ui/ErrorOverlay.d.ts +8 -0
  431. package/esm/ui/ErrorOverlay.js +5 -0
  432. package/esm/ui/ExportSvgDialog.d.ts +7 -0
  433. package/esm/ui/ExportSvgDialog.js +9 -0
  434. package/esm/ui/ExternalLink.d.ts +1 -1
  435. package/esm/ui/FactoryResetDialog.d.ts +1 -1
  436. package/esm/ui/FactoryResetDialog.js +6 -15
  437. package/esm/ui/FatalErrorDialog.d.ts +3 -2
  438. package/esm/ui/FatalErrorDialog.js +6 -5
  439. package/esm/ui/FileDropZone.d.ts +25 -0
  440. package/esm/ui/FileDropZone.js +128 -0
  441. package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
  442. package/esm/ui/FileSelector/FileSelector.js +59 -30
  443. package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
  444. package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
  445. package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
  446. package/esm/ui/FileSelector/LocationInput.js +8 -12
  447. package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
  448. package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
  449. package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
  450. package/esm/ui/FileSelector/UrlChooser.js +26 -2
  451. package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
  452. package/esm/ui/FileSelector/emptySourceType.js +14 -0
  453. package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
  454. package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
  455. package/esm/ui/FileSelector/util.d.ts +58 -3
  456. package/esm/ui/FileSelector/util.js +128 -11
  457. package/esm/ui/GpuFallbackButton.d.ts +12 -0
  458. package/esm/ui/GpuFallbackButton.js +20 -0
  459. package/esm/ui/HoverMenu.d.ts +12 -3
  460. package/esm/ui/HoverMenu.js +31 -9
  461. package/esm/ui/HoverTooltip.d.ts +27 -0
  462. package/esm/ui/HoverTooltip.js +24 -0
  463. package/esm/ui/Icons.d.ts +6 -4
  464. package/esm/ui/Icons.js +9 -0
  465. package/esm/ui/InfoDialog.d.ts +7 -0
  466. package/esm/ui/InfoDialog.js +16 -0
  467. package/esm/ui/InlineMenuControls.d.ts +6 -0
  468. package/esm/ui/InlineMenuControls.js +17 -0
  469. package/esm/ui/JexlFilterDialog.d.ts +23 -0
  470. package/esm/ui/JexlFilterDialog.js +94 -0
  471. package/esm/ui/LabeledCheckbox.d.ts +9 -0
  472. package/esm/ui/LabeledCheckbox.js +7 -0
  473. package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
  474. package/esm/ui/LegendSwatchGlyph.js +25 -0
  475. package/esm/ui/LoadingDots.d.ts +1 -0
  476. package/esm/ui/LoadingDots.js +30 -0
  477. package/esm/ui/LoadingEllipses.d.ts +17 -1
  478. package/esm/ui/LoadingEllipses.js +20 -29
  479. package/esm/ui/LoadingOverlay.d.ts +9 -0
  480. package/esm/ui/LoadingOverlay.js +137 -0
  481. package/esm/ui/LoadingProgress.d.ts +16 -0
  482. package/esm/ui/LoadingProgress.js +16 -0
  483. package/esm/ui/Logo.d.ts +2 -2
  484. package/esm/ui/Logo.js +23 -24
  485. package/esm/ui/Menu.js +1 -1
  486. package/esm/ui/MenuItemChevron.d.ts +3 -0
  487. package/esm/ui/MenuItemChevron.js +19 -0
  488. package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
  489. package/esm/ui/MenuItemEndDecoration.js +28 -0
  490. package/esm/ui/MenuItemTrailing.d.ts +12 -0
  491. package/esm/ui/MenuItemTrailing.js +42 -0
  492. package/esm/ui/MenuTypes.d.ts +124 -4
  493. package/esm/ui/MenuTypes.js +13 -1
  494. package/esm/ui/MonospaceTextField.d.ts +9 -0
  495. package/esm/ui/MonospaceTextField.js +37 -0
  496. package/esm/ui/NumberTextField.d.ts +31 -0
  497. package/esm/ui/NumberTextField.js +33 -0
  498. package/esm/ui/PaletteContext.d.ts +85 -0
  499. package/esm/ui/PaletteContext.js +104 -0
  500. package/esm/ui/PinAdornment.d.ts +5 -0
  501. package/esm/ui/PinAdornment.js +79 -0
  502. package/esm/ui/PluggableComponent.d.ts +10 -0
  503. package/esm/ui/PluggableComponent.js +19 -0
  504. package/esm/ui/PluggableComponents.d.ts +29 -0
  505. package/esm/ui/PluggableComponents.js +28 -0
  506. package/esm/ui/PluggableElements.d.ts +23 -0
  507. package/esm/ui/PluggableElements.js +24 -0
  508. package/esm/ui/PluginStoreCard.d.ts +17 -0
  509. package/esm/ui/PluginStoreCard.js +45 -0
  510. package/esm/ui/PopoverPicker.d.ts +6 -0
  511. package/esm/ui/PopoverPicker.js +25 -0
  512. package/esm/ui/PrerenderedCanvas.d.ts +1 -1
  513. package/esm/ui/PrerenderedCanvas.js +5 -4
  514. package/esm/ui/ProgressChip.d.ts +37 -0
  515. package/esm/ui/ProgressChip.js +66 -0
  516. package/esm/ui/RedErrorMessageBox.d.ts +1 -1
  517. package/esm/ui/RedErrorMessageBox.js +9 -3
  518. package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
  519. package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
  520. package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
  521. package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
  522. package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
  523. package/esm/ui/RefNameAutocomplete/index.js +78 -0
  524. package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
  525. package/esm/ui/RefNameAutocomplete/util.js +168 -0
  526. package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
  527. package/esm/ui/ReplaceCurrentViewButton.js +22 -0
  528. package/esm/ui/ResizeHandle.d.ts +13 -7
  529. package/esm/ui/ResizeHandle.js +42 -55
  530. package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
  531. package/esm/ui/ReturnToImportFormDialog.js +7 -9
  532. package/esm/ui/SanitizedHTML.d.ts +6 -1
  533. package/esm/ui/SanitizedHTML.js +7 -46
  534. package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
  535. package/esm/ui/ScrollEdgeShadow.js +98 -0
  536. package/esm/ui/ScrollZoomToggle.d.ts +38 -0
  537. package/esm/ui/ScrollZoomToggle.js +92 -0
  538. package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
  539. package/esm/ui/SequenceAdapterInputs.js +30 -0
  540. package/esm/ui/SettingsChangesTable.d.ts +14 -0
  541. package/esm/ui/SettingsChangesTable.js +49 -0
  542. package/esm/ui/ShareLinkField.d.ts +6 -0
  543. package/esm/ui/ShareLinkField.js +42 -0
  544. package/esm/ui/SingleSlider.d.ts +8 -0
  545. package/esm/ui/SingleSlider.js +11 -0
  546. package/esm/ui/SizeSliderRow.d.ts +16 -0
  547. package/esm/ui/SizeSliderRow.js +50 -0
  548. package/esm/ui/SliderTooltip.d.ts +2 -0
  549. package/esm/ui/SliderTooltip.js +17 -0
  550. package/esm/ui/Snackbar.d.ts +4 -2
  551. package/esm/ui/Snackbar.js +11 -8
  552. package/esm/ui/SnackbarContents.d.ts +1 -1
  553. package/esm/ui/SnackbarContents.js +21 -3
  554. package/esm/ui/SnackbarModel.d.ts +40 -0
  555. package/esm/ui/SnackbarModel.js +43 -11
  556. package/esm/ui/StackTraceButton.d.ts +5 -0
  557. package/esm/ui/StackTraceButton.js +16 -0
  558. package/esm/ui/StatusProgressBar.d.ts +37 -0
  559. package/esm/ui/StatusProgressBar.js +76 -0
  560. package/esm/ui/SubmitDialog.d.ts +6 -0
  561. package/esm/ui/SubmitDialog.js +9 -0
  562. package/esm/ui/SubmitForm.d.ts +23 -0
  563. package/esm/ui/SubmitForm.js +23 -0
  564. package/esm/ui/SvgColorLegend.d.ts +13 -0
  565. package/esm/ui/SvgColorLegend.js +65 -0
  566. package/esm/ui/SvgGradientLegend.d.ts +26 -0
  567. package/esm/ui/SvgGradientLegend.js +26 -0
  568. package/esm/ui/TagTextField.d.ts +40 -0
  569. package/esm/ui/TagTextField.js +32 -0
  570. package/esm/ui/VerticalScrollbar.d.ts +45 -0
  571. package/esm/ui/VerticalScrollbar.js +158 -0
  572. package/esm/ui/ViewLoadingScreen.d.ts +24 -0
  573. package/esm/ui/ViewLoadingScreen.js +76 -0
  574. package/esm/ui/addExtensionElement.d.ts +18 -0
  575. package/esm/ui/addExtensionElement.js +23 -0
  576. package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
  577. package/esm/ui/buildExtraTrackMenuItems.js +14 -0
  578. package/esm/ui/colorSwatchStyle.d.ts +9 -0
  579. package/esm/ui/colorSwatchStyle.js +11 -0
  580. package/esm/ui/colors.d.ts +61 -8
  581. package/esm/ui/colors.js +135 -1
  582. package/esm/ui/extensionSelectors.d.ts +38 -0
  583. package/esm/ui/extensionSelectors.js +49 -0
  584. package/esm/ui/filterMenuItems.d.ts +112 -0
  585. package/esm/ui/filterMenuItems.js +86 -0
  586. package/esm/ui/formatErrorStack.d.ts +1 -0
  587. package/esm/ui/formatErrorStack.js +56 -0
  588. package/esm/ui/gpuFallback.d.ts +33 -0
  589. package/esm/ui/gpuFallback.js +39 -0
  590. package/esm/ui/highlightChipReveal.d.ts +32 -0
  591. package/esm/ui/highlightChipReveal.js +39 -0
  592. package/esm/ui/hoverBoxStyle.d.ts +11 -0
  593. package/esm/ui/hoverBoxStyle.js +13 -0
  594. package/esm/ui/index.d.ts +76 -4
  595. package/esm/ui/index.js +90 -19
  596. package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
  597. package/esm/ui/inlineMenuRowWidth.js +8 -0
  598. package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
  599. package/esm/ui/launchTargetsMenuItem.js +24 -0
  600. package/esm/ui/launchViewMenu.d.ts +4 -0
  601. package/esm/ui/launchViewMenu.js +36 -0
  602. package/esm/ui/legendMenuItem.d.ts +38 -0
  603. package/esm/ui/legendMenuItem.js +44 -0
  604. package/esm/ui/legendSpec.d.ts +62 -0
  605. package/esm/ui/legendSpec.js +78 -0
  606. package/esm/ui/loadingDotKeyframes.d.ts +18 -0
  607. package/esm/ui/loadingDotKeyframes.js +17 -0
  608. package/esm/ui/makeSizeMenu.d.ts +30 -0
  609. package/esm/ui/makeSizeMenu.js +82 -0
  610. package/esm/ui/mapStackTrace.d.ts +8 -0
  611. package/esm/ui/mapStackTrace.js +108 -0
  612. package/esm/ui/measureLegendText.d.ts +1 -0
  613. package/esm/ui/measureLegendText.js +8 -0
  614. package/esm/ui/menuItemAdornment.d.ts +33 -0
  615. package/esm/ui/menuItemAdornment.js +50 -0
  616. package/esm/ui/menuItems.d.ts +28 -0
  617. package/esm/ui/menuItems.js +26 -0
  618. package/esm/ui/menuLabels.d.ts +41 -0
  619. package/esm/ui/menuLabels.js +43 -0
  620. package/esm/ui/multiTrackMenuItems.d.ts +19 -0
  621. package/esm/ui/multiTrackMenuItems.js +15 -0
  622. package/esm/ui/palette.d.ts +559 -0
  623. package/esm/ui/palette.js +746 -0
  624. package/esm/ui/parseError.d.ts +4 -0
  625. package/esm/ui/parseError.js +18 -0
  626. package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
  627. package/esm/ui/persistentScrollbarStyle.js +53 -0
  628. package/esm/ui/promotableMenuItems.d.ts +19 -0
  629. package/esm/ui/promotableMenuItems.js +89 -0
  630. package/esm/ui/promotablePinCoverage.d.ts +44 -0
  631. package/esm/ui/promotablePinCoverage.js +87 -0
  632. package/esm/ui/radioSubMenu.d.ts +33 -0
  633. package/esm/ui/radioSubMenu.js +32 -0
  634. package/esm/ui/react-colorful.js +5 -1
  635. package/esm/ui/replaceViewAction.d.ts +31 -0
  636. package/esm/ui/replaceViewAction.js +39 -0
  637. package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
  638. package/esm/ui/rewriteExternalAnchors.js +8 -0
  639. package/esm/ui/scrollZoomLabels.d.ts +17 -0
  640. package/esm/ui/scrollZoomLabels.js +22 -0
  641. package/esm/ui/showSubMenu.d.ts +19 -0
  642. package/esm/ui/showSubMenu.js +30 -0
  643. package/esm/ui/sliderScale.d.ts +6 -0
  644. package/esm/ui/sliderScale.js +30 -0
  645. package/esm/ui/statusProgressKeyframes.d.ts +6 -0
  646. package/esm/ui/statusProgressKeyframes.js +14 -0
  647. package/esm/ui/stripStackTraceMessage.d.ts +1 -0
  648. package/esm/ui/stripStackTraceMessage.js +9 -0
  649. package/esm/ui/styleTheme.d.ts +158 -0
  650. package/esm/ui/styleTheme.js +115 -0
  651. package/esm/ui/submenuAim.d.ts +30 -0
  652. package/esm/ui/submenuAim.js +37 -0
  653. package/esm/ui/theme.d.ts +343 -29
  654. package/esm/ui/theme.js +258 -342
  655. package/esm/ui/toggleMenuItems.d.ts +44 -0
  656. package/esm/ui/toggleMenuItems.js +60 -0
  657. package/esm/ui/useAssemblySelection.d.ts +153 -0
  658. package/esm/ui/useAssemblySelection.js +54 -0
  659. package/esm/ui/useCoalescedPointer.d.ts +36 -0
  660. package/esm/ui/useCoalescedPointer.js +60 -0
  661. package/esm/ui/useCopyToClipboard.d.ts +15 -0
  662. package/esm/ui/useCopyToClipboard.js +41 -0
  663. package/esm/ui/useExportSvgPreference.d.ts +1 -0
  664. package/esm/ui/useExportSvgPreference.js +4 -0
  665. package/esm/ui/useMouseTracking.d.ts +71 -0
  666. package/esm/ui/useMouseTracking.js +179 -0
  667. package/esm/ui/useRecentLocations.d.ts +28 -0
  668. package/esm/ui/useRecentLocations.js +31 -0
  669. package/esm/ui/wrapComponent.d.ts +47 -0
  670. package/esm/ui/wrapComponent.js +58 -0
  671. package/esm/ui/zIndexes.d.ts +28 -0
  672. package/esm/ui/zIndexes.js +38 -0
  673. package/esm/util/Base1DUtils.d.ts +204 -16
  674. package/esm/util/Base1DUtils.js +310 -175
  675. package/esm/util/Base1DViewModel.d.ts +97 -20
  676. package/esm/util/Base1DViewModel.js +148 -39
  677. package/esm/util/FileSaver/index.d.ts +1 -0
  678. package/esm/util/FileSaver/index.js +27 -0
  679. package/esm/util/IntervalTree.d.ts +18 -39
  680. package/esm/util/IntervalTree.js +63 -244
  681. package/esm/util/SvgCanvas.d.ts +81 -0
  682. package/esm/util/SvgCanvas.js +500 -0
  683. package/esm/util/TimeTraveller.d.ts +12 -0
  684. package/esm/util/TimeTraveller.js +130 -27
  685. package/esm/util/aborting.d.ts +17 -4
  686. package/esm/util/aborting.js +30 -25
  687. package/esm/util/adapterMetadata.d.ts +20 -0
  688. package/esm/util/adapterMetadata.js +39 -0
  689. package/esm/util/addAndShowTrack.d.ts +22 -0
  690. package/esm/util/addAndShowTrack.js +23 -0
  691. package/esm/util/addRelativeUris.d.ts +17 -0
  692. package/esm/util/addRelativeUris.js +42 -0
  693. package/esm/util/addTrackComponent.d.ts +72 -0
  694. package/esm/util/addTrackComponent.js +53 -0
  695. package/esm/util/addTrackFromWidget.d.ts +94 -0
  696. package/esm/util/addTrackFromWidget.js +90 -0
  697. package/esm/util/analytics.d.ts +32 -3
  698. package/esm/util/analytics.js +102 -49
  699. package/esm/util/animationAllowed.d.ts +17 -0
  700. package/esm/util/animationAllowed.js +22 -0
  701. package/esm/util/applyInitSettings.d.ts +79 -0
  702. package/esm/util/applyInitSettings.js +91 -0
  703. package/esm/util/applyRowResizeWheel.d.ts +10 -0
  704. package/esm/util/applyRowResizeWheel.js +34 -0
  705. package/esm/util/assemblyConfigUtils.d.ts +144 -0
  706. package/esm/util/assemblyConfigUtils.js +498 -0
  707. package/esm/util/bandHeight.d.ts +53 -0
  708. package/esm/util/bandHeight.js +56 -0
  709. package/esm/util/bandLayout.d.ts +51 -0
  710. package/esm/util/bandLayout.js +36 -0
  711. package/esm/util/bezierConnector.d.ts +14 -0
  712. package/esm/util/bezierConnector.js +108 -0
  713. package/esm/util/bgzfWorkerPool.d.ts +78 -0
  714. package/esm/util/bgzfWorkerPool.js +81 -0
  715. package/esm/util/blockTypes.d.ts +64 -45
  716. package/esm/util/blockTypes.js +67 -74
  717. package/esm/util/bpUtils.d.ts +81 -0
  718. package/esm/util/bpUtils.js +103 -0
  719. package/esm/util/cacheBudgets.d.ts +52 -0
  720. package/esm/util/cacheBudgets.js +52 -0
  721. package/esm/util/cachedSetup.d.ts +51 -0
  722. package/esm/util/cachedSetup.js +87 -0
  723. package/esm/util/calculateDynamicBlocks.d.ts +5 -0
  724. package/esm/util/calculateDynamicBlocks.js +85 -82
  725. package/esm/util/calculateStaticBlocks.d.ts +2 -3
  726. package/esm/util/calculateStaticBlocks.js +48 -71
  727. package/esm/util/chooseGridPitch.d.ts +9 -0
  728. package/esm/util/chooseGridPitch.js +31 -0
  729. package/esm/util/clampToContig.d.ts +26 -0
  730. package/esm/util/clampToContig.js +28 -0
  731. package/esm/util/cmpStr.d.ts +1 -0
  732. package/esm/util/cmpStr.js +7 -0
  733. package/esm/util/coarseStripHTML.js +3 -15
  734. package/esm/util/color/cssColorsLevel4.js +6 -2
  735. package/esm/util/color/index.d.ts +81 -2
  736. package/esm/util/color/index.js +194 -25
  737. package/esm/util/color-bits/bit.d.ts +4 -0
  738. package/esm/util/color-bits/bit.js +37 -0
  739. package/esm/util/color-bits/convert.d.ts +23 -0
  740. package/esm/util/color-bits/convert.js +294 -0
  741. package/esm/util/color-bits/core.d.ts +34 -0
  742. package/esm/util/color-bits/core.js +67 -0
  743. package/esm/util/color-bits/format.d.ts +24 -0
  744. package/esm/util/color-bits/format.js +82 -0
  745. package/esm/util/color-bits/functions.d.ts +33 -0
  746. package/esm/util/color-bits/functions.js +70 -0
  747. package/esm/util/color-bits/index.d.ts +5 -0
  748. package/esm/util/color-bits/index.js +4 -0
  749. package/esm/util/color-bits/parse.d.ts +17 -0
  750. package/esm/util/color-bits/parse.js +382 -0
  751. package/esm/util/colorBits.d.ts +39 -0
  752. package/esm/util/colorBits.js +180 -0
  753. package/esm/util/colorRamp.d.ts +37 -0
  754. package/esm/util/colorRamp.js +93 -0
  755. package/esm/util/colord.d.ts +8 -0
  756. package/esm/util/colord.js +43 -191
  757. package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
  758. package/esm/util/convertCodingSequenceToPeptides.js +51 -4
  759. package/esm/util/copyText.d.ts +18 -0
  760. package/esm/util/copyText.js +30 -0
  761. package/esm/util/copyToClipboard.d.ts +4 -0
  762. package/esm/util/copyToClipboard.js +58 -0
  763. package/esm/util/createStopTokenRotation.d.ts +117 -0
  764. package/esm/util/createStopTokenRotation.js +147 -0
  765. package/esm/util/createSvgRasterCanvas.d.ts +7 -0
  766. package/esm/util/createSvgRasterCanvas.js +22 -0
  767. package/esm/util/crypto.d.ts +24 -0
  768. package/esm/util/crypto.js +85 -2
  769. package/esm/util/dataGridUtils.d.ts +9 -0
  770. package/esm/util/dataGridUtils.js +36 -0
  771. package/esm/util/dedupe.js +1 -0
  772. package/esm/util/deepEqual.d.ts +8 -0
  773. package/esm/util/deepEqual.js +22 -0
  774. package/esm/util/deepMerge.d.ts +20 -0
  775. package/esm/util/deepMerge.js +44 -0
  776. package/esm/util/diagonalizeRegions.d.ts +23 -0
  777. package/esm/util/diagonalizeRegions.js +192 -0
  778. package/esm/util/environment.d.ts +4 -0
  779. package/esm/util/environment.js +43 -0
  780. package/esm/util/eventPoint.d.ts +32 -0
  781. package/esm/util/eventPoint.js +28 -0
  782. package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
  783. package/esm/util/fetchAndMaybeUnzip.js +64 -0
  784. package/esm/util/fetchContext.d.ts +82 -0
  785. package/esm/util/fetchContext.js +59 -0
  786. package/esm/util/fetchHub.d.ts +15 -0
  787. package/esm/util/fetchHub.js +31 -0
  788. package/esm/util/fetchJson.d.ts +1 -0
  789. package/esm/util/fetchJson.js +7 -0
  790. package/esm/util/fetchPhases.d.ts +77 -0
  791. package/esm/util/fetchPhases.js +1 -0
  792. package/esm/util/fetchSeq.d.ts +5 -1
  793. package/esm/util/fetchSeq.js +18 -6
  794. package/esm/util/fileHandleStore.d.ts +19 -2
  795. package/esm/util/fileHandleStore.js +95 -35
  796. package/esm/util/flatbush/index.d.ts +27 -6
  797. package/esm/util/flatbush/index.js +194 -218
  798. package/esm/util/formatBytes.d.ts +9 -0
  799. package/esm/util/formatBytes.js +18 -0
  800. package/esm/util/formatFastaStrings.d.ts +13 -0
  801. package/esm/util/formatFastaStrings.js +13 -0
  802. package/esm/util/formatGuessers.d.ts +30 -0
  803. package/esm/util/formatGuessers.js +69 -0
  804. package/esm/util/formatRelativeTime.d.ts +1 -0
  805. package/esm/util/formatRelativeTime.js +25 -0
  806. package/esm/util/frameCoalescer.d.ts +30 -0
  807. package/esm/util/frameCoalescer.js +22 -0
  808. package/esm/util/freezeDeep.d.ts +28 -0
  809. package/esm/util/freezeDeep.js +41 -0
  810. package/esm/util/geneticCodes.d.ts +56 -0
  811. package/esm/util/geneticCodes.js +371 -0
  812. package/esm/util/getFileName.d.ts +11 -0
  813. package/esm/util/getFileName.js +34 -0
  814. package/esm/util/getLocationUri.d.ts +49 -0
  815. package/esm/util/getLocationUri.js +63 -0
  816. package/esm/util/getRelativeX.d.ts +4 -0
  817. package/esm/util/getRelativeX.js +7 -0
  818. package/esm/util/getStr.d.ts +6 -0
  819. package/esm/util/getStr.js +15 -0
  820. package/esm/util/highlights.d.ts +21 -0
  821. package/esm/util/highlights.js +100 -0
  822. package/esm/util/hooks.d.ts +160 -0
  823. package/esm/util/hooks.js +416 -0
  824. package/esm/util/htmlText.d.ts +13 -0
  825. package/esm/util/htmlText.js +66 -0
  826. package/esm/util/idMaker.d.ts +1 -1
  827. package/esm/util/idMaker.js +31 -18
  828. package/esm/util/index.d.ts +82 -268
  829. package/esm/util/index.js +136 -853
  830. package/esm/util/indexCandidates.d.ts +50 -0
  831. package/esm/util/indexCandidates.js +101 -0
  832. package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
  833. package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
  834. package/esm/util/installFetch.d.ts +194 -0
  835. package/esm/util/installFetch.js +178 -0
  836. package/esm/util/installInitAutorun.d.ts +62 -0
  837. package/esm/util/installInitAutorun.js +107 -0
  838. package/esm/util/intervals.d.ts +20 -0
  839. package/esm/util/intervals.js +37 -0
  840. package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
  841. package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
  842. package/esm/util/io/index.d.ts +39 -2
  843. package/esm/util/io/index.js +115 -12
  844. package/esm/util/isDataCurrent.d.ts +7 -0
  845. package/esm/util/isDataCurrent.js +9 -0
  846. package/esm/util/isWebWorker.js +1 -2
  847. package/esm/util/iupac.d.ts +4 -0
  848. package/esm/util/iupac.js +59 -0
  849. package/esm/util/jexl.js +141 -17
  850. package/esm/util/jexlFilters.d.ts +75 -0
  851. package/esm/util/jexlFilters.js +49 -0
  852. package/esm/util/jexlStrings.d.ts +22 -1
  853. package/esm/util/jexlStrings.js +21 -14
  854. package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
  855. package/esm/util/layouts/GranularRectLayout.js +99 -356
  856. package/esm/util/layouts/index.d.ts +1 -7
  857. package/esm/util/layouts/index.js +2 -6
  858. package/esm/util/layouts/intervalUtils.d.ts +12 -1
  859. package/esm/util/layouts/intervalUtils.js +13 -31
  860. package/esm/util/layouts/placeRect.d.ts +50 -0
  861. package/esm/util/layouts/placeRect.js +97 -0
  862. package/esm/util/leadingEdgeAutorun.d.ts +40 -0
  863. package/esm/util/leadingEdgeAutorun.js +51 -0
  864. package/esm/util/librpc.d.ts +5 -2
  865. package/esm/util/librpc.js +6 -1
  866. package/esm/util/linkify.js +2 -0
  867. package/esm/util/locString.d.ts +72 -0
  868. package/esm/util/locString.js +178 -7
  869. package/esm/util/locStringsToRegions.d.ts +10 -0
  870. package/esm/util/locStringsToRegions.js +35 -0
  871. package/esm/util/localStorage.d.ts +36 -0
  872. package/esm/util/localStorage.js +137 -0
  873. package/esm/util/makeAssembly.d.ts +54 -0
  874. package/esm/util/makeAssembly.js +52 -0
  875. package/esm/util/makeTrackId.d.ts +14 -0
  876. package/esm/util/makeTrackId.js +14 -0
  877. package/esm/util/matchTrackId.d.ts +11 -0
  878. package/esm/util/matchTrackId.js +14 -0
  879. package/esm/util/measureText.d.ts +24 -0
  880. package/esm/util/measureText.js +51 -0
  881. package/esm/util/mst-reflection.d.ts +14 -4
  882. package/esm/util/mst-reflection.js +33 -32
  883. package/esm/util/mstUtils.d.ts +89 -0
  884. package/esm/util/mstUtils.js +122 -0
  885. package/esm/util/nanoid.d.ts +0 -4
  886. package/esm/util/nanoid.js +10 -20
  887. package/esm/util/numericUtils.d.ts +20 -0
  888. package/esm/util/numericUtils.js +127 -0
  889. package/esm/util/objectUtils.d.ts +2 -0
  890. package/esm/util/objectUtils.js +9 -0
  891. package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
  892. package/esm/util/offscreenCanvasPonyfill.js +5 -47
  893. package/esm/util/openDisplays.d.ts +23 -0
  894. package/esm/util/openDisplays.js +79 -0
  895. package/esm/util/openFeatureWidget.d.ts +33 -0
  896. package/esm/util/openFeatureWidget.js +64 -0
  897. package/esm/util/paintLayer.d.ts +32 -0
  898. package/esm/util/paintLayer.js +33 -0
  899. package/esm/util/parentWalk.d.ts +32 -0
  900. package/esm/util/parentWalk.js +84 -0
  901. package/esm/util/parseLineByLine.d.ts +45 -2
  902. package/esm/util/parseLineByLine.js +156 -15
  903. package/esm/util/parseMotifList.d.ts +17 -0
  904. package/esm/util/parseMotifList.js +69 -0
  905. package/esm/util/pluginStore.d.ts +113 -0
  906. package/esm/util/pluginStore.js +253 -0
  907. package/esm/util/pointerPresence.d.ts +5 -0
  908. package/esm/util/pointerPresence.js +21 -0
  909. package/esm/util/progress.d.ts +459 -0
  910. package/esm/util/progress.js +820 -0
  911. package/esm/util/range.d.ts +42 -1
  912. package/esm/util/range.js +59 -2
  913. package/esm/util/renameRegions.d.ts +21 -0
  914. package/esm/util/renameRegions.js +129 -0
  915. package/esm/util/renderToStaticMarkup.d.ts +2 -0
  916. package/esm/util/renderToStaticMarkup.js +50 -0
  917. package/esm/util/reorder.d.ts +35 -0
  918. package/esm/util/reorder.js +83 -0
  919. package/esm/util/resolveRowHeight.d.ts +27 -0
  920. package/esm/util/resolveRowHeight.js +30 -0
  921. package/esm/util/revlist.d.ts +13 -0
  922. package/esm/util/revlist.js +14 -0
  923. package/esm/util/rowStackGeometry.d.ts +66 -0
  924. package/esm/util/rowStackGeometry.js +70 -0
  925. package/esm/util/rpc.d.ts +16 -1
  926. package/esm/util/rpc.js +12 -1
  927. package/esm/util/rxjs.d.ts +14 -1
  928. package/esm/util/rxjs.js +39 -10
  929. package/esm/util/sameStrings.d.ts +16 -0
  930. package/esm/util/sameStrings.js +20 -0
  931. package/esm/util/scrollLatch.d.ts +4 -0
  932. package/esm/util/scrollLatch.js +59 -0
  933. package/esm/util/selectNamedRegions.d.ts +136 -0
  934. package/esm/util/selectNamedRegions.js +222 -0
  935. package/esm/util/seqUtils.d.ts +17 -0
  936. package/esm/util/seqUtils.js +80 -0
  937. package/esm/util/sessionServices.d.ts +29 -0
  938. package/esm/util/sessionServices.js +46 -0
  939. package/esm/util/sessionSharing.d.ts +38 -0
  940. package/esm/util/sessionSharing.js +154 -0
  941. package/esm/util/sessionStorage.d.ts +1 -0
  942. package/esm/util/sessionStorage.js +15 -0
  943. package/esm/util/setStackTraceLimit.d.ts +6 -0
  944. package/esm/util/setStackTraceLimit.js +20 -0
  945. package/esm/util/simpleFeature.d.ts +112 -4
  946. package/esm/util/simpleFeature.js +181 -29
  947. package/esm/util/springAnimate.d.ts +20 -0
  948. package/esm/util/springAnimate.js +80 -0
  949. package/esm/util/stats.d.ts +25 -2
  950. package/esm/util/stats.js +39 -8
  951. package/esm/util/stopToken.d.ts +207 -15
  952. package/esm/util/stopToken.js +403 -55
  953. package/esm/util/stringUtils.d.ts +5 -0
  954. package/esm/util/stringUtils.js +34 -0
  955. package/esm/util/svgColorProps.d.ts +7 -0
  956. package/esm/util/svgColorProps.js +28 -0
  957. package/esm/util/tabix.d.ts +120 -0
  958. package/esm/util/tabix.js +143 -0
  959. package/esm/util/tags.d.ts +2 -0
  960. package/esm/util/tags.js +5 -0
  961. package/esm/util/temporaryAssembly.d.ts +21 -0
  962. package/esm/util/temporaryAssembly.js +29 -0
  963. package/esm/util/tickLabels.d.ts +36 -0
  964. package/esm/util/tickLabels.js +45 -0
  965. package/esm/util/timeGate.d.ts +26 -0
  966. package/esm/util/timeGate.js +79 -0
  967. package/esm/util/trackConfigDelta.d.ts +84 -0
  968. package/esm/util/trackConfigDelta.js +190 -0
  969. package/esm/util/tracks.d.ts +352 -32
  970. package/esm/util/tracks.js +576 -194
  971. package/esm/util/tss-react/cssAndCx.js +11 -66
  972. package/esm/util/tss-react/index.d.ts +11 -2
  973. package/esm/util/tss-react/index.js +9 -2
  974. package/esm/util/tss-react/makeStyles.js +7 -4
  975. package/esm/util/tss-react/mergeClasses.js +1 -0
  976. package/esm/util/tss-react/tools/classnames.d.ts +3 -0
  977. package/esm/util/tss-react/tools/classnames.js +3 -0
  978. package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
  979. package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
  980. package/esm/util/tss-react/types.d.ts +1 -1
  981. package/esm/util/tss-react/types.js +1 -6
  982. package/esm/util/types/ElementId.js +1 -1
  983. package/esm/util/types/data.d.ts +75 -0
  984. package/esm/util/types/data.js +41 -0
  985. package/esm/util/types/index.d.ts +358 -119
  986. package/esm/util/types/index.js +87 -64
  987. package/esm/util/types/isAny.d.ts +11 -0
  988. package/esm/util/types/isAny.js +1 -0
  989. package/esm/util/types/mst.d.ts +71 -47
  990. package/esm/util/types/mst.js +27 -22
  991. package/esm/util/types/predicate.d.ts +9 -0
  992. package/esm/util/types/predicate.js +1 -0
  993. package/esm/util/types/renderingServices.d.ts +16 -0
  994. package/esm/util/types/renderingServices.js +1 -0
  995. package/esm/util/types/services.d.ts +55 -0
  996. package/esm/util/types/services.js +10 -0
  997. package/esm/util/types/util.d.ts +8 -2
  998. package/esm/util/unzip.d.ts +1 -0
  999. package/esm/util/unzip.js +6 -0
  1000. package/esm/util/useEventCallback.d.ts +1 -0
  1001. package/esm/util/useEventCallback.js +16 -0
  1002. package/esm/util/useFeatureSequence.d.ts +13 -7
  1003. package/esm/util/useFeatureSequence.js +56 -78
  1004. package/esm/util/useFetch.d.ts +56 -0
  1005. package/esm/util/useFetch.js +188 -0
  1006. package/esm/util/useFetchPlugins.d.ts +12 -0
  1007. package/esm/util/useFetchPlugins.js +14 -0
  1008. package/esm/util/useMeasure.d.ts +11 -1
  1009. package/esm/util/useMeasure.js +20 -6
  1010. package/esm/util/usePanZoom.d.ts +75 -0
  1011. package/esm/util/usePanZoom.js +175 -0
  1012. package/esm/util/usePanelVirtualScroll.d.ts +37 -0
  1013. package/esm/util/usePanelVirtualScroll.js +42 -0
  1014. package/esm/util/usePointerDrag.d.ts +37 -0
  1015. package/esm/util/usePointerDrag.js +61 -0
  1016. package/esm/util/useRafCommit.d.ts +4 -0
  1017. package/esm/util/useRafCommit.js +50 -0
  1018. package/esm/util/useResizeDrag.d.ts +91 -0
  1019. package/esm/util/useResizeDrag.js +105 -0
  1020. package/esm/util/useRowVirtualScroll.d.ts +32 -0
  1021. package/esm/util/useRowVirtualScroll.js +63 -0
  1022. package/esm/util/useVirtualScrollWheel.d.ts +7 -0
  1023. package/esm/util/useVirtualScrollWheel.js +108 -0
  1024. package/esm/util/viewStatus.d.ts +58 -0
  1025. package/esm/util/viewStatus.js +20 -0
  1026. package/esm/util/virtualRange.d.ts +36 -0
  1027. package/esm/util/virtualRange.js +26 -0
  1028. package/esm/util/webStorage.d.ts +26 -0
  1029. package/esm/util/webStorage.js +92 -0
  1030. package/esm/util/wheelZoom.d.ts +59 -0
  1031. package/esm/util/wheelZoom.js +231 -0
  1032. package/esm/util/whenViewSettled.d.ts +27 -0
  1033. package/esm/util/whenViewSettled.js +28 -0
  1034. package/esm/util/withFeatureDetails.d.ts +34 -0
  1035. package/esm/util/withFeatureDetails.js +59 -0
  1036. package/package.json +240 -820
  1037. package/esm/ReExports/DataGrid.d.ts +0 -1
  1038. package/esm/ReExports/DataGrid.js +0 -1
  1039. package/esm/configuration/util.d.ts +0 -10
  1040. package/esm/configuration/util.js +0 -123
  1041. package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
  1042. package/esm/data_adapters/util.d.ts +0 -1
  1043. package/esm/data_adapters/util.js +0 -6
  1044. package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
  1045. package/esm/pluggableElementTypes/GlyphType.js +0 -18
  1046. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
  1047. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
  1048. package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
  1049. package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
  1050. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
  1051. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
  1052. package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
  1053. package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
  1054. package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
  1055. package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
  1056. package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
  1057. package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
  1058. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
  1059. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
  1060. package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
  1061. package/esm/pluggableElementTypes/renderers/index.js +0 -6
  1062. package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
  1063. package/esm/pluggableElementTypes/renderers/util.js +0 -14
  1064. package/esm/rpc/baseRpcConfig.d.ts +0 -8
  1065. package/esm/rpc/baseRpcConfig.js +0 -10
  1066. package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
  1067. package/esm/rpc/mainThreadRpcConfig.js +0 -8
  1068. package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
  1069. package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
  1070. package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
  1071. package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
  1072. package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
  1073. package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
  1074. package/esm/rpc/methods/CoreRender.d.ts +0 -14
  1075. package/esm/rpc/methods/CoreRender.js +0 -40
  1076. package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
  1077. package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
  1078. package/esm/rpc/methods/util.d.ts +0 -15
  1079. package/esm/rpc/methods/util.js +0 -7
  1080. package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
  1081. package/esm/rpc/webWorkerRpcConfig.js +0 -8
  1082. package/esm/ui/MenuButton.d.ts +0 -1
  1083. package/esm/ui/MenuButton.js +0 -1
  1084. package/esm/ui/MenuItems.d.ts +0 -15
  1085. package/esm/ui/MenuItems.js +0 -59
  1086. package/esm/ui/useEvent.d.ts +0 -1
  1087. package/esm/ui/useEvent.js +0 -10
  1088. package/esm/util/blobToDataURL.d.ts +0 -1
  1089. package/esm/util/blobToDataURL.js +0 -14
  1090. package/esm/util/compositeMap.d.ts +0 -11
  1091. package/esm/util/compositeMap.js +0 -59
  1092. package/esm/util/flatqueue/index.d.ts +0 -11
  1093. package/esm/util/flatqueue/index.js +0 -61
  1094. package/esm/util/layouts/BaseLayout.d.ts +0 -30
  1095. package/esm/util/layouts/MultiLayout.d.ts +0 -12
  1096. package/esm/util/layouts/MultiLayout.js +0 -40
  1097. package/esm/util/layouts/PileupLayout.d.ts +0 -41
  1098. package/esm/util/layouts/PileupLayout.js +0 -202
  1099. package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
  1100. package/esm/util/layouts/PrecomputedLayout.js +0 -71
  1101. package/esm/util/layouts/SceneGraph.d.ts +0 -31
  1102. package/esm/util/layouts/SceneGraph.js +0 -121
  1103. package/esm/util/makeAbortableReaction.d.ts +0 -3
  1104. package/esm/util/makeAbortableReaction.js +0 -47
  1105. package/esm/util/map-obj/index.d.ts +0 -13
  1106. package/esm/util/map-obj/index.js +0 -92
  1107. package/esm/util/nextTick.d.ts +0 -1
  1108. package/esm/util/nextTick.js +0 -3
  1109. package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
  1110. package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
  1111. package/esm/util/offscreenCanvasUtils.d.ts +0 -12
  1112. package/esm/util/offscreenCanvasUtils.js +0 -19
  1113. package/esm/util/renderToAbstractCanvas.d.ts +0 -17
  1114. package/esm/util/renderToAbstractCanvas.js +0 -53
  1115. package/esm/util/transferables.d.ts +0 -2
  1116. package/esm/util/transferables.js +0 -35
  1117. package/esm/util/tss-react/mui/index.d.ts +0 -1
  1118. package/esm/util/tss-react/mui/index.js +0 -1
  1119. package/esm/util/tss-react/mui/mui.d.ts +0 -10
  1120. package/esm/util/tss-react/mui/mui.js +0 -5
  1121. package/esm/util/when.d.ts +0 -1
  1122. package/esm/util/when.js +0 -1
  1123. /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
  1124. /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
@@ -1,3 +1,44 @@
1
+ /**
2
+ * fast low-level intersection of 2 coordinate ranges. assumes interbase coordinates.
3
+ *
4
+ * assumes `left <= right` for both ranges
5
+ *
6
+ * @returns array of [left, right], or [] if the ranges do not intersect. the choice of [] is because it allows destructuring array assignment without check for undefined return
7
+ */
1
8
  export declare function intersection2(left1: number, right1: number, left2: number, right2: number): [number, number] | [];
9
+ /**
10
+ * Return whether 2 interbase coordinate ranges intersect.
11
+ *
12
+ * @param left1 -
13
+ * @param right1 -
14
+ * @param left2 -
15
+ * @param right2 -
16
+ *
17
+ * @returns true if the two ranges intersect
18
+ */
2
19
  export declare function doesIntersect2(left1: number, right1: number, left2: number, right2: number): boolean;
3
- export declare function isContainedWithin(left1: number, right1: number, left2: number, right2: number): boolean;
20
+ /**
21
+ * Compute the expanded fetch range a tabix adapter must "redispatch" to when
22
+ * features found in a query extend past the requested window. Returns the union
23
+ * of the query with the bounds of every feature whose type is not in
24
+ * `dontRedispatchSet`, or `undefined` when nothing extends past the query (no
25
+ * redispatch needed).
26
+ *
27
+ * Feature coordinates arrive interbase, matching the query: @gmod/tabix applies
28
+ * the index's coordinate offset before invoking the line callback, so a GFF/GTF
29
+ * line's 1-based start is already decremented by the time it gets here.
30
+ *
31
+ * Seeding the accumulator with the query bounds is what makes the result a
32
+ * union rather than just the feature bounds. A redispatch narrower than the
33
+ * original window would drop a dontRedispatch-typed feature that the first
34
+ * fetch found inside the query but that falls outside the expanded range, since
35
+ * those types are deliberately excluded from the bounds.
36
+ */
37
+ export declare function calculateRedispatchRange(features: {
38
+ start: number;
39
+ end: number;
40
+ type: string;
41
+ }[], dontRedispatchSet: Set<string>, queryStart: number, queryEnd: number): {
42
+ start: number;
43
+ end: number;
44
+ } | undefined;
package/esm/util/range.js CHANGED
@@ -1,21 +1,78 @@
1
+ /**
2
+ * fast low-level intersection of 2 coordinate ranges. assumes interbase coordinates.
3
+ *
4
+ * assumes `left <= right` for both ranges
5
+ *
6
+ * @returns array of [left, right], or [] if the ranges do not intersect. the choice of [] is because it allows destructuring array assignment without check for undefined return
7
+ */
1
8
  export function intersection2(left1, right1, left2, right2) {
9
+ // this code is verbose because "if" statements are faster than Math.min and Math.max
2
10
  if (right1 > left2 && left1 < right2 && right2 - left2 && right1 - left1) {
3
11
  if (left1 > left2) {
4
12
  if (right1 < right2) {
13
+ // 1 |-------|
14
+ // |------------|
5
15
  return [left1, right1];
6
16
  }
17
+ // 2 |----|
18
+ // |------|
7
19
  return [left1, right2];
8
20
  }
9
21
  if (right1 < right2) {
22
+ // 3 |-----|
23
+ // |------|
10
24
  return [left2, right1];
11
25
  }
26
+ // 4 |------------|
27
+ // |-------|
12
28
  return [left2, right2];
13
29
  }
14
30
  return [];
15
31
  }
32
+ /**
33
+ * Return whether 2 interbase coordinate ranges intersect.
34
+ *
35
+ * @param left1 -
36
+ * @param right1 -
37
+ * @param left2 -
38
+ * @param right2 -
39
+ *
40
+ * @returns true if the two ranges intersect
41
+ */
16
42
  export function doesIntersect2(left1, right1, left2, right2) {
17
43
  return right1 > left2 && left1 < right2;
18
44
  }
19
- export function isContainedWithin(left1, right1, left2, right2) {
20
- return left2 <= left1 && right2 >= right1;
45
+ /**
46
+ * Compute the expanded fetch range a tabix adapter must "redispatch" to when
47
+ * features found in a query extend past the requested window. Returns the union
48
+ * of the query with the bounds of every feature whose type is not in
49
+ * `dontRedispatchSet`, or `undefined` when nothing extends past the query (no
50
+ * redispatch needed).
51
+ *
52
+ * Feature coordinates arrive interbase, matching the query: @gmod/tabix applies
53
+ * the index's coordinate offset before invoking the line callback, so a GFF/GTF
54
+ * line's 1-based start is already decremented by the time it gets here.
55
+ *
56
+ * Seeding the accumulator with the query bounds is what makes the result a
57
+ * union rather than just the feature bounds. A redispatch narrower than the
58
+ * original window would drop a dontRedispatch-typed feature that the first
59
+ * fetch found inside the query but that falls outside the expanded range, since
60
+ * those types are deliberately excluded from the bounds.
61
+ */
62
+ export function calculateRedispatchRange(features, dontRedispatchSet, queryStart, queryEnd) {
63
+ let minStart = queryStart;
64
+ let maxEnd = queryEnd;
65
+ for (const feature of features) {
66
+ if (!dontRedispatchSet.has(feature.type)) {
67
+ if (feature.start < minStart) {
68
+ minStart = feature.start;
69
+ }
70
+ if (feature.end > maxEnd) {
71
+ maxEnd = feature.end;
72
+ }
73
+ }
74
+ }
75
+ return minStart < queryStart || maxEnd > queryEnd
76
+ ? { start: minStart, end: maxEnd }
77
+ : undefined;
21
78
  }
@@ -0,0 +1,21 @@
1
+ import type { StatusCallback } from './progress.ts';
2
+ import type { StopToken } from './stopToken.ts';
3
+ import type { AssemblyManager, Region } from './types/index.ts';
4
+ import type { Region as MUIRegion } from './types/mst.ts';
5
+ import type { Instance } from '@jbrowse/mobx-state-tree';
6
+ export declare function renameRegionIfNeeded(refNameMap: Record<string, string> | undefined, region: Region | Instance<typeof MUIRegion>, getSeqAdapterRefName?: (refName: string) => string): Region & {
7
+ originalRefName?: string;
8
+ };
9
+ export declare function renameRegionsIfNeeded<ARGTYPE extends {
10
+ assemblyName?: string;
11
+ regions?: Region[];
12
+ stopToken?: StopToken;
13
+ adapterConfig: Record<string, unknown>;
14
+ sessionId: string;
15
+ statusCallback?: StatusCallback;
16
+ }>(assemblyManager: AssemblyManager, args: ARGTYPE): Promise<ARGTYPE & {
17
+ sequenceAdapter: Record<string, unknown> | undefined;
18
+ regions: (Region & {
19
+ originalRefName?: string;
20
+ })[];
21
+ }>;
@@ -0,0 +1,129 @@
1
+ import { getSnapshot, isAlive, isStateTreeNode } from '@jbrowse/mobx-state-tree';
2
+ import { getSequenceAdapterConfig } from '../assemblyManager/getSequenceAdapterConfig.js';
3
+ // Maps a region's refName to the track adapter's name (via refNameMap), and
4
+ // sets originalRefName to the seq adapter (FASTA) name so that CRAM/BAM
5
+ // adapters can fetch reference sequence correctly.
6
+ //
7
+ // This is DESTRUCTIVE, and it runs inside `serializeArguments` — so the array
8
+ // that reaches a worker is not the one the display handed to `rpcManager.call`,
9
+ // with no cue at the call site. `refName` means the assembly's canonical name
10
+ // before this and the track adapter's name after, in the same field of the same
11
+ // type. Renaming is required for anything the worker compares or fetches
12
+ // against the file, and wrong for anything it hands back as user-facing text: a
13
+ // worker that labels a locus from its own output must be given the view's names
14
+ // separately, captured before the call (hic's `HicViewBlock` does this, because
15
+ // its hover prints a locus directly under the ruler). `originalRefName` is NOT
16
+ // that name — it is a third scheme, the FASTA's, load-bearing for CRAM/BAM
17
+ // reference fetch.
18
+ //
19
+ // That third scheme is the general case in miniature, and worth naming: a
20
+ // rename is a property of an (assembly, adapter) PAIR, and this renames against
21
+ // exactly one adapter — `args.adapterConfig`. An RPC that reaches a SECOND file
22
+ // gets no renaming for it, and the failure is silent in the usual way: the query
23
+ // goes out under the first file's spelling, matches nothing, and reads as "no
24
+ // data here". So an RPC naming two adapters needs two passes, not one.
25
+ //
26
+ // **Prefer giving the second file its own RPC**, where `adapterConfig` names the
27
+ // file being read and the ordinary pass is simply right — MAF's annotation
28
+ // overlay is called that way. Thread a second name only when the two results
29
+ // cannot be joined by the caller: GWAS LD coloring can't, because the r²-to-
30
+ // feature join is per feature and features never cross the boundary, so it
31
+ // resolves a second pass in `serializeArguments` and ships `ldRefName`
32
+ // (`plugins/gwas/src/ManhattanRPC/GetManhattanData.ts`). That and
33
+ // `originalRefName` are the only two, and there is no reason to expect a third:
34
+ // a sub-adapter is normally the same data in another form, named the same way.
35
+ export function renameRegionIfNeeded(refNameMap, region, getSeqAdapterRefName) {
36
+ const isNode = isStateTreeNode(region);
37
+ if (isNode && !isAlive(region)) {
38
+ return region;
39
+ }
40
+ const newRef = refNameMap?.[region.refName];
41
+ if (newRef) {
42
+ return {
43
+ ...(isNode ? getSnapshot(region) : region),
44
+ refName: newRef,
45
+ originalRefName: getSeqAdapterRefName?.(region.refName) ?? region.refName,
46
+ };
47
+ }
48
+ return region;
49
+ }
50
+ // Region-shaped enough that, if it slipped through under a `region` key, it was
51
+ // meant to be renamed. Used only by the guard below.
52
+ function isRegionShaped(r) {
53
+ return (!!r &&
54
+ typeof r === 'object' &&
55
+ 'refName' in r &&
56
+ 'assemblyName' in r &&
57
+ 'start' in r &&
58
+ 'end' in r);
59
+ }
60
+ export async function renameRegionsIfNeeded(assemblyManager, args) {
61
+ const { regions = [], adapterConfig } = args;
62
+ if (!args.sessionId) {
63
+ throw new Error('sessionId is required');
64
+ }
65
+ // Renaming only ever touches the `regions` array. An RPC method that instead
66
+ // carries a singular `region` (e.g. by pairing a one-region wire contract
67
+ // with a *plural* rename base class) would silently fetch against un-renamed
68
+ // refNames — the exact bug where an assembly's `5` never maps to an adapter's
69
+ // `chr5`. The legitimate singular base class (RpcMethodTypeWithRenameRegion)
70
+ // always mirrors `region` into a populated `regions`, so flag only the
71
+ // un-mirrored case and fail loudly instead of returning wrong data.
72
+ if (regions.length === 0 &&
73
+ isRegionShaped(args.region)) {
74
+ throw new Error('renameRegionsIfNeeded got a singular `region` but no `regions` array; ' +
75
+ 'refName renaming applies only to `regions`. Pass `regions: [region]` ' +
76
+ '(or extend RpcMethodTypeWithRenameRegion) so the region is renamed.');
77
+ }
78
+ // capture assembly names before the await, since MST regions may be dead after
79
+ const assemblyNames = regions.map(r => r.assemblyName);
80
+ const uniqueAssemblyNames = [...new Set(assemblyNames)];
81
+ // annotated, because Object.fromEntries over an array whose element type is
82
+ // not a tuple selects its `any` overload — which left refNameMap and
83
+ // getSeqAdapterRefName unchecked all the way to renameRegionIfNeeded
84
+ const assemblyData = Object.fromEntries(await Promise.all(uniqueAssemblyNames.map(async (name) => {
85
+ // resolve the assembly once via requireAssembly (which awaits both
86
+ // registration and load) and derive the refName map AND
87
+ // getSeqAdapterRefName from this single loaded handle. A synchronous
88
+ // assemblyManager.get() here could miss an assembly still being
89
+ // registered, leaving getSeqAdapterRefName undefined so
90
+ // originalRefName (used by CRAM/BAM to fetch reference bases) falls
91
+ // back to the canonical name instead of the FASTA name.
92
+ //
93
+ // require, not wait: a region names an assembly, so failing to
94
+ // resolve it is not "nothing to rename", it is renaming that cannot
95
+ // be done. Substituting an empty map leaves the adapter querying
96
+ // un-renamed refNames, which finds nothing and draws an empty track
97
+ // with no indication that the assembly is what is missing. Only an
98
+ // unnamed assembly is a legitimate no-op.
99
+ const assembly = name
100
+ ? await assemblyManager.requireAssembly(name)
101
+ : undefined;
102
+ return [
103
+ name,
104
+ {
105
+ refNameMap: assembly
106
+ ? await assembly.getRefNameMapForAdapter(adapterConfig, args)
107
+ : {},
108
+ getSeqAdapterRefName: assembly
109
+ ? (r) => assembly.getSeqAdapterRefName(r)
110
+ : undefined,
111
+ sequenceAdapter: getSequenceAdapterConfig(assembly),
112
+ },
113
+ ];
114
+ })));
115
+ return {
116
+ ...args,
117
+ // Supplied here, not by each caller: this is the one place that has already
118
+ // resolved the assembly a fetch is against, and it is the same handle
119
+ // `originalRefName` is a name into. Every caller that passed its own wrote
120
+ // these same two lines, and the three that forgot — `CoreGetExportData`,
121
+ // `BreakpointGetFeatures`, `fetchTrackData` — failed silently, saved only by
122
+ // whichever call happened to prime the adapter instance first.
123
+ sequenceAdapter: assemblyData[assemblyNames[0]]?.sequenceAdapter,
124
+ regions: regions.map((region, i) => {
125
+ const data = assemblyData[assemblyNames[i]];
126
+ return renameRegionIfNeeded(data?.refNameMap, region, data?.getSeqAdapterRefName);
127
+ }),
128
+ };
129
+ }
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare function renderToStaticMarkup(node: React.ReactElement): string;
@@ -0,0 +1,50 @@
1
+ import React from 'react';
2
+ import createCache from '@emotion/cache';
3
+ import { CacheProvider } from '@emotion/react';
4
+ import { flushSync } from 'react-dom';
5
+ import { createRoot } from 'react-dom/client';
6
+ // Deliberately not re-exported from the `util` barrel: it is the barrel's only
7
+ // reason to pull react/react-dom/@emotion, and the barrel is imported by
8
+ // worker-side adapter code that never renders.
9
+ //
10
+ // https://react.dev/reference/react-dom/server/renderToString#removing-rendertostring-from-the-client-code
11
+ export function renderToStaticMarkup(node) {
12
+ const div = document.createElement('div');
13
+ // makeStyles components (via __unsafe_useEmotionCache) need an emotion cache
14
+ // in context. The browser has an ambient default cache, but node/jsdom (e.g.
15
+ // jbrowse-img) loads @emotion/react before `document` exists, so its default
16
+ // cache context is null — provide one explicitly here.
17
+ const cache = createCache({ key: 'css' });
18
+ const root = createRoot(div);
19
+ let html;
20
+ try {
21
+ // eslint-disable-next-line @eslint-react/dom-no-flush-sync
22
+ flushSync(() => {
23
+ root.render(React.createElement(CacheProvider, { value: cache }, node));
24
+ });
25
+ html = div.innerHTML;
26
+ }
27
+ finally {
28
+ // This is a *real* client root, not a server render: its effects run, so
29
+ // every `observer` in the tree ends up with a live MobX reaction. Leaving
30
+ // the root mounted therefore keeps the whole detached export tree — and an
31
+ // SVG export of a full view is tens of thousands of nodes — subscribed to
32
+ // the session's models for the rest of the session, re-rendering it into a
33
+ // dead <div> on every pan and zoom, once per export ever taken. Unmount
34
+ // once the markup is a string, which no longer depends on the DOM.
35
+ root.unmount();
36
+ }
37
+ // SVG 1.1 presentation attributes (`fill`, `stroke`) take a <color>, which
38
+ // does not include rgba() — alpha belongs in a separate fill-opacity /
39
+ // stroke-opacity. Illustrator and older Inkscape drop an element whose fill
40
+ // they cannot parse, so the alpha is stripped rather than left to break the
41
+ // whole shape. It is *dropped*, not converted, so a translucent color exports
42
+ // fully opaque: components that need transparency to survive set a separate
43
+ // opacity attribute instead (`CrossHatches`, `MultiWiggleOverlayLines`).
44
+ //
45
+ // Rewriting `fill="rgba(r,g,b,a)"` into `fill="rgb(r,g,b)" fill-opacity="a"`
46
+ // would preserve the appearance and let those two drop their workarounds, but
47
+ // it changes the pixels of every export carrying an rgba color, so it needs a
48
+ // visual pass before the snapshots are regenerated.
49
+ return html.replaceAll(/\brgba\((.+?),[^,]+?\)/g, 'rgb($1)');
50
+ }
@@ -0,0 +1,35 @@
1
+ export type ReorderDirection = 'up' | 'down' | 'top' | 'bottom';
2
+ /**
3
+ * Move `idx` within the subsequence of `arr` that `inScope` selects, leaving
4
+ * every out-of-scope element where it sits.
5
+ *
6
+ * The scoped move: one list holds everything, but a move is only ever relative
7
+ * to a subset of it. "Move this view up" in a tabbed workspace means up past the
8
+ * previous view IN THIS PANEL, not past whatever happens to precede it in
9
+ * `session.views` — which may be in another panel entirely and would make the
10
+ * move look like a no-op.
11
+ *
12
+ * Implemented as a permutation of the in-scope positions: pull out the in-scope
13
+ * elements, reorder that list, then write it back into the same index slots.
14
+ * That is what keeps out-of-scope elements pinned, and what makes an unscoped
15
+ * move (everything in scope) exactly `reorder`.
16
+ */
17
+ export declare function reorderWithin<T>(arr: readonly T[], idx: number, direction: ReorderDirection, inScope: (item: T, index: number) => boolean): T[];
18
+ /**
19
+ * Move the element at `idx` within `arr` in the given direction, returning a new
20
+ * array. An edge move (already at top/bottom) returns an unchanged copy.
21
+ */
22
+ export declare function reorder<T>(arr: readonly T[], idx: number, direction: ReorderDirection): T[];
23
+ /**
24
+ * Put the elements whose id appears in `ids` into that relative order, leaving
25
+ * every other element in its own slot.
26
+ *
27
+ * The same slot permutation `reorderWithin` performs, driven by a stated order
28
+ * rather than by a direction. It exists because an order can arrive in another
29
+ * vocabulary entirely — a session spec's `layout` names views per panel, top to
30
+ * bottom — and there is one list that order has to land in.
31
+ *
32
+ * Elements named in `ids` but absent from `arr` are ignored, so a layout may
33
+ * name a view that failed to open.
34
+ */
35
+ export declare function applyOrderWithin<T>(arr: readonly T[], ids: readonly string[], getId: (item: T) => string): T[];
@@ -0,0 +1,83 @@
1
+ /**
2
+ * Move `idx` within the subsequence of `arr` that `inScope` selects, leaving
3
+ * every out-of-scope element where it sits.
4
+ *
5
+ * The scoped move: one list holds everything, but a move is only ever relative
6
+ * to a subset of it. "Move this view up" in a tabbed workspace means up past the
7
+ * previous view IN THIS PANEL, not past whatever happens to precede it in
8
+ * `session.views` — which may be in another panel entirely and would make the
9
+ * move look like a no-op.
10
+ *
11
+ * Implemented as a permutation of the in-scope positions: pull out the in-scope
12
+ * elements, reorder that list, then write it back into the same index slots.
13
+ * That is what keeps out-of-scope elements pinned, and what makes an unscoped
14
+ * move (everything in scope) exactly `reorder`.
15
+ */
16
+ export function reorderWithin(arr, idx, direction, inScope) {
17
+ const slots = [];
18
+ const scoped = [];
19
+ for (const [i, item] of arr.entries()) {
20
+ if (inScope(item, i)) {
21
+ slots.push(i);
22
+ scoped.push(item);
23
+ }
24
+ }
25
+ const scopedIdx = slots.indexOf(idx);
26
+ if (scopedIdx === -1) {
27
+ return [...arr];
28
+ }
29
+ const moved = reorder(scoped, scopedIdx, direction);
30
+ const next = [...arr];
31
+ for (const [i, slot] of slots.entries()) {
32
+ next[slot] = moved[i];
33
+ }
34
+ return next;
35
+ }
36
+ /**
37
+ * Move the element at `idx` within `arr` in the given direction, returning a new
38
+ * array. An edge move (already at top/bottom) returns an unchanged copy.
39
+ */
40
+ export function reorder(arr, idx, direction) {
41
+ const next = [...arr];
42
+ if (idx >= 0 && idx < arr.length) {
43
+ const [item] = next.splice(idx, 1);
44
+ const target = direction === 'up'
45
+ ? Math.max(0, idx - 1)
46
+ : direction === 'down'
47
+ ? Math.min(arr.length - 1, idx + 1)
48
+ : direction === 'top'
49
+ ? 0
50
+ : arr.length - 1;
51
+ next.splice(target, 0, item);
52
+ }
53
+ return next;
54
+ }
55
+ /**
56
+ * Put the elements whose id appears in `ids` into that relative order, leaving
57
+ * every other element in its own slot.
58
+ *
59
+ * The same slot permutation `reorderWithin` performs, driven by a stated order
60
+ * rather than by a direction. It exists because an order can arrive in another
61
+ * vocabulary entirely — a session spec's `layout` names views per panel, top to
62
+ * bottom — and there is one list that order has to land in.
63
+ *
64
+ * Elements named in `ids` but absent from `arr` are ignored, so a layout may
65
+ * name a view that failed to open.
66
+ */
67
+ export function applyOrderWithin(arr, ids, getId) {
68
+ const rank = new Map(ids.map((id, i) => [id, i]));
69
+ const slots = [];
70
+ for (const [i, item] of arr.entries()) {
71
+ if (rank.has(getId(item))) {
72
+ slots.push(i);
73
+ }
74
+ }
75
+ const ordered = slots
76
+ .map(i => arr[i])
77
+ .sort((a, b) => rank.get(getId(a)) - rank.get(getId(b)));
78
+ const next = [...arr];
79
+ for (const [i, slot] of slots.entries()) {
80
+ next[slot] = ordered[i];
81
+ }
82
+ return next;
83
+ }
@@ -0,0 +1,27 @@
1
+ /**
2
+ * Resolve a multi-row display's raw `rowHeight` setting, where `0` is the
3
+ * fit-to-display-height sentinel, into the px height consumers actually draw
4
+ * with and divide by. The other half of the contract `applyRowResizeWheel` and
5
+ * tree-sidebar's `TreeDrawingModel` both spell `effectiveRowHeight` — see
6
+ * agent-docs/reference/ROW_HEIGHT_AND_FIT.md.
7
+ *
8
+ * Two rules, and they pull in opposite directions, which is why they live here
9
+ * rather than being restated per display:
10
+ *
11
+ * - **A sub-pixel fit height is legitimate and must pass through.** A cohort
12
+ * with more rows than the display has pixels genuinely has a fractional row
13
+ * height, and flooring it makes the content taller than the height it was
14
+ * asked to fit inside — which re-grows the track and makes fit mode report a
15
+ * scroll it is documented never to have. (2000 species floored to 1px re-grew
16
+ * a MAF track to 2045px; the same regression hit the variant displays.) So
17
+ * `autoRowHeight` itself is never floored.
18
+ * - **The resolved value must never be non-positive.** Consumers divide by it
19
+ * (`rowAtY`, the hit tests, the renderers), so a `0` propagates NaN/Infinity.
20
+ * A rows viewport can legitimately reach 0px — the variant matrix's
21
+ * connector-line zone can swallow the whole display height — so this is
22
+ * reachable, and it is the one place the floor belongs.
23
+ *
24
+ * Multi-wiggle is always-fit and has no sentinel to resolve, so it computes its
25
+ * `effectiveRowHeight` directly rather than calling this.
26
+ */
27
+ export declare function resolveRowHeight(rowHeight: number, autoRowHeight: number): number;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Resolve a multi-row display's raw `rowHeight` setting, where `0` is the
3
+ * fit-to-display-height sentinel, into the px height consumers actually draw
4
+ * with and divide by. The other half of the contract `applyRowResizeWheel` and
5
+ * tree-sidebar's `TreeDrawingModel` both spell `effectiveRowHeight` — see
6
+ * agent-docs/reference/ROW_HEIGHT_AND_FIT.md.
7
+ *
8
+ * Two rules, and they pull in opposite directions, which is why they live here
9
+ * rather than being restated per display:
10
+ *
11
+ * - **A sub-pixel fit height is legitimate and must pass through.** A cohort
12
+ * with more rows than the display has pixels genuinely has a fractional row
13
+ * height, and flooring it makes the content taller than the height it was
14
+ * asked to fit inside — which re-grows the track and makes fit mode report a
15
+ * scroll it is documented never to have. (2000 species floored to 1px re-grew
16
+ * a MAF track to 2045px; the same regression hit the variant displays.) So
17
+ * `autoRowHeight` itself is never floored.
18
+ * - **The resolved value must never be non-positive.** Consumers divide by it
19
+ * (`rowAtY`, the hit tests, the renderers), so a `0` propagates NaN/Infinity.
20
+ * A rows viewport can legitimately reach 0px — the variant matrix's
21
+ * connector-line zone can swallow the whole display height — so this is
22
+ * reachable, and it is the one place the floor belongs.
23
+ *
24
+ * Multi-wiggle is always-fit and has no sentinel to resolve, so it computes its
25
+ * `effectiveRowHeight` directly rather than calling this.
26
+ */
27
+ export function resolveRowHeight(rowHeight, autoRowHeight) {
28
+ const height = rowHeight === 0 ? autoRowHeight : rowHeight;
29
+ return height > 0 ? height : 1;
30
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Flip a list of intervals onto the opposite strand of a `seqlen`-long
3
+ * sequence, returning them in ascending order. Every field other than
4
+ * start/end is carried through, so a CDS keeps its phase and type.
5
+ *
6
+ * Its own module because both the sequence helpers and `geneticCodes` need it,
7
+ * and `geneticCodes` importing `seqUtils` for it is what made the two mutually
8
+ * dependent — see the codon-table note in geneticCodes.ts.
9
+ */
10
+ export declare function revlist<T extends {
11
+ start: number;
12
+ end: number;
13
+ }>(list: T[], seqlen: number): T[];
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Flip a list of intervals onto the opposite strand of a `seqlen`-long
3
+ * sequence, returning them in ascending order. Every field other than
4
+ * start/end is carried through, so a CDS keeps its phase and type.
5
+ *
6
+ * Its own module because both the sequence helpers and `geneticCodes` need it,
7
+ * and `geneticCodes` importing `seqUtils` for it is what made the two mutually
8
+ * dependent — see the codon-table note in geneticCodes.ts.
9
+ */
10
+ export function revlist(list, seqlen) {
11
+ return list
12
+ .map(sub => ({ ...sub, start: seqlen - sub.end, end: seqlen - sub.start }))
13
+ .sort((a, b) => a.start - b.start);
14
+ }
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Mouse-Y → row index for the displays that stack rows behind
3
+ * `useRowVirtualScroll`.
4
+ *
5
+ * That hook is what makes the arithmetic subtle, so the reader lives beside it.
6
+ * `applyRowResizeWheel` sets `scrollTop` to `rowUnderMouse * newRowHeight -
7
+ * mouseY` to pin the row under the cursor, which leaves it fractional, and it
8
+ * lets `rowHeight` fall to `viewportHeight / nrow` — sub-pixel on a
9
+ * cohort-sized track. Two rules follow, and each caller used to restate them:
10
+ *
11
+ * - **Ask at the pixel's centre.** Rasterization fills a pixel when its centre
12
+ * falls inside the rect, so the centre is the scanline the colour the reader
13
+ * is pointing at was decided on. The top edge misses by `0.5 / rowHeight`
14
+ * rows — 5.4 of them on a 2,504-sample matrix at the default fit height.
15
+ * - **Floor `mouseY` before adding `scrollTop`.** The canvas draws at
16
+ * `row * rowHeight - scrollTop` with `scrollTop` unrounded; flooring the sum
17
+ * snaps to a pixel grid the content is not on. This is the half a reader gets
18
+ * backwards.
19
+ */
20
+ export interface RowStack {
21
+ /** resolved height, never the 0/fit sentinel — this is divided into */
22
+ rowHeight: number;
23
+ /** unrounded, and routinely fractional */
24
+ scrollTop?: number;
25
+ /** chrome above the rows area, e.g. MAF's stacked bands */
26
+ topOffset?: number;
27
+ }
28
+ /** Content-space Y of the centre of the screen pixel `mouseY` is in. */
29
+ export declare function contentYAt(mouseY: number, stack: RowStack): number;
30
+ /** Continuous row coordinate at `mouseY`; callers round to suit. */
31
+ export declare function rowCoordAt(mouseY: number, stack: RowStack): number;
32
+ /** The row `mouseY` is on. Negative above the rows area, and not range-checked. */
33
+ export declare function rowIndexAt(mouseY: number, stack: RowStack): number;
34
+ /**
35
+ * Half-open `[startRow, endRow)` covered by a vertical px span, ready to
36
+ * `slice` a sample list with.
37
+ *
38
+ * Both ends are the row at that pixel's centre and the range includes both, so
39
+ * a span can never come back empty: a drag straight across one row — which
40
+ * `useDragSelection` supports, gating on X alone — covers the row it is on.
41
+ * Taking `endRow` as the `ceil` of the same coordinate instead collapsed on
42
+ * every exact row boundary, one pixel row in every `rowHeight`.
43
+ */
44
+ export declare function rowSpanAt(y0: number, y1: number, stack: RowStack): {
45
+ startRow: number;
46
+ endRow: number;
47
+ };
48
+ /**
49
+ * The rows whose *drawn* cell covers `mouseY`, nearest first.
50
+ *
51
+ * Row r occupies `[r*rowHeight, r*rowHeight + drawnRowHeight)`.
52
+ * `drawnRowHeight` is the height the painter *resolved* for this `rowHeight`,
53
+ * not the floor it clamps to — pass `drawnCellHeightPx(rowHeight)` from the
54
+ * module generated out of the display's own shader (ADR-051), so what is
55
+ * painted and what is pickable stay one rule. At `rowHeight` above the floor it
56
+ * equals `rowHeight`, the band collapses to `nearest`, and only sub-pixel rows
57
+ * stack several under one drawn pixel — where the last drawn wins, and
58
+ * `nearest` is it.
59
+ *
60
+ * Walking down to `lowest` keeps those rows hoverable when the nearest one has
61
+ * nothing to report.
62
+ */
63
+ export declare function rowsUnderPointer(mouseY: number, stack: RowStack, drawnRowHeight: number): {
64
+ nearest: number;
65
+ lowest: number;
66
+ };