@jbrowse/core 4.2.1 → 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 +196 -55
- 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 -46
- 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 +352 -32
- package/esm/util/tracks.js +576 -194
- 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,120 @@
|
|
|
1
|
+
import type { StatusCallback } from './progress.ts';
|
|
2
|
+
import type { StopToken } from './stopToken.ts';
|
|
3
|
+
/**
|
|
4
|
+
* A raw tabix line paired with the metadata the GFF3/GTF adapters need before
|
|
5
|
+
* parsing: `offset` (the tabix byte offset) mints a stable per-feature id that
|
|
6
|
+
* survives redispatch and panning, and start/end/type feed the redispatch
|
|
7
|
+
* calculation (see {@link calculateRedispatchRange}) that runs before any line
|
|
8
|
+
* is parsed.
|
|
9
|
+
*
|
|
10
|
+
* `start`/`end` are interbase, not the raw column values: @gmod/tabix applies
|
|
11
|
+
* the index's coordinate offset (-1 for a 1-based-closed preset such as GFF)
|
|
12
|
+
* before it calls back.
|
|
13
|
+
*/
|
|
14
|
+
export interface TabixLine {
|
|
15
|
+
line: string;
|
|
16
|
+
offset: number;
|
|
17
|
+
start: number;
|
|
18
|
+
end: number;
|
|
19
|
+
type: string;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Minimal structural view of `@gmod/tabix`'s `TabixIndexedFile.getLines`, so
|
|
23
|
+
* core needn't depend on `@gmod/tabix`.
|
|
24
|
+
*/
|
|
25
|
+
interface TabixLineSource {
|
|
26
|
+
getLines(refName: string, start: number | undefined, end: number | undefined, opts: {
|
|
27
|
+
lineCallback: (line: string, offset: number, start: number, end: number) => void;
|
|
28
|
+
onProgress?: (bytesDownloaded: number, totalBytes?: number) => void;
|
|
29
|
+
signal?: AbortSignal;
|
|
30
|
+
}): Promise<void>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Fetch the tabix lines for a region under a "Downloading features" progress
|
|
34
|
+
* label, capturing each line's byte offset, indexed start/end, and feature type
|
|
35
|
+
* into a {@link TabixLine}. Shared by the GFF3 and GTF tabix adapters.
|
|
36
|
+
*
|
|
37
|
+
* The stop token becomes the read's `AbortSignal`, so a cancelled fetch drops
|
|
38
|
+
* its block reads at the socket instead of downloading them and discarding the
|
|
39
|
+
* lines. @gmod/tabix aborts a block shared between callers only once every
|
|
40
|
+
* joined caller has aborted (`AggregateAbortController`), so this can't cancel a
|
|
41
|
+
* chunk another region still needs.
|
|
42
|
+
*/
|
|
43
|
+
export declare function readTabixLines(gff: TabixLineSource, refName: string, start: number, end: number, statusCallback?: StatusCallback, stopToken?: StopToken): Promise<TabixLine[]>;
|
|
44
|
+
/**
|
|
45
|
+
* Read a region's tabix lines, then — if any feature found there extends past
|
|
46
|
+
* the query — read the overhang on either side, so a parent line's children (a
|
|
47
|
+
* gene's exons, a transcript's CDS) outside the original window are pulled in
|
|
48
|
+
* and the parent/child tree resolves fully. Types in `dontRedispatchSet` are
|
|
49
|
+
* excluded from the bounds, so one chromosome-spanning record can't force a
|
|
50
|
+
* whole-chromosome refetch.
|
|
51
|
+
*
|
|
52
|
+
* **The flanks, not the union.** Re-reading `[minStart, maxEnd]` returns
|
|
53
|
+
* everything the first read already had — a second full read of the query range
|
|
54
|
+
* to collect a gene's tail. At the window sizes a GFF3 track is browsed at that
|
|
55
|
+
* is most of the work done twice, and it is the reason the download bar halved:
|
|
56
|
+
* the expansion arrived as a second phase whose total was the whole region
|
|
57
|
+
* again, so a region that had just reported 100% dropped to 50% and climbed back
|
|
58
|
+
* (measured: two `65536/65536` phases for one query). Reading only what is
|
|
59
|
+
* missing leaves the second phase the size of the overhang.
|
|
60
|
+
*
|
|
61
|
+
* The line sequence is unchanged by that. Tabix returns the lines *overlapping*
|
|
62
|
+
* a range, so the three ranges' lines are the union range's lines, with the ones
|
|
63
|
+
* straddling a boundary appearing twice; `offset` is a line's position in the
|
|
64
|
+
* file, so deduplicating and sorting on it reconstructs file order — which for
|
|
65
|
+
* an indexed file is coordinate order — exactly.
|
|
66
|
+
*
|
|
67
|
+
* The two flanks are read concurrently and so need a status slot each, or they
|
|
68
|
+
* take turns overwriting one label. Exactly one expansion happens: a flank's own
|
|
69
|
+
* overhang is not chased, which bounds the work at three reads per query and
|
|
70
|
+
* usually two.
|
|
71
|
+
*
|
|
72
|
+
* Shared by the GFF3 and GTF tabix adapters, which differ only in how they
|
|
73
|
+
* parse the returned lines.
|
|
74
|
+
*/
|
|
75
|
+
export declare function readTabixLinesRedispatched(file: TabixLineSource, query: {
|
|
76
|
+
refName: string;
|
|
77
|
+
start: number;
|
|
78
|
+
end: number;
|
|
79
|
+
}, dontRedispatchSet: Set<string>, opts?: {
|
|
80
|
+
statusCallback?: StatusCallback;
|
|
81
|
+
stopToken?: StopToken;
|
|
82
|
+
}): Promise<TabixLine[]>;
|
|
83
|
+
/**
|
|
84
|
+
* Minimal structural view of the `@gmod/tabix` call a header read needs, kept
|
|
85
|
+
* structural for the same reason as {@link TabixLineSource}.
|
|
86
|
+
*/
|
|
87
|
+
interface TabixHeaderSource {
|
|
88
|
+
getHeaderLines(): Promise<string[]>;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* The header lines of a tabix-indexed file, however that file kept them.
|
|
92
|
+
*
|
|
93
|
+
* `getHeader()` alone is not that: it returns only lines beginning with the
|
|
94
|
+
* index's meta character (`#`). A header that is a plain row — which is what
|
|
95
|
+
* `tabix -S N` exists for, and what PLINK `.ld`, bedGraph and BED deflines
|
|
96
|
+
* routinely are — comes back as the empty string, even though the index records
|
|
97
|
+
* N in `skipLines`.
|
|
98
|
+
*
|
|
99
|
+
* Reading both is not backwards compatibility, and does not become unnecessary
|
|
100
|
+
* once our own files are written with commented headers. A bare header is the
|
|
101
|
+
* shape the data's publisher chose: Pan-UKB's TSVs and PLINK's `.ld` are
|
|
102
|
+
* distributed that way, and `-S N` is the only way to index one without
|
|
103
|
+
* rewriting a file the user did not write. Advice about how to generate a file
|
|
104
|
+
* reaches the files we generate; this reaches the rest.
|
|
105
|
+
*
|
|
106
|
+
* An adapter that stops at `getHeader()` therefore cannot tell "this file has
|
|
107
|
+
* no header" from "this file's header is not commented", and quietly falls back
|
|
108
|
+
* to an assumed column layout. That has cost real information more than once: a
|
|
109
|
+
* PLINK LD file lost its D' column, so `ldMetric: 'dprime'` silently served r²,
|
|
110
|
+
* and a bedGraph loses the names of its value columns. Nothing errors, because
|
|
111
|
+
* the assumed layout parses.
|
|
112
|
+
*
|
|
113
|
+
* That policy now lives in @gmod/tabix 3.5.4 as getHeaderLines, next to the
|
|
114
|
+
* index metadata that decides it, so this is a delegate. Deciding it there also
|
|
115
|
+
* costs one read of the file's leading blocks rather than two: asking for the
|
|
116
|
+
* commented block and then the counted rows used to fetch and decompress the
|
|
117
|
+
* same bytes twice, which every bare-header file did on every call.
|
|
118
|
+
*/
|
|
119
|
+
export declare function readTabixHeaderLines(file: TabixHeaderSource): Promise<string[]>;
|
|
120
|
+
export {};
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { createStatusFanOut, downloadStatus } from './progress.js';
|
|
2
|
+
import { calculateRedispatchRange } from './range.js';
|
|
3
|
+
import { withStopTokenSignal } from './stopToken.js';
|
|
4
|
+
/**
|
|
5
|
+
* Read the feature type (column 3) from a raw GFF3/GTF line without a full
|
|
6
|
+
* split. Used only to classify a line for redispatch.
|
|
7
|
+
*/
|
|
8
|
+
function extractType(line) {
|
|
9
|
+
const t1 = line.indexOf('\t');
|
|
10
|
+
const t2 = t1 === -1 ? -1 : line.indexOf('\t', t1 + 1);
|
|
11
|
+
const t3 = t2 === -1 ? -1 : line.indexOf('\t', t2 + 1);
|
|
12
|
+
// a truncated line has no column 3 to read; a final column 3 (no trailing
|
|
13
|
+
// tab) runs to the end of the line rather than one character short of it
|
|
14
|
+
return t2 === -1 ? '' : line.slice(t2 + 1, t3 === -1 ? line.length : t3);
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Fetch the tabix lines for a region under a "Downloading features" progress
|
|
18
|
+
* label, capturing each line's byte offset, indexed start/end, and feature type
|
|
19
|
+
* into a {@link TabixLine}. Shared by the GFF3 and GTF tabix adapters.
|
|
20
|
+
*
|
|
21
|
+
* The stop token becomes the read's `AbortSignal`, so a cancelled fetch drops
|
|
22
|
+
* its block reads at the socket instead of downloading them and discarding the
|
|
23
|
+
* lines. @gmod/tabix aborts a block shared between callers only once every
|
|
24
|
+
* joined caller has aborted (`AggregateAbortController`), so this can't cancel a
|
|
25
|
+
* chunk another region still needs.
|
|
26
|
+
*/
|
|
27
|
+
export function readTabixLines(gff, refName, start, end, statusCallback, stopToken) {
|
|
28
|
+
const lines = [];
|
|
29
|
+
return withStopTokenSignal(stopToken, signal => downloadStatus('Downloading features', statusCallback, onProgress => gff.getLines(refName, start, end, {
|
|
30
|
+
lineCallback: (line, offset, s, e) => {
|
|
31
|
+
lines.push({
|
|
32
|
+
line,
|
|
33
|
+
offset,
|
|
34
|
+
start: s,
|
|
35
|
+
end: e,
|
|
36
|
+
type: extractType(line),
|
|
37
|
+
});
|
|
38
|
+
},
|
|
39
|
+
onProgress,
|
|
40
|
+
signal,
|
|
41
|
+
}))).then(() => lines);
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Read a region's tabix lines, then — if any feature found there extends past
|
|
45
|
+
* the query — read the overhang on either side, so a parent line's children (a
|
|
46
|
+
* gene's exons, a transcript's CDS) outside the original window are pulled in
|
|
47
|
+
* and the parent/child tree resolves fully. Types in `dontRedispatchSet` are
|
|
48
|
+
* excluded from the bounds, so one chromosome-spanning record can't force a
|
|
49
|
+
* whole-chromosome refetch.
|
|
50
|
+
*
|
|
51
|
+
* **The flanks, not the union.** Re-reading `[minStart, maxEnd]` returns
|
|
52
|
+
* everything the first read already had — a second full read of the query range
|
|
53
|
+
* to collect a gene's tail. At the window sizes a GFF3 track is browsed at that
|
|
54
|
+
* is most of the work done twice, and it is the reason the download bar halved:
|
|
55
|
+
* the expansion arrived as a second phase whose total was the whole region
|
|
56
|
+
* again, so a region that had just reported 100% dropped to 50% and climbed back
|
|
57
|
+
* (measured: two `65536/65536` phases for one query). Reading only what is
|
|
58
|
+
* missing leaves the second phase the size of the overhang.
|
|
59
|
+
*
|
|
60
|
+
* The line sequence is unchanged by that. Tabix returns the lines *overlapping*
|
|
61
|
+
* a range, so the three ranges' lines are the union range's lines, with the ones
|
|
62
|
+
* straddling a boundary appearing twice; `offset` is a line's position in the
|
|
63
|
+
* file, so deduplicating and sorting on it reconstructs file order — which for
|
|
64
|
+
* an indexed file is coordinate order — exactly.
|
|
65
|
+
*
|
|
66
|
+
* The two flanks are read concurrently and so need a status slot each, or they
|
|
67
|
+
* take turns overwriting one label. Exactly one expansion happens: a flank's own
|
|
68
|
+
* overhang is not chased, which bounds the work at three reads per query and
|
|
69
|
+
* usually two.
|
|
70
|
+
*
|
|
71
|
+
* Shared by the GFF3 and GTF tabix adapters, which differ only in how they
|
|
72
|
+
* parse the returned lines.
|
|
73
|
+
*/
|
|
74
|
+
export async function readTabixLinesRedispatched(file,
|
|
75
|
+
// the region's locus only — kept structural, like TabixLineSource above, so
|
|
76
|
+
// this module stays free of the `types` barrel and its MST models
|
|
77
|
+
query, dontRedispatchSet, opts = {}) {
|
|
78
|
+
const { statusCallback, stopToken } = opts;
|
|
79
|
+
// `cb` is not optional: each read decides where it reports, and the flanks
|
|
80
|
+
// report somewhere the first read does not
|
|
81
|
+
const read = (start, end, cb) => readTabixLines(file, query.refName, start, end, cb, stopToken);
|
|
82
|
+
const lines = await read(query.start, query.end, statusCallback);
|
|
83
|
+
const redispatch = calculateRedispatchRange(lines, dontRedispatchSet, query.start, query.end);
|
|
84
|
+
if (redispatch) {
|
|
85
|
+
const slot = createStatusFanOut(statusCallback);
|
|
86
|
+
const flanks = await Promise.all([
|
|
87
|
+
redispatch.start < query.start
|
|
88
|
+
? read(redispatch.start, query.start, slot())
|
|
89
|
+
: [],
|
|
90
|
+
redispatch.end > query.end ? read(query.end, redispatch.end, slot()) : [],
|
|
91
|
+
]);
|
|
92
|
+
return mergeTabixLines(lines, ...flanks);
|
|
93
|
+
}
|
|
94
|
+
return lines;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The lines of several overlapping reads as one file-ordered run, each line
|
|
98
|
+
* once. Keyed on `offset` because that is what a line *is* — its position in the
|
|
99
|
+
* file — so a line two ranges both returned collapses to one entry and the sort
|
|
100
|
+
* puts the whole set back in the order a single read over their union would have
|
|
101
|
+
* produced.
|
|
102
|
+
*/
|
|
103
|
+
function mergeTabixLines(...groups) {
|
|
104
|
+
const byOffset = new Map();
|
|
105
|
+
for (const group of groups) {
|
|
106
|
+
for (const line of group) {
|
|
107
|
+
byOffset.set(line.offset, line);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
return [...byOffset.values()].sort((a, b) => a.offset - b.offset);
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* The header lines of a tabix-indexed file, however that file kept them.
|
|
114
|
+
*
|
|
115
|
+
* `getHeader()` alone is not that: it returns only lines beginning with the
|
|
116
|
+
* index's meta character (`#`). A header that is a plain row — which is what
|
|
117
|
+
* `tabix -S N` exists for, and what PLINK `.ld`, bedGraph and BED deflines
|
|
118
|
+
* routinely are — comes back as the empty string, even though the index records
|
|
119
|
+
* N in `skipLines`.
|
|
120
|
+
*
|
|
121
|
+
* Reading both is not backwards compatibility, and does not become unnecessary
|
|
122
|
+
* once our own files are written with commented headers. A bare header is the
|
|
123
|
+
* shape the data's publisher chose: Pan-UKB's TSVs and PLINK's `.ld` are
|
|
124
|
+
* distributed that way, and `-S N` is the only way to index one without
|
|
125
|
+
* rewriting a file the user did not write. Advice about how to generate a file
|
|
126
|
+
* reaches the files we generate; this reaches the rest.
|
|
127
|
+
*
|
|
128
|
+
* An adapter that stops at `getHeader()` therefore cannot tell "this file has
|
|
129
|
+
* no header" from "this file's header is not commented", and quietly falls back
|
|
130
|
+
* to an assumed column layout. That has cost real information more than once: a
|
|
131
|
+
* PLINK LD file lost its D' column, so `ldMetric: 'dprime'` silently served r²,
|
|
132
|
+
* and a bedGraph loses the names of its value columns. Nothing errors, because
|
|
133
|
+
* the assumed layout parses.
|
|
134
|
+
*
|
|
135
|
+
* That policy now lives in @gmod/tabix 3.5.4 as getHeaderLines, next to the
|
|
136
|
+
* index metadata that decides it, so this is a delegate. Deciding it there also
|
|
137
|
+
* costs one read of the file's leading blocks rather than two: asking for the
|
|
138
|
+
* commented block and then the counted rows used to fetch and decompress the
|
|
139
|
+
* same bytes twice, which every bare-header file did on every call.
|
|
140
|
+
*/
|
|
141
|
+
export function readTabixHeaderLines(file) {
|
|
142
|
+
return file.getHeaderLines();
|
|
143
|
+
}
|
package/esm/util/tags.js
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AnyConfigurationModel } from '../configuration/index.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a track config names an assembly the session holds as **temporary** —
|
|
4
|
+
* the read-vs-ref pair a comparative view synthesizes, which goes away when that
|
|
5
|
+
* view closes (`releaseTemporaryAssemblies`).
|
|
6
|
+
*
|
|
7
|
+
* `some`, not `every`: a config half of whose assemblies survive is still one
|
|
8
|
+
* nothing can draw once the other half is gone, and unlike a sweep that DELETES
|
|
9
|
+
* a config this question never has to decide whose it is. The `every`/`some`
|
|
10
|
+
* distinction is what made the session-track sweep ADR-084 removed a judgment
|
|
11
|
+
* call; a question asked at the moment of the write has no such problem.
|
|
12
|
+
*
|
|
13
|
+
* Down here rather than beside the contract check that started it
|
|
14
|
+
* (`product-core/Session/temporaryAssemblyTracks.ts`) because two callers now
|
|
15
|
+
* ask it and they are on opposite sides of the dependency: the check and the
|
|
16
|
+
* track menu's copy guard in product-core, and `addTrackFromWidget` in this
|
|
17
|
+
* package, which routes a track around the session lists entirely when the
|
|
18
|
+
* answer is yes. A second copy of the predicate is the thing to avoid — a copied
|
|
19
|
+
* guard is where the escape clause gets added to only one of them.
|
|
20
|
+
*/
|
|
21
|
+
export declare function namesTemporaryAssembly(session: unknown, trackConf: AnyConfigurationModel | Record<string, unknown>): boolean;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { readConfObject } from '../configuration/index.js';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a track config names an assembly the session holds as **temporary** —
|
|
4
|
+
* the read-vs-ref pair a comparative view synthesizes, which goes away when that
|
|
5
|
+
* view closes (`releaseTemporaryAssemblies`).
|
|
6
|
+
*
|
|
7
|
+
* `some`, not `every`: a config half of whose assemblies survive is still one
|
|
8
|
+
* nothing can draw once the other half is gone, and unlike a sweep that DELETES
|
|
9
|
+
* a config this question never has to decide whose it is. The `every`/`some`
|
|
10
|
+
* distinction is what made the session-track sweep ADR-084 removed a judgment
|
|
11
|
+
* call; a question asked at the moment of the write has no such problem.
|
|
12
|
+
*
|
|
13
|
+
* Down here rather than beside the contract check that started it
|
|
14
|
+
* (`product-core/Session/temporaryAssemblyTracks.ts`) because two callers now
|
|
15
|
+
* ask it and they are on opposite sides of the dependency: the check and the
|
|
16
|
+
* track menu's copy guard in product-core, and `addTrackFromWidget` in this
|
|
17
|
+
* package, which routes a track around the session lists entirely when the
|
|
18
|
+
* answer is yes. A second copy of the predicate is the thing to avoid — a copied
|
|
19
|
+
* guard is where the escape clause gets added to only one of them.
|
|
20
|
+
*/
|
|
21
|
+
export function namesTemporaryAssembly(session, trackConf) {
|
|
22
|
+
const temporary = session
|
|
23
|
+
.temporaryAssemblies;
|
|
24
|
+
if (!temporary?.length) {
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
const names = readConfObject(trackConf, 'assemblyNames');
|
|
28
|
+
return !!names?.some(name => temporary.some(a => a.name === name));
|
|
29
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A region needs at least this many coordinate labels to be worth numbering.
|
|
3
|
+
*
|
|
4
|
+
* Tick pitch comes from the bpPerPx of the whole displayed-region set, so a
|
|
5
|
+
* region much narrower than that pitch still catches a tick or two. With every
|
|
6
|
+
* chromosome displayed at once — a whole-genome overview scalebar, a
|
|
7
|
+
* whole-genome dotplot axis — each one then ends up with a single lone number
|
|
8
|
+
* jammed against the next chromosome's refName, and the axis reads as scattered
|
|
9
|
+
* repeats of the same "500M".
|
|
10
|
+
*
|
|
11
|
+
* One coordinate conveys no scale on its own: it gives a reader no spacing to
|
|
12
|
+
* read a distance off, and sitting alone in a chromosome's span it reads as
|
|
13
|
+
* marking that span rather than a position inside it. Needing two means narrow
|
|
14
|
+
* regions show just their refName, and only regions with room for a real ruler
|
|
15
|
+
* get numbers.
|
|
16
|
+
*/
|
|
17
|
+
export declare const MIN_TICK_LABELS_PER_BLOCK = 2;
|
|
18
|
+
/** Whether a run of `count` coordinate labels in one region is worth drawing. */
|
|
19
|
+
export declare function tickLabelsWorthDrawing(count: number): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* Drop the labels of every region left with too few of them to read, keeping
|
|
22
|
+
* those of regions that have a real ruler.
|
|
23
|
+
*
|
|
24
|
+
* For a caller holding one flat list across several regions, where the count
|
|
25
|
+
* has to be taken per region before anything can be decided. A caller that
|
|
26
|
+
* already works a region at a time wants `tickLabelsWorthDrawing` on its own
|
|
27
|
+
* length instead.
|
|
28
|
+
*
|
|
29
|
+
* `regionOf` returns whatever identifies a region to the caller — an index, a
|
|
30
|
+
* refName, a block key. A group's labels are dropped together, so that identity
|
|
31
|
+
* has to separate two regions that can sit side by side on one axis: an axis
|
|
32
|
+
* may carry the same refName twice (a read-vs-ref dotplot builds one from
|
|
33
|
+
* gatherOverlaps, so a read aligned twice to a chromosome yields two regions on
|
|
34
|
+
* it), and keying those together would let one lend the other its quorum.
|
|
35
|
+
*/
|
|
36
|
+
export declare function dropLoneTickLabels<T>(labels: T[], regionOf: (label: T) => unknown): T[];
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A region needs at least this many coordinate labels to be worth numbering.
|
|
3
|
+
*
|
|
4
|
+
* Tick pitch comes from the bpPerPx of the whole displayed-region set, so a
|
|
5
|
+
* region much narrower than that pitch still catches a tick or two. With every
|
|
6
|
+
* chromosome displayed at once — a whole-genome overview scalebar, a
|
|
7
|
+
* whole-genome dotplot axis — each one then ends up with a single lone number
|
|
8
|
+
* jammed against the next chromosome's refName, and the axis reads as scattered
|
|
9
|
+
* repeats of the same "500M".
|
|
10
|
+
*
|
|
11
|
+
* One coordinate conveys no scale on its own: it gives a reader no spacing to
|
|
12
|
+
* read a distance off, and sitting alone in a chromosome's span it reads as
|
|
13
|
+
* marking that span rather than a position inside it. Needing two means narrow
|
|
14
|
+
* regions show just their refName, and only regions with room for a real ruler
|
|
15
|
+
* get numbers.
|
|
16
|
+
*/
|
|
17
|
+
export const MIN_TICK_LABELS_PER_BLOCK = 2;
|
|
18
|
+
/** Whether a run of `count` coordinate labels in one region is worth drawing. */
|
|
19
|
+
export function tickLabelsWorthDrawing(count) {
|
|
20
|
+
return count >= MIN_TICK_LABELS_PER_BLOCK;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Drop the labels of every region left with too few of them to read, keeping
|
|
24
|
+
* those of regions that have a real ruler.
|
|
25
|
+
*
|
|
26
|
+
* For a caller holding one flat list across several regions, where the count
|
|
27
|
+
* has to be taken per region before anything can be decided. A caller that
|
|
28
|
+
* already works a region at a time wants `tickLabelsWorthDrawing` on its own
|
|
29
|
+
* length instead.
|
|
30
|
+
*
|
|
31
|
+
* `regionOf` returns whatever identifies a region to the caller — an index, a
|
|
32
|
+
* refName, a block key. A group's labels are dropped together, so that identity
|
|
33
|
+
* has to separate two regions that can sit side by side on one axis: an axis
|
|
34
|
+
* may carry the same refName twice (a read-vs-ref dotplot builds one from
|
|
35
|
+
* gatherOverlaps, so a read aligned twice to a chromosome yields two regions on
|
|
36
|
+
* it), and keying those together would let one lend the other its quorum.
|
|
37
|
+
*/
|
|
38
|
+
export function dropLoneTickLabels(labels, regionOf) {
|
|
39
|
+
const counts = new Map();
|
|
40
|
+
for (const label of labels) {
|
|
41
|
+
const region = regionOf(label);
|
|
42
|
+
counts.set(region, (counts.get(region) ?? 0) + 1);
|
|
43
|
+
}
|
|
44
|
+
return labels.filter(label => tickLabelsWorthDrawing(counts.get(regionOf(label))));
|
|
45
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A wall-clock gate for a callback invoked once per item in a long synchronous
|
|
3
|
+
* loop: `due(intervalMs)` returns true at most once per `intervalMs`, without
|
|
4
|
+
* calling `Date.now()` on every invocation.
|
|
5
|
+
*
|
|
6
|
+
* `Date.now()` costs ~40ns, invisible until the loop is a 666k-read pileup —
|
|
7
|
+
* there it measured ~28ms per gated callsite, and the alignments worker has two
|
|
8
|
+
* of them (the progress emit in `createProgressReporter` and the stop-token
|
|
9
|
+
* check in `checkStopTokenThrottled`). Both previously read the clock per call, on the
|
|
10
|
+
* documented reasoning that it was negligible next to the per-item work; at
|
|
11
|
+
* this item count it measurably isn't.
|
|
12
|
+
*
|
|
13
|
+
* The stride between clock reads is **learned from the observed call rate**,
|
|
14
|
+
* never fixed. A fixed stride is what regressed this before: a phase with few
|
|
15
|
+
* but heavy items (a multi-sample VCF region — a few hundred sites, thousands
|
|
16
|
+
* of samples each) never reached the count, so its progress bar froze at 0% and
|
|
17
|
+
* its cancellation never fired. A learned stride makes exactly those loops
|
|
18
|
+
* measure a low rate and hold a stride of 1, gating on time alone as before,
|
|
19
|
+
* while a millions-of-calls loop thins itself out.
|
|
20
|
+
*
|
|
21
|
+
* `intervalMs` is per call rather than fixed at construction: it was added for
|
|
22
|
+
* `checkStopTokenThrottled`, whose (since-deleted) sync-XHR probe backed off
|
|
23
|
+
* linearly over a long loop. Both current callers pass a constant.
|
|
24
|
+
*/
|
|
25
|
+
export declare function createTimeGate(): (intervalMs: number) => boolean;
|
|
26
|
+
export type TimeGate = ReturnType<typeof createTimeGate>;
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
// Target number of `Date.now()` reads per interval. Above 1 so the fire itself
|
|
2
|
+
// doesn't drift late when the call rate rises between two fires: the gate
|
|
3
|
+
// notices the interval has elapsed within ~1/this of it.
|
|
4
|
+
const CLOCK_READS_PER_INTERVAL = 8;
|
|
5
|
+
// Ceiling on the learned stride. The stride is only ever an extrapolation from
|
|
6
|
+
// the last observed call rate, and the gate is blind between clock reads — if
|
|
7
|
+
// per-item cost jumps mid-loop the next read arrives late in wall-clock terms.
|
|
8
|
+
// This caps how blind it can get: a 10x mid-loop slowdown at a stride this size
|
|
9
|
+
// costs about one extra interval, which for a progress emit or a cancellation
|
|
10
|
+
// check is immaterial. At the rates that motivate a gate at all (hundreds of
|
|
11
|
+
// calls per ms) it is never the binding constraint.
|
|
12
|
+
const MAX_STRIDE = 8192;
|
|
13
|
+
// The stride is re-aimed on every clock read, including ones taken part-way
|
|
14
|
+
// through an interval — otherwise the whole first interval runs at stride 1,
|
|
15
|
+
// which for a 666k-call loop is 33k clock reads before the gate learns
|
|
16
|
+
// anything. Those early samples span a short window, so cap how fast the stride
|
|
17
|
+
// may grow: the ramp still reaches MAX_STRIDE in five reads, but one
|
|
18
|
+
// unrepresentatively fast millisecond can't launch the gate straight to blind.
|
|
19
|
+
const STRIDE_GROWTH_LIMIT = 8;
|
|
20
|
+
/**
|
|
21
|
+
* A wall-clock gate for a callback invoked once per item in a long synchronous
|
|
22
|
+
* loop: `due(intervalMs)` returns true at most once per `intervalMs`, without
|
|
23
|
+
* calling `Date.now()` on every invocation.
|
|
24
|
+
*
|
|
25
|
+
* `Date.now()` costs ~40ns, invisible until the loop is a 666k-read pileup —
|
|
26
|
+
* there it measured ~28ms per gated callsite, and the alignments worker has two
|
|
27
|
+
* of them (the progress emit in `createProgressReporter` and the stop-token
|
|
28
|
+
* check in `checkStopTokenThrottled`). Both previously read the clock per call, on the
|
|
29
|
+
* documented reasoning that it was negligible next to the per-item work; at
|
|
30
|
+
* this item count it measurably isn't.
|
|
31
|
+
*
|
|
32
|
+
* The stride between clock reads is **learned from the observed call rate**,
|
|
33
|
+
* never fixed. A fixed stride is what regressed this before: a phase with few
|
|
34
|
+
* but heavy items (a multi-sample VCF region — a few hundred sites, thousands
|
|
35
|
+
* of samples each) never reached the count, so its progress bar froze at 0% and
|
|
36
|
+
* its cancellation never fired. A learned stride makes exactly those loops
|
|
37
|
+
* measure a low rate and hold a stride of 1, gating on time alone as before,
|
|
38
|
+
* while a millions-of-calls loop thins itself out.
|
|
39
|
+
*
|
|
40
|
+
* `intervalMs` is per call rather than fixed at construction: it was added for
|
|
41
|
+
* `checkStopTokenThrottled`, whose (since-deleted) sync-XHR probe backed off
|
|
42
|
+
* linearly over a long loop. Both current callers pass a constant.
|
|
43
|
+
*/
|
|
44
|
+
export function createTimeGate() {
|
|
45
|
+
let stride = 1;
|
|
46
|
+
let sinceClockRead = 0;
|
|
47
|
+
let callsSinceFire = 0;
|
|
48
|
+
let lastFire = 0;
|
|
49
|
+
return (intervalMs) => {
|
|
50
|
+
callsSinceFire++;
|
|
51
|
+
if (++sinceClockRead < stride) {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
sinceClockRead = 0;
|
|
55
|
+
const now = Date.now();
|
|
56
|
+
// lastFire 0 is the first call ever — `now - 0` is the epoch, not an
|
|
57
|
+
// elapsed time, and there is no rate to measure yet. Fire (so an initial
|
|
58
|
+
// 0% tick is never swallowed) and start the window here.
|
|
59
|
+
if (lastFire === 0) {
|
|
60
|
+
lastFire = now;
|
|
61
|
+
callsSinceFire = 0;
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
const elapsed = now - lastFire;
|
|
65
|
+
// elapsed 0 means the window fell inside one clock tick, which measures
|
|
66
|
+
// nothing. Shrinking is unbounded (an estimate below the current stride
|
|
67
|
+
// takes effect at once) so a slowdown is corrected on the next read.
|
|
68
|
+
if (elapsed > 0) {
|
|
69
|
+
stride = Math.min(MAX_STRIDE, stride * STRIDE_GROWTH_LIMIT, Math.max(1, Math.floor((callsSinceFire * intervalMs) /
|
|
70
|
+
(elapsed * CLOCK_READS_PER_INTERVAL))));
|
|
71
|
+
}
|
|
72
|
+
if (elapsed < intervalMs) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
lastFire = now;
|
|
76
|
+
callsSinceFire = 0;
|
|
77
|
+
return true;
|
|
78
|
+
};
|
|
79
|
+
}
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Track-config override deltas.
|
|
3
|
+
*
|
|
4
|
+
* A non-admin's track-menu / Settings edits are stored as a *delta* against the
|
|
5
|
+
* admin-owned base config (jbrowse.tracks entry), not as a full copy. The delta
|
|
6
|
+
* records only the slots the user changed; everything else resolves from the
|
|
7
|
+
* live base, so a later admin change to an untouched field (e.g. a corrected
|
|
8
|
+
* adapter URL) still flows through instead of being masked by a pinned full
|
|
9
|
+
* snapshot.
|
|
10
|
+
*
|
|
11
|
+
* Two operations, inverse of each other on the realistic edit path:
|
|
12
|
+
* - `diffTrackConfig(base, edited)` — the minimal delta
|
|
13
|
+
* - `mergeTrackConfig(base, delta)` — reconstruct the effective config
|
|
14
|
+
*
|
|
15
|
+
* Deliberate limitation (no tombstones): a delta records adds/changes only, not
|
|
16
|
+
* deletions. If a user *resets* a slot the admin had customized (base has it,
|
|
17
|
+
* edited omits it), the delta can't express "drop below the admin value", so the
|
|
18
|
+
* field keeps following the base across a reload. This keeps the merge trivial
|
|
19
|
+
* and the shared JSON free of deletion sentinels, and following the admin value
|
|
20
|
+
* is a defensible outcome.
|
|
21
|
+
*
|
|
22
|
+
* What it is NOT free to conflate is a removal with a reset. Both diff to an
|
|
23
|
+
* empty delta, and `SessionTracks.updateTrackConfiguration` used to read that as
|
|
24
|
+
* "the edit netted back to the base" and revert the track's working copy — which
|
|
25
|
+
* undid a removal on screen 400ms after it landed. Promotable slots made that
|
|
26
|
+
* reachable rather than rare: the promoted-default snackbar's "Override N
|
|
27
|
+
* customized tracks" exists to unset a slot, and an admin config is free to set
|
|
28
|
+
* one. That branch now keeps the working copy; see the comment there.
|
|
29
|
+
*
|
|
30
|
+
* `displays` is merged by `displayId` so an edit to one display doesn't pin the
|
|
31
|
+
* others. Nested config objects (e.g. `adapter`) recurse. Any other array (value
|
|
32
|
+
* arrays like `jexlFilters`, `assemblyNames`) is replaced wholesale when changed.
|
|
33
|
+
*
|
|
34
|
+
* Subtlety worth not "optimizing": when the base has NO `displays` array but the
|
|
35
|
+
* edited snapshot does (common — a track config that omits displays gets a stub
|
|
36
|
+
* per compatible display type injected by `baseTrackConfig.preProcessSnapshot`
|
|
37
|
+
* when it hydrates), the whole edited array lands in the delta, including
|
|
38
|
+
* seemingly content-free `{type, displayId}` stubs. Do not strip those stubs to
|
|
39
|
+
* shrink the delta: the array order defines the default display (`displays[0]`),
|
|
40
|
+
* and re-injection on the next hydrate would append them in a different order,
|
|
41
|
+
* silently changing which display opens by default.
|
|
42
|
+
*/
|
|
43
|
+
type Json = string | number | boolean | null | undefined | Json[] | {
|
|
44
|
+
[key: string]: Json;
|
|
45
|
+
};
|
|
46
|
+
/**
|
|
47
|
+
* Minimal delta of `edited` against `base`. Both are plain config snapshots
|
|
48
|
+
* (post-stripDefault). Records adds/changes only; see the module note on the
|
|
49
|
+
* no-tombstone limitation. Always retains `trackId` so the delta is
|
|
50
|
+
* self-identifying.
|
|
51
|
+
*/
|
|
52
|
+
export declare function diffTrackConfig(base: Record<string, unknown>, edited: Record<string, unknown>): Record<string, unknown>;
|
|
53
|
+
/**
|
|
54
|
+
* Reconstruct the effective config by layering `delta` over the live `base`.
|
|
55
|
+
* Inverse of `diffTrackConfig` on the add/change path (see module note).
|
|
56
|
+
*/
|
|
57
|
+
export declare function mergeTrackConfig(base: Record<string, unknown>, delta: Record<string, unknown>): Record<string, unknown>;
|
|
58
|
+
/** A single overridden slot: the dotted `path`, its base `from` and edited `to`. */
|
|
59
|
+
export interface TrackConfigChange {
|
|
60
|
+
/**
|
|
61
|
+
* Where the setting lives, and — for a row a UI can revert — its **address**:
|
|
62
|
+
* `resetPreferenceChange` parses a promoted display-type default's path back
|
|
63
|
+
* into the type and slot it clears. So a producer that wants a friendlier
|
|
64
|
+
* heading sets `label` and leaves this alone.
|
|
65
|
+
*/
|
|
66
|
+
path: string[];
|
|
67
|
+
from: Json;
|
|
68
|
+
to: Json;
|
|
69
|
+
/**
|
|
70
|
+
* What to head the row with, when the path is an address rather than
|
|
71
|
+
* something to read. `SettingsChangesTable` falls back to the joined path,
|
|
72
|
+
* which is what every delta row still wants — a config path IS the readable
|
|
73
|
+
* thing there.
|
|
74
|
+
*/
|
|
75
|
+
label?: string;
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Flatten a stored track-config `delta` (see {@link diffTrackConfig}) into a
|
|
79
|
+
* list of changed slots paired with their `base` values, so the UI can show a
|
|
80
|
+
* user exactly which settings they've overridden and what the default was.
|
|
81
|
+
* Displays are addressed by type/displayId; identity keys are omitted.
|
|
82
|
+
*/
|
|
83
|
+
export declare function flattenTrackConfigDelta(base: Record<string, unknown>, delta: Record<string, unknown>): TrackConfigChange[];
|
|
84
|
+
export {};
|