@jbrowse/core 5.0.0-beta.1 → 5.0.0-beta.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1709 -390
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +34 -29
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +37 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +15 -31
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +4 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +12 -25
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +6 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +7 -18
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +49 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +6 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +12 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +8 -5
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +62 -83
- package/esm/BaseFeatureWidget/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +42 -29
- package/esm/BaseFeatureWidget/stateModelFactory.js +98 -98
- package/esm/BaseFeatureWidget/types.d.ts +12 -6
- package/esm/BaseFeatureWidget/util.d.ts +0 -10
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/CorePlugin.js +34 -3
- package/esm/PluginLoader.d.ts +24 -13
- package/esm/PluginLoader.js +167 -51
- package/esm/PluginManager.d.ts +130 -24
- package/esm/PluginManager.js +180 -32
- package/esm/ReExports/MuiDataGridReExports.d.ts +1 -0
- package/esm/ReExports/MuiDataGridReExports.js +2 -2
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +530 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +490 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +68 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +528 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -165
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +3 -0
- package/esm/ReExports/uiStub.js +33 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +11 -0
- package/esm/TextSearch/TextSearchManager.d.ts +27 -13
- package/esm/TextSearch/TextSearchManager.js +77 -36
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +21 -19
- package/esm/assemblyManager/assembly.js +28 -26
- package/esm/assemblyManager/assemblyAdapters.d.ts +1 -1
- package/esm/assemblyManager/assemblyAdapters.js +8 -2
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +31 -90
- package/esm/assemblyManager/assemblyConfigSchema.js +35 -47
- package/esm/assemblyManager/assemblyManager.d.ts +35 -180
- package/esm/assemblyManager/assemblyManager.js +47 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +25 -18
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +78 -49
- package/esm/assemblyManager/geneticCodes.js +2 -5
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +10 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +10 -0
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +1 -1
- package/esm/assemblyManager/loadRefNameMap.js +4 -9
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -0
- package/esm/checkPlugins.d.ts +2 -0
- package/esm/checkPlugins.js +38 -17
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +101 -71
- package/esm/configuration/configurationSchema.js +207 -134
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +150 -60
- package/esm/configuration/configurationSlot.js +103 -75
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/fullConfSnapshot.d.ts +4 -19
- package/esm/configuration/fullConfSnapshot.js +30 -52
- package/esm/configuration/getConf.d.ts +45 -41
- package/esm/configuration/getConf.js +111 -44
- package/esm/configuration/index.d.ts +26 -11
- package/esm/configuration/index.js +16 -7
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/plot.d.ts +61 -0
- package/esm/configuration/plot.js +142 -0
- package/esm/configuration/readConfObject.d.ts +2 -24
- package/esm/configuration/readConfObject.js +20 -63
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +32 -15
- package/esm/configuration/schemaRegistry.js +33 -35
- package/esm/configuration/schemaTypes.d.ts +21 -5
- package/esm/configuration/schemaTypes.js +66 -55
- package/esm/configuration/slotFacade.d.ts +12 -29
- package/esm/configuration/slotFacade.js +44 -23
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +30 -4
- package/esm/configuration/tabixIndexFields.js +21 -4
- package/esm/configuration/tabixShorthand.d.ts +34 -17
- package/esm/configuration/tabixShorthand.js +49 -22
- package/esm/configuration/types.d.ts +182 -43
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +13 -19
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +12 -19
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +40 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -5
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +23 -3
- package/esm/data_adapters/BaseAdapter/index.js +1 -0
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
- package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
- package/esm/data_adapters/BaseAdapter/stats.d.ts +33 -1
- package/esm/data_adapters/BaseAdapter/stats.js +52 -13
- package/esm/data_adapters/BaseAdapter/types.d.ts +8 -12
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +1 -1
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +7 -11
- package/esm/data_adapters/CytobandAdapter/configSchema.js +3 -17
- package/esm/data_adapters/dataAdapterCache.d.ts +19 -2
- package/esm/data_adapters/dataAdapterCache.js +44 -10
- package/esm/data_adapters/getFeatureAdapter.d.ts +6 -4
- package/esm/data_adapters/getFeatureAdapter.js +8 -8
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +7 -9
- package/esm/data_adapters/getSequenceSubAdapter.js +8 -10
- package/esm/pluggableElementTypes/AdapterType.d.ts +8 -8
- package/esm/pluggableElementTypes/AdapterType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +53 -16
- package/esm/pluggableElementTypes/DisplayType.js +28 -12
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +3 -5
- package/esm/pluggableElementTypes/PluggableElementBase.js +3 -5
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +11 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +25 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/ViewType.d.ts +20 -4
- package/esm/pluggableElementTypes/ViewType.js +32 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +6 -0
- package/esm/pluggableElementTypes/WidgetType.js +6 -0
- package/esm/pluggableElementTypes/addMenuItems.d.ts +3 -2
- package/esm/pluggableElementTypes/extendElementType.d.ts +1 -2
- package/esm/pluggableElementTypes/extendElementType.js +9 -5
- package/esm/pluggableElementTypes/index.d.ts +2 -1
- package/esm/pluggableElementTypes/index.js +2 -9
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +19 -9
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +122 -28
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +155 -11
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +65 -16
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +179 -117
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +87 -18
- package/esm/pluggableElementTypes/models/BaseViewModel.js +54 -11
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +15 -11
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +25 -32
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +108 -147
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +96 -73
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +4 -6
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +23 -13
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +80 -48
- package/esm/pluggableElementTypes/models/index.d.ts +2 -3
- package/esm/pluggableElementTypes/models/index.js +2 -3
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +15 -1
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +85 -25
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +4 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +141 -19
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/pluginDefinitions.d.ts +34 -7
- package/esm/pluginDefinitions.js +54 -20
- package/esm/rpc/BaseRpcDriver.d.ts +2 -2
- package/esm/rpc/BaseRpcDriver.js +25 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +18 -6
- package/esm/rpc/RpcClient.js +51 -16
- package/esm/rpc/RpcManager.d.ts +14 -10
- package/esm/rpc/RpcManager.js +11 -1
- package/esm/rpc/RpcRegistry.d.ts +40 -7
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +11 -4
- package/esm/rpc/WebWorkerRpcDriver.js +64 -68
- package/esm/rpc/byteBudget.d.ts +20 -5
- package/esm/rpc/byteBudget.js +16 -5
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +4 -0
- package/esm/rpc/coreRpcMethods.js +4 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
- package/esm/rpc/methods/CoreGetExportData.js +3 -4
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.js +3 -5
- package/esm/rpc/methods/CoreGetRefNames.js +2 -12
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +1 -1
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +13 -0
- package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
- package/esm/rpc/methods/layerFeatures.d.ts +33 -0
- package/esm/rpc/methods/layerFeatures.js +29 -0
- package/esm/svg/SvgExport.js +6 -7
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +28 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +1 -1
- package/esm/svg/svgId.js +1 -1
- package/esm/svg/svgReady.d.ts +9 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +7 -5
- package/esm/svg/trackNames.js +12 -9
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/AddCustomPluginDialog.js +3 -8
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/BaseExportSvgDialog.d.ts +1 -1
- package/esm/ui/CascadingMenu.js +181 -104
- package/esm/ui/DropDownMenu.js +2 -1
- package/esm/ui/ErrorBanner.js +1 -1
- package/esm/ui/ErrorBoundary.d.ts +2 -2
- package/esm/ui/ErrorMessageStackTraceContents.js +2 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +5 -11
- package/esm/ui/ExportSvgDialog.d.ts +1 -1
- package/esm/ui/FileDropZone.js +2 -1
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -50
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.js +26 -21
- package/esm/ui/LoadingOverlay.d.ts +14 -0
- package/esm/ui/LoadingOverlay.js +4 -2
- package/esm/ui/MenuTypes.d.ts +23 -53
- package/esm/ui/MenuTypes.js +3 -0
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +23 -20
- package/esm/ui/PaletteContext.d.ts +10 -5
- package/esm/ui/PaletteContext.js +44 -6
- package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +8 -2
- package/esm/ui/RefNameAutocomplete/util.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/util.js +42 -1
- package/esm/ui/ResizeHandle.d.ts +3 -1
- package/esm/ui/ResizeHandle.js +44 -11
- package/esm/ui/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +14 -35
- package/esm/ui/ScrollZoomToggle.d.ts +4 -27
- package/esm/ui/ScrollZoomToggle.js +34 -51
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +1 -0
- package/esm/ui/SettingsChangesTable.js +49 -11
- package/esm/ui/ShareLinkField.d.ts +1 -3
- package/esm/ui/ShareLinkField.js +13 -40
- package/esm/ui/SizeSliderRow.d.ts +1 -3
- package/esm/ui/SizeSliderRow.js +4 -6
- package/esm/ui/SnackbarModel.js +79 -67
- package/esm/ui/StatusProgressBar.js +2 -2
- package/esm/ui/SvgColorLegend.d.ts +9 -4
- package/esm/ui/SvgColorLegend.js +82 -41
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +5 -4
- package/esm/ui/ViewLoadingScreen.js +8 -32
- package/esm/ui/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colors.d.ts +64 -0
- package/esm/ui/colors.js +230 -1
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +12 -12
- package/esm/ui/index.js +14 -22
- package/esm/ui/launchViewMenu.js +15 -5
- package/esm/ui/legendMenuItem.d.ts +10 -32
- package/esm/ui/legendMenuItem.js +9 -36
- package/esm/ui/legendSpec.d.ts +15 -8
- package/esm/ui/legendSpec.js +14 -23
- package/esm/ui/makeSizeMenu.d.ts +0 -6
- package/esm/ui/makeSizeMenu.js +6 -30
- package/esm/ui/measureLegendText.js +1 -1
- package/esm/ui/menuItemAdornment.d.ts +9 -20
- package/esm/ui/menuItemAdornment.js +10 -32
- package/esm/ui/menuItems.d.ts +2 -7
- package/esm/ui/menuItems.js +1 -6
- package/esm/ui/multiTrackMenuItems.d.ts +6 -0
- package/esm/ui/palette.d.ts +118 -116
- package/esm/ui/palette.js +114 -75
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +43 -119
- package/esm/ui/theme.js +62 -78
- package/esm/ui/toggleMenuItems.d.ts +1 -3
- package/esm/ui/toggleMenuItems.js +6 -5
- package/esm/ui/useAssemblySelection.d.ts +4 -4
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +5 -3
- package/esm/util/Base1DUtils.js +14 -6
- package/esm/util/Base1DViewModel.d.ts +2 -1
- package/esm/util/Base1DViewModel.js +3 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +76 -56
- package/esm/util/TimeTraveller.d.ts +3 -0
- package/esm/util/TimeTraveller.js +34 -2
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +88 -6
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -5
- package/esm/util/addAndShowTrack.d.ts +2 -5
- package/esm/util/addAndShowTrack.js +5 -1
- package/esm/util/addRelativeUris.d.ts +17 -5
- package/esm/util/addRelativeUris.js +46 -10
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/addTrackFromWidget.js +5 -4
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.js +46 -13
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandHeight.d.ts +10 -0
- package/esm/util/bandHeight.js +29 -0
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/baseDisplayConfig.d.ts +8 -0
- package/esm/util/baseDisplayConfig.js +27 -0
- package/esm/util/bezierConnector.d.ts +4 -3
- package/esm/util/bezierConnector.js +38 -45
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -0
- package/esm/util/cacheBudgets.d.ts +22 -19
- package/esm/util/cacheBudgets.js +22 -19
- package/esm/util/cachedSetup.d.ts +16 -6
- package/esm/util/cachedSetup.js +108 -38
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/cellMatches.d.ts +23 -0
- package/esm/util/cellMatches.js +264 -0
- package/esm/util/cellsStep.d.ts +29 -0
- package/esm/util/cellsStep.js +437 -0
- package/esm/util/clampToContig.d.ts +17 -0
- package/esm/util/clampToContig.js +19 -0
- package/esm/util/coarseStripHTML.js +1 -2
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +3 -3
- package/esm/util/colorBits.js +19 -44
- package/esm/util/colorRamp.d.ts +49 -5
- package/esm/util/colorRamp.js +169 -18
- package/esm/util/colorScale.d.ts +156 -0
- package/esm/util/colorScale.js +243 -0
- package/esm/util/colorSchemes.d.ts +21 -0
- package/esm/util/colorSchemes.js +30 -0
- package/esm/util/copyToClipboard.js +8 -1
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +21 -23
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +21 -52
- package/esm/util/createSvgRasterCanvas.d.ts +10 -0
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +8 -13
- package/esm/util/expandLooseSearchIndex.d.ts +19 -0
- package/esm/util/expandLooseSearchIndex.js +29 -0
- package/esm/util/featureTable.d.ts +224 -0
- package/esm/util/featureTable.js +366 -0
- package/esm/util/featureTransforms.d.ts +81 -0
- package/esm/util/featureTransforms.js +1231 -0
- package/esm/util/featureTypes.d.ts +24 -0
- package/esm/util/featureTypes.js +35 -0
- package/esm/util/fetchAndMaybeUnzip.js +16 -9
- package/esm/util/fetchContext.d.ts +7 -8
- package/esm/util/fetchContext.js +3 -3
- package/esm/util/fetchHub.d.ts +4 -2
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchPhases.d.ts +10 -10
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/formatBytes.js +1 -1
- package/esm/util/formatGuessers.d.ts +25 -14
- package/esm/util/formatGuessers.js +42 -27
- package/esm/util/formatRelativeTime.js +1 -1
- package/esm/util/freezeDeep.d.ts +8 -10
- package/esm/util/freezeDeep.js +8 -10
- package/esm/util/getLocationUri.d.ts +2 -1
- package/esm/util/getLocationUri.js +8 -2
- package/esm/util/groupKeys.d.ts +76 -0
- package/esm/util/groupKeys.js +156 -0
- package/esm/util/highlights.d.ts +10 -6
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +31 -2
- package/esm/util/hooks.js +72 -3
- package/esm/util/index.d.ts +11 -11
- package/esm/util/index.js +11 -10
- package/esm/util/indexCandidates.d.ts +1 -31
- package/esm/util/indexCandidates.js +5 -63
- package/esm/util/installFetch.d.ts +77 -37
- package/esm/util/installFetch.js +65 -38
- package/esm/util/installInitAutorun.d.ts +14 -13
- package/esm/util/installInitAutorun.js +17 -17
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -0
- package/esm/util/intervals.js +9 -4
- package/esm/util/io/index.js +22 -15
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -0
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +32 -57
- package/esm/util/jexlFilters.js +31 -29
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/layouts/GranularRectLayout.d.ts +8 -1
- package/esm/util/layouts/GranularRectLayout.js +25 -8
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/lazyWithPreload.d.ts +19 -0
- package/esm/util/lazyWithPreload.js +27 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -0
- package/esm/util/locString.js +5 -2
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +885 -0
- package/esm/util/markEncodingTypes.d.ts +595 -0
- package/esm/util/markEncodingTypes.js +8 -0
- package/esm/util/mst-reflection.d.ts +2 -20
- package/esm/util/mst-reflection.js +3 -53
- package/esm/util/mstUtils.d.ts +31 -23
- package/esm/util/mstUtils.js +39 -24
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.d.ts +5 -0
- package/esm/util/openFeatureWidget.js +2 -2
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -0
- package/esm/util/parentWalk.d.ts +1 -1
- package/esm/util/parentWalk.js +1 -1
- package/esm/util/parseLineByLine.d.ts +4 -5
- package/esm/util/parseLineByLine.js +8 -14
- package/esm/util/pluginStore.d.ts +6 -8
- package/esm/util/pluginStore.js +17 -16
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +22 -22
- package/esm/util/progress.js +27 -26
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +13 -9
- package/esm/util/range.js +17 -8
- package/esm/util/renameRegions.d.ts +26 -6
- package/esm/util/renameRegions.js +68 -54
- package/esm/util/renderToStaticMarkup.js +24 -14
- package/esm/util/rxjs.d.ts +23 -8
- package/esm/util/rxjs.js +61 -15
- package/esm/util/samplesTsv.d.ts +49 -0
- package/esm/util/samplesTsv.js +86 -0
- package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
- package/esm/util/scheduleDetachedDestroy.js +24 -0
- package/esm/util/scrollLatch.d.ts +1 -0
- package/esm/util/scrollLatch.js +8 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -0
- package/esm/util/sessionSharing.d.ts +7 -5
- package/esm/util/sessionSharing.js +23 -23
- package/esm/util/shapeNameList.d.ts +2 -0
- package/esm/util/shapeNameList.js +6 -0
- package/esm/util/shapeNames.d.ts +7 -0
- package/esm/util/shapeNames.js +11 -0
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/springAnimate.js +1 -1
- package/esm/util/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stepTables.d.ts +96 -0
- package/esm/util/stepTables.js +277 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +19 -10
- package/esm/util/tabix.js +19 -14
- package/esm/util/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +26 -26
- package/esm/util/trackConfigDelta.js +63 -47
- package/esm/util/tracks.d.ts +120 -66
- package/esm/util/tracks.js +501 -151
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/data.d.ts +0 -2
- package/esm/util/types/index.d.ts +121 -22
- package/esm/util/types/index.js +9 -0
- package/esm/util/types/mst.d.ts +3 -0
- package/esm/util/types/mst.js +4 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -0
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +53 -0
- package/esm/util/unknownSnapshotKeys.js +76 -0
- package/esm/util/useFeatureSequence.js +5 -5
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +19 -10
- package/esm/util/useFetchPlugins.d.ts +6 -2
- package/esm/util/useFetchPlugins.js +7 -3
- package/esm/util/usePanZoom.js +10 -3
- package/esm/util/usePanelVirtualScroll.d.ts +7 -35
- package/esm/util/usePanelVirtualScroll.js +9 -36
- package/esm/util/useRafCommit.js +1 -0
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -74
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +47 -15
- package/esm/util/viewStatus.js +34 -0
- package/esm/util/wheelZoom.d.ts +7 -1
- package/esm/util/wheelZoom.js +85 -19
- package/esm/util/whenViewSettled.d.ts +55 -8
- package/esm/util/whenViewSettled.js +56 -7
- package/esm/util/withFeatureDetails.js +4 -0
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +75 -24
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -28
- package/esm/configuration/promotableDefaults.d.ts +0 -199
- package/esm/configuration/promotableDefaults.js +0 -326
- package/esm/configuration/promotablePin.d.ts +0 -55
- package/esm/configuration/promotablePin.js +0 -1
- package/esm/configuration/promotableResolve.d.ts +0 -108
- package/esm/configuration/promotableResolve.js +0 -117
- package/esm/configuration/promotableSlots.d.ts +0 -12
- package/esm/configuration/promotableSlots.js +0 -45
- package/esm/configuration/slotShape.d.ts +0 -12
- package/esm/configuration/slotShape.js +0 -84
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/PinAdornment.d.ts +0 -5
- package/esm/ui/PinAdornment.js +0 -79
- package/esm/ui/SvgGradientLegend.d.ts +0 -26
- package/esm/ui/SvgGradientLegend.js +0 -26
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/ui/promotableMenuItems.d.ts +0 -19
- package/esm/ui/promotableMenuItems.js +0 -89
- package/esm/ui/promotablePinCoverage.d.ts +0 -44
- package/esm/ui/promotablePinCoverage.js +0 -87
- package/esm/util/applyInitSettings.d.ts +0 -79
- package/esm/util/applyInitSettings.js +0 -91
- package/esm/util/openDisplays.d.ts +0 -23
- package/esm/util/openDisplays.js +0 -79
- package/esm/util/stopToken.d.ts +0 -211
- package/esm/util/stopToken.js +0 -438
- /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/zoomRange.js} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ordering every in-track group-by shares, whatever partitioned the
|
|
3
|
+
* features: named groups first, then the `''` catch-all a dimension files its
|
|
4
|
+
* unanswerable features under, then the overflow bucket a capped partition
|
|
5
|
+
* merged its tail into.
|
|
6
|
+
*/
|
|
7
|
+
export declare const OVERFLOW_GROUP_KEY = "\0overflow";
|
|
8
|
+
export declare const MAX_GROUPS = 40;
|
|
9
|
+
/**
|
|
10
|
+
* The text a field value groups, colors and labels by: a missing value is the
|
|
11
|
+
* `''` catch-all, a VCF's `.` among them, which `@gmod/vcf` hands over as
|
|
12
|
+
* `[undefined]`, and a multi-valued attribute joins, so two features carrying
|
|
13
|
+
* the same list land together.
|
|
14
|
+
*/
|
|
15
|
+
export declare function valueText(value: unknown): string;
|
|
16
|
+
/**
|
|
17
|
+
* Numbers first by value, then every other key run by run with digit runs by
|
|
18
|
+
* magnitude, so -1 before 1 and chr2 before chr10. The two classes never
|
|
19
|
+
* interleave: a signed or decimal number read run by run orders differently
|
|
20
|
+
* than by value, and letting them mix made the order intransitive.
|
|
21
|
+
*/
|
|
22
|
+
export declare function compareGroupKeys(a: string, b: string): number;
|
|
23
|
+
/**
|
|
24
|
+
* The order a facet stacks its sections in. `domain` is the channel's
|
|
25
|
+
* declared order: the keys it lists come first, in that order, and the rest
|
|
26
|
+
* follow under `compareGroupKeys`. Every categorical channel in the tree
|
|
27
|
+
* reads its domain this way, so a listed value is a placement and an
|
|
28
|
+
* unlisted one is not an error.
|
|
29
|
+
*/
|
|
30
|
+
export declare function groupKeyComparator(domain?: readonly string[]): typeof compareGroupKeys;
|
|
31
|
+
/**
|
|
32
|
+
* The domain a re-pick keeps: a facet set from a menu or dialog names no
|
|
33
|
+
* domain, so one naming the field the current facet already reads carries
|
|
34
|
+
* the current order along. A reorder names its own domain and passes
|
|
35
|
+
* through, an empty one included.
|
|
36
|
+
*/
|
|
37
|
+
export declare function carryGroupDomain<T extends {
|
|
38
|
+
field: string;
|
|
39
|
+
domain?: readonly string[];
|
|
40
|
+
}>(next: T | undefined, current: T | undefined): T | undefined;
|
|
41
|
+
/**
|
|
42
|
+
* The overflow bucket's chip. Says MERGED because that lane is the one entry
|
|
43
|
+
* in a stack that is not a value, and this label is the only place a reader
|
|
44
|
+
* is told the cap fired at all.
|
|
45
|
+
*/
|
|
46
|
+
export declare function overflowLabel(count: number): string;
|
|
47
|
+
/**
|
|
48
|
+
* Which section each key stacks into once the cap applies: the first
|
|
49
|
+
* `MAX_GROUPS` keys in natural order keep their own and the rest fold into
|
|
50
|
+
* the overflow section. The catch-all `''` is held out of the merge, since
|
|
51
|
+
* "lacking the value" is an answer users look for. A domain orders the
|
|
52
|
+
* sections and never decides which exist, so reordering them changes no
|
|
53
|
+
* key's section.
|
|
54
|
+
*/
|
|
55
|
+
export declare function capGroupKeys(keys: Iterable<string>): {
|
|
56
|
+
mergedCount: number;
|
|
57
|
+
sectionOf: (key: string) => string;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* A group's stable identity: its sort key and the label its chip shows.
|
|
61
|
+
*/
|
|
62
|
+
export interface GroupId {
|
|
63
|
+
key: string;
|
|
64
|
+
label: string;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Identity of the key space a facet hands out keys in: its field. A key means
|
|
68
|
+
* nothing on its own, since `''` is both the ungrouped section and every
|
|
69
|
+
* field's catch-all, so anything keyed by group key is dropped when this
|
|
70
|
+
* moves. The `domain` only orders the keys and is no part of the space, so a
|
|
71
|
+
* reorder keeps what a reader hid.
|
|
72
|
+
*/
|
|
73
|
+
export declare function groupKeySpaceOf(facet: {
|
|
74
|
+
field: string;
|
|
75
|
+
domain?: readonly string[];
|
|
76
|
+
} | undefined): string;
|
|
@@ -0,0 +1,156 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The ordering every in-track group-by shares, whatever partitioned the
|
|
3
|
+
* features: named groups first, then the `''` catch-all a dimension files its
|
|
4
|
+
* unanswerable features under, then the overflow bucket a capped partition
|
|
5
|
+
* merged its tail into.
|
|
6
|
+
*/
|
|
7
|
+
// '\0' cannot collide with a real tag value or refName, and the rank below
|
|
8
|
+
// pins it dead last so a merged tail never displaces a named group.
|
|
9
|
+
export const OVERFLOW_GROUP_KEY = '\u0000overflow';
|
|
10
|
+
// Hard ceiling on the sections one grouping may stack; the tail past it merges
|
|
11
|
+
// into the overflow section. A backstop for the dimensions that are not a
|
|
12
|
+
// closed set, a tag or an attribute, whose value space is the file's.
|
|
13
|
+
export const MAX_GROUPS = 40;
|
|
14
|
+
/**
|
|
15
|
+
* The text a field value groups, colors and labels by: a missing value is the
|
|
16
|
+
* `''` catch-all, a VCF's `.` among them, which `@gmod/vcf` hands over as
|
|
17
|
+
* `[undefined]`, and a multi-valued attribute joins, so two features carrying
|
|
18
|
+
* the same list land together.
|
|
19
|
+
*/
|
|
20
|
+
export function valueText(value) {
|
|
21
|
+
return value === undefined || value === null
|
|
22
|
+
? ''
|
|
23
|
+
: Array.isArray(value)
|
|
24
|
+
? value
|
|
25
|
+
.filter(v => v !== undefined && v !== null)
|
|
26
|
+
.map(String)
|
|
27
|
+
.join(',')
|
|
28
|
+
: String(value);
|
|
29
|
+
}
|
|
30
|
+
function groupKeyRank(key) {
|
|
31
|
+
return key === '' ? 1 : key === OVERFLOW_GROUP_KEY ? 2 : 0;
|
|
32
|
+
}
|
|
33
|
+
const NUMERIC = /^-?\d+(\.\d+)?$/;
|
|
34
|
+
const DIGIT_RUNS = /\d+|\D+/g;
|
|
35
|
+
function compareRuns(a, b) {
|
|
36
|
+
const runsA = a.match(DIGIT_RUNS) ?? [];
|
|
37
|
+
const runsB = b.match(DIGIT_RUNS) ?? [];
|
|
38
|
+
const shared = Math.min(runsA.length, runsB.length);
|
|
39
|
+
for (let i = 0; i < shared; i++) {
|
|
40
|
+
const x = runsA[i];
|
|
41
|
+
const y = runsB[i];
|
|
42
|
+
if (x === y) {
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
if (/^\d/.test(x) && /^\d/.test(y)) {
|
|
46
|
+
const nx = Number(x);
|
|
47
|
+
const ny = Number(y);
|
|
48
|
+
if (nx !== ny) {
|
|
49
|
+
return nx < ny ? -1 : 1;
|
|
50
|
+
}
|
|
51
|
+
return x.length < y.length ? -1 : 1;
|
|
52
|
+
}
|
|
53
|
+
return x < y ? -1 : 1;
|
|
54
|
+
}
|
|
55
|
+
return runsA.length - runsB.length;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Numbers first by value, then every other key run by run with digit runs by
|
|
59
|
+
* magnitude, so -1 before 1 and chr2 before chr10. The two classes never
|
|
60
|
+
* interleave: a signed or decimal number read run by run orders differently
|
|
61
|
+
* than by value, and letting them mix made the order intransitive.
|
|
62
|
+
*/
|
|
63
|
+
export function compareGroupKeys(a, b) {
|
|
64
|
+
const rankDiff = groupKeyRank(a) - groupKeyRank(b);
|
|
65
|
+
if (rankDiff !== 0 || a === b) {
|
|
66
|
+
return rankDiff;
|
|
67
|
+
}
|
|
68
|
+
const numA = NUMERIC.test(a);
|
|
69
|
+
const numB = NUMERIC.test(b);
|
|
70
|
+
if (numA !== numB) {
|
|
71
|
+
return numA ? -1 : 1;
|
|
72
|
+
}
|
|
73
|
+
if (numA) {
|
|
74
|
+
const diff = Number(a) - Number(b);
|
|
75
|
+
if (diff !== 0) {
|
|
76
|
+
return diff < 0 ? -1 : 1;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
return compareRuns(a, b);
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* The order a facet stacks its sections in. `domain` is the channel's
|
|
83
|
+
* declared order: the keys it lists come first, in that order, and the rest
|
|
84
|
+
* follow under `compareGroupKeys`. Every categorical channel in the tree
|
|
85
|
+
* reads its domain this way, so a listed value is a placement and an
|
|
86
|
+
* unlisted one is not an error.
|
|
87
|
+
*/
|
|
88
|
+
export function groupKeyComparator(domain) {
|
|
89
|
+
if (!domain?.length) {
|
|
90
|
+
return compareGroupKeys;
|
|
91
|
+
}
|
|
92
|
+
const rank = new Map();
|
|
93
|
+
domain.forEach((key, i) => {
|
|
94
|
+
if (!rank.has(key)) {
|
|
95
|
+
rank.set(key, i);
|
|
96
|
+
}
|
|
97
|
+
});
|
|
98
|
+
return (a, b) => {
|
|
99
|
+
const ra = rank.get(a) ?? Infinity;
|
|
100
|
+
const rb = rank.get(b) ?? Infinity;
|
|
101
|
+
return ra !== rb ? (ra < rb ? -1 : 1) : compareGroupKeys(a, b);
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
/**
|
|
105
|
+
* The domain a re-pick keeps: a facet set from a menu or dialog names no
|
|
106
|
+
* domain, so one naming the field the current facet already reads carries
|
|
107
|
+
* the current order along. A reorder names its own domain and passes
|
|
108
|
+
* through, an empty one included.
|
|
109
|
+
*/
|
|
110
|
+
export function carryGroupDomain(next, current) {
|
|
111
|
+
return next !== undefined &&
|
|
112
|
+
next.domain === undefined &&
|
|
113
|
+
current?.domain !== undefined &&
|
|
114
|
+
next.field === current.field
|
|
115
|
+
? { ...next, domain: current.domain }
|
|
116
|
+
: next;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* The overflow bucket's chip. Says MERGED because that lane is the one entry
|
|
120
|
+
* in a stack that is not a value, and this label is the only place a reader
|
|
121
|
+
* is told the cap fired at all.
|
|
122
|
+
*/
|
|
123
|
+
export function overflowLabel(count) {
|
|
124
|
+
return `${count} merged values`;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Which section each key stacks into once the cap applies: the first
|
|
128
|
+
* `MAX_GROUPS` keys in natural order keep their own and the rest fold into
|
|
129
|
+
* the overflow section. The catch-all `''` is held out of the merge, since
|
|
130
|
+
* "lacking the value" is an answer users look for. A domain orders the
|
|
131
|
+
* sections and never decides which exist, so reordering them changes no
|
|
132
|
+
* key's section.
|
|
133
|
+
*/
|
|
134
|
+
export function capGroupKeys(keys) {
|
|
135
|
+
const ordered = [...new Set(keys)].sort(compareGroupKeys);
|
|
136
|
+
const hasUntagged = ordered.includes('');
|
|
137
|
+
const named = ordered.filter(key => key !== '');
|
|
138
|
+
const merged = ordered.length > MAX_GROUPS
|
|
139
|
+
? named.slice(MAX_GROUPS - (hasUntagged ? 2 : 1))
|
|
140
|
+
: [];
|
|
141
|
+
const mergedSet = new Set(merged);
|
|
142
|
+
return {
|
|
143
|
+
mergedCount: merged.length,
|
|
144
|
+
sectionOf: (key) => (mergedSet.has(key) ? OVERFLOW_GROUP_KEY : key),
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
/**
|
|
148
|
+
* Identity of the key space a facet hands out keys in: its field. A key means
|
|
149
|
+
* nothing on its own, since `''` is both the ungrouped section and every
|
|
150
|
+
* field's catch-all, so anything keyed by group key is dropped when this
|
|
151
|
+
* moves. The `domain` only orders the keys and is no part of the space, so a
|
|
152
|
+
* reorder keeps what a reader hid.
|
|
153
|
+
*/
|
|
154
|
+
export function groupKeySpaceOf(facet) {
|
|
155
|
+
return facet?.field ?? '';
|
|
156
|
+
}
|
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';
|