@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
@@ -6,31 +6,41 @@ export default function useInternetAccounts(rootModel?: AbstractRootModel): {
6
6
  type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
7
7
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
8
8
  readonly name: {
9
- readonly description: "descriptive name of the internet account";
10
- readonly type: "string";
11
- readonly defaultValue: "";
9
+ type: "string";
10
+ } & {
11
+ defaultValue: string;
12
12
  };
13
13
  readonly description: {
14
- readonly description: "a description of the internet account";
15
- readonly type: "string";
16
- readonly defaultValue: "";
14
+ type: "string";
15
+ } & {
16
+ defaultValue: string;
17
17
  };
18
18
  readonly authHeader: {
19
- readonly description: "request header for credentials";
20
- readonly type: "string";
21
- readonly defaultValue: "Authorization";
19
+ type: "string";
20
+ } & {
21
+ defaultValue: string;
22
22
  };
23
23
  readonly tokenType: {
24
- readonly description: "a custom name for a token to include in the header";
25
- readonly type: "string";
26
- readonly defaultValue: "";
24
+ type: "string";
25
+ } & {
26
+ defaultValue: string;
27
27
  };
28
28
  readonly domains: {
29
- readonly description: "array of valid domains the url can contain to use this account";
30
- readonly type: "stringArray";
31
- readonly defaultValue: readonly [];
29
+ type: "stringArray";
30
+ } & {
31
+ defaultValue: unknown;
32
32
  };
33
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
33
+ type: {
34
+ type: "string";
35
+ } & {
36
+ defaultValue: string;
37
+ };
38
+ internetAccountId: {
39
+ type: "string";
40
+ } & {
41
+ defaultValue: string;
42
+ };
43
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
34
44
  }> & {
35
45
  readonly name: string;
36
46
  readonly description: string;
@@ -86,31 +96,41 @@ export default function useInternetAccounts(rootModel?: AbstractRootModel): {
86
96
  type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
87
97
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
88
98
  readonly name: {
89
- readonly description: "descriptive name of the internet account";
90
- readonly type: "string";
91
- readonly defaultValue: "";
99
+ type: "string";
100
+ } & {
101
+ defaultValue: string;
92
102
  };
93
103
  readonly description: {
94
- readonly description: "a description of the internet account";
95
- readonly type: "string";
96
- readonly defaultValue: "";
104
+ type: "string";
105
+ } & {
106
+ defaultValue: string;
97
107
  };
98
108
  readonly authHeader: {
99
- readonly description: "request header for credentials";
100
- readonly type: "string";
101
- readonly defaultValue: "Authorization";
109
+ type: "string";
110
+ } & {
111
+ defaultValue: string;
102
112
  };
103
113
  readonly tokenType: {
104
- readonly description: "a custom name for a token to include in the header";
105
- readonly type: "string";
106
- readonly defaultValue: "";
114
+ type: "string";
115
+ } & {
116
+ defaultValue: string;
107
117
  };
108
118
  readonly domains: {
109
- readonly description: "array of valid domains the url can contain to use this account";
110
- readonly type: "stringArray";
111
- readonly defaultValue: readonly [];
119
+ type: "stringArray";
120
+ } & {
121
+ defaultValue: unknown;
122
+ };
123
+ type: {
124
+ type: "string";
125
+ } & {
126
+ defaultValue: string;
112
127
  };
113
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
128
+ internetAccountId: {
129
+ type: "string";
130
+ } & {
131
+ defaultValue: string;
132
+ };
133
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
114
134
  }, {
115
135
  readonly name: string;
116
136
  readonly description: string;
@@ -168,31 +188,41 @@ export default function useInternetAccounts(rootModel?: AbstractRootModel): {
168
188
  type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
169
189
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
170
190
  readonly name: {
171
- readonly description: "descriptive name of the internet account";
172
- readonly type: "string";
173
- readonly defaultValue: "";
191
+ type: "string";
192
+ } & {
193
+ defaultValue: string;
174
194
  };
175
195
  readonly description: {
176
- readonly description: "a description of the internet account";
177
- readonly type: "string";
178
- readonly defaultValue: "";
196
+ type: "string";
197
+ } & {
198
+ defaultValue: string;
179
199
  };
180
200
  readonly authHeader: {
181
- readonly description: "request header for credentials";
182
- readonly type: "string";
183
- readonly defaultValue: "Authorization";
201
+ type: "string";
202
+ } & {
203
+ defaultValue: string;
184
204
  };
185
205
  readonly tokenType: {
186
- readonly description: "a custom name for a token to include in the header";
187
- readonly type: "string";
188
- readonly defaultValue: "";
206
+ type: "string";
207
+ } & {
208
+ defaultValue: string;
189
209
  };
190
210
  readonly domains: {
191
- readonly description: "array of valid domains the url can contain to use this account";
192
- readonly type: "stringArray";
193
- readonly defaultValue: readonly [];
211
+ type: "stringArray";
212
+ } & {
213
+ defaultValue: unknown;
214
+ };
215
+ type: {
216
+ type: "string";
217
+ } & {
218
+ defaultValue: string;
219
+ };
220
+ internetAccountId: {
221
+ type: "string";
222
+ } & {
223
+ defaultValue: string;
194
224
  };
195
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
225
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
196
226
  }> & {
197
227
  readonly name: string;
198
228
  readonly description: string;
@@ -248,31 +278,41 @@ export default function useInternetAccounts(rootModel?: AbstractRootModel): {
248
278
  type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
249
279
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
250
280
  readonly name: {
251
- readonly description: "descriptive name of the internet account";
252
- readonly type: "string";
253
- readonly defaultValue: "";
281
+ type: "string";
282
+ } & {
283
+ defaultValue: string;
254
284
  };
255
285
  readonly description: {
256
- readonly description: "a description of the internet account";
257
- readonly type: "string";
258
- readonly defaultValue: "";
286
+ type: "string";
287
+ } & {
288
+ defaultValue: string;
259
289
  };
260
290
  readonly authHeader: {
261
- readonly description: "request header for credentials";
262
- readonly type: "string";
263
- readonly defaultValue: "Authorization";
291
+ type: "string";
292
+ } & {
293
+ defaultValue: string;
264
294
  };
265
295
  readonly tokenType: {
266
- readonly description: "a custom name for a token to include in the header";
267
- readonly type: "string";
268
- readonly defaultValue: "";
296
+ type: "string";
297
+ } & {
298
+ defaultValue: string;
269
299
  };
270
300
  readonly domains: {
271
- readonly description: "array of valid domains the url can contain to use this account";
272
- readonly type: "stringArray";
273
- readonly defaultValue: readonly [];
301
+ type: "stringArray";
302
+ } & {
303
+ defaultValue: unknown;
274
304
  };
275
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
305
+ type: {
306
+ type: "string";
307
+ } & {
308
+ defaultValue: string;
309
+ };
310
+ internetAccountId: {
311
+ type: "string";
312
+ } & {
313
+ defaultValue: string;
314
+ };
315
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
276
316
  }, {
277
317
  readonly name: string;
278
318
  readonly description: string;
@@ -329,31 +369,41 @@ export default function useInternetAccounts(rootModel?: AbstractRootModel): {
329
369
  type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
330
370
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
331
371
  readonly name: {
332
- readonly description: "descriptive name of the internet account";
333
- readonly type: "string";
334
- readonly defaultValue: "";
372
+ type: "string";
373
+ } & {
374
+ defaultValue: string;
335
375
  };
336
376
  readonly description: {
337
- readonly description: "a description of the internet account";
338
- readonly type: "string";
339
- readonly defaultValue: "";
377
+ type: "string";
378
+ } & {
379
+ defaultValue: string;
340
380
  };
341
381
  readonly authHeader: {
342
- readonly description: "request header for credentials";
343
- readonly type: "string";
344
- readonly defaultValue: "Authorization";
382
+ type: "string";
383
+ } & {
384
+ defaultValue: string;
345
385
  };
346
386
  readonly tokenType: {
347
- readonly description: "a custom name for a token to include in the header";
348
- readonly type: "string";
349
- readonly defaultValue: "";
387
+ type: "string";
388
+ } & {
389
+ defaultValue: string;
350
390
  };
351
391
  readonly domains: {
352
- readonly description: "array of valid domains the url can contain to use this account";
353
- readonly type: "stringArray";
354
- readonly defaultValue: readonly [];
392
+ type: "stringArray";
393
+ } & {
394
+ defaultValue: unknown;
395
+ };
396
+ type: {
397
+ type: "string";
398
+ } & {
399
+ defaultValue: string;
355
400
  };
356
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
401
+ internetAccountId: {
402
+ type: "string";
403
+ } & {
404
+ defaultValue: string;
405
+ };
406
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
357
407
  }> & {
358
408
  readonly name: string;
359
409
  readonly description: string;
@@ -409,31 +459,41 @@ export default function useInternetAccounts(rootModel?: AbstractRootModel): {
409
459
  type: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
410
460
  configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
411
461
  readonly name: {
412
- readonly description: "descriptive name of the internet account";
413
- readonly type: "string";
414
- readonly defaultValue: "";
462
+ type: "string";
463
+ } & {
464
+ defaultValue: string;
415
465
  };
416
466
  readonly description: {
417
- readonly description: "a description of the internet account";
418
- readonly type: "string";
419
- readonly defaultValue: "";
467
+ type: "string";
468
+ } & {
469
+ defaultValue: string;
420
470
  };
421
471
  readonly authHeader: {
422
- readonly description: "request header for credentials";
423
- readonly type: "string";
424
- readonly defaultValue: "Authorization";
472
+ type: "string";
473
+ } & {
474
+ defaultValue: string;
425
475
  };
426
476
  readonly tokenType: {
427
- readonly description: "a custom name for a token to include in the header";
428
- readonly type: "string";
429
- readonly defaultValue: "";
477
+ type: "string";
478
+ } & {
479
+ defaultValue: string;
430
480
  };
431
481
  readonly domains: {
432
- readonly description: "array of valid domains the url can contain to use this account";
433
- readonly type: "stringArray";
434
- readonly defaultValue: readonly [];
482
+ type: "stringArray";
483
+ } & {
484
+ defaultValue: unknown;
485
+ };
486
+ type: {
487
+ type: "string";
488
+ } & {
489
+ defaultValue: string;
490
+ };
491
+ internetAccountId: {
492
+ type: "string";
493
+ } & {
494
+ defaultValue: string;
435
495
  };
436
- }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId">>>;
496
+ }, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>>;
437
497
  }, {
438
498
  readonly name: string;
439
499
  readonly description: string;
@@ -1,6 +1,5 @@
1
1
  import type { PopoverOrigin } from '@mui/material';
2
- declare function HoverMenu({ open, anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }: {
3
- open: boolean;
2
+ declare function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }: {
4
3
  anchorEl: HTMLElement | null;
5
4
  onClose: () => void;
6
5
  onMouseEnter?: () => void;
@@ -4,7 +4,10 @@ import { jsx as _jsx } from "react/jsx-runtime";
4
4
  import { Menu } from '@mui/material';
5
5
  // A Menu a hovering pointer can cross into: the root (which spans the viewport)
6
6
  // is click-through so the gap between the opener row and the panel doesn't
7
- // swallow the pointer, while the paper itself stays interactive.
7
+ // swallow the pointer, while the paper itself stays interactive. That root can
8
+ // never deliver a click to a backdrop, so it renders none.
9
+ //
10
+ // Mounted only while its submenu is open, which is why it takes no `open`.
8
11
  //
9
12
  // Only CascadingMenu's submenus render this, so it takes exactly what they pass
10
13
  // — the root's pointer-events and the paper slot are its whole point, and a
@@ -15,8 +18,8 @@ import { Menu } from '@mui/material';
15
18
  // and `onMouseEnter`, which fires on the paper rather than the click-through
16
19
  // root and so means "the pointer arrived here", not "the pointer is somewhere
17
20
  // over the viewport".
18
- function HoverMenu({ open, anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }) {
19
- return (_jsx(Menu, { open: open, anchorEl: anchorEl, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, style: { pointerEvents: 'none', zIndex }, slotProps: {
21
+ function HoverMenu({ anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }) {
22
+ return (_jsx(Menu, { open: true, anchorEl: anchorEl, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, style: { pointerEvents: 'none', zIndex }, hideBackdrop: true, slotProps: {
20
23
  paper: {
21
24
  style: { pointerEvents: 'auto' },
22
25
  onMouseEnter,
@@ -1,23 +1,26 @@
1
+ import type { JexlFilterField } from '../util/jexlFilterRows.ts';
1
2
  import type { JexlFilterModel } from '../util/jexlFilters.ts';
3
+ export type { JexlFilterField } from '../util/jexlFilterRows.ts';
2
4
  export interface JexlFilterExample {
3
5
  code: string;
4
6
  description: string;
5
7
  }
6
8
  /**
7
- * Editor for a list of jexl feature filters (one per line), for any display
8
- * implementing the two-tier {@link JexlFilterModel} contract.
9
+ * Editor for a display's jexl feature filters, for any display implementing
10
+ * the two-tier {@link JexlFilterModel} contract. The Conditions tab shows each
11
+ * line as rows of field, operator and value where it can, and as text where it
12
+ * cannot; the Text tab is every line as text.
9
13
  *
10
- * It takes the display node rather than a filter list and a setter because the
11
- * three plugins offering this row each wrote their own 30-line adapter to
12
- * supply exactly that pair, and the adapters had drifted: one seeded the dialog
13
- * from the *resolved* filters (so config-declared ones showed up and were
14
- * editable) and the others from the raw override (so they did not), and only one
15
- * of them normalized an emptied list. Both are policy this dialog can state
16
- * once — the dialog is where "the box is empty" becomes a value.
14
+ * `fields` lists what the field picker offers, then the columns `metadata`
15
+ * describes, if it is an adapter's `{column: description}` map. Either one
16
+ * given as a promise suspends the dialog until it resolves, so it must not
17
+ * reject.
17
18
  */
18
- declare const JexlFilterDialog: ({ model, handleClose, examples, }: {
19
+ declare const JexlFilterDialog: ({ model, handleClose, examples, fields, metadata, }: {
19
20
  model: JexlFilterModel;
20
21
  handleClose: () => void;
21
22
  examples?: JexlFilterExample[];
23
+ fields?: JexlFilterField[] | Promise<JexlFilterField[]>;
24
+ metadata?: Promise<unknown>;
22
25
  }) => import("react").JSX.Element;
23
26
  export default JexlFilterDialog;
@@ -1,34 +1,19 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useState } from 'react';
1
+ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { use, useState } from 'react';
3
3
  import { getEnv } from '@jbrowse/mobx-state-tree';
4
+ import AddIcon from '@mui/icons-material/Add';
5
+ import { Button, ListItemText, MenuItem, Tab, Tabs, TextField, } from '@mui/material';
4
6
  import { observer } from 'mobx-react';
7
+ import { readConfObject } from '../configuration/readConfObject.js';
8
+ import { addRow, describedColumns, readFilterRows, removeRow, replaceRow, resolveFields, stripJexlPrefix, writeFilterRows, } from '../util/jexlFilterRows.js';
5
9
  import { activeJexlFilters } from '../util/jexlFilters.js';
6
- import { ensureJexlPrefix, stringToJexlExpression, } from '../util/jexlStrings.js';
10
+ import { ensureJexlPrefix } from '../util/jexlStrings.js';
11
+ import { getContainingTrack } from '../util/mstUtils.js';
12
+ import { makeStyles } from '../util/tss-react/index.js';
7
13
  import ExternalLink from './ExternalLink.js';
14
+ import { ConditionRowEditor, TextRowEditor, compileError, } from './JexlFilterRowEditors.js';
8
15
  import MonospaceTextField from './MonospaceTextField.js';
9
16
  import SubmitDialog from './SubmitDialog.js';
10
- // Non-blank, trimmed lines — the filter list excludes blank lines a user leaves
11
- // in the textarea, and the same set is what gets validated.
12
- function filterLines(text) {
13
- return text
14
- .split('\n')
15
- .map(line => line.trim())
16
- .filter(line => !!line);
17
- }
18
- // jexl compile error for the current text, or undefined when every line parses.
19
- // Derived during render (compilation is cached on the instance, so no effect
20
- // needed).
21
- function jexlError(text, jexl) {
22
- try {
23
- for (const line of filterLines(text)) {
24
- stringToJexlExpression(line, jexl);
25
- }
26
- return undefined;
27
- }
28
- catch (e) {
29
- return e;
30
- }
31
- }
32
17
  /**
33
18
  * What a display filtering plain annotation features offers as a starting
34
19
  * point. A display whose features are a richer record — a VCF, say — passes its
@@ -62,33 +47,121 @@ const FEATURE_FILTER_EXAMPLES = [
62
47
  description: 'show only features with length less than 1Mbp',
63
48
  },
64
49
  ];
50
+ const FEATURE_FIELDS = [
51
+ { label: 'name', path: ['name'], type: 'text' },
52
+ { label: 'type', path: ['type'], type: 'text' },
53
+ { label: 'score', path: ['score'], type: 'number' },
54
+ { label: 'start', path: ['start'], type: 'number' },
55
+ { label: 'end', path: ['end'], type: 'number' },
56
+ { label: 'strand', path: ['strand'], type: 'number' },
57
+ ];
58
+ const useStyles = makeStyles()(theme => ({
59
+ body: {
60
+ minHeight: 280,
61
+ },
62
+ tabs: {
63
+ marginBottom: theme.spacing(2),
64
+ },
65
+ hint: {
66
+ marginBottom: theme.spacing(2),
67
+ color: theme.palette.text.secondary,
68
+ },
69
+ examples: {
70
+ minWidth: 220,
71
+ marginBottom: theme.spacing(1),
72
+ },
73
+ }));
74
+ function textLines(text) {
75
+ return text
76
+ .split('\n')
77
+ .map(line => line.trim())
78
+ .filter(line => !!line)
79
+ .map(ensureJexlPrefix);
80
+ }
81
+ function textError(text, jexl) {
82
+ for (const [i, line] of text.split('\n').entries()) {
83
+ const error = line.trim() ? compileError(line, jexl) : undefined;
84
+ if (error) {
85
+ return `Line ${i + 1}: ${error}`;
86
+ }
87
+ }
88
+ return undefined;
89
+ }
90
+ function trackName(model) {
91
+ try {
92
+ return readConfObject(getContainingTrack(model).configuration, 'name');
93
+ }
94
+ catch {
95
+ return undefined;
96
+ }
97
+ }
98
+ function withOneRow(state) {
99
+ return state.rows.length > 0 ? state : addRow(state);
100
+ }
65
101
  /**
66
- * Editor for a list of jexl feature filters (one per line), for any display
67
- * implementing the two-tier {@link JexlFilterModel} contract.
102
+ * Editor for a display's jexl feature filters, for any display implementing
103
+ * the two-tier {@link JexlFilterModel} contract. The Conditions tab shows each
104
+ * line as rows of field, operator and value where it can, and as text where it
105
+ * cannot; the Text tab is every line as text.
68
106
  *
69
- * It takes the display node rather than a filter list and a setter because the
70
- * three plugins offering this row each wrote their own 30-line adapter to
71
- * supply exactly that pair, and the adapters had drifted: one seeded the dialog
72
- * from the *resolved* filters (so config-declared ones showed up and were
73
- * editable) and the others from the raw override (so they did not), and only one
74
- * of them normalized an emptied list. Both are policy this dialog can state
75
- * once — the dialog is where "the box is empty" becomes a value.
107
+ * `fields` lists what the field picker offers, then the columns `metadata`
108
+ * describes, if it is an adapter's `{column: description}` map. Either one
109
+ * given as a promise suspends the dialog until it resolves, so it must not
110
+ * reject.
76
111
  */
77
- const JexlFilterDialog = observer(function JexlFilterDialog({ model, handleClose, examples = FEATURE_FILTER_EXAMPLES, }) {
78
- const jexl = getEnv(model)
79
- .pluginManager.jexl;
80
- const [data, setData] = useState(activeJexlFilters(model).join('\n'));
81
- const error = jexlError(data, jexl);
82
- return (_jsxs(SubmitDialog, { maxWidth: "xl", open: true, title: "Add track filters", submitDisabled: !!error, onCancel: handleClose, onSubmit: () => {
83
- const lines = filterLines(data).map(ensureJexlPrefix);
84
- // An emptied box is "show everything", which is NOT the same as
85
- // following the config slot — it has to survive as a set override, or a
86
- // track whose config declares filters could never have them cleared.
87
- // Clearing the override is the "Clear all filters" menu row's job.
88
- model.setJexlFilters(lines);
112
+ const JexlFilterDialog = observer(function JexlFilterDialog({ model, handleClose, examples = FEATURE_FILTER_EXAMPLES, fields = FEATURE_FIELDS, metadata, }) {
113
+ const { classes } = useStyles();
114
+ const jexl = getEnv(model).pluginManager
115
+ .jexl;
116
+ const fieldList = fields instanceof Promise ? use(fields) : fields;
117
+ const described = metadata && use(metadata);
118
+ const [choices] = useState(() => resolveFields([...fieldList, ...describedColumns(described, fieldList)]));
119
+ const [state, setState] = useState(() => withOneRow(readFilterRows(activeJexlFilters(model), jexl, choices)));
120
+ const [tab, setTab] = useState('conditions');
121
+ const [text, setText] = useState({ value: '', shown: '' });
122
+ const textEdited = text.value !== text.shown;
123
+ const error = tab === 'text'
124
+ ? textError(text.value, jexl)
125
+ : state.rows.some(row => row.kind === 'text' && compileError(row.text, jexl));
126
+ const name = trackName(model);
127
+ return (_jsx(SubmitDialog, { maxWidth: "md", fullWidth: true, open: true, title: name ? `Filter ${name}` : 'Filter features', submitText: "Apply", submitDisabled: !!error, onCancel: handleClose, onSubmit: () => {
128
+ // An emptied list is "show everything", which is NOT the same as
129
+ // following the config slot, so it is set as an override too
130
+ model.setFilter(tab === 'text' && textEdited
131
+ ? textLines(text.value)
132
+ : writeFilterRows(state));
89
133
  handleClose();
90
- }, children: [_jsxs("div", { style: { width: '80em' }, children: ["Add filters, in jexl format, one per line, starting with the string jexl:. Examples:", ' ', _jsx("ul", { children: examples.map(({ code, description }) => (_jsxs("li", { children: [_jsx("code", { children: code }), " - ", description] }, code))) }), _jsxs("p", { children: ["Please see the", ' ', _jsx(ExternalLink, { href: "https://jbrowse.org/jb2/docs/config_guides/jexl/", children: "Jexl" }), ' ', "documentation for more information"] })] }), _jsx(MonospaceTextField, { fullWidth: true, minRows: 5, maxRows: 10, value: data, error: error, onChange: val => {
91
- setData(val);
92
- } })] }));
134
+ }, children: _jsxs("div", { className: classes.body, children: [_jsxs(Tabs, { className: classes.tabs, value: tab, onChange: (_, next) => {
135
+ if (next === 'text') {
136
+ const value = writeFilterRows(state)
137
+ .map(stripJexlPrefix)
138
+ .join('\n');
139
+ setText({ value, shown: value });
140
+ }
141
+ else if (textEdited) {
142
+ setState(withOneRow(readFilterRows(textLines(text.value), jexl, choices)));
143
+ }
144
+ setTab(next);
145
+ }, children: [_jsx(Tab, { value: "conditions", label: "Conditions" }), _jsx(Tab, { value: "text", label: "Text", "data-testid": "jexl-filter-text-tab" })] }), tab === 'conditions' ? (_jsxs(_Fragment, { children: [_jsx("div", { className: classes.hint, children: "Show features that match every condition." }), state.rows.map(row => row.kind === 'text' ? (_jsx(TextRowEditor, { row: row, jexl: jexl, onChange: next => {
146
+ setState(replaceRow(state, next));
147
+ }, onRemove: () => {
148
+ setState(removeRow(state, row.id));
149
+ } }, row.id)) : (_jsx(ConditionRowEditor, { row: row, choices: choices, onChange: next => {
150
+ setState(replaceRow(state, next));
151
+ }, onRemove: () => {
152
+ setState(removeRow(state, row.id));
153
+ } }, row.id))), _jsx(Button, { startIcon: _jsx(AddIcon, {}), onClick: () => {
154
+ setState(addRow(state));
155
+ }, children: "Add condition" })] })) : (_jsxs(_Fragment, { children: [_jsx(TextField, { select: true, size: "small", label: "Insert example\u2026", value: "", className: classes.examples, onChange: event => {
156
+ const code = stripJexlPrefix(event.target.value);
157
+ setText({
158
+ ...text,
159
+ value: text.value.trim()
160
+ ? `${text.value.trimEnd()}\n${code}`
161
+ : code,
162
+ });
163
+ }, children: examples.map(({ code, description }) => (_jsx(MenuItem, { value: code, children: _jsx(ListItemText, { primary: stripJexlPrefix(code), secondary: description }) }, code))) }), _jsx(MonospaceTextField, { fullWidth: true, minRows: 6, maxRows: 14, value: text.value, error: error, helperText: "One filter per line; a feature has to pass every line.", onChange: value => {
164
+ setText({ ...text, value });
165
+ } }), _jsxs("p", { children: ["See the", ' ', _jsx(ExternalLink, { href: "https://jbrowse.org/jb2/docs/config_guides/jexl/", children: "jexl documentation" }), ' ', "for the expression language."] })] }))] }) }));
93
166
  });
94
167
  export default JexlFilterDialog;
@@ -0,0 +1,15 @@
1
+ import type { ConditionRow, FieldChoice, TextRow } from '../util/jexlFilterRows.ts';
2
+ import type { Jexl } from '@jbrowse/jexl';
3
+ export declare function compileError(line: string, jexl: Pick<Jexl, 'compile'>): string | undefined;
4
+ export declare function ConditionRowEditor({ row, choices, onChange, onRemove, }: {
5
+ row: ConditionRow;
6
+ choices: FieldChoice[];
7
+ onChange: (row: ConditionRow) => void;
8
+ onRemove: () => void;
9
+ }): import("react").JSX.Element;
10
+ export declare function TextRowEditor({ row, jexl, onChange, onRemove, }: {
11
+ row: TextRow;
12
+ jexl: Pick<Jexl, 'compile'>;
13
+ onChange: (row: TextRow) => void;
14
+ onRemove: () => void;
15
+ }): import("react").JSX.Element;