@jbrowse/core 4.3.0 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +390 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { boundBandHeight } from './bandHeight.js';
|
|
2
|
+
/**
|
|
3
|
+
* #api core/util
|
|
4
|
+
* The pixels a band takes from the plot below it: 0 when off, the (optionally
|
|
5
|
+
* bound) stated height when on. This is the single spelling of "off spends
|
|
6
|
+
* 0 px".
|
|
7
|
+
*/
|
|
8
|
+
export function reservedPx(band) {
|
|
9
|
+
if (!band.active) {
|
|
10
|
+
return 0;
|
|
11
|
+
}
|
|
12
|
+
return band.bounds ? boundBandHeight(band.height, band.bounds) : band.height;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* #api core/util
|
|
16
|
+
* Fold an ordered set of bands into tops and a bottom. The order is the
|
|
17
|
+
* argument, so a display states its band order exactly once; reserve, paint
|
|
18
|
+
* and pick all read the same fold, which is what keeps "the reserver and the
|
|
19
|
+
* painter read one function" true by construction rather than by prose.
|
|
20
|
+
*
|
|
21
|
+
* Only the fold is shared. What varies per display stays there: per-lane
|
|
22
|
+
* iteration runs this once per lane, sticky-vs-scrolling is a property of how
|
|
23
|
+
* the result is projected to the screen, and a band drawn outside its
|
|
24
|
+
* reservation (an overlay) carries its own draw rect beside the stack.
|
|
25
|
+
*/
|
|
26
|
+
export function stackBands(order, bands) {
|
|
27
|
+
const top = {};
|
|
28
|
+
const reserved = {};
|
|
29
|
+
let y = 0;
|
|
30
|
+
for (const key of order) {
|
|
31
|
+
top[key] = y;
|
|
32
|
+
reserved[key] = reservedPx(bands[key]);
|
|
33
|
+
y += reserved[key];
|
|
34
|
+
}
|
|
35
|
+
return { top, reserved, bottom: y };
|
|
36
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export declare const BEZIER_CONNECTOR_MAX_REACH_PX: number;
|
|
2
|
+
export declare function bezierConnectorPath({ x1, y1, x2, y2, s1, s2, leadingEnd2, reversed1, reversed2, maxHandlePx, dip, }: {
|
|
3
|
+
x1: number;
|
|
4
|
+
y1: number;
|
|
5
|
+
x2: number;
|
|
6
|
+
y2: number;
|
|
7
|
+
s1: number;
|
|
8
|
+
s2: number;
|
|
9
|
+
leadingEnd2?: boolean;
|
|
10
|
+
reversed1?: boolean;
|
|
11
|
+
reversed2?: boolean;
|
|
12
|
+
maxHandlePx?: number;
|
|
13
|
+
dip?: boolean;
|
|
14
|
+
}): string;
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
// One horizontal-tangent "oval" connector curve, shared by the alignments
|
|
2
|
+
// linked-read bezier overlay (PileupBezierOverlay) and BreakpointSplitView's
|
|
3
|
+
// AlignmentConnections so the two renderers draw a connection identically. Both
|
|
4
|
+
// describe the same thing — two read endpoints (from the shared
|
|
5
|
+
// connectionEndpoints rule), each segment's strand, and whether the second end
|
|
6
|
+
// is a split junction's 5' edge — and this owns the curve geometry, so the
|
|
7
|
+
// direction logic can't drift between them.
|
|
8
|
+
// A handle or bow larger than the endpoints' own separation folds the cubic
|
|
9
|
+
// back over itself: the curve leaves along its tangent, overshoots the far
|
|
10
|
+
// endpoint, and has to curl back to arrive — the "loop-de-loop"/squiggle seen
|
|
11
|
+
// on tightly-spaced reads. So every shaping term stays under this fraction of
|
|
12
|
+
// the span the curve actually has to cover. Endpoints that nearly touch
|
|
13
|
+
// therefore get no shaping at all and draw as the straight line they should be.
|
|
14
|
+
const SPAN_FACTOR = 0.3;
|
|
15
|
+
// Ceiling on the control-handle length. The span budget is what actually scales
|
|
16
|
+
// the handle — it resolves below this for any connection whose endpoints are
|
|
17
|
+
// closer than ~667px apart, which is nearly all of them — so this only bites on
|
|
18
|
+
// very wide arcs. There it bounds the fold-back hook that an inversion draws at
|
|
19
|
+
// its leading end: unbounded, that hook grows with the arc, and a full-width
|
|
20
|
+
// inversion flings a ~500px curl back across unrelated reads.
|
|
21
|
+
const MAX_HANDLE_PX = 200;
|
|
22
|
+
// Vertical bow applied to a connection whose two endpoints share (or nearly
|
|
23
|
+
// share) a row — e.g. a chain whose split segments are all laid out on one
|
|
24
|
+
// pileup row. Without it the horizontal-only handles collapse the cubic to a
|
|
25
|
+
// flat, invisible line lying on the row; the bow lifts the control points so
|
|
26
|
+
// the curve arcs into a visible hump. This is the control-point lift, not the
|
|
27
|
+
// height the curve reaches: a cubic with both control points lifted by `bow`
|
|
28
|
+
// apexes at 0.75 * bow.
|
|
29
|
+
const MAX_BOW_PX = 30;
|
|
30
|
+
// A discordant connection bows *down* instead of up, so the two classes read
|
|
31
|
+
// apart at a glance. Both renderers follow this: BreakpointSplitView dips its
|
|
32
|
+
// same-level discordant links, and the pileup overlay dips every curve it draws
|
|
33
|
+
// (its normal-orientation pairs are plain lines, so a curve there is always
|
|
34
|
+
// discordant). Keep it that way — a renderer that opts out makes "below the
|
|
35
|
+
// reads" mean two different things in two views of the same data.
|
|
36
|
+
//
|
|
37
|
+
// Depth comes from the connection's own horizontal span
|
|
38
|
+
// rather than reaching for some fixed row: with "view as pairs" / "link
|
|
39
|
+
// supplementary alignments" every qname lands on one row, so dipping to a
|
|
40
|
+
// shared row bottoms every curve out at the same depth and they collapse into
|
|
41
|
+
// spaghetti. Keying on span makes the depth mean something — wide events dive
|
|
42
|
+
// deeper than narrow ones — and lets the curves nest.
|
|
43
|
+
//
|
|
44
|
+
// Depth saturates toward MAX_DIP_PX rather than clamping at it. A hard cap
|
|
45
|
+
// reintroduces exactly the problem being fixed: every connection wider than the
|
|
46
|
+
// cap point bottoms out at an identical depth, and at any plausible cap a
|
|
47
|
+
// typical view is mostly wider. This form stays strictly increasing in span at
|
|
48
|
+
// every width while staying bounded. DIP_HALF_SPAN_PX is the span at which the
|
|
49
|
+
// dip reaches half its maximum.
|
|
50
|
+
const MAX_DIP_PX = 110;
|
|
51
|
+
const DIP_HALF_SPAN_PX = 500;
|
|
52
|
+
// How far a curve can stray outside the band between its two endpoints. A cubic
|
|
53
|
+
// with both control points offset by `d` apexes at 0.75 * d, and the dip — the
|
|
54
|
+
// deeper of the two shaping terms — saturates toward MAX_DIP_PX, so this bounds
|
|
55
|
+
// both. A caller that culls off-screen curves has to pad its viewport test by
|
|
56
|
+
// this: the shaping is applied to the *control points*, so a curve whose two
|
|
57
|
+
// endpoints both sit just outside the viewport can still have a visible body.
|
|
58
|
+
export const BEZIER_CONNECTOR_MAX_REACH_PX = 0.75 * MAX_DIP_PX;
|
|
59
|
+
// Sign (+1/-1) of an endpoint's horizontal control handle. The handle leaves a
|
|
60
|
+
// trailing (3') endpoint along the read's reading direction (`strand`); at a
|
|
61
|
+
// split junction's leading (5') endpoint it flips, so the curve arrives flowing
|
|
62
|
+
// *into* the next segment (a fwd→rev inversion folds back instead of cutting
|
|
63
|
+
// straight across). `reversed` flips screen-x for a reverse-complemented region.
|
|
64
|
+
function tangentSign(strand, leading, reversed) {
|
|
65
|
+
return strand * (leading ? -1 : 1) * (reversed ? -1 : 1);
|
|
66
|
+
}
|
|
67
|
+
// How much shaping (handle length, bow height) this curve may spend: a fraction
|
|
68
|
+
// of the distance it has to cover.
|
|
69
|
+
function shapingBudget(p1, p2) {
|
|
70
|
+
return Math.hypot(p2.x - p1.x, p2.y - p1.y) * SPAN_FACTOR;
|
|
71
|
+
}
|
|
72
|
+
// Fades to zero as the endpoints' rows separate, since a cross-row curve
|
|
73
|
+
// already has vertical extent — and via the budget as they close in
|
|
74
|
+
// horizontally, since a short connector is legible without a hump.
|
|
75
|
+
function bowHeight(p1, p2, budget) {
|
|
76
|
+
return Math.min(budget, Math.max(0, MAX_BOW_PX - Math.abs(p2.y - p1.y)));
|
|
77
|
+
}
|
|
78
|
+
// Negative = the control points drop below the reads (see MAX_DIP_PX). Keyed on
|
|
79
|
+
// horizontal span alone: two reads a few px apart describe a small event and get
|
|
80
|
+
// a small dip, however tall their track happens to be.
|
|
81
|
+
//
|
|
82
|
+
// Budget-clamped like the bow. At the current tuning the saturating curve
|
|
83
|
+
// already resolves under the budget at every span (worst ratio ~0.73, as span
|
|
84
|
+
// → 0), so this is inert — it's here so retuning MAX_DIP_PX / DIP_HALF_SPAN_PX
|
|
85
|
+
// can't silently reintroduce the fold-back squiggle SPAN_FACTOR exists to
|
|
86
|
+
// prevent. Pinned by 'the dip never outgrows its shaping budget'.
|
|
87
|
+
function dipHeight(p1, p2, budget) {
|
|
88
|
+
const span = Math.abs(p2.x - p1.x);
|
|
89
|
+
return -Math.min(budget, MAX_DIP_PX * (span / (span + DIP_HALF_SPAN_PX)));
|
|
90
|
+
}
|
|
91
|
+
function cubicPath(from, ctrl1, ctrl2, to) {
|
|
92
|
+
return `M ${from.x} ${from.y} C ${ctrl1.x} ${ctrl1.y} ${ctrl2.x} ${ctrl2.y} ${to.x} ${to.y}`;
|
|
93
|
+
}
|
|
94
|
+
export function bezierConnectorPath({ x1, y1, x2, y2, s1, s2,
|
|
95
|
+
// The second endpoint is a split junction's 5' leading edge (its handle flips
|
|
96
|
+
// to fold the curve into the next segment); false for a paired mate's 3' edge.
|
|
97
|
+
leadingEnd2 = false, reversed1 = false, reversed2 = false, maxHandlePx = MAX_HANDLE_PX,
|
|
98
|
+
// This connection is discordant (aberrant pair orientation, or a split
|
|
99
|
+
// junction's strand flip): it dips below the reads instead of arcing over
|
|
100
|
+
// them, so the two classes are tellable apart by shape alone.
|
|
101
|
+
dip = false, }) {
|
|
102
|
+
const from = { x: x1, y: y1 };
|
|
103
|
+
const to = { x: x2, y: y2 };
|
|
104
|
+
const budget = shapingBudget(from, to);
|
|
105
|
+
const handle = Math.min(maxHandlePx, budget);
|
|
106
|
+
const bow = dip ? dipHeight(from, to, budget) : bowHeight(from, to, budget);
|
|
107
|
+
return cubicPath(from, { x: x1 + handle * tangentSign(s1, false, reversed1), y: y1 - bow }, { x: x2 + handle * tangentSign(s2, leadingEnd2, reversed2), y: y2 - bow }, to);
|
|
108
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import type { BgzfWorkerPool } from '@gmod/bgzf-filehandle';
|
|
2
|
+
/**
|
|
3
|
+
* The BGZF inflate pool the indexed-format libraries decompress their chunks
|
|
4
|
+
* on, instead of decompressing them on the thread that asked.
|
|
5
|
+
*
|
|
6
|
+
* BGZF decompression is 70-90% of a cold query (`@gmod/bam` ADR 0003) and BGZF
|
|
7
|
+
* blocks are independently inflatable, so spreading them across workers is the
|
|
8
|
+
* largest remaining lever in the read path. Measured 1.95x end to end on the
|
|
9
|
+
* BAM side: a 22-view pan / zoom out / pan back over 1000x long-read data, real
|
|
10
|
+
* HTTP, headless Chrome, 4 workers, with both arms returning the same 38,246
|
|
11
|
+
* records.
|
|
12
|
+
*
|
|
13
|
+
* ## One pool per JS context, like the cache budgets
|
|
14
|
+
*
|
|
15
|
+
* Same scope and same reason as `decompressedBytesBudget` — see
|
|
16
|
+
* {@link ./cacheBudgets.ts} — so one per RPC worker plus one on the main
|
|
17
|
+
* thread. That is the scope with spare cores: a track's queries are sticky to a
|
|
18
|
+
* single RPC worker, so without a pool every chunk of every query inflates on
|
|
19
|
+
* that one thread while the rest of the machine idles. `getSharedWorkerPool()`
|
|
20
|
+
* memoizes per context, so every adapter in a worker shares its four workers
|
|
21
|
+
* rather than each opening its own.
|
|
22
|
+
*
|
|
23
|
+
* ## Call it, don't hoist it
|
|
24
|
+
*
|
|
25
|
+
* This is a function and not an exported constant on purpose: it spawns workers
|
|
26
|
+
* the first time it is called, and a module-level call would spawn them on
|
|
27
|
+
* import, in every context that pulls in anything from `util`, whether or not a
|
|
28
|
+
* bgzip-backed track is ever opened. Call it where a file is constructed.
|
|
29
|
+
*
|
|
30
|
+
* ## The dynamic import is about bundle weight, and only that
|
|
31
|
+
*
|
|
32
|
+
* `@gmod/bgzf-filehandle` inlines its worker bundle as a base64 string, and
|
|
33
|
+
* `getSharedWorkerPool` is what reaches it, so a **static** import pins that
|
|
34
|
+
* blob into the initial bundle of every entry point that reaches this helper.
|
|
35
|
+
* Measured with esbuild, splitting and minifying, on the import alone:
|
|
36
|
+
*
|
|
37
|
+
* ```
|
|
38
|
+
* static entry 54.7kb (23.4kb gzipped) — the blob is in the initial bundle
|
|
39
|
+
* dynamic entry 114b (141b gzipped) + 123.9kb in a split chunk
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* So ~23kb gzipped off every bundle that can reach a bgzip adapter, deferred to
|
|
43
|
+
* a chunk that is only fetched once such a track is actually opened. Core's
|
|
44
|
+
* `util/unzip.ts` and `fetchAndMaybeUnzip.ts` dodge it the same way. It costs
|
|
45
|
+
* nothing to do, because the libraries want a promise anyway — their callers'
|
|
46
|
+
* `configure()` is synchronous and the pool is only available asynchronously.
|
|
47
|
+
*
|
|
48
|
+
* **It is not about test speed**, though it has been described that way. That
|
|
49
|
+
* claim was checked here and did not reproduce: three jbrowse-web variant
|
|
50
|
+
* suites ran 13.887s static against 13.856s dynamic, warm cache, and a 29s
|
|
51
|
+
* reading that started this off turned out to be a cold jest transform cache in
|
|
52
|
+
* a fresh worktree. Don't reintroduce a static import on the grounds that the
|
|
53
|
+
* jest argument was wrong — the bundle argument above is the real one, and it
|
|
54
|
+
* stands on its own.
|
|
55
|
+
*
|
|
56
|
+
* The `catch` is deliberate, but for a plain reason rather than a specific
|
|
57
|
+
* failure: a pool is an optimization, `@gmod/bam` and `@gmod/tabix` both await
|
|
58
|
+
* this, and anything going wrong here has to degrade to inflating in process
|
|
59
|
+
* rather than break every read. A documented CJS-interop throw under jest was
|
|
60
|
+
* the original motivation; that no longer reproduces (core's own suite, the
|
|
61
|
+
* BamAdapter suites and jbrowse-web's Alignments suite all pass with the catch
|
|
62
|
+
* removed), so keep it for the invariant, not the anecdote.
|
|
63
|
+
*
|
|
64
|
+
* ## Safe to pass unconditionally
|
|
65
|
+
*
|
|
66
|
+
* Returns a promise, and the libraries await it at the point of use rather than
|
|
67
|
+
* at construction — which is what lets a synchronous `configure()` hand the
|
|
68
|
+
* pending pool straight over. It resolves to `undefined` wherever Workers
|
|
69
|
+
* cannot be created (node, jest), and `@gmod/bam` and `@gmod/tabix` then take
|
|
70
|
+
* their in-process path, so no caller needs an environment check and the test
|
|
71
|
+
* suites are unaffected.
|
|
72
|
+
*
|
|
73
|
+
* Needs no cross-origin isolation: each worker's range is transferred to it as
|
|
74
|
+
* an ArrayBuffer rather than shared, so this works on an ordinary page. That
|
|
75
|
+
* was the point of dropping SharedArrayBuffer in `@gmod/bgzf-filehandle` 6.4.0
|
|
76
|
+
* — measured, the shared transport was at parity at best.
|
|
77
|
+
*/
|
|
78
|
+
export declare function sharedBgzfWorkerPool(): Promise<BgzfWorkerPool | undefined>;
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The BGZF inflate pool the indexed-format libraries decompress their chunks
|
|
3
|
+
* on, instead of decompressing them on the thread that asked.
|
|
4
|
+
*
|
|
5
|
+
* BGZF decompression is 70-90% of a cold query (`@gmod/bam` ADR 0003) and BGZF
|
|
6
|
+
* blocks are independently inflatable, so spreading them across workers is the
|
|
7
|
+
* largest remaining lever in the read path. Measured 1.95x end to end on the
|
|
8
|
+
* BAM side: a 22-view pan / zoom out / pan back over 1000x long-read data, real
|
|
9
|
+
* HTTP, headless Chrome, 4 workers, with both arms returning the same 38,246
|
|
10
|
+
* records.
|
|
11
|
+
*
|
|
12
|
+
* ## One pool per JS context, like the cache budgets
|
|
13
|
+
*
|
|
14
|
+
* Same scope and same reason as `decompressedBytesBudget` — see
|
|
15
|
+
* {@link ./cacheBudgets.ts} — so one per RPC worker plus one on the main
|
|
16
|
+
* thread. That is the scope with spare cores: a track's queries are sticky to a
|
|
17
|
+
* single RPC worker, so without a pool every chunk of every query inflates on
|
|
18
|
+
* that one thread while the rest of the machine idles. `getSharedWorkerPool()`
|
|
19
|
+
* memoizes per context, so every adapter in a worker shares its four workers
|
|
20
|
+
* rather than each opening its own.
|
|
21
|
+
*
|
|
22
|
+
* ## Call it, don't hoist it
|
|
23
|
+
*
|
|
24
|
+
* This is a function and not an exported constant on purpose: it spawns workers
|
|
25
|
+
* the first time it is called, and a module-level call would spawn them on
|
|
26
|
+
* import, in every context that pulls in anything from `util`, whether or not a
|
|
27
|
+
* bgzip-backed track is ever opened. Call it where a file is constructed.
|
|
28
|
+
*
|
|
29
|
+
* ## The dynamic import is about bundle weight, and only that
|
|
30
|
+
*
|
|
31
|
+
* `@gmod/bgzf-filehandle` inlines its worker bundle as a base64 string, and
|
|
32
|
+
* `getSharedWorkerPool` is what reaches it, so a **static** import pins that
|
|
33
|
+
* blob into the initial bundle of every entry point that reaches this helper.
|
|
34
|
+
* Measured with esbuild, splitting and minifying, on the import alone:
|
|
35
|
+
*
|
|
36
|
+
* ```
|
|
37
|
+
* static entry 54.7kb (23.4kb gzipped) — the blob is in the initial bundle
|
|
38
|
+
* dynamic entry 114b (141b gzipped) + 123.9kb in a split chunk
|
|
39
|
+
* ```
|
|
40
|
+
*
|
|
41
|
+
* So ~23kb gzipped off every bundle that can reach a bgzip adapter, deferred to
|
|
42
|
+
* a chunk that is only fetched once such a track is actually opened. Core's
|
|
43
|
+
* `util/unzip.ts` and `fetchAndMaybeUnzip.ts` dodge it the same way. It costs
|
|
44
|
+
* nothing to do, because the libraries want a promise anyway — their callers'
|
|
45
|
+
* `configure()` is synchronous and the pool is only available asynchronously.
|
|
46
|
+
*
|
|
47
|
+
* **It is not about test speed**, though it has been described that way. That
|
|
48
|
+
* claim was checked here and did not reproduce: three jbrowse-web variant
|
|
49
|
+
* suites ran 13.887s static against 13.856s dynamic, warm cache, and a 29s
|
|
50
|
+
* reading that started this off turned out to be a cold jest transform cache in
|
|
51
|
+
* a fresh worktree. Don't reintroduce a static import on the grounds that the
|
|
52
|
+
* jest argument was wrong — the bundle argument above is the real one, and it
|
|
53
|
+
* stands on its own.
|
|
54
|
+
*
|
|
55
|
+
* The `catch` is deliberate, but for a plain reason rather than a specific
|
|
56
|
+
* failure: a pool is an optimization, `@gmod/bam` and `@gmod/tabix` both await
|
|
57
|
+
* this, and anything going wrong here has to degrade to inflating in process
|
|
58
|
+
* rather than break every read. A documented CJS-interop throw under jest was
|
|
59
|
+
* the original motivation; that no longer reproduces (core's own suite, the
|
|
60
|
+
* BamAdapter suites and jbrowse-web's Alignments suite all pass with the catch
|
|
61
|
+
* removed), so keep it for the invariant, not the anecdote.
|
|
62
|
+
*
|
|
63
|
+
* ## Safe to pass unconditionally
|
|
64
|
+
*
|
|
65
|
+
* Returns a promise, and the libraries await it at the point of use rather than
|
|
66
|
+
* at construction — which is what lets a synchronous `configure()` hand the
|
|
67
|
+
* pending pool straight over. It resolves to `undefined` wherever Workers
|
|
68
|
+
* cannot be created (node, jest), and `@gmod/bam` and `@gmod/tabix` then take
|
|
69
|
+
* their in-process path, so no caller needs an environment check and the test
|
|
70
|
+
* suites are unaffected.
|
|
71
|
+
*
|
|
72
|
+
* Needs no cross-origin isolation: each worker's range is transferred to it as
|
|
73
|
+
* an ArrayBuffer rather than shared, so this works on an ordinary page. That
|
|
74
|
+
* was the point of dropping SharedArrayBuffer in `@gmod/bgzf-filehandle` 6.4.0
|
|
75
|
+
* — measured, the shared transport was at parity at best.
|
|
76
|
+
*/
|
|
77
|
+
export function sharedBgzfWorkerPool() {
|
|
78
|
+
return import('@gmod/bgzf-filehandle')
|
|
79
|
+
.then(m => m.getSharedWorkerPool())
|
|
80
|
+
.catch(() => undefined);
|
|
81
|
+
}
|
package/esm/util/blockTypes.d.ts
CHANGED
|
@@ -1,59 +1,78 @@
|
|
|
1
|
+
interface BlockData {
|
|
2
|
+
key: string;
|
|
3
|
+
offsetPx: number;
|
|
4
|
+
widthPx: number;
|
|
5
|
+
assemblyName?: string;
|
|
6
|
+
refName?: string;
|
|
7
|
+
start?: number;
|
|
8
|
+
end?: number;
|
|
9
|
+
reversed?: boolean;
|
|
10
|
+
displayedRegionIndex?: number;
|
|
11
|
+
isLeftEndOfDisplayedRegion?: boolean;
|
|
12
|
+
isRightEndOfDisplayedRegion?: boolean;
|
|
13
|
+
variant?: 'boundary';
|
|
14
|
+
}
|
|
15
|
+
export interface ContentBlock extends BlockData {
|
|
16
|
+
type: 'ContentBlock';
|
|
17
|
+
assemblyName: string;
|
|
18
|
+
refName: string;
|
|
19
|
+
start: number;
|
|
20
|
+
end: number;
|
|
21
|
+
}
|
|
22
|
+
export interface ElidedBlock extends BlockData {
|
|
23
|
+
type: 'ElidedBlock';
|
|
24
|
+
}
|
|
25
|
+
export interface InterRegionPaddingBlock extends BlockData {
|
|
26
|
+
type: 'InterRegionPaddingBlock';
|
|
27
|
+
}
|
|
28
|
+
export type BaseBlock = ContentBlock | ElidedBlock | InterRegionPaddingBlock;
|
|
29
|
+
/**
|
|
30
|
+
* A content block as a region that addresses whole bases.
|
|
31
|
+
*
|
|
32
|
+
* `calculateDynamicBlocks` says in its own docstring that start/end may be
|
|
33
|
+
* FRACTIONAL — a block is a span of screen, and the view is only at a whole
|
|
34
|
+
* base when the pan and the zoom both happen to land there. Anything naming
|
|
35
|
+
* bases rather than pixels needs this: a sequence fetch, a bookmark, and above
|
|
36
|
+
* all a locString, since `BP_QUANTITY_SOURCE` rejects a bare fractional
|
|
37
|
+
* coordinate on purpose ("a bare '1.5' as a coordinate is a mistake").
|
|
38
|
+
*
|
|
39
|
+
* `reversed` is dropped with the pixels. It orients a projection, and a region
|
|
40
|
+
* that has left the screen is not being projected; carrying it only reached
|
|
41
|
+
* `assembleLocString`, which spells it `[rev]` in a field the user is about to
|
|
42
|
+
* read.
|
|
43
|
+
*/
|
|
44
|
+
export declare function wholeBaseRegion(block: ContentBlock): {
|
|
45
|
+
assemblyName: string;
|
|
46
|
+
refName: string;
|
|
47
|
+
start: number;
|
|
48
|
+
end: number;
|
|
49
|
+
};
|
|
50
|
+
export declare function wholeBaseRegions(blocks: ContentBlock[]): {
|
|
51
|
+
assemblyName: string;
|
|
52
|
+
refName: string;
|
|
53
|
+
start: number;
|
|
54
|
+
end: number;
|
|
55
|
+
}[];
|
|
1
56
|
type Func<T> = (value: BaseBlock, index: number, array: BaseBlock[]) => T;
|
|
2
57
|
export declare class BlockSet {
|
|
3
58
|
blocks: BaseBlock[];
|
|
4
59
|
constructor(blocks?: BaseBlock[]);
|
|
5
|
-
[Symbol.iterator](): Generator<BaseBlock, void, unknown>;
|
|
6
60
|
push(block: BaseBlock): void;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
61
|
+
/**
|
|
62
|
+
* Widen a trailing elided run by widthPx, reporting whether there was one to
|
|
63
|
+
* widen. `push` keeps nothing but the width off an ElidedBlock it merges, so
|
|
64
|
+
* a caller holding the width can skip building the block that would have
|
|
65
|
+
* carried it — which at whole-genome zoom is nearly every region, see
|
|
66
|
+
* calculateDynamicBlocks.
|
|
67
|
+
*/
|
|
68
|
+
growElidedRun(widthPx: number): boolean;
|
|
15
69
|
map<T, U = this>(func: Func<T>, thisarg?: U): T[];
|
|
16
70
|
forEach<T, U = this>(func: Func<T>, thisarg?: U): void;
|
|
17
71
|
get length(): number;
|
|
18
72
|
get totalWidthPx(): number;
|
|
19
73
|
get totalWidthPxWithoutBorders(): number;
|
|
20
74
|
get offsetPx(): number;
|
|
21
|
-
get contentBlocks():
|
|
75
|
+
get contentBlocks(): ContentBlock[];
|
|
22
76
|
get totalBp(): number;
|
|
23
77
|
}
|
|
24
|
-
export declare class BaseBlock {
|
|
25
|
-
type: string;
|
|
26
|
-
regionNumber?: number;
|
|
27
|
-
reversed?: boolean;
|
|
28
|
-
refName: string;
|
|
29
|
-
start: number;
|
|
30
|
-
end: number;
|
|
31
|
-
assemblyName: string;
|
|
32
|
-
key: string;
|
|
33
|
-
offsetPx: number;
|
|
34
|
-
widthPx: number;
|
|
35
|
-
variant?: string;
|
|
36
|
-
isLeftEndOfDisplayedRegion?: boolean;
|
|
37
|
-
constructor(data: Record<string, any>);
|
|
38
|
-
toRegion(): {
|
|
39
|
-
refName: string;
|
|
40
|
-
start: number;
|
|
41
|
-
end: number;
|
|
42
|
-
assemblyName: string;
|
|
43
|
-
reversed: boolean | undefined;
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
export declare class ContentBlock extends BaseBlock {
|
|
47
|
-
type: string;
|
|
48
|
-
}
|
|
49
|
-
export declare class ElidedBlock extends BaseBlock {
|
|
50
|
-
type: string;
|
|
51
|
-
widthPx: number;
|
|
52
|
-
elidedBlockCount: number;
|
|
53
|
-
constructor(data: Record<string, any>);
|
|
54
|
-
push(otherBlock: ElidedBlock): void;
|
|
55
|
-
}
|
|
56
|
-
export declare class InterRegionPaddingBlock extends BaseBlock {
|
|
57
|
-
type: string;
|
|
58
|
-
}
|
|
59
78
|
export {};
|
package/esm/util/blockTypes.js
CHANGED
|
@@ -1,32 +1,77 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A content block as a region that addresses whole bases.
|
|
3
|
+
*
|
|
4
|
+
* `calculateDynamicBlocks` says in its own docstring that start/end may be
|
|
5
|
+
* FRACTIONAL — a block is a span of screen, and the view is only at a whole
|
|
6
|
+
* base when the pan and the zoom both happen to land there. Anything naming
|
|
7
|
+
* bases rather than pixels needs this: a sequence fetch, a bookmark, and above
|
|
8
|
+
* all a locString, since `BP_QUANTITY_SOURCE` rejects a bare fractional
|
|
9
|
+
* coordinate on purpose ("a bare '1.5' as a coordinate is a mistake").
|
|
10
|
+
*
|
|
11
|
+
* `reversed` is dropped with the pixels. It orients a projection, and a region
|
|
12
|
+
* that has left the screen is not being projected; carrying it only reached
|
|
13
|
+
* `assembleLocString`, which spells it `[rev]` in a field the user is about to
|
|
14
|
+
* read.
|
|
15
|
+
*/
|
|
16
|
+
export function wholeBaseRegion(block) {
|
|
17
|
+
return {
|
|
18
|
+
assemblyName: block.assemblyName,
|
|
19
|
+
refName: block.refName,
|
|
20
|
+
start: Math.floor(block.start),
|
|
21
|
+
end: Math.ceil(block.end),
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export function wholeBaseRegions(blocks) {
|
|
25
|
+
return blocks.map(wholeBaseRegion);
|
|
26
|
+
}
|
|
27
|
+
// A merged elided run can span several displayed regions, so its per-region
|
|
28
|
+
// identity is meaningless: refName/start/end are cleared and only widthPx stays
|
|
29
|
+
// valid. The leftover key, assemblyName, displayedRegionIndex,
|
|
30
|
+
// isRightEndOfDisplayedRegion belong to the FIRST sub-block — don't key off them
|
|
31
|
+
// for an ElidedBlock.
|
|
32
|
+
function mergeElided(run, widthPx) {
|
|
33
|
+
run.refName = '';
|
|
34
|
+
run.start = 0;
|
|
35
|
+
run.end = 0;
|
|
36
|
+
run.widthPx += widthPx;
|
|
37
|
+
}
|
|
1
38
|
export class BlockSet {
|
|
2
39
|
blocks;
|
|
3
40
|
constructor(blocks = []) {
|
|
4
41
|
this.blocks = blocks;
|
|
5
42
|
}
|
|
6
|
-
*[Symbol.iterator]() {
|
|
7
|
-
yield* this.blocks;
|
|
8
|
-
}
|
|
9
43
|
push(block) {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
}
|
|
44
|
+
const last = this.blocks.at(-1);
|
|
45
|
+
if (block.type === 'ElidedBlock' && last?.type === 'ElidedBlock') {
|
|
46
|
+
mergeElided(last, block.widthPx);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
this.blocks.push(block);
|
|
17
50
|
}
|
|
18
|
-
this.blocks.push(block);
|
|
19
|
-
}
|
|
20
|
-
getBlocks() {
|
|
21
|
-
return this.blocks;
|
|
22
51
|
}
|
|
23
|
-
|
|
24
|
-
|
|
52
|
+
/**
|
|
53
|
+
* Widen a trailing elided run by widthPx, reporting whether there was one to
|
|
54
|
+
* widen. `push` keeps nothing but the width off an ElidedBlock it merges, so
|
|
55
|
+
* a caller holding the width can skip building the block that would have
|
|
56
|
+
* carried it — which at whole-genome zoom is nearly every region, see
|
|
57
|
+
* calculateDynamicBlocks.
|
|
58
|
+
*/
|
|
59
|
+
growElidedRun(widthPx) {
|
|
60
|
+
const last = this.blocks.at(-1);
|
|
61
|
+
if (last?.type !== 'ElidedBlock') {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
mergeElided(last, widthPx);
|
|
65
|
+
return true;
|
|
25
66
|
}
|
|
26
67
|
map(func, thisarg) {
|
|
68
|
+
// deliberately mirrors Array#map's (callback, thisArg) signature
|
|
69
|
+
// eslint-disable-next-line unicorn/no-array-method-this-argument
|
|
27
70
|
return this.blocks.map(func, thisarg);
|
|
28
71
|
}
|
|
29
72
|
forEach(func, thisarg) {
|
|
73
|
+
// deliberately mirrors Array#forEach's (callback, thisArg) signature
|
|
74
|
+
// eslint-disable-next-line unicorn/no-array-method-this-argument
|
|
30
75
|
this.blocks.forEach(func, thisarg);
|
|
31
76
|
}
|
|
32
77
|
get length() {
|
|
@@ -52,68 +97,16 @@ export class BlockSet {
|
|
|
52
97
|
return this.blocks.length > 0 ? this.blocks[0].offsetPx : 0;
|
|
53
98
|
}
|
|
54
99
|
get contentBlocks() {
|
|
55
|
-
return this.blocks.filter(block => block.type === 'ContentBlock');
|
|
100
|
+
return this.blocks.filter((block) => block.type === 'ContentBlock');
|
|
56
101
|
}
|
|
57
102
|
get totalBp() {
|
|
58
103
|
let total = 0;
|
|
59
|
-
for (let i = 0, l = this.
|
|
60
|
-
const b = this.
|
|
61
|
-
|
|
104
|
+
for (let i = 0, l = this.blocks.length; i < l; i++) {
|
|
105
|
+
const b = this.blocks[i];
|
|
106
|
+
if (b.type === 'ContentBlock') {
|
|
107
|
+
total += b.end - b.start;
|
|
108
|
+
}
|
|
62
109
|
}
|
|
63
110
|
return total;
|
|
64
111
|
}
|
|
65
112
|
}
|
|
66
|
-
export class BaseBlock {
|
|
67
|
-
type = 'BaseBlock';
|
|
68
|
-
regionNumber;
|
|
69
|
-
reversed;
|
|
70
|
-
refName;
|
|
71
|
-
start;
|
|
72
|
-
end;
|
|
73
|
-
assemblyName;
|
|
74
|
-
key;
|
|
75
|
-
offsetPx;
|
|
76
|
-
widthPx = 0;
|
|
77
|
-
variant;
|
|
78
|
-
isLeftEndOfDisplayedRegion;
|
|
79
|
-
constructor(data) {
|
|
80
|
-
Object.assign(this, data);
|
|
81
|
-
this.assemblyName = data.assemblyName;
|
|
82
|
-
this.refName = data.refName;
|
|
83
|
-
this.start = data.start;
|
|
84
|
-
this.end = data.end;
|
|
85
|
-
this.key = data.key;
|
|
86
|
-
this.offsetPx = data.offsetPx;
|
|
87
|
-
}
|
|
88
|
-
toRegion() {
|
|
89
|
-
return {
|
|
90
|
-
refName: this.refName,
|
|
91
|
-
start: this.start,
|
|
92
|
-
end: this.end,
|
|
93
|
-
assemblyName: this.assemblyName,
|
|
94
|
-
reversed: this.reversed,
|
|
95
|
-
};
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
export class ContentBlock extends BaseBlock {
|
|
99
|
-
type = 'ContentBlock';
|
|
100
|
-
}
|
|
101
|
-
export class ElidedBlock extends BaseBlock {
|
|
102
|
-
type = 'ElidedBlock';
|
|
103
|
-
widthPx;
|
|
104
|
-
elidedBlockCount = 0;
|
|
105
|
-
constructor(data) {
|
|
106
|
-
super(data);
|
|
107
|
-
this.widthPx = data.widthPx;
|
|
108
|
-
}
|
|
109
|
-
push(otherBlock) {
|
|
110
|
-
this.elidedBlockCount += 1;
|
|
111
|
-
this.refName = '';
|
|
112
|
-
this.start = 0;
|
|
113
|
-
this.end = 0;
|
|
114
|
-
this.widthPx += otherBlock.widthPx;
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
export class InterRegionPaddingBlock extends BaseBlock {
|
|
118
|
-
type = 'InterRegionPaddingBlock';
|
|
119
|
-
}
|