@jbrowse/core 5.0.0-beta.1 → 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 (611) hide show
  1. package/README.md +1476 -265
  2. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
  3. package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
  4. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
  5. package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
  6. package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
  7. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
  8. package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +16 -9
  9. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
  10. package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
  11. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
  12. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
  13. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
  14. package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
  15. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
  16. package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
  17. package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
  18. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
  19. package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
  20. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
  21. package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
  22. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
  23. package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
  24. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
  25. package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +50 -0
  26. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
  27. package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
  28. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
  29. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
  30. package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
  31. package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
  32. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
  33. package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
  34. package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
  35. package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
  36. package/esm/BaseFeatureWidget/formatDetails.js +62 -83
  37. package/esm/BaseFeatureWidget/index.d.ts +2 -1
  38. package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
  39. package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
  40. package/esm/BaseFeatureWidget/types.d.ts +12 -6
  41. package/esm/BaseFeatureWidget/util.d.ts +0 -10
  42. package/esm/BaseFeatureWidget/util.js +0 -17
  43. package/esm/CorePlugin.js +2 -2
  44. package/esm/PluginLoader.d.ts +24 -13
  45. package/esm/PluginLoader.js +167 -51
  46. package/esm/PluginManager.d.ts +130 -24
  47. package/esm/PluginManager.js +180 -32
  48. package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
  49. package/esm/ReExports/MuiDataGridReExports.js +2 -2
  50. package/esm/ReExports/coreModules.generated.d.ts +2 -0
  51. package/esm/ReExports/coreModules.generated.js +528 -0
  52. package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
  53. package/esm/ReExports/coreWorkerModules.generated.js +488 -0
  54. package/esm/ReExports/frameworkModules.d.ts +2 -0
  55. package/esm/ReExports/frameworkModules.js +68 -0
  56. package/esm/ReExports/frameworkShared.d.ts +12 -0
  57. package/esm/ReExports/frameworkShared.js +16 -0
  58. package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
  59. package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
  60. package/esm/ReExports/list.js +527 -79
  61. package/esm/ReExports/modules.d.ts +1 -1
  62. package/esm/ReExports/modules.js +10 -165
  63. package/esm/ReExports/registry.d.ts +1 -0
  64. package/esm/ReExports/registry.js +23 -5
  65. package/esm/ReExports/uiStub.d.ts +3 -0
  66. package/esm/ReExports/uiStub.js +33 -0
  67. package/esm/ReExports/workerModules.d.ts +2 -0
  68. package/esm/ReExports/workerModules.js +11 -0
  69. package/esm/TextSearch/TextSearchManager.d.ts +27 -13
  70. package/esm/TextSearch/TextSearchManager.js +77 -36
  71. package/esm/TextSearch/places.d.ts +12 -0
  72. package/esm/TextSearch/places.js +94 -0
  73. package/esm/assemblyManager/assembly.d.ts +21 -19
  74. package/esm/assemblyManager/assembly.js +28 -26
  75. package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
  76. package/esm/assemblyManager/assemblyAdapters.js +8 -2
  77. package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
  78. package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
  79. package/esm/assemblyManager/assemblyManager.d.ts +35 -180
  80. package/esm/assemblyManager/assemblyManager.js +47 -51
  81. package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
  82. package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
  83. package/esm/assemblyManager/geneticCodes.js +2 -5
  84. package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
  85. package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
  86. package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
  87. package/esm/assemblyManager/indexAssemblyNames.js +22 -0
  88. package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
  89. package/esm/assemblyManager/loadRefNameMap.js +4 -9
  90. package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
  91. package/esm/assemblyManager/refNameMapKey.js +12 -0
  92. package/esm/checkPlugins.d.ts +2 -0
  93. package/esm/checkPlugins.js +38 -17
  94. package/esm/configuration/bamIndexFields.d.ts +49 -0
  95. package/esm/configuration/bamIndexFields.js +41 -0
  96. package/esm/configuration/configurationSchema.d.ts +101 -71
  97. package/esm/configuration/configurationSchema.js +207 -134
  98. package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
  99. package/esm/configuration/configurationSchemaUnion.js +56 -0
  100. package/esm/configuration/configurationSlot.d.ts +150 -60
  101. package/esm/configuration/configurationSlot.js +103 -75
  102. package/esm/configuration/fillLocations.d.ts +14 -0
  103. package/esm/configuration/fillLocations.js +14 -0
  104. package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
  105. package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
  106. package/esm/configuration/formatDetailsConfigSchema.js +10 -13
  107. package/esm/configuration/fullConfSnapshot.d.ts +4 -19
  108. package/esm/configuration/fullConfSnapshot.js +30 -52
  109. package/esm/configuration/getConf.d.ts +45 -41
  110. package/esm/configuration/getConf.js +111 -44
  111. package/esm/configuration/index.d.ts +24 -11
  112. package/esm/configuration/index.js +15 -7
  113. package/esm/configuration/indexType.d.ts +26 -0
  114. package/esm/configuration/indexType.js +38 -0
  115. package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
  116. package/esm/configuration/mergeFormatCallbacks.js +13 -10
  117. package/esm/configuration/readConfObject.d.ts +2 -24
  118. package/esm/configuration/readConfObject.js +20 -63
  119. package/esm/configuration/requirements.d.ts +37 -0
  120. package/esm/configuration/requirements.js +88 -0
  121. package/esm/configuration/schemaRegistry.d.ts +32 -15
  122. package/esm/configuration/schemaRegistry.js +33 -35
  123. package/esm/configuration/schemaTypes.d.ts +21 -5
  124. package/esm/configuration/schemaTypes.js +66 -55
  125. package/esm/configuration/slotFacade.d.ts +12 -29
  126. package/esm/configuration/slotFacade.js +44 -23
  127. package/esm/configuration/snapshotPreprocess.d.ts +43 -0
  128. package/esm/configuration/snapshotPreprocess.js +161 -0
  129. package/esm/configuration/tabixIndexFields.d.ts +30 -4
  130. package/esm/configuration/tabixIndexFields.js +21 -4
  131. package/esm/configuration/tabixShorthand.d.ts +34 -17
  132. package/esm/configuration/tabixShorthand.js +49 -22
  133. package/esm/configuration/types.d.ts +182 -43
  134. package/esm/configuration/uriShorthand.d.ts +9 -0
  135. package/esm/configuration/uriShorthand.js +16 -0
  136. package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
  137. package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
  138. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
  139. package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
  140. package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
  141. package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
  142. package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
  143. package/esm/data_adapters/BaseAdapter/index.js +1 -0
  144. package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
  145. package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
  146. package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
  147. package/esm/data_adapters/BaseAdapter/stats.js +52 -13
  148. package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
  149. package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
  150. package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
  151. package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
  152. package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
  153. package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
  154. package/esm/data_adapters/dataAdapterCache.js +44 -10
  155. package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
  156. package/esm/data_adapters/getFeatureAdapter.js +8 -8
  157. package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
  158. package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
  159. package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
  160. package/esm/pluggableElementTypes/AdapterType.js +1 -1
  161. package/esm/pluggableElementTypes/DisplayType.d.ts +46 -16
  162. package/esm/pluggableElementTypes/DisplayType.js +22 -12
  163. package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
  164. package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
  165. package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
  166. package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
  167. package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
  168. package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
  169. package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
  170. package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
  171. package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
  172. package/esm/pluggableElementTypes/ViewType.js +32 -4
  173. package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
  174. package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
  175. package/esm/pluggableElementTypes/extendElementType.js +9 -5
  176. package/esm/pluggableElementTypes/index.d.ts +2 -1
  177. package/esm/pluggableElementTypes/index.js +1 -1
  178. package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
  179. package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +65 -27
  180. package/esm/pluggableElementTypes/models/BaseDisplayModel.js +72 -10
  181. package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
  182. package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
  183. package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +85 -16
  184. package/esm/pluggableElementTypes/models/BaseViewModel.js +53 -10
  185. package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
  186. package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
  187. package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
  188. package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
  189. package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
  190. package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
  191. package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
  192. package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
  193. package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
  194. package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
  195. package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
  196. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
  197. package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
  198. package/esm/pluggableElementTypes/models/index.d.ts +2 -3
  199. package/esm/pluggableElementTypes/models/index.js +2 -3
  200. package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
  201. package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
  202. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
  203. package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
  204. package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
  205. package/esm/pluginDefinitions.d.ts +34 -7
  206. package/esm/pluginDefinitions.js +54 -20
  207. package/esm/rpc/BaseRpcDriver.d.ts +2 -2
  208. package/esm/rpc/BaseRpcDriver.js +25 -30
  209. package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
  210. package/esm/rpc/MainThreadRpcDriver.js +13 -8
  211. package/esm/rpc/RpcClient.d.ts +18 -6
  212. package/esm/rpc/RpcClient.js +51 -16
  213. package/esm/rpc/RpcManager.d.ts +14 -10
  214. package/esm/rpc/RpcManager.js +11 -1
  215. package/esm/rpc/RpcRegistry.d.ts +40 -7
  216. package/esm/rpc/RpcServer.d.ts +3 -1
  217. package/esm/rpc/RpcServer.js +19 -12
  218. package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
  219. package/esm/rpc/WebWorkerRpcDriver.js +64 -68
  220. package/esm/rpc/byteBudget.d.ts +20 -5
  221. package/esm/rpc/byteBudget.js +16 -5
  222. package/esm/rpc/configSchema.d.ts +7 -21
  223. package/esm/rpc/coreRpcMethods.d.ts +4 -0
  224. package/esm/rpc/coreRpcMethods.js +4 -0
  225. package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
  226. package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
  227. package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
  228. package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
  229. package/esm/rpc/methods/CoreGetExportData.js +3 -4
  230. package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
  231. package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
  232. package/esm/rpc/methods/CoreGetFeatures.js +3 -5
  233. package/esm/rpc/methods/CoreGetRefNames.js +2 -12
  234. package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
  235. package/esm/rpc/methods/CoreGetSequence.js +2 -2
  236. package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
  237. package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
  238. package/esm/rpc/methods/layerFeatures.d.ts +33 -0
  239. package/esm/rpc/methods/layerFeatures.js +29 -0
  240. package/esm/svg/SvgExport.js +6 -7
  241. package/esm/svg/SvgThemeProviders.d.ts +12 -0
  242. package/esm/svg/SvgThemeProviders.js +15 -0
  243. package/esm/svg/exportViewSvg.d.ts +28 -0
  244. package/esm/svg/exportViewSvg.js +13 -0
  245. package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
  246. package/esm/svg/normalizeSvgMarkup.js +99 -0
  247. package/esm/svg/serializeSvg.d.ts +7 -0
  248. package/esm/svg/serializeSvg.js +11 -0
  249. package/esm/svg/svgId.d.ts +1 -1
  250. package/esm/svg/svgId.js +1 -1
  251. package/esm/svg/svgReady.d.ts +9 -7
  252. package/esm/svg/svgReady.js +8 -7
  253. package/esm/svg/trackNames.d.ts +7 -5
  254. package/esm/svg/trackNames.js +12 -9
  255. package/esm/svg/wrapSvgExport.js +6 -74
  256. package/esm/ui/AddCustomPluginDialog.js +3 -8
  257. package/esm/ui/AppReadyMarker.d.ts +45 -0
  258. package/esm/ui/AppReadyMarker.js +89 -0
  259. package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
  260. package/esm/ui/CascadingMenu.js +181 -104
  261. package/esm/ui/DropDownMenu.js +2 -1
  262. package/esm/ui/ErrorBanner.js +1 -1
  263. package/esm/ui/ErrorBoundary.d.ts +2 -2
  264. package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
  265. package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
  266. package/esm/ui/ExportSvgDialog.d.ts +1 -1
  267. package/esm/ui/FileDropZone.js +2 -1
  268. package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
  269. package/esm/ui/HoverMenu.d.ts +1 -2
  270. package/esm/ui/HoverMenu.js +6 -3
  271. package/esm/ui/JexlFilterDialog.d.ts +13 -10
  272. package/esm/ui/JexlFilterDialog.js +122 -49
  273. package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
  274. package/esm/ui/JexlFilterRowEditors.js +90 -0
  275. package/esm/ui/LazyBaseTooltip.d.ts +4 -0
  276. package/esm/ui/LazyBaseTooltip.js +9 -0
  277. package/esm/ui/LegendSwatchGlyph.js +26 -21
  278. package/esm/ui/LoadingOverlay.d.ts +14 -0
  279. package/esm/ui/LoadingOverlay.js +4 -2
  280. package/esm/ui/MenuTypes.d.ts +23 -53
  281. package/esm/ui/MenuTypes.js +3 -0
  282. package/esm/ui/MonospaceTextField.d.ts +2 -1
  283. package/esm/ui/MonospaceTextField.js +23 -20
  284. package/esm/ui/PaletteContext.d.ts +10 -5
  285. package/esm/ui/PaletteContext.js +44 -6
  286. package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
  287. package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
  288. package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
  289. package/esm/ui/RefNameAutocomplete/index.js +8 -2
  290. package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
  291. package/esm/ui/RefNameAutocomplete/util.js +42 -1
  292. package/esm/ui/ResizeHandle.d.ts +3 -1
  293. package/esm/ui/ResizeHandle.js +44 -11
  294. package/esm/ui/ScrollChrome.d.ts +13 -0
  295. package/esm/ui/ScrollChrome.js +11 -0
  296. package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
  297. package/esm/ui/ScrollEdgeShadow.js +14 -35
  298. package/esm/ui/ScrollZoomToggle.d.ts +4 -27
  299. package/esm/ui/ScrollZoomToggle.js +34 -51
  300. package/esm/ui/SessionJsonPanel.d.ts +3 -0
  301. package/esm/ui/SessionJsonPanel.js +14 -0
  302. package/esm/ui/SettingsChangesTable.d.ts +1 -0
  303. package/esm/ui/SettingsChangesTable.js +49 -11
  304. package/esm/ui/ShareLinkField.d.ts +1 -3
  305. package/esm/ui/ShareLinkField.js +13 -40
  306. package/esm/ui/SizeSliderRow.d.ts +1 -3
  307. package/esm/ui/SizeSliderRow.js +4 -6
  308. package/esm/ui/SnackbarModel.js +79 -67
  309. package/esm/ui/StatusProgressBar.js +2 -2
  310. package/esm/ui/SvgColorLegend.d.ts +9 -4
  311. package/esm/ui/SvgColorLegend.js +82 -41
  312. package/esm/ui/VerticalScrollbar.d.ts +13 -34
  313. package/esm/ui/VerticalScrollbar.js +29 -83
  314. package/esm/ui/ViewLoadingScreen.d.ts +5 -4
  315. package/esm/ui/ViewLoadingScreen.js +8 -32
  316. package/esm/ui/colorScale.d.ts +92 -0
  317. package/esm/ui/colorScale.js +72 -0
  318. package/esm/ui/colors.d.ts +64 -0
  319. package/esm/ui/colors.js +230 -1
  320. package/esm/ui/hoverBoxStyle.d.ts +14 -2
  321. package/esm/ui/hoverBoxStyle.js +17 -2
  322. package/esm/ui/index.d.ts +12 -12
  323. package/esm/ui/index.js +14 -22
  324. package/esm/ui/launchViewMenu.js +15 -5
  325. package/esm/ui/legendMenuItem.d.ts +10 -32
  326. package/esm/ui/legendMenuItem.js +9 -36
  327. package/esm/ui/legendSpec.d.ts +15 -8
  328. package/esm/ui/legendSpec.js +14 -23
  329. package/esm/ui/makeSizeMenu.d.ts +0 -6
  330. package/esm/ui/makeSizeMenu.js +6 -30
  331. package/esm/ui/measureLegendText.js +1 -1
  332. package/esm/ui/menuItemAdornment.d.ts +9 -20
  333. package/esm/ui/menuItemAdornment.js +10 -32
  334. package/esm/ui/menuItems.d.ts +2 -7
  335. package/esm/ui/menuItems.js +1 -6
  336. package/esm/ui/multiTrackMenuItems.d.ts +6 -0
  337. package/esm/ui/palette.d.ts +118 -116
  338. package/esm/ui/palette.js +114 -75
  339. package/esm/ui/replaceViewAction.d.ts +1 -1
  340. package/esm/ui/replaceViewAction.js +1 -1
  341. package/esm/ui/theme.d.ts +43 -119
  342. package/esm/ui/theme.js +62 -78
  343. package/esm/ui/toggleMenuItems.d.ts +1 -3
  344. package/esm/ui/toggleMenuItems.js +6 -5
  345. package/esm/ui/useAssemblySelection.d.ts +4 -4
  346. package/esm/ui/viewHeaderHeight.d.ts +1 -0
  347. package/esm/ui/viewHeaderHeight.js +1 -0
  348. package/esm/util/Base1DUtils.d.ts +5 -3
  349. package/esm/util/Base1DUtils.js +14 -6
  350. package/esm/util/Base1DViewModel.d.ts +2 -1
  351. package/esm/util/Base1DViewModel.js +3 -2
  352. package/esm/util/SvgCanvas.d.ts +15 -13
  353. package/esm/util/SvgCanvas.js +76 -56
  354. package/esm/util/aborting.d.ts +39 -0
  355. package/esm/util/aborting.js +88 -6
  356. package/esm/util/adapterMetadata.d.ts +1 -1
  357. package/esm/util/adapterMetadata.js +6 -5
  358. package/esm/util/addAndShowTrack.d.ts +2 -5
  359. package/esm/util/addAndShowTrack.js +5 -1
  360. package/esm/util/addRelativeUris.d.ts +17 -5
  361. package/esm/util/addRelativeUris.js +46 -10
  362. package/esm/util/addTrackFromWidget.d.ts +2 -5
  363. package/esm/util/addTrackFromWidget.js +5 -4
  364. package/esm/util/aggregateFieldName.d.ts +10 -0
  365. package/esm/util/aggregateFieldName.js +8 -0
  366. package/esm/util/analytics.js +46 -13
  367. package/esm/util/animationAllowed.d.ts +9 -0
  368. package/esm/util/animationAllowed.js +13 -0
  369. package/esm/util/applyRowResizeWheel.d.ts +10 -5
  370. package/esm/util/applyRowResizeWheel.js +10 -21
  371. package/esm/util/bandHeight.d.ts +10 -0
  372. package/esm/util/bandHeight.js +29 -0
  373. package/esm/util/bandLayout.d.ts +4 -4
  374. package/esm/util/bandLayout.js +4 -4
  375. package/esm/util/bezierConnector.d.ts +4 -3
  376. package/esm/util/bezierConnector.js +38 -45
  377. package/esm/util/bgzfWorkerPool.d.ts +20 -74
  378. package/esm/util/bgzfWorkerPool.js +20 -74
  379. package/esm/util/binnedAggregate.d.ts +17 -0
  380. package/esm/util/binnedAggregate.js +275 -0
  381. package/esm/util/cacheBudgets.d.ts +22 -19
  382. package/esm/util/cacheBudgets.js +22 -19
  383. package/esm/util/cachedSetup.d.ts +1 -1
  384. package/esm/util/cachedSetup.js +2 -2
  385. package/esm/util/categoricalField.d.ts +56 -0
  386. package/esm/util/categoricalField.js +73 -0
  387. package/esm/util/clampToContig.d.ts +17 -0
  388. package/esm/util/clampToContig.js +19 -0
  389. package/esm/util/coarseStripHTML.js +1 -2
  390. package/esm/util/color/cssColorsLevel4.d.ts +1 -0
  391. package/esm/util/color/cssColorsLevel4.js +1 -0
  392. package/esm/util/color/index.d.ts +5 -3
  393. package/esm/util/color/index.js +7 -4
  394. package/esm/util/colorBits.d.ts +3 -3
  395. package/esm/util/colorBits.js +19 -44
  396. package/esm/util/colorRamp.d.ts +49 -5
  397. package/esm/util/colorRamp.js +169 -18
  398. package/esm/util/colorScale.d.ts +156 -0
  399. package/esm/util/colorScale.js +243 -0
  400. package/esm/util/colorSchemes.d.ts +21 -0
  401. package/esm/util/colorSchemes.js +30 -0
  402. package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
  403. package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
  404. package/esm/util/createSvgRasterCanvas.d.ts +10 -0
  405. package/esm/util/cssColorParse.d.ts +15 -0
  406. package/esm/util/cssColorParse.js +53 -0
  407. package/esm/util/diagonalizeRegions.d.ts +2 -3
  408. package/esm/util/diagonalizeRegions.js +8 -13
  409. package/esm/util/expandLooseSearchIndex.d.ts +19 -0
  410. package/esm/util/expandLooseSearchIndex.js +29 -0
  411. package/esm/util/featureTable.d.ts +224 -0
  412. package/esm/util/featureTable.js +366 -0
  413. package/esm/util/featureTransforms.d.ts +80 -0
  414. package/esm/util/featureTransforms.js +1579 -0
  415. package/esm/util/featureTypes.d.ts +24 -0
  416. package/esm/util/featureTypes.js +35 -0
  417. package/esm/util/fetchAndMaybeUnzip.js +16 -9
  418. package/esm/util/fetchContext.d.ts +7 -8
  419. package/esm/util/fetchContext.js +3 -3
  420. package/esm/util/fetchHub.d.ts +4 -2
  421. package/esm/util/fetchHub.js +2 -2
  422. package/esm/util/fetchPhases.d.ts +10 -10
  423. package/esm/util/fetchSeq.d.ts +2 -3
  424. package/esm/util/fetchSeq.js +2 -2
  425. package/esm/util/fieldReader.d.ts +17 -0
  426. package/esm/util/fieldReader.js +62 -0
  427. package/esm/util/freezeDeep.d.ts +8 -10
  428. package/esm/util/freezeDeep.js +8 -10
  429. package/esm/util/groupKeys.d.ts +77 -0
  430. package/esm/util/groupKeys.js +155 -0
  431. package/esm/util/highlights.d.ts +10 -6
  432. package/esm/util/highlights.js +12 -25
  433. package/esm/util/hooks.d.ts +31 -2
  434. package/esm/util/hooks.js +72 -3
  435. package/esm/util/index.d.ts +11 -11
  436. package/esm/util/index.js +11 -10
  437. package/esm/util/indexCandidates.d.ts +1 -31
  438. package/esm/util/indexCandidates.js +5 -63
  439. package/esm/util/installFetch.d.ts +77 -37
  440. package/esm/util/installFetch.js +65 -38
  441. package/esm/util/installInitAutorun.d.ts +14 -13
  442. package/esm/util/installInitAutorun.js +17 -17
  443. package/esm/util/installPrerequisiteFetch.d.ts +115 -0
  444. package/esm/util/installPrerequisiteFetch.js +111 -0
  445. package/esm/util/io/index.js +19 -14
  446. package/esm/util/isDataCurrent.d.ts +7 -5
  447. package/esm/util/isDataCurrent.js +9 -6
  448. package/esm/util/isTextEntryFocused.d.ts +7 -0
  449. package/esm/util/isTextEntryFocused.js +16 -0
  450. package/esm/util/jexl.js +24 -21
  451. package/esm/util/jexlFilterRows.d.ts +89 -0
  452. package/esm/util/jexlFilterRows.js +252 -0
  453. package/esm/util/jexlFilters.d.ts +20 -27
  454. package/esm/util/jexlFilters.js +23 -11
  455. package/esm/util/jexlStrings.d.ts +3 -4
  456. package/esm/util/jexlStrings.js +2 -3
  457. package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
  458. package/esm/util/layouts/GranularRectLayout.js +25 -8
  459. package/esm/util/lazyAfterAttach.d.ts +13 -0
  460. package/esm/util/lazyAfterAttach.js +31 -0
  461. package/esm/util/lazyWithPreload.d.ts +19 -0
  462. package/esm/util/lazyWithPreload.js +27 -0
  463. package/esm/util/legendCandidates.d.ts +72 -0
  464. package/esm/util/legendCandidates.js +138 -0
  465. package/esm/util/localStorage.js +4 -4
  466. package/esm/util/markEncoding.d.ts +150 -0
  467. package/esm/util/markEncoding.js +845 -0
  468. package/esm/util/markEncodingTypes.d.ts +588 -0
  469. package/esm/util/markEncodingTypes.js +8 -0
  470. package/esm/util/mst-reflection.d.ts +2 -20
  471. package/esm/util/mst-reflection.js +3 -53
  472. package/esm/util/mstUtils.d.ts +31 -23
  473. package/esm/util/mstUtils.js +39 -24
  474. package/esm/util/numericUtils.d.ts +7 -0
  475. package/esm/util/numericUtils.js +16 -0
  476. package/esm/util/numericValue.d.ts +14 -0
  477. package/esm/util/numericValue.js +34 -0
  478. package/esm/util/openFeatureWidget.d.ts +5 -0
  479. package/esm/util/openFeatureWidget.js +2 -2
  480. package/esm/util/openViews.d.ts +17 -0
  481. package/esm/util/openViews.js +22 -0
  482. package/esm/util/parentWalk.d.ts +1 -1
  483. package/esm/util/parentWalk.js +1 -1
  484. package/esm/util/parseLineByLine.d.ts +4 -5
  485. package/esm/util/parseLineByLine.js +8 -14
  486. package/esm/util/pluginStore.d.ts +6 -8
  487. package/esm/util/pluginStore.js +17 -16
  488. package/esm/util/preloadComponent.d.ts +5 -0
  489. package/esm/util/preloadComponent.js +11 -0
  490. package/esm/util/progress.d.ts +22 -22
  491. package/esm/util/progress.js +27 -26
  492. package/esm/util/quantileExtent.d.ts +49 -0
  493. package/esm/util/quantileExtent.js +162 -0
  494. package/esm/util/range.d.ts +13 -9
  495. package/esm/util/range.js +17 -8
  496. package/esm/util/renameRegions.d.ts +26 -6
  497. package/esm/util/renameRegions.js +68 -54
  498. package/esm/util/renderToStaticMarkup.js +24 -14
  499. package/esm/util/rxjs.d.ts +23 -8
  500. package/esm/util/rxjs.js +61 -15
  501. package/esm/util/samplesTsv.d.ts +49 -0
  502. package/esm/util/samplesTsv.js +86 -0
  503. package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
  504. package/esm/util/scheduleDetachedDestroy.js +24 -0
  505. package/esm/util/scrollLatch.d.ts +1 -0
  506. package/esm/util/scrollLatch.js +8 -0
  507. package/esm/util/selectEncodedFeature.d.ts +16 -0
  508. package/esm/util/selectEncodedFeature.js +34 -0
  509. package/esm/util/sessionSharing.d.ts +7 -5
  510. package/esm/util/sessionSharing.js +23 -23
  511. package/esm/util/shapeNameList.d.ts +2 -0
  512. package/esm/util/shapeNameList.js +6 -0
  513. package/esm/util/shapeNames.d.ts +7 -0
  514. package/esm/util/shapeNames.js +11 -0
  515. package/esm/util/simpleFeature.d.ts +0 -1
  516. package/esm/util/starFusion.d.ts +26 -0
  517. package/esm/util/starFusion.js +37 -0
  518. package/esm/util/stepTables.d.ts +82 -0
  519. package/esm/util/stepTables.js +243 -0
  520. package/esm/util/svAlt.d.ts +145 -0
  521. package/esm/util/svAlt.js +364 -0
  522. package/esm/util/svgColorProps.d.ts +11 -0
  523. package/esm/util/svgColorProps.js +28 -1
  524. package/esm/util/systemColorScheme.d.ts +12 -0
  525. package/esm/util/systemColorScheme.js +27 -0
  526. package/esm/util/tabix.d.ts +13 -8
  527. package/esm/util/tabix.js +17 -12
  528. package/esm/util/thresholdScale.d.ts +91 -0
  529. package/esm/util/thresholdScale.js +166 -0
  530. package/esm/util/timeGate.d.ts +4 -5
  531. package/esm/util/timeGate.js +4 -5
  532. package/esm/util/trackConfigDelta.d.ts +26 -26
  533. package/esm/util/trackConfigDelta.js +63 -47
  534. package/esm/util/tracks.d.ts +121 -40
  535. package/esm/util/tracks.js +497 -112
  536. package/esm/util/translateTranscript.d.ts +44 -0
  537. package/esm/util/translateTranscript.js +102 -0
  538. package/esm/util/types/data.d.ts +0 -2
  539. package/esm/util/types/index.d.ts +121 -22
  540. package/esm/util/types/index.js +9 -0
  541. package/esm/util/types/mst.d.ts +3 -0
  542. package/esm/util/types/mst.js +4 -0
  543. package/esm/util/types/renameIds.d.ts +1 -0
  544. package/esm/util/types/renameIds.js +29 -0
  545. package/esm/util/types/services.d.ts +1 -1
  546. package/esm/util/unknownSnapshotKeys.d.ts +51 -0
  547. package/esm/util/unknownSnapshotKeys.js +82 -0
  548. package/esm/util/useFeatureSequence.js +5 -5
  549. package/esm/util/useFetch.d.ts +3 -4
  550. package/esm/util/useFetch.js +19 -10
  551. package/esm/util/useFetchPlugins.d.ts +6 -2
  552. package/esm/util/useFetchPlugins.js +7 -3
  553. package/esm/util/usePanelVirtualScroll.d.ts +7 -35
  554. package/esm/util/usePanelVirtualScroll.js +9 -36
  555. package/esm/util/useRowVirtualScroll.d.ts +6 -29
  556. package/esm/util/useRowVirtualScroll.js +8 -49
  557. package/esm/util/useVirtualScrollWheel.d.ts +20 -4
  558. package/esm/util/useVirtualScrollWheel.js +40 -74
  559. package/esm/util/viewHighlights.d.ts +3 -0
  560. package/esm/util/viewHighlights.js +5 -0
  561. package/esm/util/viewStatus.d.ts +47 -15
  562. package/esm/util/viewStatus.js +34 -0
  563. package/esm/util/wheelZoom.d.ts +7 -1
  564. package/esm/util/wheelZoom.js +85 -19
  565. package/esm/util/whenViewSettled.d.ts +55 -8
  566. package/esm/util/whenViewSettled.js +56 -7
  567. package/esm/util/withLaunchInput.d.ts +174 -0
  568. package/esm/util/withLaunchInput.js +274 -0
  569. package/package.json +70 -20
  570. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
  571. package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
  572. package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
  573. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
  574. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
  575. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
  576. package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
  577. package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
  578. package/esm/ReExports/BaseFeatureDetails.js +0 -10
  579. package/esm/ReExports/index.d.ts +0 -1
  580. package/esm/ReExports/index.js +0 -1
  581. package/esm/ReExports/publicUtil.d.ts +0 -1
  582. package/esm/ReExports/publicUtil.js +0 -28
  583. package/esm/configuration/promotableDefaults.d.ts +0 -199
  584. package/esm/configuration/promotableDefaults.js +0 -326
  585. package/esm/configuration/promotablePin.d.ts +0 -55
  586. package/esm/configuration/promotablePin.js +0 -1
  587. package/esm/configuration/promotableResolve.d.ts +0 -108
  588. package/esm/configuration/promotableResolve.js +0 -117
  589. package/esm/configuration/promotableSlots.d.ts +0 -12
  590. package/esm/configuration/promotableSlots.js +0 -45
  591. package/esm/configuration/slotShape.d.ts +0 -12
  592. package/esm/configuration/slotShape.js +0 -84
  593. package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
  594. package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
  595. package/esm/ui/PinAdornment.d.ts +0 -5
  596. package/esm/ui/PinAdornment.js +0 -79
  597. package/esm/ui/SvgGradientLegend.d.ts +0 -26
  598. package/esm/ui/SvgGradientLegend.js +0 -26
  599. package/esm/ui/highlightChipReveal.d.ts +0 -32
  600. package/esm/ui/highlightChipReveal.js +0 -39
  601. package/esm/ui/promotableMenuItems.d.ts +0 -19
  602. package/esm/ui/promotableMenuItems.js +0 -89
  603. package/esm/ui/promotablePinCoverage.d.ts +0 -44
  604. package/esm/ui/promotablePinCoverage.js +0 -87
  605. package/esm/util/applyInitSettings.d.ts +0 -79
  606. package/esm/util/applyInitSettings.js +0 -91
  607. package/esm/util/openDisplays.d.ts +0 -23
  608. package/esm/util/openDisplays.js +0 -79
  609. package/esm/util/stopToken.d.ts +0 -211
  610. package/esm/util/stopToken.js +0 -438
  611. /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
