@jbrowse/core 5.0.0-beta.7 → 5.0.0-beta.9
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 +427 -130
- 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 +8 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +8 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -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 +1 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +53 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -16
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +46 -79
- package/esm/BaseFeatureWidget/index.d.ts +1 -0
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +35 -28
- package/esm/BaseFeatureWidget/stateModelFactory.js +94 -102
- package/esm/BaseFeatureWidget/types.d.ts +3 -0
- package/esm/BaseFeatureWidget/util.d.ts +0 -3
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/PluginLoader.d.ts +14 -9
- package/esm/PluginLoader.js +34 -26
- package/esm/PluginManager.d.ts +4 -4
- package/esm/PluginManager.js +1 -1
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +492 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +453 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +67 -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 +493 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -87
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +2 -1
- package/esm/ReExports/uiStub.js +24 -2
- package/esm/ReExports/workerModules.js +8 -12
- package/esm/TextSearch/TextSearchManager.d.ts +3 -12
- package/esm/TextSearch/TextSearchManager.js +22 -10
- package/esm/assemblyManager/assembly.d.ts +10 -14
- package/esm/assemblyManager/assembly.js +10 -14
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +23 -81
- package/esm/assemblyManager/assemblyManager.d.ts +10 -16
- package/esm/assemblyManager/assemblyManager.js +7 -10
- package/esm/assemblyManager/loadRefNameMap.js +3 -3
- package/esm/configuration/configurationSchema.d.ts +75 -31
- package/esm/configuration/configurationSchema.js +74 -40
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +59 -0
- package/esm/configuration/configurationSlot.d.ts +37 -12
- package/esm/configuration/configurationSlot.js +83 -22
- 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/getConf.d.ts +17 -9
- package/esm/configuration/getConf.js +52 -7
- package/esm/configuration/index.d.ts +11 -4
- package/esm/configuration/index.js +7 -4
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/readConfObject.d.ts +2 -22
- package/esm/configuration/readConfObject.js +15 -49
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +21 -1
- package/esm/configuration/schemaRegistry.js +11 -0
- package/esm/configuration/schemaTypes.d.ts +3 -0
- package/esm/configuration/schemaTypes.js +10 -0
- package/esm/configuration/slotFacade.d.ts +35 -4
- package/esm/configuration/slotFacade.js +96 -9
- package/esm/configuration/snapshotPreprocess.d.ts +27 -0
- package/esm/configuration/snapshotPreprocess.js +102 -0
- package/esm/configuration/types.d.ts +161 -22
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +2 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +11 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +12 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +2 -3
- package/esm/data_adapters/BaseAdapter/featureDensity.js +2 -3
- package/esm/data_adapters/BaseAdapter/index.d.ts +22 -3
- package/esm/data_adapters/BaseAdapter/types.d.ts +3 -4
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/BaseAdapter/zoomRange.js +1 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +9 -11
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +1 -3
- package/esm/data_adapters/getSequenceSubAdapter.js +1 -3
- package/esm/pluggableElementTypes/AdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +1 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +3 -8
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/index.d.ts +1 -1
- package/esm/pluggableElementTypes/index.js +1 -1
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +17 -7
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +45 -48
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +40 -36
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +10 -13
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +6 -6
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +37 -17
- package/esm/pluggableElementTypes/models/BaseViewModel.js +25 -10
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +1 -1
- 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 +57 -141
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +22 -26
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
- 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 +15 -7
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +38 -29
- package/esm/pluggableElementTypes/models/index.d.ts +1 -2
- package/esm/pluggableElementTypes/models/index.js +1 -2
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +3 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +4 -4
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/rpc/BaseRpcDriver.d.ts +1 -2
- package/esm/rpc/BaseRpcDriver.js +23 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +17 -6
- package/esm/rpc/RpcClient.js +42 -12
- package/esm/rpc/RpcManager.d.ts +8 -10
- package/esm/rpc/RpcManager.js +1 -1
- package/esm/rpc/RpcRegistry.d.ts +8 -2
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +3 -3
- package/esm/rpc/WebWorkerRpcDriver.js +9 -47
- package/esm/rpc/byteBudget.d.ts +3 -5
- package/esm/rpc/byteBudget.js +4 -4
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +1 -0
- package/esm/rpc/coreRpcMethods.js +1 -0
- package/esm/rpc/methods/CoreEncodeFeatures.d.ts +6 -5
- package/esm/rpc/methods/CoreEncodeFeatures.js +26 -31
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +31 -0
- package/esm/rpc/methods/CoreGetExportData.js +2 -2
- package/esm/rpc/methods/CoreGetFeatureDensity.js +2 -2
- package/esm/rpc/methods/CoreGetFeatures.js +2 -2
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/layerFeatures.d.ts +26 -0
- package/esm/rpc/methods/layerFeatures.js +40 -0
- package/esm/svg/SvgExport.js +3 -4
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +32 -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/svgReady.d.ts +8 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +5 -5
- package/esm/svg/trackNames.js +6 -6
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/CascadingMenu.js +83 -86
- package/esm/ui/ErrorMessageStackTraceDialog.js +0 -5
- 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/LoadingOverlay.js +3 -1
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +21 -19
- package/esm/ui/PaletteContext.d.ts +7 -9
- package/esm/ui/PaletteContext.js +24 -10
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +1 -1
- package/esm/ui/ScrollChrome.d.ts +6 -9
- package/esm/ui/ScrollChrome.js +5 -6
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +9 -24
- package/esm/ui/SettingsChangesTable.js +3 -3
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +2 -2
- package/esm/ui/ViewLoadingScreen.js +3 -3
- package/esm/ui/colorScale.d.ts +26 -1
- package/esm/ui/colorScale.js +28 -5
- package/esm/ui/colors.d.ts +49 -1
- package/esm/ui/colors.js +139 -4
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +5 -3
- package/esm/ui/index.js +9 -7
- package/esm/ui/launchViewMenu.js +3 -3
- package/esm/ui/legendSpec.d.ts +2 -0
- package/esm/ui/legendSpec.js +3 -0
- package/esm/ui/palette.d.ts +0 -1
- package/esm/ui/palette.js +3 -27
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +1 -1
- package/esm/ui/theme.js +6 -40
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +1 -1
- package/esm/util/Base1DUtils.js +2 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +72 -53
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +84 -0
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -6
- package/esm/util/addAndShowTrack.d.ts +1 -4
- package/esm/util/addRelativeUris.d.ts +10 -2
- package/esm/util/addRelativeUris.js +22 -7
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- 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/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/bezierConnector.js +5 -4
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/cachedSetup.d.ts +1 -1
- package/esm/util/cachedSetup.js +2 -2
- package/esm/util/categoricalField.d.ts +37 -0
- package/esm/util/categoricalField.js +52 -0
- 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 +1 -2
- package/esm/util/colorBits.js +17 -39
- package/esm/util/colorRamp.d.ts +27 -1
- package/esm/util/colorRamp.js +56 -2
- package/esm/util/colorSchemes.d.ts +9 -0
- package/esm/util/colorSchemes.js +7 -0
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +11 -14
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +14 -26
- 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 +7 -12
- package/esm/util/expandLooseSearchIndex.d.ts +7 -0
- package/esm/util/expandLooseSearchIndex.js +25 -0
- package/esm/util/featureTransforms.d.ts +30 -3
- package/esm/util/featureTransforms.js +233 -36
- package/esm/util/fetchAndMaybeUnzip.js +5 -6
- package/esm/util/fetchContext.d.ts +5 -6
- package/esm/util/fetchContext.js +1 -1
- package/esm/util/fetchHub.d.ts +3 -1
- package/esm/util/fetchHub.js +2 -2
- 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/groupKeys.d.ts +75 -0
- package/esm/util/groupKeys.js +152 -0
- package/esm/util/highlights.d.ts +6 -4
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +1 -2
- package/esm/util/hooks.js +1 -2
- package/esm/util/index.d.ts +3 -3
- package/esm/util/index.js +4 -3
- package/esm/util/indexCandidates.js +1 -1
- package/esm/util/installFetch.d.ts +13 -10
- package/esm/util/installFetch.js +11 -10
- package/esm/util/installPrerequisiteFetch.d.ts +5 -3
- package/esm/util/installPrerequisiteFetch.js +3 -4
- package/esm/util/io/index.js +12 -12
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- 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 +7 -5
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/legendCandidates.d.ts +31 -27
- package/esm/util/legendCandidates.js +79 -53
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +32 -16
- package/esm/util/markEncoding.js +177 -150
- package/esm/util/markEncodingTypes.d.ts +137 -66
- package/esm/util/mstUtils.d.ts +19 -22
- package/esm/util/mstUtils.js +19 -22
- 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.js +1 -2
- package/esm/util/openViews.d.ts +1 -0
- package/esm/util/openViews.js +3 -3
- package/esm/util/parseLineByLine.d.ts +3 -4
- package/esm/util/parseLineByLine.js +7 -13
- package/esm/util/progress.d.ts +21 -21
- package/esm/util/progress.js +27 -26
- package/esm/util/renameRegions.d.ts +1 -2
- package/esm/util/renderToStaticMarkup.js +16 -16
- package/esm/util/rxjs.d.ts +7 -8
- package/esm/util/rxjs.js +12 -15
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/tabix.d.ts +3 -4
- package/esm/util/tabix.js +6 -7
- package/esm/util/thresholdScale.d.ts +54 -0
- package/esm/util/thresholdScale.js +112 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +22 -18
- package/esm/util/trackConfigDelta.js +40 -38
- package/esm/util/tracks.d.ts +27 -4
- package/esm/util/tracks.js +116 -43
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/index.d.ts +19 -7
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +15 -0
- package/esm/util/unknownSnapshotKeys.js +13 -0
- package/esm/util/useFeatureSequence.js +4 -4
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +5 -6
- package/esm/util/usePanelVirtualScroll.d.ts +7 -39
- package/esm/util/usePanelVirtualScroll.js +9 -40
- 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 -84
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +24 -15
- package/esm/util/viewStatus.js +17 -0
- package/esm/util/withLaunchInput.d.ts +1 -1
- package/esm/util/withLaunchInput.js +0 -4
- package/package.json +26 -12
- 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/barrelOnlyNames.d.ts +0 -5
- package/esm/ReExports/barrelOnlyNames.js +0 -63
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicTracks.d.ts +0 -1
- package/esm/ReExports/publicTracks.js +0 -14
- package/esm/ReExports/publicUi.d.ts +0 -4
- package/esm/ReExports/publicUi.js +0 -33
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -32
- package/esm/ReExports/sharedModules.d.ts +0 -96
- package/esm/ReExports/sharedModules.js +0 -66
- package/esm/ReExports/workerNamespaceNames.d.ts +0 -11
- package/esm/ReExports/workerNamespaceNames.js +0 -275
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/util/adapterConfigKey.d.ts +0 -12
- package/esm/util/adapterConfigKey.js +0 -14
- package/esm/util/stopToken.d.ts +0 -212
- package/esm/util/stopToken.js +0 -438
|
@@ -1,30 +1,34 @@
|
|
|
1
1
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
2
2
|
/**
|
|
3
3
|
* #config BaseConnection
|
|
4
|
-
* #gotcha
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* #gotcha JBrowse fetches the hub's track list when the connection loads and
|
|
5
|
+
* holds it in memory, and does **not** write it into a saved or shared session.
|
|
6
|
+
* The session stores only the tracks you open (under `connectionTrackConfigs`,
|
|
7
|
+
* keyed by `trackId`), so a shared session stays small even for a very large
|
|
8
|
+
* hub.
|
|
9
9
|
*/
|
|
10
10
|
declare const BaseConnectionConfig: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
11
|
-
/**
|
|
12
|
-
* #slot
|
|
13
|
-
*/
|
|
14
11
|
readonly name: {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
12
|
+
type: "string";
|
|
13
|
+
} & {
|
|
14
|
+
defaultValue: string;
|
|
18
15
|
};
|
|
19
|
-
/**
|
|
20
|
-
* #slot
|
|
21
|
-
*/
|
|
22
16
|
readonly assemblyNames: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
17
|
+
type: "stringArray";
|
|
18
|
+
} & {
|
|
19
|
+
defaultValue: unknown;
|
|
26
20
|
};
|
|
27
|
-
|
|
21
|
+
type: {
|
|
22
|
+
type: "string";
|
|
23
|
+
} & {
|
|
24
|
+
defaultValue: string;
|
|
25
|
+
};
|
|
26
|
+
connectionId: {
|
|
27
|
+
type: "string";
|
|
28
|
+
} & {
|
|
29
|
+
defaultValue: string;
|
|
30
|
+
};
|
|
31
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
28
32
|
export default BaseConnectionConfig;
|
|
29
33
|
export type BaseConnectionConfigSchema = typeof BaseConnectionConfig;
|
|
30
34
|
export type BaseConnectionConfigModel = Instance<BaseConnectionConfigSchema>;
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { ConfigurationSchema } from '../../configuration/index.js';
|
|
2
2
|
/**
|
|
3
3
|
* #config BaseConnection
|
|
4
|
-
* #gotcha
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* #gotcha JBrowse fetches the hub's track list when the connection loads and
|
|
5
|
+
* holds it in memory, and does **not** write it into a saved or shared session.
|
|
6
|
+
* The session stores only the tracks you open (under `connectionTrackConfigs`,
|
|
7
|
+
* keyed by `trackId`), so a shared session stays small even for a very large
|
|
8
|
+
* hub.
|
|
9
9
|
*/
|
|
10
10
|
const BaseConnectionConfig = ConfigurationSchema('BaseConnection', {
|
|
11
11
|
/**
|
|
@@ -3,44 +3,39 @@
|
|
|
3
3
|
* the "base" internet account type
|
|
4
4
|
*/
|
|
5
5
|
export declare const BaseInternetAccountConfig: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
6
|
-
/**
|
|
7
|
-
* #slot
|
|
8
|
-
*/
|
|
9
6
|
readonly name: {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
type: "string";
|
|
8
|
+
} & {
|
|
9
|
+
defaultValue: string;
|
|
13
10
|
};
|
|
14
|
-
/**
|
|
15
|
-
* #slot
|
|
16
|
-
*/
|
|
17
11
|
readonly description: {
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
12
|
+
type: "string";
|
|
13
|
+
} & {
|
|
14
|
+
defaultValue: string;
|
|
21
15
|
};
|
|
22
|
-
/**
|
|
23
|
-
* #slot
|
|
24
|
-
*/
|
|
25
16
|
readonly authHeader: {
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
17
|
+
type: "string";
|
|
18
|
+
} & {
|
|
19
|
+
defaultValue: string;
|
|
29
20
|
};
|
|
30
|
-
/**
|
|
31
|
-
* #slot
|
|
32
|
-
*/
|
|
33
21
|
readonly tokenType: {
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
22
|
+
type: "string";
|
|
23
|
+
} & {
|
|
24
|
+
defaultValue: string;
|
|
37
25
|
};
|
|
38
|
-
/**
|
|
39
|
-
* #slot
|
|
40
|
-
*/
|
|
41
26
|
readonly domains: {
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
27
|
+
type: "stringArray";
|
|
28
|
+
} & {
|
|
29
|
+
defaultValue: unknown;
|
|
45
30
|
};
|
|
46
|
-
|
|
31
|
+
type: {
|
|
32
|
+
type: "string";
|
|
33
|
+
} & {
|
|
34
|
+
defaultValue: string;
|
|
35
|
+
};
|
|
36
|
+
internetAccountId: {
|
|
37
|
+
type: "string";
|
|
38
|
+
} & {
|
|
39
|
+
defaultValue: string;
|
|
40
|
+
};
|
|
41
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
@@ -12,23 +12,16 @@ export declare function preprocessTrackConfigSnapshot(pluginManager: PluginManag
|
|
|
12
12
|
trackId: string;
|
|
13
13
|
name: string;
|
|
14
14
|
type: string;
|
|
15
|
+
assemblyNames?: unknown;
|
|
16
|
+
textSearching?: {
|
|
17
|
+
textSearchAdapter?: unknown;
|
|
18
|
+
};
|
|
15
19
|
displays: {
|
|
16
20
|
type: string;
|
|
17
21
|
featureHeight?: {} | null | undefined;
|
|
18
22
|
displayId: string;
|
|
19
23
|
}[];
|
|
20
24
|
};
|
|
21
|
-
/**
|
|
22
|
-
* The `addDisplayConf` action shared by every track config schema — appends a
|
|
23
|
-
* display config unless one with the same displayId already exists.
|
|
24
|
-
*/
|
|
25
|
-
interface DisplayConf {
|
|
26
|
-
type: string;
|
|
27
|
-
displayId: string;
|
|
28
|
-
}
|
|
29
|
-
export declare function trackConfigActions(self: unknown): {
|
|
30
|
-
addDisplayConf(conf: DisplayConf): DisplayConf | undefined;
|
|
31
|
-
};
|
|
32
25
|
/**
|
|
33
26
|
* #config BaseTrack
|
|
34
27
|
* Configuration shared by all track types. Concrete tracks (FeatureTrack,
|
|
@@ -36,168 +29,91 @@ export declare function trackConfigActions(self: unknown): {
|
|
|
36
29
|
* fields in addition to its own.
|
|
37
30
|
*/
|
|
38
31
|
export declare function createBaseTrackConfig(pluginManager: PluginManager): import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
39
|
-
/**
|
|
40
|
-
* #slot
|
|
41
|
-
*/
|
|
42
32
|
readonly name: {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
33
|
+
type: "string";
|
|
34
|
+
} & {
|
|
35
|
+
defaultValue: string;
|
|
46
36
|
};
|
|
47
|
-
/**
|
|
48
|
-
* #slot
|
|
49
|
-
*/
|
|
50
37
|
readonly assemblyNames: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
38
|
+
type: "stringArray";
|
|
39
|
+
} & {
|
|
40
|
+
defaultValue: unknown;
|
|
54
41
|
};
|
|
55
|
-
/**
|
|
56
|
-
* #slot
|
|
57
|
-
*/
|
|
58
42
|
readonly description: {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
43
|
+
type: "string";
|
|
44
|
+
} & {
|
|
45
|
+
defaultValue: string;
|
|
62
46
|
};
|
|
63
|
-
/**
|
|
64
|
-
* #slot
|
|
65
|
-
*/
|
|
66
47
|
readonly category: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
48
|
+
type: "stringArray";
|
|
49
|
+
} & {
|
|
50
|
+
defaultValue: unknown;
|
|
70
51
|
};
|
|
71
|
-
/**
|
|
72
|
-
* #slot
|
|
73
|
-
*/
|
|
74
52
|
readonly metadata: {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
53
|
+
type: "frozen";
|
|
54
|
+
} & {
|
|
55
|
+
defaultValue: unknown;
|
|
78
56
|
};
|
|
79
|
-
/**
|
|
80
|
-
* #slot
|
|
81
|
-
* where this track's data comes from. Its `type` names the adapter for
|
|
82
|
-
* the file format (`BamAdapter`, `Gff3TabixAdapter`, ...) and the rest of
|
|
83
|
-
* the object is that adapter's own slots — see the adapter pages for
|
|
84
|
-
* each. Most adapters also accept a `uri` shorthand in place of writing
|
|
85
|
-
* their location slots out.
|
|
86
|
-
*/
|
|
87
57
|
readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
88
58
|
readonly textSearching: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
89
|
-
/**
|
|
90
|
-
* #slot textSearching.indexingAttributes
|
|
91
|
-
*/
|
|
92
59
|
readonly indexingAttributes: {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
60
|
+
type: "stringArray";
|
|
61
|
+
} & {
|
|
62
|
+
defaultValue: unknown;
|
|
96
63
|
};
|
|
97
|
-
/**
|
|
98
|
-
* #slot textSearching.indexingFeatureTypesToExclude
|
|
99
|
-
*/
|
|
100
64
|
readonly indexingFeatureTypesToExclude: {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
65
|
+
type: "stringArray";
|
|
66
|
+
} & {
|
|
67
|
+
defaultValue: unknown;
|
|
104
68
|
};
|
|
105
|
-
/**
|
|
106
|
-
* #slot textSearching.indexingFeatureTypesToInclude
|
|
107
|
-
* The only feature types to index, dropping every other type the file
|
|
108
|
-
* carries. Empty (the default) means no allow list, i.e. index
|
|
109
|
-
* everything `indexingFeatureTypesToExclude` does not name.
|
|
110
|
-
*
|
|
111
|
-
* Use this instead of the exclude list when the file draws from a
|
|
112
|
-
* vocabulary you do not control. An NCBI RefSeq GFF3 uses 115 feature
|
|
113
|
-
* types, 80 of them leaf records with nothing to search for — a `match`
|
|
114
|
-
* is labelled with a bare UUID, a `cDNA_match` with an MD5, every
|
|
115
|
-
* `biological_region` with the literal string "biological region" — so
|
|
116
|
-
* a deny list leaks whichever type is added next, while the allow list
|
|
117
|
-
* (gene, pseudogene, and the transcript types) does not grow. Both may
|
|
118
|
-
* be set: this one admits, the exclude list then narrows.
|
|
119
|
-
*
|
|
120
|
-
* GFF3 only; the GTF and VCF indexers do not filter by type.
|
|
121
|
-
*/
|
|
122
69
|
readonly indexingFeatureTypesToInclude: {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
70
|
+
type: "stringArray";
|
|
71
|
+
} & {
|
|
72
|
+
defaultValue: unknown;
|
|
126
73
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
* a per-track name search index, normally a `TrixTextSearchAdapter`
|
|
130
|
-
* over what `jbrowse text-index --tracks` built. Without one, this
|
|
131
|
-
* track's features are only findable through an assembly-wide search
|
|
132
|
-
* adapter.
|
|
133
|
-
*/
|
|
134
|
-
readonly textSearchAdapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
135
|
-
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
136
|
-
/**
|
|
137
|
-
* #slot
|
|
138
|
-
* An **array** of full display configs, e.g.
|
|
139
|
-
* `displays: [{ type: 'LinearBasicDisplay', color: 'green' }]`. Each entry
|
|
140
|
-
* names a display `type`; use this when you need exact control — your own
|
|
141
|
-
* `displayId`, different settings for two displays, or choosing which
|
|
142
|
-
* display is the default.
|
|
143
|
-
*
|
|
144
|
-
* For the common case, prefer the `displayDefaults` shorthand instead — an
|
|
145
|
-
* object of appearance settings (e.g. `displayDefaults: { color: 'green' }`)
|
|
146
|
-
* that JBrowse routes to whichever display uses each setting, so you don't
|
|
147
|
-
* have to name the display or write the array.
|
|
148
|
-
*
|
|
149
|
-
* See the [track config guide](/docs/config_guides/tracks/#configuring-displays).
|
|
150
|
-
*/
|
|
74
|
+
readonly textSearchAdapter: import("@jbrowse/mobx-state-tree").ITypeUnion<any, any, any>;
|
|
75
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
151
76
|
readonly displays: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/mobx-state-tree").IAnyType>;
|
|
152
|
-
/**
|
|
153
|
-
* #slot
|
|
154
|
-
* jexl callbacks that add, rewrite or hide fields in this track's
|
|
155
|
-
* feature-details panel. Four slots, listed at
|
|
156
|
-
* [FormatDetails](/docs/config/formatdetails), and the same schema exists
|
|
157
|
-
* session-wide as `configuration.formatDetails`.
|
|
158
|
-
*/
|
|
159
77
|
readonly formatDetails: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
160
78
|
readonly feature: {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
readonly contextVariable: ["feature"];
|
|
79
|
+
type: "frozen";
|
|
80
|
+
} & {
|
|
81
|
+
defaultValue: unknown;
|
|
165
82
|
};
|
|
166
83
|
readonly subfeatures: {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
readonly contextVariable: ["feature"];
|
|
84
|
+
type: "frozen";
|
|
85
|
+
} & {
|
|
86
|
+
defaultValue: unknown;
|
|
171
87
|
};
|
|
172
88
|
readonly depth: {
|
|
173
|
-
|
|
174
|
-
readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
|
|
89
|
+
type: "maybeNumber";
|
|
175
90
|
};
|
|
176
91
|
readonly maxDepth: {
|
|
177
|
-
|
|
178
|
-
readonly description: "hide subfeatures nested deeper than this, default no limit";
|
|
92
|
+
type: "maybeNumber";
|
|
179
93
|
};
|
|
180
|
-
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined
|
|
181
|
-
/**
|
|
182
|
-
* #slot
|
|
183
|
-
* jexl callbacks that add, rewrite or hide fields in this track's About
|
|
184
|
-
* dialog. Two slots, listed at
|
|
185
|
-
* [FormatAbout](/docs/config/formatabout), and the same schema exists
|
|
186
|
-
* session-wide as `configuration.formatAbout`.
|
|
187
|
-
*/
|
|
94
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
188
95
|
readonly formatAbout: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
189
96
|
readonly config: {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
readonly contextVariable: ["config"];
|
|
97
|
+
type: "frozen";
|
|
98
|
+
} & {
|
|
99
|
+
defaultValue: unknown;
|
|
194
100
|
};
|
|
195
101
|
readonly hideUris: {
|
|
196
|
-
|
|
197
|
-
|
|
102
|
+
type: "boolean";
|
|
103
|
+
} & {
|
|
104
|
+
defaultValue: boolean;
|
|
198
105
|
};
|
|
199
|
-
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined
|
|
200
|
-
|
|
106
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
107
|
+
type: {
|
|
108
|
+
type: "string";
|
|
109
|
+
} & {
|
|
110
|
+
defaultValue: string;
|
|
111
|
+
};
|
|
112
|
+
trackId: {
|
|
113
|
+
type: "string";
|
|
114
|
+
} & {
|
|
115
|
+
defaultValue: string;
|
|
116
|
+
};
|
|
117
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "trackId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>;
|
|
201
118
|
export type BaseTrackConfigSchema = ReturnType<typeof createBaseTrackConfig>;
|
|
202
119
|
export type BaseTrackConfig = Instance<BaseTrackConfigSchema>;
|
|
203
|
-
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { types } from '@jbrowse/mobx-state-tree';
|
|
2
2
|
import { ConfigurationSchema, FormatAboutConfigSchemaFactory, FormatDetailsConfigSchemaFactory, } from '../../configuration/index.js';
|
|
3
|
+
import { expandLooseSearchIndex } from '../../util/expandLooseSearchIndex.js';
|
|
3
4
|
import { expandTrackConfigShorthand } from './expandTrackConfigShorthand.js';
|
|
4
5
|
import { liftLegacyRendererConfig } from './migrateTrackConfig.js';
|
|
5
6
|
/**
|
|
@@ -54,8 +55,17 @@ export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
|
|
|
54
55
|
// are all aliases of one canonical type). First occurrence wins to preserve
|
|
55
56
|
// the default (displays[0]).
|
|
56
57
|
const seenTypes = new Set();
|
|
58
|
+
const { textSearching } = snap;
|
|
57
59
|
return {
|
|
58
60
|
...snap,
|
|
61
|
+
...(textSearching?.textSearchAdapter
|
|
62
|
+
? {
|
|
63
|
+
textSearching: {
|
|
64
|
+
...textSearching,
|
|
65
|
+
textSearchAdapter: expandLooseSearchIndex(textSearching.textSearchAdapter, snap.assemblyNames),
|
|
66
|
+
},
|
|
67
|
+
}
|
|
68
|
+
: {}),
|
|
59
69
|
displays: displays
|
|
60
70
|
.map(d => {
|
|
61
71
|
const canonical = displayAliasMap.get(d.type);
|
|
@@ -76,23 +86,6 @@ export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
|
|
|
76
86
|
.map(d => liftLegacyRendererConfig(d, snap.trackId)),
|
|
77
87
|
};
|
|
78
88
|
}
|
|
79
|
-
export function trackConfigActions(self) {
|
|
80
|
-
const { displays } = self;
|
|
81
|
-
return {
|
|
82
|
-
addDisplayConf(conf) {
|
|
83
|
-
const { type } = conf;
|
|
84
|
-
if (!type) {
|
|
85
|
-
throw new Error('display type not specified');
|
|
86
|
-
}
|
|
87
|
-
const display = displays.find(d => d.displayId === conf.displayId);
|
|
88
|
-
if (display) {
|
|
89
|
-
return display;
|
|
90
|
-
}
|
|
91
|
-
const length = displays.push(conf);
|
|
92
|
-
return displays[length - 1];
|
|
93
|
-
},
|
|
94
|
-
};
|
|
95
|
-
}
|
|
96
89
|
/**
|
|
97
90
|
* #config BaseTrack
|
|
98
91
|
* Configuration shared by all track types. Concrete tracks (FeatureTrack,
|
|
@@ -192,11 +185,17 @@ export function createBaseTrackConfig(pluginManager) {
|
|
|
192
185
|
/**
|
|
193
186
|
* #slot textSearching.textSearchAdapter
|
|
194
187
|
* a per-track name search index, normally a `TrixTextSearchAdapter`
|
|
195
|
-
* over what `jbrowse text-index --tracks` built
|
|
188
|
+
* over what `jbrowse text-index --tracks` built; `{ uri: 'genes.ix' }`
|
|
189
|
+
* is enough, searching this track's assemblies. Without one, this
|
|
196
190
|
* track's features are only findable through an assembly-wide search
|
|
197
191
|
* adapter.
|
|
198
192
|
*/
|
|
199
|
-
|
|
193
|
+
// Not `types.maybe(union)`: that unions the real type *before*
|
|
194
|
+
// `optional(undefined)`, and every member here is all-default, so an
|
|
195
|
+
// omitted key still resolved to the first registered one rather than
|
|
196
|
+
// to nothing (see textSearchAdapterSlotOmission.test.ts). Listing the
|
|
197
|
+
// undefined branch first is what actually wins the omitted-key default.
|
|
198
|
+
textSearchAdapter: types.union(types.optional(types.undefined, undefined), pluginManager.pluggableConfigSchemaType('text search adapter')),
|
|
200
199
|
}),
|
|
201
200
|
/**
|
|
202
201
|
* #slot
|
|
@@ -217,17 +216,15 @@ export function createBaseTrackConfig(pluginManager) {
|
|
|
217
216
|
/**
|
|
218
217
|
* #slot
|
|
219
218
|
* jexl callbacks that add, rewrite or hide fields in this track's
|
|
220
|
-
* feature-details panel.
|
|
221
|
-
*
|
|
222
|
-
* session-wide as `configuration.formatDetails`.
|
|
219
|
+
* feature-details panel. The same schema exists session-wide as
|
|
220
|
+
* `configuration.formatDetails`.
|
|
223
221
|
*/
|
|
224
222
|
formatDetails: FormatDetailsConfigSchemaFactory(),
|
|
225
223
|
/**
|
|
226
224
|
* #slot
|
|
227
225
|
* jexl callbacks that add, rewrite or hide fields in this track's About
|
|
228
|
-
* dialog.
|
|
229
|
-
*
|
|
230
|
-
* session-wide as `configuration.formatAbout`.
|
|
226
|
+
* dialog. The same schema exists session-wide as
|
|
227
|
+
* `configuration.formatAbout`.
|
|
231
228
|
*/
|
|
232
229
|
formatAbout: FormatAboutConfigSchemaFactory(),
|
|
233
230
|
}, {
|
|
@@ -237,6 +234,5 @@ export function createBaseTrackConfig(pluginManager) {
|
|
|
237
234
|
*/
|
|
238
235
|
explicitIdentifier: 'trackId',
|
|
239
236
|
explicitlyTyped: true,
|
|
240
|
-
actions: trackConfigActions,
|
|
241
237
|
});
|
|
242
238
|
}
|
|
@@ -43,13 +43,13 @@ function useTrackDataExport({ model, regions, regionStr, type, options, }) {
|
|
|
43
43
|
// array key as "don't fetch", so the gated state would fetch nothing
|
|
44
44
|
force ? 'forced' : 'gated',
|
|
45
45
|
]
|
|
46
|
-
: null, async (_name, _trackId, _regions, fileType, mode,
|
|
46
|
+
: null, async (_name, _trackId, _regions, fileType, mode, signal, statusCallback) => fetchTrackData({
|
|
47
47
|
model,
|
|
48
48
|
regions,
|
|
49
49
|
type: fileType,
|
|
50
50
|
options,
|
|
51
51
|
force: mode === 'forced',
|
|
52
|
-
|
|
52
|
+
signal,
|
|
53
53
|
statusCallback,
|
|
54
54
|
}));
|
|
55
55
|
return { result: data, error, loading: isLoading, status, setForce };
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '../../../configuration/index.ts';
|
|
2
2
|
import type { Region } from '../../../util/index.ts';
|
|
3
3
|
import type { StatusCallback } from '../../../util/progress.ts';
|
|
4
|
-
import type { StopToken } from '../../../util/stopToken.ts';
|
|
5
4
|
import type { FileTypeExporter } from '../saveTrackFileTypes/types.ts';
|
|
6
5
|
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
7
6
|
/**
|
|
@@ -41,15 +40,15 @@ export interface TrackDataResult {
|
|
|
41
40
|
*
|
|
42
41
|
* This reads every feature in the visible region, which on a deep track is the
|
|
43
42
|
* same work the display itself does — worth cancelling when the dialog closes,
|
|
44
|
-
* and worth naming while it runs, hence the
|
|
43
|
+
* and worth naming while it runs, hence the signal and status callback.
|
|
45
44
|
*/
|
|
46
|
-
export declare function fetchTrackData({ model, regions, type, options, force,
|
|
45
|
+
export declare function fetchTrackData({ model, regions, type, options, force, signal, statusCallback, }: {
|
|
47
46
|
model: ExportableTrack;
|
|
48
47
|
regions: Region[];
|
|
49
48
|
type: string;
|
|
50
49
|
options: Record<string, FileTypeExporter>;
|
|
51
50
|
/** skip the size pre-flight — the user has seen the estimate and said yes */
|
|
52
51
|
force?: boolean;
|
|
53
|
-
|
|
52
|
+
signal?: AbortSignal;
|
|
54
53
|
statusCallback?: StatusCallback;
|
|
55
54
|
}): Promise<TrackDataResult>;
|
|
@@ -30,13 +30,13 @@ function endWithNewline(str) {
|
|
|
30
30
|
*
|
|
31
31
|
* This reads every feature in the visible region, which on a deep track is the
|
|
32
32
|
* same work the display itself does — worth cancelling when the dialog closes,
|
|
33
|
-
* and worth naming while it runs, hence the
|
|
33
|
+
* and worth naming while it runs, hence the signal and status callback.
|
|
34
34
|
*/
|
|
35
|
-
export async function fetchTrackData({ model, regions, type, options, force,
|
|
35
|
+
export async function fetchTrackData({ model, regions, type, options, force, signal, statusCallback, }) {
|
|
36
36
|
const session = getSession(model);
|
|
37
37
|
const sessionId = getRpcSessionId(model);
|
|
38
38
|
const adapterConfig = getConf(model, ['adapter']);
|
|
39
|
-
const opts = {
|
|
39
|
+
const opts = { signal, statusCallback };
|
|
40
40
|
const { exportsDataViaAdapter } = model;
|
|
41
41
|
// The same index lookup the display's gate takes before it fetches, for the
|
|
42
42
|
// same reason: this menu item pulls the region the display just refused to
|
|
@@ -1,19 +1,27 @@
|
|
|
1
1
|
import type PluginManager from '../../PluginManager.ts';
|
|
2
|
+
import type { AnyConfigurationSchemaType } from '../../configuration/index.ts';
|
|
2
3
|
export interface DisplaySnapshot {
|
|
3
4
|
type: string;
|
|
4
5
|
displayId?: string;
|
|
5
6
|
[key: string]: unknown;
|
|
6
7
|
}
|
|
7
8
|
/**
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
9
|
+
* Route each shorthand `displayDefaults: {...}` setting to the display types
|
|
10
|
+
* whose slot of that name takes its value, so slot names disambiguate across
|
|
11
|
+
* displays (`color` → LinearVariantDisplay, `strokeColor` →
|
|
12
|
+
* ChordVariantDisplay) and so do the values: `displayMode: 'compact'` on a
|
|
13
|
+
* FeatureTrack reaches the feature display and not the arc display, whose
|
|
14
|
+
* `displayMode` is `arcs | semicircles`. A key no display declares is an `unknownKeys`
|
|
15
|
+
* entry, and one every declaring display refuses a `refused` entry carrying
|
|
16
|
+
* each display's reason.
|
|
13
17
|
*/
|
|
14
|
-
export declare function collectDisplayOverrides(displaySettings: Record<string, unknown>,
|
|
18
|
+
export declare function collectDisplayOverrides(displaySettings: Record<string, unknown>, displaySchemas: ReadonlyMap<string, AnyConfigurationSchemaType>): {
|
|
15
19
|
overrides: Map<string, Record<string, unknown>>;
|
|
16
20
|
unknownKeys: string[];
|
|
21
|
+
refused: {
|
|
22
|
+
key: string;
|
|
23
|
+
reasons: string[];
|
|
24
|
+
}[];
|
|
17
25
|
};
|
|
18
26
|
/**
|
|
19
27
|
* Pure: fold per-display override props into a `displays` array, creating an
|
|
@@ -25,7 +33,7 @@ export declare function mergeOverridesIntoDisplays(displays: DisplaySnapshot[],
|
|
|
25
33
|
* Expands the shorthand `displayDefaults` **object** into the explicit `displays`
|
|
26
34
|
* **array**, so users can set display settings without naming the display type
|
|
27
35
|
* or nesting in `displays:[{type,...}]`. `displayDefaults:{color:'green'}` routes
|
|
28
|
-
* each setting to the display type(s)
|
|
36
|
+
* each setting to the display type(s) whose slot takes it, folding them into
|
|
29
37
|
* whatever `displays` array the track already has (explicit entries win).
|
|
30
38
|
*
|
|
31
39
|
* `displayDefaults` is kept separate from `displays` (rather than overloading
|