@jbrowse/core 4.3.0 → 5.0.0-beta.10

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 (1265) hide show
  1. package/README.md +1994 -0
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +14 -3
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +36 -23
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +10 -7
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +124 -21
  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 -5
  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 +12 -1
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +19 -5
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +18 -23
  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 +9 -6
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +33 -30
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
  28. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
  29. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +19 -0
  30. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  31. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  32. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +5 -3
  33. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +8 -6
  34. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
  35. package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
  36. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +7 -2
  37. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +15 -20
  38. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  39. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +50 -0
  40. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -1
  41. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +9 -10
  42. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
  43. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
  44. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
  45. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +35 -24
  46. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
  47. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
  48. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +3 -3
  49. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
  50. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
  51. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
  52. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
  53. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
  54. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
  55. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
  56. package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
  57. package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
  58. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
  59. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
  60. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
  61. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
  62. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
  63. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
  64. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
  65. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
  66. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
  67. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
  68. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
  69. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
  70. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
  71. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +20 -0
  72. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
  73. package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
  74. package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
  75. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +62 -63
  76. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +69 -59
  77. package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
  78. package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
  79. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
  80. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
  81. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
  82. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
  83. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
  84. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
  85. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
  86. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
  87. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
  88. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
  89. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
  90. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
  91. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
  92. package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
  93. package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
  94. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
  95. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
  96. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
  97. package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
  98. package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
  99. package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
  100. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  101. package/esm/BaseFeatureWidget/configSchema.js +1 -1
  102. package/esm/BaseFeatureWidget/formatDetails.d.ts +22 -0
  103. package/esm/BaseFeatureWidget/formatDetails.js +82 -0
  104. package/esm/BaseFeatureWidget/index.d.ts +4 -1
  105. package/esm/BaseFeatureWidget/index.js +2 -2
  106. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +102 -71
  107. package/esm/BaseFeatureWidget/stateModelFactory.js +162 -63
  108. package/esm/BaseFeatureWidget/types.d.ts +15 -8
  109. package/esm/BaseFeatureWidget/util.d.ts +2 -37
  110. package/esm/BaseFeatureWidget/util.js +4 -85
  111. package/esm/CorePlugin.js +12 -7
  112. package/esm/PhasedScheduler.d.ts +4 -2
  113. package/esm/PhasedScheduler.js +18 -2
  114. package/esm/Plugin.d.ts +6 -1
  115. package/esm/Plugin.js +7 -0
  116. package/esm/PluginLoader.d.ts +55 -44
  117. package/esm/PluginLoader.js +290 -90
  118. package/esm/PluginManager.d.ts +476 -57
  119. package/esm/PluginManager.js +480 -91
  120. package/esm/ReExports/MuiDataGridReExports.d.ts +3 -2
  121. package/esm/ReExports/MuiDataGridReExports.js +58 -130
  122. package/esm/ReExports/MuiReExports.d.ts +3 -134
  123. package/esm/ReExports/MuiReExports.js +43 -16
  124. package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
  125. package/esm/ReExports/MuiStylesReExports.js +55 -0
  126. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  127. package/esm/ReExports/coreModules.generated.js +528 -0
  128. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  129. package/esm/ReExports/coreWorkerModules.generated.js +488 -0
  130. package/esm/ReExports/frameworkModules.d.ts +2 -0
  131. package/esm/ReExports/frameworkModules.js +68 -0
  132. package/esm/ReExports/frameworkShared.d.ts +12 -0
  133. package/esm/ReExports/frameworkShared.js +16 -0
  134. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  135. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  136. package/esm/ReExports/lazify.d.ts +2 -2
  137. package/esm/ReExports/lazify.js +16 -3
  138. package/esm/ReExports/list.js +433 -160
  139. package/esm/ReExports/modules.d.ts +1 -1
  140. package/esm/ReExports/modules.js +10 -146
  141. package/esm/ReExports/muiComponentNames.d.ts +18 -0
  142. package/esm/ReExports/muiComponentNames.js +130 -0
  143. package/esm/ReExports/registry.d.ts +3 -0
  144. package/esm/ReExports/registry.js +46 -0
  145. package/esm/ReExports/uiStub.d.ts +3 -0
  146. package/esm/ReExports/uiStub.js +33 -0
  147. package/esm/ReExports/workerModules.d.ts +2 -0
  148. package/esm/ReExports/workerModules.js +11 -0
  149. package/esm/TextSearch/BaseResults.d.ts +20 -21
  150. package/esm/TextSearch/BaseResults.js +8 -33
  151. package/esm/TextSearch/TextSearchManager.d.ts +30 -36
  152. package/esm/TextSearch/TextSearchManager.js +138 -44
  153. package/esm/TextSearch/places.d.ts +12 -0
  154. package/esm/TextSearch/places.js +94 -0
  155. package/esm/assemblyManager/assembly.d.ts +310 -35
  156. package/esm/assemblyManager/assembly.js +554 -263
  157. package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
  158. package/esm/assemblyManager/assemblyAdapters.js +24 -0
  159. package/esm/assemblyManager/assemblyConfigSchema.d.ts +135 -19
  160. package/esm/assemblyManager/assemblyConfigSchema.js +205 -23
  161. package/esm/assemblyManager/assemblyManager.d.ts +586 -323
  162. package/esm/assemblyManager/assemblyManager.js +352 -51
  163. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +39 -0
  164. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +114 -0
  165. package/esm/assemblyManager/geneticCodes.d.ts +21 -0
  166. package/esm/assemblyManager/geneticCodes.js +44 -0
  167. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +19 -0
  168. package/esm/assemblyManager/getSequenceAdapterConfig.js +22 -0
  169. package/esm/assemblyManager/index.d.ts +1 -1
  170. package/esm/assemblyManager/index.js +2 -2
  171. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  172. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  173. package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
  174. package/esm/assemblyManager/loadRefNameMap.js +75 -0
  175. package/esm/assemblyManager/refNameColors.d.ts +1 -0
  176. package/esm/assemblyManager/refNameColors.js +32 -0
  177. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  178. package/esm/assemblyManager/refNameMapKey.js +12 -0
  179. package/esm/assemblyManager/refNameMaps.d.ts +26 -0
  180. package/esm/assemblyManager/refNameMaps.js +87 -0
  181. package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
  182. package/esm/assemblyManager/refNameMismatch.js +66 -0
  183. package/esm/checkPlugins.d.ts +13 -0
  184. package/esm/checkPlugins.js +98 -0
  185. package/esm/configuration/bamIndexFields.d.ts +49 -0
  186. package/esm/configuration/bamIndexFields.js +41 -0
  187. package/esm/configuration/configurationSchema.d.ts +194 -29
  188. package/esm/configuration/configurationSchema.js +439 -145
  189. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  190. package/esm/configuration/configurationSchemaUnion.js +56 -0
  191. package/esm/configuration/configurationSlot.d.ts +373 -30
  192. package/esm/configuration/configurationSlot.js +231 -224
  193. package/esm/configuration/fillLocations.d.ts +14 -0
  194. package/esm/configuration/fillLocations.js +14 -0
  195. package/esm/configuration/formatAboutConfigSchema.d.ts +41 -0
  196. package/esm/configuration/formatAboutConfigSchema.js +58 -0
  197. package/esm/configuration/formatDetailsConfigSchema.d.ts +54 -0
  198. package/esm/configuration/formatDetailsConfigSchema.js +87 -0
  199. package/esm/configuration/fullConfSnapshot.d.ts +13 -0
  200. package/esm/configuration/fullConfSnapshot.js +44 -0
  201. package/esm/configuration/getConf.d.ts +92 -0
  202. package/esm/configuration/getConf.js +141 -0
  203. package/esm/configuration/index.d.ts +32 -3
  204. package/esm/configuration/index.js +27 -2
  205. package/esm/configuration/indexType.d.ts +26 -0
  206. package/esm/configuration/indexType.js +38 -0
  207. package/esm/configuration/mergeFormatCallbacks.d.ts +14 -0
  208. package/esm/configuration/mergeFormatCallbacks.js +27 -0
  209. package/esm/configuration/readConfObject.d.ts +34 -0
  210. package/esm/configuration/readConfObject.js +118 -0
  211. package/esm/configuration/requirements.d.ts +37 -0
  212. package/esm/configuration/requirements.js +88 -0
  213. package/esm/configuration/schemaRegistry.d.ts +52 -0
  214. package/esm/configuration/schemaRegistry.js +48 -0
  215. package/esm/configuration/schemaTypes.d.ts +39 -0
  216. package/esm/configuration/schemaTypes.js +105 -0
  217. package/esm/configuration/slotFacade.d.ts +65 -0
  218. package/esm/configuration/slotFacade.js +110 -0
  219. package/esm/configuration/slotValueUtils.d.ts +17 -0
  220. package/esm/configuration/slotValueUtils.js +25 -0
  221. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  222. package/esm/configuration/snapshotPreprocess.js +161 -0
  223. package/esm/configuration/tabixIndexFields.d.ts +70 -0
  224. package/esm/configuration/tabixIndexFields.js +62 -0
  225. package/esm/configuration/tabixShorthand.d.ts +51 -0
  226. package/esm/configuration/tabixShorthand.js +72 -0
  227. package/esm/configuration/types.d.ts +315 -13
  228. package/esm/configuration/uriShorthand.d.ts +9 -0
  229. package/esm/configuration/uriShorthand.js +16 -0
  230. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +19 -11
  231. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +19 -18
  232. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +158 -7
  233. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +164 -29
  234. package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
  235. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
  236. package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
  237. package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
  238. package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
  239. package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
  240. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  241. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  242. package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
  243. package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
  244. package/esm/data_adapters/BaseAdapter/index.d.ts +28 -6
  245. package/esm/data_adapters/BaseAdapter/index.js +6 -5
  246. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  247. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  248. package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
  249. package/esm/data_adapters/BaseAdapter/stats.js +89 -24
  250. package/esm/data_adapters/BaseAdapter/types.d.ts +11 -13
  251. package/esm/data_adapters/BaseAdapter/types.js +1 -0
  252. package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
  253. package/esm/data_adapters/BaseAdapter/util.js +14 -3
  254. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  255. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
  256. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +5 -5
  257. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +34 -6
  258. package/esm/data_adapters/CytobandAdapter/configSchema.js +47 -17
  259. package/esm/data_adapters/CytobandAdapter/index.js +3 -3
  260. package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
  261. package/esm/data_adapters/adapterSessionRefcount.js +96 -0
  262. package/esm/data_adapters/dataAdapterCache.d.ts +53 -2
  263. package/esm/data_adapters/dataAdapterCache.js +99 -25
  264. package/esm/data_adapters/getFeatureAdapter.d.ts +24 -0
  265. package/esm/data_adapters/getFeatureAdapter.js +27 -0
  266. package/esm/data_adapters/getSequenceSubAdapter.d.ts +19 -0
  267. package/esm/data_adapters/getSequenceSubAdapter.js +42 -0
  268. package/esm/pluggableElementTypes/AdapterType.d.ts +57 -7
  269. package/esm/pluggableElementTypes/AdapterType.js +44 -5
  270. package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
  271. package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
  272. package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
  273. package/esm/pluggableElementTypes/ConnectionType.js +1 -1
  274. package/esm/pluggableElementTypes/DisplayType.d.ts +54 -14
  275. package/esm/pluggableElementTypes/DisplayType.js +30 -7
  276. package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
  277. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  278. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  279. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +11 -0
  280. package/esm/pluggableElementTypes/PluggableElementBase.js +11 -0
  281. package/esm/pluggableElementTypes/RpcMethodType.d.ts +142 -12
  282. package/esm/pluggableElementTypes/RpcMethodType.js +279 -98
  283. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +18 -9
  284. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
  285. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
  286. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
  287. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
  288. package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
  289. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  290. package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
  291. package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
  292. package/esm/pluggableElementTypes/TrackType.js +1 -1
  293. package/esm/pluggableElementTypes/ViewType.d.ts +22 -5
  294. package/esm/pluggableElementTypes/ViewType.js +40 -5
  295. package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
  296. package/esm/pluggableElementTypes/WidgetType.js +1 -1
  297. package/esm/pluggableElementTypes/addMenuItems.d.ts +88 -0
  298. package/esm/pluggableElementTypes/addMenuItems.js +82 -0
  299. package/esm/pluggableElementTypes/extendElementType.d.ts +29 -0
  300. package/esm/pluggableElementTypes/extendElementType.js +72 -0
  301. package/esm/pluggableElementTypes/index.d.ts +8 -7
  302. package/esm/pluggableElementTypes/index.js +24 -14
  303. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +80 -15
  304. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
  305. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +643 -84
  306. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +230 -60
  307. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +246 -37
  308. package/esm/pluggableElementTypes/models/BaseTrackModel.js +416 -107
  309. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +236 -16
  310. package/esm/pluggableElementTypes/models/BaseViewModel.js +154 -16
  311. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +169 -25
  312. package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
  313. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +178 -0
  314. package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
  315. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +26 -8
  316. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
  317. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +31 -17
  318. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
  319. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +142 -65
  320. package/esm/pluggableElementTypes/models/baseTrackConfig.js +215 -90
  321. package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
  322. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +111 -139
  323. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +54 -0
  324. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
  325. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +50 -0
  326. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +147 -0
  327. package/esm/pluggableElementTypes/models/index.d.ts +5 -3
  328. package/esm/pluggableElementTypes/models/index.js +9 -8
  329. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +48 -0
  330. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +114 -0
  331. package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
  332. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +10 -3
  333. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +272 -100
  334. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
  335. package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
  336. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
  337. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
  338. package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
  339. package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
  340. package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
  341. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
  342. package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
  343. package/esm/pluginDefinitions.d.ts +225 -0
  344. package/esm/pluginDefinitions.js +254 -0
  345. package/esm/rpc/BaseRpcDriver.d.ts +27 -35
  346. package/esm/rpc/BaseRpcDriver.js +68 -106
  347. package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
  348. package/esm/rpc/MainThreadRpcDriver.js +23 -29
  349. package/esm/rpc/RpcClient.d.ts +50 -0
  350. package/esm/rpc/RpcClient.js +189 -0
  351. package/esm/rpc/RpcManager.d.ts +120 -27
  352. package/esm/rpc/RpcManager.js +187 -50
  353. package/esm/rpc/RpcRegistry.d.ts +298 -0
  354. package/esm/rpc/RpcServer.d.ts +43 -0
  355. package/esm/rpc/RpcServer.js +242 -0
  356. package/esm/rpc/WebWorkerRpcDriver.d.ts +78 -24
  357. package/esm/rpc/WebWorkerRpcDriver.js +311 -30
  358. package/esm/rpc/byteBudget.d.ts +64 -0
  359. package/esm/rpc/byteBudget.js +61 -0
  360. package/esm/rpc/configSchema.d.ts +13 -5
  361. package/esm/rpc/configSchema.js +40 -16
  362. package/esm/rpc/coreRpcMethods.d.ts +6 -5
  363. package/esm/rpc/coreRpcMethods.js +13 -12
  364. package/esm/rpc/explainTransferError.d.ts +35 -0
  365. package/esm/rpc/explainTransferError.js +158 -0
  366. package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
  367. package/esm/rpc/methods/CoreFreeResources.js +17 -6
  368. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  369. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  370. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  371. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  372. package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
  373. package/esm/rpc/methods/CoreGetExportData.js +25 -15
  374. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  375. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  376. package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
  377. package/esm/rpc/methods/CoreGetFeatures.js +14 -18
  378. package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
  379. package/esm/rpc/methods/CoreGetInfo.js +12 -0
  380. package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
  381. package/esm/rpc/methods/CoreGetMetadata.js +6 -9
  382. package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
  383. package/esm/rpc/methods/CoreGetRefNames.js +16 -15
  384. package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
  385. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
  386. package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
  387. package/esm/rpc/methods/CoreGetRegions.js +6 -9
  388. package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
  389. package/esm/rpc/methods/CoreGetSequence.js +12 -13
  390. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  391. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  392. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  393. package/esm/rpc/methods/layerFeatures.js +29 -0
  394. package/esm/rpc/serializeError/index.d.ts +9 -0
  395. package/esm/rpc/serializeError/index.js +86 -0
  396. package/esm/svg/SvgExport.d.ts +30 -0
  397. package/esm/svg/SvgExport.js +52 -0
  398. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  399. package/esm/svg/SvgThemeProviders.js +15 -0
  400. package/esm/svg/constants.d.ts +1 -0
  401. package/esm/svg/constants.js +5 -0
  402. package/esm/svg/exportViewSvg.d.ts +28 -0
  403. package/esm/svg/exportViewSvg.js +13 -0
  404. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  405. package/esm/svg/normalizeSvgMarkup.js +99 -0
  406. package/esm/svg/saveSvgAsImage.d.ts +6 -0
  407. package/esm/svg/saveSvgAsImage.js +90 -0
  408. package/esm/svg/serializeSvg.d.ts +7 -0
  409. package/esm/svg/serializeSvg.js +11 -0
  410. package/esm/svg/svgId.d.ts +42 -0
  411. package/esm/svg/svgId.js +84 -0
  412. package/esm/svg/svgReady.d.ts +138 -0
  413. package/esm/svg/svgReady.js +165 -0
  414. package/esm/svg/trackNames.d.ts +29 -0
  415. package/esm/svg/trackNames.js +34 -0
  416. package/esm/svg/wrapSvgExport.d.ts +12 -0
  417. package/esm/svg/wrapSvgExport.js +10 -0
  418. package/esm/ui/ActionLink.d.ts +7 -0
  419. package/esm/ui/ActionLink.js +9 -0
  420. package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
  421. package/esm/ui/AddCustomPluginDialog.js +56 -0
  422. package/esm/ui/AddGenomePane.d.ts +8 -0
  423. package/esm/ui/AddGenomePane.js +228 -0
  424. package/esm/ui/AdvancedOptions.d.ts +6 -0
  425. package/esm/ui/AdvancedOptions.js +17 -0
  426. package/esm/ui/AppLogo.d.ts +1 -1
  427. package/esm/ui/AppLogo.js +2 -2
  428. package/esm/ui/AppReadyMarker.d.ts +45 -0
  429. package/esm/ui/AppReadyMarker.js +89 -0
  430. package/esm/ui/AssemblySelector.d.ts +5 -8
  431. package/esm/ui/AssemblySelector.js +8 -26
  432. package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
  433. package/esm/ui/BaseExportSvgDialog.js +84 -0
  434. package/esm/ui/BaseTooltip.d.ts +14 -3
  435. package/esm/ui/BaseTooltip.js +151 -34
  436. package/esm/ui/CascadingMenu.d.ts +9 -18
  437. package/esm/ui/CascadingMenu.js +446 -42
  438. package/esm/ui/CascadingMenuButton.d.ts +9 -11
  439. package/esm/ui/CascadingMenuButton.js +36 -18
  440. package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
  441. package/esm/ui/CascadingMenuHelpDialog.js +4 -5
  442. package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
  443. package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
  444. package/esm/ui/ColorPicker.d.ts +6 -9
  445. package/esm/ui/ColorPicker.js +36 -39
  446. package/esm/ui/ConfirmDialog.d.ts +2 -9
  447. package/esm/ui/ConfirmDialog.js +6 -9
  448. package/esm/ui/ContextMenu.d.ts +50 -0
  449. package/esm/ui/ContextMenu.js +55 -0
  450. package/esm/ui/CopyToClipboardButton.d.ts +10 -0
  451. package/esm/ui/CopyToClipboardButton.js +14 -0
  452. package/esm/ui/Crosshairs.d.ts +10 -0
  453. package/esm/ui/Crosshairs.js +15 -0
  454. package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
  455. package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
  456. package/esm/ui/DataGridFlexContainer.d.ts +9 -2
  457. package/esm/ui/DataGridFlexContainer.js +4 -3
  458. package/esm/ui/Dialog.d.ts +5 -2
  459. package/esm/ui/Dialog.js +35 -27
  460. package/esm/ui/DraggableDialog.d.ts +3 -3
  461. package/esm/ui/DraggableDialog.js +50 -12
  462. package/esm/ui/DropDownMenu.d.ts +4 -2
  463. package/esm/ui/DropDownMenu.js +6 -5
  464. package/esm/ui/EditableTypography.d.ts +3 -1
  465. package/esm/ui/EditableTypography.js +34 -26
  466. package/esm/ui/ErrorActions.d.ts +24 -0
  467. package/esm/ui/ErrorActions.js +20 -0
  468. package/esm/ui/ErrorBanner.d.ts +7 -0
  469. package/esm/ui/ErrorBanner.js +35 -0
  470. package/esm/ui/ErrorBar.d.ts +6 -0
  471. package/esm/ui/ErrorBar.js +35 -0
  472. package/esm/ui/ErrorBoundary.d.ts +29 -5
  473. package/esm/ui/ErrorBoundary.js +32 -2
  474. package/esm/ui/ErrorMessage.d.ts +2 -4
  475. package/esm/ui/ErrorMessage.js +17 -52
  476. package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
  477. package/esm/ui/ErrorMessageStackTraceContents.js +5 -4
  478. package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
  479. package/esm/ui/ErrorMessageStackTraceDialog.js +51 -96
  480. package/esm/ui/ErrorOverlay.d.ts +8 -0
  481. package/esm/ui/ErrorOverlay.js +5 -0
  482. package/esm/ui/ExportSvgDialog.d.ts +7 -0
  483. package/esm/ui/ExportSvgDialog.js +9 -0
  484. package/esm/ui/ExternalLink.d.ts +1 -1
  485. package/esm/ui/FactoryResetDialog.d.ts +1 -1
  486. package/esm/ui/FactoryResetDialog.js +6 -15
  487. package/esm/ui/FatalErrorDialog.d.ts +3 -2
  488. package/esm/ui/FatalErrorDialog.js +6 -5
  489. package/esm/ui/FileDropZone.d.ts +25 -0
  490. package/esm/ui/FileDropZone.js +129 -0
  491. package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
  492. package/esm/ui/FileSelector/FileSelector.js +59 -30
  493. package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
  494. package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
  495. package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
  496. package/esm/ui/FileSelector/LocationInput.js +8 -12
  497. package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
  498. package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
  499. package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
  500. package/esm/ui/FileSelector/UrlChooser.js +26 -2
  501. package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
  502. package/esm/ui/FileSelector/emptySourceType.js +14 -0
  503. package/esm/ui/FileSelector/useInternetAccounts.d.ts +436 -64
  504. package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
  505. package/esm/ui/FileSelector/util.d.ts +58 -3
  506. package/esm/ui/FileSelector/util.js +128 -11
  507. package/esm/ui/GpuFallbackButton.d.ts +12 -0
  508. package/esm/ui/GpuFallbackButton.js +20 -0
  509. package/esm/ui/HoverMenu.d.ts +11 -3
  510. package/esm/ui/HoverMenu.js +34 -9
  511. package/esm/ui/HoverTooltip.d.ts +27 -0
  512. package/esm/ui/HoverTooltip.js +24 -0
  513. package/esm/ui/Icons.d.ts +6 -4
  514. package/esm/ui/Icons.js +9 -0
  515. package/esm/ui/InfoDialog.d.ts +7 -0
  516. package/esm/ui/InfoDialog.js +16 -0
  517. package/esm/ui/InlineMenuControls.d.ts +6 -0
  518. package/esm/ui/InlineMenuControls.js +17 -0
  519. package/esm/ui/JexlFilterDialog.d.ts +26 -0
  520. package/esm/ui/JexlFilterDialog.js +167 -0
  521. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  522. package/esm/ui/JexlFilterRowEditors.js +90 -0
  523. package/esm/ui/LabeledCheckbox.d.ts +9 -0
  524. package/esm/ui/LabeledCheckbox.js +7 -0
  525. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  526. package/esm/ui/LazyBaseTooltip.js +9 -0
  527. package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
  528. package/esm/ui/LegendSwatchGlyph.js +30 -0
  529. package/esm/ui/LoadingDots.d.ts +1 -0
  530. package/esm/ui/LoadingDots.js +30 -0
  531. package/esm/ui/LoadingEllipses.d.ts +17 -1
  532. package/esm/ui/LoadingEllipses.js +20 -29
  533. package/esm/ui/LoadingOverlay.d.ts +23 -0
  534. package/esm/ui/LoadingOverlay.js +139 -0
  535. package/esm/ui/LoadingProgress.d.ts +16 -0
  536. package/esm/ui/LoadingProgress.js +16 -0
  537. package/esm/ui/Logo.d.ts +2 -2
  538. package/esm/ui/Logo.js +23 -24
  539. package/esm/ui/Menu.js +1 -1
  540. package/esm/ui/MenuItemChevron.d.ts +3 -0
  541. package/esm/ui/MenuItemChevron.js +19 -0
  542. package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
  543. package/esm/ui/MenuItemEndDecoration.js +28 -0
  544. package/esm/ui/MenuItemTrailing.d.ts +12 -0
  545. package/esm/ui/MenuItemTrailing.js +42 -0
  546. package/esm/ui/MenuTypes.d.ts +95 -5
  547. package/esm/ui/MenuTypes.js +16 -1
  548. package/esm/ui/MonospaceTextField.d.ts +10 -0
  549. package/esm/ui/MonospaceTextField.js +40 -0
  550. package/esm/ui/NumberTextField.d.ts +31 -0
  551. package/esm/ui/NumberTextField.js +33 -0
  552. package/esm/ui/PaletteContext.d.ts +90 -0
  553. package/esm/ui/PaletteContext.js +142 -0
  554. package/esm/ui/PluggableComponent.d.ts +10 -0
  555. package/esm/ui/PluggableComponent.js +19 -0
  556. package/esm/ui/PluggableComponents.d.ts +29 -0
  557. package/esm/ui/PluggableComponents.js +28 -0
  558. package/esm/ui/PluggableElements.d.ts +23 -0
  559. package/esm/ui/PluggableElements.js +24 -0
  560. package/esm/ui/PluginStoreCard.d.ts +17 -0
  561. package/esm/ui/PluginStoreCard.js +45 -0
  562. package/esm/ui/PopoverPicker.d.ts +6 -0
  563. package/esm/ui/PopoverPicker.js +25 -0
  564. package/esm/ui/PrerenderedCanvas.d.ts +1 -1
  565. package/esm/ui/PrerenderedCanvas.js +5 -4
  566. package/esm/ui/ProgressChip.d.ts +37 -0
  567. package/esm/ui/ProgressChip.js +66 -0
  568. package/esm/ui/RedErrorMessageBox.d.ts +1 -1
  569. package/esm/ui/RedErrorMessageBox.js +9 -3
  570. package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
  571. package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
  572. package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
  573. package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
  574. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  575. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  576. package/esm/ui/RefNameAutocomplete/index.d.ts +21 -0
  577. package/esm/ui/RefNameAutocomplete/index.js +84 -0
  578. package/esm/ui/RefNameAutocomplete/util.d.ts +62 -0
  579. package/esm/ui/RefNameAutocomplete/util.js +209 -0
  580. package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
  581. package/esm/ui/ReplaceCurrentViewButton.js +22 -0
  582. package/esm/ui/ResizeHandle.d.ts +15 -7
  583. package/esm/ui/ResizeHandle.js +73 -53
  584. package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
  585. package/esm/ui/ReturnToImportFormDialog.js +7 -9
  586. package/esm/ui/SanitizedHTML.d.ts +6 -1
  587. package/esm/ui/SanitizedHTML.js +7 -47
  588. package/esm/ui/ScrollChrome.d.ts +13 -0
  589. package/esm/ui/ScrollChrome.js +11 -0
  590. package/esm/ui/ScrollEdgeShadow.d.ts +41 -0
  591. package/esm/ui/ScrollEdgeShadow.js +77 -0
  592. package/esm/ui/ScrollZoomToggle.d.ts +15 -0
  593. package/esm/ui/ScrollZoomToggle.js +75 -0
  594. package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
  595. package/esm/ui/SequenceAdapterInputs.js +30 -0
  596. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  597. package/esm/ui/SessionJsonPanel.js +14 -0
  598. package/esm/ui/SettingsChangesTable.d.ts +15 -0
  599. package/esm/ui/SettingsChangesTable.js +87 -0
  600. package/esm/ui/ShareLinkField.d.ts +4 -0
  601. package/esm/ui/ShareLinkField.js +15 -0
  602. package/esm/ui/SingleSlider.d.ts +8 -0
  603. package/esm/ui/SingleSlider.js +11 -0
  604. package/esm/ui/SizeSliderRow.d.ts +14 -0
  605. package/esm/ui/SizeSliderRow.js +48 -0
  606. package/esm/ui/SliderTooltip.d.ts +2 -0
  607. package/esm/ui/SliderTooltip.js +17 -0
  608. package/esm/ui/Snackbar.d.ts +4 -2
  609. package/esm/ui/Snackbar.js +11 -8
  610. package/esm/ui/SnackbarContents.d.ts +1 -1
  611. package/esm/ui/SnackbarContents.js +21 -3
  612. package/esm/ui/SnackbarModel.d.ts +40 -0
  613. package/esm/ui/SnackbarModel.js +96 -52
  614. package/esm/ui/StackTraceButton.d.ts +5 -0
  615. package/esm/ui/StackTraceButton.js +16 -0
  616. package/esm/ui/StatusProgressBar.d.ts +37 -0
  617. package/esm/ui/StatusProgressBar.js +76 -0
  618. package/esm/ui/SubmitDialog.d.ts +6 -0
  619. package/esm/ui/SubmitDialog.js +9 -0
  620. package/esm/ui/SubmitForm.d.ts +23 -0
  621. package/esm/ui/SubmitForm.js +23 -0
  622. package/esm/ui/SvgColorLegend.d.ts +18 -0
  623. package/esm/ui/SvgColorLegend.js +106 -0
  624. package/esm/ui/TagTextField.d.ts +40 -0
  625. package/esm/ui/TagTextField.js +32 -0
  626. package/esm/ui/VerticalScrollbar.d.ts +24 -0
  627. package/esm/ui/VerticalScrollbar.js +104 -0
  628. package/esm/ui/ViewLoadingScreen.d.ts +25 -0
  629. package/esm/ui/ViewLoadingScreen.js +52 -0
  630. package/esm/ui/addExtensionElement.d.ts +18 -0
  631. package/esm/ui/addExtensionElement.js +23 -0
  632. package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
  633. package/esm/ui/buildExtraTrackMenuItems.js +14 -0
  634. package/esm/ui/colorScale.d.ts +92 -0
  635. package/esm/ui/colorScale.js +72 -0
  636. package/esm/ui/colorSwatchStyle.d.ts +9 -0
  637. package/esm/ui/colorSwatchStyle.js +11 -0
  638. package/esm/ui/colors.d.ts +125 -8
  639. package/esm/ui/colors.js +364 -1
  640. package/esm/ui/extensionSelectors.d.ts +38 -0
  641. package/esm/ui/extensionSelectors.js +49 -0
  642. package/esm/ui/filterMenuItems.d.ts +112 -0
  643. package/esm/ui/filterMenuItems.js +86 -0
  644. package/esm/ui/formatErrorStack.d.ts +1 -0
  645. package/esm/ui/formatErrorStack.js +56 -0
  646. package/esm/ui/gpuFallback.d.ts +33 -0
  647. package/esm/ui/gpuFallback.js +39 -0
  648. package/esm/ui/hoverBoxStyle.d.ts +23 -0
  649. package/esm/ui/hoverBoxStyle.js +28 -0
  650. package/esm/ui/index.d.ts +77 -5
  651. package/esm/ui/index.js +83 -20
  652. package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
  653. package/esm/ui/inlineMenuRowWidth.js +8 -0
  654. package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
  655. package/esm/ui/launchTargetsMenuItem.js +24 -0
  656. package/esm/ui/launchViewMenu.d.ts +4 -0
  657. package/esm/ui/launchViewMenu.js +46 -0
  658. package/esm/ui/legendMenuItem.d.ts +16 -0
  659. package/esm/ui/legendMenuItem.js +17 -0
  660. package/esm/ui/legendSpec.d.ts +69 -0
  661. package/esm/ui/legendSpec.js +69 -0
  662. package/esm/ui/loadingDotKeyframes.d.ts +18 -0
  663. package/esm/ui/loadingDotKeyframes.js +17 -0
  664. package/esm/ui/makeSizeMenu.d.ts +24 -0
  665. package/esm/ui/makeSizeMenu.js +58 -0
  666. package/esm/ui/mapStackTrace.d.ts +8 -0
  667. package/esm/ui/mapStackTrace.js +108 -0
  668. package/esm/ui/measureLegendText.d.ts +1 -0
  669. package/esm/ui/measureLegendText.js +8 -0
  670. package/esm/ui/menuItemAdornment.d.ts +22 -0
  671. package/esm/ui/menuItemAdornment.js +28 -0
  672. package/esm/ui/menuItems.d.ts +23 -0
  673. package/esm/ui/menuItems.js +21 -0
  674. package/esm/ui/menuLabels.d.ts +41 -0
  675. package/esm/ui/menuLabels.js +43 -0
  676. package/esm/ui/multiTrackMenuItems.d.ts +25 -0
  677. package/esm/ui/multiTrackMenuItems.js +15 -0
  678. package/esm/ui/palette.d.ts +561 -0
  679. package/esm/ui/palette.js +785 -0
  680. package/esm/ui/parseError.d.ts +4 -0
  681. package/esm/ui/parseError.js +18 -0
  682. package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
  683. package/esm/ui/persistentScrollbarStyle.js +53 -0
  684. package/esm/ui/radioSubMenu.d.ts +33 -0
  685. package/esm/ui/radioSubMenu.js +32 -0
  686. package/esm/ui/react-colorful.js +5 -1
  687. package/esm/ui/replaceViewAction.d.ts +31 -0
  688. package/esm/ui/replaceViewAction.js +39 -0
  689. package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
  690. package/esm/ui/rewriteExternalAnchors.js +8 -0
  691. package/esm/ui/scrollZoomLabels.d.ts +17 -0
  692. package/esm/ui/scrollZoomLabels.js +22 -0
  693. package/esm/ui/showSubMenu.d.ts +19 -0
  694. package/esm/ui/showSubMenu.js +30 -0
  695. package/esm/ui/sliderScale.d.ts +6 -0
  696. package/esm/ui/sliderScale.js +30 -0
  697. package/esm/ui/statusProgressKeyframes.d.ts +6 -0
  698. package/esm/ui/statusProgressKeyframes.js +14 -0
  699. package/esm/ui/stripStackTraceMessage.d.ts +1 -0
  700. package/esm/ui/stripStackTraceMessage.js +9 -0
  701. package/esm/ui/styleTheme.d.ts +158 -0
  702. package/esm/ui/styleTheme.js +115 -0
  703. package/esm/ui/submenuAim.d.ts +30 -0
  704. package/esm/ui/submenuAim.js +37 -0
  705. package/esm/ui/theme.d.ts +268 -30
  706. package/esm/ui/theme.js +250 -350
  707. package/esm/ui/toggleMenuItems.d.ts +42 -0
  708. package/esm/ui/toggleMenuItems.js +61 -0
  709. package/esm/ui/useAssemblySelection.d.ts +153 -0
  710. package/esm/ui/useAssemblySelection.js +54 -0
  711. package/esm/ui/useCoalescedPointer.d.ts +36 -0
  712. package/esm/ui/useCoalescedPointer.js +60 -0
  713. package/esm/ui/useCopyToClipboard.d.ts +15 -0
  714. package/esm/ui/useCopyToClipboard.js +41 -0
  715. package/esm/ui/useExportSvgPreference.d.ts +1 -0
  716. package/esm/ui/useExportSvgPreference.js +4 -0
  717. package/esm/ui/useMouseTracking.d.ts +71 -0
  718. package/esm/ui/useMouseTracking.js +179 -0
  719. package/esm/ui/useRecentLocations.d.ts +28 -0
  720. package/esm/ui/useRecentLocations.js +31 -0
  721. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  722. package/esm/ui/viewHeaderHeight.js +1 -0
  723. package/esm/ui/wrapComponent.d.ts +47 -0
  724. package/esm/ui/wrapComponent.js +58 -0
  725. package/esm/ui/zIndexes.d.ts +28 -0
  726. package/esm/ui/zIndexes.js +38 -0
  727. package/esm/util/Base1DUtils.d.ts +207 -17
  728. package/esm/util/Base1DUtils.js +316 -173
  729. package/esm/util/Base1DViewModel.d.ts +99 -21
  730. package/esm/util/Base1DViewModel.js +151 -41
  731. package/esm/util/FileSaver/index.d.ts +1 -0
  732. package/esm/util/FileSaver/index.js +27 -0
  733. package/esm/util/IntervalTree.d.ts +18 -39
  734. package/esm/util/IntervalTree.js +63 -244
  735. package/esm/util/SvgCanvas.d.ts +83 -0
  736. package/esm/util/SvgCanvas.js +520 -0
  737. package/esm/util/TimeTraveller.d.ts +12 -0
  738. package/esm/util/TimeTraveller.js +130 -27
  739. package/esm/util/aborting.d.ts +56 -4
  740. package/esm/util/aborting.js +112 -25
  741. package/esm/util/adapterMetadata.d.ts +20 -0
  742. package/esm/util/adapterMetadata.js +40 -0
  743. package/esm/util/addAndShowTrack.d.ts +19 -0
  744. package/esm/util/addAndShowTrack.js +27 -0
  745. package/esm/util/addRelativeUris.d.ts +29 -0
  746. package/esm/util/addRelativeUris.js +78 -0
  747. package/esm/util/addTrackComponent.d.ts +72 -0
  748. package/esm/util/addTrackComponent.js +53 -0
  749. package/esm/util/addTrackFromWidget.d.ts +91 -0
  750. package/esm/util/addTrackFromWidget.js +91 -0
  751. package/esm/util/aggregateFieldName.d.ts +10 -0
  752. package/esm/util/aggregateFieldName.js +8 -0
  753. package/esm/util/analytics.d.ts +32 -3
  754. package/esm/util/analytics.js +135 -49
  755. package/esm/util/animationAllowed.d.ts +26 -0
  756. package/esm/util/animationAllowed.js +35 -0
  757. package/esm/util/applyRowResizeWheel.d.ts +15 -0
  758. package/esm/util/applyRowResizeWheel.js +23 -0
  759. package/esm/util/assemblyConfigUtils.d.ts +144 -0
  760. package/esm/util/assemblyConfigUtils.js +498 -0
  761. package/esm/util/bandHeight.d.ts +63 -0
  762. package/esm/util/bandHeight.js +85 -0
  763. package/esm/util/bandLayout.d.ts +51 -0
  764. package/esm/util/bandLayout.js +36 -0
  765. package/esm/util/bezierConnector.d.ts +15 -0
  766. package/esm/util/bezierConnector.js +101 -0
  767. package/esm/util/bgzfWorkerPool.d.ts +24 -0
  768. package/esm/util/bgzfWorkerPool.js +27 -0
  769. package/esm/util/binnedAggregate.d.ts +17 -0
  770. package/esm/util/binnedAggregate.js +275 -0
  771. package/esm/util/blockTypes.d.ts +64 -45
  772. package/esm/util/blockTypes.js +67 -74
  773. package/esm/util/bpUtils.d.ts +81 -0
  774. package/esm/util/bpUtils.js +103 -0
  775. package/esm/util/cacheBudgets.d.ts +55 -0
  776. package/esm/util/cacheBudgets.js +55 -0
  777. package/esm/util/cachedSetup.d.ts +51 -0
  778. package/esm/util/cachedSetup.js +87 -0
  779. package/esm/util/calculateDynamicBlocks.d.ts +5 -0
  780. package/esm/util/calculateDynamicBlocks.js +85 -82
  781. package/esm/util/calculateStaticBlocks.d.ts +2 -3
  782. package/esm/util/calculateStaticBlocks.js +48 -71
  783. package/esm/util/categoricalField.d.ts +56 -0
  784. package/esm/util/categoricalField.js +73 -0
  785. package/esm/util/chooseGridPitch.d.ts +9 -0
  786. package/esm/util/chooseGridPitch.js +31 -0
  787. package/esm/util/clampToContig.d.ts +43 -0
  788. package/esm/util/clampToContig.js +47 -0
  789. package/esm/util/cmpStr.d.ts +1 -0
  790. package/esm/util/cmpStr.js +7 -0
  791. package/esm/util/coarseStripHTML.js +2 -15
  792. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  793. package/esm/util/color/cssColorsLevel4.js +7 -2
  794. package/esm/util/color/index.d.ts +84 -3
  795. package/esm/util/color/index.js +197 -25
  796. package/esm/util/color-bits/bit.d.ts +4 -0
  797. package/esm/util/color-bits/bit.js +37 -0
  798. package/esm/util/color-bits/convert.d.ts +23 -0
  799. package/esm/util/color-bits/convert.js +294 -0
  800. package/esm/util/color-bits/core.d.ts +34 -0
  801. package/esm/util/color-bits/core.js +67 -0
  802. package/esm/util/color-bits/format.d.ts +24 -0
  803. package/esm/util/color-bits/format.js +82 -0
  804. package/esm/util/color-bits/functions.d.ts +33 -0
  805. package/esm/util/color-bits/functions.js +70 -0
  806. package/esm/util/color-bits/index.d.ts +5 -0
  807. package/esm/util/color-bits/index.js +4 -0
  808. package/esm/util/color-bits/parse.d.ts +17 -0
  809. package/esm/util/color-bits/parse.js +382 -0
  810. package/esm/util/colorBits.d.ts +39 -0
  811. package/esm/util/colorBits.js +155 -0
  812. package/esm/util/colorRamp.d.ts +81 -0
  813. package/esm/util/colorRamp.js +244 -0
  814. package/esm/util/colorScale.d.ts +156 -0
  815. package/esm/util/colorScale.js +243 -0
  816. package/esm/util/colorSchemes.d.ts +21 -0
  817. package/esm/util/colorSchemes.js +30 -0
  818. package/esm/util/colord.d.ts +8 -0
  819. package/esm/util/colord.js +43 -191
  820. package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
  821. package/esm/util/convertCodingSequenceToPeptides.js +51 -4
  822. package/esm/util/copyText.d.ts +18 -0
  823. package/esm/util/copyText.js +30 -0
  824. package/esm/util/copyToClipboard.d.ts +4 -0
  825. package/esm/util/copyToClipboard.js +58 -0
  826. package/esm/util/createAbortRotation.d.ts +115 -0
  827. package/esm/util/createAbortRotation.js +116 -0
  828. package/esm/util/createSvgRasterCanvas.d.ts +17 -0
  829. package/esm/util/createSvgRasterCanvas.js +22 -0
  830. package/esm/util/crypto.d.ts +24 -0
  831. package/esm/util/crypto.js +85 -2
  832. package/esm/util/cssColorParse.d.ts +15 -0
  833. package/esm/util/cssColorParse.js +53 -0
  834. package/esm/util/dataGridUtils.d.ts +9 -0
  835. package/esm/util/dataGridUtils.js +36 -0
  836. package/esm/util/dedupe.js +1 -0
  837. package/esm/util/deepEqual.d.ts +8 -0
  838. package/esm/util/deepEqual.js +22 -0
  839. package/esm/util/deepMerge.d.ts +20 -0
  840. package/esm/util/deepMerge.js +44 -0
  841. package/esm/util/diagonalizeRegions.d.ts +22 -0
  842. package/esm/util/diagonalizeRegions.js +187 -0
  843. package/esm/util/environment.d.ts +4 -0
  844. package/esm/util/environment.js +43 -0
  845. package/esm/util/eventPoint.d.ts +32 -0
  846. package/esm/util/eventPoint.js +28 -0
  847. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  848. package/esm/util/expandLooseSearchIndex.js +29 -0
  849. package/esm/util/featureTable.d.ts +224 -0
  850. package/esm/util/featureTable.js +366 -0
  851. package/esm/util/featureTransforms.d.ts +80 -0
  852. package/esm/util/featureTransforms.js +1579 -0
  853. package/esm/util/featureTypes.d.ts +24 -0
  854. package/esm/util/featureTypes.js +35 -0
  855. package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
  856. package/esm/util/fetchAndMaybeUnzip.js +71 -0
  857. package/esm/util/fetchContext.d.ts +81 -0
  858. package/esm/util/fetchContext.js +59 -0
  859. package/esm/util/fetchHub.d.ts +17 -0
  860. package/esm/util/fetchHub.js +31 -0
  861. package/esm/util/fetchJson.d.ts +1 -0
  862. package/esm/util/fetchJson.js +7 -0
  863. package/esm/util/fetchPhases.d.ts +77 -0
  864. package/esm/util/fetchPhases.js +1 -0
  865. package/esm/util/fetchSeq.d.ts +4 -1
  866. package/esm/util/fetchSeq.js +18 -6
  867. package/esm/util/fieldReader.d.ts +17 -0
  868. package/esm/util/fieldReader.js +62 -0
  869. package/esm/util/fileHandleStore.d.ts +19 -2
  870. package/esm/util/fileHandleStore.js +95 -35
  871. package/esm/util/flatbush/index.d.ts +27 -6
  872. package/esm/util/flatbush/index.js +194 -218
  873. package/esm/util/formatBytes.d.ts +9 -0
  874. package/esm/util/formatBytes.js +18 -0
  875. package/esm/util/formatFastaStrings.d.ts +13 -0
  876. package/esm/util/formatFastaStrings.js +13 -0
  877. package/esm/util/formatGuessers.d.ts +30 -0
  878. package/esm/util/formatGuessers.js +69 -0
  879. package/esm/util/formatRelativeTime.d.ts +1 -0
  880. package/esm/util/formatRelativeTime.js +25 -0
  881. package/esm/util/frameCoalescer.d.ts +30 -0
  882. package/esm/util/frameCoalescer.js +22 -0
  883. package/esm/util/freezeDeep.d.ts +26 -0
  884. package/esm/util/freezeDeep.js +39 -0
  885. package/esm/util/geneticCodes.d.ts +56 -0
  886. package/esm/util/geneticCodes.js +371 -0
  887. package/esm/util/getFileName.d.ts +11 -0
  888. package/esm/util/getFileName.js +34 -0
  889. package/esm/util/getLocationUri.d.ts +49 -0
  890. package/esm/util/getLocationUri.js +63 -0
  891. package/esm/util/getRelativeX.d.ts +4 -0
  892. package/esm/util/getRelativeX.js +7 -0
  893. package/esm/util/getStr.d.ts +6 -0
  894. package/esm/util/getStr.js +15 -0
  895. package/esm/util/groupKeys.d.ts +77 -0
  896. package/esm/util/groupKeys.js +155 -0
  897. package/esm/util/highlights.d.ts +25 -0
  898. package/esm/util/highlights.js +87 -0
  899. package/esm/util/hooks.d.ts +189 -0
  900. package/esm/util/hooks.js +485 -0
  901. package/esm/util/htmlText.d.ts +13 -0
  902. package/esm/util/htmlText.js +66 -0
  903. package/esm/util/idMaker.d.ts +1 -1
  904. package/esm/util/idMaker.js +31 -18
  905. package/esm/util/index.d.ts +82 -268
  906. package/esm/util/index.js +137 -853
  907. package/esm/util/indexCandidates.d.ts +20 -0
  908. package/esm/util/indexCandidates.js +43 -0
  909. package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
  910. package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
  911. package/esm/util/installFetch.d.ts +234 -0
  912. package/esm/util/installFetch.js +205 -0
  913. package/esm/util/installInitAutorun.d.ts +63 -0
  914. package/esm/util/installInitAutorun.js +107 -0
  915. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  916. package/esm/util/installPrerequisiteFetch.js +111 -0
  917. package/esm/util/intervals.d.ts +20 -0
  918. package/esm/util/intervals.js +37 -0
  919. package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
  920. package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
  921. package/esm/util/io/index.d.ts +39 -2
  922. package/esm/util/io/index.js +120 -12
  923. package/esm/util/isDataCurrent.d.ts +9 -0
  924. package/esm/util/isDataCurrent.js +12 -0
  925. package/esm/util/isTextEntryFocused.d.ts +7 -0
  926. package/esm/util/isTextEntryFocused.js +16 -0
  927. package/esm/util/isWebWorker.js +1 -2
  928. package/esm/util/iupac.d.ts +4 -0
  929. package/esm/util/iupac.js +59 -0
  930. package/esm/util/jexl.js +146 -19
  931. package/esm/util/jexlFilterRows.d.ts +89 -0
  932. package/esm/util/jexlFilterRows.js +252 -0
  933. package/esm/util/jexlFilters.d.ts +68 -0
  934. package/esm/util/jexlFilters.js +61 -0
  935. package/esm/util/jexlStrings.d.ts +21 -1
  936. package/esm/util/jexlStrings.js +20 -14
  937. package/esm/util/layouts/GranularRectLayout.d.ts +20 -25
  938. package/esm/util/layouts/GranularRectLayout.js +116 -356
  939. package/esm/util/layouts/index.d.ts +1 -7
  940. package/esm/util/layouts/index.js +2 -6
  941. package/esm/util/layouts/intervalUtils.d.ts +12 -1
  942. package/esm/util/layouts/intervalUtils.js +13 -31
  943. package/esm/util/layouts/placeRect.d.ts +50 -0
  944. package/esm/util/layouts/placeRect.js +97 -0
  945. package/esm/util/lazyAfterAttach.d.ts +13 -0
  946. package/esm/util/lazyAfterAttach.js +31 -0
  947. package/esm/util/lazyWithPreload.d.ts +19 -0
  948. package/esm/util/lazyWithPreload.js +27 -0
  949. package/esm/util/leadingEdgeAutorun.d.ts +40 -0
  950. package/esm/util/leadingEdgeAutorun.js +51 -0
  951. package/esm/util/legendCandidates.d.ts +72 -0
  952. package/esm/util/legendCandidates.js +138 -0
  953. package/esm/util/librpc.d.ts +5 -2
  954. package/esm/util/librpc.js +6 -1
  955. package/esm/util/linkify.js +2 -0
  956. package/esm/util/locString.d.ts +72 -0
  957. package/esm/util/locString.js +178 -7
  958. package/esm/util/locStringsToRegions.d.ts +10 -0
  959. package/esm/util/locStringsToRegions.js +35 -0
  960. package/esm/util/localStorage.d.ts +36 -0
  961. package/esm/util/localStorage.js +137 -0
  962. package/esm/util/makeAssembly.d.ts +54 -0
  963. package/esm/util/makeAssembly.js +52 -0
  964. package/esm/util/makeTrackId.d.ts +14 -0
  965. package/esm/util/makeTrackId.js +14 -0
  966. package/esm/util/markEncoding.d.ts +150 -0
  967. package/esm/util/markEncoding.js +845 -0
  968. package/esm/util/markEncodingTypes.d.ts +588 -0
  969. package/esm/util/markEncodingTypes.js +8 -0
  970. package/esm/util/matchTrackId.d.ts +11 -0
  971. package/esm/util/matchTrackId.js +14 -0
  972. package/esm/util/measureText.d.ts +24 -0
  973. package/esm/util/measureText.js +51 -0
  974. package/esm/util/mst-reflection.d.ts +3 -11
  975. package/esm/util/mst-reflection.js +3 -52
  976. package/esm/util/mstUtils.d.ts +97 -0
  977. package/esm/util/mstUtils.js +137 -0
  978. package/esm/util/nanoid.d.ts +0 -4
  979. package/esm/util/nanoid.js +10 -20
  980. package/esm/util/numericUtils.d.ts +27 -0
  981. package/esm/util/numericUtils.js +143 -0
  982. package/esm/util/numericValue.d.ts +14 -0
  983. package/esm/util/numericValue.js +34 -0
  984. package/esm/util/objectUtils.d.ts +2 -0
  985. package/esm/util/objectUtils.js +9 -0
  986. package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
  987. package/esm/util/offscreenCanvasPonyfill.js +5 -47
  988. package/esm/util/openFeatureWidget.d.ts +38 -0
  989. package/esm/util/openFeatureWidget.js +64 -0
  990. package/esm/util/openViews.d.ts +17 -0
  991. package/esm/util/openViews.js +22 -0
  992. package/esm/util/paintLayer.d.ts +32 -0
  993. package/esm/util/paintLayer.js +33 -0
  994. package/esm/util/parentWalk.d.ts +32 -0
  995. package/esm/util/parentWalk.js +84 -0
  996. package/esm/util/parseLineByLine.d.ts +44 -2
  997. package/esm/util/parseLineByLine.js +150 -15
  998. package/esm/util/parseMotifList.d.ts +17 -0
  999. package/esm/util/parseMotifList.js +69 -0
  1000. package/esm/util/pluginStore.d.ts +111 -0
  1001. package/esm/util/pluginStore.js +254 -0
  1002. package/esm/util/pointerPresence.d.ts +5 -0
  1003. package/esm/util/pointerPresence.js +21 -0
  1004. package/esm/util/preloadComponent.d.ts +5 -0
  1005. package/esm/util/preloadComponent.js +11 -0
  1006. package/esm/util/progress.d.ts +459 -0
  1007. package/esm/util/progress.js +821 -0
  1008. package/esm/util/quantileExtent.d.ts +49 -0
  1009. package/esm/util/quantileExtent.js +162 -0
  1010. package/esm/util/range.d.ts +46 -1
  1011. package/esm/util/range.js +68 -2
  1012. package/esm/util/renameRegions.d.ts +41 -0
  1013. package/esm/util/renameRegions.js +143 -0
  1014. package/esm/util/renderToStaticMarkup.d.ts +2 -0
  1015. package/esm/util/renderToStaticMarkup.js +60 -0
  1016. package/esm/util/reorder.d.ts +35 -0
  1017. package/esm/util/reorder.js +83 -0
  1018. package/esm/util/resolveRowHeight.d.ts +27 -0
  1019. package/esm/util/resolveRowHeight.js +30 -0
  1020. package/esm/util/revlist.d.ts +13 -0
  1021. package/esm/util/revlist.js +14 -0
  1022. package/esm/util/rowStackGeometry.d.ts +66 -0
  1023. package/esm/util/rowStackGeometry.js +70 -0
  1024. package/esm/util/rpc.d.ts +16 -1
  1025. package/esm/util/rpc.js +12 -1
  1026. package/esm/util/rxjs.d.ts +30 -2
  1027. package/esm/util/rxjs.js +85 -10
  1028. package/esm/util/sameStrings.d.ts +16 -0
  1029. package/esm/util/sameStrings.js +20 -0
  1030. package/esm/util/samplesTsv.d.ts +49 -0
  1031. package/esm/util/samplesTsv.js +86 -0
  1032. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  1033. package/esm/util/scheduleDetachedDestroy.js +24 -0
  1034. package/esm/util/scrollLatch.d.ts +5 -0
  1035. package/esm/util/scrollLatch.js +67 -0
  1036. package/esm/util/selectEncodedFeature.d.ts +16 -0
  1037. package/esm/util/selectEncodedFeature.js +34 -0
  1038. package/esm/util/selectNamedRegions.d.ts +136 -0
  1039. package/esm/util/selectNamedRegions.js +222 -0
  1040. package/esm/util/seqUtils.d.ts +17 -0
  1041. package/esm/util/seqUtils.js +80 -0
  1042. package/esm/util/sessionServices.d.ts +29 -0
  1043. package/esm/util/sessionServices.js +46 -0
  1044. package/esm/util/sessionSharing.d.ts +40 -0
  1045. package/esm/util/sessionSharing.js +154 -0
  1046. package/esm/util/sessionStorage.d.ts +1 -0
  1047. package/esm/util/sessionStorage.js +15 -0
  1048. package/esm/util/setStackTraceLimit.d.ts +6 -0
  1049. package/esm/util/setStackTraceLimit.js +20 -0
  1050. package/esm/util/shapeNameList.d.ts +2 -0
  1051. package/esm/util/shapeNameList.js +6 -0
  1052. package/esm/util/shapeNames.d.ts +7 -0
  1053. package/esm/util/shapeNames.js +11 -0
  1054. package/esm/util/simpleFeature.d.ts +111 -4
  1055. package/esm/util/simpleFeature.js +181 -29
  1056. package/esm/util/springAnimate.d.ts +20 -0
  1057. package/esm/util/springAnimate.js +80 -0
  1058. package/esm/util/starFusion.d.ts +26 -0
  1059. package/esm/util/starFusion.js +37 -0
  1060. package/esm/util/stats.d.ts +25 -2
  1061. package/esm/util/stats.js +39 -8
  1062. package/esm/util/stepTables.d.ts +82 -0
  1063. package/esm/util/stepTables.js +243 -0
  1064. package/esm/util/stringUtils.d.ts +5 -0
  1065. package/esm/util/stringUtils.js +34 -0
  1066. package/esm/util/svAlt.d.ts +145 -0
  1067. package/esm/util/svAlt.js +364 -0
  1068. package/esm/util/svgColorProps.d.ts +18 -0
  1069. package/esm/util/svgColorProps.js +55 -0
  1070. package/esm/util/systemColorScheme.d.ts +12 -0
  1071. package/esm/util/systemColorScheme.js +27 -0
  1072. package/esm/util/tabix.d.ts +125 -0
  1073. package/esm/util/tabix.js +148 -0
  1074. package/esm/util/tags.d.ts +2 -0
  1075. package/esm/util/tags.js +5 -0
  1076. package/esm/util/temporaryAssembly.d.ts +21 -0
  1077. package/esm/util/temporaryAssembly.js +29 -0
  1078. package/esm/util/thresholdScale.d.ts +91 -0
  1079. package/esm/util/thresholdScale.js +166 -0
  1080. package/esm/util/tickLabels.d.ts +36 -0
  1081. package/esm/util/tickLabels.js +45 -0
  1082. package/esm/util/timeGate.d.ts +25 -0
  1083. package/esm/util/timeGate.js +78 -0
  1084. package/esm/util/trackConfigDelta.d.ts +84 -0
  1085. package/esm/util/trackConfigDelta.js +206 -0
  1086. package/esm/util/tracks.d.ts +431 -30
  1087. package/esm/util/tracks.js +952 -185
  1088. package/esm/util/translateTranscript.d.ts +44 -0
  1089. package/esm/util/translateTranscript.js +102 -0
  1090. package/esm/util/tss-react/cssAndCx.js +11 -66
  1091. package/esm/util/tss-react/index.d.ts +11 -2
  1092. package/esm/util/tss-react/index.js +9 -2
  1093. package/esm/util/tss-react/makeStyles.js +7 -4
  1094. package/esm/util/tss-react/mergeClasses.js +1 -0
  1095. package/esm/util/tss-react/tools/classnames.d.ts +3 -0
  1096. package/esm/util/tss-react/tools/classnames.js +3 -0
  1097. package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
  1098. package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
  1099. package/esm/util/tss-react/types.d.ts +1 -1
  1100. package/esm/util/tss-react/types.js +1 -6
  1101. package/esm/util/types/ElementId.js +1 -1
  1102. package/esm/util/types/data.d.ts +73 -0
  1103. package/esm/util/types/data.js +41 -0
  1104. package/esm/util/types/index.d.ts +459 -121
  1105. package/esm/util/types/index.js +96 -64
  1106. package/esm/util/types/isAny.d.ts +11 -0
  1107. package/esm/util/types/isAny.js +1 -0
  1108. package/esm/util/types/mst.d.ts +74 -47
  1109. package/esm/util/types/mst.js +31 -22
  1110. package/esm/util/types/predicate.d.ts +9 -0
  1111. package/esm/util/types/predicate.js +1 -0
  1112. package/esm/util/types/renameIds.d.ts +1 -0
  1113. package/esm/util/types/renameIds.js +29 -0
  1114. package/esm/util/types/renderingServices.d.ts +16 -0
  1115. package/esm/util/types/renderingServices.js +1 -0
  1116. package/esm/util/types/services.d.ts +55 -0
  1117. package/esm/util/types/services.js +10 -0
  1118. package/esm/util/types/util.d.ts +8 -2
  1119. package/esm/util/unknownSnapshotKeys.d.ts +51 -0
  1120. package/esm/util/unknownSnapshotKeys.js +82 -0
  1121. package/esm/util/unzip.d.ts +1 -0
  1122. package/esm/util/unzip.js +6 -0
  1123. package/esm/util/useEventCallback.d.ts +1 -0
  1124. package/esm/util/useEventCallback.js +16 -0
  1125. package/esm/util/useFeatureSequence.d.ts +13 -7
  1126. package/esm/util/useFeatureSequence.js +55 -77
  1127. package/esm/util/useFetch.d.ts +55 -0
  1128. package/esm/util/useFetch.js +197 -0
  1129. package/esm/util/useFetchPlugins.d.ts +16 -0
  1130. package/esm/util/useFetchPlugins.js +18 -0
  1131. package/esm/util/useMeasure.d.ts +11 -1
  1132. package/esm/util/useMeasure.js +20 -6
  1133. package/esm/util/usePanZoom.d.ts +75 -0
  1134. package/esm/util/usePanZoom.js +175 -0
  1135. package/esm/util/usePanelVirtualScroll.d.ts +9 -0
  1136. package/esm/util/usePanelVirtualScroll.js +15 -0
  1137. package/esm/util/usePointerDrag.d.ts +37 -0
  1138. package/esm/util/usePointerDrag.js +61 -0
  1139. package/esm/util/useRafCommit.d.ts +4 -0
  1140. package/esm/util/useRafCommit.js +50 -0
  1141. package/esm/util/useResizeDrag.d.ts +91 -0
  1142. package/esm/util/useResizeDrag.js +105 -0
  1143. package/esm/util/useRowVirtualScroll.d.ts +9 -0
  1144. package/esm/util/useRowVirtualScroll.js +22 -0
  1145. package/esm/util/useVirtualScrollWheel.d.ts +23 -0
  1146. package/esm/util/useVirtualScrollWheel.js +74 -0
  1147. package/esm/util/viewHighlights.d.ts +3 -0
  1148. package/esm/util/viewHighlights.js +5 -0
  1149. package/esm/util/viewStatus.d.ts +90 -0
  1150. package/esm/util/viewStatus.js +54 -0
  1151. package/esm/util/virtualRange.d.ts +36 -0
  1152. package/esm/util/virtualRange.js +26 -0
  1153. package/esm/util/webStorage.d.ts +26 -0
  1154. package/esm/util/webStorage.js +92 -0
  1155. package/esm/util/wheelZoom.d.ts +65 -0
  1156. package/esm/util/wheelZoom.js +297 -0
  1157. package/esm/util/whenViewSettled.d.ts +74 -0
  1158. package/esm/util/whenViewSettled.js +77 -0
  1159. package/esm/util/withFeatureDetails.d.ts +34 -0
  1160. package/esm/util/withFeatureDetails.js +59 -0
  1161. package/esm/util/withLaunchInput.d.ts +174 -0
  1162. package/esm/util/withLaunchInput.js +274 -0
  1163. package/package.json +290 -820
  1164. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  1165. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -14
  1166. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -7
  1167. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  1168. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  1169. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  1170. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  1171. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  1172. package/esm/ReExports/BaseFeatureDetails.js +0 -9
  1173. package/esm/ReExports/DataGrid.d.ts +0 -1
  1174. package/esm/ReExports/DataGrid.js +0 -1
  1175. package/esm/ReExports/index.d.ts +0 -1
  1176. package/esm/ReExports/index.js +0 -1
  1177. package/esm/configuration/util.d.ts +0 -10
  1178. package/esm/configuration/util.js +0 -123
  1179. package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
  1180. package/esm/data_adapters/util.d.ts +0 -1
  1181. package/esm/data_adapters/util.js +0 -6
  1182. package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
  1183. package/esm/pluggableElementTypes/GlyphType.js +0 -18
  1184. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
  1185. package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
  1186. package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
  1187. package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
  1188. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
  1189. package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
  1190. package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
  1191. package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
  1192. package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
  1193. package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
  1194. package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
  1195. package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
  1196. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
  1197. package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
  1198. package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
  1199. package/esm/pluggableElementTypes/renderers/index.js +0 -6
  1200. package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
  1201. package/esm/pluggableElementTypes/renderers/util.js +0 -14
  1202. package/esm/rpc/baseRpcConfig.d.ts +0 -8
  1203. package/esm/rpc/baseRpcConfig.js +0 -10
  1204. package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
  1205. package/esm/rpc/mainThreadRpcConfig.js +0 -8
  1206. package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
  1207. package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
  1208. package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
  1209. package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
  1210. package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
  1211. package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
  1212. package/esm/rpc/methods/CoreRender.d.ts +0 -14
  1213. package/esm/rpc/methods/CoreRender.js +0 -40
  1214. package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
  1215. package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
  1216. package/esm/rpc/methods/util.d.ts +0 -15
  1217. package/esm/rpc/methods/util.js +0 -7
  1218. package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
  1219. package/esm/rpc/webWorkerRpcConfig.js +0 -8
  1220. package/esm/ui/MenuButton.d.ts +0 -1
  1221. package/esm/ui/MenuButton.js +0 -1
  1222. package/esm/ui/MenuItems.d.ts +0 -15
  1223. package/esm/ui/MenuItems.js +0 -59
  1224. package/esm/ui/useEvent.d.ts +0 -1
  1225. package/esm/ui/useEvent.js +0 -10
  1226. package/esm/util/blobToDataURL.d.ts +0 -1
  1227. package/esm/util/blobToDataURL.js +0 -14
  1228. package/esm/util/compositeMap.d.ts +0 -11
  1229. package/esm/util/compositeMap.js +0 -59
  1230. package/esm/util/flatqueue/index.d.ts +0 -11
  1231. package/esm/util/flatqueue/index.js +0 -61
  1232. package/esm/util/layouts/BaseLayout.d.ts +0 -30
  1233. package/esm/util/layouts/MultiLayout.d.ts +0 -12
  1234. package/esm/util/layouts/MultiLayout.js +0 -40
  1235. package/esm/util/layouts/PileupLayout.d.ts +0 -41
  1236. package/esm/util/layouts/PileupLayout.js +0 -202
  1237. package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
  1238. package/esm/util/layouts/PrecomputedLayout.js +0 -71
  1239. package/esm/util/layouts/SceneGraph.d.ts +0 -31
  1240. package/esm/util/layouts/SceneGraph.js +0 -121
  1241. package/esm/util/makeAbortableReaction.d.ts +0 -3
  1242. package/esm/util/makeAbortableReaction.js +0 -47
  1243. package/esm/util/map-obj/index.d.ts +0 -13
  1244. package/esm/util/map-obj/index.js +0 -92
  1245. package/esm/util/nextTick.d.ts +0 -1
  1246. package/esm/util/nextTick.js +0 -3
  1247. package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
  1248. package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
  1249. package/esm/util/offscreenCanvasUtils.d.ts +0 -12
  1250. package/esm/util/offscreenCanvasUtils.js +0 -19
  1251. package/esm/util/renderToAbstractCanvas.d.ts +0 -17
  1252. package/esm/util/renderToAbstractCanvas.js +0 -53
  1253. package/esm/util/stopToken.d.ts +0 -19
  1254. package/esm/util/stopToken.js +0 -90
  1255. package/esm/util/transferables.d.ts +0 -2
  1256. package/esm/util/transferables.js +0 -35
  1257. package/esm/util/tss-react/mui/index.d.ts +0 -1
  1258. package/esm/util/tss-react/mui/index.js +0 -1
  1259. package/esm/util/tss-react/mui/mui.d.ts +0 -10
  1260. package/esm/util/tss-react/mui/mui.js +0 -5
  1261. package/esm/util/when.d.ts +0 -1
  1262. package/esm/util/when.js +0 -1
  1263. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
  1264. /package/esm/data_adapters/BaseAdapter/{BaseOptions.js → zoomRange.js} +0 -0
  1265. /package/esm/{util/layouts/BaseLayout.js → rpc/RpcRegistry.js} +0 -0
