@jbrowse/core 4.3.0 → 5.0.0-beta.1
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 +783 -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 +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- 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 +84 -65
- 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/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 +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- 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 +326 -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 +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- 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/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -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 +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- 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 +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- 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 +68 -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 +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +195 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -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 +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -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 +265 -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 +49 -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 +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -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/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 +136 -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 +368 -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 +9 -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 +124 -4
- package/esm/ui/MenuTypes.js +13 -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 +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -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 +36 -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 +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -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 +44 -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 +23 -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/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -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 +52 -0
- package/esm/util/cacheBudgets.js +52 -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 +117 -0
- package/esm/util/createStopTokenRotation.js +147 -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 +160 -0
- package/esm/util/hooks.js +416 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +136 -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 +194 -0
- package/esm/util/installFetch.js +178 -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/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -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 +89 -0
- package/esm/util/mstUtils.js +122 -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 +113 -0
- package/esm/util/pluginStore.js +253 -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 +42 -1
- package/esm/util/range.js +59 -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 +14 -1
- package/esm/util/rxjs.js +39 -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 +120 -0
- package/esm/util/tabix.js +143 -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 +350 -30
- package/esm/util/tracks.js +574 -192
- 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 +358 -119
- package/esm/util/types/index.js +87 -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/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 +58 -0
- package/esm/util/viewStatus.js +20 -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 +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -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,12 +1,23 @@
|
|
|
1
|
-
export function isSequenceAdapter(t) {
|
|
2
|
-
return 'getRegions' in t && 'getFeatures' in t;
|
|
3
|
-
}
|
|
4
1
|
export function isRegionsAdapter(t) {
|
|
5
2
|
return 'getRegions' in t;
|
|
6
3
|
}
|
|
7
4
|
export function isFeatureAdapter(t) {
|
|
8
5
|
return 'getFeatures' in t;
|
|
9
6
|
}
|
|
7
|
+
// An adapter that can report the refNames its file uses, which is all refName
|
|
8
|
+
// renaming needs. Deliberately broader than isFeatureAdapter: an adapter can
|
|
9
|
+
// serve a non-feature payload (precomputed LD pairs, say) and still need its
|
|
10
|
+
// contig names reconciled with the assembly's. Gating refName lookup on
|
|
11
|
+
// isFeatureAdapter instead meant such an adapter reported *zero* refNames, so
|
|
12
|
+
// the refName map came back empty, so renaming silently did nothing and every
|
|
13
|
+
// record was later dropped on an exact-match refName test - a blank track with
|
|
14
|
+
// no error. See CoreGetRefNames.
|
|
15
|
+
export function isRefNameSource(t) {
|
|
16
|
+
return typeof t.getRefNames === 'function';
|
|
17
|
+
}
|
|
18
|
+
export function isSequenceAdapter(t) {
|
|
19
|
+
return 'getSequence' in t;
|
|
20
|
+
}
|
|
10
21
|
export function isRefNameAliasAdapter(t) {
|
|
11
22
|
return 'getRefNameAliases' in t;
|
|
12
23
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { SimpleFeature } from '../../util/index.ts';
|
|
2
2
|
import { BaseAdapter } from '../BaseAdapter/index.ts';
|
|
3
|
-
import type { BaseOptions } from '../BaseAdapter/
|
|
3
|
+
import type { BaseOptions } from '../BaseAdapter/types.ts';
|
|
4
4
|
export default class CytobandAdapter extends BaseAdapter {
|
|
5
5
|
getData(opts?: BaseOptions): Promise<SimpleFeature[]>;
|
|
6
6
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { SimpleFeature, fetchAndMaybeUnzipText } from
|
|
2
|
-
import { openLocation } from
|
|
3
|
-
import { BaseAdapter } from
|
|
1
|
+
import { SimpleFeature, fetchAndMaybeUnzipText } from '../../util/index.js';
|
|
2
|
+
import { openLocation } from '../../util/io/index.js';
|
|
3
|
+
import { BaseAdapter } from '../BaseAdapter/index.js';
|
|
4
4
|
export default class CytobandAdapter extends BaseAdapter {
|
|
5
5
|
async getData(opts) {
|
|
6
6
|
const conf = this.getConf('cytobandLocation');
|
|
7
7
|
if (conf.uri === '' || conf.uri === '/path/to/cytoband.txt.gz') {
|
|
8
8
|
return [];
|
|
9
9
|
}
|
|
10
|
-
const text = await fetchAndMaybeUnzipText(openLocation(conf, this.pluginManager), opts);
|
|
10
|
+
const text = await fetchAndMaybeUnzipText(openLocation(conf, this.pluginManager), opts, 'Downloading cytobands');
|
|
11
11
|
return text
|
|
12
12
|
.split(/\n|\r\n|\r/)
|
|
13
13
|
.filter(f => !!f.trim())
|
|
@@ -1,8 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #config CytobandAdapter
|
|
3
|
+
*
|
|
4
|
+
* #example
|
|
5
|
+
* Goes on an ASSEMBLY, under `cytobands` — not on a track. It draws the
|
|
6
|
+
* ideogram banding in the linear genome view's overview bar:
|
|
7
|
+
* ```js
|
|
8
|
+
* {
|
|
9
|
+
* name: 'hg38',
|
|
10
|
+
* sequence: {
|
|
11
|
+
* type: 'ReferenceSequenceTrack',
|
|
12
|
+
* trackId: 'hg38-ReferenceSequenceTrack',
|
|
13
|
+
* adapter: {
|
|
14
|
+
* type: 'BgzipFastaAdapter',
|
|
15
|
+
* uri: 'https://example.com/hg38.fa.gz',
|
|
16
|
+
* },
|
|
17
|
+
* },
|
|
18
|
+
* cytobands: {
|
|
19
|
+
* adapter: {
|
|
20
|
+
* type: 'CytobandAdapter',
|
|
21
|
+
* uri: 'https://example.com/hg38.cytoBand.txt.gz',
|
|
22
|
+
* },
|
|
23
|
+
* },
|
|
24
|
+
* }
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
1
27
|
declare const configSchema: import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
28
|
+
/**
|
|
29
|
+
* #slot
|
|
30
|
+
* location of a UCSC-style `cytoBand.txt` (`chrom start end name
|
|
31
|
+
* gieStain`), which draws the ideogram banding in the view's overview bar.
|
|
32
|
+
* May be gzipped. Configured on an assembly, not on a track.
|
|
33
|
+
*/
|
|
34
|
+
readonly cytobandLocation: {
|
|
35
|
+
readonly type: "fileLocation";
|
|
36
|
+
readonly defaultValue: {
|
|
37
|
+
readonly uri: "/path/to/cytoband.txt.gz";
|
|
6
38
|
};
|
|
7
39
|
};
|
|
8
40
|
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, undefined>>;
|
|
@@ -1,6 +1,37 @@
|
|
|
1
|
-
import { ConfigurationSchema } from
|
|
2
|
-
|
|
1
|
+
import { ConfigurationSchema } from '../../configuration/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* #config CytobandAdapter
|
|
4
|
+
*
|
|
5
|
+
* #example
|
|
6
|
+
* Goes on an ASSEMBLY, under `cytobands` — not on a track. It draws the
|
|
7
|
+
* ideogram banding in the linear genome view's overview bar:
|
|
8
|
+
* ```js
|
|
9
|
+
* {
|
|
10
|
+
* name: 'hg38',
|
|
11
|
+
* sequence: {
|
|
12
|
+
* type: 'ReferenceSequenceTrack',
|
|
13
|
+
* trackId: 'hg38-ReferenceSequenceTrack',
|
|
14
|
+
* adapter: {
|
|
15
|
+
* type: 'BgzipFastaAdapter',
|
|
16
|
+
* uri: 'https://example.com/hg38.fa.gz',
|
|
17
|
+
* },
|
|
18
|
+
* },
|
|
19
|
+
* cytobands: {
|
|
20
|
+
* adapter: {
|
|
21
|
+
* type: 'CytobandAdapter',
|
|
22
|
+
* uri: 'https://example.com/hg38.cytoBand.txt.gz',
|
|
23
|
+
* },
|
|
24
|
+
* },
|
|
25
|
+
* }
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
3
28
|
const configSchema = ConfigurationSchema('CytobandAdapter', {
|
|
29
|
+
/**
|
|
30
|
+
* #slot
|
|
31
|
+
* location of a UCSC-style `cytoBand.txt` (`chrom start end name
|
|
32
|
+
* gieStain`), which draws the ideogram banding in the view's overview bar.
|
|
33
|
+
* May be gzipped. Configured on an assembly, not on a track.
|
|
34
|
+
*/
|
|
4
35
|
cytobandLocation: {
|
|
5
36
|
type: 'fileLocation',
|
|
6
37
|
defaultValue: {
|
|
@@ -9,7 +40,20 @@ const configSchema = ConfigurationSchema('CytobandAdapter', {
|
|
|
9
40
|
},
|
|
10
41
|
}, {
|
|
11
42
|
explicitlyTyped: true,
|
|
43
|
+
/**
|
|
44
|
+
* #preProcessSnapshot
|
|
45
|
+
*
|
|
46
|
+
*
|
|
47
|
+
* preprocessor to allow minimal config:
|
|
48
|
+
* ```json
|
|
49
|
+
* {
|
|
50
|
+
* "type": "CytobandAdapter",
|
|
51
|
+
* "uri": "yourfile.bed"
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
12
55
|
preProcessSnapshot: snap => {
|
|
56
|
+
// populate from just snap.uri
|
|
13
57
|
return snap.uri
|
|
14
58
|
? {
|
|
15
59
|
...snap,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import { AdapterType } from '../../pluggableElementTypes/index.js';
|
|
2
|
+
import configSchema from './configSchema.js';
|
|
3
3
|
export default function CytobandAdapterF(pluginManager) {
|
|
4
4
|
pluginManager.addAdapterType(() => new AdapterType({
|
|
5
5
|
name: 'CytobandAdapter',
|
|
@@ -7,6 +7,6 @@ export default function CytobandAdapterF(pluginManager) {
|
|
|
7
7
|
adapterMetadata: {
|
|
8
8
|
hiddenFromGUI: true,
|
|
9
9
|
},
|
|
10
|
-
getAdapterClass: () => import(
|
|
10
|
+
getAdapterClass: () => import('./CytobandAdapter.js').then(f => f.default),
|
|
11
11
|
}));
|
|
12
12
|
}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Counts how many live track models are using each rpcSessionId, so the
|
|
3
|
+
* worker-side dataAdapterCache can be told when the last one goes away.
|
|
4
|
+
*
|
|
5
|
+
* ## Why a refcount and not just "track closed"
|
|
6
|
+
*
|
|
7
|
+
* An rpcSessionId is derived from the *adapter config* (BaseTrackModel's
|
|
8
|
+
* `rpcSessionId` getter is `adapterConfigCacheKey(adapter)`), so it is shared by
|
|
9
|
+
* every track model with that config — the same track shown in two linear genome
|
|
10
|
+
* views is two model instances with one id, as is a pair of tracks configured
|
|
11
|
+
* alike. Freeing on any close would evict an adapter the other view is still
|
|
12
|
+
* querying. The count is incremented per track model and the free only fires at
|
|
13
|
+
* zero.
|
|
14
|
+
*
|
|
15
|
+
* Counting here rather than walking the state tree at teardown keeps it exact:
|
|
16
|
+
* during a session teardown the tree is already coming apart, and "is any other
|
|
17
|
+
* track still using this?" is not a question worth asking of a half-destroyed
|
|
18
|
+
* tree.
|
|
19
|
+
*
|
|
20
|
+
* ## Why a WeakMap keyed on the rpcManager
|
|
21
|
+
*
|
|
22
|
+
* The counts belong to one session. Keying them on the session's own RpcManager
|
|
23
|
+
* means a discarded session's counts are collected with it, with no reset call
|
|
24
|
+
* for anyone to forget. This is the case the adapter cache itself cannot use —
|
|
25
|
+
* see dataAdapterCache — because here the key is a main-thread object whose
|
|
26
|
+
* lifetime already matches, rather than a string that crossed a worker boundary.
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* The slice of RpcManager this needs. Structural rather than the concrete class
|
|
30
|
+
* so that the partial stubs the model tests build satisfy it, and so that
|
|
31
|
+
* adapter-lifetime bookkeeping does not depend on the RPC transport.
|
|
32
|
+
*/
|
|
33
|
+
interface RpcCaller {
|
|
34
|
+
freeSession(sessionId: string): Promise<void>;
|
|
35
|
+
}
|
|
36
|
+
/** Record that a track model is using `sessionId`. Pair with release. */
|
|
37
|
+
export declare function retainAdapterSession(rpcManager: RpcCaller | undefined, sessionId: string): void;
|
|
38
|
+
/**
|
|
39
|
+
* Give up one claim on `sessionId`. When the last one goes, ask the worker to
|
|
40
|
+
* drop the adapters cached under it — which is the only thing that ever makes
|
|
41
|
+
* them collectable, since the cache is a strong reference rooted in module
|
|
42
|
+
* scope.
|
|
43
|
+
*
|
|
44
|
+
* The free lands on the same driver the track's queries ran on, because every
|
|
45
|
+
* call in the app runs on the one the session resolved — and, under a worker
|
|
46
|
+
* pool, on the same worker, without booting one for a session that never
|
|
47
|
+
* dispatched anything. See `BaseRpcDriver.freeSession`.
|
|
48
|
+
*
|
|
49
|
+
* Errors are swallowed on purpose. This runs on teardown, where a worker
|
|
50
|
+
* already terminated by a session switch is the expected case rather than a
|
|
51
|
+
* fault, and nothing downstream could act on the failure anyway.
|
|
52
|
+
*
|
|
53
|
+
* Closing and immediately reopening the same track can race: the free is in
|
|
54
|
+
* flight while the reopened track re-retains, and the eviction lands on the
|
|
55
|
+
* adapter the new track just claimed. It costs that track one re-setup and
|
|
56
|
+
* heals itself on the next query, because an evicted adapter is only ever a
|
|
57
|
+
* cold cache. Sequencing it away would mean generation counters on a cache,
|
|
58
|
+
* which is a poor trade for a mis-click.
|
|
59
|
+
*/
|
|
60
|
+
export declare function releaseAdapterSession(rpcManager: RpcCaller | undefined, sessionId: string): Promise<void>;
|
|
61
|
+
export {};
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Counts how many live track models are using each rpcSessionId, so the
|
|
3
|
+
* worker-side dataAdapterCache can be told when the last one goes away.
|
|
4
|
+
*
|
|
5
|
+
* ## Why a refcount and not just "track closed"
|
|
6
|
+
*
|
|
7
|
+
* An rpcSessionId is derived from the *adapter config* (BaseTrackModel's
|
|
8
|
+
* `rpcSessionId` getter is `adapterConfigCacheKey(adapter)`), so it is shared by
|
|
9
|
+
* every track model with that config — the same track shown in two linear genome
|
|
10
|
+
* views is two model instances with one id, as is a pair of tracks configured
|
|
11
|
+
* alike. Freeing on any close would evict an adapter the other view is still
|
|
12
|
+
* querying. The count is incremented per track model and the free only fires at
|
|
13
|
+
* zero.
|
|
14
|
+
*
|
|
15
|
+
* Counting here rather than walking the state tree at teardown keeps it exact:
|
|
16
|
+
* during a session teardown the tree is already coming apart, and "is any other
|
|
17
|
+
* track still using this?" is not a question worth asking of a half-destroyed
|
|
18
|
+
* tree.
|
|
19
|
+
*
|
|
20
|
+
* ## Why a WeakMap keyed on the rpcManager
|
|
21
|
+
*
|
|
22
|
+
* The counts belong to one session. Keying them on the session's own RpcManager
|
|
23
|
+
* means a discarded session's counts are collected with it, with no reset call
|
|
24
|
+
* for anyone to forget. This is the case the adapter cache itself cannot use —
|
|
25
|
+
* see dataAdapterCache — because here the key is a main-thread object whose
|
|
26
|
+
* lifetime already matches, rather than a string that crossed a worker boundary.
|
|
27
|
+
*/
|
|
28
|
+
const refcounts = new WeakMap();
|
|
29
|
+
/**
|
|
30
|
+
* Whether there is an rpcManager to key counts on and to send a free to. A
|
|
31
|
+
* session model assembled without one — which model unit tests do routinely —
|
|
32
|
+
* should not make opening a track throw over what is only a cache hint, so both
|
|
33
|
+
* entry points degrade to no-ops. It also has to be an object before it can be
|
|
34
|
+
* a WeakMap key at all.
|
|
35
|
+
*/
|
|
36
|
+
function isUsable(rpcManager) {
|
|
37
|
+
return typeof rpcManager?.freeSession === 'function';
|
|
38
|
+
}
|
|
39
|
+
function countsFor(rpcManager) {
|
|
40
|
+
let counts = refcounts.get(rpcManager);
|
|
41
|
+
if (!counts) {
|
|
42
|
+
counts = new Map();
|
|
43
|
+
refcounts.set(rpcManager, counts);
|
|
44
|
+
}
|
|
45
|
+
return counts;
|
|
46
|
+
}
|
|
47
|
+
/** Record that a track model is using `sessionId`. Pair with release. */
|
|
48
|
+
export function retainAdapterSession(rpcManager, sessionId) {
|
|
49
|
+
if (!isUsable(rpcManager)) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
const counts = countsFor(rpcManager);
|
|
53
|
+
counts.set(sessionId, (counts.get(sessionId) ?? 0) + 1);
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Give up one claim on `sessionId`. When the last one goes, ask the worker to
|
|
57
|
+
* drop the adapters cached under it — which is the only thing that ever makes
|
|
58
|
+
* them collectable, since the cache is a strong reference rooted in module
|
|
59
|
+
* scope.
|
|
60
|
+
*
|
|
61
|
+
* The free lands on the same driver the track's queries ran on, because every
|
|
62
|
+
* call in the app runs on the one the session resolved — and, under a worker
|
|
63
|
+
* pool, on the same worker, without booting one for a session that never
|
|
64
|
+
* dispatched anything. See `BaseRpcDriver.freeSession`.
|
|
65
|
+
*
|
|
66
|
+
* Errors are swallowed on purpose. This runs on teardown, where a worker
|
|
67
|
+
* already terminated by a session switch is the expected case rather than a
|
|
68
|
+
* fault, and nothing downstream could act on the failure anyway.
|
|
69
|
+
*
|
|
70
|
+
* Closing and immediately reopening the same track can race: the free is in
|
|
71
|
+
* flight while the reopened track re-retains, and the eviction lands on the
|
|
72
|
+
* adapter the new track just claimed. It costs that track one re-setup and
|
|
73
|
+
* heals itself on the next query, because an evicted adapter is only ever a
|
|
74
|
+
* cold cache. Sequencing it away would mean generation counters on a cache,
|
|
75
|
+
* which is a poor trade for a mis-click.
|
|
76
|
+
*/
|
|
77
|
+
export async function releaseAdapterSession(rpcManager, sessionId) {
|
|
78
|
+
if (!isUsable(rpcManager)) {
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
const counts = countsFor(rpcManager);
|
|
82
|
+
// a release with no matching retain floors at zero and frees, rather than
|
|
83
|
+
// going negative and silently suppressing the next real free
|
|
84
|
+
const remaining = (counts.get(sessionId) ?? 1) - 1;
|
|
85
|
+
if (remaining > 0) {
|
|
86
|
+
counts.set(sessionId, remaining);
|
|
87
|
+
return;
|
|
88
|
+
}
|
|
89
|
+
counts.delete(sessionId);
|
|
90
|
+
try {
|
|
91
|
+
await rpcManager.freeSession(sessionId);
|
|
92
|
+
}
|
|
93
|
+
catch {
|
|
94
|
+
// teardown; see above
|
|
95
|
+
}
|
|
96
|
+
}
|
|
@@ -3,12 +3,46 @@ import type { AnyConfigurationSchemaType } from '../configuration/index.ts';
|
|
|
3
3
|
import type { AnyDataAdapter } from './BaseAdapter/index.ts';
|
|
4
4
|
import type { SnapshotIn } from '@jbrowse/mobx-state-tree';
|
|
5
5
|
type ConfigSnap = SnapshotIn<AnyConfigurationSchemaType>;
|
|
6
|
+
export declare function adapterConfigCacheKey(conf?: Record<string, unknown>): string;
|
|
6
7
|
interface AdapterCacheEntry {
|
|
7
8
|
dataAdapter: AnyDataAdapter;
|
|
8
9
|
sessionIds: Set<string>;
|
|
9
10
|
}
|
|
11
|
+
/** instantiate a data adapter, or return a cached one with the same config */
|
|
10
12
|
export declare function getAdapter(pluginManager: PluginManager, sessionId: string, adapterConfigSnapshot: SnapshotIn<AnyConfigurationSchemaType>): Promise<AdapterCacheEntry>;
|
|
13
|
+
/**
|
|
14
|
+
* this is a callback that is passed to adapters that allows them to get any
|
|
15
|
+
* sub-adapters that they need internally, staying with the same worker session
|
|
16
|
+
* ID
|
|
17
|
+
*/
|
|
11
18
|
export type getSubAdapterType = (adapterConfigSnap: ConfigSnap) => ReturnType<typeof getAdapter>;
|
|
12
|
-
|
|
19
|
+
/**
|
|
20
|
+
* Drop this session's claim on every cached adapter, and evict the ones no
|
|
21
|
+
* other session still claims. Reached from the CoreFreeResources RPC when the
|
|
22
|
+
* last track using an adapter config closes.
|
|
23
|
+
*
|
|
24
|
+
* Deleting the key is the whole reclamation: the cache is the only strong
|
|
25
|
+
* reference to an adapter, so once it goes the instance and everything it holds
|
|
26
|
+
* — a whole parsed GFF3, a BAM chunk cache — become unreachable and are
|
|
27
|
+
* collected normally. There is nothing to free by hand.
|
|
28
|
+
*
|
|
29
|
+
* "Collected normally" is not the same as "collected now", and for the indexed
|
|
30
|
+
* adapters it is not even soon. @gmod/bam, @gmod/cram and @gmod/tabix each hold
|
|
31
|
+
* their parsed chunks in a SharedReadCache that sweeps itself on a setInterval,
|
|
32
|
+
* and a pending timer is a GC root — so the instance stays reachable through its
|
|
33
|
+
* own sweep timer until that sweep empties the cache and stops itself, three
|
|
34
|
+
* minutes later. Measured: closing a panned alignments track reclaims nothing at
|
|
35
|
+
* the time it happens, and the worker falls from 296 MB to 7 MB four minutes on.
|
|
36
|
+
* Deleting the key is still the only thing to do here; just don't read a heap
|
|
37
|
+
* immediately after a close and conclude this did nothing.
|
|
38
|
+
*
|
|
39
|
+
* The refcount is what makes this safe to call on any track close: an adapter
|
|
40
|
+
* pulled in as a sub-adapter carries its parent's sessionId (getSubAdapter
|
|
41
|
+
* passes it straight through), so a sequence adapter shared by two alignments
|
|
42
|
+
* tracks survives either one of them closing.
|
|
43
|
+
*/
|
|
44
|
+
export declare function freeAdapterResources(args: {
|
|
45
|
+
sessionId?: string;
|
|
46
|
+
}): Promise<void>;
|
|
13
47
|
export declare function clearAdapterCache(): void;
|
|
14
48
|
export {};
|
|
@@ -1,16 +1,31 @@
|
|
|
1
|
-
import
|
|
1
|
+
import idMaker from '../util/idMaker.js';
|
|
2
|
+
export function adapterConfigCacheKey(conf = {}) {
|
|
3
|
+
const { adapterId } = conf;
|
|
4
|
+
return typeof adapterId === 'string' && adapterId ? adapterId : idMaker(conf);
|
|
5
|
+
}
|
|
6
|
+
// Pruned by storeWithEvict (rejections) and by freeAdapterResources, which the
|
|
7
|
+
// CoreFreeResources RPC reaches when the last track holding an adapter config is
|
|
8
|
+
// closed (releaseAdapterSession). There is still no size bound: an adapter
|
|
9
|
+
// whose track stays open lives as long as its worker, by design.
|
|
2
10
|
let adapterCache = {};
|
|
11
|
+
/** stores a promise in the cache and auto-evicts if it rejects */
|
|
12
|
+
function storeWithEvict(key, p) {
|
|
13
|
+
p.catch(() => {
|
|
14
|
+
delete adapterCache[key];
|
|
15
|
+
});
|
|
16
|
+
adapterCache[key] = p;
|
|
17
|
+
return p;
|
|
18
|
+
}
|
|
3
19
|
async function getAdapterPre(pluginManager, sessionId, adapterConfigSnapshot) {
|
|
4
20
|
const adapterType = adapterConfigSnapshot?.type;
|
|
5
21
|
if (!adapterType) {
|
|
6
22
|
throw new Error(`could not determine adapter type from adapter config snapshot ${JSON.stringify(adapterConfigSnapshot)}`);
|
|
7
23
|
}
|
|
8
24
|
const dataAdapterType = pluginManager.getAdapterType(adapterType);
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
}
|
|
25
|
+
// instantiate the data adapter's config schema so it gets its defaults,
|
|
26
|
+
// callbacks, etc
|
|
12
27
|
const adapterConfig = dataAdapterType.configSchema.create(adapterConfigSnapshot, { pluginManager });
|
|
13
|
-
const getSubAdapter = getAdapter
|
|
28
|
+
const getSubAdapter = conf => getAdapter(pluginManager, sessionId, conf);
|
|
14
29
|
const CLASS = await dataAdapterType.getAdapterClass();
|
|
15
30
|
const dataAdapter = new CLASS(adapterConfig, getSubAdapter, pluginManager);
|
|
16
31
|
return {
|
|
@@ -18,34 +33,59 @@ async function getAdapterPre(pluginManager, sessionId, adapterConfigSnapshot) {
|
|
|
18
33
|
sessionIds: new Set([sessionId]),
|
|
19
34
|
};
|
|
20
35
|
}
|
|
21
|
-
|
|
36
|
+
/** look up the cached entry for a config, creating and storing it if absent */
|
|
37
|
+
function getOrCreateEntry(pluginManager, sessionId, adapterConfigSnapshot) {
|
|
22
38
|
const cacheKey = adapterConfigCacheKey(adapterConfigSnapshot);
|
|
23
|
-
adapterCache[cacheKey]
|
|
24
|
-
|
|
39
|
+
return (adapterCache[cacheKey] ??
|
|
40
|
+
storeWithEvict(cacheKey, getAdapterPre(pluginManager, sessionId, adapterConfigSnapshot)));
|
|
41
|
+
}
|
|
42
|
+
/** instantiate a data adapter, or return a cached one with the same config */
|
|
43
|
+
export async function getAdapter(pluginManager, sessionId, adapterConfigSnapshot) {
|
|
44
|
+
const ret = await getOrCreateEntry(pluginManager, sessionId, adapterConfigSnapshot);
|
|
25
45
|
ret.sessionIds.add(sessionId);
|
|
26
46
|
return ret;
|
|
27
47
|
}
|
|
48
|
+
/**
|
|
49
|
+
* Drop this session's claim on every cached adapter, and evict the ones no
|
|
50
|
+
* other session still claims. Reached from the CoreFreeResources RPC when the
|
|
51
|
+
* last track using an adapter config closes.
|
|
52
|
+
*
|
|
53
|
+
* Deleting the key is the whole reclamation: the cache is the only strong
|
|
54
|
+
* reference to an adapter, so once it goes the instance and everything it holds
|
|
55
|
+
* — a whole parsed GFF3, a BAM chunk cache — become unreachable and are
|
|
56
|
+
* collected normally. There is nothing to free by hand.
|
|
57
|
+
*
|
|
58
|
+
* "Collected normally" is not the same as "collected now", and for the indexed
|
|
59
|
+
* adapters it is not even soon. @gmod/bam, @gmod/cram and @gmod/tabix each hold
|
|
60
|
+
* their parsed chunks in a SharedReadCache that sweeps itself on a setInterval,
|
|
61
|
+
* and a pending timer is a GC root — so the instance stays reachable through its
|
|
62
|
+
* own sweep timer until that sweep empties the cache and stops itself, three
|
|
63
|
+
* minutes later. Measured: closing a panned alignments track reclaims nothing at
|
|
64
|
+
* the time it happens, and the worker falls from 296 MB to 7 MB four minutes on.
|
|
65
|
+
* Deleting the key is still the only thing to do here; just don't read a heap
|
|
66
|
+
* immediately after a close and conclude this did nothing.
|
|
67
|
+
*
|
|
68
|
+
* The refcount is what makes this safe to call on any track close: an adapter
|
|
69
|
+
* pulled in as a sub-adapter carries its parent's sessionId (getSubAdapter
|
|
70
|
+
* passes it straight through), so a sequence adapter shared by two alignments
|
|
71
|
+
* tracks survives either one of them closing.
|
|
72
|
+
*/
|
|
28
73
|
export async function freeAdapterResources(args) {
|
|
29
|
-
const
|
|
30
|
-
if (
|
|
31
|
-
|
|
32
|
-
|
|
74
|
+
const { sessionId } = args;
|
|
75
|
+
if (!sessionId) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
for (const [cacheKey, cacheEntryP] of Object.entries(adapterCache)) {
|
|
79
|
+
try {
|
|
33
80
|
const cacheEntry = await cacheEntryP;
|
|
34
81
|
cacheEntry.sessionIds.delete(sessionId);
|
|
35
82
|
if (cacheEntry.sessionIds.size === 0) {
|
|
36
83
|
delete adapterCache[cacheKey];
|
|
37
84
|
}
|
|
38
85
|
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
const cacheEntry = await cacheEntryP;
|
|
43
|
-
const regions = args.regions || (args.region ? [args.region] : []);
|
|
44
|
-
for (const region of regions) {
|
|
45
|
-
if (region.refName !== undefined) {
|
|
46
|
-
cacheEntry.dataAdapter.freeResources(region);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
86
|
+
catch (e) {
|
|
87
|
+
console.error(`dataAdapterCache: evicting failed adapter "${cacheKey}"`, e);
|
|
88
|
+
delete adapterCache[cacheKey];
|
|
49
89
|
}
|
|
50
90
|
}
|
|
51
91
|
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { BaseFeatureDataAdapter } from './BaseAdapter/index.ts';
|
|
3
|
+
export interface GetFeatureAdapterArgs {
|
|
4
|
+
pluginManager: PluginManager;
|
|
5
|
+
sessionId: string;
|
|
6
|
+
adapterConfig: Record<string, unknown>;
|
|
7
|
+
sequenceAdapter?: Record<string, unknown>;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Resolve a feature data adapter and prime its reference-sequence adapter
|
|
11
|
+
* config in one step — the single resolution path for every RPC that reads
|
|
12
|
+
* features. Returns undefined when the config resolves to a non-feature
|
|
13
|
+
* adapter, so callers that can degrade (e.g. getRefNames → []) decide how; use
|
|
14
|
+
* {@link getFeatureAdapterOrThrow} when a feature adapter is required.
|
|
15
|
+
*/
|
|
16
|
+
export declare function getFeatureAdapter({ pluginManager, sessionId, adapterConfig, sequenceAdapter, }: GetFeatureAdapterArgs): Promise<BaseFeatureDataAdapter | undefined>;
|
|
17
|
+
/**
|
|
18
|
+
* {@link getFeatureAdapter} for the common case where the RPC cannot proceed
|
|
19
|
+
* without a feature adapter: throws a clear error instead of returning
|
|
20
|
+
* undefined, so callers get a definite type and no cast.
|
|
21
|
+
*/
|
|
22
|
+
export declare function getFeatureAdapterOrThrow(args: GetFeatureAdapterArgs): Promise<BaseFeatureDataAdapter>;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { isFeatureAdapter } from './BaseAdapter/index.js';
|
|
2
|
+
import { getAdapter } from './dataAdapterCache.js';
|
|
3
|
+
/**
|
|
4
|
+
* Resolve a feature data adapter and prime its reference-sequence adapter
|
|
5
|
+
* config in one step — the single resolution path for every RPC that reads
|
|
6
|
+
* features. Returns undefined when the config resolves to a non-feature
|
|
7
|
+
* adapter, so callers that can degrade (e.g. getRefNames → []) decide how; use
|
|
8
|
+
* {@link getFeatureAdapterOrThrow} when a feature adapter is required.
|
|
9
|
+
*/
|
|
10
|
+
export async function getFeatureAdapter({ pluginManager, sessionId, adapterConfig, sequenceAdapter, }) {
|
|
11
|
+
const { dataAdapter } = await getAdapter(pluginManager, sessionId, adapterConfig);
|
|
12
|
+
const featureAdapter = isFeatureAdapter(dataAdapter) ? dataAdapter : undefined;
|
|
13
|
+
featureAdapter?.setSequenceAdapterConfig(sequenceAdapter);
|
|
14
|
+
return featureAdapter;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* {@link getFeatureAdapter} for the common case where the RPC cannot proceed
|
|
18
|
+
* without a feature adapter: throws a clear error instead of returning
|
|
19
|
+
* undefined, so callers get a definite type and no cast.
|
|
20
|
+
*/
|
|
21
|
+
export async function getFeatureAdapterOrThrow(args) {
|
|
22
|
+
const dataAdapter = await getFeatureAdapter(args);
|
|
23
|
+
if (!dataAdapter) {
|
|
24
|
+
throw new Error(`adapter "${args.adapterConfig.type}" is not a feature adapter`);
|
|
25
|
+
}
|
|
26
|
+
return dataAdapter;
|
|
27
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { BaseAdapter, BaseSequenceAdapter } from './BaseAdapter/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves the reference sequence an adapter reads from.
|
|
4
|
+
*
|
|
5
|
+
* **The assembly is the source, and a hand-written `sequenceAdapter` slot is an
|
|
6
|
+
* anti-pattern.** `getFeatureAdapter` and `CoreGetRefNames` prime every feature
|
|
7
|
+
* adapter's `sequenceAdapterConfig` from the assembly the track is displayed
|
|
8
|
+
* against, so no config has to copy a sequence adapter into a track. The slot
|
|
9
|
+
* survives as an escape hatch for reading some *other* sequence, and setting it
|
|
10
|
+
* pins the track to that source even when the assembly's own sequence changes —
|
|
11
|
+
* so it wins only when explicitly present, and `jbrowse validate` warns about it.
|
|
12
|
+
*
|
|
13
|
+
* In core rather than beside one of its callers because the field it reads is
|
|
14
|
+
* `BaseAdapter`'s. Deliberately NOT in `BaseAdapter/index.ts`: that barrel is a
|
|
15
|
+
* `@jbrowse/core/*` re-export, and a name published there is load-bearing ABI —
|
|
16
|
+
* `abi.test.ts`/`abiBaseline.json` fails a removal from it.
|
|
17
|
+
*
|
|
18
|
+
* `configured` is passed in rather than read here so each adapter reads its own
|
|
19
|
+
* slot through its own config type.
|
|
20
|
+
*/
|
|
21
|
+
export declare function getSequenceSubAdapter(adapter: BaseAdapter, configured: unknown): Promise<BaseSequenceAdapter>;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolves the reference sequence an adapter reads from.
|
|
3
|
+
*
|
|
4
|
+
* **The assembly is the source, and a hand-written `sequenceAdapter` slot is an
|
|
5
|
+
* anti-pattern.** `getFeatureAdapter` and `CoreGetRefNames` prime every feature
|
|
6
|
+
* adapter's `sequenceAdapterConfig` from the assembly the track is displayed
|
|
7
|
+
* against, so no config has to copy a sequence adapter into a track. The slot
|
|
8
|
+
* survives as an escape hatch for reading some *other* sequence, and setting it
|
|
9
|
+
* pins the track to that source even when the assembly's own sequence changes —
|
|
10
|
+
* so it wins only when explicitly present, and `jbrowse validate` warns about it.
|
|
11
|
+
*
|
|
12
|
+
* In core rather than beside one of its callers because the field it reads is
|
|
13
|
+
* `BaseAdapter`'s. Deliberately NOT in `BaseAdapter/index.ts`: that barrel is a
|
|
14
|
+
* `@jbrowse/core/*` re-export, and a name published there is load-bearing ABI —
|
|
15
|
+
* `abi.test.ts`/`abiBaseline.json` fails a removal from it.
|
|
16
|
+
*
|
|
17
|
+
* `configured` is passed in rather than read here so each adapter reads its own
|
|
18
|
+
* slot through its own config type.
|
|
19
|
+
*/
|
|
20
|
+
export async function getSequenceSubAdapter(adapter, configured) {
|
|
21
|
+
const config = configured ?? adapter.sequenceAdapterConfig;
|
|
22
|
+
if (!config) {
|
|
23
|
+
throw new Error('No sequence adapter available: either set the `sequenceAdapter` slot or display this track against an assembly that has one');
|
|
24
|
+
}
|
|
25
|
+
const result = await adapter.getSubAdapter?.(config);
|
|
26
|
+
if (!result) {
|
|
27
|
+
throw new Error('Error getting subadapter');
|
|
28
|
+
}
|
|
29
|
+
// An assembly can be backed by an adapter that carries no residues at all
|
|
30
|
+
// (ChromSizesAdapter defines refName lengths only), and auto-resolution makes
|
|
31
|
+
// that reachable without anyone having named a sequence adapter. Check for the
|
|
32
|
+
// method rather than casting blind, so this fails with the reason instead of
|
|
33
|
+
// `getSequence is not a function` deep in a scan.
|
|
34
|
+
const { dataAdapter } = result;
|
|
35
|
+
if (!isSequenceAdapter(dataAdapter)) {
|
|
36
|
+
// named from the config, not `constructor.name`, which minifies to noise
|
|
37
|
+
const { type } = config;
|
|
38
|
+
throw new Error(`Cannot scan the reference: adapter "${String(type)}" provides no sequence`);
|
|
39
|
+
}
|
|
40
|
+
return dataAdapter;
|
|
41
|
+
}
|
|
42
|
+
function isSequenceAdapter(adapter) {
|
|
43
|
+
return (typeof adapter.getSequence === 'function');
|
|
44
|
+
}
|