@jbrowse/core 4.3.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +783 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +84 -65
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +326 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +68 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +195 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +265 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +49 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +136 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +368 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +9 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +124 -4
- package/esm/ui/MenuTypes.js +13 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +36 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +44 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +23 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +52 -0
- package/esm/util/cacheBudgets.js +52 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +117 -0
- package/esm/util/createStopTokenRotation.js +147 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +160 -0
- package/esm/util/hooks.js +416 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +136 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +194 -0
- package/esm/util/installFetch.js +178 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +89 -0
- package/esm/util/mstUtils.js +122 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +113 -0
- package/esm/util/pluginStore.js +253 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +42 -1
- package/esm/util/range.js +59 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +14 -1
- package/esm/util/rxjs.js +39 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +120 -0
- package/esm/util/tabix.js +143 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +350 -30
- package/esm/util/tracks.js +574 -192
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +358 -119
- package/esm/util/types/index.js +87 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +58 -0
- package/esm/util/viewStatus.js +20 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mouse-Y → row index for the displays that stack rows behind
|
|
3
|
+
* `useRowVirtualScroll`.
|
|
4
|
+
*
|
|
5
|
+
* That hook is what makes the arithmetic subtle, so the reader lives beside it.
|
|
6
|
+
* `applyRowResizeWheel` sets `scrollTop` to `rowUnderMouse * newRowHeight -
|
|
7
|
+
* mouseY` to pin the row under the cursor, which leaves it fractional, and it
|
|
8
|
+
* lets `rowHeight` fall to `viewportHeight / nrow` — sub-pixel on a
|
|
9
|
+
* cohort-sized track. Two rules follow, and each caller used to restate them:
|
|
10
|
+
*
|
|
11
|
+
* - **Ask at the pixel's centre.** Rasterization fills a pixel when its centre
|
|
12
|
+
* falls inside the rect, so the centre is the scanline the colour the reader
|
|
13
|
+
* is pointing at was decided on. The top edge misses by `0.5 / rowHeight`
|
|
14
|
+
* rows — 5.4 of them on a 2,504-sample matrix at the default fit height.
|
|
15
|
+
* - **Floor `mouseY` before adding `scrollTop`.** The canvas draws at
|
|
16
|
+
* `row * rowHeight - scrollTop` with `scrollTop` unrounded; flooring the sum
|
|
17
|
+
* snaps to a pixel grid the content is not on. This is the half a reader gets
|
|
18
|
+
* backwards.
|
|
19
|
+
*/
|
|
20
|
+
/** Content-space Y of the centre of the screen pixel `mouseY` is in. */
|
|
21
|
+
export function contentYAt(mouseY, stack) {
|
|
22
|
+
const { scrollTop = 0, topOffset = 0 } = stack;
|
|
23
|
+
return Math.floor(mouseY) + 0.5 + scrollTop - topOffset;
|
|
24
|
+
}
|
|
25
|
+
/** Continuous row coordinate at `mouseY`; callers round to suit. */
|
|
26
|
+
export function rowCoordAt(mouseY, stack) {
|
|
27
|
+
return contentYAt(mouseY, stack) / stack.rowHeight;
|
|
28
|
+
}
|
|
29
|
+
/** The row `mouseY` is on. Negative above the rows area, and not range-checked. */
|
|
30
|
+
export function rowIndexAt(mouseY, stack) {
|
|
31
|
+
return Math.floor(rowCoordAt(mouseY, stack));
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Half-open `[startRow, endRow)` covered by a vertical px span, ready to
|
|
35
|
+
* `slice` a sample list with.
|
|
36
|
+
*
|
|
37
|
+
* Both ends are the row at that pixel's centre and the range includes both, so
|
|
38
|
+
* a span can never come back empty: a drag straight across one row — which
|
|
39
|
+
* `useDragSelection` supports, gating on X alone — covers the row it is on.
|
|
40
|
+
* Taking `endRow` as the `ceil` of the same coordinate instead collapsed on
|
|
41
|
+
* every exact row boundary, one pixel row in every `rowHeight`.
|
|
42
|
+
*/
|
|
43
|
+
export function rowSpanAt(y0, y1, stack) {
|
|
44
|
+
const first = rowIndexAt(Math.min(y0, y1), stack);
|
|
45
|
+
const last = rowIndexAt(Math.max(y0, y1), stack);
|
|
46
|
+
return { startRow: Math.max(0, first), endRow: Math.max(0, last + 1) };
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The rows whose *drawn* cell covers `mouseY`, nearest first.
|
|
50
|
+
*
|
|
51
|
+
* Row r occupies `[r*rowHeight, r*rowHeight + drawnRowHeight)`.
|
|
52
|
+
* `drawnRowHeight` is the height the painter *resolved* for this `rowHeight`,
|
|
53
|
+
* not the floor it clamps to — pass `drawnCellHeightPx(rowHeight)` from the
|
|
54
|
+
* module generated out of the display's own shader (ADR-051), so what is
|
|
55
|
+
* painted and what is pickable stay one rule. At `rowHeight` above the floor it
|
|
56
|
+
* equals `rowHeight`, the band collapses to `nearest`, and only sub-pixel rows
|
|
57
|
+
* stack several under one drawn pixel — where the last drawn wins, and
|
|
58
|
+
* `nearest` is it.
|
|
59
|
+
*
|
|
60
|
+
* Walking down to `lowest` keeps those rows hoverable when the nearest one has
|
|
61
|
+
* nothing to report.
|
|
62
|
+
*/
|
|
63
|
+
export function rowsUnderPointer(mouseY, stack, drawnRowHeight) {
|
|
64
|
+
const y = contentYAt(mouseY, stack);
|
|
65
|
+
const { rowHeight } = stack;
|
|
66
|
+
return {
|
|
67
|
+
nearest: Math.floor(y / rowHeight),
|
|
68
|
+
lowest: Math.max(0, Math.floor((y - drawnRowHeight) / rowHeight) + 1),
|
|
69
|
+
};
|
|
70
|
+
}
|
package/esm/util/rpc.d.ts
CHANGED
|
@@ -1,2 +1,17 @@
|
|
|
1
|
-
import type { RpcResult } from '
|
|
1
|
+
import type { RpcResult } from '../rpc/RpcServer.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Type guard to check if a value is an RpcResult.
|
|
4
|
+
* Used to detect when a renderer has returned pre-serialized data with transferables.
|
|
5
|
+
*
|
|
6
|
+
* Note: Transferables flow only from worker to main thread (in responses),
|
|
7
|
+
* not from main thread to worker. This is because the render results contain
|
|
8
|
+
* ImageBitmaps and ArrayBuffers that benefit from zero-copy transfer.
|
|
9
|
+
*/
|
|
2
10
|
export declare function isRpcResult(value: unknown): value is RpcResult;
|
|
11
|
+
/**
|
|
12
|
+
* Take the `rpcResult` envelope off if there is one. Distributes over a union,
|
|
13
|
+
* because a method can wrap one arm and not another — only the data half of the
|
|
14
|
+
* canvas gates owns buffers worth transferring.
|
|
15
|
+
*/
|
|
16
|
+
export type UnwrapRpcResult<T> = T extends RpcResult<infer V> ? V : T;
|
|
17
|
+
export declare function unwrapRpcResult<T>(value: T): UnwrapRpcResult<T>;
|
package/esm/util/rpc.js
CHANGED
|
@@ -1,6 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard to check if a value is an RpcResult.
|
|
3
|
+
* Used to detect when a renderer has returned pre-serialized data with transferables.
|
|
4
|
+
*
|
|
5
|
+
* Note: Transferables flow only from worker to main thread (in responses),
|
|
6
|
+
* not from main thread to worker. This is because the render results contain
|
|
7
|
+
* ImageBitmaps and ArrayBuffers that benefit from zero-copy transfer.
|
|
8
|
+
*/
|
|
1
9
|
export function isRpcResult(value) {
|
|
2
10
|
return (typeof value === 'object' &&
|
|
3
11
|
value !== null &&
|
|
4
12
|
'__rpcResult' in value &&
|
|
5
|
-
value.__rpcResult);
|
|
13
|
+
value.__rpcResult === true);
|
|
14
|
+
}
|
|
15
|
+
export function unwrapRpcResult(value) {
|
|
16
|
+
return (isRpcResult(value) ? value.value : value);
|
|
6
17
|
}
|
package/esm/util/rxjs.d.ts
CHANGED
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
2
|
import type { StopToken } from './stopToken.ts';
|
|
3
3
|
import type { Observer } from 'rxjs';
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Wrapper for rxjs Observable.create with improved error handling and aborting
|
|
6
|
+
* support.
|
|
7
|
+
*
|
|
8
|
+
* A `stopToken` errors the subscriber with an abort error the moment the token
|
|
9
|
+
* is stopped, rather than waiting for `func` to finish work whose result is
|
|
10
|
+
* already discarded. The fetch paths filter abort errors out (`isAbortException`)
|
|
11
|
+
* so a cancel does not surface as a track error. It cannot interrupt `func`
|
|
12
|
+
* itself — a body doing long synchronous work still needs its own
|
|
13
|
+
* `checkStopToken` ticks — but it does stop delivery downstream.
|
|
14
|
+
*
|
|
15
|
+
* @param func - observer function, could be async
|
|
16
|
+
*/
|
|
17
|
+
export declare function ObservableCreate<T>(func: (arg: Observer<T>) => void | Promise<void>, stopToken?: StopToken): Observable<T>;
|
package/esm/util/rxjs.js
CHANGED
|
@@ -1,16 +1,45 @@
|
|
|
1
1
|
import { Observable } from 'rxjs';
|
|
2
|
-
|
|
2
|
+
import { stopTokenSignal } from './stopToken.js';
|
|
3
|
+
/**
|
|
4
|
+
* Wrapper for rxjs Observable.create with improved error handling and aborting
|
|
5
|
+
* support.
|
|
6
|
+
*
|
|
7
|
+
* A `stopToken` errors the subscriber with an abort error the moment the token
|
|
8
|
+
* is stopped, rather than waiting for `func` to finish work whose result is
|
|
9
|
+
* already discarded. The fetch paths filter abort errors out (`isAbortException`)
|
|
10
|
+
* so a cancel does not surface as a track error. It cannot interrupt `func`
|
|
11
|
+
* itself — a body doing long synchronous work still needs its own
|
|
12
|
+
* `checkStopToken` ticks — but it does stop delivery downstream.
|
|
13
|
+
*
|
|
14
|
+
* @param func - observer function, could be async
|
|
15
|
+
*/
|
|
16
|
+
export function ObservableCreate(func, stopToken) {
|
|
3
17
|
return new Observable((observer) => {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
18
|
+
const { signal, dispose } = stopTokenSignal(stopToken);
|
|
19
|
+
const stop = () => {
|
|
20
|
+
observer.error(signal.reason);
|
|
21
|
+
};
|
|
22
|
+
if (signal.aborted) {
|
|
23
|
+
// stopped before subscribe: no 'abort' event is coming
|
|
24
|
+
stop();
|
|
11
25
|
}
|
|
12
|
-
|
|
13
|
-
|
|
26
|
+
else {
|
|
27
|
+
signal.addEventListener('abort', stop);
|
|
28
|
+
try {
|
|
29
|
+
const ret = func(observer);
|
|
30
|
+
if (ret?.catch) {
|
|
31
|
+
ret.catch((error) => {
|
|
32
|
+
observer.error(error);
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
catch (error) {
|
|
37
|
+
observer.error(error);
|
|
38
|
+
}
|
|
14
39
|
}
|
|
40
|
+
return () => {
|
|
41
|
+
signal.removeEventListener('abort', stop);
|
|
42
|
+
dispose();
|
|
43
|
+
};
|
|
15
44
|
});
|
|
16
45
|
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element-wise equality for two string lists, so a setter can skip rewriting
|
|
3
|
+
* observable state with contents it already holds.
|
|
4
|
+
*
|
|
5
|
+
* A primitive prop gets this for free — MobX drops a write of the same number or
|
|
6
|
+
* string — and an array does not: a fresh array is a fresh identity, so every
|
|
7
|
+
* write invalidates everything computed from it however little changed. That
|
|
8
|
+
* makes an unguarded array setter on a per-mousemove path a re-render per raw
|
|
9
|
+
* pointer event, which is how both display families came to want this: the
|
|
10
|
+
* pileup rewriting a chain's read ids while the cursor tracks along one chain,
|
|
11
|
+
* and the canvas display rewriting its tooltip rows while the cursor sits still
|
|
12
|
+
* over one feature.
|
|
13
|
+
*/
|
|
14
|
+
export declare function sameStrings(a: readonly string[], b: readonly string[]): boolean;
|
|
15
|
+
/** The same, for a pair that may be absent — two absent lists are equal. */
|
|
16
|
+
export declare function sameOptionalStrings(a: readonly string[] | undefined, b: readonly string[] | undefined): boolean;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Element-wise equality for two string lists, so a setter can skip rewriting
|
|
3
|
+
* observable state with contents it already holds.
|
|
4
|
+
*
|
|
5
|
+
* A primitive prop gets this for free — MobX drops a write of the same number or
|
|
6
|
+
* string — and an array does not: a fresh array is a fresh identity, so every
|
|
7
|
+
* write invalidates everything computed from it however little changed. That
|
|
8
|
+
* makes an unguarded array setter on a per-mousemove path a re-render per raw
|
|
9
|
+
* pointer event, which is how both display families came to want this: the
|
|
10
|
+
* pileup rewriting a chain's read ids while the cursor tracks along one chain,
|
|
11
|
+
* and the canvas display rewriting its tooltip rows while the cursor sits still
|
|
12
|
+
* over one feature.
|
|
13
|
+
*/
|
|
14
|
+
export function sameStrings(a, b) {
|
|
15
|
+
return a.length === b.length && a.every((s, i) => s === b[i]);
|
|
16
|
+
}
|
|
17
|
+
/** The same, for a pair that may be absent — two absent lists are equal. */
|
|
18
|
+
export function sameOptionalStrings(a, b) {
|
|
19
|
+
return a === undefined || b === undefined ? a === b : sameStrings(a, b);
|
|
20
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
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
|
+
// Forget the gesture state so the next event is treated as a fresh gesture.
|
|
51
|
+
// Called when the pointer leaves the panel: a gesture the browser has
|
|
52
|
+
// latched to this element must not keep the page suppressed once the cursor
|
|
53
|
+
// is elsewhere.
|
|
54
|
+
reset() {
|
|
55
|
+
lastEvent = -Infinity;
|
|
56
|
+
latched = false;
|
|
57
|
+
},
|
|
58
|
+
};
|
|
59
|
+
}
|
|
@@ -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
|
+
}
|