@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1709 -390
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +37 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +49 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +8 -5
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +62 -83
- package/esm/BaseFeatureWidget/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
- package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
- package/esm/BaseFeatureWidget/types.d.ts +12 -6
- package/esm/BaseFeatureWidget/util.d.ts +0 -10
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/CorePlugin.js +34 -3
- package/esm/PluginLoader.d.ts +24 -13
- package/esm/PluginLoader.js +167 -51
- package/esm/PluginManager.d.ts +130 -24
- package/esm/PluginManager.js +180 -32
- package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
- package/esm/ReExports/MuiDataGridReExports.js +2 -2
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +530 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +490 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +68 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +528 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -165
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +3 -0
- package/esm/ReExports/uiStub.js +33 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +11 -0
- package/esm/TextSearch/TextSearchManager.d.ts +27 -13
- package/esm/TextSearch/TextSearchManager.js +77 -36
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +21 -19
- package/esm/assemblyManager/assembly.js +28 -26
- package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
- package/esm/assemblyManager/assemblyAdapters.js +8 -2
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
- package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
- package/esm/assemblyManager/assemblyManager.d.ts +35 -180
- package/esm/assemblyManager/assemblyManager.js +47 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
- package/esm/assemblyManager/geneticCodes.js +2 -5
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
- package/esm/assemblyManager/loadRefNameMap.js +4 -9
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -0
- package/esm/checkPlugins.d.ts +2 -0
- package/esm/checkPlugins.js +38 -17
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +101 -71
- package/esm/configuration/configurationSchema.js +207 -134
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +150 -60
- package/esm/configuration/configurationSlot.js +103 -75
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/fullConfSnapshot.d.ts +4 -19
- package/esm/configuration/fullConfSnapshot.js +30 -52
- package/esm/configuration/getConf.d.ts +45 -41
- package/esm/configuration/getConf.js +111 -44
- package/esm/configuration/index.d.ts +26 -11
- package/esm/configuration/index.js +16 -7
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/plot.d.ts +61 -0
- package/esm/configuration/plot.js +142 -0
- package/esm/configuration/readConfObject.d.ts +2 -24
- package/esm/configuration/readConfObject.js +20 -63
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +32 -15
- package/esm/configuration/schemaRegistry.js +33 -35
- package/esm/configuration/schemaTypes.d.ts +21 -5
- package/esm/configuration/schemaTypes.js +66 -55
- package/esm/configuration/slotFacade.d.ts +12 -29
- package/esm/configuration/slotFacade.js +44 -23
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +30 -4
- package/esm/configuration/tabixIndexFields.js +21 -4
- package/esm/configuration/tabixShorthand.d.ts +34 -17
- package/esm/configuration/tabixShorthand.js +49 -22
- package/esm/configuration/types.d.ts +182 -43
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
- package/esm/data_adapters/BaseAdapter/index.js +1 -0
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
- package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
- package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
- package/esm/data_adapters/BaseAdapter/stats.js +52 -13
- package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
- package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
- package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
- package/esm/data_adapters/dataAdapterCache.js +44 -10
- package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
- package/esm/data_adapters/getFeatureAdapter.js +8 -8
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
- package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
- package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
- package/esm/pluggableElementTypes/AdapterType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
- package/esm/pluggableElementTypes/DisplayType.js +28 -12
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
- package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
- package/esm/pluggableElementTypes/ViewType.js +32 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
- package/esm/pluggableElementTypes/WidgetType.js +6 -0
- package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
- package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
- package/esm/pluggableElementTypes/extendElementType.js +9 -5
- package/esm/pluggableElementTypes/index.d.ts +2 -1
- package/esm/pluggableElementTypes/index.js +2 -9
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
- package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
- package/esm/pluggableElementTypes/models/index.d.ts +2 -3
- package/esm/pluggableElementTypes/models/index.js +2 -3
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/pluginDefinitions.d.ts +34 -7
- package/esm/pluginDefinitions.js +54 -20
- package/esm/rpc/BaseRpcDriver.d.ts +2 -2
- package/esm/rpc/BaseRpcDriver.js +25 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +18 -6
- package/esm/rpc/RpcClient.js +51 -16
- package/esm/rpc/RpcManager.d.ts +14 -10
- package/esm/rpc/RpcManager.js +11 -1
- package/esm/rpc/RpcRegistry.d.ts +40 -7
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
- package/esm/rpc/WebWorkerRpcDriver.js +64 -68
- package/esm/rpc/byteBudget.d.ts +20 -5
- package/esm/rpc/byteBudget.js +16 -5
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +4 -0
- package/esm/rpc/coreRpcMethods.js +4 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
- package/esm/rpc/methods/CoreGetExportData.js +3 -4
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.js +3 -5
- package/esm/rpc/methods/CoreGetRefNames.js +2 -12
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
- package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
- package/esm/rpc/methods/layerFeatures.d.ts +33 -0
- package/esm/rpc/methods/layerFeatures.js +29 -0
- package/esm/svg/SvgExport.js +6 -7
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +28 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +1 -1
- package/esm/svg/svgId.js +1 -1
- package/esm/svg/svgReady.d.ts +9 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +7 -5
- package/esm/svg/trackNames.js +12 -9
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/AddCustomPluginDialog.js +3 -8
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
- package/esm/ui/CascadingMenu.js +181 -104
- package/esm/ui/DropDownMenu.js +2 -1
- package/esm/ui/ErrorBanner.js +1 -1
- package/esm/ui/ErrorBoundary.d.ts +2 -2
- package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
- package/esm/ui/ExportSvgDialog.d.ts +1 -1
- package/esm/ui/FileDropZone.js +2 -1
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -50
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.js +26 -21
- package/esm/ui/LoadingOverlay.d.ts +14 -0
- package/esm/ui/LoadingOverlay.js +4 -2
- package/esm/ui/MenuTypes.d.ts +23 -53
- package/esm/ui/MenuTypes.js +3 -0
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +23 -20
- package/esm/ui/PaletteContext.d.ts +10 -5
- package/esm/ui/PaletteContext.js +44 -6
- package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +8 -2
- package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/util.js +42 -1
- package/esm/ui/ResizeHandle.d.ts +3 -1
- package/esm/ui/ResizeHandle.js +44 -11
- package/esm/ui/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +14 -35
- package/esm/ui/ScrollZoomToggle.d.ts +4 -27
- package/esm/ui/ScrollZoomToggle.js +34 -51
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +1 -0
- package/esm/ui/SettingsChangesTable.js +49 -11
- package/esm/ui/ShareLinkField.d.ts +1 -3
- package/esm/ui/ShareLinkField.js +13 -40
- package/esm/ui/SizeSliderRow.d.ts +1 -3
- package/esm/ui/SizeSliderRow.js +4 -6
- package/esm/ui/SnackbarModel.js +79 -67
- package/esm/ui/StatusProgressBar.js +2 -2
- package/esm/ui/SvgColorLegend.d.ts +9 -4
- package/esm/ui/SvgColorLegend.js +82 -41
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +5 -4
- package/esm/ui/ViewLoadingScreen.js +8 -32
- package/esm/ui/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colors.d.ts +64 -0
- package/esm/ui/colors.js +230 -1
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +12 -12
- package/esm/ui/index.js +14 -22
- package/esm/ui/launchViewMenu.js +15 -5
- package/esm/ui/legendMenuItem.d.ts +10 -32
- package/esm/ui/legendMenuItem.js +9 -36
- package/esm/ui/legendSpec.d.ts +15 -8
- package/esm/ui/legendSpec.js +14 -23
- package/esm/ui/makeSizeMenu.d.ts +0 -6
- package/esm/ui/makeSizeMenu.js +6 -30
- package/esm/ui/measureLegendText.js +1 -1
- package/esm/ui/menuItemAdornment.d.ts +9 -20
- package/esm/ui/menuItemAdornment.js +10 -32
- package/esm/ui/menuItems.d.ts +2 -7
- package/esm/ui/menuItems.js +1 -6
- package/esm/ui/multiTrackMenuItems.d.ts +6 -0
- package/esm/ui/palette.d.ts +118 -116
- package/esm/ui/palette.js +114 -75
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +43 -119
- package/esm/ui/theme.js +62 -78
- package/esm/ui/toggleMenuItems.d.ts +1 -3
- package/esm/ui/toggleMenuItems.js +6 -5
- package/esm/ui/useAssemblySelection.d.ts +4 -4
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +5 -3
- package/esm/util/Base1DUtils.js +14 -6
- package/esm/util/Base1DViewModel.d.ts +2 -1
- package/esm/util/Base1DViewModel.js +3 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +76 -56
- package/esm/util/TimeTraveller.d.ts +3 -0
- package/esm/util/TimeTraveller.js +34 -2
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +88 -6
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -5
- package/esm/util/addAndShowTrack.d.ts +2 -5
- package/esm/util/addAndShowTrack.js +5 -1
- package/esm/util/addRelativeUris.d.ts +17 -5
- package/esm/util/addRelativeUris.js +46 -10
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/addTrackFromWidget.js +5 -4
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.js +46 -13
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandHeight.d.ts +10 -0
- package/esm/util/bandHeight.js +29 -0
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/baseDisplayConfig.d.ts +8 -0
- package/esm/util/baseDisplayConfig.js +27 -0
- package/esm/util/bezierConnector.d.ts +4 -3
- package/esm/util/bezierConnector.js +38 -45
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -0
- package/esm/util/cacheBudgets.d.ts +22 -19
- package/esm/util/cacheBudgets.js +22 -19
- package/esm/util/cachedSetup.d.ts +16 -6
- package/esm/util/cachedSetup.js +108 -38
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/cellMatches.d.ts +23 -0
- package/esm/util/cellMatches.js +264 -0
- package/esm/util/cellsStep.d.ts +29 -0
- package/esm/util/cellsStep.js +437 -0
- package/esm/util/clampToContig.d.ts +17 -0
- package/esm/util/clampToContig.js +19 -0
- package/esm/util/coarseStripHTML.js +1 -2
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +3 -3
- package/esm/util/colorBits.js +19 -44
- package/esm/util/colorRamp.d.ts +49 -5
- package/esm/util/colorRamp.js +169 -18
- package/esm/util/colorScale.d.ts +156 -0
- package/esm/util/colorScale.js +243 -0
- package/esm/util/colorSchemes.d.ts +21 -0
- package/esm/util/colorSchemes.js +30 -0
- package/esm/util/copyToClipboard.js +8 -1
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
- package/esm/util/createSvgRasterCanvas.d.ts +10 -0
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +8 -13
- package/esm/util/expandLooseSearchIndex.d.ts +19 -0
- package/esm/util/expandLooseSearchIndex.js +29 -0
- package/esm/util/featureTable.d.ts +224 -0
- package/esm/util/featureTable.js +366 -0
- package/esm/util/featureTransforms.d.ts +81 -0
- package/esm/util/featureTransforms.js +1231 -0
- package/esm/util/featureTypes.d.ts +24 -0
- package/esm/util/featureTypes.js +35 -0
- package/esm/util/fetchAndMaybeUnzip.js +16 -9
- package/esm/util/fetchContext.d.ts +7 -8
- package/esm/util/fetchContext.js +3 -3
- package/esm/util/fetchHub.d.ts +4 -2
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchPhases.d.ts +10 -10
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/formatBytes.js +1 -1
- package/esm/util/formatGuessers.d.ts +25 -14
- package/esm/util/formatGuessers.js +42 -27
- package/esm/util/formatRelativeTime.js +1 -1
- package/esm/util/freezeDeep.d.ts +8 -10
- package/esm/util/freezeDeep.js +8 -10
- package/esm/util/getLocationUri.d.ts +2 -1
- package/esm/util/getLocationUri.js +8 -2
- package/esm/util/groupKeys.d.ts +76 -0
- package/esm/util/groupKeys.js +156 -0
- package/esm/util/highlights.d.ts +10 -6
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +31 -2
- package/esm/util/hooks.js +72 -3
- package/esm/util/index.d.ts +11 -11
- package/esm/util/index.js +11 -10
- package/esm/util/indexCandidates.d.ts +1 -31
- package/esm/util/indexCandidates.js +5 -63
- package/esm/util/installFetch.d.ts +77 -37
- package/esm/util/installFetch.js +65 -38
- package/esm/util/installInitAutorun.d.ts +14 -13
- package/esm/util/installInitAutorun.js +17 -17
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -0
- package/esm/util/intervals.js +9 -4
- package/esm/util/io/index.js +22 -15
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -0
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +32 -57
- package/esm/util/jexlFilters.js +31 -29
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
- package/esm/util/layouts/GranularRectLayout.js +25 -8
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/lazyWithPreload.d.ts +19 -0
- package/esm/util/lazyWithPreload.js +27 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -0
- package/esm/util/locString.js +5 -2
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +885 -0
- package/esm/util/markEncodingTypes.d.ts +595 -0
- package/esm/util/markEncodingTypes.js +8 -0
- package/esm/util/mst-reflection.d.ts +2 -20
- package/esm/util/mst-reflection.js +3 -53
- package/esm/util/mstUtils.d.ts +31 -23
- package/esm/util/mstUtils.js +39 -24
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.d.ts +5 -0
- package/esm/util/openFeatureWidget.js +2 -2
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -0
- package/esm/util/parentWalk.d.ts +1 -1
- package/esm/util/parentWalk.js +1 -1
- package/esm/util/parseLineByLine.d.ts +4 -5
- package/esm/util/parseLineByLine.js +8 -14
- package/esm/util/pluginStore.d.ts +6 -8
- package/esm/util/pluginStore.js +17 -16
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +22 -22
- package/esm/util/progress.js +27 -26
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +13 -9
- package/esm/util/range.js +17 -8
- package/esm/util/renameRegions.d.ts +26 -6
- package/esm/util/renameRegions.js +68 -54
- package/esm/util/renderToStaticMarkup.js +24 -14
- package/esm/util/rxjs.d.ts +23 -8
- package/esm/util/rxjs.js +61 -15
- package/esm/util/samplesTsv.d.ts +49 -0
- package/esm/util/samplesTsv.js +86 -0
- package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
- package/esm/util/scheduleDetachedDestroy.js +24 -0
- package/esm/util/scrollLatch.d.ts +1 -0
- package/esm/util/scrollLatch.js +8 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -0
- package/esm/util/sessionSharing.d.ts +7 -5
- package/esm/util/sessionSharing.js +23 -23
- package/esm/util/shapeNameList.d.ts +2 -0
- package/esm/util/shapeNameList.js +6 -0
- package/esm/util/shapeNames.d.ts +7 -0
- package/esm/util/shapeNames.js +11 -0
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/springAnimate.js +1 -1
- package/esm/util/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stepTables.d.ts +96 -0
- package/esm/util/stepTables.js +277 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +19 -10
- package/esm/util/tabix.js +19 -14
- package/esm/util/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +26 -26
- package/esm/util/trackConfigDelta.js +63 -47
- package/esm/util/tracks.d.ts +120 -66
- package/esm/util/tracks.js +501 -151
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/data.d.ts +0 -2
- package/esm/util/types/index.d.ts +121 -22
- package/esm/util/types/index.js +9 -0
- package/esm/util/types/mst.d.ts +3 -0
- package/esm/util/types/mst.js +4 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -0
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +53 -0
- package/esm/util/unknownSnapshotKeys.js +76 -0
- package/esm/util/useFeatureSequence.js +5 -5
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +19 -10
- package/esm/util/useFetchPlugins.d.ts +6 -2
- package/esm/util/useFetchPlugins.js +7 -3
- package/esm/util/usePanZoom.js +10 -3
- package/esm/util/usePanelVirtualScroll.d.ts +7 -35
- package/esm/util/usePanelVirtualScroll.js +9 -36
- package/esm/util/useRafCommit.js +1 -0
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -74
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +47 -15
- package/esm/util/viewStatus.js +34 -0
- package/esm/util/wheelZoom.d.ts +7 -1
- package/esm/util/wheelZoom.js +85 -19
- package/esm/util/whenViewSettled.d.ts +55 -8
- package/esm/util/whenViewSettled.js +56 -7
- package/esm/util/withFeatureDetails.js +4 -0
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +75 -24
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -28
- package/esm/configuration/promotableDefaults.d.ts +0 -199
- package/esm/configuration/promotableDefaults.js +0 -326
- package/esm/configuration/promotablePin.d.ts +0 -55
- package/esm/configuration/promotablePin.js +0 -1
- package/esm/configuration/promotableResolve.d.ts +0 -108
- package/esm/configuration/promotableResolve.js +0 -117
- package/esm/configuration/promotableSlots.d.ts +0 -12
- package/esm/configuration/promotableSlots.js +0 -45
- package/esm/configuration/slotShape.d.ts +0 -12
- package/esm/configuration/slotShape.js +0 -84
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/PinAdornment.d.ts +0 -5
- package/esm/ui/PinAdornment.js +0 -79
- package/esm/ui/SvgGradientLegend.d.ts +0 -26
- package/esm/ui/SvgGradientLegend.js +0 -26
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/ui/promotableMenuItems.d.ts +0 -19
- package/esm/ui/promotableMenuItems.js +0 -89
- package/esm/ui/promotablePinCoverage.d.ts +0 -44
- package/esm/ui/promotablePinCoverage.js +0 -87
- package/esm/util/applyInitSettings.d.ts +0 -79
- package/esm/util/applyInitSettings.js +0 -91
- package/esm/util/openDisplays.d.ts +0 -23
- package/esm/util/openDisplays.js +0 -79
- package/esm/util/stopToken.d.ts +0 -211
- package/esm/util/stopToken.js +0 -438
- /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
|
@@ -1,39 +1,49 @@
|
|
|
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 member of that name takes its value: `color: 'red'` reaches every
|
|
11
|
+
* display with a colour, `color: { field: 'type' }` only those whose colour
|
|
12
|
+
* maps a field, and a spelling a display retired reaches that display as the
|
|
13
|
+
* members it became. `reached` names the displays each key went to. A key no
|
|
14
|
+
* display knows is an `unknownKeys` entry, and one every display that knows it
|
|
15
|
+
* refuses a `refused` entry carrying each reason.
|
|
13
16
|
*/
|
|
14
|
-
export declare function collectDisplayOverrides(displaySettings: Record<string, unknown>,
|
|
17
|
+
export declare function collectDisplayOverrides(displaySettings: Record<string, unknown>, displaySchemas: ReadonlyMap<string, AnyConfigurationSchemaType>): {
|
|
15
18
|
overrides: Map<string, Record<string, unknown>>;
|
|
19
|
+
reached: Map<string, string[]>;
|
|
16
20
|
unknownKeys: string[];
|
|
21
|
+
refused: {
|
|
22
|
+
key: string;
|
|
23
|
+
reasons: string[];
|
|
24
|
+
}[];
|
|
17
25
|
};
|
|
18
26
|
/**
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
27
|
+
* Fold per-display override props into the entries a `displays` array already
|
|
28
|
+
* has; explicit props win. A display with no entry gets none: a setting never
|
|
29
|
+
* adds a display to a track.
|
|
22
30
|
*/
|
|
23
|
-
export declare function mergeOverridesIntoDisplays(displays: DisplaySnapshot[], overrides: Map<string, Record<string, unknown
|
|
31
|
+
export declare function mergeOverridesIntoDisplays(displays: DisplaySnapshot[], overrides: Map<string, Record<string, unknown>>): DisplaySnapshot[];
|
|
24
32
|
/**
|
|
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)
|
|
29
|
-
*
|
|
36
|
+
* each setting to the display type(s) whose slot takes it, folding them into
|
|
37
|
+
* the entries the `displays` array has (explicit props win). A key whose every
|
|
38
|
+
* taker is missing from the array, a display the track's adapter cannot feed,
|
|
39
|
+
* is reported rather than giving the track that display.
|
|
30
40
|
*
|
|
31
41
|
* `displayDefaults` is kept separate from `displays` (rather than overloading
|
|
32
42
|
* `displays` by shape) so a config using it still loads in a JBrowse version
|
|
33
43
|
* that predates the feature — the unknown key is ignored, instead of crashing
|
|
34
44
|
* when the array-typed `displays` slot receives an object.
|
|
35
45
|
*
|
|
36
|
-
* Runs inside `baseTrackConfig.preProcessSnapshot`,
|
|
46
|
+
* Runs inside `baseTrackConfig.preProcessSnapshot`, after display-stub
|
|
37
47
|
* injection. Takes/returns the loosely-typed snapshot (as `evaluateExtensionPoint`
|
|
38
48
|
* does) — the caller casts the result to its snapshot type for validation.
|
|
39
49
|
*/
|
|
@@ -1,75 +1,96 @@
|
|
|
1
1
|
import { getConfigurationSchemaMetadata } from '../../configuration/schemaRegistry.js';
|
|
2
|
-
|
|
2
|
+
import { slotValueRefusal } from '../../configuration/slotFacade.js';
|
|
3
|
+
import { isPlainObject } from '../../util/objectUtils.js';
|
|
4
|
+
/**
|
|
5
|
+
* What one display would do with a shorthand setting: the members it would
|
|
6
|
+
* write, or why it will not take it. `undefined` means the display has no
|
|
7
|
+
* member of that name and no retired spelling of one, so it is not a candidate
|
|
8
|
+
* and the key is not its business.
|
|
9
|
+
*/
|
|
10
|
+
function verdictOf(schema, key, value) {
|
|
3
11
|
const meta = getConfigurationSchemaMetadata(schema);
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
const retired = meta?.options.retired?.[key];
|
|
13
|
+
let members;
|
|
14
|
+
try {
|
|
15
|
+
members = retired
|
|
16
|
+
? retired(value)
|
|
17
|
+
: meta?.definition[key]
|
|
18
|
+
? { [key]: value }
|
|
19
|
+
: undefined;
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
return { refusal: e instanceof Error ? e.message : String(e) };
|
|
14
23
|
}
|
|
15
|
-
|
|
24
|
+
// A lift answering nothing has not placed the value — a `colorBy` naming a
|
|
25
|
+
// scheme this display never had, a `renderer` holding none of the props it
|
|
26
|
+
// retired. That is the `unknownKeys` report, not a silent write of nothing.
|
|
27
|
+
if (!members || Object.keys(members).length === 0) {
|
|
28
|
+
return undefined;
|
|
29
|
+
}
|
|
30
|
+
const refusal = Object.entries(members)
|
|
31
|
+
.map(([name, member]) => slotValueRefusal(schema, name, member))
|
|
32
|
+
.find(reason => reason !== undefined);
|
|
33
|
+
return refusal === undefined ? { members } : { refusal };
|
|
16
34
|
}
|
|
17
35
|
/**
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
36
|
+
* Route each shorthand `displayDefaults: {...}` setting to the display types
|
|
37
|
+
* whose member of that name takes its value: `color: 'red'` reaches every
|
|
38
|
+
* display with a colour, `color: { field: 'type' }` only those whose colour
|
|
39
|
+
* maps a field, and a spelling a display retired reaches that display as the
|
|
40
|
+
* members it became. `reached` names the displays each key went to. A key no
|
|
41
|
+
* display knows is an `unknownKeys` entry, and one every display that knows it
|
|
42
|
+
* refuses a `refused` entry carrying each reason.
|
|
23
43
|
*/
|
|
24
|
-
export function collectDisplayOverrides(displaySettings,
|
|
44
|
+
export function collectDisplayOverrides(displaySettings, displaySchemas) {
|
|
25
45
|
const overrides = new Map();
|
|
46
|
+
const reached = new Map();
|
|
26
47
|
const unknownKeys = [];
|
|
48
|
+
const refused = [];
|
|
27
49
|
for (const [key, value] of Object.entries(displaySettings)) {
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
50
|
+
const verdicts = [...displaySchemas].flatMap(([name, schema]) => {
|
|
51
|
+
const verdict = verdictOf(schema, key, value);
|
|
52
|
+
return verdict ? [{ name, ...verdict }] : [];
|
|
53
|
+
});
|
|
54
|
+
const targets = verdicts.filter(v => v.members);
|
|
55
|
+
if (verdicts.length === 0) {
|
|
37
56
|
unknownKeys.push(key);
|
|
38
57
|
}
|
|
58
|
+
else if (targets.length === 0) {
|
|
59
|
+
refused.push({
|
|
60
|
+
key,
|
|
61
|
+
reasons: verdicts.map(v => `${v.name}: ${v.refusal}`),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
for (const { name, members } of targets) {
|
|
65
|
+
overrides.set(name, { ...overrides.get(name), ...members });
|
|
66
|
+
}
|
|
67
|
+
reached.set(key, targets.map(t => t.name));
|
|
39
68
|
}
|
|
40
|
-
return { overrides, unknownKeys };
|
|
69
|
+
return { overrides, reached, unknownKeys, refused };
|
|
41
70
|
}
|
|
42
71
|
/**
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
72
|
+
* Fold per-display override props into the entries a `displays` array already
|
|
73
|
+
* has; explicit props win. A display with no entry gets none: a setting never
|
|
74
|
+
* adds a display to a track.
|
|
46
75
|
*/
|
|
47
|
-
export function mergeOverridesIntoDisplays(displays, overrides
|
|
48
|
-
|
|
49
|
-
const merged = displays.map(d => {
|
|
50
|
-
seen.add(d.type);
|
|
51
|
-
return { ...overrides.get(d.type), ...d };
|
|
52
|
-
});
|
|
53
|
-
for (const [name, props] of overrides) {
|
|
54
|
-
if (!seen.has(name)) {
|
|
55
|
-
merged.push({ type: name, displayId: `${trackId}-${name}`, ...props });
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
return merged;
|
|
76
|
+
export function mergeOverridesIntoDisplays(displays, overrides) {
|
|
77
|
+
return displays.map(d => ({ ...overrides.get(d.type), ...d }));
|
|
59
78
|
}
|
|
60
79
|
/**
|
|
61
80
|
* Expands the shorthand `displayDefaults` **object** into the explicit `displays`
|
|
62
81
|
* **array**, so users can set display settings without naming the display type
|
|
63
82
|
* or nesting in `displays:[{type,...}]`. `displayDefaults:{color:'green'}` routes
|
|
64
|
-
* each setting to the display type(s)
|
|
65
|
-
*
|
|
83
|
+
* each setting to the display type(s) whose slot takes it, folding them into
|
|
84
|
+
* the entries the `displays` array has (explicit props win). A key whose every
|
|
85
|
+
* taker is missing from the array, a display the track's adapter cannot feed,
|
|
86
|
+
* is reported rather than giving the track that display.
|
|
66
87
|
*
|
|
67
88
|
* `displayDefaults` is kept separate from `displays` (rather than overloading
|
|
68
89
|
* `displays` by shape) so a config using it still loads in a JBrowse version
|
|
69
90
|
* that predates the feature — the unknown key is ignored, instead of crashing
|
|
70
91
|
* when the array-typed `displays` slot receives an object.
|
|
71
92
|
*
|
|
72
|
-
* Runs inside `baseTrackConfig.preProcessSnapshot`,
|
|
93
|
+
* Runs inside `baseTrackConfig.preProcessSnapshot`, after display-stub
|
|
73
94
|
* injection. Takes/returns the loosely-typed snapshot (as `evaluateExtensionPoint`
|
|
74
95
|
* does) — the caller casts the result to its snapshot type for validation.
|
|
75
96
|
*/
|
|
@@ -101,15 +122,26 @@ export function expandTrackConfigShorthand(input, pluginManager) {
|
|
|
101
122
|
if (!trackType.displayTypes.length) {
|
|
102
123
|
return snap;
|
|
103
124
|
}
|
|
104
|
-
const { overrides, unknownKeys } = collectDisplayOverrides(shorthand,
|
|
125
|
+
const { overrides, reached, unknownKeys, refused } = collectDisplayOverrides(shorthand, new Map(trackType.displayTypes.map(d => [d.name, d.configSchema])));
|
|
105
126
|
for (const key of unknownKeys) {
|
|
106
127
|
console.warn(`Track "${trackId}": display setting "${key}" is not a slot on any display of a ${type}`);
|
|
107
128
|
}
|
|
129
|
+
if (refused.length > 0) {
|
|
130
|
+
throw new Error(refused
|
|
131
|
+
.map(({ key, reasons }) => `Track "${trackId}": no display of a ${type} takes displayDefaults.${key} (${reasons.join('; ')})`)
|
|
132
|
+
.join('\n'));
|
|
133
|
+
}
|
|
108
134
|
const displays = Array.isArray(rest.displays)
|
|
109
135
|
? rest.displays
|
|
110
136
|
: [];
|
|
137
|
+
const listed = new Set(displays.map(d => d.type));
|
|
138
|
+
for (const [key, names] of reached) {
|
|
139
|
+
if (names.length > 0 && !names.some(name => listed.has(name))) {
|
|
140
|
+
console.warn(`Track "${trackId}": displayDefaults.${key} reaches only ${names.join(', ')}, which its adapter cannot feed`);
|
|
141
|
+
}
|
|
142
|
+
}
|
|
111
143
|
return {
|
|
112
144
|
...rest,
|
|
113
|
-
displays: mergeOverridesIntoDisplays(displays, overrides
|
|
145
|
+
displays: mergeOverridesIntoDisplays(displays, overrides),
|
|
114
146
|
};
|
|
115
147
|
}
|
|
@@ -2,7 +2,6 @@ export { default as baseConnectionConfig } from './baseConnectionConfig.ts';
|
|
|
2
2
|
export { default as BaseConnectionModelFactory } from './BaseConnectionModelFactory.ts';
|
|
3
3
|
export { default as BaseViewModel } from './BaseViewModel.ts';
|
|
4
4
|
export type { IBaseViewModel } from './BaseViewModel.ts';
|
|
5
|
-
export { default as HighlightsMixin } from './HighlightsMixin.ts';
|
|
6
5
|
export { BaseDisplay } from './BaseDisplayModel.tsx';
|
|
7
6
|
export type { BaseDisplayModel, BaseDisplayStateModel, DisplayModel, } from './BaseDisplayModel.tsx';
|
|
8
7
|
export { InternetAccount } from './InternetAccountModel.ts';
|
|
@@ -10,8 +9,8 @@ export type { BaseInternetAccountModel, BaseInternetAccountStateModel, } from '.
|
|
|
10
9
|
export { BaseInternetAccountConfig } from './baseInternetAccountConfig.ts';
|
|
11
10
|
export { createBaseTrackModel } from './BaseTrackModel.ts';
|
|
12
11
|
export type { BaseTrackModel, BaseTrackStateModel } from './BaseTrackModel.ts';
|
|
13
|
-
export { createBaseTrackConfig, preprocessTrackConfigSnapshot,
|
|
12
|
+
export { createBaseTrackConfig, preprocessTrackConfigSnapshot, } from './baseTrackConfig.ts';
|
|
14
13
|
export type { BaseTrackConfig } from './baseTrackConfig.ts';
|
|
15
|
-
export {
|
|
14
|
+
export { migrateRetiredDisplays } from './migrateTrackConfig.ts';
|
|
16
15
|
export type { TrackConfigSnapshot } from './migrateTrackConfig.ts';
|
|
17
16
|
export type { FileTypeExporter } from './saveTrackFileTypes/types.ts';
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
export { default as baseConnectionConfig } from './baseConnectionConfig.js';
|
|
2
2
|
export { default as BaseConnectionModelFactory } from './BaseConnectionModelFactory.js';
|
|
3
3
|
export { default as BaseViewModel } from './BaseViewModel.js';
|
|
4
|
-
export { default as HighlightsMixin } from './HighlightsMixin.js';
|
|
5
4
|
export { BaseDisplay } from './BaseDisplayModel.js';
|
|
6
5
|
export { InternetAccount } from './InternetAccountModel.js';
|
|
7
6
|
export { BaseInternetAccountConfig } from './baseInternetAccountConfig.js';
|
|
8
7
|
export { createBaseTrackModel } from './BaseTrackModel.js';
|
|
9
|
-
export { createBaseTrackConfig, preprocessTrackConfigSnapshot,
|
|
10
|
-
export {
|
|
8
|
+
export { createBaseTrackConfig, preprocessTrackConfigSnapshot, } from './baseTrackConfig.js';
|
|
9
|
+
export { migrateRetiredDisplays } from './migrateTrackConfig.js';
|
|
@@ -15,7 +15,21 @@ declare module '../../PluginManager.ts' {
|
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
|
|
18
|
+
/**
|
|
19
|
+
* Loads each display entry a retired type names as the display it retired
|
|
20
|
+
* into, and rewrites every entry's retired spellings, as each DisplayType's
|
|
21
|
+
* `retiredTypes` and its config schema's `retired` declare. Runs on the track
|
|
22
|
+
* config before the `Core-preProcessTrackConfig` handlers, which read the
|
|
23
|
+
* current names, and before the display union, which refuses a retired value
|
|
24
|
+
* where a schema's own `preProcessSnapshot` never runs.
|
|
25
|
+
*
|
|
26
|
+
* Entries that collapse onto one type become one: an entry written for this
|
|
27
|
+
* display beats one written for a retired type, a bare `{ type, displayId }`
|
|
28
|
+
* stub yields to either, and among equals the first wins. The survivor takes
|
|
29
|
+
* the first one's place and id, so the default display and the references a
|
|
30
|
+
* session holds stay where they were.
|
|
31
|
+
*/
|
|
32
|
+
export declare function migrateRetiredDisplays(pluginManager: PluginManager, snap: TrackConfigSnapshot): TrackConfigSnapshot;
|
|
19
33
|
export interface LegacyDisplaySnapshot {
|
|
20
34
|
type: string;
|
|
21
35
|
displayId?: string;
|
|
@@ -1,33 +1,93 @@
|
|
|
1
1
|
// Back-compat migration for track config snapshots. Kept out of
|
|
2
2
|
// baseTrackConfig.ts so the schema definition stays free of legacy-format
|
|
3
3
|
// handling.
|
|
4
|
+
import { getConfigurationSchemaMetadata } from '../../configuration/schemaRegistry.js';
|
|
5
|
+
import { liftRetiredSpellings } from '../../configuration/snapshotPreprocess.js';
|
|
4
6
|
// #endregion
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
7
|
+
const isBareEntry = (entry) => Object.keys(entry).every(k => k === 'type' || k === 'displayId');
|
|
8
|
+
/**
|
|
9
|
+
* Loads each display entry a retired type names as the display it retired
|
|
10
|
+
* into, and rewrites every entry's retired spellings, as each DisplayType's
|
|
11
|
+
* `retiredTypes` and its config schema's `retired` declare. Runs on the track
|
|
12
|
+
* config before the `Core-preProcessTrackConfig` handlers, which read the
|
|
13
|
+
* current names, and before the display union, which refuses a retired value
|
|
14
|
+
* where a schema's own `preProcessSnapshot` never runs.
|
|
15
|
+
*
|
|
16
|
+
* Entries that collapse onto one type become one: an entry written for this
|
|
17
|
+
* display beats one written for a retired type, a bare `{ type, displayId }`
|
|
18
|
+
* stub yields to either, and among equals the first wins. The survivor takes
|
|
19
|
+
* the first one's place and id, so the default display and the references a
|
|
20
|
+
* session holds stay where they were.
|
|
21
|
+
*/
|
|
22
|
+
export function migrateRetiredDisplays(pluginManager, snap) {
|
|
23
|
+
const { displays, trackId } = snap;
|
|
24
|
+
if (!Array.isArray(displays) || displays.length === 0) {
|
|
25
|
+
return snap;
|
|
26
|
+
}
|
|
27
|
+
const elements = pluginManager.getDisplayElements();
|
|
28
|
+
const byName = new Map(elements.map(d => [d.name, d]));
|
|
29
|
+
const byRetiredName = new Map(elements.flatMap(d => d.retiredTypes.map(r => [r.type, { d, r }])));
|
|
30
|
+
const migrated = displays.map((entry) => {
|
|
31
|
+
const type = entry.type;
|
|
32
|
+
const retired = type === undefined ? undefined : byRetiredName.get(type);
|
|
33
|
+
const display = retired?.d ?? (type ? byName.get(type) : undefined);
|
|
34
|
+
if (!display) {
|
|
35
|
+
return { entry, rank: 0 };
|
|
36
|
+
}
|
|
37
|
+
let next = entry;
|
|
38
|
+
if (retired) {
|
|
39
|
+
const { displayId } = entry;
|
|
40
|
+
next = {
|
|
41
|
+
...(retired.r.migrate?.(entry) ?? entry),
|
|
42
|
+
type: display.name,
|
|
43
|
+
...(displayId === undefined
|
|
44
|
+
? {}
|
|
45
|
+
: {
|
|
46
|
+
displayId: displayId === `${String(trackId)}-${type}`
|
|
47
|
+
? `${String(trackId)}-${display.name}`
|
|
48
|
+
: displayId,
|
|
49
|
+
}),
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
const meta = getConfigurationSchemaMetadata(display.configSchema);
|
|
53
|
+
next = meta ? liftRetiredSpellings(meta, next) : next;
|
|
54
|
+
return {
|
|
55
|
+
entry: next,
|
|
56
|
+
type: display.name,
|
|
57
|
+
rank: isBareEntry(entry) ? 1 : retired ? 2 : 3,
|
|
58
|
+
};
|
|
30
59
|
});
|
|
60
|
+
if (migrated.every((m, i) => m.entry === displays[i] && m.type === displays[i].type) &&
|
|
61
|
+
new Set(migrated.map(m => m.type)).size === migrated.length) {
|
|
62
|
+
return snap;
|
|
63
|
+
}
|
|
64
|
+
const winners = new Map();
|
|
65
|
+
for (const m of migrated) {
|
|
66
|
+
const best = m.type === undefined ? undefined : winners.get(m.type);
|
|
67
|
+
if (m.type !== undefined && (!best || m.rank > best.rank)) {
|
|
68
|
+
winners.set(m.type, m);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
const placed = new Set();
|
|
72
|
+
return {
|
|
73
|
+
...snap,
|
|
74
|
+
displays: migrated.flatMap(m => {
|
|
75
|
+
if (m.type === undefined) {
|
|
76
|
+
return [m.entry];
|
|
77
|
+
}
|
|
78
|
+
if (placed.has(m.type)) {
|
|
79
|
+
return [];
|
|
80
|
+
}
|
|
81
|
+
placed.add(m.type);
|
|
82
|
+
const winner = winners.get(m.type);
|
|
83
|
+
const displayId = m.entry.displayId ?? winner.entry.displayId;
|
|
84
|
+
return [
|
|
85
|
+
winner === m || displayId === undefined
|
|
86
|
+
? winner.entry
|
|
87
|
+
: { ...winner.entry, displayId },
|
|
88
|
+
];
|
|
89
|
+
}),
|
|
90
|
+
};
|
|
31
91
|
}
|
|
32
92
|
// The GPU rewrite removed the per-display `renderer` sub-config (which carried
|
|
33
93
|
// color/height/etc.). Old configs still nest those values under `renderer`, so
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type { AbstractSessionModel, Feature, StatusCallback
|
|
1
|
+
import type { AbstractSessionModel, Feature, StatusCallback } from '../../../util/index.ts';
|
|
2
|
+
export declare function insdcFeatureKey(type: string): string;
|
|
2
3
|
export declare function formatFeatWithSubfeatures({ feature, minPos, geneName, }: {
|
|
3
4
|
feature: Feature;
|
|
4
5
|
minPos: number;
|
|
5
6
|
geneName?: string;
|
|
6
7
|
}): string;
|
|
7
|
-
export declare function stringifyGBK({ features, assemblyName, session,
|
|
8
|
+
export declare function stringifyGBK({ features, assemblyName, session, signal, statusCallback, }: {
|
|
8
9
|
assemblyName: string;
|
|
9
10
|
session: AbstractSessionModel;
|
|
10
11
|
features: Feature[];
|
|
11
|
-
|
|
12
|
+
signal?: AbortSignal;
|
|
12
13
|
statusCallback?: StatusCallback;
|
|
13
14
|
}): Promise<string>;
|