@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.
- package/README.md +1476 -265
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
- 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 +16 -9
- 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 +50 -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/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 +2 -2
- 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 +528 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +488 -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 +527 -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 +24 -11
- package/esm/configuration/index.js +15 -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/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 +46 -16
- package/esm/pluggableElementTypes/DisplayType.js +22 -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/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 +1 -1
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +65 -27
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +72 -10
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +85 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +53 -10
- 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 -49
- 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/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/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 +1 -1
- package/esm/util/cachedSetup.js +2 -2
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -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/{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 +80 -0
- package/esm/util/featureTransforms.js +1579 -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/freezeDeep.d.ts +8 -10
- package/esm/util/freezeDeep.js +8 -10
- package/esm/util/groupKeys.d.ts +77 -0
- package/esm/util/groupKeys.js +155 -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/io/index.js +19 -14
- 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 +20 -27
- package/esm/util/jexlFilters.js +23 -11
- 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/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +845 -0
- package/esm/util/markEncodingTypes.d.ts +588 -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/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stepTables.d.ts +82 -0
- package/esm/util/stepTables.js +243 -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 +13 -8
- package/esm/util/tabix.js +17 -12
- 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 +121 -40
- package/esm/util/tracks.js +497 -112
- 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 +51 -0
- package/esm/util/unknownSnapshotKeys.js +82 -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/usePanelVirtualScroll.d.ts +7 -35
- package/esm/util/usePanelVirtualScroll.js +9 -36
- 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/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +70 -20
- 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
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { pathSubject, printCondition } from '@jbrowse/jexl';
|
|
2
|
+
import { activeJexlFilters } from '../../util/jexlFilters.js';
|
|
3
|
+
import { ensureJexlPrefix } from '../../util/jexlStrings.js';
|
|
4
|
+
import { getNotificationSink } from '../../util/sessionServices.js';
|
|
5
|
+
const MAX_LABEL_VALUE = 30;
|
|
6
|
+
export function isJexlFilterDisplay(thing) {
|
|
7
|
+
return (typeof thing === 'object' &&
|
|
8
|
+
thing !== null &&
|
|
9
|
+
'setFilter' in thing &&
|
|
10
|
+
'configuredFilters' in thing);
|
|
11
|
+
}
|
|
12
|
+
/** The first of a track's displays that takes jexl filters. */
|
|
13
|
+
export function jexlFilterDisplay(track) {
|
|
14
|
+
return track?.displays.find(isJexlFilterDisplay);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* "Show only" and "Hide" items for one feature attribute's value, and "Show
|
|
18
|
+
* only ≥" for a number. Each appends a filter line to the display and offers
|
|
19
|
+
* an undo.
|
|
20
|
+
*/
|
|
21
|
+
export function filterByValueItems(display, path, value) {
|
|
22
|
+
if (typeof value !== 'string' && typeof value !== 'number') {
|
|
23
|
+
return [];
|
|
24
|
+
}
|
|
25
|
+
const field = path.join('.');
|
|
26
|
+
const text = String(value);
|
|
27
|
+
const shown = text.length > MAX_LABEL_VALUE ? `${text.slice(0, MAX_LABEL_VALUE)}…` : text;
|
|
28
|
+
const add = (op) => () => {
|
|
29
|
+
const previous = display.filterSetting;
|
|
30
|
+
const line = printCondition({
|
|
31
|
+
subject: pathSubject('feature', path),
|
|
32
|
+
op,
|
|
33
|
+
value,
|
|
34
|
+
});
|
|
35
|
+
display.setFilter([...activeJexlFilters(display), ensureJexlPrefix(line)]);
|
|
36
|
+
getNotificationSink(display).notify('Filter added', 'info', {
|
|
37
|
+
name: 'Undo',
|
|
38
|
+
onClick: () => {
|
|
39
|
+
display.setFilter(previous && [...previous]);
|
|
40
|
+
},
|
|
41
|
+
});
|
|
42
|
+
};
|
|
43
|
+
return [
|
|
44
|
+
{ label: `Show only ${field} = ${shown}`, onClick: add('==') },
|
|
45
|
+
{ label: `Hide ${field} = ${shown}`, onClick: add('!=') },
|
|
46
|
+
...(typeof value === 'number'
|
|
47
|
+
? [{ label: `Show only ${field} ≥ ${shown}`, onClick: add('>=') }]
|
|
48
|
+
: []),
|
|
49
|
+
];
|
|
50
|
+
}
|
|
@@ -1,11 +1,3 @@
|
|
|
1
1
|
export declare function isEmpty(obj: Record<string, unknown>): boolean;
|
|
2
|
-
export declare function applyFeatureFormatting<T extends {
|
|
3
|
-
__jbrowsefmt?: Record<string, unknown>;
|
|
4
|
-
}>(feature: T): T & {
|
|
5
|
-
[x: string]: unknown;
|
|
6
|
-
};
|
|
7
|
-
export declare function isFormattedField(feature: {
|
|
8
|
-
__jbrowsefmt?: Record<string, unknown>;
|
|
9
|
-
}, key: string): boolean;
|
|
10
2
|
export declare function generateTitle(name: unknown, id: unknown, type: unknown): string;
|
|
11
3
|
export declare function accessNested(arr: string[], obj?: Record<string, unknown>): string | undefined;
|
|
@@ -1,40 +1,17 @@
|
|
|
1
|
-
import { isObject } from '../../util/index.js';
|
|
1
|
+
import { coarseStripHTML, isObject } from '../../util/index.js';
|
|
2
2
|
import { ellipses } from '../util.js';
|
|
3
3
|
export function isEmpty(obj) {
|
|
4
4
|
return Object.keys(obj).length === 0;
|
|
5
5
|
}
|
|
6
|
-
// The view the details panel renders: raw feature fields with the
|
|
7
|
-
// formatDetails-callback output (`__jbrowsefmt`) merged on top, so a callback
|
|
8
|
-
// value overrides the raw one. A field the callback sets to null/undefined then
|
|
9
|
-
// drops out of the panel's `!= null` filters — this is how callbacks hide
|
|
10
|
-
// fields. `__jbrowsefmt` itself is in Attributes' globalOmit, so it never
|
|
11
|
-
// renders.
|
|
12
|
-
export function applyFeatureFormatting(feature) {
|
|
13
|
-
return { ...feature, ...feature.__jbrowsefmt };
|
|
14
|
-
}
|
|
15
|
-
// Whether a formatDetails callback named `key` at all -- including setting it
|
|
16
|
-
// to null/undefined, which is how a callback hides a field. Lets a derived row
|
|
17
|
-
// (e.g. Length) defer to the callback without treating "hidden" as "absent".
|
|
18
|
-
export function isFormattedField(feature, key) {
|
|
19
|
-
const fmt = feature.__jbrowsefmt;
|
|
20
|
-
return fmt !== undefined && key in fmt;
|
|
21
|
-
}
|
|
22
6
|
export function generateTitle(name, id, type) {
|
|
23
|
-
const label = name || id;
|
|
24
|
-
return [label ? ellipses(
|
|
7
|
+
const label = coarseStripHTML(`${name || id || ''}`);
|
|
8
|
+
return [label ? ellipses(label) : '', type ? `${type}` : '']
|
|
25
9
|
.filter(Boolean)
|
|
26
10
|
.join(' - ');
|
|
27
11
|
}
|
|
28
|
-
//
|
|
29
|
-
//
|
|
30
|
-
//
|
|
31
|
-
// @param arr example ['a','b'], obj = {a:{b:'hello}}
|
|
32
|
-
// @returns hello (with special addition to grab description also)
|
|
33
|
-
//
|
|
34
|
-
// A path that runs out of objects before it runs out of elements has no
|
|
35
|
-
// description: walking ['INFO','ANN'] into `{INFO: 'a string'}` used to stop at
|
|
36
|
-
// the string and hand it back, so every subfield of an object-valued attribute
|
|
37
|
-
// inherited its parent's description.
|
|
12
|
+
// the description at `arr` in a descriptions tree: a string there, or the
|
|
13
|
+
// `Description` of the object there, as a VCF header entry carries. A path
|
|
14
|
+
// that runs out of objects early has none
|
|
38
15
|
export function accessNested(arr, obj = {}) {
|
|
39
16
|
let obj2 = obj;
|
|
40
17
|
for (const elt of arr) {
|
|
@@ -1,42 +1,14 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
-
import { getGeneticCode
|
|
3
|
+
import { getGeneticCode } from '../../util/geneticCodes.js';
|
|
4
|
+
import SimpleFeature from '../../util/simpleFeature.js';
|
|
5
|
+
import { transcriptGeneticCodeId, transcriptTranslExcept, } from '../../util/translateTranscript.js';
|
|
4
6
|
import { modeHasUpDownstream, modeSupportsRevcomp, resolveShowCoordinates, } from './featureTypeUtil.js';
|
|
5
7
|
import CDNASequence from './seqtypes/CDNASequence.js';
|
|
6
8
|
import CDSSequence from './seqtypes/CDSSequence.js';
|
|
7
9
|
import GenomicSequence from './seqtypes/GenomicSequence.js';
|
|
8
10
|
import ProteinSequence from './seqtypes/ProteinSequence.js';
|
|
9
11
|
import { getSequenceData } from './useSequenceData.js';
|
|
10
|
-
function findCdsSubfeature(feature) {
|
|
11
|
-
return feature.subfeatures?.find(f => f.type?.toLowerCase() === 'cds');
|
|
12
|
-
}
|
|
13
|
-
// CDS-bound translation reads `transl_table` off the CDS subfeature (or the
|
|
14
|
-
// feature itself), so e.g. a mitochondrial gene translates with table 2 rather
|
|
15
|
-
// than the standard code. When the feature carries no transl_table (e.g. UCSC
|
|
16
|
-
// genePred-derived GFFs), fall back to the assembly-configured code for the
|
|
17
|
-
// contig. Undefined falls back to the standard code.
|
|
18
|
-
function proteinGeneticCode(feature, assemblyGeneticCodeId) {
|
|
19
|
-
const cds = findCdsSubfeature(feature);
|
|
20
|
-
const id = parseTranslTable(feature.transl_table) ??
|
|
21
|
-
parseTranslTable(cds?.transl_table) ??
|
|
22
|
-
assemblyGeneticCodeId;
|
|
23
|
-
return getGeneticCode(id);
|
|
24
|
-
}
|
|
25
|
-
// Parses transl_except from the feature or its CDS subfeature into the coordinate
|
|
26
|
-
// system used by convertCodingSequenceToPeptides (feature-relative, reversed for
|
|
27
|
-
// minus-strand genes).
|
|
28
|
-
function featureTranslExcept(feature) {
|
|
29
|
-
const cds = findCdsSubfeature(feature);
|
|
30
|
-
const raw = feature.transl_except ?? cds?.transl_except;
|
|
31
|
-
return raw
|
|
32
|
-
? relativizeTranslExcept({
|
|
33
|
-
raw,
|
|
34
|
-
featureStart: feature.start,
|
|
35
|
-
featureLength: feature.end - feature.start,
|
|
36
|
-
strand: feature.strand,
|
|
37
|
-
})
|
|
38
|
-
: [];
|
|
39
|
-
}
|
|
40
12
|
// Dispatches to the renderer for the current sequence type. An observer because
|
|
41
13
|
// it reads showCoordinatesSetting: that setting moving relative<->genomic
|
|
42
14
|
// leaves the coarse showCoordinates boolean every other observer here reads
|
|
@@ -60,9 +32,10 @@ const SequenceContents = observer(function SequenceContents({ mode, feature, seq
|
|
|
60
32
|
case 'cds':
|
|
61
33
|
return _jsx(CDSSequence, { model: model, cds: cds, sequence: seq });
|
|
62
34
|
case 'protein': {
|
|
63
|
-
const
|
|
64
|
-
const
|
|
65
|
-
|
|
35
|
+
const transcript = new SimpleFeature(feature);
|
|
36
|
+
const translExcept = transcriptTranslExcept(transcript);
|
|
37
|
+
const code = getGeneticCode(transcriptGeneticCodeId(transcript, assemblyGeneticCodeId));
|
|
38
|
+
return (_jsx(ProteinSequence, { model: model, cds: cds, sequence: seq, codonTable: code.codonTable, starts: code.starts, translExcept: translExcept?.length ? translExcept : undefined }));
|
|
66
39
|
}
|
|
67
40
|
// cdna and the gene_* variants all render the spliced transcript; introns
|
|
68
41
|
// and up/downstream flanks are toggled by the mode name
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { SimpleFeatureSerialized } from '../../util/index.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { FeatureDetailsModel } from '../types.tsx';
|
|
3
3
|
declare const SequenceFeaturePanel: ({ model, feature, }: {
|
|
4
|
-
model:
|
|
4
|
+
model: FeatureDetailsModel;
|
|
5
5
|
feature: SimpleFeatureSerialized;
|
|
6
6
|
}) => import("react").JSX.Element;
|
|
7
7
|
export default SequenceFeaturePanel;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
|
-
import { toLocale } from '../../util/index.js';
|
|
3
|
+
import { coarseStripHTML, toLocale } from '../../util/index.js';
|
|
4
4
|
import { getStrandStr } from '../util.js';
|
|
5
5
|
import { modeHasUpDownstream, modeSupportsRevcomp } from './featureTypeUtil.js';
|
|
6
6
|
const SequenceName = observer(function SequenceName({ mode, model, revcomp, feature, }) {
|
|
7
7
|
return (_jsx("div", { children: `>${[
|
|
8
8
|
[
|
|
9
|
-
feature.name || feature.id,
|
|
9
|
+
coarseStripHTML(`${feature.name || feature.id || ''}`),
|
|
10
10
|
mode,
|
|
11
11
|
revcomp && modeSupportsRevcomp(mode) ? 'revcomp' : '',
|
|
12
12
|
]
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { FormControl, MenuItem, Select } from '@mui/material';
|
|
3
|
+
import { coarseStripHTML } from '../../../util/index.js';
|
|
3
4
|
import { makeStyles } from '../../../util/tss-react/index.js';
|
|
4
5
|
const useStyles = makeStyles()({
|
|
5
6
|
formControl: {
|
|
@@ -14,5 +15,6 @@ export default function TranscriptSelector({ transcripts, transcriptIndex, setTr
|
|
|
14
15
|
const { classes } = useStyles();
|
|
15
16
|
return (_jsx(FormControl, { className: classes.formControl, children: _jsx(Select, { size: "small", value: transcriptIndex, onChange: event => {
|
|
16
17
|
setTranscriptIndex(Number(event.target.value));
|
|
17
|
-
}, "aria-label": "Transcript", children: transcripts.map((transcript, idx) => (_jsx(MenuItem, { value: idx, "data-testid": `transcript_${idx}`, children: transcript.name || transcript.id ||
|
|
18
|
+
}, "aria-label": "Transcript", children: transcripts.map((transcript, idx) => (_jsx(MenuItem, { value: idx, "data-testid": `transcript_${idx}`, children: coarseStripHTML(`${transcript.name || transcript.id || ''}`) ||
|
|
19
|
+
`Transcript ${idx + 1}` }, transcript.uniqueId))) }) }));
|
|
18
20
|
}
|
|
@@ -10,6 +10,18 @@ export interface SequenceHoverTarget {
|
|
|
10
10
|
setSequenceHoverPosition: (pos: SequenceHoverPosition | undefined) => void;
|
|
11
11
|
}
|
|
12
12
|
export type SequenceDisplayMode = 'gene' | 'gene_collapsed_intron' | 'gene_updownstream' | 'gene_updownstream_collapsed_intron' | 'cdna' | 'cds' | 'genomic' | 'genomic_sequence_updownstream' | 'protein';
|
|
13
|
+
/**
|
|
14
|
+
* #stateModel SequenceFeatureDetails
|
|
15
|
+
* #category Widget
|
|
16
|
+
* User preferences for the sequence readout under a feature's details, seeded
|
|
17
|
+
* from and written straight back to localStorage. Nothing here is snapshotted
|
|
18
|
+
* or reads the tree, so an instance is cheap and needs no lifecycle: a holder
|
|
19
|
+
* that only sometimes shows a panel (e.g. a track's right-click dialog) creates
|
|
20
|
+
* one when it opens rather than carrying it around.
|
|
21
|
+
*
|
|
22
|
+
* `BaseFeatureWidget` holds one as `sequenceFeatureDetails`, which is where a
|
|
23
|
+
* caller changing the readout reaches these actions.
|
|
24
|
+
*/
|
|
13
25
|
export declare function SequenceFeatureDetailsF(): import("@jbrowse/mobx-state-tree").IModelType<{}, {
|
|
14
26
|
/**
|
|
15
27
|
* #volatile
|
|
@@ -9,11 +9,18 @@ const p = 'sequenceFeatureDetails';
|
|
|
9
9
|
function clampCharactersPerRow(n) {
|
|
10
10
|
return Math.max(1, Math.floor(n));
|
|
11
11
|
}
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
12
|
+
/**
|
|
13
|
+
* #stateModel SequenceFeatureDetails
|
|
14
|
+
* #category Widget
|
|
15
|
+
* User preferences for the sequence readout under a feature's details, seeded
|
|
16
|
+
* from and written straight back to localStorage. Nothing here is snapshotted
|
|
17
|
+
* or reads the tree, so an instance is cheap and needs no lifecycle: a holder
|
|
18
|
+
* that only sometimes shows a panel (e.g. a track's right-click dialog) creates
|
|
19
|
+
* one when it opens rather than carrying it around.
|
|
20
|
+
*
|
|
21
|
+
* `BaseFeatureWidget` holds one as `sequenceFeatureDetails`, which is where a
|
|
22
|
+
* caller changing the readout reaches these actions.
|
|
23
|
+
*/
|
|
17
24
|
export function SequenceFeatureDetailsF() {
|
|
18
25
|
return types
|
|
19
26
|
.model('SequenceFeatureDetails')
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
declare const configSchema: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
1
|
+
declare const configSchema: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
2
2
|
export { configSchema };
|
|
@@ -1,38 +1,22 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '../configuration/index.ts';
|
|
2
2
|
import type { SimpleFeatureSerialized } from '../util/index.ts';
|
|
3
|
-
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
4
3
|
/**
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
9
|
-
* tier still has to run in that case.
|
|
4
|
+
* The two config nodes carrying a `formatDetails` sub-schema. The session's
|
|
5
|
+
* applies to every track; the track's is absent when the widget was opened
|
|
6
|
+
* without one. The track's object spreads over the session's, and its numbers
|
|
7
|
+
* win.
|
|
10
8
|
*/
|
|
11
|
-
export interface FormatDetailsHolder extends IStateTreeNode {
|
|
12
|
-
configuration: AnyConfigurationModel;
|
|
13
|
-
}
|
|
14
9
|
export interface FormatDetailsTiers {
|
|
15
|
-
session:
|
|
16
|
-
track?:
|
|
10
|
+
session: AnyConfigurationModel;
|
|
11
|
+
track?: AnyConfigurationModel;
|
|
17
12
|
}
|
|
18
|
-
/**
|
|
19
|
-
* `depth` or `maxDepth`: the track's value when the track sets one, else the
|
|
20
|
-
* session's, else unset.
|
|
21
|
-
*
|
|
22
|
-
* These override rather than merge, unlike the callback objects. That is only
|
|
23
|
-
* expressible because both are `maybeNumber` slots with no `defaultValue` --
|
|
24
|
-
* given a schema default the track reported a value whether or not anyone set
|
|
25
|
-
* one, so the session-wide tier could never apply to a track, and every real
|
|
26
|
-
* config has a track.
|
|
27
|
-
*/
|
|
13
|
+
/** `depth` or `maxDepth`: the track's value when set, else the session's. */
|
|
28
14
|
export declare function formatDetailsNumber(tiers: FormatDetailsTiers, slot: string): number | undefined;
|
|
29
15
|
/**
|
|
30
|
-
*
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
*
|
|
34
|
-
*
|
|
35
|
-
* config with no `formatDetails` at all leaves the feature exactly as it came
|
|
36
|
-
* in rather than stamping empty objects through the persisted snapshot.
|
|
16
|
+
* The feature as the details panel shows it: each tier's `feature` callback
|
|
17
|
+
* output spread over the clicked feature, and `subfeatures` output over each
|
|
18
|
+
* subfeature down to `depth`. A key set to null or undefined hides that row,
|
|
19
|
+
* since every detail component filters with `!= null`. A config declaring no
|
|
20
|
+
* callback gets the input back untouched.
|
|
37
21
|
*/
|
|
38
|
-
export declare function applyFormatDetails(tiers: FormatDetailsTiers,
|
|
22
|
+
export declare function applyFormatDetails(tiers: FormatDetailsTiers, feature: SimpleFeatureSerialized): SimpleFeatureSerialized;
|
|
@@ -1,63 +1,43 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
1
|
+
import { DEFAULT_FORMAT_DETAILS_DEPTH, mergeFormatCallbacks, readConfObject, } from '../configuration/index.js';
|
|
2
|
+
import { isPlainObject } from '../util/objectUtils.js';
|
|
3
|
+
function readCallback(conf, where, slot, args) {
|
|
4
|
+
try {
|
|
5
|
+
const fields = mergeFormatCallbacks(readConfObject(conf, ['formatDetails', slot], args));
|
|
6
|
+
if (fields.subfeatures != null) {
|
|
7
|
+
throw new Error('a callback can hide subfeatures but not replace them; reshape each one with the subfeatures callback');
|
|
8
|
+
}
|
|
9
|
+
return fields;
|
|
10
|
+
}
|
|
11
|
+
catch (e) {
|
|
12
|
+
throw new Error(`formatDetails.${slot} of ${where}: ${e}`, { cause: e });
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
function readCallbacks({ session, track }, slot, args) {
|
|
16
|
+
return mergeFormatCallbacks(readCallback(session, 'the session configuration', slot, args), track
|
|
17
|
+
? readCallback(track, `track "${readConfObject(track, 'trackId')}"`, slot, args)
|
|
18
|
+
: undefined);
|
|
18
19
|
}
|
|
19
20
|
/**
|
|
20
|
-
* Whether either tier
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
*
|
|
25
|
-
* of a `jexl:` slot answers the second one badly — it evaluates the user's
|
|
26
|
-
* expression against a context where `feature` is undefined (see
|
|
27
|
-
* `configuration/CLAUDE.md`), which is a throw or a junk value, per tier, just
|
|
28
|
-
* to find out the slot exists.
|
|
29
|
-
*
|
|
30
|
-
* Both callback slots default to `{}`, so a config that never mentions
|
|
31
|
-
* `formatDetails` answers false for both and `applyFormatDetails` can hand the
|
|
32
|
-
* feature straight back. That is the whole point of asking: the walk it skips
|
|
33
|
-
* is proportional to the subfeature tree, and the tree can be very large (a
|
|
34
|
-
* RefSeq BRCA1 is 368 transcripts, ~16k nodes) while the config that formats
|
|
35
|
-
* none of it is the overwhelmingly common one.
|
|
21
|
+
* Whether either tier sets `slot`, read raw off the node: an arg-less read of
|
|
22
|
+
* a `jexl:` slot evaluates it against an empty context just to find out it
|
|
23
|
+
* exists. Both callback slots default to `{}`, so a config that never mentions
|
|
24
|
+
* `formatDetails` answers false and the walk below is skipped entirely, which
|
|
25
|
+
* matters on a RefSeq gene with 16k nested nodes.
|
|
36
26
|
*/
|
|
37
27
|
function declaresCallback({ session, track }, slot) {
|
|
38
|
-
return [session, track].some(
|
|
39
|
-
|
|
40
|
-
const sub = holder?.configuration.formatDetails;
|
|
41
|
-
const value = sub?.[slot];
|
|
42
|
-
// a `jexl:` slot is a string; a plain-object slot counts only when it has
|
|
43
|
-
// keys, since `{}` is the schema default and merges to nothing
|
|
28
|
+
return [session, track].some(conf => {
|
|
29
|
+
const value = conf?.formatDetails?.[slot];
|
|
44
30
|
return typeof value === 'string'
|
|
45
31
|
? value !== ''
|
|
46
|
-
:
|
|
32
|
+
: isPlainObject(value) && Object.keys(value).length > 0;
|
|
47
33
|
});
|
|
48
34
|
}
|
|
49
|
-
/**
|
|
50
|
-
* `depth` or `maxDepth`: the track's value when the track sets one, else the
|
|
51
|
-
* session's, else unset.
|
|
52
|
-
*
|
|
53
|
-
* These override rather than merge, unlike the callback objects. That is only
|
|
54
|
-
* expressible because both are `maybeNumber` slots with no `defaultValue` --
|
|
55
|
-
* given a schema default the track reported a value whether or not anyone set
|
|
56
|
-
* one, so the session-wide tier could never apply to a track, and every real
|
|
57
|
-
* config has a track.
|
|
58
|
-
*/
|
|
35
|
+
/** `depth` or `maxDepth`: the track's value when set, else the session's. */
|
|
59
36
|
export function formatDetailsNumber(tiers, slot) {
|
|
60
|
-
const
|
|
37
|
+
const fromSession = readConfObject(tiers.session, ['formatDetails', slot]);
|
|
38
|
+
const fromTrack = tiers.track
|
|
39
|
+
? readConfObject(tiers.track, ['formatDetails', slot])
|
|
40
|
+
: undefined;
|
|
61
41
|
return typeof fromTrack === 'number'
|
|
62
42
|
? fromTrack
|
|
63
43
|
: typeof fromSession === 'number'
|
|
@@ -65,39 +45,38 @@ export function formatDetailsNumber(tiers, slot) {
|
|
|
65
45
|
: undefined;
|
|
66
46
|
}
|
|
67
47
|
/**
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* config with no `formatDetails` at all leaves the feature exactly as it came
|
|
74
|
-
* in rather than stamping empty objects through the persisted snapshot.
|
|
48
|
+
* The feature as the details panel shows it: each tier's `feature` callback
|
|
49
|
+
* output spread over the clicked feature, and `subfeatures` output over each
|
|
50
|
+
* subfeature down to `depth`. A key set to null or undefined hides that row,
|
|
51
|
+
* since every detail component filters with `!= null`. A config declaring no
|
|
52
|
+
* callback gets the input back untouched.
|
|
75
53
|
*/
|
|
76
|
-
export function applyFormatDetails(tiers,
|
|
77
|
-
const
|
|
78
|
-
const
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
// subfeature tree and both produce nothing here, and this is the default
|
|
82
|
-
// config -- most tracks never set `formatDetails` at all.
|
|
83
|
-
if (!hasFeature && !hasSubfeatures) {
|
|
84
|
-
return featureData;
|
|
85
|
-
}
|
|
86
|
-
const feature = structuredClone(featureData);
|
|
87
|
-
if (hasFeature) {
|
|
88
|
-
const fmt = mergeFormatCallbacks(...readTiers(tiers, 'feature', { feature }));
|
|
89
|
-
if (!isEmpty(fmt)) {
|
|
90
|
-
feature.__jbrowsefmt = fmt;
|
|
91
|
-
}
|
|
54
|
+
export function applyFormatDetails(tiers, feature) {
|
|
55
|
+
const formatsFeature = declaresCallback(tiers, 'feature');
|
|
56
|
+
const formatsSubfeatures = declaresCallback(tiers, 'subfeatures');
|
|
57
|
+
if (!formatsFeature && !formatsSubfeatures) {
|
|
58
|
+
return feature;
|
|
92
59
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
60
|
+
const depth = formatsSubfeatures
|
|
61
|
+
? (formatDetailsNumber(tiers, 'depth') ?? DEFAULT_FORMAT_DETAILS_DEPTH)
|
|
62
|
+
: 0;
|
|
63
|
+
const track = tiers.track ? readConfObject(tiers.track) : undefined;
|
|
64
|
+
function format(node, level, fmt) {
|
|
65
|
+
const { subfeatures } = node;
|
|
66
|
+
return {
|
|
67
|
+
...node,
|
|
68
|
+
...(subfeatures && level < depth
|
|
69
|
+
? {
|
|
70
|
+
subfeatures: subfeatures.map(sub => format(sub, level + 1, readCallbacks(tiers, 'subfeatures', {
|
|
71
|
+
feature: sub,
|
|
72
|
+
parent: node,
|
|
73
|
+
depth: level + 1,
|
|
74
|
+
track,
|
|
75
|
+
}))),
|
|
76
|
+
}
|
|
77
|
+
: {}),
|
|
78
|
+
...fmt,
|
|
79
|
+
};
|
|
101
80
|
}
|
|
102
|
-
return feature;
|
|
81
|
+
return format(feature, 0, formatsFeature ? readCallbacks(tiers, 'feature', { feature, track }) : {});
|
|
103
82
|
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
export { configSchema } from './configSchema.ts';
|
|
2
|
-
export type { Descriptors, MaybeSerializedFeat } from './types.tsx';
|
|
2
|
+
export type { Descriptors, FeatureDetailsModel, MaybeSerializedFeat, } from './types.tsx';
|
|
3
3
|
export type { SequenceHoverPosition, ShowCoordinatesMode, } from './SequenceFeatureDetails/model.ts';
|
|
4
|
+
export type { FormatDetailsTiers } from './formatDetails.ts';
|
|
4
5
|
export { stateModelFactory } from './stateModelFactory.ts';
|
|
5
6
|
export type { BaseFeatureWidgetModel, BaseFeatureWidgetStateModel, } from './stateModelFactory.ts';
|
|
@@ -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>;
|