@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
|
@@ -41,7 +41,7 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
|
|
|
41
41
|
/**
|
|
42
42
|
* #volatile
|
|
43
43
|
*/
|
|
44
|
-
|
|
44
|
+
regions: BasicRegion[] | undefined;
|
|
45
45
|
/**
|
|
46
46
|
* #volatile
|
|
47
47
|
*/
|
|
@@ -196,10 +196,6 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
|
|
|
196
196
|
* #getter
|
|
197
197
|
*/
|
|
198
198
|
readonly initialized: boolean;
|
|
199
|
-
/**
|
|
200
|
-
* #getter
|
|
201
|
-
*/
|
|
202
|
-
readonly regions: BasicRegion[] | undefined;
|
|
203
199
|
/**
|
|
204
200
|
* #getter
|
|
205
201
|
* note: lowerCaseRefNameAliases not included here: this allows the list
|
|
@@ -298,6 +294,16 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
|
|
|
298
294
|
*/
|
|
299
295
|
isValidRefName(refName: string): boolean;
|
|
300
296
|
} & {
|
|
297
|
+
/**
|
|
298
|
+
* #method
|
|
299
|
+
* Where a refName — canonical or any alias — sits in this assembly's own
|
|
300
|
+
* order, which is what chromosome painting hands its palette out by.
|
|
301
|
+
* Canonicalized first because a name off a feature can be the FILE's
|
|
302
|
+
* spelling (`1` against a canonical `chr1`), and a missed probe is silent:
|
|
303
|
+
* the painter falls back to a hash color. Undefined before the regions
|
|
304
|
+
* load and for a name the assembly lacks.
|
|
305
|
+
*/
|
|
306
|
+
getRefNamePosition(refName: string): number | undefined;
|
|
301
307
|
/**
|
|
302
308
|
* #method
|
|
303
309
|
* The other names this assembly has for the same sequence as `refName` —
|
|
@@ -316,21 +322,17 @@ export default function assemblyFactory(assemblyConfigType: IAnyType, pluginMana
|
|
|
316
322
|
*
|
|
317
323
|
* The load reports progress (the adapter's index download, or for an
|
|
318
324
|
* in-memory adapter the whole file) through the `statusCallback` of
|
|
319
|
-
* whichever caller started it. The
|
|
320
|
-
*
|
|
321
|
-
*
|
|
322
|
-
*
|
|
323
|
-
*
|
|
324
|
-
*
|
|
325
|
-
*
|
|
326
|
-
*
|
|
327
|
-
* no-op rather than a hazard because the callbacks are `isAlive`-guarded
|
|
328
|
-
* at the display end.
|
|
325
|
+
* whichever caller started it. The other callers get no progress
|
|
326
|
+
* updates. The callers sharing an entry are almost always the N
|
|
327
|
+
* displayed regions of one display, so their callbacks all write into
|
|
328
|
+
* that display's aggregated status bar, where the first caller already
|
|
329
|
+
* reports for the rest. A listener set per key, with registration and
|
|
330
|
+
* deregistration on settle, would add progress only for a second display
|
|
331
|
+
* on the same file and for a first caller torn down mid-load. The latter
|
|
332
|
+
* is a no-op because the display guards its callbacks with `isAlive`.
|
|
329
333
|
*
|
|
330
|
-
* If
|
|
331
|
-
*
|
|
332
|
-
* observable state that consumers read, which is what this model is
|
|
333
|
-
* already made of.
|
|
334
|
+
* If per-caller progress is ever needed, the assembly should hold the
|
|
335
|
+
* in-flight status as observable state that consumers read.
|
|
334
336
|
*/
|
|
335
337
|
getRefNameMapForAdapter(adapterConf: AdapterConf, options: BaseOptions): Promise<RefNameAliases>;
|
|
336
338
|
/**
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { addDisposer, getParent, isAlive, types, } from '@jbrowse/mobx-state-tree';
|
|
2
2
|
import { onBecomeObserved } from 'mobx';
|
|
3
3
|
import { getConf } from '../configuration/index.js';
|
|
4
|
-
import { adapterConfigCacheKey } from '../data_adapters/dataAdapterCache.js';
|
|
5
4
|
import QuickLRU from '../util/QuickLRU/index.js';
|
|
6
5
|
import { createStatusFanOut, createStatusWindow, statusFraction, statusMessageText, statusSource, } from '../util/progress.js';
|
|
7
6
|
import { getAssemblyRegions, getCytobands, getRefNameAliases, } from './assemblyAdapters.js';
|
|
8
7
|
import { getGeneticCodesFromFile, lookupGeneticCodeId } from './geneticCodes.js';
|
|
9
8
|
import { loadRefNameMap } from './loadRefNameMap.js';
|
|
10
9
|
import { defaultRefNameColors } from './refNameColors.js';
|
|
10
|
+
import { refNameMapKey } from './refNameMapKey.js';
|
|
11
11
|
import { buildRefNameMaps, checkRefName, groupNamesByCanonicalRefName, } from './refNameMaps.js';
|
|
12
12
|
// re-exported so `@jbrowse/core/assemblyManager/assembly` stays the public entry
|
|
13
13
|
// point for these, as plugins import them from here
|
|
@@ -52,7 +52,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
52
52
|
/**
|
|
53
53
|
* #volatile
|
|
54
54
|
*/
|
|
55
|
-
|
|
55
|
+
regions: undefined,
|
|
56
56
|
/**
|
|
57
57
|
* #volatile
|
|
58
58
|
*/
|
|
@@ -140,7 +140,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
140
140
|
* #getter
|
|
141
141
|
*/
|
|
142
142
|
get displayName() {
|
|
143
|
-
return self.getConf('displayName') ||
|
|
143
|
+
return self.getConf('displayName') || this.name;
|
|
144
144
|
},
|
|
145
145
|
/**
|
|
146
146
|
* #getter
|
|
@@ -197,7 +197,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
197
197
|
* in place by the time refNameAliases becomes observable.
|
|
198
198
|
*/
|
|
199
199
|
setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }) {
|
|
200
|
-
self.
|
|
200
|
+
self.regions = regions;
|
|
201
201
|
self.refNameAliases = refNameAliases;
|
|
202
202
|
self.lowerCaseRefNameAliases = lowerCaseRefNameAliases;
|
|
203
203
|
self.canonicalToSeqAdapterRefNames = canonicalToSeqAdapterRefNames;
|
|
@@ -365,7 +365,7 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
365
365
|
// are watched because consumers observe them independently (regions vs
|
|
366
366
|
// refNameAliases/allRefNames); load() is idempotent so the overlapping
|
|
367
367
|
// triggers collapse to a single fetch.
|
|
368
|
-
for (const prop of ['
|
|
368
|
+
for (const prop of ['regions', 'refNameAliases']) {
|
|
369
369
|
addDisposer(self, onBecomeObserved(self, prop, () => {
|
|
370
370
|
// nothing awaits this fire-and-forget kick, so swallow the
|
|
371
371
|
// rejection: load() has already logged it and recorded it on
|
|
@@ -382,12 +382,6 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
382
382
|
get initialized() {
|
|
383
383
|
return !!self.refNameAliases;
|
|
384
384
|
},
|
|
385
|
-
/**
|
|
386
|
-
* #getter
|
|
387
|
-
*/
|
|
388
|
-
get regions() {
|
|
389
|
-
return self.volatileRegions;
|
|
390
|
-
},
|
|
391
385
|
/**
|
|
392
386
|
* #getter
|
|
393
387
|
* note: lowerCaseRefNameAliases not included here: this allows the list
|
|
@@ -548,6 +542,18 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
548
542
|
},
|
|
549
543
|
}))
|
|
550
544
|
.views(self => ({
|
|
545
|
+
/**
|
|
546
|
+
* #method
|
|
547
|
+
* Where a refName — canonical or any alias — sits in this assembly's own
|
|
548
|
+
* order, which is what chromosome painting hands its palette out by.
|
|
549
|
+
* Canonicalized first because a name off a feature can be the FILE's
|
|
550
|
+
* spelling (`1` against a canonical `chr1`), and a missed probe is silent:
|
|
551
|
+
* the painter falls back to a hash color. Undefined before the regions
|
|
552
|
+
* load and for a name the assembly lacks.
|
|
553
|
+
*/
|
|
554
|
+
getRefNamePosition(refName) {
|
|
555
|
+
return self.refNameToIndex?.get(self.getCanonicalRefName2(refName));
|
|
556
|
+
},
|
|
551
557
|
/**
|
|
552
558
|
* #method
|
|
553
559
|
* The other names this assembly has for the same sequence as `refName` —
|
|
@@ -569,27 +575,23 @@ export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
|
569
575
|
*
|
|
570
576
|
* The load reports progress (the adapter's index download, or for an
|
|
571
577
|
* in-memory adapter the whole file) through the `statusCallback` of
|
|
572
|
-
* whichever caller started it. The
|
|
573
|
-
*
|
|
574
|
-
*
|
|
575
|
-
*
|
|
576
|
-
*
|
|
577
|
-
*
|
|
578
|
-
*
|
|
579
|
-
*
|
|
580
|
-
* no-op rather than a hazard because the callbacks are `isAlive`-guarded
|
|
581
|
-
* at the display end.
|
|
578
|
+
* whichever caller started it. The other callers get no progress
|
|
579
|
+
* updates. The callers sharing an entry are almost always the N
|
|
580
|
+
* displayed regions of one display, so their callbacks all write into
|
|
581
|
+
* that display's aggregated status bar, where the first caller already
|
|
582
|
+
* reports for the rest. A listener set per key, with registration and
|
|
583
|
+
* deregistration on settle, would add progress only for a second display
|
|
584
|
+
* on the same file and for a first caller torn down mid-load. The latter
|
|
585
|
+
* is a no-op because the display guards its callbacks with `isAlive`.
|
|
582
586
|
*
|
|
583
|
-
* If
|
|
584
|
-
*
|
|
585
|
-
* observable state that consumers read, which is what this model is
|
|
586
|
-
* already made of.
|
|
587
|
+
* If per-caller progress is ever needed, the assembly should hold the
|
|
588
|
+
* in-flight status as observable state that consumers read.
|
|
587
589
|
*/
|
|
588
590
|
getRefNameMapForAdapter(adapterConf, options) {
|
|
589
591
|
if (!options.sessionId) {
|
|
590
592
|
throw new Error('sessionId is required');
|
|
591
593
|
}
|
|
592
|
-
const key =
|
|
594
|
+
const key = refNameMapKey(adapterConf, options);
|
|
593
595
|
let entry = self.adapterLoads.get(key);
|
|
594
596
|
if (!entry) {
|
|
595
597
|
// evict on failure so a later call can retry
|
|
@@ -4,7 +4,7 @@ import type { BaseOptions } from '../data_adapters/BaseAdapter/index.ts';
|
|
|
4
4
|
interface AdapterArgs {
|
|
5
5
|
config: AnyConfigurationModel;
|
|
6
6
|
pluginManager: PluginManager;
|
|
7
|
-
opts
|
|
7
|
+
opts: BaseOptions;
|
|
8
8
|
}
|
|
9
9
|
export declare function getRefNameAliases({ config, pluginManager, opts, }: AdapterArgs): Promise<import("../data_adapters/BaseAdapter/BaseRefNameAliasAdapter.ts").Alias[]>;
|
|
10
10
|
export declare function getCytobands({ config, pluginManager, opts, }: AdapterArgs): Promise<import("../util/simpleFeature.ts").Feature[]>;
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { isRegionsAdapter } from '../data_adapters/BaseAdapter/util.js';
|
|
1
2
|
async function instantiateAdapter(config, pluginManager) {
|
|
2
3
|
const CLASS = await pluginManager
|
|
3
4
|
.getAdapterType(config.type)
|
|
@@ -6,7 +7,7 @@ async function instantiateAdapter(config, pluginManager) {
|
|
|
6
7
|
}
|
|
7
8
|
export async function getRefNameAliases({ config, pluginManager, opts, }) {
|
|
8
9
|
const adapter = await instantiateAdapter(config, pluginManager);
|
|
9
|
-
return adapter.getRefNameAliases(opts
|
|
10
|
+
return adapter.getRefNameAliases(opts);
|
|
10
11
|
}
|
|
11
12
|
export async function getCytobands({ config, pluginManager, opts, }) {
|
|
12
13
|
const adapter = await instantiateAdapter(config, pluginManager);
|
|
@@ -14,5 +15,10 @@ export async function getCytobands({ config, pluginManager, opts, }) {
|
|
|
14
15
|
}
|
|
15
16
|
export async function getAssemblyRegions({ config, pluginManager, opts, }) {
|
|
16
17
|
const adapter = await instantiateAdapter(config, pluginManager);
|
|
17
|
-
|
|
18
|
+
// an assembly written with no sequence at all gets whatever adapter the
|
|
19
|
+
// union defaults to, which lists no regions
|
|
20
|
+
if (!isRegionsAdapter(adapter)) {
|
|
21
|
+
throw new Error(`a ${config.type} cannot supply an assembly's sequence: give the assembly a "uri" or a "sequence.adapter"`);
|
|
22
|
+
}
|
|
23
|
+
return adapter.getRegions(opts);
|
|
18
24
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type PluginManager from '../PluginManager.ts';
|
|
2
2
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
3
|
-
export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.ts';
|
|
3
|
+
export { expandAssemblySequence, expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.ts';
|
|
4
4
|
/**
|
|
5
5
|
* #config BaseAssembly
|
|
6
6
|
* #category assemblyManagement
|
|
@@ -31,15 +31,15 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
|
|
|
31
31
|
* The flattest form: an assembly is just a `name` and a sequence-file `uri`.
|
|
32
32
|
* jbrowse-core picks the adapter (`Bgzip`/`Indexed`/`TwoBit`) from the
|
|
33
33
|
* extension, derives the `.fai`/`.gzi` siblings, and fills in the
|
|
34
|
-
* `ReferenceSequenceTrack`. `refNameAliases`/`cytobands`
|
|
35
|
-
*
|
|
36
|
-
*
|
|
34
|
+
* `ReferenceSequenceTrack`. `refNameAliases`/`cytobands` are each just their
|
|
35
|
+
* file, as a path or `{ uri }`; an alias file named `…sequence_report.tsv` is
|
|
36
|
+
* read as NCBI's sequence report, anything else as a chromAlias-style table.
|
|
37
37
|
* ```js
|
|
38
38
|
* {
|
|
39
39
|
* name: 'hg38',
|
|
40
40
|
* uri: 'https://example.com/hg38.fa.gz',
|
|
41
|
-
* refNameAliases:
|
|
42
|
-
* cytobands:
|
|
41
|
+
* refNameAliases: 'https://example.com/hg38.aliases.txt',
|
|
42
|
+
* cytobands: 'https://example.com/hg38.cytoBand.txt',
|
|
43
43
|
* }
|
|
44
44
|
* ```
|
|
45
45
|
*
|
|
@@ -84,7 +84,8 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
|
|
|
84
84
|
* #example custom-display-name-and-genetic-codes-sidecar
|
|
85
85
|
* Sets a `displayName` for the assembly selector and loads the per-refName
|
|
86
86
|
* genetic codes from a sidecar TSV (`geneticCodesLocation`) instead of inlining
|
|
87
|
-
* them
|
|
87
|
+
* them, which is the shape to use when a config generator emits the mapping
|
|
88
|
+
* separately:
|
|
88
89
|
* ```js
|
|
89
90
|
* {
|
|
90
91
|
* name: 'hg38',
|
|
@@ -99,102 +100,42 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
|
|
|
99
100
|
* ```
|
|
100
101
|
*/
|
|
101
102
|
declare function assemblyConfigSchema(pluginManager: PluginManager): import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
102
|
-
/**
|
|
103
|
-
* #slot
|
|
104
|
-
* aliases are "reference name aliases" e.g. aliases for hg38 might be
|
|
105
|
-
* "GRCh38"
|
|
106
|
-
*/
|
|
107
103
|
readonly aliases: {
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
104
|
+
type: "stringArray";
|
|
105
|
+
} & {
|
|
106
|
+
defaultValue: unknown;
|
|
111
107
|
};
|
|
112
|
-
/**
|
|
113
|
-
* #slot
|
|
114
|
-
* sequence refers to a reference sequence track that has an adapter
|
|
115
|
-
* containing, importantly, a sequence adapter such as
|
|
116
|
-
* IndexedFastaAdapter
|
|
117
|
-
*/
|
|
118
108
|
readonly sequence: import("../configuration/types.ts").AnyConfigurationSchemaType;
|
|
119
|
-
/**
|
|
120
|
-
* #slot
|
|
121
|
-
*/
|
|
122
109
|
readonly refNameColors: {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
110
|
+
type: "stringArray";
|
|
111
|
+
} & {
|
|
112
|
+
defaultValue: unknown;
|
|
126
113
|
};
|
|
127
|
-
/**
|
|
128
|
-
* #slot
|
|
129
|
-
* Maps a reference sequence name to an NCBI genetic-code (translation
|
|
130
|
-
* table) id for sequences that don't use the standard code, e.g.
|
|
131
|
-
* `{ "chrM": 2 }` for the vertebrate mitochondrial code or
|
|
132
|
-
* `{ "chrPltd": 11 }` for a plastid. Drives the reference sequence track's
|
|
133
|
-
* translation rows; unlisted refNames use the standard code (1). CDS-level
|
|
134
|
-
* translation reads the GFF `transl_table` attribute directly and ignores
|
|
135
|
-
* this.
|
|
136
|
-
*
|
|
137
|
-
* #example
|
|
138
|
-
* Mitochondrial contig translated with the vertebrate mitochondrial code
|
|
139
|
-
* (NCBI table 2), a plastid contig with table 11; keys are matched through
|
|
140
|
-
* refName aliasing:
|
|
141
|
-
* ```js
|
|
142
|
-
* { chrM: 2, chrPltd: 11 }
|
|
143
|
-
* ```
|
|
144
|
-
*/
|
|
145
114
|
readonly geneticCodes: {
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
115
|
+
type: "frozen";
|
|
116
|
+
} & {
|
|
117
|
+
defaultValue: unknown;
|
|
149
118
|
};
|
|
150
|
-
/**
|
|
151
|
-
* #slot
|
|
152
|
-
* Optional file (tab-separated `refName<TAB>geneticCodeId`, `#` comments
|
|
153
|
-
* allowed) to load the same refName-to-genetic-code mapping from, instead
|
|
154
|
-
* of inlining it — useful when a config generator emits a sidecar rather
|
|
155
|
-
* than inlining per assembly. Entries in the inline `geneticCodes` slot
|
|
156
|
-
* take precedence over the file.
|
|
157
|
-
*
|
|
158
|
-
* #example
|
|
159
|
-
* The TSV is `refName<TAB>geneticCodeId` with optional `#` comment lines:
|
|
160
|
-
* ```js
|
|
161
|
-
* { uri: 'https://example.com/hg38.genetic_codes.tsv' }
|
|
162
|
-
* ```
|
|
163
|
-
*/
|
|
164
119
|
readonly geneticCodesLocation: {
|
|
165
|
-
|
|
166
|
-
readonly defaultValue: {
|
|
167
|
-
readonly uri: "";
|
|
168
|
-
readonly locationType: "UriLocation";
|
|
169
|
-
};
|
|
170
|
-
readonly description: "Optional TSV file of refName<TAB>geneticCodeId, an alternative to inlining the geneticCodes map";
|
|
120
|
+
type: "maybeFileLocation";
|
|
171
121
|
};
|
|
172
122
|
readonly refNameAliases: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
* refNameAliases help resolve e.g. chr1 and 1 as the same entity the
|
|
176
|
-
* data for refNameAliases are fetched from an adapter, that is
|
|
177
|
-
* commonly a tsv like chromAliases.txt from UCSC or similar
|
|
178
|
-
*/
|
|
179
|
-
readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
180
|
-
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
123
|
+
readonly adapter: import("@jbrowse/core/PluginManager").PluggableConfigSchemaType;
|
|
124
|
+
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
181
125
|
readonly cytobands: import("../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
* cytoband data is fetched from an adapter, and can be displayed by
|
|
185
|
-
* a view type as ideograms
|
|
186
|
-
*/
|
|
187
|
-
readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
188
|
-
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
189
|
-
/**
|
|
190
|
-
* #slot
|
|
191
|
-
*/
|
|
126
|
+
readonly adapter: import("@jbrowse/core/PluginManager").PluggableConfigSchemaType;
|
|
127
|
+
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
192
128
|
readonly displayName: {
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
129
|
+
type: "string";
|
|
130
|
+
} & {
|
|
131
|
+
defaultValue: string;
|
|
196
132
|
};
|
|
197
|
-
|
|
133
|
+
name: {
|
|
134
|
+
type: "string";
|
|
135
|
+
} & {
|
|
136
|
+
defaultValue: string;
|
|
137
|
+
};
|
|
138
|
+
}, import("../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "name", undefined, import("../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
198
139
|
export default assemblyConfigSchema;
|
|
199
140
|
/** the assembly config schema IType (use with `getConf`, `ConfigurationReference`, etc.) */
|
|
200
141
|
export type BaseAssemblyConfigSchema = ReturnType<typeof assemblyConfigSchema>;
|
|
@@ -1,6 +1,28 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '../configuration/index.js';
|
|
2
2
|
import { expandAssemblyShorthand } from './expandAssemblyConfigShorthand.js';
|
|
3
|
-
export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.js';
|
|
3
|
+
export { expandAssemblySequence, expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expandAssemblyConfigShorthand.js';
|
|
4
|
+
/**
|
|
5
|
+
* A sidecar sub-schema written as just its file: `'aliases.txt'` or
|
|
6
|
+
* `{ uri: 'aliases.txt' }` becomes `{ adapter: { type, uri } }`, with `type`
|
|
7
|
+
* picked from the uri. baseUri, stamped by addRelativeUris, rides along. An
|
|
8
|
+
* explicit `adapter` passes through untouched.
|
|
9
|
+
*/
|
|
10
|
+
function fileAdapterShorthand(typeFor) {
|
|
11
|
+
return {
|
|
12
|
+
shorthand: 'uri',
|
|
13
|
+
preProcessSnapshot: (snap) => {
|
|
14
|
+
const { uri, baseUri, adapter } = snap;
|
|
15
|
+
if (adapter) {
|
|
16
|
+
return snap;
|
|
17
|
+
}
|
|
18
|
+
return {
|
|
19
|
+
adapter: typeof uri === 'string'
|
|
20
|
+
? { type: typeFor(uri), uri, ...(baseUri ? { baseUri } : {}) }
|
|
21
|
+
: { type: typeFor('') },
|
|
22
|
+
};
|
|
23
|
+
},
|
|
24
|
+
};
|
|
25
|
+
}
|
|
4
26
|
/**
|
|
5
27
|
* #config BaseAssembly
|
|
6
28
|
* #category assemblyManagement
|
|
@@ -31,15 +53,15 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
|
|
|
31
53
|
* The flattest form: an assembly is just a `name` and a sequence-file `uri`.
|
|
32
54
|
* jbrowse-core picks the adapter (`Bgzip`/`Indexed`/`TwoBit`) from the
|
|
33
55
|
* extension, derives the `.fai`/`.gzi` siblings, and fills in the
|
|
34
|
-
* `ReferenceSequenceTrack`. `refNameAliases`/`cytobands`
|
|
35
|
-
*
|
|
36
|
-
*
|
|
56
|
+
* `ReferenceSequenceTrack`. `refNameAliases`/`cytobands` are each just their
|
|
57
|
+
* file, as a path or `{ uri }`; an alias file named `…sequence_report.tsv` is
|
|
58
|
+
* read as NCBI's sequence report, anything else as a chromAlias-style table.
|
|
37
59
|
* ```js
|
|
38
60
|
* {
|
|
39
61
|
* name: 'hg38',
|
|
40
62
|
* uri: 'https://example.com/hg38.fa.gz',
|
|
41
|
-
* refNameAliases:
|
|
42
|
-
* cytobands:
|
|
63
|
+
* refNameAliases: 'https://example.com/hg38.aliases.txt',
|
|
64
|
+
* cytobands: 'https://example.com/hg38.cytoBand.txt',
|
|
43
65
|
* }
|
|
44
66
|
* ```
|
|
45
67
|
*
|
|
@@ -84,7 +106,8 @@ export { expandAssemblySequenceAdapter, expandAssemblyShorthand, } from './expan
|
|
|
84
106
|
* #example custom-display-name-and-genetic-codes-sidecar
|
|
85
107
|
* Sets a `displayName` for the assembly selector and loads the per-refName
|
|
86
108
|
* genetic codes from a sidecar TSV (`geneticCodesLocation`) instead of inlining
|
|
87
|
-
* them
|
|
109
|
+
* them, which is the shape to use when a config generator emits the mapping
|
|
110
|
+
* separately:
|
|
88
111
|
* ```js
|
|
89
112
|
* {
|
|
90
113
|
* name: 'hg38',
|
|
@@ -164,8 +187,7 @@ function assemblyConfigSchema(pluginManager) {
|
|
|
164
187
|
* ```
|
|
165
188
|
*/
|
|
166
189
|
geneticCodesLocation: {
|
|
167
|
-
type: '
|
|
168
|
-
defaultValue: { uri: '', locationType: 'UriLocation' },
|
|
190
|
+
type: 'maybeFileLocation',
|
|
169
191
|
description: 'Optional TSV file of refName<TAB>geneticCodeId, an alternative to inlining the geneticCodes map',
|
|
170
192
|
},
|
|
171
193
|
refNameAliases: ConfigurationSchema('RefNameAliases', {
|
|
@@ -176,26 +198,9 @@ function assemblyConfigSchema(pluginManager) {
|
|
|
176
198
|
* commonly a tsv like chromAliases.txt from UCSC or similar
|
|
177
199
|
*/
|
|
178
200
|
adapter: pluginManager.pluggableConfigSchemaType('adapter'),
|
|
179
|
-
},
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
// `refNameAliases: { uri: 'aliases.txt' }` (baseUri, stamped next to
|
|
183
|
-
// the uri key by addRelativeUris, rides along). An explicit `adapter`
|
|
184
|
-
// passes through untouched; absent, the empty default is filled in.
|
|
185
|
-
preProcessSnapshot: snap => snap.adapter
|
|
186
|
-
? snap
|
|
187
|
-
: {
|
|
188
|
-
adapter: {
|
|
189
|
-
type: 'RefNameAliasAdapter',
|
|
190
|
-
...(snap.uri
|
|
191
|
-
? {
|
|
192
|
-
uri: snap.uri,
|
|
193
|
-
...(snap.baseUri ? { baseUri: snap.baseUri } : {}),
|
|
194
|
-
}
|
|
195
|
-
: {}),
|
|
196
|
-
},
|
|
197
|
-
},
|
|
198
|
-
}),
|
|
201
|
+
}, fileAdapterShorthand(uri => /sequence_report\.tsv(\.gz)?$/i.test(uri)
|
|
202
|
+
? 'NcbiSequenceReportAliasAdapter'
|
|
203
|
+
: 'RefNameAliasAdapter')),
|
|
199
204
|
cytobands: ConfigurationSchema('Cytoband', {
|
|
200
205
|
/**
|
|
201
206
|
* #slot cytobands.adapter
|
|
@@ -203,24 +208,7 @@ function assemblyConfigSchema(pluginManager) {
|
|
|
203
208
|
* a view type as ideograms
|
|
204
209
|
*/
|
|
205
210
|
adapter: pluginManager.pluggableConfigSchemaType('adapter'),
|
|
206
|
-
},
|
|
207
|
-
// same shorthand as refNameAliases: `cytobands: { uri: 'cytoBand.txt' }`
|
|
208
|
-
// fills in the CytobandAdapter; an explicit `adapter` passes through,
|
|
209
|
-
// absent it defaults to the empty adapter.
|
|
210
|
-
preProcessSnapshot: snap => snap.adapter
|
|
211
|
-
? snap
|
|
212
|
-
: {
|
|
213
|
-
adapter: {
|
|
214
|
-
type: 'CytobandAdapter',
|
|
215
|
-
...(snap.uri
|
|
216
|
-
? {
|
|
217
|
-
uri: snap.uri,
|
|
218
|
-
...(snap.baseUri ? { baseUri: snap.baseUri } : {}),
|
|
219
|
-
}
|
|
220
|
-
: {}),
|
|
221
|
-
},
|
|
222
|
-
},
|
|
223
|
-
}),
|
|
211
|
+
}, fileAdapterShorthand(() => 'CytobandAdapter')),
|
|
224
212
|
/**
|
|
225
213
|
* #slot
|
|
226
214
|
*/
|