@@ -2,7 +2,6 @@ import RpcMethodTypeWithRenameRegions from './RpcMethodTypeWithRenameRegions.ts'
2
2
  import SerializableFilterChain from './renderers/util/serializableFilterChain.ts';
3
3
  import type { Region } from '../util/index.ts';
4
4
  import type { StatusCallback } from '../util/progress.ts';
5
- import type { StopToken } from '../util/stopToken.ts';
6
5
  interface FilterRenameArgs {
7
6
  sessionId: string;
8
7
  regions?: Region[];
@@ -14,7 +13,7 @@ export default abstract class RpcMethodTypeWithFiltersAndRenameRegions<MethodNam
14
13
  filters?: unknown;
15
14
  }): Promise<T>;
16
15
  serializeArguments(args: FilterRenameArgs & {
17
- stopToken?: StopToken;
16
+ signal?: AbortSignal;
18
17
  statusCallback?: StatusCallback;
19
18
  }): Promise<Record<string, unknown>>;
20
19
  }
@@ -1,18 +1,18 @@
1
1
  import PluggableElementBase from './PluggableElementBase.ts';
2
2
  import type { AnyConfigurationSchemaType } from '../configuration/index.ts';
3
- import type { AnyAdapter } from '../data_adapters/BaseAdapter/index.ts';
4
- export default class TextSearchAdapterType extends PluggableElementBase {
5
- getAdapterClass: () => Promise<AnyAdapter>;
6
- configSchema: AnyConfigurationSchemaType;
3
+ import type { AdapterClassFor } from '../data_adapters/BaseAdapter/index.ts';
4
+ export default class TextSearchAdapterType<SCHEMA extends AnyConfigurationSchemaType = any> extends PluggableElementBase {
5
+ getAdapterClass: () => Promise<AdapterClassFor<SCHEMA>>;
6
+ configSchema: SCHEMA;
7
7
  description?: string;
8
8
  constructor(stuff: {
9
9
  name: string;
10
- configSchema: AnyConfigurationSchemaType;
10
+ configSchema: SCHEMA;
11
11
  displayName?: string;
12
12
  description?: string;
13
13
  } & ({
14
- getAdapterClass: () => Promise<AnyAdapter>;
14
+ getAdapterClass: () => Promise<AdapterClassFor<SCHEMA>>;
15
15
  } | {
16
- AdapterClass: AnyAdapter;
16
+ AdapterClass: AdapterClassFor<SCHEMA>;
17
17
  }));
18
18
  }
@@ -1,4 +1,5 @@
1
- import PluggableElementBase from './PluggableElementBase.ts';
1
+ import LazyStateModelElement from './LazyStateModelElement.ts';
2
+ import type { LaunchKeyRegistration } from '../util/withLaunchInput.ts';
2
3
  import type DisplayType from './DisplayType.ts';
3
4
  import type { IAnyModelType, IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
4
5
  import type React from 'react';
@@ -10,21 +11,36 @@ type ViewComponentType = React.LazyExoticComponent<BasicView> | BasicView;
10
11
  interface ViewMetadata {
11
12
  hiddenFromGUI?: boolean;
12
13
  }
13
- export default class ViewType extends PluggableElementBase {
14
+ export default class ViewType extends LazyStateModelElement {
15
+ protected readonly group = "view";
14
16
  ReactComponent: ViewComponentType;
15
- stateModel: IAnyModelType;
17
+ launchKeys?: LaunchKeyRegistration<unknown, string>;
16
18
  displayTypes: DisplayType[];
17
19
  viewMetadata: ViewMetadata;
18
20
  extendedName?: string;
19
21
  constructor(stuff: {
20
22
  name: string;
21
23
  displayName?: string;
22
- stateModel: IAnyModelType;
24
+ stateModel: IAnyModelType | (() => Promise<IAnyModelType>);
25
+ launchKeys?: LaunchKeyRegistration<unknown, string>;
23
26
  extendedName?: string;
24
27
  viewMetadata?: ViewMetadata;
25
28
  ReactComponent: ViewComponentType;
26
29
  aliases?: string[];
27
30
  });
31
+ /**
32
+ * Every key this view accepts written on the view object — its declared MST
33
+ * properties plus the launch keys above. `undefined` for a view that
34
+ * registers none: nothing there says which of its launcher's arguments are
35
+ * settings, so a caller must classify nothing rather than call them all typos.
36
+ * Also `undefined` while a lazily registered state model is not loaded yet,
37
+ * for the same reason: nothing is known, so nothing is a typo.
38
+ *
39
+ * This is the set `withLaunchInput`'s partition reads off the same two
40
+ * declarations, published for the surfaces that never build a view snapshot —
41
+ * a session spec launches straight through `LaunchView-<type>`.
42
+ */
43
+ get acceptedKeys(): string[] | undefined;
28
44
  addDisplayType(display: DisplayType): void;
29
45
  }
30
46
  export {};
@@ -1,7 +1,11 @@
1
- import PluggableElementBase from './PluggableElementBase.js';
2
- export default class ViewType extends PluggableElementBase {
1
+ import LazyStateModelElement from './LazyStateModelElement.js';
2
+ export default class ViewType extends LazyStateModelElement {
3
+ group = 'view';
3
4
  ReactComponent;
4
- stateModel;
5
+ // What `withLaunchInput` partitioned out of this view's snapshots, published
6
+ // beside the model so an out-of-tree plugin, the doc generator and the
7
+ // validator read one declaration rather than each keeping a list.
8
+ launchKeys;
5
9
  displayTypes = [];
6
10
  viewMetadata = {};
7
11
  // extendedName can be used for when you extend a given view type, and want
@@ -16,9 +20,33 @@ export default class ViewType extends PluggableElementBase {
16
20
  super(stuff);
17
21
  this.ReactComponent = stuff.ReactComponent;
18
22
  this.viewMetadata = stuff.viewMetadata ?? {};
19
- this.stateModel = stuff.stateModel;
23
+ this.launchKeys = stuff.launchKeys;
20
24
  this.extendedName = stuff.extendedName;
21
25
  }
26
+ /**
27
+ * Every key this view accepts written on the view object — its declared MST
28
+ * properties plus the launch keys above. `undefined` for a view that
29
+ * registers none: nothing there says which of its launcher's arguments are
30
+ * settings, so a caller must classify nothing rather than call them all typos.
31
+ * Also `undefined` while a lazily registered state model is not loaded yet,
32
+ * for the same reason: nothing is known, so nothing is a typo.
33
+ *
34
+ * This is the set `withLaunchInput`'s partition reads off the same two
35
+ * declarations, published for the surfaces that never build a view snapshot —
36
+ * a session spec launches straight through `LaunchView-<type>`.
37
+ */
38
+ get acceptedKeys() {
39
+ const properties = this.isStateModelLoaded
40
+ ? this.stateModel.properties
41
+ : undefined;
42
+ return this.launchKeys && properties
43
+ ? [
44
+ ...Object.keys(properties),
45
+ ...Object.keys(this.launchKeys.keys),
46
+ ...this.launchKeys.passThrough,
47
+ ]
48
+ : undefined;
49
+ }
22
50
  addDisplayType(display) {
23
51
  this.displayTypes.push(display);
24
52
  }
@@ -12,9 +12,10 @@ type ModelOf<T> = T extends IAnyType ? Instance<T> : never;
12
12
  /**
13
13
  * The methods on a model that return a menu. Derived from the model rather than
14
14
  * listed, which is what makes a renamed or retired method a compile error at
15
- * the call site: there are six of them across views and displays (`menuItems`,
15
+ * the call site: there are seven of them across views and displays (`menuItems`,
16
16
  * `trackMenuItems`, `contextMenuItems`, `rubberBandMenuItems`,
17
- * `rubberBandLaunchMenuItems`, `highlightMenuItems`), they are a convention
17
+ * `rubberBandLaunchMenuItems`, `highlightMenuItems`, `highlightsSubMenuItems`),
18
+ * they are a convention
18
19
  * rather than one declared interface, and a contribution to a name the model no
19
20
  * longer has is otherwise silent.
20
21
  *
@@ -5,8 +5,7 @@ import type { IAnyModelType } from '@jbrowse/mobx-state-tree';
5
5
  * Replace a view type's state model with an extended one, e.g. to add a menu
6
6
  * item to `LinearGenomeView`. Pass an array to extend several at once, which is
7
7
  * how a contribution reaches a family: the tree spells a display family as a
8
- * shared mixin set rather than a chain, so there is no parent to name — see
9
- * `reference/REJECTED_IDEAS.md`, "Give a pluggable element an `extendsType`".
8
+ * shared mixin set rather than a chain, so there is no parent to name, which is why an `extendsType` was declined.
10
9
  *
11
10
  * `Core-extendPluggableElement` fires for every pluggable element there is —
12
11
  * adapters, widgets, RPC methods, all of them — so a callback written against
@@ -14,8 +14,7 @@ function namesOf(name) {
14
14
  * Replace a view type's state model with an extended one, e.g. to add a menu
15
15
  * item to `LinearGenomeView`. Pass an array to extend several at once, which is
16
16
  * how a contribution reaches a family: the tree spells a display family as a
17
- * shared mixin set rather than a chain, so there is no parent to name — see
18
- * `reference/REJECTED_IDEAS.md`, "Give a pluggable element an `extendsType`".
17
+ * shared mixin set rather than a chain, so there is no parent to name, which is why an `extendsType` was declined.
19
18
  *
20
19
  * `Core-extendPluggableElement` fires for every pluggable element there is —
21
20
  * adapters, widgets, RPC methods, all of them — so a callback written against
@@ -45,8 +44,12 @@ export function extendViewType(pluginManager, name, extend) {
45
44
  // point of the signature; widening it once here costs nothing, since
46
45
  // the only operation is handing the model to `extend` and storing what
47
46
  // comes back.
47
+ //
48
+ // Routed through extendStateModel rather than assigning `.stateModel`
49
+ // directly so a view registered with a lazy loader queues the
50
+ // extension and composes it when the loader resolves.
48
51
  const view = element;
49
- view.stateModel = widen(extend)(view.stateModel);
52
+ view.extendStateModel(widen(extend));
50
53
  }
51
54
  return element;
52
55
  });
@@ -59,9 +62,10 @@ export function extendDisplayType(pluginManager, name, extend) {
59
62
  const names = namesOf(name);
60
63
  pluginManager.addToExtensionPoint('Core-extendPluggableElement', (element, props) => {
61
64
  if (props.group === 'display' && names.has(element.name)) {
62
- // widened for the reason in extendViewType
65
+ // widened for the reason in extendViewType; routed through
66
+ // extendStateModel so a lazy registration queues the extension
63
67
  const display = element;
64
- display.stateModel = widen(extend)(display.stateModel);
68
+ display.extendStateModel(widen(extend));
65
69
  }
66
70
  return element;
67
71
  });
@@ -8,7 +8,7 @@ import type TextSearchAdapterType from './TextSearchAdapterType.ts';
8
8
  import type TrackType from './TrackType.ts';
9
9
  import type ViewType from './ViewType.ts';
10
10
  import type WidgetType from './WidgetType.ts';
11
- export { BaseConnectionModelFactory, BaseDisplay, type BaseDisplayModel, type BaseDisplayStateModel, BaseInternetAccountConfig, type BaseInternetAccountModel, type BaseInternetAccountStateModel, type BaseTrackConfig, type BaseTrackModel, type BaseTrackStateModel, BaseViewModel, type DisplayModel, type FileTypeExporter, HighlightsMixin, type IBaseViewModel, InternetAccount, addDisplayConfigMigration, baseConnectionConfig, createBaseTrackConfig, createBaseTrackModel, preprocessTrackConfigSnapshot, type TrackConfigSnapshot, trackConfigActions, } from './models/index.ts';
11
+ export { BaseConnectionModelFactory, BaseDisplay, type BaseDisplayModel, type BaseDisplayStateModel, BaseInternetAccountConfig, type BaseInternetAccountModel, type BaseInternetAccountStateModel, type BaseTrackConfig, type BaseTrackModel, type BaseTrackStateModel, BaseViewModel, type DisplayModel, type FileTypeExporter, type IBaseViewModel, InternetAccount, baseConnectionConfig, createBaseTrackConfig, createBaseTrackModel, preprocessTrackConfigSnapshot, type TrackConfigSnapshot, } from './models/index.ts';
12
12
  export type PluggableElementType = AdapterType | ConnectionType | WidgetType | TrackType | DisplayType | ViewType | RpcMethodType | InternetAccountType | TextSearchAdapterType | AddTrackWorkflowType;
13
13
  export { extendDisplayType, extendViewType } from './extendElementType.ts';
14
14
  export { addDisplayMenuItems, addViewMenuItems } from './addMenuItems.ts';
@@ -18,6 +18,7 @@ export { default as TrackType } from './TrackType.ts';
18
18
  export { default as WidgetType } from './WidgetType.ts';
19
19
  export { default as ViewType } from './ViewType.ts';
20
20
  export { default as DisplayType } from './DisplayType.ts';
21
+ export type { DisplayEntry, RetiredDisplayState, RetiredDisplayType, } from './DisplayType.ts';
21
22
  export { default as InternetAccountType } from './InternetAccountType.ts';
22
23
  export { default as RpcMethodType } from './RpcMethodType.ts';
23
24
  export { default as RpcMethodTypeWithRenameRegion } from './RpcMethodTypeWithRenameRegion.ts';
@@ -1,4 +1,4 @@
1
- export { BaseConnectionModelFactory, BaseDisplay, BaseInternetAccountConfig, BaseViewModel, HighlightsMixin, InternetAccount, addDisplayConfigMigration, baseConnectionConfig, createBaseTrackConfig, createBaseTrackModel, preprocessTrackConfigSnapshot, trackConfigActions, } from './models/index.js';
1
+ export { BaseConnectionModelFactory, BaseDisplay, BaseInternetAccountConfig, BaseViewModel, InternetAccount, baseConnectionConfig, createBaseTrackConfig, createBaseTrackModel, preprocessTrackConfigSnapshot, } from './models/index.js';
2
2
  export { extendDisplayType, extendViewType } from './extendElementType.js';
3
3
  export { addDisplayMenuItems, addViewMenuItems } from './addMenuItems.js';
4
4
  export { default as AdapterType } from './AdapterType.js';
@@ -8,22 +8,32 @@ declare function stateModelFactory(pluginManager: PluginManager): import("@jbrow
8
8
  /**
9
9
  * #property
10
10
  */
11
- tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
11
+ tracks: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/core/PluginManager").PluggableConfigSchemaType>;
12
12
  /**
13
13
  * #property
14
14
  */
15
15
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
16
16
  readonly name: {
17
- readonly type: "string";
18
- readonly defaultValue: "nameOfConnection";
19
- readonly description: "a unique name for this connection";
17
+ type: "string";
18
+ } & {
19
+ defaultValue: string;
20
20
  };
21
21
  readonly assemblyNames: {
22
- readonly type: "stringArray";
23
- readonly defaultValue: readonly [];
24
- readonly description: "optional list of names of assemblies in this connection";
22
+ type: "stringArray";
23
+ } & {
24
+ defaultValue: unknown;
25
25
  };
26
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId">>>;
26
+ type: {
27
+ type: "string";
28
+ } & {
29
+ defaultValue: string;
30
+ };
31
+ connectionId: {
32
+ type: "string";
33
+ } & {
34
+ defaultValue: string;
35
+ };
36
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
27
37
  /**
28
38
  * #property
29
39
  * set when the connection is being re-established on session load (its
@@ -70,7 +80,7 @@ declare function stateModelFactory(pluginManager: PluginManager): import("@jbrow
70
80
  /**
71
81
  * #action
72
82
  */
73
- addTrackConf(trackConf: TrackConf): any;
83
+ addTrackConf(trackConf: TrackConf): (import("../../configuration/types.ts").PluggableConfigNode & import("@jbrowse/mobx-state-tree").IStateTreeNode<import("@jbrowse/core/PluginManager").PluggableConfigSchemaType>) | undefined;
74
84
  /**
75
85
  * #action
76
86
  */
@@ -1,6 +1,7 @@
1
1
  import type { AnyConfigurationModel } from '../../configuration/index.ts';
2
2
  import type { MenuItem } from '../../ui/index.ts';
3
3
  import type { RpcStatus } from '../../util/progress.ts';
4
+ import type { UnappliedSetting } from '../../util/unknownSnapshotKeys.ts';
4
5
  import type { Instance } from '@jbrowse/mobx-state-tree';
5
6
  import type React from 'react';
6
7
  export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<{
@@ -161,7 +162,7 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
161
162
  * pointing at" channel a plugin can subscribe to.
162
163
  *
163
164
  * Declared here because a cross-display consumer can only read a name the
164
- * base declares — the same reason `SyntenyFetchStateMixin.fetchInert` is a
165
+ * base declares — the same reason `FetchMixin.fetchInert` is a
165
166
  * hook rather than a getter each display invents. The container used to
166
167
  * read `featureUnderMouse`, which only the wiggle, alignments and
167
168
  * Manhattan families spelled that way — canvas said `hoveredFeature`,
@@ -202,15 +203,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
202
203
  readonly featureNoun: string;
203
204
  /**
204
205
  * #getter
205
- * Overridable hook: which widget `openFeatureWidget` opens for one of
206
- * this display's features. The default is the generic one, which is what
207
- * a display drawing plain features wants and what the canvas base spelled
208
- * out by hand.
206
+ * The widget `openFeatureWidget` opens for one of this display's
207
+ * features. Displays may override it. The default is the generic feature
208
+ * widget, for displays drawing plain features.
209
209
  *
210
- * An override is a display whose features have a vocabulary of their own —
211
- * a read, a variant, a synteny block — and the `id` is deliberately part
212
- * of it: two displays naming one id share the drawer panel, which is the
213
- * behaviour when the two are showing the same kind of thing.
210
+ * Displays whose features are a specific kind (a read, a variant, a
211
+ * synteny block) override it, including the `id`: two displays naming
212
+ * one id share the drawer panel, which suits two displays showing the
213
+ * same kind of feature.
214
214
  */
215
215
  readonly featureWidgetType: {
216
216
  type: string;
@@ -382,7 +382,7 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
382
382
  * pointing at" channel a plugin can subscribe to.
383
383
  *
384
384
  * Declared here because a cross-display consumer can only read a name the
385
- * base declares — the same reason `SyntenyFetchStateMixin.fetchInert` is a
385
+ * base declares — the same reason `FetchMixin.fetchInert` is a
386
386
  * hook rather than a getter each display invents. The container used to
387
387
  * read `featureUnderMouse`, which only the wiggle, alignments and
388
388
  * Manhattan families spelled that way — canvas said `hoveredFeature`,
@@ -423,15 +423,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
423
423
  readonly featureNoun: string;
424
424
  /**
425
425
  * #getter
426
- * Overridable hook: which widget `openFeatureWidget` opens for one of
427
- * this display's features. The default is the generic one, which is what
428
- * a display drawing plain features wants and what the canvas base spelled
429
- * out by hand.
426
+ * The widget `openFeatureWidget` opens for one of this display's
427
+ * features. Displays may override it. The default is the generic feature
428
+ * widget, for displays drawing plain features.
430
429
  *
431
- * An override is a display whose features have a vocabulary of their own —
432
- * a read, a variant, a synteny block — and the `id` is deliberately part
433
- * of it: two displays naming one id share the drawer panel, which is the
434
- * behaviour when the two are showing the same kind of thing.
430
+ * Displays whose features are a specific kind (a read, a variant, a
431
+ * synteny block) override it, including the `id`: two displays naming
432
+ * one id share the drawer panel, which suits two displays showing the
433
+ * same kind of feature.
435
434
  */
436
435
  readonly featureWidgetType: {
437
436
  type: string;
@@ -595,7 +594,7 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
595
594
  * pointing at" channel a plugin can subscribe to.
596
595
  *
597
596
  * Declared here because a cross-display consumer can only read a name the
598
- * base declares — the same reason `SyntenyFetchStateMixin.fetchInert` is a
597
+ * base declares — the same reason `FetchMixin.fetchInert` is a
599
598
  * hook rather than a getter each display invents. The container used to
600
599
  * read `featureUnderMouse`, which only the wiggle, alignments and
601
600
  * Manhattan families spelled that way — canvas said `hoveredFeature`,
@@ -636,15 +635,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
636
635
  readonly featureNoun: string;
637
636
  /**
638
637
  * #getter
639
- * Overridable hook: which widget `openFeatureWidget` opens for one of
640
- * this display's features. The default is the generic one, which is what
641
- * a display drawing plain features wants and what the canvas base spelled
642
- * out by hand.
638
+ * The widget `openFeatureWidget` opens for one of this display's
639
+ * features. Displays may override it. The default is the generic feature
640
+ * widget, for displays drawing plain features.
643
641
  *
644
- * An override is a display whose features have a vocabulary of their own —
645
- * a read, a variant, a synteny block — and the `id` is deliberately part
646
- * of it: two displays naming one id share the drawer panel, which is the
647
- * behaviour when the two are showing the same kind of thing.
642
+ * Displays whose features are a specific kind (a read, a variant, a
643
+ * synteny block) override it, including the `id`: two displays naming
644
+ * one id share the drawer panel, which suits two displays showing the
645
+ * same kind of feature.
648
646
  */
649
647
  readonly featureWidgetType: {
650
648
  type: string;
@@ -684,6 +682,46 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
684
682
  * base display reload does nothing, see specialized displays for details
685
683
  */
686
684
  reload(): void;
685
+ /**
686
+ * #action
687
+ * Apply a set of display settings to the live display, and report which
688
+ * were applied. Each key runs through the display config schema's
689
+ * `preProcessSnapshot` (shorthand expansions and legacy-key migrations,
690
+ * as `showTrackGeneric` applies to a session spec's inline track keys),
691
+ * then writes the matching config slot. A key naming a sub-schema
692
+ * (`facet`, `color`) replaces the whole object, its string shorthand
693
+ * lifted by that schema, and `null` clears it. Keys that are not slots
694
+ * come back in `unapplied` as `{ key, reason }`, so a caller can tell a
695
+ * misspelling from a key that has an action instead of a slot.
696
+ *
697
+ * `allowSetters` also routes a non-slot key to a single-argument action
698
+ * named `set<Key>`. It is off by default because session specs, share
699
+ * links and embeds pass untyped JSON here, and a default fallback would
700
+ * let them call internal setters (`setError`, `setScrollTop`, ...) and
701
+ * call multi-argument setters with one argument. A caller that wants a
702
+ * specific action can call it directly.
703
+ *
704
+ * A key whose write threw is reported in `failed`. Only `failed` means
705
+ * the caller passed a bad value. `unapplied` needs the caller's own
706
+ * context to read: `showTrackGeneric` spreads the same settings into the
707
+ * display's snapshot, so a declared prop (`resolution`) has already
708
+ * landed by the time it reports here, while the restyle path spreads
709
+ * nothing and every entry there did nothing.
710
+ *
711
+ * A per-key error does not abort the remaining keys. A caller
712
+ * mid-`showTrack` has already pushed the track, and one rejected value
713
+ * should not leave it half-configured.
714
+ */
715
+ applyDisplaySettings(settings: Record<string, unknown>, options?: {
716
+ allowSetters?: boolean;
717
+ }): {
718
+ applied: string[];
719
+ unapplied: UnappliedSetting[];
720
+ failed: {
721
+ key: string;
722
+ error: string;
723
+ }[];
724
+ };
687
725
  }, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
688
726
  export type BaseDisplayStateModel = typeof BaseDisplay;
689
727
  export type BaseDisplayModel = Instance<BaseDisplayStateModel>;
@@ -1,7 +1,8 @@
1
1
  import { hasParent, isAlive, types } from '@jbrowse/mobx-state-tree';
2
- import { getConf } from '../../configuration/index.js';
2
+ import { applyConfSettings, getConf } from '../../configuration/index.js';
3
3
  import { getContainingTrack, getEnv, statusFraction, statusMessageText, } from '../../util/index.js';
4
4
  import { ElementId } from '../../util/types/mst.js';
5
+ import { displaySetterName } from '../../util/unknownSnapshotKeys.js';
5
6
  /**
6
7
  * #stateModel BaseDisplay
7
8
  * #category display
@@ -94,7 +95,7 @@ function stateModelFactory() {
94
95
  * pointing at" channel a plugin can subscribe to.
95
96
  *
96
97
  * Declared here because a cross-display consumer can only read a name the
97
- * base declares — the same reason `SyntenyFetchStateMixin.fetchInert` is a
98
+ * base declares — the same reason `FetchMixin.fetchInert` is a
98
99
  * hook rather than a getter each display invents. The container used to
99
100
  * read `featureUnderMouse`, which only the wiggle, alignments and
100
101
  * Manhattan families spelled that way — canvas said `hoveredFeature`,
@@ -139,15 +140,14 @@ function stateModelFactory() {
139
140
  },
140
141
  /**
141
142
  * #getter
142
- * Overridable hook: which widget `openFeatureWidget` opens for one of
143
- * this display's features. The default is the generic one, which is what
144
- * a display drawing plain features wants and what the canvas base spelled
145
- * out by hand.
143
+ * The widget `openFeatureWidget` opens for one of this display's
144
+ * features. Displays may override it. The default is the generic feature
145
+ * widget, for displays drawing plain features.
146
146
  *
147
- * An override is a display whose features have a vocabulary of their own —
148
- * a read, a variant, a synteny block — and the `id` is deliberately part
149
- * of it: two displays naming one id share the drawer panel, which is the
150
- * behaviour when the two are showing the same kind of thing.
147
+ * Displays whose features are a specific kind (a read, a variant, a
148
+ * synteny block) override it, including the `id`: two displays naming
149
+ * one id share the drawer panel, which suits two displays showing the
150
+ * same kind of feature.
151
151
  */
152
152
  get featureWidgetType() {
153
153
  return {
@@ -210,6 +210,68 @@ function stateModelFactory() {
210
210
  * base display reload does nothing, see specialized displays for details
211
211
  */
212
212
  reload() { },
213
+ /**
214
+ * #action
215
+ * Apply a set of display settings to the live display, and report which
216
+ * were applied. Each key runs through the display config schema's
217
+ * `preProcessSnapshot` (shorthand expansions and legacy-key migrations,
218
+ * as `showTrackGeneric` applies to a session spec's inline track keys),
219
+ * then writes the matching config slot. A key naming a sub-schema
220
+ * (`facet`, `color`) replaces the whole object, its string shorthand
221
+ * lifted by that schema, and `null` clears it. Keys that are not slots
222
+ * come back in `unapplied` as `{ key, reason }`, so a caller can tell a
223
+ * misspelling from a key that has an action instead of a slot.
224
+ *
225
+ * `allowSetters` also routes a non-slot key to a single-argument action
226
+ * named `set<Key>`. It is off by default because session specs, share
227
+ * links and embeds pass untyped JSON here, and a default fallback would
228
+ * let them call internal setters (`setError`, `setScrollTop`, ...) and
229
+ * call multi-argument setters with one argument. A caller that wants a
230
+ * specific action can call it directly.
231
+ *
232
+ * A key whose write threw is reported in `failed`. Only `failed` means
233
+ * the caller passed a bad value. `unapplied` needs the caller's own
234
+ * context to read: `showTrackGeneric` spreads the same settings into the
235
+ * display's snapshot, so a declared prop (`resolution`) has already
236
+ * landed by the time it reports here, while the restyle path spreads
237
+ * nothing and every entry there did nothing.
238
+ *
239
+ * A per-key error does not abort the remaining keys. A caller
240
+ * mid-`showTrack` has already pushed the track, and one rejected value
241
+ * should not leave it half-configured.
242
+ */
243
+ applyDisplaySettings(settings, options) {
244
+ // configuration is the reference every concrete display adds at
245
+ // instantiation (see DisplayModel below); the base model composes
246
+ // before it exists, hence the cast rather than a prop
247
+ const { configuration } = self;
248
+ const { applied, undeclared, failed } = applyConfSettings(configuration, settings);
249
+ const unapplied = [];
250
+ for (const [key, value] of Object.entries(undeclared)) {
251
+ if (!key || key === 'type') {
252
+ unapplied.push({ key, reason: key ? 'display-type' : 'no-slot' });
253
+ continue;
254
+ }
255
+ const setter = self[displaySetterName(key)];
256
+ if (typeof setter !== 'function') {
257
+ unapplied.push({ key, reason: 'no-slot' });
258
+ }
259
+ else if (!options?.allowSetters) {
260
+ unapplied.push({ key, reason: 'setter-only' });
261
+ }
262
+ else {
263
+ try {
264
+ ;
265
+ setter(value);
266
+ applied.push(`${key} (via setter)`);
267
+ }
268
+ catch (e) {
269
+ failed.push({ key, error: `${e}` });
270
+ }
271
+ }
272
+ }
273
+ return { applied, unapplied, failed };
274
+ },
213
275
  }));
214
276
  }
215
277
  export const BaseDisplay = stateModelFactory();