@jbrowse/core 4.3.0 → 5.0.0-beta.10
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 +1994 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +14 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +36 -23
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +10 -7
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +124 -21
- 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 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +12 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +19 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +18 -23
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +9 -6
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +33 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetailsFrame.js +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -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 +19 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +4 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +8 -6
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +7 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +15 -20
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +50 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +9 -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 +35 -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 +3 -3
- 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 +20 -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 +62 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +69 -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/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.d.ts +1 -1
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +22 -0
- package/esm/BaseFeatureWidget/formatDetails.js +82 -0
- package/esm/BaseFeatureWidget/index.d.ts +4 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +102 -71
- package/esm/BaseFeatureWidget/stateModelFactory.js +162 -63
- package/esm/BaseFeatureWidget/types.d.ts +15 -8
- package/esm/BaseFeatureWidget/util.d.ts +2 -37
- package/esm/BaseFeatureWidget/util.js +4 -85
- package/esm/CorePlugin.js +12 -7
- 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 +55 -44
- package/esm/PluginLoader.js +290 -90
- package/esm/PluginManager.d.ts +476 -57
- package/esm/PluginManager.js +480 -91
- package/esm/ReExports/MuiDataGridReExports.d.ts +3 -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/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +528 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +488 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +68 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +433 -160
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -146
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/registry.d.ts +3 -0
- package/esm/ReExports/registry.js +46 -0
- package/esm/ReExports/uiStub.d.ts +3 -0
- package/esm/ReExports/uiStub.js +33 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +11 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +30 -36
- package/esm/TextSearch/TextSearchManager.js +138 -44
- package/esm/TextSearch/places.d.ts +12 -0
- package/esm/TextSearch/places.js +94 -0
- package/esm/assemblyManager/assembly.d.ts +310 -35
- package/esm/assemblyManager/assembly.js +554 -263
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +24 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +135 -19
- package/esm/assemblyManager/assemblyConfigSchema.js +205 -23
- package/esm/assemblyManager/assemblyManager.d.ts +586 -323
- package/esm/assemblyManager/assemblyManager.js +352 -51
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +39 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +114 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +44 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +19 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +22 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/indexAssemblyNames.d.ts +9 -0
- package/esm/assemblyManager/indexAssemblyNames.js +22 -0
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +75 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMapKey.d.ts +7 -0
- package/esm/assemblyManager/refNameMapKey.js +12 -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 +13 -0
- package/esm/checkPlugins.js +98 -0
- package/esm/configuration/bamIndexFields.d.ts +49 -0
- package/esm/configuration/bamIndexFields.js +41 -0
- package/esm/configuration/configurationSchema.d.ts +194 -29
- package/esm/configuration/configurationSchema.js +439 -145
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +56 -0
- package/esm/configuration/configurationSlot.d.ts +373 -30
- package/esm/configuration/configurationSlot.js +231 -224
- package/esm/configuration/fillLocations.d.ts +14 -0
- package/esm/configuration/fillLocations.js +14 -0
- package/esm/configuration/formatAboutConfigSchema.d.ts +41 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +54 -0
- package/esm/configuration/formatDetailsConfigSchema.js +87 -0
- package/esm/configuration/fullConfSnapshot.d.ts +13 -0
- package/esm/configuration/fullConfSnapshot.js +44 -0
- package/esm/configuration/getConf.d.ts +92 -0
- package/esm/configuration/getConf.js +141 -0
- package/esm/configuration/index.d.ts +32 -3
- package/esm/configuration/index.js +27 -2
- package/esm/configuration/indexType.d.ts +26 -0
- package/esm/configuration/indexType.js +38 -0
- package/esm/configuration/mergeFormatCallbacks.d.ts +14 -0
- package/esm/configuration/mergeFormatCallbacks.js +27 -0
- package/esm/configuration/readConfObject.d.ts +34 -0
- package/esm/configuration/readConfObject.js +118 -0
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +52 -0
- package/esm/configuration/schemaRegistry.js +48 -0
- package/esm/configuration/schemaTypes.d.ts +39 -0
- package/esm/configuration/schemaTypes.js +105 -0
- package/esm/configuration/slotFacade.d.ts +65 -0
- package/esm/configuration/slotFacade.js +110 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/snapshotPreprocess.d.ts +43 -0
- package/esm/configuration/snapshotPreprocess.js +161 -0
- package/esm/configuration/tabixIndexFields.d.ts +70 -0
- package/esm/configuration/tabixIndexFields.js +62 -0
- package/esm/configuration/tabixShorthand.d.ts +51 -0
- package/esm/configuration/tabixShorthand.js +72 -0
- package/esm/configuration/types.d.ts +315 -13
- package/esm/configuration/uriShorthand.d.ts +9 -0
- package/esm/configuration/uriShorthand.js +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +19 -11
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +19 -18
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +158 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +164 -29
- 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 +40 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +31 -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 +28 -6
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +37 -0
- package/esm/data_adapters/BaseAdapter/rowSources.js +7 -0
- 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 -13
- 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/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +5 -5
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +34 -6
- package/esm/data_adapters/CytobandAdapter/configSchema.js +47 -17
- 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 +53 -2
- package/esm/data_adapters/dataAdapterCache.js +99 -25
- package/esm/data_adapters/getFeatureAdapter.d.ts +24 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +19 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +42 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +57 -7
- 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 +54 -14
- package/esm/pluggableElementTypes/DisplayType.js +30 -7
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/LazyStateModelElement.d.ts +32 -0
- package/esm/pluggableElementTypes/LazyStateModelElement.js +77 -0
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +11 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +11 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +142 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +279 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +18 -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 +7 -7
- 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 +22 -5
- package/esm/pluggableElementTypes/ViewType.js +40 -5
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +88 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +29 -0
- package/esm/pluggableElementTypes/extendElementType.js +72 -0
- package/esm/pluggableElementTypes/index.d.ts +8 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +80 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +643 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +230 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +246 -37
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +416 -107
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +236 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +154 -16
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +169 -25
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +178 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +26 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +31 -17
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +142 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +215 -90
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +111 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +54 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +50 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +147 -0
- package/esm/pluggableElementTypes/models/index.d.ts +5 -3
- package/esm/pluggableElementTypes/models/index.js +9 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +48 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +114 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +10 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +272 -100
- 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 +225 -0
- package/esm/pluginDefinitions.js +254 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +68 -106
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +23 -29
- package/esm/rpc/RpcClient.d.ts +50 -0
- package/esm/rpc/RpcClient.js +189 -0
- package/esm/rpc/RpcManager.d.ts +120 -27
- package/esm/rpc/RpcManager.js +187 -50
- package/esm/rpc/RpcRegistry.d.ts +298 -0
- package/esm/rpc/RpcServer.d.ts +43 -0
- package/esm/rpc/RpcServer.js +242 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +78 -24
- package/esm/rpc/WebWorkerRpcDriver.js +311 -30
- package/esm/rpc/byteBudget.d.ts +64 -0
- package/esm/rpc/byteBudget.js +61 -0
- package/esm/rpc/configSchema.d.ts +13 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +6 -5
- package/esm/rpc/coreRpcMethods.js +13 -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/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +32 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +16 -0
- package/esm/rpc/methods/CoreGetEncodedLayers.js +59 -0
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +25 -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 +14 -18
- 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 +16 -15
- 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/methods/CoreLoadAdapterCode.d.ts +13 -0
- package/esm/rpc/methods/CoreLoadAdapterCode.js +16 -0
- package/esm/rpc/methods/layerFeatures.d.ts +33 -0
- package/esm/rpc/methods/layerFeatures.js +29 -0
- 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 +52 -0
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/exportViewSvg.d.ts +28 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +138 -0
- package/esm/svg/svgReady.js +165 -0
- package/esm/svg/trackNames.d.ts +29 -0
- package/esm/svg/trackNames.js +34 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +10 -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 +56 -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/AppReadyMarker.d.ts +45 -0
- package/esm/ui/AppReadyMarker.js +89 -0
- 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 +446 -42
- 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 +6 -5
- 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 +5 -4
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +51 -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 +129 -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 +436 -64
- 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 +11 -3
- package/esm/ui/HoverMenu.js +34 -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 +26 -0
- package/esm/ui/JexlFilterDialog.js +167 -0
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +30 -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 +139 -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 +95 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +10 -0
- package/esm/ui/MonospaceTextField.js +40 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +90 -0
- package/esm/ui/PaletteContext.js +142 -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/SearchOption.d.ts +13 -0
- package/esm/ui/RefNameAutocomplete/SearchOption.js +45 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +21 -0
- package/esm/ui/RefNameAutocomplete/index.js +84 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +62 -0
- package/esm/ui/RefNameAutocomplete/util.js +209 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +15 -7
- package/esm/ui/ResizeHandle.js +73 -53
- 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/ScrollChrome.d.ts +13 -0
- package/esm/ui/ScrollChrome.js +11 -0
- package/esm/ui/ScrollEdgeShadow.d.ts +41 -0
- package/esm/ui/ScrollEdgeShadow.js +77 -0
- package/esm/ui/ScrollZoomToggle.d.ts +15 -0
- package/esm/ui/ScrollZoomToggle.js +75 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SessionJsonPanel.d.ts +3 -0
- package/esm/ui/SessionJsonPanel.js +14 -0
- package/esm/ui/SettingsChangesTable.d.ts +15 -0
- package/esm/ui/SettingsChangesTable.js +87 -0
- package/esm/ui/ShareLinkField.d.ts +4 -0
- package/esm/ui/ShareLinkField.js +15 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +14 -0
- package/esm/ui/SizeSliderRow.js +48 -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 +96 -52
- 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 +18 -0
- package/esm/ui/SvgColorLegend.js +106 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +24 -0
- package/esm/ui/VerticalScrollbar.js +104 -0
- package/esm/ui/ViewLoadingScreen.d.ts +25 -0
- package/esm/ui/ViewLoadingScreen.js +52 -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/colorScale.d.ts +92 -0
- package/esm/ui/colorScale.js +72 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +125 -8
- package/esm/ui/colors.js +364 -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/hoverBoxStyle.d.ts +23 -0
- package/esm/ui/hoverBoxStyle.js +28 -0
- package/esm/ui/index.d.ts +77 -5
- package/esm/ui/index.js +83 -20
- 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 +46 -0
- package/esm/ui/legendMenuItem.d.ts +16 -0
- package/esm/ui/legendMenuItem.js +17 -0
- package/esm/ui/legendSpec.d.ts +69 -0
- package/esm/ui/legendSpec.js +69 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +24 -0
- package/esm/ui/makeSizeMenu.js +58 -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 +22 -0
- package/esm/ui/menuItemAdornment.js +28 -0
- package/esm/ui/menuItems.d.ts +23 -0
- package/esm/ui/menuItems.js +21 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +25 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +561 -0
- package/esm/ui/palette.js +785 -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/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 +268 -30
- package/esm/ui/theme.js +250 -350
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +61 -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/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -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 +207 -17
- package/esm/util/Base1DUtils.js +316 -173
- package/esm/util/Base1DViewModel.d.ts +99 -21
- package/esm/util/Base1DViewModel.js +151 -41
- 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 +83 -0
- package/esm/util/SvgCanvas.js +520 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +56 -4
- package/esm/util/aborting.js +112 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +40 -0
- package/esm/util/addAndShowTrack.d.ts +19 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +29 -0
- package/esm/util/addRelativeUris.js +78 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +91 -0
- package/esm/util/addTrackFromWidget.js +91 -0
- package/esm/util/aggregateFieldName.d.ts +10 -0
- package/esm/util/aggregateFieldName.js +8 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +135 -49
- package/esm/util/animationAllowed.d.ts +26 -0
- package/esm/util/animationAllowed.js +35 -0
- package/esm/util/applyRowResizeWheel.d.ts +15 -0
- package/esm/util/applyRowResizeWheel.js +23 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +63 -0
- package/esm/util/bandHeight.js +85 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +15 -0
- package/esm/util/bezierConnector.js +101 -0
- package/esm/util/bgzfWorkerPool.d.ts +24 -0
- package/esm/util/bgzfWorkerPool.js +27 -0
- package/esm/util/binnedAggregate.d.ts +17 -0
- package/esm/util/binnedAggregate.js +275 -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/categoricalField.d.ts +56 -0
- package/esm/util/categoricalField.js +73 -0
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +43 -0
- package/esm/util/clampToContig.js +47 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +2 -15
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +7 -2
- package/esm/util/color/index.d.ts +84 -3
- package/esm/util/color/index.js +197 -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 +155 -0
- package/esm/util/colorRamp.d.ts +81 -0
- package/esm/util/colorRamp.js +244 -0
- package/esm/util/colorScale.d.ts +156 -0
- package/esm/util/colorScale.js +243 -0
- package/esm/util/colorSchemes.d.ts +21 -0
- package/esm/util/colorSchemes.js +30 -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/createAbortRotation.d.ts +115 -0
- package/esm/util/createAbortRotation.js +116 -0
- package/esm/util/createSvgRasterCanvas.d.ts +17 -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/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- 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 +22 -0
- package/esm/util/diagonalizeRegions.js +187 -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/expandLooseSearchIndex.d.ts +19 -0
- package/esm/util/expandLooseSearchIndex.js +29 -0
- package/esm/util/featureTable.d.ts +224 -0
- package/esm/util/featureTable.js +366 -0
- package/esm/util/featureTransforms.d.ts +80 -0
- package/esm/util/featureTransforms.js +1579 -0
- package/esm/util/featureTypes.d.ts +24 -0
- package/esm/util/featureTypes.js +35 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +71 -0
- package/esm/util/fetchContext.d.ts +81 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +17 -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 +4 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- 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 +26 -0
- package/esm/util/freezeDeep.js +39 -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/groupKeys.d.ts +77 -0
- package/esm/util/groupKeys.js +155 -0
- package/esm/util/highlights.d.ts +25 -0
- package/esm/util/highlights.js +87 -0
- package/esm/util/hooks.d.ts +189 -0
- package/esm/util/hooks.js +485 -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 +137 -853
- package/esm/util/indexCandidates.d.ts +20 -0
- package/esm/util/indexCandidates.js +43 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +234 -0
- package/esm/util/installFetch.js +205 -0
- package/esm/util/installInitAutorun.d.ts +63 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/installPrerequisiteFetch.d.ts +115 -0
- package/esm/util/installPrerequisiteFetch.js +111 -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 +120 -12
- package/esm/util/isDataCurrent.d.ts +9 -0
- package/esm/util/isDataCurrent.js +12 -0
- package/esm/util/isTextEntryFocused.d.ts +7 -0
- package/esm/util/isTextEntryFocused.js +16 -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 +146 -19
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +68 -0
- package/esm/util/jexlFilters.js +61 -0
- package/esm/util/jexlStrings.d.ts +21 -1
- package/esm/util/jexlStrings.js +20 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +20 -25
- package/esm/util/layouts/GranularRectLayout.js +116 -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/lazyWithPreload.d.ts +19 -0
- package/esm/util/lazyWithPreload.js +27 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +72 -0
- package/esm/util/legendCandidates.js +138 -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/markEncoding.d.ts +150 -0
- package/esm/util/markEncoding.js +845 -0
- package/esm/util/markEncodingTypes.d.ts +588 -0
- package/esm/util/markEncodingTypes.js +8 -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 +3 -11
- package/esm/util/mst-reflection.js +3 -52
- package/esm/util/mstUtils.d.ts +97 -0
- package/esm/util/mstUtils.js +137 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +27 -0
- package/esm/util/numericUtils.js +143 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -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/openFeatureWidget.d.ts +38 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/openViews.d.ts +17 -0
- package/esm/util/openViews.js +22 -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 +44 -2
- package/esm/util/parseLineByLine.js +150 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +111 -0
- package/esm/util/pluginStore.js +254 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/preloadComponent.d.ts +5 -0
- package/esm/util/preloadComponent.js +11 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +821 -0
- package/esm/util/quantileExtent.d.ts +49 -0
- package/esm/util/quantileExtent.js +162 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +41 -0
- package/esm/util/renameRegions.js +143 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +60 -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 -2
- package/esm/util/rxjs.js +85 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/samplesTsv.d.ts +49 -0
- package/esm/util/samplesTsv.js +86 -0
- package/esm/util/scheduleDetachedDestroy.d.ts +18 -0
- package/esm/util/scheduleDetachedDestroy.js +24 -0
- package/esm/util/scrollLatch.d.ts +5 -0
- package/esm/util/scrollLatch.js +67 -0
- package/esm/util/selectEncodedFeature.d.ts +16 -0
- package/esm/util/selectEncodedFeature.js +34 -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 +40 -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/shapeNameList.d.ts +2 -0
- package/esm/util/shapeNameList.js +6 -0
- package/esm/util/shapeNames.d.ts +7 -0
- package/esm/util/shapeNames.js +11 -0
- package/esm/util/simpleFeature.d.ts +111 -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/starFusion.d.ts +26 -0
- package/esm/util/starFusion.js +37 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stepTables.d.ts +82 -0
- package/esm/util/stepTables.js +243 -0
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svAlt.d.ts +145 -0
- package/esm/util/svAlt.js +364 -0
- package/esm/util/svgColorProps.d.ts +18 -0
- package/esm/util/svgColorProps.js +55 -0
- package/esm/util/systemColorScheme.d.ts +12 -0
- package/esm/util/systemColorScheme.js +27 -0
- package/esm/util/tabix.d.ts +125 -0
- package/esm/util/tabix.js +148 -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/thresholdScale.d.ts +91 -0
- package/esm/util/thresholdScale.js +166 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +25 -0
- package/esm/util/timeGate.js +78 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +206 -0
- package/esm/util/tracks.d.ts +431 -30
- package/esm/util/tracks.js +952 -185
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- 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 +73 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +459 -121
- package/esm/util/types/index.js +96 -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 +74 -47
- package/esm/util/types/mst.js +31 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renameIds.d.ts +1 -0
- package/esm/util/types/renameIds.js +29 -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 +51 -0
- package/esm/util/unknownSnapshotKeys.js +82 -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 +55 -77
- package/esm/util/useFetch.d.ts +55 -0
- package/esm/util/useFetch.js +197 -0
- package/esm/util/useFetchPlugins.d.ts +16 -0
- package/esm/util/useFetchPlugins.js +18 -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 +9 -0
- package/esm/util/usePanelVirtualScroll.js +15 -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 +9 -0
- package/esm/util/useRowVirtualScroll.js +22 -0
- package/esm/util/useVirtualScrollWheel.d.ts +23 -0
- package/esm/util/useVirtualScrollWheel.js +74 -0
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +90 -0
- package/esm/util/viewStatus.js +54 -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 +65 -0
- package/esm/util/wheelZoom.js +297 -0
- package/esm/util/whenViewSettled.d.ts +74 -0
- package/esm/util/whenViewSettled.js +77 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +174 -0
- package/esm/util/withLaunchInput.js +274 -0
- package/package.json +290 -820
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -9
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.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/stopToken.d.ts +0 -19
- package/esm/util/stopToken.js +0 -90
- 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/{BaseFeatureWidget/BaseFeatureDetail/types.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
- /package/esm/data_adapters/BaseAdapter/{BaseOptions.js → zoomRange.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → rpc/RpcRegistry.js} +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
/**
|
|
3
|
+
* Free a tree an action has already let go of — a superseded session, a view
|
|
4
|
+
* taken out of one, a superseded rootModel the React host has detached.
|
|
5
|
+
*
|
|
6
|
+
* A task rather than a microtask: the wait is for React to unmount the
|
|
7
|
+
* components rendering it, which happens on the re-render that the action's own
|
|
8
|
+
* reactions schedule. Deferring is acceptable here, and is not elsewhere,
|
|
9
|
+
* because the node stays alive and detached until it fires — a late read gets a
|
|
10
|
+
* live tree nobody is rendering. ADR-069.
|
|
11
|
+
*
|
|
12
|
+
* The destroy itself is not optional. `beforeDestroy` is a plugin-facing
|
|
13
|
+
* contract (jbrowse-plugin-apollo aborts its in-flight fetches there) and core's
|
|
14
|
+
* `BaseTrackModel` releases the `rpcSessionId` claim that lets
|
|
15
|
+
* `CoreFreeResources` evict a parsed adapter from the worker — so detaching and
|
|
16
|
+
* forgetting would trade a console warning for an unbounded leak.
|
|
17
|
+
*/
|
|
18
|
+
export declare function scheduleDetachedDestroy(node: IAnyStateTreeNode): void;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { destroy, isAlive } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
/**
|
|
3
|
+
* Free a tree an action has already let go of — a superseded session, a view
|
|
4
|
+
* taken out of one, a superseded rootModel the React host has detached.
|
|
5
|
+
*
|
|
6
|
+
* A task rather than a microtask: the wait is for React to unmount the
|
|
7
|
+
* components rendering it, which happens on the re-render that the action's own
|
|
8
|
+
* reactions schedule. Deferring is acceptable here, and is not elsewhere,
|
|
9
|
+
* because the node stays alive and detached until it fires — a late read gets a
|
|
10
|
+
* live tree nobody is rendering. ADR-069.
|
|
11
|
+
*
|
|
12
|
+
* The destroy itself is not optional. `beforeDestroy` is a plugin-facing
|
|
13
|
+
* contract (jbrowse-plugin-apollo aborts its in-flight fetches there) and core's
|
|
14
|
+
* `BaseTrackModel` releases the `rpcSessionId` claim that lets
|
|
15
|
+
* `CoreFreeResources` evict a parsed adapter from the worker — so detaching and
|
|
16
|
+
* forgetting would trade a console warning for an unbounded leak.
|
|
17
|
+
*/
|
|
18
|
+
export function scheduleDetachedDestroy(node) {
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
if (isAlive(node)) {
|
|
21
|
+
destroy(node);
|
|
22
|
+
}
|
|
23
|
+
}, 0);
|
|
24
|
+
}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// Native browsers latch a wheel gesture to the inner scroller: once an inner
|
|
2
|
+
// panel starts consuming scroll, continued momentum stays in that panel even
|
|
3
|
+
// after it reaches its boundary, and only after the gesture pauses does scroll
|
|
4
|
+
// chain to the outer page. Raw wheel bubbling lacks this — the event spills to
|
|
5
|
+
// the page the instant the panel hits its limit, so a single continuous gesture
|
|
6
|
+
// scrolls the page unexpectedly. createScrollLatch reproduces the native
|
|
7
|
+
// behavior in one place so every wheel handler gets it identically.
|
|
8
|
+
// gap between wheel events long enough to count as a new gesture; continuous
|
|
9
|
+
// trackpad/mouse scrolling fires every ~16ms, so 200ms reliably marks a pause
|
|
10
|
+
const LATCH_TIMEOUT_MS = 200;
|
|
11
|
+
export function createScrollLatch(timeoutMs = LATCH_TIMEOUT_MS) {
|
|
12
|
+
// timestamp of the previous wheel event (any event, not just ones that
|
|
13
|
+
// moved the panel) and whether the current gesture has latched onto this
|
|
14
|
+
// panel by actually scrolling it. A gap > timeoutMs between events marks a
|
|
15
|
+
// pause, i.e. the start of a new gesture.
|
|
16
|
+
let lastEvent = -Infinity;
|
|
17
|
+
let latched = false;
|
|
18
|
+
return {
|
|
19
|
+
// Apply one wheel event to a vertical panel with native-style latching.
|
|
20
|
+
// Given the current scroll offset, the delta (already normalized to
|
|
21
|
+
// pixels), and the scrollable max (min defaults to 0), returns the clamped
|
|
22
|
+
// new offset when the panel moves, or null when it stays put. preventDefault
|
|
23
|
+
// fires both when the panel scrolls AND when it sits at a boundary mid-
|
|
24
|
+
// gesture, so the page only takes over after the gesture pauses. The whole
|
|
25
|
+
// boundary/latch/preventDefault contract lives here so no caller can derive
|
|
26
|
+
// it incorrectly — they just apply the returned offset.
|
|
27
|
+
//
|
|
28
|
+
// Latching keys off gesture continuity, not panel movement: once a
|
|
29
|
+
// continuous gesture has scrolled the panel it stays latched — suppressing
|
|
30
|
+
// page scroll — through any amount of continued over-scroll at the
|
|
31
|
+
// boundary, and only releases after the wheel events actually pause. A
|
|
32
|
+
// gesture that *starts* at the boundary never latches, so it chains to the
|
|
33
|
+
// page immediately (native behavior).
|
|
34
|
+
scroll(e, cur, delta, max, min = 0) {
|
|
35
|
+
if (e.timeStamp - lastEvent >= timeoutMs) {
|
|
36
|
+
latched = false;
|
|
37
|
+
}
|
|
38
|
+
lastEvent = e.timeStamp;
|
|
39
|
+
const next = Math.max(min, Math.min(max, cur + delta));
|
|
40
|
+
if (next !== cur) {
|
|
41
|
+
latched = true;
|
|
42
|
+
e.preventDefault();
|
|
43
|
+
return next;
|
|
44
|
+
}
|
|
45
|
+
if (latched) {
|
|
46
|
+
e.preventDefault();
|
|
47
|
+
}
|
|
48
|
+
return null;
|
|
49
|
+
},
|
|
50
|
+
// Whether this panel already owns the gesture `e` belongs to, i.e. it has
|
|
51
|
+
// scrolled during a run of events this one continues. Callers ask before
|
|
52
|
+
// declining an event on their own rules: a gesture that has latched keeps
|
|
53
|
+
// every event it fires, cross-axis momentum included, which is the whole
|
|
54
|
+
// point of latching.
|
|
55
|
+
holds(e) {
|
|
56
|
+
return latched && e.timeStamp - lastEvent < timeoutMs;
|
|
57
|
+
},
|
|
58
|
+
// Forget the gesture state so the next event is treated as a fresh gesture.
|
|
59
|
+
// Called when the pointer leaves the panel: a gesture the browser has
|
|
60
|
+
// latched to this element must not keep the page suppressed once the cursor
|
|
61
|
+
// is elsewhere.
|
|
62
|
+
reset() {
|
|
63
|
+
lastEvent = -Infinity;
|
|
64
|
+
latched = false;
|
|
65
|
+
},
|
|
66
|
+
};
|
|
67
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import type { createAbortRotation } from './createAbortRotation.ts';
|
|
2
|
+
import type { CoreGetEncodedLayersArgs } from './markEncodingTypes.ts';
|
|
3
|
+
import type { IStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
4
|
+
/**
|
|
5
|
+
* #api
|
|
6
|
+
* Open the feature widget on the feature behind one instance of a
|
|
7
|
+
* `CoreGetEncodedLayers` answer. A display holds channels, not records, so it
|
|
8
|
+
* sends `CoreGetEncodedFeature` the request the instance's region came back
|
|
9
|
+
* under, and the worker answers the entry of `layer`'s list that the
|
|
10
|
+
* instance's `featureIndex` names: the record as the adapter wrote it, or the
|
|
11
|
+
* bin or run the steps made. A second click aborts the first.
|
|
12
|
+
*/
|
|
13
|
+
export declare function selectEncodedFeature(self: IStateTreeNode, rotation: ReturnType<typeof createAbortRotation>, args: Omit<CoreGetEncodedLayersArgs, 'byteLimit'> & {
|
|
14
|
+
layer: number;
|
|
15
|
+
featureIndex: number;
|
|
16
|
+
}): void;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { openFeatureWidget } from './openFeatureWidget.js';
|
|
2
|
+
import { getRpcSessionId } from './parentWalk.js';
|
|
3
|
+
import { getRpcHost } from './sessionServices.js';
|
|
4
|
+
import SimpleFeature from './simpleFeature.js';
|
|
5
|
+
import { withFeatureDetails } from './withFeatureDetails.js';
|
|
6
|
+
/**
|
|
7
|
+
* #api
|
|
8
|
+
* Open the feature widget on the feature behind one instance of a
|
|
9
|
+
* `CoreGetEncodedLayers` answer. A display holds channels, not records, so it
|
|
10
|
+
* sends `CoreGetEncodedFeature` the request the instance's region came back
|
|
11
|
+
* under, and the worker answers the entry of `layer`'s list that the
|
|
12
|
+
* instance's `featureIndex` names: the record as the adapter wrote it, or the
|
|
13
|
+
* bin or run the steps made. A second click aborts the first.
|
|
14
|
+
*/
|
|
15
|
+
export function selectEncodedFeature(self, rotation, args) {
|
|
16
|
+
const fetch = rotation.begin();
|
|
17
|
+
void withFeatureDetails(self, async () => {
|
|
18
|
+
try {
|
|
19
|
+
const feature = await getRpcHost(self).rpcManager.call(getRpcSessionId(self), 'CoreGetEncodedFeature', {
|
|
20
|
+
...args,
|
|
21
|
+
signal: fetch.signal,
|
|
22
|
+
statusCallback: fetch.statusCallback,
|
|
23
|
+
});
|
|
24
|
+
return feature && fetch.isCurrent()
|
|
25
|
+
? new SimpleFeature(feature)
|
|
26
|
+
: undefined;
|
|
27
|
+
}
|
|
28
|
+
finally {
|
|
29
|
+
fetch.end();
|
|
30
|
+
}
|
|
31
|
+
}, feature => {
|
|
32
|
+
openFeatureWidget(self, feature.toJSON(), { feature });
|
|
33
|
+
});
|
|
34
|
+
}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import type { Region } from './types/data.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Resolve caller-supplied region names against an assembly's own regions,
|
|
4
|
+
* preserving the requested order and dropping names that match nothing.
|
|
5
|
+
*
|
|
6
|
+
* An entry containing `*` is a glob matched against the refName, which is what
|
|
7
|
+
* makes a fragmented assembly tractable: a haplotype-resolved genome wants "all
|
|
8
|
+
* of hap1" (`*_hap1`), not a hand-maintained list of its 16 scaffolds that goes
|
|
9
|
+
* stale the moment the assembly is rebuilt. A glob contributes its matches in
|
|
10
|
+
* the ASSEMBLY's order (the only order it can mean); exact names contribute in
|
|
11
|
+
* the CALLER's order, so an explicit list still controls layout. Duplicates
|
|
12
|
+
* across entries are dropped, so `['chr1_hap1', '*_hap1']` is chr1 first then
|
|
13
|
+
* the rest.
|
|
14
|
+
*
|
|
15
|
+
* AN EXACT REFNAME BEATS THE GLOB READING, which is the only reason `*` is safe
|
|
16
|
+
* to hand a user as a syntax: `*` is a legal character in a real contig name and
|
|
17
|
+
* the names carrying it are the ones nobody would think to escape. GRCh38's ALT
|
|
18
|
+
* decoys are HLA allele names — `HLA-A*01:01:01:01` — so a pattern typed to name
|
|
19
|
+
* one allele was compiled to `^HLA-A.*01:01:01:01$`, which matches that contig
|
|
20
|
+
* (hence it looked fine) and every other HLA-A allele with the same last four
|
|
21
|
+
* fields. Trying the literal lookup first costs one Map hit and means a name
|
|
22
|
+
* that IS a contig always resolves to that contig; only a name matching nothing
|
|
23
|
+
* is reinterpreted as a pattern.
|
|
24
|
+
*
|
|
25
|
+
* Selecting from the assembly's own region objects (rather than synthesizing
|
|
26
|
+
* them) keeps coordinates and lengths correct.
|
|
27
|
+
*
|
|
28
|
+
* THERE IS DELIBERATELY NO CEILING on how many regions a glob may resolve to.
|
|
29
|
+
* `["*"]` on a scaffold-level assembly really does mean every contig, which is
|
|
30
|
+
* no more than `showAllRegionsInAssembly` already hands to `setDisplayedRegions`.
|
|
31
|
+
* A cap here could only truncate — silently returning some of what was asked
|
|
32
|
+
* for, which is the failure mode this file keeps being fixed for. The search
|
|
33
|
+
* box's picker does bound its bulk-select row, and that is a different thing: it
|
|
34
|
+
* withholds an OFFER, leaving every match still pickable one at a time, rather
|
|
35
|
+
* than quietly resolving a list to a prefix of itself.
|
|
36
|
+
*
|
|
37
|
+
* BOTH READINGS GO THROUGH THE ASSEMBLY'S ALIASES, and they have to, because
|
|
38
|
+
* only one of them used to. An exact name has always resolved via
|
|
39
|
+
* `getCanonicalRefName`, so `['chr1']` picks out a contig an Ensembl-named
|
|
40
|
+
* assembly calls `1` — but the glob was tested against `region.refName`, the
|
|
41
|
+
* canonical name alone, so `['chr*']` on that same assembly matched nothing at
|
|
42
|
+
* all. The literal working where the pattern silently fails is the worst
|
|
43
|
+
* possible split: the caller has no way to tell "this assembly has no such
|
|
44
|
+
* contigs" from "globs don't see the names you're using". Pass `allRefNames`
|
|
45
|
+
* (canonical names AND aliases — `buildRefNameMaps` identity-maps every region,
|
|
46
|
+
* so it is a strict superset) and a pattern sees what a literal sees.
|
|
47
|
+
*
|
|
48
|
+
* It is optional ONLY because this is published ABI and the three-argument form
|
|
49
|
+
* predates it; an external plugin still calling that gets the canonical-only
|
|
50
|
+
* matching it always got. It is not optional because there is a state where an
|
|
51
|
+
* assembly has regions but not yet names — `setLoaded` writes `volatileRegions`
|
|
52
|
+
* and `refNameAliases` in one action, so no such state exists, and every
|
|
53
|
+
* in-tree caller (all of them through `resolveNamedRegions`) passes both.
|
|
54
|
+
*/
|
|
55
|
+
export declare function selectNamedRegions(regions: readonly Region[], names: readonly string[], getCanonicalRefName: (name: string) => string | undefined, allRefNames?: readonly string[]): Region[];
|
|
56
|
+
/**
|
|
57
|
+
* Split a user-typed or URL-supplied region list into the entries
|
|
58
|
+
* `selectNamedRegions` takes. Comma-separated, because the two things anyone
|
|
59
|
+
* writes here are one glob (`*_MATERNAL`) or a short explicit list
|
|
60
|
+
* (`chr1, chr2`), and neither wants punctuation ceremony. Only the comma
|
|
61
|
+
* splits, so an HLA allele name — which carries both `*` and `:` — survives
|
|
62
|
+
* intact.
|
|
63
|
+
*
|
|
64
|
+
* Whitespace-trimmed and empties dropped, so a trailing comma, a box holding
|
|
65
|
+
* only spaces, and a bare `®ions=` all mean the same thing as nothing at
|
|
66
|
+
* all: no restriction, whole assembly. That last one is why this lives in core
|
|
67
|
+
* beside the matcher rather than next to the text box that first needed it —
|
|
68
|
+
* `®ions=` was reading the same syntax through a bare `split(',')`, so
|
|
69
|
+
* `®ions=chr1,%20chr2` dropped chr2 on the floor without a word and
|
|
70
|
+
* `®ions=` warned that a list of one empty name had matched nothing.
|
|
71
|
+
*/
|
|
72
|
+
export declare function parseRegionNames(value: string): string[];
|
|
73
|
+
/**
|
|
74
|
+
* `selectNamedRegions` plus the report a miss owes the user, which each of the
|
|
75
|
+
* four views taking `displayedRegionNames` had written out for itself — and two
|
|
76
|
+
* of them had not written at all, so a typo there showed the whole assembly and
|
|
77
|
+
* read as the field being ignored. A typo is no longer only a hand-authored-JSON
|
|
78
|
+
* mistake either: the dotplot and synteny import forms put this syntax in a text
|
|
79
|
+
* box.
|
|
80
|
+
*
|
|
81
|
+
* `undefined` means "this list picks out nothing" — the caller's cue to apply
|
|
82
|
+
* its own fallback, which is the part that genuinely differs between them: the
|
|
83
|
+
* LGV keeps a defaultSession's existing navigation, the circular view and a
|
|
84
|
+
* synteny row draw the whole assembly, and a dotplot axis is left as the
|
|
85
|
+
* regions autorun populated it.
|
|
86
|
+
*/
|
|
87
|
+
export declare function resolveNamedRegions({ regions, names, assemblyName, getCanonicalRefName, allRefNames, notify, }: {
|
|
88
|
+
regions: readonly Region[];
|
|
89
|
+
names: readonly string[];
|
|
90
|
+
assemblyName: string;
|
|
91
|
+
getCanonicalRefName: (name: string) => string | undefined;
|
|
92
|
+
allRefNames?: readonly string[];
|
|
93
|
+
notify: (message: string) => void;
|
|
94
|
+
}): Region[] | undefined;
|
|
95
|
+
export interface RefNameMatchSource {
|
|
96
|
+
regions?: readonly {
|
|
97
|
+
refName: string;
|
|
98
|
+
}[];
|
|
99
|
+
allRefNames?: readonly string[];
|
|
100
|
+
getCanonicalRefName: (name: string) => string | undefined;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* How many regions an INTERACTIVE glob will open at once. Displaying a few
|
|
104
|
+
* hundred whole chromosomes is ordinary — GRCh38 with its alts and decoys is
|
|
105
|
+
* ~640 refNames, and showAllRegionsInAssembly lays out every one — so this sits
|
|
106
|
+
* well above any real chromosome set and well below a scaffold-level assembly's
|
|
107
|
+
* contig count. Past it the offer is WITHHELD, never truncated: a bulk action
|
|
108
|
+
* reading "all of them" that opens the first thousand is the one behaviour not
|
|
109
|
+
* worth having.
|
|
110
|
+
*
|
|
111
|
+
* `selectNamedRegions` itself is deliberately unbounded — see its docstring.
|
|
112
|
+
* The bound belongs to the surfaces a person types at, not to the resolver a
|
|
113
|
+
* session spec goes through, because only the former has a way to say "too
|
|
114
|
+
* many, narrow it" and only the latter is a written-down intention.
|
|
115
|
+
*/
|
|
116
|
+
export declare const MAX_GLOB_REGIONS = 1000;
|
|
117
|
+
/**
|
|
118
|
+
* The canonical refNames a search-box query picks out, in ASSEMBLY order.
|
|
119
|
+
*
|
|
120
|
+
* Shared by the dropdown's option list and by what Enter does, which is the
|
|
121
|
+
* whole point of it being one function: those two answer for the same typed
|
|
122
|
+
* text, and a surface-by-surface reading of one syntax is the split this file
|
|
123
|
+
* keeps being fixed for. A substring match (what the box has always done) and,
|
|
124
|
+
* when the text contains `*`, an anchored glob — union, never one instead of
|
|
125
|
+
* the other, since `*` is a legal refName character and a literal hit must
|
|
126
|
+
* survive the pattern reading of the same text.
|
|
127
|
+
*
|
|
128
|
+
* Matching runs over every name the assembly answers to, aliases included, and
|
|
129
|
+
* resolves hits to the canonical name — the name the view will display, and the
|
|
130
|
+
* same choice `searchRefNames` makes. Emitting by walking `regions` is what
|
|
131
|
+
* keeps assembly order rather than alias-file order.
|
|
132
|
+
*
|
|
133
|
+
* Bounded: matching stops one hit past `ceiling`, so a caller can tell "at the
|
|
134
|
+
* limit" from "under it" without the scan being unbounded.
|
|
135
|
+
*/
|
|
136
|
+
export declare function matchRefNames(assembly: RefNameMatchSource | undefined, inputValue: string, ceiling: number): string[];
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* `*` is the only metacharacter; everything else in a name is matched literally,
|
|
3
|
+
* so a refName containing regex punctuation (`chr1.1`, `scaffold[2]`) can't turn
|
|
4
|
+
* into an accidental pattern. Anchored, so a pattern names whole refNames.
|
|
5
|
+
*
|
|
6
|
+
* Case-INSENSITIVE, and not optionally: the literal reading beside it resolves
|
|
7
|
+
* through getCanonicalRefName, which falls back to `lowerCaseRefNameAliases`, so
|
|
8
|
+
* `CHR1` has always found `chr1`. A case-sensitive glob meant `CHR1*` found
|
|
9
|
+
* nothing on the same assembly — literal working where pattern silently fails,
|
|
10
|
+
* which is the same split the alias fix removed and is no more tellable apart
|
|
11
|
+
* from "this assembly has no such contigs" here than it was there. No caller
|
|
12
|
+
* wants the other behaviour, so it is baked in rather than passed.
|
|
13
|
+
*
|
|
14
|
+
* Module-private, and worth keeping that way: both readings of `*` — the
|
|
15
|
+
* resolver's and the search box's — live in this file precisely so a pattern
|
|
16
|
+
* that selects a set in a session spec selects the same set typed into the box.
|
|
17
|
+
* A third caller reaching in from elsewhere is how that stops being true.
|
|
18
|
+
*/
|
|
19
|
+
function globToRegExp(pattern) {
|
|
20
|
+
const escaped = pattern.replaceAll(/[.*+?^${}()|[\]\\]/g, m => m === '*' ? '.*' : `\\${m}`);
|
|
21
|
+
return new RegExp(`^${escaped}$`, 'i');
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Resolve caller-supplied region names against an assembly's own regions,
|
|
25
|
+
* preserving the requested order and dropping names that match nothing.
|
|
26
|
+
*
|
|
27
|
+
* An entry containing `*` is a glob matched against the refName, which is what
|
|
28
|
+
* makes a fragmented assembly tractable: a haplotype-resolved genome wants "all
|
|
29
|
+
* of hap1" (`*_hap1`), not a hand-maintained list of its 16 scaffolds that goes
|
|
30
|
+
* stale the moment the assembly is rebuilt. A glob contributes its matches in
|
|
31
|
+
* the ASSEMBLY's order (the only order it can mean); exact names contribute in
|
|
32
|
+
* the CALLER's order, so an explicit list still controls layout. Duplicates
|
|
33
|
+
* across entries are dropped, so `['chr1_hap1', '*_hap1']` is chr1 first then
|
|
34
|
+
* the rest.
|
|
35
|
+
*
|
|
36
|
+
* AN EXACT REFNAME BEATS THE GLOB READING, which is the only reason `*` is safe
|
|
37
|
+
* to hand a user as a syntax: `*` is a legal character in a real contig name and
|
|
38
|
+
* the names carrying it are the ones nobody would think to escape. GRCh38's ALT
|
|
39
|
+
* decoys are HLA allele names — `HLA-A*01:01:01:01` — so a pattern typed to name
|
|
40
|
+
* one allele was compiled to `^HLA-A.*01:01:01:01$`, which matches that contig
|
|
41
|
+
* (hence it looked fine) and every other HLA-A allele with the same last four
|
|
42
|
+
* fields. Trying the literal lookup first costs one Map hit and means a name
|
|
43
|
+
* that IS a contig always resolves to that contig; only a name matching nothing
|
|
44
|
+
* is reinterpreted as a pattern.
|
|
45
|
+
*
|
|
46
|
+
* Selecting from the assembly's own region objects (rather than synthesizing
|
|
47
|
+
* them) keeps coordinates and lengths correct.
|
|
48
|
+
*
|
|
49
|
+
* THERE IS DELIBERATELY NO CEILING on how many regions a glob may resolve to.
|
|
50
|
+
* `["*"]` on a scaffold-level assembly really does mean every contig, which is
|
|
51
|
+
* no more than `showAllRegionsInAssembly` already hands to `setDisplayedRegions`.
|
|
52
|
+
* A cap here could only truncate — silently returning some of what was asked
|
|
53
|
+
* for, which is the failure mode this file keeps being fixed for. The search
|
|
54
|
+
* box's picker does bound its bulk-select row, and that is a different thing: it
|
|
55
|
+
* withholds an OFFER, leaving every match still pickable one at a time, rather
|
|
56
|
+
* than quietly resolving a list to a prefix of itself.
|
|
57
|
+
*
|
|
58
|
+
* BOTH READINGS GO THROUGH THE ASSEMBLY'S ALIASES, and they have to, because
|
|
59
|
+
* only one of them used to. An exact name has always resolved via
|
|
60
|
+
* `getCanonicalRefName`, so `['chr1']` picks out a contig an Ensembl-named
|
|
61
|
+
* assembly calls `1` — but the glob was tested against `region.refName`, the
|
|
62
|
+
* canonical name alone, so `['chr*']` on that same assembly matched nothing at
|
|
63
|
+
* all. The literal working where the pattern silently fails is the worst
|
|
64
|
+
* possible split: the caller has no way to tell "this assembly has no such
|
|
65
|
+
* contigs" from "globs don't see the names you're using". Pass `allRefNames`
|
|
66
|
+
* (canonical names AND aliases — `buildRefNameMaps` identity-maps every region,
|
|
67
|
+
* so it is a strict superset) and a pattern sees what a literal sees.
|
|
68
|
+
*
|
|
69
|
+
* It is optional ONLY because this is published ABI and the three-argument form
|
|
70
|
+
* predates it; an external plugin still calling that gets the canonical-only
|
|
71
|
+
* matching it always got. It is not optional because there is a state where an
|
|
72
|
+
* assembly has regions but not yet names — `setLoaded` writes `volatileRegions`
|
|
73
|
+
* and `refNameAliases` in one action, so no such state exists, and every
|
|
74
|
+
* in-tree caller (all of them through `resolveNamedRegions`) passes both.
|
|
75
|
+
*/
|
|
76
|
+
export function selectNamedRegions(regions, names, getCanonicalRefName, allRefNames) {
|
|
77
|
+
const byRefName = new Map(regions.map(r => [r.refName, r]));
|
|
78
|
+
// every name a glob may match on — see above for why the absent case is a
|
|
79
|
+
// legacy call rather than an unloaded assembly
|
|
80
|
+
const candidates = allRefNames?.length
|
|
81
|
+
? allRefNames
|
|
82
|
+
: regions.map(r => r.refName);
|
|
83
|
+
const out = [];
|
|
84
|
+
const seen = new Set();
|
|
85
|
+
const take = (r) => {
|
|
86
|
+
if (r && !seen.has(r.refName)) {
|
|
87
|
+
seen.add(r.refName);
|
|
88
|
+
out.push(r);
|
|
89
|
+
}
|
|
90
|
+
};
|
|
91
|
+
for (const name of names) {
|
|
92
|
+
const exact = byRefName.get(getCanonicalRefName(name) ?? name);
|
|
93
|
+
if (exact) {
|
|
94
|
+
take(exact);
|
|
95
|
+
}
|
|
96
|
+
else if (name.includes('*')) {
|
|
97
|
+
const re = globToRegExp(name);
|
|
98
|
+
// Resolve every matching NAME to the region it names, then walk `regions`
|
|
99
|
+
// to emit them — the two passes are what keeps a glob's contribution in
|
|
100
|
+
// ASSEMBLY order. Matching over `candidates` directly would order by the
|
|
101
|
+
// alias map instead, which is the order the alias file happened to list.
|
|
102
|
+
const hits = new Set();
|
|
103
|
+
for (const candidate of candidates) {
|
|
104
|
+
if (re.test(candidate)) {
|
|
105
|
+
hits.add(getCanonicalRefName(candidate) ?? candidate);
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
for (const r of regions) {
|
|
109
|
+
if (hits.has(r.refName)) {
|
|
110
|
+
take(r);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
return out;
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Split a user-typed or URL-supplied region list into the entries
|
|
119
|
+
* `selectNamedRegions` takes. Comma-separated, because the two things anyone
|
|
120
|
+
* writes here are one glob (`*_MATERNAL`) or a short explicit list
|
|
121
|
+
* (`chr1, chr2`), and neither wants punctuation ceremony. Only the comma
|
|
122
|
+
* splits, so an HLA allele name — which carries both `*` and `:` — survives
|
|
123
|
+
* intact.
|
|
124
|
+
*
|
|
125
|
+
* Whitespace-trimmed and empties dropped, so a trailing comma, a box holding
|
|
126
|
+
* only spaces, and a bare `®ions=` all mean the same thing as nothing at
|
|
127
|
+
* all: no restriction, whole assembly. That last one is why this lives in core
|
|
128
|
+
* beside the matcher rather than next to the text box that first needed it —
|
|
129
|
+
* `®ions=` was reading the same syntax through a bare `split(',')`, so
|
|
130
|
+
* `®ions=chr1,%20chr2` dropped chr2 on the floor without a word and
|
|
131
|
+
* `®ions=` warned that a list of one empty name had matched nothing.
|
|
132
|
+
*/
|
|
133
|
+
export function parseRegionNames(value) {
|
|
134
|
+
return value
|
|
135
|
+
.split(',')
|
|
136
|
+
.map(s => s.trim())
|
|
137
|
+
.filter(s => s !== '');
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* `selectNamedRegions` plus the report a miss owes the user, which each of the
|
|
141
|
+
* four views taking `displayedRegionNames` had written out for itself — and two
|
|
142
|
+
* of them had not written at all, so a typo there showed the whole assembly and
|
|
143
|
+
* read as the field being ignored. A typo is no longer only a hand-authored-JSON
|
|
144
|
+
* mistake either: the dotplot and synteny import forms put this syntax in a text
|
|
145
|
+
* box.
|
|
146
|
+
*
|
|
147
|
+
* `undefined` means "this list picks out nothing" — the caller's cue to apply
|
|
148
|
+
* its own fallback, which is the part that genuinely differs between them: the
|
|
149
|
+
* LGV keeps a defaultSession's existing navigation, the circular view and a
|
|
150
|
+
* synteny row draw the whole assembly, and a dotplot axis is left as the
|
|
151
|
+
* regions autorun populated it.
|
|
152
|
+
*/
|
|
153
|
+
export function resolveNamedRegions({ regions, names, assemblyName, getCanonicalRefName, allRefNames, notify, }) {
|
|
154
|
+
const picked = selectNamedRegions(regions, names, getCanonicalRefName, allRefNames);
|
|
155
|
+
if (picked.length) {
|
|
156
|
+
return picked;
|
|
157
|
+
}
|
|
158
|
+
notify(`displayedRegionNames matched no regions in ${assemblyName}: ${names.join(', ')}`);
|
|
159
|
+
return undefined;
|
|
160
|
+
}
|
|
161
|
+
/**
|
|
162
|
+
* How many regions an INTERACTIVE glob will open at once. Displaying a few
|
|
163
|
+
* hundred whole chromosomes is ordinary — GRCh38 with its alts and decoys is
|
|
164
|
+
* ~640 refNames, and showAllRegionsInAssembly lays out every one — so this sits
|
|
165
|
+
* well above any real chromosome set and well below a scaffold-level assembly's
|
|
166
|
+
* contig count. Past it the offer is WITHHELD, never truncated: a bulk action
|
|
167
|
+
* reading "all of them" that opens the first thousand is the one behaviour not
|
|
168
|
+
* worth having.
|
|
169
|
+
*
|
|
170
|
+
* `selectNamedRegions` itself is deliberately unbounded — see its docstring.
|
|
171
|
+
* The bound belongs to the surfaces a person types at, not to the resolver a
|
|
172
|
+
* session spec goes through, because only the former has a way to say "too
|
|
173
|
+
* many, narrow it" and only the latter is a written-down intention.
|
|
174
|
+
*/
|
|
175
|
+
export const MAX_GLOB_REGIONS = 1000;
|
|
176
|
+
/**
|
|
177
|
+
* The canonical refNames a search-box query picks out, in ASSEMBLY order.
|
|
178
|
+
*
|
|
179
|
+
* Shared by the dropdown's option list and by what Enter does, which is the
|
|
180
|
+
* whole point of it being one function: those two answer for the same typed
|
|
181
|
+
* text, and a surface-by-surface reading of one syntax is the split this file
|
|
182
|
+
* keeps being fixed for. A substring match (what the box has always done) and,
|
|
183
|
+
* when the text contains `*`, an anchored glob — union, never one instead of
|
|
184
|
+
* the other, since `*` is a legal refName character and a literal hit must
|
|
185
|
+
* survive the pattern reading of the same text.
|
|
186
|
+
*
|
|
187
|
+
* Matching runs over every name the assembly answers to, aliases included, and
|
|
188
|
+
* resolves hits to the canonical name — the name the view will display, and the
|
|
189
|
+
* same choice `searchRefNames` makes. Emitting by walking `regions` is what
|
|
190
|
+
* keeps assembly order rather than alias-file order.
|
|
191
|
+
*
|
|
192
|
+
* Bounded: matching stops one hit past `ceiling`, so a caller can tell "at the
|
|
193
|
+
* limit" from "under it" without the scan being unbounded.
|
|
194
|
+
*/
|
|
195
|
+
export function matchRefNames(assembly, inputValue, ceiling) {
|
|
196
|
+
const regions = assembly?.regions ?? [];
|
|
197
|
+
const query = inputValue.toLowerCase();
|
|
198
|
+
const glob = query.includes('*') ? globToRegExp(query) : undefined;
|
|
199
|
+
// getCanonicalRefName THROWS before aliases load, and is only ever reached
|
|
200
|
+
// for a name that came out of this list, which is empty in that state
|
|
201
|
+
const candidates = assembly?.allRefNames ?? [];
|
|
202
|
+
const hits = new Set();
|
|
203
|
+
for (const name of candidates) {
|
|
204
|
+
if (name.toLowerCase().includes(query) || glob?.test(name)) {
|
|
205
|
+
hits.add(assembly?.getCanonicalRefName(name) ?? name);
|
|
206
|
+
if (hits.size > ceiling) {
|
|
207
|
+
break;
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
const out = [];
|
|
212
|
+
for (const { refName } of regions) {
|
|
213
|
+
if (hits.has(refName)) {
|
|
214
|
+
out.push(refName);
|
|
215
|
+
// every hit is placed, so nothing later in `regions` can match
|
|
216
|
+
if (out.length === hits.size) {
|
|
217
|
+
break;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
return out;
|
|
222
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export declare const complementTable: Record<string, string>;
|
|
2
|
+
export declare function revcom(str: string): string;
|
|
3
|
+
export declare function reverse(str: string): string;
|
|
4
|
+
export declare function complement(str: string): string;
|
|
5
|
+
export type Frame = 1 | 2 | 3 | -1 | -2 | -3;
|
|
6
|
+
export declare function getFrame(start: number, end: number, strand: 1 | -1, phase: 0 | 1 | 2): Frame;
|
|
7
|
+
/**
|
|
8
|
+
* The start codon the sequence track highlights. Deliberately NOT
|
|
9
|
+
* `getGeneticCode(1).starts`, which is `['TTG','CTG','ATG']` — NCBI marks the
|
|
10
|
+
* alternative initiators, but highlighting every TTG and CTG in a reference
|
|
11
|
+
* sequence would be noise. This is a display convention, not the genetic code.
|
|
12
|
+
*/
|
|
13
|
+
export declare const defaultStarts: string[];
|
|
14
|
+
export declare function stitch(subfeats: {
|
|
15
|
+
start: number;
|
|
16
|
+
end: number;
|
|
17
|
+
}[], sequence: string): string;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// from bioperl: tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/
|
|
2
|
+
// generated with:
|
|
3
|
+
// perl -MJSON -E '@l = split "","acgtrymkswhbvdnxACGTRYMKSWHBVDNX"; print to_json({ map { my $in = $_; tr/acgtrymkswhbvdnxACGTRYMKSWHBVDNX/tgcayrkmswdvbhnxTGCAYRKMSWDVBHNX/; $in => $_ } @l})'
|
|
4
|
+
export const complementTable = {
|
|
5
|
+
S: 'S',
|
|
6
|
+
w: 'w',
|
|
7
|
+
T: 'A',
|
|
8
|
+
r: 'y',
|
|
9
|
+
a: 't',
|
|
10
|
+
N: 'N',
|
|
11
|
+
K: 'M',
|
|
12
|
+
x: 'x',
|
|
13
|
+
d: 'h',
|
|
14
|
+
Y: 'R',
|
|
15
|
+
V: 'B',
|
|
16
|
+
y: 'r',
|
|
17
|
+
M: 'K',
|
|
18
|
+
h: 'd',
|
|
19
|
+
k: 'm',
|
|
20
|
+
C: 'G',
|
|
21
|
+
g: 'c',
|
|
22
|
+
t: 'a',
|
|
23
|
+
A: 'T',
|
|
24
|
+
n: 'n',
|
|
25
|
+
W: 'W',
|
|
26
|
+
X: 'X',
|
|
27
|
+
m: 'k',
|
|
28
|
+
v: 'b',
|
|
29
|
+
B: 'V',
|
|
30
|
+
s: 's',
|
|
31
|
+
H: 'D',
|
|
32
|
+
c: 'g',
|
|
33
|
+
D: 'H',
|
|
34
|
+
b: 'v',
|
|
35
|
+
R: 'Y',
|
|
36
|
+
G: 'C',
|
|
37
|
+
};
|
|
38
|
+
export function revcom(str) {
|
|
39
|
+
const n = str.length;
|
|
40
|
+
const arr = new Array(n);
|
|
41
|
+
for (let i = 0; i < n; i++) {
|
|
42
|
+
const c = str[n - 1 - i];
|
|
43
|
+
arr[i] = complementTable[c] ?? c;
|
|
44
|
+
}
|
|
45
|
+
return arr.join('');
|
|
46
|
+
}
|
|
47
|
+
export function reverse(str) {
|
|
48
|
+
// index loop rather than [...str] spread: sequences can be large and the
|
|
49
|
+
// spread's code-point iterator is markedly slower than raw UTF-16 access
|
|
50
|
+
const n = str.length;
|
|
51
|
+
const arr = new Array(n);
|
|
52
|
+
for (let i = 0; i < n; i++) {
|
|
53
|
+
arr[i] = str[n - 1 - i];
|
|
54
|
+
}
|
|
55
|
+
return arr.join('');
|
|
56
|
+
}
|
|
57
|
+
export function complement(str) {
|
|
58
|
+
const n = str.length;
|
|
59
|
+
const arr = new Array(n);
|
|
60
|
+
for (let i = 0; i < n; i++) {
|
|
61
|
+
const c = str[i];
|
|
62
|
+
arr[i] = complementTable[c] ?? c;
|
|
63
|
+
}
|
|
64
|
+
return arr.join('');
|
|
65
|
+
}
|
|
66
|
+
export function getFrame(start, end, strand, phase) {
|
|
67
|
+
return strand === 1
|
|
68
|
+
? (((start + phase) % 3) + 1)
|
|
69
|
+
: (-1 * ((end - phase) % 3) - 1);
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* The start codon the sequence track highlights. Deliberately NOT
|
|
73
|
+
* `getGeneticCode(1).starts`, which is `['TTG','CTG','ATG']` — NCBI marks the
|
|
74
|
+
* alternative initiators, but highlighting every TTG and CTG in a reference
|
|
75
|
+
* sequence would be noise. This is a display convention, not the genetic code.
|
|
76
|
+
*/
|
|
77
|
+
export const defaultStarts = ['ATG'];
|
|
78
|
+
export function stitch(subfeats, sequence) {
|
|
79
|
+
return subfeats.map(sub => sequence.slice(sub.start, sub.end)).join('');
|
|
80
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { DialogHost, NotificationSink, PaletteHost, RpcHost, SessionServices } from './types/services.ts';
|
|
2
|
+
import type { IAnyStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
3
|
+
/**
|
|
4
|
+
* #api core/util
|
|
5
|
+
* The services a session offers that cost nothing application-shaped to name.
|
|
6
|
+
* Prefer one of the narrower accessors below, which say which of them the
|
|
7
|
+
* calling module actually uses.
|
|
8
|
+
*/
|
|
9
|
+
export declare function getSessionServices(node: IAnyStateTreeNode): SessionServices;
|
|
10
|
+
/**
|
|
11
|
+
* #api core/util
|
|
12
|
+
* The host's RPC entry point, for a module that issues RPCs and nothing else.
|
|
13
|
+
*/
|
|
14
|
+
export declare function getRpcHost(node: IAnyStateTreeNode): RpcHost;
|
|
15
|
+
/**
|
|
16
|
+
* #api core/util
|
|
17
|
+
* Where a display puts a message it cannot draw itself.
|
|
18
|
+
*/
|
|
19
|
+
export declare function getNotificationSink(node: IAnyStateTreeNode): NotificationSink;
|
|
20
|
+
/**
|
|
21
|
+
* #api core/util
|
|
22
|
+
* Where a display puts a dialog it cannot mount itself.
|
|
23
|
+
*/
|
|
24
|
+
export declare function getDialogHost(node: IAnyStateTreeNode): DialogHost;
|
|
25
|
+
/**
|
|
26
|
+
* #api core/util
|
|
27
|
+
* The colors to draw with, and the args that rebuild them in a worker.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getPaletteHost(node: IAnyStateTreeNode): PaletteHost;
|