@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.10
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1476 -265
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +16 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +50 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +62 -83
- package/esm/BaseFeatureWidget/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
- package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
- package/esm/BaseFeatureWidget/types.d.ts +12 -6
- package/esm/BaseFeatureWidget/util.d.ts +0 -10
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/CorePlugin.js +2 -2
- package/esm/PluginLoader.d.ts +24 -13
- package/esm/PluginLoader.js +167 -51
- package/esm/PluginManager.d.ts +130 -24
- package/esm/PluginManager.js +180 -32
- package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
- package/esm/ReExports/MuiDataGridReExports.js +2 -2
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +528 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +488 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +68 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +527 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -165
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +3 -0
- package/esm/ReExports/uiStub.js +33 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +11 -0
- package/esm/TextSearch/TextSearchManager.d.ts +27 -13
- package/esm/TextSearch/TextSearchManager.js +77 -36
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +21 -19
- package/esm/assemblyManager/assembly.js +28 -26
- package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
- package/esm/assemblyManager/assemblyAdapters.js +8 -2
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
- package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
- package/esm/assemblyManager/assemblyManager.d.ts +35 -180
- package/esm/assemblyManager/assemblyManager.js +47 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
- package/esm/assemblyManager/geneticCodes.js +2 -5
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
- package/esm/assemblyManager/loadRefNameMap.js +4 -9
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -0
- package/esm/checkPlugins.d.ts +2 -0
- package/esm/checkPlugins.js +38 -17
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +101 -71
- package/esm/configuration/configurationSchema.js +207 -134
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +150 -60
- package/esm/configuration/configurationSlot.js +103 -75
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/fullConfSnapshot.d.ts +4 -19
- package/esm/configuration/fullConfSnapshot.js +30 -52
- package/esm/configuration/getConf.d.ts +45 -41
- package/esm/configuration/getConf.js +111 -44
- package/esm/configuration/index.d.ts +24 -11
- package/esm/configuration/index.js +15 -7
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/readConfObject.d.ts +2 -24
- package/esm/configuration/readConfObject.js +20 -63
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +32 -15
- package/esm/configuration/schemaRegistry.js +33 -35
- package/esm/configuration/schemaTypes.d.ts +21 -5
- package/esm/configuration/schemaTypes.js +66 -55
- package/esm/configuration/slotFacade.d.ts +12 -29
- package/esm/configuration/slotFacade.js +44 -23
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +30 -4
- package/esm/configuration/tabixIndexFields.js +21 -4
- package/esm/configuration/tabixShorthand.d.ts +34 -17
- package/esm/configuration/tabixShorthand.js +49 -22
- package/esm/configuration/types.d.ts +182 -43
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
- package/esm/data_adapters/BaseAdapter/index.js +1 -0
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
- package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
- package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
- package/esm/data_adapters/BaseAdapter/stats.js +52 -13
- package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
- package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
- package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
- package/esm/data_adapters/dataAdapterCache.js +44 -10
- package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
- package/esm/data_adapters/getFeatureAdapter.js +8 -8
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
- package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
- package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
- package/esm/pluggableElementTypes/AdapterType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +46 -16
- package/esm/pluggableElementTypes/DisplayType.js +22 -12
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
- package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
- package/esm/pluggableElementTypes/ViewType.js +32 -4
- package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
- package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
- package/esm/pluggableElementTypes/extendElementType.js +9 -5
- package/esm/pluggableElementTypes/index.d.ts +2 -1
- package/esm/pluggableElementTypes/index.js +1 -1
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +65 -27
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +72 -10
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +85 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +53 -10
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
- package/esm/pluggableElementTypes/models/index.d.ts +2 -3
- package/esm/pluggableElementTypes/models/index.js +2 -3
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/pluginDefinitions.d.ts +34 -7
- package/esm/pluginDefinitions.js +54 -20
- package/esm/rpc/BaseRpcDriver.d.ts +2 -2
- package/esm/rpc/BaseRpcDriver.js +25 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +18 -6
- package/esm/rpc/RpcClient.js +51 -16
- package/esm/rpc/RpcManager.d.ts +14 -10
- package/esm/rpc/RpcManager.js +11 -1
- package/esm/rpc/RpcRegistry.d.ts +40 -7
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
- package/esm/rpc/WebWorkerRpcDriver.js +64 -68
- package/esm/rpc/byteBudget.d.ts +20 -5
- package/esm/rpc/byteBudget.js +16 -5
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +4 -0
- package/esm/rpc/coreRpcMethods.js +4 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
- package/esm/rpc/methods/CoreGetExportData.js +3 -4
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.js +3 -5
- package/esm/rpc/methods/CoreGetRefNames.js +2 -12
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
- package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
- package/esm/rpc/methods/layerFeatures.d.ts +33 -0
- package/esm/rpc/methods/layerFeatures.js +29 -0
- package/esm/svg/SvgExport.js +6 -7
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +28 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +1 -1
- package/esm/svg/svgId.js +1 -1
- package/esm/svg/svgReady.d.ts +9 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +7 -5
- package/esm/svg/trackNames.js +12 -9
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/AddCustomPluginDialog.js +3 -8
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
- package/esm/ui/CascadingMenu.js +181 -104
- package/esm/ui/DropDownMenu.js +2 -1
- package/esm/ui/ErrorBanner.js +1 -1
- package/esm/ui/ErrorBoundary.d.ts +2 -2
- package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
- package/esm/ui/ExportSvgDialog.d.ts +1 -1
- package/esm/ui/FileDropZone.js +2 -1
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -49
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.js +26 -21
- package/esm/ui/LoadingOverlay.d.ts +14 -0
- package/esm/ui/LoadingOverlay.js +4 -2
- package/esm/ui/MenuTypes.d.ts +23 -53
- package/esm/ui/MenuTypes.js +3 -0
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +23 -20
- package/esm/ui/PaletteContext.d.ts +10 -5
- package/esm/ui/PaletteContext.js +44 -6
- package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +8 -2
- package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/util.js +42 -1
- package/esm/ui/ResizeHandle.d.ts +3 -1
- package/esm/ui/ResizeHandle.js +44 -11
- package/esm/ui/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +14 -35
- package/esm/ui/ScrollZoomToggle.d.ts +4 -27
- package/esm/ui/ScrollZoomToggle.js +34 -51
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +1 -0
- package/esm/ui/SettingsChangesTable.js +49 -11
- package/esm/ui/ShareLinkField.d.ts +1 -3
- package/esm/ui/ShareLinkField.js +13 -40
- package/esm/ui/SizeSliderRow.d.ts +1 -3
- package/esm/ui/SizeSliderRow.js +4 -6
- package/esm/ui/SnackbarModel.js +79 -67
- package/esm/ui/StatusProgressBar.js +2 -2
- package/esm/ui/SvgColorLegend.d.ts +9 -4
- package/esm/ui/SvgColorLegend.js +82 -41
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +5 -4
- package/esm/ui/ViewLoadingScreen.js +8 -32
- package/esm/ui/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colors.d.ts +64 -0
- package/esm/ui/colors.js +230 -1
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +12 -12
- package/esm/ui/index.js +14 -22
- package/esm/ui/launchViewMenu.js +15 -5
- package/esm/ui/legendMenuItem.d.ts +10 -32
- package/esm/ui/legendMenuItem.js +9 -36
- package/esm/ui/legendSpec.d.ts +15 -8
- package/esm/ui/legendSpec.js +14 -23
- package/esm/ui/makeSizeMenu.d.ts +0 -6
- package/esm/ui/makeSizeMenu.js +6 -30
- package/esm/ui/measureLegendText.js +1 -1
- package/esm/ui/menuItemAdornment.d.ts +9 -20
- package/esm/ui/menuItemAdornment.js +10 -32
- package/esm/ui/menuItems.d.ts +2 -7
- package/esm/ui/menuItems.js +1 -6
- package/esm/ui/multiTrackMenuItems.d.ts +6 -0
- package/esm/ui/palette.d.ts +118 -116
- package/esm/ui/palette.js +114 -75
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +43 -119
- package/esm/ui/theme.js +62 -78
- package/esm/ui/toggleMenuItems.d.ts +1 -3
- package/esm/ui/toggleMenuItems.js +6 -5
- package/esm/ui/useAssemblySelection.d.ts +4 -4
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +5 -3
- package/esm/util/Base1DUtils.js +14 -6
- package/esm/util/Base1DViewModel.d.ts +2 -1
- package/esm/util/Base1DViewModel.js +3 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +76 -56
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +88 -6
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -5
- package/esm/util/addAndShowTrack.d.ts +2 -5
- package/esm/util/addAndShowTrack.js +5 -1
- package/esm/util/addRelativeUris.d.ts +17 -5
- package/esm/util/addRelativeUris.js +46 -10
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/addTrackFromWidget.js +5 -4
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.js +46 -13
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandHeight.d.ts +10 -0
- package/esm/util/bandHeight.js +29 -0
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/bezierConnector.d.ts +4 -3
- package/esm/util/bezierConnector.js +38 -45
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -0
- package/esm/util/cacheBudgets.d.ts +22 -19
- package/esm/util/cacheBudgets.js +22 -19
- package/esm/util/cachedSetup.d.ts +1 -1
- package/esm/util/cachedSetup.js +2 -2
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/clampToContig.d.ts +17 -0
- package/esm/util/clampToContig.js +19 -0
- package/esm/util/coarseStripHTML.js +1 -2
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +3 -3
- package/esm/util/colorBits.js +19 -44
- package/esm/util/colorRamp.d.ts +49 -5
- package/esm/util/colorRamp.js +169 -18
- package/esm/util/colorScale.d.ts +156 -0
- package/esm/util/colorScale.js +243 -0
- package/esm/util/colorSchemes.d.ts +21 -0
- package/esm/util/colorSchemes.js +30 -0
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
- package/esm/util/createSvgRasterCanvas.d.ts +10 -0
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +8 -13
- package/esm/util/expandLooseSearchIndex.d.ts +19 -0
- package/esm/util/expandLooseSearchIndex.js +29 -0
- package/esm/util/featureTable.d.ts +224 -0
- package/esm/util/featureTable.js +366 -0
- package/esm/util/featureTransforms.d.ts +80 -0
- package/esm/util/featureTransforms.js +1579 -0
- package/esm/util/featureTypes.d.ts +24 -0
- package/esm/util/featureTypes.js +35 -0
- package/esm/util/fetchAndMaybeUnzip.js +16 -9
- package/esm/util/fetchContext.d.ts +7 -8
- package/esm/util/fetchContext.js +3 -3
- package/esm/util/fetchHub.d.ts +4 -2
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchPhases.d.ts +10 -10
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/freezeDeep.d.ts +8 -10
- package/esm/util/freezeDeep.js +8 -10
- package/esm/util/groupKeys.d.ts +77 -0
- package/esm/util/groupKeys.js +155 -0
- package/esm/util/highlights.d.ts +10 -6
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +31 -2
- package/esm/util/hooks.js +72 -3
- package/esm/util/index.d.ts +11 -11
- package/esm/util/index.js +11 -10
- package/esm/util/indexCandidates.d.ts +1 -31
- package/esm/util/indexCandidates.js +5 -63
- package/esm/util/installFetch.d.ts +77 -37
- package/esm/util/installFetch.js +65 -38
- package/esm/util/installInitAutorun.d.ts +14 -13
- package/esm/util/installInitAutorun.js +17 -17
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -0
- package/esm/util/io/index.js +19 -14
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -0
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +20 -27
- package/esm/util/jexlFilters.js +23 -11
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
- package/esm/util/layouts/GranularRectLayout.js +25 -8
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/lazyWithPreload.d.ts +19 -0
- package/esm/util/lazyWithPreload.js +27 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -0
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +845 -0
- package/esm/util/markEncodingTypes.d.ts +588 -0
- package/esm/util/markEncodingTypes.js +8 -0
- package/esm/util/mst-reflection.d.ts +2 -20
- package/esm/util/mst-reflection.js +3 -53
- package/esm/util/mstUtils.d.ts +31 -23
- package/esm/util/mstUtils.js +39 -24
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.d.ts +5 -0
- package/esm/util/openFeatureWidget.js +2 -2
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -0
- package/esm/util/parentWalk.d.ts +1 -1
- package/esm/util/parentWalk.js +1 -1
- package/esm/util/parseLineByLine.d.ts +4 -5
- package/esm/util/parseLineByLine.js +8 -14
- package/esm/util/pluginStore.d.ts +6 -8
- package/esm/util/pluginStore.js +17 -16
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +22 -22
- package/esm/util/progress.js +27 -26
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +13 -9
- package/esm/util/range.js +17 -8
- package/esm/util/renameRegions.d.ts +26 -6
- package/esm/util/renameRegions.js +68 -54
- package/esm/util/renderToStaticMarkup.js +24 -14
- package/esm/util/rxjs.d.ts +23 -8
- package/esm/util/rxjs.js +61 -15
- package/esm/util/samplesTsv.d.ts +49 -0
- package/esm/util/samplesTsv.js +86 -0
- package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
- package/esm/util/scheduleDetachedDestroy.js +24 -0
- package/esm/util/scrollLatch.d.ts +1 -0
- package/esm/util/scrollLatch.js +8 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -0
- package/esm/util/sessionSharing.d.ts +7 -5
- package/esm/util/sessionSharing.js +23 -23
- package/esm/util/shapeNameList.d.ts +2 -0
- package/esm/util/shapeNameList.js +6 -0
- package/esm/util/shapeNames.d.ts +7 -0
- package/esm/util/shapeNames.js +11 -0
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stepTables.d.ts +82 -0
- package/esm/util/stepTables.js +243 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +13 -8
- package/esm/util/tabix.js +17 -12
- package/esm/util/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +26 -26
- package/esm/util/trackConfigDelta.js +63 -47
- package/esm/util/tracks.d.ts +121 -40
- package/esm/util/tracks.js +497 -112
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/data.d.ts +0 -2
- package/esm/util/types/index.d.ts +121 -22
- package/esm/util/types/index.js +9 -0
- package/esm/util/types/mst.d.ts +3 -0
- package/esm/util/types/mst.js +4 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -0
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +51 -0
- package/esm/util/unknownSnapshotKeys.js +82 -0
- package/esm/util/useFeatureSequence.js +5 -5
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +19 -10
- package/esm/util/useFetchPlugins.d.ts +6 -2
- package/esm/util/useFetchPlugins.js +7 -3
- package/esm/util/usePanelVirtualScroll.d.ts +7 -35
- package/esm/util/usePanelVirtualScroll.js +9 -36
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -74
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +47 -15
- package/esm/util/viewStatus.js +34 -0
- package/esm/util/wheelZoom.d.ts +7 -1
- package/esm/util/wheelZoom.js +85 -19
- package/esm/util/whenViewSettled.d.ts +55 -8
- package/esm/util/whenViewSettled.js +56 -7
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +70 -20
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -28
- package/esm/configuration/promotableDefaults.d.ts +0 -199
- package/esm/configuration/promotableDefaults.js +0 -326
- package/esm/configuration/promotablePin.d.ts +0 -55
- package/esm/configuration/promotablePin.js +0 -1
- package/esm/configuration/promotableResolve.d.ts +0 -108
- package/esm/configuration/promotableResolve.js +0 -117
- package/esm/configuration/promotableSlots.d.ts +0 -12
- package/esm/configuration/promotableSlots.js +0 -45
- package/esm/configuration/slotShape.d.ts +0 -12
- package/esm/configuration/slotShape.js +0 -84
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/PinAdornment.d.ts +0 -5
- package/esm/ui/PinAdornment.js +0 -79
- package/esm/ui/SvgGradientLegend.d.ts +0 -26
- package/esm/ui/SvgGradientLegend.js +0 -26
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/ui/promotableMenuItems.d.ts +0 -19
- package/esm/ui/promotableMenuItems.js +0 -89
- package/esm/ui/promotablePinCoverage.d.ts +0 -44
- package/esm/ui/promotablePinCoverage.js +0 -87
- package/esm/util/applyInitSettings.d.ts +0 -79
- package/esm/util/applyInitSettings.js +0 -91
- package/esm/util/openDisplays.d.ts +0 -23
- package/esm/util/openDisplays.js +0 -79
- package/esm/util/stopToken.d.ts +0 -211
- package/esm/util/stopToken.js +0 -438
- /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import type { TranslExcept } from './geneticCodes.ts';
|
|
2
|
+
import type { Feature } from './simpleFeature.ts';
|
|
3
|
+
export interface CdsSegment {
|
|
4
|
+
start: number;
|
|
5
|
+
end: number;
|
|
6
|
+
phase: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A transcript's CDS segments in genome coordinates, sorted and deduplicated. A
|
|
10
|
+
* GFF3 file can repeat a CDS row, and the duplicated bases would stitch into
|
|
11
|
+
* the translation and frameshift the protein. A standalone polyprotein CDS
|
|
12
|
+
* carries cleavage products rather than CDS children, so its own span is the
|
|
13
|
+
* one segment.
|
|
14
|
+
*/
|
|
15
|
+
export declare function transcriptCDS(transcript: Feature): CdsSegment[];
|
|
16
|
+
/**
|
|
17
|
+
* The genetic code a transcript translates with: a `transl_table` on it or on
|
|
18
|
+
* its CDS, else the assembly's code for its contig, else undefined for the
|
|
19
|
+
* standard code.
|
|
20
|
+
*/
|
|
21
|
+
export declare function transcriptGeneticCodeId(transcript: Feature, assemblyGeneticCodeId?: number): number | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* A transcript's `transl_except` overrides (RefSeq's selenocysteines), read off
|
|
24
|
+
* the CDS by NCBI convention or the transcript itself, in the transcript-
|
|
25
|
+
* relative, strand-corrected frame `translateTranscript` translates in.
|
|
26
|
+
*/
|
|
27
|
+
export declare function transcriptTranslExcept(transcript: Feature): TranslExcept[] | undefined;
|
|
28
|
+
/**
|
|
29
|
+
* A transcript's protein as JBrowse shows it: its CDS stitched in order, read
|
|
30
|
+
* with its genetic code and that code's alternative initiators, with any
|
|
31
|
+
* `transl_except` applied. `seq` is the genome under the transcript, its start
|
|
32
|
+
* to its end. Undefined for a transcript with no CDS. `cds` and `translExcept`
|
|
33
|
+
* are the transcript-relative, strand-corrected frame the protein was read in,
|
|
34
|
+
* for a caller placing residues back on it.
|
|
35
|
+
*/
|
|
36
|
+
export declare function translateTranscript({ transcript, seq, assemblyGeneticCodeId, }: {
|
|
37
|
+
transcript: Feature;
|
|
38
|
+
seq: string;
|
|
39
|
+
assemblyGeneticCodeId?: number;
|
|
40
|
+
}): {
|
|
41
|
+
protein: string;
|
|
42
|
+
cds: CdsSegment[];
|
|
43
|
+
translExcept?: TranslExcept[];
|
|
44
|
+
} | undefined;
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
import { convertCodingSequenceToPeptides } from './convertCodingSequenceToPeptides.js';
|
|
2
|
+
import { getGeneticCode, parseTranslTable, relativizeTranslExcept, } from './geneticCodes.js';
|
|
3
|
+
import { revlist } from './revlist.js';
|
|
4
|
+
import { revcom } from './seqUtils.js';
|
|
5
|
+
function isCDS(feature) {
|
|
6
|
+
return feature.get('type')?.toLowerCase() === 'cds';
|
|
7
|
+
}
|
|
8
|
+
function subfeatures(feature) {
|
|
9
|
+
return feature.get('subfeatures') ?? [];
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* A transcript's CDS segments in genome coordinates, sorted and deduplicated. A
|
|
13
|
+
* GFF3 file can repeat a CDS row, and the duplicated bases would stitch into
|
|
14
|
+
* the translation and frameshift the protein. A standalone polyprotein CDS
|
|
15
|
+
* carries cleavage products rather than CDS children, so its own span is the
|
|
16
|
+
* one segment.
|
|
17
|
+
*/
|
|
18
|
+
export function transcriptCDS(transcript) {
|
|
19
|
+
const seen = new Set();
|
|
20
|
+
const cds = [];
|
|
21
|
+
const sorted = subfeatures(transcript).toSorted((a, b) => a.get('start') - b.get('start'));
|
|
22
|
+
for (const sub of sorted) {
|
|
23
|
+
const start = sub.get('start');
|
|
24
|
+
const end = sub.get('end');
|
|
25
|
+
const key = `${start}-${end}`;
|
|
26
|
+
if (isCDS(sub) && start < end && !seen.has(key)) {
|
|
27
|
+
seen.add(key);
|
|
28
|
+
cds.push({ start, end, phase: sub.get('phase') ?? 0 });
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
if (cds.length === 0 && isCDS(transcript)) {
|
|
32
|
+
const start = transcript.get('start');
|
|
33
|
+
const end = transcript.get('end');
|
|
34
|
+
if (start < end) {
|
|
35
|
+
cds.push({ start, end, phase: transcript.get('phase') ?? 0 });
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return cds;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* The genetic code a transcript translates with: a `transl_table` on it or on
|
|
42
|
+
* its CDS, else the assembly's code for its contig, else undefined for the
|
|
43
|
+
* standard code.
|
|
44
|
+
*/
|
|
45
|
+
export function transcriptGeneticCodeId(transcript, assemblyGeneticCodeId) {
|
|
46
|
+
const cds = subfeatures(transcript).find(isCDS);
|
|
47
|
+
return (parseTranslTable(transcript.get('transl_table')) ??
|
|
48
|
+
parseTranslTable(cds?.get('transl_table')) ??
|
|
49
|
+
assemblyGeneticCodeId);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* A transcript's `transl_except` overrides (RefSeq's selenocysteines), read off
|
|
53
|
+
* the CDS by NCBI convention or the transcript itself, in the transcript-
|
|
54
|
+
* relative, strand-corrected frame `translateTranscript` translates in.
|
|
55
|
+
*/
|
|
56
|
+
export function transcriptTranslExcept(transcript) {
|
|
57
|
+
const cds = subfeatures(transcript).find(isCDS);
|
|
58
|
+
const raw = transcript.get('transl_except') ?? cds?.get('transl_except');
|
|
59
|
+
const start = transcript.get('start');
|
|
60
|
+
return raw
|
|
61
|
+
? relativizeTranslExcept({
|
|
62
|
+
raw,
|
|
63
|
+
featureStart: start,
|
|
64
|
+
featureLength: transcript.get('end') - start,
|
|
65
|
+
strand: transcript.get('strand'),
|
|
66
|
+
})
|
|
67
|
+
: undefined;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* A transcript's protein as JBrowse shows it: its CDS stitched in order, read
|
|
71
|
+
* with its genetic code and that code's alternative initiators, with any
|
|
72
|
+
* `transl_except` applied. `seq` is the genome under the transcript, its start
|
|
73
|
+
* to its end. Undefined for a transcript with no CDS. `cds` and `translExcept`
|
|
74
|
+
* are the transcript-relative, strand-corrected frame the protein was read in,
|
|
75
|
+
* for a caller placing residues back on it.
|
|
76
|
+
*/
|
|
77
|
+
export function translateTranscript({ transcript, seq, assemblyGeneticCodeId, }) {
|
|
78
|
+
const start = transcript.get('start');
|
|
79
|
+
const relative = transcriptCDS(transcript).map(c => ({
|
|
80
|
+
...c,
|
|
81
|
+
start: c.start - start,
|
|
82
|
+
end: c.end - start,
|
|
83
|
+
}));
|
|
84
|
+
if (relative.length === 0) {
|
|
85
|
+
return undefined;
|
|
86
|
+
}
|
|
87
|
+
const minus = transcript.get('strand') === -1;
|
|
88
|
+
const cds = minus ? revlist(relative, seq.length) : relative;
|
|
89
|
+
const translExcept = transcriptTranslExcept(transcript);
|
|
90
|
+
const { codonTable, starts } = getGeneticCode(transcriptGeneticCodeId(transcript, assemblyGeneticCodeId));
|
|
91
|
+
return {
|
|
92
|
+
protein: convertCodingSequenceToPeptides({
|
|
93
|
+
cds,
|
|
94
|
+
sequence: minus ? revcom(seq) : seq,
|
|
95
|
+
codonTable,
|
|
96
|
+
starts,
|
|
97
|
+
translExcept,
|
|
98
|
+
}),
|
|
99
|
+
cds,
|
|
100
|
+
translExcept,
|
|
101
|
+
};
|
|
102
|
+
}
|
package/esm/util/types/data.d.ts
CHANGED
|
@@ -53,7 +53,6 @@ export interface JBrowsePluginVersion {
|
|
|
53
53
|
url?: string;
|
|
54
54
|
umdUrl?: string;
|
|
55
55
|
esmUrl?: string;
|
|
56
|
-
cjsUrl?: string;
|
|
57
56
|
integrity?: string;
|
|
58
57
|
}
|
|
59
58
|
export interface JBrowsePlugin {
|
|
@@ -65,7 +64,6 @@ export interface JBrowsePlugin {
|
|
|
65
64
|
url?: string;
|
|
66
65
|
umdUrl?: string;
|
|
67
66
|
esmUrl?: string;
|
|
68
|
-
cjsUrl?: string;
|
|
69
67
|
integrity?: string;
|
|
70
68
|
versions?: JBrowsePluginVersion[];
|
|
71
69
|
latestUrl?: string;
|
|
@@ -1,15 +1,17 @@
|
|
|
1
|
+
import type { ViewSnapshotInput } from '../../PluginManager.ts';
|
|
1
2
|
import type TextSearchManager from '../../TextSearch/TextSearchManager.ts';
|
|
2
|
-
import type { AnyConfigurationModel
|
|
3
|
-
import type { BaseInternetAccountModel } from '../../pluggableElementTypes/models/index.ts';
|
|
3
|
+
import type { AnyConfigurationModel } from '../../configuration/index.ts';
|
|
4
|
+
import type { BaseInternetAccountModel, BaseTrackConfig } from '../../pluggableElementTypes/models/index.ts';
|
|
4
5
|
import type { PluginDefinition } from '../../pluginDefinitions.ts';
|
|
5
6
|
import type RpcManager from '../../rpc/RpcManager.ts';
|
|
6
7
|
import type { MenuItem } from '../../ui/index.ts';
|
|
8
|
+
import type { HighlightType } from '../highlights.ts';
|
|
7
9
|
import type { Feature } from '../simpleFeature.ts';
|
|
8
10
|
import type { TrackConfigChange } from '../trackConfigDelta.ts';
|
|
9
11
|
import type { UriLocation } from './data.ts';
|
|
10
12
|
import type { RenderingServices } from './renderingServices.ts';
|
|
11
13
|
import type { DialogHost, NotificationSink } from './services.ts';
|
|
12
|
-
import type { IAnyStateTreeNode, IStateTreeNode, SnapshotIn } from '@jbrowse/mobx-state-tree';
|
|
14
|
+
import type { IAnyStateTreeNode, IAnyType, IStateTreeNode, SnapshotIn } from '@jbrowse/mobx-state-tree';
|
|
13
15
|
import type { Theme, ThemeOptions } from '@mui/material';
|
|
14
16
|
export type { AnyReactComponentType, ClassReturnedBy, InstanceTypeRestrictive, TypeTestedByPredicate, } from './util.ts';
|
|
15
17
|
export type { IsAny } from './isAny.ts';
|
|
@@ -22,7 +24,8 @@ export type { AugmentedRegion, BasePlugin, BlobLocation, FileHandleLocation, Fil
|
|
|
22
24
|
export interface AbstractViewContainer extends IStateTreeNode {
|
|
23
25
|
views: AbstractViewModel[];
|
|
24
26
|
removeView(view: AbstractViewModel): void;
|
|
25
|
-
addView(typeName:
|
|
27
|
+
addView<N extends string>(typeName: N, initialState?: NoInfer<ViewSnapshotInput<N>>): AbstractViewModel;
|
|
28
|
+
launchView(typeName: string, initialState?: Record<string, unknown>): Promise<AbstractViewModel>;
|
|
26
29
|
}
|
|
27
30
|
export declare function isViewContainer(thing: unknown): thing is AbstractViewContainer;
|
|
28
31
|
/**
|
|
@@ -32,6 +35,7 @@ export declare function isViewContainer(thing: unknown): thing is AbstractViewCo
|
|
|
32
35
|
*/
|
|
33
36
|
export interface TrackActionView {
|
|
34
37
|
showTrack: (id: string) => void;
|
|
38
|
+
launchTrack: (id: string) => Promise<unknown>;
|
|
35
39
|
getActiveDisplayId?: (trackId: string) => string | undefined;
|
|
36
40
|
}
|
|
37
41
|
/**
|
|
@@ -63,6 +67,7 @@ export interface AbstractSessionModel extends AbstractViewContainer, RenderingSe
|
|
|
63
67
|
jbrowse: IAnyStateTreeNode;
|
|
64
68
|
drawerPosition?: DrawerPosition;
|
|
65
69
|
stickyViewHeaders?: boolean;
|
|
70
|
+
viewTitleBars?: boolean;
|
|
66
71
|
configuration: AnyConfigurationModel;
|
|
67
72
|
rpcManager: RpcManager;
|
|
68
73
|
assemblyNames: string[];
|
|
@@ -72,15 +77,19 @@ export interface AbstractSessionModel extends AbstractViewContainer, RenderingSe
|
|
|
72
77
|
theme: Theme;
|
|
73
78
|
animationMode: AnimationMode;
|
|
74
79
|
scrollZoom: boolean;
|
|
80
|
+
highlights: readonly HighlightType[];
|
|
81
|
+
addHighlight: (highlight: HighlightType) => void;
|
|
82
|
+
removeHighlight: (highlight: HighlightType) => void;
|
|
83
|
+
updateHighlight: (old: HighlightType, updates: Partial<HighlightType>) => void;
|
|
84
|
+
setHighlights: (highlights: HighlightType[]) => void;
|
|
75
85
|
highlightsVisible: boolean;
|
|
76
86
|
setHighlightsVisible: (arg: boolean) => void;
|
|
77
|
-
|
|
87
|
+
highlightLabelsVisible: boolean;
|
|
88
|
+
setHighlightLabelsVisible: (arg: boolean) => void;
|
|
78
89
|
getPreference: (key: string) => unknown;
|
|
79
90
|
setPreferenceOverride: (key: string, value: unknown) => void;
|
|
80
91
|
clearPreferenceOverrides: () => void;
|
|
81
92
|
setScrollZoom: (flag: boolean) => void;
|
|
82
|
-
getDisplayTypeDefault: (displayType: string, slot: string) => unknown;
|
|
83
|
-
setDisplayTypeDefault: (displayType: string, slot: string, value: unknown) => void;
|
|
84
93
|
hovered: unknown;
|
|
85
94
|
setHovered: (arg: unknown) => void;
|
|
86
95
|
setFocusedViewId?: (id: string) => void;
|
|
@@ -100,11 +109,11 @@ export interface AbstractSessionModel extends AbstractViewContainer, RenderingSe
|
|
|
100
109
|
version: string;
|
|
101
110
|
gitCommit?: string;
|
|
102
111
|
getTrackActionMenuItems?: (arg: {
|
|
103
|
-
config:
|
|
112
|
+
config: BaseTrackConfig;
|
|
104
113
|
view?: TrackActionView;
|
|
105
114
|
}) => MenuItem[];
|
|
106
|
-
getTrackActions?: (arg:
|
|
107
|
-
getTrackListMenuItems?: (arg:
|
|
115
|
+
getTrackActions?: (arg: BaseTrackConfig, view?: TrackActionView) => MenuItem[];
|
|
116
|
+
getTrackListMenuItems?: (arg: BaseTrackConfig, view?: TrackActionView) => MenuItem[];
|
|
108
117
|
addAssembly?: (conf: Record<string, unknown>) => void;
|
|
109
118
|
addSessionAssembly?: (conf: Record<string, unknown>) => void;
|
|
110
119
|
sessionAssemblies?: AnyConfigurationModel[];
|
|
@@ -153,6 +162,43 @@ export interface SessionWithConfigEditing extends AbstractSessionModel {
|
|
|
153
162
|
}): void;
|
|
154
163
|
}
|
|
155
164
|
export declare function isSessionModelWithConfigEditing(t: unknown): t is SessionWithConfigEditing;
|
|
165
|
+
/**
|
|
166
|
+
* A session that edits its tracks as deltas over a base it can hand back: what
|
|
167
|
+
* a display compares its live config against to say whether a setting is the
|
|
168
|
+
* reader's or the one the track was configured or added with.
|
|
169
|
+
*/
|
|
170
|
+
export interface SessionWithBaseTrackConfig extends AbstractSessionModel {
|
|
171
|
+
baseTrackConfig(trackId: string): {
|
|
172
|
+
trackId: string;
|
|
173
|
+
[key: string]: unknown;
|
|
174
|
+
} | undefined;
|
|
175
|
+
}
|
|
176
|
+
export declare function isSessionWithBaseTrackConfig(t: unknown): t is SessionWithBaseTrackConfig;
|
|
177
|
+
/**
|
|
178
|
+
* A session that hands a shown track a private working copy of its config, so
|
|
179
|
+
* a non-admin's quick edits land as deltas and never on the shared base
|
|
180
|
+
* (ADR-032). `TrackConfigurationReference` resolves through it where it is
|
|
181
|
+
* one, and through `getTrackById` otherwise.
|
|
182
|
+
*/
|
|
183
|
+
export interface SessionWithEditableTrackConfig extends AbstractSessionModel {
|
|
184
|
+
getEditableTrackConfig(trackId: string, schemaType: IAnyType): AnyConfigurationModel | undefined;
|
|
185
|
+
}
|
|
186
|
+
export declare function isSessionWithEditableTrackConfig(t: unknown): t is SessionWithEditableTrackConfig;
|
|
187
|
+
/**
|
|
188
|
+
* abstract interface for a session that keeps a list of views, so that `addView`
|
|
189
|
+
* appends and the view a launch came out of survives it.
|
|
190
|
+
*
|
|
191
|
+
* `AbstractViewContainer` alone does not say this. The single-view embedded
|
|
192
|
+
* products satisfy it with a `views` getter that wraps their one `view` in a
|
|
193
|
+
* fresh plain array and an `addView` that overwrites that view, so "Open in new
|
|
194
|
+
* view" there would destroy the view it was offered from. A view list that is
|
|
195
|
+
* itself part of the state tree is what tells the two apart: only a session
|
|
196
|
+
* that stores its views can hold one more.
|
|
197
|
+
*/
|
|
198
|
+
export interface SessionWithMultipleViews extends AbstractSessionModel {
|
|
199
|
+
views: AbstractViewModel[] & IStateTreeNode;
|
|
200
|
+
}
|
|
201
|
+
export declare function isSessionWithMultipleViews(t: unknown): t is SessionWithMultipleViews;
|
|
156
202
|
/**
|
|
157
203
|
* abstract interface for a session that can swap one of its views for a new one
|
|
158
204
|
* of another type, in the slot the old view occupied.
|
|
@@ -164,7 +210,7 @@ export declare function isSessionModelWithConfigEditing(t: unknown): t is Sessio
|
|
|
164
210
|
* and the guard is what a launcher asks before offering it.
|
|
165
211
|
*/
|
|
166
212
|
export interface SessionWithViewReplacement extends AbstractSessionModel {
|
|
167
|
-
replaceView(view: AbstractViewModel, typeName:
|
|
213
|
+
replaceView<N extends string>(view: AbstractViewModel, typeName: N, initialState?: NoInfer<ViewSnapshotInput<N>>): AbstractViewModel;
|
|
168
214
|
}
|
|
169
215
|
export declare function isSessionWithViewReplacement(t: unknown): t is SessionWithViewReplacement;
|
|
170
216
|
/**
|
|
@@ -188,10 +234,10 @@ export declare function canReplaceView(session: AbstractViewContainer, view: Abs
|
|
|
188
234
|
* that can't replace a view falls back to appending, so a caller passes the
|
|
189
235
|
* source view unconditionally and never has to ask twice.
|
|
190
236
|
*/
|
|
191
|
-
export declare function addOrReplaceView({ session, typeName, initialState, replacing, }: {
|
|
237
|
+
export declare function addOrReplaceView<N extends string>({ session, typeName, initialState, replacing, }: {
|
|
192
238
|
session: AbstractViewContainer;
|
|
193
|
-
typeName:
|
|
194
|
-
initialState?:
|
|
239
|
+
typeName: N;
|
|
240
|
+
initialState?: NoInfer<ViewSnapshotInput<N>>;
|
|
195
241
|
replacing?: AbstractViewModel;
|
|
196
242
|
}): AbstractViewModel;
|
|
197
243
|
/**
|
|
@@ -294,6 +340,9 @@ export interface SessionWithWidgets extends AbstractSessionModel {
|
|
|
294
340
|
addWidget(typeName: string, id: string, initialState?: Record<string, unknown>, configuration?: {
|
|
295
341
|
type: string;
|
|
296
342
|
}): Widget;
|
|
343
|
+
openWidget(typeName: string, id: string, initialState?: Record<string, unknown>, configuration?: {
|
|
344
|
+
type: string;
|
|
345
|
+
}): Widget;
|
|
297
346
|
showWidget(widget: unknown): void;
|
|
298
347
|
hideWidget(widget: unknown): void;
|
|
299
348
|
}
|
|
@@ -325,6 +374,12 @@ export interface SessionWithDrawerWidgets extends SessionWithWidgets {
|
|
|
325
374
|
poppedOut: boolean;
|
|
326
375
|
popoutWidget(): void;
|
|
327
376
|
returnWidgetToDrawer(): void;
|
|
377
|
+
/** true on a host with no room for a drawer, where every widget is a modal */
|
|
378
|
+
modalWidgets: boolean;
|
|
379
|
+
setModalWidgets(flag: boolean): void;
|
|
380
|
+
/** whether the visible widget is on screen in a modal */
|
|
381
|
+
modalWidgetVisible: boolean;
|
|
382
|
+
closeModalWidget(): void;
|
|
328
383
|
}
|
|
329
384
|
export declare function isSessionModelWithWidgets(thing: unknown): thing is SessionWithWidgets;
|
|
330
385
|
/** a live connection instance held in a session's `connectionInstances` */
|
|
@@ -358,21 +413,30 @@ export interface SessionWithSessionPlugins extends AbstractSessionModel {
|
|
|
358
413
|
removeSessionPlugin: (plugin: PluginDefinition) => void;
|
|
359
414
|
}
|
|
360
415
|
export declare function isSessionWithSessionPlugins(thing: unknown): thing is SessionWithSessionPlugins;
|
|
416
|
+
export interface PermanentPluginsSafeMode {
|
|
417
|
+
reason: 'requested' | 'previousLaunchFailed';
|
|
418
|
+
/** what was loading when the launch that failed did not finish */
|
|
419
|
+
suspects: string[];
|
|
420
|
+
}
|
|
361
421
|
/**
|
|
362
422
|
* A session whose product keeps a plugin list of its own, outside both the
|
|
363
423
|
* config and the session — jbrowse-web's permanent plugins, stored in the
|
|
364
424
|
* browser against the config being viewed, so an install survives a new session
|
|
365
425
|
* and the next visit.
|
|
366
426
|
*
|
|
367
|
-
* The
|
|
368
|
-
*
|
|
369
|
-
* which
|
|
370
|
-
* app reload every plugin change needs anyway.
|
|
427
|
+
* The plugin store is the whole surface: the pin beside an installed plugin
|
|
428
|
+
* writes the list, and an entry the load skipped is a row there with a switch
|
|
429
|
+
* on it, which is what makes the safe mode below something a user can act on.
|
|
371
430
|
*/
|
|
372
431
|
export interface SessionWithPermanentPlugins extends AbstractSessionModel {
|
|
373
|
-
permanentPlugins: PluginDefinition
|
|
432
|
+
permanentPlugins: (PluginDefinition & {
|
|
433
|
+
disabled?: boolean;
|
|
434
|
+
})[];
|
|
435
|
+
permanentPluginsSafeMode: PermanentPluginsSafeMode | undefined;
|
|
374
436
|
addPermanentPlugin: (plugin: PluginDefinition) => void;
|
|
375
437
|
removePermanentPlugin: (plugin: PluginDefinition) => void;
|
|
438
|
+
setPermanentPluginDisabled: (plugin: PluginDefinition, disabled: boolean) => void;
|
|
439
|
+
reloadWithPermanentPlugins: () => void;
|
|
376
440
|
}
|
|
377
441
|
export declare function isSessionWithPermanentPlugins(thing: unknown): thing is SessionWithPermanentPlugins;
|
|
378
442
|
/** abstract interface for a session that manages a global selection */
|
|
@@ -398,7 +462,10 @@ export interface TrackContainer {
|
|
|
398
462
|
configuration: {
|
|
399
463
|
trackId: string;
|
|
400
464
|
};
|
|
401
|
-
displays:
|
|
465
|
+
displays: {
|
|
466
|
+
type: string;
|
|
467
|
+
configuration: AnyConfigurationModel;
|
|
468
|
+
}[];
|
|
402
469
|
}[];
|
|
403
470
|
assemblyNames?: string[];
|
|
404
471
|
/**
|
|
@@ -410,6 +477,13 @@ export interface TrackContainer {
|
|
|
410
477
|
* silence.
|
|
411
478
|
*/
|
|
412
479
|
showTrack: (trackId: string, initialSnapshot?: object, displayInitialSnapshot?: Record<string, unknown>, inlineConf?: Record<string, unknown>) => unknown;
|
|
480
|
+
/**
|
|
481
|
+
* The sync pair still works on an unloaded display — it loads and shows a
|
|
482
|
+
* tick later, returning undefined — so these are for a caller that needs
|
|
483
|
+
* the track back.
|
|
484
|
+
*/
|
|
485
|
+
launchTrack: (trackId: string, initialSnapshot?: object, displayInitialSnapshot?: Record<string, unknown>, inlineConf?: Record<string, unknown>) => Promise<unknown>;
|
|
486
|
+
launchToggleTrack: (trackId: string) => Promise<unknown>;
|
|
413
487
|
hideTrack: (trackId: string) => unknown;
|
|
414
488
|
toggleTrack: (trackId: string) => unknown;
|
|
415
489
|
}
|
|
@@ -428,10 +502,13 @@ export interface AbstractViewModel {
|
|
|
428
502
|
/**
|
|
429
503
|
* The same, counting the views this one is nested inside — a synteny row has
|
|
430
504
|
* no container of its own to write `bodyMounted`, so that flag alone reads
|
|
431
|
-
* `true` for a row whose whole stack is off screen
|
|
505
|
+
* `true` for a row whose whole stack is off screen — and false while the body
|
|
506
|
+
* renders none of its displays (`rendersDisplays`). This is what a display's
|
|
432
507
|
* phase asks.
|
|
433
508
|
*/
|
|
434
509
|
effectiveBodyMounted: boolean;
|
|
510
|
+
/** See `BaseViewModel.rendersDisplays`. */
|
|
511
|
+
rendersDisplays: boolean;
|
|
435
512
|
setWidth(width: number): void;
|
|
436
513
|
setBodyMounted(flag: boolean): void;
|
|
437
514
|
setMinimized(flag: boolean): void;
|
|
@@ -445,6 +522,13 @@ export interface AbstractViewModel {
|
|
|
445
522
|
* the view itself.
|
|
446
523
|
*/
|
|
447
524
|
trackContainerFor?: (id: string) => TrackContainer | undefined;
|
|
525
|
+
/**
|
|
526
|
+
* the node a display in this view lays its regions out against, where that
|
|
527
|
+
* is not the view's own box — the circular view's strip. A display's
|
|
528
|
+
* foundation reads its host through `containingHost`, which answers this
|
|
529
|
+
* before the view itself.
|
|
530
|
+
*/
|
|
531
|
+
regionHost?: unknown;
|
|
448
532
|
/**
|
|
449
533
|
* every track container this view owns INSTEAD of a `tracks` array of its
|
|
450
534
|
* own. The synteny view is the only one: its tracks hang off the levels, one
|
|
@@ -453,6 +537,20 @@ export interface AbstractViewModel {
|
|
|
453
537
|
* `trackContainerFor` cannot answer that — a walker has no id to ask with.
|
|
454
538
|
*/
|
|
455
539
|
trackContainers?: TrackContainer[];
|
|
540
|
+
/**
|
|
541
|
+
* what this view contributes to the census of what is open: the tracks it
|
|
542
|
+
* holds itself, and the views nested directly inside it. `BaseViewModel`
|
|
543
|
+
* answers both with nothing, so a view declares what it owns instead of the
|
|
544
|
+
* base reading properties whose meaning belongs to the view — see
|
|
545
|
+
* `util/openViews.ts`, where the recursion over them lives.
|
|
546
|
+
*
|
|
547
|
+
* Required, like `bodyMounted`, so a stand-in that means to be enumerated
|
|
548
|
+
* says so; the empty default means forgetting under-reports rather than
|
|
549
|
+
* putting something that is not a track in front of the readiness marker.
|
|
550
|
+
*/
|
|
551
|
+
ownTracks: AbstractTrackModel[];
|
|
552
|
+
/** the views nested directly inside this one — see `ownTracks` */
|
|
553
|
+
ownViews: AbstractViewModel[];
|
|
456
554
|
}
|
|
457
555
|
export declare function isViewModel(thing: unknown): thing is AbstractViewModel;
|
|
458
556
|
type Display = {
|
|
@@ -461,12 +559,13 @@ type Display = {
|
|
|
461
559
|
export interface AbstractTrackModel {
|
|
462
560
|
id: string;
|
|
463
561
|
displays: AbstractDisplayModel[];
|
|
464
|
-
configuration:
|
|
562
|
+
configuration: BaseTrackConfig & {
|
|
465
563
|
displays: Display[];
|
|
466
564
|
};
|
|
467
565
|
minimized: boolean;
|
|
468
566
|
resizing: boolean;
|
|
469
567
|
setResizing: (flag: boolean) => void;
|
|
568
|
+
persistConfigurationNow?: () => void;
|
|
470
569
|
}
|
|
471
570
|
export declare function isTrackModel(thing: unknown): thing is AbstractTrackModel;
|
|
472
571
|
export interface AbstractDisplayModel {
|
package/esm/util/types/index.js
CHANGED
|
@@ -18,6 +18,15 @@ export function isSessionModel(thing) {
|
|
|
18
18
|
export function isSessionModelWithConfigEditing(t) {
|
|
19
19
|
return isSessionModel(t) && 'editConfiguration' in t;
|
|
20
20
|
}
|
|
21
|
+
export function isSessionWithBaseTrackConfig(t) {
|
|
22
|
+
return isSessionModel(t) && 'baseTrackConfig' in t;
|
|
23
|
+
}
|
|
24
|
+
export function isSessionWithEditableTrackConfig(t) {
|
|
25
|
+
return isSessionModel(t) && 'getEditableTrackConfig' in t;
|
|
26
|
+
}
|
|
27
|
+
export function isSessionWithMultipleViews(t) {
|
|
28
|
+
return isSessionModel(t) && isStateTreeNode(t.views);
|
|
29
|
+
}
|
|
21
30
|
export function isSessionWithViewReplacement(t) {
|
|
22
31
|
return isSessionModel(t) && 'replaceView' in t;
|
|
23
32
|
}
|
package/esm/util/types/mst.d.ts
CHANGED
|
@@ -145,4 +145,7 @@ export declare const FileLocation: import("@jbrowse/mobx-state-tree").ISnapshotP
|
|
|
145
145
|
authInfo: any;
|
|
146
146
|
}> | undefined;
|
|
147
147
|
}>, import("@jbrowse/mobx-state-tree")._NotCustomized>;
|
|
148
|
+
/** A `jexl:` expression; a bare string is refused rather than read as one. */
|
|
149
|
+
export declare const JexlExpressionString: import("@jbrowse/mobx-state-tree").ISimpleType<string>;
|
|
148
150
|
export { ElementId, createElementId } from './ElementId.ts';
|
|
151
|
+
export { renameIds } from './renameIds.ts';
|
package/esm/util/types/mst.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { types } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { isJexl } from '../jexlStrings.js';
|
|
2
3
|
// #region regionModel
|
|
3
4
|
export const NoAssemblyRegion = types
|
|
4
5
|
.model('NoAssemblyRegion', {
|
|
@@ -78,4 +79,7 @@ export const FileLocation = types.snapshotProcessor(FileLocationUnion, {
|
|
|
78
79
|
}
|
|
79
80
|
},
|
|
80
81
|
});
|
|
82
|
+
/** A `jexl:` expression; a bare string is refused rather than read as one. */
|
|
83
|
+
export const JexlExpressionString = types.refinement('JexlExpression', types.string, isJexl, value => `${JSON.stringify(value)} is not an expression: one is written with its prefix, as "jexl:get(feature,'score') > 10"`);
|
|
81
84
|
export { ElementId, createElementId } from './ElementId.js';
|
|
85
|
+
export { renameIds } from './renameIds.js';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function renameIds(obj: Record<string, unknown>): Record<string, unknown>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createElementId } from './ElementId.js';
|
|
2
|
+
export function renameIds(obj) {
|
|
3
|
+
const idMap = new Map();
|
|
4
|
+
function transformIds(value) {
|
|
5
|
+
if (value === null || value === undefined) {
|
|
6
|
+
return value;
|
|
7
|
+
}
|
|
8
|
+
if (Array.isArray(value)) {
|
|
9
|
+
return value.map(transformIds);
|
|
10
|
+
}
|
|
11
|
+
if (typeof value === 'object') {
|
|
12
|
+
const result = {};
|
|
13
|
+
for (const [key, val] of Object.entries(value)) {
|
|
14
|
+
if (key === 'id' && typeof val === 'string') {
|
|
15
|
+
if (!idMap.has(val)) {
|
|
16
|
+
idMap.set(val, createElementId());
|
|
17
|
+
}
|
|
18
|
+
result[key] = idMap.get(val);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
result[key] = transformIds(val);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return result;
|
|
25
|
+
}
|
|
26
|
+
return value;
|
|
27
|
+
}
|
|
28
|
+
return transformIds(obj);
|
|
29
|
+
}
|
|
@@ -38,7 +38,7 @@ export type DialogComponentType = React.LazyExoticComponent<React.FC<any>> | Rea
|
|
|
38
38
|
* dialog. It is the most-called session member from plugin code (49 sites), and
|
|
39
39
|
* nearly all of them are a display saying "the user wants to configure
|
|
40
40
|
* something" — so a host drawing its own UI needs exactly this one name, not a
|
|
41
|
-
* session. `agent-docs/ideas/lightweight-toolkit.md` §3.
|
|
41
|
+
* session. `agent-docs/ideas/waiting-on-a-call/lightweight-toolkit.md` §3.
|
|
42
42
|
*/
|
|
43
43
|
export interface DialogHost {
|
|
44
44
|
DialogComponent?: DialogComponentType;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
/** what a diagnostic calls the view: its snapshot `type`, or the model name */
|
|
3
|
+
export declare function viewLabel(self: IStateTreeNode): string;
|
|
4
|
+
/**
|
|
5
|
+
* What every surface calls this mistake. A session spec launches a view without
|
|
6
|
+
* ever building a snapshot, so it classifies its own keys and reports them
|
|
7
|
+
* through its own session rather than through the sink below — one wording, so
|
|
8
|
+
* a typo reads the same whether it was written in a config or in a URL.
|
|
9
|
+
*/
|
|
10
|
+
export declare function unknownKeysMessage(label: string, keys: string[]): string;
|
|
11
|
+
/** Why a settings key `applyDisplaySettings` was handed wrote nothing. */
|
|
12
|
+
export type UnappliedReason = 'no-slot' | 'setter-only' | 'display-type';
|
|
13
|
+
export interface UnappliedSetting {
|
|
14
|
+
key: string;
|
|
15
|
+
reason: UnappliedReason;
|
|
16
|
+
}
|
|
17
|
+
/** The action `setter-only` names: `height` -> `setHeight`. */
|
|
18
|
+
export declare function displaySetterName(key: string): string;
|
|
19
|
+
/**
|
|
20
|
+
* What a surface calls a key the display has an action for but no slot. Its own
|
|
21
|
+
* sentence rather than `unknownKeysMessage`'s: the display does take the
|
|
22
|
+
* setting, just not written this way, and saying "unknown key" over a key whose
|
|
23
|
+
* setter we name in the same breath contradicts itself.
|
|
24
|
+
*/
|
|
25
|
+
export declare function setterOnlyMessage(label: string, keys: string[]): string;
|
|
26
|
+
/**
|
|
27
|
+
* Name the keys a view was handed and could not place, from the partition
|
|
28
|
+
* `withLaunchInput` runs on the snapshot.
|
|
29
|
+
*/
|
|
30
|
+
export declare function reportUnknownKeys(self: IStateTreeNode, keys: string[]): void;
|
|
31
|
+
/**
|
|
32
|
+
* Name the row lists a view refused whole. `withLaunchInput` splits an authored
|
|
33
|
+
* array into the recipes a launcher resolves and the built snapshots MST
|
|
34
|
+
* restores, per entry — but a row list is indexed against the view's `levels`
|
|
35
|
+
* and per-level tracks, so a list holding both kinds has no correct split and
|
|
36
|
+
* is refused rather than renumbered.
|
|
37
|
+
*/
|
|
38
|
+
export declare function reportMalformedRows(self: IStateTreeNode, keys: string[]): void;
|
|
39
|
+
/**
|
|
40
|
+
* What every surface calls v4's nested `init`. v5 takes every setting directly
|
|
41
|
+
* on the view object and unwraps the nesting on the way in, so the settings
|
|
42
|
+
* still arrive — this names the spelling to fix while they do.
|
|
43
|
+
*/
|
|
44
|
+
export declare function legacyInitMessage(label: string): string;
|
|
45
|
+
/**
|
|
46
|
+
* Name a snapshot that still writes v4's nested `init`. The console alone,
|
|
47
|
+
* unlike the two reporters above: the settings were applied, so there is
|
|
48
|
+
* nothing for a visitor to act on and a warning toast over a working view is
|
|
49
|
+
* noise. `jbrowse validate` is where the author of the config hears about it.
|
|
50
|
+
*/
|
|
51
|
+
export declare function reportLegacyInit(self: IStateTreeNode): void;
|