@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.11
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.
- package/README.md +1709 -390
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +37 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +49 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +8 -5
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +62 -83
- package/esm/BaseFeatureWidget/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
- package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
- package/esm/BaseFeatureWidget/types.d.ts +12 -6
- package/esm/BaseFeatureWidget/util.d.ts +0 -10
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/CorePlugin.js +34 -3
- package/esm/PluginLoader.d.ts +24 -13
- package/esm/PluginLoader.js +167 -51
- package/esm/PluginManager.d.ts +130 -24
- package/esm/PluginManager.js +180 -32
- package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
- package/esm/ReExports/MuiDataGridReExports.js +2 -2
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +530 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +490 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +68 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +528 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -165
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +3 -0
- package/esm/ReExports/uiStub.js +33 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +11 -0
- package/esm/TextSearch/TextSearchManager.d.ts +27 -13
- package/esm/TextSearch/TextSearchManager.js +77 -36
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +21 -19
- package/esm/assemblyManager/assembly.js +28 -26
- package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
- package/esm/assemblyManager/assemblyAdapters.js +8 -2
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
- package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
- package/esm/assemblyManager/assemblyManager.d.ts +35 -180
- package/esm/assemblyManager/assemblyManager.js +47 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
- package/esm/assemblyManager/geneticCodes.js +2 -5
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
- package/esm/assemblyManager/loadRefNameMap.js +4 -9
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -0
- package/esm/checkPlugins.d.ts +2 -0
- package/esm/checkPlugins.js +38 -17
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +101 -71
- package/esm/configuration/configurationSchema.js +207 -134
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +150 -60
- package/esm/configuration/configurationSlot.js +103 -75
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/fullConfSnapshot.d.ts +4 -19
- package/esm/configuration/fullConfSnapshot.js +30 -52
- package/esm/configuration/getConf.d.ts +45 -41
- package/esm/configuration/getConf.js +111 -44
- package/esm/configuration/index.d.ts +26 -11
- package/esm/configuration/index.js +16 -7
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/plot.d.ts +61 -0
- package/esm/configuration/plot.js +142 -0
- package/esm/configuration/readConfObject.d.ts +2 -24
- package/esm/configuration/readConfObject.js +20 -63
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +32 -15
- package/esm/configuration/schemaRegistry.js +33 -35
- package/esm/configuration/schemaTypes.d.ts +21 -5
- package/esm/configuration/schemaTypes.js +66 -55
- package/esm/configuration/slotFacade.d.ts +12 -29
- package/esm/configuration/slotFacade.js +44 -23
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +30 -4
- package/esm/configuration/tabixIndexFields.js +21 -4
- package/esm/configuration/tabixShorthand.d.ts +34 -17
- package/esm/configuration/tabixShorthand.js +49 -22
- package/esm/configuration/types.d.ts +182 -43
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
- package/esm/data_adapters/BaseAdapter/index.js +1 -0
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
- package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
- package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
- package/esm/data_adapters/BaseAdapter/stats.js +52 -13
- package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
- package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
- package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
- package/esm/data_adapters/dataAdapterCache.js +44 -10
- package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
- package/esm/data_adapters/getFeatureAdapter.js +8 -8
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
- package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
- package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
- package/esm/pluggableElementTypes/AdapterType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
- package/esm/pluggableElementTypes/DisplayType.js +28 -12
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
- package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
- package/esm/pluggableElementTypes/ViewType.js +32 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
- package/esm/pluggableElementTypes/WidgetType.js +6 -0
- package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
- package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
- package/esm/pluggableElementTypes/extendElementType.js +9 -5
- package/esm/pluggableElementTypes/index.d.ts +2 -1
- package/esm/pluggableElementTypes/index.js +2 -9
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
- package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
- package/esm/pluggableElementTypes/models/index.d.ts +2 -3
- package/esm/pluggableElementTypes/models/index.js +2 -3
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/pluginDefinitions.d.ts +34 -7
- package/esm/pluginDefinitions.js +54 -20
- package/esm/rpc/BaseRpcDriver.d.ts +2 -2
- package/esm/rpc/BaseRpcDriver.js +25 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +18 -6
- package/esm/rpc/RpcClient.js +51 -16
- package/esm/rpc/RpcManager.d.ts +14 -10
- package/esm/rpc/RpcManager.js +11 -1
- package/esm/rpc/RpcRegistry.d.ts +40 -7
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
- package/esm/rpc/WebWorkerRpcDriver.js +64 -68
- package/esm/rpc/byteBudget.d.ts +20 -5
- package/esm/rpc/byteBudget.js +16 -5
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +4 -0
- package/esm/rpc/coreRpcMethods.js +4 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
- package/esm/rpc/methods/CoreGetExportData.js +3 -4
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.js +3 -5
- package/esm/rpc/methods/CoreGetRefNames.js +2 -12
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
- package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
- package/esm/rpc/methods/layerFeatures.d.ts +33 -0
- package/esm/rpc/methods/layerFeatures.js +29 -0
- package/esm/svg/SvgExport.js +6 -7
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +28 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +1 -1
- package/esm/svg/svgId.js +1 -1
- package/esm/svg/svgReady.d.ts +9 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +7 -5
- package/esm/svg/trackNames.js +12 -9
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/AddCustomPluginDialog.js +3 -8
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
- package/esm/ui/CascadingMenu.js +181 -104
- package/esm/ui/DropDownMenu.js +2 -1
- package/esm/ui/ErrorBanner.js +1 -1
- package/esm/ui/ErrorBoundary.d.ts +2 -2
- package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
- package/esm/ui/ExportSvgDialog.d.ts +1 -1
- package/esm/ui/FileDropZone.js +2 -1
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -50
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.js +26 -21
- package/esm/ui/LoadingOverlay.d.ts +14 -0
- package/esm/ui/LoadingOverlay.js +4 -2
- package/esm/ui/MenuTypes.d.ts +23 -53
- package/esm/ui/MenuTypes.js +3 -0
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +23 -20
- package/esm/ui/PaletteContext.d.ts +10 -5
- package/esm/ui/PaletteContext.js +44 -6
- package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +8 -2
- package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/util.js +42 -1
- package/esm/ui/ResizeHandle.d.ts +3 -1
- package/esm/ui/ResizeHandle.js +44 -11
- package/esm/ui/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +14 -35
- package/esm/ui/ScrollZoomToggle.d.ts +4 -27
- package/esm/ui/ScrollZoomToggle.js +34 -51
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +1 -0
- package/esm/ui/SettingsChangesTable.js +49 -11
- package/esm/ui/ShareLinkField.d.ts +1 -3
- package/esm/ui/ShareLinkField.js +13 -40
- package/esm/ui/SizeSliderRow.d.ts +1 -3
- package/esm/ui/SizeSliderRow.js +4 -6
- package/esm/ui/SnackbarModel.js +79 -67
- package/esm/ui/StatusProgressBar.js +2 -2
- package/esm/ui/SvgColorLegend.d.ts +9 -4
- package/esm/ui/SvgColorLegend.js +82 -41
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +5 -4
- package/esm/ui/ViewLoadingScreen.js +8 -32
- package/esm/ui/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colors.d.ts +64 -0
- package/esm/ui/colors.js +230 -1
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +12 -12
- package/esm/ui/index.js +14 -22
- package/esm/ui/launchViewMenu.js +15 -5
- package/esm/ui/legendMenuItem.d.ts +10 -32
- package/esm/ui/legendMenuItem.js +9 -36
- package/esm/ui/legendSpec.d.ts +15 -8
- package/esm/ui/legendSpec.js +14 -23
- package/esm/ui/makeSizeMenu.d.ts +0 -6
- package/esm/ui/makeSizeMenu.js +6 -30
- package/esm/ui/measureLegendText.js +1 -1
- package/esm/ui/menuItemAdornment.d.ts +9 -20
- package/esm/ui/menuItemAdornment.js +10 -32
- package/esm/ui/menuItems.d.ts +2 -7
- package/esm/ui/menuItems.js +1 -6
- package/esm/ui/multiTrackMenuItems.d.ts +6 -0
- package/esm/ui/palette.d.ts +118 -116
- package/esm/ui/palette.js +114 -75
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +43 -119
- package/esm/ui/theme.js +62 -78
- package/esm/ui/toggleMenuItems.d.ts +1 -3
- package/esm/ui/toggleMenuItems.js +6 -5
- package/esm/ui/useAssemblySelection.d.ts +4 -4
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +5 -3
- package/esm/util/Base1DUtils.js +14 -6
- package/esm/util/Base1DViewModel.d.ts +2 -1
- package/esm/util/Base1DViewModel.js +3 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +76 -56
- package/esm/util/TimeTraveller.d.ts +3 -0
- package/esm/util/TimeTraveller.js +34 -2
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +88 -6
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -5
- package/esm/util/addAndShowTrack.d.ts +2 -5
- package/esm/util/addAndShowTrack.js +5 -1
- package/esm/util/addRelativeUris.d.ts +17 -5
- package/esm/util/addRelativeUris.js +46 -10
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/addTrackFromWidget.js +5 -4
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.js +46 -13
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandHeight.d.ts +10 -0
- package/esm/util/bandHeight.js +29 -0
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/baseDisplayConfig.d.ts +8 -0
- package/esm/util/baseDisplayConfig.js +27 -0
- package/esm/util/bezierConnector.d.ts +4 -3
- package/esm/util/bezierConnector.js +38 -45
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -0
- package/esm/util/cacheBudgets.d.ts +22 -19
- package/esm/util/cacheBudgets.js +22 -19
- package/esm/util/cachedSetup.d.ts +16 -6
- package/esm/util/cachedSetup.js +108 -38
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/cellMatches.d.ts +23 -0
- package/esm/util/cellMatches.js +264 -0
- package/esm/util/cellsStep.d.ts +29 -0
- package/esm/util/cellsStep.js +437 -0
- package/esm/util/clampToContig.d.ts +17 -0
- package/esm/util/clampToContig.js +19 -0
- package/esm/util/coarseStripHTML.js +1 -2
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +3 -3
- package/esm/util/colorBits.js +19 -44
- package/esm/util/colorRamp.d.ts +49 -5
- package/esm/util/colorRamp.js +169 -18
- package/esm/util/colorScale.d.ts +156 -0
- package/esm/util/colorScale.js +243 -0
- package/esm/util/colorSchemes.d.ts +21 -0
- package/esm/util/colorSchemes.js +30 -0
- package/esm/util/copyToClipboard.js +8 -1
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
- package/esm/util/createSvgRasterCanvas.d.ts +10 -0
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +8 -13
- package/esm/util/expandLooseSearchIndex.d.ts +19 -0
- package/esm/util/expandLooseSearchIndex.js +29 -0
- package/esm/util/featureTable.d.ts +224 -0
- package/esm/util/featureTable.js +366 -0
- package/esm/util/featureTransforms.d.ts +81 -0
- package/esm/util/featureTransforms.js +1231 -0
- package/esm/util/featureTypes.d.ts +24 -0
- package/esm/util/featureTypes.js +35 -0
- package/esm/util/fetchAndMaybeUnzip.js +16 -9
- package/esm/util/fetchContext.d.ts +7 -8
- package/esm/util/fetchContext.js +3 -3
- package/esm/util/fetchHub.d.ts +4 -2
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchPhases.d.ts +10 -10
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/formatBytes.js +1 -1
- package/esm/util/formatGuessers.d.ts +25 -14
- package/esm/util/formatGuessers.js +42 -27
- package/esm/util/formatRelativeTime.js +1 -1
- package/esm/util/freezeDeep.d.ts +8 -10
- package/esm/util/freezeDeep.js +8 -10
- package/esm/util/getLocationUri.d.ts +2 -1
- package/esm/util/getLocationUri.js +8 -2
- package/esm/util/groupKeys.d.ts +76 -0
- package/esm/util/groupKeys.js +156 -0
- package/esm/util/highlights.d.ts +10 -6
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +31 -2
- package/esm/util/hooks.js +72 -3
- package/esm/util/index.d.ts +11 -11
- package/esm/util/index.js +11 -10
- package/esm/util/indexCandidates.d.ts +1 -31
- package/esm/util/indexCandidates.js +5 -63
- package/esm/util/installFetch.d.ts +77 -37
- package/esm/util/installFetch.js +65 -38
- package/esm/util/installInitAutorun.d.ts +14 -13
- package/esm/util/installInitAutorun.js +17 -17
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -0
- package/esm/util/intervals.js +9 -4
- package/esm/util/io/index.js +22 -15
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -0
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +32 -57
- package/esm/util/jexlFilters.js +31 -29
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
- package/esm/util/layouts/GranularRectLayout.js +25 -8
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/lazyWithPreload.d.ts +19 -0
- package/esm/util/lazyWithPreload.js +27 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -0
- package/esm/util/locString.js +5 -2
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +885 -0
- package/esm/util/markEncodingTypes.d.ts +595 -0
- package/esm/util/markEncodingTypes.js +8 -0
- package/esm/util/mst-reflection.d.ts +2 -20
- package/esm/util/mst-reflection.js +3 -53
- package/esm/util/mstUtils.d.ts +31 -23
- package/esm/util/mstUtils.js +39 -24
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.d.ts +5 -0
- package/esm/util/openFeatureWidget.js +2 -2
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -0
- package/esm/util/parentWalk.d.ts +1 -1
- package/esm/util/parentWalk.js +1 -1
- package/esm/util/parseLineByLine.d.ts +4 -5
- package/esm/util/parseLineByLine.js +8 -14
- package/esm/util/pluginStore.d.ts +6 -8
- package/esm/util/pluginStore.js +17 -16
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +22 -22
- package/esm/util/progress.js +27 -26
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +13 -9
- package/esm/util/range.js +17 -8
- package/esm/util/renameRegions.d.ts +26 -6
- package/esm/util/renameRegions.js +68 -54
- package/esm/util/renderToStaticMarkup.js +24 -14
- package/esm/util/rxjs.d.ts +23 -8
- package/esm/util/rxjs.js +61 -15
- package/esm/util/samplesTsv.d.ts +49 -0
- package/esm/util/samplesTsv.js +86 -0
- package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
- package/esm/util/scheduleDetachedDestroy.js +24 -0
- package/esm/util/scrollLatch.d.ts +1 -0
- package/esm/util/scrollLatch.js +8 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -0
- package/esm/util/sessionSharing.d.ts +7 -5
- package/esm/util/sessionSharing.js +23 -23
- package/esm/util/shapeNameList.d.ts +2 -0
- package/esm/util/shapeNameList.js +6 -0
- package/esm/util/shapeNames.d.ts +7 -0
- package/esm/util/shapeNames.js +11 -0
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/springAnimate.js +1 -1
- package/esm/util/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stepTables.d.ts +96 -0
- package/esm/util/stepTables.js +277 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +19 -10
- package/esm/util/tabix.js +19 -14
- package/esm/util/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +26 -26
- package/esm/util/trackConfigDelta.js +63 -47
- package/esm/util/tracks.d.ts +120 -66
- package/esm/util/tracks.js +501 -151
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/data.d.ts +0 -2
- package/esm/util/types/index.d.ts +121 -22
- package/esm/util/types/index.js +9 -0
- package/esm/util/types/mst.d.ts +3 -0
- package/esm/util/types/mst.js +4 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -0
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +53 -0
- package/esm/util/unknownSnapshotKeys.js +76 -0
- package/esm/util/useFeatureSequence.js +5 -5
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +19 -10
- package/esm/util/useFetchPlugins.d.ts +6 -2
- package/esm/util/useFetchPlugins.js +7 -3
- package/esm/util/usePanZoom.js +10 -3
- package/esm/util/usePanelVirtualScroll.d.ts +7 -35
- package/esm/util/usePanelVirtualScroll.js +9 -36
- package/esm/util/useRafCommit.js +1 -0
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -74
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +47 -15
- package/esm/util/viewStatus.js +34 -0
- package/esm/util/wheelZoom.d.ts +7 -1
- package/esm/util/wheelZoom.js +85 -19
- package/esm/util/whenViewSettled.d.ts +55 -8
- package/esm/util/whenViewSettled.js +56 -7
- package/esm/util/withFeatureDetails.js +4 -0
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +75 -24
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -28
- package/esm/configuration/promotableDefaults.d.ts +0 -199
- package/esm/configuration/promotableDefaults.js +0 -326
- package/esm/configuration/promotablePin.d.ts +0 -55
- package/esm/configuration/promotablePin.js +0 -1
- package/esm/configuration/promotableResolve.d.ts +0 -108
- package/esm/configuration/promotableResolve.js +0 -117
- package/esm/configuration/promotableSlots.d.ts +0 -12
- package/esm/configuration/promotableSlots.js +0 -45
- package/esm/configuration/slotShape.d.ts +0 -12
- package/esm/configuration/slotShape.js +0 -84
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/PinAdornment.d.ts +0 -5
- package/esm/ui/PinAdornment.js +0 -79
- package/esm/ui/SvgGradientLegend.d.ts +0 -26
- package/esm/ui/SvgGradientLegend.js +0 -26
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/ui/promotableMenuItems.d.ts +0 -19
- package/esm/ui/promotableMenuItems.js +0 -89
- package/esm/ui/promotablePinCoverage.d.ts +0 -44
- package/esm/ui/promotablePinCoverage.js +0 -87
- package/esm/util/applyInitSettings.d.ts +0 -79
- package/esm/util/applyInitSettings.js +0 -91
- package/esm/util/openDisplays.d.ts +0 -23
- package/esm/util/openDisplays.js +0 -79
- package/esm/util/stopToken.d.ts +0 -211
- package/esm/util/stopToken.js +0 -438
- /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import type PluginManager from '../PluginManager.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnyConfigurationModel } from '../configuration/index.ts';
|
|
3
|
+
import type { ParentFeatureSummary, SimpleFeatureSerialized } from '../util/index.ts';
|
|
3
4
|
import type { SequenceHoverPosition } from './SequenceFeatureDetails/model.ts';
|
|
5
|
+
import type { FormatDetailsTiers } from './formatDetails.ts';
|
|
4
6
|
import type { Descriptors, MaybeSerializedFeat } from './types.tsx';
|
|
5
7
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
6
8
|
/**
|
|
7
9
|
* #stateModel BaseFeatureWidget
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
10
|
+
* The feature-details panel. `featureData` is the clicked feature with the
|
|
11
|
+
* track's and the session's `formatDetails` callbacks applied, derived on read
|
|
12
|
+
* from the raw feature the widget was opened with, so the same widget follows a
|
|
13
|
+
* config edit and survives its track being closed.
|
|
12
14
|
*/
|
|
13
15
|
export declare function stateModelFactory(pluginManager: PluginManager): import("@jbrowse/mobx-state-tree").IModelType<{
|
|
14
16
|
/**
|
|
@@ -21,10 +23,8 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
21
23
|
type: import("@jbrowse/mobx-state-tree").ILiteralType<"BaseFeatureWidget">;
|
|
22
24
|
/**
|
|
23
25
|
* #property
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
/**
|
|
27
|
-
* #property
|
|
26
|
+
* the feature as the click handed it over, before any callback ran.
|
|
27
|
+
* Persisted as `featureData`
|
|
28
28
|
*/
|
|
29
29
|
unformattedFeatureData: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<MaybeSerializedFeat, MaybeSerializedFeat, MaybeSerializedFeat>, [undefined]>;
|
|
30
30
|
/**
|
|
@@ -43,10 +43,6 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
43
43
|
* #property
|
|
44
44
|
*/
|
|
45
45
|
trackType: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<string>>;
|
|
46
|
-
/**
|
|
47
|
-
* #property
|
|
48
|
-
*/
|
|
49
|
-
maxDepth: import("@jbrowse/mobx-state-tree").IMaybe<import("@jbrowse/mobx-state-tree").ISimpleType<number>>;
|
|
50
46
|
/**
|
|
51
47
|
* #property
|
|
52
48
|
*/
|
|
@@ -69,40 +65,57 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
69
65
|
* #property
|
|
70
66
|
*/
|
|
71
67
|
descriptions: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<Descriptors | undefined, Descriptors | undefined, Descriptors | undefined>, [undefined]>;
|
|
68
|
+
/**
|
|
69
|
+
* #property
|
|
70
|
+
* names the feature this one was reached through, when it was reached
|
|
71
|
+
* through one -- a transcript clicked inside its gene
|
|
72
|
+
*/
|
|
73
|
+
parentFeature: import("@jbrowse/mobx-state-tree").IOptionalIType<import("@jbrowse/mobx-state-tree").IType<ParentFeatureSummary | undefined, ParentFeatureSummary | undefined, ParentFeatureSummary | undefined>, [undefined]>;
|
|
72
74
|
}, {
|
|
73
|
-
error: unknown;
|
|
74
75
|
sequenceHoverPosition: SequenceHoverPosition | undefined;
|
|
75
76
|
} & {
|
|
76
77
|
/**
|
|
77
|
-
* #
|
|
78
|
+
* #getter
|
|
79
|
+
* the config the track tier of `formatDetails` reads. The open track's
|
|
80
|
+
* own while it is open; after it is closed, the session's copy of the
|
|
81
|
+
* same config, which is why the widget records `trackId`
|
|
78
82
|
*/
|
|
79
|
-
|
|
83
|
+
readonly trackConfiguration: AnyConfigurationModel | undefined;
|
|
84
|
+
} & {
|
|
85
|
+
readonly formatDetailsTiers: FormatDetailsTiers;
|
|
86
|
+
} & {
|
|
87
|
+
readonly formatted: {
|
|
88
|
+
feature?: SimpleFeatureSerialized;
|
|
89
|
+
error?: Error;
|
|
90
|
+
};
|
|
80
91
|
/**
|
|
81
|
-
* #
|
|
92
|
+
* #getter
|
|
93
|
+
* levels of subfeature card the panel renders; unset means no limit
|
|
82
94
|
*/
|
|
83
|
-
|
|
95
|
+
readonly maxDepth: number | undefined;
|
|
96
|
+
} & {
|
|
84
97
|
/**
|
|
85
|
-
* #
|
|
98
|
+
* #getter
|
|
99
|
+
* the feature with every `formatDetails` callback applied
|
|
86
100
|
*/
|
|
87
|
-
|
|
101
|
+
readonly featureData: SimpleFeatureSerialized | undefined;
|
|
88
102
|
/**
|
|
89
|
-
* #
|
|
103
|
+
* #getter
|
|
90
104
|
*/
|
|
91
|
-
|
|
105
|
+
readonly error: Error | undefined;
|
|
106
|
+
} & {
|
|
92
107
|
/**
|
|
93
108
|
* #action
|
|
94
109
|
*/
|
|
95
|
-
|
|
110
|
+
setSequenceHoverPosition(pos: SequenceHoverPosition | undefined): void;
|
|
96
111
|
/**
|
|
97
112
|
* #action
|
|
98
113
|
*/
|
|
99
|
-
|
|
114
|
+
setFeatureData(featureData: SimpleFeatureSerialized): void;
|
|
100
115
|
/**
|
|
101
116
|
* #action
|
|
102
117
|
*/
|
|
103
|
-
|
|
104
|
-
} & {
|
|
105
|
-
afterCreate(): void;
|
|
118
|
+
clearFeatureData(): void;
|
|
106
119
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, {
|
|
107
120
|
id: string;
|
|
108
121
|
type: "BaseFeatureWidget";
|
|
@@ -110,10 +123,10 @@ export declare function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
110
123
|
track: import("@jbrowse/mobx-state-tree").ReferenceIdentifier | undefined;
|
|
111
124
|
trackId: string | undefined;
|
|
112
125
|
trackType: string | undefined;
|
|
113
|
-
maxDepth: number | undefined;
|
|
114
126
|
sequenceFeatureDetails: import("@jbrowse/mobx-state-tree").ModelSnapshotType<{}>;
|
|
115
127
|
descriptions: Descriptors | undefined;
|
|
116
|
-
|
|
128
|
+
parentFeature: ParentFeatureSummary | undefined;
|
|
129
|
+
featureData: MaybeSerializedFeat;
|
|
117
130
|
}>;
|
|
118
131
|
export type BaseFeatureWidgetStateModel = ReturnType<typeof stateModelFactory>;
|
|
119
132
|
export type BaseFeatureWidgetModel = Instance<BaseFeatureWidgetStateModel>;
|
|
@@ -1,16 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { getEnv, isStateTreeNode, types } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { hydrateTrackConfig } from '../configuration/index.js';
|
|
3
3
|
import { getSession } from '../util/index.js';
|
|
4
4
|
import { ElementId } from '../util/types/mst.js';
|
|
5
5
|
import { SequenceFeatureDetailsF } from './SequenceFeatureDetails/model.js';
|
|
6
6
|
import { applyFormatDetails, formatDetailsNumber } from './formatDetails.js';
|
|
7
|
-
|
|
7
|
+
function isTrackNode(thing) {
|
|
8
|
+
return isStateTreeNode(thing) && 'type' in thing && 'configuration' in thing;
|
|
9
|
+
}
|
|
8
10
|
/**
|
|
9
11
|
* #stateModel BaseFeatureWidget
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
*
|
|
12
|
+
* The feature-details panel. `featureData` is the clicked feature with the
|
|
13
|
+
* track's and the session's `formatDetails` callbacks applied, derived on read
|
|
14
|
+
* from the raw feature the widget was opened with, so the same widget follows a
|
|
15
|
+
* config edit and survives its track being closed.
|
|
14
16
|
*/
|
|
15
17
|
export function stateModelFactory(pluginManager) {
|
|
16
18
|
return types
|
|
@@ -25,10 +27,8 @@ export function stateModelFactory(pluginManager) {
|
|
|
25
27
|
type: types.literal('BaseFeatureWidget'),
|
|
26
28
|
/**
|
|
27
29
|
* #property
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* #property
|
|
30
|
+
* the feature as the click handed it over, before any callback ran.
|
|
31
|
+
* Persisted as `featureData`
|
|
32
32
|
*/
|
|
33
33
|
unformattedFeatureData: types.optional(types.frozen(), undefined),
|
|
34
34
|
/**
|
|
@@ -50,27 +50,94 @@ export function stateModelFactory(pluginManager) {
|
|
|
50
50
|
/**
|
|
51
51
|
* #property
|
|
52
52
|
*/
|
|
53
|
-
|
|
53
|
+
sequenceFeatureDetails: types.optional(SequenceFeatureDetailsF(), {}),
|
|
54
54
|
/**
|
|
55
55
|
* #property
|
|
56
56
|
*/
|
|
57
|
-
|
|
57
|
+
descriptions: types.optional(types.frozen(), undefined),
|
|
58
58
|
/**
|
|
59
59
|
* #property
|
|
60
|
+
* names the feature this one was reached through, when it was reached
|
|
61
|
+
* through one -- a transcript clicked inside its gene
|
|
60
62
|
*/
|
|
61
|
-
|
|
63
|
+
parentFeature: types.optional(types.frozen(), undefined),
|
|
62
64
|
})
|
|
63
65
|
.volatile(() => ({
|
|
64
|
-
/**
|
|
65
|
-
* #volatile
|
|
66
|
-
*/
|
|
67
|
-
error: undefined,
|
|
68
66
|
/**
|
|
69
67
|
* #volatile
|
|
70
68
|
* genomic base currently hovered in this widget's sequence panel, read by
|
|
71
69
|
* the LGV crosshair overlay
|
|
72
70
|
*/
|
|
73
71
|
sequenceHoverPosition: undefined,
|
|
72
|
+
}))
|
|
73
|
+
.views(self => ({
|
|
74
|
+
/**
|
|
75
|
+
* #getter
|
|
76
|
+
* the config the track tier of `formatDetails` reads. The open track's
|
|
77
|
+
* own while it is open; after it is closed, the session's copy of the
|
|
78
|
+
* same config, which is why the widget records `trackId`
|
|
79
|
+
*/
|
|
80
|
+
get trackConfiguration() {
|
|
81
|
+
const { track, trackId } = self;
|
|
82
|
+
if (track) {
|
|
83
|
+
return track.configuration;
|
|
84
|
+
}
|
|
85
|
+
if (!trackId) {
|
|
86
|
+
return undefined;
|
|
87
|
+
}
|
|
88
|
+
const conf = getSession(self).getTrackById(trackId);
|
|
89
|
+
return conf === undefined || isStateTreeNode(conf)
|
|
90
|
+
? conf
|
|
91
|
+
: hydrateTrackConfig(getEnv(self).pluginManager, conf);
|
|
92
|
+
},
|
|
93
|
+
}))
|
|
94
|
+
.views(self => ({
|
|
95
|
+
get formatDetailsTiers() {
|
|
96
|
+
return {
|
|
97
|
+
session: getSession(self).configuration,
|
|
98
|
+
track: self.trackConfiguration,
|
|
99
|
+
};
|
|
100
|
+
},
|
|
101
|
+
}))
|
|
102
|
+
.views(self => ({
|
|
103
|
+
get formatted() {
|
|
104
|
+
const { unformattedFeatureData } = self;
|
|
105
|
+
if (!unformattedFeatureData) {
|
|
106
|
+
return {};
|
|
107
|
+
}
|
|
108
|
+
try {
|
|
109
|
+
return {
|
|
110
|
+
feature: applyFormatDetails(self.formatDetailsTiers, unformattedFeatureData),
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
catch (e) {
|
|
114
|
+
const error = new Error(`Error running the formatDetails callbacks: ${e}`, { cause: e });
|
|
115
|
+
console.error(error);
|
|
116
|
+
return { error };
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
/**
|
|
120
|
+
* #getter
|
|
121
|
+
* levels of subfeature card the panel renders; unset means no limit
|
|
122
|
+
*/
|
|
123
|
+
get maxDepth() {
|
|
124
|
+
return formatDetailsNumber(self.formatDetailsTiers, 'maxDepth');
|
|
125
|
+
},
|
|
126
|
+
}))
|
|
127
|
+
.views(self => ({
|
|
128
|
+
/**
|
|
129
|
+
* #getter
|
|
130
|
+
* the feature with every `formatDetails` callback applied
|
|
131
|
+
*/
|
|
132
|
+
get featureData() {
|
|
133
|
+
return self.formatted.feature;
|
|
134
|
+
},
|
|
135
|
+
/**
|
|
136
|
+
* #getter
|
|
137
|
+
*/
|
|
138
|
+
get error() {
|
|
139
|
+
return self.formatted.error;
|
|
140
|
+
},
|
|
74
141
|
}))
|
|
75
142
|
.actions(self => ({
|
|
76
143
|
/**
|
|
@@ -99,96 +166,29 @@ export function stateModelFactory(pluginManager) {
|
|
|
99
166
|
* #action
|
|
100
167
|
*/
|
|
101
168
|
clearFeatureData() {
|
|
102
|
-
self.
|
|
103
|
-
},
|
|
104
|
-
/**
|
|
105
|
-
* #action
|
|
106
|
-
*/
|
|
107
|
-
setFormattedData(feat) {
|
|
108
|
-
self.featureData = feat;
|
|
109
|
-
},
|
|
110
|
-
/**
|
|
111
|
-
* #action
|
|
112
|
-
*/
|
|
113
|
-
setTrackInfo(type, trackId) {
|
|
114
|
-
self.trackId = trackId;
|
|
115
|
-
self.trackType = type;
|
|
116
|
-
},
|
|
117
|
-
/**
|
|
118
|
-
* #action
|
|
119
|
-
*/
|
|
120
|
-
setMaxDepth(maxDepth) {
|
|
121
|
-
self.maxDepth = maxDepth;
|
|
122
|
-
},
|
|
123
|
-
/**
|
|
124
|
-
* #action
|
|
125
|
-
*/
|
|
126
|
-
setError(e) {
|
|
127
|
-
self.error = e;
|
|
128
|
-
},
|
|
129
|
-
}))
|
|
130
|
-
.actions(self => ({
|
|
131
|
-
afterCreate() {
|
|
132
|
-
addDisposer(self, autorun(function featureWidgetAutorun() {
|
|
133
|
-
const { track } = self;
|
|
134
|
-
// read before any config read so the catch below can attribute
|
|
135
|
-
// the failure without repeating one that may be what threw
|
|
136
|
-
let trackId;
|
|
137
|
-
try {
|
|
138
|
-
const { unformattedFeatureData } = self;
|
|
139
|
-
const session = getSession(self);
|
|
140
|
-
if (track) {
|
|
141
|
-
trackId = track.configuration.trackId;
|
|
142
|
-
self.setTrackInfo(track.type, trackId);
|
|
143
|
-
}
|
|
144
|
-
// both tiers apply: a widget can outlive its track
|
|
145
|
-
// (safeReference) or never have had one, and the session-wide
|
|
146
|
-
// `configuration.formatDetails` still means something. The
|
|
147
|
-
// reads stay here in the autorun body rather than moving into
|
|
148
|
-
// an action, which would run untracked
|
|
149
|
-
const tiers = { session, track };
|
|
150
|
-
// an unset maxDepth is the meaningful value, not a missing one:
|
|
151
|
-
// the panel reads it as no nesting limit
|
|
152
|
-
self.setMaxDepth(formatDetailsNumber(tiers, 'maxDepth'));
|
|
153
|
-
if (unformattedFeatureData) {
|
|
154
|
-
self.setFormattedData(applyFormatDetails(tiers, unformattedFeatureData));
|
|
155
|
-
}
|
|
156
|
-
}
|
|
157
|
-
catch (e) {
|
|
158
|
-
// jexl throws a bare parse/eval message with nothing naming the
|
|
159
|
-
// slot or the config it came from, and this banner replaces the
|
|
160
|
-
// whole panel -- say where to look
|
|
161
|
-
const where = trackId
|
|
162
|
-
? `track "${trackId}"`
|
|
163
|
-
: 'the session configuration';
|
|
164
|
-
const err = new Error(`Error running the formatDetails callbacks for ${where}: ${e}`, { cause: e });
|
|
165
|
-
console.error(err);
|
|
166
|
-
self.setError(err);
|
|
167
|
-
}
|
|
168
|
-
}, { name: 'FeatureWidget' }));
|
|
169
|
+
self.unformattedFeatureData = undefined;
|
|
169
170
|
},
|
|
170
171
|
}))
|
|
171
172
|
.preProcessSnapshot((snap) => {
|
|
172
|
-
|
|
173
|
-
//
|
|
174
|
-
|
|
173
|
+
const { featureData, ...rest } = snap ?? {};
|
|
174
|
+
// here rather than in afterAttach: a second feature opened into the same
|
|
175
|
+
// widget id reconciles onto the existing node, which never re-attaches
|
|
176
|
+
const { track } = rest;
|
|
175
177
|
return {
|
|
176
178
|
unformattedFeatureData: featureData,
|
|
177
|
-
|
|
179
|
+
...(isTrackNode(track)
|
|
180
|
+
? { trackId: track.configuration.trackId, trackType: track.type }
|
|
181
|
+
: {}),
|
|
178
182
|
...rest,
|
|
179
183
|
};
|
|
180
184
|
})
|
|
181
185
|
.postProcessSnapshot(snap => {
|
|
182
|
-
const { unformattedFeatureData,
|
|
183
|
-
//
|
|
184
|
-
const
|
|
185
|
-
const
|
|
186
|
-
// `finalizedFeatureData` is persisted (rather than `featureData`) so
|
|
187
|
-
// loading from snapshot doesn't re-run the formatter callbacks
|
|
186
|
+
const { unformattedFeatureData, ...rest } = snap;
|
|
187
|
+
// undefined when there is no feature
|
|
188
|
+
const json = JSON.stringify(unformattedFeatureData);
|
|
189
|
+
const tooLargeToPersist = !json || json.length > 2_000_000;
|
|
188
190
|
return {
|
|
189
|
-
|
|
190
|
-
? undefined
|
|
191
|
-
: JSON.parse(s2),
|
|
191
|
+
featureData: tooLargeToPersist ? undefined : unformattedFeatureData,
|
|
192
192
|
...rest,
|
|
193
193
|
};
|
|
194
194
|
});
|
|
@@ -1,23 +1,29 @@
|
|
|
1
|
+
import type { MenuItem } from '../ui/MenuTypes.ts';
|
|
1
2
|
import type { SimpleFeatureSerialized } from '../util/simpleFeature.ts';
|
|
2
|
-
import type {
|
|
3
|
+
import type { SequenceFeatureDetailsModel, SequenceHoverTarget } from './SequenceFeatureDetails/model.ts';
|
|
4
|
+
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
3
5
|
import type React from 'react';
|
|
6
|
+
export interface FeatureDetailsModel extends IStateTreeNode, SequenceHoverTarget {
|
|
7
|
+
maxDepth: number | undefined;
|
|
8
|
+
sequenceFeatureDetails: SequenceFeatureDetailsModel;
|
|
9
|
+
view: {
|
|
10
|
+
assemblyNames: string[];
|
|
11
|
+
} | undefined;
|
|
12
|
+
}
|
|
4
13
|
export interface Descriptors {
|
|
5
14
|
[key: string]: React.ReactNode | Descriptors;
|
|
6
15
|
}
|
|
7
16
|
export type FeatureFormatter = (value: unknown, key: string, index?: number) => React.ReactNode;
|
|
17
|
+
/** Menu items for one attribute's value, offered from a button on its row. */
|
|
18
|
+
export type FieldActions = (path: string[], value: unknown) => MenuItem[];
|
|
8
19
|
export interface BaseProps extends BaseCardProps {
|
|
9
20
|
feature: SimpleFeatureSerialized;
|
|
10
21
|
formatter?: FeatureFormatter;
|
|
11
22
|
descriptions?: Descriptors;
|
|
12
|
-
model?: BaseFeatureWidgetModel;
|
|
13
23
|
}
|
|
14
24
|
export interface BaseCardProps {
|
|
15
25
|
title?: string;
|
|
16
26
|
defaultExpanded?: boolean;
|
|
17
27
|
children?: React.ReactNode;
|
|
18
28
|
}
|
|
19
|
-
export interface SerializedFeat {
|
|
20
|
-
[key: string]: unknown;
|
|
21
|
-
subfeatures?: Record<string, unknown>[];
|
|
22
|
-
}
|
|
23
29
|
export type MaybeSerializedFeat = SimpleFeatureSerialized | undefined;
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { SerializedFeat } from './types.tsx';
|
|
2
1
|
export interface Feat {
|
|
3
2
|
start: number;
|
|
4
3
|
end: number;
|
|
@@ -7,13 +6,6 @@ export interface Feat {
|
|
|
7
6
|
id?: string | number;
|
|
8
7
|
phase?: number;
|
|
9
8
|
}
|
|
10
|
-
export interface ParentFeat extends Feat {
|
|
11
|
-
uniqueId: string;
|
|
12
|
-
strand?: number;
|
|
13
|
-
refName: string;
|
|
14
|
-
subfeatures?: Feat[];
|
|
15
|
-
parentId?: string;
|
|
16
|
-
}
|
|
17
9
|
export interface SeqState {
|
|
18
10
|
seq: string;
|
|
19
11
|
upstream?: string;
|
|
@@ -25,5 +17,3 @@ export interface ErrorState {
|
|
|
25
17
|
export declare function filterSuccessiveElementsWithSameStartAndEndCoord(list: Feat[]): Feat[];
|
|
26
18
|
export declare function ellipses(slug: string): string;
|
|
27
19
|
export declare function getStrandStr(strand: number | undefined): "" | "(+)" | "(-)";
|
|
28
|
-
export declare const nullReplacer: (_: string, v: unknown) => {} | null;
|
|
29
|
-
export declare function formatSubfeatures(obj: SerializedFeat, depth: number, parse: (obj: Record<string, unknown>) => void, currentDepth?: number): void;
|
|
@@ -12,20 +12,3 @@ export function ellipses(slug) {
|
|
|
12
12
|
export function getStrandStr(strand) {
|
|
13
13
|
return strand === -1 ? '(-)' : strand === 1 ? '(+)' : '';
|
|
14
14
|
}
|
|
15
|
-
// JSON only serializes null, not undefined; feature fields are hidden by a
|
|
16
|
-
// formatDetails callback returning undefined (jexl can't produce null), so when
|
|
17
|
-
// persisting we round-trip undefined to null to keep the field hidden after
|
|
18
|
-
// reload (detail components filter with `!= null`). see config guide.
|
|
19
|
-
export const nullReplacer = (_, v) => v === undefined ? null : v;
|
|
20
|
-
// `depth` is how many levels of subfeature the `formatDetails.subfeatures`
|
|
21
|
-
// callback runs on, counted from the clicked feature. The caller resolves it
|
|
22
|
-
// across the session and track tiers and passes 0 when neither declares one, so
|
|
23
|
-
// a config with no formatDetails schema formats nothing rather than every level
|
|
24
|
-
export function formatSubfeatures(obj, depth, parse, currentDepth = 0) {
|
|
25
|
-
if (currentDepth < depth) {
|
|
26
|
-
for (const sub of obj.subfeatures ?? []) {
|
|
27
|
-
formatSubfeatures(sub, depth, parse, currentDepth + 1);
|
|
28
|
-
parse(sub);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
}
|
package/esm/CorePlugin.js
CHANGED
|
@@ -1,10 +1,40 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { trackTypeForAdapter } from '@jbrowse/add-track-core';
|
|
2
2
|
import { configSchema, stateModelFactory } from './BaseFeatureWidget/index.js';
|
|
3
3
|
import Plugin from './Plugin.js';
|
|
4
4
|
import CytobandAdapterF from './data_adapters/CytobandAdapter/index.js';
|
|
5
5
|
import WidgetType from './pluggableElementTypes/WidgetType.js';
|
|
6
6
|
import * as coreRpcMethods from './rpc/coreRpcMethods.js';
|
|
7
|
-
import {
|
|
7
|
+
import { guessTrackConfFromTable } from './util/formatGuessers.js';
|
|
8
|
+
import { getFileName } from './util/getFileName.js';
|
|
9
|
+
import { lazyWithPreload } from './util/lazyWithPreload.js';
|
|
10
|
+
import { addAdapterGuesser, addTrackTypeGuesser } from './util/tracks.js';
|
|
11
|
+
/**
|
|
12
|
+
* Guess every format `@jbrowse/add-track-core`'s table describes — the same
|
|
13
|
+
* table `@jbrowse/cli`'s `add-track` reads, so a file resolves to the same
|
|
14
|
+
* adapter config in the app and on the command line.
|
|
15
|
+
*
|
|
16
|
+
* Whether a build can open a format is decided by `hasAdapterType`, not by the
|
|
17
|
+
* table: guessing `BamAdapter` in a build with no alignments plugin writes a
|
|
18
|
+
* track config that fails at render. A plugin therefore registers its adapters
|
|
19
|
+
* and nothing else — there is no format list to keep in step. ADR-077.
|
|
20
|
+
*
|
|
21
|
+
* `CorePlugin` installs this first, so any `addAdapterGuesser` a plugin
|
|
22
|
+
* registers is later in the chain and wins over the table. That is how a format
|
|
23
|
+
* the table cannot express is added, and how a third-party plugin claims one.
|
|
24
|
+
*/
|
|
25
|
+
// #region installFormatGuessers
|
|
26
|
+
function installFormatGuessers(pluginManager) {
|
|
27
|
+
addAdapterGuesser(pluginManager, (file, index, adapterHint) => {
|
|
28
|
+
const adapter = guessTrackConfFromTable(file, index, adapterHint)?.adapter;
|
|
29
|
+
return adapter && pluginManager.hasAdapterType(adapter.type)
|
|
30
|
+
? adapter
|
|
31
|
+
: undefined;
|
|
32
|
+
});
|
|
33
|
+
addTrackTypeGuesser(pluginManager, (adapterName, file) => pluginManager.hasAdapterType(adapterName)
|
|
34
|
+
? trackTypeForAdapter(adapterName, file && getFileName(file))
|
|
35
|
+
: undefined);
|
|
36
|
+
}
|
|
37
|
+
// #endregion
|
|
8
38
|
// the core plugin, which registers types that ALL JBrowse applications are
|
|
9
39
|
// expected to need.
|
|
10
40
|
export default class CorePlugin extends Plugin {
|
|
@@ -19,10 +49,11 @@ export default class CorePlugin extends Plugin {
|
|
|
19
49
|
pluginManager.addWidgetType(() => {
|
|
20
50
|
return new WidgetType({
|
|
21
51
|
name: 'BaseFeatureWidget',
|
|
52
|
+
discardOnClose: true,
|
|
22
53
|
heading: 'Feature details',
|
|
23
54
|
configSchema,
|
|
24
55
|
stateModel: stateModelFactory(pluginManager),
|
|
25
|
-
ReactComponent:
|
|
56
|
+
ReactComponent: lazyWithPreload(() => import('./BaseFeatureWidget/BaseFeatureDetail/index.js')),
|
|
26
57
|
});
|
|
27
58
|
});
|
|
28
59
|
}
|
package/esm/PluginLoader.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import type { PluginConstructor } from './Plugin.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { ESMPluginDefinition, LegacyUMDPluginDefinition, PluginDefinition, UMDPluginDefinition } from './pluginDefinitions.ts';
|
|
3
3
|
export interface PluginRecord {
|
|
4
4
|
plugin: PluginConstructor;
|
|
5
5
|
definition: PluginDefinition;
|
|
6
6
|
}
|
|
7
|
+
export type ReExportRegistryLoader = () => Promise<{
|
|
8
|
+
default: Record<string, unknown>;
|
|
9
|
+
}>;
|
|
7
10
|
export interface LoadedPlugin {
|
|
8
11
|
default: PluginConstructor;
|
|
9
12
|
}
|
|
@@ -12,33 +15,41 @@ export interface PluginLoadFailure {
|
|
|
12
15
|
definition: PluginDefinition;
|
|
13
16
|
error: unknown;
|
|
14
17
|
}
|
|
18
|
+
export declare function workerScriptLoadMessage(scriptUrl: string, error: unknown): string;
|
|
19
|
+
/**
|
|
20
|
+
* The registry has to be published before a plugin bundle runs, but not before
|
|
21
|
+
* it downloads, so each bundle is preloaded while the registry is fetched.
|
|
22
|
+
* Skipped under the cache-buster, whose query string differs per request.
|
|
23
|
+
*
|
|
24
|
+
* Exported for a worker told its plugins ahead of its boot configuration.
|
|
25
|
+
*/
|
|
26
|
+
export declare function preloadUMDBundles(defs: PluginDefinition[], baseUri?: string): void;
|
|
15
27
|
export default class PluginLoader {
|
|
16
28
|
definitions: PluginDefinition[];
|
|
17
29
|
fetchESM?: (url: string) => Promise<LoadedPlugin>;
|
|
18
|
-
fetchCJS?: (url: string) => Promise<LoadedPlugin>;
|
|
19
30
|
constructor(defs?: PluginDefinition[], args?: {
|
|
20
31
|
fetchESM?: (url: string) => Promise<LoadedPlugin>;
|
|
21
|
-
fetchCJS?: (url: string) => Promise<LoadedPlugin>;
|
|
22
32
|
});
|
|
23
|
-
loadCJSPlugin(def: CJSPluginDefinition, baseUri?: string): Promise<LoadedPlugin>;
|
|
24
33
|
loadESMPlugin(def: ESMPluginDefinition, baseUri?: string): Promise<LoadedPlugin>;
|
|
25
34
|
loadUMDPlugin(def: UMDPluginDefinition | LegacyUMDPluginDefinition, baseUri?: string): Promise<{
|
|
26
35
|
default: PluginConstructor;
|
|
27
36
|
}>;
|
|
28
37
|
loadPlugin(def: PluginDefinition, baseUri?: string): Promise<PluginConstructor>;
|
|
29
|
-
private
|
|
38
|
+
private reExports;
|
|
30
39
|
/**
|
|
31
40
|
* Ask for the runtime ABI (`JBrowseExports`) to be published on `target`
|
|
32
|
-
* before any plugin bundle is evaluated. Records the target
|
|
33
|
-
*
|
|
41
|
+
* before any plugin bundle is evaluated. Records the target and the loader;
|
|
42
|
+
* `loadSettled` fetches the registry, a ~126 KB gzipped module only a runtime
|
|
43
|
+
* plugin can use (see `ReExports/registry.ts` for why it cannot shrink).
|
|
34
44
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
45
|
+
* `registry` is the product's generated map — `reExports.generated.ts` on
|
|
46
|
+
* the main thread, `workerReExports.generated.ts` in its worker — which
|
|
47
|
+
* serves every `@jbrowse` package the product bundles. The caller names it
|
|
48
|
+
* because the registry serves this module: an `import()` of it from here is
|
|
49
|
+
* a cycle rolldown keeps in any host bundling this file, whether or not
|
|
50
|
+
* anything loads a plugin (EAGER_BUNDLE.md §3).
|
|
40
51
|
*/
|
|
41
|
-
installGlobalReExports(target: WindowOrWorkerGlobalScope): this;
|
|
52
|
+
installGlobalReExports(target: WindowOrWorkerGlobalScope, registry: ReExportRegistryLoader): this;
|
|
42
53
|
private publishReExports;
|
|
43
54
|
/**
|
|
44
55
|
* Loads every definition and separates the ones that worked from the ones
|