@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
package/esm/util/mstUtils.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type PluginManager from '../PluginManager.ts';
|
|
2
|
-
import type { AbstractDisplayModel, AbstractSessionModel, AbstractTrackModel, AbstractViewModel } from './types/index.ts';
|
|
2
|
+
import type { AbstractDisplayModel, AbstractSessionModel, AbstractViewContainer, AbstractTrackModel, AbstractViewModel } from './types/index.ts';
|
|
3
3
|
import type { AssemblyHost, RenderingServices } from './types/renderingServices.ts';
|
|
4
4
|
import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
5
5
|
export { findParentThat, findParentThatIs, getRpcSessionId, } from './parentWalk.ts';
|
|
@@ -49,33 +49,30 @@ export declare function getRenderingServices(node: IAnyStateTreeNode): Rendering
|
|
|
49
49
|
/**
|
|
50
50
|
* #api core/util
|
|
51
51
|
* Resolve user-authored refName text against the assembly of the view
|
|
52
|
-
* containing `node
|
|
53
|
-
*
|
|
54
|
-
* aliases have not loaded.
|
|
52
|
+
* containing `node`, resolving aliases and casing together. Falls back to the
|
|
53
|
+
* input when the assembly is absent or its aliases have not loaded.
|
|
55
54
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
* all carry the refNames the view laid out.
|
|
55
|
+
* Uses the view's assembly, not the track's, because displayed regions, loaded
|
|
56
|
+
* regions and blocks all carry the refNames the view laid out.
|
|
59
57
|
*
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
*
|
|
64
|
-
* whatever the author read out of the location box.
|
|
58
|
+
* Call it wherever a refName a *person* wrote is about to be compared against
|
|
59
|
+
* regions, features or blocks, which carry the assembly's canonical name. A
|
|
60
|
+
* refName a display copied off a region is already canonical. One from a
|
|
61
|
+
* session spec, a config slot or a URL is whatever the author typed.
|
|
65
62
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
63
|
+
* Without it, matching depends on the assembly: `chr12` matches on an assembly
|
|
64
|
+
* canonicalized `chr12` and matches nothing on one canonicalized `12`. The
|
|
65
|
+
* same spec key works on one config and does nothing on the next, with no
|
|
66
|
+
* error.
|
|
70
67
|
*
|
|
71
|
-
* Resolves through `getCanonicalRefName2`,
|
|
72
|
-
* read before the alias file has loaded
|
|
73
|
-
* read user specs
|
|
68
|
+
* Resolves through `getCanonicalRefName2`, which falls back to the input
|
|
69
|
+
* instead of throwing when a spec is read before the alias file has loaded.
|
|
70
|
+
* The getters that read user specs run from the first render.
|
|
74
71
|
*
|
|
75
|
-
* Takes a refName, not a spec that might hold one
|
|
76
|
-
* `refName.toLowerCase()`, so
|
|
77
|
-
* and a caller reading an untyped `frozen` slot
|
|
78
|
-
*
|
|
72
|
+
* Takes a refName, not a spec that might hold one. The resolver calls
|
|
73
|
+
* `refName.toLowerCase()`, so any other value throws once the aliases have
|
|
74
|
+
* loaded, and a caller reading an untyped `frozen` slot must first check that
|
|
75
|
+
* the value is a refName.
|
|
79
76
|
*/
|
|
80
77
|
export declare function canonicalizeViewRefName(node: IAnyStateTreeNode, refName: string): string;
|
|
81
78
|
/**
|
|
@@ -85,5 +82,16 @@ export declare function canonicalizeViewRefName(node: IAnyStateTreeNode, refName
|
|
|
85
82
|
export declare function getEnv(obj: IAnyStateTreeNode): {
|
|
86
83
|
pluginManager: PluginManager;
|
|
87
84
|
};
|
|
85
|
+
/**
|
|
86
|
+
* #api core/util
|
|
87
|
+
* `addOrReplaceView` for view types whose state model may be lazily loaded;
|
|
88
|
+
* the synchronous `addOrReplaceView` requires it loaded already.
|
|
89
|
+
*/
|
|
90
|
+
export declare function launchOrReplaceView(args: {
|
|
91
|
+
session: AbstractViewContainer;
|
|
92
|
+
typeName: string;
|
|
93
|
+
initialState?: Record<string, unknown>;
|
|
94
|
+
replacing?: AbstractViewModel;
|
|
95
|
+
}): Promise<AbstractViewModel>;
|
|
88
96
|
export declare function hashCode(str: string): number;
|
|
89
97
|
export declare function objectHash(obj: object): string;
|
package/esm/util/mstUtils.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getEnv as getEnvMST } from '@jbrowse/mobx-state-tree';
|
|
1
|
+
import { getEnv as getEnvMST, isStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
2
|
import { cachedParent, findParentThatIs } from './parentWalk.js';
|
|
3
|
-
import { isDisplayModel, isSessionModel, isTrackModel, isViewModel, } from './types/index.js';
|
|
3
|
+
import { addOrReplaceView, isDisplayModel, isSessionModel, isTrackModel, isViewModel, } from './types/index.js';
|
|
4
4
|
export { findParentThat, findParentThatIs, getRpcSessionId, } from './parentWalk.js';
|
|
5
5
|
const containingDisplayCache = new WeakMap();
|
|
6
6
|
const containingTrackCache = new WeakMap();
|
|
@@ -64,33 +64,30 @@ export function getRenderingServices(node) {
|
|
|
64
64
|
/**
|
|
65
65
|
* #api core/util
|
|
66
66
|
* Resolve user-authored refName text against the assembly of the view
|
|
67
|
-
* containing `node
|
|
68
|
-
*
|
|
69
|
-
* aliases have not loaded.
|
|
67
|
+
* containing `node`, resolving aliases and casing together. Falls back to the
|
|
68
|
+
* input when the assembly is absent or its aliases have not loaded.
|
|
70
69
|
*
|
|
71
|
-
*
|
|
72
|
-
*
|
|
73
|
-
* all carry the refNames the view laid out.
|
|
70
|
+
* Uses the view's assembly, not the track's, because displayed regions, loaded
|
|
71
|
+
* regions and blocks all carry the refNames the view laid out.
|
|
74
72
|
*
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* whatever the author read out of the location box.
|
|
73
|
+
* Call it wherever a refName a *person* wrote is about to be compared against
|
|
74
|
+
* regions, features or blocks, which carry the assembly's canonical name. A
|
|
75
|
+
* refName a display copied off a region is already canonical. One from a
|
|
76
|
+
* session spec, a config slot or a URL is whatever the author typed.
|
|
80
77
|
*
|
|
81
|
-
*
|
|
82
|
-
*
|
|
83
|
-
*
|
|
84
|
-
*
|
|
78
|
+
* Without it, matching depends on the assembly: `chr12` matches on an assembly
|
|
79
|
+
* canonicalized `chr12` and matches nothing on one canonicalized `12`. The
|
|
80
|
+
* same spec key works on one config and does nothing on the next, with no
|
|
81
|
+
* error.
|
|
85
82
|
*
|
|
86
|
-
* Resolves through `getCanonicalRefName2`,
|
|
87
|
-
* read before the alias file has loaded
|
|
88
|
-
* read user specs
|
|
83
|
+
* Resolves through `getCanonicalRefName2`, which falls back to the input
|
|
84
|
+
* instead of throwing when a spec is read before the alias file has loaded.
|
|
85
|
+
* The getters that read user specs run from the first render.
|
|
89
86
|
*
|
|
90
|
-
* Takes a refName, not a spec that might hold one
|
|
91
|
-
* `refName.toLowerCase()`, so
|
|
92
|
-
* and a caller reading an untyped `frozen` slot
|
|
93
|
-
*
|
|
87
|
+
* Takes a refName, not a spec that might hold one. The resolver calls
|
|
88
|
+
* `refName.toLowerCase()`, so any other value throws once the aliases have
|
|
89
|
+
* loaded, and a caller reading an untyped `frozen` slot must first check that
|
|
90
|
+
* the value is a refName.
|
|
94
91
|
*/
|
|
95
92
|
export function canonicalizeViewRefName(node, refName) {
|
|
96
93
|
const { assemblyManager } = getSession(node);
|
|
@@ -105,6 +102,24 @@ export function canonicalizeViewRefName(node, refName) {
|
|
|
105
102
|
export function getEnv(obj) {
|
|
106
103
|
return getEnvMST(obj);
|
|
107
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* #api core/util
|
|
107
|
+
* `addOrReplaceView` for view types whose state model may be lazily loaded;
|
|
108
|
+
* the synchronous `addOrReplaceView` requires it loaded already.
|
|
109
|
+
*/
|
|
110
|
+
export async function launchOrReplaceView(args) {
|
|
111
|
+
// a test's fake session is not an MST node; addView's own guard is the
|
|
112
|
+
// error path there
|
|
113
|
+
if (isStateTreeNode(args.session)) {
|
|
114
|
+
const { pluginManager } = getEnvMST(args.session);
|
|
115
|
+
await pluginManager?.getViewType(args.typeName).loadStateModel();
|
|
116
|
+
// the displays of the tracks a launch opens with are dynamic imports too
|
|
117
|
+
await pluginManager?.preloadSessionTypes({
|
|
118
|
+
views: [{ type: args.typeName, ...args.initialState }],
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return addOrReplaceView(args);
|
|
122
|
+
}
|
|
108
123
|
export function hashCode(str) {
|
|
109
124
|
let hash = 0;
|
|
110
125
|
if (str.length === 0) {
|
|
@@ -10,6 +10,13 @@ export declare function getNumberGrouping(): boolean;
|
|
|
10
10
|
export declare function toLocale(n: number): string;
|
|
11
11
|
export declare function toPrecision(s: number, n?: number): number;
|
|
12
12
|
export declare function reducePrecision(s: number, n?: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* A score as a guide prints it: three significant figures below 100, whole
|
|
15
|
+
* numbers above, trailing fractional zeros dropped. The decimal-point guard
|
|
16
|
+
* matters because toPrecision can round up out of the fractional form —
|
|
17
|
+
* 99.95 comes back as "100", where a bare trailing-zero strip would report 1.
|
|
18
|
+
*/
|
|
19
|
+
export declare function formatScore(n: number): string;
|
|
13
20
|
/**
|
|
14
21
|
* A byte count as a person reads it. Shared by the region-too-large banner and
|
|
15
22
|
* the save-track-data dialog, which quote the same index estimate and would
|
package/esm/util/numericUtils.js
CHANGED
|
@@ -98,6 +98,22 @@ export function toPrecision(s, n = 3) {
|
|
|
98
98
|
export function reducePrecision(s, n = 3) {
|
|
99
99
|
return toLocale(toPrecision(s, n));
|
|
100
100
|
}
|
|
101
|
+
/**
|
|
102
|
+
* A score as a guide prints it: three significant figures below 100, whole
|
|
103
|
+
* numbers above, trailing fractional zeros dropped. The decimal-point guard
|
|
104
|
+
* matters because toPrecision can round up out of the fractional form —
|
|
105
|
+
* 99.95 comes back as "100", where a bare trailing-zero strip would report 1.
|
|
106
|
+
*/
|
|
107
|
+
export function formatScore(n) {
|
|
108
|
+
if (n === 0) {
|
|
109
|
+
return '0';
|
|
110
|
+
}
|
|
111
|
+
if (Math.abs(n) >= 100) {
|
|
112
|
+
return n.toFixed(0);
|
|
113
|
+
}
|
|
114
|
+
const s = n.toPrecision(3);
|
|
115
|
+
return s.includes('.') ? s.replace(/\.?0+$/, '') : s;
|
|
116
|
+
}
|
|
101
117
|
/**
|
|
102
118
|
* A byte count as a person reads it. Shared by the region-too-large banner and
|
|
103
119
|
* the save-track-data dialog, which quote the same index estimate and would
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A field's value as the number a quantitative channel or step reads, `NaN`
|
|
3
|
+
* where it holds none. `Number()` answers 0 for `null`, `''`, `[]` and
|
|
4
|
+
* `[null]` — a VCF's `DP=.` arrives as the last — which plots a missing value
|
|
5
|
+
* as a measured zero. A one-element list is its element, as a VCF INFO value
|
|
6
|
+
* is; a string has to hold digits; anything else is not a number.
|
|
7
|
+
*
|
|
8
|
+
* The order is the measurement: a number returns first, and a string converts
|
|
9
|
+
* before its blank check, which runs only on a zero. Over a million features
|
|
10
|
+
* against `Number()`, interleaved in one process: numbers 0.98x, strings
|
|
11
|
+
* 1.00-1.02x, one-element lists 0.28x. Testing the list first and trimming
|
|
12
|
+
* every string measured 1.11-1.16x on a string column.
|
|
13
|
+
*/
|
|
14
|
+
export declare function numericValue(value: unknown): number;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
function textNumber(text) {
|
|
2
|
+
const n = Number(text);
|
|
3
|
+
return n === 0 && text.trim() === '' ? Number.NaN : n;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* A field's value as the number a quantitative channel or step reads, `NaN`
|
|
7
|
+
* where it holds none. `Number()` answers 0 for `null`, `''`, `[]` and
|
|
8
|
+
* `[null]` — a VCF's `DP=.` arrives as the last — which plots a missing value
|
|
9
|
+
* as a measured zero. A one-element list is its element, as a VCF INFO value
|
|
10
|
+
* is; a string has to hold digits; anything else is not a number.
|
|
11
|
+
*
|
|
12
|
+
* The order is the measurement: a number returns first, and a string converts
|
|
13
|
+
* before its blank check, which runs only on a zero. Over a million features
|
|
14
|
+
* against `Number()`, interleaved in one process: numbers 0.98x, strings
|
|
15
|
+
* 1.00-1.02x, one-element lists 0.28x. Testing the list first and trimming
|
|
16
|
+
* every string measured 1.11-1.16x on a string column.
|
|
17
|
+
*/
|
|
18
|
+
export function numericValue(value) {
|
|
19
|
+
if (typeof value === 'number') {
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
if (typeof value === 'string') {
|
|
23
|
+
return textNumber(value);
|
|
24
|
+
}
|
|
25
|
+
if (Array.isArray(value) && value.length === 1) {
|
|
26
|
+
const v = value[0];
|
|
27
|
+
return typeof v === 'number'
|
|
28
|
+
? v
|
|
29
|
+
: typeof v === 'string'
|
|
30
|
+
? textNumber(v)
|
|
31
|
+
: Number.NaN;
|
|
32
|
+
}
|
|
33
|
+
return Number.NaN;
|
|
34
|
+
}
|
|
@@ -5,10 +5,15 @@ export interface FeatureWidgetTypeRef {
|
|
|
5
5
|
type: string;
|
|
6
6
|
id: string;
|
|
7
7
|
}
|
|
8
|
+
export interface ParentFeatureSummary {
|
|
9
|
+
name: string;
|
|
10
|
+
type?: string;
|
|
11
|
+
}
|
|
8
12
|
export declare function openFeatureWidget(node: IAnyStateTreeNode, featureData: SimpleFeatureSerialized, opts?: {
|
|
9
13
|
widget?: FeatureWidgetTypeRef;
|
|
10
14
|
extra?: Record<string, unknown>;
|
|
11
15
|
feature?: Feature;
|
|
16
|
+
parentFeature?: ParentFeatureSummary;
|
|
12
17
|
}): Widget | undefined;
|
|
13
18
|
/**
|
|
14
19
|
* The other half of the flow above: the details lookup came back with nothing,
|
|
@@ -30,13 +30,13 @@ export function openFeatureWidget(node, featureData, opts = {}) {
|
|
|
30
30
|
}
|
|
31
31
|
session.setSelection(opts.feature ?? new SimpleFeature(featureData));
|
|
32
32
|
const { type, id } = opts.widget ?? DEFAULT_FEATURE_WIDGET;
|
|
33
|
-
const widget = session.
|
|
33
|
+
const widget = session.openWidget(type, id, {
|
|
34
34
|
featureData,
|
|
35
|
+
parentFeature: opts.parentFeature,
|
|
35
36
|
view: getContainingView(node),
|
|
36
37
|
track: getContainingTrack(node),
|
|
37
38
|
...opts.extra,
|
|
38
39
|
});
|
|
39
|
-
session.showWidget(widget);
|
|
40
40
|
return widget;
|
|
41
41
|
}
|
|
42
42
|
/**
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AbstractSessionModel, AbstractTrackModel, AbstractViewModel } from './types/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* "What is open" — the reduction four consumers wanted and each used to walk
|
|
4
|
+
* for itself (AppReadyMarker, jbApi, and capture's session gate and busy
|
|
5
|
+
* check), on different and drifting spellings of the view nesting.
|
|
6
|
+
*
|
|
7
|
+
* The recursion lives here, once. What each view contributes lives on the view,
|
|
8
|
+
* once, as `ownViews`/`ownTracks`. Neither half guesses at the other: the
|
|
9
|
+
* census is declared intent, not a shape that can be discovered, because the
|
|
10
|
+
* two things that look enumerable are not — the dotplot's `views` prop holds
|
|
11
|
+
* view-shaped axis models the user never opened, and react-msaview's `tracks`
|
|
12
|
+
* getter holds annotation rows that are not tracks.
|
|
13
|
+
*/
|
|
14
|
+
export declare function openViews(session: AbstractSessionModel): AbstractViewModel[];
|
|
15
|
+
/** Every track on every open view. */
|
|
16
|
+
export declare function openTracks(session: AbstractSessionModel): AbstractTrackModel[];
|
|
17
|
+
export declare function viewAndNested(view: AbstractViewModel): AbstractViewModel[];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* "What is open" — the reduction four consumers wanted and each used to walk
|
|
3
|
+
* for itself (AppReadyMarker, jbApi, and capture's session gate and busy
|
|
4
|
+
* check), on different and drifting spellings of the view nesting.
|
|
5
|
+
*
|
|
6
|
+
* The recursion lives here, once. What each view contributes lives on the view,
|
|
7
|
+
* once, as `ownViews`/`ownTracks`. Neither half guesses at the other: the
|
|
8
|
+
* census is declared intent, not a shape that can be discovered, because the
|
|
9
|
+
* two things that look enumerable are not — the dotplot's `views` prop holds
|
|
10
|
+
* view-shaped axis models the user never opened, and react-msaview's `tracks`
|
|
11
|
+
* getter holds annotation rows that are not tracks.
|
|
12
|
+
*/
|
|
13
|
+
export function openViews(session) {
|
|
14
|
+
return session.views.flatMap(viewAndNested);
|
|
15
|
+
}
|
|
16
|
+
/** Every track on every open view. */
|
|
17
|
+
export function openTracks(session) {
|
|
18
|
+
return openViews(session).flatMap(v => v.ownTracks ?? []);
|
|
19
|
+
}
|
|
20
|
+
export function viewAndNested(view) {
|
|
21
|
+
return [view, ...(view.ownViews ?? []).flatMap(viewAndNested)];
|
|
22
|
+
}
|
package/esm/util/parentWalk.d.ts
CHANGED
|
@@ -14,7 +14,7 @@ export declare function findParentThatIs<T extends (a: IAnyStateTreeNode) => boo
|
|
|
14
14
|
* Keying on the node is safe because nothing re-parents one — both `detach`
|
|
15
15
|
* call sites hand the node straight to `scheduleDetachedDestroy` (ADR-069), so
|
|
16
16
|
* a cached ancestor can only go stale by dying, which the `isAlive` check
|
|
17
|
-
* catches. That is the difference from the three memos
|
|
17
|
+
* catches. That is the difference from the three memos agent-docs/architecture-decision-records/ records
|
|
18
18
|
* removing: each keyed on something its caller had just allocated.
|
|
19
19
|
*/
|
|
20
20
|
export declare function cachedParent<T>(cache: WeakMap<IAnyStateTreeNode, T>, node: IAnyStateTreeNode, finder: () => T, errorMsg: string): T;
|
package/esm/util/parentWalk.js
CHANGED
|
@@ -39,7 +39,7 @@ export function findParentThatIs(node, predicate) {
|
|
|
39
39
|
* Keying on the node is safe because nothing re-parents one — both `detach`
|
|
40
40
|
* call sites hand the node straight to `scheduleDetachedDestroy` (ADR-069), so
|
|
41
41
|
* a cached ancestor can only go stale by dying, which the `isAlive` check
|
|
42
|
-
* catches. That is the difference from the three memos
|
|
42
|
+
* catches. That is the difference from the three memos agent-docs/architecture-decision-records/ records
|
|
43
43
|
* removing: each keyed on something its caller had just allocated.
|
|
44
44
|
*/
|
|
45
45
|
export function cachedParent(cache, node, finder, errorMsg) {
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { IntervalTree } from './IntervalTree.ts';
|
|
2
2
|
import type { StatusCallback } from './progress.ts';
|
|
3
|
-
import type { StopToken } from './stopToken.ts';
|
|
4
3
|
export type { StatusCallback };
|
|
5
4
|
export type LineCallback = (line: string, lineIndex: number) => boolean | undefined;
|
|
6
5
|
/**
|
|
@@ -36,11 +35,11 @@ export declare function makeFeatureIntervalTreeMap<T extends {
|
|
|
36
35
|
* contract is built on ("no channel, skip the bookkeeping"), and it used to
|
|
37
36
|
* default to `() => {}`, which says the opposite.
|
|
38
37
|
* @param opts - `label` names the phase on the progress bar (a multi-phase
|
|
39
|
-
* adapter wants "
|
|
40
|
-
* the download that preceded it); `
|
|
41
|
-
*
|
|
38
|
+
* adapter wants "Processing alignments", not another "Loading" indistinguishable from
|
|
39
|
+
* the download that preceded it); `signal` is read on every line, but the
|
|
40
|
+
* parse never yields, so it sees only an abort that landed before it began.
|
|
42
41
|
*/
|
|
43
42
|
export declare function parseLineByLine(buffer: Uint8Array, lineCallback: LineCallback, statusCallback: StatusCallback | undefined, opts?: {
|
|
44
43
|
label?: string;
|
|
45
|
-
|
|
44
|
+
signal?: AbortSignal;
|
|
46
45
|
}): void;
|
|
@@ -96,22 +96,18 @@ function chunkBoundary(buffer, start) {
|
|
|
96
96
|
* contract is built on ("no channel, skip the bookkeeping"), and it used to
|
|
97
97
|
* default to `() => {}`, which says the opposite.
|
|
98
98
|
* @param opts - `label` names the phase on the progress bar (a multi-phase
|
|
99
|
-
* adapter wants "
|
|
100
|
-
* the download that preceded it); `
|
|
101
|
-
*
|
|
99
|
+
* adapter wants "Processing alignments", not another "Loading" indistinguishable from
|
|
100
|
+
* the download that preceded it); `signal` is read on every line, but the
|
|
101
|
+
* parse never yields, so it sees only an abort that landed before it began.
|
|
102
102
|
*/
|
|
103
103
|
export function parseLineByLine(buffer, lineCallback, statusCallback, opts = {}) {
|
|
104
|
-
const { label = 'Loading',
|
|
104
|
+
const { label = 'Loading', signal } = opts;
|
|
105
105
|
const decoder = new TextDecoder('utf8');
|
|
106
|
-
// Time-gated, not gated on a line counter: a file of few but very expensive
|
|
107
|
-
// lines would never reach a count mask, freezing the bar at 0% for the whole
|
|
108
|
-
// parse (the failure createProgressReporter documents). The stop-token check
|
|
109
|
-
// rides the same tick, so cancellation lands within one window.
|
|
110
106
|
const report = createProgressReporter({
|
|
111
107
|
label,
|
|
112
108
|
total: buffer.length,
|
|
113
109
|
statusCallback,
|
|
114
|
-
|
|
110
|
+
signal,
|
|
115
111
|
});
|
|
116
112
|
let chunkStart = 0;
|
|
117
113
|
let i = 0;
|
|
@@ -140,11 +136,9 @@ export function parseLineByLine(buffer, lineCallback, statusCallback, opts = {})
|
|
|
140
136
|
}
|
|
141
137
|
}
|
|
142
138
|
i++;
|
|
143
|
-
// Chunk-granular position
|
|
144
|
-
//
|
|
145
|
-
//
|
|
146
|
-
// within the chunk would mean converting a UTF-16 offset back to a byte
|
|
147
|
-
// offset, and at 64KB the bar already moves in sub-percent steps.
|
|
139
|
+
// Chunk-granular position: interpolating within the chunk would mean
|
|
140
|
+
// converting a UTF-16 offset back to a byte offset, and at 64KB the bar
|
|
141
|
+
// already moves in sub-percent steps.
|
|
148
142
|
report(chunkStart);
|
|
149
143
|
p = lineEnd + 1;
|
|
150
144
|
}
|
|
@@ -10,14 +10,11 @@ import type { JBrowsePlugin } from './types/data.ts';
|
|
|
10
10
|
*
|
|
11
11
|
* Two independent reasons to hide an entry:
|
|
12
12
|
*
|
|
13
|
-
* - **No build
|
|
14
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
18
|
-
* the CJS-only one is still shown, since that is a fact about this JBrowse
|
|
19
|
-
* version rather than about the product, and PluginStoreCard already has a
|
|
20
|
-
* place to say so.
|
|
13
|
+
* - **No build at all.** Asked of every build the entry publishes rather than
|
|
14
|
+
* only the top-level urls — an entry that pins urls per version, which
|
|
15
|
+
* `resolvePlugin`'s fallback exists to accommodate, used to vanish from the
|
|
16
|
+
* list with no diagnostic. Both products load the same two formats, so this
|
|
17
|
+
* half no longer differs between them.
|
|
21
18
|
* - **Already vendored into this product's core bundle**, where installing does
|
|
22
19
|
* nothing because `dropVendoredPlugins` drops the definition at load. Desktop's
|
|
23
20
|
* half of that list counts too, and is the half both surfaces were missing.
|
|
@@ -34,6 +31,7 @@ export interface PluginUpdate {
|
|
|
34
31
|
name: string;
|
|
35
32
|
definition: PluginDefinition;
|
|
36
33
|
}
|
|
34
|
+
export declare function releaseVersion(jbrowseVersion: string): string;
|
|
37
35
|
export declare function resolvePlugin(plugin: JBrowsePlugin, jbrowseVersion: string): ResolvedPlugin;
|
|
38
36
|
export declare function installedVersionFromUrl(url: string | undefined, packageName: string | undefined): string | undefined;
|
|
39
37
|
/**
|
package/esm/util/pluginStore.js
CHANGED
|
@@ -16,14 +16,11 @@ function publishedBuilds(plugin) {
|
|
|
16
16
|
*
|
|
17
17
|
* Two independent reasons to hide an entry:
|
|
18
18
|
*
|
|
19
|
-
* - **No build
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
23
|
-
*
|
|
24
|
-
* the CJS-only one is still shown, since that is a fact about this JBrowse
|
|
25
|
-
* version rather than about the product, and PluginStoreCard already has a
|
|
26
|
-
* place to say so.
|
|
19
|
+
* - **No build at all.** Asked of every build the entry publishes rather than
|
|
20
|
+
* only the top-level urls — an entry that pins urls per version, which
|
|
21
|
+
* `resolvePlugin`'s fallback exists to accommodate, used to vanish from the
|
|
22
|
+
* list with no diagnostic. Both products load the same two formats, so this
|
|
23
|
+
* half no longer differs between them.
|
|
27
24
|
* - **Already vendored into this product's core bundle**, where installing does
|
|
28
25
|
* nothing because `dropVendoredPlugins` drops the definition at load. Desktop's
|
|
29
26
|
* half of that list counts too, and is the half both surfaces were missing.
|
|
@@ -34,8 +31,14 @@ export function installablePlugins(plugins, isElectron) {
|
|
|
34
31
|
...(isElectron ? desktopVendoredPluginNames : []),
|
|
35
32
|
]);
|
|
36
33
|
return plugins.filter(plugin => !vendored.has(plugin.name) &&
|
|
37
|
-
(
|
|
38
|
-
|
|
34
|
+
publishedBuilds(plugin).some(b => b.esmUrl ?? b.url ?? b.umdUrl));
|
|
35
|
+
}
|
|
36
|
+
// A prerelease host is its release for compatibility purposes. Under semver
|
|
37
|
+
// 5.0.0-beta.1 sorts below 5.0.0, so a range written to keep a plugin off v5
|
|
38
|
+
// (`<5.0.0`) would serve it to every beta host and a v5-only range (`>=5.0.0`)
|
|
39
|
+
// would hide it from them. Store ranges are written against release versions.
|
|
40
|
+
export function releaseVersion(jbrowseVersion) {
|
|
41
|
+
return jbrowseVersion.split('-')[0];
|
|
39
42
|
}
|
|
40
43
|
// `*` (and empty) mean "any JBrowse version"; compare-versions throws on those,
|
|
41
44
|
// so handle them directly. A malformed range simply fails to match rather than
|
|
@@ -44,7 +47,7 @@ function rangeMatches(jbrowseVersion, range) {
|
|
|
44
47
|
let matched = range === '*' || range === '';
|
|
45
48
|
if (!matched) {
|
|
46
49
|
try {
|
|
47
|
-
matched = satisfies(jbrowseVersion, range);
|
|
50
|
+
matched = satisfies(releaseVersion(jbrowseVersion), range);
|
|
48
51
|
}
|
|
49
52
|
catch {
|
|
50
53
|
matched = false;
|
|
@@ -61,11 +64,9 @@ function definitionFrom(name, src) {
|
|
|
61
64
|
? { name, umdUrl: src.umdUrl, ...integrity }
|
|
62
65
|
: src.esmUrl !== undefined
|
|
63
66
|
? { esmUrl: src.esmUrl }
|
|
64
|
-
: src.
|
|
65
|
-
? {
|
|
66
|
-
:
|
|
67
|
-
? { name, url: src.url, ...integrity }
|
|
68
|
-
: undefined;
|
|
67
|
+
: src.url !== undefined
|
|
68
|
+
? { name, url: src.url, ...integrity }
|
|
69
|
+
: undefined;
|
|
69
70
|
}
|
|
70
71
|
function highestVersion(versions) {
|
|
71
72
|
return [...versions].sort((a, b) => compareVersions(b.pluginVersion, a.pluginVersion))[0];
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Start loading a component made by `lazyWithPreload`; any other component is
|
|
3
|
+
* left alone. React-free, so an eagerly evaluated module can call it.
|
|
4
|
+
*/
|
|
5
|
+
export function preloadComponent(component) {
|
|
6
|
+
const { preload } = (component ?? {});
|
|
7
|
+
if (typeof preload === 'function') {
|
|
8
|
+
;
|
|
9
|
+
preload().catch(() => { });
|
|
10
|
+
}
|
|
11
|
+
}
|