package/README.md CHANGED
@@ -18,3 +18,1997 @@ be linked from [jbrowse.org](http://jbrowse.org).
18
18
  ## License
19
19
 
20
20
  Apache-2.0 © Evolutionary Software Foundation
21
+
22
+ <!-- API_DOCS_START -->
23
+
24
+ ## API
25
+
26
+ Auto-generated from `#api` JSDoc tags in this package. Do not edit by hand.
27
+
28
+ ### AggregateOp
29
+
30
+ One summary over a group: `count` needs no field; `sum`, `mean`, `min` and `max`
31
+ read one, skipping values that are not numbers. The output field is `as`, else
32
+ `count` or `<op>_<field>`.
33
+
34
+ `weight` names a field each row counts by: `count` is then the sum of the
35
+ weights, `sum` the sum of value times weight, and `mean` that over the sum of
36
+ the weights, a row whose weight is not a number counting for nothing. A weight
37
+ moves no minimum or maximum, so `min` and `max` read none.
38
+
39
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
40
+
41
+ ### AggregateStep
42
+
43
+ One feature per distinct `groupby` value set (one for the whole region with
44
+ none), spanning its members' extent, carrying the group's fields and every `ops`
45
+ entry.
46
+
47
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
48
+
49
+ ### applyConfSettings
50
+
51
+ Write a settings bag — a session spec's track entry, a share link, an agent call
52
+ — onto a config. Each key names a member: a slot or a channel is written whole,
53
+ as `setConf` writes it, so `null` resets it (ADR-146); a namespace's object
54
+ names members inside it, at any depth, and the ones it leaves out keep their
55
+ values. The config's own lift and checks run over the bag first, and each
56
+ namespace's over its part, so a shorthand or a legacy key reads the same here as
57
+ in `config.json`. A key the config does not declare is reported for the caller
58
+ to route or refuse, and a declared key whose write throws costs that key alone.
59
+
60
+ ```js
61
+ // type signature
62
+ (target: AnyConfigurationModel | { configuration: AnyConfigurationModel; }, settings: Record<string, unknown>) => ConfSettingsReport
63
+ ```
64
+
65
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/getConf.ts)
66
+
67
+ ### arraySlotUnion
68
+
69
+ The `ConfigurationSchemaUnion` an array slot's entries answer to, read off the
70
+ slot's MST type, or undefined for any other slot.
71
+
72
+ ```js
73
+ // type signature
74
+ (slotType: IAnyType) => ConfigurationSchemaUnionMetadata | undefined
75
+ ```
76
+
77
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/configurationSchemaUnion.ts)
78
+
79
+ ### asTable
80
+
81
+ A table over a feature list, or the table itself.
82
+
83
+ ```js
84
+ // type signature
85
+ (input: readonly Feature[] | FeatureTable) => FeatureTable
86
+ ```
87
+
88
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
89
+
90
+ ### Band
91
+
92
+ One band of a display's vertical stack — a coverage histogram, an arc strip, a
93
+ conservation row, a variant lane. The contract is the pair: `active` is whether
94
+ the band exists right now (the display pre-ANDs its settings half, `showX`, with
95
+ its data half, "some lane has ink"), and `height` is the stated height when it
96
+ does. Consumers read pixels through reservedPx or stackBands, never by
97
+ re-combining the pair — the re-combination is where the reserver and the painter
98
+ historically drifted.
99
+
100
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/bandLayout.ts)
101
+
102
+ ### BinStep
103
+
104
+ Place every feature in a genome-aligned bin of `step` bp, writing the bin's
105
+ edges over the fields `as` names — `start` and `end` by default, so an
106
+ `aggregate` grouped by those counts per bin and the bar spans the bin.
107
+
108
+ With `field` (`start` by default) a feature lands in the one bin that field
109
+ falls in. With `fields`, an interval's start and end, it is cut at the bin edges
110
+ into one piece per bin it overlaps, each piece writing `overlap`, the bases of
111
+ the interval inside its bin; a zero-length interval (an insertion) is one piece
112
+ of overlap 0 in the bin holding its position, and one whose ends are not numbers
113
+ is none. A piece is its feature with those fields beside it, so its id and hover
114
+ are the feature's, and an `aggregate` over the pieces weighted by `overlap` is a
115
+ mean per base.
116
+
117
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
118
+
119
+ ### boundBandHeight
120
+
121
+ Bound a band height to its legal range — a config value, a menu choice, or a
122
+ slider position, i.e. anywhere the number is being _stated_ rather than dragged.
123
+
124
+ The **floor** keeps the band operable at its smallest: for a drag-resized band
125
+ that means keeping the handle grabbable, for a menu-sized one it is the height
126
+ below which its content stops reading. The **ceiling** stops a band from
127
+ swallowing the plot it sits over — every display floors its plot area at 0, so
128
+ an unbounded band takes the rows to zero height rather than to a scrollbar, and
129
+ takes the band's own handle off-screen with them.
130
+
131
+ The bounds differ per band and the rule does not, which is why this takes them
132
+ rather than each band re-deriving the reasoning — that is how the two
133
+ `clampBandHeight`s in this repo drifted apart, each ending up with one half of
134
+ this rule and a doc comment claiming to be the whole of it.
135
+
136
+ ```js
137
+ // type signature
138
+ (n: number, { min, max }?: BandBounds) => number
139
+ ```
140
+
141
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/bandHeight.ts)
142
+
143
+ ### breakendKeepsDirections
144
+
145
+ Which way the sequence each end of a breakend KEEPS runs from its breakpoint, as
146
+ `+1 = right` / `-1 = left` — the convention `StarFusionAdapter`'s
147
+ `tickDirection` states and the one every producer in the tree emits.
148
+
149
+ The two halves read their strings with OPPOSITE polarity, which is the whole
150
+ reason to state them together. `Join: 'right'` says the mate piece is joined to
151
+ the RIGHT of the ref base, so this end keeps the sequence to its left: negated.
152
+ `MateDirection: 'right'` says the mate's own piece extends to the right of the
153
+ mate position, which is already the direction it keeps: taken as read. So
154
+ `N[chr2:2000[` is `{ joinDirection: -1, mateDirection: 1 }`, and that is the
155
+ same pair `StarFusionAdapter` emits for the fusion it describes — the donor
156
+ keeps the sequence below its breakpoint (-1) and the acceptor the sequence above
157
+ its own (+1).
158
+
159
+ Split out of `parseSvAlt` because a consumer holding an already-parsed
160
+ `Breakend` was re-deriving it by hand, in two adjacent ternaries of opposite
161
+ polarity — the shape that produced 78bb7b84f9.
162
+
163
+ ```js
164
+ // type signature
165
+ (bnd: Breakend) => { mateDirection: number; joinDirection: number; }
166
+ ```
167
+
168
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
169
+
170
+ ### buildColorRampLut
171
+
172
+ An RGBA lookup table over sampleColorRamp, laid out as the Nx1 texture both GPU
173
+ backends upload and the Canvas2D twins index — entry `i` is the color at
174
+ `t = i / (N - 1)`. N comes off the shader that samples it, so the table and
175
+ `rampColor`'s texel mapping cannot disagree.
176
+
177
+ The table is always straight. A diverging ramp whose middle belongs at a value
178
+ off the centre of the domain reads it through `rampMidT`, the shader's rule and
179
+ its generated twin, so the middle follows a moving domain without a new table.
180
+
181
+ ```js
182
+ // type signature
183
+ (stops: readonly ColorRampStop[]) => Uint8Array<ArrayBuffer>
184
+ ```
185
+
186
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
187
+
188
+ ### canonicalizeViewRefName
189
+
190
+ Resolve user-authored refName text against the assembly of the view containing
191
+ `node`, resolving aliases and casing together. Falls back to the input when the
192
+ assembly is absent or its aliases have not loaded.
193
+
194
+ Uses the view's assembly, not the track's, because displayed regions, loaded
195
+ regions and blocks all carry the refNames the view laid out.
196
+
197
+ Call it wherever a refName a _person_ wrote is about to be compared against
198
+ regions, features or blocks, which carry the assembly's canonical name. A
199
+ refName a display copied off a region is already canonical. One from a session
200
+ spec, a config slot or a URL is whatever the author typed.
201
+
202
+ Without it, matching depends on the assembly: `chr12` matches on an assembly
203
+ canonicalized `chr12` and matches nothing on one canonicalized `12`. The same
204
+ spec key works on one config and does nothing on the next, with no error.
205
+
206
+ Resolves through `getCanonicalRefName2`, which falls back to the input instead
207
+ of throwing when a spec is read before the alias file has loaded. The getters
208
+ that read user specs run from the first render.
209
+
210
+ Takes a refName, not a spec that might hold one. The resolver calls
211
+ `refName.toLowerCase()`, so any other value throws once the aliases have loaded,
212
+ and a caller reading an untyped `frozen` slot must first check that the value is
213
+ a refName.
214
+
215
+ ```js
216
+ // type signature
217
+ (node: IAnyStateTreeNode, refName: string) => string
218
+ ```
219
+
220
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
221
+
222
+ ### categoricalField
223
+
224
+ `labels` names the `domain`'s values in a key, one each in order, where a config
225
+ spells them for a reader rather than as the data does.
226
+
227
+ ```js
228
+ // type signature
229
+ (field: string, {…}?: { domain?: readonly string[] | undefined; range?: readonly string[] | undefined; labels?: readonly string[] | undefined; }) => CategoricalField
230
+ ```
231
+
232
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/categoricalField.ts)
233
+
234
+ ### CategoricalField
235
+
236
+ One categorical field as every channel reads it — a facet's sections, a color's
237
+ range entries, a key's rows. `key` files a value, `compare` orders keys (the
238
+ `domain` first, the rest by `compareGroupKeys`, `''` after them), `label` names
239
+ a key in a legend, `sectionLabel` on a chip, and `color` paints it. A key's
240
+ color depends only on the key and the declaration, so every region agrees on it.
241
+
242
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/categoricalField.ts)
243
+
244
+ ### CategoricalRef
245
+
246
+ A field bound to a categorical scale: each distinct value takes one entry of the
247
+ channel's `range` — a colour for `color`, a shape name for `shape`. Every value
248
+ derives its entry from itself (an integer takes the slot it names, anything else
249
+ hashes in), so every region agrees on a value it shares with another at the cost
250
+ of an occasional collision. A `domain` spends the range deliberately: the listed
251
+ values take it in order, and a value the domain leaves out never takes a listed
252
+ value's entry. The domain orders and spends; it never adds a value the data
253
+ lacks.
254
+
255
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
256
+
257
+ ### CellsStep
258
+
259
+ Replace each aligned row with its cells against the reference: one feature per
260
+ run of columns in one `state` — `match`, `mismatch` or `gap` — on the row's own
261
+ reference span, a mismatch run carrying its `base` and a match or mismatch run
262
+ `match` as 1 or 0, and one interbase feature per `insertion`, standing at the
263
+ reference base it precedes with the inserted bases in `base` and their count in
264
+ `length`. The row's `field` (`seq`) is the aligned text, and the reference's is
265
+ the same field on the feature the row was fanned out of, so a `flatten` over a
266
+ MAF block's `alignments` stands in front. A gap run reaching either end of the
267
+ row is no cell, and a feature with no parent answers none.
268
+
269
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
270
+
271
+ ### ChannelReader
272
+
273
+ A channel read per feature: the compiled form of a FieldRef, and what a
274
+ display's own worker method hands the encoder for a channel no field name can
275
+ say — a join against a second adapter, a lookup table, a rule over two fields.
276
+
277
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
278
+
279
+ ### clampBandHeight
280
+
281
+ Clamp one _resize_ of a drag-resizable band: boundBandHeight, plus the one rule
282
+ a resize needs that a stated height does not.
283
+
284
+ The floor becomes `min(bounds.min, current)`, never the bare bound: a band whose
285
+ config declares it smaller than the floor must stay where it is. Taking the bare
286
+ floor instead made the _first_ drag on such a band jump it up to the floor
287
+ before honoring the delta. A band at or above the floor is unaffected, one below
288
+ it can still be dragged but never smaller than it already is, and one dragged
289
+ back past the floor regains it.
290
+
291
+ The ceiling is not relaxed the same way — a band already over its ceiling is the
292
+ state the user is trying to escape, so a resize brings it back inside.
293
+
294
+ `ResizeHandle` emits one delta per animation frame, so callers driving a drag
295
+ pass `current + distance` as the target and read `current` inside the action — a
296
+ component computing the target from a rendered height drops every tick that
297
+ lands before React re-renders.
298
+
299
+ ```js
300
+ // type signature
301
+ (current: number, target: number, bounds?: BandBounds) => number
302
+ ```
303
+
304
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/bandHeight.ts)
305
+
306
+ ### clipQuantileOf
307
+
308
+ The quantile a clip toggle writes: a scale's declared default where that clips,
309
+ below 1, else DEFAULT_CLIP_QUANTILE.
310
+
311
+ ```js
312
+ // type signature
313
+ (declaredDefault: unknown) => number
314
+ ```
315
+
316
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/quantileExtent.ts)
317
+
318
+ ### CodeLane
319
+
320
+ Codes into a list of labels, one per row.
321
+
322
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
323
+
324
+ ### COLOR_SCHEMES
325
+
326
+ The named ramps a continuous colour scale's `scheme` takes, each one a stop
327
+ table in `colorRamp.ts` that every ramp baker reads, so no display can name a
328
+ scheme nothing bakes. `viridis`, `magma`, `inferno` and `cividis` are
329
+ matplotlib's perceptual ramps, dark at the low end; `juicebox` fades from
330
+ transparent to red, as Juicebox paints contacts; `fall` runs white through
331
+ yellow and red to black, as HiGlass does; `reds` and `blues` are ColorBrewer's,
332
+ from white; `redblue` and `purpleorange` diverge through white, ColorBrewer's
333
+ RdBu and PuOr.
334
+
335
+ ```js
336
+ // type signature
337
+ readonly[
338
+ ('viridis',
339
+ 'magma',
340
+ 'inferno',
341
+ 'cividis',
342
+ 'juicebox',
343
+ 'fall',
344
+ 'reds',
345
+ 'blues',
346
+ 'redblue',
347
+ 'purpleorange')
348
+ ]
349
+ ```
350
+
351
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorSchemes.ts)
352
+
353
+ ### colorAt
354
+
355
+ The packed colour instance `i` of `channels` paints: `color[i]`, or `color`
356
+ itself where the colour is a constant and so shipped as one number.
357
+
358
+ ```js
359
+ // type signature
360
+ (channels: Pick<EncodedChannels, "color">, i: number) => number | undefined
361
+ ```
362
+
363
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
364
+
365
+ ### ColorEncoding
366
+
367
+ How a mark's `color` channel resolves. A CSS colour or a `jexl:` expression
368
+ returning one paints per feature with no scale; the object forms bind a field to
369
+ a scale, which a legend can describe, and share the config's member names.
370
+
371
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
372
+
373
+ ### colorEvaluator
374
+
375
+ A CSS colour or `jexl:` colour expression as a per-feature packed ABGR — the
376
+ unscaled arm of ColorEncoding, on its own for a display that carries a plain
377
+ `color` slot.
378
+
379
+ ```js
380
+ // type signature
381
+ (color: string, jexl: JexlInstance | undefined) => (feature: Feature) => number
382
+ ```
383
+
384
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
385
+
386
+ ### colorRampStops
387
+
388
+ The stops a continuous colour scale samples: `range`'s CSS colours where it
389
+ lists any, else the named `scheme`, viridis while that is unset, turned round
390
+ under `reverse`.
391
+
392
+ ```js
393
+ // type signature
394
+ ({ range, scheme, reverse, }: RampDeclaration) => readonly ColorRampStop[]
395
+ ```
396
+
397
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
398
+
399
+ ### ColorScaleTable
400
+
401
+ The scale a colour channel was resolved through, as the legend reads it — the
402
+ same table the colours in the payload came from, so the key cannot disagree with
403
+ the painting.
404
+
405
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
406
+
407
+ ### ColorSchemeName
408
+
409
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorSchemes.ts)
410
+
411
+ ### Column
412
+
413
+ A field's values over a table's rows, resolved once per step so the loop reading
414
+ it is chosen before the loop runs: a lane a step wrote, codes into labels, a
415
+ field read off the parser's own features, text or lists an adapter holds typed,
416
+ or a value a step computes per row. `at` is the row each of the table's rows
417
+ reads, where the lane or the features belong to a table this one stands on.
418
+
419
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
420
+
421
+ ### ColumnTable
422
+
423
+ A table an adapter answers from the typed arrays it already holds, where
424
+ `getFeaturesArray` would make an object per row: a column per field, and each
425
+ row's id. A row's hover JSON is every field it holds.
426
+
427
+ ```js
428
+ // type signature
429
+ typeof ColumnTable
430
+ ```
431
+
432
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
433
+
434
+ ### ConfigurationSchemaUnion
435
+
436
+ A list entry that is one of several configuration schemas, each keyed by the
437
+ `type` it answers to:
438
+ `types.array(ConfigurationSchemaUnion('Step', { filter, bin }))`. The keys are
439
+ the vocabulary, the snapshot's `type` picks the member, and a `type` naming no
440
+ member is refused in every build — where a bare `types.union` would load it as
441
+ its first member. Each member is an `explicitlyTyped`, `closed` schema named by
442
+ its key, so a key belonging to another member is refused rather than dropped;
443
+ one that is not throws here.
444
+
445
+ ```js
446
+ // type signature
447
+ <const MEMBERS extends Record<string, AnyConfigurationSchemaType>>(name: string, members: MEMBERS) => ConfigurationSchemaUnionType<MEMBERS>
448
+ ```
449
+
450
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/configurationSchemaUnion.ts)
451
+
452
+ ### continuousColorScale
453
+
454
+ A continuous colour scale over `extent`, the values it met: the domain its
455
+ declared ends and the extent make, the straight table its stops bake to and
456
+ where its middle stop sits, and the packed colour a value paints through them:
457
+ an infinity the end on its side, as a threshold places it, and NaN, text that is
458
+ no number, the misconfiguration grey. The encoder and every display painting a
459
+ ramp itself read it, so a value takes one colour whoever paints it.
460
+
461
+ ```js
462
+ // type signature
463
+ (encoding: ContinuousRef, extent: readonly [number, number]) => { domain: [number, number]; lut: Uint8Array<ArrayBufferLike>; midNorm: number; colorOf: (value: number) => number; }
464
+ ```
465
+
466
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
467
+
468
+ ### ContinuousRef
469
+
470
+ A numeric field read through a linear or log scale into a ramp. Each end of the
471
+ domain is pinned by `domainMin` or `domainMax`, or is the region's own extreme
472
+ where unset, so pinning both keeps colours consistent across a whole view. The
473
+ ramp is `range`'s CSS colours, evenly spaced, where it lists any, else the named
474
+ `scheme`; `reverse` turns it round.
475
+
476
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
477
+
478
+ ### CoverageStep
479
+
480
+ Replace the features with runs of constant depth: how many of them overlap each
481
+ stretch of the region, in a field `as` (`coverage` by default), with the
482
+ stretches nothing overlaps left out.
483
+
484
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
485
+
486
+ ### darkAtLowEnd
487
+
488
+ Whether a named ramp runs dark at its low end, drawn over white: viridis and its
489
+ siblings do, juicebox, fall, reds and blues do not.
490
+
491
+ ```js
492
+ // type signature
493
+ (scheme: "blues" | "cividis" | "fall" | "inferno" | "juicebox" | "magma" | "purpleorange" | "redblue" | "reds" | "viridis") => boolean
494
+ ```
495
+
496
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
497
+
498
+ ### DEFAULT_COLOR_SCHEME
499
+
500
+ The ramp a continuous scale samples while it names no `range` and no `scheme`,
501
+ so a declaration spelling it out and one leaving it unset resolve alike.
502
+
503
+ ```js
504
+ // type signature
505
+ ;'blues' |
506
+ 'cividis' |
507
+ 'fall' |
508
+ 'inferno' |
509
+ 'juicebox' |
510
+ 'magma' |
511
+ 'purpleorange' |
512
+ 'redblue' |
513
+ 'reds' |
514
+ 'viridis'
515
+ ```
516
+
517
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorSchemes.ts)
518
+
519
+ ### EncodeContext
520
+
521
+ What surrounds an encode: the jexl instance a `jexl:` channel compiles against —
522
+ a caller whose channels are all readers or field names passes none — and a
523
+ progress reporter.
524
+
525
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
526
+
527
+ ### Encoded
528
+
529
+ EncodedChannels with the lanes in `L` present — what `encodeFeatures` answers a
530
+ caller that named them.
531
+
532
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
533
+
534
+ ### EncodedChannels
535
+
536
+ One encoding's channels over one region's features, dense and index-aligned:
537
+ instance `i` of every array is the same feature, and `featureIndex[i]` says
538
+ which one of the input list it was, or it is absent where instance `i` is
539
+ feature `i` (featureIndexAt). A lane is present when the caller asked for it
540
+ (LaneName); Encoded is this type with a known lane set required.
541
+
542
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
543
+
544
+ ### encodedChannelTransferables
545
+
546
+ The buffers an EncodedChannels owns, for `rpcResult`'s transfer list.
547
+
548
+ ```js
549
+ // type signature
550
+ (c: EncodedChannels) => ArrayBufferLike[]
551
+ ```
552
+
553
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
554
+
555
+ ### EncodedLayersResult
556
+
557
+ What `CoreGetEncodedLayers` answers for one region: `layers[i]` is the request's
558
+ `layers[i]` over the region's features, so a display's mark list indexes
559
+ straight into it.
560
+
561
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
562
+
563
+ ### encodeFeatures
564
+
565
+ Evaluate one encoding over a feature list into dense channel arrays for the
566
+ lanes named, the scale table each scaled channel came from, the `y` extremes and
567
+ — when `index` is among the lanes — a hit index.
568
+
569
+ A feature whose `x`, `x2` or (declared and asked-for) `y` is not finite is
570
+ skipped and counted in `skipped`, so every array stays index-aligned with the
571
+ Flatbush. Pure: the RPC around it owns the adapter, the filters and the
572
+ transferables.
573
+
574
+ Columnar: one pass admits the rows over `x`, `x2` and `y` alone, and none runs
575
+ where all three are lanes of whole numbers; every other lane is then filled in
576
+ its own loop over the admitted rows, a lane straight off a typed column and a
577
+ categorical over a `category` column per label.
578
+
579
+ ```js
580
+ // type signature
581
+ <L extends LaneName>(input: readonly Feature[] | FeatureTable, encoding: MarkEncodingInput, lanes: readonly L[], ctx?: EncodeContext) => Encoded<L>
582
+ ```
583
+
584
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
585
+
586
+ ### FacetedLayer
587
+
588
+ One layer of a faceted request: its rows in section order, and the stacked row
589
+ of each, index for index.
590
+
591
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTransforms.ts)
592
+
593
+ ### facetLayers
594
+
595
+ A faceted request's layers: the rows split on the facet's field, the facet's own
596
+ steps and then each layer's run over each section alone, and the sections
597
+ stacked — a section's rows start where the one above it ends, and it is as tall
598
+ as the tallest layer packed it. Every layer's rows come back in section order
599
+ beside their stacked rows, so a faceted display is the unfaceted one drawn once
600
+ per section, and a row is handed on as its steps left it. A layer naming no
601
+ `row` field stands on each section's first row, the answer the unfaceted encoder
602
+ gives it.
603
+
604
+ The split is a counting sort into section order rather than a list per section:
605
+ every step runs once over the ordered rows, keeping section order, and one that
606
+ groups rows groups within a section.
607
+
608
+ ```js
609
+ // type signature
610
+ (input: readonly Feature[] | FeatureTable, facet: FacetSpec, layers: readonly {…}[], jexl?: JexlInstance | undefined) => { ...; }
611
+ ```
612
+
613
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTransforms.ts)
614
+
615
+ ### FacetSection
616
+
617
+ One faceted section as the worker stacked it: its key, the row it starts on and
618
+ how many rows it holds.
619
+
620
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
621
+
622
+ ### FacetSpec
623
+
624
+ A row facet: split the features on `field`'s value, run `transform` and then
625
+ every layer's own steps over each section alone, and stack the sections, each
626
+ starting on the row after the one above it ends.
627
+
628
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
629
+
630
+ ### featureIndexAt
631
+
632
+ The input feature instance `i` of `channels` was: `featureIndex[i]`, or `i`
633
+ itself where the encoder skipped none and so shipped no index.
634
+
635
+ ```js
636
+ // type signature
637
+ (channels: Pick<EncodedChannels, "featureIndex">, i: number) => number
638
+ ```
639
+
640
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
641
+
642
+ ### FeatureTable
643
+
644
+ The rows one step of a mark's declaration hands the next: a column per field and
645
+ a view of one row as a `Feature`, for a `jexl:` expression, a channel reader and
646
+ the hover.
647
+
648
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
649
+
650
+ ### fieldReader
651
+
652
+ What a channel reads off a feature: a field by name, a dotted path into a
653
+ structured field where no field carries the whole name (`INFO.SVTYPE` on a VCF
654
+ record), or a `jexl:` expression over `feature`. A jexl expression that does not
655
+ compile throws here, once, rather than on every feature.
656
+
657
+ ```js
658
+ // type signature
659
+ (ref: string, jexl: JexlInstance | undefined) => (feature: Feature) => unknown
660
+ ```
661
+
662
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/fieldReader.ts)
663
+
664
+ ### FieldRef
665
+
666
+ Where a channel's value comes from: a feature field name, read natively
667
+ (`feature.get(name)`), or a `jexl:` expression over `feature` — the opt-in
668
+ escape, measured at 1.5x to 2.0x native per feature (MARK_ENCODING.md "The jexl
669
+ channel, measured").
670
+
671
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
672
+
673
+ ### FilterStep
674
+
675
+ Keep the features a `jexl:` expression over `feature` admits.
676
+
677
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
678
+
679
+ ### finiteExtremes
680
+
681
+ The least and greatest finite values of `values[0, count)`,
682
+ `[Infinity, -Infinity]` where none is finite.
683
+
684
+ ```js
685
+ // type signature
686
+ (values: ArrayLike<number>, count: number) => [number, number]
687
+ ```
688
+
689
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/quantileExtent.ts)
690
+
691
+ ### FlattenStep
692
+
693
+ Fan each feature out into one feature per element of an array-valued field —
694
+ `subfeatures`, so a gene answers its transcripts and a transcript its exons — or
695
+ per entry of a record keyed by name, so a VCF record answers one feature per
696
+ sample and a MAF block one per species, each with its key in `key`. Each answer
697
+ reads the element's own fields first and the feature it came from for everything
698
+ else, so an exon still knows its gene's name and strand and a species row its
699
+ block's reference span. A feature whose field holds no array and no record drops
700
+ out unless `keepEmpty` says otherwise.
701
+
702
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
703
+
704
+ ### FormulaStep
705
+
706
+ Write a `jexl:` expression's value over `feature` into the field `as` of every
707
+ feature.
708
+
709
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
710
+
711
+ ### getAssemblyHost
712
+
713
+ The host's assembly manager, for a module that resolves names and nothing else.
714
+
715
+ Unlike the accessors in `sessionServices.ts` this one buys the caller no smaller
716
+ type graph — an `AssemblyManager` is an MST model a `PluginManager` built, so
717
+ naming it costs what naming a session costs. It is here to say which service is
718
+ wanted, and because that cost is the finding: the assembly manager is the one
719
+ thing on `AbstractSessionModel` a third-party host cannot simply implement.
720
+
721
+ ```js
722
+ // type signature
723
+ (node: IAnyStateTreeNode) => AssemblyHost
724
+ ```
725
+
726
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
727
+
728
+ ### getBreakendMateLocString
729
+
730
+ The mate locString ("chr2:100") of a parsed breakend, or undefined when it names
731
+ no navigable position. Two ALT forms reach here without one: a single breakend
732
+ (`.A` / `G.`) has no mate at all, and the symbolic-mate forms (`G<DEL>`,
733
+ `<DEL>G`) get a placeholder `<DEL>:1` from parseBreakend, which puts a symbolic
734
+ allele id where a contig name belongs. Callers that navigate or split-view a
735
+ mate must drop both rather than treat `<DEL>` as a refName.
736
+
737
+ ```js
738
+ // type signature
739
+ (breakend?: Breakend | undefined) => string | undefined
740
+ ```
741
+
742
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
743
+
744
+ ### getConf
745
+
746
+ Reads a configuration value from a state model that has a `.configuration`
747
+ member (a track or display state model). For a raw configuration model, use
748
+ `readConfObject` instead.
749
+
750
+ **This is exactly `readConfObject(model.configuration, path)`** — sugar for the
751
+ `.configuration` hop, and nothing more. The two readers carry the same slot-name
752
+ check, so reaching for the other one does not get a typo past tsc. It does not
753
+ consult the session and has no per-slot behavior; what you read is what the
754
+ track stores.
755
+
756
+ ```js
757
+ // type signature
758
+ {…}
759
+ ```
760
+
761
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/getConf.ts)
762
+
763
+ ### getContainingDisplay
764
+
765
+ Returns the display model that contains the given node. Throws if the node has
766
+ no containing display.
767
+
768
+ ```js
769
+ // type signature
770
+ (node: IAnyStateTreeNode) => AbstractDisplayModel
771
+ ```
772
+
773
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
774
+
775
+ ### getContainingTrack
776
+
777
+ Returns the track model that contains the given node. Throws if the node has no
778
+ containing track.
779
+
780
+ ```js
781
+ // type signature
782
+ (node: IAnyStateTreeNode) => AbstractTrackModel
783
+ ```
784
+
785
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
786
+
787
+ ### getContainingView
788
+
789
+ Returns the view model that contains the given node. Throws if the node has no
790
+ containing view.
791
+
792
+ ```js
793
+ // type signature
794
+ (node: IAnyStateTreeNode) => AbstractViewModel
795
+ ```
796
+
797
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
798
+
799
+ ### getDialogHost
800
+
801
+ Where a display puts a dialog it cannot mount itself.
802
+
803
+ ```js
804
+ // type signature
805
+ (node: IAnyStateTreeNode) => DialogHost
806
+ ```
807
+
808
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/sessionServices.ts)
809
+
810
+ ### getEnv
811
+
812
+ Returns the MST environment for a node, which carries the `pluginManager`.
813
+
814
+ ```js
815
+ // type signature
816
+ (obj: IAnyStateTreeNode) => { pluginManager: PluginManager; }
817
+ ```
818
+
819
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
820
+
821
+ ### getNotificationSink
822
+
823
+ Where a display puts a message it cannot draw itself.
824
+
825
+ ```js
826
+ // type signature
827
+ (node: IAnyStateTreeNode) => NotificationSink
828
+ ```
829
+
830
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/sessionServices.ts)
831
+
832
+ ### getPaletteHost
833
+
834
+ The colors to draw with, and the args that rebuild them in a worker.
835
+
836
+ ```js
837
+ // type signature
838
+ (node: IAnyStateTreeNode) => PaletteHost
839
+ ```
840
+
841
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/sessionServices.ts)
842
+
843
+ ### getRenderingServices
844
+
845
+ Everything a display needs of its host in order to draw a region: the
846
+ assemblies, the RPC entry point and the colors.
847
+
848
+ ```js
849
+ // type signature
850
+ (node: IAnyStateTreeNode) => RenderingServices
851
+ ```
852
+
853
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
854
+
855
+ ### getRpcHost
856
+
857
+ The host's RPC entry point, for a module that issues RPCs and nothing else.
858
+
859
+ ```js
860
+ // type signature
861
+ (node: IAnyStateTreeNode) => RpcHost
862
+ ```
863
+
864
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/sessionServices.ts)
865
+
866
+ ### getSession
867
+
868
+ Returns the JBrowse session model for any node in the state tree. Throws if the
869
+ node has no session ancestor.
870
+
871
+ ```js
872
+ // type signature
873
+ (node: IAnyStateTreeNode) => AbstractSessionModel
874
+ ```
875
+
876
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
877
+
878
+ ### getSessionServices
879
+
880
+ The services a session offers that cost nothing application-shaped to name.
881
+ Prefer one of the narrower accessors below, which say which of them the calling
882
+ module actually uses.
883
+
884
+ ```js
885
+ // type signature
886
+ (node: IAnyStateTreeNode) => SessionServices
887
+ ```
888
+
889
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/sessionServices.ts)
890
+
891
+ ### HitIndexed
892
+
893
+ An encoded payload as a display stores it: the hit index the worker built with
894
+ hitIndexOf, wrapped once where the payload lands.
895
+
896
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
897
+
898
+ ### hitIndexOf
899
+
900
+ The hit index over `count` instances: each a box from `x` to `x2` at its `y`, or
901
+ at 0 for a mark with no value.
902
+
903
+ ```js
904
+ // type signature
905
+ (x: Uint32Array<ArrayBufferLike>, x2: Uint32Array<ArrayBufferLike>, y: Float32Array<ArrayBufferLike> | undefined, count?: number) => Flatbush
906
+ ```
907
+
908
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
909
+
910
+ ### hydrateTrackConfig
911
+
912
+ Hydrate a plain track config into a live config node, dispatching on its `type`
913
+ to find the schema. `session.tracks` holds `types.frozen` plain objects until
914
+ something references a track (ADR-031). One of those holds only what was
915
+ literally authored: a slot at its schema default is absent, `preProcessSnapshot`
916
+ has not run, and nothing that walks a live node applies to it.
917
+
918
+ Use it where a caller needs the resolved config and may be handed either form.
919
+ The About dialog's "Copy config" is reached from two menus, and one of them
920
+ passes a `session.tracks` entry.
921
+
922
+ Returns **undefined** when the config names a track type no plugin registered,
923
+ or when `create` rejects it as invalid. An un-hydrated config has never been
924
+ validated, so the dialog opening over it should not throw. Callers fall back to
925
+ using the plain object.
926
+
927
+ Shares `TrackConfigurationReference`'s per-PluginManager cache, so hydrating the
928
+ same entry twice returns the same node, and in an admin session a track opened
929
+ later resolves to that same node. A non-admin's open track resolves to the
930
+ session's private working copy (ADR-032), and this function returns the pristine
931
+ mirror beside it. The two have the same content; `CopyConfigEntryPoints.test.ts`
932
+ tests both cases.
933
+
934
+ ```js
935
+ // type signature
936
+ (pluginManager: PluginManager, config: Record<string, unknown>) => AnyConfigurationModel | undefined
937
+ ```
938
+
939
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/configurationSchema.ts)
940
+
941
+ ### isBreakend
942
+
943
+ Breakend notation, without parsing it: bracket forms (`G[chr2:100[`), single
944
+ breakends (`.A` / `G.`), and the symbolic-mate form (`G<DEL>`, an angle bracket
945
+ past position 0; a leading `<` is a plain symbolic allele).
946
+
947
+ ```js
948
+ // type signature
949
+ (alt: string) => boolean
950
+ ```
951
+
952
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
953
+
954
+ ### isMissing
955
+
956
+ Whether a field holds no value at all, as against text that fails to parse:
957
+ absent, empty, or a VCF's `AF=.`, which arrives as `[undefined]`.
958
+
959
+ ```js
960
+ // type signature
961
+ (value: unknown) => boolean
962
+ ```
963
+
964
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
965
+
966
+ ### isPlainFieldRef
967
+
968
+ Whether a field ref is a bare name: what `feature.get` answers on its own, with
969
+ no path to walk and no expression to evaluate. A loop over a plain name keeps
970
+ the direct call, and only a config that writes a path pays for one.
971
+
972
+ ```js
973
+ // type signature
974
+ (ref: string) => ref is never
975
+ ```
976
+
977
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/fieldReader.ts)
978
+
979
+ ### junctionEnds
980
+
981
+ Where a paired record's junction is at each of its two ends, and which side of
982
+ it each end keeps — the one answer every launcher, the row menu and the chain
983
+ walk take, whether the record is a VCF breakend, a symbolic SV or a paired
984
+ adapter's row (BEDPE, STAR-Fusion). Refnames are as the record spells them.
985
+ `undefined` for a record naming no other end. A VCF record is read through
986
+ `alt`, its first ALT unless the caller names another.
987
+
988
+ A VCF end is its own position. A paired adapter's end is a block, and the
989
+ junction is the block's edge on the side the end keeps: stated by
990
+ `mateDirection` where the adapter knows it, read off the strands where the
991
+ record states one for each end as BEDPE does, and with neither the two blocks
992
+ face each other. A PAF row's strand is the query's orientation and states none
993
+ for the target, so it names no side.
994
+
995
+ ```js
996
+ // type signature
997
+ (feature: Feature, alt?: string | undefined, alleleIndex?: number | undefined) => { own: JunctionEnd; mate: JunctionEnd; } | undefined
998
+ ```
999
+
1000
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1001
+
1002
+ ### keyNames
1003
+
1004
+ What a key names each of `keys`, from a colour object's `labels`: one each in
1005
+ order, an empty or missing entry leaving that key its own name. Every key that
1006
+ takes `labels` reads them through this, so a config means one thing by them
1007
+ everywhere.
1008
+
1009
+ ```js
1010
+ // type signature
1011
+ (keys: readonly unknown[], labels?: readonly string[]) => ReadonlyMap<string, string>
1012
+ ```
1013
+
1014
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/categoricalField.ts)
1015
+
1016
+ ### LaneName
1017
+
1018
+ The lanes a caller asks the encoder to fill, beyond `x` and `x2`, which every
1019
+ payload carries, and `featureIndex`, which one carries where a feature was
1020
+ skipped: a mark's channels, and `index` for the Flatbush a hover reads. A lane
1021
+ not asked for is neither allocated nor transferred, and a caller that never
1022
+ hovers declines the index, which is most of the encoder's cost after the walk.
1023
+
1024
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1025
+
1026
+ ### launchOrReplaceView
1027
+
1028
+ `addOrReplaceView` for view types whose state model may be lazily loaded; the
1029
+ synchronous `addOrReplaceView` requires it loaded already.
1030
+
1031
+ ```js
1032
+ // type signature
1033
+ (args: { session: AbstractViewContainer; typeName: string; initialState?: Record<string, unknown> | undefined; replacing?: AbstractViewModel | undefined; }) => Promise<...>
1034
+ ```
1035
+
1036
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/mstUtils.ts)
1037
+
1038
+ ### LayerRequest
1039
+
1040
+ One layer of a `CoreGetEncodedLayers` request: the encoding to evaluate and the
1041
+ lanes the display's mark reads.
1042
+
1043
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1044
+
1045
+ ### layerTables
1046
+
1047
+ A layered request's rows: the shared steps, the facet's split where it names
1048
+ one, and each layer's own steps, with the row each layer's rows stand in — the
1049
+ field it names, or under a facet each row's stacked row. The split comes as
1050
+ early as it can: after the last shared step that must see every row, so the
1051
+ steps that follow it read the rows already in section order.
1052
+
1053
+ ```js
1054
+ // type signature
1055
+ (input: readonly Feature[] | FeatureTable, request: {…}, jexl?: JexlInstance | undefined) => { ...; }
1056
+ ```
1057
+
1058
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTransforms.ts)
1059
+
1060
+ ### ListColumn
1061
+
1062
+ A list of rows per row: row `i`'s entries are the rows of `entries` from
1063
+ `start[i]` up to `start[i + 1]`, and `keys`, where the list is a record keyed by
1064
+ name, the name of each entry.
1065
+
1066
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1067
+
1068
+ ### ListedRowSource
1069
+
1070
+ One row an adapter lists: `name` is a value of the listing's field, and `label`
1071
+ and `color` are what the adapter names and colours that row with.
1072
+
1073
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/data_adapters/BaseAdapter/rowSources.ts)
1074
+
1075
+ ### listsRowSources
1076
+
1077
+ Whether an adapter implements RowSourceLister.
1078
+
1079
+ ```js
1080
+ // type signature
1081
+ (adapter: object) => adapter is RowSourceLister
1082
+ ```
1083
+
1084
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/data_adapters/BaseAdapter/rowSources.ts)
1085
+
1086
+ ### LocusRef
1087
+
1088
+ A position that may lie on another sequence: the field holding its refName and
1089
+ the field holding its 0-based coordinate, as a paired record states its mate
1090
+ (`{ chrom: 'mate.refName', pos: 'mate.start' }`). Spelt the way GenomeSpy spells
1091
+ a genomic position over two columns.
1092
+
1093
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1094
+
1095
+ ### MadeRows
1096
+
1097
+ A table whose rows a step made, which answers each row's identity, its hover
1098
+ JSON and the feature it hangs from.
1099
+
1100
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1101
+
1102
+ ### MarkEncoding
1103
+
1104
+ The declared mapping from a feature's fields to a mark's channels. Every
1105
+ positional channel is a field: `x` defaults to `start` and `x2` to `end`, a mark
1106
+ that plots no value leaves `y` off, and the scale `y` is read through belongs to
1107
+ the display rather than to the encoding. `shape` is read by the `point` mark
1108
+ alone, `row` — an integer field, 0 where missing — by every mark, which stands a
1109
+ feature in the band it names.
1110
+
1111
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1112
+
1113
+ ### MarkEncodingInput
1114
+
1115
+ What `encodeFeatures` takes: a MarkEncoding, any channel of which may be a
1116
+ ChannelReader in place of its declared form, and `row` the values themselves,
1117
+ one per input feature, where the caller computed them — a facet's stacked rows.
1118
+ The declared form is what crosses the wire; a reader or a value list is built in
1119
+ the worker.
1120
+
1121
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
1122
+
1123
+ ### matedBy
1124
+
1125
+ How a record states its other end, or undefined where it states none: the `mate`
1126
+ a paired adapter fills (BEDPE, STAR-Fusion), or an `ALT` the breakend and
1127
+ symbolic-SV readers resolve. The `mate` step admits exactly the features this
1128
+ names one for, so a caller deciding whether links are the picture a track wants
1129
+ asks here rather than re-reading the fields.
1130
+
1131
+ ```js
1132
+ // type signature
1133
+ (f: Feature) => "alt" | "mate" | undefined
1134
+ ```
1135
+
1136
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTransforms.ts)
1137
+
1138
+ ### MateStep
1139
+
1140
+ One feature per other end a record states: the `mate` a paired adapter fills in
1141
+ (BEDPE, STAR-Fusion), or each VCF `ALT` naming a locus, a breakend's mate or a
1142
+ symbolic allele's `END` on `CHR2` or its own sequence. Each answer carries
1143
+ `mate` (`refName`, `start`, `end`, 0-based and half-open, and the far end's
1144
+ `mateDirection`), its own end's `mateDirection`, the `alt` it came from and
1145
+ `svType`, the structural class the allele states (`svClassOfAlt`). A record
1146
+ naming no other end drops out, and two records or alleles stating one pair of
1147
+ ends answer once.
1148
+
1149
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1150
+
1151
+ ### MISCONFIGURED_ABGR
1152
+
1153
+ The misconfiguration grey packed as the encoder paints it: a `jexl:` colour that
1154
+ answered no string, a ramp value that is no number, text a threshold cannot
1155
+ read.
1156
+
1157
+ ```js
1158
+ // type signature
1159
+ number
1160
+ ```
1161
+
1162
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
1163
+
1164
+ ### NO_VALUE_ABGR
1165
+
1166
+ The no-value grey packed as the encoder paints it: a feature with nothing in the
1167
+ field a threshold reads.
1168
+
1169
+ ```js
1170
+ // type signature
1171
+ number
1172
+ ```
1173
+
1174
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
1175
+
1176
+ ### NO_VALUE_LABEL
1177
+
1178
+ The row a feature with nothing in a categorical field lands on, so a key says
1179
+ why a mark is grey rather than listing a blank value.
1180
+
1181
+ ```js
1182
+ // type signature
1183
+ '(no value)'
1184
+ ```
1185
+
1186
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/categoricalField.ts)
1187
+
1188
+ ### NOT_A_NUMBER_LABEL
1189
+
1190
+ The key a value holding text that is no number files under on a threshold scale,
1191
+ painted the misconfiguration grey rather than passing for a missing value.
1192
+
1193
+ ```js
1194
+ // type signature
1195
+ '(not a number)'
1196
+ ```
1197
+
1198
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1199
+
1200
+ ### NumberLane
1201
+
1202
+ A typed lane a step wrote, one number per row.
1203
+
1204
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1205
+
1206
+ ### numberReaderOf
1207
+
1208
+ readerOf as the number a quantitative channel or step reads, `NaN` where a row
1209
+ holds none, by `numericValue`'s rules.
1210
+
1211
+ ```js
1212
+ // type signature
1213
+ (column: Column) => (i: number) => number
1214
+ ```
1215
+
1216
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1217
+
1218
+ ### numericDomain
1219
+
1220
+ A domain written as strings — the shared `domain` slot is a `stringArray` — read
1221
+ back as the numbers it names. A member that is not a number reads NaN, which
1222
+ every comparison against it declines.
1223
+
1224
+ ```js
1225
+ // type signature
1226
+ (domain: readonly (string | number)[]) => number[]
1227
+ ```
1228
+
1229
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1230
+
1231
+ ### parseSvAlt
1232
+
1233
+ Parse raw (non-assembly-resolved) mate coordinates from a VCF SV feature+alt.
1234
+ Returns undefined when no mate coordinate info is found. `alleleIndex` is the
1235
+ alt's place in `ALT`, which a record repeating one symbolic allele with several
1236
+ lengths needs; it defaults to the first place `alt` appears.
1237
+
1238
+ ```js
1239
+ // type signature
1240
+ (feature: Feature, alt?: string | undefined, alleleIndex?: number) => {…} | undefined
1241
+ ```
1242
+
1243
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1244
+
1245
+ ### PileupStep
1246
+
1247
+ Assign every feature the lowest row on which it overlaps nothing already there —
1248
+ greedy first fit in start order, the packing a pileup is — and write it to the
1249
+ field `as` (`row`). `fields` names the interval read (`start`, `end`); `padding`
1250
+ is bp of clearance kept between two features sharing a row. The answer is the
1251
+ input in start order, so a `span` encoding `row` stacks it. Under a facet it
1252
+ packs each section on its own.
1253
+
1254
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1255
+
1256
+ ### preProcessConfigSnapshot
1257
+
1258
+ A snapshot as `type` admits it: the same lift and checks `type.create` applies,
1259
+ so a dialog or a validator refuses exactly what a config file cannot hold.
1260
+ Throws what the schema's `preProcessSnapshot` throws.
1261
+
1262
+ ```js
1263
+ // type signature
1264
+ (type: IAnyType, snapshot: unknown) => Record<string, unknown>
1265
+ ```
1266
+
1267
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/snapshotPreprocess.ts)
1268
+
1269
+ ### quantileExtent
1270
+
1271
+ What the open ends of a scale follow over `values[0, count)`: at a `quantile` of
1272
+ 1 their finite extremes, and below it each end clipped at that quantile of the
1273
+ values on its side of 0, so one spike takes neither the axis nor the ramp, and a
1274
+ sparse tail of the other sign keeps its own end. An axis that starts at 0 adds
1275
+ it itself. Under 0.5 reads as 0.5, where the ends meet rather than cross.
1276
+ `scales.y.domainQuantile` and a colour's `domainQuantile` both name it.
1277
+ `[Infinity, -Infinity]` where nothing is finite.
1278
+
1279
+ ```js
1280
+ // type signature
1281
+ (values: ArrayLike<number>, count: number, quantile?: number) => [number, number]
1282
+ ```
1283
+
1284
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/quantileExtent.ts)
1285
+
1286
+ ### quantileOf
1287
+
1288
+ The nearest-rank `quantile` of `a[0, n)`: the smallest value at least that share
1289
+ of them sit at or below, so a handful of values clips at their maximum. Permutes
1290
+ `a`; 0 where `n` is.
1291
+
1292
+ ```js
1293
+ // type signature
1294
+ (a: Float32Array<ArrayBufferLike>, n: number, quantile: number) => number
1295
+ ```
1296
+
1297
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/quantileExtent.ts)
1298
+
1299
+ ### RampDeclaration
1300
+
1301
+ A continuous colour scale's ramp as a config declares it.
1302
+
1303
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
1304
+
1305
+ ### rampDomain
1306
+
1307
+ The domain a continuous colour scale spans: each end `min` or `max` pins, else
1308
+ the extent's, ascending, since a span has no direction and `reverse` is the
1309
+ ramp's. An open end stops at a pinned one rather than crossing it, and an extent
1310
+ holding no value (`[Infinity, -Infinity]`) spans [0, 1].
1311
+
1312
+ ```js
1313
+ // type signature
1314
+ (min: number | undefined, max: number | undefined, extent: readonly [number, number]) => [number, number]
1315
+ ```
1316
+
1317
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
1318
+
1319
+ ### rampGapScales
1320
+
1321
+ The rows a ramp's key lists beside its bar once a feature painted one: the
1322
+ not-a-number and no-value rows a threshold's key ends with. Empty while neither
1323
+ painted.
1324
+
1325
+ ```js
1326
+ // type signature
1327
+ (id: string, met: { missing?: boolean | undefined; notNumber?: boolean | undefined; }) => CategoricalScale[]
1328
+ ```
1329
+
1330
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1331
+
1332
+ ### rampLutOf
1333
+
1334
+ The buildColorRampLut table a ramp declaration asks for, the same `Uint8Array`
1335
+ for the same declaration, since a GPU backend re-uploads its ramp texture when
1336
+ the identity changes and a render state is rebuilt far more often than its ramp.
1337
+
1338
+ ```js
1339
+ // type signature
1340
+ (ramp: RampDeclaration) => Uint8Array<ArrayBufferLike>
1341
+ ```
1342
+
1343
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
1344
+
1345
+ ### rampOverExtent
1346
+
1347
+ A ramp table over `extent`, the union a display took across the regions it
1348
+ loaded: each open end of the domain moved to the union's, the pinned ends kept.
1349
+ The table stays straight and `domainMid` a value, so the middle stop follows the
1350
+ widened domain with no table baked again.
1351
+
1352
+ ```js
1353
+ // type signature
1354
+ (table: {…}, extent: [...]) => { ...; }
1355
+ ```
1356
+
1357
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
1358
+
1359
+ ### readConfObject
1360
+
1361
+ Given a configuration model (an instance of a ConfigurationSchema), read the
1362
+ configuration value at the given path. Use this when you hold the configuration
1363
+ model directly, e.g. an entry from `session.tracks`.
1364
+
1365
+ Wants a **live config node**, not a snapshot of one, and passing a snapshot is a
1366
+ type error. Slots are built with `types.stripDefault`, so a slot sitting at its
1367
+ default is absent from a snapshot — "unset" and "at its default" are
1368
+ indistinguishable there, and a read off one reports a default as missing.
1369
+
1370
+ That is enforced in the types only, deliberately: it can't be a runtime check.
1371
+ `generateHierarchy` reads slots straight off the **un-hydrated frozen** entries
1372
+ of `jbrowse.tracks` on purpose, because hydrating every track to answer the
1373
+ track selector is what `types.frozen` exists to avoid — and those reads are
1374
+ indistinguishable at runtime from the broken spelling.
1375
+
1376
+ ```js
1377
+ // type signature
1378
+ {…}
1379
+ ```
1380
+
1381
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/readConfObject.ts)
1382
+
1383
+ ### readerOf
1384
+
1385
+ A reader of a column's values by row, its kind resolved here once. A `number`
1386
+ lane with no index reads straight off the lane.
1387
+
1388
+ ```js
1389
+ // type signature
1390
+ (column: Column) => (i: number) => unknown
1391
+ ```
1392
+
1393
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1394
+
1395
+ ### READS_REFERENCE
1396
+
1397
+ The `adapterCapabilities` entry of an adapter that reads the reference sequence
1398
+ of the assembly it is displayed against: BAM and SAM for mismatches without an
1399
+ MD tag, CRAM to rebuild bases, GC content and the reference scans for everything
1400
+ they answer. Such an adapter is built with that reference and keyed on it as
1401
+ well as on its config, so one config shown on two genomes is two instances, each
1402
+ reading its own, and an instance never changes reference for its life. Every
1403
+ other adapter keys on its config alone: a synteny adapter is fetched from each
1404
+ of its assemblies and reads no reference.
1405
+
1406
+ ```js
1407
+ // type signature
1408
+ 'readsReference'
1409
+ ```
1410
+
1411
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/data_adapters/dataAdapterCache.ts)
1412
+
1413
+ ### relight
1414
+
1415
+ Move a color's OKLCH lightness by `lightnessShift` and scale its chroma, holding
1416
+ its hue.
1417
+
1418
+ For extending a categorical palette past its length. Cycling a nine-color list
1419
+ over a 24-chromosome karyotype repeats the color outright; cycling it with a
1420
+ lightness shift per lap gives the hue back as a variant still told apart from
1421
+ the original — tab20's construction, which pairs a light and a dark of each hue.
1422
+
1423
+ SHIFT rather than a fixed lightness, and SCALE rather than a fixed chroma,
1424
+ because a categorical palette is uneven on purpose: category10's brown and its
1425
+ red are 5 degrees apart in hue and are told apart by chroma alone, so
1426
+ re-lighting both to one (lightness, chroma) makes them the same color. Keeping
1427
+ each color's own relative chroma keeps brown reading as brown.
1428
+
1429
+ In OKLCH rather than through `lighten`/`darken`, which work in sRGB, where the
1430
+ same coefficient moves a yellow and a blue by visibly different amounts: a lap
1431
+ has to read as one tone across the whole palette or it reads as noise.
1432
+
1433
+ ```js
1434
+ // type signature
1435
+ (color: string, lightnessShift: number, chromaScale?: number) => string
1436
+ ```
1437
+
1438
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/color/index.ts)
1439
+
1440
+ ### requirementProblems
1441
+
1442
+ The `requires` entries of a configuration schema that `snapshot` does not meet,
1443
+ as a config file or `getSnapshot` spells it: a slot left off reads as its
1444
+ default, so a `when` value that is the default fires for an absent slot, which
1445
+ is what the generated JSON Schema's `if` does.
1446
+
1447
+ ```js
1448
+ // type signature
1449
+ (type: IAnyType, snapshot: Record<string, unknown>) => RequirementProblem[]
1450
+ ```
1451
+
1452
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/requirements.ts)
1453
+
1454
+ ### reservedPx
1455
+
1456
+ The pixels a band takes from the plot below it: 0 when off, the (optionally
1457
+ bound) stated height when on. This is the single spelling of "off spends 0 px".
1458
+
1459
+ ```js
1460
+ // type signature
1461
+ (band: Band) => number
1462
+ ```
1463
+
1464
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/bandLayout.ts)
1465
+
1466
+ ### RowSourceLister
1467
+
1468
+ An adapter that lists its rows without reading a region: a multi-BigWig its
1469
+ files, a MAF its species.
1470
+
1471
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/data_adapters/BaseAdapter/rowSources.ts)
1472
+
1473
+ ### RowSourceListing
1474
+
1475
+ Every row an adapter has, in its own order, whatever the loaded regions hold, so
1476
+ a row display gives a row with nothing in view its place, label and colour.
1477
+
1478
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/data_adapters/BaseAdapter/rowSources.ts)
1479
+
1480
+ ### runLazyAfterAttach
1481
+
1482
+ Run a display's `afterAttach` body from a module loaded on demand, so the
1483
+ autorun installers stay out of the display's eager bundle.
1484
+
1485
+ One policy for the gap the `await` opens: a node torn down before the module
1486
+ lands installs nothing, and a module that fails to load is reported where the
1487
+ user can see it rather than onto the display's own error slot — that slot is
1488
+ what `reload()` clears, and nothing would re-run the install behind it. Three
1489
+ displays hand-rolled this IIFE and each drew the lines differently.
1490
+
1491
+ ```js
1492
+ // type signature
1493
+ <Self extends IStateTreeNode>(self: Self, load: () => Promise<(self: Self) => void>) => void
1494
+ ```
1495
+
1496
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/lazyAfterAttach.ts)
1497
+
1498
+ ### runTransforms
1499
+
1500
+ Run the transform steps over a feature list or a table, in order, in the worker.
1501
+ The table a step answers is what the next one reads, and the last one is what
1502
+ the encoder walks.
1503
+
1504
+ ```js
1505
+ // type signature
1506
+ (input: readonly Feature[] | FeatureTable, steps: readonly TransformStep[], jexl?: JexlInstance | undefined) => FeatureTable
1507
+ ```
1508
+
1509
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTransforms.ts)
1510
+
1511
+ ### safeParseBreakend
1512
+
1513
+ parseBreakend, honoring its `Breakend | undefined` signature. ALT strings are
1514
+ user data and malformed breakends do occur;
1515
+
1516
+ ```js
1517
+ // type signature
1518
+ (alt: string) => Breakend | undefined
1519
+ ```
1520
+
1521
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1522
+
1523
+ ### sampleColorRamp
1524
+
1525
+ The color at `t` in `[0, 1]` across a list of EVENLY SPACED stops, linearly
1526
+ interpolated per channel. `t` is clamped, so the ends are the end stops rather
1527
+ than an extrapolation past them, and a one-stop ramp is that stop everywhere.
1528
+
1529
+ ```js
1530
+ // type signature
1531
+ (stops: readonly ColorRampStop[], t: number) => ColorRampStop
1532
+ ```
1533
+
1534
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
1535
+
1536
+ ### scaleBandHeights
1537
+
1538
+ Heights after growing or shrinking a stack of bands by `distance` px in all: the
1539
+ one rule every whole-stack resize uses. Each band takes its share of the height
1540
+ it has above `floor`, so the tall bands give and take the most, and none goes
1541
+ below `floor`, or below its own height if it already sits under it (the
1542
+ clampBandHeight rule). Whole pixels, rounded by largest remainder, so the stack
1543
+ moves by exactly the rounded distance.
1544
+
1545
+ ```js
1546
+ // type signature
1547
+ (heights: number[], distance: number, floor?: number) => number[]
1548
+ ```
1549
+
1550
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/bandHeight.ts)
1551
+
1552
+ ### scaleExtent
1553
+
1554
+ quantileExtent as a scale's open ends read it: over every finite value on a
1555
+ linear scale, and on a log scale over the positive ones, since a 0 or a negative
1556
+ met there would floor the domain at 1 and fold a domain below 1 flat.
1557
+ `[Infinity, -Infinity]` where the scale reads nothing.
1558
+
1559
+ ```js
1560
+ // type signature
1561
+ (values: ArrayLike<number>, count: number, scale: string, quantile?: number) => [number, number]
1562
+ ```
1563
+
1564
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/quantileExtent.ts)
1565
+
1566
+ ### ScaleTable
1567
+
1568
+ The table behind a channel a key is drawn from: a colour's, whose `kind` names
1569
+ the scale it resolved through, or a shape's. A `size` channel's (SizeScaleTable)
1570
+ draws no key and stands outside.
1571
+
1572
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1573
+
1574
+ ### selectEncodedFeature
1575
+
1576
+ Open the feature widget on the feature behind one instance of a
1577
+ `CoreGetEncodedLayers` answer. A display holds channels, not records, so it
1578
+ sends `CoreGetEncodedFeature` the request the instance's region came back under,
1579
+ and the worker answers the entry of `layer`'s list that the instance's
1580
+ `featureIndex` names: the record as the adapter wrote it, or the bin or run the
1581
+ steps made. A second click aborts the first.
1582
+
1583
+ ```js
1584
+ // type signature
1585
+ (self: IStateTreeNode<IAnyType>, rotation: { begin(): ActiveFetch; cancel: () => void; dispose(): void; }, args: Omit<CoreGetEncodedLayersArgs, "byteLimit"> & { ...; }) => void
1586
+ ```
1587
+
1588
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/selectEncodedFeature.ts)
1589
+
1590
+ ### selectNth
1591
+
1592
+ The `k`th smallest of `a[0, n)`, permuting `a` in place. Exact, where a
1593
+ histogram collapses skewed contact counts into its bottom bucket, and O(n) where
1594
+ a sort of 4.5M counts measured ~1s. Median-of-three because Hi-C contacts arrive
1595
+ nearly sorted.
1596
+
1597
+ ```js
1598
+ // type signature
1599
+ (a: Float32Array<ArrayBufferLike>, n: number, k: number) => number
1600
+ ```
1601
+
1602
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/quantileExtent.ts)
1603
+
1604
+ ### selectRows
1605
+
1606
+ The table's rows `rows` names, in that order: over an adapter's features, a
1607
+ source table over those features again, so every field still reads straight off
1608
+ them; over rows a step made, a table standing on them.
1609
+
1610
+ ```js
1611
+ // type signature
1612
+ (table: FeatureTable, rows: Uint32Array<ArrayBufferLike>) => FeatureTable
1613
+ ```
1614
+
1615
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1616
+
1617
+ ### SessionPaletteProvider
1618
+
1619
+ Make JBrowse follow the host's light/dark state — the whole of it, in one mount:
1620
+
1621
+ ```tsx
1622
+ <SessionPaletteProvider session={session} mode={myAppIsDark ? 'dark' : 'light'}>
1623
+ {tracks}
1624
+ </SessionPaletteProvider>
1625
+ ```
1626
+
1627
+ `mode` is optional. Left out, JBrowse follows the page's declared `color-scheme`
1628
+ — so a host whose dark-mode toggle sets it, as most do, mounts this with a
1629
+ session and nothing else — and the OS preference where the page declares none.
1630
+
1631
+ A component rather than a documented pair of calls because the pair has a half
1632
+ that can be left out with nothing to show for it. `PaletteProvider` is the name
1633
+ a host reaches for, and it colors the React side alone; the session write is
1634
+ what reaches the RPC worker, which bakes feature labels into the rendered image.
1635
+ So a host that mounts only the provider gets light-mode labels on a dark page,
1636
+ from a canvas whose every other pixel is right, and nothing errors. See
1637
+ useSessionPalette for the mechanism.
1638
+
1639
+ The session is the only thing that resolves a palette here, so a host supplying
1640
+ colors of its own mounts `PaletteProvider` directly instead.
1641
+
1642
+ ```js
1643
+ // type signature
1644
+ ({ session, mode, children, }: { session: ThemeModeSession; mode?: "dark" | "light" | undefined; children: ReactNode; }) => Element
1645
+ ```
1646
+
1647
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/ui/PaletteContext.tsx)
1648
+
1649
+ ### setConf
1650
+
1651
+ Write counterpart to `getConf`, and it takes the same path: a slot name, or an
1652
+ array naming a sub-schema's member at any depth —
1653
+ `setConf(self, ['scales', 'y', 'domainMin'], 5)`. Takes the display or track
1654
+ model, or a config node directly.
1655
+
1656
+ **The path length says what the write replaces.** A path ending on a slot writes
1657
+ that slot and leaves the object around it alone; a path ending on a sub-schema
1658
+ replaces the whole object, which is how a channel whose members move together —
1659
+ a facet's field and the domain that field's values order — gets written without
1660
+ a stale member surviving underneath.
1661
+
1662
+ **Prefer this over a bare `self.configuration.setSlot('x', v)`.** The constraint
1663
+ here mirrors `getConf`'s, so on a model with a concrete schema an unknown slot
1664
+ name is a compile error. `setSlot` itself stays untyped on purpose — the config
1665
+ editor's slot facade routes dynamic slot names through it
1666
+ (`configurationSchema.ts`) — and guards the name at runtime instead (ADR-052),
1667
+ so a misspelled write is diagnosed one way or the other.
1668
+
1669
+ **The read is the half with no diagnostic at all.** `getConf` for a name the
1670
+ schema doesn't declare returns `undefined` and reports nothing, at any layer, so
1671
+ the slot keeps reading as its default forever. Which makes the compile-time
1672
+ constraint worth keeping _reachable_: it is only as good as the schema of the
1673
+ holder handed in, and a holder widened to `AnyConfigurationModel` switches it
1674
+ off entirely — the trap a mixin casting to reach its host walks into. Every such
1675
+ cast names a concrete schema instead (`ConfigModelForFields`, or the base schema
1676
+ when the slot is the base's), and `HostChecksSlotNames` pins each one.
1677
+
1678
+ A wrong _value_ type still throws at runtime (MST type-checks the assignment)
1679
+ rather than at compile time. `value` is deliberately `unknown` because
1680
+ `undefined` is a legitimate write — it resets a slot to its schema default — and
1681
+ the declared slot value type doesn't include it.
1682
+
1683
+ ```js
1684
+ // type signature
1685
+ <…>(target: CONFMODEL | { ...; }, slotPath: SLOT, value: unknown) => void
1686
+ ```
1687
+
1688
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/configuration/getConf.ts)
1689
+
1690
+ ### SHAPE_CODES
1691
+
1692
+ The `point` mark's painter code for each shape an encoding can name.
1693
+
1694
+ ```js
1695
+ // type signature
1696
+ Record<ShapeName, number>
1697
+ ```
1698
+
1699
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/shapeNames.ts)
1700
+
1701
+ ### ShapeEncoding
1702
+
1703
+ A ShapeName, a `jexl:` expression over `feature` returning one, or a field bound
1704
+ to a categorical scale whose `range` lists the shape names handed out — the
1705
+ three shapes, in order, when absent.
1706
+
1707
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1708
+
1709
+ ### ShapeScaleTable
1710
+
1711
+ The scale a shape channel was resolved through: which shape each value of the
1712
+ field took.
1713
+
1714
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1715
+
1716
+ ### SizeEncoding
1717
+
1718
+ How a mark's `size` channel resolves: a number is a constant width in CSS px for
1719
+ every instance, a field name is `{ field }` with the defaults, and the object
1720
+ binds the field to a scale.
1721
+
1722
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1723
+
1724
+ ### SizeRef
1725
+
1726
+ A numeric field read through a linear or log scale into a width in CSS px:
1727
+ `range` is the px at each end of the domain (1 to 6 unset), and each end of the
1728
+ domain is pinned by `domainMin` or `domainMax` or follows the loaded regions'
1729
+ extremes where unset, as a colour ramp's does. A feature holding no number takes
1730
+ the range's first px.
1731
+
1732
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1733
+
1734
+ ### SizeScaleTable
1735
+
1736
+ The scale a size channel is read through: the `size` lane holds the raw values
1737
+ and the shape maps them to px through this, so a display unions `extent` over
1738
+ its loaded regions into the open ends of `domain` and every region strokes the
1739
+ same value at the same width.
1740
+
1741
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1742
+
1743
+ ### stackBands
1744
+
1745
+ Fold an ordered set of bands into tops and a bottom. The order is the argument,
1746
+ so a display states its band order exactly once. Reserve, paint and pick all
1747
+ call this function, so the reserved and painted positions cannot disagree.
1748
+
1749
+ Only the fold is shared; the rest stays in each display. Per-lane iteration runs
1750
+ this once per lane, sticky-vs-scrolling is a property of how the result is
1751
+ projected to the screen, and a band drawn outside its reservation (an overlay)
1752
+ carries its own draw rect beside the stack.
1753
+
1754
+ ```js
1755
+ // type signature
1756
+ <K extends string>(order: readonly K[], bands: Record<K, Band>) => BandStack<K>
1757
+ ```
1758
+
1759
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/bandLayout.ts)
1760
+
1761
+ ### stopsFromRampLut
1762
+
1763
+ `n` evenly spaced legend stops read straight out of a buildColorRampLut byte
1764
+ table — the same 256×1 RGBA array `uploadColorRampLut` hands the GPU and the
1765
+ Canvas2D fillStyle LUTs index — as the stops of a `RampScale`. It holds one
1766
+ claim by construction: the swatch at bar fraction `t` is byte-identical to the
1767
+ ramp entry both backends read at `t`, through the ramp's middle stop at
1768
+ `midNorm` (`rampMidT`). Alpha rides `opacity` (the juicebox fade), never baked
1769
+ into the color string.
1770
+
1771
+ ```js
1772
+ // type signature
1773
+ (lut: Uint8Array<ArrayBufferLike>, n: number, midNorm?: number) => RampStop[]
1774
+ ```
1775
+
1776
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
1777
+
1778
+ ### STRAND_FIELD
1779
+
1780
+ ```js
1781
+ // type signature
1782
+ 'strand'
1783
+ ```
1784
+
1785
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/categoricalField.ts)
1786
+
1787
+ ### SV_MIN_LENGTH
1788
+
1789
+ The conventional size floor for calling a sequence indel structural.
1790
+
1791
+ ```js
1792
+ // type signature
1793
+ 50
1794
+ ```
1795
+
1796
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1797
+
1798
+ ### SV_TYPE_FIELD
1799
+
1800
+ The structural-variant class `svClassOf` names. A VCF record and a BEDPE row
1801
+ carry it, and the mark display's `mate` step writes it per allele.
1802
+
1803
+ ```js
1804
+ // type signature
1805
+ 'svType'
1806
+ ```
1807
+
1808
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/categoricalField.ts)
1809
+
1810
+ ### svClassOf
1811
+
1812
+ The structural-variant class of a VCF record as a whole: the one class its
1813
+ alleles state, CNV where they are losses and gains of one segment, OTHER where
1814
+ they otherwise disagree, and `''` for a record with no structural allele.
1815
+
1816
+ ```js
1817
+ // type signature
1818
+ (feature: Feature) => string
1819
+ ```
1820
+
1821
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1822
+
1823
+ ### svClassOfAlt
1824
+
1825
+ The structural-variant class one ALT allele states, `''` for one that is not
1826
+ structural. A symbolic allele's own id wins. Otherwise VCF 4.4's `EVENTTYPE`
1827
+ does; then a breakend is the class its `SVTYPE` declares where that says more
1828
+ than BND, and a sequence allele is an insertion or deletion by its length
1829
+ against REF, else its `SVTYPE`'s class.
1830
+
1831
+ ```js
1832
+ // type signature
1833
+ (alt: string, { ref, info, alleleIndex, }?: { ref?: string | undefined; info?: Record<string, unknown> | undefined; alleleIndex?: number | undefined; }) => string
1834
+ ```
1835
+
1836
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1837
+
1838
+ ### svClassOfToken
1839
+
1840
+ The class a symbolic allele id, `SVTYPE` or `EVENTTYPE` names. A subtype folds
1841
+ into its first level (`DEL:ME:ALU` is DEL, `DUP:TANDEM` DUP), except the tandem
1842
+ repeats VCF 4.4 spells `CNV:TR` and ExpansionHunter `STRn`, and the inverted
1843
+ duplication `INV:DUP`. 1000 Genomes' `CNn` counts one haplotype's copies, so
1844
+ none is a deletion and two or more a duplication. `''` for an empty or missing
1845
+ token.
1846
+
1847
+ ```js
1848
+ // type signature
1849
+ (raw: string) => string
1850
+ ```
1851
+
1852
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/svAlt.ts)
1853
+
1854
+ ### TextColumn
1855
+
1856
+ Text held as bytes, one per character: row `i`'s is `length[i]` bytes of `bytes`
1857
+ from `offset[i]`, so many rows share one buffer, as an adapter's arena holds
1858
+ them.
1859
+
1860
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1861
+
1862
+ ### thresholdCuts
1863
+
1864
+ A threshold scale's cut points as thresholdIndex walks them: the numbers the
1865
+ domain names, ascending. Cuts written high to low, as p-value thresholds often
1866
+ are, left the middle interval unreachable, the walk stopping at the first cut a
1867
+ value is under.
1868
+
1869
+ ```js
1870
+ // type signature
1871
+ (domain: readonly (string | number)[]) => number[]
1872
+ ```
1873
+
1874
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1875
+
1876
+ ### thresholdField
1877
+
1878
+ A threshold scale read the way every categorical channel reads its field: a
1879
+ value files under the label of the bin it falls in, a feature with no value
1880
+ under `''`, and text that is no number under NOT_A_NUMBER_LABEL. The bins are
1881
+ the whole domain, so a key lists each one. `labels` names the bins in a key, one
1882
+ each from the lowest, where a config spells them for a reader; a bin's key stays
1883
+ its interval.
1884
+
1885
+ ```js
1886
+ // type signature
1887
+ (field: string, {…}?: { domain?: readonly string[] | undefined; range?: readonly string[] | undefined; labels?: readonly string[] | undefined; }) => CategoricalField
1888
+ ```
1889
+
1890
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1891
+
1892
+ ### thresholdIndex
1893
+
1894
+ The bin a value falls in: how many of the ascending cut points it is at or past,
1895
+ so a palette with one more entry than the domain paints it as
1896
+ `palette[thresholdIndex(value, domain)]`. A value that is not a number is in no
1897
+ bin and answers -1; an infinite one takes the end bin on its side, as d3's
1898
+ threshold scale places it, so a `-log10` of a zero p-value lands in the top bin.
1899
+
1900
+ ```js
1901
+ // type signature
1902
+ (value: unknown, domain: readonly number[]) => number
1903
+ ```
1904
+
1905
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1906
+
1907
+ ### thresholdKeyEntries
1908
+
1909
+ A threshold key's rows: every interval, painted or not, since the bins are the
1910
+ whole domain, then the not-a-number and no-value rows where a feature took one,
1911
+ in the order `thresholdField` sorts them.
1912
+
1913
+ ```js
1914
+ // type signature
1915
+ (cuts: readonly number[], range: readonly string[] | undefined, met: {…}, names?: readonly string[]) => {…}[]
1916
+ ```
1917
+
1918
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1919
+
1920
+ ### thresholdLabels
1921
+
1922
+ What a threshold scale's bins are called in a key, one label per palette entry:
1923
+ `< a` below the first cut, `a – b` between two, `≥ b` past the last.
1924
+
1925
+ ```js
1926
+ // type signature
1927
+ (domain: readonly number[]) => string[]
1928
+ ```
1929
+
1930
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1931
+
1932
+ ### thresholdPalette
1933
+
1934
+ The colour of each interval, in order: the declared palette, and the default
1935
+ categorical palette where it runs out.
1936
+
1937
+ ```js
1938
+ // type signature
1939
+ (bins: number, palette?: readonly string[]) => string[]
1940
+ ```
1941
+
1942
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/thresholdScale.ts)
1943
+
1944
+ ### ThresholdRef
1945
+
1946
+ A numeric field cut into intervals: `domain` is the ascending cut points and
1947
+ `range` holds one colour more, so a value paints the entry for the number of cut
1948
+ points it is at or past. A value that is not a number belongs to no interval.
1949
+
1950
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1951
+
1952
+ ### TransformStep
1953
+
1954
+ One step over the features before a layer is encoded, named by `type` the way
1955
+ GenomeSpy spells a transform; every step runs in order and the next reads what
1956
+ the last answered.
1957
+
1958
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncodingTypes.ts)
1959
+
1960
+ ### valueAt
1961
+
1962
+ A column's value at a row, whatever its kind: for a loop that reads few rows.
1963
+
1964
+ ```js
1965
+ // type signature
1966
+ (column: Column, i: number) => unknown
1967
+ ```
1968
+
1969
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1970
+
1971
+ ### VIRIDIS_STOPS
1972
+
1973
+ The 256 viridis stops, fully opaque. Feed them to buildColorRampLut for the
1974
+ texture/fillStyle form, or to sampleColorRamp for legend stops.
1975
+
1976
+ ```js
1977
+ // type signature
1978
+ readonly ColorRampStop[]
1979
+ ```
1980
+
1981
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/colorRamp.ts)
1982
+
1983
+ ### withColumns
1984
+
1985
+ The table's rows with `written` beside them, in the order `rows` names where it
1986
+ names one.
1987
+
1988
+ ```js
1989
+ // type signature
1990
+ (table: FeatureTable, written: ReadonlyMap<string, Column>, rows?: Uint32Array<ArrayBufferLike> | undefined) => FeatureTable
1991
+ ```
1992
+
1993
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/featureTable.ts)
1994
+
1995
+ ### withHitIndex
1996
+
1997
+ HitIndexed over what the worker shipped.
1998
+
1999
+ ```js
2000
+ // type signature
2001
+ <T extends EncodedChannels>(channels: T) => HitIndexed<T>
2002
+ ```
2003
+
2004
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/util/markEncoding.ts)
2005
+
2006
+ ### ZoomRange
2007
+
2008
+ The bp/px interval, `[minBpPerPx, maxBpPerPx)`, over which an adapter with zoom
2009
+ levels answers a fetch from the same level it answered `opts.bpPerPx` from. A
2010
+ display holding the answer refetches when the view leaves it.
2011
+
2012
+ [Source code](https://github.com/GMOD/jbrowse-components/blob/main/packages/core/src/data_adapters/BaseAdapter/zoomRange.ts)
2013
+
2014
+ <!-- API_DOCS_END -->