@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
|
@@ -1,34 +1,71 @@
|
|
|
1
1
|
import type PluginManager from '../../PluginManager.ts';
|
|
2
|
+
import type { LegacyDisplaySnapshot } from './migrateTrackConfig.ts';
|
|
2
3
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
4
|
+
interface TrackConfigSnapshot {
|
|
5
|
+
trackId: string;
|
|
6
|
+
name: string;
|
|
7
|
+
type: string;
|
|
8
|
+
assemblyNames?: unknown;
|
|
9
|
+
textSearching?: {
|
|
10
|
+
textSearchAdapter?: unknown;
|
|
11
|
+
};
|
|
12
|
+
adapter?: {
|
|
13
|
+
type?: unknown;
|
|
14
|
+
};
|
|
15
|
+
displays?: LegacyDisplaySnapshot[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Whether a track's adapter serves what a display type draws from: every
|
|
19
|
+
* `adapterCapabilities` entry the display asks for, among those the adapter
|
|
20
|
+
* type declares.
|
|
21
|
+
*/
|
|
22
|
+
export declare function adapterFeeds(pluginManager: PluginManager, adapter: TrackConfigSnapshot['adapter']): (display: {
|
|
23
|
+
adapterCapabilities: readonly string[];
|
|
24
|
+
}) => boolean;
|
|
25
|
+
/**
|
|
26
|
+
* The display types of `trackType` a track on `adapter` can draw as, in the
|
|
27
|
+
* track type's order.
|
|
28
|
+
*/
|
|
29
|
+
export declare function displayTypesFedBy(pluginManager: PluginManager, trackType: string, adapter: TrackConfigSnapshot['adapter']): string[];
|
|
30
|
+
/**
|
|
31
|
+
* The display types a view may open a track as, best first: those its adapter
|
|
32
|
+
* feeds, the ones its config declares leading in declared order. A declared
|
|
33
|
+
* display the adapter cannot feed stays in the config as settings and is never
|
|
34
|
+
* a candidate.
|
|
35
|
+
*/
|
|
36
|
+
export declare function displayCandidates(pluginManager: PluginManager, track: {
|
|
37
|
+
type: string;
|
|
38
|
+
adapter?: TrackConfigSnapshot['adapter'];
|
|
39
|
+
displays?: readonly {
|
|
40
|
+
type: string;
|
|
41
|
+
}[];
|
|
42
|
+
}): string[];
|
|
3
43
|
/**
|
|
4
44
|
* Snapshot normalization shared by every track config schema (including
|
|
5
|
-
* ReferenceSequenceTrack).
|
|
6
|
-
*
|
|
7
|
-
* each of the track type's registered displays
|
|
8
|
-
*
|
|
9
|
-
*
|
|
45
|
+
* ReferenceSequenceTrack). Loads retired display types as the displays they
|
|
46
|
+
* retired into, runs the `Core-preProcessTrackConfig` extension point,
|
|
47
|
+
* auto-fills a stub display for each of the track type's registered displays
|
|
48
|
+
* whose adapter capabilities the track's adapter declares, folds the
|
|
49
|
+
* `displayDefaults` shorthand into those entries, dedupes by type (first wins),
|
|
50
|
+
* and lifts legacy renderer configs.
|
|
10
51
|
*/
|
|
11
52
|
export declare function preprocessTrackConfigSnapshot(pluginManager: PluginManager, snapshot: Record<string, unknown>): {
|
|
12
53
|
trackId: string;
|
|
13
54
|
name: string;
|
|
14
55
|
type: string;
|
|
56
|
+
assemblyNames?: unknown;
|
|
57
|
+
textSearching?: {
|
|
58
|
+
textSearchAdapter?: unknown;
|
|
59
|
+
};
|
|
60
|
+
adapter?: {
|
|
61
|
+
type?: unknown;
|
|
62
|
+
};
|
|
15
63
|
displays: {
|
|
16
64
|
type: string;
|
|
17
65
|
featureHeight?: {} | null | undefined;
|
|
18
66
|
displayId: string;
|
|
19
67
|
}[];
|
|
20
68
|
};
|
|
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
69
|
/**
|
|
33
70
|
* #config BaseTrack
|
|
34
71
|
* Configuration shared by all track types. Concrete tracks (FeatureTrack,
|
|
@@ -36,168 +73,92 @@ export declare function trackConfigActions(self: unknown): {
|
|
|
36
73
|
* fields in addition to its own.
|
|
37
74
|
*/
|
|
38
75
|
export declare function createBaseTrackConfig(pluginManager: PluginManager): import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
39
|
-
/**
|
|
40
|
-
* #slot
|
|
41
|
-
*/
|
|
42
76
|
readonly name: {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
77
|
+
type: "string";
|
|
78
|
+
} & {
|
|
79
|
+
defaultValue: string;
|
|
46
80
|
};
|
|
47
|
-
/**
|
|
48
|
-
* #slot
|
|
49
|
-
*/
|
|
50
81
|
readonly assemblyNames: {
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
82
|
+
type: "stringArray";
|
|
83
|
+
} & {
|
|
84
|
+
defaultValue: unknown;
|
|
54
85
|
};
|
|
55
|
-
/**
|
|
56
|
-
* #slot
|
|
57
|
-
*/
|
|
58
86
|
readonly description: {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
87
|
+
type: "string";
|
|
88
|
+
} & {
|
|
89
|
+
defaultValue: string;
|
|
62
90
|
};
|
|
63
|
-
/**
|
|
64
|
-
* #slot
|
|
65
|
-
*/
|
|
66
91
|
readonly category: {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
92
|
+
type: "stringArray";
|
|
93
|
+
} & {
|
|
94
|
+
defaultValue: unknown;
|
|
70
95
|
};
|
|
71
|
-
/**
|
|
72
|
-
* #slot
|
|
73
|
-
*/
|
|
74
96
|
readonly metadata: {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
97
|
+
type: "frozen";
|
|
98
|
+
} & {
|
|
99
|
+
defaultValue: unknown;
|
|
78
100
|
};
|
|
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
|
-
readonly adapter: import("@jbrowse/mobx-state-tree").IAnyType;
|
|
101
|
+
readonly adapter: import("@jbrowse/core/PluginManager").PluggableConfigSchemaType;
|
|
88
102
|
readonly textSearching: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
89
|
-
/**
|
|
90
|
-
* #slot textSearching.indexingAttributes
|
|
91
|
-
*/
|
|
92
103
|
readonly indexingAttributes: {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
104
|
+
type: "stringArray";
|
|
105
|
+
} & {
|
|
106
|
+
defaultValue: unknown;
|
|
96
107
|
};
|
|
97
|
-
/**
|
|
98
|
-
* #slot textSearching.indexingFeatureTypesToExclude
|
|
99
|
-
*/
|
|
100
108
|
readonly indexingFeatureTypesToExclude: {
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
109
|
+
type: "stringArray";
|
|
110
|
+
} & {
|
|
111
|
+
defaultValue: unknown;
|
|
104
112
|
};
|
|
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
113
|
readonly indexingFeatureTypesToInclude: {
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
114
|
+
type: "stringArray";
|
|
115
|
+
} & {
|
|
116
|
+
defaultValue: unknown;
|
|
126
117
|
};
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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
|
-
*/
|
|
151
|
-
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
|
-
*/
|
|
118
|
+
readonly textSearchAdapter: import("@jbrowse/mobx-state-tree").ITypeUnion<any, any, import("../../configuration/types.ts").PluggableConfigNode | undefined>;
|
|
119
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
120
|
+
readonly displays: import("@jbrowse/mobx-state-tree").IArrayType<import("@jbrowse/core/PluginManager").PluggableConfigSchemaType>;
|
|
159
121
|
readonly formatDetails: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
160
122
|
readonly feature: {
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
readonly contextVariable: ["feature"];
|
|
123
|
+
type: "frozen";
|
|
124
|
+
} & {
|
|
125
|
+
defaultValue: unknown;
|
|
165
126
|
};
|
|
166
127
|
readonly subfeatures: {
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
readonly contextVariable: ["feature"];
|
|
128
|
+
type: "frozen";
|
|
129
|
+
} & {
|
|
130
|
+
defaultValue: unknown;
|
|
171
131
|
};
|
|
172
132
|
readonly depth: {
|
|
173
|
-
|
|
174
|
-
readonly description: "levels of subfeature the formatDetails.subfeatures callback runs on, default 2";
|
|
133
|
+
type: "maybeNumber";
|
|
175
134
|
};
|
|
176
135
|
readonly maxDepth: {
|
|
177
|
-
|
|
178
|
-
readonly description: "hide subfeatures nested deeper than this, default no limit";
|
|
136
|
+
type: "maybeNumber";
|
|
179
137
|
};
|
|
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
|
-
*/
|
|
138
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
188
139
|
readonly formatAbout: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
189
140
|
readonly config: {
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
readonly contextVariable: ["config"];
|
|
141
|
+
type: "frozen";
|
|
142
|
+
} & {
|
|
143
|
+
defaultValue: unknown;
|
|
194
144
|
};
|
|
195
145
|
readonly hideUris: {
|
|
196
|
-
|
|
197
|
-
|
|
146
|
+
type: "boolean";
|
|
147
|
+
} & {
|
|
148
|
+
defaultValue: boolean;
|
|
198
149
|
};
|
|
199
|
-
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
200
|
-
|
|
150
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined, undefined, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
151
|
+
type: {
|
|
152
|
+
type: "string";
|
|
153
|
+
} & {
|
|
154
|
+
defaultValue: string;
|
|
155
|
+
};
|
|
156
|
+
trackId: {
|
|
157
|
+
type: "string";
|
|
158
|
+
} & {
|
|
159
|
+
defaultValue: string;
|
|
160
|
+
};
|
|
161
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "trackId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>, any>>;
|
|
201
162
|
export type BaseTrackConfigSchema = ReturnType<typeof createBaseTrackConfig>;
|
|
202
163
|
export type BaseTrackConfig = Instance<BaseTrackConfigSchema>;
|
|
203
164
|
export {};
|
|
@@ -1,67 +1,101 @@
|
|
|
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
|
-
import { liftLegacyRendererConfig } from './migrateTrackConfig.js';
|
|
5
|
+
import { liftLegacyRendererConfig, migrateRetiredDisplays, } from './migrateTrackConfig.js';
|
|
6
|
+
/**
|
|
7
|
+
* Whether a track's adapter serves what a display type draws from: every
|
|
8
|
+
* `adapterCapabilities` entry the display asks for, among those the adapter
|
|
9
|
+
* type declares.
|
|
10
|
+
*/
|
|
11
|
+
export function adapterFeeds(pluginManager, adapter) {
|
|
12
|
+
const type = adapter?.type;
|
|
13
|
+
const capabilities = new Set(typeof type === 'string' && pluginManager.hasAdapterType(type)
|
|
14
|
+
? pluginManager.getAdapterType(type).adapterCapabilities
|
|
15
|
+
: []);
|
|
16
|
+
return (display) => display.adapterCapabilities.every(c => capabilities.has(c));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The display types of `trackType` a track on `adapter` can draw as, in the
|
|
20
|
+
* track type's order.
|
|
21
|
+
*/
|
|
22
|
+
export function displayTypesFedBy(pluginManager, trackType, adapter) {
|
|
23
|
+
return pluginManager
|
|
24
|
+
.getTrackType(trackType)
|
|
25
|
+
.displayTypes.filter(adapterFeeds(pluginManager, adapter))
|
|
26
|
+
.map(d => d.name);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* The display types a view may open a track as, best first: those its adapter
|
|
30
|
+
* feeds, the ones its config declares leading in declared order. A declared
|
|
31
|
+
* display the adapter cannot feed stays in the config as settings and is never
|
|
32
|
+
* a candidate.
|
|
33
|
+
*/
|
|
34
|
+
export function displayCandidates(pluginManager, track) {
|
|
35
|
+
const declared = (track.displays ?? []).map(d => pluginManager.resolveDisplayTypeRecord(d.type)?.name ?? d.type);
|
|
36
|
+
const rank = (name) => {
|
|
37
|
+
const i = declared.indexOf(name);
|
|
38
|
+
return i === -1 ? declared.length : i;
|
|
39
|
+
};
|
|
40
|
+
return displayTypesFedBy(pluginManager, track.type, track.adapter).sort((a, b) => rank(a) - rank(b));
|
|
41
|
+
}
|
|
5
42
|
/**
|
|
6
43
|
* Snapshot normalization shared by every track config schema (including
|
|
7
|
-
* ReferenceSequenceTrack).
|
|
8
|
-
*
|
|
9
|
-
* each of the track type's registered displays
|
|
10
|
-
*
|
|
11
|
-
*
|
|
44
|
+
* ReferenceSequenceTrack). Loads retired display types as the displays they
|
|
45
|
+
* retired into, runs the `Core-preProcessTrackConfig` extension point,
|
|
46
|
+
* auto-fills a stub display for each of the track type's registered displays
|
|
47
|
+
* whose adapter capabilities the track's adapter declares, folds the
|
|
48
|
+
* `displayDefaults` shorthand into those entries, dedupes by type (first wins),
|
|
49
|
+
* and lifts legacy renderer configs.
|
|
12
50
|
*/
|
|
13
51
|
export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
|
|
14
|
-
const
|
|
52
|
+
const pre = pluginManager.evaluateExtensionPoint(
|
|
15
53
|
/** #extensionPoint Core-preProcessTrackConfig | sync | Rewrite a track config snapshot before it is instantiated */
|
|
16
|
-
'Core-preProcessTrackConfig', structuredClone(snapshot))
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
// Add any of the track type's possible displays not already on the snapshot
|
|
54
|
+
'Core-preProcessTrackConfig', migrateRetiredDisplays(pluginManager, structuredClone(snapshot)));
|
|
55
|
+
// a non-array `displays` would crash MST union-type probing
|
|
56
|
+
const declared = Array.isArray(pre.displays) ? pre.displays : [];
|
|
57
|
+
let displays = declared;
|
|
58
|
+
if (pre.trackId !== 'placeholderId') {
|
|
59
|
+
// The displays the config declared lead, in its order; every other one
|
|
60
|
+
// the adapter feeds follows in the track type's own order.
|
|
24
61
|
try {
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
62
|
+
const declaredTypes = new Set(declared.map(d => d.type));
|
|
63
|
+
const feeds = adapterFeeds(pluginManager, pre.adapter);
|
|
64
|
+
displays = [
|
|
65
|
+
...declared,
|
|
66
|
+
...pluginManager
|
|
67
|
+
.getTrackType(pre.type ?? '')
|
|
68
|
+
.displayTypes.filter(d => !declaredTypes.has(d.name) && feeds(d))
|
|
69
|
+
.map(d => ({ displayId: `${pre.trackId}-${d.name}`, type: d.name })),
|
|
70
|
+
];
|
|
34
71
|
}
|
|
35
72
|
catch (e) {
|
|
36
|
-
throw new Error(`Unknown track type "${
|
|
73
|
+
throw new Error(`Unknown track type "${pre.type}" in ${JSON.stringify(pre)}`, { cause: e });
|
|
37
74
|
}
|
|
38
75
|
}
|
|
39
|
-
const
|
|
40
|
-
const knownDisplayTypes = new Set(
|
|
41
|
-
//
|
|
42
|
-
// `aliases` declaration. Lets each display "own" its renames without a central
|
|
43
|
-
// migration file.
|
|
44
|
-
const displayAliasMap = new Map();
|
|
45
|
-
for (const d of displayElements) {
|
|
46
|
-
if (d.aliases) {
|
|
47
|
-
for (const alias of d.aliases) {
|
|
48
|
-
displayAliasMap.set(alias, d.name);
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
// After alias normalization, dedupe by type so the track config holds one
|
|
53
|
-
// display per type (old sessions can carry several display configs whose types
|
|
54
|
-
// are all aliases of one canonical type). First occurrence wins to preserve
|
|
55
|
-
// the default (displays[0]).
|
|
76
|
+
const snap = expandTrackConfigShorthand({ ...pre, displays }, pluginManager);
|
|
77
|
+
const knownDisplayTypes = new Set(pluginManager.getDisplayElements().map(d => d.name));
|
|
78
|
+
// one display per type; the first keeps its place as the default
|
|
56
79
|
const seenTypes = new Set();
|
|
80
|
+
const { textSearching } = snap;
|
|
57
81
|
return {
|
|
58
82
|
...snap,
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
83
|
+
...(textSearching?.textSearchAdapter
|
|
84
|
+
? {
|
|
85
|
+
textSearching: {
|
|
86
|
+
...textSearching,
|
|
87
|
+
textSearchAdapter: expandLooseSearchIndex(textSearching.textSearchAdapter, snap.assemblyNames),
|
|
88
|
+
},
|
|
89
|
+
}
|
|
90
|
+
: {}),
|
|
91
|
+
displays: snap.displays
|
|
92
|
+
.filter(d => {
|
|
93
|
+
const known = knownDisplayTypes.has(d.type);
|
|
94
|
+
if (!known) {
|
|
95
|
+
console.warn(`Dropping display of unknown type "${d.type}" from track "${snap.trackId}": no registered display type has that name`);
|
|
96
|
+
}
|
|
97
|
+
return known;
|
|
63
98
|
})
|
|
64
|
-
.filter(d => knownDisplayTypes.has(d.type))
|
|
65
99
|
.filter(d => {
|
|
66
100
|
const dup = seenTypes.has(d.type);
|
|
67
101
|
seenTypes.add(d.type);
|
|
@@ -70,23 +104,6 @@ export function preprocessTrackConfigSnapshot(pluginManager, snapshot) {
|
|
|
70
104
|
.map(d => liftLegacyRendererConfig(d, snap.trackId)),
|
|
71
105
|
};
|
|
72
106
|
}
|
|
73
|
-
export function trackConfigActions(self) {
|
|
74
|
-
const { displays } = self;
|
|
75
|
-
return {
|
|
76
|
-
addDisplayConf(conf) {
|
|
77
|
-
const { type } = conf;
|
|
78
|
-
if (!type) {
|
|
79
|
-
throw new Error('display type not specified');
|
|
80
|
-
}
|
|
81
|
-
const display = displays.find(d => d.displayId === conf.displayId);
|
|
82
|
-
if (display) {
|
|
83
|
-
return display;
|
|
84
|
-
}
|
|
85
|
-
const length = displays.push(conf);
|
|
86
|
-
return displays[length - 1];
|
|
87
|
-
},
|
|
88
|
-
};
|
|
89
|
-
}
|
|
90
107
|
/**
|
|
91
108
|
* #config BaseTrack
|
|
92
109
|
* Configuration shared by all track types. Concrete tracks (FeatureTrack,
|
|
@@ -94,6 +111,14 @@ export function trackConfigActions(self) {
|
|
|
94
111
|
* fields in addition to its own.
|
|
95
112
|
*/
|
|
96
113
|
export function createBaseTrackConfig(pluginManager) {
|
|
114
|
+
const none = types.optional(types.undefined, undefined);
|
|
115
|
+
const adapter = pluginManager.pluggableConfigSchemaType('text search adapter');
|
|
116
|
+
// A dispatcher rather than `types.maybe` or member order. Every adapter here
|
|
117
|
+
// is all-default, so an omitted key has to resolve to nothing rather than the
|
|
118
|
+
// first registered adapter (textSearchAdapterSlotOmission.test.ts). And
|
|
119
|
+
// clearing a set slot, as undo does, must not hand `undefined` to the current
|
|
120
|
+
// adapter's preProcessSnapshot, which MST's own matching does to test it.
|
|
121
|
+
const optionalTextSearchAdapter = types.union({ dispatcher: snapshot => (snapshot === undefined ? none : adapter) }, none, adapter);
|
|
97
122
|
return ConfigurationSchema('BaseTrack', {
|
|
98
123
|
/**
|
|
99
124
|
* #slot
|
|
@@ -186,11 +211,12 @@ export function createBaseTrackConfig(pluginManager) {
|
|
|
186
211
|
/**
|
|
187
212
|
* #slot textSearching.textSearchAdapter
|
|
188
213
|
* a per-track name search index, normally a `TrixTextSearchAdapter`
|
|
189
|
-
* over what `jbrowse text-index --tracks` built.
|
|
214
|
+
* over what `jbrowse text-index --tracks` built; `'genes.ix'` is
|
|
215
|
+
* enough, searching this track's assemblies. Without one, this
|
|
190
216
|
* track's features are only findable through an assembly-wide search
|
|
191
217
|
* adapter.
|
|
192
218
|
*/
|
|
193
|
-
textSearchAdapter:
|
|
219
|
+
textSearchAdapter: optionalTextSearchAdapter,
|
|
194
220
|
}),
|
|
195
221
|
/**
|
|
196
222
|
* #slot
|
|
@@ -211,17 +237,15 @@ export function createBaseTrackConfig(pluginManager) {
|
|
|
211
237
|
/**
|
|
212
238
|
* #slot
|
|
213
239
|
* jexl callbacks that add, rewrite or hide fields in this track's
|
|
214
|
-
* feature-details panel.
|
|
215
|
-
*
|
|
216
|
-
* session-wide as `configuration.formatDetails`.
|
|
240
|
+
* feature-details panel. The same schema exists session-wide as
|
|
241
|
+
* `configuration.formatDetails`.
|
|
217
242
|
*/
|
|
218
243
|
formatDetails: FormatDetailsConfigSchemaFactory(),
|
|
219
244
|
/**
|
|
220
245
|
* #slot
|
|
221
246
|
* jexl callbacks that add, rewrite or hide fields in this track's About
|
|
222
|
-
* dialog.
|
|
223
|
-
*
|
|
224
|
-
* session-wide as `configuration.formatAbout`.
|
|
247
|
+
* dialog. The same schema exists session-wide as
|
|
248
|
+
* `configuration.formatAbout`.
|
|
225
249
|
*/
|
|
226
250
|
formatAbout: FormatAboutConfigSchemaFactory(),
|
|
227
251
|
}, {
|
|
@@ -231,6 +255,5 @@ export function createBaseTrackConfig(pluginManager) {
|
|
|
231
255
|
*/
|
|
232
256
|
explicitIdentifier: 'trackId',
|
|
233
257
|
explicitlyTyped: true,
|
|
234
|
-
actions: trackConfigActions,
|
|
235
258
|
});
|
|
236
259
|
}
|
|
@@ -39,17 +39,15 @@ function useTrackDataExport({ model, regions, regionStr, type, options, }) {
|
|
|
39
39
|
getConf(model, 'trackId'),
|
|
40
40
|
regionStr,
|
|
41
41
|
type,
|
|
42
|
-
|
|
43
|
-
// array key as "don't fetch", so the gated state would fetch nothing
|
|
44
|
-
force ? 'forced' : 'gated',
|
|
42
|
+
force,
|
|
45
43
|
]
|
|
46
|
-
: null, async (_name, _trackId, _regions, fileType,
|
|
44
|
+
: null, async (_name, _trackId, _regions, fileType, forced, signal, statusCallback) => fetchTrackData({
|
|
47
45
|
model,
|
|
48
46
|
regions,
|
|
49
47
|
type: fileType,
|
|
50
48
|
options,
|
|
51
|
-
force:
|
|
52
|
-
|
|
49
|
+
force: forced,
|
|
50
|
+
signal,
|
|
53
51
|
statusCallback,
|
|
54
52
|
}));
|
|
55
53
|
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
|