@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,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A progress bar driven by a completion fraction in [0,1]: determinate (filling
|
|
3
|
+
* to the fraction) when one is given, indeterminate when `undefined`. The single
|
|
4
|
+
* place that maps a fraction to determinate-vs-indeterminate, shared by every
|
|
5
|
+
* loading/clustering/diagonalize/refetch indicator. Callers with an
|
|
6
|
+
* {@link RpcStatus} pass `statusFraction(status)`.
|
|
7
|
+
*
|
|
8
|
+
* **Toolkit-free, and that is the point rather than a detail.** It was a MUI
|
|
9
|
+
* `LinearProgress`, and it is reached from `LoadingOverlay` — whose every other
|
|
10
|
+
* element is already a `makeStyles` span — so it was the one Material component
|
|
11
|
+
* that rendered on a page whose host had asked for none. That reaches further
|
|
12
|
+
* than it sounds: a comparative display's first load draws this through
|
|
13
|
+
* `ComparativeFetchStatus`, which then sat behind neither bring-your-own seam,
|
|
14
|
+
* so an embedder who mounted `DisplayUIProvider` got a `MuiLinearProgress`
|
|
15
|
+
* anyway. It was invisible to the examples site's MUI census for the ordinary
|
|
16
|
+
* reason a loading state is: the census runs once the page has settled. (That
|
|
17
|
+
* component goes through the seam now, so a host supplying their own overlays
|
|
18
|
+
* replaces this rather than restyling it — but it is still what JBrowse's own
|
|
19
|
+
* comparative loading draws.)
|
|
20
|
+
*
|
|
21
|
+
* **What that bought is the look, not the bytes.** `LoadingOverlay` one level up
|
|
22
|
+
* still imports `IconButton` and `Tooltip`, so Material UI is in that page's
|
|
23
|
+
* bundle either way — 42 first-party eager modules hold it on the synteny page.
|
|
24
|
+
* Nothing here is a step toward getting it out; EAGER_BUNDLE.md owns that and
|
|
25
|
+
* says what it needs.
|
|
26
|
+
*
|
|
27
|
+
* `makeStyles` hands it `JBrowseStyleTheme`, so it follows the app's palette in
|
|
28
|
+
* both modes exactly as the Material one did. Two guards keep it from drifting
|
|
29
|
+
* back: `muiFree.test.ts` traces its imports, which catches an `alpha()` reached
|
|
30
|
+
* two modules deep, and its own test asserts the rendered tree carries no `Mui*`
|
|
31
|
+
* class, which catches a Material component rendered directly.
|
|
32
|
+
*/
|
|
33
|
+
export default function StatusProgressBar({ fraction, className, style, }: {
|
|
34
|
+
fraction?: number;
|
|
35
|
+
className?: string;
|
|
36
|
+
style?: React.CSSProperties;
|
|
37
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { cx, makeStyles } from '../util/tss-react/index.js';
|
|
3
|
+
import { indeterminateSweep } from './statusProgressKeyframes.js';
|
|
4
|
+
const HEIGHT = 4;
|
|
5
|
+
const useStyles = makeStyles()(theme => ({
|
|
6
|
+
track: {
|
|
7
|
+
position: 'relative',
|
|
8
|
+
overflow: 'hidden',
|
|
9
|
+
height: HEIGHT,
|
|
10
|
+
borderRadius: HEIGHT / 2,
|
|
11
|
+
// `color-mix` rather than MUI's `alpha`, which is the one import that would
|
|
12
|
+
// put this component back in the toolkit. Same idiom `plainChromeOverlays`
|
|
13
|
+
// uses, and it tints against the surface rather than compositing over
|
|
14
|
+
// whatever the bar happens to be drawn on.
|
|
15
|
+
background: `color-mix(in srgb, ${theme.palette.primary.main} 26%, transparent)`,
|
|
16
|
+
},
|
|
17
|
+
bar: {
|
|
18
|
+
position: 'absolute',
|
|
19
|
+
top: 0,
|
|
20
|
+
bottom: 0,
|
|
21
|
+
left: 0,
|
|
22
|
+
width: '100%',
|
|
23
|
+
background: theme.palette.primary.main,
|
|
24
|
+
// scaled from the left rather than sized, so a progress update is a
|
|
25
|
+
// compositor transform instead of a layout
|
|
26
|
+
transformOrigin: 'left center',
|
|
27
|
+
transition: 'transform 200ms linear',
|
|
28
|
+
},
|
|
29
|
+
sweep: {
|
|
30
|
+
width: '40%',
|
|
31
|
+
transition: 'none',
|
|
32
|
+
animation: `${indeterminateSweep} 1.6s infinite linear`,
|
|
33
|
+
},
|
|
34
|
+
}));
|
|
35
|
+
/**
|
|
36
|
+
* A progress bar driven by a completion fraction in [0,1]: determinate (filling
|
|
37
|
+
* to the fraction) when one is given, indeterminate when `undefined`. The single
|
|
38
|
+
* place that maps a fraction to determinate-vs-indeterminate, shared by every
|
|
39
|
+
* loading/clustering/diagonalize/refetch indicator. Callers with an
|
|
40
|
+
* {@link RpcStatus} pass `statusFraction(status)`.
|
|
41
|
+
*
|
|
42
|
+
* **Toolkit-free, and that is the point rather than a detail.** It was a MUI
|
|
43
|
+
* `LinearProgress`, and it is reached from `LoadingOverlay` — whose every other
|
|
44
|
+
* element is already a `makeStyles` span — so it was the one Material component
|
|
45
|
+
* that rendered on a page whose host had asked for none. That reaches further
|
|
46
|
+
* than it sounds: a comparative display's first load draws this through
|
|
47
|
+
* `ComparativeFetchStatus`, which then sat behind neither bring-your-own seam,
|
|
48
|
+
* so an embedder who mounted `DisplayUIProvider` got a `MuiLinearProgress`
|
|
49
|
+
* anyway. It was invisible to the examples site's MUI census for the ordinary
|
|
50
|
+
* reason a loading state is: the census runs once the page has settled. (That
|
|
51
|
+
* component goes through the seam now, so a host supplying their own overlays
|
|
52
|
+
* replaces this rather than restyling it — but it is still what JBrowse's own
|
|
53
|
+
* comparative loading draws.)
|
|
54
|
+
*
|
|
55
|
+
* **What that bought is the look, not the bytes.** `LoadingOverlay` one level up
|
|
56
|
+
* still imports `IconButton` and `Tooltip`, so Material UI is in that page's
|
|
57
|
+
* bundle either way — 42 first-party eager modules hold it on the synteny page.
|
|
58
|
+
* Nothing here is a step toward getting it out; EAGER_BUNDLE.md owns that and
|
|
59
|
+
* says what it needs.
|
|
60
|
+
*
|
|
61
|
+
* `makeStyles` hands it `JBrowseStyleTheme`, so it follows the app's palette in
|
|
62
|
+
* both modes exactly as the Material one did. Two guards keep it from drifting
|
|
63
|
+
* back: `muiFree.test.ts` traces its imports, which catches an `alpha()` reached
|
|
64
|
+
* two modules deep, and its own test asserts the rendered tree carries no `Mui*`
|
|
65
|
+
* class, which catches a Material component rendered directly.
|
|
66
|
+
*/
|
|
67
|
+
export default function StatusProgressBar({ fraction, className, style, }) {
|
|
68
|
+
const { classes } = useStyles();
|
|
69
|
+
const determinate = fraction !== undefined;
|
|
70
|
+
// one clamp for both halves. `statusFraction` clamps its own output, but a
|
|
71
|
+
// caller passing a fraction of its own does not — `CurrentJobCard` divides an
|
|
72
|
+
// external job's self-reported `progressPct` — and clamping the top alone let
|
|
73
|
+
// a negative announce a value below the `aria-valuemin` declared beside it.
|
|
74
|
+
const filled = Math.min(1, Math.max(0, fraction ?? 0));
|
|
75
|
+
return (_jsx("div", { className: cx(classes.track, className), style: style, role: "progressbar", "aria-valuemin": determinate ? 0 : undefined, "aria-valuemax": determinate ? 100 : undefined, "aria-valuenow": determinate ? Math.round(filled * 100) : undefined, children: _jsx("div", { className: cx(classes.bar, determinate ? undefined : classes.sweep), style: determinate ? { transform: `scaleX(${filled})` } : undefined }) }));
|
|
76
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Props as DialogComponentProps } from './Dialog.tsx';
|
|
2
|
+
import type { SubmitFormProps } from './SubmitForm.tsx';
|
|
3
|
+
export interface SubmitDialogProps extends Omit<DialogComponentProps, 'onSubmit' | 'onReset'>, Omit<SubmitFormProps, 'children'> {
|
|
4
|
+
}
|
|
5
|
+
declare const SubmitDialog: (props: SubmitDialogProps) => import("react").JSX.Element;
|
|
6
|
+
export default SubmitDialog;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import Dialog from './Dialog.js';
|
|
4
|
+
import SubmitForm from './SubmitForm.js';
|
|
5
|
+
const SubmitDialog = observer(function SubmitDialog(props) {
|
|
6
|
+
const { onSubmit, onCancel, cancelText, submitText, submitDisabled, submitColor, submitStartIcon, onReset, resetText, actions, contentClassName, children, ...dialogProps } = props;
|
|
7
|
+
return (_jsx(Dialog, { onClose: onCancel, ...dialogProps, children: _jsx(SubmitForm, { onSubmit: onSubmit, onCancel: onCancel, cancelText: cancelText, submitText: submitText, submitDisabled: submitDisabled, submitColor: submitColor, submitStartIcon: submitStartIcon, onReset: onReset, resetText: resetText, actions: actions, contentClassName: contentClassName, children: children }) }));
|
|
8
|
+
});
|
|
9
|
+
export default SubmitDialog;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ButtonProps } from '@mui/material';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export interface SubmitFormProps {
|
|
4
|
+
onCancel: () => void;
|
|
5
|
+
onSubmit: () => void;
|
|
6
|
+
cancelText?: string;
|
|
7
|
+
submitText?: string;
|
|
8
|
+
submitDisabled?: boolean;
|
|
9
|
+
submitColor?: ButtonProps['color'];
|
|
10
|
+
submitStartIcon?: ReactNode;
|
|
11
|
+
onReset?: () => void;
|
|
12
|
+
resetText?: string;
|
|
13
|
+
actions?: ReactNode;
|
|
14
|
+
contentClassName?: string;
|
|
15
|
+
children?: ReactNode;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Content plus a Cancel/Submit footer, wrapped in a form so Enter submits.
|
|
19
|
+
* SubmitDialog is this with a Dialog around it; a dialog whose Dialog (and
|
|
20
|
+
* outer chrome) is shared across several tab panes uses this directly, so the
|
|
21
|
+
* panes get the same keyboard behavior without each owning a Dialog.
|
|
22
|
+
*/
|
|
23
|
+
export default function SubmitForm({ onSubmit, onCancel, cancelText, submitText, submitDisabled, submitColor, submitStartIcon, onReset, resetText, actions, contentClassName, children, }: SubmitFormProps): import("react").JSX.Element;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, DialogActions, DialogContent } from '@mui/material';
|
|
3
|
+
/**
|
|
4
|
+
* Content plus a Cancel/Submit footer, wrapped in a form so Enter submits.
|
|
5
|
+
* SubmitDialog is this with a Dialog around it; a dialog whose Dialog (and
|
|
6
|
+
* outer chrome) is shared across several tab panes uses this directly, so the
|
|
7
|
+
* panes get the same keyboard behavior without each owning a Dialog.
|
|
8
|
+
*/
|
|
9
|
+
export default function SubmitForm({ onSubmit, onCancel, cancelText = 'Cancel', submitText = 'Submit', submitDisabled = false, submitColor = 'primary', submitStartIcon, onReset, resetText = 'Restore default', actions, contentClassName, children, }) {
|
|
10
|
+
return (_jsxs("form", { onSubmit: event => {
|
|
11
|
+
event.preventDefault();
|
|
12
|
+
if (!submitDisabled) {
|
|
13
|
+
onSubmit();
|
|
14
|
+
}
|
|
15
|
+
}, children: [_jsx(DialogContent, { className: contentClassName, children: children }), _jsxs(DialogActions, { children: [_jsx(Button, { type: "button", color: "secondary", variant: "contained", onClick: () => {
|
|
16
|
+
if (onReset) {
|
|
17
|
+
onReset();
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
onCancel();
|
|
21
|
+
}
|
|
22
|
+
}, children: onReset ? resetText : cancelText }), actions, _jsx(Button, { type: "submit", color: submitColor, variant: "contained", disabled: submitDisabled, startIcon: submitStartIcon, children: submitText })] })] }));
|
|
23
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { ColorLegendEntry } from './legendSpec.ts';
|
|
2
|
+
import type { ReactNode } from 'react';
|
|
3
|
+
export type { ColorLegendEntry } from './legendSpec.ts';
|
|
4
|
+
export declare const LEGEND_ROW_HEIGHT = 14;
|
|
5
|
+
export declare const LEGEND_SWATCH = 10;
|
|
6
|
+
export default function SvgColorLegend({ entries, canvasWidth, maxHeight, onDismiss, children, testid, }: {
|
|
7
|
+
entries: ColorLegendEntry[];
|
|
8
|
+
canvasWidth: number;
|
|
9
|
+
maxHeight?: number;
|
|
10
|
+
onDismiss?: () => void;
|
|
11
|
+
children?: ReactNode;
|
|
12
|
+
testid?: string;
|
|
13
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable react-refresh/only-export-components -- geometry constants belong with this leaf SVG primitive; no component state to fast-refresh */
|
|
3
|
+
import { LegendSwatchGlyph } from './LegendSwatchGlyph.js';
|
|
4
|
+
import { measureLegendText } from './measureLegendText.js';
|
|
5
|
+
const FONT_SIZE = 10;
|
|
6
|
+
const SWATCH_LEFT = 2;
|
|
7
|
+
const SWATCH_GAP = 2;
|
|
8
|
+
// Row geometry, exported so callers positioning `children` (or sizing an outer
|
|
9
|
+
// container) stay in lockstep with what this draws.
|
|
10
|
+
export const LEGEND_ROW_HEIGHT = 14;
|
|
11
|
+
export const LEGEND_SWATCH = 10;
|
|
12
|
+
// narrow right-side gutter reserved for the small dismiss "×"
|
|
13
|
+
const DISMISS_GUTTER = 11;
|
|
14
|
+
// A row's marks, with the flat `color` shorthand read as the single filled
|
|
15
|
+
// square it has always drawn.
|
|
16
|
+
function entrySwatches(entry) {
|
|
17
|
+
return (entry.swatches ??
|
|
18
|
+
(entry.color === undefined ? [] : [{ color: entry.color }]));
|
|
19
|
+
}
|
|
20
|
+
// Shared SVG categorical color key: one translucent row per entry, each a swatch
|
|
21
|
+
// + label, right-aligned within canvasWidth. Used by any display that colors by
|
|
22
|
+
// a discrete vocabulary (wiggle multi-source overlays, multi-row per-feature
|
|
23
|
+
// paintings). A <g> so the on-screen overlay and the SVG export share one
|
|
24
|
+
// renderer.
|
|
25
|
+
//
|
|
26
|
+
// Two escape hatches keep it usable for less-uniform legends without a second
|
|
27
|
+
// component: a per-entry `marker` overrides the color square, and `children`
|
|
28
|
+
// render inside the positioned box below the rows (from the box's top-left; the
|
|
29
|
+
// rows occupy `shownEntryCount * LEGEND_ROW_HEIGHT`). Draws nothing when there's
|
|
30
|
+
// neither an entry nor a child.
|
|
31
|
+
//
|
|
32
|
+
// `maxHeight` (e.g. the display height) caps the box: entries past what fits
|
|
33
|
+
// collapse into a trailing "+N more" summary row, so the legend never overflows
|
|
34
|
+
// its display — the full list stays reachable via the track menu.
|
|
35
|
+
//
|
|
36
|
+
// `onDismiss` adds a clickable "×" in the top-right corner (with its own
|
|
37
|
+
// pointer-events so it works under a pointer-events:none overlay). Pass it only
|
|
38
|
+
// on interactive paths where the legend can be re-shown — never on the SVG
|
|
39
|
+
// export, which has no way to click it.
|
|
40
|
+
export default function SvgColorLegend({ entries, canvasWidth, maxHeight, onDismiss, children, testid, }) {
|
|
41
|
+
const fit = maxHeight === undefined
|
|
42
|
+
? entries.length
|
|
43
|
+
: Math.max(1, Math.floor(maxHeight / LEGEND_ROW_HEIGHT));
|
|
44
|
+
// reserve the last fitting row for the summary when truncating
|
|
45
|
+
const shown = entries.length > fit ? entries.slice(0, fit - 1) : entries;
|
|
46
|
+
const overflowLabel = entries.length > fit ? `+${entries.length - shown.length} more` : undefined;
|
|
47
|
+
// Labels line up across rows, so the swatch column is sized by the row with
|
|
48
|
+
// the most marks — otherwise a two-mark row shoves its own label out of the
|
|
49
|
+
// column the others share. One mark reproduces the original 16px inset.
|
|
50
|
+
const swatchColumns = Math.max(1, ...shown.map(e => entrySwatches(e).length));
|
|
51
|
+
const textLeft = SWATCH_LEFT + swatchColumns * (LEGEND_SWATCH + SWATCH_GAP) + 2;
|
|
52
|
+
let maxLabelWidth = 0;
|
|
53
|
+
for (const entry of shown) {
|
|
54
|
+
maxLabelWidth = Math.max(maxLabelWidth, measureLegendText(entry.label, FONT_SIZE));
|
|
55
|
+
}
|
|
56
|
+
if (overflowLabel !== undefined) {
|
|
57
|
+
maxLabelWidth = Math.max(maxLabelWidth, measureLegendText(overflowLabel, FONT_SIZE));
|
|
58
|
+
}
|
|
59
|
+
const totalWidth = textLeft + maxLabelWidth + 6 + (onDismiss ? DISMISS_GUTTER : 0);
|
|
60
|
+
const x = Math.max(0, canvasWidth - totalWidth - 4);
|
|
61
|
+
return shown.length || overflowLabel || children ? (_jsxs("g", { transform: `translate(${x} 0)`, "data-testid": testid, children: [shown.map((entry, idx) => (_jsxs("g", { transform: `translate(0 ${idx * LEGEND_ROW_HEIGHT})`, children: [_jsx("rect", { x: 0, y: 0, width: totalWidth, height: LEGEND_ROW_HEIGHT, fill: "rgba(255,255,255,0.95)" }), _jsxs("g", { opacity: entry.hidden ? 0.35 : 1, children: [entry.marker ??
|
|
62
|
+
entrySwatches(entry).map((swatch, i) => (_jsx(LegendSwatchGlyph, { swatch: swatch, size: LEGEND_SWATCH, x: SWATCH_LEFT + i * (LEGEND_SWATCH + SWATCH_GAP), y: 2 }, `${swatch.color}-${swatch.mark ?? 'fill'}`))), _jsx("text", { x: textLeft, y: 11, fontSize: FONT_SIZE, fill: "black", textDecoration: entry.hidden ? 'line-through' : undefined, children: entry.label })] })] }, entry.key))), overflowLabel === undefined ? null : (_jsxs("g", { transform: `translate(0 ${shown.length * LEGEND_ROW_HEIGHT})`, children: [_jsx("rect", { x: 0, y: 0, width: totalWidth, height: LEGEND_ROW_HEIGHT, fill: "rgba(255,255,255,0.95)" }), _jsx("text", { x: textLeft, y: 11, fontSize: FONT_SIZE, fill: "#555", children: overflowLabel })] })), onDismiss === undefined ? null : (_jsxs("g", { transform: `translate(${totalWidth - DISMISS_GUTTER} 0)`, style: { cursor: 'pointer', pointerEvents: 'auto' }, "data-gesture-owner": "true", onClick: () => {
|
|
63
|
+
onDismiss();
|
|
64
|
+
}, children: [_jsx("title", { children: "Hide legend" }), _jsx("rect", { x: 0, y: 0, width: DISMISS_GUTTER, height: LEGEND_ROW_HEIGHT, fill: "transparent" }), _jsx("text", { x: DISMISS_GUTTER / 2, y: 9, fontSize: 9, fill: "#777", textAnchor: "middle", children: "\u00D7" })] })), children] })) : null;
|
|
65
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
export interface GradientStop {
|
|
2
|
+
offset: string;
|
|
3
|
+
color: string;
|
|
4
|
+
opacity?: number;
|
|
5
|
+
}
|
|
6
|
+
export interface GradientLabel {
|
|
7
|
+
text: string;
|
|
8
|
+
position: 'start' | 'middle' | 'end';
|
|
9
|
+
}
|
|
10
|
+
export declare const GRADIENT_LEGEND_WIDTH = 120;
|
|
11
|
+
export declare const GRADIENT_LEGEND_HEIGHT = 40;
|
|
12
|
+
export declare const GRADIENT_LEGEND_SVG_AREA_WIDTH: number;
|
|
13
|
+
export default function SvgGradientLegend({ gradientId, stops, labels, title, x, y, width, height, barWidth, barHeight, padding, fontSize, }: {
|
|
14
|
+
gradientId: string;
|
|
15
|
+
stops: GradientStop[];
|
|
16
|
+
labels: GradientLabel[];
|
|
17
|
+
title?: string;
|
|
18
|
+
x?: number;
|
|
19
|
+
y?: number;
|
|
20
|
+
width?: number;
|
|
21
|
+
height?: number;
|
|
22
|
+
barWidth?: number;
|
|
23
|
+
barHeight?: number;
|
|
24
|
+
padding?: number;
|
|
25
|
+
fontSize?: number;
|
|
26
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable react-refresh/only-export-components -- layout constants belong with this leaf SVG primitive; no component state to fast-refresh */
|
|
3
|
+
import { svgSafeId } from '../svg/svgId.js';
|
|
4
|
+
// Default box/bar geometry shared by the LD and Hi-C legends. Exported so
|
|
5
|
+
// callers that size an outer container (an <svg> wrapper) or compute an offset
|
|
6
|
+
// stay in lockstep with what this component draws.
|
|
7
|
+
export const GRADIENT_LEGEND_WIDTH = 120;
|
|
8
|
+
export const GRADIENT_LEGEND_HEIGHT = 40;
|
|
9
|
+
// Horizontal space a display should reserve (via `svgLegendWidth()`) to park
|
|
10
|
+
// this legend beside the plot in an SVG export: the bar itself plus a 10px
|
|
11
|
+
// margin either side.
|
|
12
|
+
export const GRADIENT_LEGEND_SVG_AREA_WIDTH = GRADIENT_LEGEND_WIDTH + 20;
|
|
13
|
+
// Shared SVG color-ramp key: a rounded translucent box, a horizontal gradient
|
|
14
|
+
// bar, and labels below it. Used by any display that colors by a continuous
|
|
15
|
+
// scale (Hi-C contact counts, LD r²/D'). Renders a <g>; position via x/y.
|
|
16
|
+
export default function SvgGradientLegend({ gradientId, stops, labels, title, x = 0, y = 0, width = GRADIENT_LEGEND_WIDTH, height = GRADIENT_LEGEND_HEIGHT, barWidth = 100, barHeight = 12, padding = 8, fontSize = 10, }) {
|
|
17
|
+
const titleGap = title ? fontSize + 4 : 0;
|
|
18
|
+
const barY = padding + titleGap;
|
|
19
|
+
const labelY = barY + barHeight + fontSize + 2;
|
|
20
|
+
const safeGradientId = svgSafeId(gradientId);
|
|
21
|
+
return (_jsxs("g", { transform: `translate(${x}, ${y})`, children: [_jsx("defs", { children: _jsx("linearGradient", { id: safeGradientId, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: stops.map(stop => (_jsx("stop", { offset: stop.offset, style: { stopColor: stop.color, stopOpacity: stop.opacity ?? 1 } }, stop.offset))) }) }), _jsx("rect", { x: 0, y: 0, width: width, height: height + titleGap, fill: "rgba(255,255,255,0.95)", stroke: "#ccc", strokeWidth: 1, rx: 4 }), title ? (_jsx("text", { x: padding, y: padding + fontSize, fontSize: fontSize, fill: "black", children: title })) : null, _jsx("rect", { x: padding, y: barY, width: barWidth, height: barHeight, fill: `url(#${safeGradientId})`, rx: 2 }), labels.map(label => (_jsx("text", { x: label.position === 'start'
|
|
22
|
+
? padding
|
|
23
|
+
: label.position === 'middle'
|
|
24
|
+
? padding + barWidth / 2
|
|
25
|
+
: padding + barWidth, y: labelY, fontSize: fontSize, fill: "black", textAnchor: label.position === 'start' ? undefined : label.position, children: label.text }, `${label.position}-${label.text}`)))] }));
|
|
26
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { TextFieldProps } from '@mui/material';
|
|
2
|
+
/** A quick-pick shortcut: the two-character tag plus a human label. */
|
|
3
|
+
export interface TagQuickPick {
|
|
4
|
+
tag: string;
|
|
5
|
+
label?: string;
|
|
6
|
+
}
|
|
7
|
+
interface OwnProps {
|
|
8
|
+
/** Initial tag; undefined or '' renders as empty input. */
|
|
9
|
+
defaultValue?: string;
|
|
10
|
+
/**
|
|
11
|
+
* Fires on every keystroke with the tag when it is a valid 2-character SAM
|
|
12
|
+
* tag, or undefined otherwise. The parent gates submission on undefined.
|
|
13
|
+
*/
|
|
14
|
+
onValueChange: (value: string | undefined) => void;
|
|
15
|
+
/**
|
|
16
|
+
* Optional hint shown under the input. Off by default — the field is capped at
|
|
17
|
+
* two characters and the quick-pick chips already teach the common tags, so a
|
|
18
|
+
* persistent hint just adds a line that misaligns the field against its
|
|
19
|
+
* siblings. The invalid-tag error still shows regardless.
|
|
20
|
+
*/
|
|
21
|
+
helperText?: TextFieldProps['helperText'];
|
|
22
|
+
/** data-testid forwarded to the inner <input> (used by screenshot specs). */
|
|
23
|
+
inputTestId?: string;
|
|
24
|
+
/**
|
|
25
|
+
* One-click shortcuts for common tags (e.g. HP, RG) shown as chips above the
|
|
26
|
+
* field, so users don't have to know and type the two-letter code. Clicking a
|
|
27
|
+
* chip fills the field and emits the value exactly as typing it would.
|
|
28
|
+
*/
|
|
29
|
+
quickPicks?: TagQuickPick[];
|
|
30
|
+
}
|
|
31
|
+
type Props = Omit<TextFieldProps, 'value' | 'onChange' | 'error' | 'helperText' | 'slotProps'> & OwnProps;
|
|
32
|
+
/**
|
|
33
|
+
* Uncontrolled-style TextField for a two-character SAM tag (e.g. HP, RG, XS).
|
|
34
|
+
* Owns the input text internally; emits the tag string when valid (or
|
|
35
|
+
* undefined) to the parent. Caps input at two characters and shows an inline
|
|
36
|
+
* error once two invalid characters are entered. Optional `quickPicks` render a
|
|
37
|
+
* chip row of common tags that fill the field on click.
|
|
38
|
+
*/
|
|
39
|
+
export default function TagTextField(props: Props): import("react").JSX.Element;
|
|
40
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { Chip, Stack, TextField } from '@mui/material';
|
|
4
|
+
import { isValidTag } from '../util/tags.js';
|
|
5
|
+
/**
|
|
6
|
+
* Uncontrolled-style TextField for a two-character SAM tag (e.g. HP, RG, XS).
|
|
7
|
+
* Owns the input text internally; emits the tag string when valid (or
|
|
8
|
+
* undefined) to the parent. Caps input at two characters and shows an inline
|
|
9
|
+
* error once two invalid characters are entered. Optional `quickPicks` render a
|
|
10
|
+
* chip row of common tags that fill the field on click.
|
|
11
|
+
*/
|
|
12
|
+
export default function TagTextField(props) {
|
|
13
|
+
const { defaultValue = '', onValueChange, helperText, inputTestId, quickPicks, ...rest } = props;
|
|
14
|
+
const [text, setText] = useState(defaultValue);
|
|
15
|
+
const showError = text.length === 2 && !isValidTag(text);
|
|
16
|
+
// Both a chip click and typing flow through here so the two paths can't
|
|
17
|
+
// disagree about validation or what gets emitted.
|
|
18
|
+
const setValue = (next) => {
|
|
19
|
+
setText(next);
|
|
20
|
+
onValueChange(isValidTag(next) ? next : undefined);
|
|
21
|
+
};
|
|
22
|
+
return (_jsxs(Stack, { spacing: 1, children: [quickPicks?.length ? (_jsx(Stack, { direction: "row", spacing: 1, useFlexGap: true, sx: { flexWrap: 'wrap' }, children: quickPicks.map(({ tag, label }) => (_jsx(Chip, { size: "small", label: label ? `${tag} — ${label}` : tag, color: text === tag ? 'primary' : 'default', variant: text === tag ? 'filled' : 'outlined', onClick: () => {
|
|
23
|
+
setValue(tag);
|
|
24
|
+
} }, tag))) })) : null, _jsx(TextField, { label: "Tag name", ...rest, value: text, error: showError, helperText: showError ? 'Not a valid tag' : helperText, autoComplete: "off", slotProps: {
|
|
25
|
+
htmlInput: {
|
|
26
|
+
maxLength: 2,
|
|
27
|
+
'data-testid': inputTestId,
|
|
28
|
+
},
|
|
29
|
+
}, onChange: event => {
|
|
30
|
+
setValue(event.target.value);
|
|
31
|
+
} })] }));
|
|
32
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* How much of a display's right edge this occupies while it is drawn.
|
|
3
|
+
*
|
|
4
|
+
* Exported because the things that have to *clear* it are drawn by the displays
|
|
5
|
+
* that mount it, not by this file: the bottom-right indicator row and the
|
|
6
|
+
* alignments coverage axis label. Both kept a private copy of the number (and
|
|
7
|
+
* the alignments indicator row kept none at all, so its chips were drawn over
|
|
8
|
+
* the thumb), which is a copy that can only be checked by looking at two files
|
|
9
|
+
* at once.
|
|
10
|
+
*/
|
|
11
|
+
export declare const VERTICAL_SCROLLBAR_WIDTH = 12;
|
|
12
|
+
/**
|
|
13
|
+
* Where the right edge of anything that has to sit *beside* the thumb goes: the
|
|
14
|
+
* track's width plus a hair of air, so a chip or an axis label doesn't touch it.
|
|
15
|
+
*
|
|
16
|
+
* The four call sites all spelled `VERTICAL_SCROLLBAR_WIDTH + 2` inline, which
|
|
17
|
+
* is the same copy the width constant was exported to stop — one addition
|
|
18
|
+
* further along. The `+ 2` is a gap and belongs to the thing being cleared, not
|
|
19
|
+
* to the scrollbar's own geometry, so it is named rather than folded into the
|
|
20
|
+
* width (`right: 2` on the thumb is a different 2 and must not move with it).
|
|
21
|
+
*/
|
|
22
|
+
export declare const VERTICAL_SCROLLBAR_CLEARANCE: number;
|
|
23
|
+
/**
|
|
24
|
+
* Draggable vertical scrollbar overlay for canvas-backed displays that scroll
|
|
25
|
+
* their content via a `scrollTop` value (alignments pileup, variant matrix).
|
|
26
|
+
* Renders nothing when the content fits the viewport. The thumb geometry and
|
|
27
|
+
* the drag-to-scroll mapping live here so the consumers don't each re-derive
|
|
28
|
+
* them; the wheel handling stays per-display (their gesture semantics differ).
|
|
29
|
+
*
|
|
30
|
+
* Deliberately NOT a keyboard tab stop: the surrounding views have no working
|
|
31
|
+
* keyboard navigation to reach the scrolled content anyway, so a per-track
|
|
32
|
+
* `tabIndex` would only add noise to the tab order. The `role="scrollbar"` +
|
|
33
|
+
* `aria-value*` semantics are kept — they cost nothing and expose scroll
|
|
34
|
+
* position to pointer/voice assistive tech.
|
|
35
|
+
*/
|
|
36
|
+
export default function VerticalScrollbar({ scrollTop, setScrollTop, viewportHeight, contentHeight, controlsId, top, }: {
|
|
37
|
+
scrollTop: number;
|
|
38
|
+
setScrollTop: (n: number) => void;
|
|
39
|
+
viewportHeight: number;
|
|
40
|
+
contentHeight: number;
|
|
41
|
+
/** `id` of the scrolled viewport element, for `aria-controls`. */
|
|
42
|
+
controlsId: string;
|
|
43
|
+
/** Track offset from the top, for displays with a sticky band above it. */
|
|
44
|
+
top?: number;
|
|
45
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useRef, useState } from 'react';
|
|
3
|
+
import { clamp } from '../util/numericUtils.js';
|
|
4
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
5
|
+
import { usePointerDrag } from '../util/usePointerDrag.js';
|
|
6
|
+
import { useRafCommit } from '../util/useRafCommit.js';
|
|
7
|
+
import { useVirtualScrollWheel } from '../util/useVirtualScrollWheel.js';
|
|
8
|
+
/**
|
|
9
|
+
* How much of a display's right edge this occupies while it is drawn.
|
|
10
|
+
*
|
|
11
|
+
* Exported because the things that have to *clear* it are drawn by the displays
|
|
12
|
+
* that mount it, not by this file: the bottom-right indicator row and the
|
|
13
|
+
* alignments coverage axis label. Both kept a private copy of the number (and
|
|
14
|
+
* the alignments indicator row kept none at all, so its chips were drawn over
|
|
15
|
+
* the thumb), which is a copy that can only be checked by looking at two files
|
|
16
|
+
* at once.
|
|
17
|
+
*/
|
|
18
|
+
export const VERTICAL_SCROLLBAR_WIDTH = 12;
|
|
19
|
+
/**
|
|
20
|
+
* Where the right edge of anything that has to sit *beside* the thumb goes: the
|
|
21
|
+
* track's width plus a hair of air, so a chip or an axis label doesn't touch it.
|
|
22
|
+
*
|
|
23
|
+
* The four call sites all spelled `VERTICAL_SCROLLBAR_WIDTH + 2` inline, which
|
|
24
|
+
* is the same copy the width constant was exported to stop — one addition
|
|
25
|
+
* further along. The `+ 2` is a gap and belongs to the thing being cleared, not
|
|
26
|
+
* to the scrollbar's own geometry, so it is named rather than folded into the
|
|
27
|
+
* width (`right: 2` on the thumb is a different 2 and must not move with it).
|
|
28
|
+
*/
|
|
29
|
+
export const VERTICAL_SCROLLBAR_CLEARANCE = VERTICAL_SCROLLBAR_WIDTH + 2;
|
|
30
|
+
const MIN_THUMB_HEIGHT = 20;
|
|
31
|
+
const useStyles = makeStyles()(theme => ({
|
|
32
|
+
track: {
|
|
33
|
+
position: 'absolute',
|
|
34
|
+
right: 0,
|
|
35
|
+
width: VERTICAL_SCROLLBAR_WIDTH,
|
|
36
|
+
cursor: 'default',
|
|
37
|
+
zIndex: 10,
|
|
38
|
+
// `usePointerDrag`'s one caller-owned requirement: without it the browser
|
|
39
|
+
// claims a touch drag on this strip as a page scroll and no pointer stream
|
|
40
|
+
// arrives at all, so the thumb simply doesn't drag by finger.
|
|
41
|
+
touchAction: 'none',
|
|
42
|
+
// theme-aware so the thumb stays visible in dark mode (a hardcoded black
|
|
43
|
+
// thumb vanished against a dark canvas)
|
|
44
|
+
'&:hover > *': {
|
|
45
|
+
background: theme.palette.action.active,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
thumb: {
|
|
49
|
+
position: 'absolute',
|
|
50
|
+
right: 2,
|
|
51
|
+
width: 6,
|
|
52
|
+
borderRadius: 3,
|
|
53
|
+
background: theme.palette.action.disabled,
|
|
54
|
+
pointerEvents: 'none',
|
|
55
|
+
},
|
|
56
|
+
}));
|
|
57
|
+
/**
|
|
58
|
+
* Draggable vertical scrollbar overlay for canvas-backed displays that scroll
|
|
59
|
+
* their content via a `scrollTop` value (alignments pileup, variant matrix).
|
|
60
|
+
* Renders nothing when the content fits the viewport. The thumb geometry and
|
|
61
|
+
* the drag-to-scroll mapping live here so the consumers don't each re-derive
|
|
62
|
+
* them; the wheel handling stays per-display (their gesture semantics differ).
|
|
63
|
+
*
|
|
64
|
+
* Deliberately NOT a keyboard tab stop: the surrounding views have no working
|
|
65
|
+
* keyboard navigation to reach the scrolled content anyway, so a per-track
|
|
66
|
+
* `tabIndex` would only add noise to the tab order. The `role="scrollbar"` +
|
|
67
|
+
* `aria-value*` semantics are kept — they cost nothing and expose scroll
|
|
68
|
+
* position to pointer/voice assistive tech.
|
|
69
|
+
*/
|
|
70
|
+
export default function VerticalScrollbar({ scrollTop, setScrollTop, viewportHeight, contentHeight, controlsId, top = 0, }) {
|
|
71
|
+
const { classes } = useStyles();
|
|
72
|
+
// ephemeral drag anchor; null when not dragging. Pointer capture (set on the
|
|
73
|
+
// track) delivers move/up here even when the pointer leaves the thin track,
|
|
74
|
+
// and auto-releases on unmount — so no document listeners or effect cleanup.
|
|
75
|
+
const dragRef = useRef(undefined);
|
|
76
|
+
const [trackEl, setTrackEl] = useState(null);
|
|
77
|
+
// A thumb drag's pointermove can fire faster than the frame rate, so coalesce
|
|
78
|
+
// its scroll writes to one commit per frame; pointer-up flushes the final
|
|
79
|
+
// (absolute) target so the resting position is exact.
|
|
80
|
+
const { schedule: scheduleScroll, flush: flushScroll } = useRafCommit(setScrollTop);
|
|
81
|
+
const scrollableHeight = Math.max(0, contentHeight - viewportHeight);
|
|
82
|
+
// Wheeling while the pointer is over the scrollbar always scrolls the panel,
|
|
83
|
+
// never zooms the view. The scrollbar overlay is a sibling of the canvas, so
|
|
84
|
+
// its wheel events would otherwise bubble straight past the canvas's own
|
|
85
|
+
// handler to the containing view's scroll-zoom. A native non-passive listener
|
|
86
|
+
// here (via useVirtualScrollWheel) consumes the vertical delta into
|
|
87
|
+
// setScrollTop and stopPropagation keeps it from reaching that scroll-zoom.
|
|
88
|
+
useVirtualScrollWheel(trackEl, (e, applyScroll) => {
|
|
89
|
+
applyScroll(e, { scrollTop, viewportHeight, scrollableHeight }, n => {
|
|
90
|
+
setScrollTop(n);
|
|
91
|
+
});
|
|
92
|
+
e.stopPropagation();
|
|
93
|
+
});
|
|
94
|
+
const clampedScrollTop = clamp(scrollTop, 0, scrollableHeight);
|
|
95
|
+
// never taller than the track itself — on a very short viewport the
|
|
96
|
+
// MIN_THUMB_HEIGHT floor would otherwise exceed viewportHeight, pushing
|
|
97
|
+
// thumbTop negative (thumb drawn above the track) and making usableTrack
|
|
98
|
+
// negative (drag mapping dead)
|
|
99
|
+
const thumbHeight = Math.min(viewportHeight, Math.max(MIN_THUMB_HEIGHT, viewportHeight * (viewportHeight / contentHeight)));
|
|
100
|
+
const usableTrack = viewportHeight - thumbHeight;
|
|
101
|
+
// clamp so a scrollTop past scrollableHeight (virtual-scroll displays don't
|
|
102
|
+
// self-correct like a native overflow container) can't draw the thumb below
|
|
103
|
+
// the track
|
|
104
|
+
const thumbTop = clamp((clampedScrollTop / scrollableHeight) * usableTrack, 0, usableTrack);
|
|
105
|
+
// The press lifecycle is `usePointerDrag`'s: primary button only, one drag per
|
|
106
|
+
// pointer, capture on the track so moves keep arriving once the pointer leaves
|
|
107
|
+
// the 12px strip, and auto-release on unmount. Hand-rolled here before that
|
|
108
|
+
// existed, which cost two of the bugs it is written to prevent — a right-press
|
|
109
|
+
// started a drag that then ran underneath its own context menu, and a second
|
|
110
|
+
// finger landing mid-drag re-anchored the gesture.
|
|
111
|
+
const drag = usePointerDrag({
|
|
112
|
+
// Click-to-page: a press on the track above/below the thumb jumps one
|
|
113
|
+
// viewport toward it (like a native scrollbar) rather than starting a drag.
|
|
114
|
+
// The thumb is pointerEvents:none so every press lands on the track; decide
|
|
115
|
+
// page-vs-drag from its Y relative to the thumb. `dragRef` staying undefined
|
|
116
|
+
// is what makes the paging branch ignore the moves that follow — the pointer
|
|
117
|
+
// is captured either way, and a page press simply has nothing to do with them.
|
|
118
|
+
onDragStart: e => {
|
|
119
|
+
const clickY = e.clientY - e.currentTarget.getBoundingClientRect().top;
|
|
120
|
+
if (clickY < thumbTop || clickY > thumbTop + thumbHeight) {
|
|
121
|
+
const dir = clickY < thumbTop ? -1 : 1;
|
|
122
|
+
setScrollTop(clamp(clampedScrollTop + dir * viewportHeight, 0, scrollableHeight));
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
dragRef.current = { startY: e.clientY, startScroll: clampedScrollTop };
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
onDrag: e => {
|
|
129
|
+
const d = dragRef.current;
|
|
130
|
+
if (d && usableTrack > 0) {
|
|
131
|
+
const delta = ((e.clientY - d.startY) / usableTrack) * scrollableHeight;
|
|
132
|
+
scheduleScroll(clamp(d.startScroll + delta, 0, scrollableHeight));
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
onDragEnd: () => {
|
|
136
|
+
flushScroll();
|
|
137
|
+
dragRef.current = undefined;
|
|
138
|
+
},
|
|
139
|
+
});
|
|
140
|
+
// Below every hook, not above the geometry it reads: "the content fits" is a
|
|
141
|
+
// prop-driven condition that flips while mounted, so an early return above
|
|
142
|
+
// `usePointerDrag` would call a different number of hooks per render. The
|
|
143
|
+
// geometry it closes over is computed either way and simply goes unused here —
|
|
144
|
+
// nothing renders, so nothing can dispatch a pointer event at it.
|
|
145
|
+
if (scrollableHeight <= 0) {
|
|
146
|
+
return null;
|
|
147
|
+
}
|
|
148
|
+
return (_jsx("div", { ref: setTrackEl, "data-testid": "vertical-scrollbar", "data-gesture-owner": "true", className: classes.track, style: { top, height: viewportHeight }, role: "scrollbar", "aria-label": "Vertical scrollbar", "aria-controls": controlsId, "aria-orientation": "vertical", "aria-valuemin": 0, "aria-valuemax": Math.round(scrollableHeight), "aria-valuenow": Math.round(clampedScrollTop), ...drag,
|
|
149
|
+
// Wraps the hook's own handler rather than replacing it: stopPropagation
|
|
150
|
+
// so the press doesn't also pan the view, and it runs for every button, so
|
|
151
|
+
// a right-press the drag ignores still doesn't reach the view. No
|
|
152
|
+
// preventDefault, so the native focus shift can still close open popups
|
|
153
|
+
// and the context menu still opens.
|
|
154
|
+
onPointerDown: e => {
|
|
155
|
+
e.stopPropagation();
|
|
156
|
+
drag.onPointerDown(e);
|
|
157
|
+
}, children: _jsx("div", { className: classes.thumb, style: { top: thumbTop, height: thumbHeight } }) }));
|
|
158
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "view exists but isn't ready yet" screen a view renders instead of its
|
|
3
|
+
* content — LGV, dotplot and linear synteny all show it while the assembly they
|
|
4
|
+
* name is still loading, labelled with which of the assembly's files is
|
|
5
|
+
* downloading and a determinate bar when that download reports one.
|
|
6
|
+
*
|
|
7
|
+
* A load that then stops reporting names the file it is waiting on. The phase
|
|
8
|
+
* label alone does not: "Downloading chromosome aliases" is a fair description
|
|
9
|
+
* of what is happening and no help at all in front of a hub that has stopped
|
|
10
|
+
* answering, where the one useful fact is which server that is. Shown only once
|
|
11
|
+
* the load has actually stalled, so a healthy startup never sees a URL.
|
|
12
|
+
*
|
|
13
|
+
* Metrics deliberately match `DiagonalizeLoadingScreen`, which is the sibling
|
|
14
|
+
* render branch in both comparative views: a view that flipped between the two
|
|
15
|
+
* would otherwise jump between two differently laid-out loading screens. That
|
|
16
|
+
* shared layout is also why this exists at all rather than each view calling
|
|
17
|
+
* {@link LoadingProgress} directly — bare, it renders an unconstrained
|
|
18
|
+
* full-width bar under an unaligned label.
|
|
19
|
+
*/
|
|
20
|
+
export default function ViewLoadingScreen({ message, fraction, source, }: {
|
|
21
|
+
message?: string;
|
|
22
|
+
fraction?: number;
|
|
23
|
+
source?: string;
|
|
24
|
+
}): import("react").JSX.Element;
|