@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
package/esm/util/locString.js
CHANGED
|
@@ -1,57 +1,89 @@
|
|
|
1
|
-
|
|
1
|
+
import { BP_QUANTITY_SOURCE, parseBpString } from './bpUtils.js';
|
|
2
|
+
import { toLocale } from './numericUtils.js';
|
|
3
|
+
import { shorten } from './stringUtils.js';
|
|
4
|
+
// Thrown when the input doesn't resolve to any known refName. Callers
|
|
5
|
+
// (e.g. the LGV locstring path) catch this to fall back to alternative
|
|
6
|
+
// interpretations like "refname start end" triplets — string-matching
|
|
7
|
+
// the error message would be brittle.
|
|
8
|
+
export class UnknownRefNameError extends Error {
|
|
9
|
+
name = 'UnknownRefNameError';
|
|
10
|
+
}
|
|
11
|
+
// matches coordinate strings: "100", "100-200", "100..200", "100.." (open-ended).
|
|
12
|
+
// Each coordinate may carry a metric unit suffix, so "34M-35M" and "1.5kb..2kb"
|
|
13
|
+
// parse too; the numbers are converted eagerly here and nothing downstream ever
|
|
14
|
+
// sees the shorthand. Assembled locStrings are always plain digits, so this is
|
|
15
|
+
// a spelling the parser accepts and the formatter never emits.
|
|
16
|
+
// groups: [1]=start [2]=end (if range) [3]=trailing separator (if open-ended)
|
|
17
|
+
const COORD_REGEX = new RegExp(String.raw `^(${BP_QUANTITY_SOURCE})(?:(?:\.\.|[-–])(${BP_QUANTITY_SOURCE}))?(\.\.|[-–])?$`, 'i');
|
|
18
|
+
// matches optional "{assemblyName}" prefix followed by the rest of the location
|
|
19
|
+
// groups: [1]=assemblyName (without braces) [2]=remainder
|
|
2
20
|
const ASSEMBLY_REGEX = /^(?:\{([^}]+)\})?(.+)/;
|
|
3
21
|
function parseCoords(suffix, locString) {
|
|
22
|
+
// strip commas before matching so regex only needs to handle plain digits
|
|
4
23
|
const match = COORD_REGEX.exec(suffix.replaceAll(',', ''));
|
|
5
|
-
|
|
24
|
+
const [, startStr, endStr, trailing] = match ?? [];
|
|
25
|
+
const start = startStr === undefined ? undefined : parseBpString(startStr);
|
|
26
|
+
if (start === undefined) {
|
|
6
27
|
throw new Error(`could not parse range "${suffix}" on location "${locString}"`);
|
|
7
28
|
}
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
29
|
+
return {
|
|
30
|
+
start,
|
|
31
|
+
end: endStr ? parseBpString(endStr) : trailing ? undefined : start,
|
|
32
|
+
};
|
|
11
33
|
}
|
|
12
34
|
export function parseLocStringOneBased(locString, isValidRefName) {
|
|
13
35
|
if (!locString) {
|
|
14
36
|
throw new Error('no location string provided, could not parse');
|
|
15
37
|
}
|
|
38
|
+
// handle reverse strand notation e.g. "chr1:1-100[rev]"
|
|
16
39
|
let reversed = false;
|
|
17
40
|
if (locString.endsWith('[rev]')) {
|
|
18
41
|
reversed = true;
|
|
19
42
|
locString = locString.slice(0, -5);
|
|
20
43
|
}
|
|
21
44
|
locString = locString.replaceAll(/\s/g, '');
|
|
45
|
+
// extract optional assembly name in braces e.g. "{hg19}chr1:1-100"
|
|
22
46
|
const assemblyMatch = ASSEMBLY_REGEX.exec(locString);
|
|
23
47
|
if (!assemblyMatch) {
|
|
24
48
|
throw new Error(`invalid location string: "${locString}"`);
|
|
25
49
|
}
|
|
26
50
|
const [, assemblyName, location] = assemblyMatch;
|
|
51
|
+
// reject empty braces e.g. "{}chr1:1-100"
|
|
27
52
|
if (!assemblyName && location.startsWith('{}')) {
|
|
28
53
|
throw new Error(`no assembly name was provided in location "${location}"`);
|
|
29
54
|
}
|
|
55
|
+
// refNames can contain colons (see SAM spec), so find the last colon to split
|
|
30
56
|
const lastColonIdx = location.lastIndexOf(':');
|
|
57
|
+
// no colon means just a refName with no coordinates e.g. "chr1"
|
|
31
58
|
if (lastColonIdx === -1) {
|
|
32
59
|
if (isValidRefName(location, assemblyName)) {
|
|
33
60
|
return { assemblyName, refName: location, reversed };
|
|
34
61
|
}
|
|
35
|
-
throw new
|
|
62
|
+
throw new UnknownRefNameError(`Unknown feature or sequence "${location}"`);
|
|
36
63
|
}
|
|
64
|
+
// split into refName (prefix) and coordinate part (suffix) at the last colon
|
|
37
65
|
const prefix = location.slice(0, lastColonIdx);
|
|
38
66
|
const suffix = location.slice(lastColonIdx + 1);
|
|
39
67
|
const prefixValid = isValidRefName(prefix, assemblyName);
|
|
40
68
|
const locationValid = isValidRefName(location, assemblyName);
|
|
69
|
+
// both interpretations valid is ambiguous e.g. refName "chr1:1" and "chr1" both exist
|
|
41
70
|
if (prefixValid && locationValid) {
|
|
42
71
|
throw new Error(`ambiguous location string: "${locString}"`);
|
|
43
72
|
}
|
|
73
|
+
// the colon is part of the refName, not a coordinate separator
|
|
44
74
|
if (locationValid) {
|
|
45
75
|
return { assemblyName, refName: location, reversed };
|
|
46
76
|
}
|
|
77
|
+
// standard case: prefix is refName, suffix is coordinates
|
|
47
78
|
if (prefixValid) {
|
|
79
|
+
// colon with no suffix means just refName e.g. "chr1:"
|
|
48
80
|
if (!suffix) {
|
|
49
81
|
return { assemblyName, refName: prefix, reversed };
|
|
50
82
|
}
|
|
51
83
|
const coords = parseCoords(suffix, locString);
|
|
52
84
|
return { assemblyName, refName: prefix, reversed, ...coords };
|
|
53
85
|
}
|
|
54
|
-
throw new
|
|
86
|
+
throw new UnknownRefNameError(`unknown reference sequence name in location "${locString}"`);
|
|
55
87
|
}
|
|
56
88
|
export function parseLocString(locString, isValidRefName) {
|
|
57
89
|
const parsed = parseLocStringOneBased(locString, isValidRefName);
|
|
@@ -60,3 +92,142 @@ export function parseLocString(locString, isValidRefName) {
|
|
|
60
92
|
}
|
|
61
93
|
return parsed;
|
|
62
94
|
}
|
|
95
|
+
/**
|
|
96
|
+
* Assemble a 1-based "locString" from an interbase genomic location
|
|
97
|
+
* @param region - Region
|
|
98
|
+
* @example
|
|
99
|
+
* ```ts
|
|
100
|
+
* assembleLocString({ refName: 'chr1', start: 0, end: 100 })
|
|
101
|
+
* // ↳ 'chr1:1..100'
|
|
102
|
+
* ```
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* assembleLocString({ assemblyName: 'hg19', refName: 'chr1', start: 0, end: 100 })
|
|
106
|
+
* // ↳ '{hg19}chr1:1..100'
|
|
107
|
+
* ```
|
|
108
|
+
* @example
|
|
109
|
+
* ```ts
|
|
110
|
+
* assembleLocString({ refName: 'chr1' })
|
|
111
|
+
* // ↳ 'chr1'
|
|
112
|
+
* ```
|
|
113
|
+
* @example
|
|
114
|
+
* ```ts
|
|
115
|
+
* assembleLocString({ refName: 'chr1', start: 0 })
|
|
116
|
+
* // ↳ 'chr1:1..'
|
|
117
|
+
* ```
|
|
118
|
+
* @example
|
|
119
|
+
* ```ts
|
|
120
|
+
* assembleLocString({ refName: 'chr1', end: 100 })
|
|
121
|
+
* // ↳ 'chr1:1..100'
|
|
122
|
+
* ```
|
|
123
|
+
* @example
|
|
124
|
+
* ```ts
|
|
125
|
+
* assembleLocString({ refName: 'chr1', start: 0, end: 1 })
|
|
126
|
+
* // ↳ 'chr1:1'
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export function assembleLocString(region) {
|
|
130
|
+
return assembleLocStringWith(region, toLocale);
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Same as {@link assembleLocString}, but with the coordinates left unformatted:
|
|
134
|
+
* no thousand separators, and never affected by the `numberGrouping` display
|
|
135
|
+
* preference. Use this wherever the result is compared, keyed on, or parsed
|
|
136
|
+
* rather than read — block keys, dedup buckets, locStrings handed back to
|
|
137
|
+
* `parseLocString` — both because it is faster (block calculations assemble a
|
|
138
|
+
* great many of these) and because a display convention shifting under an
|
|
139
|
+
* identity string is a correctness bug, not a cosmetic one.
|
|
140
|
+
*/
|
|
141
|
+
export function assembleLocStringRaw(region) {
|
|
142
|
+
return assembleLocStringWith(region);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* One space-separated string for a set of regions — what the header of a
|
|
146
|
+
* multi-region view says it is showing, and what an export of those regions
|
|
147
|
+
* labels itself with.
|
|
148
|
+
*
|
|
149
|
+
* The assembly name appears only when the regions disagree about it: naming it
|
|
150
|
+
* on every one of a dozen same-assembly blocks is noise, and dropping it where
|
|
151
|
+
* they differ loses the only thing telling them apart.
|
|
152
|
+
*/
|
|
153
|
+
export function assembleLocStrings(regions) {
|
|
154
|
+
const sameAssembly = regions.every(r => r.assemblyName === regions[0].assemblyName);
|
|
155
|
+
return regions
|
|
156
|
+
.map(r => assembleLocString({
|
|
157
|
+
...r,
|
|
158
|
+
assemblyName: sameAssembly ? undefined : r.assemblyName,
|
|
159
|
+
}))
|
|
160
|
+
.join(' ');
|
|
161
|
+
}
|
|
162
|
+
function assembleLocStringWith(region, cb = (n) => n) {
|
|
163
|
+
const { assemblyName, refName, start, end, reversed } = region;
|
|
164
|
+
const assemblyNameString = assemblyName ? `{${assemblyName}}` : '';
|
|
165
|
+
let startString;
|
|
166
|
+
if (start !== undefined) {
|
|
167
|
+
startString = `:${cb(start + 1)}`;
|
|
168
|
+
}
|
|
169
|
+
else if (end !== undefined) {
|
|
170
|
+
startString = ':1';
|
|
171
|
+
}
|
|
172
|
+
else {
|
|
173
|
+
startString = '';
|
|
174
|
+
}
|
|
175
|
+
let endString;
|
|
176
|
+
if (end !== undefined) {
|
|
177
|
+
endString = start !== undefined && start + 1 === end ? '' : `..${cb(end)}`;
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
endString = start !== undefined ? '..' : '';
|
|
181
|
+
}
|
|
182
|
+
let rev = '';
|
|
183
|
+
if (reversed) {
|
|
184
|
+
rev = '[rev]';
|
|
185
|
+
}
|
|
186
|
+
return `${assemblyNameString}${refName}${startString}${endString}${rev}`;
|
|
187
|
+
}
|
|
188
|
+
export function compareLocs(locA, locB) {
|
|
189
|
+
const assemblyComp = locA.assemblyName || locB.assemblyName
|
|
190
|
+
? (locA.assemblyName || '').localeCompare(locB.assemblyName || '')
|
|
191
|
+
: 0;
|
|
192
|
+
if (assemblyComp) {
|
|
193
|
+
return assemblyComp;
|
|
194
|
+
}
|
|
195
|
+
const refComp = locA.refName || locB.refName
|
|
196
|
+
? (locA.refName || '').localeCompare(locB.refName || '')
|
|
197
|
+
: 0;
|
|
198
|
+
if (refComp) {
|
|
199
|
+
return refComp;
|
|
200
|
+
}
|
|
201
|
+
if (locA.start !== undefined && locB.start !== undefined) {
|
|
202
|
+
const startComp = locA.start - locB.start;
|
|
203
|
+
if (startComp) {
|
|
204
|
+
return startComp;
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
if (locA.end !== undefined && locB.end !== undefined) {
|
|
208
|
+
const endComp = locA.end - locB.end;
|
|
209
|
+
if (endComp) {
|
|
210
|
+
return endComp;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
return 0;
|
|
214
|
+
}
|
|
215
|
+
export function compareLocStrings(a, b, isValidRefName) {
|
|
216
|
+
const locA = parseLocString(a, isValidRefName);
|
|
217
|
+
const locB = parseLocString(b, isValidRefName);
|
|
218
|
+
return compareLocs(locA, locB);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* A cursor/coordinate readout: `{assembly}chr1:1,234`, with the refName
|
|
222
|
+
* shortened and the coordinate locale-grouped. The *display* counterpart to
|
|
223
|
+
* {@link assembleLocString} — this one is for showing a single position to a
|
|
224
|
+
* user, never for a location string that will be parsed back.
|
|
225
|
+
*/
|
|
226
|
+
export function stringify({ refName, coord, assemblyName, oob, }, useAssemblyName) {
|
|
227
|
+
return [
|
|
228
|
+
assemblyName && useAssemblyName ? `{${assemblyName}}` : '',
|
|
229
|
+
refName
|
|
230
|
+
? `${shorten(refName)}:${toLocale(coord)}${oob ? ' (out of bounds)' : ''}`
|
|
231
|
+
: '',
|
|
232
|
+
].join('');
|
|
233
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Region } from './types/data.ts';
|
|
2
|
+
export interface RefNameSource {
|
|
3
|
+
isValidRefName: (refName: string) => boolean;
|
|
4
|
+
getCanonicalRefName2: (refName: string) => string;
|
|
5
|
+
regions?: readonly {
|
|
6
|
+
refName: string;
|
|
7
|
+
end: number;
|
|
8
|
+
}[];
|
|
9
|
+
}
|
|
10
|
+
export declare function locStringsToRegions(locStrings: string, assembly: RefNameSource, assemblyName: string): Region[];
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { parseLocString } from './locString.js';
|
|
2
|
+
// Parses locstrings a user wrote -- into a dialog's region field, or into a
|
|
3
|
+
// display's `clusterRegion` in a session -- to the regions a fetch runs over.
|
|
4
|
+
// Throws on an unparsable ref name or an empty range, so a caller surfaces the
|
|
5
|
+
// typo rather than quietly running over something else. Whitespace separates
|
|
6
|
+
// regions, so a multi-region rubberband selection round-trips through a field,
|
|
7
|
+
// and a setting can name more than one locus.
|
|
8
|
+
//
|
|
9
|
+
// A bare refName means the whole contig, so its length is required, not a
|
|
10
|
+
// fallback: defaulting a missing length to 0 turned "this contig has no length
|
|
11
|
+
// on record" into "empty region", which reads as the user having typed a bad
|
|
12
|
+
// range.
|
|
13
|
+
export function locStringsToRegions(locStrings, assembly, assemblyName) {
|
|
14
|
+
return locStrings
|
|
15
|
+
.trim()
|
|
16
|
+
.split(/\s+/)
|
|
17
|
+
.map(locString => {
|
|
18
|
+
const parsed = parseLocString(locString, refName => assembly.isValidRefName(refName));
|
|
19
|
+
const refName = assembly.getCanonicalRefName2(parsed.refName);
|
|
20
|
+
// scans rather than calling the assembly's getRegionForRefName, because
|
|
21
|
+
// `RefNameSource` is a narrow duck type several fakes satisfy — growing it
|
|
22
|
+
// a method to save a scan over a list this reads once per typed locstring
|
|
23
|
+
// is the wrong trade
|
|
24
|
+
const refLength = assembly.regions?.find(r => r.refName === refName)?.end;
|
|
25
|
+
if (refLength === undefined) {
|
|
26
|
+
throw new Error(`no length on record for "${refName}"`);
|
|
27
|
+
}
|
|
28
|
+
const start = Math.max(parsed.start ?? 0, 0);
|
|
29
|
+
const end = Math.min(parsed.end ?? refLength, refLength);
|
|
30
|
+
if (end <= start) {
|
|
31
|
+
throw new Error(`empty region: "${locString}"`);
|
|
32
|
+
}
|
|
33
|
+
return { assemblyName, refName, start, end };
|
|
34
|
+
});
|
|
35
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export declare const localStorageAvailable: () => boolean, localStorageGetItem: (key: string) => string | undefined, localStorageSetItem: (key: string, value: string) => boolean, localStorageRemoveItem: (key: string) => boolean;
|
|
2
|
+
/**
|
|
3
|
+
* Call `fn` whenever `key` changes — in another tab, or here via
|
|
4
|
+
* {@link notifyLocalStorageKey}. Returns the unsubscribe.
|
|
5
|
+
*
|
|
6
|
+
* `fn` takes no argument on purpose: it is told that the key changed, and reads
|
|
7
|
+
* the store itself. A payload would be a second copy of the value, and a
|
|
8
|
+
* `clear()` has none to hand over.
|
|
9
|
+
*/
|
|
10
|
+
export declare function subscribeToLocalStorageKey(key: string, fn: () => void): () => void;
|
|
11
|
+
/** Announce a write made in this tab, which `storage` never reports back. */
|
|
12
|
+
export declare function notifyLocalStorageKey(key: string): void;
|
|
13
|
+
export declare function localStorageGetNumber(key: string, defaultVal: number): number;
|
|
14
|
+
export declare function localStorageGetJSON<T>(key: string, defaultVal: T): T;
|
|
15
|
+
/**
|
|
16
|
+
* The list of strings at `key` — absent, unreadable, malformed, or holding
|
|
17
|
+
* anything else all read as empty.
|
|
18
|
+
*
|
|
19
|
+
* The element filter is the part {@link localStorageGetJSON} cannot do: a
|
|
20
|
+
* stored array of the wrong element type parses fine and then behaves as a list
|
|
21
|
+
* of values that match nothing, which looks the same as an empty list except
|
|
22
|
+
* that it is never noticed. Three keys wanted exactly this and each spelled it
|
|
23
|
+
* out — hidden facet columns, trusted plugin URLs, and the desktop safe-mode
|
|
24
|
+
* marker, which additionally has to survive the bare `1` older builds wrote
|
|
25
|
+
* there.
|
|
26
|
+
*/
|
|
27
|
+
export declare function localStorageGetStringArray(key: string): string[];
|
|
28
|
+
/**
|
|
29
|
+
* Writes `val` as JSON, except when it is null/undefined — those are skipped
|
|
30
|
+
* rather than stored, so a tri-state setting whose "unset" value means "follow
|
|
31
|
+
* the config" leaves whatever was there instead of pinning `null` over it.
|
|
32
|
+
*/
|
|
33
|
+
export declare function localStorageSetJSON(key: string, val: unknown): void;
|
|
34
|
+
export declare function localStorageGetBoolean(key: string, defaultVal: boolean): boolean;
|
|
35
|
+
export declare function localStorageSetBoolean(key: string, value: boolean): void;
|
|
36
|
+
export declare function localStorageSetNumber(key: string, value: number): void;
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
// localStorage: the guarded primitives from webStorage.ts (read that file for
|
|
2
|
+
// the three ways a Web Storage store fails and why every accessor here is
|
|
3
|
+
// total), plus the typed reads and the key subscription, which only this store
|
|
4
|
+
// has callers for.
|
|
5
|
+
import { guardedLocalStorage } from './webStorage.js';
|
|
6
|
+
export const { available: localStorageAvailable, getItem: localStorageGetItem, setItem: localStorageSetItem, removeItem: localStorageRemoveItem, } = guardedLocalStorage;
|
|
7
|
+
// Watchers of a key, and the one `storage` listener they share.
|
|
8
|
+
//
|
|
9
|
+
// Two different events reach them, which is why this is not simply a `storage`
|
|
10
|
+
// listener at each call site. Another TAB writing the key raises `storage` —
|
|
11
|
+
// but never in the tab that wrote it, so a write from THIS tab reaches nobody
|
|
12
|
+
// and has to be announced by hand. Missing that half is what let two components
|
|
13
|
+
// on one key show different values until one of them remounted.
|
|
14
|
+
//
|
|
15
|
+
// Announcing is deliberately not folded into localStorageSetItem. The
|
|
16
|
+
// grid-bookmark widget persists its list from an autorun over the list, so a
|
|
17
|
+
// write that called its own subscriber back would re-enter that autorun and
|
|
18
|
+
// write again, forever. A writer says when its write is news.
|
|
19
|
+
const listeners = new Map();
|
|
20
|
+
// Installed on the first subscription rather than at module scope, so importing
|
|
21
|
+
// this file from a worker or a test never touches `window`.
|
|
22
|
+
let storageListenerInstalled = false;
|
|
23
|
+
function installStorageListener() {
|
|
24
|
+
if (storageListenerInstalled || typeof window === 'undefined') {
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
storageListenerInstalled = true;
|
|
28
|
+
window.addEventListener('storage', e => {
|
|
29
|
+
// sessionStorage raises the same event on the same window, and jbrowse-web
|
|
30
|
+
// mirrors whole sessions into it
|
|
31
|
+
if (e.storageArea !== window.localStorage) {
|
|
32
|
+
return;
|
|
33
|
+
}
|
|
34
|
+
if (e.key === null) {
|
|
35
|
+
// a clear(): a factory reset, a test's teardown. Every key at once
|
|
36
|
+
for (const k of [...listeners.keys()]) {
|
|
37
|
+
notifyLocalStorageKey(k);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
else if (listeners.has(e.key)) {
|
|
41
|
+
notifyLocalStorageKey(e.key);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Call `fn` whenever `key` changes — in another tab, or here via
|
|
47
|
+
* {@link notifyLocalStorageKey}. Returns the unsubscribe.
|
|
48
|
+
*
|
|
49
|
+
* `fn` takes no argument on purpose: it is told that the key changed, and reads
|
|
50
|
+
* the store itself. A payload would be a second copy of the value, and a
|
|
51
|
+
* `clear()` has none to hand over.
|
|
52
|
+
*/
|
|
53
|
+
export function subscribeToLocalStorageKey(key, fn) {
|
|
54
|
+
installStorageListener();
|
|
55
|
+
let set = listeners.get(key);
|
|
56
|
+
if (!set) {
|
|
57
|
+
set = new Set();
|
|
58
|
+
listeners.set(key, set);
|
|
59
|
+
}
|
|
60
|
+
set.add(fn);
|
|
61
|
+
return () => {
|
|
62
|
+
set.delete(fn);
|
|
63
|
+
if (!set.size) {
|
|
64
|
+
listeners.delete(key);
|
|
65
|
+
}
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
/** Announce a write made in this tab, which `storage` never reports back. */
|
|
69
|
+
export function notifyLocalStorageKey(key) {
|
|
70
|
+
for (const fn of listeners.get(key) ?? []) {
|
|
71
|
+
fn();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
export function localStorageGetNumber(key, defaultVal) {
|
|
75
|
+
const stored = localStorageGetItem(key);
|
|
76
|
+
// rejected before the coercion rather than after it: `+''` is 0, so an entry
|
|
77
|
+
// written as the empty string would otherwise read back as a real 0 instead
|
|
78
|
+
// of falling back. isFinite rather than !isNaN so 'Infinity' falls back too —
|
|
79
|
+
// every one of these is a pixel width or a base-pair count.
|
|
80
|
+
if (!stored) {
|
|
81
|
+
return defaultVal;
|
|
82
|
+
}
|
|
83
|
+
const parsed = +stored;
|
|
84
|
+
return Number.isFinite(parsed) ? parsed : defaultVal;
|
|
85
|
+
}
|
|
86
|
+
export function localStorageGetJSON(key, defaultVal) {
|
|
87
|
+
const stored = localStorageGetItem(key);
|
|
88
|
+
if (stored) {
|
|
89
|
+
try {
|
|
90
|
+
return JSON.parse(stored);
|
|
91
|
+
}
|
|
92
|
+
catch (e) {
|
|
93
|
+
console.warn(`Invalid localStorage value for ${key}:`, stored, e);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
return defaultVal;
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* The list of strings at `key` — absent, unreadable, malformed, or holding
|
|
100
|
+
* anything else all read as empty.
|
|
101
|
+
*
|
|
102
|
+
* The element filter is the part {@link localStorageGetJSON} cannot do: a
|
|
103
|
+
* stored array of the wrong element type parses fine and then behaves as a list
|
|
104
|
+
* of values that match nothing, which looks the same as an empty list except
|
|
105
|
+
* that it is never noticed. Three keys wanted exactly this and each spelled it
|
|
106
|
+
* out — hidden facet columns, trusted plugin URLs, and the desktop safe-mode
|
|
107
|
+
* marker, which additionally has to survive the bare `1` older builds wrote
|
|
108
|
+
* there.
|
|
109
|
+
*/
|
|
110
|
+
export function localStorageGetStringArray(key) {
|
|
111
|
+
const parsed = localStorageGetJSON(key, []);
|
|
112
|
+
return Array.isArray(parsed) ? parsed.filter(x => typeof x === 'string') : [];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Writes `val` as JSON, except when it is null/undefined — those are skipped
|
|
116
|
+
* rather than stored, so a tri-state setting whose "unset" value means "follow
|
|
117
|
+
* the config" leaves whatever was there instead of pinning `null` over it.
|
|
118
|
+
*/
|
|
119
|
+
export function localStorageSetJSON(key, val) {
|
|
120
|
+
if (val !== undefined && val !== null) {
|
|
121
|
+
localStorageSetItem(key, JSON.stringify(val));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
export function localStorageGetBoolean(key, defaultVal) {
|
|
125
|
+
const stored = localStorageGetJSON(key, defaultVal);
|
|
126
|
+
// falls back rather than coercing when the key holds something that is not a
|
|
127
|
+
// boolean (an older build's format, a hand-edited value). `Boolean(null)` is
|
|
128
|
+
// false, which would silently override a `true` default — which is what most
|
|
129
|
+
// of these are.
|
|
130
|
+
return typeof stored === 'boolean' ? stored : defaultVal;
|
|
131
|
+
}
|
|
132
|
+
export function localStorageSetBoolean(key, value) {
|
|
133
|
+
localStorageSetItem(key, JSON.stringify(value));
|
|
134
|
+
}
|
|
135
|
+
export function localStorageSetNumber(key, value) {
|
|
136
|
+
localStorageSetItem(key, JSON.stringify(value));
|
|
137
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
export interface MakeAssemblyOptions {
|
|
2
|
+
/** URL to a FASTA (`.fa`/`.fasta`, optionally bgzipped) or a `.2bit` file */
|
|
3
|
+
fastaUri: string;
|
|
4
|
+
/** defaults to the file's base name, e.g. `hg38.fa.gz` -> `hg38` */
|
|
5
|
+
name?: string;
|
|
6
|
+
faiUri?: string;
|
|
7
|
+
gziUri?: string;
|
|
8
|
+
aliases?: string[];
|
|
9
|
+
refNameAliasesUri?: string;
|
|
10
|
+
}
|
|
11
|
+
/** true when a string names a sequence file (vs. a hub name like `hg38`) */
|
|
12
|
+
export declare function isSequenceUri(uri: string): boolean;
|
|
13
|
+
/** strip path and sequence extension: `.../hg19.fa.gz` -> `hg19` */
|
|
14
|
+
export declare function assemblyNameFromUri(uri: string): string;
|
|
15
|
+
/**
|
|
16
|
+
* Build an assembly config for a sequence file (indexed FASTA, bgzipped FASTA,
|
|
17
|
+
* or `.2bit`) — the boilerplate you'd otherwise write by hand. In the common
|
|
18
|
+
* case it is the flat `{ name, uri }` shorthand: jbrowse-core's assembly config
|
|
19
|
+
* picks the concrete adapter type (`IndexedFastaAdapter`/`BgzipFastaAdapter`/
|
|
20
|
+
* `TwoBitAdapter`) from the extension, derives the `.fai`/`.gzi` siblings, and
|
|
21
|
+
* fills in the `ReferenceSequenceTrack` at load time, so no adapter-type
|
|
22
|
+
* knowledge lives here. A non-sibling index (`faiUri`/`gziUri`) widens `sequence`
|
|
23
|
+
* to its adapter form, the only shape with a slot for the override.
|
|
24
|
+
* `refNameAliasesUri` points at a tab-separated aliases file (as UCSC publishes)
|
|
25
|
+
* so a track whose reference names differ from the sequence (e.g. a BAM using
|
|
26
|
+
* `chr1` against a `1`-named reference) still lines up.
|
|
27
|
+
*/
|
|
28
|
+
export declare function makeAssembly(opts: MakeAssemblyOptions): {
|
|
29
|
+
name: string;
|
|
30
|
+
aliases: string[];
|
|
31
|
+
sequence: {
|
|
32
|
+
type: string;
|
|
33
|
+
trackId: string;
|
|
34
|
+
adapter: {
|
|
35
|
+
uri: string;
|
|
36
|
+
faiLocation?: {
|
|
37
|
+
uri: string;
|
|
38
|
+
} | undefined;
|
|
39
|
+
gziLocation?: {
|
|
40
|
+
uri: string;
|
|
41
|
+
} | undefined;
|
|
42
|
+
};
|
|
43
|
+
};
|
|
44
|
+
refNameAliases?: {
|
|
45
|
+
uri: string;
|
|
46
|
+
} | undefined;
|
|
47
|
+
} | {
|
|
48
|
+
name: string;
|
|
49
|
+
aliases: string[];
|
|
50
|
+
uri: string;
|
|
51
|
+
refNameAliases?: {
|
|
52
|
+
uri: string;
|
|
53
|
+
} | undefined;
|
|
54
|
+
};
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// sequence extensions core's own guesser recognizes (plugins/sequence)
|
|
2
|
+
const SEQUENCE_EXT_RE = /\.(fa|fasta|fas|fna|mfa|2bit)(\.b?gz)?$/i;
|
|
3
|
+
function cleanUri(uri) {
|
|
4
|
+
return uri.split(/[?#]/)[0] ?? uri;
|
|
5
|
+
}
|
|
6
|
+
/** true when a string names a sequence file (vs. a hub name like `hg38`) */
|
|
7
|
+
export function isSequenceUri(uri) {
|
|
8
|
+
return SEQUENCE_EXT_RE.test(cleanUri(uri));
|
|
9
|
+
}
|
|
10
|
+
/** strip path and sequence extension: `.../hg19.fa.gz` -> `hg19` */
|
|
11
|
+
export function assemblyNameFromUri(uri) {
|
|
12
|
+
const file = cleanUri(uri).split('/').at(-1) ?? uri;
|
|
13
|
+
return file.replace(SEQUENCE_EXT_RE, '');
|
|
14
|
+
}
|
|
15
|
+
/**
|
|
16
|
+
* Build an assembly config for a sequence file (indexed FASTA, bgzipped FASTA,
|
|
17
|
+
* or `.2bit`) — the boilerplate you'd otherwise write by hand. In the common
|
|
18
|
+
* case it is the flat `{ name, uri }` shorthand: jbrowse-core's assembly config
|
|
19
|
+
* picks the concrete adapter type (`IndexedFastaAdapter`/`BgzipFastaAdapter`/
|
|
20
|
+
* `TwoBitAdapter`) from the extension, derives the `.fai`/`.gzi` siblings, and
|
|
21
|
+
* fills in the `ReferenceSequenceTrack` at load time, so no adapter-type
|
|
22
|
+
* knowledge lives here. A non-sibling index (`faiUri`/`gziUri`) widens `sequence`
|
|
23
|
+
* to its adapter form, the only shape with a slot for the override.
|
|
24
|
+
* `refNameAliasesUri` points at a tab-separated aliases file (as UCSC publishes)
|
|
25
|
+
* so a track whose reference names differ from the sequence (e.g. a BAM using
|
|
26
|
+
* `chr1` against a `1`-named reference) still lines up.
|
|
27
|
+
*/
|
|
28
|
+
export function makeAssembly(opts) {
|
|
29
|
+
const { fastaUri, name = assemblyNameFromUri(fastaUri), faiUri, gziUri, aliases = [], refNameAliasesUri, } = opts;
|
|
30
|
+
return {
|
|
31
|
+
name,
|
|
32
|
+
aliases,
|
|
33
|
+
// flat { name, uri } shorthand; a non-sibling index has no home there, so it
|
|
34
|
+
// widens to the sequence.adapter form (the bare uri still infers the type)
|
|
35
|
+
...(faiUri || gziUri
|
|
36
|
+
? {
|
|
37
|
+
sequence: {
|
|
38
|
+
type: 'ReferenceSequenceTrack',
|
|
39
|
+
trackId: `${name}-ReferenceSequenceTrack`,
|
|
40
|
+
adapter: {
|
|
41
|
+
uri: fastaUri,
|
|
42
|
+
...(faiUri ? { faiLocation: { uri: faiUri } } : {}),
|
|
43
|
+
...(gziUri ? { gziLocation: { uri: gziUri } } : {}),
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
}
|
|
47
|
+
: { uri: fastaUri }),
|
|
48
|
+
...(refNameAliasesUri
|
|
49
|
+
? { refNameAliases: { uri: refNameAliasesUri } }
|
|
50
|
+
: {}),
|
|
51
|
+
};
|
|
52
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a track id from a track name, shared by the add-track workflows so the
|
|
3
|
+
* slug rule lives in one place. `timestamp` defaults to now but can be pinned so
|
|
4
|
+
* a batch of tracks shares it; `index` then disambiguates ids within that batch
|
|
5
|
+
* when several files share a name. Admin-vs-session is not encoded in the id —
|
|
6
|
+
* it follows from where the session stores the track (`sessionTracks` vs the
|
|
7
|
+
* base config), which is also what drives the selector's "Session tracks" group
|
|
8
|
+
* (see generateHierarchy).
|
|
9
|
+
*/
|
|
10
|
+
export declare function makeTrackId({ name, timestamp, index, }: {
|
|
11
|
+
name: string;
|
|
12
|
+
timestamp?: number;
|
|
13
|
+
index?: number;
|
|
14
|
+
}): string;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Build a track id from a track name, shared by the add-track workflows so the
|
|
3
|
+
* slug rule lives in one place. `timestamp` defaults to now but can be pinned so
|
|
4
|
+
* a batch of tracks shares it; `index` then disambiguates ids within that batch
|
|
5
|
+
* when several files share a name. Admin-vs-session is not encoded in the id —
|
|
6
|
+
* it follows from where the session stores the track (`sessionTracks` vs the
|
|
7
|
+
* base config), which is also what drives the selector's "Session tracks" group
|
|
8
|
+
* (see generateHierarchy).
|
|
9
|
+
*/
|
|
10
|
+
export function makeTrackId({ name, timestamp = Date.now(), index, }) {
|
|
11
|
+
const slug = name.trim().toLowerCase().replaceAll(' ', '_');
|
|
12
|
+
const suffix = index === undefined ? '' : `-${index}`;
|
|
13
|
+
return `${slug}-${timestamp}${suffix}`;
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test whether a `trackId` matches any of the given patterns, exactly as
|
|
3
|
+
* written. A session copy of a track carries a timestamp suffix on its id (see
|
|
4
|
+
* {@link makeTrackId} / {@link copyTrackSnapshot}), so a plain string misses
|
|
5
|
+
* the user's copies and matching them means passing a `RegExp` yourself.
|
|
6
|
+
*
|
|
7
|
+
* To scope an extension point contribution to a track, use
|
|
8
|
+
* `matchesTrackSelector` from `@jbrowse/core/ui` instead: it takes the same
|
|
9
|
+
* patterns and normalizes the copy suffix, which is the part nobody remembers.
|
|
10
|
+
*/
|
|
11
|
+
export declare function matchTrackId(trackId: string | undefined, patterns: (string | RegExp)[]): boolean;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Test whether a `trackId` matches any of the given patterns, exactly as
|
|
3
|
+
* written. A session copy of a track carries a timestamp suffix on its id (see
|
|
4
|
+
* {@link makeTrackId} / {@link copyTrackSnapshot}), so a plain string misses
|
|
5
|
+
* the user's copies and matching them means passing a `RegExp` yourself.
|
|
6
|
+
*
|
|
7
|
+
* To scope an extension point contribution to a track, use
|
|
8
|
+
* `matchesTrackSelector` from `@jbrowse/core/ui` instead: it takes the same
|
|
9
|
+
* patterns and normalizes the copy suffix, which is the part nobody remembers.
|
|
10
|
+
*/
|
|
11
|
+
export function matchTrackId(trackId, patterns) {
|
|
12
|
+
return (trackId !== undefined &&
|
|
13
|
+
patterns.some(pattern => typeof pattern === 'string' ? pattern === trackId : pattern.test(trackId)));
|
|
14
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export declare function measureText(str: unknown, fontSize?: number, fontFamily?: string): number;
|
|
2
|
+
export interface MeasuredFont {
|
|
3
|
+
/** assign to `ctx.font` */
|
|
4
|
+
css: string;
|
|
5
|
+
/** width of `text` in that same font, in px */
|
|
6
|
+
measure: (text: string) => number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* A CSS font string and its own measurement, built from one set of inputs so a
|
|
10
|
+
* caller cannot paint in one font and reserve room in another.
|
|
11
|
+
*
|
|
12
|
+
* Two files describing one font is the normal shape — something measures to
|
|
13
|
+
* decide whether a label fits, something else sets `ctx.font` and draws it — and
|
|
14
|
+
* the two drift silently, because a label that overflows its box by a pixel
|
|
15
|
+
* looks like a label. plugin-maf drew its deletion count in `bold 10px Courier
|
|
16
|
+
* New,monospace` and measured it here without naming the family, so a monospace
|
|
17
|
+
* label was answered from the Helvetica table above: 0.55px short per digit,
|
|
18
|
+
* which its 2px of padding covered for exactly three digits and no more.
|
|
19
|
+
*
|
|
20
|
+
* `weight` reaches the CSS and not the measurement, which is right for the
|
|
21
|
+
* digits these callers measure — monospace bold and regular share an advance,
|
|
22
|
+
* and Helvetica's ten digits are one width in either.
|
|
23
|
+
*/
|
|
24
|
+
export declare function measuredFont(fontSize: number, fontFamily: string, weight?: string): MeasuredFont;
|