@jbrowse/core 4.3.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +783 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +84 -65
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +326 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +68 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +195 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +265 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +49 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +136 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +368 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +9 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +124 -4
- package/esm/ui/MenuTypes.js +13 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -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 +36 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +44 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +23 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +52 -0
- package/esm/util/cacheBudgets.js +52 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +117 -0
- package/esm/util/createStopTokenRotation.js +147 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +160 -0
- package/esm/util/hooks.js +416 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +136 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +194 -0
- package/esm/util/installFetch.js +178 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +89 -0
- package/esm/util/mstUtils.js +122 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +113 -0
- package/esm/util/pluginStore.js +253 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +42 -1
- package/esm/util/range.js +59 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +14 -1
- package/esm/util/rxjs.js +39 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +120 -0
- package/esm/util/tabix.js +143 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +350 -30
- package/esm/util/tracks.js +574 -192
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +358 -119
- package/esm/util/types/index.js +87 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +58 -0
- package/esm/util/viewStatus.js +20 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Minimal row-packing primitive for integer-indexed 1D layouts.
|
|
3
|
+
*
|
|
4
|
+
* `rows[y]` is a flat `[s1,e1,s2,e2,...]` sorted ascending by start, where
|
|
5
|
+
* intervals within a row never overlap. `placeRect` finds the first row
|
|
6
|
+
* with no collision (or appends a new row), inserts `[start, end+2]`,
|
|
7
|
+
* and returns the row INDEX (0, 1, 2, ...).
|
|
8
|
+
*
|
|
9
|
+
* How this differs from `GranularRectLayout` in this same folder, and
|
|
10
|
+
* why this exists as a separate primitive:
|
|
11
|
+
*
|
|
12
|
+
* - **Keys:** GranularRectLayout keys rectangles by string ID in a
|
|
13
|
+
* `Map`, so re-adding an id returns the row it already holds;
|
|
14
|
+
* `placeRect` has no ID and no rectangle object. Callers with numeric
|
|
15
|
+
* indices (e.g. BAM read indices) don't pay the cost of allocating
|
|
16
|
+
* string IDs, Rectangle objects, or the outer Map — they use a
|
|
17
|
+
* `Uint16Array` of row indices instead.
|
|
18
|
+
*
|
|
19
|
+
* - **Scaling / height:** GranularRectLayout has `pitchX`, `pitchY`,
|
|
20
|
+
* multi-row rectangle heights, `maxHeight` / `hardRowLimit`, and
|
|
21
|
+
* returns pixel `top` values. `placeRect` is unit-agnostic (bp or
|
|
22
|
+
* px), one-row-per-rect, no limits, and returns a row index.
|
|
23
|
+
*
|
|
24
|
+
* - **State ownership:** GranularRectLayout is a class with internal
|
|
25
|
+
* state; `placeRect` is a pure function operating on a caller-owned
|
|
26
|
+
* `number[][]` array, so memory lifetime matches the caller's scope.
|
|
27
|
+
*
|
|
28
|
+
* Neither hit-tests: both are packing only, and consumers that need
|
|
29
|
+
* hit-testing build a Flatbush over the result.
|
|
30
|
+
*
|
|
31
|
+
* Use `placeRect` for tight per-call layouts over typed-array data
|
|
32
|
+
* (alignments pileup and chain rendering). Use `GranularRectLayout`
|
|
33
|
+
* when rects have variable heights or the layout needs a row limit
|
|
34
|
+
* (feature/gene tracks).
|
|
35
|
+
*
|
|
36
|
+
* Per-row complexity:
|
|
37
|
+
* - O(1) append when the row's last end ≤ new start (start-sorted
|
|
38
|
+
* input — the common case)
|
|
39
|
+
* - O(log M) collision + insertion-point lookup for wide rows via
|
|
40
|
+
* binary search on ends. Ends are monotone within a row because
|
|
41
|
+
* intervals are non-overlapping and sorted by start.
|
|
42
|
+
* - O(M) for the splice shift when inserting mid-row; only taken
|
|
43
|
+
* once per placement, and only when the fast-path misses.
|
|
44
|
+
*
|
|
45
|
+
* @param rows mutable `number[][]` — each row is `[s1,e1,s2,e2,...]`
|
|
46
|
+
* @param start rect start (any numeric unit — bp, px, etc.)
|
|
47
|
+
* @param end rect end (exclusive)
|
|
48
|
+
* @returns the row index the rect was placed in
|
|
49
|
+
*/
|
|
50
|
+
export function placeRect(rows, start, end) {
|
|
51
|
+
const paddedEnd = end + 2;
|
|
52
|
+
let y = rows.length;
|
|
53
|
+
for (let r = 0; r < rows.length; r++) {
|
|
54
|
+
const row = rows[r];
|
|
55
|
+
const len = row.length;
|
|
56
|
+
// Fast path: entire row ends before new start → O(1) append.
|
|
57
|
+
if (row[len - 1] <= start) {
|
|
58
|
+
row.push(start, paddedEnd);
|
|
59
|
+
y = r;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
// Find j = first index where interval end > start. Only intervals
|
|
63
|
+
// at/after j can possibly collide with [start, paddedEnd).
|
|
64
|
+
let j;
|
|
65
|
+
if (len < 32) {
|
|
66
|
+
j = 0;
|
|
67
|
+
while (row[j + 1] <= start) {
|
|
68
|
+
j += 2;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
else {
|
|
72
|
+
let lo = 0;
|
|
73
|
+
let hi = len >>> 1;
|
|
74
|
+
while (lo < hi) {
|
|
75
|
+
const mid = (lo + hi) >>> 1;
|
|
76
|
+
if (row[(mid << 1) + 1] <= start) {
|
|
77
|
+
lo = mid + 1;
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
hi = mid;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
j = lo << 1;
|
|
84
|
+
}
|
|
85
|
+
// Only interval j can collide — if its start is past paddedEnd there
|
|
86
|
+
// is a gap and we insert at j; otherwise we collide and try next row.
|
|
87
|
+
if (row[j] >= paddedEnd) {
|
|
88
|
+
row.splice(j, 0, start, paddedEnd);
|
|
89
|
+
y = r;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (y === rows.length) {
|
|
94
|
+
rows.push([start, paddedEnd]);
|
|
95
|
+
}
|
|
96
|
+
return y;
|
|
97
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
export interface LeadingEdgeAutorunOptions {
|
|
3
|
+
/** autorun name, for the MobX devtools/spy stream */
|
|
4
|
+
name: string;
|
|
5
|
+
/** how long to coalesce reruns once the body has started work once */
|
|
6
|
+
delay: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* An autorun that runs on the leading edge until its body reports having
|
|
10
|
+
* started work, and debounces every run after that.
|
|
11
|
+
*
|
|
12
|
+
* MobX's own `autorun(fn, { delay })` is trailing-edge only: it schedules the
|
|
13
|
+
* *first* run through `setTimeout` too, so a cold open waits the whole delay
|
|
14
|
+
* for no interaction to coalesce, and that latency lands directly on first
|
|
15
|
+
* paint. Measured on the per-region fetch autorun, display creation to first
|
|
16
|
+
* `fetchNeeded`: 683 ms under `{ delay: 600 }`, 112 ms under this.
|
|
17
|
+
*
|
|
18
|
+
* **The body returns `true` when it started the work the delay exists to
|
|
19
|
+
* coalesce**, and that is what arms the debounce. Runs that bail on a guard —
|
|
20
|
+
* a view not measured yet, a minimized track, a prerequisite that has not
|
|
21
|
+
* landed — return nothing and stay on the leading edge, so the timer is never
|
|
22
|
+
* armed by work that did not happen. Priming off the body's return rather than
|
|
23
|
+
* an imperative `prime()` call is what makes a bail-out path unable to arm it
|
|
24
|
+
* by accident: there is nothing to forget and nothing to misplace.
|
|
25
|
+
*
|
|
26
|
+
* **The leading edge is a microtask, not the install call itself**, and that
|
|
27
|
+
* one hop is what keeps the debounce's whole point. A model is routinely built
|
|
28
|
+
* and then configured in the same synchronous block — a session applying a
|
|
29
|
+
* display setting, a caller flipping a mode right after `create` — and a fetch
|
|
30
|
+
* issued between those two lines is issued against the un-configured state,
|
|
31
|
+
* invalidated by the setting that follows, and reissued. Yielding once collapses
|
|
32
|
+
* every such pair back into one run, while still starting three orders of
|
|
33
|
+
* magnitude sooner than the timer did. What it deliberately does not coalesce is
|
|
34
|
+
* a change that arrives after an await: that is a later decision, and it costs
|
|
35
|
+
* the refetch it should.
|
|
36
|
+
*
|
|
37
|
+
* The debounce is per-installation, so two autoruns on one model coalesce
|
|
38
|
+
* independently.
|
|
39
|
+
*/
|
|
40
|
+
export declare function leadingEdgeAutorun(self: IAnyStateTreeNode, body: () => boolean | void, { name, delay }: LeadingEdgeAutorunOptions): import("mobx").IReactionDisposer;
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { namedAutorun } from '@jbrowse/render-core/namedReactions';
|
|
2
|
+
/**
|
|
3
|
+
* An autorun that runs on the leading edge until its body reports having
|
|
4
|
+
* started work, and debounces every run after that.
|
|
5
|
+
*
|
|
6
|
+
* MobX's own `autorun(fn, { delay })` is trailing-edge only: it schedules the
|
|
7
|
+
* *first* run through `setTimeout` too, so a cold open waits the whole delay
|
|
8
|
+
* for no interaction to coalesce, and that latency lands directly on first
|
|
9
|
+
* paint. Measured on the per-region fetch autorun, display creation to first
|
|
10
|
+
* `fetchNeeded`: 683 ms under `{ delay: 600 }`, 112 ms under this.
|
|
11
|
+
*
|
|
12
|
+
* **The body returns `true` when it started the work the delay exists to
|
|
13
|
+
* coalesce**, and that is what arms the debounce. Runs that bail on a guard —
|
|
14
|
+
* a view not measured yet, a minimized track, a prerequisite that has not
|
|
15
|
+
* landed — return nothing and stay on the leading edge, so the timer is never
|
|
16
|
+
* armed by work that did not happen. Priming off the body's return rather than
|
|
17
|
+
* an imperative `prime()` call is what makes a bail-out path unable to arm it
|
|
18
|
+
* by accident: there is nothing to forget and nothing to misplace.
|
|
19
|
+
*
|
|
20
|
+
* **The leading edge is a microtask, not the install call itself**, and that
|
|
21
|
+
* one hop is what keeps the debounce's whole point. A model is routinely built
|
|
22
|
+
* and then configured in the same synchronous block — a session applying a
|
|
23
|
+
* display setting, a caller flipping a mode right after `create` — and a fetch
|
|
24
|
+
* issued between those two lines is issued against the un-configured state,
|
|
25
|
+
* invalidated by the setting that follows, and reissued. Yielding once collapses
|
|
26
|
+
* every such pair back into one run, while still starting three orders of
|
|
27
|
+
* magnitude sooner than the timer did. What it deliberately does not coalesce is
|
|
28
|
+
* a change that arrives after an await: that is a later decision, and it costs
|
|
29
|
+
* the refetch it should.
|
|
30
|
+
*
|
|
31
|
+
* The debounce is per-installation, so two autoruns on one model coalesce
|
|
32
|
+
* independently.
|
|
33
|
+
*/
|
|
34
|
+
export function leadingEdgeAutorun(self, body, { name, delay }) {
|
|
35
|
+
let primed = false;
|
|
36
|
+
return namedAutorun(self, () => {
|
|
37
|
+
if (body()) {
|
|
38
|
+
primed = true;
|
|
39
|
+
}
|
|
40
|
+
}, {
|
|
41
|
+
name,
|
|
42
|
+
scheduler: run => {
|
|
43
|
+
if (primed) {
|
|
44
|
+
setTimeout(run, delay);
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
queueMicrotask(run);
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
});
|
|
51
|
+
}
|
package/esm/util/librpc.d.ts
CHANGED
|
@@ -1,2 +1,5 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export
|
|
1
|
+
export { default as RpcClient } from '../rpc/RpcClient.ts';
|
|
2
|
+
export { default as RpcServer, rpcResult, rpcResultWithArrayBuffers, } from '../rpc/RpcServer.ts';
|
|
3
|
+
export type { RpcResult } from '../rpc/RpcServer.ts';
|
|
4
|
+
export { isRpcResult, unwrapRpcResult } from './rpc.ts';
|
|
5
|
+
export { deserializeError, serializeError, } from '../rpc/serializeError/index.ts';
|
package/esm/util/librpc.js
CHANGED
|
@@ -1 +1,6 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { default as RpcClient } from '../rpc/RpcClient.js';
|
|
2
|
+
export { default as RpcServer, rpcResult, rpcResultWithArrayBuffers, } from '../rpc/RpcServer.js';
|
|
3
|
+
// the inverse of rpcResult, for a deserializeReturn rebuilding the caller's
|
|
4
|
+
// value out of what the worker sent
|
|
5
|
+
export { isRpcResult, unwrapRpcResult } from './rpc.js';
|
|
6
|
+
export { deserializeError, serializeError, } from '../rpc/serializeError/index.js';
|
package/esm/util/linkify.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
// based on autolink-js, license MIT
|
|
2
|
+
// https://github.com/bryanwoods/autolink-js/blob/1418049970152c56ced73d43dcc62d80b320fb71/autolink.js#L9
|
|
1
3
|
const URL_PATTERN = /(^|[\s\n]|<[A-Za-z]*\/?>)((?:https?|ftp):\/\/[-A-Z0-9+\u0026\u2019@#/%?=()~_|!:,.;]*[-A-Z0-9+\u0026@#/%=~()_|])/gi;
|
|
2
4
|
export function linkify(s) {
|
|
3
5
|
URL_PATTERN.lastIndex = 0;
|
package/esm/util/locString.d.ts
CHANGED
|
@@ -5,5 +5,77 @@ export interface ParsedLocString {
|
|
|
5
5
|
end?: number;
|
|
6
6
|
reversed?: boolean;
|
|
7
7
|
}
|
|
8
|
+
export declare class UnknownRefNameError extends Error {
|
|
9
|
+
name: string;
|
|
10
|
+
}
|
|
8
11
|
export declare function parseLocStringOneBased(locString: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): ParsedLocString;
|
|
9
12
|
export declare function parseLocString(locString: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): ParsedLocString;
|
|
13
|
+
/**
|
|
14
|
+
* Assemble a 1-based "locString" from an interbase genomic location
|
|
15
|
+
* @param region - Region
|
|
16
|
+
* @example
|
|
17
|
+
* ```ts
|
|
18
|
+
* assembleLocString({ refName: 'chr1', start: 0, end: 100 })
|
|
19
|
+
* // ↳ 'chr1:1..100'
|
|
20
|
+
* ```
|
|
21
|
+
* @example
|
|
22
|
+
* ```ts
|
|
23
|
+
* assembleLocString({ assemblyName: 'hg19', refName: 'chr1', start: 0, end: 100 })
|
|
24
|
+
* // ↳ '{hg19}chr1:1..100'
|
|
25
|
+
* ```
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* assembleLocString({ refName: 'chr1' })
|
|
29
|
+
* // ↳ 'chr1'
|
|
30
|
+
* ```
|
|
31
|
+
* @example
|
|
32
|
+
* ```ts
|
|
33
|
+
* assembleLocString({ refName: 'chr1', start: 0 })
|
|
34
|
+
* // ↳ 'chr1:1..'
|
|
35
|
+
* ```
|
|
36
|
+
* @example
|
|
37
|
+
* ```ts
|
|
38
|
+
* assembleLocString({ refName: 'chr1', end: 100 })
|
|
39
|
+
* // ↳ 'chr1:1..100'
|
|
40
|
+
* ```
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* assembleLocString({ refName: 'chr1', start: 0, end: 1 })
|
|
44
|
+
* // ↳ 'chr1:1'
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare function assembleLocString(region: ParsedLocString): string;
|
|
48
|
+
/**
|
|
49
|
+
* Same as {@link assembleLocString}, but with the coordinates left unformatted:
|
|
50
|
+
* no thousand separators, and never affected by the `numberGrouping` display
|
|
51
|
+
* preference. Use this wherever the result is compared, keyed on, or parsed
|
|
52
|
+
* rather than read — block keys, dedup buckets, locStrings handed back to
|
|
53
|
+
* `parseLocString` — both because it is faster (block calculations assemble a
|
|
54
|
+
* great many of these) and because a display convention shifting under an
|
|
55
|
+
* identity string is a correctness bug, not a cosmetic one.
|
|
56
|
+
*/
|
|
57
|
+
export declare function assembleLocStringRaw(region: ParsedLocString): string;
|
|
58
|
+
/**
|
|
59
|
+
* One space-separated string for a set of regions — what the header of a
|
|
60
|
+
* multi-region view says it is showing, and what an export of those regions
|
|
61
|
+
* labels itself with.
|
|
62
|
+
*
|
|
63
|
+
* The assembly name appears only when the regions disagree about it: naming it
|
|
64
|
+
* on every one of a dozen same-assembly blocks is noise, and dropping it where
|
|
65
|
+
* they differ loses the only thing telling them apart.
|
|
66
|
+
*/
|
|
67
|
+
export declare function assembleLocStrings(regions: ParsedLocString[]): string;
|
|
68
|
+
export declare function compareLocs(locA: ParsedLocString, locB: ParsedLocString): number;
|
|
69
|
+
export declare function compareLocStrings(a: string, b: string, isValidRefName: (refName: string, assemblyName?: string) => boolean): number;
|
|
70
|
+
/**
|
|
71
|
+
* A cursor/coordinate readout: `{assembly}chr1:1,234`, with the refName
|
|
72
|
+
* shortened and the coordinate locale-grouped. The *display* counterpart to
|
|
73
|
+
* {@link assembleLocString} — this one is for showing a single position to a
|
|
74
|
+
* user, never for a location string that will be parsed back.
|
|
75
|
+
*/
|
|
76
|
+
export declare function stringify({ refName, coord, assemblyName, oob, }: {
|
|
77
|
+
assemblyName?: string;
|
|
78
|
+
coord: number;
|
|
79
|
+
refName?: string;
|
|
80
|
+
oob?: boolean;
|
|
81
|
+
}, useAssemblyName?: boolean): string;
|
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;
|