@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,94 @@
|
|
|
1
|
+
import type { AssemblyNameResolver } from './tracks.ts';
|
|
2
|
+
import type { AbstractSessionModel, SessionWithPublishTrackConf, TrackContainer } from './types/index.ts';
|
|
3
|
+
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
4
|
+
/**
|
|
5
|
+
* Whether the target track list currently displays any of the track's
|
|
6
|
+
* assemblies, i.e. the track can be shown there after adding it.
|
|
7
|
+
*
|
|
8
|
+
* Both sides resolve through the aliases, because the two names meeting here
|
|
9
|
+
* come from different places: the container holds whatever the session opened
|
|
10
|
+
* the view on, and the config holds whatever its author wrote. `===` read a
|
|
11
|
+
* track configured against `hg38` as undisplayable in a view on `GRCh38`, so
|
|
12
|
+
* the add landed and nothing appeared, under a snackbar naming the assembly the
|
|
13
|
+
* user was looking at as one this view does not have open.
|
|
14
|
+
*/
|
|
15
|
+
export declare function containerDisplaysAssembly(container: {
|
|
16
|
+
assemblyNames?: readonly string[];
|
|
17
|
+
} | undefined, assemblyNames: readonly (string | undefined)[] | undefined, assemblyManager: AssemblyNameResolver): boolean;
|
|
18
|
+
/** the slice of the add-track widget every workflow's submit path writes to */
|
|
19
|
+
export interface AddTrackWidgetSelf extends IStateTreeNode {
|
|
20
|
+
/**
|
|
21
|
+
* Where a submitted track opens: the view, or one track list within it when
|
|
22
|
+
* the widget was opened from a synteny level's track selector. Not the same
|
|
23
|
+
* as `view` — a workflow reaching past this for `view` adds the track to the
|
|
24
|
+
* wrong list.
|
|
25
|
+
*/
|
|
26
|
+
trackContainer: TrackContainer | undefined;
|
|
27
|
+
clearData: () => void;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* The slice of the add-track widget a whole workflow gets: the submit path
|
|
31
|
+
* above plus the assembly it writes into. Structural rather than the widget's
|
|
32
|
+
* own model type, so a plugin contributing a workflow doesn't take a package
|
|
33
|
+
* dependency on the plugin that owns the widget.
|
|
34
|
+
*/
|
|
35
|
+
export interface AddTrackWorkflowModel extends AddTrackWidgetSelf {
|
|
36
|
+
assembly: string | undefined;
|
|
37
|
+
setAssembly: (arg: string) => void;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Reset the form and dismiss the widget after a successful add.
|
|
41
|
+
*
|
|
42
|
+
* Only ever on an add that landed something: finishing throws away what the
|
|
43
|
+
* user assembled, so doing it when every config was rejected buries the
|
|
44
|
+
* snackbars explaining why behind an empty form with nothing to retry from.
|
|
45
|
+
*/
|
|
46
|
+
export declare function finishAddTrack(model: AddTrackWidgetSelf, session: AbstractSessionModel): void;
|
|
47
|
+
/**
|
|
48
|
+
* Add one track config from an add-track workflow, reveal it, and dismiss the
|
|
49
|
+
* widget — the tail every workflow shares, so all of them decide "show vs.
|
|
50
|
+
* warn vs. dismiss" the same way.
|
|
51
|
+
*
|
|
52
|
+
* Three things a workflow doing this by hand has got wrong:
|
|
53
|
+
*
|
|
54
|
+
* - It shows the track in `model.view`, which is the wrong list when the widget
|
|
55
|
+
* was opened from a synteny level's track selector. `trackContainer` is the
|
|
56
|
+
* target.
|
|
57
|
+
* - It shows a track whose assembly the container doesn't display, which is
|
|
58
|
+
* silently nothing on screen. Say so instead.
|
|
59
|
+
* - It dismisses the widget even when `publishTrackConf` rejected the config,
|
|
60
|
+
* wiping the form behind the error snackbar.
|
|
61
|
+
*
|
|
62
|
+
* **A track on an assembly the view synthesized takes neither destination.** The
|
|
63
|
+
* widget reads its assembly off the containing view and offers no choice of one
|
|
64
|
+
* outside it (`setAssembly` lists `session.assemblyNames`, which excludes the
|
|
65
|
+
* temporary ones), so a user opening a file in a read-vs-ref panel arrives here
|
|
66
|
+
* naming an assembly that goes back when that view closes — and a session list
|
|
67
|
+
* would keep the config, once per file, in the snapshot they save and share.
|
|
68
|
+
* That is ADR-084's leak reached through the widget rather than through a
|
|
69
|
+
* launcher, so it takes ADR-084's answer: the config rides on the track as
|
|
70
|
+
* `showTrack`'s `inlineConf`, works for the life of the view, and goes out with
|
|
71
|
+
* it. The container is the one this assembly came from, so it displays it.
|
|
72
|
+
*
|
|
73
|
+
* Returns the added config, or undefined when `publishTrackConf` rejected it — it
|
|
74
|
+
* has already surfaced its own error, and a second, vaguer snackbar on top of
|
|
75
|
+
* that helps nobody.
|
|
76
|
+
*/
|
|
77
|
+
export declare function addTrackFromWidget({ model, session, conf, }: {
|
|
78
|
+
model: AddTrackWidgetSelf;
|
|
79
|
+
session: AbstractSessionModel;
|
|
80
|
+
conf: Parameters<SessionWithPublishTrackConf['publishTrackConf']>[0] & {
|
|
81
|
+
trackId: string;
|
|
82
|
+
name?: string;
|
|
83
|
+
assemblyNames?: (string | undefined)[];
|
|
84
|
+
};
|
|
85
|
+
}): (import("@jbrowse/mobx-state-tree").$EmptyObjectBrand & Partial<{
|
|
86
|
+
[x: string]: any;
|
|
87
|
+
}> & {
|
|
88
|
+
trackId: string;
|
|
89
|
+
name?: string;
|
|
90
|
+
assemblyNames?: (string | undefined)[];
|
|
91
|
+
}) | (import("@jbrowse/mobx-state-tree").ModelInstanceTypeProps<Record<string, any>> & {
|
|
92
|
+
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
93
|
+
setSlot(slotName: string, value: unknown): void;
|
|
94
|
+
} & IStateTreeNode<import("../configuration/types.ts").AnyConfigurationSchemaType>) | undefined;
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { namesTemporaryAssembly } from './temporaryAssembly.js';
|
|
2
|
+
import { isSameAssemblyName } from './tracks.js';
|
|
3
|
+
import { isSessionModelWithWidgets, isSessionWithPublishTrackConf, } from './types/index.js';
|
|
4
|
+
/**
|
|
5
|
+
* Whether the target track list currently displays any of the track's
|
|
6
|
+
* assemblies, i.e. the track can be shown there after adding it.
|
|
7
|
+
*
|
|
8
|
+
* Both sides resolve through the aliases, because the two names meeting here
|
|
9
|
+
* come from different places: the container holds whatever the session opened
|
|
10
|
+
* the view on, and the config holds whatever its author wrote. `===` read a
|
|
11
|
+
* track configured against `hg38` as undisplayable in a view on `GRCh38`, so
|
|
12
|
+
* the add landed and nothing appeared, under a snackbar naming the assembly the
|
|
13
|
+
* user was looking at as one this view does not have open.
|
|
14
|
+
*/
|
|
15
|
+
export function containerDisplaysAssembly(container, assemblyNames, assemblyManager) {
|
|
16
|
+
return !!container?.assemblyNames?.some(a => assemblyNames?.some(b => isSameAssemblyName(a, b, assemblyManager)));
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Reset the form and dismiss the widget after a successful add.
|
|
20
|
+
*
|
|
21
|
+
* Only ever on an add that landed something: finishing throws away what the
|
|
22
|
+
* user assembled, so doing it when every config was rejected buries the
|
|
23
|
+
* snackbars explaining why behind an empty form with nothing to retry from.
|
|
24
|
+
*/
|
|
25
|
+
export function finishAddTrack(model, session) {
|
|
26
|
+
model.clearData();
|
|
27
|
+
if (isSessionModelWithWidgets(session)) {
|
|
28
|
+
session.hideWidget(model);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Add one track config from an add-track workflow, reveal it, and dismiss the
|
|
33
|
+
* widget — the tail every workflow shares, so all of them decide "show vs.
|
|
34
|
+
* warn vs. dismiss" the same way.
|
|
35
|
+
*
|
|
36
|
+
* Three things a workflow doing this by hand has got wrong:
|
|
37
|
+
*
|
|
38
|
+
* - It shows the track in `model.view`, which is the wrong list when the widget
|
|
39
|
+
* was opened from a synteny level's track selector. `trackContainer` is the
|
|
40
|
+
* target.
|
|
41
|
+
* - It shows a track whose assembly the container doesn't display, which is
|
|
42
|
+
* silently nothing on screen. Say so instead.
|
|
43
|
+
* - It dismisses the widget even when `publishTrackConf` rejected the config,
|
|
44
|
+
* wiping the form behind the error snackbar.
|
|
45
|
+
*
|
|
46
|
+
* **A track on an assembly the view synthesized takes neither destination.** The
|
|
47
|
+
* widget reads its assembly off the containing view and offers no choice of one
|
|
48
|
+
* outside it (`setAssembly` lists `session.assemblyNames`, which excludes the
|
|
49
|
+
* temporary ones), so a user opening a file in a read-vs-ref panel arrives here
|
|
50
|
+
* naming an assembly that goes back when that view closes — and a session list
|
|
51
|
+
* would keep the config, once per file, in the snapshot they save and share.
|
|
52
|
+
* That is ADR-084's leak reached through the widget rather than through a
|
|
53
|
+
* launcher, so it takes ADR-084's answer: the config rides on the track as
|
|
54
|
+
* `showTrack`'s `inlineConf`, works for the life of the view, and goes out with
|
|
55
|
+
* it. The container is the one this assembly came from, so it displays it.
|
|
56
|
+
*
|
|
57
|
+
* Returns the added config, or undefined when `publishTrackConf` rejected it — it
|
|
58
|
+
* has already surfaced its own error, and a second, vaguer snackbar on top of
|
|
59
|
+
* that helps nobody.
|
|
60
|
+
*/
|
|
61
|
+
export function addTrackFromWidget({ model, session, conf, }) {
|
|
62
|
+
if (!isSessionWithPublishTrackConf(session)) {
|
|
63
|
+
throw new Error("Can't add tracks to this session");
|
|
64
|
+
}
|
|
65
|
+
const { trackContainer } = model;
|
|
66
|
+
if (namesTemporaryAssembly(session, conf)) {
|
|
67
|
+
if (!trackContainer) {
|
|
68
|
+
session.notify(`Could not add "${conf.name ?? conf.trackId}": the view it was being added to has closed, and it uses an assembly that only that view had.`, 'warning');
|
|
69
|
+
return undefined;
|
|
70
|
+
}
|
|
71
|
+
void trackContainer.launchTrack(conf.trackId, {}, {}, conf);
|
|
72
|
+
finishAddTrack(model, session);
|
|
73
|
+
return conf;
|
|
74
|
+
}
|
|
75
|
+
const added = session.publishTrackConf(conf);
|
|
76
|
+
if (!added) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
if (containerDisplaysAssembly(trackContainer, conf.assemblyNames, session.assemblyManager)) {
|
|
80
|
+
void trackContainer?.launchTrack(conf.trackId);
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
const assemblies = conf.assemblyNames?.filter(a => !!a) ?? [];
|
|
84
|
+
session.notify(`Added track "${conf.name ?? conf.trackId}" to the session, but it was not displayed because it uses ${assemblies.length
|
|
85
|
+
? `assembly "${assemblies.join('", "')}"`
|
|
86
|
+
: 'an assembly'}, which is not open in this view. Open a view for that assembly and use its track selector to display it.`, 'warning');
|
|
87
|
+
}
|
|
88
|
+
finishAddTrack(model, session);
|
|
89
|
+
return added;
|
|
90
|
+
}
|
package/esm/util/analytics.d.ts
CHANGED
|
@@ -1,3 +1,32 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { AnyConfigurationModel } from '../configuration/index.ts';
|
|
2
|
+
declare global {
|
|
3
|
+
interface Window {
|
|
4
|
+
ga?: (...args: unknown[]) => void;
|
|
5
|
+
}
|
|
6
|
+
}
|
|
7
|
+
type TrackConfig = AnyConfigurationModel & {
|
|
8
|
+
type: string;
|
|
9
|
+
};
|
|
10
|
+
interface AnalyticsRootModel {
|
|
11
|
+
jbrowse: {
|
|
12
|
+
tracks: TrackConfig[];
|
|
13
|
+
assemblies: unknown[];
|
|
14
|
+
plugins?: {
|
|
15
|
+
name?: string;
|
|
16
|
+
}[];
|
|
17
|
+
};
|
|
18
|
+
session?: {
|
|
19
|
+
sessionTracks: TrackConfig[];
|
|
20
|
+
views: unknown[];
|
|
21
|
+
};
|
|
22
|
+
version: string;
|
|
23
|
+
}
|
|
24
|
+
type AnalyticsRootModelWithConfig = AnalyticsRootModel & {
|
|
25
|
+
jbrowse: {
|
|
26
|
+
configuration: AnyConfigurationModel;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export declare function writeAWSAnalytics(rootModel: AnalyticsRootModel, initialTimestamp: number, sessionQuery?: string | null): Promise<void>;
|
|
30
|
+
export declare function writeGAAnalytics(rootModel: AnalyticsRootModel, initialTimestamp: number): Promise<void>;
|
|
31
|
+
export declare function doAnalytics(rootModel: AnalyticsRootModelWithConfig | undefined, initialTimestamp: number, initialSessionQuery: string | null | undefined): void;
|
|
32
|
+
export {};
|
package/esm/util/analytics.js
CHANGED
|
@@ -1,80 +1,133 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
|
|
1
|
+
import { effectiveRenderer, getGraphicsCapabilities, } from '@jbrowse/render-core/graphicsCapabilities';
|
|
2
|
+
import { readConfObject } from '../configuration/index.js';
|
|
3
|
+
import { isElectron, rIC } from '../util/index.js';
|
|
4
|
+
// Both writers are fire-and-forget from several call sites, so they swallow
|
|
5
|
+
// their own failures rather than rejecting: a floating rejected promise trips
|
|
6
|
+
// the webpack-dev-server overlay (it listens for unhandledrejection), and an
|
|
7
|
+
// analytics ping is never worth interrupting a session for.
|
|
8
|
+
export async function writeAWSAnalytics(rootModel, initialTimestamp, sessionQuery) {
|
|
4
9
|
try {
|
|
5
10
|
const url = 'https://analytics.jbrowse.org/api/v1';
|
|
6
|
-
const multiAssemblyTracks = rootModel.jbrowse.tracks.filter(
|
|
7
|
-
|
|
11
|
+
const multiAssemblyTracks = rootModel.jbrowse.tracks.filter(track => readConfObject(track, 'assemblyNames').length > 1).length;
|
|
12
|
+
// which rendering backend is actually drawing (WebGPU/WebGL2/Canvas2D) —
|
|
13
|
+
// capabilities *and* any page-wide pin, so a session that fell back to
|
|
14
|
+
// Canvas2D is counted as Canvas2D rather than as what the hardware could
|
|
15
|
+
// have done. Reporting the capability answer here is what made "how many
|
|
16
|
+
// users end up on Canvas2D" unanswerable.
|
|
17
|
+
const capabilities = await getGraphicsCapabilities();
|
|
18
|
+
const renderer = effectiveRenderer(capabilities);
|
|
19
|
+
// The coarse bit only. `glRenderer` names the exact driver and stays local
|
|
20
|
+
// to the stack-trace dialog, the same line vendor/architecture hold — this
|
|
21
|
+
// says whether a WebGL2 user is on a rasterizer, which is the population
|
|
22
|
+
// that pays ~25x Canvas2D on the main thread and the number that decides
|
|
23
|
+
// whether the ladder should route around it. 'unknown' where nothing probed
|
|
24
|
+
// or the browser withholds the extension, which must not read as 'false'.
|
|
25
|
+
const softwareRendering = capabilities.softwareWebgl ?? 'unknown';
|
|
8
26
|
const { jbrowse: config, session, version: ver } = rootModel;
|
|
9
27
|
const { tracks, assemblies, plugins } = config;
|
|
28
|
+
// stats to be recorded in db
|
|
10
29
|
const stats = {
|
|
11
30
|
ver,
|
|
12
|
-
'plugins-count': plugins?.length
|
|
13
|
-
'plugin-names': plugins?.map(
|
|
31
|
+
'plugins-count': plugins?.length ?? 0,
|
|
32
|
+
'plugin-names': plugins?.map(p => p.name).join(','),
|
|
14
33
|
'assemblies-count': assemblies.length,
|
|
15
34
|
'tracks-count': tracks.length,
|
|
16
|
-
'session-tracks-count': session?.sessionTracks.length
|
|
17
|
-
'open-views': session?.views.length
|
|
35
|
+
'session-tracks-count': session?.sessionTracks.length ?? 0,
|
|
36
|
+
'open-views': session?.views.length ?? 0,
|
|
18
37
|
'synteny-tracks-count': multiAssemblyTracks,
|
|
19
|
-
|
|
20
|
-
|
|
38
|
+
// No `saved-sessions-count`: it counted localStorage keys matching
|
|
39
|
+
// `localSaved-`, a format nothing has written since autosaved sessions
|
|
40
|
+
// moved to IndexedDB (`sessionsDB`), so it reported 0 for every user. The
|
|
41
|
+
// live count is `savedSessionMetadata`, which is web-only and populated by
|
|
42
|
+
// an async open — reporting it here would race the boot rather than
|
|
43
|
+
// measure anything, so the field is gone instead of re-sourced.
|
|
44
|
+
// field if existing session param in query before autogenerated param
|
|
45
|
+
'existing-session-param-type': sessionQuery?.split('-', 1)[0] || 'none',
|
|
46
|
+
// screen geometry
|
|
21
47
|
'scn-h': window.screen.height,
|
|
22
48
|
'scn-w': window.screen.width,
|
|
49
|
+
// window geometry
|
|
23
50
|
'win-h': window.innerHeight,
|
|
24
51
|
'win-w': window.innerWidth,
|
|
52
|
+
dpr: window.devicePixelRatio,
|
|
25
53
|
electron: isElectron,
|
|
26
|
-
|
|
54
|
+
renderer,
|
|
55
|
+
'software-rendering': softwareRendering,
|
|
56
|
+
loadTime: (Date.now() - initialTimestamp) / 1000,
|
|
27
57
|
jb2: true,
|
|
28
58
|
};
|
|
29
|
-
|
|
59
|
+
// tallies get processed in the lambda, keyed as e.g. track-types-FeatureTrack
|
|
60
|
+
const trackTypeCounts = {};
|
|
61
|
+
for (const track of tracks) {
|
|
30
62
|
const key = `track-types-${track.type}`;
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
|
|
63
|
+
trackTypeCounts[key] = (trackTypeCounts[key] ?? 0) + 1;
|
|
64
|
+
}
|
|
65
|
+
const sessionTrackTypeCounts = {};
|
|
66
|
+
for (const track of session?.sessionTracks ?? []) {
|
|
34
67
|
const key = `sessionTrack-types-${track.type}`;
|
|
35
|
-
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
.join('&');
|
|
68
|
+
sessionTrackTypeCounts[key] = (sessionTrackTypeCounts[key] ?? 0) + 1;
|
|
69
|
+
}
|
|
70
|
+
Object.assign(stats, trackTypeCounts, sessionTrackTypeCounts);
|
|
71
|
+
const qs = new URLSearchParams(Object.entries(stats).map(([key, value]) => [key, String(value)])).toString();
|
|
40
72
|
await fetch(`${url}?${qs}`);
|
|
41
73
|
}
|
|
42
74
|
catch (e) {
|
|
43
|
-
console.
|
|
75
|
+
console.warn('Failed to write analytics to AWS.', e);
|
|
44
76
|
}
|
|
45
77
|
}
|
|
46
78
|
export async function writeGAAnalytics(rootModel, initialTimestamp) {
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
electron
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
79
|
+
try {
|
|
80
|
+
const jbrowseUser = 'UA-7115575-5';
|
|
81
|
+
const loadTime = Date.now() - initialTimestamp;
|
|
82
|
+
// custom dimension/metric indices are wired up on the GA property side, so
|
|
83
|
+
// this order (tracks-count, ver, electron, loadTime, pluginNames) must stay
|
|
84
|
+
// dimension1..5
|
|
85
|
+
const gaData = {
|
|
86
|
+
dimension1: rootModel.jbrowse.tracks.length, // this is all possible tracks
|
|
87
|
+
dimension2: rootModel.version,
|
|
88
|
+
dimension3: isElectron,
|
|
89
|
+
dimension4: loadTime,
|
|
90
|
+
dimension5: rootModel.jbrowse.plugins?.map(p => p.name).join(',') ?? '',
|
|
91
|
+
metric1: Math.round(loadTime),
|
|
92
|
+
};
|
|
93
|
+
// Plugin names come from the loaded config and are not trusted content (a
|
|
94
|
+
// config can be loaded from an arbitrary URL). Only this static bootstrap,
|
|
95
|
+
// with no interpolated data, is ever parsed as script source; gaData is
|
|
96
|
+
// handed to ga() as a real JS value afterward so untrusted strings can never
|
|
97
|
+
// break out of the <script> tag the way interpolating them into it would.
|
|
98
|
+
const analyticsBootstrap = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){" +
|
|
99
|
+
'(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),' +
|
|
100
|
+
'm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)' +
|
|
101
|
+
"})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');";
|
|
102
|
+
const analyticsScriptNode = document.createElement('script');
|
|
103
|
+
analyticsScriptNode.innerHTML = analyticsBootstrap;
|
|
104
|
+
document.head.append(analyticsScriptNode);
|
|
105
|
+
window.ga?.('create', jbrowseUser, 'auto', 'jbrowseTracker');
|
|
106
|
+
window.ga?.('jbrowseTracker.send', 'pageview', gaData);
|
|
107
|
+
}
|
|
108
|
+
catch (e) {
|
|
109
|
+
console.warn('Failed to write analytics to GA.', e);
|
|
67
110
|
}
|
|
68
|
-
gaData.metric1 = Math.round(stats.loadTime);
|
|
69
|
-
analyticsScript += `ga('jbrowseTracker.send', 'pageview',${JSON.stringify(gaData)});`;
|
|
70
|
-
const analyticsScriptNode = document.createElement('script');
|
|
71
|
-
analyticsScriptNode.innerHTML = analyticsScript;
|
|
72
|
-
document.getElementsByTagName('head')[0].append(analyticsScriptNode);
|
|
73
111
|
}
|
|
112
|
+
// One pageview per page load, not per pluginManager. jbrowse-web rebuilds the
|
|
113
|
+
// whole pluginManager (and rootModel) whenever plugins change, and StrictMode
|
|
114
|
+
// builds it twice on mount — without this guard each rebuild re-pings AWS and
|
|
115
|
+
// appends another Google Analytics <script> to <head>, inflating pageviews and
|
|
116
|
+
// growing the document on every plugin install.
|
|
117
|
+
let analyticsSent = false;
|
|
74
118
|
export function doAnalytics(rootModel, initialTimestamp, initialSessionQuery) {
|
|
75
119
|
if (rootModel &&
|
|
120
|
+
!analyticsSent &&
|
|
76
121
|
!readConfObject(rootModel.jbrowse.configuration, 'disableAnalytics')) {
|
|
77
|
-
|
|
78
|
-
writeGAAnalytics
|
|
122
|
+
analyticsSent = true;
|
|
123
|
+
// Defer off the critical load path: writeGAAnalytics injects a third-party
|
|
124
|
+
// Google Analytics script and writeAWSAnalytics probes graphics
|
|
125
|
+
// capabilities, together ~hundreds of ms of main-thread work at startup.
|
|
126
|
+
// loadTime is still measured from initialTimestamp, so the reported metric
|
|
127
|
+
// is unaffected by running these when the browser is idle.
|
|
128
|
+
rIC(() => {
|
|
129
|
+
void writeAWSAnalytics(rootModel, initialTimestamp, initialSessionQuery);
|
|
130
|
+
void writeGAAnalytics(rootModel, initialTimestamp);
|
|
131
|
+
});
|
|
79
132
|
}
|
|
80
133
|
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { AnimationMode } from './types/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a motion may play at all, before anything about what would move is
|
|
4
|
+
* consulted: a frame clock has to exist, and the resolved animation mode has to
|
|
5
|
+
* allow motion — 'enabled' always does, 'disabled' never does, and 'system'
|
|
6
|
+
* honors the OS prefers-reduced-motion setting, so reduced-motion users get
|
|
7
|
+
* instant snaps unless they explicitly opt in. The mode comes from the session
|
|
8
|
+
* preference (`configuration.preferences.animationMode` + user override), which
|
|
9
|
+
* is `getSession(self).animationMode`.
|
|
10
|
+
*
|
|
11
|
+
* In core rather than beside either caller because the two that ask are a
|
|
12
|
+
* feature-layout morph in the canvas plugin and a viewport flight in the LGV,
|
|
13
|
+
* and a second copy of this check is a second answer to "does this user want
|
|
14
|
+
* motion" — the one a reduced-motion reader notices when only half the app
|
|
15
|
+
* honors it.
|
|
16
|
+
*/
|
|
17
|
+
export declare function animationAllowed(mode: AnimationMode): boolean;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Whether a motion may play at all, before anything about what would move is
|
|
3
|
+
* consulted: a frame clock has to exist, and the resolved animation mode has to
|
|
4
|
+
* allow motion — 'enabled' always does, 'disabled' never does, and 'system'
|
|
5
|
+
* honors the OS prefers-reduced-motion setting, so reduced-motion users get
|
|
6
|
+
* instant snaps unless they explicitly opt in. The mode comes from the session
|
|
7
|
+
* preference (`configuration.preferences.animationMode` + user override), which
|
|
8
|
+
* is `getSession(self).animationMode`.
|
|
9
|
+
*
|
|
10
|
+
* In core rather than beside either caller because the two that ask are a
|
|
11
|
+
* feature-layout morph in the canvas plugin and a viewport flight in the LGV,
|
|
12
|
+
* and a second copy of this check is a second answer to "does this user want
|
|
13
|
+
* motion" — the one a reduced-motion reader notices when only half the app
|
|
14
|
+
* honors it.
|
|
15
|
+
*/
|
|
16
|
+
export function animationAllowed(mode) {
|
|
17
|
+
const hasFrameClock = typeof requestAnimationFrame === 'function';
|
|
18
|
+
const prefersReduced = typeof matchMedia === 'function' &&
|
|
19
|
+
matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
20
|
+
return (hasFrameClock &&
|
|
21
|
+
(mode === 'enabled' || (mode === 'system' && !prefersReduced)));
|
|
22
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface RowResizeTarget {
|
|
2
|
+
effectiveRowHeight: number;
|
|
3
|
+
scrollTop: number;
|
|
4
|
+
nrow: number;
|
|
5
|
+
viewportHeight: number;
|
|
6
|
+
setRowHeight: (n: number) => void;
|
|
7
|
+
setScrollTop: (n: number) => void;
|
|
8
|
+
}
|
|
9
|
+
export declare function applyRowResizeWheel(e: WheelEvent, el: HTMLElement, model: RowResizeTarget): void;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
// shift+wheel resizes the sample rows (a vertical-zoom gesture) rather than
|
|
2
|
+
// scrolling, keeping the row under the cursor pinned in place as the height
|
|
3
|
+
// changes. Shared by every row-stack display — both variant displays and MAF —
|
|
4
|
+
// so the gesture stays identical wherever rows have a resolved height and a
|
|
5
|
+
// scroll offset. setScrollTop clamps to the new scrollableHeight, so the raw
|
|
6
|
+
// target is passed through unclamped.
|
|
7
|
+
import { normalizeWheelDelta } from './wheelZoom.js';
|
|
8
|
+
const MAX_ROW_HEIGHT = 20;
|
|
9
|
+
// px of row-height change per pixel of normalized wheel scroll. A mouse notch
|
|
10
|
+
// (~100px) nudges the height ~0.4px; a trackpad's small continuous deltas
|
|
11
|
+
// accumulate smoothly instead of the old sign-based ±1-per-event, which flew
|
|
12
|
+
// through the whole range on a trackpad's event flood.
|
|
13
|
+
const RESIZE_PX_PER_WHEEL_PX = 1 / 240;
|
|
14
|
+
export function applyRowResizeWheel(e, el, model) {
|
|
15
|
+
e.preventDefault();
|
|
16
|
+
// scroll up (deltaY < 0) grows rows; proportional to the normalized delta so
|
|
17
|
+
// the speed is consistent across mice/trackpads and finer than ±1/event.
|
|
18
|
+
const delta = -normalizeWheelDelta(e.deltaY, e.deltaMode) * RESIZE_PX_PER_WHEEL_PX;
|
|
19
|
+
// guard nrow=0 (no samples) so the auto-fit floor stays finite
|
|
20
|
+
const minRowHeight = model.viewportHeight / Math.max(1, model.nrow);
|
|
21
|
+
// The cap may stop the gesture going further; it may never move the rows on
|
|
22
|
+
// its own. So both heights that can already sit above MAX_ROW_HEIGHT raise
|
|
23
|
+
// it: the auto-fit floor (few samples), and the current height (a pinned
|
|
24
|
+
// `rowHeight` — the config slot and the "Custom..." dialog are both
|
|
25
|
+
// unbounded, and MAF's own docs example is 12 while a bases-mode row wants
|
|
26
|
+
// more). Without the second, a 40px pinned row met `min(20, 40.4)` on the
|
|
27
|
+
// first notch of a *grow* gesture and halved.
|
|
28
|
+
const maxRowHeight = Math.max(MAX_ROW_HEIGHT, minRowHeight, model.effectiveRowHeight);
|
|
29
|
+
const newRowHeight = Math.max(minRowHeight, Math.min(maxRowHeight, model.effectiveRowHeight + delta));
|
|
30
|
+
const mouseY = e.clientY - el.getBoundingClientRect().top;
|
|
31
|
+
const rowUnderMouse = (mouseY + model.scrollTop) / model.effectiveRowHeight;
|
|
32
|
+
model.setRowHeight(newRowHeight);
|
|
33
|
+
model.setScrollTop(rowUnderMouse * newRowHeight - mouseY);
|
|
34
|
+
}
|
|
@@ -0,0 +1,144 @@
|
|
|
1
|
+
import type { FileLocation } from './types/data.ts';
|
|
2
|
+
export declare const adapterTypes: readonly ['IndexedFastaAdapter', 'BgzipFastaAdapter', 'FastaAdapter', 'TwoBitAdapter', 'ChromSizesAdapter'];
|
|
3
|
+
export type AdapterType = (typeof adapterTypes)[number];
|
|
4
|
+
export declare const adapterLabels: Record<AdapterType, string>;
|
|
5
|
+
export declare function adapterHasSequence(adapterSelection: AdapterType): adapterSelection is "BgzipFastaAdapter" | "FastaAdapter" | "IndexedFastaAdapter" | "TwoBitAdapter";
|
|
6
|
+
export interface FormState {
|
|
7
|
+
adapterSelection: AdapterType;
|
|
8
|
+
assemblyName: string;
|
|
9
|
+
assemblyDisplayName: string;
|
|
10
|
+
fastaLocation: FileLocation;
|
|
11
|
+
faiLocation: FileLocation;
|
|
12
|
+
gziLocation: FileLocation;
|
|
13
|
+
twoBitLocation: FileLocation;
|
|
14
|
+
chromSizesLocation: FileLocation;
|
|
15
|
+
refNameAliasesLocation: FileLocation;
|
|
16
|
+
cytobandsLocation: FileLocation;
|
|
17
|
+
}
|
|
18
|
+
export type LocationField = {
|
|
19
|
+
[K in keyof FormState]: FormState[K] extends FileLocation ? K : never;
|
|
20
|
+
}[keyof FormState];
|
|
21
|
+
export declare const sidecarRoles: readonly ['fai', 'gzi'];
|
|
22
|
+
export type SidecarRole = (typeof sidecarRoles)[number];
|
|
23
|
+
export declare const sidecars: {
|
|
24
|
+
readonly fai: {
|
|
25
|
+
readonly field: 'faiLocation';
|
|
26
|
+
readonly ext: '.fai';
|
|
27
|
+
readonly label: 'FASTA index (.fai) file';
|
|
28
|
+
};
|
|
29
|
+
readonly gzi: {
|
|
30
|
+
readonly field: 'gziLocation';
|
|
31
|
+
readonly ext: '.gzi';
|
|
32
|
+
readonly label: 'FASTA gzip index (.gzi) file';
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
export declare function makeSetField(setForm: (update: (prev: FormState) => FormState) => void): <K extends keyof FormState>(key: K) => (value: FormState[K]) => void;
|
|
36
|
+
export declare function initialFormState(): FormState;
|
|
37
|
+
export declare function applyPrimaryFile(state: FormState, location: FileLocation): FormState;
|
|
38
|
+
export declare function applyTwoBitFile(state: FormState, location: FileLocation): FormState;
|
|
39
|
+
export declare function clearFormFields(state: FormState): FormState;
|
|
40
|
+
export declare function clearSequenceFiles(state: FormState): FormState;
|
|
41
|
+
export declare function getBaseAssemblyConfig(state: FormState): {
|
|
42
|
+
name: string;
|
|
43
|
+
displayName?: string | undefined;
|
|
44
|
+
refNameAliases?: {
|
|
45
|
+
adapter: {
|
|
46
|
+
type: string;
|
|
47
|
+
location: FileLocation;
|
|
48
|
+
};
|
|
49
|
+
} | undefined;
|
|
50
|
+
cytobands?: {
|
|
51
|
+
adapter: {
|
|
52
|
+
type: string;
|
|
53
|
+
cytobandLocation: FileLocation;
|
|
54
|
+
};
|
|
55
|
+
} | undefined;
|
|
56
|
+
};
|
|
57
|
+
export type AssemblyAdapter = {
|
|
58
|
+
type: 'IndexedFastaAdapter';
|
|
59
|
+
fastaLocation: FileLocation;
|
|
60
|
+
faiLocation: FileLocation;
|
|
61
|
+
} | {
|
|
62
|
+
type: 'BgzipFastaAdapter';
|
|
63
|
+
fastaLocation: FileLocation;
|
|
64
|
+
faiLocation: FileLocation;
|
|
65
|
+
gziLocation: FileLocation;
|
|
66
|
+
} | {
|
|
67
|
+
type: 'UnindexedFastaAdapter';
|
|
68
|
+
fastaLocation: FileLocation;
|
|
69
|
+
} | {
|
|
70
|
+
type: 'TwoBitAdapter';
|
|
71
|
+
twoBitLocation: FileLocation;
|
|
72
|
+
chromSizesLocation?: FileLocation;
|
|
73
|
+
} | {
|
|
74
|
+
type: 'ChromSizesAdapter';
|
|
75
|
+
chromSizesLocation: FileLocation;
|
|
76
|
+
};
|
|
77
|
+
export type AssemblyConf = ReturnType<typeof getBaseAssemblyConfig> & {
|
|
78
|
+
sequence: {
|
|
79
|
+
type: 'ReferenceSequenceTrack';
|
|
80
|
+
trackId: string;
|
|
81
|
+
adapter: AssemblyAdapter;
|
|
82
|
+
};
|
|
83
|
+
};
|
|
84
|
+
export declare function isBlank(location: FileLocation): boolean;
|
|
85
|
+
export declare function formHasSequence(form: FormState): boolean;
|
|
86
|
+
export declare function getAssemblyName(form: FormState): string;
|
|
87
|
+
export declare function getMissingSidecars(form: FormState): ({
|
|
88
|
+
readonly field: 'faiLocation';
|
|
89
|
+
readonly ext: '.fai';
|
|
90
|
+
readonly label: 'FASTA index (.fai) file';
|
|
91
|
+
} | {
|
|
92
|
+
readonly field: 'gziLocation';
|
|
93
|
+
readonly ext: '.gzi';
|
|
94
|
+
readonly label: 'FASTA gzip index (.gzi) file';
|
|
95
|
+
})[];
|
|
96
|
+
export declare function isFormReady(form: FormState): boolean;
|
|
97
|
+
export declare function isFormDirty(form: FormState): boolean;
|
|
98
|
+
export declare function partitionExtraLocations(form: FormState): {
|
|
99
|
+
used: FileLocation[];
|
|
100
|
+
unused: FileLocation[];
|
|
101
|
+
};
|
|
102
|
+
export declare function getAssemblyNameFromFilename(filename: string): string;
|
|
103
|
+
export declare function detectAdapterType(filename: string): AdapterType | undefined;
|
|
104
|
+
export type FileRole = 'fasta' | 'fastaGz' | 'fai' | 'gzi' | 'twoBit' | 'chromSizes' | 'cytobands' | 'refNameAliases';
|
|
105
|
+
export declare function classifyFilename(filename: string): FileRole | undefined;
|
|
106
|
+
export declare function classifyAssemblyFiles(locations: FileLocation[]): Partial<FormState>;
|
|
107
|
+
export declare function isSequenceRole(role: FileRole | undefined): boolean;
|
|
108
|
+
export interface ClassifiedLocation {
|
|
109
|
+
location: FileLocation;
|
|
110
|
+
role: FileRole | undefined;
|
|
111
|
+
}
|
|
112
|
+
export declare function classifyLocations(locations: FileLocation[]): ClassifiedLocation[];
|
|
113
|
+
/**
|
|
114
|
+
* Rebuild the file-location fields (plus adapter/name) of `state` from a freshly
|
|
115
|
+
* classified set of dropped/pasted files.
|
|
116
|
+
*
|
|
117
|
+
* The file set is authoritative: a field it says nothing about resets, so
|
|
118
|
+
* deleting a URL from the box clears the slot it filled. `edited` is the way out
|
|
119
|
+
* — the fields the user set by hand, which the classifier never gets to answer
|
|
120
|
+
* for. Without it, typing a .fai into the "this format needs its index" input
|
|
121
|
+
* and then adding one more URL wiped the .fai and the pane re-asked for it.
|
|
122
|
+
*
|
|
123
|
+
* refName aliases and cytobands merge instead of resetting even when untouched:
|
|
124
|
+
* they are the two slots "More options" also fills, and no file set that omits
|
|
125
|
+
* them is making a claim about them.
|
|
126
|
+
*/
|
|
127
|
+
export declare function applyClassifiedFiles(state: FormState, locations: FileLocation[], edited: ReadonlySet<keyof FormState>): FormState;
|
|
128
|
+
export declare function buildAssemblyConf(form: FormState, resolveFastaAdapter: (fastaLocation: FileLocation) => Promise<AssemblyAdapter> | AssemblyAdapter): Promise<AssemblyConf>;
|
|
129
|
+
export declare function urlTextToLocations(text: string): FileLocation[];
|
|
130
|
+
export type AdapterConfigResult = {
|
|
131
|
+
kind: 'ready';
|
|
132
|
+
adapter: AssemblyAdapter;
|
|
133
|
+
} | {
|
|
134
|
+
kind: 'needsFastaIndex';
|
|
135
|
+
fastaLocation: FileLocation;
|
|
136
|
+
};
|
|
137
|
+
export declare function getAdapterConfig({ adapterSelection, fastaLocation, faiLocation, gziLocation, twoBitLocation, chromSizesLocation, }: {
|
|
138
|
+
adapterSelection: AdapterType;
|
|
139
|
+
fastaLocation: FileLocation;
|
|
140
|
+
faiLocation: FileLocation;
|
|
141
|
+
gziLocation: FileLocation;
|
|
142
|
+
twoBitLocation: FileLocation;
|
|
143
|
+
chromSizesLocation: FileLocation;
|
|
144
|
+
}): AdapterConfigResult;
|