@jbrowse/core 4.3.0 → 5.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1140) hide show
  1. package/README.md +822 -0
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
  28. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  29. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
  30. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
  31. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
  32. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
  33. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
  34. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
  35. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
  36. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
  37. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
  38. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
  39. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
  40. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
  41. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
  42. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
  43. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
  44. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
  45. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
  46. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
  47. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
  48. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
  49. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
  50. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
  51. package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
  52. package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
  53. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
  54. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
  55. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
  56. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
  57. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
  58. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
  59. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
  60. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
  61. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
  62. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
  63. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
  64. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
  65. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
  66. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
  67. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
  68. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
  69. package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
  70. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
  71. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
  72. package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
  73. package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
  74. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
  75. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
  76. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
  77. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
  78. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
  79. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
  80. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
  81. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
  82. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
  83. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
  84. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
  85. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
  86. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
  87. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
  88. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
  89. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
  90. package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
  91. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
  92. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
  93. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
  94. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
  95. package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
  96. package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
  97. package/esm/BaseFeatureWidget/configSchema.js +1 -1
  98. package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
  99. package/esm/BaseFeatureWidget/formatDetails.js +103 -0
  100. package/esm/BaseFeatureWidget/index.d.ts +3 -1
  101. package/esm/BaseFeatureWidget/index.js +2 -2
  102. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
  103. package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
  104. package/esm/BaseFeatureWidget/types.d.ts +4 -3
  105. package/esm/BaseFeatureWidget/util.d.ts +4 -29
  106. package/esm/BaseFeatureWidget/util.js +20 -84
  107. package/esm/CorePlugin.js +11 -6
  108. package/esm/PhasedScheduler.d.ts +4 -2
  109. package/esm/PhasedScheduler.js +18 -2
  110. package/esm/Plugin.d.ts +6 -1
  111. package/esm/Plugin.js +7 -0
  112. package/esm/PluginLoader.d.ts +41 -40
  113. package/esm/PluginLoader.js +206 -78
  114. package/esm/PluginManager.d.ts +421 -55
  115. package/esm/PluginManager.js +461 -89
  116. package/esm/ReExports/BaseFeatureDetails.js +7 -6
  117. package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
  118. package/esm/ReExports/MuiDataGridReExports.js +58 -130
  119. package/esm/ReExports/MuiReExports.d.ts +3 -134
  120. package/esm/ReExports/MuiReExports.js +43 -16
  121. package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
  122. package/esm/ReExports/MuiStylesReExports.js +55 -0
  123. package/esm/ReExports/index.js +1 -1
  124. package/esm/ReExports/lazify.d.ts +2 -2
  125. package/esm/ReExports/lazify.js +16 -3
  126. package/esm/ReExports/list.js +54 -229
  127. package/esm/ReExports/modules.js +62 -93
  128. package/esm/ReExports/muiComponentNames.d.ts +18 -0
  129. package/esm/ReExports/muiComponentNames.js +130 -0
  130. package/esm/ReExports/publicUtil.d.ts +1 -0
  131. package/esm/ReExports/publicUtil.js +28 -0
  132. package/esm/ReExports/registry.d.ts +2 -0
  133. package/esm/ReExports/registry.js +28 -0
  134. package/esm/ReExports/sharedModules.d.ts +96 -0
  135. package/esm/ReExports/sharedModules.js +59 -0
  136. package/esm/ReExports/uiStub.d.ts +1 -0
  137. package/esm/ReExports/uiStub.js +13 -0
  138. package/esm/ReExports/workerModules.d.ts +2 -0
  139. package/esm/ReExports/workerModules.js +10 -0
  140. package/esm/TextSearch/BaseResults.d.ts +20 -21
  141. package/esm/TextSearch/BaseResults.js +8 -33
  142. package/esm/TextSearch/TextSearchManager.d.ts +14 -34
  143. package/esm/TextSearch/TextSearchManager.js +87 -34
  144. package/esm/assemblyManager/assembly.d.ts +307 -34
  145. package/esm/assemblyManager/assembly.js +551 -262
  146. package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
  147. package/esm/assemblyManager/assemblyAdapters.js +18 -0
  148. package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
  149. package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
  150. package/esm/assemblyManager/assemblyManager.d.ts +711 -303
  151. package/esm/assemblyManager/assemblyManager.js +351 -46
  152. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
  153. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
  154. package/esm/assemblyManager/geneticCodes.d.ts +21 -0
  155. package/esm/assemblyManager/geneticCodes.js +47 -0
  156. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
  157. package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
  158. package/esm/assemblyManager/index.d.ts +1 -1
  159. package/esm/assemblyManager/index.js +2 -2
  160. package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
  161. package/esm/assemblyManager/loadRefNameMap.js +80 -0
  162. package/esm/assemblyManager/refNameColors.d.ts +1 -0
  163. package/esm/assemblyManager/refNameColors.js +32 -0
  164. package/esm/assemblyManager/refNameMaps.d.ts +26 -0
  165. package/esm/assemblyManager/refNameMaps.js +87 -0
  166. package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
  167. package/esm/assemblyManager/refNameMismatch.js +66 -0
  168. package/esm/checkPlugins.d.ts +11 -0
  169. package/esm/checkPlugins.js +77 -0
  170. package/esm/configuration/configurationSchema.d.ts +122 -20
  171. package/esm/configuration/configurationSchema.js +374 -140
  172. package/esm/configuration/configurationSlot.d.ts +283 -30
  173. package/esm/configuration/configurationSlot.js +205 -226
  174. package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
  175. package/esm/configuration/formatAboutConfigSchema.js +58 -0
  176. package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
  177. package/esm/configuration/formatDetailsConfigSchema.js +90 -0
  178. package/esm/configuration/fullConfSnapshot.d.ts +28 -0
  179. package/esm/configuration/fullConfSnapshot.js +66 -0
  180. package/esm/configuration/getConf.d.ts +88 -0
  181. package/esm/configuration/getConf.js +74 -0
  182. package/esm/configuration/index.d.ts +19 -3
  183. package/esm/configuration/index.js +19 -2
  184. package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
  185. package/esm/configuration/mergeFormatCallbacks.js +24 -0
  186. package/esm/configuration/promotableDefaults.d.ts +199 -0
  187. package/esm/configuration/promotableDefaults.js +332 -0
  188. package/esm/configuration/promotablePin.d.ts +55 -0
  189. package/esm/configuration/promotableResolve.d.ts +108 -0
  190. package/esm/configuration/promotableResolve.js +117 -0
  191. package/esm/configuration/promotableSlots.d.ts +12 -0
  192. package/esm/configuration/promotableSlots.js +45 -0
  193. package/esm/configuration/readConfObject.d.ts +56 -0
  194. package/esm/configuration/readConfObject.js +161 -0
  195. package/esm/configuration/schemaRegistry.d.ts +35 -0
  196. package/esm/configuration/schemaRegistry.js +50 -0
  197. package/esm/configuration/schemaTypes.d.ts +23 -0
  198. package/esm/configuration/schemaTypes.js +94 -0
  199. package/esm/configuration/slotFacade.d.ts +82 -0
  200. package/esm/configuration/slotFacade.js +89 -0
  201. package/esm/configuration/slotShape.d.ts +12 -0
  202. package/esm/configuration/slotShape.js +84 -0
  203. package/esm/configuration/slotValueUtils.d.ts +17 -0
  204. package/esm/configuration/slotValueUtils.js +25 -0
  205. package/esm/configuration/tabixIndexFields.d.ts +44 -0
  206. package/esm/configuration/tabixIndexFields.js +45 -0
  207. package/esm/configuration/tabixShorthand.d.ts +34 -0
  208. package/esm/configuration/tabixShorthand.js +45 -0
  209. package/esm/configuration/types.d.ts +170 -7
  210. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
  211. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
  212. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
  213. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
  214. package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
  215. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
  216. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
  217. package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
  218. package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
  219. package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
  220. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
  221. package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
  222. package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
  223. package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
  224. package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
  225. package/esm/data_adapters/BaseAdapter/index.js +6 -5
  226. package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
  227. package/esm/data_adapters/BaseAdapter/stats.js +89 -24
  228. package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
  229. package/esm/data_adapters/BaseAdapter/types.js +1 -0
  230. package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
  231. package/esm/data_adapters/BaseAdapter/util.js +14 -3
  232. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  233. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
  234. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
  235. package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
  236. package/esm/data_adapters/CytobandAdapter/index.js +3 -3
  237. package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
  238. package/esm/data_adapters/adapterSessionRefcount.js +96 -0
  239. package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
  240. package/esm/data_adapters/dataAdapterCache.js +62 -22
  241. package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
  242. package/esm/data_adapters/getFeatureAdapter.js +27 -0
  243. package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
  244. package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
  245. package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
  246. package/esm/pluggableElementTypes/AdapterType.js +44 -5
  247. package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
  248. package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
  249. package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
  250. package/esm/pluggableElementTypes/ConnectionType.js +1 -1
  251. package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
  252. package/esm/pluggableElementTypes/DisplayType.js +53 -5
  253. package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
  254. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
  255. package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
  256. package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
  257. package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
  258. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
  259. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
  260. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
  261. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
  262. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
  263. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
  264. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
  265. package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
  266. package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
  267. package/esm/pluggableElementTypes/TrackType.js +1 -1
  268. package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
  269. package/esm/pluggableElementTypes/ViewType.js +84 -4
  270. package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
  271. package/esm/pluggableElementTypes/WidgetType.js +1 -1
  272. package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
  273. package/esm/pluggableElementTypes/addMenuItems.js +82 -0
  274. package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
  275. package/esm/pluggableElementTypes/extendElementType.js +73 -0
  276. package/esm/pluggableElementTypes/index.d.ts +7 -7
  277. package/esm/pluggableElementTypes/index.js +24 -14
  278. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
  279. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
  280. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
  281. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
  282. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
  283. package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
  284. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
  285. package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
  286. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
  287. package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
  288. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
  289. package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
  290. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
  291. package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
  292. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
  293. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
  294. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
  295. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
  296. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
  297. package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
  298. package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
  299. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
  300. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
  301. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
  302. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
  303. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
  304. package/esm/pluggableElementTypes/models/index.d.ts +6 -3
  305. package/esm/pluggableElementTypes/models/index.js +10 -8
  306. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
  307. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
  308. package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
  309. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
  310. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
  311. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
  312. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
  313. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
  314. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
  315. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
  316. package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
  317. package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
  318. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
  319. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
  320. package/esm/pluginDefinitions.d.ts +198 -0
  321. package/esm/pluginDefinitions.js +220 -0
  322. package/esm/rpc/BaseRpcDriver.d.ts +27 -35
  323. package/esm/rpc/BaseRpcDriver.js +74 -107
  324. package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
  325. package/esm/rpc/MainThreadRpcDriver.js +18 -29
  326. package/esm/rpc/RpcClient.d.ts +38 -0
  327. package/esm/rpc/RpcClient.js +154 -0
  328. package/esm/rpc/RpcManager.d.ts +116 -27
  329. package/esm/rpc/RpcManager.js +177 -50
  330. package/esm/rpc/RpcRegistry.d.ts +275 -0
  331. package/esm/rpc/RpcRegistry.js +1 -0
  332. package/esm/rpc/RpcServer.d.ts +41 -0
  333. package/esm/rpc/RpcServer.js +235 -0
  334. package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
  335. package/esm/rpc/WebWorkerRpcDriver.js +312 -27
  336. package/esm/rpc/byteBudget.d.ts +58 -0
  337. package/esm/rpc/byteBudget.js +50 -0
  338. package/esm/rpc/configSchema.d.ts +27 -5
  339. package/esm/rpc/configSchema.js +40 -16
  340. package/esm/rpc/coreRpcMethods.d.ts +3 -5
  341. package/esm/rpc/coreRpcMethods.js +10 -12
  342. package/esm/rpc/explainTransferError.d.ts +35 -0
  343. package/esm/rpc/explainTransferError.js +158 -0
  344. package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
  345. package/esm/rpc/methods/CoreFreeResources.js +17 -6
  346. package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
  347. package/esm/rpc/methods/CoreGetExportData.js +26 -15
  348. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  349. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  350. package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
  351. package/esm/rpc/methods/CoreGetFeatures.js +15 -17
  352. package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
  353. package/esm/rpc/methods/CoreGetInfo.js +12 -0
  354. package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
  355. package/esm/rpc/methods/CoreGetMetadata.js +6 -9
  356. package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
  357. package/esm/rpc/methods/CoreGetRefNames.js +24 -13
  358. package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
  359. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
  360. package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
  361. package/esm/rpc/methods/CoreGetRegions.js +6 -9
  362. package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
  363. package/esm/rpc/methods/CoreGetSequence.js +12 -13
  364. package/esm/rpc/serializeError/index.d.ts +9 -0
  365. package/esm/rpc/serializeError/index.js +86 -0
  366. package/esm/svg/SvgExport.d.ts +30 -0
  367. package/esm/svg/SvgExport.js +53 -0
  368. package/esm/svg/constants.d.ts +1 -0
  369. package/esm/svg/constants.js +5 -0
  370. package/esm/svg/saveSvgAsImage.d.ts +6 -0
  371. package/esm/svg/saveSvgAsImage.js +90 -0
  372. package/esm/svg/svgId.d.ts +42 -0
  373. package/esm/svg/svgId.js +84 -0
  374. package/esm/svg/svgReady.d.ts +137 -0
  375. package/esm/svg/svgReady.js +164 -0
  376. package/esm/svg/trackNames.d.ts +27 -0
  377. package/esm/svg/trackNames.js +31 -0
  378. package/esm/svg/wrapSvgExport.d.ts +12 -0
  379. package/esm/svg/wrapSvgExport.js +78 -0
  380. package/esm/ui/ActionLink.d.ts +7 -0
  381. package/esm/ui/ActionLink.js +9 -0
  382. package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
  383. package/esm/ui/AddCustomPluginDialog.js +61 -0
  384. package/esm/ui/AddGenomePane.d.ts +8 -0
  385. package/esm/ui/AddGenomePane.js +228 -0
  386. package/esm/ui/AdvancedOptions.d.ts +6 -0
  387. package/esm/ui/AdvancedOptions.js +17 -0
  388. package/esm/ui/AppLogo.d.ts +1 -1
  389. package/esm/ui/AppLogo.js +2 -2
  390. package/esm/ui/AssemblySelector.d.ts +5 -8
  391. package/esm/ui/AssemblySelector.js +8 -26
  392. package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
  393. package/esm/ui/BaseExportSvgDialog.js +84 -0
  394. package/esm/ui/BaseTooltip.d.ts +14 -3
  395. package/esm/ui/BaseTooltip.js +151 -34
  396. package/esm/ui/CascadingMenu.d.ts +9 -18
  397. package/esm/ui/CascadingMenu.js +390 -41
  398. package/esm/ui/CascadingMenuButton.d.ts +9 -11
  399. package/esm/ui/CascadingMenuButton.js +36 -18
  400. package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
  401. package/esm/ui/CascadingMenuHelpDialog.js +4 -5
  402. package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
  403. package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
  404. package/esm/ui/ColorPicker.d.ts +6 -9
  405. package/esm/ui/ColorPicker.js +36 -39
  406. package/esm/ui/ConfirmDialog.d.ts +2 -9
  407. package/esm/ui/ConfirmDialog.js +6 -9
  408. package/esm/ui/ContextMenu.d.ts +50 -0
  409. package/esm/ui/ContextMenu.js +55 -0
  410. package/esm/ui/CopyToClipboardButton.d.ts +10 -0
  411. package/esm/ui/CopyToClipboardButton.js +14 -0
  412. package/esm/ui/Crosshairs.d.ts +10 -0
  413. package/esm/ui/Crosshairs.js +15 -0
  414. package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
  415. package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
  416. package/esm/ui/DataGridFlexContainer.d.ts +9 -2
  417. package/esm/ui/DataGridFlexContainer.js +4 -3
  418. package/esm/ui/Dialog.d.ts +5 -2
  419. package/esm/ui/Dialog.js +35 -27
  420. package/esm/ui/DraggableDialog.d.ts +3 -3
  421. package/esm/ui/DraggableDialog.js +50 -12
  422. package/esm/ui/DropDownMenu.d.ts +4 -2
  423. package/esm/ui/DropDownMenu.js +4 -4
  424. package/esm/ui/EditableTypography.d.ts +3 -1
  425. package/esm/ui/EditableTypography.js +34 -26
  426. package/esm/ui/ErrorActions.d.ts +24 -0
  427. package/esm/ui/ErrorActions.js +20 -0
  428. package/esm/ui/ErrorBanner.d.ts +7 -0
  429. package/esm/ui/ErrorBanner.js +35 -0
  430. package/esm/ui/ErrorBar.d.ts +6 -0
  431. package/esm/ui/ErrorBar.js +35 -0
  432. package/esm/ui/ErrorBoundary.d.ts +29 -5
  433. package/esm/ui/ErrorBoundary.js +32 -2
  434. package/esm/ui/ErrorMessage.d.ts +2 -4
  435. package/esm/ui/ErrorMessage.js +17 -52
  436. package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
  437. package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
  438. package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
  439. package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
  440. package/esm/ui/ErrorOverlay.d.ts +8 -0
  441. package/esm/ui/ErrorOverlay.js +5 -0
  442. package/esm/ui/ExportSvgDialog.d.ts +7 -0
  443. package/esm/ui/ExportSvgDialog.js +9 -0
  444. package/esm/ui/ExternalLink.d.ts +1 -1
  445. package/esm/ui/FactoryResetDialog.d.ts +1 -1
  446. package/esm/ui/FactoryResetDialog.js +6 -15
  447. package/esm/ui/FatalErrorDialog.d.ts +3 -2
  448. package/esm/ui/FatalErrorDialog.js +6 -5
  449. package/esm/ui/FileDropZone.d.ts +25 -0
  450. package/esm/ui/FileDropZone.js +128 -0
  451. package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
  452. package/esm/ui/FileSelector/FileSelector.js +59 -30
  453. package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
  454. package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
  455. package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
  456. package/esm/ui/FileSelector/LocationInput.js +8 -12
  457. package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
  458. package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
  459. package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
  460. package/esm/ui/FileSelector/UrlChooser.js +26 -2
  461. package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
  462. package/esm/ui/FileSelector/emptySourceType.js +14 -0
  463. package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
  464. package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
  465. package/esm/ui/FileSelector/util.d.ts +58 -3
  466. package/esm/ui/FileSelector/util.js +128 -11
  467. package/esm/ui/GpuFallbackButton.d.ts +12 -0
  468. package/esm/ui/GpuFallbackButton.js +20 -0
  469. package/esm/ui/HoverMenu.d.ts +12 -3
  470. package/esm/ui/HoverMenu.js +31 -9
  471. package/esm/ui/HoverTooltip.d.ts +27 -0
  472. package/esm/ui/HoverTooltip.js +24 -0
  473. package/esm/ui/Icons.d.ts +6 -4
  474. package/esm/ui/Icons.js +9 -0
  475. package/esm/ui/InfoDialog.d.ts +7 -0
  476. package/esm/ui/InfoDialog.js +16 -0
  477. package/esm/ui/InlineMenuControls.d.ts +6 -0
  478. package/esm/ui/InlineMenuControls.js +17 -0
  479. package/esm/ui/JexlFilterDialog.d.ts +23 -0
  480. package/esm/ui/JexlFilterDialog.js +94 -0
  481. package/esm/ui/LabeledCheckbox.d.ts +9 -0
  482. package/esm/ui/LabeledCheckbox.js +7 -0
  483. package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
  484. package/esm/ui/LegendSwatchGlyph.js +25 -0
  485. package/esm/ui/LoadingDots.d.ts +1 -0
  486. package/esm/ui/LoadingDots.js +30 -0
  487. package/esm/ui/LoadingEllipses.d.ts +17 -1
  488. package/esm/ui/LoadingEllipses.js +20 -29
  489. package/esm/ui/LoadingOverlay.d.ts +23 -0
  490. package/esm/ui/LoadingOverlay.js +137 -0
  491. package/esm/ui/LoadingProgress.d.ts +16 -0
  492. package/esm/ui/LoadingProgress.js +16 -0
  493. package/esm/ui/Logo.d.ts +2 -2
  494. package/esm/ui/Logo.js +23 -24
  495. package/esm/ui/Menu.js +1 -1
  496. package/esm/ui/MenuItemChevron.d.ts +3 -0
  497. package/esm/ui/MenuItemChevron.js +19 -0
  498. package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
  499. package/esm/ui/MenuItemEndDecoration.js +28 -0
  500. package/esm/ui/MenuItemTrailing.d.ts +12 -0
  501. package/esm/ui/MenuItemTrailing.js +42 -0
  502. package/esm/ui/MenuTypes.d.ts +134 -5
  503. package/esm/ui/MenuTypes.js +16 -1
  504. package/esm/ui/MonospaceTextField.d.ts +9 -0
  505. package/esm/ui/MonospaceTextField.js +37 -0
  506. package/esm/ui/NumberTextField.d.ts +31 -0
  507. package/esm/ui/NumberTextField.js +33 -0
  508. package/esm/ui/PaletteContext.d.ts +92 -0
  509. package/esm/ui/PaletteContext.js +133 -0
  510. package/esm/ui/PinAdornment.d.ts +5 -0
  511. package/esm/ui/PinAdornment.js +85 -0
  512. package/esm/ui/PluggableComponent.d.ts +10 -0
  513. package/esm/ui/PluggableComponent.js +19 -0
  514. package/esm/ui/PluggableComponents.d.ts +29 -0
  515. package/esm/ui/PluggableComponents.js +28 -0
  516. package/esm/ui/PluggableElements.d.ts +23 -0
  517. package/esm/ui/PluggableElements.js +24 -0
  518. package/esm/ui/PluginStoreCard.d.ts +17 -0
  519. package/esm/ui/PluginStoreCard.js +45 -0
  520. package/esm/ui/PopoverPicker.d.ts +6 -0
  521. package/esm/ui/PopoverPicker.js +25 -0
  522. package/esm/ui/PrerenderedCanvas.d.ts +1 -1
  523. package/esm/ui/PrerenderedCanvas.js +5 -4
  524. package/esm/ui/ProgressChip.d.ts +37 -0
  525. package/esm/ui/ProgressChip.js +66 -0
  526. package/esm/ui/RedErrorMessageBox.d.ts +1 -1
  527. package/esm/ui/RedErrorMessageBox.js +9 -3
  528. package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
  529. package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
  530. package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
  531. package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
  532. package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
  533. package/esm/ui/RefNameAutocomplete/index.js +78 -0
  534. package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
  535. package/esm/ui/RefNameAutocomplete/util.js +168 -0
  536. package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
  537. package/esm/ui/ReplaceCurrentViewButton.js +22 -0
  538. package/esm/ui/ResizeHandle.d.ts +13 -7
  539. package/esm/ui/ResizeHandle.js +42 -55
  540. package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
  541. package/esm/ui/ReturnToImportFormDialog.js +7 -9
  542. package/esm/ui/SanitizedHTML.d.ts +6 -1
  543. package/esm/ui/SanitizedHTML.js +7 -47
  544. package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
  545. package/esm/ui/ScrollEdgeShadow.js +98 -0
  546. package/esm/ui/ScrollZoomToggle.d.ts +38 -0
  547. package/esm/ui/ScrollZoomToggle.js +92 -0
  548. package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
  549. package/esm/ui/SequenceAdapterInputs.js +30 -0
  550. package/esm/ui/SettingsChangesTable.d.ts +14 -0
  551. package/esm/ui/SettingsChangesTable.js +49 -0
  552. package/esm/ui/ShareLinkField.d.ts +6 -0
  553. package/esm/ui/ShareLinkField.js +42 -0
  554. package/esm/ui/SingleSlider.d.ts +8 -0
  555. package/esm/ui/SingleSlider.js +11 -0
  556. package/esm/ui/SizeSliderRow.d.ts +16 -0
  557. package/esm/ui/SizeSliderRow.js +50 -0
  558. package/esm/ui/SliderTooltip.d.ts +2 -0
  559. package/esm/ui/SliderTooltip.js +17 -0
  560. package/esm/ui/Snackbar.d.ts +4 -2
  561. package/esm/ui/Snackbar.js +11 -8
  562. package/esm/ui/SnackbarContents.d.ts +1 -1
  563. package/esm/ui/SnackbarContents.js +21 -3
  564. package/esm/ui/SnackbarModel.d.ts +40 -0
  565. package/esm/ui/SnackbarModel.js +43 -11
  566. package/esm/ui/StackTraceButton.d.ts +5 -0
  567. package/esm/ui/StackTraceButton.js +16 -0
  568. package/esm/ui/StatusProgressBar.d.ts +37 -0
  569. package/esm/ui/StatusProgressBar.js +76 -0
  570. package/esm/ui/SubmitDialog.d.ts +6 -0
  571. package/esm/ui/SubmitDialog.js +9 -0
  572. package/esm/ui/SubmitForm.d.ts +23 -0
  573. package/esm/ui/SubmitForm.js +23 -0
  574. package/esm/ui/SvgColorLegend.d.ts +13 -0
  575. package/esm/ui/SvgColorLegend.js +65 -0
  576. package/esm/ui/SvgGradientLegend.d.ts +26 -0
  577. package/esm/ui/SvgGradientLegend.js +26 -0
  578. package/esm/ui/TagTextField.d.ts +40 -0
  579. package/esm/ui/TagTextField.js +32 -0
  580. package/esm/ui/VerticalScrollbar.d.ts +45 -0
  581. package/esm/ui/VerticalScrollbar.js +158 -0
  582. package/esm/ui/ViewLoadingScreen.d.ts +24 -0
  583. package/esm/ui/ViewLoadingScreen.js +76 -0
  584. package/esm/ui/addExtensionElement.d.ts +18 -0
  585. package/esm/ui/addExtensionElement.js +23 -0
  586. package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
  587. package/esm/ui/buildExtraTrackMenuItems.js +14 -0
  588. package/esm/ui/colorSwatchStyle.d.ts +9 -0
  589. package/esm/ui/colorSwatchStyle.js +11 -0
  590. package/esm/ui/colors.d.ts +61 -8
  591. package/esm/ui/colors.js +135 -1
  592. package/esm/ui/extensionSelectors.d.ts +38 -0
  593. package/esm/ui/extensionSelectors.js +49 -0
  594. package/esm/ui/filterMenuItems.d.ts +112 -0
  595. package/esm/ui/filterMenuItems.js +86 -0
  596. package/esm/ui/formatErrorStack.d.ts +1 -0
  597. package/esm/ui/formatErrorStack.js +56 -0
  598. package/esm/ui/gpuFallback.d.ts +33 -0
  599. package/esm/ui/gpuFallback.js +39 -0
  600. package/esm/ui/highlightChipReveal.d.ts +32 -0
  601. package/esm/ui/highlightChipReveal.js +39 -0
  602. package/esm/ui/hoverBoxStyle.d.ts +11 -0
  603. package/esm/ui/hoverBoxStyle.js +13 -0
  604. package/esm/ui/index.d.ts +76 -4
  605. package/esm/ui/index.js +90 -19
  606. package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
  607. package/esm/ui/inlineMenuRowWidth.js +8 -0
  608. package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
  609. package/esm/ui/launchTargetsMenuItem.js +24 -0
  610. package/esm/ui/launchViewMenu.d.ts +4 -0
  611. package/esm/ui/launchViewMenu.js +42 -0
  612. package/esm/ui/legendMenuItem.d.ts +38 -0
  613. package/esm/ui/legendMenuItem.js +44 -0
  614. package/esm/ui/legendSpec.d.ts +62 -0
  615. package/esm/ui/legendSpec.js +78 -0
  616. package/esm/ui/loadingDotKeyframes.d.ts +18 -0
  617. package/esm/ui/loadingDotKeyframes.js +17 -0
  618. package/esm/ui/makeSizeMenu.d.ts +30 -0
  619. package/esm/ui/makeSizeMenu.js +82 -0
  620. package/esm/ui/mapStackTrace.d.ts +8 -0
  621. package/esm/ui/mapStackTrace.js +108 -0
  622. package/esm/ui/measureLegendText.d.ts +1 -0
  623. package/esm/ui/measureLegendText.js +8 -0
  624. package/esm/ui/menuItemAdornment.d.ts +33 -0
  625. package/esm/ui/menuItemAdornment.js +50 -0
  626. package/esm/ui/menuItems.d.ts +28 -0
  627. package/esm/ui/menuItems.js +26 -0
  628. package/esm/ui/menuLabels.d.ts +41 -0
  629. package/esm/ui/menuLabels.js +43 -0
  630. package/esm/ui/multiTrackMenuItems.d.ts +19 -0
  631. package/esm/ui/multiTrackMenuItems.js +15 -0
  632. package/esm/ui/palette.d.ts +559 -0
  633. package/esm/ui/palette.js +746 -0
  634. package/esm/ui/parseError.d.ts +4 -0
  635. package/esm/ui/parseError.js +18 -0
  636. package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
  637. package/esm/ui/persistentScrollbarStyle.js +53 -0
  638. package/esm/ui/promotableMenuItems.d.ts +19 -0
  639. package/esm/ui/promotableMenuItems.js +91 -0
  640. package/esm/ui/promotablePinCoverage.d.ts +44 -0
  641. package/esm/ui/promotablePinCoverage.js +88 -0
  642. package/esm/ui/radioSubMenu.d.ts +33 -0
  643. package/esm/ui/radioSubMenu.js +32 -0
  644. package/esm/ui/react-colorful.js +5 -1
  645. package/esm/ui/replaceViewAction.d.ts +31 -0
  646. package/esm/ui/replaceViewAction.js +39 -0
  647. package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
  648. package/esm/ui/rewriteExternalAnchors.js +8 -0
  649. package/esm/ui/scrollZoomLabels.d.ts +17 -0
  650. package/esm/ui/scrollZoomLabels.js +22 -0
  651. package/esm/ui/showSubMenu.d.ts +19 -0
  652. package/esm/ui/showSubMenu.js +30 -0
  653. package/esm/ui/sliderScale.d.ts +6 -0
  654. package/esm/ui/sliderScale.js +30 -0
  655. package/esm/ui/statusProgressKeyframes.d.ts +6 -0
  656. package/esm/ui/statusProgressKeyframes.js +14 -0
  657. package/esm/ui/stripStackTraceMessage.d.ts +1 -0
  658. package/esm/ui/stripStackTraceMessage.js +9 -0
  659. package/esm/ui/styleTheme.d.ts +158 -0
  660. package/esm/ui/styleTheme.js +115 -0
  661. package/esm/ui/submenuAim.d.ts +30 -0
  662. package/esm/ui/submenuAim.js +37 -0
  663. package/esm/ui/theme.d.ts +343 -29
  664. package/esm/ui/theme.js +258 -342
  665. package/esm/ui/toggleMenuItems.d.ts +42 -0
  666. package/esm/ui/toggleMenuItems.js +60 -0
  667. package/esm/ui/useAssemblySelection.d.ts +153 -0
  668. package/esm/ui/useAssemblySelection.js +54 -0
  669. package/esm/ui/useCoalescedPointer.d.ts +36 -0
  670. package/esm/ui/useCoalescedPointer.js +60 -0
  671. package/esm/ui/useCopyToClipboard.d.ts +15 -0
  672. package/esm/ui/useCopyToClipboard.js +41 -0
  673. package/esm/ui/useExportSvgPreference.d.ts +1 -0
  674. package/esm/ui/useExportSvgPreference.js +4 -0
  675. package/esm/ui/useMouseTracking.d.ts +71 -0
  676. package/esm/ui/useMouseTracking.js +179 -0
  677. package/esm/ui/useRecentLocations.d.ts +28 -0
  678. package/esm/ui/useRecentLocations.js +31 -0
  679. package/esm/ui/wrapComponent.d.ts +47 -0
  680. package/esm/ui/wrapComponent.js +58 -0
  681. package/esm/ui/zIndexes.d.ts +28 -0
  682. package/esm/ui/zIndexes.js +38 -0
  683. package/esm/util/Base1DUtils.d.ts +204 -16
  684. package/esm/util/Base1DUtils.js +310 -175
  685. package/esm/util/Base1DViewModel.d.ts +97 -20
  686. package/esm/util/Base1DViewModel.js +148 -39
  687. package/esm/util/FileSaver/index.d.ts +1 -0
  688. package/esm/util/FileSaver/index.js +27 -0
  689. package/esm/util/IntervalTree.d.ts +18 -39
  690. package/esm/util/IntervalTree.js +63 -244
  691. package/esm/util/SvgCanvas.d.ts +81 -0
  692. package/esm/util/SvgCanvas.js +500 -0
  693. package/esm/util/TimeTraveller.d.ts +12 -0
  694. package/esm/util/TimeTraveller.js +130 -27
  695. package/esm/util/aborting.d.ts +17 -4
  696. package/esm/util/aborting.js +30 -25
  697. package/esm/util/adapterMetadata.d.ts +20 -0
  698. package/esm/util/adapterMetadata.js +39 -0
  699. package/esm/util/addAndShowTrack.d.ts +22 -0
  700. package/esm/util/addAndShowTrack.js +27 -0
  701. package/esm/util/addRelativeUris.d.ts +17 -0
  702. package/esm/util/addRelativeUris.js +42 -0
  703. package/esm/util/addTrackComponent.d.ts +72 -0
  704. package/esm/util/addTrackComponent.js +53 -0
  705. package/esm/util/addTrackFromWidget.d.ts +94 -0
  706. package/esm/util/addTrackFromWidget.js +90 -0
  707. package/esm/util/analytics.d.ts +32 -3
  708. package/esm/util/analytics.js +102 -49
  709. package/esm/util/animationAllowed.d.ts +17 -0
  710. package/esm/util/animationAllowed.js +22 -0
  711. package/esm/util/applyRowResizeWheel.d.ts +10 -0
  712. package/esm/util/applyRowResizeWheel.js +34 -0
  713. package/esm/util/assemblyConfigUtils.d.ts +144 -0
  714. package/esm/util/assemblyConfigUtils.js +498 -0
  715. package/esm/util/bandHeight.d.ts +53 -0
  716. package/esm/util/bandHeight.js +56 -0
  717. package/esm/util/bandLayout.d.ts +51 -0
  718. package/esm/util/bandLayout.js +36 -0
  719. package/esm/util/bezierConnector.d.ts +14 -0
  720. package/esm/util/bezierConnector.js +108 -0
  721. package/esm/util/bgzfWorkerPool.d.ts +78 -0
  722. package/esm/util/bgzfWorkerPool.js +81 -0
  723. package/esm/util/blockTypes.d.ts +64 -45
  724. package/esm/util/blockTypes.js +67 -74
  725. package/esm/util/bpUtils.d.ts +81 -0
  726. package/esm/util/bpUtils.js +103 -0
  727. package/esm/util/cacheBudgets.d.ts +55 -0
  728. package/esm/util/cacheBudgets.js +55 -0
  729. package/esm/util/cachedSetup.d.ts +51 -0
  730. package/esm/util/cachedSetup.js +87 -0
  731. package/esm/util/calculateDynamicBlocks.d.ts +5 -0
  732. package/esm/util/calculateDynamicBlocks.js +85 -82
  733. package/esm/util/calculateStaticBlocks.d.ts +2 -3
  734. package/esm/util/calculateStaticBlocks.js +48 -71
  735. package/esm/util/chooseGridPitch.d.ts +9 -0
  736. package/esm/util/chooseGridPitch.js +31 -0
  737. package/esm/util/clampToContig.d.ts +26 -0
  738. package/esm/util/clampToContig.js +28 -0
  739. package/esm/util/cmpStr.d.ts +1 -0
  740. package/esm/util/cmpStr.js +7 -0
  741. package/esm/util/coarseStripHTML.js +3 -15
  742. package/esm/util/color/cssColorsLevel4.js +6 -2
  743. package/esm/util/color/index.d.ts +81 -2
  744. package/esm/util/color/index.js +194 -25
  745. package/esm/util/color-bits/bit.d.ts +4 -0
  746. package/esm/util/color-bits/bit.js +37 -0
  747. package/esm/util/color-bits/convert.d.ts +23 -0
  748. package/esm/util/color-bits/convert.js +294 -0
  749. package/esm/util/color-bits/core.d.ts +34 -0
  750. package/esm/util/color-bits/core.js +67 -0
  751. package/esm/util/color-bits/format.d.ts +24 -0
  752. package/esm/util/color-bits/format.js +82 -0
  753. package/esm/util/color-bits/functions.d.ts +33 -0
  754. package/esm/util/color-bits/functions.js +70 -0
  755. package/esm/util/color-bits/index.d.ts +5 -0
  756. package/esm/util/color-bits/index.js +4 -0
  757. package/esm/util/color-bits/parse.d.ts +17 -0
  758. package/esm/util/color-bits/parse.js +382 -0
  759. package/esm/util/colorBits.d.ts +39 -0
  760. package/esm/util/colorBits.js +180 -0
  761. package/esm/util/colorRamp.d.ts +37 -0
  762. package/esm/util/colorRamp.js +93 -0
  763. package/esm/util/colord.d.ts +8 -0
  764. package/esm/util/colord.js +43 -191
  765. package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
  766. package/esm/util/convertCodingSequenceToPeptides.js +51 -4
  767. package/esm/util/copyText.d.ts +18 -0
  768. package/esm/util/copyText.js +30 -0
  769. package/esm/util/copyToClipboard.d.ts +4 -0
  770. package/esm/util/copyToClipboard.js +58 -0
  771. package/esm/util/createStopTokenRotation.d.ts +118 -0
  772. package/esm/util/createStopTokenRotation.js +127 -0
  773. package/esm/util/createSvgRasterCanvas.d.ts +7 -0
  774. package/esm/util/createSvgRasterCanvas.js +22 -0
  775. package/esm/util/crypto.d.ts +24 -0
  776. package/esm/util/crypto.js +85 -2
  777. package/esm/util/dataGridUtils.d.ts +9 -0
  778. package/esm/util/dataGridUtils.js +36 -0
  779. package/esm/util/dedupe.js +1 -0
  780. package/esm/util/deepEqual.d.ts +8 -0
  781. package/esm/util/deepEqual.js +22 -0
  782. package/esm/util/deepMerge.d.ts +20 -0
  783. package/esm/util/deepMerge.js +44 -0
  784. package/esm/util/diagonalizeRegions.d.ts +23 -0
  785. package/esm/util/diagonalizeRegions.js +192 -0
  786. package/esm/util/environment.d.ts +4 -0
  787. package/esm/util/environment.js +43 -0
  788. package/esm/util/eventPoint.d.ts +32 -0
  789. package/esm/util/eventPoint.js +28 -0
  790. package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
  791. package/esm/util/fetchAndMaybeUnzip.js +64 -0
  792. package/esm/util/fetchContext.d.ts +82 -0
  793. package/esm/util/fetchContext.js +59 -0
  794. package/esm/util/fetchHub.d.ts +15 -0
  795. package/esm/util/fetchHub.js +31 -0
  796. package/esm/util/fetchJson.d.ts +1 -0
  797. package/esm/util/fetchJson.js +7 -0
  798. package/esm/util/fetchPhases.d.ts +77 -0
  799. package/esm/util/fetchPhases.js +1 -0
  800. package/esm/util/fetchSeq.d.ts +5 -1
  801. package/esm/util/fetchSeq.js +18 -6
  802. package/esm/util/fileHandleStore.d.ts +19 -2
  803. package/esm/util/fileHandleStore.js +95 -35
  804. package/esm/util/flatbush/index.d.ts +27 -6
  805. package/esm/util/flatbush/index.js +194 -218
  806. package/esm/util/formatBytes.d.ts +9 -0
  807. package/esm/util/formatBytes.js +18 -0
  808. package/esm/util/formatFastaStrings.d.ts +13 -0
  809. package/esm/util/formatFastaStrings.js +13 -0
  810. package/esm/util/formatGuessers.d.ts +30 -0
  811. package/esm/util/formatGuessers.js +69 -0
  812. package/esm/util/formatRelativeTime.d.ts +1 -0
  813. package/esm/util/formatRelativeTime.js +25 -0
  814. package/esm/util/frameCoalescer.d.ts +30 -0
  815. package/esm/util/frameCoalescer.js +22 -0
  816. package/esm/util/freezeDeep.d.ts +28 -0
  817. package/esm/util/freezeDeep.js +41 -0
  818. package/esm/util/geneticCodes.d.ts +56 -0
  819. package/esm/util/geneticCodes.js +371 -0
  820. package/esm/util/getFileName.d.ts +11 -0
  821. package/esm/util/getFileName.js +34 -0
  822. package/esm/util/getLocationUri.d.ts +49 -0
  823. package/esm/util/getLocationUri.js +63 -0
  824. package/esm/util/getRelativeX.d.ts +4 -0
  825. package/esm/util/getRelativeX.js +7 -0
  826. package/esm/util/getStr.d.ts +6 -0
  827. package/esm/util/getStr.js +15 -0
  828. package/esm/util/highlights.d.ts +21 -0
  829. package/esm/util/highlights.js +100 -0
  830. package/esm/util/hooks.d.ts +168 -0
  831. package/esm/util/hooks.js +443 -0
  832. package/esm/util/htmlText.d.ts +13 -0
  833. package/esm/util/htmlText.js +66 -0
  834. package/esm/util/idMaker.d.ts +1 -1
  835. package/esm/util/idMaker.js +31 -18
  836. package/esm/util/index.d.ts +81 -268
  837. package/esm/util/index.js +135 -853
  838. package/esm/util/indexCandidates.d.ts +50 -0
  839. package/esm/util/indexCandidates.js +101 -0
  840. package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
  841. package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
  842. package/esm/util/installFetch.d.ts +220 -0
  843. package/esm/util/installFetch.js +206 -0
  844. package/esm/util/installInitAutorun.d.ts +62 -0
  845. package/esm/util/installInitAutorun.js +107 -0
  846. package/esm/util/intervals.d.ts +20 -0
  847. package/esm/util/intervals.js +37 -0
  848. package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
  849. package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
  850. package/esm/util/io/index.d.ts +39 -2
  851. package/esm/util/io/index.js +115 -12
  852. package/esm/util/isDataCurrent.d.ts +7 -0
  853. package/esm/util/isDataCurrent.js +9 -0
  854. package/esm/util/isWebWorker.js +1 -2
  855. package/esm/util/iupac.d.ts +4 -0
  856. package/esm/util/iupac.js +59 -0
  857. package/esm/util/jexl.js +141 -17
  858. package/esm/util/jexlFilters.d.ts +75 -0
  859. package/esm/util/jexlFilters.js +49 -0
  860. package/esm/util/jexlStrings.d.ts +22 -1
  861. package/esm/util/jexlStrings.js +21 -14
  862. package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
  863. package/esm/util/layouts/GranularRectLayout.js +99 -356
  864. package/esm/util/layouts/index.d.ts +1 -7
  865. package/esm/util/layouts/index.js +2 -6
  866. package/esm/util/layouts/intervalUtils.d.ts +12 -1
  867. package/esm/util/layouts/intervalUtils.js +13 -31
  868. package/esm/util/layouts/placeRect.d.ts +50 -0
  869. package/esm/util/layouts/placeRect.js +97 -0
  870. package/esm/util/lazyAfterAttach.d.ts +13 -0
  871. package/esm/util/lazyAfterAttach.js +31 -0
  872. package/esm/util/leadingEdgeAutorun.d.ts +40 -0
  873. package/esm/util/leadingEdgeAutorun.js +51 -0
  874. package/esm/util/legendCandidates.d.ts +50 -0
  875. package/esm/util/legendCandidates.js +87 -0
  876. package/esm/util/librpc.d.ts +5 -2
  877. package/esm/util/librpc.js +6 -1
  878. package/esm/util/linkify.js +2 -0
  879. package/esm/util/locString.d.ts +72 -0
  880. package/esm/util/locString.js +178 -7
  881. package/esm/util/locStringsToRegions.d.ts +10 -0
  882. package/esm/util/locStringsToRegions.js +35 -0
  883. package/esm/util/localStorage.d.ts +36 -0
  884. package/esm/util/localStorage.js +137 -0
  885. package/esm/util/makeAssembly.d.ts +54 -0
  886. package/esm/util/makeAssembly.js +52 -0
  887. package/esm/util/makeTrackId.d.ts +14 -0
  888. package/esm/util/makeTrackId.js +14 -0
  889. package/esm/util/matchTrackId.d.ts +11 -0
  890. package/esm/util/matchTrackId.js +14 -0
  891. package/esm/util/measureText.d.ts +24 -0
  892. package/esm/util/measureText.js +51 -0
  893. package/esm/util/mst-reflection.d.ts +14 -4
  894. package/esm/util/mst-reflection.js +33 -32
  895. package/esm/util/mstUtils.d.ts +100 -0
  896. package/esm/util/mstUtils.js +140 -0
  897. package/esm/util/nanoid.d.ts +0 -4
  898. package/esm/util/nanoid.js +10 -20
  899. package/esm/util/numericUtils.d.ts +20 -0
  900. package/esm/util/numericUtils.js +127 -0
  901. package/esm/util/objectUtils.d.ts +2 -0
  902. package/esm/util/objectUtils.js +9 -0
  903. package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
  904. package/esm/util/offscreenCanvasPonyfill.js +5 -47
  905. package/esm/util/openDisplays.d.ts +23 -0
  906. package/esm/util/openDisplays.js +79 -0
  907. package/esm/util/openFeatureWidget.d.ts +33 -0
  908. package/esm/util/openFeatureWidget.js +64 -0
  909. package/esm/util/paintLayer.d.ts +32 -0
  910. package/esm/util/paintLayer.js +33 -0
  911. package/esm/util/parentWalk.d.ts +32 -0
  912. package/esm/util/parentWalk.js +84 -0
  913. package/esm/util/parseLineByLine.d.ts +45 -2
  914. package/esm/util/parseLineByLine.js +156 -15
  915. package/esm/util/parseMotifList.d.ts +17 -0
  916. package/esm/util/parseMotifList.js +69 -0
  917. package/esm/util/pluginStore.d.ts +114 -0
  918. package/esm/util/pluginStore.js +260 -0
  919. package/esm/util/pointerPresence.d.ts +5 -0
  920. package/esm/util/pointerPresence.js +21 -0
  921. package/esm/util/progress.d.ts +459 -0
  922. package/esm/util/progress.js +820 -0
  923. package/esm/util/range.d.ts +46 -1
  924. package/esm/util/range.js +68 -2
  925. package/esm/util/renameRegions.d.ts +21 -0
  926. package/esm/util/renameRegions.js +129 -0
  927. package/esm/util/renderToStaticMarkup.d.ts +2 -0
  928. package/esm/util/renderToStaticMarkup.js +50 -0
  929. package/esm/util/reorder.d.ts +35 -0
  930. package/esm/util/reorder.js +83 -0
  931. package/esm/util/resolveRowHeight.d.ts +27 -0
  932. package/esm/util/resolveRowHeight.js +30 -0
  933. package/esm/util/revlist.d.ts +13 -0
  934. package/esm/util/revlist.js +14 -0
  935. package/esm/util/rowStackGeometry.d.ts +66 -0
  936. package/esm/util/rowStackGeometry.js +70 -0
  937. package/esm/util/rpc.d.ts +16 -1
  938. package/esm/util/rpc.js +12 -1
  939. package/esm/util/rxjs.d.ts +30 -1
  940. package/esm/util/rxjs.js +88 -10
  941. package/esm/util/sameStrings.d.ts +16 -0
  942. package/esm/util/sameStrings.js +20 -0
  943. package/esm/util/scrollLatch.d.ts +4 -0
  944. package/esm/util/scrollLatch.js +59 -0
  945. package/esm/util/selectNamedRegions.d.ts +136 -0
  946. package/esm/util/selectNamedRegions.js +222 -0
  947. package/esm/util/seqUtils.d.ts +17 -0
  948. package/esm/util/seqUtils.js +80 -0
  949. package/esm/util/sessionServices.d.ts +29 -0
  950. package/esm/util/sessionServices.js +46 -0
  951. package/esm/util/sessionSharing.d.ts +38 -0
  952. package/esm/util/sessionSharing.js +154 -0
  953. package/esm/util/sessionStorage.d.ts +1 -0
  954. package/esm/util/sessionStorage.js +15 -0
  955. package/esm/util/setStackTraceLimit.d.ts +6 -0
  956. package/esm/util/setStackTraceLimit.js +20 -0
  957. package/esm/util/simpleFeature.d.ts +112 -4
  958. package/esm/util/simpleFeature.js +181 -29
  959. package/esm/util/springAnimate.d.ts +20 -0
  960. package/esm/util/springAnimate.js +80 -0
  961. package/esm/util/stats.d.ts +25 -2
  962. package/esm/util/stats.js +39 -8
  963. package/esm/util/stopToken.d.ts +207 -15
  964. package/esm/util/stopToken.js +403 -55
  965. package/esm/util/stringUtils.d.ts +5 -0
  966. package/esm/util/stringUtils.js +34 -0
  967. package/esm/util/svgColorProps.d.ts +7 -0
  968. package/esm/util/svgColorProps.js +28 -0
  969. package/esm/util/tabix.d.ts +126 -0
  970. package/esm/util/tabix.js +149 -0
  971. package/esm/util/tags.d.ts +2 -0
  972. package/esm/util/tags.js +5 -0
  973. package/esm/util/temporaryAssembly.d.ts +21 -0
  974. package/esm/util/temporaryAssembly.js +29 -0
  975. package/esm/util/tickLabels.d.ts +36 -0
  976. package/esm/util/tickLabels.js +45 -0
  977. package/esm/util/timeGate.d.ts +26 -0
  978. package/esm/util/timeGate.js +79 -0
  979. package/esm/util/trackConfigDelta.d.ts +84 -0
  980. package/esm/util/trackConfigDelta.js +190 -0
  981. package/esm/util/tracks.d.ts +398 -30
  982. package/esm/util/tracks.js +699 -191
  983. package/esm/util/tss-react/cssAndCx.js +11 -66
  984. package/esm/util/tss-react/index.d.ts +11 -2
  985. package/esm/util/tss-react/index.js +9 -2
  986. package/esm/util/tss-react/makeStyles.js +7 -4
  987. package/esm/util/tss-react/mergeClasses.js +1 -0
  988. package/esm/util/tss-react/tools/classnames.d.ts +3 -0
  989. package/esm/util/tss-react/tools/classnames.js +3 -0
  990. package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
  991. package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
  992. package/esm/util/tss-react/types.d.ts +1 -1
  993. package/esm/util/tss-react/types.js +1 -6
  994. package/esm/util/types/ElementId.js +1 -1
  995. package/esm/util/types/data.d.ts +75 -0
  996. package/esm/util/types/data.js +41 -0
  997. package/esm/util/types/index.d.ts +402 -120
  998. package/esm/util/types/index.js +90 -64
  999. package/esm/util/types/isAny.d.ts +11 -0
  1000. package/esm/util/types/isAny.js +1 -0
  1001. package/esm/util/types/mst.d.ts +71 -47
  1002. package/esm/util/types/mst.js +27 -22
  1003. package/esm/util/types/predicate.d.ts +9 -0
  1004. package/esm/util/types/predicate.js +1 -0
  1005. package/esm/util/types/renderingServices.d.ts +16 -0
  1006. package/esm/util/types/renderingServices.js +1 -0
  1007. package/esm/util/types/services.d.ts +55 -0
  1008. package/esm/util/types/services.js +10 -0
  1009. package/esm/util/types/util.d.ts +8 -2
  1010. package/esm/util/unknownSnapshotKeys.d.ts +36 -0
  1011. package/esm/util/unknownSnapshotKeys.js +69 -0
  1012. package/esm/util/unzip.d.ts +1 -0
  1013. package/esm/util/unzip.js +6 -0
  1014. package/esm/util/useEventCallback.d.ts +1 -0
  1015. package/esm/util/useEventCallback.js +16 -0
  1016. package/esm/util/useFeatureSequence.d.ts +13 -7
  1017. package/esm/util/useFeatureSequence.js +56 -78
  1018. package/esm/util/useFetch.d.ts +56 -0
  1019. package/esm/util/useFetch.js +188 -0
  1020. package/esm/util/useFetchPlugins.d.ts +12 -0
  1021. package/esm/util/useFetchPlugins.js +14 -0
  1022. package/esm/util/useMeasure.d.ts +11 -1
  1023. package/esm/util/useMeasure.js +20 -6
  1024. package/esm/util/usePanZoom.d.ts +75 -0
  1025. package/esm/util/usePanZoom.js +175 -0
  1026. package/esm/util/usePanelVirtualScroll.d.ts +37 -0
  1027. package/esm/util/usePanelVirtualScroll.js +42 -0
  1028. package/esm/util/usePointerDrag.d.ts +37 -0
  1029. package/esm/util/usePointerDrag.js +61 -0
  1030. package/esm/util/useRafCommit.d.ts +4 -0
  1031. package/esm/util/useRafCommit.js +50 -0
  1032. package/esm/util/useResizeDrag.d.ts +91 -0
  1033. package/esm/util/useResizeDrag.js +105 -0
  1034. package/esm/util/useRowVirtualScroll.d.ts +32 -0
  1035. package/esm/util/useRowVirtualScroll.js +63 -0
  1036. package/esm/util/useVirtualScrollWheel.d.ts +7 -0
  1037. package/esm/util/useVirtualScrollWheel.js +108 -0
  1038. package/esm/util/viewStatus.d.ts +81 -0
  1039. package/esm/util/viewStatus.js +37 -0
  1040. package/esm/util/virtualRange.d.ts +36 -0
  1041. package/esm/util/virtualRange.js +26 -0
  1042. package/esm/util/webStorage.d.ts +26 -0
  1043. package/esm/util/webStorage.js +92 -0
  1044. package/esm/util/wheelZoom.d.ts +59 -0
  1045. package/esm/util/wheelZoom.js +231 -0
  1046. package/esm/util/whenViewSettled.d.ts +40 -0
  1047. package/esm/util/whenViewSettled.js +41 -0
  1048. package/esm/util/withFeatureDetails.d.ts +34 -0
  1049. package/esm/util/withFeatureDetails.js +59 -0
  1050. package/esm/util/withLaunchInput.d.ts +123 -0
  1051. package/esm/util/withLaunchInput.js +228 -0
  1052. package/package.json +243 -820
  1053. package/esm/ReExports/DataGrid.d.ts +0 -1
  1054. package/esm/ReExports/DataGrid.js +0 -1
  1055. package/esm/configuration/util.d.ts +0 -10
  1056. package/esm/configuration/util.js +0 -123
  1057. package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
  1058. package/esm/data_adapters/util.d.ts +0 -1
  1059. package/esm/data_adapters/util.js +0 -6
  1060. package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
  1061. package/esm/pluggableElementTypes/GlyphType.js +0 -18
  1062. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
  1063. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
  1064. package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
  1065. package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
  1066. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
  1067. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
  1068. package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
  1069. package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
  1070. package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
  1071. package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
  1072. package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
  1073. package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
  1074. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
  1075. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
  1076. package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
  1077. package/esm/pluggableElementTypes/renderers/index.js +0 -6
  1078. package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
  1079. package/esm/pluggableElementTypes/renderers/util.js +0 -14
  1080. package/esm/rpc/baseRpcConfig.d.ts +0 -8
  1081. package/esm/rpc/baseRpcConfig.js +0 -10
  1082. package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
  1083. package/esm/rpc/mainThreadRpcConfig.js +0 -8
  1084. package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
  1085. package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
  1086. package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
  1087. package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
  1088. package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
  1089. package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
  1090. package/esm/rpc/methods/CoreRender.d.ts +0 -14
  1091. package/esm/rpc/methods/CoreRender.js +0 -40
  1092. package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
  1093. package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
  1094. package/esm/rpc/methods/util.d.ts +0 -15
  1095. package/esm/rpc/methods/util.js +0 -7
  1096. package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
  1097. package/esm/rpc/webWorkerRpcConfig.js +0 -8
  1098. package/esm/ui/MenuButton.d.ts +0 -1
  1099. package/esm/ui/MenuButton.js +0 -1
  1100. package/esm/ui/MenuItems.d.ts +0 -15
  1101. package/esm/ui/MenuItems.js +0 -59
  1102. package/esm/ui/useEvent.d.ts +0 -1
  1103. package/esm/ui/useEvent.js +0 -10
  1104. package/esm/util/blobToDataURL.d.ts +0 -1
  1105. package/esm/util/blobToDataURL.js +0 -14
  1106. package/esm/util/compositeMap.d.ts +0 -11
  1107. package/esm/util/compositeMap.js +0 -59
  1108. package/esm/util/flatqueue/index.d.ts +0 -11
  1109. package/esm/util/flatqueue/index.js +0 -61
  1110. package/esm/util/layouts/BaseLayout.d.ts +0 -30
  1111. package/esm/util/layouts/MultiLayout.d.ts +0 -12
  1112. package/esm/util/layouts/MultiLayout.js +0 -40
  1113. package/esm/util/layouts/PileupLayout.d.ts +0 -41
  1114. package/esm/util/layouts/PileupLayout.js +0 -202
  1115. package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
  1116. package/esm/util/layouts/PrecomputedLayout.js +0 -71
  1117. package/esm/util/layouts/SceneGraph.d.ts +0 -31
  1118. package/esm/util/layouts/SceneGraph.js +0 -121
  1119. package/esm/util/makeAbortableReaction.d.ts +0 -3
  1120. package/esm/util/makeAbortableReaction.js +0 -47
  1121. package/esm/util/map-obj/index.d.ts +0 -13
  1122. package/esm/util/map-obj/index.js +0 -92
  1123. package/esm/util/nextTick.d.ts +0 -1
  1124. package/esm/util/nextTick.js +0 -3
  1125. package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
  1126. package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
  1127. package/esm/util/offscreenCanvasUtils.d.ts +0 -12
  1128. package/esm/util/offscreenCanvasUtils.js +0 -19
  1129. package/esm/util/renderToAbstractCanvas.d.ts +0 -17
  1130. package/esm/util/renderToAbstractCanvas.js +0 -53
  1131. package/esm/util/transferables.d.ts +0 -2
  1132. package/esm/util/transferables.js +0 -35
  1133. package/esm/util/tss-react/mui/index.d.ts +0 -1
  1134. package/esm/util/tss-react/mui/index.js +0 -1
  1135. package/esm/util/tss-react/mui/mui.d.ts +0 -10
  1136. package/esm/util/tss-react/mui/mui.js +0 -5
  1137. package/esm/util/when.d.ts +0 -1
  1138. package/esm/util/when.js +0 -1
  1139. /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
  1140. /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
