@jbrowse/core 4.2.1 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +783 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +84 -65
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +326 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +68 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +196 -55
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +265 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +49 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +136 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +368 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +9 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +124 -4
- package/esm/ui/MenuTypes.js +13 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -46
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +36 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +44 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +23 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +52 -0
- package/esm/util/cacheBudgets.js +52 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +117 -0
- package/esm/util/createStopTokenRotation.js +147 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +160 -0
- package/esm/util/hooks.js +416 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +136 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +194 -0
- package/esm/util/installFetch.js +178 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +89 -0
- package/esm/util/mstUtils.js +122 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +113 -0
- package/esm/util/pluginStore.js +253 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +42 -1
- package/esm/util/range.js +59 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +14 -1
- package/esm/util/rxjs.js +39 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +120 -0
- package/esm/util/tabix.js +143 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +352 -32
- package/esm/util/tracks.js +576 -194
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +358 -119
- package/esm/util/types/index.js +87 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +58 -0
- package/esm/util/viewStatus.js +20 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import ZoomInMapIcon from '@mui/icons-material/ZoomInMap';
|
|
4
|
+
import { ToggleButton, Tooltip } from '@mui/material';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
6
|
+
import { keyframes, makeStyles } from '../util/tss-react/index.js';
|
|
7
|
+
import { alpha } from './palette.js';
|
|
8
|
+
import { SCROLL_ZOOM_HELP, SCROLL_ZOOM_LABEL } from './scrollZoomLabels.js';
|
|
9
|
+
// Two beats: one is a blink that a peripheral eye can miss, three outstays a
|
|
10
|
+
// confirmation.
|
|
11
|
+
const PULSE_MS = 550;
|
|
12
|
+
const PULSE_COUNT = 2;
|
|
13
|
+
const useStyles = makeStyles()(theme => {
|
|
14
|
+
// The accent, not `primary`: JBrowse's primary is a near-black navy, and a
|
|
15
|
+
// ring in it reads as a drop shadow rather than as something asking to be
|
|
16
|
+
// looked at.
|
|
17
|
+
const ringColor = alpha(theme.palette.secondary.main, 0.7);
|
|
18
|
+
// Grows outward from the button's own edge, which is what carries the eye to
|
|
19
|
+
// it — a ring drawn at its final size only appears there.
|
|
20
|
+
const ring = keyframes `
|
|
21
|
+
from { box-shadow: 0 0 0 0 ${ringColor}; }
|
|
22
|
+
to { box-shadow: 0 0 0 9px ${alpha(theme.palette.secondary.main, 0)}; }
|
|
23
|
+
`;
|
|
24
|
+
// What the same cue looks like for someone who asked for less motion: the
|
|
25
|
+
// ring is there at one size and fades. Reduced motion is about movement, not
|
|
26
|
+
// about being told less.
|
|
27
|
+
const steadyRing = keyframes `
|
|
28
|
+
from { box-shadow: 0 0 0 4px ${ringColor}; }
|
|
29
|
+
to { box-shadow: 0 0 0 4px ${alpha(theme.palette.secondary.main, 0)}; }
|
|
30
|
+
`;
|
|
31
|
+
return {
|
|
32
|
+
button: {
|
|
33
|
+
border: 'none',
|
|
34
|
+
textTransform: 'none',
|
|
35
|
+
whiteSpace: 'nowrap',
|
|
36
|
+
gap: 4,
|
|
37
|
+
},
|
|
38
|
+
pulse: {
|
|
39
|
+
position: 'absolute',
|
|
40
|
+
inset: 0,
|
|
41
|
+
borderRadius: 'inherit',
|
|
42
|
+
pointerEvents: 'none',
|
|
43
|
+
animation: `${ring} ${PULSE_MS}ms ease-out ${PULSE_COUNT}`,
|
|
44
|
+
'@media (prefers-reduced-motion: reduce)': {
|
|
45
|
+
animation: `${steadyRing} ${PULSE_MS * PULSE_COUNT}ms ease-out`,
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
/**
|
|
51
|
+
* The persistent control for scroll-to-zoom, shared by every view that has one.
|
|
52
|
+
*
|
|
53
|
+
* **Carries its own label.** Scroll-to-zoom is off by default, so a wheel over
|
|
54
|
+
* the tracks does nothing until someone finds this — and the words in the header
|
|
55
|
+
* are the whole of how they find it. An icon alone is not findable, whichever
|
|
56
|
+
* icon: the glyph says "zoom" at best and nothing at all about the wheel. The
|
|
57
|
+
* tooltip is where ctrl/⌘+scroll, which zooms whatever the preference says, is
|
|
58
|
+
* named.
|
|
59
|
+
*
|
|
60
|
+
* **And it pulses when the preference changes.** The other ways to write it are
|
|
61
|
+
* somewhere else on the screen — a view menu, the Preferences dialog — so the
|
|
62
|
+
* moment the setting is learned is also the moment this button is not being
|
|
63
|
+
* looked at. The ring is what connects the two: it says the thing you just
|
|
64
|
+
* turned on lives *here*, which is what a user who wants it back off has to
|
|
65
|
+
* know. Its own click pulses too — the answer to "where is this" should not
|
|
66
|
+
* depend on which of the several places wrote it, and the other views' copies
|
|
67
|
+
* of this button pulse with it, which is the preference being session-wide made
|
|
68
|
+
* visible.
|
|
69
|
+
*
|
|
70
|
+
* `iconOnly` is for a header where this sits inside a run of icon buttons (the
|
|
71
|
+
* comparative views), where a single labelled button reads as a mistake rather
|
|
72
|
+
* than as emphasis. The tooltip carries the same words either way.
|
|
73
|
+
*/
|
|
74
|
+
const ScrollZoomToggle = observer(function ScrollZoomToggle({ model, iconOnly, }) {
|
|
75
|
+
const { classes } = useStyles();
|
|
76
|
+
const { scrollZoom } = model;
|
|
77
|
+
// `count` doubles as the restart key — a class alone won't replay a CSS
|
|
78
|
+
// animation that is already on the element, which is the toggle flipped twice
|
|
79
|
+
// in a row. Adjusted during render rather than from an effect, so a
|
|
80
|
+
// StrictMode host's doubled mount effect can't pulse a button nobody touched.
|
|
81
|
+
const [pulse, setPulse] = useState({ shownFor: scrollZoom, count: 0 });
|
|
82
|
+
if (pulse.shownFor !== scrollZoom) {
|
|
83
|
+
setPulse({ shownFor: scrollZoom, count: pulse.count + 1 });
|
|
84
|
+
}
|
|
85
|
+
// `describeChild` once the label is visible: MUI's default puts the title on
|
|
86
|
+
// the child as its `aria-label`, which would replace the words on the button
|
|
87
|
+
// with a paragraph that doesn't contain them. Described, not named.
|
|
88
|
+
return (_jsx(Tooltip, { title: SCROLL_ZOOM_HELP, describeChild: !iconOnly, children: _jsxs(ToggleButton, { value: "scrollZoom", selected: scrollZoom, onChange: () => {
|
|
89
|
+
model.setScrollZoom(!scrollZoom);
|
|
90
|
+
}, className: classes.button, size: "small", children: [_jsx(ZoomInMapIcon, { fontSize: "small" }), iconOnly ? null : SCROLL_ZOOM_LABEL, pulse.count ? (_jsx("span", { className: classes.pulse, "data-testid": "scroll-zoom-pulse" }, pulse.count)) : null] }) }));
|
|
91
|
+
});
|
|
92
|
+
export default ScrollZoomToggle;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { FormState } from '../util/assemblyConfigUtils.ts';
|
|
2
|
+
import type { FileLocation } from '../util/types/index.ts';
|
|
3
|
+
declare const SequenceAdapterInputs: ({ form, setForm, setPrimaryFile, setTwoBitFile, }: {
|
|
4
|
+
form: FormState;
|
|
5
|
+
setForm: (update: (prev: FormState) => FormState) => void;
|
|
6
|
+
setPrimaryFile: (location: FileLocation) => void;
|
|
7
|
+
setTwoBitFile: (location: FileLocation) => void;
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
export default SequenceAdapterInputs;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Alert, MenuItem, TextField } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import { adapterLabels, adapterTypes, makeSetField, } from '../util/assemblyConfigUtils.js';
|
|
5
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
6
|
+
import FileSelector from './FileSelector/FileSelector.js';
|
|
7
|
+
const useStyles = makeStyles()(theme => ({
|
|
8
|
+
fastaWarning: {
|
|
9
|
+
margin: theme.spacing(1),
|
|
10
|
+
},
|
|
11
|
+
}));
|
|
12
|
+
// The sequence "Format" dropdown, shared so every add-assembly surface offers
|
|
13
|
+
// the same friendly labels for the same adapter types.
|
|
14
|
+
const AdapterTypeSelector = observer(function AdapterTypeSelector({ adapterSelection, setAdapterSelection, }) {
|
|
15
|
+
return (_jsx(TextField, { value: adapterSelection, label: "Format", variant: "outlined", select: true, fullWidth: true, onChange: event => {
|
|
16
|
+
setAdapterSelection(event.target.value);
|
|
17
|
+
}, children: adapterTypes.map(type => (_jsx(MenuItem, { value: type, children: adapterLabels[type] }, type))) }));
|
|
18
|
+
});
|
|
19
|
+
// The per-adapter file selectors (FASTA/.fai/.gzi/2bit/.chrom.sizes) driven by
|
|
20
|
+
// the chosen format. Shared by the jbrowse-desktop Open genome(s) guided form
|
|
21
|
+
// and the in-app Assembly manager add form. The primary-file setters are passed
|
|
22
|
+
// in so each surface controls how picking a file updates state (e.g. desktop's
|
|
23
|
+
// applyPrimaryFile auto-detects the adapter and prefills sidecars).
|
|
24
|
+
const SequenceAdapterInputs = observer(function SequenceAdapterInputs({ form, setForm, setPrimaryFile, setTwoBitFile, }) {
|
|
25
|
+
const { classes } = useStyles();
|
|
26
|
+
const setField = makeSetField(setForm);
|
|
27
|
+
const { adapterSelection } = form;
|
|
28
|
+
return (_jsxs(_Fragment, { children: [_jsx(AdapterTypeSelector, { adapterSelection: adapterSelection, setAdapterSelection: setField('adapterSelection') }), adapterSelection === 'FastaAdapter' ? (_jsxs(_Fragment, { children: [_jsx(Alert, { severity: "warning", className: classes.fastaWarning, children: "Note: a FASTA index will be generated automatically. For large genomes, providing a pre-made .fai (choose \"FASTA with index\") is faster, and a remote file may be downloaded in full." }), _jsx(FileSelector, { inline: true, name: "FASTA file", location: form.fastaLocation, setLocation: setPrimaryFile })] })) : adapterSelection === 'IndexedFastaAdapter' ? (_jsxs(_Fragment, { children: [_jsx(FileSelector, { inline: true, name: "FASTA file", location: form.fastaLocation, setLocation: setPrimaryFile }), _jsx(FileSelector, { inline: true, name: "FASTA index (.fai) file", location: form.faiLocation, setLocation: setField('faiLocation') })] })) : adapterSelection === 'BgzipFastaAdapter' ? (_jsxs(_Fragment, { children: [_jsx(FileSelector, { inline: true, name: "FASTA file (.fa.gz)", location: form.fastaLocation, setLocation: setPrimaryFile }), _jsx(FileSelector, { inline: true, name: "FASTA index (.fai) file", location: form.faiLocation, setLocation: setField('faiLocation') }), _jsx(FileSelector, { inline: true, name: "FASTA gzip index (.gzi) file", location: form.gziLocation, setLocation: setField('gziLocation') })] })) : adapterSelection === 'ChromSizesAdapter' ? (_jsx(FileSelector, { inline: true, name: ".chrom.sizes file", description: "One name<TAB>length line per reference sequence. The assembly gets its names and lengths from this and carries no sequence.", location: form.chromSizesLocation, setLocation: setField('chromSizesLocation') })) : (_jsxs(_Fragment, { children: [_jsx(FileSelector, { inline: true, name: "2bit file", location: form.twoBitLocation, setLocation: setTwoBitFile }), _jsx(FileSelector, { inline: true, name: ".chrom.sizes (optional)", description: "Can speed up loading 2bit files with many contigs.", location: form.chromSizesLocation, setLocation: setField('chromSizesLocation') })] }))] }));
|
|
29
|
+
});
|
|
30
|
+
export default SequenceAdapterInputs;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { TrackConfigChange } from '../util/trackConfigDelta.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Shared three-column diff table (Setting / Default / Current) used by both the
|
|
4
|
+
* per-track "changes" dialog and the global preferences-reset dialog, so the two
|
|
5
|
+
* read identically. Each row is a `TrackConfigChange` — a dotted `path` and its
|
|
6
|
+
* `from` (default) / `to` (current) values. Passing `onResetRow` adds a trailing
|
|
7
|
+
* per-row revert button, letting the caller reset a single entry (the
|
|
8
|
+
* preferences dialog uses this so a reset need not be all-or-nothing).
|
|
9
|
+
*/
|
|
10
|
+
declare const SettingsChangesTable: ({ changes, onResetRow, }: {
|
|
11
|
+
changes: TrackConfigChange[];
|
|
12
|
+
onResetRow?: (change: TrackConfigChange) => void;
|
|
13
|
+
}) => import("react").JSX.Element;
|
|
14
|
+
export default SettingsChangesTable;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import UndoIcon from '@mui/icons-material/Undo';
|
|
3
|
+
import { IconButton, Table, TableBody, TableCell, TableHead, TableRow, Tooltip, } from '@mui/material';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
6
|
+
const useStyles = makeStyles()(theme => ({
|
|
7
|
+
value: {
|
|
8
|
+
fontFamily: 'monospace',
|
|
9
|
+
wordBreak: 'break-word',
|
|
10
|
+
whiteSpace: 'pre-wrap',
|
|
11
|
+
},
|
|
12
|
+
path: {
|
|
13
|
+
fontWeight: 'bold',
|
|
14
|
+
},
|
|
15
|
+
defaultCell: {
|
|
16
|
+
color: theme.palette.text.secondary,
|
|
17
|
+
},
|
|
18
|
+
}));
|
|
19
|
+
// Many config values are `{ type: 'x' }` discriminated unions (colorBy,
|
|
20
|
+
// groupBy, sortedBy, ...). Show just the type when that is the whole object so
|
|
21
|
+
// the table reads "methylation" rather than `{"type":"methylation"}`; richer
|
|
22
|
+
// objects keep full JSON so no detail is hidden.
|
|
23
|
+
function isSoleTypeObject(v) {
|
|
24
|
+
return ('type' in v && typeof v.type === 'string' && Object.keys(v).length === 1);
|
|
25
|
+
}
|
|
26
|
+
function formatSettingValue(value) {
|
|
27
|
+
return value === undefined
|
|
28
|
+
? '(default)'
|
|
29
|
+
: typeof value === 'string'
|
|
30
|
+
? value
|
|
31
|
+
: typeof value === 'object' && value !== null && isSoleTypeObject(value)
|
|
32
|
+
? value.type
|
|
33
|
+
: JSON.stringify(value);
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Shared three-column diff table (Setting / Default / Current) used by both the
|
|
37
|
+
* per-track "changes" dialog and the global preferences-reset dialog, so the two
|
|
38
|
+
* read identically. Each row is a `TrackConfigChange` — a dotted `path` and its
|
|
39
|
+
* `from` (default) / `to` (current) values. Passing `onResetRow` adds a trailing
|
|
40
|
+
* per-row revert button, letting the caller reset a single entry (the
|
|
41
|
+
* preferences dialog uses this so a reset need not be all-or-nothing).
|
|
42
|
+
*/
|
|
43
|
+
const SettingsChangesTable = observer(function SettingsChangesTable({ changes, onResetRow, }) {
|
|
44
|
+
const { classes } = useStyles();
|
|
45
|
+
return (_jsxs(Table, { size: "small", children: [_jsx(TableHead, { children: _jsxs(TableRow, { children: [_jsx(TableCell, { children: "Setting" }), _jsx(TableCell, { children: "Default" }), _jsx(TableCell, { children: "Current" }), onResetRow ? _jsx(TableCell, {}) : null] }) }), _jsx(TableBody, { children: changes.map(change => (_jsxs(TableRow, { children: [_jsx(TableCell, { className: classes.path, children: change.label ?? change.path.join(' › ') }), _jsx(TableCell, { className: `${classes.value} ${classes.defaultCell}`, children: formatSettingValue(change.from) }), _jsx(TableCell, { className: classes.value, children: formatSettingValue(change.to) }), onResetRow ? (_jsx(TableCell, { padding: "none", children: _jsx(Tooltip, { title: "Reset this preference", children: _jsx(IconButton, { size: "small", onClick: () => {
|
|
46
|
+
onResetRow(change);
|
|
47
|
+
}, children: _jsx(UndoIcon, { fontSize: "small" }) }) }) })) : null] }, change.path.join('.')))) })] }));
|
|
48
|
+
});
|
|
49
|
+
export default SettingsChangesTable;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Alert, TextField, Typography } from '@mui/material';
|
|
3
|
+
import { formatBytes } from '../util/formatBytes.js';
|
|
4
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
5
|
+
// Two ceilings, because a long link fails two different ways.
|
|
6
|
+
//
|
|
7
|
+
// Past LARGE_URL_LENGTH the link still opens everywhere, but it stops
|
|
8
|
+
// surviving delivery: mail and chat clients wrap or truncate it, and anything
|
|
9
|
+
// that moves it from a hash into a request line meets the ~8k a server accepts
|
|
10
|
+
// there.
|
|
11
|
+
//
|
|
12
|
+
// Past UNUSABLE_URL_LENGTH it does not open at all — WebKit caps a url around
|
|
13
|
+
// 80k characters, so Safari and everything on iOS refuse it however it arrives.
|
|
14
|
+
// Chromium's own cap is 2 MB, which is why the person who made the link sees
|
|
15
|
+
// nothing wrong with it and the recipient sees a browser error.
|
|
16
|
+
const LARGE_URL_LENGTH = 8000;
|
|
17
|
+
const UNUSABLE_URL_LENGTH = 80000;
|
|
18
|
+
const useStyles = makeStyles()(theme => ({
|
|
19
|
+
warning: {
|
|
20
|
+
color: theme.palette.warning.main,
|
|
21
|
+
},
|
|
22
|
+
}));
|
|
23
|
+
// Read-only single-line field for a shareable URL; clicking selects the whole
|
|
24
|
+
// value so it's easy to copy, and overly long URLs surface a size warning.
|
|
25
|
+
// Shared by jbrowse-web's ShareDialog and jbrowse-desktop's ExportToWebDialog.
|
|
26
|
+
//
|
|
27
|
+
// `action` is what the caller can do about a url too long to open — in practice
|
|
28
|
+
// "switch to a short link", which is the mode that solves it. Only rendered at
|
|
29
|
+
// the unusable tier, where saying so without offering the fix leaves the user
|
|
30
|
+
// with a link and no way to make a working one.
|
|
31
|
+
export default function ShareLinkField({ value, label = 'URL', action, }) {
|
|
32
|
+
const { classes } = useStyles();
|
|
33
|
+
const size = formatBytes(value.length);
|
|
34
|
+
return (_jsxs(_Fragment, { children: [_jsx(TextField, { label: label, value: value, variant: "filled", fullWidth: true, onClick: event => {
|
|
35
|
+
const target = event.target;
|
|
36
|
+
target.select();
|
|
37
|
+
}, slotProps: {
|
|
38
|
+
input: {
|
|
39
|
+
readOnly: true,
|
|
40
|
+
},
|
|
41
|
+
} }), value.length > UNUSABLE_URL_LENGTH ? (_jsxs(Alert, { severity: "warning", action: action, children: ["This URL is ", size, ", which Safari and iOS browsers refuse to open and most mail clients will truncate. It may work where you test it \u2014 Chrome accepts far longer \u2014 and fail for whoever you send it to. Use a short link instead."] })) : value.length > LARGE_URL_LENGTH ? (_jsxs(Typography, { variant: "caption", className: classes.warning, children: ["This URL is ", size, " and may be too long for some browsers or tools \u2014 prefer a short link if possible."] })) : null] }));
|
|
42
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { SliderProps } from '@mui/material';
|
|
2
|
+
type Props = Omit<SliderProps, 'value' | 'defaultValue' | 'onChange' | 'onChangeCommitted'> & {
|
|
3
|
+
value: number;
|
|
4
|
+
onChange?: (value: number) => void;
|
|
5
|
+
onChangeCommitted?: (value: number) => void;
|
|
6
|
+
};
|
|
7
|
+
export default function SingleSlider(props: Props): import("react").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Slider } from '@mui/material';
|
|
3
|
+
import SliderTooltip from './SliderTooltip.js';
|
|
4
|
+
export default function SingleSlider(props) {
|
|
5
|
+
const { onChange, onChangeCommitted, slots, ...rest } = props;
|
|
6
|
+
return (_jsx(Slider, { ...rest, slots: { valueLabel: SliderTooltip, ...slots }, onChange: (_, value) => {
|
|
7
|
+
onChange?.(typeof value === 'number' ? value : value[0]);
|
|
8
|
+
}, onChangeCommitted: (_, value) => {
|
|
9
|
+
onChangeCommitted?.(typeof value === 'number' ? value : value[0]);
|
|
10
|
+
} }));
|
|
11
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { Pin } from '../configuration/promotablePin.ts';
|
|
2
|
+
import type { SliderScale } from './sliderScale.ts';
|
|
3
|
+
export declare const SizeSliderRow: ({ title, getValue, min, max, step, scale, format, isDefault, commitOnRelease, onChange, onReset, pin, }: {
|
|
4
|
+
title: string;
|
|
5
|
+
getValue: () => number;
|
|
6
|
+
min: number;
|
|
7
|
+
max: number;
|
|
8
|
+
step: number;
|
|
9
|
+
scale: SliderScale;
|
|
10
|
+
format: (n: number) => string;
|
|
11
|
+
isDefault: boolean;
|
|
12
|
+
commitOnRelease?: boolean;
|
|
13
|
+
onChange: (n: number) => void;
|
|
14
|
+
onReset: () => void;
|
|
15
|
+
pin?: Pin;
|
|
16
|
+
}) => import("react").JSX.Element;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// The drawn half of a `makeSizeMenu` row, split out so the builder can reach
|
|
3
|
+
// it through `lazy()`. Everything Material UI in a size row is here: the
|
|
4
|
+
// slider, the reset button, the pin, the caption. See makeSizeMenu.tsx.
|
|
5
|
+
import { useState } from 'react';
|
|
6
|
+
import { Typography } from '@mui/material';
|
|
7
|
+
import { observer } from 'mobx-react';
|
|
8
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
9
|
+
import { ResetToDefaultButton } from './InlineMenuControls.js';
|
|
10
|
+
import { PinAdornment } from './PinAdornment.js';
|
|
11
|
+
import SingleSlider from './SingleSlider.js';
|
|
12
|
+
import { INLINE_MENU_ROW_WIDTH } from './inlineMenuRowWidth.js';
|
|
13
|
+
import { sliderScale } from './sliderScale.js';
|
|
14
|
+
const useStyles = makeStyles()(theme => ({
|
|
15
|
+
root: {
|
|
16
|
+
width: INLINE_MENU_ROW_WIDTH,
|
|
17
|
+
},
|
|
18
|
+
header: {
|
|
19
|
+
display: 'flex',
|
|
20
|
+
alignItems: 'center',
|
|
21
|
+
gap: theme.spacing(0.5),
|
|
22
|
+
},
|
|
23
|
+
label: {
|
|
24
|
+
flex: 1,
|
|
25
|
+
},
|
|
26
|
+
}));
|
|
27
|
+
export const SizeSliderRow = observer(function SizeSliderRow({ title, getValue, min, max, step, scale, format, isDefault, commitOnRelease, onChange, onReset, pin, }) {
|
|
28
|
+
const { classes } = useStyles();
|
|
29
|
+
const modelValue = getValue();
|
|
30
|
+
const [dragValue, setDragValue] = useState(undefined);
|
|
31
|
+
const value = dragValue ?? modelValue;
|
|
32
|
+
const { toSlider, fromSlider, sliderStep } = sliderScale(scale);
|
|
33
|
+
const slug = title.toLowerCase().replaceAll(' ', '-');
|
|
34
|
+
return (_jsxs("div", { className: classes.root, children: [_jsxs("div", { className: classes.header, children: [_jsxs(Typography, { variant: "caption", color: "textSecondary", className: classes.label, children: [title, ": ", format(value)] }), _jsx(ResetToDefaultButton, { disabled: isDefault, onClick: () => {
|
|
35
|
+
onReset();
|
|
36
|
+
} }), pin ? (_jsx(PinAdornment, { pin: { control: pin, label: `${title} (${format(value)})` } })) : null] }), _jsx(SingleSlider, { value: toSlider(value), min: toSlider(min), max: toSlider(max), step: sliderStep ?? step, size: "small", "aria-label": title.toLowerCase(), "data-testid": `${slug}-slider`, valueLabelDisplay: "auto", valueLabelFormat: (v) => format(fromSlider(v)), sx: { py: 0.5, display: 'block' }, onChange: v => {
|
|
37
|
+
const n = fromSlider(v);
|
|
38
|
+
if (commitOnRelease) {
|
|
39
|
+
setDragValue(n);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
onChange(n);
|
|
43
|
+
}
|
|
44
|
+
}, onChangeCommitted: commitOnRelease
|
|
45
|
+
? v => {
|
|
46
|
+
onChange(fromSlider(v));
|
|
47
|
+
setDragValue(undefined);
|
|
48
|
+
}
|
|
49
|
+
: undefined })] }));
|
|
50
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Tooltip } from '@mui/material';
|
|
3
|
+
// Arrow tooltip above the thumb, used as SingleSlider's default value label so
|
|
4
|
+
// every slider (inline track-menu rows, the settings menus' size submenus, the
|
|
5
|
+
// LGV zoom control) shows one consistent value affordance instead of MUI's default
|
|
6
|
+
// bubble. Callers can still override via `slots={{ valueLabel }}`.
|
|
7
|
+
//
|
|
8
|
+
// Unmounted while closed rather than rendered with `open={false}`. `open` is the
|
|
9
|
+
// Slider's own hover/drag state (it passes `open === index || active === index`),
|
|
10
|
+
// so nothing here is what detects the hover — a closed Tooltip only costs its
|
|
11
|
+
// Popper. On the LGV zoom slider, whose value tracks live `bpPerPx`, that was a
|
|
12
|
+
// Tooltip and a Popper re-rendering on every animation frame of a wheel zoom to
|
|
13
|
+
// show nothing.
|
|
14
|
+
export default function SliderTooltip(props) {
|
|
15
|
+
const { children, open, value } = props;
|
|
16
|
+
return open ? (_jsx(Tooltip, { open: true, enterTouchDelay: 0, placement: "top", title: value, arrow: true, children: children })) : (children);
|
|
17
|
+
}
|
package/esm/ui/Snackbar.d.ts
CHANGED
|
@@ -1,10 +1,12 @@
|
|
|
1
|
-
import type { SnackbarMessage } from './SnackbarModel.tsx';
|
|
2
1
|
import type { AbstractSessionModel } from '../util/index.ts';
|
|
2
|
+
import type { ErrorDialogState, SnackbarMessage } from './SnackbarModel.tsx';
|
|
3
3
|
interface SnackbarSession extends AbstractSessionModel {
|
|
4
4
|
snackbarMessages: SnackbarMessage[];
|
|
5
5
|
popSnackbarMessage: () => void;
|
|
6
|
+
errorDialog: ErrorDialogState | undefined;
|
|
7
|
+
setErrorDialog: (state: ErrorDialogState | undefined) => void;
|
|
6
8
|
}
|
|
7
9
|
declare const Snackbar: ({ session, }: {
|
|
8
10
|
session: SnackbarSession;
|
|
9
|
-
}) => import("react
|
|
11
|
+
}) => import("react").JSX.Element;
|
|
10
12
|
export default Snackbar;
|
package/esm/ui/Snackbar.js
CHANGED
|
@@ -1,14 +1,17 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Suspense, lazy } from 'react';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
|
-
const SnackbarContents = lazy(() => import(
|
|
4
|
+
const SnackbarContents = lazy(() => import('./SnackbarContents.js'));
|
|
5
|
+
const ErrorMessageStackTraceDialog = lazy(() => import('./ErrorMessageStackTraceDialog.js'));
|
|
5
6
|
const Snackbar = observer(function Snackbar({ session, }) {
|
|
6
|
-
const { snackbarMessages } = session;
|
|
7
|
+
const { snackbarMessages, errorDialog } = session;
|
|
7
8
|
const latestMessage = snackbarMessages.at(-1);
|
|
8
|
-
return latestMessage ? (_jsx(Suspense, { fallback: null, children: _jsx(SnackbarContents, { onClose: (_event, reason) => {
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
9
|
+
return (_jsxs(_Fragment, { children: [latestMessage ? (_jsx(Suspense, { fallback: null, children: _jsx(SnackbarContents, { onClose: (_event, reason) => {
|
|
10
|
+
if (reason !== 'clickaway') {
|
|
11
|
+
session.popSnackbarMessage();
|
|
12
|
+
}
|
|
13
|
+
}, contents: latestMessage }) })) : null, errorDialog ? (_jsx(Suspense, { fallback: null, children: _jsx(ErrorMessageStackTraceDialog, { error: errorDialog.error, extra: errorDialog.extra, onClose: () => {
|
|
14
|
+
session.setErrorDialog(undefined);
|
|
15
|
+
} }) })) : null] }));
|
|
13
16
|
});
|
|
14
17
|
export default Snackbar;
|
|
@@ -2,4 +2,4 @@ import type { SnackbarMessage } from './SnackbarModel.tsx';
|
|
|
2
2
|
export default function SnackbarContents({ onClose, contents, }: {
|
|
3
3
|
onClose: (_event: unknown, reason?: string) => void;
|
|
4
4
|
contents: SnackbarMessage;
|
|
5
|
-
}): import("react
|
|
5
|
+
}): import("react").JSX.Element;
|
|
@@ -1,11 +1,29 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import CloseIcon from '@mui/icons-material/Close';
|
|
3
|
+
// Report icon is rendered here instead of in SnackbarModel to avoid storing
|
|
4
|
+
// JSX in MobX observables, which causes Chrome-specific issues
|
|
5
|
+
// See https://github.com/GMOD/jbrowse-components/issues/5325
|
|
3
6
|
import Report from '@mui/icons-material/Report';
|
|
4
7
|
import { Alert, Button, IconButton, Snackbar as MUISnackbar, } from '@mui/material';
|
|
8
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
9
|
+
const useStyles = makeStyles()({
|
|
10
|
+
// preserve newlines in multi-line errors (e.g. MST validation dumps) while
|
|
11
|
+
// still wrapping long lines and capping height so the snackbar can't grow
|
|
12
|
+
// off-screen
|
|
13
|
+
message: {
|
|
14
|
+
whiteSpace: 'pre-wrap',
|
|
15
|
+
overflowWrap: 'anywhere',
|
|
16
|
+
maxHeight: 200,
|
|
17
|
+
overflowY: 'auto',
|
|
18
|
+
},
|
|
19
|
+
});
|
|
5
20
|
export default function SnackbarContents({ onClose, contents, }) {
|
|
21
|
+
const { classes } = useStyles();
|
|
6
22
|
const { actions } = contents;
|
|
7
|
-
return (_jsx(MUISnackbar, { open: true, onClose: onClose, anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, children: _jsx(Alert, { onClose: onClose, action: actions?.length ? (_jsxs(_Fragment, { children: [actions.map((action, idx) => (_jsx(Button
|
|
23
|
+
return (_jsx(MUISnackbar, { open: true, onClose: onClose, anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, children: _jsx(Alert, { onClose: onClose, action: actions?.length ? (_jsxs(_Fragment, { children: [actions.map((action, idx) => (_jsx(Button
|
|
24
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key -- fixed, never-reordered list of snackbar action buttons
|
|
25
|
+
, { color: "inherit", onClick: e => {
|
|
8
26
|
action.onClick();
|
|
9
27
|
onClose(e);
|
|
10
|
-
}, children: action.name === 'report' ? _jsx(Report, {}) : action.name }, idx))), _jsx(IconButton, { color: "inherit", onClick: onClose, children: _jsx(CloseIcon, {}) })] })) : null, severity: contents.level || 'warning', children: contents.message }) }));
|
|
28
|
+
}, children: action.name === 'report' ? _jsx(Report, {}) : action.name }, idx))), _jsx(IconButton, { color: "inherit", onClick: onClose, children: _jsx(CloseIcon, {}) })] })) : null, severity: contents.level || 'warning', "data-testid": `snackbar-${contents.level || 'warning'}`, children: _jsx("div", { className: classes.message, children: contents.message }) }) }));
|
|
11
29
|
}
|
|
@@ -4,14 +4,54 @@ export interface SnackbarMessage {
|
|
|
4
4
|
level?: NotificationLevel;
|
|
5
5
|
actions?: SnackAction[];
|
|
6
6
|
}
|
|
7
|
+
export interface ErrorDialogState {
|
|
8
|
+
error: unknown;
|
|
9
|
+
extra?: unknown;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* #stateModel SnackbarModel
|
|
13
|
+
* #category session
|
|
14
|
+
*/
|
|
7
15
|
export default function SnackbarModel(): import("@jbrowse/mobx-state-tree").IModelType<{}, {
|
|
16
|
+
/**
|
|
17
|
+
* #volatile
|
|
18
|
+
*/
|
|
8
19
|
snackbarMessages: import("mobx").IObservableArray<SnackbarMessage>;
|
|
20
|
+
/**
|
|
21
|
+
* #volatile
|
|
22
|
+
* the error currently shown in the stack-trace dialog. Kept off the
|
|
23
|
+
* dialog queue so it can stack on top of an already-open dialog (e.g. the
|
|
24
|
+
* one whose action raised the error) instead of waiting behind it
|
|
25
|
+
*/
|
|
26
|
+
errorDialog: ErrorDialogState | undefined;
|
|
9
27
|
} & {
|
|
28
|
+
/**
|
|
29
|
+
* #getter
|
|
30
|
+
*/
|
|
10
31
|
readonly snackbarMessageSet: Map<string, SnackbarMessage>;
|
|
11
32
|
} & {
|
|
33
|
+
/**
|
|
34
|
+
* #action
|
|
35
|
+
*/
|
|
12
36
|
notify(message: string, level?: NotificationLevel, action?: SnackAction | SnackAction[]): void;
|
|
37
|
+
/**
|
|
38
|
+
* #action
|
|
39
|
+
*/
|
|
13
40
|
notifyError(errorMessage: string, error?: unknown, extra?: unknown, action?: SnackAction): void;
|
|
41
|
+
/**
|
|
42
|
+
* #action
|
|
43
|
+
*/
|
|
44
|
+
setErrorDialog(state: ErrorDialogState | undefined): void;
|
|
45
|
+
/**
|
|
46
|
+
* #action
|
|
47
|
+
*/
|
|
14
48
|
pushSnackbarMessage(message: string, level?: NotificationLevel, actions?: SnackAction[]): void;
|
|
49
|
+
/**
|
|
50
|
+
* #action
|
|
51
|
+
*/
|
|
15
52
|
popSnackbarMessage(): SnackbarMessage | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* #action
|
|
55
|
+
*/
|
|
16
56
|
removeSnackbarMessage(message: string): void;
|
|
17
57
|
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
|
package/esm/ui/SnackbarModel.js
CHANGED
|
@@ -1,19 +1,37 @@
|
|
|
1
|
-
import { lazy } from 'react';
|
|
2
1
|
import { types } from '@jbrowse/mobx-state-tree';
|
|
3
2
|
import { observable } from 'mobx';
|
|
4
|
-
|
|
3
|
+
/**
|
|
4
|
+
* #stateModel SnackbarModel
|
|
5
|
+
* #category session
|
|
6
|
+
*/
|
|
5
7
|
export default function SnackbarModel() {
|
|
6
8
|
return types
|
|
7
9
|
.model({})
|
|
8
10
|
.volatile(() => ({
|
|
11
|
+
/**
|
|
12
|
+
* #volatile
|
|
13
|
+
*/
|
|
9
14
|
snackbarMessages: observable.array(),
|
|
15
|
+
/**
|
|
16
|
+
* #volatile
|
|
17
|
+
* the error currently shown in the stack-trace dialog. Kept off the
|
|
18
|
+
* dialog queue so it can stack on top of an already-open dialog (e.g. the
|
|
19
|
+
* one whose action raised the error) instead of waiting behind it
|
|
20
|
+
*/
|
|
21
|
+
errorDialog: undefined,
|
|
10
22
|
}))
|
|
11
23
|
.views(self => ({
|
|
24
|
+
/**
|
|
25
|
+
* #getter
|
|
26
|
+
*/
|
|
12
27
|
get snackbarMessageSet() {
|
|
13
28
|
return new Map(self.snackbarMessages.map(s => [s.message, s]));
|
|
14
29
|
},
|
|
15
30
|
}))
|
|
16
31
|
.actions(self => ({
|
|
32
|
+
/**
|
|
33
|
+
* #action
|
|
34
|
+
*/
|
|
17
35
|
notify(message, level, action) {
|
|
18
36
|
const actions = action
|
|
19
37
|
? Array.isArray(action)
|
|
@@ -21,29 +39,37 @@ export default function SnackbarModel() {
|
|
|
21
39
|
: [action]
|
|
22
40
|
: undefined;
|
|
23
41
|
this.pushSnackbarMessage(message, level, actions);
|
|
24
|
-
|
|
42
|
+
// A plain info/success toast auto-hides; an actionable one persists
|
|
43
|
+
// until acted on or dismissed (5s is too short to read and click the
|
|
44
|
+
// action, and warning/error already persist).
|
|
45
|
+
if ((level === 'info' || level === 'success') && !actions?.length) {
|
|
25
46
|
setTimeout(() => {
|
|
26
47
|
this.removeSnackbarMessage(message);
|
|
27
48
|
}, 5000);
|
|
28
49
|
}
|
|
29
50
|
},
|
|
51
|
+
/**
|
|
52
|
+
* #action
|
|
53
|
+
*/
|
|
30
54
|
notifyError(errorMessage, error, extra, action) {
|
|
31
55
|
const reportAction = {
|
|
32
56
|
name: 'report',
|
|
33
57
|
onClick: () => {
|
|
34
|
-
|
|
35
|
-
ErrorMessageStackTraceDialog,
|
|
36
|
-
{
|
|
37
|
-
onClose,
|
|
38
|
-
error,
|
|
39
|
-
extra,
|
|
40
|
-
},
|
|
41
|
-
]);
|
|
58
|
+
this.setErrorDialog({ error, extra });
|
|
42
59
|
},
|
|
43
60
|
};
|
|
44
61
|
const actions = action ? [reportAction, action] : [reportAction];
|
|
45
62
|
this.pushSnackbarMessage(errorMessage, 'error', actions);
|
|
46
63
|
},
|
|
64
|
+
/**
|
|
65
|
+
* #action
|
|
66
|
+
*/
|
|
67
|
+
setErrorDialog(state) {
|
|
68
|
+
self.errorDialog = state;
|
|
69
|
+
},
|
|
70
|
+
/**
|
|
71
|
+
* #action
|
|
72
|
+
*/
|
|
47
73
|
pushSnackbarMessage(message, level, actions) {
|
|
48
74
|
if (actions?.length || !self.snackbarMessageSet.has(message)) {
|
|
49
75
|
self.snackbarMessages.push({
|
|
@@ -53,9 +79,15 @@ export default function SnackbarModel() {
|
|
|
53
79
|
});
|
|
54
80
|
}
|
|
55
81
|
},
|
|
82
|
+
/**
|
|
83
|
+
* #action
|
|
84
|
+
*/
|
|
56
85
|
popSnackbarMessage() {
|
|
57
86
|
return self.snackbarMessages.pop();
|
|
58
87
|
},
|
|
88
|
+
/**
|
|
89
|
+
* #action
|
|
90
|
+
*/
|
|
59
91
|
removeSnackbarMessage(message) {
|
|
60
92
|
const element = self.snackbarMessageSet.get(message);
|
|
61
93
|
if (element !== undefined) {
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense, lazy, useState } from 'react';
|
|
3
|
+
import ReportIcon from '@mui/icons-material/Report';
|
|
4
|
+
import { IconButton, Tooltip } from '@mui/material';
|
|
5
|
+
const ErrorMessageStackTraceDialog = lazy(() => import('./ErrorMessageStackTraceDialog.js'));
|
|
6
|
+
// "Show stack trace" icon button that lazy-loads and opens the stack-trace
|
|
7
|
+
// dialog. Shared by ErrorBanner and ErrorBar so the lazy import and open/close
|
|
8
|
+
// state live in one place.
|
|
9
|
+
export default function StackTraceButton({ error, color, }) {
|
|
10
|
+
const [showStack, setShowStack] = useState(false);
|
|
11
|
+
return (_jsxs(_Fragment, { children: [_jsx(Tooltip, { title: "Show stack trace", children: _jsx(IconButton, { color: color, onClick: () => {
|
|
12
|
+
setShowStack(true);
|
|
13
|
+
}, children: _jsx(ReportIcon, {}) }) }), showStack ? (_jsx(Suspense, { fallback: null, children: _jsx(ErrorMessageStackTraceDialog, { error: error, onClose: () => {
|
|
14
|
+
setShowStack(false);
|
|
15
|
+
} }) })) : null] }));
|
|
16
|
+
}
|