@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
package/esm/ui/MenuTypes.d.ts
CHANGED
|
@@ -1,38 +1,158 @@
|
|
|
1
|
+
import type { Pin } from '../configuration/promotablePin.ts';
|
|
2
|
+
/** #menuItem divider | a horizontal rule; not clickable */
|
|
1
3
|
export interface MenuDivider {
|
|
2
4
|
priority?: number;
|
|
3
5
|
type: 'divider';
|
|
4
6
|
}
|
|
7
|
+
/** #menuItem subHeader | a text label for a section of a menu; not clickable */
|
|
5
8
|
export interface MenuSubHeader {
|
|
6
9
|
type: 'subHeader';
|
|
7
10
|
priority?: number;
|
|
8
11
|
label: string;
|
|
9
12
|
}
|
|
13
|
+
export type MenuItemClickHandler = (...args: any[]) => void;
|
|
10
14
|
export interface BaseMenuItem {
|
|
15
|
+
/** #menuField stable identifier, for tests and for finding a row again */
|
|
11
16
|
id?: string;
|
|
17
|
+
/** #menuField the row's text */
|
|
12
18
|
label: React.ReactNode;
|
|
19
|
+
/** #menuField sort weight within the menu; higher sorts earlier */
|
|
13
20
|
priority?: number;
|
|
21
|
+
/**
|
|
22
|
+
* #menuField secondary text under the label; prefer `withHint` in the label
|
|
23
|
+
*
|
|
24
|
+
* Renders as a second line under the label, which makes the row two lines
|
|
25
|
+
* tall. Nothing in this repo uses it any more: a menu whose rows are each two
|
|
26
|
+
* lines is harder to scan than the labels it buried, so a short clarifier
|
|
27
|
+
* goes in the label (`withHint` where it is conditional) and real prose goes
|
|
28
|
+
* in `helpText`. Kept because it renders and plugins may pass one.
|
|
29
|
+
*/
|
|
14
30
|
subLabel?: string;
|
|
31
|
+
/** #menuField any [MUI icon](https://mui.com/material-ui/material-icons/) component */
|
|
15
32
|
icon?: React.ElementType;
|
|
33
|
+
/** #menuField renders the row unclickable */
|
|
16
34
|
disabled?: boolean;
|
|
35
|
+
/** #menuField tooltip shown from a help icon at the trailing edge */
|
|
17
36
|
helpText?: string;
|
|
37
|
+
/** #menuField tooltip shown when the item is disabled, in place of helpText */
|
|
38
|
+
disabledHelpText?: string;
|
|
39
|
+
/**
|
|
40
|
+
* #menuField override the dismiss-on-click rule; see `staysOpenOnClick`
|
|
41
|
+
*
|
|
42
|
+
* Override whether the menu stays open after this row is clicked. Leave it
|
|
43
|
+
* unset and the row TYPE decides: a `checkbox`/`radio` is a setting, so the
|
|
44
|
+
* menu stays put (users flip several in one visit, and the menu content is an
|
|
45
|
+
* observer, so its checked marks update live), while every other row is an
|
|
46
|
+
* action and dismisses.
|
|
47
|
+
*
|
|
48
|
+
* Set `false` on a checkbox/radio whose click is really terminal — it opens a
|
|
49
|
+
* dialog ("Custom...", "Solid color...") or swaps the display out from under
|
|
50
|
+
* the menu. Set `true` on a non-checkbox row that should survive its click.
|
|
51
|
+
*/
|
|
52
|
+
keepMenuOpen?: boolean;
|
|
53
|
+
/**
|
|
54
|
+
* #menuField arbitrary trailing content; prefer `pin`
|
|
55
|
+
*
|
|
56
|
+
* Extra content rendered at the trailing (right) edge of the row, after the
|
|
57
|
+
* checkbox/radio decoration and help icon — e.g. a secondary toggle. The
|
|
58
|
+
* content must `stopPropagation` on its own click so it doesn't fire the row's
|
|
59
|
+
* onClick or dismiss the menu.
|
|
60
|
+
*
|
|
61
|
+
* An **element**, so a module that sets it drags React and whatever it renders
|
|
62
|
+
* into its own graph. That is fine for the one-off it exists for (synteny's
|
|
63
|
+
* color swatch) and wrong for the common case, which is why the pin below is
|
|
64
|
+
* a description instead. Prefer `pin`; reach for this only when the
|
|
65
|
+
* content is genuinely arbitrary.
|
|
66
|
+
*/
|
|
67
|
+
endAdornment?: React.ReactNode;
|
|
68
|
+
/**
|
|
69
|
+
* #menuField the "apply this to all open tracks of this type" pin; set it with a promotable builder
|
|
70
|
+
*
|
|
71
|
+
* The trailing "default for all tracks of this type" pin, as a **description**
|
|
72
|
+
* rather than an element — the renderer builds `PinAdornment` from
|
|
73
|
+
* it. Same rule as a `TrackControlProps` icon name (reference/DISPLAYCHROME.md):
|
|
74
|
+
* menu-item builders are called from state models and menu modules, which are
|
|
75
|
+
* eager, so an element here puts MUI's `ToggleButton`, `Tooltip` and two icons
|
|
76
|
+
* into every host's first paint. It did, until 2026-08-05; see
|
|
77
|
+
* reference/EAGER_BUNDLE.md.
|
|
78
|
+
*
|
|
79
|
+
* Set it through `promotableToggleItem` / `promotableRadioItems` (or
|
|
80
|
+
* `promotableRadioItem` for a lone row), not by hand.
|
|
81
|
+
*
|
|
82
|
+
* A `type: 'custom'` row (`makePromotableSizeMenu`) draws its own pin inside
|
|
83
|
+
* its rendered content and still sets this — the declaration is what lets a
|
|
84
|
+
* built menu be asked which promotable slots it offers a pin for at all. Such
|
|
85
|
+
* a row is excluded from the trailing-column reservation; see
|
|
86
|
+
* `hasMenuItemAdornment`.
|
|
87
|
+
*/
|
|
88
|
+
pin?: MenuItemPin;
|
|
18
89
|
}
|
|
90
|
+
/**
|
|
91
|
+
* A row's pin declaration: the {@link Pin} `makePin` built, plus the one thing
|
|
92
|
+
* the row knows and the pin doesn't — what to call the setting.
|
|
93
|
+
*
|
|
94
|
+
* **`control` holds the pin by reference; don't flatten this into
|
|
95
|
+
* `interface MenuItemPin extends Pin`.** That was tried, to save the hop every
|
|
96
|
+
* reader spells (`item.pin.control.active`), and it turns the declaration into a
|
|
97
|
+
* *copy* of the control — so a `Pin` whose `toggle` resolves anything through
|
|
98
|
+
* `this` silently mutates the copy and the real control never changes. Nothing in
|
|
99
|
+
* `Pin` promises copy-safety: `makePin` happens to close over what it needs, but
|
|
100
|
+
* the interface is a plain object a plugin can build by hand, and the failure is
|
|
101
|
+
* a pin that draws correctly and does nothing. Two hops in `pinnedSlots` and
|
|
102
|
+
* `menuItemAdornment` is the whole cost of not having that.
|
|
103
|
+
*/
|
|
104
|
+
export interface MenuItemPin {
|
|
105
|
+
control: Pin;
|
|
106
|
+
/**
|
|
107
|
+
* Names the setting in the pin's tooltip and aria-label. Carried here rather
|
|
108
|
+
* than read off the row's `label`, which is a `ReactNode` and may not be a
|
|
109
|
+
* string; a pin that can't name what it promotes reads as a bug.
|
|
110
|
+
*/
|
|
111
|
+
label: string;
|
|
112
|
+
}
|
|
113
|
+
/** #menuItem normal | an action row; the default when `type` is omitted */
|
|
19
114
|
export interface NormalMenuItem extends BaseMenuItem {
|
|
20
115
|
type?: 'normal';
|
|
21
|
-
onClick:
|
|
116
|
+
onClick: MenuItemClickHandler;
|
|
22
117
|
}
|
|
118
|
+
/** #menuItem checkbox | a setting row with a checkbox; leaves the menu open */
|
|
23
119
|
export interface CheckboxMenuItem extends BaseMenuItem {
|
|
24
120
|
type: 'checkbox';
|
|
25
121
|
checked: boolean;
|
|
26
|
-
onClick:
|
|
122
|
+
onClick: MenuItemClickHandler;
|
|
27
123
|
}
|
|
124
|
+
/** #menuItem radio | a setting row with a radio button; leaves the menu open */
|
|
28
125
|
export interface RadioMenuItem extends BaseMenuItem {
|
|
29
126
|
type: 'radio';
|
|
30
127
|
checked: boolean;
|
|
31
|
-
onClick:
|
|
128
|
+
onClick: MenuItemClickHandler;
|
|
32
129
|
}
|
|
130
|
+
/** #menuItem subMenu | nests another `MenuItem[]`, to any depth */
|
|
33
131
|
export interface SubMenuItem extends BaseMenuItem {
|
|
34
132
|
type?: 'subMenu';
|
|
35
133
|
subMenu: MenuItem[];
|
|
36
134
|
}
|
|
37
|
-
|
|
135
|
+
/**
|
|
136
|
+
* #menuItem custom | renders arbitrary React content inline, e.g. a slider
|
|
137
|
+
*
|
|
138
|
+
* The menu is not dismissed when interacting with it, so a control can be
|
|
139
|
+
* dragged live; `onClose` is passed for content that wants to close the menu
|
|
140
|
+
* explicitly. `label` is used only as a React key/testid.
|
|
141
|
+
*/
|
|
142
|
+
export interface CustomMenuItem extends BaseMenuItem {
|
|
143
|
+
type: 'custom';
|
|
144
|
+
render: (onClose: () => void) => React.ReactNode;
|
|
145
|
+
}
|
|
146
|
+
export type ClickableMenuItem = NormalMenuItem | CheckboxMenuItem | RadioMenuItem;
|
|
147
|
+
export type MenuItem = MenuDivider | MenuSubHeader | NormalMenuItem | CheckboxMenuItem | RadioMenuItem | SubMenuItem | CustomMenuItem;
|
|
148
|
+
/**
|
|
149
|
+
* Whether clicking a row leaves the menu up — the rule `CascadingMenu` applies,
|
|
150
|
+
* exported so a display's menu-shape test asserts the behavior a user gets
|
|
151
|
+
* rather than re-deriving it from the flag (each test that spelled out
|
|
152
|
+
* `keepMenuOpen === true` had to be revisited when the default moved here).
|
|
153
|
+
*
|
|
154
|
+
* Defaulted by row TYPE: a checkbox/radio is a setting and stays put, every
|
|
155
|
+
* other row is an action and dismisses. `keepMenuOpen` overrides either way.
|
|
156
|
+
*/
|
|
157
|
+
export declare function staysOpenOnClick(item: ClickableMenuItem): boolean;
|
|
38
158
|
export type MenuItemsGetter = MenuItem[] | (() => MenuItem[]);
|
package/esm/ui/MenuTypes.js
CHANGED
|
@@ -1 +1,13 @@
|
|
|
1
|
-
|
|
1
|
+
// #endregion
|
|
2
|
+
/**
|
|
3
|
+
* Whether clicking a row leaves the menu up — the rule `CascadingMenu` applies,
|
|
4
|
+
* exported so a display's menu-shape test asserts the behavior a user gets
|
|
5
|
+
* rather than re-deriving it from the flag (each test that spelled out
|
|
6
|
+
* `keepMenuOpen === true` had to be revisited when the default moved here).
|
|
7
|
+
*
|
|
8
|
+
* Defaulted by row TYPE: a checkbox/radio is a setting and stays put, every
|
|
9
|
+
* other row is an action and dismisses. `keepMenuOpen` overrides either way.
|
|
10
|
+
*/
|
|
11
|
+
export function staysOpenOnClick(item) {
|
|
12
|
+
return (item.keepMenuOpen ?? (item.type === 'checkbox' || item.type === 'radio'));
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { TextFieldProps } from '@mui/material';
|
|
2
|
+
export default function MonospaceTextField({ value, onChange, error, label, children, style, className, readOnly, variant, ...rest }: {
|
|
3
|
+
value: string;
|
|
4
|
+
onChange?: (value: string) => void;
|
|
5
|
+
error?: unknown;
|
|
6
|
+
label?: React.ReactNode;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
} & Omit<TextFieldProps, 'value' | 'onChange' | 'error' | 'slotProps'>): import("react").JSX.Element;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { InputLabel, TextField, alpha } from '@mui/material';
|
|
3
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
4
|
+
const monospaceFontFamily = 'Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace';
|
|
5
|
+
const useStyles = makeStyles()(theme => ({
|
|
6
|
+
error: {
|
|
7
|
+
color: theme.palette.error.main,
|
|
8
|
+
fontSize: '0.8em',
|
|
9
|
+
},
|
|
10
|
+
container: {
|
|
11
|
+
width: '100%',
|
|
12
|
+
overflowX: 'auto',
|
|
13
|
+
},
|
|
14
|
+
field: {
|
|
15
|
+
fontFamily: monospaceFontFamily,
|
|
16
|
+
},
|
|
17
|
+
errorField: {
|
|
18
|
+
background: alpha(theme.palette.error.main, 0.15),
|
|
19
|
+
},
|
|
20
|
+
}));
|
|
21
|
+
// Monospace multiline TextField for code/jexl/JSON/sequence content. Turns red
|
|
22
|
+
// on a parse error, renders an optional error banner above and an InputLabel,
|
|
23
|
+
// and applies the shared monospace font stack to the input slot. `children`
|
|
24
|
+
// render below the field (e.g. a description or help button).
|
|
25
|
+
export default function MonospaceTextField({ value, onChange, error, label, children, style, className, readOnly, variant = 'outlined', ...rest }) {
|
|
26
|
+
const { classes, cx } = useStyles();
|
|
27
|
+
return (_jsxs(_Fragment, { children: [error ? _jsx("p", { className: classes.error, children: `${error}` }) : null, _jsxs("div", { className: classes.container, children: [label ? _jsx(InputLabel, { shrink: true, children: label }) : null, _jsx(TextField, { ...rest, variant: variant, multiline: true, value: value, onChange: event => {
|
|
28
|
+
onChange?.(event.target.value);
|
|
29
|
+
}, className: cx(className, error ? classes.errorField : undefined), style: style, slotProps: {
|
|
30
|
+
input: {
|
|
31
|
+
readOnly,
|
|
32
|
+
classes: {
|
|
33
|
+
input: classes.field,
|
|
34
|
+
},
|
|
35
|
+
},
|
|
36
|
+
} }), children] })] }));
|
|
37
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { TextFieldProps } from '@mui/material';
|
|
2
|
+
interface OwnProps {
|
|
3
|
+
/** Initial numeric value; undefined renders as empty input. */
|
|
4
|
+
defaultValue?: number;
|
|
5
|
+
/**
|
|
6
|
+
* Fires on every keystroke with the parsed number, or undefined when
|
|
7
|
+
* the input is empty or invalid (NaN / out of bounds). The parent
|
|
8
|
+
* decides whether to gate submission on undefined.
|
|
9
|
+
*/
|
|
10
|
+
onValueChange: (value: number | undefined) => void;
|
|
11
|
+
/** Optional inclusive lower bound. */
|
|
12
|
+
min?: number;
|
|
13
|
+
/** Optional inclusive upper bound. */
|
|
14
|
+
max?: number;
|
|
15
|
+
/** Shown under the input when the value is non-empty and invalid. */
|
|
16
|
+
errorText?: string;
|
|
17
|
+
}
|
|
18
|
+
type Props = Omit<TextFieldProps, 'value' | 'onChange' | 'type' | 'error'> & OwnProps & {
|
|
19
|
+
helperText?: TextFieldProps['helperText'];
|
|
20
|
+
};
|
|
21
|
+
/**
|
|
22
|
+
* Uncontrolled-style numeric TextField. Owns the input *text* internally;
|
|
23
|
+
* emits the parsed *number* (or undefined) to the parent on every change.
|
|
24
|
+
*
|
|
25
|
+
* Use over `<TextField type="number" />` — the browser number input has
|
|
26
|
+
* known UX problems (scroll-to-change, locale issues, browser-specific
|
|
27
|
+
* spinners). This component keeps a plain text input and validates with
|
|
28
|
+
* `Number.isFinite` + optional min/max.
|
|
29
|
+
*/
|
|
30
|
+
export default function NumberTextField(props: Props): import("react").JSX.Element;
|
|
31
|
+
export {};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { TextField } from '@mui/material';
|
|
4
|
+
/**
|
|
5
|
+
* Uncontrolled-style numeric TextField. Owns the input *text* internally;
|
|
6
|
+
* emits the parsed *number* (or undefined) to the parent on every change.
|
|
7
|
+
*
|
|
8
|
+
* Use over `<TextField type="number" />` — the browser number input has
|
|
9
|
+
* known UX problems (scroll-to-change, locale issues, browser-specific
|
|
10
|
+
* spinners). This component keeps a plain text input and validates with
|
|
11
|
+
* `Number.isFinite` + optional min/max.
|
|
12
|
+
*/
|
|
13
|
+
export default function NumberTextField(props) {
|
|
14
|
+
const { defaultValue, onValueChange, min, max, errorText = 'Must be a valid number', helperText, ...rest } = props;
|
|
15
|
+
const [text, setText] = useState(defaultValue === undefined ? '' : `${defaultValue}`);
|
|
16
|
+
const parsed = parseInBounds(text, min, max);
|
|
17
|
+
const showError = text !== '' && parsed === undefined;
|
|
18
|
+
return (_jsx(TextField, { ...rest, value: text, error: showError, helperText: showError ? errorText : helperText, autoComplete: "off", onChange: event => {
|
|
19
|
+
const next = event.target.value;
|
|
20
|
+
setText(next);
|
|
21
|
+
onValueChange(parseInBounds(next, min, max));
|
|
22
|
+
} }));
|
|
23
|
+
}
|
|
24
|
+
function parseInBounds(text, min, max) {
|
|
25
|
+
if (text === '') {
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
const n = Number(text);
|
|
29
|
+
const ok = Number.isFinite(n) &&
|
|
30
|
+
(min === undefined || n >= min) &&
|
|
31
|
+
(max === undefined || n <= max);
|
|
32
|
+
return ok ? n : undefined;
|
|
33
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import type { JBrowsePalette } from './palette.ts';
|
|
2
|
+
import type { JBrowseStyleTheme } from './styleTheme.ts';
|
|
3
|
+
import type { ReactNode } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* Supply the whole style theme — colors plus spacing and type scale. This is
|
|
6
|
+
* what JBrowse's own products mount, from `session.styleTheme`, so a config
|
|
7
|
+
* `theme` that sets `spacing` or `typography` reaches `makeStyles` and Material
|
|
8
|
+
* UI alike.
|
|
9
|
+
*/
|
|
10
|
+
export declare function StyleThemeProvider({ theme, children, }: {
|
|
11
|
+
theme: JBrowseStyleTheme;
|
|
12
|
+
children: ReactNode;
|
|
13
|
+
}): import("react").JSX.Element;
|
|
14
|
+
/**
|
|
15
|
+
* Supply colors only, leaving JBrowse's default sizing in place. The narrower
|
|
16
|
+
* of the two, and what a host that already holds a palette mounts: it is saying
|
|
17
|
+
* what JBrowse should draw *with*, not restating its type scale.
|
|
18
|
+
*
|
|
19
|
+
* **A host following its own light/dark state wants
|
|
20
|
+
* {@link SessionPaletteProvider} instead**, which is this plus the session
|
|
21
|
+
* write that the worker-side half of the rendering derives from. This one
|
|
22
|
+
* colors React and nothing else.
|
|
23
|
+
*/
|
|
24
|
+
export declare function PaletteProvider({ palette, children, }: {
|
|
25
|
+
palette: JBrowsePalette;
|
|
26
|
+
children: ReactNode;
|
|
27
|
+
}): import("react").JSX.Element;
|
|
28
|
+
export declare function useStyleTheme(): JBrowseStyleTheme;
|
|
29
|
+
export declare function usePalette(): JBrowsePalette;
|
|
30
|
+
/** What {@link useSessionPalette} needs of a session. */
|
|
31
|
+
export interface ThemeModeSession {
|
|
32
|
+
setThemeMode: (mode: 'light' | 'dark') => void;
|
|
33
|
+
readonly palette: JBrowsePalette;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Point a session at light or dark and get back the palette it resolves to,
|
|
37
|
+
* for a host that wants the palette itself — to read a color out of, or to
|
|
38
|
+
* hand somewhere other than a provider. A host that only wants JBrowse to
|
|
39
|
+
* follow its dark mode mounts {@link SessionPaletteProvider}, which is this
|
|
40
|
+
* hook and the provider in one.
|
|
41
|
+
*
|
|
42
|
+
* How the host knows its own mode is the host's business — an attribute on
|
|
43
|
+
* `<html>`, a `prefers-color-scheme` media query, a design-system context —
|
|
44
|
+
* and deliberately not this hook's.
|
|
45
|
+
*
|
|
46
|
+
* **Both halves are load-bearing, which is why the pairing is published as a
|
|
47
|
+
* component.** The palette is what *React* draws with; the config `theme` slot
|
|
48
|
+
* this writes is also what ships to the RPC worker, where feature labels are
|
|
49
|
+
* baked into the rendered image. Mount `PaletteProvider` on a palette from
|
|
50
|
+
* somewhere else and those labels stay in the old mode — light text on a light
|
|
51
|
+
* image, and no error anywhere. `setThemeMode` writes the one slot both are
|
|
52
|
+
* derived from, which is why this returns the palette rather than taking one.
|
|
53
|
+
*
|
|
54
|
+
* The write lands in an effect, so the first paint after a mode change uses
|
|
55
|
+
* the previous palette. That is a frame on a canvas that is about to be
|
|
56
|
+
* redrawn anyway; it is not somewhere to add a suspense boundary.
|
|
57
|
+
*/
|
|
58
|
+
export declare function useSessionPalette(session: ThemeModeSession, mode: 'light' | 'dark'): JBrowsePalette;
|
|
59
|
+
/**
|
|
60
|
+
* #api
|
|
61
|
+
* Make JBrowse follow the host's light/dark state — the whole of it, in one
|
|
62
|
+
* mount:
|
|
63
|
+
*
|
|
64
|
+
* ```tsx
|
|
65
|
+
* <SessionPaletteProvider session={session} mode={myAppIsDark ? 'dark' : 'light'}>
|
|
66
|
+
* {tracks}
|
|
67
|
+
* </SessionPaletteProvider>
|
|
68
|
+
* ```
|
|
69
|
+
*
|
|
70
|
+
* A component rather than a documented pair of calls because the pair has a
|
|
71
|
+
* half that can be left out with nothing to show for it. `PaletteProvider` is
|
|
72
|
+
* the name a host reaches for, and it colors the React side alone; the session
|
|
73
|
+
* write is what reaches the RPC worker, which bakes feature labels into the
|
|
74
|
+
* rendered image. So a host that mounts only the provider gets light-mode
|
|
75
|
+
* labels on a dark page, from a canvas whose every other pixel is right, and
|
|
76
|
+
* nothing errors. See {@link useSessionPalette} for the mechanism.
|
|
77
|
+
*
|
|
78
|
+
* The session is the only thing that resolves a palette here, so a host
|
|
79
|
+
* supplying colors of its own mounts `PaletteProvider` directly instead.
|
|
80
|
+
*/
|
|
81
|
+
export declare function SessionPaletteProvider({ session, mode, children, }: {
|
|
82
|
+
session: ThemeModeSession;
|
|
83
|
+
mode: 'light' | 'dark';
|
|
84
|
+
children: ReactNode;
|
|
85
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { createContext, use, useEffect, useMemo } from 'react';
|
|
3
|
+
import { defaultStyleTheme } from './styleTheme.js';
|
|
4
|
+
/**
|
|
5
|
+
* How a React component asks for JBrowse's design tokens.
|
|
6
|
+
*
|
|
7
|
+
* This is the toolkit-free counterpart to Material UI's `useTheme`, and it is
|
|
8
|
+
* the seam that lets a display component render without Material UI at all: a
|
|
9
|
+
* display reads `usePalette()` for its content colors, an embedding app
|
|
10
|
+
* supplies them by mounting `PaletteProvider` rather than a `ThemeProvider`,
|
|
11
|
+
* and `makeStyles` reads the whole thing through `useStyleTheme`.
|
|
12
|
+
*
|
|
13
|
+
* JBrowse's own products mount both, from the same session, so the Material UI
|
|
14
|
+
* chrome and the display content cannot disagree.
|
|
15
|
+
*
|
|
16
|
+
* With no provider above it this falls back to the default style theme,
|
|
17
|
+
* mirroring `useTheme`'s fall back to the default theme. That keeps a bare
|
|
18
|
+
* display mountable in a test or a minimal host without ceremony.
|
|
19
|
+
*/
|
|
20
|
+
const StyleThemeContext = createContext(undefined);
|
|
21
|
+
/**
|
|
22
|
+
* Supply the whole style theme — colors plus spacing and type scale. This is
|
|
23
|
+
* what JBrowse's own products mount, from `session.styleTheme`, so a config
|
|
24
|
+
* `theme` that sets `spacing` or `typography` reaches `makeStyles` and Material
|
|
25
|
+
* UI alike.
|
|
26
|
+
*/
|
|
27
|
+
export function StyleThemeProvider({ theme, children, }) {
|
|
28
|
+
return _jsx(StyleThemeContext, { value: theme, children: children });
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Supply colors only, leaving JBrowse's default sizing in place. The narrower
|
|
32
|
+
* of the two, and what a host that already holds a palette mounts: it is saying
|
|
33
|
+
* what JBrowse should draw *with*, not restating its type scale.
|
|
34
|
+
*
|
|
35
|
+
* **A host following its own light/dark state wants
|
|
36
|
+
* {@link SessionPaletteProvider} instead**, which is this plus the session
|
|
37
|
+
* write that the worker-side half of the rendering derives from. This one
|
|
38
|
+
* colors React and nothing else.
|
|
39
|
+
*/
|
|
40
|
+
export function PaletteProvider({ palette, children, }) {
|
|
41
|
+
const theme = useMemo(() => ({ ...defaultStyleTheme, palette }), [palette]);
|
|
42
|
+
return _jsx(StyleThemeProvider, { theme: theme, children: children });
|
|
43
|
+
}
|
|
44
|
+
export function useStyleTheme() {
|
|
45
|
+
return use(StyleThemeContext) ?? defaultStyleTheme;
|
|
46
|
+
}
|
|
47
|
+
export function usePalette() {
|
|
48
|
+
return useStyleTheme().palette;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Point a session at light or dark and get back the palette it resolves to,
|
|
52
|
+
* for a host that wants the palette itself — to read a color out of, or to
|
|
53
|
+
* hand somewhere other than a provider. A host that only wants JBrowse to
|
|
54
|
+
* follow its dark mode mounts {@link SessionPaletteProvider}, which is this
|
|
55
|
+
* hook and the provider in one.
|
|
56
|
+
*
|
|
57
|
+
* How the host knows its own mode is the host's business — an attribute on
|
|
58
|
+
* `<html>`, a `prefers-color-scheme` media query, a design-system context —
|
|
59
|
+
* and deliberately not this hook's.
|
|
60
|
+
*
|
|
61
|
+
* **Both halves are load-bearing, which is why the pairing is published as a
|
|
62
|
+
* component.** The palette is what *React* draws with; the config `theme` slot
|
|
63
|
+
* this writes is also what ships to the RPC worker, where feature labels are
|
|
64
|
+
* baked into the rendered image. Mount `PaletteProvider` on a palette from
|
|
65
|
+
* somewhere else and those labels stay in the old mode — light text on a light
|
|
66
|
+
* image, and no error anywhere. `setThemeMode` writes the one slot both are
|
|
67
|
+
* derived from, which is why this returns the palette rather than taking one.
|
|
68
|
+
*
|
|
69
|
+
* The write lands in an effect, so the first paint after a mode change uses
|
|
70
|
+
* the previous palette. That is a frame on a canvas that is about to be
|
|
71
|
+
* redrawn anyway; it is not somewhere to add a suspense boundary.
|
|
72
|
+
*/
|
|
73
|
+
export function useSessionPalette(session, mode) {
|
|
74
|
+
useEffect(() => {
|
|
75
|
+
session.setThemeMode(mode);
|
|
76
|
+
}, [session, mode]);
|
|
77
|
+
return session.palette;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* #api
|
|
81
|
+
* Make JBrowse follow the host's light/dark state — the whole of it, in one
|
|
82
|
+
* mount:
|
|
83
|
+
*
|
|
84
|
+
* ```tsx
|
|
85
|
+
* <SessionPaletteProvider session={session} mode={myAppIsDark ? 'dark' : 'light'}>
|
|
86
|
+
* {tracks}
|
|
87
|
+
* </SessionPaletteProvider>
|
|
88
|
+
* ```
|
|
89
|
+
*
|
|
90
|
+
* A component rather than a documented pair of calls because the pair has a
|
|
91
|
+
* half that can be left out with nothing to show for it. `PaletteProvider` is
|
|
92
|
+
* the name a host reaches for, and it colors the React side alone; the session
|
|
93
|
+
* write is what reaches the RPC worker, which bakes feature labels into the
|
|
94
|
+
* rendered image. So a host that mounts only the provider gets light-mode
|
|
95
|
+
* labels on a dark page, from a canvas whose every other pixel is right, and
|
|
96
|
+
* nothing errors. See {@link useSessionPalette} for the mechanism.
|
|
97
|
+
*
|
|
98
|
+
* The session is the only thing that resolves a palette here, so a host
|
|
99
|
+
* supplying colors of its own mounts `PaletteProvider` directly instead.
|
|
100
|
+
*/
|
|
101
|
+
export function SessionPaletteProvider({ session, mode, children, }) {
|
|
102
|
+
const palette = useSessionPalette(session, mode);
|
|
103
|
+
return _jsx(PaletteProvider, { palette: palette, children: children });
|
|
104
|
+
}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import PushPinIcon from '@mui/icons-material/PushPin';
|
|
3
|
+
import PushPinOutlinedIcon from '@mui/icons-material/PushPinOutlined';
|
|
4
|
+
import { ToggleButton, Tooltip } from '@mui/material';
|
|
5
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
6
|
+
const useStyles = makeStyles()(theme => ({
|
|
7
|
+
// compact enough to sit inline with the value check: drop the default
|
|
8
|
+
// ToggleButton border/padding so it's ~icon-sized, but keep the selected
|
|
9
|
+
// background tint (an unmistakable on/off signal, unlike a hollow-vs-filled
|
|
10
|
+
// icon alone)
|
|
11
|
+
button: {
|
|
12
|
+
border: 0,
|
|
13
|
+
padding: theme.spacing(0.25),
|
|
14
|
+
},
|
|
15
|
+
// the Tooltip listens on this rather than on the button, which fires no
|
|
16
|
+
// events once the row disables it
|
|
17
|
+
wrapper: {
|
|
18
|
+
display: 'inline-flex',
|
|
19
|
+
},
|
|
20
|
+
}));
|
|
21
|
+
// How the pin names what it acts on. Two shapes, decided by the on-value:
|
|
22
|
+
//
|
|
23
|
+
// - **A boolean on-value carries a state**, and the row's label names the
|
|
24
|
+
// setting rather than a value ("Show legend", "Show soft clipping"). A pin on
|
|
25
|
+
// an unchecked such row applies the setting *off*, so the value-shaped copy
|
|
26
|
+
// below stated the opposite of what the click does — and then, once filled,
|
|
27
|
+
// claimed the setting was on by default when it had just been turned off.
|
|
28
|
+
// - **Everything else IS what the label says**: a radio option ("Compact"), a
|
|
29
|
+
// size row whose caller folds the value into the label ("Line width (2px)").
|
|
30
|
+
//
|
|
31
|
+
// One `typeof` rather than a flag on the row, because the two forms of
|
|
32
|
+
// `makePin` are exactly this distinction: a symmetric pin over a `maybeBoolean`
|
|
33
|
+
// slot is the only way a pin's value and its label can disagree.
|
|
34
|
+
function pinPredicate(onValue) {
|
|
35
|
+
return typeof onValue === 'boolean'
|
|
36
|
+
? `${onValue ? 'on' : 'off'} by default`
|
|
37
|
+
: 'the default';
|
|
38
|
+
}
|
|
39
|
+
// The click, which is not the state the pin draws: an outline pin applies the
|
|
40
|
+
// value to the open tracks, a filled one clears the default it stands for.
|
|
41
|
+
function pinCopy(label, onValue, isDefault) {
|
|
42
|
+
return isDefault
|
|
43
|
+
? {
|
|
44
|
+
title: `${label} is ${pinPredicate(onValue)} for all tracks of this type (click to clear)`,
|
|
45
|
+
ariaLabel: `clear the default for ${label}`,
|
|
46
|
+
}
|
|
47
|
+
: typeof onValue === 'boolean'
|
|
48
|
+
? {
|
|
49
|
+
title: `Turn ${label} ${onValue ? 'on' : 'off'} for all open tracks of this type`,
|
|
50
|
+
ariaLabel: `turn ${label} ${onValue ? 'on' : 'off'} for all open tracks`,
|
|
51
|
+
}
|
|
52
|
+
: {
|
|
53
|
+
title: `Apply ${label} to all open tracks of this type`,
|
|
54
|
+
ariaLabel: `apply ${label} to all open tracks`,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// Trailing pin for a promotable setting, rendered as a menu item's
|
|
58
|
+
// `endAdornment` beside the value check. A ToggleButton (native button a11y + a
|
|
59
|
+
// clear selected tint) with a pin — distinct from the value checkbox.
|
|
60
|
+
//
|
|
61
|
+
// **The click and the state are two different things.** One click writes the
|
|
62
|
+
// value into every open track of this display type and raises a snackbar
|
|
63
|
+
// offering to keep it as the display type's default; the filled pin means that
|
|
64
|
+
// default is in place, so a click on a filled pin clears it and touches no
|
|
65
|
+
// track. A default therefore takes two deliberate clicks, which is what it costs
|
|
66
|
+
// to govern every track of the type opened later (ADR-048). Always shown so the
|
|
67
|
+
// capability is discoverable. stopPropagation keeps the click off the row value
|
|
68
|
+
// / menu dismissal. "of this type" because a promoted default is scoped to the
|
|
69
|
+
// display type (e.g. every LinearAlignmentsDisplay), not literally all tracks.
|
|
70
|
+
export function PinAdornment({ pin, disabled, }) {
|
|
71
|
+
const { classes } = useStyles();
|
|
72
|
+
const { label, control } = pin;
|
|
73
|
+
const isDefault = control.active;
|
|
74
|
+
const { title, ariaLabel } = pinCopy(label, control.onValue, isDefault);
|
|
75
|
+
return (_jsx(Tooltip, { title: title, children: _jsx("span", { className: classes.wrapper, children: _jsx(ToggleButton, { className: classes.button, value: "default", disabled: disabled, selected: isDefault, color: "primary", size: "small", "aria-label": ariaLabel, onChange: e => {
|
|
76
|
+
e.stopPropagation();
|
|
77
|
+
control.toggle();
|
|
78
|
+
}, children: isDefault ? (_jsx(PushPinIcon, { fontSize: "small" })) : (_jsx(PushPinOutlinedIcon, { fontSize: "small" })) }) }) }));
|
|
79
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager';
|
|
2
|
+
import type { ExtensionPointName, ExtensionPointProps } from '../PluginManager';
|
|
3
|
+
import type React from 'react';
|
|
4
|
+
declare const PluggableComponent: <N extends ExtensionPointName, P extends object>({ pluginManager, name, component: DefaultComponent, props, }: {
|
|
5
|
+
pluginManager: PluginManager;
|
|
6
|
+
name: N;
|
|
7
|
+
component: React.ComponentType<P> | React.LazyExoticComponent<React.ComponentType<P>>;
|
|
8
|
+
props: P & ExtensionPointProps<N>;
|
|
9
|
+
}) => React.JSX.Element;
|
|
10
|
+
export default PluggableComponent;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
// A point rendered here is a single-component fold: its registry entry declares
|
|
4
|
+
// `args`/`result` as the component type and `props` as that component's prop
|
|
5
|
+
// bag (see Core-replaceWidget for the canonical shape). Taking the name as a
|
|
6
|
+
// registry key rather than a bare string is what checks the default component
|
|
7
|
+
// and the props against the contract, instead of trusting the call site.
|
|
8
|
+
//
|
|
9
|
+
// observer so that observable reads inside evaluateExtensionPoint callbacks
|
|
10
|
+
// (e.g. model.trackAdapterType) are tracked here — re-evaluates when they
|
|
11
|
+
// change without relying on the parent being an observer
|
|
12
|
+
const PluggableComponent = observer(function PluggableComponent({ pluginManager, name, component: DefaultComponent, props, }) {
|
|
13
|
+
// the result is the point's declared component type, and `props` satisfies
|
|
14
|
+
// the point's declared props by the signature above. TS can't narrow either
|
|
15
|
+
// through the generic key, so both are restated here
|
|
16
|
+
const Component = pluginManager.evaluateComponentExtensionPoint(name, DefaultComponent, ...[props]);
|
|
17
|
+
return _jsx(Component, { ...props });
|
|
18
|
+
});
|
|
19
|
+
export default PluggableComponent;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { ExtensionPointRegistry, PointsOfKind } from '../PluginManager.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The extension points that accumulate an array of components — every point
|
|
5
|
+
* declared `ComponentList`. Points accumulating rendered `ReactNode`s are
|
|
6
|
+
* `ElementList` instead, and belong to {@link PluggableElements}.
|
|
7
|
+
*/
|
|
8
|
+
export type ComponentExtensionPointName = PointsOfKind<'componentList'>;
|
|
9
|
+
/** The props a component point hands each of its panels. */
|
|
10
|
+
export type PanelProps<N extends ComponentExtensionPointName> = ExtensionPointRegistry[N]['props'];
|
|
11
|
+
/**
|
|
12
|
+
* Render every component contributed to an accumulating point, in registration
|
|
13
|
+
* order, each with the point's props.
|
|
14
|
+
*
|
|
15
|
+
* The component sibling of {@link PluggableElements}. Owning the loop here is
|
|
16
|
+
* what makes a new panel seam one tag rather than a producer that re-derives
|
|
17
|
+
* the `Suspense` boundary, the keys and the legacy normalization — each of
|
|
18
|
+
* which was wrong in one of the two producers that used to hand-roll it.
|
|
19
|
+
*
|
|
20
|
+
* A contributed panel scopes itself, rendering `null` when it does not apply —
|
|
21
|
+
* {@link matchesTrackSelector} is what decides that. It also draws its own card
|
|
22
|
+
* chrome, since only the panel knows whether it wants a title.
|
|
23
|
+
*/
|
|
24
|
+
declare const PluggableComponents: <N extends ComponentExtensionPointName>({ pluginManager, name, props, }: {
|
|
25
|
+
pluginManager: PluginManager;
|
|
26
|
+
name: N;
|
|
27
|
+
props: PanelProps<N>;
|
|
28
|
+
}) => import("react").JSX.Element;
|
|
29
|
+
export default PluggableComponents;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense } from 'react';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
/**
|
|
5
|
+
* Render every component contributed to an accumulating point, in registration
|
|
6
|
+
* order, each with the point's props.
|
|
7
|
+
*
|
|
8
|
+
* The component sibling of {@link PluggableElements}. Owning the loop here is
|
|
9
|
+
* what makes a new panel seam one tag rather than a producer that re-derives
|
|
10
|
+
* the `Suspense` boundary, the keys and the legacy normalization — each of
|
|
11
|
+
* which was wrong in one of the two producers that used to hand-roll it.
|
|
12
|
+
*
|
|
13
|
+
* A contributed panel scopes itself, rendering `null` when it does not apply —
|
|
14
|
+
* {@link matchesTrackSelector} is what decides that. It also draws its own card
|
|
15
|
+
* chrome, since only the panel knows whether it wants a title.
|
|
16
|
+
*/
|
|
17
|
+
const PluggableComponents = observer(function PluggableComponents({ pluginManager, name, props, }) {
|
|
18
|
+
// restated for the same reason as PluggableElements: neither the empty
|
|
19
|
+
// accumulator nor the props narrow through the generic key. [x].flat()
|
|
20
|
+
// tolerates a pre-v5 callback that returned one component instead of appending
|
|
21
|
+
const components = [
|
|
22
|
+
pluginManager.evaluateExtensionPoint(name, [], ...[props]),
|
|
23
|
+
].flat();
|
|
24
|
+
return (_jsx(_Fragment, { children: components.map((Component, i) => (_jsx(Suspense
|
|
25
|
+
// eslint-disable-next-line @eslint-react/no-array-index-key -- registration-ordered, so stable across renders
|
|
26
|
+
, { fallback: null, children: _jsx(Component, { ...props }) }, i))) }));
|
|
27
|
+
});
|
|
28
|
+
export default PluggableComponents;
|