@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,104 +1,107 @@
1
- import { getSnapshot, isStateTreeNode } from '@jbrowse/mobx-state-tree';
2
- import { BlockSet, ContentBlock, ElidedBlock, InterRegionPaddingBlock, } from "./blockTypes.js";
3
- import { assembleLocStringFast } from "./index.js";
4
- import { intersection2 } from "./range.js";
1
+ import { BlockSet } from './blockTypes.js';
2
+ import { intersection2 } from './range.js';
3
+ /**
4
+ * Returns a BlockSet covering only the regions currently visible in the view.
5
+ * Used by tracks where static blocks are not feasible. start/end/offsetPx may
6
+ * be fractional.
7
+ */
5
8
  export default function calculateDynamicBlocks(model, padding = true, elision = true) {
6
- const { offsetPx, displayedRegions, bpPerPx, width, minimumBlockWidth, interRegionPaddingWidth, } = model;
7
- if (!width) {
8
- throw new Error('view has no width, cannot calculate displayed blocks');
9
- }
9
+ const { offsetPx, displayedRegions, bpPerPx, width, minimumBlockWidth } = model;
10
+ // A zero-width view yields an empty BlockSet: intersection2 rejects the
11
+ // degenerate window, so the loop pushes nothing. Mirrors calculateStaticBlocks
12
+ // rather than throwing inside what callers read as a MobX computed.
10
13
  const invBpPerPx = 1 / bpPerPx;
11
14
  const blocks = new BlockSet();
12
15
  let displayedRegionLeftPx = 0;
13
16
  const windowLeftPx = offsetPx;
14
17
  const windowRightPx = windowLeftPx + width;
15
- for (let regionNumber = 0; regionNumber < displayedRegions.length; regionNumber++) {
16
- const region = displayedRegions[regionNumber];
17
- const { assemblyName, refName, start: regionStart, end: regionEnd, reversed, } = region;
18
- const displayedRegionRightPx = displayedRegionLeftPx + (regionEnd - regionStart) * invBpPerPx;
18
+ const lastRegionIndex = displayedRegions.length - 1;
19
+ for (let displayedRegionIndex = 0; displayedRegionIndex < displayedRegions.length; displayedRegionIndex++) {
20
+ // see calculateStaticBlocks: regions are laid out left to right, so nothing
21
+ // past the window's right edge can intersect it
22
+ if (displayedRegionLeftPx > windowRightPx) {
23
+ break;
24
+ }
25
+ const region = displayedRegions[displayedRegionIndex];
26
+ const { start: regionStart, end: regionEnd, reversed } = region;
19
27
  const regionWidthPx = (regionEnd - regionStart) * invBpPerPx;
20
- const parentRegion = isStateTreeNode(region) ? getSnapshot(region) : region;
28
+ const displayedRegionRightPx = displayedRegionLeftPx + regionWidthPx;
21
29
  const [leftPx, rightPx] = intersection2(windowLeftPx, windowRightPx, displayedRegionLeftPx, displayedRegionRightPx);
22
30
  if (leftPx !== undefined && rightPx !== undefined) {
23
- let start;
24
- let end;
25
- let isLeftEndOfDisplayedRegion;
26
- let isRightEndOfDisplayedRegion;
27
- let blockOffsetPx;
28
- if (reversed) {
29
- start = Math.max(regionStart, regionEnd - (rightPx - displayedRegionLeftPx) * bpPerPx);
30
- end = regionEnd - (leftPx - displayedRegionLeftPx) * bpPerPx;
31
- isLeftEndOfDisplayedRegion = end === regionEnd;
32
- isRightEndOfDisplayedRegion = start === regionStart;
33
- blockOffsetPx = displayedRegionLeftPx + (regionEnd - end) * invBpPerPx;
34
- }
35
- else {
36
- start = (leftPx - displayedRegionLeftPx) * bpPerPx + regionStart;
37
- end = Math.min(regionEnd, (rightPx - displayedRegionLeftPx) * bpPerPx + regionStart);
38
- isLeftEndOfDisplayedRegion = start === regionStart;
39
- isRightEndOfDisplayedRegion = end === regionEnd;
40
- blockOffsetPx =
41
- displayedRegionLeftPx + (start - regionStart) * invBpPerPx;
42
- }
31
+ // bp spanned between the region's left edge and the clipped block edges
32
+ const leftBp = (leftPx - displayedRegionLeftPx) * bpPerPx;
33
+ const rightBp = (rightPx - displayedRegionLeftPx) * bpPerPx;
34
+ const start = reversed
35
+ ? Math.max(regionStart, regionEnd - rightBp)
36
+ : regionStart + leftBp;
37
+ const end = reversed
38
+ ? regionEnd - leftBp
39
+ : Math.min(regionEnd, regionStart + rightBp);
40
+ // both reversed/forward offset formulae reduce algebraically to leftPx
41
+ const blockOffsetPx = leftPx;
43
42
  const widthPx = (end - start) * invBpPerPx;
44
- const blockData = {
45
- assemblyName,
46
- refName,
47
- start,
48
- end,
49
- reversed,
50
- offsetPx: blockOffsetPx,
51
- parentRegion,
52
- regionNumber,
53
- widthPx,
54
- isLeftEndOfDisplayedRegion,
55
- isRightEndOfDisplayedRegion,
56
- key: `${assembleLocStringFast({
43
+ // Under minimumBlockWidth this region is elided, and BlockSet merges an
44
+ // elided block into a preceding elided run keeping only its widthPx — so
45
+ // building the key and the block object is work thrown away, which at
46
+ // whole-genome zoom on a fragmented assembly is nearly every region and
47
+ // most of the frame. Two edges keep the skip output-identical: the first
48
+ // region can never take it, because nothing has been pushed for the run
49
+ // to merge into, so its leading padding block still gets built; the last
50
+ // region is held out, because it may still owe a trailing padding block
51
+ // keyed off its own key.
52
+ const merged = elision &&
53
+ regionWidthPx < minimumBlockWidth &&
54
+ displayedRegionIndex !== lastRegionIndex &&
55
+ blocks.growElidedRun(widthPx);
56
+ if (!merged) {
57
+ const { assemblyName, refName } = region;
58
+ // Pixel comparisons avoid the bpPerPx round-trip float drift that can
59
+ // make end !== regionEnd even when the full region is in view.
60
+ const isLeftEndOfDisplayedRegion = leftPx <= displayedRegionLeftPx;
61
+ const isRightEndOfDisplayedRegion = rightPx >= displayedRegionRightPx;
62
+ const key = `${assemblyName}:${refName}:${start}:${end}:${displayedRegionIndex}${reversed ? ':rev' : ''}`;
63
+ if (padding &&
64
+ displayedRegionIndex === 0 &&
65
+ isLeftEndOfDisplayedRegion) {
66
+ blocks.push({
67
+ type: 'InterRegionPaddingBlock',
68
+ key: `${key}-beforeFirstRegion`,
69
+ widthPx: -offsetPx,
70
+ offsetPx: blockOffsetPx + offsetPx,
71
+ variant: 'boundary',
72
+ });
73
+ }
74
+ const data = {
57
75
  assemblyName,
58
76
  refName,
59
77
  start,
60
78
  end,
61
79
  reversed,
62
- })}-${regionNumber}${reversed ? '-reversed' : ''}`,
63
- };
64
- if (padding && blocks.length === 0 && isLeftEndOfDisplayedRegion) {
65
- blocks.push(new InterRegionPaddingBlock({
66
- key: `${blockData.key}-beforeFirstRegion`,
67
- widthPx: -offsetPx,
68
- offsetPx: blockData.offsetPx + offsetPx,
69
- variant: 'boundary',
70
- }));
71
- }
72
- if (elision && regionWidthPx < minimumBlockWidth) {
73
- blocks.push(new ElidedBlock(blockData));
74
- }
75
- else {
76
- blocks.push(new ContentBlock(blockData));
77
- }
78
- if (padding) {
79
- if (regionWidthPx >= minimumBlockWidth &&
80
- blockData.isRightEndOfDisplayedRegion &&
81
- regionNumber < displayedRegions.length - 1) {
82
- blocks.push(new InterRegionPaddingBlock({
83
- key: `${blockData.key}-rightpad`,
84
- widthPx: interRegionPaddingWidth,
85
- offsetPx: blockData.offsetPx + blockData.widthPx,
86
- }));
87
- displayedRegionLeftPx += interRegionPaddingWidth;
88
- }
89
- if (regionNumber === displayedRegions.length - 1 &&
90
- blockData.isRightEndOfDisplayedRegion) {
91
- blockOffsetPx = blockData.offsetPx + blockData.widthPx;
92
- blocks.push(new InterRegionPaddingBlock({
93
- key: `${blockData.key}-afterLastRegion`,
94
- widthPx: width - blockOffsetPx + offsetPx,
95
- offsetPx: blockOffsetPx,
80
+ offsetPx: blockOffsetPx,
81
+ displayedRegionIndex,
82
+ widthPx,
83
+ isLeftEndOfDisplayedRegion,
84
+ isRightEndOfDisplayedRegion,
85
+ key,
86
+ };
87
+ blocks.push(elision && regionWidthPx < minimumBlockWidth
88
+ ? { ...data, type: 'ElidedBlock' }
89
+ : { ...data, type: 'ContentBlock' });
90
+ if (padding &&
91
+ displayedRegionIndex === lastRegionIndex &&
92
+ isRightEndOfDisplayedRegion) {
93
+ const afterOffsetPx = blockOffsetPx + widthPx;
94
+ blocks.push({
95
+ type: 'InterRegionPaddingBlock',
96
+ key: `${key}-afterLastRegion`,
97
+ widthPx: width - afterOffsetPx + offsetPx,
98
+ offsetPx: afterOffsetPx,
96
99
  variant: 'boundary',
97
- }));
100
+ });
98
101
  }
99
102
  }
100
103
  }
101
- displayedRegionLeftPx += (regionEnd - regionStart) * invBpPerPx;
104
+ displayedRegionLeftPx += regionWidthPx;
102
105
  }
103
106
  return blocks;
104
107
  }
@@ -1,5 +1,5 @@
1
1
  import { BlockSet } from './blockTypes.ts';
2
- import type { Region } from './types/index.ts';
2
+ import type { Region } from './types/data.ts';
3
3
  import type { Region as RegionModel } from './types/mst.ts';
4
4
  import type { Instance } from '@jbrowse/mobx-state-tree';
5
5
  export interface Base1DViewModel {
@@ -8,6 +8,5 @@ export interface Base1DViewModel {
8
8
  displayedRegions: (Region | Instance<typeof RegionModel>)[];
9
9
  bpPerPx: number;
10
10
  minimumBlockWidth: number;
11
- interRegionPaddingWidth: number;
12
11
  }
13
- export default function calculateStaticBlocks(model: Base1DViewModel, padding?: boolean, elision?: boolean, extra?: number, width?: number): BlockSet;
12
+ export default function calculateStaticBlocks(model: Base1DViewModel, padding?: boolean, elision?: boolean): BlockSet;
@@ -1,103 +1,80 @@
1
- import { getSnapshot, isStateTreeNode } from '@jbrowse/mobx-state-tree';
2
- import { BlockSet, ContentBlock, ElidedBlock, InterRegionPaddingBlock, } from "./blockTypes.js";
3
- import { assembleLocStringFast } from "./index.js";
4
- export default function calculateStaticBlocks(model, padding = true, elision = true, extra = 0, width = 800) {
5
- const { offsetPx, displayedRegions, bpPerPx, minimumBlockWidth, interRegionPaddingWidth, width: modelWidth, } = model;
1
+ import { BlockSet } from './blockTypes.js';
2
+ const blockSizeCssPx = 800;
3
+ export default function calculateStaticBlocks(model, padding = true, elision = true) {
4
+ const { offsetPx, displayedRegions, bpPerPx, minimumBlockWidth, width: modelWidth, } = model;
6
5
  const windowLeftBp = offsetPx * bpPerPx;
7
6
  const windowRightBp = (offsetPx + modelWidth) * bpPerPx;
8
- const blockSizePx = width;
9
- const blockSizeBp = Math.ceil(blockSizePx * bpPerPx);
7
+ const blockSizeBp = Math.ceil(blockSizeCssPx * bpPerPx);
10
8
  const invBpPerPx = 1 / bpPerPx;
11
9
  const invBlockSizeBp = 1 / blockSizeBp;
12
10
  let regionBpOffset = 0;
13
11
  const blocks = new BlockSet();
14
- for (let regionNumber = 0; regionNumber < displayedRegions.length; regionNumber++) {
15
- const region = displayedRegions[regionNumber];
16
- const { assemblyName, refName, start: regionStart, end: regionEnd, reversed, } = region;
17
- const regionBlockCount = Math.ceil((regionEnd - regionStart) * invBlockSizeBp);
18
- const parentRegion = isStateTreeNode(region) ? getSnapshot(region) : region;
19
- let windowRightBlockNum = Math.floor((windowRightBp - regionBpOffset) * invBlockSizeBp) + extra;
20
- if (windowRightBlockNum >= regionBlockCount) {
21
- windowRightBlockNum = regionBlockCount - 1;
22
- }
23
- let windowLeftBlockNum = Math.floor((windowLeftBp - regionBpOffset) * invBlockSizeBp) - extra;
24
- if (windowLeftBlockNum < 0) {
25
- windowLeftBlockNum = 0;
12
+ for (let displayedRegionIndex = 0; displayedRegionIndex < displayedRegions.length; displayedRegionIndex++) {
13
+ // Regions are laid out left to right, so once the cursor passes the window's
14
+ // right edge nothing further can contribute a block — and the trailing
15
+ // padding block needs the last region to be in view anyway. A whole-genome
16
+ // view holds one region per refName, so without this the loop (and its five
17
+ // MST observable reads per region) runs thousands of times per zoom frame to
18
+ // emit a handful of blocks.
19
+ if (regionBpOffset > windowRightBp) {
20
+ break;
26
21
  }
22
+ const { assemblyName, refName, start: regionStart, end: regionEnd, reversed, } = displayedRegions[displayedRegionIndex];
23
+ const regionBlockCount = Math.ceil((regionEnd - regionStart) * invBlockSizeBp);
24
+ const windowRightBlockNum = Math.min(Math.floor((windowRightBp - regionBpOffset) * invBlockSizeBp), regionBlockCount - 1);
25
+ const windowLeftBlockNum = Math.max(Math.floor((windowLeftBp - regionBpOffset) * invBlockSizeBp), 0);
27
26
  const regionWidthPx = (regionEnd - regionStart) * invBpPerPx;
28
- for (let blockNum = windowLeftBlockNum; blockNum <= windowRightBlockNum; blockNum += 1) {
27
+ for (let blockNum = windowLeftBlockNum; blockNum <= windowRightBlockNum; blockNum++) {
28
+ const isLeftEndOfDisplayedRegion = blockNum === 0;
29
+ const isRightEndOfDisplayedRegion = blockNum === regionBlockCount - 1;
29
30
  let start;
30
31
  let end;
31
- let isLeftEndOfDisplayedRegion;
32
- let isRightEndOfDisplayedRegion;
33
32
  if (reversed) {
34
33
  start = Math.max(regionStart, regionEnd - (blockNum + 1) * blockSizeBp);
35
34
  end = regionEnd - blockNum * blockSizeBp;
36
- isLeftEndOfDisplayedRegion = end === regionEnd;
37
- isRightEndOfDisplayedRegion = start === regionStart;
38
35
  }
39
36
  else {
40
37
  start = regionStart + blockNum * blockSizeBp;
41
38
  end = Math.min(regionEnd, regionStart + (blockNum + 1) * blockSizeBp);
42
- isLeftEndOfDisplayedRegion = start === regionStart;
43
- isRightEndOfDisplayedRegion = end === regionEnd;
44
39
  }
45
40
  const widthPx = (end - start) * invBpPerPx;
46
- const blockData = {
41
+ const blockOffsetPx = (regionBpOffset + blockNum * blockSizeBp) * invBpPerPx;
42
+ const key = `${assemblyName}:${refName}:${start}:${end}:${displayedRegionIndex}${reversed ? ':rev' : ''}`;
43
+ if (padding && displayedRegionIndex === 0 && blockNum === 0) {
44
+ blocks.push({
45
+ type: 'InterRegionPaddingBlock',
46
+ key: `${key}-beforeFirstRegion`,
47
+ widthPx: blockSizeCssPx,
48
+ offsetPx: blockOffsetPx - blockSizeCssPx,
49
+ variant: 'boundary',
50
+ });
51
+ }
52
+ const data = {
47
53
  assemblyName,
48
54
  refName,
49
55
  start,
50
56
  end,
51
57
  reversed,
52
- offsetPx: (regionBpOffset + blockNum * blockSizeBp) * invBpPerPx,
53
- parentRegion,
54
- regionNumber,
58
+ offsetPx: blockOffsetPx,
59
+ displayedRegionIndex,
55
60
  widthPx,
56
61
  isLeftEndOfDisplayedRegion,
57
62
  isRightEndOfDisplayedRegion,
58
- key: `${assembleLocStringFast({
59
- assemblyName,
60
- refName,
61
- start,
62
- end,
63
- reversed,
64
- })}-${regionNumber}${reversed ? '-reversed' : ''}`,
63
+ key,
65
64
  };
66
- if (padding && regionNumber === 0 && blockNum === 0) {
67
- blocks.push(new InterRegionPaddingBlock({
68
- key: `${blockData.key}-beforeFirstRegion`,
69
- widthPx: width,
70
- offsetPx: blockData.offsetPx - width,
65
+ blocks.push(elision && regionWidthPx < minimumBlockWidth
66
+ ? { ...data, type: 'ElidedBlock' }
67
+ : { ...data, type: 'ContentBlock' });
68
+ if (padding &&
69
+ displayedRegionIndex === displayedRegions.length - 1 &&
70
+ isRightEndOfDisplayedRegion) {
71
+ blocks.push({
72
+ type: 'InterRegionPaddingBlock',
73
+ key: `${key}-afterLastRegion`,
74
+ widthPx: blockSizeCssPx,
75
+ offsetPx: blockOffsetPx + widthPx,
71
76
  variant: 'boundary',
72
- }));
73
- }
74
- if (elision && regionWidthPx < minimumBlockWidth) {
75
- blocks.push(new ElidedBlock(blockData));
76
- }
77
- else {
78
- blocks.push(new ContentBlock(blockData));
79
- }
80
- if (padding) {
81
- if (regionWidthPx >= minimumBlockWidth &&
82
- blockData.isRightEndOfDisplayedRegion &&
83
- regionNumber < displayedRegions.length - 1) {
84
- regionBpOffset += interRegionPaddingWidth * bpPerPx;
85
- blocks.push(new InterRegionPaddingBlock({
86
- key: `${blockData.key}-rightpad`,
87
- widthPx: interRegionPaddingWidth,
88
- offsetPx: blockData.offsetPx + blockData.widthPx,
89
- }));
90
- }
91
- if (regionNumber === displayedRegions.length - 1 &&
92
- blockData.isRightEndOfDisplayedRegion) {
93
- regionBpOffset += interRegionPaddingWidth * bpPerPx;
94
- blocks.push(new InterRegionPaddingBlock({
95
- key: `${blockData.key}-afterLastRegion`,
96
- widthPx: width,
97
- offsetPx: blockData.offsetPx + blockData.widthPx,
98
- variant: 'boundary',
99
- }));
100
- }
77
+ });
101
78
  }
102
79
  }
103
80
  regionBpOffset += regionEnd - regionStart;
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Given a scale ( bp/px ) and minimum distances (px) between major and minor
3
+ * gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
4
+ * the gridline pitches to use.
5
+ */
6
+ export declare function chooseGridPitch(scale: number, minMajorPitchPx: number, minMinorPitchPx: number): {
7
+ majorPitch: number;
8
+ minorPitch: number;
9
+ };
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Given a scale ( bp/px ) and minimum distances (px) between major and minor
3
+ * gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
4
+ * the gridline pitches to use.
5
+ */
6
+ export function chooseGridPitch(scale, minMajorPitchPx, minMinorPitchPx) {
7
+ scale = Math.abs(scale);
8
+ const minMajorPitchBp = minMajorPitchPx * scale;
9
+ const majorMagnitude = +minMajorPitchBp.toExponential().split(/e/i, 2)[1];
10
+ let majorPitch = 10 ** majorMagnitude;
11
+ while (majorPitch < minMajorPitchBp) {
12
+ majorPitch *= 2;
13
+ if (majorPitch >= minMajorPitchBp) {
14
+ break;
15
+ }
16
+ majorPitch *= 2.5;
17
+ }
18
+ majorPitch = Math.max(majorPitch, 5);
19
+ const majorPitchPx = majorPitch / scale;
20
+ let minorPitch = 0;
21
+ if (!(majorPitch % 10) && majorPitchPx / 10 >= minMinorPitchPx) {
22
+ minorPitch = majorPitch / 10;
23
+ }
24
+ else if (!(majorPitch % 5) && majorPitchPx / 5 >= minMinorPitchPx) {
25
+ minorPitch = majorPitch / 5;
26
+ }
27
+ else if (!(majorPitch % 2) && majorPitchPx / 2 >= minMinorPitchPx) {
28
+ minorPitch = majorPitch / 2;
29
+ }
30
+ return { majorPitch, minorPitch };
31
+ }
@@ -0,0 +1,26 @@
1
+ import type { Assembly } from '../assemblyManager/assembly.ts';
2
+ import type { Region } from './types/data.ts';
3
+ /**
4
+ * Clamp a span to the extents of the contig it names, resolving the refName to
5
+ * canonical on the way. Returns undefined when the clamp leaves nothing — the
6
+ * span lies wholly off the end of the contig.
7
+ *
8
+ * **The undefined is the point.** A one-sided clamp is the shape this keeps
9
+ * getting written as, and it inverts: a span past the contig end comes back with
10
+ * its end below its start, which every consumer that SUMS region lengths then
11
+ * subtracts. That is silent, and it happens for real, on a GFF3 or a BAM
12
+ * annotated against a longer assembly than the FASTA in use — which JBrowse
13
+ * otherwise just draws past the end of. Two callers wrote the one-sided version
14
+ * and only one of them ever guarded it.
15
+ *
16
+ * `start` is floored at 0 even when the contig extents are unknown (`regions`
17
+ * still loading, or a refName this assembly doesn't have), because interbase has
18
+ * no coordinate below 0 whatever the contig turns out to be. Only the high end
19
+ * needs a length to clamp against, so without one it is left alone — and with no
20
+ * high bound there is nothing to invert, so such a span always comes back.
21
+ */
22
+ export declare function clampToContig(assembly: Assembly, region: {
23
+ refName: string;
24
+ start: number;
25
+ end: number;
26
+ }): Region | undefined;
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Clamp a span to the extents of the contig it names, resolving the refName to
3
+ * canonical on the way. Returns undefined when the clamp leaves nothing — the
4
+ * span lies wholly off the end of the contig.
5
+ *
6
+ * **The undefined is the point.** A one-sided clamp is the shape this keeps
7
+ * getting written as, and it inverts: a span past the contig end comes back with
8
+ * its end below its start, which every consumer that SUMS region lengths then
9
+ * subtracts. That is silent, and it happens for real, on a GFF3 or a BAM
10
+ * annotated against a longer assembly than the FASTA in use — which JBrowse
11
+ * otherwise just draws past the end of. Two callers wrote the one-sided version
12
+ * and only one of them ever guarded it.
13
+ *
14
+ * `start` is floored at 0 even when the contig extents are unknown (`regions`
15
+ * still loading, or a refName this assembly doesn't have), because interbase has
16
+ * no coordinate below 0 whatever the contig turns out to be. Only the high end
17
+ * needs a length to clamp against, so without one it is left alone — and with no
18
+ * high bound there is nothing to invert, so such a span always comes back.
19
+ */
20
+ export function clampToContig(assembly, region) {
21
+ const refName = assembly.getCanonicalRefName2(region.refName);
22
+ const bounds = assembly.getRegionForRefName(refName);
23
+ const start = Math.max(bounds?.start ?? 0, region.start);
24
+ const end = bounds ? Math.min(bounds.end, region.end) : region.end;
25
+ return end > start
26
+ ? { ...region, assemblyName: assembly.name, refName, start, end }
27
+ : undefined;
28
+ }
@@ -0,0 +1 @@
1
+ export declare function cmpStr(a: string, b: string): number;
@@ -0,0 +1,7 @@
1
+ // Deterministic, locale-independent string ordering. Returns 0 when equal so
2
+ // it chains with `||` in multi-key comparators. Prefer this over
3
+ // `localeCompare` wherever the order must be reproducible across environments
4
+ // (e.g. sort keys feeding deterministic worker output or screenshot renders).
5
+ export function cmpStr(a, b) {
6
+ return a < b ? -1 : a > b ? 1 : 0;
7
+ }
@@ -1,17 +1,5 @@
1
+ // not a sanitizer, this just removes html tags for use in measureText-based
2
+ // element width calculations
1
3
  export function coarseStripHTML(s) {
2
- let result = '';
3
- let inTag = false;
4
- for (let i = 0, l = s.length; i < l; i++) {
5
- const char = s[i];
6
- if (char === '<') {
7
- inTag = true;
8
- }
9
- else if (char === '>') {
10
- inTag = false;
11
- }
12
- else if (!inTag) {
13
- result += char;
14
- }
15
- }
16
- return result;
4
+ return s.replaceAll(/<[^<>]*>/g, '');
17
5
  }
@@ -1,3 +1,4 @@
1
+ // from https://www.w3.org/TR/css-color-4/#named-colors
1
2
  const colors = {
2
3
  aliceblue: '#F0F8FF',
3
4
  antiquewhite: '#FAEBD7',
@@ -148,9 +149,12 @@ const colors = {
148
149
  yellow: '#FFFF00',
149
150
  yellowgreen: '#9ACD32',
150
151
  };
152
+ // Object.hasOwn rather than a bare index: the table is a plain object, so
153
+ // `colors.constructor` and `colors.toString` come back as functions typed
154
+ // `string`, and isNamedColor('toString') was true.
151
155
  export function namedColorToHex(name) {
152
- return colors[name];
156
+ return Object.hasOwn(colors, name) ? colors[name] : undefined;
153
157
  }
154
158
  export function isNamedColor(name) {
155
- return !!colors[name];
159
+ return Object.hasOwn(colors, name);
156
160
  }
@@ -1,5 +1,84 @@
1
- export declare function contrastingTextColor(color: string): string;
1
+ /**
2
+ * Darken or lighten a color, depending on its luminance.
3
+ * Light colors are darkened, dark colors are lightened.
4
+ *
5
+ * @param color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(),
6
+ * hsl(), hsla(), or named color
7
+ * @param coefficient - multiplier in the range 0 - 1, defaults to 0.15
8
+ * @returns A CSS color string. Hex input values are returned as rgb
9
+ */
2
10
  export declare function emphasize(color: string, coefficient?: number): string;
11
+ /**
12
+ * Push `foreground` away from `background` until it clears `minContrastRatio`,
13
+ * returning the closest it got when that ratio is unreachable.
14
+ *
15
+ * `minContrastRatio` genuinely cannot be met against a mid-luminance
16
+ * background: lighten/darken clamp their coefficient at 1, so the candidate
17
+ * pins at white/black, and against a `#b0b0b0` paper the best ratio any color
18
+ * reaches is about 2.2. This used to be a `while (ratio < min)` loop with an
19
+ * unbounded coefficient, which froze the render thread outright for 38 of the 40
20
+ * default refName colors.
21
+ */
3
22
  export declare function makeContrasting(foreground: string, background?: string, minContrastRatio?: number): string;
4
23
  export { isNamedColor, namedColorToHex } from './cssColorsLevel4.ts';
5
- export declare function randomColor(str: string): string;
24
+ /**
25
+ * #api
26
+ * Move a color's OKLCH lightness by `lightnessShift` and scale its chroma,
27
+ * holding its hue.
28
+ *
29
+ * For extending a categorical palette past its length. Cycling a nine-color
30
+ * list over a 24-chromosome karyotype repeats the color outright; cycling it
31
+ * with a lightness shift per lap gives the hue back as a variant still told
32
+ * apart from the original — tab20's construction, which pairs a light and a
33
+ * dark of each hue.
34
+ *
35
+ * SHIFT rather than a fixed lightness, and SCALE rather than a fixed chroma,
36
+ * because a categorical palette is uneven on purpose: category10's brown and
37
+ * its red are 5 degrees apart in hue and are told apart by chroma alone, so
38
+ * re-lighting both to one (lightness, chroma) makes them the same color.
39
+ * Keeping each color's own relative chroma keeps brown reading as brown.
40
+ *
41
+ * In OKLCH rather than through `lighten`/`darken`, which work in sRGB, where
42
+ * the same coefficient moves a yellow and a blue by visibly different amounts:
43
+ * a lap has to read as one tone across the whole palette or it reads as noise.
44
+ *
45
+ * @param color - CSS color to transform
46
+ * @param lightnessShift - added to its OKLCH lightness (which is 0 - 1)
47
+ * @param chromaScale - multiplies its OKLCH chroma; the result is reduced at
48
+ * constant hue if that lands out of gamut
49
+ * @returns A CSS hex color string
50
+ */
51
+ export declare function relight(color: string, lightnessShift: number, chromaScale?: number): string;
52
+ /**
53
+ * Generate a consistent random color for a given string.
54
+ * The same string will always generate the same color, with no shared palette
55
+ * state — so the same value (e.g. a gene symbol used as an ortholog id) gets the
56
+ * same color across independent tracks/panels.
57
+ *
58
+ * Statelessness is why this hashes into a color space rather than indexing a
59
+ * fixed palette of N: with no allocator there is no "next unused color", so an
60
+ * N-color palette collides by the birthday problem — six values into a
61
+ * twenty-color palette collide more often than not — while a hue circle does
62
+ * not repeat until 360 values. What a curated palette actually buys is
63
+ * perceptual evenness, and that comes from the space, not the list: hues are
64
+ * placed in OKLCH at a fixed lightness and chroma, so every value is equally
65
+ * light and equally colorful. HSL, which this used to use, is neither — its
66
+ * hue wheel spends a quarter of itself on greens that look identical and a
67
+ * sliver on yellow, and at one lightness its yellows glare while its blues go
68
+ * murky. That unevenness is what reads as "random RGB".
69
+ *
70
+ * A value that is absent gets NO_CATEGORY_COLOR rather than a hue, and that is
71
+ * the difference between this being usable on real data and not. The everyday
72
+ * caller is the Color-by-attribute dialog, which writes
73
+ * `jexl:randomColor(get(feature,'<attr>'))` over a whole track — and most files
74
+ * have the attribute on some features and not others, so most of the time this
75
+ * is handed `undefined`. It used to throw on that (`str.length` of undefined),
76
+ * once per feature, and what a reader saw was every unlabelled feature in one
77
+ * strong color: a large fake category, drawn over the real ones. Grey says the
78
+ * only true thing about a feature with no value for the attribute you asked to
79
+ * colour by.
80
+ *
81
+ * @param str - The string to generate a color from
82
+ * @returns A CSS hex color string
83
+ */
84
+ export declare function randomColor(str: string | undefined | null): string;