@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
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { createContext, use, useCallback, useEffect, useRef, useSyncExternalStore, } from 'react';
|
|
2
|
+
// A box rather than a bare `let`, because oxlint narrows a closure-assigned
|
|
3
|
+
// `let` to its initializer and then reads every use of it as always-undefined.
|
|
4
|
+
function createMouseStore() {
|
|
5
|
+
const box = { state: undefined };
|
|
6
|
+
const subscribers = new Set();
|
|
7
|
+
return {
|
|
8
|
+
subscribe(onStoreChange) {
|
|
9
|
+
subscribers.add(onStoreChange);
|
|
10
|
+
return () => {
|
|
11
|
+
subscribers.delete(onStoreChange);
|
|
12
|
+
};
|
|
13
|
+
},
|
|
14
|
+
// Stable identity while nothing moves, which useSyncExternalStore requires:
|
|
15
|
+
// the state object is replaced only in `set`, never rebuilt per read.
|
|
16
|
+
getSnapshot() {
|
|
17
|
+
return box.state;
|
|
18
|
+
},
|
|
19
|
+
set(next) {
|
|
20
|
+
box.state = next;
|
|
21
|
+
for (const onStoreChange of subscribers) {
|
|
22
|
+
onStoreChange();
|
|
23
|
+
}
|
|
24
|
+
},
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Drop the tracked pointer, published by whoever bound the handlers.
|
|
29
|
+
*
|
|
30
|
+
* `mouseleave` reports the pointer leaving an element, and the browser decides
|
|
31
|
+
* that by comparing the hover chain before a move to the chain after it. A menu
|
|
32
|
+
* portalled to the body opens under the cursor with no move at all, and closing
|
|
33
|
+
* it detaches the chain's nodes — so hover restarts at `body` and the display
|
|
34
|
+
* the menu covered is never told anything again. Its overlays then keep drawing
|
|
35
|
+
* at the coordinate the pointer had when the menu opened, wherever the pointer
|
|
36
|
+
* has since gone.
|
|
37
|
+
*
|
|
38
|
+
* `ContextMenu` calls this on close, which is why the default is a no-op: a menu
|
|
39
|
+
* raised outside a display's chrome has no tracked pointer to drop.
|
|
40
|
+
*/
|
|
41
|
+
const ClearTrackedPointerContext = createContext(() => { });
|
|
42
|
+
export const ClearTrackedPointerProvider = ClearTrackedPointerContext.Provider;
|
|
43
|
+
export function useClearTrackedPointer() {
|
|
44
|
+
return use(ClearTrackedPointerContext);
|
|
45
|
+
}
|
|
46
|
+
/**
|
|
47
|
+
* Container-relative mouse position for the overlays that follow the pointer
|
|
48
|
+
* (`Crosshairs`, tooltips), coalesced to one update per frame.
|
|
49
|
+
*
|
|
50
|
+
* The position is measured against the box of whatever element the handlers are
|
|
51
|
+
* bound to, which is what the overlays are positioned in — off `currentTarget`,
|
|
52
|
+
* so there is no ref to pass and no way to bind the two to different elements.
|
|
53
|
+
* A display that also hit-tests takes `onMove`, so its hit and its guides come
|
|
54
|
+
* off one measurement in one frame instead of two pointer paths that have to
|
|
55
|
+
* agree.
|
|
56
|
+
*
|
|
57
|
+
* **It returns a `mouseTracker` rather than the position, and that is the
|
|
58
|
+
* load-bearing part.** Its one caller is `DisplayChromeBase`, which owns the
|
|
59
|
+
* container the handlers bind to — so if the position were state here, every
|
|
60
|
+
* mouse move would re-render the chrome itself (re-running
|
|
61
|
+
* `useRenderingBackend`), the status container with a fresh inline `style`
|
|
62
|
+
* object, all three overlays, and only then the body that actually wanted the
|
|
63
|
+
* coordinate. That is a whole display's chrome repainting because the cursor
|
|
64
|
+
* moved a pixel over it; it cost a full document `Layout` plus three `Paint`s
|
|
65
|
+
* per mousemove on the wiggle displays, back when each display called this hook
|
|
66
|
+
* itself and every one of them had it.
|
|
67
|
+
*
|
|
68
|
+
* So the position is published instead, and whoever wants it calls
|
|
69
|
+
* `useMouseState(mouseTracker)` — from inside the chrome's body, where the
|
|
70
|
+
* overlays live. Re-rendering then starts at the component that reads it.
|
|
71
|
+
* Passing the tracker down a prop is free; passing `mouseState` down is the bug.
|
|
72
|
+
*/
|
|
73
|
+
export function useMouseTracking(onMove) {
|
|
74
|
+
const rafRef = useRef(undefined);
|
|
75
|
+
const storeRef = useRef(undefined);
|
|
76
|
+
storeRef.current ??= createMouseStore();
|
|
77
|
+
const store = storeRef.current;
|
|
78
|
+
// Reached through a ref rather than captured, so `handleMouseLeave` below can
|
|
79
|
+
// be identity-stable — one of its callers is an effect, and a handler that
|
|
80
|
+
// changed identity every render would make that effect re-run every render.
|
|
81
|
+
// Reading the latest is also the better answer for the frame callback, which
|
|
82
|
+
// runs after the render whose closure scheduled it.
|
|
83
|
+
//
|
|
84
|
+
// Written in an effect rather than during render: a render React discards must
|
|
85
|
+
// not leave this pointing at a callback from it. Nothing can read it before
|
|
86
|
+
// the first commit — both users are event/effect callbacks — and `useRef`'s
|
|
87
|
+
// initial value covers the first commit itself.
|
|
88
|
+
const onMoveRef = useRef(onMove);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
onMoveRef.current = onMove;
|
|
91
|
+
});
|
|
92
|
+
/**
|
|
93
|
+
* Drop the published position and tell `onMove` the pointer is gone.
|
|
94
|
+
*
|
|
95
|
+
* Bound as the container's `onMouseLeave` — and called directly for the two
|
|
96
|
+
* cases `mouseleave` cannot report: the container being *removed* rather than
|
|
97
|
+
* left, and a portalled menu closing over it. `DisplayChromeBase` makes both
|
|
98
|
+
* calls, the second by publishing this on `ClearTrackedPointerProvider`.
|
|
99
|
+
* Identity-stable for both.
|
|
100
|
+
*/
|
|
101
|
+
const handleMouseLeave = useCallback(() => {
|
|
102
|
+
if (rafRef.current) {
|
|
103
|
+
cancelAnimationFrame(rafRef.current);
|
|
104
|
+
rafRef.current = undefined;
|
|
105
|
+
}
|
|
106
|
+
store.set(undefined);
|
|
107
|
+
onMoveRef.current?.(undefined);
|
|
108
|
+
}, [store]);
|
|
109
|
+
const handleMouseMove = (event) => {
|
|
110
|
+
// An overlay portaled out of the container still *bubbles* its React events
|
|
111
|
+
// here, even though its DOM node is not a descendant — so the coordinate
|
|
112
|
+
// would be measured against a box the pointer isn't in. HiC guarded this by
|
|
113
|
+
// hand (its resolution dropdown and legend portal); it is a hazard for any
|
|
114
|
+
// display with a portaled overlay, and several have one, so the guard lives
|
|
115
|
+
// here and applies to all of them. Treated as a leave: the pointer is over
|
|
116
|
+
// something else, and the guides should drop rather than freeze.
|
|
117
|
+
const { target } = event;
|
|
118
|
+
if (target instanceof Node && !event.currentTarget.contains(target)) {
|
|
119
|
+
handleMouseLeave();
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (rafRef.current) {
|
|
123
|
+
cancelAnimationFrame(rafRef.current);
|
|
124
|
+
}
|
|
125
|
+
const clientX = event.clientX;
|
|
126
|
+
const clientY = event.clientY;
|
|
127
|
+
// Captured here rather than read in the frame: React clears `currentTarget`
|
|
128
|
+
// once the handler returns. `isConnected` then stands in for the ref check
|
|
129
|
+
// this used to do — a display unmounted between the move and the frame
|
|
130
|
+
// measures as a zero rect, and would publish the client point as if the
|
|
131
|
+
// pointer were at the origin of a box that is gone.
|
|
132
|
+
const container = event.currentTarget;
|
|
133
|
+
rafRef.current = requestAnimationFrame(() => {
|
|
134
|
+
if (container.isConnected) {
|
|
135
|
+
const rect = container.getBoundingClientRect();
|
|
136
|
+
const state = {
|
|
137
|
+
x: clientX - rect.left,
|
|
138
|
+
y: clientY - rect.top,
|
|
139
|
+
clientX,
|
|
140
|
+
clientY,
|
|
141
|
+
};
|
|
142
|
+
store.set(state);
|
|
143
|
+
onMoveRef.current?.(state);
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
};
|
|
147
|
+
return {
|
|
148
|
+
mouseTracker: store,
|
|
149
|
+
handleMouseMove,
|
|
150
|
+
handleMouseLeave,
|
|
151
|
+
};
|
|
152
|
+
}
|
|
153
|
+
const identity = (state) => state;
|
|
154
|
+
const noopSubscribe = () => () => { };
|
|
155
|
+
/**
|
|
156
|
+
* Read something derived from the tracked pointer, re-rendering only when the
|
|
157
|
+
* derived value changes.
|
|
158
|
+
*
|
|
159
|
+
* `useMouseState` renders once per frame the pointer moves, which is what a
|
|
160
|
+
* thing drawn *at* the cursor wants. A consumer that only asks a question of the
|
|
161
|
+
* position — "is the pointer inside this band?" — renders once per answer
|
|
162
|
+
* instead, because `useSyncExternalStore` compares snapshots and a boolean
|
|
163
|
+
* compares equal to the last one.
|
|
164
|
+
*
|
|
165
|
+
* The tracker is optional so a component can sit outside whatever bound the
|
|
166
|
+
* handlers (a highlight band rendered in a test, say) and read a pointer that is
|
|
167
|
+
* simply never there.
|
|
168
|
+
*/
|
|
169
|
+
export function useMouseSelector(tracker, selector) {
|
|
170
|
+
return useSyncExternalStore(tracker?.subscribe ?? noopSubscribe, () => selector(tracker?.getSnapshot()), () => selector(undefined));
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Read the tracked pointer position. Call this in the component that draws the
|
|
174
|
+
* cursor-following thing, not in the one that bound the handlers — see
|
|
175
|
+
* `useMouseTracking`.
|
|
176
|
+
*/
|
|
177
|
+
export function useMouseState(tracker) {
|
|
178
|
+
return useMouseSelector(tracker, identity);
|
|
179
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A recorded row: what the menu shows, and what reopening it actually opens.
|
|
3
|
+
*
|
|
4
|
+
* The two are not the same string. A text-search hit's display string is built
|
|
5
|
+
* for reading — a snippet ellipsized to fit, or `name (matched attribute)` when
|
|
6
|
+
* the query hit something other than the name — and feeding it back to the
|
|
7
|
+
* search finds nothing, because those characters were never in the index. So a
|
|
8
|
+
* row that had a location carries it, and reopening parses that instead.
|
|
9
|
+
*
|
|
10
|
+
* `loc` is absent for a query the user typed and submitted freehand, which has
|
|
11
|
+
* no resolved location to record. That label _is_ searchable (it is what the
|
|
12
|
+
* user typed), so those rows are replayed through search as before.
|
|
13
|
+
*/
|
|
14
|
+
export interface RecentLocation {
|
|
15
|
+
label: string;
|
|
16
|
+
loc?: string;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Remembers the locations recently opened from the header search box or an
|
|
20
|
+
* import form, most-recent first and deduplicated, scoped per assembly (and per
|
|
21
|
+
* host/path/config like the remembered assembly). Without an assembly there is
|
|
22
|
+
* nothing to scope the key to, so the list stays in memory only.
|
|
23
|
+
*/
|
|
24
|
+
export declare function useRecentLocations(assemblyName?: string): {
|
|
25
|
+
recentLocations: RecentLocation[];
|
|
26
|
+
addRecentLocation: (entry: RecentLocation) => void;
|
|
27
|
+
clearRecentLocations: () => void;
|
|
28
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { useLocalStorage } from '../util/hooks.js';
|
|
2
|
+
import { instanceScopedKey } from './useAssemblySelection.js';
|
|
3
|
+
// keep the list short so it reads as "jump back to somewhere recent" rather
|
|
4
|
+
// than a full history
|
|
5
|
+
const MAX_RECENT_LOCATIONS = 6;
|
|
6
|
+
function normalize(entry) {
|
|
7
|
+
return typeof entry === 'string' ? { label: entry } : entry;
|
|
8
|
+
}
|
|
9
|
+
// the same place reached two ways (by name, then by ID) is one row, so rows
|
|
10
|
+
// that resolved to a location are identified by it rather than by their label
|
|
11
|
+
function identity({ label, loc }) {
|
|
12
|
+
return loc ?? label;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Remembers the locations recently opened from the header search box or an
|
|
16
|
+
* import form, most-recent first and deduplicated, scoped per assembly (and per
|
|
17
|
+
* host/path/config like the remembered assembly). Without an assembly there is
|
|
18
|
+
* nothing to scope the key to, so the list stays in memory only.
|
|
19
|
+
*/
|
|
20
|
+
export function useRecentLocations(assemblyName) {
|
|
21
|
+
const [stored, setRecentLocations] = useLocalStorage(instanceScopedKey('recentLocations', assemblyName ?? ''), [], Boolean(assemblyName));
|
|
22
|
+
const recentLocations = stored.map(normalize);
|
|
23
|
+
function addRecentLocation(entry) {
|
|
24
|
+
const id = identity(entry);
|
|
25
|
+
setRecentLocations(prev => [entry, ...prev.map(normalize).filter(e => identity(e) !== id)].slice(0, MAX_RECENT_LOCATIONS));
|
|
26
|
+
}
|
|
27
|
+
function clearRecentLocations() {
|
|
28
|
+
setRecentLocations([]);
|
|
29
|
+
}
|
|
30
|
+
return { recentLocations, addRecentLocation, clearRecentLocations };
|
|
31
|
+
}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { ExtensionPointRegistry, PointsOfKind } from '../PluginManager.ts';
|
|
3
|
+
import type { ComponentType } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* The extension points that resolve to a single component — every point
|
|
6
|
+
* declared `ComponentSlot`. {@link PluggableComponent} is the producer side.
|
|
7
|
+
*/
|
|
8
|
+
export type SlotExtensionPointName = PointsOfKind<'componentSlot'>;
|
|
9
|
+
/** The props the component in slot `N` is rendered with. */
|
|
10
|
+
export type SlotProps<N extends SlotExtensionPointName> = ExtensionPointRegistry[N]['props'];
|
|
11
|
+
export type WrapperProps<N extends SlotExtensionPointName> = SlotProps<N> & {
|
|
12
|
+
/**
|
|
13
|
+
* whatever fills the slot so far: the built-in default, or another plugin's
|
|
14
|
+
* wrapper. Render it where you want it to appear, or leave it out to take the
|
|
15
|
+
* slot over entirely
|
|
16
|
+
*/
|
|
17
|
+
DefaultComponent: ComponentType<SlotProps<N>>;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Put `wrapper` around whatever currently fills a single-component slot. It
|
|
21
|
+
* receives the slot's props plus the component it wraps, so wrappers from
|
|
22
|
+
* several plugins nest rather than clobbering one another, and scoping is a
|
|
23
|
+
* plain conditional:
|
|
24
|
+
*
|
|
25
|
+
* ```tsx
|
|
26
|
+
* wrapComponent(pm, 'Core-replaceWidget', ({ DefaultComponent, ...props }) =>
|
|
27
|
+
* matchesTrackSelector({ trackId: 'volvox.inv.vcf' }, props) ? (
|
|
28
|
+
* <MyWidget {...props} />
|
|
29
|
+
* ) : (
|
|
30
|
+
* <DefaultComponent {...props} />
|
|
31
|
+
* ),
|
|
32
|
+
* )
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* Wrapping is the only operation these points have, because replacing is
|
|
36
|
+
* wrapping and not rendering what you were handed. Registering on the point
|
|
37
|
+
* directly does the same thing, minus the two halves this gets right:
|
|
38
|
+
*
|
|
39
|
+
* - the fold reruns on **every render** of the producer, so a wrapper declared
|
|
40
|
+
* inside the callback is a new component type each time and React unmounts the
|
|
41
|
+
* subtree, losing scroll position, form state and any open sub-panel. Here the
|
|
42
|
+
* wrapped component is built once and cached per component wrapped.
|
|
43
|
+
* - a hand-written callback that forgets to hand back the accumulated component
|
|
44
|
+
* on the tracks it does not want takes over the drawer, the modal and every
|
|
45
|
+
* feature details panel.
|
|
46
|
+
*/
|
|
47
|
+
export declare function wrapComponent<N extends SlotExtensionPointName>(pluginManager: PluginManager, name: N, wrapper: ComponentType<WrapperProps<N>>): void;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { wrappedComponent } from '../PluginManager.js';
|
|
3
|
+
/**
|
|
4
|
+
* Put `wrapper` around whatever currently fills a single-component slot. It
|
|
5
|
+
* receives the slot's props plus the component it wraps, so wrappers from
|
|
6
|
+
* several plugins nest rather than clobbering one another, and scoping is a
|
|
7
|
+
* plain conditional:
|
|
8
|
+
*
|
|
9
|
+
* ```tsx
|
|
10
|
+
* wrapComponent(pm, 'Core-replaceWidget', ({ DefaultComponent, ...props }) =>
|
|
11
|
+
* matchesTrackSelector({ trackId: 'volvox.inv.vcf' }, props) ? (
|
|
12
|
+
* <MyWidget {...props} />
|
|
13
|
+
* ) : (
|
|
14
|
+
* <DefaultComponent {...props} />
|
|
15
|
+
* ),
|
|
16
|
+
* )
|
|
17
|
+
* ```
|
|
18
|
+
*
|
|
19
|
+
* Wrapping is the only operation these points have, because replacing is
|
|
20
|
+
* wrapping and not rendering what you were handed. Registering on the point
|
|
21
|
+
* directly does the same thing, minus the two halves this gets right:
|
|
22
|
+
*
|
|
23
|
+
* - the fold reruns on **every render** of the producer, so a wrapper declared
|
|
24
|
+
* inside the callback is a new component type each time and React unmounts the
|
|
25
|
+
* subtree, losing scroll position, form state and any open sub-panel. Here the
|
|
26
|
+
* wrapped component is built once and cached per component wrapped.
|
|
27
|
+
* - a hand-written callback that forgets to hand back the accumulated component
|
|
28
|
+
* on the tracks it does not want takes over the drawer, the modal and every
|
|
29
|
+
* feature details panel.
|
|
30
|
+
*/
|
|
31
|
+
export function wrapComponent(pluginManager, name, wrapper) {
|
|
32
|
+
const Wrapper = wrapper;
|
|
33
|
+
const cache = new WeakMap();
|
|
34
|
+
pluginManager.addToExtensionPoint(name, (accumulated) => {
|
|
35
|
+
const Default = accumulated;
|
|
36
|
+
let built = cache.get(Default);
|
|
37
|
+
if (!built) {
|
|
38
|
+
const made = (slotProps) => {
|
|
39
|
+
// the literal is what checks the wrapper's props. The assertion is for
|
|
40
|
+
// JSX alone: it checks attributes against a type made entirely of
|
|
41
|
+
// optionals, and through `N` tsc cannot see this one has any property in
|
|
42
|
+
// common with it, so a plain spread reads as the weak-type mistake
|
|
43
|
+
const wrapperProps = {
|
|
44
|
+
...slotProps,
|
|
45
|
+
DefaultComponent: Default,
|
|
46
|
+
};
|
|
47
|
+
return _jsx(Wrapper, { ...wrapperProps });
|
|
48
|
+
};
|
|
49
|
+
made.displayName = `${Wrapper.displayName ?? Wrapper.name}(${Default.displayName ?? Default.name})`;
|
|
50
|
+
// records what it wraps, so evaluateComponentExtensionPoint counts this
|
|
51
|
+
// as composition rather than as taking the slot
|
|
52
|
+
Object.defineProperty(made, wrappedComponent, { value: Default });
|
|
53
|
+
cache.set(Default, made);
|
|
54
|
+
built = made;
|
|
55
|
+
}
|
|
56
|
+
return built;
|
|
57
|
+
});
|
|
58
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/** Material UI's `zIndex.drawer`: above the app bar (1100), below a modal (1300). */
|
|
2
|
+
export declare const DRAWER_Z_INDEX = 1200;
|
|
3
|
+
/**
|
|
4
|
+
* Material UI's `zIndex.tooltip`, for chrome that must clear every Material
|
|
5
|
+
* surface without leaving that scale — the coordinate guide label, which is
|
|
6
|
+
* fixed-position and follows the cursor across the whole app.
|
|
7
|
+
*/
|
|
8
|
+
export declare const MUI_TOOLTIP_Z_INDEX = 1500;
|
|
9
|
+
/**
|
|
10
|
+
* The button that brings a minimized drawer back (see AppFab). It floats over
|
|
11
|
+
* the views, so it has to clear the layers they stack inside themselves — the
|
|
12
|
+
* LGV's rubberband, its vertical guide and its coordinate labels run to ~1002 —
|
|
13
|
+
* and it is app chrome rather than a hover, so it stays below the two layers
|
|
14
|
+
* beneath.
|
|
15
|
+
*/
|
|
16
|
+
export declare const FAB_Z_INDEX = 10000;
|
|
17
|
+
/**
|
|
18
|
+
* Hover tooltips (see BaseTooltip). Above the app chrome so a tooltip near a
|
|
19
|
+
* track edge isn't clipped by the drawer or the view's own overlays.
|
|
20
|
+
*/
|
|
21
|
+
export declare const TOOLTIP_Z_INDEX = 100000;
|
|
22
|
+
/**
|
|
23
|
+
* Right-click menus (see ContextMenu). One above the tooltip: the menu is
|
|
24
|
+
* something the user just asked for, so nothing may cover it. Handlers still
|
|
25
|
+
* drop the hover when opening a menu — this is what keeps a tooltip that
|
|
26
|
+
* outlives that clear (a neighbouring display's, say) from landing on top.
|
|
27
|
+
*/
|
|
28
|
+
export declare const CONTEXT_MENU_Z_INDEX: number;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
// Stacking order, kept in one place so it is stated rather than inferred from
|
|
2
|
+
// magic numbers spread across displays. Two groups, and the split matters.
|
|
3
|
+
//
|
|
4
|
+
// The first is Material UI's own scale, reproduced here rather than read off
|
|
5
|
+
// `theme.zIndex`. `makeStyles` is handed JBrowse's plain-data style theme
|
|
6
|
+
// (`styleTheme.ts`), which carries no `zIndex` — a layer belongs where the
|
|
7
|
+
// layering is decided, not in a token bag every styled component drags around.
|
|
8
|
+
// See `agent-docs/reference/EAGER_BUNDLE.md`.
|
|
9
|
+
/** Material UI's `zIndex.drawer`: above the app bar (1100), below a modal (1300). */
|
|
10
|
+
export const DRAWER_Z_INDEX = 1200;
|
|
11
|
+
/**
|
|
12
|
+
* Material UI's `zIndex.tooltip`, for chrome that must clear every Material
|
|
13
|
+
* surface without leaving that scale — the coordinate guide label, which is
|
|
14
|
+
* fixed-position and follows the cursor across the whole app.
|
|
15
|
+
*/
|
|
16
|
+
export const MUI_TOOLTIP_Z_INDEX = 1500;
|
|
17
|
+
// The second group is the floating layers that live above everything else. All
|
|
18
|
+
// of them sit far above Material UI's scale, so they are not expressible on it.
|
|
19
|
+
/**
|
|
20
|
+
* The button that brings a minimized drawer back (see AppFab). It floats over
|
|
21
|
+
* the views, so it has to clear the layers they stack inside themselves — the
|
|
22
|
+
* LGV's rubberband, its vertical guide and its coordinate labels run to ~1002 —
|
|
23
|
+
* and it is app chrome rather than a hover, so it stays below the two layers
|
|
24
|
+
* beneath.
|
|
25
|
+
*/
|
|
26
|
+
export const FAB_Z_INDEX = 10000;
|
|
27
|
+
/**
|
|
28
|
+
* Hover tooltips (see BaseTooltip). Above the app chrome so a tooltip near a
|
|
29
|
+
* track edge isn't clipped by the drawer or the view's own overlays.
|
|
30
|
+
*/
|
|
31
|
+
export const TOOLTIP_Z_INDEX = 100000;
|
|
32
|
+
/**
|
|
33
|
+
* Right-click menus (see ContextMenu). One above the tooltip: the menu is
|
|
34
|
+
* something the user just asked for, so nothing may cover it. Handlers still
|
|
35
|
+
* drop the hover when opening a menu — this is what keeps a tooltip that
|
|
36
|
+
* outlives that clear (a neighbouring display's, say) from landing on top.
|
|
37
|
+
*/
|
|
38
|
+
export const CONTEXT_MENU_Z_INDEX = TOOLTIP_Z_INDEX + 1;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { BaseBlock } from './blockTypes.ts';
|
|
2
2
|
export interface BpOffset {
|
|
3
3
|
refName?: string;
|
|
4
4
|
index: number;
|
|
@@ -6,33 +6,221 @@ export interface BpOffset {
|
|
|
6
6
|
start?: number;
|
|
7
7
|
end?: number;
|
|
8
8
|
}
|
|
9
|
-
|
|
9
|
+
/**
|
|
10
|
+
* Offset in bp from a displayed region's **left screen edge**, which is its end
|
|
11
|
+
* when the region is reversed. This one reflection is what "reversed" means
|
|
12
|
+
* everywhere in a linear view: `bpToPx` below, the ruler's ticks
|
|
13
|
+
* (`LinearGenomeView/util.ts`), and any display placing a feature against a
|
|
14
|
+
* single block. Reach for it instead of writing `pos - region.start`, which
|
|
15
|
+
* silently lays out forward under a right-to-left ruler.
|
|
16
|
+
*/
|
|
17
|
+
export declare function bpOffsetInRegion(region: {
|
|
18
|
+
start: number;
|
|
19
|
+
end: number;
|
|
20
|
+
reversed?: boolean;
|
|
21
|
+
}, bp: number): number;
|
|
22
|
+
interface RegionSnap {
|
|
23
|
+
start: number;
|
|
24
|
+
end: number;
|
|
25
|
+
refName: string;
|
|
26
|
+
reversed?: boolean;
|
|
27
|
+
assemblyName: string;
|
|
28
|
+
}
|
|
29
|
+
interface MoveSnap {
|
|
30
|
+
displayedRegions: {
|
|
31
|
+
start: number;
|
|
32
|
+
end: number;
|
|
33
|
+
}[];
|
|
34
|
+
width: number;
|
|
35
|
+
}
|
|
36
|
+
export interface ViewLayout {
|
|
37
|
+
displayedRegions: RegionSnap[];
|
|
38
|
+
bpPerPx: number;
|
|
39
|
+
offsetPx: number;
|
|
40
|
+
width: number;
|
|
41
|
+
minimumBlockWidth: number;
|
|
42
|
+
}
|
|
43
|
+
export declare function moveTo(self: MoveSnap & {
|
|
10
44
|
zoomTo: (arg: number) => number;
|
|
11
45
|
scrollTo: (arg: number) => void;
|
|
12
46
|
}, start?: BpOffset, end?: BpOffset): void;
|
|
13
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Pure version of moveTo: returns the {bpPerPx, offsetPx} that moveTo would
|
|
49
|
+
* apply, without mutating any model. Assumes no bpPerPx clamping (i.e.
|
|
50
|
+
* Base1DView with no min/maxBpPerPx).
|
|
51
|
+
*/
|
|
52
|
+
export declare function computeMoveToLayout(self: MoveSnap, start: BpOffset, end: BpOffset): {
|
|
53
|
+
bpPerPx: number;
|
|
54
|
+
offsetPx: number;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* The base **painted** at a pixel. Pair it with `pxToBp`'s `offset` field, and
|
|
58
|
+
* only once you know the pixel is in bounds (`!oob`) — off the end of a region
|
|
59
|
+
* no base is painted and the question has no answer.
|
|
60
|
+
*
|
|
61
|
+
* Use this rather than `coord0` whenever the result indexes per-base data: a
|
|
62
|
+
* sequence string, a coverage bin, a per-base tooltip. Reversed, bp runs
|
|
63
|
+
* leftward, so base b covers offsets (b, b+1] — `coord0`'s floor names b+1 on
|
|
64
|
+
* b's leftmost pixel column, and names `r.end`, outside the region entirely, on
|
|
65
|
+
* the region's first column.
|
|
66
|
+
*
|
|
67
|
+
* This is the same one-base pivot as render-core's `makeCellLeftMapper` /
|
|
68
|
+
* `bpAtPx`, which is what the per-base painters draw with, so this is the
|
|
69
|
+
* readout that agrees with what is on screen. The parity block in
|
|
70
|
+
* `Base1DUtils.test.ts` holds the two together.
|
|
71
|
+
*
|
|
72
|
+
* They stay two spellings because there is no shared call to make, not because
|
|
73
|
+
* of the package graph — core declares `@jbrowse/render-core` and imports it
|
|
74
|
+
* from three modules already. `bpAtPx` takes a screen pixel plus a px/bp
|
|
75
|
+
* projection and is mostly about the float behaviour of that projection; this
|
|
76
|
+
* takes an offset already in bp and has no projection. Feeding `bpAtPx`
|
|
77
|
+
* synthetic bounds to fake one computes `(offsetBp * span) / span`, which is
|
|
78
|
+
* not exactly `offsetBp` at genome scale: over a 3000000-sample sweep of base
|
|
79
|
+
* boundaries the perturbation named the wrong base 6885 times, every one of
|
|
80
|
+
* them on a 248956422 bp region (1.9% of that span's samples) and none on any
|
|
81
|
+
* span at or below 133797422. What is left to share is the two lines below, and
|
|
82
|
+
* only render-core could hold them — it must not import core — which would put
|
|
83
|
+
* a pixel-free function downstream of the renderer and split it from its own
|
|
84
|
+
* forward twin, `bpOffsetInRegion` at the top of this file.
|
|
85
|
+
*/
|
|
86
|
+
export declare function basePaintedAt(r: {
|
|
87
|
+
start: number;
|
|
88
|
+
end: number;
|
|
89
|
+
reversed?: boolean;
|
|
90
|
+
}, offsetBp: number): number;
|
|
91
|
+
export interface PxToBpResult extends RegionSnap {
|
|
14
92
|
coord: number;
|
|
93
|
+
coord0: number;
|
|
15
94
|
index: number;
|
|
16
|
-
refName: string;
|
|
17
95
|
oob: boolean;
|
|
18
|
-
assemblyName: string;
|
|
19
96
|
offset: number;
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
}
|
|
24
|
-
export declare function bpToPx({ refName, coord, regionNumber, self, }: {
|
|
97
|
+
}
|
|
98
|
+
export declare function pxToBp(self: ViewLayout, px: number): PxToBpResult;
|
|
99
|
+
export declare function offsetBpToPx(self: ViewLayout, regionIndex: number, regionOffsetBp: number): number;
|
|
100
|
+
export declare function bpToPx({ refName, coord, displayedRegionIndex, self, }: {
|
|
25
101
|
refName: string;
|
|
26
102
|
coord: number;
|
|
27
|
-
|
|
28
|
-
self:
|
|
103
|
+
displayedRegionIndex?: number;
|
|
104
|
+
self: ViewLayout;
|
|
29
105
|
}): {
|
|
30
106
|
index: number;
|
|
31
107
|
offsetPx: number;
|
|
32
108
|
} | undefined;
|
|
33
|
-
|
|
109
|
+
/**
|
|
110
|
+
* The {@link BpOffset} a 0-based genomic coord sits at — a region index plus an
|
|
111
|
+
* offset in **bp** from that region's left screen edge, which is the shape
|
|
112
|
+
* `moveTo` and `computeMoveToLayout` take.
|
|
113
|
+
*
|
|
114
|
+
* `bpToPx` above answers the neighbouring question in pixels and returns an
|
|
115
|
+
* `index` too, so `{...bpToPx(...), offset: hit.offsetPx}` type-checks and is
|
|
116
|
+
* wrong: `moveTo` re-adds the bp of every region before `index`, which
|
|
117
|
+
* `offsetPx` has already counted, and divides by a bpPerPx that was never in
|
|
118
|
+
* the units to begin with. Reach for this when the destination is a coordinate
|
|
119
|
+
* rather than a pixel.
|
|
120
|
+
*
|
|
121
|
+
* Undefined when no displayed region holds the coord, same as `bpToPx`; a
|
|
122
|
+
* caller that means "as far as the region goes" clamps before asking.
|
|
123
|
+
*/
|
|
124
|
+
export declare function bpToOffset({ refName, coord, displayedRegions, }: {
|
|
125
|
+
refName: string;
|
|
126
|
+
coord: number;
|
|
127
|
+
displayedRegions: {
|
|
128
|
+
refName: string;
|
|
129
|
+
start: number;
|
|
130
|
+
end: number;
|
|
131
|
+
reversed?: boolean;
|
|
132
|
+
}[];
|
|
133
|
+
}): BpOffset | undefined;
|
|
134
|
+
/**
|
|
135
|
+
* Where a 0-based genomic coord sits in the LINEARIZED bp space — the
|
|
136
|
+
* concatenation of `displayedRegions`, which is the space `windowStartBp`
|
|
137
|
+
* indexes and the one a viewport is stored in.
|
|
138
|
+
*
|
|
139
|
+
* `bpToPx`'s answer in those units, and without its rounding, which is the
|
|
140
|
+
* reason to reach for this one: `bpToPx` quantizes to a whole pixel at the
|
|
141
|
+
* CURRENT `bpPerPx`, so a caller computing a destination while the view is
|
|
142
|
+
* mid-zoom — an animated flight planning its next leg — gets a destination
|
|
143
|
+
* that shifts with whatever zoom it happened to ask at.
|
|
144
|
+
*
|
|
145
|
+
* `undefined` when no displayed region holds the coord, exactly as `bpToPx`
|
|
146
|
+
* answers: a refName the view is not showing has no place on its screen.
|
|
147
|
+
*/
|
|
148
|
+
export declare function bpToLinearBp({ refName, coord, displayedRegions, }: {
|
|
149
|
+
refName: string;
|
|
150
|
+
coord: number;
|
|
151
|
+
displayedRegions: {
|
|
152
|
+
refName: string;
|
|
153
|
+
start: number;
|
|
154
|
+
end: number;
|
|
155
|
+
reversed?: boolean;
|
|
156
|
+
}[];
|
|
157
|
+
}): number | undefined;
|
|
158
|
+
/**
|
|
159
|
+
* Screen order of two {@link BpOffset}s: negative when `a` is to the left of
|
|
160
|
+
* `b`. `moveTo` takes its arguments left-to-right and computes a negative
|
|
161
|
+
* bpPerPx from a backwards pair, so a caller deriving the two from data that
|
|
162
|
+
* can name them in either order sorts with this first.
|
|
163
|
+
*/
|
|
164
|
+
export declare function compareBpOffsets(a: BpOffset, b: BpOffset): number;
|
|
165
|
+
export declare function layoutBpToPx(layout: ViewLayout, args: {
|
|
34
166
|
refName: string;
|
|
35
167
|
coord: number;
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
168
|
+
displayedRegionIndex?: number;
|
|
169
|
+
}): number | undefined;
|
|
170
|
+
export declare function clipToDisplayedRegions(layout: ViewLayout, region: {
|
|
171
|
+
refName: string;
|
|
172
|
+
start: number;
|
|
173
|
+
end: number;
|
|
174
|
+
}): {
|
|
175
|
+
start: number;
|
|
176
|
+
end: number;
|
|
177
|
+
} | undefined;
|
|
178
|
+
export declare function getLayoutHighlightCoords(layout: ViewLayout, region: {
|
|
179
|
+
refName: string;
|
|
180
|
+
start: number;
|
|
181
|
+
end: number;
|
|
182
|
+
}, minWidth?: number): {
|
|
183
|
+
width: number;
|
|
184
|
+
left: number;
|
|
185
|
+
} | undefined;
|
|
186
|
+
export declare function createOverviewLayout({ displayedRegions, width, minimumBlockWidth, }: {
|
|
187
|
+
displayedRegions: RegionSnap[];
|
|
188
|
+
width: number;
|
|
189
|
+
minimumBlockWidth?: number;
|
|
190
|
+
}): ViewLayout;
|
|
191
|
+
export interface PxSpan {
|
|
192
|
+
leftPx: number;
|
|
193
|
+
rightPx: number;
|
|
194
|
+
}
|
|
195
|
+
/** Project a span into another pixel space: each end becomes px * scale + translatePx. */
|
|
196
|
+
export declare function transformPxSpan(span: PxSpan, scale: number, translatePx?: number): PxSpan;
|
|
197
|
+
/**
|
|
198
|
+
* Absolute pixel extent (measured from the layout origin) of the region blocks
|
|
199
|
+
* — content and elided — but not the blank inter-region padding at the ends.
|
|
200
|
+
* Since dynamic blocks only pad at the ends, the region blocks are contiguous,
|
|
201
|
+
* so the first block's left edge to the last block's right edge is the full
|
|
202
|
+
* extent.
|
|
203
|
+
*
|
|
204
|
+
* Uses block pixel geometry rather than projecting genomic coordinates because
|
|
205
|
+
* coalesced elided blocks have their coordinates zeroed out, so coordinate
|
|
206
|
+
* projection cannot reach them at all — and because pixel geometry is per-copy
|
|
207
|
+
* correct for free, where projecting a refName would land both copies of a
|
|
208
|
+
* twice-displayed region on the first.
|
|
209
|
+
*/
|
|
210
|
+
export declare function regionBlocksPxExtent(blocks: BaseBlock[]): PxSpan | undefined;
|
|
211
|
+
/**
|
|
212
|
+
* The visible regions' pixel extent projected onto an overview layout: the span
|
|
213
|
+
* of the overview scalebar's "you are here" rectangle, and of the top edge of
|
|
214
|
+
* the polygon drawn under it. Both read this one extent so they always describe
|
|
215
|
+
* the same regions, elided ones included.
|
|
216
|
+
*
|
|
217
|
+
* The main view and the overview lay out the same regions from cumulative-bp 0,
|
|
218
|
+
* so a main-view pixel maps to the (more zoomed-out) overview by the bpPerPx
|
|
219
|
+
* ratio.
|
|
220
|
+
*/
|
|
221
|
+
export declare function getOverviewRegionPxSpan({ overview, bpPerPx, blocks, }: {
|
|
222
|
+
overview: ViewLayout;
|
|
223
|
+
bpPerPx: number;
|
|
224
|
+
blocks: BaseBlock[];
|
|
225
|
+
}): PxSpan | undefined;
|
|
226
|
+
export {};
|