@jbrowse/core 4.3.0 → 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 +1994 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +14 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +36 -23
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +10 -7
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +124 -21
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +12 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +19 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +18 -23
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +9 -6
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +33 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +19 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +8 -6
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +7 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +15 -20
- 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 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +9 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +35 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +62 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +69 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +22 -0
- package/esm/BaseFeatureWidget/formatDetails.js +82 -0
- package/esm/BaseFeatureWidget/index.d.ts +4 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +102 -71
- package/esm/BaseFeatureWidget/stateModelFactory.js +162 -63
- package/esm/BaseFeatureWidget/types.d.ts +15 -8
- package/esm/BaseFeatureWidget/util.d.ts +2 -37
- package/esm/BaseFeatureWidget/util.js +4 -85
- package/esm/CorePlugin.js +12 -7
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +55 -44
- package/esm/PluginLoader.js +290 -90
- package/esm/PluginManager.d.ts +476 -57
- package/esm/PluginManager.js +480 -91
- package/esm/ReExports/MuiDataGridReExports.d.ts +3 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- 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/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +433 -160
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -146
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/registry.d.ts +3 -0
- package/esm/ReExports/registry.js +46 -0
- 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/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +30 -36
- package/esm/TextSearch/TextSearchManager.js +138 -44
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +310 -35
- package/esm/assemblyManager/assembly.js +554 -263
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +24 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +135 -19
- package/esm/assemblyManager/assemblyConfigSchema.js +205 -23
- package/esm/assemblyManager/assemblyManager.d.ts +586 -323
- package/esm/assemblyManager/assemblyManager.js +352 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +39 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +114 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +44 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +19 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +22 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +75 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +13 -0
- package/esm/checkPlugins.js +98 -0
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +194 -29
- package/esm/configuration/configurationSchema.js +439 -145
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +373 -30
- package/esm/configuration/configurationSlot.js +231 -224
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +41 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +54 -0
- package/esm/configuration/formatDetailsConfigSchema.js +87 -0
- package/esm/configuration/fullConfSnapshot.d.ts +13 -0
- package/esm/configuration/fullConfSnapshot.js +44 -0
- package/esm/configuration/getConf.d.ts +92 -0
- package/esm/configuration/getConf.js +141 -0
- package/esm/configuration/index.d.ts +32 -3
- package/esm/configuration/index.js +27 -2
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +14 -0
- package/esm/configuration/mergeFormatCallbacks.js +27 -0
- package/esm/configuration/readConfObject.d.ts +34 -0
- package/esm/configuration/readConfObject.js +118 -0
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +52 -0
- package/esm/configuration/schemaRegistry.js +48 -0
- package/esm/configuration/schemaTypes.d.ts +39 -0
- package/esm/configuration/schemaTypes.js +105 -0
- package/esm/configuration/slotFacade.d.ts +65 -0
- package/esm/configuration/slotFacade.js +110 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +70 -0
- package/esm/configuration/tabixIndexFields.js +62 -0
- package/esm/configuration/tabixShorthand.d.ts +51 -0
- package/esm/configuration/tabixShorthand.js +72 -0
- package/esm/configuration/types.d.ts +315 -13
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +19 -11
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +19 -18
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +158 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +164 -29
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +28 -6
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- 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 +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -13
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +5 -5
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +34 -6
- package/esm/data_adapters/CytobandAdapter/configSchema.js +47 -17
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +53 -2
- package/esm/data_adapters/dataAdapterCache.js +99 -25
- package/esm/data_adapters/getFeatureAdapter.d.ts +24 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +19 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +42 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +57 -7
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +54 -14
- package/esm/pluggableElementTypes/DisplayType.js +30 -7
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +11 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +11 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +142 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +279 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +18 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +22 -5
- package/esm/pluggableElementTypes/ViewType.js +40 -5
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +88 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +29 -0
- package/esm/pluggableElementTypes/extendElementType.js +72 -0
- package/esm/pluggableElementTypes/index.d.ts +8 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +80 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +643 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +230 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +246 -37
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +416 -107
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +236 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +154 -16
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +169 -25
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +178 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +26 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +31 -17
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +142 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +215 -90
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +111 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +54 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +50 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +147 -0
- package/esm/pluggableElementTypes/models/index.d.ts +5 -3
- package/esm/pluggableElementTypes/models/index.js +9 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +48 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +114 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +10 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +272 -100
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +225 -0
- package/esm/pluginDefinitions.js +254 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +68 -106
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +23 -29
- package/esm/rpc/RpcClient.d.ts +50 -0
- package/esm/rpc/RpcClient.js +189 -0
- package/esm/rpc/RpcManager.d.ts +120 -27
- package/esm/rpc/RpcManager.js +187 -50
- package/esm/rpc/RpcRegistry.d.ts +298 -0
- package/esm/rpc/RpcServer.d.ts +43 -0
- package/esm/rpc/RpcServer.js +242 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +78 -24
- package/esm/rpc/WebWorkerRpcDriver.js +311 -30
- package/esm/rpc/byteBudget.d.ts +64 -0
- package/esm/rpc/byteBudget.js +61 -0
- package/esm/rpc/configSchema.d.ts +13 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +6 -5
- package/esm/rpc/coreRpcMethods.js +13 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- 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.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +25 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +14 -18
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +16 -15
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- 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/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +52 -0
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -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/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +138 -0
- package/esm/svg/svgReady.js +165 -0
- package/esm/svg/trackNames.d.ts +29 -0
- package/esm/svg/trackNames.js +34 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +10 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +56 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +446 -42
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +6 -5
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +5 -4
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +51 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +129 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +436 -64
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +11 -3
- package/esm/ui/HoverMenu.js +34 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +26 -0
- package/esm/ui/JexlFilterDialog.js +167 -0
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +30 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +139 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +95 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +10 -0
- package/esm/ui/MonospaceTextField.js +40 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +90 -0
- package/esm/ui/PaletteContext.js +142 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +21 -0
- package/esm/ui/RefNameAutocomplete/index.js +84 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +62 -0
- package/esm/ui/RefNameAutocomplete/util.js +209 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +15 -7
- package/esm/ui/ResizeHandle.js +73 -53
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +41 -0
- package/esm/ui/ScrollEdgeShadow.js +77 -0
- package/esm/ui/ScrollZoomToggle.d.ts +15 -0
- package/esm/ui/ScrollZoomToggle.js +75 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +15 -0
- package/esm/ui/SettingsChangesTable.js +87 -0
- package/esm/ui/ShareLinkField.d.ts +4 -0
- package/esm/ui/ShareLinkField.js +15 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +14 -0
- package/esm/ui/SizeSliderRow.js +48 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +96 -52
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +18 -0
- package/esm/ui/SvgColorLegend.js +106 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +24 -0
- package/esm/ui/VerticalScrollbar.js +104 -0
- package/esm/ui/ViewLoadingScreen.d.ts +25 -0
- package/esm/ui/ViewLoadingScreen.js +52 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +125 -8
- package/esm/ui/colors.js +364 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +23 -0
- package/esm/ui/hoverBoxStyle.js +28 -0
- package/esm/ui/index.d.ts +77 -5
- package/esm/ui/index.js +83 -20
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +46 -0
- package/esm/ui/legendMenuItem.d.ts +16 -0
- package/esm/ui/legendMenuItem.js +17 -0
- package/esm/ui/legendSpec.d.ts +69 -0
- package/esm/ui/legendSpec.js +69 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +24 -0
- package/esm/ui/makeSizeMenu.js +58 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +22 -0
- package/esm/ui/menuItemAdornment.js +28 -0
- package/esm/ui/menuItems.d.ts +23 -0
- package/esm/ui/menuItems.js +21 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +25 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +561 -0
- package/esm/ui/palette.js +785 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +268 -30
- package/esm/ui/theme.js +250 -350
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +61 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +207 -17
- package/esm/util/Base1DUtils.js +316 -173
- package/esm/util/Base1DViewModel.d.ts +99 -21
- package/esm/util/Base1DViewModel.js +151 -41
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +83 -0
- package/esm/util/SvgCanvas.js +520 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +56 -4
- package/esm/util/aborting.js +112 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +40 -0
- package/esm/util/addAndShowTrack.d.ts +19 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +29 -0
- package/esm/util/addRelativeUris.js +78 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +91 -0
- package/esm/util/addTrackFromWidget.js +91 -0
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +135 -49
- package/esm/util/animationAllowed.d.ts +26 -0
- package/esm/util/animationAllowed.js +35 -0
- package/esm/util/applyRowResizeWheel.d.ts +15 -0
- package/esm/util/applyRowResizeWheel.js +23 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +63 -0
- package/esm/util/bandHeight.js +85 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +15 -0
- package/esm/util/bezierConnector.js +101 -0
- package/esm/util/bgzfWorkerPool.d.ts +24 -0
- package/esm/util/bgzfWorkerPool.js +27 -0
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +43 -0
- package/esm/util/clampToContig.js +47 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +2 -15
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +7 -2
- package/esm/util/color/index.d.ts +84 -3
- package/esm/util/color/index.js +197 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +155 -0
- package/esm/util/colorRamp.d.ts +81 -0
- package/esm/util/colorRamp.js +244 -0
- 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/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createAbortRotation.d.ts +115 -0
- package/esm/util/createAbortRotation.js +116 -0
- package/esm/util/createSvgRasterCanvas.d.ts +17 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +22 -0
- package/esm/util/diagonalizeRegions.js +187 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- 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.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +71 -0
- package/esm/util/fetchContext.d.ts +81 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +17 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +4 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +26 -0
- package/esm/util/freezeDeep.js +39 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/groupKeys.d.ts +77 -0
- package/esm/util/groupKeys.js +155 -0
- package/esm/util/highlights.d.ts +25 -0
- package/esm/util/highlights.js +87 -0
- package/esm/util/hooks.d.ts +189 -0
- package/esm/util/hooks.js +485 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +137 -853
- package/esm/util/indexCandidates.d.ts +20 -0
- package/esm/util/indexCandidates.js +43 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +234 -0
- package/esm/util/installFetch.js +205 -0
- package/esm/util/installInitAutorun.d.ts +63 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +120 -12
- package/esm/util/isDataCurrent.d.ts +9 -0
- package/esm/util/isDataCurrent.js +12 -0
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +146 -19
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +68 -0
- package/esm/util/jexlFilters.js +61 -0
- package/esm/util/jexlStrings.d.ts +21 -1
- package/esm/util/jexlStrings.js +20 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +20 -25
- package/esm/util/layouts/GranularRectLayout.js +116 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- 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/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- 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/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +3 -11
- package/esm/util/mst-reflection.js +3 -52
- package/esm/util/mstUtils.d.ts +97 -0
- package/esm/util/mstUtils.js +137 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +27 -0
- package/esm/util/numericUtils.js +143 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openFeatureWidget.d.ts +38 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +44 -2
- package/esm/util/parseLineByLine.js +150 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +111 -0
- package/esm/util/pluginStore.js +254 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +821 -0
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +41 -0
- package/esm/util/renameRegions.js +143 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +60 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -2
- package/esm/util/rxjs.js +85 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- 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 +5 -0
- package/esm/util/scrollLatch.js +67 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +40 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- 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 +111 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stepTables.d.ts +82 -0
- package/esm/util/stepTables.js +243 -0
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +18 -0
- package/esm/util/svgColorProps.js +55 -0
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +125 -0
- package/esm/util/tabix.js +148 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +25 -0
- package/esm/util/timeGate.js +78 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +206 -0
- package/esm/util/tracks.d.ts +431 -30
- package/esm/util/tracks.js +952 -185
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +73 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +459 -121
- package/esm/util/types/index.js +96 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +74 -47
- package/esm/util/types/mst.js +31 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +51 -0
- package/esm/util/unknownSnapshotKeys.js +82 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +55 -77
- package/esm/util/useFetch.d.ts +55 -0
- package/esm/util/useFetch.js +197 -0
- package/esm/util/useFetchPlugins.d.ts +16 -0
- package/esm/util/useFetchPlugins.js +18 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +9 -0
- package/esm/util/usePanelVirtualScroll.js +15 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +9 -0
- package/esm/util/useRowVirtualScroll.js +22 -0
- package/esm/util/useVirtualScrollWheel.d.ts +23 -0
- package/esm/util/useVirtualScrollWheel.js +74 -0
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +90 -0
- package/esm/util/viewStatus.js +54 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +65 -0
- package/esm/util/wheelZoom.js +297 -0
- package/esm/util/whenViewSettled.d.ts +74 -0
- package/esm/util/whenViewSettled.js +77 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +290 -820
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -7
- 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 -9
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/stopToken.d.ts +0 -19
- package/esm/util/stopToken.js +0 -90
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
- /package/esm/data_adapters/BaseAdapter/{BaseOptions.js → zoomRange.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → rpc/RpcRegistry.js} +0 -0
|
@@ -1,328 +1,619 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
import
|
|
5
|
-
import {
|
|
6
|
-
import
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
'rgb(0, 165, 0)',
|
|
22
|
-
'rgb(53, 128, 0)',
|
|
23
|
-
'rgb(0, 0, 204)',
|
|
24
|
-
'rgb(96, 145, 242)',
|
|
25
|
-
'rgb(107, 142, 178)',
|
|
26
|
-
'rgb(0, 165, 165)',
|
|
27
|
-
'rgb(122, 153, 153)',
|
|
28
|
-
'rgb(153, 0, 204)',
|
|
29
|
-
'rgb(204, 51, 255)',
|
|
30
|
-
'rgb(173, 130, 216)',
|
|
31
|
-
'rgb(102, 102, 102)',
|
|
32
|
-
'rgb(145, 145, 145)',
|
|
33
|
-
'rgb(142, 142, 142)',
|
|
34
|
-
'rgb(142, 142, 107)',
|
|
35
|
-
'rgb(96, 163, 48)',
|
|
36
|
-
];
|
|
37
|
-
async function loadRefNameMap(assembly, adapterConfig, options, stopToken) {
|
|
38
|
-
const { sessionId, sequenceAdapter } = options;
|
|
39
|
-
await when(() => !!(assembly.regions && assembly.refNameAliases), {
|
|
40
|
-
name: 'when assembly ready',
|
|
41
|
-
});
|
|
42
|
-
const refNames = (await assembly.rpcManager.call(sessionId || 'assemblyRpc', 'CoreGetRefNames', {
|
|
43
|
-
adapterConfig,
|
|
44
|
-
sequenceAdapter,
|
|
45
|
-
stopToken,
|
|
46
|
-
...options,
|
|
47
|
-
}, { timeout: 1000000 }));
|
|
48
|
-
const { refNameAliases } = assembly;
|
|
49
|
-
if (!refNameAliases) {
|
|
50
|
-
throw new Error(`error loading assembly ${assembly.name}'s refNameAliases`);
|
|
51
|
-
}
|
|
52
|
-
const refNameMap = Object.fromEntries(refNames.map(name => {
|
|
53
|
-
checkRefName(name);
|
|
54
|
-
return [assembly.getCanonicalRefName(name), name];
|
|
55
|
-
}));
|
|
56
|
-
return {
|
|
57
|
-
forwardMap: refNameMap,
|
|
58
|
-
reverseMap: Object.fromEntries(Object.entries(refNameMap).map(([canonicalName, adapterName]) => [
|
|
59
|
-
adapterName,
|
|
60
|
-
canonicalName,
|
|
61
|
-
])),
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
function checkRefName(refName) {
|
|
65
|
-
if (!refNameRegex.test(refName)) {
|
|
66
|
-
throw new Error(`Encountered invalid refName: "${refName}"`);
|
|
67
|
-
}
|
|
68
|
-
}
|
|
1
|
+
import { addDisposer, getParent, isAlive, types, } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { onBecomeObserved } from 'mobx';
|
|
3
|
+
import { getConf } from '../configuration/index.js';
|
|
4
|
+
import QuickLRU from '../util/QuickLRU/index.js';
|
|
5
|
+
import { createStatusFanOut, createStatusWindow, statusFraction, statusMessageText, statusSource, } from '../util/progress.js';
|
|
6
|
+
import { getAssemblyRegions, getCytobands, getRefNameAliases, } from './assemblyAdapters.js';
|
|
7
|
+
import { getGeneticCodesFromFile, lookupGeneticCodeId } from './geneticCodes.js';
|
|
8
|
+
import { loadRefNameMap } from './loadRefNameMap.js';
|
|
9
|
+
import { defaultRefNameColors } from './refNameColors.js';
|
|
10
|
+
import { refNameMapKey } from './refNameMapKey.js';
|
|
11
|
+
import { buildRefNameMaps, checkRefName, groupNamesByCanonicalRefName, } from './refNameMaps.js';
|
|
12
|
+
// re-exported so `@jbrowse/core/assemblyManager/assembly` stays the public entry
|
|
13
|
+
// point for these, as plugins import them from here
|
|
14
|
+
export { getSequenceAdapterConfig } from './getSequenceAdapterConfig.js';
|
|
15
|
+
export { buildRefNameMaps } from './refNameMaps.js';
|
|
16
|
+
export { lookupGeneticCodeId } from './geneticCodes.js';
|
|
17
|
+
export { refNameMismatchMessage } from './refNameMismatch.js';
|
|
18
|
+
/**
|
|
19
|
+
* #stateModel Assembly
|
|
20
|
+
*/
|
|
69
21
|
export default function assemblyFactory(assemblyConfigType, pluginManager) {
|
|
70
|
-
const adapterLoads = new AbortablePromiseCache({
|
|
71
|
-
cache: new QuickLRU({ maxSize: 1000 }),
|
|
72
|
-
async fill(args, _stopToken, statusCallback) {
|
|
73
|
-
const { adapterConf, self, options } = args;
|
|
74
|
-
let sequenceAdapter;
|
|
75
|
-
try {
|
|
76
|
-
const adapterConfig = self.configuration?.sequence?.adapter;
|
|
77
|
-
sequenceAdapter = adapterConfig ? getSnapshot(adapterConfig) : undefined;
|
|
78
|
-
}
|
|
79
|
-
catch (e) {
|
|
80
|
-
}
|
|
81
|
-
return loadRefNameMap(self, adapterConf, {
|
|
82
|
-
...options,
|
|
83
|
-
statusCallback,
|
|
84
|
-
sequenceAdapter,
|
|
85
|
-
});
|
|
86
|
-
},
|
|
87
|
-
});
|
|
88
22
|
return types
|
|
89
23
|
.model({
|
|
24
|
+
/**
|
|
25
|
+
* #property
|
|
26
|
+
*/
|
|
90
27
|
configuration: types.safeReference(assemblyConfigType),
|
|
91
28
|
})
|
|
92
|
-
.volatile(() =>
|
|
93
|
-
error
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
29
|
+
.volatile(() => {
|
|
30
|
+
// typed local so `error` is `unknown` (a type assertion here gets stripped
|
|
31
|
+
// by no-unnecessary-type-assertion)
|
|
32
|
+
const error = undefined;
|
|
33
|
+
return {
|
|
34
|
+
/**
|
|
35
|
+
* #volatile
|
|
36
|
+
*/
|
|
37
|
+
error,
|
|
38
|
+
/**
|
|
39
|
+
* #volatile
|
|
40
|
+
*/
|
|
41
|
+
loadingP: undefined,
|
|
42
|
+
// per-instance promise cache for refName maps. Kept on the instance,
|
|
43
|
+
// not the factory closure, because each map resolves an adapter's
|
|
44
|
+
// contigs against THIS assembly's aliases: a closure cache shared by
|
|
45
|
+
// all assemblies would return the wrong map when the same adapter
|
|
46
|
+
// config is queried under two assemblies (e.g. comparative views).
|
|
47
|
+
// Loads are never aborted, so memoizing the promise (keyed by adapter
|
|
48
|
+
// config) is enough to dedupe concurrent calls.
|
|
49
|
+
adapterLoads: new QuickLRU({
|
|
50
|
+
maxSize: 1000,
|
|
51
|
+
}),
|
|
52
|
+
/**
|
|
53
|
+
* #volatile
|
|
54
|
+
*/
|
|
55
|
+
regions: undefined,
|
|
56
|
+
/**
|
|
57
|
+
* #volatile
|
|
58
|
+
*/
|
|
59
|
+
refNameAliases: undefined,
|
|
60
|
+
/**
|
|
61
|
+
* #volatile
|
|
62
|
+
* Maps canonical refName -> sequence adapter refName (in FASTA).
|
|
63
|
+
* These may differ when refNameAliases with override:true remap names.
|
|
64
|
+
*/
|
|
65
|
+
canonicalToSeqAdapterRefNames: undefined,
|
|
66
|
+
/**
|
|
67
|
+
* #volatile
|
|
68
|
+
*/
|
|
69
|
+
cytobands: undefined,
|
|
70
|
+
/**
|
|
71
|
+
* #volatile
|
|
72
|
+
* refName -> NCBI genetic-code id loaded from `geneticCodesLocation`;
|
|
73
|
+
* merged with (and overridden by) the inline `geneticCodes` config slot
|
|
74
|
+
*/
|
|
75
|
+
loadedGeneticCodes: undefined,
|
|
76
|
+
/**
|
|
77
|
+
* #volatile
|
|
78
|
+
* Precomputed in loadPre to avoid expensive synchronous computation
|
|
79
|
+
* when MobX triggers the autorun after setLoaded
|
|
80
|
+
*/
|
|
81
|
+
lowerCaseRefNameAliases: undefined,
|
|
82
|
+
/**
|
|
83
|
+
* #volatile
|
|
84
|
+
* What the in-flight load is doing ("Downloading chromosome sizes"), for a
|
|
85
|
+
* view that is showing a spinner while it waits. Same split as
|
|
86
|
+
* BaseDisplayModel's status fields, so the same LoadingProgress UI
|
|
87
|
+
* renders both.
|
|
88
|
+
*/
|
|
89
|
+
statusMessage: undefined,
|
|
90
|
+
/**
|
|
91
|
+
* #volatile
|
|
92
|
+
* Fraction in [0,1] when the load reports determinate progress
|
|
93
|
+
*/
|
|
94
|
+
statusProgress: undefined,
|
|
95
|
+
/**
|
|
96
|
+
* #volatile
|
|
97
|
+
* The URL the in-flight phase is fetching, when it named one. A load
|
|
98
|
+
* that hangs shows this and not the label: "Downloading chromosome
|
|
99
|
+
* aliases" forever says nothing a user can act on, and the address of
|
|
100
|
+
* the server that stopped answering does.
|
|
101
|
+
*/
|
|
102
|
+
statusSource: undefined,
|
|
103
|
+
/**
|
|
104
|
+
* #volatile
|
|
105
|
+
* adapter cache key -> the empty-intersection verdict `loadRefNameMap`
|
|
106
|
+
* reached for that adapter under this assembly. Sits beside
|
|
107
|
+
* `adapterLoads` and is keyed the same way, so it inherits that cache's
|
|
108
|
+
* once-per-(assembly, adapter config) property: the diagnostic is
|
|
109
|
+
* recorded exactly as often as the map is built, which is once.
|
|
110
|
+
*
|
|
111
|
+
* Written by replacing the Map rather than mutating it — a Map inside a
|
|
112
|
+
* volatile is one observable, not a deeply observable collection, so a
|
|
113
|
+
* `.set()` would leave every reader stale.
|
|
114
|
+
*/
|
|
115
|
+
refNameMismatches: new Map(),
|
|
116
|
+
};
|
|
117
|
+
})
|
|
100
118
|
.views(self => ({
|
|
119
|
+
/**
|
|
120
|
+
* #method
|
|
121
|
+
*/
|
|
101
122
|
getConf(arg) {
|
|
102
123
|
return self.configuration ? getConf(self, arg) : undefined;
|
|
103
124
|
},
|
|
104
|
-
get lowerCaseRefNameAliases() {
|
|
105
|
-
return self.refNameAliases
|
|
106
|
-
? Object.fromEntries(Object.entries(self.refNameAliases).map(([key, val]) => {
|
|
107
|
-
return [key.toLowerCase(), val];
|
|
108
|
-
}))
|
|
109
|
-
: undefined;
|
|
110
|
-
},
|
|
111
125
|
}))
|
|
112
126
|
.views(self => ({
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
},
|
|
127
|
+
/**
|
|
128
|
+
* #getter
|
|
129
|
+
*/
|
|
117
130
|
get name() {
|
|
118
131
|
return self.getConf('name') || '';
|
|
119
132
|
},
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
},
|
|
133
|
+
/**
|
|
134
|
+
* #getter
|
|
135
|
+
*/
|
|
124
136
|
get aliases() {
|
|
125
|
-
return self.getConf('aliases')
|
|
137
|
+
return self.getConf('aliases') ?? [];
|
|
126
138
|
},
|
|
139
|
+
/**
|
|
140
|
+
* #getter
|
|
141
|
+
*/
|
|
127
142
|
get displayName() {
|
|
128
|
-
return self.getConf('displayName') ||
|
|
143
|
+
return self.getConf('displayName') || this.name;
|
|
144
|
+
},
|
|
145
|
+
/**
|
|
146
|
+
* #getter
|
|
147
|
+
*/
|
|
148
|
+
get refNameColors() {
|
|
149
|
+
const colors = self.getConf('refNameColors') ?? [];
|
|
150
|
+
return colors.length === 0 ? defaultRefNameColors : colors;
|
|
151
|
+
},
|
|
152
|
+
}))
|
|
153
|
+
.views(self => ({
|
|
154
|
+
/**
|
|
155
|
+
* #getter
|
|
156
|
+
*/
|
|
157
|
+
get allAliases() {
|
|
158
|
+
return [self.name, ...self.aliases];
|
|
129
159
|
},
|
|
160
|
+
/**
|
|
161
|
+
* #method
|
|
162
|
+
*/
|
|
130
163
|
hasName(name) {
|
|
131
164
|
return this.allAliases.includes(name);
|
|
132
165
|
},
|
|
133
|
-
|
|
134
|
-
|
|
166
|
+
}))
|
|
167
|
+
.actions(self => ({
|
|
168
|
+
/**
|
|
169
|
+
* #action
|
|
170
|
+
* Records what the in-flight load is doing. Its own actions block (rather
|
|
171
|
+
* than sitting next to setLoaded) so loadPre can hand `self.setStatus` to
|
|
172
|
+
* the adapters as a plain callback: it fires after awaits, outside the
|
|
173
|
+
* action that started the load, and a volatile write there has to go
|
|
174
|
+
* through an action of its own.
|
|
175
|
+
*/
|
|
176
|
+
setStatus(status) {
|
|
177
|
+
self.statusMessage = statusMessageText(status);
|
|
178
|
+
self.statusProgress = statusFraction(status);
|
|
179
|
+
self.statusSource = statusSource(status);
|
|
180
|
+
},
|
|
181
|
+
/**
|
|
182
|
+
* #action
|
|
183
|
+
* Record that an adapter's reference names and this assembly's have
|
|
184
|
+
* nothing in common. Diagnostic only: `loadRefNameMap` still returns its
|
|
185
|
+
* map and the track still loads, because a wrong guess here must not take
|
|
186
|
+
* a working track away from anyone.
|
|
187
|
+
*/
|
|
188
|
+
setRefNameMismatch(adapterCacheKey, mismatch) {
|
|
189
|
+
self.refNameMismatches = new Map(self.refNameMismatches).set(adapterCacheKey, mismatch);
|
|
190
|
+
},
|
|
191
|
+
}))
|
|
192
|
+
.actions(self => ({
|
|
193
|
+
/**
|
|
194
|
+
* #action
|
|
195
|
+
* Applies all load-time state in a single transaction so dependent
|
|
196
|
+
* autoruns fire once, with the precomputed lowercase/name lookups already
|
|
197
|
+
* in place by the time refNameAliases becomes observable.
|
|
198
|
+
*/
|
|
199
|
+
setLoaded({ regions, refNameAliases, lowerCaseRefNameAliases, canonicalToSeqAdapterRefNames, cytobands, geneticCodes, }) {
|
|
200
|
+
self.regions = regions;
|
|
201
|
+
self.refNameAliases = refNameAliases;
|
|
202
|
+
self.lowerCaseRefNameAliases = lowerCaseRefNameAliases;
|
|
203
|
+
self.canonicalToSeqAdapterRefNames = canonicalToSeqAdapterRefNames;
|
|
204
|
+
self.cytobands = cytobands;
|
|
205
|
+
self.loadedGeneticCodes = geneticCodes;
|
|
206
|
+
},
|
|
207
|
+
/**
|
|
208
|
+
* #action
|
|
209
|
+
*/
|
|
210
|
+
setError(e) {
|
|
211
|
+
self.error = e;
|
|
212
|
+
},
|
|
213
|
+
/**
|
|
214
|
+
* #action
|
|
215
|
+
*/
|
|
216
|
+
setLoadingP(p) {
|
|
217
|
+
self.loadingP = p;
|
|
218
|
+
},
|
|
219
|
+
/**
|
|
220
|
+
* #action
|
|
221
|
+
*/
|
|
222
|
+
async loadPre() {
|
|
223
|
+
const conf = self.configuration;
|
|
224
|
+
if (!conf) {
|
|
225
|
+
// safeReference resolved to undefined: the underlying config was
|
|
226
|
+
// removed from the tree (the assemblyManager autorun will prune this
|
|
227
|
+
// orphaned assembly). Fail with a clear message instead of a deep
|
|
228
|
+
// "Cannot read 'type' of undefined" from the adapter instantiation.
|
|
229
|
+
throw new Error('assembly configuration is not available');
|
|
230
|
+
}
|
|
231
|
+
const assemblyName = self.name;
|
|
232
|
+
// The four loads run at once and would otherwise fight over the one
|
|
233
|
+
// status field, and the first to finish would blank the label (the ''
|
|
234
|
+
// every phase helper clears with) while the rest were still going. A
|
|
235
|
+
// fan-out slot each turns them into one aggregate bar. Throttled
|
|
236
|
+
// because a whole-file download reports per chunk and each write
|
|
237
|
+
// repaints the spinner.
|
|
238
|
+
//
|
|
239
|
+
// Guarded, like every other owner of a progress stream, and this one
|
|
240
|
+
// needs it for a reason the display fetches don't have: `Promise.all`
|
|
241
|
+
// rejects on the FIRST of the four to fail, while the other three go on
|
|
242
|
+
// downloading and go on reporting. Without the guard their progress
|
|
243
|
+
// repaints the field the `finally` below has already cleared, so a
|
|
244
|
+
// failed assembly load sits under a live "Downloading cytobands 40%".
|
|
245
|
+
//
|
|
246
|
+
// `isAlive` as well as `loading`, because neither implies the other and
|
|
247
|
+
// the trailing write needs both: a tree destroyed WHILE the four loads
|
|
248
|
+
// are in flight never runs the `finally`, so `loading` is still true
|
|
249
|
+
// when the window's trailing timer fires and setStatus lands on a dead
|
|
250
|
+
// node. That is the case this sink's second isCurrent read exists for.
|
|
251
|
+
// the one writer, so the clear below is guarded by the same `isAlive`
|
|
252
|
+
// its statuses are — it used to reach the field unguarded
|
|
253
|
+
const statusWindow = createStatusWindow(status => {
|
|
254
|
+
if (isAlive(self)) {
|
|
255
|
+
self.setStatus(status);
|
|
256
|
+
}
|
|
257
|
+
});
|
|
258
|
+
let loading = true;
|
|
259
|
+
const stream = statusWindow.open({
|
|
260
|
+
isCurrent: () => loading && isAlive(self),
|
|
261
|
+
});
|
|
262
|
+
const fanOut = createStatusFanOut(stream.statusCallback);
|
|
263
|
+
const optsFor = () => ({ statusCallback: fanOut() });
|
|
264
|
+
try {
|
|
265
|
+
// The four sources are independent files (sequence index, chromAlias,
|
|
266
|
+
// cytoband, genetic-code sidecar), so they are fetched together rather
|
|
267
|
+
// than in series: an assembly resolved on demand over a CDN paid four
|
|
268
|
+
// sequential round trips for what is one. buildRefNameMaps still needs
|
|
269
|
+
// both regions and aliases, it just doesn't need them to arrive in
|
|
270
|
+
// order. Promise.all rejects with the first failure, which is what a
|
|
271
|
+
// serial chain did too — any one of them failing fails the load.
|
|
272
|
+
const [regions, refNameAliasCollection, cytobands, geneticCodes] = await Promise.all([
|
|
273
|
+
getAssemblyRegions({
|
|
274
|
+
config: conf.sequence.adapter,
|
|
275
|
+
pluginManager,
|
|
276
|
+
opts: optsFor(),
|
|
277
|
+
}),
|
|
278
|
+
getRefNameAliases({
|
|
279
|
+
config: conf.refNameAliases?.adapter,
|
|
280
|
+
pluginManager,
|
|
281
|
+
opts: optsFor(),
|
|
282
|
+
}),
|
|
283
|
+
getCytobands({
|
|
284
|
+
config: conf.cytobands?.adapter,
|
|
285
|
+
pluginManager,
|
|
286
|
+
opts: optsFor(),
|
|
287
|
+
}),
|
|
288
|
+
getGeneticCodesFromFile({
|
|
289
|
+
location: self.getConf('geneticCodesLocation'),
|
|
290
|
+
pluginManager,
|
|
291
|
+
opts: optsFor(),
|
|
292
|
+
}),
|
|
293
|
+
]);
|
|
294
|
+
for (const r of regions) {
|
|
295
|
+
checkRefName(r.refName);
|
|
296
|
+
}
|
|
297
|
+
const maps = buildRefNameMaps(regions, refNameAliasCollection);
|
|
298
|
+
// the same tree-destroyed-mid-load case the status sink above is
|
|
299
|
+
// guarded for, at the write the load exists to make: a dead node has
|
|
300
|
+
// nothing to load into, and `setLoaded` is an action on it
|
|
301
|
+
if (isAlive(self)) {
|
|
302
|
+
this.setLoaded({
|
|
303
|
+
...maps,
|
|
304
|
+
regions: regions.map(r => ({
|
|
305
|
+
...r,
|
|
306
|
+
refName: maps.refNameAliases[r.refName] ?? r.refName,
|
|
307
|
+
assemblyName,
|
|
308
|
+
})),
|
|
309
|
+
cytobands,
|
|
310
|
+
geneticCodes,
|
|
311
|
+
});
|
|
312
|
+
}
|
|
313
|
+
}
|
|
314
|
+
finally {
|
|
315
|
+
// the stream's own clear, not a bare write: it has to land (a status
|
|
316
|
+
// inside a closed window would only queue) AND drop what is queued
|
|
317
|
+
// behind it, or the trailing timer puts the last "Downloading …" back
|
|
318
|
+
// on screen after the load has ended. Closing the guard first is what
|
|
319
|
+
// stops a still-running sibling load from writing over it — see the
|
|
320
|
+
// `loading` flag above, and note `clear` deliberately does not consult
|
|
321
|
+
// it.
|
|
322
|
+
loading = false;
|
|
323
|
+
stream.clear();
|
|
324
|
+
}
|
|
325
|
+
},
|
|
326
|
+
}))
|
|
327
|
+
.actions(self => ({
|
|
328
|
+
/**
|
|
329
|
+
* #action
|
|
330
|
+
* Resolves once regions + refNameAliases are set, and rejects with the
|
|
331
|
+
* load failure. Idempotent: concurrent callers share one attempt, and a
|
|
332
|
+
* failed attempt is discarded so the next call retries.
|
|
333
|
+
*
|
|
334
|
+
* The rejection is the authoritative signal for a caller that awaits it.
|
|
335
|
+
* `self.error` mirrors it for reactive consumers only (the UI renders it),
|
|
336
|
+
* and must not be consulted after an await: a concurrent retry clears it,
|
|
337
|
+
* so an awaiter reading it can see a cleared error and mistake a failed
|
|
338
|
+
* load for a successful one.
|
|
339
|
+
*/
|
|
340
|
+
load() {
|
|
341
|
+
if (!self.loadingP) {
|
|
342
|
+
// clear any prior failure so a successful retry isn't masked by the
|
|
343
|
+
// stale error left over from the previous attempt
|
|
344
|
+
self.setError(undefined);
|
|
345
|
+
self.loadingP = self.loadPre().catch((e) => {
|
|
346
|
+
// both writes are actions, and a failure can arrive after the tree
|
|
347
|
+
// holding this assembly is gone; the rejection still reaches
|
|
348
|
+
// whoever awaited it
|
|
349
|
+
if (isAlive(self)) {
|
|
350
|
+
console.error(e);
|
|
351
|
+
self.setLoadingP(undefined);
|
|
352
|
+
self.setError(e);
|
|
353
|
+
}
|
|
354
|
+
throw e;
|
|
355
|
+
});
|
|
356
|
+
}
|
|
357
|
+
return self.loadingP;
|
|
358
|
+
},
|
|
359
|
+
}))
|
|
360
|
+
.actions(self => ({
|
|
361
|
+
afterAttach() {
|
|
362
|
+
// lazy load: start fetching the first time something observes the
|
|
363
|
+
// loaded state reactively (a view rendering this assembly, an autorun,
|
|
364
|
+
// a `when` predicate), keeping the getters below pure. Both volatiles
|
|
365
|
+
// are watched because consumers observe them independently (regions vs
|
|
366
|
+
// refNameAliases/allRefNames); load() is idempotent so the overlapping
|
|
367
|
+
// triggers collapse to a single fetch.
|
|
368
|
+
for (const prop of ['regions', 'refNameAliases']) {
|
|
369
|
+
addDisposer(self, onBecomeObserved(self, prop, () => {
|
|
370
|
+
// nothing awaits this fire-and-forget kick, so swallow the
|
|
371
|
+
// rejection: load() has already logged it and recorded it on
|
|
372
|
+
// self.error, which is what reactive consumers render
|
|
373
|
+
self.load().catch(() => { });
|
|
374
|
+
}));
|
|
375
|
+
}
|
|
376
|
+
},
|
|
377
|
+
}))
|
|
378
|
+
.views(self => ({
|
|
379
|
+
/**
|
|
380
|
+
* #getter
|
|
381
|
+
*/
|
|
382
|
+
get initialized() {
|
|
383
|
+
return !!self.refNameAliases;
|
|
135
384
|
},
|
|
385
|
+
/**
|
|
386
|
+
* #getter
|
|
387
|
+
* note: lowerCaseRefNameAliases not included here: this allows the list
|
|
388
|
+
* of refnames to be just the "normal casing", but things like
|
|
389
|
+
* getCanonicalRefName can resolve a lower-case name if needed
|
|
390
|
+
*/
|
|
136
391
|
get allRefNames() {
|
|
137
392
|
return !self.refNameAliases
|
|
138
393
|
? undefined
|
|
139
394
|
: Object.keys(self.refNameAliases);
|
|
140
395
|
},
|
|
141
|
-
|
|
142
|
-
|
|
396
|
+
/**
|
|
397
|
+
* #getter
|
|
398
|
+
* canonical refName -> every name this assembly has for that sequence,
|
|
399
|
+
* canonical first. The inverse of `refNameAliases`, memoized here because
|
|
400
|
+
* the readers that want it want the whole table (the About dialog's alias
|
|
401
|
+
* listing) rather than one row. Undefined until the aliases load.
|
|
402
|
+
*/
|
|
403
|
+
get namesByCanonicalRefName() {
|
|
404
|
+
return !self.refNameAliases
|
|
143
405
|
? undefined
|
|
144
|
-
:
|
|
145
|
-
},
|
|
146
|
-
get allRefNamesWithLowerCase() {
|
|
147
|
-
return this.allRefNames && this.lowerCaseRefNames
|
|
148
|
-
? [...new Set([...this.allRefNames, ...this.lowerCaseRefNames])]
|
|
149
|
-
: undefined;
|
|
406
|
+
: groupNamesByCanonicalRefName(self.refNameAliases);
|
|
150
407
|
},
|
|
408
|
+
/**
|
|
409
|
+
* #getter
|
|
410
|
+
*/
|
|
151
411
|
get rpcManager() {
|
|
412
|
+
// parent chain: assembly -> assemblies[] -> assemblyManager
|
|
152
413
|
return getParent(self, 2).rpcManager;
|
|
153
414
|
},
|
|
154
|
-
get refNameColors() {
|
|
155
|
-
const colors = self.getConf('refNameColors') || [];
|
|
156
|
-
return colors.length === 0 ? refNameColors : colors;
|
|
157
|
-
},
|
|
158
415
|
}))
|
|
159
416
|
.views(self => ({
|
|
417
|
+
/**
|
|
418
|
+
* #getter
|
|
419
|
+
*/
|
|
160
420
|
get refNames() {
|
|
161
421
|
return self.regions?.map(region => region.refName);
|
|
162
422
|
},
|
|
163
423
|
}))
|
|
164
424
|
.views(self => ({
|
|
425
|
+
/**
|
|
426
|
+
* #getter
|
|
427
|
+
* memoized refName -> first region index, so getRefNameColor is O(1)
|
|
428
|
+
* instead of an O(n) indexOf per call (matters for assemblies with many
|
|
429
|
+
* contigs rendered in overview scalebars/rulers)
|
|
430
|
+
*/
|
|
431
|
+
get refNameToIndex() {
|
|
432
|
+
const { refNames } = self;
|
|
433
|
+
if (!refNames) {
|
|
434
|
+
return undefined;
|
|
435
|
+
}
|
|
436
|
+
const map = new Map();
|
|
437
|
+
for (const [i, refName] of refNames.entries()) {
|
|
438
|
+
if (!map.has(refName)) {
|
|
439
|
+
map.set(refName, i);
|
|
440
|
+
}
|
|
441
|
+
}
|
|
442
|
+
return map;
|
|
443
|
+
},
|
|
444
|
+
}))
|
|
445
|
+
.views(self => ({
|
|
446
|
+
/**
|
|
447
|
+
* #method
|
|
448
|
+
* Returns the canonical refName for a given alias or refName.
|
|
449
|
+
* Note: The canonical name may differ from what's in the FASTA file when
|
|
450
|
+
* refNameAliases with override:true are configured. To get the name that
|
|
451
|
+
* matches the FASTA file, use getSeqAdapterRefName().
|
|
452
|
+
*/
|
|
165
453
|
getCanonicalRefName(refName) {
|
|
166
454
|
if (!self.refNameAliases || !self.lowerCaseRefNameAliases) {
|
|
167
455
|
throw new Error('aliases not loaded, we expect them to be loaded before getCanonicalRefName can be called');
|
|
168
456
|
}
|
|
169
|
-
return (self.refNameAliases[refName] ||
|
|
170
|
-
|
|
171
|
-
getCanonicalRefName2(refName) {
|
|
172
|
-
return this.getCanonicalRefName(refName) || refName;
|
|
457
|
+
return (self.refNameAliases[refName] ||
|
|
458
|
+
self.lowerCaseRefNameAliases[refName.toLowerCase()]);
|
|
173
459
|
},
|
|
460
|
+
/**
|
|
461
|
+
* #method
|
|
462
|
+
*/
|
|
174
463
|
getRefNameColor(refName) {
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
const idx = self.refNames.indexOf(refName);
|
|
179
|
-
return idx === -1
|
|
464
|
+
const idx = self.refNameToIndex?.get(refName);
|
|
465
|
+
return idx === undefined
|
|
180
466
|
? undefined
|
|
181
467
|
: self.refNameColors[idx % self.refNameColors.length];
|
|
182
468
|
},
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
469
|
+
/**
|
|
470
|
+
* #method
|
|
471
|
+
* The whole-contig region for a CANONICAL refName — its extents, and so
|
|
472
|
+
* the bounds anything placing a span on it has to clamp into. Undefined
|
|
473
|
+
* before `regions` loads, and for a refName this assembly doesn't have.
|
|
474
|
+
*
|
|
475
|
+
* Reads the `refNameToIndex` memo, which is why this exists rather than
|
|
476
|
+
* each caller writing `assembly.regions?.find(r => r.refName === name)`:
|
|
477
|
+
* five of them did, and that scan is O(contigs) per call on an assembly
|
|
478
|
+
* whose whole point is that it may have thousands.
|
|
479
|
+
*/
|
|
480
|
+
getRegionForRefName(refName) {
|
|
481
|
+
const idx = self.refNameToIndex?.get(refName);
|
|
482
|
+
return idx === undefined ? undefined : self.regions?.[idx];
|
|
483
|
+
},
|
|
484
|
+
/**
|
|
485
|
+
* #method
|
|
486
|
+
* NCBI genetic-code (translation table) id for a refName, from the
|
|
487
|
+
* assembly's `geneticCodes` config map (e.g. a mitochondrial contig = 2).
|
|
488
|
+
* Falls back to the standard code (1) for unlisted refNames.
|
|
489
|
+
*/
|
|
490
|
+
getGeneticCodeId(refName) {
|
|
491
|
+
// inline geneticCodes config wins over the loaded sidecar file
|
|
492
|
+
return lookupGeneticCodeId(refName, self.refNameAliases, [
|
|
493
|
+
self.getConf('geneticCodes') ?? {},
|
|
494
|
+
self.loadedGeneticCodes ?? {},
|
|
495
|
+
]);
|
|
496
|
+
},
|
|
497
|
+
/**
|
|
498
|
+
* #method
|
|
499
|
+
* Given a canonical refName, returns the refName used by the sequence
|
|
500
|
+
* adapter (what's in the FASTA file). Falls back to the input if no
|
|
501
|
+
* mapping exists.
|
|
502
|
+
*/
|
|
189
503
|
getSeqAdapterRefName(canonicalRefName) {
|
|
190
504
|
return (self.canonicalToSeqAdapterRefNames?.[canonicalRefName] ??
|
|
191
505
|
canonicalRefName);
|
|
192
506
|
},
|
|
193
507
|
}))
|
|
194
|
-
.
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
self.
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
if (!self.loadingP) {
|
|
220
|
-
self.loadingP = this.loadPre().catch((e) => {
|
|
221
|
-
this.setLoadingP(undefined);
|
|
222
|
-
this.setError(e);
|
|
223
|
-
});
|
|
224
|
-
}
|
|
225
|
-
return self.loadingP;
|
|
508
|
+
.views(self => ({
|
|
509
|
+
/**
|
|
510
|
+
* #method
|
|
511
|
+
* The total canonical-refName resolver, for any name arriving from
|
|
512
|
+
* outside — off a feature, out of an RPC result, out of a session spec.
|
|
513
|
+
* A name the assembly does not know comes back unchanged, and so does one
|
|
514
|
+
* asked for before the aliases load, where `getCanonicalRefName` answers
|
|
515
|
+
* `undefined` for the first and THROWS for the second.
|
|
516
|
+
*
|
|
517
|
+
* The throw is the reason to call this rather than hand-roll
|
|
518
|
+
* `getCanonicalRefName(x) ?? x`: that idiom looks total and is not, and
|
|
519
|
+
* these resolutions sit in getters and render paths that run from the
|
|
520
|
+
* first frame, before the alias file has landed. Answering with the input
|
|
521
|
+
* there means the comparison downstream may miss, but it misses for one
|
|
522
|
+
* frame and re-runs, where a throw out of a getter takes the view down.
|
|
523
|
+
* `initialized` is the gate for a caller that needs to know which answer
|
|
524
|
+
* it got.
|
|
525
|
+
*
|
|
526
|
+
* See getCanonicalRefName() for what canonical means when
|
|
527
|
+
* `refNameAliases` carries an `override`.
|
|
528
|
+
*/
|
|
529
|
+
getCanonicalRefName2(refName) {
|
|
530
|
+
return self.initialized
|
|
531
|
+
? self.getCanonicalRefName(refName) || refName
|
|
532
|
+
: refName;
|
|
226
533
|
},
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
const regions = await getAssemblyRegions({
|
|
234
|
-
config: sequenceAdapterConf,
|
|
235
|
-
pluginManager,
|
|
236
|
-
});
|
|
237
|
-
for (const r of regions) {
|
|
238
|
-
checkRefName(r.refName);
|
|
239
|
-
}
|
|
240
|
-
const refNameAliases = {};
|
|
241
|
-
const refNameAliasCollection = await getRefNameAliases({
|
|
242
|
-
config: refNameAliasesAdapterConf,
|
|
243
|
-
pluginManager,
|
|
244
|
-
});
|
|
245
|
-
for (const { refName, aliases, override } of refNameAliasCollection) {
|
|
246
|
-
for (const alias of aliases) {
|
|
247
|
-
checkRefName(alias);
|
|
248
|
-
refNameAliases[alias] = refName;
|
|
249
|
-
}
|
|
250
|
-
if (override) {
|
|
251
|
-
refNameAliases[refName] = refName;
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
for (const region of regions) {
|
|
255
|
-
refNameAliases[region.refName] ||= region.refName;
|
|
256
|
-
}
|
|
257
|
-
const canonicalToSeqAdapterRefNames = {};
|
|
258
|
-
for (const region of regions) {
|
|
259
|
-
const canonicalName = refNameAliases[region.refName] || region.refName;
|
|
260
|
-
if (canonicalName !== region.refName) {
|
|
261
|
-
canonicalToSeqAdapterRefNames[canonicalName] = region.refName;
|
|
262
|
-
}
|
|
534
|
+
/**
|
|
535
|
+
* #method
|
|
536
|
+
*/
|
|
537
|
+
isValidRefName(refName) {
|
|
538
|
+
if (!self.refNameAliases) {
|
|
539
|
+
throw new Error('isValidRefName cannot be called yet, the assembly has not finished loading');
|
|
263
540
|
}
|
|
264
|
-
|
|
265
|
-
this.setLoaded({
|
|
266
|
-
refNameAliases,
|
|
267
|
-
regions: regions.map(r => ({
|
|
268
|
-
...r,
|
|
269
|
-
refName: refNameAliases[r.refName] || r.refName,
|
|
270
|
-
assemblyName,
|
|
271
|
-
})),
|
|
272
|
-
cytobands: await getCytobands({
|
|
273
|
-
config: cytobandAdapterConf,
|
|
274
|
-
pluginManager,
|
|
275
|
-
}),
|
|
276
|
-
});
|
|
541
|
+
return !!self.getCanonicalRefName(refName);
|
|
277
542
|
},
|
|
278
543
|
}))
|
|
279
544
|
.views(self => ({
|
|
280
|
-
|
|
281
|
-
|
|
545
|
+
/**
|
|
546
|
+
* #method
|
|
547
|
+
* Where a refName — canonical or any alias — sits in this assembly's own
|
|
548
|
+
* order, which is what chromosome painting hands its palette out by.
|
|
549
|
+
* Canonicalized first because a name off a feature can be the FILE's
|
|
550
|
+
* spelling (`1` against a canonical `chr1`), and a missed probe is silent:
|
|
551
|
+
* the painter falls back to a hash color. Undefined before the regions
|
|
552
|
+
* load and for a name the assembly lacks.
|
|
553
|
+
*/
|
|
554
|
+
getRefNamePosition(refName) {
|
|
555
|
+
return self.refNameToIndex?.get(self.getCanonicalRefName2(refName));
|
|
556
|
+
},
|
|
557
|
+
/**
|
|
558
|
+
* #method
|
|
559
|
+
* The other names this assembly has for the same sequence as `refName` —
|
|
560
|
+
* its aliases, whether the name handed in is an alias or the canonical
|
|
561
|
+
* name. `chr1`, `1` and `NC_000001.11` each answer with the other two.
|
|
562
|
+
*
|
|
563
|
+
* Empty for a name this assembly does not have, and also before the
|
|
564
|
+
* aliases load: this resolves through `getCanonicalRefName2` so it can be
|
|
565
|
+
* called from a render, and `initialized` is what distinguishes the two.
|
|
566
|
+
*/
|
|
567
|
+
getAliasesForRefName(refName) {
|
|
568
|
+
const names = self.namesByCanonicalRefName?.get(self.getCanonicalRefName2(refName));
|
|
569
|
+
return names ? names.filter(name => name !== refName) : [];
|
|
570
|
+
},
|
|
571
|
+
/**
|
|
572
|
+
* #method
|
|
573
|
+
* get Map of `canonical-name -> adapter-specific-name`, memoized per
|
|
574
|
+
* adapter config so concurrent callers share one load
|
|
575
|
+
*
|
|
576
|
+
* The load reports progress (the adapter's index download, or for an
|
|
577
|
+
* in-memory adapter the whole file) through the `statusCallback` of
|
|
578
|
+
* whichever caller started it. The other callers get no progress
|
|
579
|
+
* updates. The callers sharing an entry are almost always the N
|
|
580
|
+
* displayed regions of one display, so their callbacks all write into
|
|
581
|
+
* that display's aggregated status bar, where the first caller already
|
|
582
|
+
* reports for the rest. A listener set per key, with registration and
|
|
583
|
+
* deregistration on settle, would add progress only for a second display
|
|
584
|
+
* on the same file and for a first caller torn down mid-load. The latter
|
|
585
|
+
* is a no-op because the display guards its callbacks with `isAlive`.
|
|
586
|
+
*
|
|
587
|
+
* If per-caller progress is ever needed, the assembly should hold the
|
|
588
|
+
* in-flight status as observable state that consumers read.
|
|
589
|
+
*/
|
|
590
|
+
getRefNameMapForAdapter(adapterConf, options) {
|
|
282
591
|
if (!options.sessionId) {
|
|
283
592
|
throw new Error('sessionId is required');
|
|
284
593
|
}
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
594
|
+
const key = refNameMapKey(adapterConf, options);
|
|
595
|
+
let entry = self.adapterLoads.get(key);
|
|
596
|
+
if (!entry) {
|
|
597
|
+
// evict on failure so a later call can retry
|
|
598
|
+
entry = loadRefNameMap(self, adapterConf, options).catch((e) => {
|
|
599
|
+
self.adapterLoads.delete(key);
|
|
600
|
+
throw e;
|
|
601
|
+
});
|
|
602
|
+
self.adapterLoads.set(key, entry);
|
|
294
603
|
}
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
604
|
+
return entry;
|
|
605
|
+
},
|
|
606
|
+
/**
|
|
607
|
+
* #method
|
|
608
|
+
* The empty-intersection verdict for an adapter under this assembly, if
|
|
609
|
+
* the map load reached one. Keyed by `adapterConfigCacheKey`, which is
|
|
610
|
+
* what a track already computes as its `rpcSessionId` — so a track looks
|
|
611
|
+
* up its own diagnostic with no plumbing between here and it. Undefined
|
|
612
|
+
* until the map has loaded, which is the same instant the track's first
|
|
613
|
+
* fetch resolves.
|
|
614
|
+
*/
|
|
615
|
+
getRefNameMismatch(adapterCacheKey) {
|
|
616
|
+
return self.refNameMismatches.get(adapterCacheKey);
|
|
308
617
|
},
|
|
309
618
|
}));
|
|
310
619
|
}
|
|
311
|
-
async function getRefNameAliases({ config, pluginManager, stopToken, }) {
|
|
312
|
-
const type = pluginManager.getAdapterType(config.type);
|
|
313
|
-
const CLASS = await type.getAdapterClass();
|
|
314
|
-
const adapter = new CLASS(config, undefined, pluginManager);
|
|
315
|
-
return adapter.getRefNameAliases({ stopToken });
|
|
316
|
-
}
|
|
317
|
-
async function getCytobands({ config, pluginManager, }) {
|
|
318
|
-
const type = pluginManager.getAdapterType(config.type);
|
|
319
|
-
const CLASS = await type.getAdapterClass();
|
|
320
|
-
const adapter = new CLASS(config, undefined, pluginManager);
|
|
321
|
-
return adapter.getData();
|
|
322
|
-
}
|
|
323
|
-
async function getAssemblyRegions({ config, pluginManager, stopToken, }) {
|
|
324
|
-
const type = pluginManager.getAdapterType(config.type);
|
|
325
|
-
const CLASS = await type.getAdapterClass();
|
|
326
|
-
const adapter = new CLASS(config, undefined, pluginManager);
|
|
327
|
-
return adapter.getRegions({ stopToken });
|
|
328
|
-
}
|