@jbrowse/core 4.3.0 → 5.0.0-beta.2
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 +822 -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 +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- 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 +62 -93
- 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/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -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 +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- 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 +332 -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 +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- 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/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- 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 +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -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 +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- 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 +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- 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 +73 -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 +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -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 +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -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 +275 -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 +58 -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 +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -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/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- 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 +137 -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 +390 -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 +23 -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 +134 -5
- package/esm/ui/MenuTypes.js +16 -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 +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -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 +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -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 +42 -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 +27 -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/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 +55 -0
- package/esm/util/cacheBudgets.js +55 -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 +118 -0
- package/esm/util/createStopTokenRotation.js +127 -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 +168 -0
- package/esm/util/hooks.js +443 -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 +81 -268
- package/esm/util/index.js +135 -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 +220 -0
- package/esm/util/installFetch.js +206 -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/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -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 +100 -0
- package/esm/util/mstUtils.js +140 -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 +114 -0
- package/esm/util/pluginStore.js +260 -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 +46 -1
- package/esm/util/range.js +68 -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 +30 -1
- package/esm/util/rxjs.js +88 -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 +126 -0
- package/esm/util/tabix.js +149 -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 +398 -30
- package/esm/util/tracks.js +699 -191
- 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 +402 -120
- package/esm/util/types/index.js +90 -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/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- 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 +81 -0
- package/esm/util/viewStatus.js +37 -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 +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare const MAX_ZOOM_RATE_PER_MS: number;
|
|
2
|
+
export declare const SCROLL_ZOOM_FACTOR_DIVISOR = 500;
|
|
3
|
+
export declare function wheelZoomAccum(normalizedDeltaY: number, isCtrlZoom: boolean): number;
|
|
4
|
+
export declare function getZoomNormalizer(deltaY: number): 25 | 75 | 150 | 500;
|
|
5
|
+
export declare function normalizeWheelDelta(delta: number, deltaMode: number, pageHeight?: number): number;
|
|
6
|
+
export declare function wheelFrameElapsedMs(now: number, lastRafTime: number | null): number;
|
|
7
|
+
export declare function accumulateScroll(prev: number, deltaX: number): number;
|
|
8
|
+
export declare const ZOOM_ACTIVE_WINDOW_MS = 100;
|
|
9
|
+
export declare function isActivelyZooming(now: number, lastZoomTime: number | null): boolean;
|
|
10
|
+
export declare function applyZoomAccum(bpPerPx: number, zoomAccum: number, elapsedMs: number): number;
|
|
11
|
+
export interface WheelZoomView {
|
|
12
|
+
bpPerPx: number;
|
|
13
|
+
zoomTo: (bpPerPx: number, offset?: number) => void;
|
|
14
|
+
horizontalScroll: (delta: number) => void;
|
|
15
|
+
}
|
|
16
|
+
export interface WheelZoomTarget {
|
|
17
|
+
views: WheelZoomView[];
|
|
18
|
+
scrollZoom: boolean;
|
|
19
|
+
originElement: () => HTMLElement | undefined;
|
|
20
|
+
}
|
|
21
|
+
export interface WheelZoomControllerOptions {
|
|
22
|
+
element: HTMLElement;
|
|
23
|
+
resolveTarget: (event: WheelEvent) => WheelZoomTarget | undefined;
|
|
24
|
+
swallowUnhandled?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Abandon the gesture once the pointer leaves `element`, rather than following
|
|
27
|
+
* the wheel events the browser keeps latching here (see trackPointerPresence).
|
|
28
|
+
*
|
|
29
|
+
* Only for an element large and stationary enough that "the pointer left" is a
|
|
30
|
+
* real exit. On a small or moving target it isn't: a zoom slides a thin svg
|
|
31
|
+
* ribbon out from under a stationary cursor, the browser fires mouseleave, and
|
|
32
|
+
* the gesture would die halfway through. So this is opt-in, not the default.
|
|
33
|
+
*/
|
|
34
|
+
releaseOnPointerLeave?: boolean;
|
|
35
|
+
onEvent?: (event: WheelEvent) => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The one wheel gesture handler for linear views. Its decision matrix:
|
|
39
|
+
*
|
|
40
|
+
* - ctrl/meta+wheel, or (scrollZoom && |dy| >= |dx|) → zoom about the cursor
|
|
41
|
+
* - shift+wheel while scrollZoom is on → declined, we pass
|
|
42
|
+
* - a horizontal delta, unless one arrives mid-zoom → pan by dx
|
|
43
|
+
*
|
|
44
|
+
* Declining shift is what leaves a nested panel its own scroll
|
|
45
|
+
* (`usePanelVirtualScroll`) — it is not a way back to the page. Browsers turn
|
|
46
|
+
* shift+wheel into *horizontal* scrolling, so what a view declines here scrolls
|
|
47
|
+
* the page sideways or not at all. The vertical way out is spatial rather than
|
|
48
|
+
* modal: JBrowse binds this below the view's sticky header, leaving that header
|
|
49
|
+
* as a gutter the wheel still scrolls (LinearGenomeViewContainer's tracksRef).
|
|
50
|
+
*
|
|
51
|
+
* The listener is non-passive so it can preventDefault to suppress native scroll
|
|
52
|
+
* during a zoom. To pay for that it only accumulates deltas: every model write
|
|
53
|
+
* happens in one requestAnimationFrame, so a burst of events (fast trackpad,
|
|
54
|
+
* inertial scroll) collapses to a single update per frame instead of thrashing
|
|
55
|
+
* the views once per event.
|
|
56
|
+
*
|
|
57
|
+
* Returns its disposer.
|
|
58
|
+
*/
|
|
59
|
+
export declare function createWheelZoomController({ element, resolveTarget, swallowUnhandled, releaseOnPointerLeave, onEvent, }: WheelZoomControllerOptions): () => void;
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
// Shared wheel-zoom math and event handling for linear genome views. The LGV
|
|
2
|
+
// wheel handler, the breakpoint-split overlay and the synteny canvas all zoom on
|
|
3
|
+
// ctrl/scroll-zoom wheel gestures and must behave identically, so the normalizer,
|
|
4
|
+
// the rate limit and the whole gesture decision matrix live here —
|
|
5
|
+
// createWheelZoomController below is what each of those three actually runs.
|
|
6
|
+
import { transaction } from 'mobx';
|
|
7
|
+
import { createFrameCoalescer } from './frameCoalescer.js';
|
|
8
|
+
import { trackPointerPresence } from './pointerPresence.js';
|
|
9
|
+
// max zoom delta per millisecond — equivalent to 0.2 per frame at 60fps
|
|
10
|
+
export const MAX_ZOOM_RATE_PER_MS = 0.2 / 16.67;
|
|
11
|
+
// Scroll-zoom (plain wheel with the scrollZoom preference on) divides by a fixed
|
|
12
|
+
// amount for a smooth proportional feel, rather than the adaptive
|
|
13
|
+
// getZoomNormalizer used for ctrl/pinch zoom where device deltas vary wildly.
|
|
14
|
+
export const SCROLL_ZOOM_FACTOR_DIVISOR = 500;
|
|
15
|
+
// The per-event contribution to the zoom accumulator, given a wheel delta
|
|
16
|
+
// already normalized to pixels via normalizeWheelDelta. ctrl/pinch zoom uses the
|
|
17
|
+
// adaptive normalizer; scroll-zoom uses the fixed divisor. Single source of the
|
|
18
|
+
// zoom-step feel so every wheel handler (LGV, breakpoint overlay, synteny)
|
|
19
|
+
// zooms identically for the same gesture.
|
|
20
|
+
export function wheelZoomAccum(normalizedDeltaY, isCtrlZoom) {
|
|
21
|
+
return (normalizedDeltaY /
|
|
22
|
+
(isCtrlZoom
|
|
23
|
+
? getZoomNormalizer(normalizedDeltaY)
|
|
24
|
+
: SCROLL_ZOOM_FACTOR_DIVISOR));
|
|
25
|
+
}
|
|
26
|
+
// larger wheel deltas (e.g. mouse wheel notches) divide by more so a single
|
|
27
|
+
// notch produces a consistent zoom step regardless of device delta magnitude
|
|
28
|
+
export function getZoomNormalizer(deltaY) {
|
|
29
|
+
const abs = Math.abs(deltaY);
|
|
30
|
+
if (abs < 6) {
|
|
31
|
+
return 25;
|
|
32
|
+
}
|
|
33
|
+
if (abs > 150) {
|
|
34
|
+
return 500;
|
|
35
|
+
}
|
|
36
|
+
if (abs > 30) {
|
|
37
|
+
return 150;
|
|
38
|
+
}
|
|
39
|
+
return 75;
|
|
40
|
+
}
|
|
41
|
+
// One wheel notch in line mode (deltaMode 1) is roughly this many pixels, and a
|
|
42
|
+
// page (deltaMode 2) roughly WHEEL_PAGE_HEIGHT — the values Facebook's
|
|
43
|
+
// normalize-wheel uses, the de-facto cross-browser convention. Pixel mode (0),
|
|
44
|
+
// which trackpads and modern mice report, passes through untouched.
|
|
45
|
+
const WHEEL_LINE_HEIGHT = 40;
|
|
46
|
+
const WHEEL_PAGE_HEIGHT = 800;
|
|
47
|
+
// Convert a WheelEvent delta from its deltaMode units to pixels. Panel-scroll
|
|
48
|
+
// callers pass the viewport height as `pageHeight` so a page maps to exactly one
|
|
49
|
+
// screen; the zoom path omits it and takes the default. Single normalizer for
|
|
50
|
+
// both the zoom math here and the vertical-scroll handlers so a notch means the
|
|
51
|
+
// same thing everywhere.
|
|
52
|
+
export function normalizeWheelDelta(delta, deltaMode, pageHeight = WHEEL_PAGE_HEIGHT) {
|
|
53
|
+
return deltaMode === 1
|
|
54
|
+
? delta * WHEEL_LINE_HEIGHT
|
|
55
|
+
: deltaMode === 2
|
|
56
|
+
? delta * pageHeight
|
|
57
|
+
: delta;
|
|
58
|
+
}
|
|
59
|
+
// elapsed since the previous animation frame, clamped to 100ms and defaulting
|
|
60
|
+
// to one 60fps frame when there is no prior frame (first event or post-resume)
|
|
61
|
+
export function wheelFrameElapsedMs(now, lastRafTime) {
|
|
62
|
+
return Math.min(100, lastRafTime !== null ? now - lastRafTime : 16.67);
|
|
63
|
+
}
|
|
64
|
+
// Accumulate horizontal scroll across a frame, restarting from zero when the
|
|
65
|
+
// gesture reverses direction so a flick the opposite way isn't cancelled out by
|
|
66
|
+
// leftover momentum.
|
|
67
|
+
export function accumulateScroll(prev, deltaX) {
|
|
68
|
+
const reversed = prev !== 0 && Math.sign(deltaX) !== Math.sign(prev);
|
|
69
|
+
return (reversed ? 0 : prev) + deltaX;
|
|
70
|
+
}
|
|
71
|
+
// A pinch/scroll-zoom gesture fires a continuous stream of wheel events, so we
|
|
72
|
+
// treat the view as "actively zooming" until this many ms pass with no zoom
|
|
73
|
+
// event. While actively zooming, callers ignore horizontal deltas: trackpads
|
|
74
|
+
// emit an unintentional side-scroll mid-gesture that would otherwise pan the
|
|
75
|
+
// view out from under the user.
|
|
76
|
+
export const ZOOM_ACTIVE_WINDOW_MS = 100;
|
|
77
|
+
// `now` and `lastZoomTime` are both wheel-event timeStamps (same clock).
|
|
78
|
+
// lastZoomTime is null before any zoom has occurred.
|
|
79
|
+
export function isActivelyZooming(now, lastZoomTime) {
|
|
80
|
+
return lastZoomTime !== null && now - lastZoomTime < ZOOM_ACTIVE_WINDOW_MS;
|
|
81
|
+
}
|
|
82
|
+
// apply an accumulated zoom amount to bpPerPx, rate-limited so a burst of wheel
|
|
83
|
+
// events can't zoom faster than MAX_ZOOM_RATE_PER_MS over the frame's elapsed
|
|
84
|
+
export function applyZoomAccum(bpPerPx, zoomAccum, elapsedMs) {
|
|
85
|
+
const max = MAX_ZOOM_RATE_PER_MS * elapsedMs;
|
|
86
|
+
const d = Math.max(-max, Math.min(max, zoomAccum));
|
|
87
|
+
return d > 0 ? bpPerPx * (1 + d) : bpPerPx / (1 - d);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* The one wheel gesture handler for linear views. Its decision matrix:
|
|
91
|
+
*
|
|
92
|
+
* - ctrl/meta+wheel, or (scrollZoom && |dy| >= |dx|) → zoom about the cursor
|
|
93
|
+
* - shift+wheel while scrollZoom is on → declined, we pass
|
|
94
|
+
* - a horizontal delta, unless one arrives mid-zoom → pan by dx
|
|
95
|
+
*
|
|
96
|
+
* Declining shift is what leaves a nested panel its own scroll
|
|
97
|
+
* (`usePanelVirtualScroll`) — it is not a way back to the page. Browsers turn
|
|
98
|
+
* shift+wheel into *horizontal* scrolling, so what a view declines here scrolls
|
|
99
|
+
* the page sideways or not at all. The vertical way out is spatial rather than
|
|
100
|
+
* modal: JBrowse binds this below the view's sticky header, leaving that header
|
|
101
|
+
* as a gutter the wheel still scrolls (LinearGenomeViewContainer's tracksRef).
|
|
102
|
+
*
|
|
103
|
+
* The listener is non-passive so it can preventDefault to suppress native scroll
|
|
104
|
+
* during a zoom. To pay for that it only accumulates deltas: every model write
|
|
105
|
+
* happens in one requestAnimationFrame, so a burst of events (fast trackpad,
|
|
106
|
+
* inertial scroll) collapses to a single update per frame instead of thrashing
|
|
107
|
+
* the views once per event.
|
|
108
|
+
*
|
|
109
|
+
* Returns its disposer.
|
|
110
|
+
*/
|
|
111
|
+
export function createWheelZoomController({ element, resolveTarget, swallowUnhandled = false, releaseOnPointerLeave = false, onEvent, }) {
|
|
112
|
+
const frame = createFrameCoalescer();
|
|
113
|
+
const s = {
|
|
114
|
+
scrollDelta: 0,
|
|
115
|
+
zoomAccum: 0,
|
|
116
|
+
target: undefined,
|
|
117
|
+
lastClientX: 0,
|
|
118
|
+
originLeft: undefined,
|
|
119
|
+
lastRafTime: null,
|
|
120
|
+
lastZoomTime: null,
|
|
121
|
+
lastEventTime: null,
|
|
122
|
+
warnedNonCancelable: false,
|
|
123
|
+
};
|
|
124
|
+
// see releaseOnPointerLeave: drop any in-flight accumulation and stop consuming
|
|
125
|
+
// latched wheel events, so a continued gesture pans/zooms nothing and chains to
|
|
126
|
+
// the page instead of staying stuck to this element
|
|
127
|
+
const presence = releaseOnPointerLeave
|
|
128
|
+
? trackPointerPresence(element, () => {
|
|
129
|
+
s.scrollDelta = 0;
|
|
130
|
+
s.zoomAccum = 0;
|
|
131
|
+
s.originLeft = undefined;
|
|
132
|
+
})
|
|
133
|
+
: undefined;
|
|
134
|
+
function flush(now) {
|
|
135
|
+
const elapsed = wheelFrameElapsedMs(now, s.lastRafTime);
|
|
136
|
+
s.lastRafTime = now;
|
|
137
|
+
const { target } = s;
|
|
138
|
+
if (target) {
|
|
139
|
+
const origin = target.originElement();
|
|
140
|
+
if (s.zoomAccum !== 0 && origin && s.originLeft === undefined) {
|
|
141
|
+
s.originLeft = origin.getBoundingClientRect().left;
|
|
142
|
+
}
|
|
143
|
+
const originLeft = s.originLeft;
|
|
144
|
+
transaction(() => {
|
|
145
|
+
if (s.zoomAccum !== 0 && originLeft !== undefined) {
|
|
146
|
+
const offset = s.lastClientX - originLeft;
|
|
147
|
+
for (const view of target.views) {
|
|
148
|
+
view.zoomTo(applyZoomAccum(view.bpPerPx, s.zoomAccum, elapsed), offset);
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
if (s.scrollDelta !== 0) {
|
|
152
|
+
for (const view of target.views) {
|
|
153
|
+
view.horizontalScroll(s.scrollDelta);
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
s.zoomAccum = 0;
|
|
159
|
+
s.scrollDelta = 0;
|
|
160
|
+
}
|
|
161
|
+
function onWheel(event) {
|
|
162
|
+
onEvent?.(event);
|
|
163
|
+
const gated = presence !== undefined && !presence.isOver;
|
|
164
|
+
const target = gated ? undefined : resolveTarget(event);
|
|
165
|
+
if (target && !(event.shiftKey && target.scrollZoom)) {
|
|
166
|
+
// a gap longer than the frame-elapsed clamp means this event starts a new
|
|
167
|
+
// gesture, so the previous frame time is meaningless — including when it
|
|
168
|
+
// predates a spell in a backgrounded tab, where a huge elapsed would
|
|
169
|
+
// otherwise lift the zoom rate limit on the first frame back
|
|
170
|
+
if (!isActivelyZooming(event.timeStamp, s.lastEventTime)) {
|
|
171
|
+
s.lastRafTime = null;
|
|
172
|
+
s.originLeft = undefined;
|
|
173
|
+
}
|
|
174
|
+
s.lastEventTime = event.timeStamp;
|
|
175
|
+
s.target = target;
|
|
176
|
+
const deltaY = normalizeWheelDelta(event.deltaY, event.deltaMode);
|
|
177
|
+
const deltaX = normalizeWheelDelta(event.deltaX, event.deltaMode);
|
|
178
|
+
const isCtrlZoom = event.ctrlKey || event.metaKey;
|
|
179
|
+
const isZoom = isCtrlZoom ||
|
|
180
|
+
(target.scrollZoom && Math.abs(deltaY) >= Math.abs(deltaX));
|
|
181
|
+
if (isZoom) {
|
|
182
|
+
// warn once per latched run, not once per event — a non-cancelable
|
|
183
|
+
// sequence fires ~100 events/sec and console.warn is not free
|
|
184
|
+
if (event.cancelable) {
|
|
185
|
+
s.warnedNonCancelable = false;
|
|
186
|
+
}
|
|
187
|
+
else if (!s.warnedNonCancelable) {
|
|
188
|
+
s.warnedNonCancelable = true;
|
|
189
|
+
console.warn('[wheelZoom] wheel event not cancelable — scroll sequence already in progress');
|
|
190
|
+
}
|
|
191
|
+
event.preventDefault();
|
|
192
|
+
s.zoomAccum += wheelZoomAccum(deltaY, isCtrlZoom);
|
|
193
|
+
s.lastClientX = event.clientX;
|
|
194
|
+
s.lastZoomTime = event.timeStamp;
|
|
195
|
+
// drop any side-scroll accumulated earlier this frame — we're zooming,
|
|
196
|
+
// and a deltaX that arrived just before the zoom is part of the same
|
|
197
|
+
// noisy gesture
|
|
198
|
+
s.scrollDelta = 0;
|
|
199
|
+
}
|
|
200
|
+
else if (isActivelyZooming(event.timeStamp, s.lastZoomTime)) {
|
|
201
|
+
// ignore stray horizontal deltas that arrive mid-zoom — trackpads emit
|
|
202
|
+
// an unintentional side-scroll during a pinch/scroll-zoom gesture that
|
|
203
|
+
// would otherwise pan the view away from where the user is zooming.
|
|
204
|
+
// preventDefault anyway so the page itself doesn't scroll instead.
|
|
205
|
+
event.preventDefault();
|
|
206
|
+
}
|
|
207
|
+
else {
|
|
208
|
+
// With scrollZoom on, swallow the gesture even though it fell outside
|
|
209
|
+
// the zoom threshold: without this, a diagonal trackpad gesture whose
|
|
210
|
+
// |deltaX| slightly exceeds |deltaY| slips through and scrolls the page
|
|
211
|
+
// (shift+wheel above is the deliberate exception). With scrollZoom
|
|
212
|
+
// off, only swallow what we are about to pan with, so a plain vertical
|
|
213
|
+
// wheel isn't silently eaten.
|
|
214
|
+
if (swallowUnhandled ||
|
|
215
|
+
target.scrollZoom ||
|
|
216
|
+
Math.abs(deltaX) > Math.abs(2 * deltaY)) {
|
|
217
|
+
event.preventDefault();
|
|
218
|
+
}
|
|
219
|
+
s.scrollDelta = accumulateScroll(s.scrollDelta, deltaX);
|
|
220
|
+
}
|
|
221
|
+
frame.schedule(flush);
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
element.addEventListener('wheel', onWheel, { passive: false });
|
|
225
|
+
return () => {
|
|
226
|
+
element.removeEventListener('wheel', onWheel);
|
|
227
|
+
presence?.dispose();
|
|
228
|
+
// so a flush can't fire against a detached view
|
|
229
|
+
frame.cancel();
|
|
230
|
+
};
|
|
231
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Wait until a view has either initialized — launch blob consumed and all — or
|
|
3
|
+
* failed, and report which.
|
|
4
|
+
*
|
|
5
|
+
* `initialized` folds in a view's assemblies, so an assembly that fails to load
|
|
6
|
+
* leaves it false **forever**. A bare `when(() => view.initialized)` therefore
|
|
7
|
+
* does not fail — it never settles at all, and whatever the caller meant to do
|
|
8
|
+
* next simply never happens, with no error, no toast and a pending promise left
|
|
9
|
+
* behind. That has surfaced twice now as two different-looking bugs: an SVG
|
|
10
|
+
* export hung behind its dialog's spinner, and a launched breakpoint split view
|
|
11
|
+
* that opened but was never navigated or zoomed.
|
|
12
|
+
*
|
|
13
|
+
* `pendingLaunch` is the other half, and it matters because `initialized` can
|
|
14
|
+
* go true MID-launch: LGV's flips the moment displayedRegions land, while the
|
|
15
|
+
* same apply pass still has tracks to attach — so a caller acting there reads a
|
|
16
|
+
* positioned view with its tracks missing (an SVG export saves it that way).
|
|
17
|
+
* A launch failure cannot hang this: the state machine either clears the blob
|
|
18
|
+
* (materialized, reported as a snackbar) or sets the view's `error`
|
|
19
|
+
* (installInitAutorun's failure policy). A view with no launch machinery has no
|
|
20
|
+
* `pendingLaunch` and the term is vacuously satisfied.
|
|
21
|
+
*
|
|
22
|
+
* Every view exposes a resolved `error` beside `initialized`, so waiting on the
|
|
23
|
+
* pair turns the hang into something reportable. What to report is the caller's,
|
|
24
|
+
* because the vocabularies genuinely differ — an export says "cannot export"
|
|
25
|
+
* and attaches its failures for `awaitSvgRenders` to collect, while a launcher
|
|
26
|
+
* says the launch failed — which is why this returns the answer instead of
|
|
27
|
+
* throwing one wording at both.
|
|
28
|
+
*
|
|
29
|
+
* No time bound, deliberately: `(initialized && launch consumed) || error` is a
|
|
30
|
+
* terminal set, so a slow-but-healthy remote assembly is waited out rather than
|
|
31
|
+
* guessed at.
|
|
32
|
+
*
|
|
33
|
+
* @returns true if the view initialized (and consumed any launch), false if it
|
|
34
|
+
* settled on an error
|
|
35
|
+
*/
|
|
36
|
+
export declare function whenViewSettled(view: {
|
|
37
|
+
initialized: boolean;
|
|
38
|
+
error: unknown;
|
|
39
|
+
pendingLaunch?: unknown;
|
|
40
|
+
}): Promise<boolean>;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { when } from 'mobx';
|
|
2
|
+
/**
|
|
3
|
+
* Wait until a view has either initialized — launch blob consumed and all — or
|
|
4
|
+
* failed, and report which.
|
|
5
|
+
*
|
|
6
|
+
* `initialized` folds in a view's assemblies, so an assembly that fails to load
|
|
7
|
+
* leaves it false **forever**. A bare `when(() => view.initialized)` therefore
|
|
8
|
+
* does not fail — it never settles at all, and whatever the caller meant to do
|
|
9
|
+
* next simply never happens, with no error, no toast and a pending promise left
|
|
10
|
+
* behind. That has surfaced twice now as two different-looking bugs: an SVG
|
|
11
|
+
* export hung behind its dialog's spinner, and a launched breakpoint split view
|
|
12
|
+
* that opened but was never navigated or zoomed.
|
|
13
|
+
*
|
|
14
|
+
* `pendingLaunch` is the other half, and it matters because `initialized` can
|
|
15
|
+
* go true MID-launch: LGV's flips the moment displayedRegions land, while the
|
|
16
|
+
* same apply pass still has tracks to attach — so a caller acting there reads a
|
|
17
|
+
* positioned view with its tracks missing (an SVG export saves it that way).
|
|
18
|
+
* A launch failure cannot hang this: the state machine either clears the blob
|
|
19
|
+
* (materialized, reported as a snackbar) or sets the view's `error`
|
|
20
|
+
* (installInitAutorun's failure policy). A view with no launch machinery has no
|
|
21
|
+
* `pendingLaunch` and the term is vacuously satisfied.
|
|
22
|
+
*
|
|
23
|
+
* Every view exposes a resolved `error` beside `initialized`, so waiting on the
|
|
24
|
+
* pair turns the hang into something reportable. What to report is the caller's,
|
|
25
|
+
* because the vocabularies genuinely differ — an export says "cannot export"
|
|
26
|
+
* and attaches its failures for `awaitSvgRenders` to collect, while a launcher
|
|
27
|
+
* says the launch failed — which is why this returns the answer instead of
|
|
28
|
+
* throwing one wording at both.
|
|
29
|
+
*
|
|
30
|
+
* No time bound, deliberately: `(initialized && launch consumed) || error` is a
|
|
31
|
+
* terminal set, so a slow-but-healthy remote assembly is waited out rather than
|
|
32
|
+
* guessed at.
|
|
33
|
+
*
|
|
34
|
+
* @returns true if the view initialized (and consumed any launch), false if it
|
|
35
|
+
* settled on an error
|
|
36
|
+
*/
|
|
37
|
+
export async function whenViewSettled(view) {
|
|
38
|
+
const ready = () => view.initialized && view.pendingLaunch === undefined;
|
|
39
|
+
await when(() => ready() || !!view.error);
|
|
40
|
+
return ready();
|
|
41
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { Feature } from './simpleFeature.ts';
|
|
2
|
+
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
3
|
+
/**
|
|
4
|
+
* Run `onFeat` on the feature a details lookup answers with, and say something
|
|
5
|
+
* when it answers with nothing.
|
|
6
|
+
*
|
|
7
|
+
* Every display paints from slim render arrays and re-fetches the whole feature
|
|
8
|
+
* on demand, so "click a feature, open its details" is always a round trip that
|
|
9
|
+
* can come back empty. Six call sites across three plugins had written that
|
|
10
|
+
* round trip out, and the shape they shared was
|
|
11
|
+
* `if (feature && isAlive(self)) { … }` — a guard that reads as defensive and is
|
|
12
|
+
* really the whole of what a click does when the lookup fails. Five of the six
|
|
13
|
+
* did nothing at all, which is the worst answer to a click: the user cannot tell
|
|
14
|
+
* a missing feature from a dead menu item.
|
|
15
|
+
*
|
|
16
|
+
* **The three outcomes are separated here because only here can they be told
|
|
17
|
+
* apart**, and conflating any two of them is a bug this replaces:
|
|
18
|
+
*
|
|
19
|
+
* - **threw** — reported with its own reason, through `notifyError`. A `fetch`
|
|
20
|
+
* passed in must therefore let its errors out; one that catches and answers
|
|
21
|
+
* `undefined` turns its failure into the miss below, and the user is told off
|
|
22
|
+
* twice for one click, the second time less usefully.
|
|
23
|
+
* - **answered nothing** — `onMiss`, which defaults to the shared sentence.
|
|
24
|
+
* - **the node died mid-flight** — nothing but the console. A track can be
|
|
25
|
+
* unticked while the fetch is in flight, and every branch below reaches
|
|
26
|
+
* `getSession(self)`, which throws on a detached node — inside a floating
|
|
27
|
+
* promise, where nothing catches it.
|
|
28
|
+
*
|
|
29
|
+
* `onMiss` is a parameter rather than fixed because one caller legitimately
|
|
30
|
+
* stays quiet: the pileup pre-warms the read behind a context menu before the
|
|
31
|
+
* user has asked for anything, so a miss there just leaves the menu without its
|
|
32
|
+
* feature items. Passing `() => {}` is how a call site says it is speculative.
|
|
33
|
+
*/
|
|
34
|
+
export declare function withFeatureDetails(self: IStateTreeNode, fetch: () => Promise<Feature | undefined>, onFeat: (feat: Feature) => void, onMiss?: () => void): Promise<void>;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { isAlive } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { notifyFeatureDetailsMiss } from './openFeatureWidget.js';
|
|
3
|
+
import { getNotificationSink } from './sessionServices.js';
|
|
4
|
+
/**
|
|
5
|
+
* Run `onFeat` on the feature a details lookup answers with, and say something
|
|
6
|
+
* when it answers with nothing.
|
|
7
|
+
*
|
|
8
|
+
* Every display paints from slim render arrays and re-fetches the whole feature
|
|
9
|
+
* on demand, so "click a feature, open its details" is always a round trip that
|
|
10
|
+
* can come back empty. Six call sites across three plugins had written that
|
|
11
|
+
* round trip out, and the shape they shared was
|
|
12
|
+
* `if (feature && isAlive(self)) { … }` — a guard that reads as defensive and is
|
|
13
|
+
* really the whole of what a click does when the lookup fails. Five of the six
|
|
14
|
+
* did nothing at all, which is the worst answer to a click: the user cannot tell
|
|
15
|
+
* a missing feature from a dead menu item.
|
|
16
|
+
*
|
|
17
|
+
* **The three outcomes are separated here because only here can they be told
|
|
18
|
+
* apart**, and conflating any two of them is a bug this replaces:
|
|
19
|
+
*
|
|
20
|
+
* - **threw** — reported with its own reason, through `notifyError`. A `fetch`
|
|
21
|
+
* passed in must therefore let its errors out; one that catches and answers
|
|
22
|
+
* `undefined` turns its failure into the miss below, and the user is told off
|
|
23
|
+
* twice for one click, the second time less usefully.
|
|
24
|
+
* - **answered nothing** — `onMiss`, which defaults to the shared sentence.
|
|
25
|
+
* - **the node died mid-flight** — nothing but the console. A track can be
|
|
26
|
+
* unticked while the fetch is in flight, and every branch below reaches
|
|
27
|
+
* `getSession(self)`, which throws on a detached node — inside a floating
|
|
28
|
+
* promise, where nothing catches it.
|
|
29
|
+
*
|
|
30
|
+
* `onMiss` is a parameter rather than fixed because one caller legitimately
|
|
31
|
+
* stays quiet: the pileup pre-warms the read behind a context menu before the
|
|
32
|
+
* user has asked for anything, so a miss there just leaves the menu without its
|
|
33
|
+
* feature items. Passing `() => {}` is how a call site says it is speculative.
|
|
34
|
+
*/
|
|
35
|
+
export async function withFeatureDetails(self, fetch, onFeat, onMiss = () => {
|
|
36
|
+
notifyFeatureDetailsMiss(self);
|
|
37
|
+
}) {
|
|
38
|
+
try {
|
|
39
|
+
const feature = await fetch();
|
|
40
|
+
if (!isAlive(self)) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
if (feature) {
|
|
44
|
+
onFeat(feature);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
onMiss();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
catch (e) {
|
|
51
|
+
// Logged whatever happened, and only toasted while the display is still
|
|
52
|
+
// there: `getSession` throws on a detached node, and a message naming a
|
|
53
|
+
// track the user has already closed is noise they cannot act on.
|
|
54
|
+
console.error(e);
|
|
55
|
+
if (isAlive(self)) {
|
|
56
|
+
getNotificationSink(self).notifyError(`${e}`, e);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
export { legacyInitMessage, unknownKeysMessage } from './unknownSnapshotKeys.ts';
|
|
2
|
+
import type { IAnyModelType, IModelType, SnapshotIn } from '@jbrowse/mobx-state-tree';
|
|
3
|
+
/**
|
|
4
|
+
* How a launch key's value is told apart from the state property of the same
|
|
5
|
+
* name. A key whose name collides with nothing is `launch`; the rest name the
|
|
6
|
+
* discriminator that splits one authored array into the recipe entries the
|
|
7
|
+
* launcher resolves and the built snapshots MST restores.
|
|
8
|
+
*
|
|
9
|
+
* `replay` is the one that is not remapped at all: the value lands on its
|
|
10
|
+
* property, and a copy rides in the blob so the launcher can run the ordered
|
|
11
|
+
* imperative step the property write alone does not produce.
|
|
12
|
+
*/
|
|
13
|
+
export type LaunchKeyKind = 'launch' | 'trackEntries' | 'rows' | 'highlightEntries' | 'replay';
|
|
14
|
+
export interface LaunchKeySpec {
|
|
15
|
+
kind: LaunchKeyKind;
|
|
16
|
+
}
|
|
17
|
+
export interface LaunchKeyRegistration<Commands, PassThrough extends string = never> {
|
|
18
|
+
keys: Record<string, LaunchKeySpec>;
|
|
19
|
+
passThrough: readonly PassThrough[];
|
|
20
|
+
/** never assigned; it carries `Commands` to `withLaunchInput`'s return type */
|
|
21
|
+
commands?: Commands;
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* The launch keys a view captured, plus what it has to report.
|
|
25
|
+
*
|
|
26
|
+
* `Commands` is not made partial: hand-authored JSON is what fills this, so a
|
|
27
|
+
* key the interface marks required is not a guarantee here either way, and the
|
|
28
|
+
* launcher already guards the ones it cannot proceed without.
|
|
29
|
+
*/
|
|
30
|
+
export type LaunchInput<Commands> = Commands & {
|
|
31
|
+
unknown?: Record<string, unknown>;
|
|
32
|
+
malformed?: Record<string, unknown>;
|
|
33
|
+
legacyInit?: boolean;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* The blob when it still holds something to apply, else undefined. A view's
|
|
37
|
+
* gates ask this rather than the raw property: a snapshot whose only launch
|
|
38
|
+
* content was a typo has nothing to launch, and a view that thinks otherwise
|
|
39
|
+
* waits on an assembly nobody named and never leaves the spinner.
|
|
40
|
+
*
|
|
41
|
+
* Returns the blob itself, never a copy — the launch autorun clears by
|
|
42
|
+
* identity, and a fresh object per read strands the init it just applied.
|
|
43
|
+
*/
|
|
44
|
+
export declare function pendingLaunch<C>(launch: LaunchInput<C> | undefined): LaunchInput<C> | undefined;
|
|
45
|
+
/**
|
|
46
|
+
* A view's snapshot type, widened to the authored shape: every launch key is
|
|
47
|
+
* accepted beside the declared properties, and a key that is both takes either
|
|
48
|
+
* meaning. Excess-property checking then makes a misspelled key an error at
|
|
49
|
+
* every literal site — a `defaultSession` view, an `addView` call, a
|
|
50
|
+
* `createViewState` spec.
|
|
51
|
+
*/
|
|
52
|
+
export type LaunchSnapshotIn<M extends IAnyModelType, Commands, PassThrough extends string = never> = Omit<SnapshotIn<M>, keyof Commands> & {
|
|
53
|
+
[K in keyof Commands]?: K extends keyof SnapshotIn<M> ? Commands[K] | SnapshotIn<M>[K] : Commands[K];
|
|
54
|
+
} & {
|
|
55
|
+
[K in PassThrough]?: unknown;
|
|
56
|
+
} & {
|
|
57
|
+
/**
|
|
58
|
+
* @deprecated v4's nesting. Write every setting directly on the view object;
|
|
59
|
+
* this is unwrapped on the way in and warns.
|
|
60
|
+
*/
|
|
61
|
+
init?: Commands;
|
|
62
|
+
};
|
|
63
|
+
type ReservedKey = 'id' | 'type' | 'launch';
|
|
64
|
+
/**
|
|
65
|
+
* What a view can be launched with, derived: the keys its launcher interprets
|
|
66
|
+
* (`Commands`) plus every declared property of its state model, optional, in
|
|
67
|
+
* the property's own snapshot type. Nothing is restated, so a property is
|
|
68
|
+
* authorable — and TYPED — from the line that declares it.
|
|
69
|
+
*
|
|
70
|
+
* ```ts
|
|
71
|
+
* export type LinearSyntenyViewInit = ViewInit<
|
|
72
|
+
* LinearSyntenyViewStateModel,
|
|
73
|
+
* LinearSyntenyViewCommands
|
|
74
|
+
* >
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* The twin of `LaunchSnapshotIn` above, from the other end: that one widens a
|
|
78
|
+
* snapshot type for a literal MST site, this one is what a caller BUILDING a
|
|
79
|
+
* spec annotates, so its commands stay required and its properties optional.
|
|
80
|
+
*/
|
|
81
|
+
export type ViewInit<M extends IAnyModelType, Commands> = Commands & Partial<Omit<SnapshotIn<M>, keyof Commands | ReservedKey>>;
|
|
82
|
+
export type LaunchInputModel<M extends IAnyModelType, Commands, PassThrough extends string = never> = M extends IModelType<infer P, infer O, any, infer S> ? IModelType<P, O, LaunchSnapshotIn<M, Commands, PassThrough>, S> : never;
|
|
83
|
+
/**
|
|
84
|
+
* Declare one view's launch keys. The argument is
|
|
85
|
+
* `Record<keyof Commands, LaunchKeySpec>`, so a command the view interprets and
|
|
86
|
+
* nobody registered is a compile error rather than a key that partitions as a
|
|
87
|
+
* typo and warns.
|
|
88
|
+
*
|
|
89
|
+
* `passThrough` names keys that are neither a launch key nor a declared
|
|
90
|
+
* property and still belong on the snapshot — a legacy spelling the view's own
|
|
91
|
+
* `preProcessSnapshot` converts.
|
|
92
|
+
*/
|
|
93
|
+
export declare function defineLaunchKeys<Commands>(): <const P extends readonly string[] = readonly never[]>(keys: Record<keyof Commands, LaunchKeySpec>, { passThrough }?: {
|
|
94
|
+
passThrough?: P;
|
|
95
|
+
}) => LaunchKeyRegistration<Commands, P[number]>;
|
|
96
|
+
/**
|
|
97
|
+
* Accept a view's settings written directly on the view object, and move the
|
|
98
|
+
* ones a launcher has to resolve into the internal `launch` property.
|
|
99
|
+
*
|
|
100
|
+
* The partition is a `preProcessSnapshot` and is PURE. A session's view type is
|
|
101
|
+
* a `types.union`, so MST runs every member's preprocessor against every
|
|
102
|
+
* candidate snapshot while deciding which one matches, and runs it about twice
|
|
103
|
+
* more per instantiation; a warning from in here fires against snapshots that
|
|
104
|
+
* are about to be rejected. `afterAttach` — reached only by a snapshot that won
|
|
105
|
+
* — reports what the partition captured.
|
|
106
|
+
*
|
|
107
|
+
* ORDER: MST runs preprocessors in the reverse of the order they were added, so
|
|
108
|
+
* this belongs on the chain BEFORE a view's own legacy-key preprocessor, where
|
|
109
|
+
* it partitions the snapshot MST finally consumes rather than a key that remap
|
|
110
|
+
* is about to convert.
|
|
111
|
+
*
|
|
112
|
+
* The widening cast is the LAST link that may change the creation type: it
|
|
113
|
+
* replaces `CustomC`, so a `.props()` added after it is invisible to
|
|
114
|
+
* `SnapshotIn`. Further `preProcessSnapshot`/`postProcessSnapshot` links are
|
|
115
|
+
* fine — both carry `CustomC` through.
|
|
116
|
+
*
|
|
117
|
+
* Not `types.snapshotProcessor`, which carries the same widened input and stops
|
|
118
|
+
* being a `ModelType`. `PluginManager.pluggableMstType` filters union members on
|
|
119
|
+
* `isModelType`, so a wrapped view is dropped from the session's view union
|
|
120
|
+
* without a word, and `ViewType.stateModel` and every `.properties`
|
|
121
|
+
* introspection site break with it.
|
|
122
|
+
*/
|
|
123
|
+
export declare function withLaunchInput<M extends IAnyModelType, Commands, PassThrough extends string>(model: M, registration: LaunchKeyRegistration<Commands, PassThrough>): LaunchInputModel<M, Commands, PassThrough>;
|