@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
package/esm/util/range.d.ts
CHANGED
|
@@ -1,3 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fast low-level intersection of 2 coordinate ranges. assumes interbase coordinates.
|
|
3
|
+
*
|
|
4
|
+
* assumes `left <= right` for both ranges
|
|
5
|
+
*
|
|
6
|
+
* @returns array of [left, right], or [] if the ranges do not intersect. the choice of [] is because it allows destructuring array assignment without check for undefined return
|
|
7
|
+
*/
|
|
1
8
|
export declare function intersection2(left1: number, right1: number, left2: number, right2: number): [number, number] | [];
|
|
9
|
+
/**
|
|
10
|
+
* Return whether 2 interbase coordinate ranges intersect.
|
|
11
|
+
*
|
|
12
|
+
* @param left1 -
|
|
13
|
+
* @param right1 -
|
|
14
|
+
* @param left2 -
|
|
15
|
+
* @param right2 -
|
|
16
|
+
*
|
|
17
|
+
* @returns true if the two ranges intersect
|
|
18
|
+
*/
|
|
2
19
|
export declare function doesIntersect2(left1: number, right1: number, left2: number, right2: number): boolean;
|
|
3
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Compute the expanded fetch range a tabix adapter must "redispatch" to when
|
|
22
|
+
* features found in a query extend past the requested window. Returns the union
|
|
23
|
+
* of the query with the bounds of every line `expands` admits, or `undefined`
|
|
24
|
+
* when nothing extends past the query (no redispatch needed).
|
|
25
|
+
*
|
|
26
|
+
* **A predicate, not a set of types**, because the useful question is not what a
|
|
27
|
+
* record is called. The bound exists to reach a record's *children*, so what
|
|
28
|
+
* disqualifies a record is having none — and in GFF3 that is answerable exactly,
|
|
29
|
+
* from whether the record carries an `ID` for a `Parent` to reference. A type
|
|
30
|
+
* blocklist can only ever approximate it, and it is the caller's format that
|
|
31
|
+
* knows how: this file reads no column but the coordinates.
|
|
32
|
+
*
|
|
33
|
+
* Feature coordinates arrive interbase, matching the query: @gmod/tabix applies
|
|
34
|
+
* the index's coordinate offset before invoking the line callback, so a GFF/GTF
|
|
35
|
+
* line's 1-based start is already decremented by the time it gets here.
|
|
36
|
+
*
|
|
37
|
+
* Seeding the accumulator with the query bounds is what makes the result a
|
|
38
|
+
* union rather than just the feature bounds. A redispatch narrower than the
|
|
39
|
+
* original window would drop an excluded line that the first fetch found inside
|
|
40
|
+
* the query but that falls outside the expanded range.
|
|
41
|
+
*/
|
|
42
|
+
export declare function calculateRedispatchRange<T extends {
|
|
43
|
+
start: number;
|
|
44
|
+
end: number;
|
|
45
|
+
}>(features: T[], expands: (feature: T) => boolean, queryStart: number, queryEnd: number): {
|
|
46
|
+
start: number;
|
|
47
|
+
end: number;
|
|
48
|
+
} | undefined;
|
package/esm/util/range.js
CHANGED
|
@@ -1,21 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* fast low-level intersection of 2 coordinate ranges. assumes interbase coordinates.
|
|
3
|
+
*
|
|
4
|
+
* assumes `left <= right` for both ranges
|
|
5
|
+
*
|
|
6
|
+
* @returns array of [left, right], or [] if the ranges do not intersect. the choice of [] is because it allows destructuring array assignment without check for undefined return
|
|
7
|
+
*/
|
|
1
8
|
export function intersection2(left1, right1, left2, right2) {
|
|
9
|
+
// this code is verbose because "if" statements are faster than Math.min and Math.max
|
|
2
10
|
if (right1 > left2 && left1 < right2 && right2 - left2 && right1 - left1) {
|
|
3
11
|
if (left1 > left2) {
|
|
4
12
|
if (right1 < right2) {
|
|
13
|
+
// 1 |-------|
|
|
14
|
+
// |------------|
|
|
5
15
|
return [left1, right1];
|
|
6
16
|
}
|
|
17
|
+
// 2 |----|
|
|
18
|
+
// |------|
|
|
7
19
|
return [left1, right2];
|
|
8
20
|
}
|
|
9
21
|
if (right1 < right2) {
|
|
22
|
+
// 3 |-----|
|
|
23
|
+
// |------|
|
|
10
24
|
return [left2, right1];
|
|
11
25
|
}
|
|
26
|
+
// 4 |------------|
|
|
27
|
+
// |-------|
|
|
12
28
|
return [left2, right2];
|
|
13
29
|
}
|
|
14
30
|
return [];
|
|
15
31
|
}
|
|
32
|
+
/**
|
|
33
|
+
* Return whether 2 interbase coordinate ranges intersect.
|
|
34
|
+
*
|
|
35
|
+
* @param left1 -
|
|
36
|
+
* @param right1 -
|
|
37
|
+
* @param left2 -
|
|
38
|
+
* @param right2 -
|
|
39
|
+
*
|
|
40
|
+
* @returns true if the two ranges intersect
|
|
41
|
+
*/
|
|
16
42
|
export function doesIntersect2(left1, right1, left2, right2) {
|
|
17
43
|
return right1 > left2 && left1 < right2;
|
|
18
44
|
}
|
|
19
|
-
|
|
20
|
-
|
|
45
|
+
/**
|
|
46
|
+
* Compute the expanded fetch range a tabix adapter must "redispatch" to when
|
|
47
|
+
* features found in a query extend past the requested window. Returns the union
|
|
48
|
+
* of the query with the bounds of every line `expands` admits, or `undefined`
|
|
49
|
+
* when nothing extends past the query (no redispatch needed).
|
|
50
|
+
*
|
|
51
|
+
* **A predicate, not a set of types**, because the useful question is not what a
|
|
52
|
+
* record is called. The bound exists to reach a record's *children*, so what
|
|
53
|
+
* disqualifies a record is having none — and in GFF3 that is answerable exactly,
|
|
54
|
+
* from whether the record carries an `ID` for a `Parent` to reference. A type
|
|
55
|
+
* blocklist can only ever approximate it, and it is the caller's format that
|
|
56
|
+
* knows how: this file reads no column but the coordinates.
|
|
57
|
+
*
|
|
58
|
+
* Feature coordinates arrive interbase, matching the query: @gmod/tabix applies
|
|
59
|
+
* the index's coordinate offset before invoking the line callback, so a GFF/GTF
|
|
60
|
+
* line's 1-based start is already decremented by the time it gets here.
|
|
61
|
+
*
|
|
62
|
+
* Seeding the accumulator with the query bounds is what makes the result a
|
|
63
|
+
* union rather than just the feature bounds. A redispatch narrower than the
|
|
64
|
+
* original window would drop an excluded line that the first fetch found inside
|
|
65
|
+
* the query but that falls outside the expanded range.
|
|
66
|
+
*/
|
|
67
|
+
export function calculateRedispatchRange(features, expands, queryStart, queryEnd) {
|
|
68
|
+
let minStart = queryStart;
|
|
69
|
+
let maxEnd = queryEnd;
|
|
70
|
+
// bounds first: only a line reaching past the current bound can widen it, so
|
|
71
|
+
// the predicate, which may scan the line's text, runs on those few lines and
|
|
72
|
+
// not on every line in the window
|
|
73
|
+
for (const feature of features) {
|
|
74
|
+
if ((feature.start < minStart || feature.end > maxEnd) &&
|
|
75
|
+
expands(feature)) {
|
|
76
|
+
if (feature.start < minStart) {
|
|
77
|
+
minStart = feature.start;
|
|
78
|
+
}
|
|
79
|
+
if (feature.end > maxEnd) {
|
|
80
|
+
maxEnd = feature.end;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return minStart < queryStart || maxEnd > queryEnd
|
|
85
|
+
? { start: minStart, end: maxEnd }
|
|
86
|
+
: undefined;
|
|
21
87
|
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { StatusCallback } from './progress.ts';
|
|
2
|
+
import type { StopToken } from './stopToken.ts';
|
|
3
|
+
import type { AssemblyManager, Region } from './types/index.ts';
|
|
4
|
+
import type { Region as MUIRegion } from './types/mst.ts';
|
|
5
|
+
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
6
|
+
export declare function renameRegionIfNeeded(refNameMap: Record<string, string> | undefined, region: Region | Instance<typeof MUIRegion>, getSeqAdapterRefName?: (refName: string) => string): Region & {
|
|
7
|
+
originalRefName?: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function renameRegionsIfNeeded<ARGTYPE extends {
|
|
10
|
+
assemblyName?: string;
|
|
11
|
+
regions?: Region[];
|
|
12
|
+
stopToken?: StopToken;
|
|
13
|
+
adapterConfig: Record<string, unknown>;
|
|
14
|
+
sessionId: string;
|
|
15
|
+
statusCallback?: StatusCallback;
|
|
16
|
+
}>(assemblyManager: AssemblyManager, args: ARGTYPE): Promise<ARGTYPE & {
|
|
17
|
+
sequenceAdapter: Record<string, unknown> | undefined;
|
|
18
|
+
regions: (Region & {
|
|
19
|
+
originalRefName?: string;
|
|
20
|
+
})[];
|
|
21
|
+
}>;
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { getSnapshot, isAlive, isStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { getSequenceAdapterConfig } from '../assemblyManager/getSequenceAdapterConfig.js';
|
|
3
|
+
// Maps a region's refName to the track adapter's name (via refNameMap), and
|
|
4
|
+
// sets originalRefName to the seq adapter (FASTA) name so that CRAM/BAM
|
|
5
|
+
// adapters can fetch reference sequence correctly.
|
|
6
|
+
//
|
|
7
|
+
// This is DESTRUCTIVE, and it runs inside `serializeArguments` — so the array
|
|
8
|
+
// that reaches a worker is not the one the display handed to `rpcManager.call`,
|
|
9
|
+
// with no cue at the call site. `refName` means the assembly's canonical name
|
|
10
|
+
// before this and the track adapter's name after, in the same field of the same
|
|
11
|
+
// type. Renaming is required for anything the worker compares or fetches
|
|
12
|
+
// against the file, and wrong for anything it hands back as user-facing text: a
|
|
13
|
+
// worker that labels a locus from its own output must be given the view's names
|
|
14
|
+
// separately, captured before the call (hic's `HicViewBlock` does this, because
|
|
15
|
+
// its hover prints a locus directly under the ruler). `originalRefName` is NOT
|
|
16
|
+
// that name — it is a third scheme, the FASTA's, load-bearing for CRAM/BAM
|
|
17
|
+
// reference fetch.
|
|
18
|
+
//
|
|
19
|
+
// That third scheme is the general case in miniature, and worth naming: a
|
|
20
|
+
// rename is a property of an (assembly, adapter) PAIR, and this renames against
|
|
21
|
+
// exactly one adapter — `args.adapterConfig`. An RPC that reaches a SECOND file
|
|
22
|
+
// gets no renaming for it, and the failure is silent in the usual way: the query
|
|
23
|
+
// goes out under the first file's spelling, matches nothing, and reads as "no
|
|
24
|
+
// data here". So an RPC naming two adapters needs two passes, not one.
|
|
25
|
+
//
|
|
26
|
+
// **Prefer giving the second file its own RPC**, where `adapterConfig` names the
|
|
27
|
+
// file being read and the ordinary pass is simply right — MAF's annotation
|
|
28
|
+
// overlay is called that way. Thread a second name only when the two results
|
|
29
|
+
// cannot be joined by the caller: GWAS LD coloring can't, because the r²-to-
|
|
30
|
+
// feature join is per feature and features never cross the boundary, so it
|
|
31
|
+
// resolves a second pass in `serializeArguments` and ships `ldRefName`
|
|
32
|
+
// (`plugins/gwas/src/ManhattanRPC/GetManhattanData.ts`). That and
|
|
33
|
+
// `originalRefName` are the only two, and there is no reason to expect a third:
|
|
34
|
+
// a sub-adapter is normally the same data in another form, named the same way.
|
|
35
|
+
export function renameRegionIfNeeded(refNameMap, region, getSeqAdapterRefName) {
|
|
36
|
+
const isNode = isStateTreeNode(region);
|
|
37
|
+
if (isNode && !isAlive(region)) {
|
|
38
|
+
return region;
|
|
39
|
+
}
|
|
40
|
+
const newRef = refNameMap?.[region.refName];
|
|
41
|
+
if (newRef) {
|
|
42
|
+
return {
|
|
43
|
+
...(isNode ? getSnapshot(region) : region),
|
|
44
|
+
refName: newRef,
|
|
45
|
+
originalRefName: getSeqAdapterRefName?.(region.refName) ?? region.refName,
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
return region;
|
|
49
|
+
}
|
|
50
|
+
// Region-shaped enough that, if it slipped through under a `region` key, it was
|
|
51
|
+
// meant to be renamed. Used only by the guard below.
|
|
52
|
+
function isRegionShaped(r) {
|
|
53
|
+
return (!!r &&
|
|
54
|
+
typeof r === 'object' &&
|
|
55
|
+
'refName' in r &&
|
|
56
|
+
'assemblyName' in r &&
|
|
57
|
+
'start' in r &&
|
|
58
|
+
'end' in r);
|
|
59
|
+
}
|
|
60
|
+
export async function renameRegionsIfNeeded(assemblyManager, args) {
|
|
61
|
+
const { regions = [], adapterConfig } = args;
|
|
62
|
+
if (!args.sessionId) {
|
|
63
|
+
throw new Error('sessionId is required');
|
|
64
|
+
}
|
|
65
|
+
// Renaming only ever touches the `regions` array. An RPC method that instead
|
|
66
|
+
// carries a singular `region` (e.g. by pairing a one-region wire contract
|
|
67
|
+
// with a *plural* rename base class) would silently fetch against un-renamed
|
|
68
|
+
// refNames — the exact bug where an assembly's `5` never maps to an adapter's
|
|
69
|
+
// `chr5`. The legitimate singular base class (RpcMethodTypeWithRenameRegion)
|
|
70
|
+
// always mirrors `region` into a populated `regions`, so flag only the
|
|
71
|
+
// un-mirrored case and fail loudly instead of returning wrong data.
|
|
72
|
+
if (regions.length === 0 &&
|
|
73
|
+
isRegionShaped(args.region)) {
|
|
74
|
+
throw new Error('renameRegionsIfNeeded got a singular `region` but no `regions` array; ' +
|
|
75
|
+
'refName renaming applies only to `regions`. Pass `regions: [region]` ' +
|
|
76
|
+
'(or extend RpcMethodTypeWithRenameRegion) so the region is renamed.');
|
|
77
|
+
}
|
|
78
|
+
// capture assembly names before the await, since MST regions may be dead after
|
|
79
|
+
const assemblyNames = regions.map(r => r.assemblyName);
|
|
80
|
+
const uniqueAssemblyNames = [...new Set(assemblyNames)];
|
|
81
|
+
// annotated, because Object.fromEntries over an array whose element type is
|
|
82
|
+
// not a tuple selects its `any` overload — which left refNameMap and
|
|
83
|
+
// getSeqAdapterRefName unchecked all the way to renameRegionIfNeeded
|
|
84
|
+
const assemblyData = Object.fromEntries(await Promise.all(uniqueAssemblyNames.map(async (name) => {
|
|
85
|
+
// resolve the assembly once via requireAssembly (which awaits both
|
|
86
|
+
// registration and load) and derive the refName map AND
|
|
87
|
+
// getSeqAdapterRefName from this single loaded handle. A synchronous
|
|
88
|
+
// assemblyManager.get() here could miss an assembly still being
|
|
89
|
+
// registered, leaving getSeqAdapterRefName undefined so
|
|
90
|
+
// originalRefName (used by CRAM/BAM to fetch reference bases) falls
|
|
91
|
+
// back to the canonical name instead of the FASTA name.
|
|
92
|
+
//
|
|
93
|
+
// require, not wait: a region names an assembly, so failing to
|
|
94
|
+
// resolve it is not "nothing to rename", it is renaming that cannot
|
|
95
|
+
// be done. Substituting an empty map leaves the adapter querying
|
|
96
|
+
// un-renamed refNames, which finds nothing and draws an empty track
|
|
97
|
+
// with no indication that the assembly is what is missing. Only an
|
|
98
|
+
// unnamed assembly is a legitimate no-op.
|
|
99
|
+
const assembly = name
|
|
100
|
+
? await assemblyManager.requireAssembly(name)
|
|
101
|
+
: undefined;
|
|
102
|
+
return [
|
|
103
|
+
name,
|
|
104
|
+
{
|
|
105
|
+
refNameMap: assembly
|
|
106
|
+
? await assembly.getRefNameMapForAdapter(adapterConfig, args)
|
|
107
|
+
: {},
|
|
108
|
+
getSeqAdapterRefName: assembly
|
|
109
|
+
? (r) => assembly.getSeqAdapterRefName(r)
|
|
110
|
+
: undefined,
|
|
111
|
+
sequenceAdapter: getSequenceAdapterConfig(assembly),
|
|
112
|
+
},
|
|
113
|
+
];
|
|
114
|
+
})));
|
|
115
|
+
return {
|
|
116
|
+
...args,
|
|
117
|
+
// Supplied here, not by each caller: this is the one place that has already
|
|
118
|
+
// resolved the assembly a fetch is against, and it is the same handle
|
|
119
|
+
// `originalRefName` is a name into. Every caller that passed its own wrote
|
|
120
|
+
// these same two lines, and the three that forgot — `CoreGetExportData`,
|
|
121
|
+
// `BreakpointGetFeatures`, `fetchTrackData` — failed silently, saved only by
|
|
122
|
+
// whichever call happened to prime the adapter instance first.
|
|
123
|
+
sequenceAdapter: assemblyData[assemblyNames[0]]?.sequenceAdapter,
|
|
124
|
+
regions: regions.map((region, i) => {
|
|
125
|
+
const data = assemblyData[assemblyNames[i]];
|
|
126
|
+
return renameRegionIfNeeded(data?.refNameMap, region, data?.getSeqAdapterRefName);
|
|
127
|
+
}),
|
|
128
|
+
};
|
|
129
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import createCache from '@emotion/cache';
|
|
3
|
+
import { CacheProvider } from '@emotion/react';
|
|
4
|
+
import { flushSync } from 'react-dom';
|
|
5
|
+
import { createRoot } from 'react-dom/client';
|
|
6
|
+
// Deliberately not re-exported from the `util` barrel: it is the barrel's only
|
|
7
|
+
// reason to pull react/react-dom/@emotion, and the barrel is imported by
|
|
8
|
+
// worker-side adapter code that never renders.
|
|
9
|
+
//
|
|
10
|
+
// https://react.dev/reference/react-dom/server/renderToString#removing-rendertostring-from-the-client-code
|
|
11
|
+
export function renderToStaticMarkup(node) {
|
|
12
|
+
const div = document.createElement('div');
|
|
13
|
+
// makeStyles components (via __unsafe_useEmotionCache) need an emotion cache
|
|
14
|
+
// in context. The browser has an ambient default cache, but node/jsdom (e.g.
|
|
15
|
+
// jbrowse-img) loads @emotion/react before `document` exists, so its default
|
|
16
|
+
// cache context is null — provide one explicitly here.
|
|
17
|
+
const cache = createCache({ key: 'css' });
|
|
18
|
+
const root = createRoot(div);
|
|
19
|
+
let html;
|
|
20
|
+
try {
|
|
21
|
+
// eslint-disable-next-line @eslint-react/dom-no-flush-sync
|
|
22
|
+
flushSync(() => {
|
|
23
|
+
root.render(React.createElement(CacheProvider, { value: cache }, node));
|
|
24
|
+
});
|
|
25
|
+
html = div.innerHTML;
|
|
26
|
+
}
|
|
27
|
+
finally {
|
|
28
|
+
// This is a *real* client root, not a server render: its effects run, so
|
|
29
|
+
// every `observer` in the tree ends up with a live MobX reaction. Leaving
|
|
30
|
+
// the root mounted therefore keeps the whole detached export tree — and an
|
|
31
|
+
// SVG export of a full view is tens of thousands of nodes — subscribed to
|
|
32
|
+
// the session's models for the rest of the session, re-rendering it into a
|
|
33
|
+
// dead <div> on every pan and zoom, once per export ever taken. Unmount
|
|
34
|
+
// once the markup is a string, which no longer depends on the DOM.
|
|
35
|
+
root.unmount();
|
|
36
|
+
}
|
|
37
|
+
// SVG 1.1 presentation attributes (`fill`, `stroke`) take a <color>, which
|
|
38
|
+
// does not include rgba() — alpha belongs in a separate fill-opacity /
|
|
39
|
+
// stroke-opacity. Illustrator and older Inkscape drop an element whose fill
|
|
40
|
+
// they cannot parse, so the alpha is stripped rather than left to break the
|
|
41
|
+
// whole shape. It is *dropped*, not converted, so a translucent color exports
|
|
42
|
+
// fully opaque: components that need transparency to survive set a separate
|
|
43
|
+
// opacity attribute instead (`CrossHatches`, `MultiWiggleOverlayLines`).
|
|
44
|
+
//
|
|
45
|
+
// Rewriting `fill="rgba(r,g,b,a)"` into `fill="rgb(r,g,b)" fill-opacity="a"`
|
|
46
|
+
// would preserve the appearance and let those two drop their workarounds, but
|
|
47
|
+
// it changes the pixels of every export carrying an rgba color, so it needs a
|
|
48
|
+
// visual pass before the snapshots are regenerated.
|
|
49
|
+
return html.replaceAll(/\brgba\((.+?),[^,]+?\)/g, 'rgb($1)');
|
|
50
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type ReorderDirection = 'up' | 'down' | 'top' | 'bottom';
|
|
2
|
+
/**
|
|
3
|
+
* Move `idx` within the subsequence of `arr` that `inScope` selects, leaving
|
|
4
|
+
* every out-of-scope element where it sits.
|
|
5
|
+
*
|
|
6
|
+
* The scoped move: one list holds everything, but a move is only ever relative
|
|
7
|
+
* to a subset of it. "Move this view up" in a tabbed workspace means up past the
|
|
8
|
+
* previous view IN THIS PANEL, not past whatever happens to precede it in
|
|
9
|
+
* `session.views` — which may be in another panel entirely and would make the
|
|
10
|
+
* move look like a no-op.
|
|
11
|
+
*
|
|
12
|
+
* Implemented as a permutation of the in-scope positions: pull out the in-scope
|
|
13
|
+
* elements, reorder that list, then write it back into the same index slots.
|
|
14
|
+
* That is what keeps out-of-scope elements pinned, and what makes an unscoped
|
|
15
|
+
* move (everything in scope) exactly `reorder`.
|
|
16
|
+
*/
|
|
17
|
+
export declare function reorderWithin<T>(arr: readonly T[], idx: number, direction: ReorderDirection, inScope: (item: T, index: number) => boolean): T[];
|
|
18
|
+
/**
|
|
19
|
+
* Move the element at `idx` within `arr` in the given direction, returning a new
|
|
20
|
+
* array. An edge move (already at top/bottom) returns an unchanged copy.
|
|
21
|
+
*/
|
|
22
|
+
export declare function reorder<T>(arr: readonly T[], idx: number, direction: ReorderDirection): T[];
|
|
23
|
+
/**
|
|
24
|
+
* Put the elements whose id appears in `ids` into that relative order, leaving
|
|
25
|
+
* every other element in its own slot.
|
|
26
|
+
*
|
|
27
|
+
* The same slot permutation `reorderWithin` performs, driven by a stated order
|
|
28
|
+
* rather than by a direction. It exists because an order can arrive in another
|
|
29
|
+
* vocabulary entirely — a session spec's `layout` names views per panel, top to
|
|
30
|
+
* bottom — and there is one list that order has to land in.
|
|
31
|
+
*
|
|
32
|
+
* Elements named in `ids` but absent from `arr` are ignored, so a layout may
|
|
33
|
+
* name a view that failed to open.
|
|
34
|
+
*/
|
|
35
|
+
export declare function applyOrderWithin<T>(arr: readonly T[], ids: readonly string[], getId: (item: T) => string): T[];
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Move `idx` within the subsequence of `arr` that `inScope` selects, leaving
|
|
3
|
+
* every out-of-scope element where it sits.
|
|
4
|
+
*
|
|
5
|
+
* The scoped move: one list holds everything, but a move is only ever relative
|
|
6
|
+
* to a subset of it. "Move this view up" in a tabbed workspace means up past the
|
|
7
|
+
* previous view IN THIS PANEL, not past whatever happens to precede it in
|
|
8
|
+
* `session.views` — which may be in another panel entirely and would make the
|
|
9
|
+
* move look like a no-op.
|
|
10
|
+
*
|
|
11
|
+
* Implemented as a permutation of the in-scope positions: pull out the in-scope
|
|
12
|
+
* elements, reorder that list, then write it back into the same index slots.
|
|
13
|
+
* That is what keeps out-of-scope elements pinned, and what makes an unscoped
|
|
14
|
+
* move (everything in scope) exactly `reorder`.
|
|
15
|
+
*/
|
|
16
|
+
export function reorderWithin(arr, idx, direction, inScope) {
|
|
17
|
+
const slots = [];
|
|
18
|
+
const scoped = [];
|
|
19
|
+
for (const [i, item] of arr.entries()) {
|
|
20
|
+
if (inScope(item, i)) {
|
|
21
|
+
slots.push(i);
|
|
22
|
+
scoped.push(item);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
const scopedIdx = slots.indexOf(idx);
|
|
26
|
+
if (scopedIdx === -1) {
|
|
27
|
+
return [...arr];
|
|
28
|
+
}
|
|
29
|
+
const moved = reorder(scoped, scopedIdx, direction);
|
|
30
|
+
const next = [...arr];
|
|
31
|
+
for (const [i, slot] of slots.entries()) {
|
|
32
|
+
next[slot] = moved[i];
|
|
33
|
+
}
|
|
34
|
+
return next;
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Move the element at `idx` within `arr` in the given direction, returning a new
|
|
38
|
+
* array. An edge move (already at top/bottom) returns an unchanged copy.
|
|
39
|
+
*/
|
|
40
|
+
export function reorder(arr, idx, direction) {
|
|
41
|
+
const next = [...arr];
|
|
42
|
+
if (idx >= 0 && idx < arr.length) {
|
|
43
|
+
const [item] = next.splice(idx, 1);
|
|
44
|
+
const target = direction === 'up'
|
|
45
|
+
? Math.max(0, idx - 1)
|
|
46
|
+
: direction === 'down'
|
|
47
|
+
? Math.min(arr.length - 1, idx + 1)
|
|
48
|
+
: direction === 'top'
|
|
49
|
+
? 0
|
|
50
|
+
: arr.length - 1;
|
|
51
|
+
next.splice(target, 0, item);
|
|
52
|
+
}
|
|
53
|
+
return next;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Put the elements whose id appears in `ids` into that relative order, leaving
|
|
57
|
+
* every other element in its own slot.
|
|
58
|
+
*
|
|
59
|
+
* The same slot permutation `reorderWithin` performs, driven by a stated order
|
|
60
|
+
* rather than by a direction. It exists because an order can arrive in another
|
|
61
|
+
* vocabulary entirely — a session spec's `layout` names views per panel, top to
|
|
62
|
+
* bottom — and there is one list that order has to land in.
|
|
63
|
+
*
|
|
64
|
+
* Elements named in `ids` but absent from `arr` are ignored, so a layout may
|
|
65
|
+
* name a view that failed to open.
|
|
66
|
+
*/
|
|
67
|
+
export function applyOrderWithin(arr, ids, getId) {
|
|
68
|
+
const rank = new Map(ids.map((id, i) => [id, i]));
|
|
69
|
+
const slots = [];
|
|
70
|
+
for (const [i, item] of arr.entries()) {
|
|
71
|
+
if (rank.has(getId(item))) {
|
|
72
|
+
slots.push(i);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
const ordered = slots
|
|
76
|
+
.map(i => arr[i])
|
|
77
|
+
.sort((a, b) => rank.get(getId(a)) - rank.get(getId(b)));
|
|
78
|
+
const next = [...arr];
|
|
79
|
+
for (const [i, slot] of slots.entries()) {
|
|
80
|
+
next[slot] = ordered[i];
|
|
81
|
+
}
|
|
82
|
+
return next;
|
|
83
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a multi-row display's raw `rowHeight` setting, where `0` is the
|
|
3
|
+
* fit-to-display-height sentinel, into the px height consumers actually draw
|
|
4
|
+
* with and divide by. The other half of the contract `applyRowResizeWheel` and
|
|
5
|
+
* tree-sidebar's `TreeDrawingModel` both spell `effectiveRowHeight` — see
|
|
6
|
+
* agent-docs/reference/ROW_HEIGHT_AND_FIT.md.
|
|
7
|
+
*
|
|
8
|
+
* Two rules, and they pull in opposite directions, which is why they live here
|
|
9
|
+
* rather than being restated per display:
|
|
10
|
+
*
|
|
11
|
+
* - **A sub-pixel fit height is legitimate and must pass through.** A cohort
|
|
12
|
+
* with more rows than the display has pixels genuinely has a fractional row
|
|
13
|
+
* height, and flooring it makes the content taller than the height it was
|
|
14
|
+
* asked to fit inside — which re-grows the track and makes fit mode report a
|
|
15
|
+
* scroll it is documented never to have. (2000 species floored to 1px re-grew
|
|
16
|
+
* a MAF track to 2045px; the same regression hit the variant displays.) So
|
|
17
|
+
* `autoRowHeight` itself is never floored.
|
|
18
|
+
* - **The resolved value must never be non-positive.** Consumers divide by it
|
|
19
|
+
* (`rowAtY`, the hit tests, the renderers), so a `0` propagates NaN/Infinity.
|
|
20
|
+
* A rows viewport can legitimately reach 0px — the variant matrix's
|
|
21
|
+
* connector-line zone can swallow the whole display height — so this is
|
|
22
|
+
* reachable, and it is the one place the floor belongs.
|
|
23
|
+
*
|
|
24
|
+
* Multi-wiggle is always-fit and has no sentinel to resolve, so it computes its
|
|
25
|
+
* `effectiveRowHeight` directly rather than calling this.
|
|
26
|
+
*/
|
|
27
|
+
export declare function resolveRowHeight(rowHeight: number, autoRowHeight: number): number;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Resolve a multi-row display's raw `rowHeight` setting, where `0` is the
|
|
3
|
+
* fit-to-display-height sentinel, into the px height consumers actually draw
|
|
4
|
+
* with and divide by. The other half of the contract `applyRowResizeWheel` and
|
|
5
|
+
* tree-sidebar's `TreeDrawingModel` both spell `effectiveRowHeight` — see
|
|
6
|
+
* agent-docs/reference/ROW_HEIGHT_AND_FIT.md.
|
|
7
|
+
*
|
|
8
|
+
* Two rules, and they pull in opposite directions, which is why they live here
|
|
9
|
+
* rather than being restated per display:
|
|
10
|
+
*
|
|
11
|
+
* - **A sub-pixel fit height is legitimate and must pass through.** A cohort
|
|
12
|
+
* with more rows than the display has pixels genuinely has a fractional row
|
|
13
|
+
* height, and flooring it makes the content taller than the height it was
|
|
14
|
+
* asked to fit inside — which re-grows the track and makes fit mode report a
|
|
15
|
+
* scroll it is documented never to have. (2000 species floored to 1px re-grew
|
|
16
|
+
* a MAF track to 2045px; the same regression hit the variant displays.) So
|
|
17
|
+
* `autoRowHeight` itself is never floored.
|
|
18
|
+
* - **The resolved value must never be non-positive.** Consumers divide by it
|
|
19
|
+
* (`rowAtY`, the hit tests, the renderers), so a `0` propagates NaN/Infinity.
|
|
20
|
+
* A rows viewport can legitimately reach 0px — the variant matrix's
|
|
21
|
+
* connector-line zone can swallow the whole display height — so this is
|
|
22
|
+
* reachable, and it is the one place the floor belongs.
|
|
23
|
+
*
|
|
24
|
+
* Multi-wiggle is always-fit and has no sentinel to resolve, so it computes its
|
|
25
|
+
* `effectiveRowHeight` directly rather than calling this.
|
|
26
|
+
*/
|
|
27
|
+
export function resolveRowHeight(rowHeight, autoRowHeight) {
|
|
28
|
+
const height = rowHeight === 0 ? autoRowHeight : rowHeight;
|
|
29
|
+
return height > 0 ? height : 1;
|
|
30
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flip a list of intervals onto the opposite strand of a `seqlen`-long
|
|
3
|
+
* sequence, returning them in ascending order. Every field other than
|
|
4
|
+
* start/end is carried through, so a CDS keeps its phase and type.
|
|
5
|
+
*
|
|
6
|
+
* Its own module because both the sequence helpers and `geneticCodes` need it,
|
|
7
|
+
* and `geneticCodes` importing `seqUtils` for it is what made the two mutually
|
|
8
|
+
* dependent — see the codon-table note in geneticCodes.ts.
|
|
9
|
+
*/
|
|
10
|
+
export declare function revlist<T extends {
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
}>(list: T[], seqlen: number): T[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Flip a list of intervals onto the opposite strand of a `seqlen`-long
|
|
3
|
+
* sequence, returning them in ascending order. Every field other than
|
|
4
|
+
* start/end is carried through, so a CDS keeps its phase and type.
|
|
5
|
+
*
|
|
6
|
+
* Its own module because both the sequence helpers and `geneticCodes` need it,
|
|
7
|
+
* and `geneticCodes` importing `seqUtils` for it is what made the two mutually
|
|
8
|
+
* dependent — see the codon-table note in geneticCodes.ts.
|
|
9
|
+
*/
|
|
10
|
+
export function revlist(list, seqlen) {
|
|
11
|
+
return list
|
|
12
|
+
.map(sub => ({ ...sub, start: seqlen - sub.end, end: seqlen - sub.start }))
|
|
13
|
+
.sort((a, b) => a.start - b.start);
|
|
14
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mouse-Y → row index for the displays that stack rows behind
|
|
3
|
+
* `useRowVirtualScroll`.
|
|
4
|
+
*
|
|
5
|
+
* That hook is what makes the arithmetic subtle, so the reader lives beside it.
|
|
6
|
+
* `applyRowResizeWheel` sets `scrollTop` to `rowUnderMouse * newRowHeight -
|
|
7
|
+
* mouseY` to pin the row under the cursor, which leaves it fractional, and it
|
|
8
|
+
* lets `rowHeight` fall to `viewportHeight / nrow` — sub-pixel on a
|
|
9
|
+
* cohort-sized track. Two rules follow, and each caller used to restate them:
|
|
10
|
+
*
|
|
11
|
+
* - **Ask at the pixel's centre.** Rasterization fills a pixel when its centre
|
|
12
|
+
* falls inside the rect, so the centre is the scanline the colour the reader
|
|
13
|
+
* is pointing at was decided on. The top edge misses by `0.5 / rowHeight`
|
|
14
|
+
* rows — 5.4 of them on a 2,504-sample matrix at the default fit height.
|
|
15
|
+
* - **Floor `mouseY` before adding `scrollTop`.** The canvas draws at
|
|
16
|
+
* `row * rowHeight - scrollTop` with `scrollTop` unrounded; flooring the sum
|
|
17
|
+
* snaps to a pixel grid the content is not on. This is the half a reader gets
|
|
18
|
+
* backwards.
|
|
19
|
+
*/
|
|
20
|
+
export interface RowStack {
|
|
21
|
+
/** resolved height, never the 0/fit sentinel — this is divided into */
|
|
22
|
+
rowHeight: number;
|
|
23
|
+
/** unrounded, and routinely fractional */
|
|
24
|
+
scrollTop?: number;
|
|
25
|
+
/** chrome above the rows area, e.g. MAF's stacked bands */
|
|
26
|
+
topOffset?: number;
|
|
27
|
+
}
|
|
28
|
+
/** Content-space Y of the centre of the screen pixel `mouseY` is in. */
|
|
29
|
+
export declare function contentYAt(mouseY: number, stack: RowStack): number;
|
|
30
|
+
/** Continuous row coordinate at `mouseY`; callers round to suit. */
|
|
31
|
+
export declare function rowCoordAt(mouseY: number, stack: RowStack): number;
|
|
32
|
+
/** The row `mouseY` is on. Negative above the rows area, and not range-checked. */
|
|
33
|
+
export declare function rowIndexAt(mouseY: number, stack: RowStack): number;
|
|
34
|
+
/**
|
|
35
|
+
* Half-open `[startRow, endRow)` covered by a vertical px span, ready to
|
|
36
|
+
* `slice` a sample list with.
|
|
37
|
+
*
|
|
38
|
+
* Both ends are the row at that pixel's centre and the range includes both, so
|
|
39
|
+
* a span can never come back empty: a drag straight across one row — which
|
|
40
|
+
* `useDragSelection` supports, gating on X alone — covers the row it is on.
|
|
41
|
+
* Taking `endRow` as the `ceil` of the same coordinate instead collapsed on
|
|
42
|
+
* every exact row boundary, one pixel row in every `rowHeight`.
|
|
43
|
+
*/
|
|
44
|
+
export declare function rowSpanAt(y0: number, y1: number, stack: RowStack): {
|
|
45
|
+
startRow: number;
|
|
46
|
+
endRow: number;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* The rows whose *drawn* cell covers `mouseY`, nearest first.
|
|
50
|
+
*
|
|
51
|
+
* Row r occupies `[r*rowHeight, r*rowHeight + drawnRowHeight)`.
|
|
52
|
+
* `drawnRowHeight` is the height the painter *resolved* for this `rowHeight`,
|
|
53
|
+
* not the floor it clamps to — pass `drawnCellHeightPx(rowHeight)` from the
|
|
54
|
+
* module generated out of the display's own shader (ADR-051), so what is
|
|
55
|
+
* painted and what is pickable stay one rule. At `rowHeight` above the floor it
|
|
56
|
+
* equals `rowHeight`, the band collapses to `nearest`, and only sub-pixel rows
|
|
57
|
+
* stack several under one drawn pixel — where the last drawn wins, and
|
|
58
|
+
* `nearest` is it.
|
|
59
|
+
*
|
|
60
|
+
* Walking down to `lowest` keeps those rows hoverable when the nearest one has
|
|
61
|
+
* nothing to report.
|
|
62
|
+
*/
|
|
63
|
+
export declare function rowsUnderPointer(mouseY: number, stack: RowStack, drawnRowHeight: number): {
|
|
64
|
+
nearest: number;
|
|
65
|
+
lowest: number;
|
|
66
|
+
};
|