@jbrowse/core 4.3.0 → 5.0.0-beta.2
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 +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- 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 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -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 +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -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 +62 -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 +1 -1
- 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 +18 -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 +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -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/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- 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.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- 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 +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -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/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -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 +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- 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 +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -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 +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- 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 -8
- 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/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- 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 +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- 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 +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -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 +3 -3
- 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 +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- 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 +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -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/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -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 +15 -17
- 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 +24 -13
- 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/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 +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -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 +61 -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/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 +390 -41
- 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 +4 -4
- 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 +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -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 +128 -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 +383 -71
- 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 +12 -3
- package/esm/ui/HoverMenu.js +31 -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 +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -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 +137 -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 +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -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/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- 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/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -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 +43 -11
- 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 +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -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/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -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/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- 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 +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -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 +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -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/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -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 +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -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/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 +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- 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 +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -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/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -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 +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -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/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -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/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 +23 -0
- package/esm/util/diagonalizeRegions.js +192 -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/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -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 +5 -1
- package/esm/util/fetchSeq.js +18 -6
- 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 +28 -0
- package/esm/util/freezeDeep.js +41 -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/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -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 +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -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 +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -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 +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -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/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -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/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 +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -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/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -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 +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -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 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -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 +38 -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/simpleFeature.d.ts +112 -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/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -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/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- 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 +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -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 +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -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 +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -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 +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -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 +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -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 +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -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 +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.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/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/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -1,14 +1,113 @@
|
|
|
1
1
|
import { addDisposer, getParent, types } from '@jbrowse/mobx-state-tree';
|
|
2
|
-
import {
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
|
|
2
|
+
import { autorun, untracked, when } from 'mobx';
|
|
3
|
+
import { readConfObject } from '../configuration/index.js';
|
|
4
|
+
import assemblyFactory from './assembly.js';
|
|
5
|
+
// How long waitForAssembly gives a handler that did NOT return a promise.
|
|
6
|
+
// Nothing about such a handler is observable — it was told a name and said
|
|
7
|
+
// nothing back — so there is no event to wait on and the only choices are a
|
|
8
|
+
// clock or giving up immediately, which would break a fire-and-forget handler
|
|
9
|
+
// that resolves the name a moment later. A handler that returns a promise gets
|
|
10
|
+
// waited on properly and never reaches this.
|
|
11
|
+
const UNDECLARED_HANDLER_GRACE_MS = 10000;
|
|
12
|
+
function isThenable(value) {
|
|
13
|
+
return typeof value?.then === 'function';
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Per-session record of the `Core-handleUnrecognizedAssembly` reports this
|
|
17
|
+
* manager has made, and of what the handlers said back.
|
|
18
|
+
*
|
|
19
|
+
* Each name is reported once. Handlers resolve a name asynchronously and out of
|
|
20
|
+
* band — the hubs plugin probes a url and adds a connection — and the assembly
|
|
21
|
+
* turning up is itself the reactive signal, so there is nothing for a second
|
|
22
|
+
* report to accomplish. `get` is called from render paths and computeds, so
|
|
23
|
+
* without this every re-render re-reported, and a handler that answers by
|
|
24
|
+
* fetching re-fetched: for exactly the names nothing can supply (a session
|
|
25
|
+
* naming a genome this host has never heard of) that is an unbounded stream of
|
|
26
|
+
* requests.
|
|
27
|
+
*
|
|
28
|
+
* A handler may return a promise, which is its statement that it is working on
|
|
29
|
+
* the name and that resolution is over when the promise settles. That is what
|
|
30
|
+
* lets `waitForAssembly` wait on an event rather than on a clock, so the promise
|
|
31
|
+
* should cover everything the handler does before the session gains anything
|
|
32
|
+
* observable — for a handler that adds a connection, at least the probe that
|
|
33
|
+
* decides whether to add one. The value is remembered here, so a later waiter
|
|
34
|
+
* can await the same attempt the first lookup started.
|
|
35
|
+
*
|
|
36
|
+
* Keyed on the session node so replacing the session (`setSession`) starts
|
|
37
|
+
* over: the connections and session assemblies a handler created for the old
|
|
38
|
+
* session went with it, so a name it already answered for has to be answerable
|
|
39
|
+
* again.
|
|
40
|
+
*
|
|
41
|
+
* Not observable state: `get` records into this from inside a derivation, where
|
|
42
|
+
* writing an observable would be a state change inside a computed. A closure
|
|
43
|
+
* rather than a class, because this is the type of a volatile and so reaches the
|
|
44
|
+
* inferred root-model type of every product, where a class loses either way —
|
|
45
|
+
* `private` members are still written into the declaration and then rejected as
|
|
46
|
+
* inaccessible (TS4094), while a field typed `Map<string, AssemblyReport>` names
|
|
47
|
+
* a module-local type (TS4058). Neither fires in this package; both fire in
|
|
48
|
+
* jbrowse-web, the embedded products and the react components. Two methods
|
|
49
|
+
* closing over the state name nothing but their own signatures.
|
|
50
|
+
*/
|
|
51
|
+
function createUnrecognizedAssemblyReports() {
|
|
52
|
+
let current;
|
|
53
|
+
const reports = new Map();
|
|
54
|
+
return {
|
|
55
|
+
/**
|
|
56
|
+
* Report `name` via `fire`, once per session, and keep what came back.
|
|
57
|
+
* `handlerCount` separates "every handler declined" from "nobody
|
|
58
|
+
* listening": the folded result is the same either way, and only the first
|
|
59
|
+
* is worth waiting out.
|
|
60
|
+
*/
|
|
61
|
+
report(session, name, handlerCount, fire) {
|
|
62
|
+
if (current !== session) {
|
|
63
|
+
current = session;
|
|
64
|
+
reports.clear();
|
|
65
|
+
}
|
|
66
|
+
if (reports.has(name)) {
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
const report = { handled: handlerCount > 0 };
|
|
70
|
+
// recorded before firing: a handler that synchronously reads back through
|
|
71
|
+
// `get` must not re-enter and report the same name again
|
|
72
|
+
reports.set(name, report);
|
|
73
|
+
const result = fire();
|
|
74
|
+
if (isThenable(result)) {
|
|
75
|
+
// a rejection is the handler's own to log; here it only means "done"
|
|
76
|
+
report.claim = Promise.resolve(result).then(() => { }, () => { });
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
/** what `report` recorded for `name` under `session`, if anything */
|
|
80
|
+
reportFor(session, name) {
|
|
81
|
+
return current === session ? reports.get(name) : undefined;
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
/**
|
|
86
|
+
* #stateModel AssemblyManager
|
|
87
|
+
*/
|
|
6
88
|
function assemblyManagerFactory(conf, pm) {
|
|
7
89
|
return types
|
|
8
90
|
.model({
|
|
91
|
+
/**
|
|
92
|
+
* #property
|
|
93
|
+
* this is automatically managed by an autorun which looks in the parent
|
|
94
|
+
* session.assemblies, session.sessionAssemblies, and
|
|
95
|
+
* session.temporaryAssemblies
|
|
96
|
+
*/
|
|
9
97
|
assemblies: types.array(assemblyFactory(conf, pm)),
|
|
10
98
|
})
|
|
99
|
+
.volatile(() => ({
|
|
100
|
+
/**
|
|
101
|
+
* #volatile
|
|
102
|
+
* rate limiter for `get`'s `Core-handleUnrecognizedAssembly` reports, so
|
|
103
|
+
* each unknown name reaches the extension point once per session
|
|
104
|
+
*/
|
|
105
|
+
unrecognizedReports: createUnrecognizedAssemblyReports(),
|
|
106
|
+
}))
|
|
11
107
|
.views(self => ({
|
|
108
|
+
/**
|
|
109
|
+
* #getter
|
|
110
|
+
*/
|
|
12
111
|
get assemblyNameMap() {
|
|
13
112
|
const obj = {};
|
|
14
113
|
for (const assembly of self.assemblies) {
|
|
@@ -20,82 +119,266 @@ function assemblyManagerFactory(conf, pm) {
|
|
|
20
119
|
},
|
|
21
120
|
}))
|
|
22
121
|
.views(self => ({
|
|
122
|
+
/**
|
|
123
|
+
* #method
|
|
124
|
+
*/
|
|
23
125
|
getCanonicalAssemblyName(asmName) {
|
|
24
126
|
return self.assemblyNameMap[asmName]?.name;
|
|
25
127
|
},
|
|
26
|
-
|
|
27
|
-
|
|
128
|
+
/**
|
|
129
|
+
* #method
|
|
130
|
+
*/
|
|
131
|
+
getDisplayName(asmName) {
|
|
132
|
+
return self.assemblyNameMap[asmName]?.displayName || asmName;
|
|
28
133
|
},
|
|
134
|
+
/**
|
|
135
|
+
* #method
|
|
136
|
+
* The assembly `asmName` names, or undefined. Reports a name it doesn't
|
|
137
|
+
* know to `Core-handleUnrecognizedAssembly` so a plugin can go supply it,
|
|
138
|
+
* which is a side effect: a caller only asking *whether* the session has
|
|
139
|
+
* the assembly wants {@link has} instead. Each name is reported at most
|
|
140
|
+
* once per session, since a handler resolves it out of band and the
|
|
141
|
+
* assembly turning up is itself the reactive signal.
|
|
142
|
+
*/
|
|
29
143
|
get(asmName) {
|
|
30
144
|
if (asmName) {
|
|
31
145
|
const assembly = self.assemblyNameMap[asmName];
|
|
32
146
|
if (assembly) {
|
|
33
147
|
return assembly;
|
|
34
148
|
}
|
|
35
|
-
|
|
36
|
-
|
|
149
|
+
const { session } = getParent(self);
|
|
150
|
+
if (!this.has(asmName)) {
|
|
151
|
+
// Extension point for loading unrecognized assemblies. Allows
|
|
152
|
+
// plugins to provide custom logic for assembly resolution.
|
|
153
|
+
//
|
|
154
|
+
// A handler normally works out of band — adding a connection, say —
|
|
155
|
+
// and the assembly turning up is what this manager reacts to, so
|
|
156
|
+
// nothing here reads a result. But a handler that returns a promise
|
|
157
|
+
// is telling waitForAssembly when it has finished trying, which is
|
|
158
|
+
// the difference between waiting on an event and waiting on a
|
|
159
|
+
// clock; UnrecognizedAssemblyReports keeps it, and keeps each name
|
|
160
|
+
// from being reported more than once per session.
|
|
161
|
+
const point = 'Core-handleUnrecognizedAssembly';
|
|
162
|
+
self.unrecognizedReports.report(session, asmName, pm.extensionPointCallbackCount(point), () => pm.evaluateExtensionPoint(
|
|
163
|
+
/** #extensionPoint Core-handleUnrecognizedAssembly | sync | Supply an assembly config when a referenced assembly is unknown. May return a promise settling when the handler has finished trying, which is what lets waitForAssembly stop waiting without a timeout */
|
|
164
|
+
'Core-handleUnrecognizedAssembly', undefined, {
|
|
37
165
|
assemblyName: asmName,
|
|
38
|
-
session
|
|
39
|
-
});
|
|
166
|
+
session,
|
|
167
|
+
}));
|
|
40
168
|
}
|
|
41
169
|
}
|
|
42
170
|
return undefined;
|
|
43
171
|
},
|
|
172
|
+
/**
|
|
173
|
+
* #method
|
|
174
|
+
* Whether the session knows this assembly. Use this, not `get`, to ask
|
|
175
|
+
* only whether the assembly is present: `!has(name)` is exactly the
|
|
176
|
+
* condition under which `get` reports `name` to
|
|
177
|
+
* `Core-handleUnrecognizedAssembly`, so probing with `get` tells every
|
|
178
|
+
* installed plugin to go resolve a name that a caller supplying the
|
|
179
|
+
* assembly itself (a hub connection, MAF row navigation) is about to
|
|
180
|
+
* create.
|
|
181
|
+
*/
|
|
182
|
+
// `get` calls this to decide whether to report, so the two can't drift.
|
|
183
|
+
// (`get` also reports each name at most once per session; the dedupe is a
|
|
184
|
+
// rate limit on top of this condition, not a second answer to it.)
|
|
185
|
+
//
|
|
186
|
+
// Both lookups are load-bearing, and the config one has to cover aliases
|
|
187
|
+
// as well: assemblyNameMap is keyed by allAliases ([name, ...aliases]) but
|
|
188
|
+
// only exists once the afterAttach autorun has built the models, while
|
|
189
|
+
// configuredAssemblyNames answers off the configs from the first render.
|
|
190
|
+
// Screening on the canonical names alone left `vvx` unknown for the whole
|
|
191
|
+
// startup window even though the config for `volvox` names it — a wrong
|
|
192
|
+
// "no", which means the caller re-adds an assembly the session already
|
|
193
|
+
// has, or (the synteny import forms) decides the session has nothing it
|
|
194
|
+
// can open.
|
|
195
|
+
//
|
|
196
|
+
// The map is still asked first, and is not redundant: an assembly whose
|
|
197
|
+
// config has just left the list still has a model until the autorun
|
|
198
|
+
// disposes of it.
|
|
199
|
+
//
|
|
200
|
+
// Return type annotated because assemblyNameMap is a Record: its index
|
|
201
|
+
// read is never undefined to the compiler, so `!!` on it infers the
|
|
202
|
+
// literal `true` and `!has(name)` would be dead code at every call site.
|
|
203
|
+
has(asmName) {
|
|
204
|
+
return (!!self.assemblyNameMap[asmName] ||
|
|
205
|
+
this.configuredAssemblyNames.has(asmName));
|
|
206
|
+
},
|
|
207
|
+
/**
|
|
208
|
+
* #method
|
|
209
|
+
* The first of `asmNames` that hasn't finished loading — the one a view
|
|
210
|
+
* blocked on them is waiting for, and whose `statusMessage` /
|
|
211
|
+
* `statusProgress` its spinner should show. Returns the assembly itself
|
|
212
|
+
* (a stable reference, so a consuming getter doesn't invalidate on every
|
|
213
|
+
* read) or undefined once they are all loaded.
|
|
214
|
+
*/
|
|
215
|
+
loadingAssembly(asmNames) {
|
|
216
|
+
return asmNames
|
|
217
|
+
.map(name => this.get(name))
|
|
218
|
+
.find(asm => !asm?.initialized);
|
|
219
|
+
},
|
|
220
|
+
/**
|
|
221
|
+
* #getter
|
|
222
|
+
* read via readConfObject, matching how the afterAttach autorun names the
|
|
223
|
+
* assemblies it creates: get() treats a name found here as "a config
|
|
224
|
+
* exists, its model is just not built yet", so the two must agree
|
|
225
|
+
*/
|
|
44
226
|
get assemblyNamesList() {
|
|
45
|
-
return this.assemblyList.map(asm => asm
|
|
227
|
+
return this.assemblyList.map(asm => readConfObject(asm, 'name'));
|
|
46
228
|
},
|
|
229
|
+
/**
|
|
230
|
+
* #getter
|
|
231
|
+
* Every name the *configs* answer to — each assembly's `name` and its
|
|
232
|
+
* `aliases`. What {@link has} knows before the models exist.
|
|
233
|
+
*
|
|
234
|
+
* Separate from assemblyNamesList rather than widening it: `get` treats a
|
|
235
|
+
* name found in that list as "a config exists, its model is just not built
|
|
236
|
+
* yet", which has to stay the canonical name the autorun will create the
|
|
237
|
+
* assembly under. A Set because `has` is called per name by per-render
|
|
238
|
+
* scans over every track in the session.
|
|
239
|
+
*/
|
|
240
|
+
get configuredAssemblyNames() {
|
|
241
|
+
return new Set(this.assemblyList.flatMap(asm => [
|
|
242
|
+
readConfObject(asm, 'name'),
|
|
243
|
+
...(readConfObject(asm, 'aliases') ?? []),
|
|
244
|
+
]));
|
|
245
|
+
},
|
|
246
|
+
/**
|
|
247
|
+
* #getter
|
|
248
|
+
* combined jbrowse.assemblies, session.sessionAssemblies, and
|
|
249
|
+
* session.temporaryAssemblies
|
|
250
|
+
*/
|
|
47
251
|
get assemblyList() {
|
|
48
252
|
const { jbrowse: { assemblies }, session: { sessionAssemblies = [], temporaryAssemblies = [] } = {}, } = getParent(self);
|
|
49
|
-
return [
|
|
50
|
-
...assemblies,
|
|
51
|
-
...sessionAssemblies,
|
|
52
|
-
...temporaryAssemblies,
|
|
53
|
-
];
|
|
253
|
+
return [...assemblies, ...sessionAssemblies, ...temporaryAssemblies];
|
|
54
254
|
},
|
|
55
255
|
get rpcManager() {
|
|
56
256
|
return getParent(self).rpcManager;
|
|
57
257
|
},
|
|
58
258
|
}))
|
|
59
259
|
.views(self => ({
|
|
260
|
+
/**
|
|
261
|
+
* #method
|
|
262
|
+
* Wait out whatever might still be about to supply `assemblyName`, and
|
|
263
|
+
* resolve once nothing is.
|
|
264
|
+
*
|
|
265
|
+
* Resolution is a chain of events, not a duration: a handler probes and
|
|
266
|
+
* adds a connection, the connection fetches a config, the config's
|
|
267
|
+
* assemblies land in the session. Each link is observable, so each is
|
|
268
|
+
* waited on rather than guessed at.
|
|
269
|
+
*
|
|
270
|
+
* - the handler's own promise, if it returned one, covers the part before
|
|
271
|
+
* the session gains anything to watch (the hubs plugin's HEAD probe)
|
|
272
|
+
* - any connection still fetching could be carrying the assembly, so its
|
|
273
|
+
* `loading` flag going false is the next event. Every loading
|
|
274
|
+
* connection counts, not just one naming this assembly: a connection
|
|
275
|
+
* config need not declare what it will turn out to provide, and waiting
|
|
276
|
+
* for one connection too many costs a moment while missing one returns
|
|
277
|
+
* the wrong answer.
|
|
278
|
+
*
|
|
279
|
+
* A handler that returned nothing gets {@link UNDECLARED_HANDLER_GRACE_MS}
|
|
280
|
+
* instead, because it left nothing to wait on.
|
|
281
|
+
*/
|
|
282
|
+
async settleAssemblyResolution(assemblyName) {
|
|
283
|
+
const { session } = getParent(self);
|
|
284
|
+
// read through assemblyNameMap, not get(): a predicate `when`
|
|
285
|
+
// re-evaluates should stay pure, and the report get() would make has
|
|
286
|
+
// already been made by waitForAssembly
|
|
287
|
+
const present = () => !!self.assemblyNameMap[assemblyName];
|
|
288
|
+
if (present()) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
const report = self.unrecognizedReports.reportFor(session, assemblyName);
|
|
292
|
+
if (report?.claim) {
|
|
293
|
+
await report.claim;
|
|
294
|
+
}
|
|
295
|
+
else if (report?.handled) {
|
|
296
|
+
await when(present, { timeout: UNDECLARED_HANDLER_GRACE_MS }).catch(() => { });
|
|
297
|
+
}
|
|
298
|
+
// Nothing left that could still produce it. Both clauses are things
|
|
299
|
+
// that end on their own, so this needs no bound of its own.
|
|
300
|
+
const settled = () =>
|
|
301
|
+
// a config carrying the name is already in the tree and the
|
|
302
|
+
// afterAttach autorun is about to build its model
|
|
303
|
+
!self.assemblyNamesList.includes(assemblyName) &&
|
|
304
|
+
// a connection mid-fetch could be carrying it. Every loading
|
|
305
|
+
// connection counts, not just one naming this assembly: a connection
|
|
306
|
+
// config need not declare what it will turn out to provide, and
|
|
307
|
+
// waiting for one connection too many costs a moment while missing
|
|
308
|
+
// one returns the wrong answer.
|
|
309
|
+
!session?.connectionInstances?.some(conn => conn.loading);
|
|
310
|
+
if (!present()) {
|
|
311
|
+
await when(() => present() || settled());
|
|
312
|
+
}
|
|
313
|
+
},
|
|
314
|
+
}))
|
|
315
|
+
.views(self => ({
|
|
316
|
+
/**
|
|
317
|
+
* #method
|
|
318
|
+
* use this method instead of assemblyManager.get(assemblyName) to get an
|
|
319
|
+
* assembly with regions loaded
|
|
320
|
+
*/
|
|
60
321
|
async waitForAssembly(assemblyName) {
|
|
61
322
|
if (!assemblyName) {
|
|
62
323
|
throw new Error('no assembly name supplied to waitForAssembly');
|
|
63
324
|
}
|
|
325
|
+
// get() rather than a bare map read: an unknown name has to reach
|
|
326
|
+
// Core-handleUnrecognizedAssembly before there is anything to wait for
|
|
64
327
|
let assembly = self.get(assemblyName);
|
|
65
328
|
if (!assembly) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
timeout: 10000,
|
|
69
|
-
});
|
|
70
|
-
assembly = self.get(assemblyName);
|
|
71
|
-
}
|
|
72
|
-
catch (e) {
|
|
73
|
-
}
|
|
329
|
+
await self.settleAssemblyResolution(assemblyName);
|
|
330
|
+
assembly = self.get(assemblyName);
|
|
74
331
|
}
|
|
75
332
|
if (!assembly) {
|
|
76
333
|
return undefined;
|
|
77
334
|
}
|
|
335
|
+
// load() resolves only after setLoaded (regions + refNameAliases) has
|
|
336
|
+
// run and rejects on failure, so awaiting the promise is enough: no
|
|
337
|
+
// extra reactive wait, and no error check, needed
|
|
78
338
|
await assembly.load();
|
|
79
|
-
await when(() => !!(assembly.regions && assembly.refNameAliases) || !!assembly.error);
|
|
80
|
-
if (assembly.error) {
|
|
81
|
-
throw assembly.error;
|
|
82
|
-
}
|
|
83
339
|
return assembly;
|
|
84
340
|
},
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
341
|
+
/**
|
|
342
|
+
* #method
|
|
343
|
+
* {@link waitForAssembly}, but a name that cannot be resolved is an error
|
|
344
|
+
* rather than an `undefined` for the caller to interpret.
|
|
345
|
+
*
|
|
346
|
+
* For callers whose result is silently *wrong* without the assembly, not
|
|
347
|
+
* merely absent: a refName map is the obvious one, since an empty map
|
|
348
|
+
* means an adapter gets queried with un-renamed refNames, finds nothing,
|
|
349
|
+
* and the track draws blank with nothing to say why. Failing here instead
|
|
350
|
+
* puts the name in front of the user, who is the only one who can add the
|
|
351
|
+
* assembly or fix the track.
|
|
352
|
+
*
|
|
353
|
+
* Worth using only because the wait is causal now. It used to give up
|
|
354
|
+
* after a fixed ten seconds, where "not resolved" could equally mean "not
|
|
355
|
+
* resolved yet" and throwing would have been a race; today it returns
|
|
356
|
+
* only once every handler and connection that could supply the name has
|
|
357
|
+
* finished, so there is a real answer to report.
|
|
358
|
+
*/
|
|
359
|
+
async requireAssembly(assemblyName) {
|
|
360
|
+
const assembly = await this.waitForAssembly(assemblyName);
|
|
361
|
+
if (!assembly) {
|
|
362
|
+
throw new Error(`assembly "${assemblyName}" could not be resolved: it is not one of this session's assemblies and nothing supplied it`);
|
|
89
363
|
}
|
|
90
|
-
return
|
|
364
|
+
return assembly;
|
|
91
365
|
},
|
|
92
|
-
|
|
366
|
+
/**
|
|
367
|
+
* #method
|
|
368
|
+
* The refName map for an adapter under `assemblyName`. Throws if the
|
|
369
|
+
* assembly cannot be resolved — see {@link requireAssembly}. No
|
|
370
|
+
* `assemblyName` at all is not a failure, just nothing to rename.
|
|
371
|
+
*/
|
|
372
|
+
async getRefNameMapForAdapter(adapterConf, assemblyName, opts) {
|
|
93
373
|
if (assemblyName) {
|
|
94
|
-
const asm = await this.
|
|
95
|
-
return asm
|
|
374
|
+
const asm = await this.requireAssembly(assemblyName);
|
|
375
|
+
return asm.getRefNameMapForAdapter(adapterConf, opts);
|
|
96
376
|
}
|
|
97
377
|
return {};
|
|
98
378
|
},
|
|
379
|
+
/**
|
|
380
|
+
* #method
|
|
381
|
+
*/
|
|
99
382
|
isValidRefName(refName, assemblyName) {
|
|
100
383
|
const assembly = self.get(assemblyName);
|
|
101
384
|
if (assembly) {
|
|
@@ -106,23 +389,45 @@ function assemblyManagerFactory(conf, pm) {
|
|
|
106
389
|
}))
|
|
107
390
|
.actions(self => ({
|
|
108
391
|
afterAttach() {
|
|
109
|
-
addDisposer(self,
|
|
110
|
-
|
|
111
|
-
|
|
392
|
+
addDisposer(self, autorun(() => {
|
|
393
|
+
const assemblyConfs = self.assemblyList;
|
|
394
|
+
// eslint-disable-next-line no-restricted-syntax -- self-write: removes from the assemblies it reads
|
|
395
|
+
untracked(() => {
|
|
396
|
+
// filter() returns a new plain array, so removing from
|
|
397
|
+
// self.assemblies in the loop below does not skip elements
|
|
398
|
+
// (removeAssembly splices the live observable array)
|
|
399
|
+
const orphaned = self.assemblies.filter(a => !a.configuration);
|
|
400
|
+
for (const asm of orphaned) {
|
|
112
401
|
this.removeAssembly(asm);
|
|
113
402
|
}
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
403
|
+
for (const conf of assemblyConfs) {
|
|
404
|
+
const name = readConfObject(conf, 'name');
|
|
405
|
+
if (!self.assemblies.some(a => a.name === name)) {
|
|
406
|
+
this.addAssembly(conf);
|
|
407
|
+
}
|
|
119
408
|
}
|
|
120
|
-
}
|
|
121
|
-
}, {
|
|
409
|
+
});
|
|
410
|
+
}, { name: 'assemblyManagerAfterAttach' }));
|
|
122
411
|
},
|
|
412
|
+
/**
|
|
413
|
+
* #action
|
|
414
|
+
* private: you would generally want to add to manipulate
|
|
415
|
+
* jbrowse.assemblies, session.sessionAssemblies, or
|
|
416
|
+
* session.temporaryAssemblies instead of using this directly
|
|
417
|
+
*/
|
|
123
418
|
removeAssembly(asm) {
|
|
124
419
|
self.assemblies.remove(asm);
|
|
125
420
|
},
|
|
421
|
+
/**
|
|
422
|
+
* #action
|
|
423
|
+
* private: you would generally want to add to manipulate
|
|
424
|
+
* jbrowse.assemblies, session.sessionAssemblies, or
|
|
425
|
+
* session.temporaryAssemblies instead of using this directly
|
|
426
|
+
*
|
|
427
|
+
* this can take an active instance of an assembly, in which case it is
|
|
428
|
+
* referred to, or it can take an identifier e.g. assembly name, which is
|
|
429
|
+
* used as a reference. snapshots cannot be used
|
|
430
|
+
*/
|
|
126
431
|
addAssembly(configuration) {
|
|
127
432
|
self.assemblies.push({ configuration });
|
|
128
433
|
},
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Fill in an assembly `sequence.adapter`'s `type` from its `uri` when the type
|
|
4
|
+
* is omitted, so `sequence: { adapter: { uri: 'genome.fa.gz' } }` resolves to a
|
|
5
|
+
* `BgzipFastaAdapter` (and `.fa` → indexed, `.2bit` → `TwoBitAdapter`). Uses the
|
|
6
|
+
* same `Core-guessAdapterForLocation` extension point the "Add track" flow uses,
|
|
7
|
+
* so every host describes a custom genome with just a URL and lets jbrowse-core
|
|
8
|
+
* pick the adapter — no adapter-type table in the Python/R/JS bindings.
|
|
9
|
+
*
|
|
10
|
+
* The guesser also derives the index locations (`.fai`/`.gzi`) from the uri;
|
|
11
|
+
* explicit adapter fields (e.g. a non-sibling `faiLocation`) are spread on top
|
|
12
|
+
* so they win. A `uri` matching no sequence adapter is left untouched, so a
|
|
13
|
+
* genuinely bad config still surfaces its own downstream error. Returns the same
|
|
14
|
+
* object reference when there is nothing to expand, so callers can cheaply skip
|
|
15
|
+
* a rebuild.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Expand an assembly snapshot's own shorthands into the `sequence` an assembly
|
|
19
|
+
* config declares: the flat `{ name, uri: 'genome.fa.gz' }` form, the
|
|
20
|
+
* `sequence: { adapter: { uri } }` form, and the omitted
|
|
21
|
+
* `sequence.type`/`trackId`.
|
|
22
|
+
*
|
|
23
|
+
* This is the assembly config schema's `preProcessSnapshot`, lifted out so a
|
|
24
|
+
* caller that has to see canonical locations *before* MST builds the tree can
|
|
25
|
+
* run it too. `localFiles` is that caller: it rewrites `{ uri: <a registered
|
|
26
|
+
* name> }` location nodes into blobs, and until this has run the only `uri` in
|
|
27
|
+
* a shorthand assembly is on the assembly itself, where it is not a location
|
|
28
|
+
* node and must not be rewritten as one. Idempotent — the flat `uri` is
|
|
29
|
+
* consumed, so the schema's own later pass finds nothing to do.
|
|
30
|
+
*/
|
|
31
|
+
export declare function expandAssemblyShorthand<T>(snap: T, pluginManager: PluginManager): T;
|
|
32
|
+
export declare function expandAssemblySequenceAdapter(sequence: unknown, pluginManager: PluginManager): unknown;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { UNKNOWN } from '../util/tracks.js';
|
|
2
|
+
function isPlainObject(v) {
|
|
3
|
+
return typeof v === 'object' && v !== null && !Array.isArray(v);
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* Fill in an assembly `sequence.adapter`'s `type` from its `uri` when the type
|
|
7
|
+
* is omitted, so `sequence: { adapter: { uri: 'genome.fa.gz' } }` resolves to a
|
|
8
|
+
* `BgzipFastaAdapter` (and `.fa` → indexed, `.2bit` → `TwoBitAdapter`). Uses the
|
|
9
|
+
* same `Core-guessAdapterForLocation` extension point the "Add track" flow uses,
|
|
10
|
+
* so every host describes a custom genome with just a URL and lets jbrowse-core
|
|
11
|
+
* pick the adapter — no adapter-type table in the Python/R/JS bindings.
|
|
12
|
+
*
|
|
13
|
+
* The guesser also derives the index locations (`.fai`/`.gzi`) from the uri;
|
|
14
|
+
* explicit adapter fields (e.g. a non-sibling `faiLocation`) are spread on top
|
|
15
|
+
* so they win. A `uri` matching no sequence adapter is left untouched, so a
|
|
16
|
+
* genuinely bad config still surfaces its own downstream error. Returns the same
|
|
17
|
+
* object reference when there is nothing to expand, so callers can cheaply skip
|
|
18
|
+
* a rebuild.
|
|
19
|
+
*/
|
|
20
|
+
/**
|
|
21
|
+
* Expand an assembly snapshot's own shorthands into the `sequence` an assembly
|
|
22
|
+
* config declares: the flat `{ name, uri: 'genome.fa.gz' }` form, the
|
|
23
|
+
* `sequence: { adapter: { uri } }` form, and the omitted
|
|
24
|
+
* `sequence.type`/`trackId`.
|
|
25
|
+
*
|
|
26
|
+
* This is the assembly config schema's `preProcessSnapshot`, lifted out so a
|
|
27
|
+
* caller that has to see canonical locations *before* MST builds the tree can
|
|
28
|
+
* run it too. `localFiles` is that caller: it rewrites `{ uri: <a registered
|
|
29
|
+
* name> }` location nodes into blobs, and until this has run the only `uri` in
|
|
30
|
+
* a shorthand assembly is on the assembly itself, where it is not a location
|
|
31
|
+
* node and must not be rewritten as one. Idempotent — the flat `uri` is
|
|
32
|
+
* consumed, so the schema's own later pass finds nothing to do.
|
|
33
|
+
*/
|
|
34
|
+
export function expandAssemblyShorthand(snap, pluginManager) {
|
|
35
|
+
if (!isPlainObject(snap)) {
|
|
36
|
+
return snap;
|
|
37
|
+
}
|
|
38
|
+
const { name, uri, baseUri, ...rest } = snap;
|
|
39
|
+
// flattest shorthand: `{ name, uri: 'genome.fa.gz' }` describes an
|
|
40
|
+
// assembly by its sequence file alone. baseUri, stamped next to the
|
|
41
|
+
// `uri` key by addRelativeUris (hub/relative configs), rides down onto
|
|
42
|
+
// the adapter so the sequence resolves against the config's location.
|
|
43
|
+
const rawSequence = rest.sequence ??
|
|
44
|
+
(typeof uri === 'string'
|
|
45
|
+
? { adapter: { uri, ...(baseUri ? { baseUri } : {}) } }
|
|
46
|
+
: undefined);
|
|
47
|
+
// infer sequence.adapter.type from its uri when omitted, so a config can
|
|
48
|
+
// give just `sequence: { adapter: { uri: 'genome.fa.gz' } }` and core
|
|
49
|
+
// picks the adapter (Bgzip/Indexed/TwoBit) — no adapter table in hosts
|
|
50
|
+
const seq = expandAssemblySequenceAdapter(rawSequence, pluginManager);
|
|
51
|
+
// then allow sequence.type/trackId to be omitted, since they are always
|
|
52
|
+
// 'ReferenceSequenceTrack' and a name derived from the assembly name
|
|
53
|
+
const sequence = seq && typeof seq === 'object' && !('type' in seq)
|
|
54
|
+
? {
|
|
55
|
+
type: 'ReferenceSequenceTrack',
|
|
56
|
+
trackId: `${name}-ReferenceSequenceTrack`,
|
|
57
|
+
...seq,
|
|
58
|
+
}
|
|
59
|
+
: seq;
|
|
60
|
+
// preserve the identity-unchanged case so nothing rebuilds needlessly
|
|
61
|
+
return (sequence === snap.sequence ? snap : { ...rest, name, sequence });
|
|
62
|
+
}
|
|
63
|
+
export function expandAssemblySequenceAdapter(sequence, pluginManager) {
|
|
64
|
+
const adapter = isPlainObject(sequence) ? sequence.adapter : undefined;
|
|
65
|
+
if (isPlainObject(sequence) &&
|
|
66
|
+
isPlainObject(adapter) &&
|
|
67
|
+
!('type' in adapter) &&
|
|
68
|
+
typeof adapter.uri === 'string') {
|
|
69
|
+
const { uri, baseUri, ...extras } = adapter;
|
|
70
|
+
const guesser = pluginManager.evaluateExtensionPoint('Core-guessAdapterForLocation', () => undefined);
|
|
71
|
+
// baseUri (stamped next to `uri` by addRelativeUris for hub/relative configs)
|
|
72
|
+
// rides on the file location so the guessed fastaLocation and its derived
|
|
73
|
+
// .fai/.gzi siblings all resolve against the config's own location
|
|
74
|
+
const file = {
|
|
75
|
+
uri,
|
|
76
|
+
locationType: 'UriLocation',
|
|
77
|
+
...(typeof baseUri === 'string' ? { baseUri } : {}),
|
|
78
|
+
};
|
|
79
|
+
const guess = guesser(file, undefined);
|
|
80
|
+
return guess && guess.type !== UNKNOWN
|
|
81
|
+
? { ...sequence, adapter: { ...guess, ...extras } }
|
|
82
|
+
: sequence;
|
|
83
|
+
}
|
|
84
|
+
return sequence;
|
|
85
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { BaseOptions } from '../data_adapters/BaseAdapter/types.ts';
|
|
3
|
+
import type { FileLocation } from '../util/types/index.ts';
|
|
4
|
+
import type { RefNameAliases } from './refNameMaps.ts';
|
|
5
|
+
/**
|
|
6
|
+
* NCBI genetic-code (translation table) id for `refName`, taken from the first
|
|
7
|
+
* of `maps` holding an entry for it, else the standard code (1).
|
|
8
|
+
*
|
|
9
|
+
* A map key and `refName` may each independently be a canonical name or an
|
|
10
|
+
* alias of one: a config generated from NCBI keys by the GFF's RefSeq accession
|
|
11
|
+
* while the assembly's canonical name is the UCSC-style one, and callers that
|
|
12
|
+
* pass a feature's own refName rather than the canonical one. Both sides are
|
|
13
|
+
* resolved through `refNameAliases` (loaded from the chromAlias file) so they
|
|
14
|
+
* meet. The maps are per-assembly contig lists, so scanning them is cheap.
|
|
15
|
+
*/
|
|
16
|
+
export declare function lookupGeneticCodeId(refName: string, refNameAliases: RefNameAliases | undefined, maps: Record<string, number>[]): number;
|
|
17
|
+
export declare function getGeneticCodesFromFile({ location, pluginManager, opts, }: {
|
|
18
|
+
location: FileLocation | undefined;
|
|
19
|
+
pluginManager: PluginManager;
|
|
20
|
+
opts?: BaseOptions;
|
|
21
|
+
}): Promise<Record<string, number>>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { isBlank } from '../util/assemblyConfigUtils.js';
|
|
2
|
+
import { fetchAndMaybeUnzipText } from '../util/fetchAndMaybeUnzip.js';
|
|
3
|
+
import { parseTranslTable } from '../util/geneticCodes.js';
|
|
4
|
+
import { openLocation } from '../util/io/index.js';
|
|
5
|
+
/** NCBI's standard genetic code, used by any refName without a mapping */
|
|
6
|
+
const STANDARD_GENETIC_CODE_ID = 1;
|
|
7
|
+
/**
|
|
8
|
+
* NCBI genetic-code (translation table) id for `refName`, taken from the first
|
|
9
|
+
* of `maps` holding an entry for it, else the standard code (1).
|
|
10
|
+
*
|
|
11
|
+
* A map key and `refName` may each independently be a canonical name or an
|
|
12
|
+
* alias of one: a config generated from NCBI keys by the GFF's RefSeq accession
|
|
13
|
+
* while the assembly's canonical name is the UCSC-style one, and callers that
|
|
14
|
+
* pass a feature's own refName rather than the canonical one. Both sides are
|
|
15
|
+
* resolved through `refNameAliases` (loaded from the chromAlias file) so they
|
|
16
|
+
* meet. The maps are per-assembly contig lists, so scanning them is cheap.
|
|
17
|
+
*/
|
|
18
|
+
export function lookupGeneticCodeId(refName, refNameAliases, maps) {
|
|
19
|
+
const canonicalize = (name) => refNameAliases?.[name] ?? name;
|
|
20
|
+
const target = canonicalize(refName);
|
|
21
|
+
return (maps
|
|
22
|
+
.map(map => map[refName] ??
|
|
23
|
+
Object.entries(map).find(([k]) => canonicalize(k) === target)?.[1])
|
|
24
|
+
.find(id => id !== undefined) ?? STANDARD_GENETIC_CODE_ID);
|
|
25
|
+
}
|
|
26
|
+
// Loads an optional `refName<TAB>geneticCodeId` TSV (# comments allowed) into a
|
|
27
|
+
// map; an empty location yields {} so the inline geneticCodes slot is the only
|
|
28
|
+
// source. Kept as a plain file read rather than a pluggable adapter because the
|
|
29
|
+
// mapping is trivial and format-fixed.
|
|
30
|
+
export async function getGeneticCodesFromFile({ location, pluginManager, opts, }) {
|
|
31
|
+
const map = {};
|
|
32
|
+
// skip the config slot's default blank location ({ uri: '' }); a real file
|
|
33
|
+
// yields the refName -> geneticCodeId map
|
|
34
|
+
if (location && !isBlank(location)) {
|
|
35
|
+
const text = await fetchAndMaybeUnzipText(openLocation(location, pluginManager), opts, 'Downloading genetic codes');
|
|
36
|
+
for (const line of text.split(/\r\n|\r|\n/)) {
|
|
37
|
+
if (line && !line.startsWith('#')) {
|
|
38
|
+
const [refName, codeColumn] = line.split('\t');
|
|
39
|
+
const id = parseTranslTable(codeColumn);
|
|
40
|
+
if (refName && id !== undefined) {
|
|
41
|
+
map[refName] = id;
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
return map;
|
|
47
|
+
}
|