@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
package/esm/PluginManager.js
CHANGED
|
@@ -1,28 +1,35 @@
|
|
|
1
1
|
import { isModelType, isType, types } from '@jbrowse/mobx-state-tree';
|
|
2
|
-
import CorePlugin from
|
|
3
|
-
import PhasedScheduler from
|
|
4
|
-
import
|
|
5
|
-
import { ConfigurationSchema, isBareConfigurationSchemaType, } from
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
2
|
+
import CorePlugin from './CorePlugin.js';
|
|
3
|
+
import PhasedScheduler from './PhasedScheduler.js';
|
|
4
|
+
import { getReExportRegistry } from './ReExports/registry.js';
|
|
5
|
+
import { ConfigurationSchema, isBareConfigurationSchemaType, } from './configuration/index.js';
|
|
6
|
+
import createJexlInstance from './util/jexl.js';
|
|
7
|
+
import { expandLooseTrackConfig } from './util/tracks.js';
|
|
8
|
+
/**
|
|
9
|
+
* Every pluggable element group, in the order `elementCreationSchedule` builds
|
|
10
|
+
* them. The array is the declaration and the union is derived from it, so a
|
|
11
|
+
* consumer that has to visit every group — `pruneUnbuildableNodes` walking a
|
|
12
|
+
* session snapshot for containers of a pluggable union — enumerates them at
|
|
13
|
+
* runtime instead of keeping a second hand-written list that goes stale.
|
|
14
|
+
*/
|
|
15
|
+
export const pluggableElementTypeGroups = [
|
|
16
|
+
'adapter',
|
|
17
|
+
'text search adapter',
|
|
18
|
+
'display',
|
|
19
|
+
'track',
|
|
20
|
+
'connection',
|
|
21
|
+
'view',
|
|
22
|
+
'widget',
|
|
23
|
+
'rpc method',
|
|
24
|
+
'internet account',
|
|
25
|
+
'add track workflow',
|
|
26
|
+
];
|
|
27
|
+
/** internal class that holds the info for a certain element type */
|
|
19
28
|
class TypeRecord {
|
|
20
|
-
typeName;
|
|
21
|
-
baseClass;
|
|
22
29
|
registeredTypes = {};
|
|
23
|
-
|
|
30
|
+
typeName;
|
|
31
|
+
constructor(typeName) {
|
|
24
32
|
this.typeName = typeName;
|
|
25
|
-
this.baseClass = baseClass;
|
|
26
33
|
}
|
|
27
34
|
add(name, t) {
|
|
28
35
|
this.registeredTypes[name] = t;
|
|
@@ -30,44 +37,111 @@ class TypeRecord {
|
|
|
30
37
|
has(name) {
|
|
31
38
|
return name in this.registeredTypes;
|
|
32
39
|
}
|
|
40
|
+
// The message a build with the wrong plugin set gets, and usually the ONLY
|
|
41
|
+
// one. The lookups that reach here are mostly registration-time and
|
|
42
|
+
// cross-plugin — `pm.getDisplayType('LinearAlignmentsDisplay')` from a track's
|
|
43
|
+
// install — so in an embedded product, whose consumer supplies the plugin
|
|
44
|
+
// array, this throw is what lands in `pluginManagerError` and replaces the
|
|
45
|
+
// whole app. Naming the missing type alone still leaves "which plugin" to
|
|
46
|
+
// guess, which is what the registered list answers: a build short one plugin
|
|
47
|
+
// is visibly short that plugin's group of names.
|
|
33
48
|
get(name) {
|
|
34
|
-
|
|
35
|
-
|
|
49
|
+
const type = this.registeredTypes[name];
|
|
50
|
+
if (!type) {
|
|
51
|
+
throw new Error(`${this.typeName} '${name}' is not registered: a plugin providing it either failed to load or is not in this build's plugin list. Registered ${this.typeName}s: ${this.registeredNames()}`);
|
|
52
|
+
}
|
|
53
|
+
return type;
|
|
54
|
+
}
|
|
55
|
+
registeredNames() {
|
|
56
|
+
const names = Object.keys(this.registeredTypes).sort();
|
|
57
|
+
if (names.length === 0) {
|
|
58
|
+
// distinguishable from "the plugin is missing", and a different bug: a
|
|
59
|
+
// getter called before createPluggableElements() sees every record empty
|
|
60
|
+
return 'none at all, so this ran before createPluggableElements()';
|
|
36
61
|
}
|
|
37
|
-
|
|
62
|
+
const shown = names.slice(0, 25);
|
|
63
|
+
const rest = names.length - shown.length;
|
|
64
|
+
return rest > 0 ? `${shown.join(', ')}, and ${rest} more` : shown.join(', ');
|
|
38
65
|
}
|
|
39
66
|
all() {
|
|
40
67
|
return Object.values(this.registeredTypes);
|
|
41
68
|
}
|
|
42
69
|
}
|
|
70
|
+
/**
|
|
71
|
+
* Marks a component built by wrapping the one the extension point accumulated
|
|
72
|
+
* so far, so {@link PluginManager.evaluateComponentExtensionPoint} can tell
|
|
73
|
+
* composition (two plugins each wrapping, both still visible) from a genuine
|
|
74
|
+
* clobber (a second plugin discarding the first). Set by `wrapComponent`.
|
|
75
|
+
*/
|
|
76
|
+
export const wrappedComponent = Symbol.for('jbrowse.wrappedComponent');
|
|
77
|
+
// a callback that forgets to return hands `undefined` to every later callback
|
|
78
|
+
// and to the producer, which is a silent no-op the author has no way to see —
|
|
79
|
+
// the accumulator survives instead, since "return what you were passed" is the
|
|
80
|
+
// documented way to opt out
|
|
81
|
+
function nextAccumulator(name, accumulator, result) {
|
|
82
|
+
let next = result;
|
|
83
|
+
if (result === undefined && accumulator !== undefined) {
|
|
84
|
+
console.warn(`a ${name} extension point callback returned undefined instead of the value it was passed, so its result was ignored`);
|
|
85
|
+
next = accumulator;
|
|
86
|
+
}
|
|
87
|
+
return next;
|
|
88
|
+
}
|
|
89
|
+
// a bare stack from minified plugin code names nothing, so say which point
|
|
90
|
+
function logCallbackError(name, error) {
|
|
91
|
+
console.error(`error in a ${name} extension point callback`, error);
|
|
92
|
+
}
|
|
43
93
|
export default class PluginManager {
|
|
44
94
|
plugins = [];
|
|
45
95
|
jexl = createJexlInstance();
|
|
46
96
|
pluginMetadata = {};
|
|
47
97
|
runtimePluginDefinitions = [];
|
|
48
|
-
elementCreationSchedule = new PhasedScheduler(
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
internetAccountTypes = new TypeRecord('InternetAccountType', InternetAccountType);
|
|
98
|
+
elementCreationSchedule = new PhasedScheduler(...pluggableElementTypeGroups);
|
|
99
|
+
pluggableElementsCreated = false;
|
|
100
|
+
adapterTypes = new TypeRecord('AdapterType');
|
|
101
|
+
textSearchAdapterTypes = new TypeRecord('TextSearchAdapterType');
|
|
102
|
+
trackTypes = new TypeRecord('TrackType');
|
|
103
|
+
displayTypes = new TypeRecord('DisplayType');
|
|
104
|
+
connectionTypes = new TypeRecord('ConnectionType');
|
|
105
|
+
viewTypes = new TypeRecord('ViewType');
|
|
106
|
+
widgetTypes = new TypeRecord('WidgetType');
|
|
107
|
+
rpcMethods = new TypeRecord('RpcMethodType');
|
|
108
|
+
addTrackWidgets = new TypeRecord('AddTrackWorkflow');
|
|
109
|
+
internetAccountTypes = new TypeRecord('InternetAccountType');
|
|
61
110
|
configured = false;
|
|
62
111
|
rootModel;
|
|
63
112
|
extensionPoints = new Map();
|
|
113
|
+
// singular component points are re-evaluated on every render, so the
|
|
114
|
+
// clobber warning is emitted once per point per app
|
|
115
|
+
warnedClobber = new Set();
|
|
116
|
+
/**
|
|
117
|
+
* Lazy-hydration cache for `TrackConfigurationReference`/
|
|
118
|
+
* `DisplayConfigurationReference` (configuration/configurationSchema.ts).
|
|
119
|
+
* `jbrowse.tracks` is `types.frozen` for large-tracklist performance, so a
|
|
120
|
+
* track config is a plain JS object until first referenced; hydrating it
|
|
121
|
+
* into an MST node is deferred to that read. MST's custom-reference
|
|
122
|
+
* `getValue` has no memoization of its own — it reruns on every property
|
|
123
|
+
* access — so without this cache, every read of `track.configuration` would
|
|
124
|
+
* fabricate a fresh, non-identical MST node. Keyed by schemaType (each track
|
|
125
|
+
* type's config schema is rebuilt fresh per PluginManager instance, see
|
|
126
|
+
* addTrackType) then by the frozen object itself, so a cache hit can only
|
|
127
|
+
* ever come from this same PluginManager instance and this same track type.
|
|
128
|
+
* See ADR-031.
|
|
129
|
+
*
|
|
130
|
+
* This node is never mutated: admin edits replace the frozen entry (new
|
|
131
|
+
* identity drops the WeakMap entry), and a non-admin's edits go to a private
|
|
132
|
+
* session working copy, not here (ADR-032). Both levels are `WeakMap`s so
|
|
133
|
+
* entries collect normally — no manual invalidation needed.
|
|
134
|
+
*/
|
|
135
|
+
trackConfigHydrationCache = new WeakMap();
|
|
64
136
|
constructor(initialPlugins = []) {
|
|
137
|
+
// add the core plugin
|
|
65
138
|
this.addPlugin({
|
|
66
139
|
plugin: new CorePlugin(),
|
|
67
140
|
metadata: {
|
|
68
141
|
isCore: true,
|
|
69
142
|
},
|
|
70
143
|
});
|
|
144
|
+
// add all the initial plugins
|
|
71
145
|
for (const plugin of initialPlugins) {
|
|
72
146
|
this.addPlugin(plugin);
|
|
73
147
|
}
|
|
@@ -82,25 +156,19 @@ export default class PluginManager {
|
|
|
82
156
|
return configurationSchemas;
|
|
83
157
|
}
|
|
84
158
|
pluginConfigurationUnnamespacedSchemas() {
|
|
85
|
-
|
|
159
|
+
const configurationSchemas = {};
|
|
86
160
|
for (const plugin of this.plugins) {
|
|
87
161
|
if (plugin.configurationSchemaUnnamespaced) {
|
|
88
|
-
configurationSchemas
|
|
89
|
-
...configurationSchemas,
|
|
90
|
-
...plugin.configurationSchemaUnnamespaced,
|
|
91
|
-
};
|
|
162
|
+
Object.assign(configurationSchemas, plugin.configurationSchemaUnnamespaced);
|
|
92
163
|
}
|
|
93
164
|
}
|
|
94
165
|
return configurationSchemas;
|
|
95
166
|
}
|
|
96
167
|
pluginConfigurationRootSchemas() {
|
|
97
|
-
|
|
168
|
+
const configurationSchemas = {};
|
|
98
169
|
for (const plugin of this.plugins) {
|
|
99
170
|
if (plugin.rootConfigurationSchema) {
|
|
100
|
-
configurationSchemas
|
|
101
|
-
...configurationSchemas,
|
|
102
|
-
...plugin.rootConfigurationSchema(this),
|
|
103
|
-
};
|
|
171
|
+
Object.assign(configurationSchemas, plugin.rootConfigurationSchema(this));
|
|
104
172
|
}
|
|
105
173
|
}
|
|
106
174
|
return configurationSchemas;
|
|
@@ -109,11 +177,29 @@ export default class PluginManager {
|
|
|
109
177
|
if (this.configured) {
|
|
110
178
|
throw new Error('JBrowse already configured, cannot add plugins');
|
|
111
179
|
}
|
|
112
|
-
const [plugin, metadata
|
|
113
|
-
? [load, {}]
|
|
114
|
-
: [load
|
|
115
|
-
|
|
116
|
-
|
|
180
|
+
const [plugin, metadata] = 'plugin' in load
|
|
181
|
+
? [load.plugin, load.metadata ?? {}]
|
|
182
|
+
: [load, {}];
|
|
183
|
+
// Refuse a second copy of the same plugin, matched by name rather than by
|
|
184
|
+
// object identity: the two copies of a plugin a product bundles AND a
|
|
185
|
+
// config names are different classes from different bundles, so an
|
|
186
|
+
// identity check never sees them.
|
|
187
|
+
//
|
|
188
|
+
// The pluggable-element registry has its own first-wins guard, but a
|
|
189
|
+
// plugin's install()/configure() side effects have none — appendToMenu is a
|
|
190
|
+
// plain push, so a second copy silently doubles that plugin's menu items.
|
|
191
|
+
// Enforcing it here means a product does not have to remember to drop the
|
|
192
|
+
// config entry for everything it vendors.
|
|
193
|
+
//
|
|
194
|
+
// Warn and skip rather than throw. A config naming a plugin some product
|
|
195
|
+
// bundles is a legitimate config — jbrowse.org's hub configs do exactly
|
|
196
|
+
// that, so Web (which bundles less than Desktop) still gets the plugin —
|
|
197
|
+
// and failing the whole session over it would be worse than the duplicate
|
|
198
|
+
// this prevents. First registration wins, which is the core copy, since
|
|
199
|
+
// core plugins are added before a config's.
|
|
200
|
+
if (this.plugins.some(p => p.name === plugin.name)) {
|
|
201
|
+
console.warn(`plugin ${plugin.name} is already installed, ignoring the second copy`);
|
|
202
|
+
return this;
|
|
117
203
|
}
|
|
118
204
|
this.pluginMetadata[plugin.name] = metadata;
|
|
119
205
|
if ('definition' in load) {
|
|
@@ -129,10 +215,23 @@ export default class PluginManager {
|
|
|
129
215
|
hasPlugin(name) {
|
|
130
216
|
return this.getPlugin(name) !== undefined;
|
|
131
217
|
}
|
|
218
|
+
removePlugin(pluginName) {
|
|
219
|
+
const plugin = this.getPlugin(pluginName);
|
|
220
|
+
if (!plugin) {
|
|
221
|
+
throw new Error(`Plugin '${pluginName}' not found`);
|
|
222
|
+
}
|
|
223
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
224
|
+
plugin.uninstall?.(this);
|
|
225
|
+
this.plugins = this.plugins.filter(p => p.name !== pluginName);
|
|
226
|
+
delete this.pluginMetadata[pluginName];
|
|
227
|
+
return this;
|
|
228
|
+
}
|
|
132
229
|
createPluggableElements() {
|
|
133
|
-
|
|
230
|
+
// run the creation callbacks for each element type in order.
|
|
231
|
+
// see elementCreationSchedule above for the creation order
|
|
232
|
+
if (!this.pluggableElementsCreated) {
|
|
134
233
|
this.elementCreationSchedule.run();
|
|
135
|
-
this.
|
|
234
|
+
this.pluggableElementsCreated = true;
|
|
136
235
|
}
|
|
137
236
|
return this;
|
|
138
237
|
}
|
|
@@ -160,8 +259,6 @@ export default class PluginManager {
|
|
|
160
259
|
return this.connectionTypes;
|
|
161
260
|
case 'widget':
|
|
162
261
|
return this.widgetTypes;
|
|
163
|
-
case 'renderer':
|
|
164
|
-
return this.rendererTypes;
|
|
165
262
|
case 'display':
|
|
166
263
|
return this.displayTypes;
|
|
167
264
|
case 'track':
|
|
@@ -174,8 +271,6 @@ export default class PluginManager {
|
|
|
174
271
|
return this.internetAccountTypes;
|
|
175
272
|
case 'add track workflow':
|
|
176
273
|
return this.addTrackWidgets;
|
|
177
|
-
case 'glyph':
|
|
178
|
-
return this.glyphTypes;
|
|
179
274
|
default:
|
|
180
275
|
throw new Error(`invalid element type '${groupName}'`);
|
|
181
276
|
}
|
|
@@ -184,8 +279,11 @@ export default class PluginManager {
|
|
|
184
279
|
if (typeof creationCallback !== 'function') {
|
|
185
280
|
throw new Error('must provide a callback function that returns the new type object');
|
|
186
281
|
}
|
|
282
|
+
if (this.pluggableElementsCreated) {
|
|
283
|
+
throw new Error(`Cannot add element type after createPluggableElements() has been called`);
|
|
284
|
+
}
|
|
187
285
|
const typeRecord = this.getElementTypeRecord(groupName);
|
|
188
|
-
this.elementCreationSchedule
|
|
286
|
+
this.elementCreationSchedule.add(groupName, () => {
|
|
189
287
|
const newElement = creationCallback(this);
|
|
190
288
|
if (!newElement.name) {
|
|
191
289
|
throw new Error(`cannot add a ${groupName} with no name`);
|
|
@@ -194,7 +292,9 @@ export default class PluginManager {
|
|
|
194
292
|
console.warn(`${groupName} ${newElement.name} already registered, cannot register it again`);
|
|
195
293
|
}
|
|
196
294
|
else {
|
|
197
|
-
typeRecord.add(newElement.name, this.evaluateExtensionPoint(
|
|
295
|
+
typeRecord.add(newElement.name, this.evaluateExtensionPoint(
|
|
296
|
+
/** #extensionPoint Core-extendPluggableElement | sync | Mutate any pluggable element after it is created */
|
|
297
|
+
'Core-extendPluggableElement', newElement, { group: groupName }));
|
|
198
298
|
}
|
|
199
299
|
});
|
|
200
300
|
return this;
|
|
@@ -226,17 +326,18 @@ export default class PluginManager {
|
|
|
226
326
|
getAdapterElements() {
|
|
227
327
|
return this.getElementTypesInGroup('adapter');
|
|
228
328
|
}
|
|
329
|
+
/** get a MST type for the union of all specified pluggable MST types */
|
|
229
330
|
pluggableMstType(groupName, fieldName, fallback = types.maybe(types.null)) {
|
|
230
331
|
const pluggableTypes = this.getElementTypeRecord(groupName)
|
|
231
332
|
.all()
|
|
232
333
|
.map(t => t[fieldName])
|
|
233
334
|
.filter(t => isType(t) && isModelType(t));
|
|
234
|
-
if (pluggableTypes.length === 0
|
|
235
|
-
console.warn(`No pluggable types found matching ('${groupName}','${fieldName}')`);
|
|
335
|
+
if (pluggableTypes.length === 0) {
|
|
236
336
|
return fallback;
|
|
237
337
|
}
|
|
238
338
|
return types.union(...pluggableTypes);
|
|
239
339
|
}
|
|
340
|
+
/** get a MST type for the union of all specified pluggable config schemas */
|
|
240
341
|
pluggableConfigSchemaType(typeGroup, fieldName = 'configSchema') {
|
|
241
342
|
const pluggableTypes = this.getElementTypeRecord(typeGroup)
|
|
242
343
|
.all()
|
|
@@ -245,42 +346,70 @@ export default class PluginManager {
|
|
|
245
346
|
if (pluggableTypes.length === 0) {
|
|
246
347
|
pluggableTypes.push(ConfigurationSchema('Null', {}));
|
|
247
348
|
}
|
|
248
|
-
|
|
349
|
+
// deliberately unannotated: this really is a union, not a model type, and
|
|
350
|
+
// the `as IAnyModelType` it used to carry was checked against the whole
|
|
351
|
+
// repo and needed by nothing. Claiming model-ness here is also what makes a
|
|
352
|
+
// schema taking its base from this look concrete while its own slot reads
|
|
353
|
+
// have already degraded to `any` — see configuration/CLAUDE.md.
|
|
354
|
+
const union = types.union(...pluggableTypes);
|
|
355
|
+
// A track union dispatches on `type`, so the loose `{ trackId, uri }` form
|
|
356
|
+
// has to become a full config before the union sees it. Here rather than
|
|
357
|
+
// at each array that holds tracks, so a session track, a connection track
|
|
358
|
+
// and a direct `create` all take it.
|
|
359
|
+
return typeGroup === 'track'
|
|
360
|
+
? types.snapshotProcessor(union, {
|
|
361
|
+
preProcessor: (snap) => expandLooseTrackConfig(snap, this),
|
|
362
|
+
})
|
|
363
|
+
: union;
|
|
249
364
|
}
|
|
250
365
|
jbrequireCache = new Map();
|
|
251
|
-
|
|
366
|
+
// populated by PluginLoader once a runtime plugin is actually being loaded,
|
|
367
|
+
// which is the only thing that can call jbrequire — see ReExports/registry.ts
|
|
368
|
+
get lib() {
|
|
369
|
+
return getReExportRegistry();
|
|
370
|
+
}
|
|
252
371
|
load = (lib) => {
|
|
253
372
|
if (!this.jbrequireCache.has(lib)) {
|
|
254
373
|
this.jbrequireCache.set(lib, lib(this));
|
|
255
374
|
}
|
|
256
375
|
return this.jbrequireCache.get(lib);
|
|
257
376
|
};
|
|
377
|
+
/**
|
|
378
|
+
* Get the re-exported version of the given package name.
|
|
379
|
+
* Throws an error if the package is not re-exported by the plugin manager.
|
|
380
|
+
*
|
|
381
|
+
* @returns the library's default export
|
|
382
|
+
*/
|
|
258
383
|
jbrequire = (lib) => {
|
|
259
384
|
if (typeof lib === 'string') {
|
|
260
385
|
const pack = this.lib[lib];
|
|
261
386
|
if (!pack) {
|
|
262
|
-
throw new TypeError(`No jbrequire re-export defined for package '${lib}'. If this package must be shared between plugins, add it to ReExports.
|
|
387
|
+
throw new TypeError(`No jbrequire re-export defined for package '${lib}'. If this package must be shared between plugins, add it to ReExports/list.ts. If it does not need to be shared, just import it normally.`);
|
|
263
388
|
}
|
|
264
389
|
return pack;
|
|
265
390
|
}
|
|
266
391
|
else if (typeof lib === 'function') {
|
|
267
392
|
return this.load(lib);
|
|
268
393
|
}
|
|
394
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
269
395
|
else if (lib.default) {
|
|
270
396
|
console.warn('initiated jbrequire on a {default:Function}');
|
|
271
397
|
return this.jbrequire(lib.default);
|
|
272
398
|
}
|
|
273
399
|
throw new TypeError('lib passed to jbrequire must be either a string or a function');
|
|
274
400
|
};
|
|
275
|
-
getRendererType(typeName) {
|
|
276
|
-
return this.rendererTypes.get(typeName);
|
|
277
|
-
}
|
|
278
|
-
getRendererTypes() {
|
|
279
|
-
return this.rendererTypes.all();
|
|
280
|
-
}
|
|
281
401
|
getAdapterType(typeName) {
|
|
282
402
|
return this.adapterTypes.get(typeName);
|
|
283
403
|
}
|
|
404
|
+
/**
|
|
405
|
+
* Whether an adapter type is registered, for a caller walking a config where
|
|
406
|
+
* `type` names a track, a display and an adapter alike — `getAdapterType`
|
|
407
|
+
* throws on a miss, which is right when the name came from a config that
|
|
408
|
+
* claims to be an adapter and wrong when you are asking whether it is one.
|
|
409
|
+
*/
|
|
410
|
+
hasAdapterType(typeName) {
|
|
411
|
+
return this.adapterTypes.has(typeName);
|
|
412
|
+
}
|
|
284
413
|
getTextSearchAdapterType(typeName) {
|
|
285
414
|
return this.textSearchAdapterTypes.get(typeName);
|
|
286
415
|
}
|
|
@@ -308,9 +437,6 @@ export default class PluginManager {
|
|
|
308
437
|
getInternetAccountType(name) {
|
|
309
438
|
return this.internetAccountTypes.get(name);
|
|
310
439
|
}
|
|
311
|
-
addRendererType(cb) {
|
|
312
|
-
return this.addElementType('renderer', cb);
|
|
313
|
-
}
|
|
314
440
|
addAdapterType(cb) {
|
|
315
441
|
return this.addElementType('adapter', cb);
|
|
316
442
|
}
|
|
@@ -318,10 +444,13 @@ export default class PluginManager {
|
|
|
318
444
|
return this.addElementType('text search adapter', cb);
|
|
319
445
|
}
|
|
320
446
|
addTrackType(cb) {
|
|
447
|
+
// Goes through the already-created displays and registers the ones that
|
|
448
|
+
// specify this track type
|
|
321
449
|
const callback = () => {
|
|
322
450
|
const track = cb(this);
|
|
323
451
|
const displays = this.getElementTypesInGroup('display');
|
|
324
452
|
for (const display of displays) {
|
|
453
|
+
// track may have already added the displayType in its cb
|
|
325
454
|
if (display.trackType === track.name &&
|
|
326
455
|
!track.displayTypes.includes(display)) {
|
|
327
456
|
track.addDisplayType(display);
|
|
@@ -339,6 +468,8 @@ export default class PluginManager {
|
|
|
339
468
|
const newView = cb(this);
|
|
340
469
|
const displays = this.getElementTypesInGroup('display');
|
|
341
470
|
for (const display of displays) {
|
|
471
|
+
// view may have already added the displayType in its callback
|
|
472
|
+
// see ViewType for description of extendedName
|
|
342
473
|
if ((display.viewType === newView.name ||
|
|
343
474
|
display.viewType === newView.extendedName) &&
|
|
344
475
|
!newView.displayTypes.includes(display)) {
|
|
@@ -364,16 +495,82 @@ export default class PluginManager {
|
|
|
364
495
|
addAddTrackWorkflowType(cb) {
|
|
365
496
|
return this.addElementType('add track workflow', cb);
|
|
366
497
|
}
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
|
|
498
|
+
/**
|
|
499
|
+
* Contribute entries to an accumulating point.
|
|
500
|
+
*
|
|
501
|
+
* The callback is handed only the props and returns what it wants to add —
|
|
502
|
+
* one entry, several, or `undefined` to add nothing. It never receives the
|
|
503
|
+
* array, which is the whole point: the concatenation happens here, once, so
|
|
504
|
+
* no plugin can write the `[MyEntry]` that silently drops every other
|
|
505
|
+
* plugin's entries. That mistake looked correct to whoever made it, because
|
|
506
|
+
* with one plugin registered there is nothing to drop.
|
|
507
|
+
*/
|
|
508
|
+
contributeToExtensionPoint(extensionPointName, callback) {
|
|
509
|
+
this.pushExtensionPointCallback(extensionPointName, (entries, props) => {
|
|
510
|
+
const contributed = callback(props);
|
|
511
|
+
const accumulated = entries;
|
|
512
|
+
return contributed === undefined
|
|
513
|
+
? accumulated
|
|
514
|
+
: [
|
|
515
|
+
...accumulated,
|
|
516
|
+
...(Array.isArray(contributed) ? contributed : [contributed]),
|
|
517
|
+
];
|
|
518
|
+
});
|
|
372
519
|
}
|
|
373
|
-
|
|
374
|
-
|
|
520
|
+
/**
|
|
521
|
+
* Listen to a notification point — one that carries its payload in `props`
|
|
522
|
+
* and whose return value nothing reads. The callback returns nothing;
|
|
523
|
+
* `addToExtensionPoint` rejects these names, so this is the only way in.
|
|
524
|
+
*
|
|
525
|
+
* The reason it is the only way in is the async join below, not the shorter
|
|
526
|
+
* callback. A handler that works asynchronously states so by returning a
|
|
527
|
+
* promise, and the producer waits on the folded value; written by hand
|
|
528
|
+
* through `addToExtensionPoint`, the second async handler's promise silently
|
|
529
|
+
* replaced the first's, so the producer stopped waiting as soon as the
|
|
530
|
+
* *last*-registered handler finished rather than when they all had. That is
|
|
531
|
+
* not a mistake a plugin author can see, which is why it is not left to them.
|
|
532
|
+
*/
|
|
533
|
+
listenToExtensionPoint(extensionPointName, callback) {
|
|
534
|
+
this.pushExtensionPointCallback(extensionPointName, (extendee, props) => {
|
|
535
|
+
const ret = callback(props);
|
|
536
|
+
// An async handler is awaited — by evaluateAsyncExtensionPoint, or by a
|
|
537
|
+
// producer that checks the folded value for a thenable to learn when
|
|
538
|
+
// handlers have finished. A sync one passes through whatever an earlier
|
|
539
|
+
// handler left, so its promise is not dropped on the way past.
|
|
540
|
+
//
|
|
541
|
+
// Two async ones are joined rather than the later replacing the earlier;
|
|
542
|
+
// under the sync runner nothing awaits between callbacks. waitForAssembly
|
|
543
|
+
// is the producer that depends on it.
|
|
544
|
+
if (!(ret instanceof Promise)) {
|
|
545
|
+
return extendee;
|
|
546
|
+
}
|
|
547
|
+
return extendee instanceof Promise
|
|
548
|
+
? Promise.all([extendee, ret]).then(() => undefined)
|
|
549
|
+
: ret.then(() => undefined);
|
|
550
|
+
});
|
|
375
551
|
}
|
|
376
552
|
addToExtensionPoint(extensionPointName, callback) {
|
|
553
|
+
this.pushExtensionPointCallback(extensionPointName, callback);
|
|
554
|
+
}
|
|
555
|
+
/**
|
|
556
|
+
* The one place a callback joins a point's chain. The three public
|
|
557
|
+
* registration methods go through this rather than through each other:
|
|
558
|
+
* `contributeToExtensionPoint` and `listenToExtensionPoint` register on exactly
|
|
559
|
+
* the point names their own signatures reject, so routing them via
|
|
560
|
+
* `addToExtensionPoint` would either fail to compile or force its guard to be
|
|
561
|
+
* loose enough to let a plugin do the same thing by hand.
|
|
562
|
+
*/
|
|
563
|
+
pushExtensionPointCallback(extensionPointName, callback) {
|
|
564
|
+
// `Core-extendPluggableElement` fires once per element, inside
|
|
565
|
+
// createPluggableElements(). Registering after that run joins a fold that
|
|
566
|
+
// has already happened, so the extension never applies — the same mistake
|
|
567
|
+
// `addElementType` throws on, and the reason it throws: from `configure()`
|
|
568
|
+
// instead of `install()`, an extendViewType call compiles, runs, and
|
|
569
|
+
// silently extends nothing.
|
|
570
|
+
if (extensionPointName === 'Core-extendPluggableElement' &&
|
|
571
|
+
this.pluggableElementsCreated) {
|
|
572
|
+
throw new Error("Cannot register on Core-extendPluggableElement after createPluggableElements() has been called: the point has already fired for every element, so this callback would never run. Register it from a plugin's install(), not configure().");
|
|
573
|
+
}
|
|
377
574
|
let callbacks = this.extensionPoints.get(extensionPointName);
|
|
378
575
|
if (!callbacks) {
|
|
379
576
|
callbacks = [];
|
|
@@ -387,28 +584,72 @@ export default class PluginManager {
|
|
|
387
584
|
if (callbacks) {
|
|
388
585
|
for (const callback of callbacks) {
|
|
389
586
|
try {
|
|
390
|
-
accumulator = callback(accumulator, props);
|
|
587
|
+
accumulator = nextAccumulator(extensionPointName, accumulator, callback(accumulator, props));
|
|
391
588
|
}
|
|
392
589
|
catch (error) {
|
|
393
|
-
|
|
590
|
+
logCallbackError(extensionPointName, error);
|
|
394
591
|
}
|
|
395
592
|
}
|
|
396
593
|
}
|
|
397
594
|
return accumulator;
|
|
398
595
|
}
|
|
596
|
+
evaluateComponentExtensionPoint(extensionPointName, extendee, props) {
|
|
597
|
+
const callbacks = this.extensionPoints.get(extensionPointName);
|
|
598
|
+
let accumulator = extendee;
|
|
599
|
+
let claims = 0;
|
|
600
|
+
if (callbacks) {
|
|
601
|
+
for (const callback of callbacks) {
|
|
602
|
+
try {
|
|
603
|
+
const result = nextAccumulator(extensionPointName, accumulator, callback(accumulator, props));
|
|
604
|
+
if (result !== accumulator &&
|
|
605
|
+
result?.[wrappedComponent] !== accumulator) {
|
|
606
|
+
claims++;
|
|
607
|
+
}
|
|
608
|
+
accumulator = result;
|
|
609
|
+
}
|
|
610
|
+
catch (error) {
|
|
611
|
+
logCallbackError(extensionPointName, error);
|
|
612
|
+
}
|
|
613
|
+
}
|
|
614
|
+
}
|
|
615
|
+
if (claims > 1 && !this.warnedClobber.has(extensionPointName)) {
|
|
616
|
+
this.warnedClobber.add(extensionPointName);
|
|
617
|
+
console.warn(`more than one plugin replaced the ${extensionPointName} slot; only the last one registered is visible. Use a wrapper if the intent was to add to the default rather than replace it`);
|
|
618
|
+
}
|
|
619
|
+
return accumulator;
|
|
620
|
+
}
|
|
621
|
+
/**
|
|
622
|
+
* How many callbacks are registered on `extensionPointName`. For a caller
|
|
623
|
+
* that has to tell "every handler declined" apart from "nobody was
|
|
624
|
+
* listening" — the two look identical in the folded result, and
|
|
625
|
+
* assemblyManager waits out the first but not the second.
|
|
626
|
+
*/
|
|
627
|
+
extensionPointCallbackCount(extensionPointName) {
|
|
628
|
+
return this.extensionPoints.get(extensionPointName)?.length ?? 0;
|
|
629
|
+
}
|
|
399
630
|
async evaluateAsyncExtensionPoint(extensionPointName, extendee, props) {
|
|
400
631
|
const callbacks = this.extensionPoints.get(extensionPointName);
|
|
401
632
|
let accumulator = extendee;
|
|
402
633
|
if (callbacks) {
|
|
403
634
|
for (const callback of callbacks) {
|
|
404
635
|
try {
|
|
405
|
-
accumulator = await callback(accumulator, props);
|
|
636
|
+
accumulator = nextAccumulator(extensionPointName, accumulator, await callback(accumulator, props));
|
|
406
637
|
}
|
|
407
638
|
catch (error) {
|
|
408
|
-
|
|
639
|
+
logCallbackError(extensionPointName, error);
|
|
409
640
|
}
|
|
410
641
|
}
|
|
411
642
|
}
|
|
412
643
|
return accumulator;
|
|
413
644
|
}
|
|
645
|
+
async evaluateAsyncExtensionPointStrict(extensionPointName, extendee, props) {
|
|
646
|
+
const callbacks = this.extensionPoints.get(extensionPointName);
|
|
647
|
+
let accumulator = extendee;
|
|
648
|
+
if (callbacks) {
|
|
649
|
+
for (const callback of callbacks) {
|
|
650
|
+
accumulator = nextAccumulator(extensionPointName, accumulator, await callback(accumulator, props));
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
return accumulator;
|
|
654
|
+
}
|
|
414
655
|
}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { lazy } from 'react';
|
|
2
|
-
import { lazyMap } from
|
|
2
|
+
import { lazyMap } from './lazify.js';
|
|
3
3
|
export const BaseFeatureDetail = lazyMap({
|
|
4
|
-
Attributes: lazy(() => import(
|
|
5
|
-
FeatureDetails: lazy(() => import(
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
4
|
+
Attributes: lazy(() => import('../BaseFeatureWidget/BaseFeatureDetail/Attributes.js')),
|
|
5
|
+
FeatureDetails: lazy(() => import('../BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js')),
|
|
6
|
+
FeatureWash: lazy(() => import('../BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js')),
|
|
7
|
+
BaseCard: lazy(() => import('../BaseFeatureWidget/BaseFeatureDetail/BaseCard.js')),
|
|
8
|
+
BaseAttributes: lazy(() => import('../BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js')),
|
|
9
|
+
BaseCoreDetails: lazy(() => import('../BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js')),
|
|
9
10
|
}, '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail/');
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export declare const DataGridEntries: Record<string,
|
|
1
|
+
import type { ComponentType } from 'react';
|
|
2
|
+
export declare const DataGridEntries: Record<string, ComponentType<any>>;
|