@jbrowse/core 4.2.1 → 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 +196 -55
- 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 -46
- 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 +352 -32
- package/esm/util/tracks.js +576 -194
- 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
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { getEnv as getEnvMST } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { cachedParent, findParentThatIs } from './parentWalk.js';
|
|
3
|
+
import { isDisplayModel, isSessionModel, isTrackModel, isViewModel, } from './types/index.js';
|
|
4
|
+
export { findParentThat, findParentThatIs, getRpcSessionId, } from './parentWalk.js';
|
|
5
|
+
const containingDisplayCache = new WeakMap();
|
|
6
|
+
const containingTrackCache = new WeakMap();
|
|
7
|
+
const containingViewCache = new WeakMap();
|
|
8
|
+
const sessionCache = new WeakMap();
|
|
9
|
+
/**
|
|
10
|
+
* #api core/util
|
|
11
|
+
* Returns the JBrowse session model for any node in the state tree. Throws if
|
|
12
|
+
* the node has no session ancestor.
|
|
13
|
+
*/
|
|
14
|
+
export function getSession(node) {
|
|
15
|
+
return cachedParent(sessionCache, node, () => findParentThatIs(node, isSessionModel), 'no session model found!');
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* #api core/util
|
|
19
|
+
* Returns the view model that contains the given node. Throws if the node has no
|
|
20
|
+
* containing view.
|
|
21
|
+
*/
|
|
22
|
+
export function getContainingView(node) {
|
|
23
|
+
return cachedParent(containingViewCache, node, () => findParentThatIs(node, isViewModel), 'no containing view found');
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* #api core/util
|
|
27
|
+
* Returns the track model that contains the given node. Throws if the node has
|
|
28
|
+
* no containing track.
|
|
29
|
+
*/
|
|
30
|
+
export function getContainingTrack(node) {
|
|
31
|
+
return cachedParent(containingTrackCache, node, () => findParentThatIs(node, isTrackModel), 'no containing track found');
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* #api core/util
|
|
35
|
+
* Returns the display model that contains the given node. Throws if the node has
|
|
36
|
+
* no containing display.
|
|
37
|
+
*/
|
|
38
|
+
export function getContainingDisplay(node) {
|
|
39
|
+
return cachedParent(containingDisplayCache, node, () => findParentThatIs(node, isDisplayModel), 'no containing display found');
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* #api core/util
|
|
43
|
+
* The host's assembly manager, for a module that resolves names and nothing
|
|
44
|
+
* else.
|
|
45
|
+
*
|
|
46
|
+
* Unlike the accessors in `sessionServices.ts` this one buys the caller no
|
|
47
|
+
* smaller type graph — an `AssemblyManager` is an MST model a `PluginManager`
|
|
48
|
+
* built, so naming it costs what naming a session costs. It is here to say
|
|
49
|
+
* which service is wanted, and because that cost is the finding: the assembly
|
|
50
|
+
* manager is the one thing on `AbstractSessionModel` a third-party host cannot
|
|
51
|
+
* simply implement.
|
|
52
|
+
*/
|
|
53
|
+
export function getAssemblyHost(node) {
|
|
54
|
+
return getSession(node);
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* #api core/util
|
|
58
|
+
* Everything a display needs of its host in order to draw a region: the
|
|
59
|
+
* assemblies, the RPC entry point and the colors.
|
|
60
|
+
*/
|
|
61
|
+
export function getRenderingServices(node) {
|
|
62
|
+
return getSession(node);
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* #api core/util
|
|
66
|
+
* Resolve user-authored refName text against the assembly of the view
|
|
67
|
+
* containing `node` — the one normalization layer, which resolves aliases and
|
|
68
|
+
* casing together. Falls back to the input when the assembly is absent or its
|
|
69
|
+
* aliases have not loaded.
|
|
70
|
+
*
|
|
71
|
+
* Keyed off the VIEW's assembly rather than the track's, because the view is
|
|
72
|
+
* what the comparison is against: displayed regions, loaded regions and blocks
|
|
73
|
+
* all carry the refNames the view laid out.
|
|
74
|
+
*
|
|
75
|
+
* Reach for this wherever a refName a *person* wrote is about to be compared
|
|
76
|
+
* against regions, features or blocks, which carry the assembly's canonical
|
|
77
|
+
* name. A refName a display copied off a region is canonical already and needs
|
|
78
|
+
* nothing; one that arrived in a session spec, a config slot or a URL is
|
|
79
|
+
* whatever the author read out of the location box.
|
|
80
|
+
*
|
|
81
|
+
* Skipping it fails silently and, worse, assembly-dependently: `chr12` matches
|
|
82
|
+
* on an assembly canonicalized `chr12` and matches nothing on one canonicalized
|
|
83
|
+
* `12`, so the same spec key works on one config and quietly does nothing on
|
|
84
|
+
* the next, with no error for anyone to act on.
|
|
85
|
+
*
|
|
86
|
+
* Resolves through `getCanonicalRefName2`, whose fallback is what keeps a spec
|
|
87
|
+
* read before the alias file has loaded from throwing — and the getters that
|
|
88
|
+
* read user specs do run from the first render.
|
|
89
|
+
*
|
|
90
|
+
* Takes a refName, not a spec that might hold one: the resolver reads
|
|
91
|
+
* `refName.toLowerCase()`, so anything else throws once the aliases are there,
|
|
92
|
+
* and a caller reading an untyped `frozen` slot has to establish that it names
|
|
93
|
+
* a refName at all before this is the right question to ask of it.
|
|
94
|
+
*/
|
|
95
|
+
export function canonicalizeViewRefName(node, refName) {
|
|
96
|
+
const { assemblyManager } = getSession(node);
|
|
97
|
+
const name = getContainingView(node).assemblyNames?.[0];
|
|
98
|
+
const assembly = name ? assemblyManager.get(name) : undefined;
|
|
99
|
+
return assembly?.getCanonicalRefName2(refName) ?? refName;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* #api core/util
|
|
103
|
+
* Returns the MST environment for a node, which carries the `pluginManager`.
|
|
104
|
+
*/
|
|
105
|
+
export function getEnv(obj) {
|
|
106
|
+
return getEnvMST(obj);
|
|
107
|
+
}
|
|
108
|
+
export function hashCode(str) {
|
|
109
|
+
let hash = 0;
|
|
110
|
+
if (str.length === 0) {
|
|
111
|
+
return hash;
|
|
112
|
+
}
|
|
113
|
+
for (let i = 0; i < str.length; i++) {
|
|
114
|
+
const chr = str.charCodeAt(i);
|
|
115
|
+
hash = (hash << 5) - hash + chr;
|
|
116
|
+
hash |= 0;
|
|
117
|
+
}
|
|
118
|
+
return hash;
|
|
119
|
+
}
|
|
120
|
+
export function objectHash(obj) {
|
|
121
|
+
return `${hashCode(JSON.stringify(obj))}`;
|
|
122
|
+
}
|
package/esm/util/nanoid.d.ts
CHANGED
|
@@ -1,5 +1 @@
|
|
|
1
|
-
export declare const urlAlphabet = "useandom-26T198340PX75pxJACKVERYMINDBUSHWOLF_GQZbfghjklqvwyzrict";
|
|
2
|
-
export declare const random: (bytes: number) => Uint8Array<ArrayBuffer>;
|
|
3
|
-
export declare const customRandom: (alphabet: string, defaultSize: number, getRandom: (bytes: number) => Uint8Array) => (size?: number) => string;
|
|
4
|
-
export declare const customAlphabet: (alphabet: string, size?: number) => (size?: number) => string;
|
|
5
1
|
export declare const nanoid: (size?: number) => string;
|
package/esm/util/nanoid.js
CHANGED
|
@@ -1,29 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const mask = (2 << (Math.log(alphabet.length - 1) / Math.LN2)) - 1;
|
|
5
|
-
const step = -~((1.6 * mask * defaultSize) / alphabet.length);
|
|
6
|
-
return (size = defaultSize) => {
|
|
7
|
-
let id = '';
|
|
8
|
-
while (true) {
|
|
9
|
-
const bytes = getRandom(step);
|
|
10
|
-
let j = step;
|
|
11
|
-
while (j--) {
|
|
12
|
-
id += alphabet[bytes[j] & mask] || '';
|
|
13
|
-
if (id.length === size) {
|
|
14
|
-
return id;
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
};
|
|
19
|
-
};
|
|
20
|
-
export const customAlphabet = (alphabet, size = 21) => customRandom(alphabet, size, random);
|
|
1
|
+
// The web-crypto branch of nanoid (https://github.com/ai/nanoid, MIT), reduced
|
|
2
|
+
// to the one generator we call. The custom-alphabet machinery was carried along
|
|
3
|
+
// unused; restore it from upstream if a non-default alphabet is ever needed.
|
|
21
4
|
export const nanoid = (size = 21) => crypto.getRandomValues(new Uint8Array(size)).reduce((id, byte) => {
|
|
5
|
+
// It is incorrect to use bytes exceeding the alphabet size.
|
|
6
|
+
// The following mask reduces the random byte in the 0-255 value
|
|
7
|
+
// range to the 0-63 value range. Therefore, adding hacks, such
|
|
8
|
+
// as empty string fallback or magic numbers, is unnecessary because
|
|
9
|
+
// the bitmask trims bytes down to the alphabet size.
|
|
22
10
|
byte &= 63;
|
|
23
11
|
if (byte < 36) {
|
|
12
|
+
// `0-9a-z`
|
|
24
13
|
id += byte.toString(36);
|
|
25
14
|
}
|
|
26
15
|
else if (byte < 62) {
|
|
16
|
+
// `A-Z`
|
|
27
17
|
id += (byte - 26).toString(36).toUpperCase();
|
|
28
18
|
}
|
|
29
19
|
else if (byte > 62) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export declare function clamp(num: number, min: number, max: number): number;
|
|
2
|
+
export declare function minmax(a: number, b: number): readonly [number, number];
|
|
3
|
+
export declare function max(arr: ArrayLike<number>, init?: number): number;
|
|
4
|
+
export declare function maxFinite(arr: ArrayLike<number>, init?: number): number;
|
|
5
|
+
export declare function min(arr: ArrayLike<number>, init?: number): number;
|
|
6
|
+
export declare function sum(arr: ArrayLike<number>): number;
|
|
7
|
+
export declare function avg(arr: ArrayLike<number>): number;
|
|
8
|
+
export declare function setNumberGrouping(enabled: boolean): void;
|
|
9
|
+
export declare function getNumberGrouping(): boolean;
|
|
10
|
+
export declare function toLocale(n: number): string;
|
|
11
|
+
export declare function toPrecision(s: number, n?: number): number;
|
|
12
|
+
export declare function reducePrecision(s: number, n?: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* A byte count as a person reads it. Shared by the region-too-large banner and
|
|
15
|
+
* the save-track-data dialog, which quote the same index estimate and would
|
|
16
|
+
* otherwise word the same number two ways.
|
|
17
|
+
*/
|
|
18
|
+
export declare function getDisplayStr(totalBytes: number): string;
|
|
19
|
+
export declare function radToDeg(radians: number): number;
|
|
20
|
+
export declare function polarToCartesian(rho: number, theta: number): [number, number];
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
export function clamp(num, min, max) {
|
|
2
|
+
if (num < min) {
|
|
3
|
+
return min;
|
|
4
|
+
}
|
|
5
|
+
if (num > max) {
|
|
6
|
+
return max;
|
|
7
|
+
}
|
|
8
|
+
return num;
|
|
9
|
+
}
|
|
10
|
+
export function minmax(a, b) {
|
|
11
|
+
return [Math.min(a, b), Math.max(a, b)];
|
|
12
|
+
}
|
|
13
|
+
// Index iteration so these accept both arrays and typed arrays (e.g.
|
|
14
|
+
// Float32Array) without requiring Iterable.
|
|
15
|
+
export function max(arr, init = Number.NEGATIVE_INFINITY) {
|
|
16
|
+
let max = init;
|
|
17
|
+
for (let i = 0; i < arr.length; i++) {
|
|
18
|
+
max = Math.max(arr[i], max);
|
|
19
|
+
}
|
|
20
|
+
return max;
|
|
21
|
+
}
|
|
22
|
+
// Like max() but skips NaN/Infinity entries rather than propagating them (a
|
|
23
|
+
// single NaN poisons Math.max). Used where an array can legitimately carry
|
|
24
|
+
// gaps, e.g. a score series with unmeasured bins in it.
|
|
25
|
+
export function maxFinite(arr, init = Number.NEGATIVE_INFINITY) {
|
|
26
|
+
let max = init;
|
|
27
|
+
for (let i = 0; i < arr.length; i++) {
|
|
28
|
+
const v = arr[i];
|
|
29
|
+
if (Number.isFinite(v) && v > max) {
|
|
30
|
+
max = v;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return max;
|
|
34
|
+
}
|
|
35
|
+
export function min(arr, init = Number.POSITIVE_INFINITY) {
|
|
36
|
+
let min = init;
|
|
37
|
+
for (let i = 0; i < arr.length; i++) {
|
|
38
|
+
min = Math.min(arr[i], min);
|
|
39
|
+
}
|
|
40
|
+
return min;
|
|
41
|
+
}
|
|
42
|
+
export function sum(arr) {
|
|
43
|
+
let sum = 0;
|
|
44
|
+
for (let i = 0; i < arr.length; i++) {
|
|
45
|
+
sum += arr[i];
|
|
46
|
+
}
|
|
47
|
+
return sum;
|
|
48
|
+
}
|
|
49
|
+
export function avg(arr) {
|
|
50
|
+
return sum(arr) / arr.length;
|
|
51
|
+
}
|
|
52
|
+
// Thousand separators are a display convention, not part of the number. They
|
|
53
|
+
// make a coordinate readable, but they survive a copy-paste into tools that
|
|
54
|
+
// then choke on them, so users who copy coordinates out of the app more than
|
|
55
|
+
// they read them can turn them off (the `numberGrouping` preference).
|
|
56
|
+
//
|
|
57
|
+
// A plain variable rather than an observable, because every number the app
|
|
58
|
+
// displays funnels through here — including strings built worker-side, where a
|
|
59
|
+
// jexl `mouseover` slot formats a tooltip against the full feature. A
|
|
60
|
+
// main-thread-only reactive value would leave those stale, so the app would sit
|
|
61
|
+
// half-formatted until every track refetched. Instead each realm sets this once
|
|
62
|
+
// at startup (the worker gets it in its boot configuration, see RpcManager) and
|
|
63
|
+
// the preference asks for a reload, which buys uniformity for one page load.
|
|
64
|
+
let numberGrouping = true;
|
|
65
|
+
export function setNumberGrouping(enabled) {
|
|
66
|
+
numberGrouping = enabled;
|
|
67
|
+
}
|
|
68
|
+
// read when handing the setting to another realm; not a display path
|
|
69
|
+
export function getNumberGrouping() {
|
|
70
|
+
return numberGrouping;
|
|
71
|
+
}
|
|
72
|
+
// Fast number formatter with thousand separators.
|
|
73
|
+
// Benchmarked at 5-67x faster than toLocaleString('en-US')
|
|
74
|
+
export function toLocale(n) {
|
|
75
|
+
const abs = Math.abs(n);
|
|
76
|
+
// `!(abs >= 1000)` also covers NaN, which has no digits to group, and
|
|
77
|
+
// String() switches to exponential form at 1e21 and for Infinity, where a
|
|
78
|
+
// thousands separator is meaningless
|
|
79
|
+
if (!numberGrouping || !(abs >= 1000) || abs >= 1e21) {
|
|
80
|
+
return String(n);
|
|
81
|
+
}
|
|
82
|
+
const str = String(abs);
|
|
83
|
+
// separators count from the decimal point, not the end of the string
|
|
84
|
+
const intLen = Number.isInteger(abs) ? str.length : str.indexOf('.');
|
|
85
|
+
let result = n < 0 ? '-' : '';
|
|
86
|
+
for (let i = 0; i < intLen; i++) {
|
|
87
|
+
if (i > 0 && (intLen - i) % 3 === 0) {
|
|
88
|
+
result += ',';
|
|
89
|
+
}
|
|
90
|
+
result += str[i];
|
|
91
|
+
}
|
|
92
|
+
return intLen === str.length ? result : result + str.slice(intLen);
|
|
93
|
+
}
|
|
94
|
+
// numeric significant-figure rounding; reducePrecision is the formatted form
|
|
95
|
+
export function toPrecision(s, n = 3) {
|
|
96
|
+
return Number.parseFloat(s.toPrecision(n));
|
|
97
|
+
}
|
|
98
|
+
export function reducePrecision(s, n = 3) {
|
|
99
|
+
return toLocale(toPrecision(s, n));
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* A byte count as a person reads it. Shared by the region-too-large banner and
|
|
103
|
+
* the save-track-data dialog, which quote the same index estimate and would
|
|
104
|
+
* otherwise word the same number two ways.
|
|
105
|
+
*/
|
|
106
|
+
export function getDisplayStr(totalBytes) {
|
|
107
|
+
// pick the unit from the rounded value so e.g. 999,999 bytes reads "1 Mb"
|
|
108
|
+
// rather than "1000 Kb"
|
|
109
|
+
const mb = toPrecision(totalBytes / 1_000_000);
|
|
110
|
+
const kb = toPrecision(totalBytes / 1000);
|
|
111
|
+
if (mb >= 1) {
|
|
112
|
+
return `${mb} Mb`;
|
|
113
|
+
}
|
|
114
|
+
else if (kb >= 1) {
|
|
115
|
+
return `${kb} Kb`;
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
return `${Math.floor(totalBytes)} bytes`;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
const oneEightyOverPi = 180 / Math.PI;
|
|
122
|
+
export function radToDeg(radians) {
|
|
123
|
+
return (radians * oneEightyOverPi) % 360;
|
|
124
|
+
}
|
|
125
|
+
export function polarToCartesian(rho, theta) {
|
|
126
|
+
return [rho * Math.cos(theta), rho * Math.sin(theta)];
|
|
127
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// MIT https://github.com/inspect-js/is-object
|
|
2
|
+
export function isObject(x) {
|
|
3
|
+
return typeof x === 'object' && x !== null;
|
|
4
|
+
}
|
|
5
|
+
// `isObject` minus arrays: the branch `deepEqual` and `deepMerge` recurse into
|
|
6
|
+
// key by key, as opposed to the one they walk by index.
|
|
7
|
+
export function isPlainObject(x) {
|
|
8
|
+
return isObject(x) && !Array.isArray(x);
|
|
9
|
+
}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Paint a worker-produced image onto a 2d context: either a real
|
|
3
|
+
* ImageBitmap/canvas, or the serialized canvas-sequencer command list a worker
|
|
4
|
+
* without OffscreenCanvas sends instead.
|
|
5
|
+
*/
|
|
3
6
|
export declare function drawImageOntoCanvasContext(imageData: any, context: CanvasRenderingContext2D): void;
|
|
4
|
-
export declare function createCanvas(width: number, height: number): any;
|
|
5
|
-
export declare function createImageBitmap(canvas: any): Promise<unknown>;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { CanvasSequence } from 'canvas-sequencer-ts';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
/**
|
|
3
|
+
* Paint a worker-produced image onto a 2d context: either a real
|
|
4
|
+
* ImageBitmap/canvas, or the serialized canvas-sequencer command list a worker
|
|
5
|
+
* without OffscreenCanvas sends instead.
|
|
6
|
+
*/
|
|
7
7
|
export function drawImageOntoCanvasContext(imageData, context) {
|
|
8
8
|
if (imageData.serializedCommands) {
|
|
9
9
|
const seq = new CanvasSequence(imageData.serializedCommands);
|
|
@@ -13,45 +13,3 @@ export function drawImageOntoCanvasContext(imageData, context) {
|
|
|
13
13
|
context.drawImage(imageData, 0, 0);
|
|
14
14
|
}
|
|
15
15
|
}
|
|
16
|
-
export function createCanvas(width, height) {
|
|
17
|
-
if (typeof OffscreenCanvas === 'function') {
|
|
18
|
-
return new OffscreenCanvas(width, height);
|
|
19
|
-
}
|
|
20
|
-
else if (isNode) {
|
|
21
|
-
return nodeCreateCanvas(width, height);
|
|
22
|
-
}
|
|
23
|
-
else {
|
|
24
|
-
const context = new CanvasSequence();
|
|
25
|
-
return {
|
|
26
|
-
width,
|
|
27
|
-
height,
|
|
28
|
-
getContext() {
|
|
29
|
-
return context;
|
|
30
|
-
},
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
export async function createImageBitmap(canvas) {
|
|
35
|
-
if (typeof OffscreenCanvas === 'function') {
|
|
36
|
-
return canvas.transferToImageBitmap();
|
|
37
|
-
}
|
|
38
|
-
else if (isNode) {
|
|
39
|
-
const dataUri = canvas.toDataURL();
|
|
40
|
-
const img = new nodeImage();
|
|
41
|
-
return new Promise((resolve, reject) => {
|
|
42
|
-
img.onload = () => {
|
|
43
|
-
resolve(img);
|
|
44
|
-
};
|
|
45
|
-
img.onerror = reject;
|
|
46
|
-
img.src = dataUri;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
else {
|
|
50
|
-
const ctx = canvas.getContext('2d');
|
|
51
|
-
return {
|
|
52
|
-
height: canvas.height,
|
|
53
|
-
width: canvas.width,
|
|
54
|
-
serializedCommands: ctx.toJSON(),
|
|
55
|
-
};
|
|
56
|
-
}
|
|
57
|
-
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ResolvableDisplay } from '../configuration/promotableResolve.ts';
|
|
2
|
+
import type { AbstractSessionModel } from './types/index.ts';
|
|
3
|
+
/**
|
|
4
|
+
* #api core/util
|
|
5
|
+
* Every display on an open track, across all open views — the reach of anything
|
|
6
|
+
* that acts on "the tracks the user is looking at": a promoted default's "apply
|
|
7
|
+
* to open tracks", and the share/export bake. One walk so those can't drift
|
|
8
|
+
* apart.
|
|
9
|
+
*
|
|
10
|
+
* Recurses into composite views. A display nested in one resolves the cascade
|
|
11
|
+
* like any other but was invisible to both callers, so the share/export bake
|
|
12
|
+
* didn't bake its inherited values and a shared session containing a
|
|
13
|
+
* breakpoint-split or synteny view rendered differently for the recipient.
|
|
14
|
+
* `LGVSyntenyDisplay` is only ever reached through this branch, so don't flatten
|
|
15
|
+
* the recursion away. `hasChildViews` names the one composite shape it does not
|
|
16
|
+
* cover.
|
|
17
|
+
*
|
|
18
|
+
* A view holding neither (e.g. spreadsheet) drops out via the structural guards.
|
|
19
|
+
* A view whose displays declare no promotable slot (e.g. dotplot, which does
|
|
20
|
+
* hold tracks) is walked and contributes nothing — harmless, and cheaper than
|
|
21
|
+
* asking each display whether it has anything to promote.
|
|
22
|
+
*/
|
|
23
|
+
export declare function openPromotableDisplays(session: AbstractSessionModel): ResolvableDisplay[];
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module
|
|
3
|
+
* One walk of "every display on an open track, across all open views".
|
|
4
|
+
*
|
|
5
|
+
* Lives here rather than in `configuration/promotableDefaults.ts`, where it grew:
|
|
6
|
+
* nothing about it is a cascade concern — it answers "the tracks the user is
|
|
7
|
+
* looking at", and its two callers want that for different reasons (the promoted
|
|
8
|
+
* default's "apply to open tracks", and `product-core`'s share/export bake). It
|
|
9
|
+
* cannot move next to either one: `product-core` imports `@jbrowse/core`, never
|
|
10
|
+
* the reverse.
|
|
11
|
+
*
|
|
12
|
+
* The displays are typed `ResolvableDisplay` because both callers immediately
|
|
13
|
+
* resolve config off them, and that shape (`IStateTreeNode` + `type` +
|
|
14
|
+
* `configuration`) is the smallest thing either needs.
|
|
15
|
+
*/
|
|
16
|
+
import { isObject } from './objectUtils.js';
|
|
17
|
+
import { isViewContainer } from './types/index.js';
|
|
18
|
+
// A view whose open tracks we can enumerate. The generic view interface doesn't
|
|
19
|
+
// surface `tracks`, so narrow structurally — the declared display shape is the
|
|
20
|
+
// same ResolvableDisplay the cascade already operates on.
|
|
21
|
+
//
|
|
22
|
+
// Checks the elements, not just that `tracks` is an array: this narrowing is
|
|
23
|
+
// what every consumer downstream trusts, and an element without `displays`
|
|
24
|
+
// would put `undefined` in the walk and throw at the first `display.type` —
|
|
25
|
+
// inside a share/export bake, i.e. as far from the cause as it gets. Every
|
|
26
|
+
// `tracks`-bearing view today holds real track models, so this only ever
|
|
27
|
+
// confirms what is already true.
|
|
28
|
+
function hasOpenTracks(view) {
|
|
29
|
+
return ('tracks' in view &&
|
|
30
|
+
Array.isArray(view.tracks) &&
|
|
31
|
+
view.tracks.every(t => isObject(t) && Array.isArray(t.displays)));
|
|
32
|
+
}
|
|
33
|
+
// A composite view holding child views in a `views` array: breakpoint-split and
|
|
34
|
+
// the linear-comparative family incl. synteny. Not exclusive with
|
|
35
|
+
// `hasOpenTracks`: LinearComparativeView has both its own synteny tracks and two
|
|
36
|
+
// child LGVs.
|
|
37
|
+
//
|
|
38
|
+
// A view that holds its children under *named* props instead (SvInspectorView's
|
|
39
|
+
// `spreadsheetView`/`circularView`) is NOT reached. Enumerating a view's own
|
|
40
|
+
// properties to find them isn't an option — reading every key of an MST node
|
|
41
|
+
// invokes every computed view on it, several of which throw before the view is
|
|
42
|
+
// initialized. No display reachable that way declares a promotable slot today,
|
|
43
|
+
// so nothing is currently missed; if one ever does, give that view a `views`
|
|
44
|
+
// getter returning its children rather than duck-typing harder here.
|
|
45
|
+
function hasChildViews(view) {
|
|
46
|
+
return ('views' in view &&
|
|
47
|
+
Array.isArray(view.views) &&
|
|
48
|
+
view.views.every(v => typeof v === 'object' && v !== null));
|
|
49
|
+
}
|
|
50
|
+
function displaysInView(view) {
|
|
51
|
+
return [
|
|
52
|
+
...(hasOpenTracks(view) ? view.tracks.flatMap(t => t.displays) : []),
|
|
53
|
+
...(hasChildViews(view) ? view.views.flatMap(displaysInView) : []),
|
|
54
|
+
];
|
|
55
|
+
}
|
|
56
|
+
/**
|
|
57
|
+
* #api core/util
|
|
58
|
+
* Every display on an open track, across all open views — the reach of anything
|
|
59
|
+
* that acts on "the tracks the user is looking at": a promoted default's "apply
|
|
60
|
+
* to open tracks", and the share/export bake. One walk so those can't drift
|
|
61
|
+
* apart.
|
|
62
|
+
*
|
|
63
|
+
* Recurses into composite views. A display nested in one resolves the cascade
|
|
64
|
+
* like any other but was invisible to both callers, so the share/export bake
|
|
65
|
+
* didn't bake its inherited values and a shared session containing a
|
|
66
|
+
* breakpoint-split or synteny view rendered differently for the recipient.
|
|
67
|
+
* `LGVSyntenyDisplay` is only ever reached through this branch, so don't flatten
|
|
68
|
+
* the recursion away. `hasChildViews` names the one composite shape it does not
|
|
69
|
+
* cover.
|
|
70
|
+
*
|
|
71
|
+
* A view holding neither (e.g. spreadsheet) drops out via the structural guards.
|
|
72
|
+
* A view whose displays declare no promotable slot (e.g. dotplot, which does
|
|
73
|
+
* hold tracks) is walked and contributes nothing — harmless, and cheaper than
|
|
74
|
+
* asking each display whether it has anything to promote.
|
|
75
|
+
*/
|
|
76
|
+
export function openPromotableDisplays(session) {
|
|
77
|
+
const views = isViewContainer(session) ? session.views : [];
|
|
78
|
+
return views.flatMap(displaysInView);
|
|
79
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Feature, SimpleFeatureSerialized } from './simpleFeature.ts';
|
|
2
|
+
import type { Widget } from './types/index.ts';
|
|
3
|
+
import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
4
|
+
export interface FeatureWidgetTypeRef {
|
|
5
|
+
type: string;
|
|
6
|
+
id: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function openFeatureWidget(node: IAnyStateTreeNode, featureData: SimpleFeatureSerialized, opts?: {
|
|
9
|
+
widget?: FeatureWidgetTypeRef;
|
|
10
|
+
extra?: Record<string, unknown>;
|
|
11
|
+
feature?: Feature;
|
|
12
|
+
}): Widget | undefined;
|
|
13
|
+
/**
|
|
14
|
+
* The other half of the flow above: the details lookup came back with nothing,
|
|
15
|
+
* so there is no widget to open.
|
|
16
|
+
*
|
|
17
|
+
* Every display paints from slim render arrays and re-fetches the whole feature
|
|
18
|
+
* on click, so a lookup can come back empty for reasons the user cannot see —
|
|
19
|
+
* the data was evicted under them, or the id does not compare in the tier that
|
|
20
|
+
* answered. **Silently doing nothing is the worst response to a click**, and it
|
|
21
|
+
* was what three canvas paths did.
|
|
22
|
+
*
|
|
23
|
+
* Here rather than per plugin because the sentence is one fact and the two
|
|
24
|
+
* families would otherwise word it differently for the same event. It is
|
|
25
|
+
* deliberately NOT what an *error* says: a throw already reaches `notifyError`
|
|
26
|
+
* with the reason, and a display that notifies both tells the user off twice for
|
|
27
|
+
* one click.
|
|
28
|
+
*
|
|
29
|
+
* A **speculative** lookup must not call this — alignments pre-warms the read
|
|
30
|
+
* behind a context menu, and the user asked for nothing there, so the menu just
|
|
31
|
+
* doesn't grow its feature items.
|
|
32
|
+
*/
|
|
33
|
+
export declare function notifyFeatureDetailsMiss(node: IAnyStateTreeNode): void;
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
// straight from mstUtils rather than the barrel, which re-exports this module:
|
|
2
|
+
// a value import of './index.ts' from a module the barrel re-exports is the
|
|
3
|
+
// cycle shape that bites under Rollup (TDZ) and babel/CJS (getter before
|
|
4
|
+
// require) alike
|
|
5
|
+
import { getContainingTrack, getContainingView, getSession, } from './mstUtils.js';
|
|
6
|
+
import { getNotificationSink } from './sessionServices.js';
|
|
7
|
+
import SimpleFeature from './simpleFeature.js';
|
|
8
|
+
import { isSessionModelWithWidgets } from './types/index.js';
|
|
9
|
+
const DEFAULT_FEATURE_WIDGET = {
|
|
10
|
+
type: 'BaseFeatureWidget',
|
|
11
|
+
id: 'baseFeature',
|
|
12
|
+
};
|
|
13
|
+
// Open a feature widget for the given featureData and mark it as the
|
|
14
|
+
// session's selected feature. Node is any MST node in the display tree —
|
|
15
|
+
// used to resolve session + containing view + containing track. Returns
|
|
16
|
+
// the new widget, or undefined if the session can't host widgets (e.g.
|
|
17
|
+
// headless export contexts).
|
|
18
|
+
//
|
|
19
|
+
// This consolidates the addWidget/showWidget/setSelection/getContainingView/
|
|
20
|
+
// getContainingTrack/isSessionModelWithWidgets boilerplate that every
|
|
21
|
+
// "click a feature → open details" flow had to repeat. setSelection is
|
|
22
|
+
// always called so cross-view selection-sync features work uniformly —
|
|
23
|
+
// callers previously split on this, which was likely accidental (the
|
|
24
|
+
// non-BaseLinearDisplay-composers had hand-rolled selectFeature actions
|
|
25
|
+
// and just omitted it).
|
|
26
|
+
export function openFeatureWidget(node, featureData, opts = {}) {
|
|
27
|
+
const session = getSession(node);
|
|
28
|
+
if (!isSessionModelWithWidgets(session)) {
|
|
29
|
+
return undefined;
|
|
30
|
+
}
|
|
31
|
+
session.setSelection(opts.feature ?? new SimpleFeature(featureData));
|
|
32
|
+
const { type, id } = opts.widget ?? DEFAULT_FEATURE_WIDGET;
|
|
33
|
+
const widget = session.addWidget(type, id, {
|
|
34
|
+
featureData,
|
|
35
|
+
view: getContainingView(node),
|
|
36
|
+
track: getContainingTrack(node),
|
|
37
|
+
...opts.extra,
|
|
38
|
+
});
|
|
39
|
+
session.showWidget(widget);
|
|
40
|
+
return widget;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* The other half of the flow above: the details lookup came back with nothing,
|
|
44
|
+
* so there is no widget to open.
|
|
45
|
+
*
|
|
46
|
+
* Every display paints from slim render arrays and re-fetches the whole feature
|
|
47
|
+
* on click, so a lookup can come back empty for reasons the user cannot see —
|
|
48
|
+
* the data was evicted under them, or the id does not compare in the tier that
|
|
49
|
+
* answered. **Silently doing nothing is the worst response to a click**, and it
|
|
50
|
+
* was what three canvas paths did.
|
|
51
|
+
*
|
|
52
|
+
* Here rather than per plugin because the sentence is one fact and the two
|
|
53
|
+
* families would otherwise word it differently for the same event. It is
|
|
54
|
+
* deliberately NOT what an *error* says: a throw already reaches `notifyError`
|
|
55
|
+
* with the reason, and a display that notifies both tells the user off twice for
|
|
56
|
+
* one click.
|
|
57
|
+
*
|
|
58
|
+
* A **speculative** lookup must not call this — alignments pre-warms the read
|
|
59
|
+
* behind a context menu, and the user asked for nothing there, so the menu just
|
|
60
|
+
* doesn't grow its feature items.
|
|
61
|
+
*/
|
|
62
|
+
export function notifyFeatureDetailsMiss(node) {
|
|
63
|
+
getNotificationSink(node).notify('Could not load details for this feature', 'warning');
|
|
64
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { SvgCanvas } from './SvgCanvas.ts';
|
|
2
|
+
import type { SvgRasterCanvasOpts } from './createSvgRasterCanvas.ts';
|
|
3
|
+
import type React from 'react';
|
|
4
|
+
export type Ctx2D = CanvasRenderingContext2D | SvgCanvas;
|
|
5
|
+
export type PaintLayerOpts = SvgRasterCanvasOpts & {
|
|
6
|
+
rasterizeLayers?: boolean;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Paint into either a 2× rasterize canvas (PNG-embedded as <image>) or an
|
|
10
|
+
* SvgCanvas (serialized into a <g>). Renders one element — callers don't
|
|
11
|
+
* branch on which mode was picked.
|
|
12
|
+
*
|
|
13
|
+
* Used by every renderSvg.tsx that has a heavy draw path: the same `paint`
|
|
14
|
+
* callback runs on both surfaces, with `paint(ctx)` doing whatever drawing
|
|
15
|
+
* the plugin needs in logical coordinates (the raster canvas is pre-scaled, so
|
|
16
|
+
* callbacks never deal with devicePixelRatio). Width 0 or height 0 falls
|
|
17
|
+
* through to the vector branch (canvas creation rejects 0×0).
|
|
18
|
+
*
|
|
19
|
+
* A vector layer whose `paint` drew nothing renders nothing — not an empty
|
|
20
|
+
* `<g>`. Layers are routinely conditional on data (a highlight pass with no
|
|
21
|
+
* highlighted feature, a legend-less track, a band that is switched off), and
|
|
22
|
+
* every such layer was leaving a stray group in the file for a reader to open
|
|
23
|
+
* and find empty. The raster branch has no cheap equivalent — asking whether a
|
|
24
|
+
* canvas is blank means reading its pixels back — and it does not need one: a
|
|
25
|
+
* fully transparent PNG is a couple of hundred bytes.
|
|
26
|
+
*/
|
|
27
|
+
export declare function PaintLayer({ width, height, opts, paint, }: {
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
opts?: PaintLayerOpts;
|
|
31
|
+
paint: (ctx: Ctx2D) => void;
|
|
32
|
+
}): React.ReactNode;
|