@@ -0,0 +1,75 @@
1
+ import type { WheelZoomView } from './wheelZoom.ts';
2
+ import type React from 'react';
3
+ /**
4
+ * What the gestures need off a view: `bpPerPx`/`zoomTo`/`horizontalScroll` from
5
+ * WheelZoomView, plus the scroll-to-zoom preference.
6
+ *
7
+ * Duck-typed rather than taking a model, like the rest of the wheel-zoom layer.
8
+ *
9
+ * **`scrollZoom` belongs to the view, not to a piece of React state of your
10
+ * own.** Displays that scroll vertically inside themselves — an alignments
11
+ * pileup is the one you hit first — consult the same flag to decide whether the
12
+ * plain wheel is already spoken for, so a private copy that disagrees gets you
13
+ * both at once: the pileup scrolls its reads *and* the view zooms under the
14
+ * cursor. It is read at event time, so flipping it takes effect on the next
15
+ * wheel event with nothing rebound.
16
+ */
17
+ export interface PanZoomView extends WheelZoomView {
18
+ scrollZoom?: boolean;
19
+ }
20
+ /**
21
+ * Wheel zoom and side-scroll, bound to `ref` for as long as the component
22
+ * lives.
23
+ *
24
+ * The listener is registered on the element directly and non-passively, which
25
+ * is not a style preference: React registers `wheel` at the root as a *passive*
26
+ * listener, so a handler installed through the `onWheel` prop cannot
27
+ * `preventDefault`, and the gesture would drive the page out from under you at
28
+ * the same time as it drove the view.
29
+ */
30
+ export declare function useWheelZoom(ref: React.RefObject<HTMLElement | null>, view: PanZoomView): void;
31
+ /**
32
+ * Every navigation gesture for a view, on one element: wheel zoom, side-scroll,
33
+ * and click-drag panning.
34
+ *
35
+ * ```tsx
36
+ * const ref = useWidthSetter(view)
37
+ * const { containerProps } = usePanZoom(ref, view)
38
+ * return (
39
+ * <div ref={ref} {...containerProps}>
40
+ * …tracks…
41
+ * </div>
42
+ * )
43
+ * ```
44
+ *
45
+ * **`touch-action: none` comes with it**, written onto `ref`'s element. Without
46
+ * it a browser claims a touch drag as a page scroll, the pointer stream never
47
+ * arrives, and the gestures below are bound and dead — on a phone only, so a
48
+ * demo written and tested on a desktop is inert with nothing in the console.
49
+ * Asking the host for it was one line of documentation against a silent failure
50
+ * on half the devices there are.
51
+ *
52
+ * Set imperatively rather than handed back as a style, because a host that
53
+ * spreads its own `style` on the same element would drop it. React writes only
54
+ * the style properties its own `style` prop names, so this survives every
55
+ * render that does not mention `touchAction` — and a host that does name one
56
+ * wins, which is the escape hatch. `touchAction` here is the other:
57
+ * `'pan-y'` for a view inside a long document that should still scroll the
58
+ * page vertically, or `false` to leave the property alone entirely.
59
+ *
60
+ * JBrowse's own view splits these across two elements (the wheel on the whole
61
+ * view, the drag on the tracks area, so a drag over the header does nothing) and
62
+ * so binds `useWheelZoom` plus its own `useSideScroll`. One element is the
63
+ * normal case for an embedder, and this is it.
64
+ */
65
+ export declare function usePanZoom(ref: React.RefObject<HTMLElement | null>, view: PanZoomView, { touchAction, }?: {
66
+ /** what to write as the element's `touch-action`, or false to write none */
67
+ touchAction?: React.CSSProperties['touchAction'] | false;
68
+ }): {
69
+ containerProps: {
70
+ onPointerDown(event: React.PointerEvent<HTMLElement>): void;
71
+ onPointerMove(event: React.PointerEvent<HTMLElement>): void;
72
+ onPointerUp: (event: React.PointerEvent<HTMLElement>) => void;
73
+ onPointerCancel: (event: React.PointerEvent<HTMLElement>) => void;
74
+ };
75
+ };
@@ -0,0 +1,175 @@
1
+ // Navigation gestures for a linear view, as two hooks a host can bind to an
2
+ // element it owns.
3
+ //
4
+ // This is the wiring between a pointing device and `zoomTo`/`horizontalScroll`,
5
+ // and it is the part of embedding a view that has no interesting variants: a
6
+ // wheel means the same thing in every genome browser, and getting it wrong is
7
+ // mostly invisible until a trackpad or a touchscreen is involved. JBrowse's own
8
+ // LinearGenomeView binds `useWheelZoom` to its tracks area, and an embedder
9
+ // building their own chrome around a view binds `usePanZoom` to theirs — same
10
+ // gestures, same feel, one implementation.
11
+ //
12
+ // Bind these to the data, not to the whole view. The chrome you leave out is
13
+ // the only surface a scroll-to-zoom user has left for scrolling the page: no
14
+ // modifier can serve as one, because browsers turn shift+wheel into horizontal
15
+ // scroll, ctrl/meta+wheel is how a trackpad reports a pinch, and Firefox binds
16
+ // alt+wheel to history navigation.
17
+ //
18
+ // The wheel half is `createWheelZoomController` (wheelZoom.ts), which is where
19
+ // the gesture decision matrix, the rAF batching and the zoom rate limit live.
20
+ //
21
+ // Scroll-to-zoom is off by default and so has to be found: what says so is the
22
+ // labelled toggle every view header carries (`ui/ScrollZoomToggle`), whose
23
+ // tooltip is also where ctrl/⌘+scroll — which zooms whatever the preference
24
+ // says — is named.
25
+ import { useEffect, useRef } from 'react';
26
+ import { createWheelZoomController } from './wheelZoom.js';
27
+ /**
28
+ * Wheel zoom and side-scroll, bound to `ref` for as long as the component
29
+ * lives.
30
+ *
31
+ * The listener is registered on the element directly and non-passively, which
32
+ * is not a style preference: React registers `wheel` at the root as a *passive*
33
+ * listener, so a handler installed through the `onWheel` prop cannot
34
+ * `preventDefault`, and the gesture would drive the page out from under you at
35
+ * the same time as it drove the view.
36
+ */
37
+ export function useWheelZoom(ref, view) {
38
+ useEffect(() => {
39
+ const element = ref.current;
40
+ return element
41
+ ? createWheelZoomController({
42
+ element,
43
+ // the view fills its own area and doesn't move under the cursor, so a
44
+ // mouseleave here really means the gesture belongs to the page now
45
+ releaseOnPointerLeave: true,
46
+ resolveTarget: () => ({
47
+ views: [view],
48
+ scrollZoom: !!view.scrollZoom,
49
+ originElement: () => element,
50
+ }),
51
+ })
52
+ : undefined;
53
+ }, [ref, view]);
54
+ }
55
+ // How far the pointer has to travel before a press counts as a pan rather than
56
+ // a click. Under this, the gesture is still a click and whatever is underneath
57
+ // gets to keep it.
58
+ const DRAG_THRESHOLD_PX = 4;
59
+ /**
60
+ * Every navigation gesture for a view, on one element: wheel zoom, side-scroll,
61
+ * and click-drag panning.
62
+ *
63
+ * ```tsx
64
+ * const ref = useWidthSetter(view)
65
+ * const { containerProps } = usePanZoom(ref, view)
66
+ * return (
67
+ * <div ref={ref} {...containerProps}>
68
+ * …tracks…
69
+ * </div>
70
+ * )
71
+ * ```
72
+ *
73
+ * **`touch-action: none` comes with it**, written onto `ref`'s element. Without
74
+ * it a browser claims a touch drag as a page scroll, the pointer stream never
75
+ * arrives, and the gestures below are bound and dead — on a phone only, so a
76
+ * demo written and tested on a desktop is inert with nothing in the console.
77
+ * Asking the host for it was one line of documentation against a silent failure
78
+ * on half the devices there are.
79
+ *
80
+ * Set imperatively rather than handed back as a style, because a host that
81
+ * spreads its own `style` on the same element would drop it. React writes only
82
+ * the style properties its own `style` prop names, so this survives every
83
+ * render that does not mention `touchAction` — and a host that does name one
84
+ * wins, which is the escape hatch. `touchAction` here is the other:
85
+ * `'pan-y'` for a view inside a long document that should still scroll the
86
+ * page vertically, or `false` to leave the property alone entirely.
87
+ *
88
+ * JBrowse's own view splits these across two elements (the wheel on the whole
89
+ * view, the drag on the tracks area, so a drag over the header does nothing) and
90
+ * so binds `useWheelZoom` plus its own `useSideScroll`. One element is the
91
+ * normal case for an embedder, and this is it.
92
+ */
93
+ export function usePanZoom(ref, view, { touchAction = 'none', } = {}) {
94
+ // `x` is the last position a pan was applied from; `panning` is whether the
95
+ // press has travelled far enough to be a drag at all
96
+ const dragRef = useRef(undefined);
97
+ useWheelZoom(ref, view);
98
+ // restores rather than clears on the way out: the element may outlive this
99
+ // hook (a host that stops binding gestures without unmounting its container),
100
+ // and clearing would take a `touch-action` the host set for itself
101
+ useEffect(() => {
102
+ const element = ref.current;
103
+ if (!element || touchAction === false) {
104
+ return;
105
+ }
106
+ // `|| ''` because a CSSOM that does not implement `touch-action` answers
107
+ // `undefined` (jsdom does), and writing that back is a write of the string
108
+ // "undefined" rather than a clear
109
+ const previous = element.style.touchAction || '';
110
+ element.style.touchAction = touchAction;
111
+ return () => {
112
+ element.style.touchAction = previous;
113
+ };
114
+ }, [ref, touchAction]);
115
+ function endDrag(event) {
116
+ dragRef.current = undefined;
117
+ // release only what the move handler took — a press that stayed under the
118
+ // threshold never captured anything
119
+ if (event.currentTarget.hasPointerCapture(event.pointerId)) {
120
+ event.currentTarget.releasePointerCapture(event.pointerId);
121
+ }
122
+ }
123
+ return {
124
+ containerProps: {
125
+ onPointerDown(event) {
126
+ // Leave the press alone when something else owns it: a control that
127
+ // claimed it (`[data-gesture-owner]`, JBrowse's marker on the parts
128
+ // that drag on their own — a display's vertical scrollbar, a resize
129
+ // handle), a button (the track-sizing button a display draws in its own
130
+ // corner), or a draggable element. `closest`, because the press usually
131
+ // lands on an icon inside the control. Shift is left alone too: it is
132
+ // what a range-select of the host's own would want, and it is what
133
+ // JBrowse's own view uses it for.
134
+ if (event.button !== 0 || event.shiftKey) {
135
+ return;
136
+ }
137
+ if (event.target instanceof Element &&
138
+ event.target.closest('button, [data-gesture-owner], [draggable="true"]')) {
139
+ return;
140
+ }
141
+ // Note what this does *not* do: capture the pointer. See onPointerMove.
142
+ dragRef.current = { x: event.clientX, panning: false };
143
+ },
144
+ onPointerMove(event) {
145
+ const drag = dragRef.current;
146
+ if (!drag) {
147
+ return;
148
+ }
149
+ if (!drag.panning) {
150
+ if (Math.abs(event.clientX - drag.x) < DRAG_THRESHOLD_PX) {
151
+ return;
152
+ }
153
+ // Past the threshold this is a pan, so take the pointer: the gesture
154
+ // has to keep panning when the cursor leaves the element, and end
155
+ // even if it is released outside the window.
156
+ //
157
+ // Capturing is deferred to here because it retargets the whole rest
158
+ // of the gesture — including the `click` that ends it — at this
159
+ // element. Capture on pointerdown instead and every click inside the
160
+ // view lands here, so nothing underneath ever sees one: a display's
161
+ // click-to-select-a-feature stops selecting. A press that never moves
162
+ // never captures, and stays the click it looks like.
163
+ drag.panning = true;
164
+ event.currentTarget.setPointerCapture(event.pointerId);
165
+ }
166
+ view.horizontalScroll(drag.x - event.clientX);
167
+ drag.x = event.clientX;
168
+ },
169
+ // pointercancel as well as pointerup: a touch drag interrupted by the
170
+ // browser never fires `up`, and the drag would stay latched
171
+ onPointerUp: endDrag,
172
+ onPointerCancel: endDrag,
173
+ },
174
+ };
175
+ }
@@ -0,0 +1,37 @@
1
+ interface PanelScrollTarget {
2
+ scrollTop: number;
3
+ scrollableHeight: number;
4
+ setScrollTop: (n: number) => void;
5
+ }
6
+ /**
7
+ * Wheel gestures over a **scrolled canvas panel** — the alignments pileup and
8
+ * the canvas basic display: a plain wheel scrolls it, `shift` keeps scrolling it
9
+ * once `scrollZoom` has claimed the plain wheel for the view, and ctrl/meta is
10
+ * left to the browser and the view's pinch-zoom. Nothing here resizes anything.
11
+ *
12
+ * These panels paint a fixed-size canvas at `-scrollTop` rather than living in a
13
+ * DOM overflow container, so nothing scrolls them without this. The latch (inside
14
+ * `applyScroll`) owns `preventDefault` but never `stopPropagation`, so a diagonal
15
+ * wheel still bubbles its horizontal component to the LGV for panning.
16
+ *
17
+ * ADR-027 keeps wheel-*intent* dispatch per handler, because the panels do not
18
+ * agree on what a gesture means. This is the second of the two rules that
19
+ * survived that split — the row-stack rule (`useRowVirtualScroll`, where `shift`
20
+ * resizes) is the other — and the two displays sharing it had byte-identical
21
+ * copies differing only in which getter named the viewport. The canvas display
22
+ * converged here when it moved off a native overflow container; the ADR's table
23
+ * still described its pre-virtual-scroll rule and has been corrected.
24
+ *
25
+ * `scrollZoom` and `viewportHeight` are inputs rather than reads off the model,
26
+ * so core needs no view typing and each display keeps naming its own viewport
27
+ * (the pileup's excludes the sticky coverage band; the canvas display's is the
28
+ * whole track).
29
+ *
30
+ * `panel` is the element wrapping the canvas AND the DOM overlays drawn over it,
31
+ * never the canvas alone — see `useVirtualScrollWheel`, which says why.
32
+ */
33
+ export declare function usePanelVirtualScroll(panel: HTMLElement | null, model: PanelScrollTarget, { viewportHeight, scrollZoom, }: {
34
+ viewportHeight: number;
35
+ scrollZoom: boolean;
36
+ }): void;
37
+ export {};
@@ -0,0 +1,42 @@
1
+ import { useVirtualScrollWheel } from './useVirtualScrollWheel.js';
2
+ /**
3
+ * Wheel gestures over a **scrolled canvas panel** — the alignments pileup and
4
+ * the canvas basic display: a plain wheel scrolls it, `shift` keeps scrolling it
5
+ * once `scrollZoom` has claimed the plain wheel for the view, and ctrl/meta is
6
+ * left to the browser and the view's pinch-zoom. Nothing here resizes anything.
7
+ *
8
+ * These panels paint a fixed-size canvas at `-scrollTop` rather than living in a
9
+ * DOM overflow container, so nothing scrolls them without this. The latch (inside
10
+ * `applyScroll`) owns `preventDefault` but never `stopPropagation`, so a diagonal
11
+ * wheel still bubbles its horizontal component to the LGV for panning.
12
+ *
13
+ * ADR-027 keeps wheel-*intent* dispatch per handler, because the panels do not
14
+ * agree on what a gesture means. This is the second of the two rules that
15
+ * survived that split — the row-stack rule (`useRowVirtualScroll`, where `shift`
16
+ * resizes) is the other — and the two displays sharing it had byte-identical
17
+ * copies differing only in which getter named the viewport. The canvas display
18
+ * converged here when it moved off a native overflow container; the ADR's table
19
+ * still described its pre-virtual-scroll rule and has been corrected.
20
+ *
21
+ * `scrollZoom` and `viewportHeight` are inputs rather than reads off the model,
22
+ * so core needs no view typing and each display keeps naming its own viewport
23
+ * (the pileup's excludes the sticky coverage band; the canvas display's is the
24
+ * whole track).
25
+ *
26
+ * `panel` is the element wrapping the canvas AND the DOM overlays drawn over it,
27
+ * never the canvas alone — see `useVirtualScrollWheel`, which says why.
28
+ */
29
+ export function usePanelVirtualScroll(panel, model, { viewportHeight, scrollZoom, }) {
30
+ useVirtualScrollWheel(panel, (e, applyScroll) => {
31
+ if ((scrollZoom && !e.shiftKey) || e.ctrlKey || e.metaKey) {
32
+ return;
33
+ }
34
+ applyScroll(e, {
35
+ scrollTop: model.scrollTop,
36
+ viewportHeight,
37
+ scrollableHeight: model.scrollableHeight,
38
+ }, n => {
39
+ model.setScrollTop(n);
40
+ });
41
+ });
42
+ }
@@ -0,0 +1,37 @@
1
+ import type React from 'react';
2
+ /**
3
+ * Pointer-capture drag lifecycle shared by draggable UI (resize handles,
4
+ * scrollbars, rubberbands, pan). On pointerdown it captures the pointer on the
5
+ * event's element, so the returned `onPointerMove`/`onPointerUp` fire on that
6
+ * same element even when the pointer leaves it — no window/document listeners,
7
+ * and the capture auto-releases if the element unmounts mid-drag.
8
+ *
9
+ * `onDrag` gets the live React pointer event. React nulls `event.currentTarget`
10
+ * after the handler returns, so snapshot `clientX`/`clientY` (and any target
11
+ * geometry) into locals synchronously before deferring work into a
12
+ * requestAnimationFrame.
13
+ *
14
+ * **One drag belongs to one pointer, and only a primary press starts it.**
15
+ * `pointerdown` fires for a right-click and for every extra finger, and a
16
+ * handler that takes them all reads as two different bugs: a right-press starts
17
+ * a drag that then runs under its own context menu, and a second finger landing
18
+ * mid-drag re-anchors the gesture, so the next move jumps by the distance
19
+ * between the two fingers. Tracking which pointer owns the drag is also what
20
+ * makes the move handler safe, since an uncaptured second pointer over the same
21
+ * element reports moves to it. `usePanZoom` guards its own pan the same way.
22
+ *
23
+ * The caller still owns `touch-action: none` on the element — without it the
24
+ * browser claims a touch drag as a page scroll and no pointer stream arrives at
25
+ * all. It stays a style rather than riding in the returned props because a
26
+ * caller's own `style` would silently replace it.
27
+ */
28
+ export declare function usePointerDrag({ onDragStart, onDrag, onDragEnd, }: {
29
+ onDragStart?: (event: React.PointerEvent) => void;
30
+ onDrag: (event: React.PointerEvent) => void;
31
+ onDragEnd?: (event: React.PointerEvent) => void;
32
+ }): {
33
+ onPointerDown: (event: React.PointerEvent) => void;
34
+ onPointerMove: (event: React.PointerEvent) => void;
35
+ onPointerUp: (event: React.PointerEvent) => void;
36
+ onPointerCancel: (event: React.PointerEvent) => void;
37
+ };
@@ -0,0 +1,61 @@
1
+ import { useRef } from 'react';
2
+ import { useEventCallback } from './useEventCallback.js';
3
+ /**
4
+ * Pointer-capture drag lifecycle shared by draggable UI (resize handles,
5
+ * scrollbars, rubberbands, pan). On pointerdown it captures the pointer on the
6
+ * event's element, so the returned `onPointerMove`/`onPointerUp` fire on that
7
+ * same element even when the pointer leaves it — no window/document listeners,
8
+ * and the capture auto-releases if the element unmounts mid-drag.
9
+ *
10
+ * `onDrag` gets the live React pointer event. React nulls `event.currentTarget`
11
+ * after the handler returns, so snapshot `clientX`/`clientY` (and any target
12
+ * geometry) into locals synchronously before deferring work into a
13
+ * requestAnimationFrame.
14
+ *
15
+ * **One drag belongs to one pointer, and only a primary press starts it.**
16
+ * `pointerdown` fires for a right-click and for every extra finger, and a
17
+ * handler that takes them all reads as two different bugs: a right-press starts
18
+ * a drag that then runs under its own context menu, and a second finger landing
19
+ * mid-drag re-anchors the gesture, so the next move jumps by the distance
20
+ * between the two fingers. Tracking which pointer owns the drag is also what
21
+ * makes the move handler safe, since an uncaptured second pointer over the same
22
+ * element reports moves to it. `usePanZoom` guards its own pan the same way.
23
+ *
24
+ * The caller still owns `touch-action: none` on the element — without it the
25
+ * browser claims a touch drag as a page scroll and no pointer stream arrives at
26
+ * all. It stays a style rather than riding in the returned props because a
27
+ * caller's own `style` would silently replace it.
28
+ */
29
+ export function usePointerDrag({ onDragStart, onDrag, onDragEnd, }) {
30
+ const activePointerRef = useRef(undefined);
31
+ const startStable = useEventCallback((event) => {
32
+ onDragStart?.(event);
33
+ });
34
+ const dragStable = useEventCallback(onDrag);
35
+ const endStable = useEventCallback((event) => {
36
+ onDragEnd?.(event);
37
+ });
38
+ function stop(event) {
39
+ if (activePointerRef.current === event.pointerId) {
40
+ activePointerRef.current = undefined;
41
+ endStable(event);
42
+ }
43
+ }
44
+ return {
45
+ onPointerDown: (event) => {
46
+ if (event.button !== 0 || activePointerRef.current !== undefined) {
47
+ return;
48
+ }
49
+ activePointerRef.current = event.pointerId;
50
+ event.currentTarget.setPointerCapture(event.pointerId);
51
+ startStable(event);
52
+ },
53
+ onPointerMove: (event) => {
54
+ if (activePointerRef.current === event.pointerId) {
55
+ dragStable(event);
56
+ }
57
+ },
58
+ onPointerUp: stop,
59
+ onPointerCancel: stop,
60
+ };
61
+ }
@@ -0,0 +1,4 @@
1
+ export declare function useRafCommit(commit: (value: number) => void): {
2
+ schedule: (value: number) => void;
3
+ flush: () => void;
4
+ };
@@ -0,0 +1,50 @@
1
+ import { useCallback, useEffect, useRef } from 'react';
2
+ import { useEventCallback } from './useEventCallback.js';
3
+ // Coalesce rapid value writes to a single commit per animation frame. High-
4
+ // frequency DOM events (a thumb drag's pointermove, plus the browser's
5
+ // coalesced pointer batches) can fire faster than the frame rate; committing
6
+ // each synchronously reruns the downstream work — a canvas repaint, an overlay
7
+ // reconciliation — several times per frame, all but the last discarded.
8
+ //
9
+ // Values are absolute, so it's last-write-wins: a later `schedule` in the same
10
+ // frame overwrites the pending value. `flush` commits the pending value now
11
+ // (e.g. the gesture ended, so the resting position must be exact) and cancels
12
+ // the frame; the pending frame is also canceled on unmount so a late commit
13
+ // can't fire into a torn-down tree.
14
+ export function useRafCommit(commit) {
15
+ const stableCommit = useEventCallback(commit);
16
+ const pendingRef = useRef(undefined);
17
+ useEffect(() => () => {
18
+ const pending = pendingRef.current;
19
+ if (pending) {
20
+ cancelAnimationFrame(pending.id);
21
+ }
22
+ }, []);
23
+ const schedule = useCallback((value) => {
24
+ const pending = pendingRef.current;
25
+ if (pending) {
26
+ pending.value = value;
27
+ }
28
+ else {
29
+ pendingRef.current = {
30
+ value,
31
+ id: requestAnimationFrame(() => {
32
+ const cur = pendingRef.current;
33
+ pendingRef.current = undefined;
34
+ if (cur) {
35
+ stableCommit(cur.value);
36
+ }
37
+ }),
38
+ };
39
+ }
40
+ }, [stableCommit]);
41
+ const flush = useCallback(() => {
42
+ const pending = pendingRef.current;
43
+ if (pending) {
44
+ cancelAnimationFrame(pending.id);
45
+ pendingRef.current = undefined;
46
+ stableCommit(pending.value);
47
+ }
48
+ }, [stableCommit]);
49
+ return { schedule, flush };
50
+ }
@@ -0,0 +1,91 @@
1
+ import type React from 'react';
2
+ /**
3
+ * A pointer drag along one axis, reported as a distance per animation frame.
4
+ *
5
+ * This is the whole gesture behind a resize handle with no opinion about how the
6
+ * handle looks. `ui/ResizeHandle` is this hook plus JBrowse's own 4px bar, and an
7
+ * app drawing its own divider spreads the returned props onto it. That is the
8
+ * per-track resize story for an embedder who mounts displays themselves: the
9
+ * track row is the host's box, so the bar has to be theirs, but the gesture and
10
+ * the two model calls are not.
11
+ *
12
+ * ```tsx
13
+ * const handleProps = useResizeDrag({
14
+ * onDrag: distance => {
15
+ * display.resizeHeight(distance)
16
+ * },
17
+ * onDragStart: () => {
18
+ * track.setResizing(true)
19
+ * },
20
+ * onDragEnd: () => {
21
+ * track.setResizing(false)
22
+ * },
23
+ * })
24
+ * return (
25
+ * <div
26
+ * {...handleProps}
27
+ * style={{ height: 4, cursor: 'row-resize', touchAction: 'none' }}
28
+ * />
29
+ * )
30
+ * ```
31
+ *
32
+ * `touchAction: 'none'` is the caller's half of the deal: without it the browser
33
+ * claims a touch drag as a page scroll and the pointer stream never arrives.
34
+ * `usePanZoom` writes the same property itself and this cannot — that one is
35
+ * handed the element as a ref, while this returns props and never sees a node.
36
+ * It stays out of those props because a caller's own `style` would silently
37
+ * replace it.
38
+ *
39
+ * Three things a hand-rolled version gets wrong, none of which fails loudly:
40
+ *
41
+ * - **One commit per frame.** A pointermove stream (plus the browser's own
42
+ * coalesced batches) outruns the frame rate, and each commit reruns whatever
43
+ * the resize drives. Committing per event relayouts a pileup several times a
44
+ * frame and throws all but the last away.
45
+ * - **The distance is measured from the last commit**, not from where the press
46
+ * started, so a dropped intermediate position costs nothing and a drag that
47
+ * runs into a clamp (`resizeHeight` stops at the display's minimum) does not
48
+ * bank a debt the pointer has to pay back on the way out.
49
+ * - **`data-gesture-owner` rides in the props.** It is the marker ancestor
50
+ * gestures test for (`closest('[data-gesture-owner]')`, in the LGV's own pan
51
+ * and in `usePanZoom`) before starting a drag of their own, so without it
52
+ * dragging a resize bar pans the view sideways instead. A `stopPropagation` is
53
+ * not a substitute: those ancestors listen on *mouse* events while this runs
54
+ * on *pointer* events, so there is no shared event to stop, and stopping the
55
+ * mousedown would also cost focus-on-click, whose document-level listener
56
+ * (`useFocusOnInteraction`) React's stopPropagation does block.
57
+ */
58
+ export declare function useResizeDrag({ onDrag, onDragStart, onDragEnd, vertical, gain, }: {
59
+ /**
60
+ * How far the pointer has travelled since the last committed frame, in px —
61
+ * divided by `gain`, and whole.
62
+ */
63
+ onDrag: (distance: number) => void;
64
+ onDragStart?: () => void;
65
+ onDragEnd?: () => void;
66
+ /**
67
+ * A vertical divider, dragged left/right (so the distance comes off `clientX`).
68
+ * The default is a horizontal divider dragged up/down, which is a track
69
+ * resize.
70
+ */
71
+ vertical?: boolean;
72
+ /**
73
+ * How many px this handle's own position moves per px the dragged value
74
+ * changes. The default 1 is a divider that moves with what it sizes.
75
+ *
76
+ * It is more than 1 whenever the value is SHARED by several stacked copies and
77
+ * this handle sits below more than one of them: the second of three synteny
78
+ * ribbons, or the second group's coverage band in a grouped pileup, moves 2px
79
+ * for every 1px of height, so an undivided drag ran the bar away at twice the
80
+ * pointer's speed and slid it out from under the cursor. Divide by the number
81
+ * of copies at or above the handle and the bar stays put; the value then
82
+ * changes by a fraction of the drag, which is what sharing it means.
83
+ */
84
+ gain?: number;
85
+ }): {
86
+ onPointerMove: (event: React.PointerEvent) => void;
87
+ onPointerUp: (event: React.PointerEvent) => void;
88
+ onPointerCancel: (event: React.PointerEvent) => void;
89
+ onPointerDown: (event: React.PointerEvent) => void;
90
+ 'data-gesture-owner': string;
91
+ };