@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/highlights.d.ts
CHANGED
|
@@ -1,14 +1,16 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type { Theme } from '@mui/material';
|
|
1
|
+
import type { JBrowsePalette } from '../ui/palette.ts';
|
|
3
2
|
export interface HighlightType {
|
|
4
3
|
start: number;
|
|
5
4
|
end: number;
|
|
6
|
-
assemblyName
|
|
5
|
+
assemblyName: string;
|
|
7
6
|
refName: string;
|
|
8
7
|
color?: string;
|
|
9
8
|
label?: string;
|
|
10
9
|
}
|
|
11
|
-
export
|
|
10
|
+
export type HighlightInput = Omit<HighlightType, 'assemblyName'> & {
|
|
11
|
+
assemblyName?: string;
|
|
12
|
+
};
|
|
13
|
+
export declare function isSameHighlight(a: HighlightType, b: HighlightType): boolean;
|
|
12
14
|
export declare function highlightKey(h: {
|
|
13
15
|
assemblyName?: string;
|
|
14
16
|
refName: string;
|
|
@@ -17,5 +19,7 @@ export declare function highlightKey(h: {
|
|
|
17
19
|
}, i: number): string;
|
|
18
20
|
export declare function getHighlightColor(highlight: {
|
|
19
21
|
color?: string;
|
|
20
|
-
}, theme:
|
|
21
|
-
|
|
22
|
+
}, theme: {
|
|
23
|
+
palette: Pick<JBrowsePalette, 'highlight'>;
|
|
24
|
+
}, alpha?: number): import("./colord.ts").Colord;
|
|
25
|
+
export declare function coerceHighlight(h: string | HighlightInput, defaultAssembly: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): HighlightType | undefined;
|
package/esm/util/highlights.js
CHANGED
|
@@ -1,25 +1,12 @@
|
|
|
1
|
-
import { addDisposer } from '@jbrowse/mobx-state-tree';
|
|
2
|
-
import { autorun } from 'mobx';
|
|
3
1
|
import { colord } from './colord.js';
|
|
4
2
|
import { parseLocString } from './locString.js';
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
// removals only lower the baseline — they never re-reveal, or the toggle could
|
|
13
|
-
// never be turned off.
|
|
14
|
-
export function revealHighlightsOnGrowth(node, count) {
|
|
15
|
-
let prevCount = count();
|
|
16
|
-
addDisposer(node, autorun(function highlightRevealAutorun() {
|
|
17
|
-
const newCount = count();
|
|
18
|
-
if (newCount > prevCount) {
|
|
19
|
-
getSession(node).revealHighlights();
|
|
20
|
-
}
|
|
21
|
-
prevCount = newCount;
|
|
22
|
-
}));
|
|
3
|
+
export function isSameHighlight(a, b) {
|
|
4
|
+
return (a.assemblyName === b.assemblyName &&
|
|
5
|
+
a.refName === b.refName &&
|
|
6
|
+
a.start === b.start &&
|
|
7
|
+
a.end === b.end &&
|
|
8
|
+
a.color === b.color &&
|
|
9
|
+
a.label === b.label);
|
|
23
10
|
}
|
|
24
11
|
// Highlight regions have no id and can duplicate, so the trailing index only
|
|
25
12
|
// breaks ties between otherwise-identical regions. Wrapping the array index in
|
|
@@ -84,11 +71,11 @@ function parseLocHighlight(s, defaultAssembly, isValidRefName) {
|
|
|
84
71
|
? { refName, start, end, assemblyName: assemblyName ?? defaultAssembly }
|
|
85
72
|
: undefined;
|
|
86
73
|
}
|
|
87
|
-
// Normalize
|
|
88
|
-
//
|
|
89
|
-
// LinearGenomeView and DotplotView, whose `
|
|
90
|
-
// three forms — the JSON shape-check in particular has to stay identical or
|
|
91
|
-
// highlight that works in one view silently drops in the other.
|
|
74
|
+
// Normalize a launch spec's `highlight` entry (object, JSON string, or loc
|
|
75
|
+
// string) into a HighlightType, defaulting the assemblyName. Shared by
|
|
76
|
+
// LinearGenomeView and DotplotView, whose `highlight` launch keys accept the
|
|
77
|
+
// same three forms — the JSON shape-check in particular has to stay identical or
|
|
78
|
+
// a highlight that works in one view silently drops in the other.
|
|
92
79
|
export function coerceHighlight(h, defaultAssembly,
|
|
93
80
|
// takes the assembly a `{...}` prefix named, so a caller with more than one
|
|
94
81
|
// assembly in play validates the refName against the one the entry asked for
|
package/esm/util/hooks.d.ts
CHANGED
|
@@ -1,5 +1,22 @@
|
|
|
1
1
|
import type { RefObject } from 'react';
|
|
2
2
|
export declare function useFocusOnInteraction(ref: RefObject<HTMLElement | null>, onInteract: () => void): void;
|
|
3
|
+
/**
|
|
4
|
+
* Has `key` stayed the same for five seconds? A loading screen passes
|
|
5
|
+
* everything it is showing, so any status at all — a new phase, another chunk
|
|
6
|
+
* of bytes — restarts the wait, and only a load that has stopped saying
|
|
7
|
+
* anything gets there. `ViewLoadingScreen` and the embed `ViewStatus` use it to
|
|
8
|
+
* name the file a stalled load is waiting on.
|
|
9
|
+
*
|
|
10
|
+
* The timeout stores the key it fired for rather than a boolean, so a key that
|
|
11
|
+
* has moved on is not stalled and the notice goes away with no write to undo.
|
|
12
|
+
*/
|
|
13
|
+
export declare function useStalled(key: string): boolean;
|
|
14
|
+
/**
|
|
15
|
+
* Has the loading screen been up for two seconds? Until then it says only
|
|
16
|
+
* "Loading": a fast load flashes its phase labels too briefly to read, and a
|
|
17
|
+
* label glimpsed for a frame reads as a claim about what the app is doing.
|
|
18
|
+
*/
|
|
19
|
+
export declare function useSlowLoad(): boolean;
|
|
3
20
|
export declare function useDebounce<T>(value: T, delay: number): T;
|
|
4
21
|
export declare function useWidthSetter(view: {
|
|
5
22
|
setWidth: (arg: number) => void;
|
|
@@ -20,6 +37,14 @@ export declare function useWidthSetter(view: {
|
|
|
20
37
|
* "avoiding recreating the ref contents" pattern.
|
|
21
38
|
*/
|
|
22
39
|
export declare function useCreateOnce<T>(create: () => T): T;
|
|
40
|
+
/**
|
|
41
|
+
* `useCreateOnce` for an asynchronous factory: returns undefined until
|
|
42
|
+
* `create` resolves, and rethrows a rejection from render. The value can
|
|
43
|
+
* resolve after the component is gone — a caller whose value is expensive to
|
|
44
|
+
* leak should use product-core's `useAsyncEngineLifecycle`, which discards
|
|
45
|
+
* that late arrival.
|
|
46
|
+
*/
|
|
47
|
+
export declare function useCreateOnceAsync<T>(create: () => Promise<T>): T | undefined;
|
|
23
48
|
/**
|
|
24
49
|
* Run `cleanup` when the component *really* unmounts.
|
|
25
50
|
*
|
|
@@ -58,8 +83,7 @@ export declare function useFinalUnmount(cleanup: () => void): void;
|
|
|
58
83
|
* components on the same key each kept their own copy of it, so toggling a
|
|
59
84
|
* setting in one BreakpointSplitView header left a second one open beside it
|
|
60
85
|
* showing the old value until it remounted. Instances on a key now subscribe to
|
|
61
|
-
* each other's writes, and to other tabs' — `subscribeToLocalStorageKey
|
|
62
|
-
* the grid-bookmark widget shares from its state model.
|
|
86
|
+
* each other's writes, and to other tabs' — `subscribeToLocalStorageKey`.
|
|
63
87
|
*
|
|
64
88
|
* The store is read on every notify rather than cached, so nothing here can go
|
|
65
89
|
* stale against a `localStorage.clear()`. Which also means a functional update
|
|
@@ -100,6 +124,11 @@ export declare const SCROLL_PORT_HEIGHT_VAR = "--jbrowse-scrollport-height";
|
|
|
100
124
|
* re-render all of them to produce a number only CSS reads.
|
|
101
125
|
*/
|
|
102
126
|
export declare function useScrollPortHeightVar(): RefObject<HTMLDivElement | null>;
|
|
127
|
+
/**
|
|
128
|
+
* The nearest ancestor that actually scrolls `el`, or undefined if nothing
|
|
129
|
+
* above it does.
|
|
130
|
+
*/
|
|
131
|
+
export declare function scrollPortOf(el: HTMLElement): HTMLElement | undefined;
|
|
103
132
|
/**
|
|
104
133
|
* Whether the element the ref is on is taller than the scroll port it sits in —
|
|
105
134
|
* i.e. whether there is content a user could actually scroll to.
|
package/esm/util/hooks.js
CHANGED
|
@@ -51,6 +51,49 @@ export function useFocusOnInteraction(ref, onInteract) {
|
|
|
51
51
|
};
|
|
52
52
|
}, [ref, stableOnInteract]);
|
|
53
53
|
}
|
|
54
|
+
// Long enough that a load which is merely slow never says it, short enough to
|
|
55
|
+
// beat the point where someone decides the app is broken
|
|
56
|
+
const STALL_MS = 5000;
|
|
57
|
+
/**
|
|
58
|
+
* Has `key` stayed the same for five seconds? A loading screen passes
|
|
59
|
+
* everything it is showing, so any status at all — a new phase, another chunk
|
|
60
|
+
* of bytes — restarts the wait, and only a load that has stopped saying
|
|
61
|
+
* anything gets there. `ViewLoadingScreen` and the embed `ViewStatus` use it to
|
|
62
|
+
* name the file a stalled load is waiting on.
|
|
63
|
+
*
|
|
64
|
+
* The timeout stores the key it fired for rather than a boolean, so a key that
|
|
65
|
+
* has moved on is not stalled and the notice goes away with no write to undo.
|
|
66
|
+
*/
|
|
67
|
+
export function useStalled(key) {
|
|
68
|
+
const [stalledKey, setStalledKey] = useState();
|
|
69
|
+
useEffect(() => {
|
|
70
|
+
const timer = setTimeout(() => {
|
|
71
|
+
setStalledKey(key);
|
|
72
|
+
}, STALL_MS);
|
|
73
|
+
return () => {
|
|
74
|
+
clearTimeout(timer);
|
|
75
|
+
};
|
|
76
|
+
}, [key]);
|
|
77
|
+
return stalledKey === key;
|
|
78
|
+
}
|
|
79
|
+
const SLOW_LOAD_MS = 2000;
|
|
80
|
+
/**
|
|
81
|
+
* Has the loading screen been up for two seconds? Until then it says only
|
|
82
|
+
* "Loading": a fast load flashes its phase labels too briefly to read, and a
|
|
83
|
+
* label glimpsed for a frame reads as a claim about what the app is doing.
|
|
84
|
+
*/
|
|
85
|
+
export function useSlowLoad() {
|
|
86
|
+
const [slow, setSlow] = useState(false);
|
|
87
|
+
useEffect(() => {
|
|
88
|
+
const timer = setTimeout(() => {
|
|
89
|
+
setSlow(true);
|
|
90
|
+
}, SLOW_LOAD_MS);
|
|
91
|
+
return () => {
|
|
92
|
+
clearTimeout(timer);
|
|
93
|
+
};
|
|
94
|
+
}, []);
|
|
95
|
+
return slow;
|
|
96
|
+
}
|
|
54
97
|
export function useDebounce(value, delay) {
|
|
55
98
|
const [debouncedValue, setDebouncedValue] = useState(value);
|
|
56
99
|
useEffect(() => {
|
|
@@ -112,6 +155,33 @@ export function useCreateOnce(create) {
|
|
|
112
155
|
ref.current ??= { value: create() };
|
|
113
156
|
return ref.current.value;
|
|
114
157
|
}
|
|
158
|
+
/**
|
|
159
|
+
* `useCreateOnce` for an asynchronous factory: returns undefined until
|
|
160
|
+
* `create` resolves, and rethrows a rejection from render. The value can
|
|
161
|
+
* resolve after the component is gone — a caller whose value is expensive to
|
|
162
|
+
* leak should use product-core's `useAsyncEngineLifecycle`, which discards
|
|
163
|
+
* that late arrival.
|
|
164
|
+
*/
|
|
165
|
+
export function useCreateOnceAsync(create) {
|
|
166
|
+
const started = useRef(false);
|
|
167
|
+
const [state, setState] = useState();
|
|
168
|
+
useEffect(() => {
|
|
169
|
+
if (!started.current) {
|
|
170
|
+
started.current = true;
|
|
171
|
+
create().then(value => {
|
|
172
|
+
setState({ value });
|
|
173
|
+
}, (error) => {
|
|
174
|
+
setState({ error });
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
// create is read on the first effect only, as in useCreateOnce
|
|
178
|
+
// eslint-disable-next-line @eslint-react/exhaustive-deps
|
|
179
|
+
}, []);
|
|
180
|
+
if (state && 'error' in state) {
|
|
181
|
+
throw state.error;
|
|
182
|
+
}
|
|
183
|
+
return state?.value;
|
|
184
|
+
}
|
|
115
185
|
/**
|
|
116
186
|
* Run `cleanup` when the component *really* unmounts.
|
|
117
187
|
*
|
|
@@ -177,8 +247,7 @@ function resolveUpdate(value, prev) {
|
|
|
177
247
|
* components on the same key each kept their own copy of it, so toggling a
|
|
178
248
|
* setting in one BreakpointSplitView header left a second one open beside it
|
|
179
249
|
* showing the old value until it remounted. Instances on a key now subscribe to
|
|
180
|
-
* each other's writes, and to other tabs' — `subscribeToLocalStorageKey
|
|
181
|
-
* the grid-bookmark widget shares from its state model.
|
|
250
|
+
* each other's writes, and to other tabs' — `subscribeToLocalStorageKey`.
|
|
182
251
|
*
|
|
183
252
|
* The store is read on every notify rather than cached, so nothing here can go
|
|
184
253
|
* stale against a `localStorage.clear()`. Which also means a functional update
|
|
@@ -302,7 +371,7 @@ export function useScrollPortHeightVar() {
|
|
|
302
371
|
* The nearest ancestor that actually scrolls `el`, or undefined if nothing
|
|
303
372
|
* above it does.
|
|
304
373
|
*/
|
|
305
|
-
function scrollPortOf(el) {
|
|
374
|
+
export function scrollPortOf(el) {
|
|
306
375
|
let node = el.parentElement;
|
|
307
376
|
while (node) {
|
|
308
377
|
const { overflowY } = getComputedStyle(node);
|
package/esm/util/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ export { capitalizeFirst, pluralize, shorten, shorten2, truncateMiddle, } from '
|
|
|
3
3
|
export { formatBytes } from './formatBytes.ts';
|
|
4
4
|
export { getFillProps, getStrokeProps, stripAlpha } from './svgColorProps.ts';
|
|
5
5
|
export { fetchAndMaybeUnzip, fetchAndMaybeUnzipText, isGzip, } from './fetchAndMaybeUnzip.ts';
|
|
6
|
-
export { type AbstractDisplayModel, type AbstractMenuManager, type AbstractRootModel, type AbstractSessionModel, type AbstractTrackModel, type AbstractViewContainer, type AbstractViewModel, type AnimationMode, type AnyReactComponentType, type AppRootModel, type AssemblyHost, type AssemblyManager, type AugmentedRegion, AuthNeededError, type BasePlugin, type BlobLocation, type ClassReturnedBy, type ConnectionInstance, type DialogComponentType, type DialogHost, type DrawerPosition, type FileHandleLocation, type FileLocation, type InstanceTypeRestrictive, type JBrowsePlugin, type JBrowsePluginVersion, type LocalPathLocation, type NoAssemblyRegion, type NotificationLevel, type NotificationSink, type PaletteHost, type PreBlobLocation, type PreFileHandleLocation, type PreFileLocation, type PreLocalPathLocation, type PreUriLocation, type Region, type RenderingServices, type RpcCaller, type RpcHost, type RootModelWithInternetAccounts, type SelectionContainer, type SessionServices, type SessionWithAddAssembly, type SessionWithAddSessionTrack, type SessionWithPublishTrackConf, type SessionWithConfigEditing, type SessionWithConnectionEditing, type SessionWithConnections, type SessionWithDeleteTrackConf, type SessionWithDrawerWidgets, type SessionWithFocusedViewAndDrawerWidgets, type SessionWithPermanentPlugins, type SessionWithSessionPlugins, type SessionWithShareURL, type SessionWithViewReplacement, type SessionWithWidgets, type SnackAction, type TrackActionView, type TrackCatalog, type TrackContainer, type TrackViewModel, type TypeTestedByPredicate, type UriLocation, type Widget, type WidgetMap, addOrReplaceView, canReplaceView, isAbstractMenuManager, isAppRootModel, isAuthNeededException, isBlobLocation, isDisplayModel, isFileHandleLocation, isLocalPathLocation, isRootModelWithInternetAccounts, isSelectionContainer, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithPermanentPlugins, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isTrackModel, isTrackViewModel, isUriLocation, isViewContainer, isViewModel, } from './types/index.ts';
|
|
6
|
+
export { type AbstractDisplayModel, type AbstractMenuManager, type AbstractRootModel, type AbstractSessionModel, type AbstractTrackModel, type AbstractViewContainer, type AbstractViewModel, type AnimationMode, type AnyReactComponentType, type AppRootModel, type AssemblyHost, type AssemblyManager, type AugmentedRegion, AuthNeededError, type BasePlugin, type BlobLocation, type ClassReturnedBy, type ConnectionInstance, type DialogComponentType, type DialogHost, type DrawerPosition, type FileHandleLocation, type FileLocation, type InstanceTypeRestrictive, type JBrowsePlugin, type JBrowsePluginVersion, type LocalPathLocation, type NoAssemblyRegion, type NotificationLevel, type NotificationSink, type PaletteHost, type PreBlobLocation, type PreFileHandleLocation, type PreFileLocation, type PreLocalPathLocation, type PreUriLocation, type Region, type RenderingServices, type RpcCaller, type RpcHost, type RootModelWithInternetAccounts, type SelectionContainer, type SessionServices, type SessionWithAddAssembly, type SessionWithAddSessionTrack, type SessionWithPublishTrackConf, type SessionWithConfigEditing, type SessionWithConnectionEditing, type SessionWithConnections, type SessionWithDeleteTrackConf, type SessionWithDrawerWidgets, type SessionWithFocusedViewAndDrawerWidgets, type SessionWithPermanentPlugins, type SessionWithSessionPlugins, type SessionWithShareURL, type SessionWithViewReplacement, type SessionWithWidgets, type SnackAction, type TrackActionView, type TrackCatalog, type TrackContainer, type TrackViewModel, type TypeTestedByPredicate, type UriLocation, type Widget, type WidgetMap, addOrReplaceView, canReplaceView, isAbstractMenuManager, isAppRootModel, isAuthNeededException, isBlobLocation, isDisplayModel, isFileHandleLocation, isLocalPathLocation, isRootModelWithInternetAccounts, isSelectionContainer, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithMultipleViews, isSessionWithPermanentPlugins, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isTrackModel, isTrackViewModel, isUriLocation, isViewContainer, isViewModel, } from './types/index.ts';
|
|
7
7
|
export { type PluginUpdate, type ResolvedPlugin, type StorePluginFailure, type StorePluginResolution, getPluginUpdate, installablePlugins, installedVersionFromUrl, isPluginInstalled, resolvePlugin, resolveStorePluginRefs, resolveStoreRefs, } from './pluginStore.ts';
|
|
8
8
|
export { type PhaseFailure, type ProgressReporter, type RpcStatus, type StatusCallback, type StatusPhase, type StatusStream, type StatusWindow, type StatusWithProgress, createProgressReporter, createStatusFanOut, createStatusWindow, downloadStatus, progressLabel, statusFraction, statusMessageText, statusProgressLabel, statusReading, statusSource, throttleStatusEmits, updateStatus, withProgress, } from './progress.ts';
|
|
9
9
|
export { calculateRedispatchRange, doesIntersect2, intersection2, } from './range.ts';
|
|
@@ -22,11 +22,11 @@ export { MAX_ZOOM_RATE_PER_MS, SCROLL_ZOOM_FACTOR_DIVISOR, ZOOM_ACTIVE_WINDOW_MS
|
|
|
22
22
|
export { avg, clamp, getDisplayStr, getNumberGrouping, max, maxFinite, min, minmax, polarToCartesian, radToDeg, reducePrecision, setNumberGrouping, sum, toLocale, } from './numericUtils.ts';
|
|
23
23
|
export { type MinimalRegion, bpSpanPx, bpToPx, bytesForRegions, featureSpanPx, getBpDisplayStr, getTickDisplayStr, parseBpString, } from './bpUtils.ts';
|
|
24
24
|
export { type BasicFeature, gatherOverlaps, mergeIntervals, } from './intervals.ts';
|
|
25
|
-
export { clampToContig } from './clampToContig.ts';
|
|
26
|
-
export { animationAllowed } from './animationAllowed.ts';
|
|
25
|
+
export { clampToContig, clampToListedContig } from './clampToContig.ts';
|
|
26
|
+
export { MORPH_DURATION_MS, animationAllowed, easeInOutCubic, morphClockMs, } from './animationAllowed.ts';
|
|
27
27
|
export { springAnimate } from './springAnimate.ts';
|
|
28
28
|
export { localStorageAvailable, localStorageGetBoolean, localStorageGetItem, localStorageGetJSON, localStorageGetNumber, localStorageGetStringArray, localStorageRemoveItem, localStorageSetBoolean, localStorageSetItem, localStorageSetJSON, localStorageSetNumber, notifyLocalStorageKey, subscribeToLocalStorageKey, } from './localStorage.ts';
|
|
29
|
-
export { renameRegionIfNeeded, renameRegionsIfNeeded } from './renameRegions.ts';
|
|
29
|
+
export { renameComparativeRegions, renameRegionIfNeeded, renameRegionsIfNeeded, } from './renameRegions.ts';
|
|
30
30
|
export { addAndShowTrack } from './addAndShowTrack.ts';
|
|
31
31
|
export { addTrackFromWidget, containerDisplaysAssembly, finishAddTrack, type AddTrackWidgetSelf, type AddTrackWorkflowModel, } from './addTrackFromWidget.ts';
|
|
32
32
|
export { namesTemporaryAssembly } from './temporaryAssembly.ts';
|
|
@@ -37,16 +37,15 @@ export { indexedDBAvailable, isElectron, isNode, rIC } from './environment.ts';
|
|
|
37
37
|
export { isWebWorker } from './isWebWorker.ts';
|
|
38
38
|
export { sessionStorageAvailable, sessionStorageGetItem, sessionStorageRemoveItem, sessionStorageSetItem, } from './sessionStorage.ts';
|
|
39
39
|
export { isObject } from './objectUtils.ts';
|
|
40
|
-
export { openPromotableDisplays } from './openDisplays.ts';
|
|
41
40
|
export { type ReorderDirection, applyOrderWithin, reorder, reorderWithin, } from './reorder.ts';
|
|
42
41
|
export { getStr } from './getStr.ts';
|
|
43
42
|
export { downloadPhase, getLocationUri, resolveUri } from './getLocationUri.ts';
|
|
44
43
|
export { measureGridWidth, resolveSelectedIds } from './dataGridUtils.ts';
|
|
45
44
|
export { isRpcResult } from './rpc.ts';
|
|
46
45
|
export { aesDecrypt, aesEncrypt, sha256, sha256Base64, sha256Base64Url, toBase64, toBase64Url, } from './crypto.ts';
|
|
47
|
-
export { type FeatureWidgetTypeRef, notifyFeatureDetailsMiss, openFeatureWidget, } from './openFeatureWidget.ts';
|
|
46
|
+
export { type FeatureWidgetTypeRef, type ParentFeatureSummary, notifyFeatureDetailsMiss, openFeatureWidget, } from './openFeatureWidget.ts';
|
|
48
47
|
export { withFeatureDetails } from './withFeatureDetails.ts';
|
|
49
|
-
export { canonicalizeViewRefName, findParentThat, findParentThatIs, getAssemblyHost, getContainingDisplay, getContainingTrack, getContainingView, getEnv, getRenderingServices, getSession, hashCode, objectHash, } from './mstUtils.ts';
|
|
48
|
+
export { canonicalizeViewRefName, findParentThat, findParentThatIs, getAssemblyHost, getContainingDisplay, getContainingTrack, getContainingView, getEnv, getRenderingServices, launchOrReplaceView, getSession, hashCode, objectHash, } from './mstUtils.ts';
|
|
50
49
|
export { getDialogHost, getNotificationSink, getPaletteHost, getRpcHost, getSessionServices, } from './sessionServices.ts';
|
|
51
50
|
/**
|
|
52
51
|
* Convert a browser File (from a drop zone or file input) into a FileLocation:
|
|
@@ -56,7 +55,6 @@ export declare function fileToLocation(file: File): FileLocation;
|
|
|
56
55
|
export { type Frame, complement, complementTable, defaultStarts, getFrame, revcom, reverse, stitch, } from './seqUtils.ts';
|
|
57
56
|
export { revlist } from './revlist.ts';
|
|
58
57
|
export { useCreateOnce, useDebounce, useFinalUnmount, useLocalStorage, useWidthSetter, } from './hooks.ts';
|
|
59
|
-
export { renderToStaticMarkup } from './renderToStaticMarkup.ts';
|
|
60
58
|
export { codonTable, defaultCodonTable, generateCodonTable, } from './geneticCodes.ts';
|
|
61
59
|
export { IUPAC_MOTIF_REGEX, isPalindromic, iupacToRegex, reverseComplementIupac, } from './iupac.ts';
|
|
62
60
|
export { type MotifListParse, type MotifParseError, type ParsedMotif, parseMotifList, } from './parseMotifList.ts';
|
|
@@ -67,15 +65,17 @@ export declare function testAdapter(fileName: string, regex: RegExp, adapterHint
|
|
|
67
65
|
export { type Feature, type SimpleFeatureSerialized, type SimpleFeatureSerializedNoId, default as SimpleFeature, isFeature, } from './simpleFeature.ts';
|
|
68
66
|
export { saveAs } from './FileSaver/index.ts';
|
|
69
67
|
export { type SaveSvgAsImageOptions, saveSvgAsImage, svgHtmlToPngBlob, } from '../svg/saveSvgAsImage.ts';
|
|
70
|
-
export { type ActiveFetch, type StatusChannel, type StatusReporter, createStatusChannel,
|
|
68
|
+
export { type ActiveFetch, type StatusChannel, type StatusReporter, createStatusChannel, createAbortRotation, } from './createAbortRotation.ts';
|
|
71
69
|
export { createSharedSetup } from './cachedSetup.ts';
|
|
70
|
+
export { scheduleDetachedDestroy } from './scheduleDetachedDestroy.ts';
|
|
72
71
|
export { isDataCurrent } from './isDataCurrent.ts';
|
|
73
72
|
export { handleFetchError, isAbortException, makeAbortError, } from './aborting.ts';
|
|
74
73
|
export { linkify } from './linkify.ts';
|
|
74
|
+
export { isGeneLikeType, isSequenceMatchType } from './featureTypes.ts';
|
|
75
75
|
export { locStringsToRegions } from './locStringsToRegions.ts';
|
|
76
76
|
export type { RefNameSource } from './locStringsToRegions.ts';
|
|
77
77
|
export { type ParsedLocString, UnknownRefNameError, assembleLocString, assembleLocStringRaw, assembleLocStrings, compareLocStrings, compareLocs, parseLocString, parseLocStringOneBased, stringify, } from './locString.ts';
|
|
78
|
-
export { type
|
|
78
|
+
export { type AbortBreakpoint, checkAbortSignal, createAbortBreakpoint, withAbortCheck, } from './aborting.ts';
|
|
79
79
|
export { type AddTrackComponentModel, type AddTrackComponentProps, adapterNeedsAddTrackComponent, addAddTrackComponent, } from './addTrackComponent.ts';
|
|
80
80
|
export { adapterConfigFromSpec } from './formatGuessers.ts';
|
|
81
81
|
export { type AdapterConfig, type AdapterGuesser, type LooseTrackInput, type TrackTypeGuesser, UNKNOWN, UNSUPPORTED, addAdapterGuesser, addTrackTypeGuesser, clearFileFromCache, ensureFileHandleReady, expandLooseTrackConfig, findFileHandleIds, generateUnknownTrackConf, generateUnsupportedTrackConf, getBlob, getBlobMap, getConfAssemblyNames, getFileFromCache, getFileName, getRpcSessionId, getTrackAssemblyNames, getTrackName, guessAdapter, guessTrackConf, guessTrackType, hasFileHandlesInCache, hideTrackGeneric, isLooseTrackConfig, makeIndex, makeIndexType, restoreFileHandles, restoreFileHandlesFromSnapshot, setBlobMap, setFileInCache, showTrackGeneric, storeBlobLocation, storeFileHandleLocation, stripFileExtension, stripTrackIds, toggleTrackGeneric, } from './tracks.ts';
|
|
@@ -84,5 +84,5 @@ export { IntervalTree } from './IntervalTree.ts';
|
|
|
84
84
|
export { cmpStr } from './cmpStr.ts';
|
|
85
85
|
export { diffTrackConfig, flattenTrackConfigDelta, mergeTrackConfig, } from './trackConfigDelta.ts';
|
|
86
86
|
export type { TrackConfigChange } from './trackConfigDelta.ts';
|
|
87
|
-
export { BEZIER_CONNECTOR_MAX_REACH_PX, bezierConnectorPath, } from './bezierConnector.ts';
|
|
87
|
+
export { BEZIER_CONNECTOR_MAX_REACH_PX, CUBIC_APEX_RATIO, bezierConnectorPath, } from './bezierConnector.ts';
|
|
88
88
|
export { type AlignmentData, type DiagonalizationResult, diagonalizeRegions, } from './diagonalizeRegions.ts';
|
package/esm/util/index.js
CHANGED
|
@@ -12,7 +12,7 @@ export { capitalizeFirst, pluralize, shorten, shorten2, truncateMiddle, } from '
|
|
|
12
12
|
export { formatBytes } from './formatBytes.js';
|
|
13
13
|
export { getFillProps, getStrokeProps, stripAlpha } from './svgColorProps.js';
|
|
14
14
|
export { fetchAndMaybeUnzip, fetchAndMaybeUnzipText, isGzip, } from './fetchAndMaybeUnzip.js';
|
|
15
|
-
export { AuthNeededError, addOrReplaceView, canReplaceView, isAbstractMenuManager, isAppRootModel, isAuthNeededException, isBlobLocation, isDisplayModel, isFileHandleLocation, isLocalPathLocation, isRootModelWithInternetAccounts, isSelectionContainer, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithPermanentPlugins, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isTrackModel, isTrackViewModel, isUriLocation, isViewContainer, isViewModel, } from './types/index.js';
|
|
15
|
+
export { AuthNeededError, addOrReplaceView, canReplaceView, isAbstractMenuManager, isAppRootModel, isAuthNeededException, isBlobLocation, isDisplayModel, isFileHandleLocation, isLocalPathLocation, isRootModelWithInternetAccounts, isSelectionContainer, isSessionModel, isSessionServices, isSessionModelWithConfigEditing, isSessionModelWithConnectionEditing, isSessionModelWithConnections, isSessionModelWithWidgets, isSessionWithAddAssembly, isSessionWithAddSessionTrack, isSessionWithAddTracks, isSessionWithPublishTrackConf, isSessionWithDeleteTrackConf, isSessionWithMultipleViews, isSessionWithPermanentPlugins, isSessionWithSessionPlugins, isSessionWithSessionTracks, isSessionWithShareURL, isSessionWithViewReplacement, isTrackModel, isTrackViewModel, isUriLocation, isViewContainer, isViewModel, } from './types/index.js';
|
|
16
16
|
export { getPluginUpdate, installablePlugins, installedVersionFromUrl, isPluginInstalled, resolvePlugin, resolveStorePluginRefs, resolveStoreRefs, } from './pluginStore.js';
|
|
17
17
|
export { createProgressReporter, createStatusFanOut, createStatusWindow, downloadStatus, progressLabel, statusFraction, statusMessageText, statusProgressLabel, statusReading, statusSource, throttleStatusEmits, updateStatus, withProgress, } from './progress.js';
|
|
18
18
|
export { calculateRedispatchRange, doesIntersect2, intersection2, } from './range.js';
|
|
@@ -29,11 +29,11 @@ export { MAX_ZOOM_RATE_PER_MS, SCROLL_ZOOM_FACTOR_DIVISOR, ZOOM_ACTIVE_WINDOW_MS
|
|
|
29
29
|
export { avg, clamp, getDisplayStr, getNumberGrouping, max, maxFinite, min, minmax, polarToCartesian, radToDeg, reducePrecision, setNumberGrouping, sum, toLocale, } from './numericUtils.js';
|
|
30
30
|
export { bpSpanPx, bpToPx, bytesForRegions, featureSpanPx, getBpDisplayStr, getTickDisplayStr, parseBpString, } from './bpUtils.js';
|
|
31
31
|
export { gatherOverlaps, mergeIntervals, } from './intervals.js';
|
|
32
|
-
export { clampToContig } from './clampToContig.js';
|
|
33
|
-
export { animationAllowed } from './animationAllowed.js';
|
|
32
|
+
export { clampToContig, clampToListedContig } from './clampToContig.js';
|
|
33
|
+
export { MORPH_DURATION_MS, animationAllowed, easeInOutCubic, morphClockMs, } from './animationAllowed.js';
|
|
34
34
|
export { springAnimate } from './springAnimate.js';
|
|
35
35
|
export { localStorageAvailable, localStorageGetBoolean, localStorageGetItem, localStorageGetJSON, localStorageGetNumber, localStorageGetStringArray, localStorageRemoveItem, localStorageSetBoolean, localStorageSetItem, localStorageSetJSON, localStorageSetNumber, notifyLocalStorageKey, subscribeToLocalStorageKey, } from './localStorage.js';
|
|
36
|
-
export { renameRegionIfNeeded, renameRegionsIfNeeded } from './renameRegions.js';
|
|
36
|
+
export { renameComparativeRegions, renameRegionIfNeeded, renameRegionsIfNeeded, } from './renameRegions.js';
|
|
37
37
|
export { addAndShowTrack } from './addAndShowTrack.js';
|
|
38
38
|
export { addTrackFromWidget, containerDisplaysAssembly, finishAddTrack, } from './addTrackFromWidget.js';
|
|
39
39
|
export { namesTemporaryAssembly } from './temporaryAssembly.js';
|
|
@@ -44,7 +44,6 @@ export { indexedDBAvailable, isElectron, isNode, rIC } from './environment.js';
|
|
|
44
44
|
export { isWebWorker } from './isWebWorker.js';
|
|
45
45
|
export { sessionStorageAvailable, sessionStorageGetItem, sessionStorageRemoveItem, sessionStorageSetItem, } from './sessionStorage.js';
|
|
46
46
|
export { isObject } from './objectUtils.js';
|
|
47
|
-
export { openPromotableDisplays } from './openDisplays.js';
|
|
48
47
|
export { applyOrderWithin, reorder, reorderWithin, } from './reorder.js';
|
|
49
48
|
export { getStr } from './getStr.js';
|
|
50
49
|
export { downloadPhase, getLocationUri, resolveUri } from './getLocationUri.js';
|
|
@@ -53,7 +52,7 @@ export { isRpcResult } from './rpc.js';
|
|
|
53
52
|
export { aesDecrypt, aesEncrypt, sha256, sha256Base64, sha256Base64Url, toBase64, toBase64Url, } from './crypto.js';
|
|
54
53
|
export { notifyFeatureDetailsMiss, openFeatureWidget, } from './openFeatureWidget.js';
|
|
55
54
|
export { withFeatureDetails } from './withFeatureDetails.js';
|
|
56
|
-
export { canonicalizeViewRefName, findParentThat, findParentThatIs, getAssemblyHost, getContainingDisplay, getContainingTrack, getContainingView, getEnv, getRenderingServices, getSession, hashCode, objectHash, } from './mstUtils.js';
|
|
55
|
+
export { canonicalizeViewRefName, findParentThat, findParentThatIs, getAssemblyHost, getContainingDisplay, getContainingTrack, getContainingView, getEnv, getRenderingServices, launchOrReplaceView, getSession, hashCode, objectHash, } from './mstUtils.js';
|
|
57
56
|
export { getDialogHost, getNotificationSink, getPaletteHost, getRpcHost, getSessionServices, } from './sessionServices.js';
|
|
58
57
|
// this is recommended in a later comment in
|
|
59
58
|
// https://github.com/electron/electron/issues/2288 for detecting electron in a
|
|
@@ -91,7 +90,6 @@ export { revlist } from './revlist.js';
|
|
|
91
90
|
// without it that is `(0, PR.useLocalStorage) is not a function` when the panel
|
|
92
91
|
// renders. The implementations never went anywhere -- only these lines did.
|
|
93
92
|
export { useCreateOnce, useDebounce, useFinalUnmount, useLocalStorage, useWidthSetter, } from './hooks.js';
|
|
94
|
-
export { renderToStaticMarkup } from './renderToStaticMarkup.js';
|
|
95
93
|
export { codonTable, defaultCodonTable, generateCodonTable, } from './geneticCodes.js';
|
|
96
94
|
export { IUPAC_MOTIF_REGEX, isPalindromic, iupacToRegex, reverseComplementIupac, } from './iupac.js';
|
|
97
95
|
export { parseMotifList, } from './parseMotifList.js';
|
|
@@ -121,6 +119,7 @@ export function isSupportedIndexingAdapter(type = '') {
|
|
|
121
119
|
// needing insertion order builds its own Map (see tree-sidebar's CLAUDE.md).
|
|
122
120
|
export function groupBy(array, predicate) {
|
|
123
121
|
const result = Object.create(null);
|
|
122
|
+
// eslint-disable-next-line unicorn/prefer-group-by -- Object.groupBy types its result Partial, which would widen every caller's Object.values to `T[] | undefined`
|
|
124
123
|
for (const value of array) {
|
|
125
124
|
const t = predicate(value);
|
|
126
125
|
result[t] ??= [];
|
|
@@ -137,17 +136,19 @@ export function testAdapter(fileName, regex, adapterHint, expected) {
|
|
|
137
136
|
export { default as SimpleFeature, isFeature, } from './simpleFeature.js';
|
|
138
137
|
export { saveAs } from './FileSaver/index.js';
|
|
139
138
|
export { saveSvgAsImage, svgHtmlToPngBlob, } from '../svg/saveSvgAsImage.js';
|
|
140
|
-
export { createStatusChannel,
|
|
139
|
+
export { createStatusChannel, createAbortRotation, } from './createAbortRotation.js';
|
|
141
140
|
// `installFetch` is deliberately NOT re-exported here: it reaches `getSession`
|
|
142
141
|
// through `fetchContext.ts`, which imports this barrel, so exporting it makes
|
|
143
142
|
// the barrel initialize itself. Import it from `@jbrowse/core/util/installFetch`.
|
|
144
143
|
export { createSharedSetup } from './cachedSetup.js';
|
|
144
|
+
export { scheduleDetachedDestroy } from './scheduleDetachedDestroy.js';
|
|
145
145
|
export { isDataCurrent } from './isDataCurrent.js';
|
|
146
146
|
export { handleFetchError, isAbortException, makeAbortError, } from './aborting.js';
|
|
147
147
|
export { linkify } from './linkify.js';
|
|
148
|
+
export { isGeneLikeType, isSequenceMatchType } from './featureTypes.js';
|
|
148
149
|
export { locStringsToRegions } from './locStringsToRegions.js';
|
|
149
150
|
export { UnknownRefNameError, assembleLocString, assembleLocStringRaw, assembleLocStrings, compareLocStrings, compareLocs, parseLocString, parseLocStringOneBased, stringify, } from './locString.js';
|
|
150
|
-
export {
|
|
151
|
+
export { checkAbortSignal, createAbortBreakpoint, withAbortCheck, } from './aborting.js';
|
|
151
152
|
export { adapterNeedsAddTrackComponent, addAddTrackComponent, } from './addTrackComponent.js';
|
|
152
153
|
export { adapterConfigFromSpec } from './formatGuessers.js';
|
|
153
154
|
export { UNKNOWN, UNSUPPORTED, addAdapterGuesser, addTrackTypeGuesser, clearFileFromCache, ensureFileHandleReady, expandLooseTrackConfig, findFileHandleIds, generateUnknownTrackConf, generateUnsupportedTrackConf, getBlob, getBlobMap, getConfAssemblyNames, getFileFromCache, getFileName, getRpcSessionId, getTrackAssemblyNames, getTrackName, guessAdapter, guessTrackConf, guessTrackType, hasFileHandlesInCache, hideTrackGeneric, isLooseTrackConfig, makeIndex, makeIndexType, restoreFileHandles, restoreFileHandlesFromSnapshot, setBlobMap, setFileInCache, showTrackGeneric, storeBlobLocation, storeFileHandleLocation, stripFileExtension, stripTrackIds, toggleTrackGeneric, } from './tracks.js';
|
|
@@ -155,5 +156,5 @@ export { getFileHandle, isFileSystemAccessSupported, storeFileHandle, verifyPerm
|
|
|
155
156
|
export { IntervalTree } from './IntervalTree.js';
|
|
156
157
|
export { cmpStr } from './cmpStr.js';
|
|
157
158
|
export { diffTrackConfig, flattenTrackConfigDelta, mergeTrackConfig, } from './trackConfigDelta.js';
|
|
158
|
-
export { BEZIER_CONNECTOR_MAX_REACH_PX, bezierConnectorPath, } from './bezierConnector.js';
|
|
159
|
+
export { BEZIER_CONNECTOR_MAX_REACH_PX, CUBIC_APEX_RATIO, bezierConnectorPath, } from './bezierConnector.js';
|
|
159
160
|
export { diagonalizeRegions, } from './diagonalizeRegions.js';
|
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
import type { FileLocation } from './types/data.ts';
|
|
2
|
-
|
|
3
|
-
* Every conventional spelling of an index file, for the docs that describe this
|
|
4
|
-
* behavior. Kept beside {@link indexCandidateNames}, which is the list actually
|
|
5
|
-
* probed, so the two are edited together.
|
|
6
|
-
*/
|
|
7
|
-
export declare const indexSpellings: {
|
|
8
|
-
name: string;
|
|
9
|
-
writtenBy: string;
|
|
10
|
-
}[];
|
|
11
|
-
/**
|
|
12
|
-
* The index filenames worth looking for beside `fileName`, best guess first.
|
|
13
|
-
*
|
|
14
|
-
* One data file has several names its index might carry, and picking only the
|
|
15
|
-
* first left everyone else with a missing-file error naming a path they never
|
|
16
|
-
* wrote:
|
|
17
|
-
*
|
|
18
|
-
* - `<file>.bai` / `.crai` / `.tbi` is what samtools and tabix write
|
|
19
|
-
* - `<file>.csi` is what htslib writes for a reference over 512 Mb, and on
|
|
20
|
-
* request at any size
|
|
21
|
-
* - `reads.bai` beside `reads.bam` is what Picard and GATK write, in place of
|
|
22
|
-
* samtools' `reads.bam.bai`
|
|
23
|
-
*
|
|
24
|
-
* Empty for a file type that carries no sibling index (BigWig, BigBed, hic),
|
|
25
|
-
* which is how a caller knows not to go looking.
|
|
26
|
-
*
|
|
27
|
-
* `jbrowse-cli` answers the same question in `siblingSidecar`
|
|
28
|
-
* (`commands/add-track-utils/adapter-utils.ts`) rather than calling this: it
|
|
29
|
-
* carries no `@jbrowse/core` dependency, so `npm i -g @jbrowse/cli` stays a CLI
|
|
30
|
-
* rather than a copy of the app. Change one, change the other.
|
|
31
|
-
*/
|
|
32
|
-
export declare function indexCandidateNames(fileName: string): string[];
|
|
2
|
+
export { indexCandidateNames, indexSpellings } from '@jbrowse/add-track-core';
|
|
33
3
|
/**
|
|
34
4
|
* `location` with its filename replaced, i.e. the sibling of a data file.
|
|
35
5
|
*
|
|
@@ -1,66 +1,8 @@
|
|
|
1
|
+
import { indexCandidateNames } from '@jbrowse/add-track-core';
|
|
1
2
|
import { getFileName } from './getFileName.js';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
* probed, so the two are edited together.
|
|
6
|
-
*/
|
|
7
|
-
export const indexSpellings = [
|
|
8
|
-
{
|
|
9
|
-
name: '`<file>.tbi`, `<file>.bai`, `<file>.crai`',
|
|
10
|
-
writtenBy: 'samtools, tabix',
|
|
11
|
-
},
|
|
12
|
-
{
|
|
13
|
-
name: '`<file>.csi`',
|
|
14
|
-
writtenBy: 'htslib, for a reference over 512 Mb and on request at any size',
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
name: '`reads.bai` beside `reads.bam`',
|
|
18
|
-
writtenBy: 'Picard, GATK',
|
|
19
|
-
},
|
|
20
|
-
];
|
|
21
|
-
/**
|
|
22
|
-
* The index filenames worth looking for beside `fileName`, best guess first.
|
|
23
|
-
*
|
|
24
|
-
* One data file has several names its index might carry, and picking only the
|
|
25
|
-
* first left everyone else with a missing-file error naming a path they never
|
|
26
|
-
* wrote:
|
|
27
|
-
*
|
|
28
|
-
* - `<file>.bai` / `.crai` / `.tbi` is what samtools and tabix write
|
|
29
|
-
* - `<file>.csi` is what htslib writes for a reference over 512 Mb, and on
|
|
30
|
-
* request at any size
|
|
31
|
-
* - `reads.bai` beside `reads.bam` is what Picard and GATK write, in place of
|
|
32
|
-
* samtools' `reads.bam.bai`
|
|
33
|
-
*
|
|
34
|
-
* Empty for a file type that carries no sibling index (BigWig, BigBed, hic),
|
|
35
|
-
* which is how a caller knows not to go looking.
|
|
36
|
-
*
|
|
37
|
-
* `jbrowse-cli` answers the same question in `siblingSidecar`
|
|
38
|
-
* (`commands/add-track-utils/adapter-utils.ts`) rather than calling this: it
|
|
39
|
-
* carries no `@jbrowse/core` dependency, so `npm i -g @jbrowse/cli` stays a CLI
|
|
40
|
-
* rather than a copy of the app. Change one, change the other.
|
|
41
|
-
*/
|
|
42
|
-
export function indexCandidateNames(fileName) {
|
|
43
|
-
const lower = fileName.toLowerCase();
|
|
44
|
-
if (lower.endsWith('.bam')) {
|
|
45
|
-
return [
|
|
46
|
-
`${fileName}.bai`,
|
|
47
|
-
`${fileName}.csi`,
|
|
48
|
-
fileName.replace(/\.bam$/i, '.bai'),
|
|
49
|
-
];
|
|
50
|
-
}
|
|
51
|
-
if (lower.endsWith('.cram')) {
|
|
52
|
-
return [`${fileName}.crai`, fileName.replace(/\.cram$/i, '.crai')];
|
|
53
|
-
}
|
|
54
|
-
// the tabix family is spelled by its compression, not its content: a .gz here
|
|
55
|
-
// is a bgzipped VCF/GFF/BED/SAM, all of which index the same two ways. `.bgz`
|
|
56
|
-
// is the same file under the name htslib's own tools give it, so it takes the
|
|
57
|
-
// same candidates — every format guesser accepts `\.b?gz$`, and matching only
|
|
58
|
-
// `.gz` left a `calls.vcf.bgz` with no detection at all
|
|
59
|
-
if (/\.b?gz$/.test(lower)) {
|
|
60
|
-
return [`${fileName}.tbi`, `${fileName}.csi`];
|
|
61
|
-
}
|
|
62
|
-
return [];
|
|
63
|
-
}
|
|
3
|
+
// defined in `@jbrowse/add-track-core`, which is framework-free so `jbrowse-cli`
|
|
4
|
+
// reads the same list; re-exported because this subpath serves them to plugins
|
|
5
|
+
export { indexCandidateNames, indexSpellings } from '@jbrowse/add-track-core';
|
|
64
6
|
/**
|
|
65
7
|
* `location` with its filename replaced, i.e. the sibling of a data file.
|
|
66
8
|
*
|
|
@@ -73,7 +15,7 @@ export function siblingLocation(location, fileName) {
|
|
|
73
15
|
const replaceLast = (path) =>
|
|
74
16
|
// the separator is kept: a Windows local path uses backslashes and a URI
|
|
75
17
|
// never does, so rebuilding with '/' would corrupt one of them
|
|
76
|
-
path.replace(/[^/\\]*$/, fileName);
|
|
18
|
+
path.replace(/[^/\\]*$/, () => fileName);
|
|
77
19
|
if (location.locationType === 'UriLocation') {
|
|
78
20
|
return { ...location, uri: replaceLast(location.uri) };
|
|
79
21
|
}
|