@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
|
@@ -1,17 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Abstract feature object
|
|
3
|
+
*/
|
|
1
4
|
export interface Feature {
|
|
5
|
+
/**
|
|
6
|
+
* Get a piece of data about the feature. All features must have
|
|
7
|
+
* 'start' and 'end', but everything else is optional.
|
|
8
|
+
*/
|
|
2
9
|
get(name: 'refName'): string;
|
|
10
|
+
get(name: 'name' | 'type' | 'id' | 'source'): string | undefined;
|
|
3
11
|
get(name: 'start' | 'end'): number;
|
|
12
|
+
get(name: 'phase'): 0 | 1 | 2 | undefined;
|
|
13
|
+
get(name: 'strand'): -1 | 0 | 1 | undefined;
|
|
14
|
+
get(name: 'score'): number | undefined;
|
|
4
15
|
get(name: 'subfeatures'): Feature[] | undefined;
|
|
5
|
-
get(name: string):
|
|
16
|
+
get(name: string): unknown;
|
|
17
|
+
/**
|
|
18
|
+
* Get the unique ID of this feature.
|
|
19
|
+
*/
|
|
6
20
|
id(): string;
|
|
21
|
+
/**
|
|
22
|
+
* Get this feature's parent feature, or undefined if none.
|
|
23
|
+
*/
|
|
7
24
|
parent?: () => Feature | undefined;
|
|
25
|
+
/**
|
|
26
|
+
* Get an array of child features, or undefined if none.
|
|
27
|
+
*/
|
|
8
28
|
children?: () => Feature[] | undefined;
|
|
29
|
+
/**
|
|
30
|
+
* Convert to JSON
|
|
31
|
+
*/
|
|
9
32
|
toJSON(): SimpleFeatureSerialized;
|
|
10
33
|
}
|
|
34
|
+
declare const featureTarget: unique symbol;
|
|
35
|
+
interface MaybeProxiedFeature {
|
|
36
|
+
[featureTarget]?: Feature;
|
|
37
|
+
}
|
|
11
38
|
export declare function isFeature(thing: unknown): thing is Feature;
|
|
39
|
+
/**
|
|
40
|
+
* Recover the underlying feature from a jexlFeatureProxy, or return a raw
|
|
41
|
+
* feature untouched. Needed by callers that want the feature's methods
|
|
42
|
+
* (`id()`, `parent()`) rather than the data value the proxy resolves a
|
|
43
|
+
* property to.
|
|
44
|
+
*/
|
|
45
|
+
export declare function unwrapFeature(feature: Feature & MaybeProxiedFeature): Feature;
|
|
46
|
+
/**
|
|
47
|
+
* Wrap a feature so jexl callbacks can read attributes as plain properties
|
|
48
|
+
* (`feature.score`) instead of `get(feature,'score')`. Since jexl has no
|
|
49
|
+
* member-call syntax, attributes resolve to values: any property (including
|
|
50
|
+
* `id`, i.e. a data field such as a GFF3 `ID=`) is forwarded to
|
|
51
|
+
* `feature.get(name)` where a SimpleFeature keeps its data. Exceptions:
|
|
52
|
+
* `parent` resolves to the parent feature (re-wrapped so `feature.parent.type`
|
|
53
|
+
* works), `uniqueId` to the feature's identity (`id()`) so it reads the same
|
|
54
|
+
* whether or not the feature happens to keep a uniqueId in its data, and
|
|
55
|
+
* `get`/`toJSON` stay callable methods so the legacy
|
|
56
|
+
* `get(feature,'x')`/`getTag(feature,'x')` forms and serialization still work.
|
|
57
|
+
* The `parent`/`id` jexl functions unwrap the proxy (see jexl.ts).
|
|
58
|
+
*/
|
|
59
|
+
export declare function jexlFeatureProxy(feature: Feature & MaybeProxiedFeature): Feature;
|
|
60
|
+
/**
|
|
61
|
+
* Build the variable bindings a jexl callback evaluates against, wrapping any
|
|
62
|
+
* `Feature`-valued entry in `jexlFeatureProxy` (so `x.attr` reads directly while
|
|
63
|
+
* `get(x,'attr')` still works) and passing everything else through untouched.
|
|
64
|
+
*
|
|
65
|
+
* The single context-construction path shared by config-slot evaluation
|
|
66
|
+
* (`evaluateJexl`) and the filter chain (`SerializableFilterChain`), so which
|
|
67
|
+
* variables a callback can reference — and how a feature is exposed — never
|
|
68
|
+
* depends on which call site invoked it.
|
|
69
|
+
*/
|
|
70
|
+
export declare function buildJexlContext(args: Record<string, unknown>): Record<string, unknown>;
|
|
12
71
|
export interface SimpleFeatureArgs {
|
|
72
|
+
/** key-value data, must include 'start' and 'end' */
|
|
13
73
|
data: Record<string, unknown>;
|
|
74
|
+
/** optional parent feature */
|
|
14
75
|
parent?: Feature;
|
|
76
|
+
/**
|
|
77
|
+
* unique identifier, stringified. the serialized form
|
|
78
|
+
* (SimpleFeatureSerialized) carries it as `uniqueId` instead
|
|
79
|
+
*/
|
|
15
80
|
id: string | number;
|
|
16
81
|
}
|
|
17
82
|
export interface SimpleFeatureSerializedNoId {
|
|
@@ -21,24 +86,67 @@ export interface SimpleFeatureSerializedNoId {
|
|
|
21
86
|
end: number;
|
|
22
87
|
refName: string;
|
|
23
88
|
type?: string;
|
|
89
|
+
strand?: number;
|
|
90
|
+
name?: string;
|
|
91
|
+
id?: string | number;
|
|
92
|
+
uniqueId?: string;
|
|
93
|
+
__jbrowsefmt?: Record<string, unknown>;
|
|
94
|
+
mate?: {
|
|
95
|
+
refName: string;
|
|
96
|
+
start: number;
|
|
97
|
+
end: number;
|
|
98
|
+
[key: string]: unknown;
|
|
99
|
+
};
|
|
24
100
|
subfeatures?: SimpleFeatureSerializedNoId[];
|
|
25
101
|
}
|
|
26
102
|
export interface SimpleFeatureSerialized extends SimpleFeatureSerializedNoId {
|
|
27
|
-
subfeatures?: SimpleFeatureSerializedNoId[];
|
|
28
103
|
uniqueId: string;
|
|
29
104
|
}
|
|
105
|
+
/**
|
|
106
|
+
* Simple implementation of a feature object.
|
|
107
|
+
*/
|
|
30
108
|
export default class SimpleFeature implements Feature {
|
|
31
109
|
private data;
|
|
32
110
|
private subfeatures?;
|
|
33
111
|
private parentHandle?;
|
|
34
112
|
private uniqueId;
|
|
113
|
+
/**
|
|
114
|
+
* @param args - SimpleFeature args
|
|
115
|
+
*
|
|
116
|
+
* Note: args.data.subfeatures can be an array of these same args,
|
|
117
|
+
* which will be inflated to more instances of this class.
|
|
118
|
+
*/
|
|
35
119
|
constructor(args: SimpleFeatureArgs | SimpleFeatureSerialized);
|
|
36
|
-
|
|
37
|
-
|
|
120
|
+
private inflateSubfeatures;
|
|
121
|
+
/**
|
|
122
|
+
* Get a piece of data about the feature. All features must have
|
|
123
|
+
* 'start' and 'end', but everything else is optional.
|
|
124
|
+
*/
|
|
125
|
+
get(name: 'refName'): string;
|
|
126
|
+
get(name: 'name' | 'type' | 'id' | 'source'): string | undefined;
|
|
127
|
+
get(name: 'start' | 'end'): number;
|
|
128
|
+
get(name: 'phase'): 0 | 1 | 2 | undefined;
|
|
129
|
+
get(name: 'strand'): -1 | 0 | 1 | undefined;
|
|
130
|
+
get(name: 'score'): number | undefined;
|
|
131
|
+
get(name: 'subfeatures'): Feature[] | undefined;
|
|
132
|
+
get(name: string): unknown;
|
|
133
|
+
/**
|
|
134
|
+
* Get an array listing which data keys are present in this feature.
|
|
135
|
+
*/
|
|
38
136
|
tags(): string[];
|
|
137
|
+
/**
|
|
138
|
+
* Get the unique ID of this feature.
|
|
139
|
+
*/
|
|
39
140
|
id(): string;
|
|
141
|
+
/**
|
|
142
|
+
* Get this feature's parent feature, or undefined if none.
|
|
143
|
+
*/
|
|
40
144
|
parent(): Feature | undefined;
|
|
145
|
+
/**
|
|
146
|
+
* Get an array of child features, or undefined if none.
|
|
147
|
+
*/
|
|
41
148
|
children(): Feature[] | undefined;
|
|
42
149
|
toJSON(): SimpleFeatureSerialized;
|
|
43
150
|
static fromJSON(json: SimpleFeatureSerialized): SimpleFeature;
|
|
44
151
|
}
|
|
152
|
+
export {};
|
|
@@ -1,73 +1,225 @@
|
|
|
1
|
+
// brand carried by jexlFeatureProxy so the real feature can be recovered from a
|
|
2
|
+
// proxy whose properties all resolve to data values
|
|
3
|
+
const featureTarget = Symbol('featureTarget');
|
|
1
4
|
export function isFeature(thing) {
|
|
2
5
|
return (typeof thing === 'object' &&
|
|
3
6
|
thing !== null &&
|
|
4
7
|
typeof thing.get === 'function' &&
|
|
5
|
-
typeof thing.id === 'function');
|
|
8
|
+
(typeof thing.id === 'function' || featureTarget in thing));
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Recover the underlying feature from a jexlFeatureProxy, or return a raw
|
|
12
|
+
* feature untouched. Needed by callers that want the feature's methods
|
|
13
|
+
* (`id()`, `parent()`) rather than the data value the proxy resolves a
|
|
14
|
+
* property to.
|
|
15
|
+
*/
|
|
16
|
+
export function unwrapFeature(feature) {
|
|
17
|
+
return feature[featureTarget] ?? feature;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Wrap a feature so jexl callbacks can read attributes as plain properties
|
|
21
|
+
* (`feature.score`) instead of `get(feature,'score')`. Since jexl has no
|
|
22
|
+
* member-call syntax, attributes resolve to values: any property (including
|
|
23
|
+
* `id`, i.e. a data field such as a GFF3 `ID=`) is forwarded to
|
|
24
|
+
* `feature.get(name)` where a SimpleFeature keeps its data. Exceptions:
|
|
25
|
+
* `parent` resolves to the parent feature (re-wrapped so `feature.parent.type`
|
|
26
|
+
* works), `uniqueId` to the feature's identity (`id()`) so it reads the same
|
|
27
|
+
* whether or not the feature happens to keep a uniqueId in its data, and
|
|
28
|
+
* `get`/`toJSON` stay callable methods so the legacy
|
|
29
|
+
* `get(feature,'x')`/`getTag(feature,'x')` forms and serialization still work.
|
|
30
|
+
* The `parent`/`id` jexl functions unwrap the proxy (see jexl.ts).
|
|
31
|
+
*/
|
|
32
|
+
export function jexlFeatureProxy(feature) {
|
|
33
|
+
return feature[featureTarget]
|
|
34
|
+
? feature
|
|
35
|
+
: new Proxy(feature, {
|
|
36
|
+
has(target, prop) {
|
|
37
|
+
return prop === featureTarget || Reflect.has(target, prop);
|
|
38
|
+
},
|
|
39
|
+
get(target, prop) {
|
|
40
|
+
switch (prop) {
|
|
41
|
+
case featureTarget: {
|
|
42
|
+
return target;
|
|
43
|
+
}
|
|
44
|
+
case 'get': {
|
|
45
|
+
return target.get.bind(target);
|
|
46
|
+
}
|
|
47
|
+
case 'toJSON': {
|
|
48
|
+
return target.toJSON.bind(target);
|
|
49
|
+
}
|
|
50
|
+
case 'uniqueId': {
|
|
51
|
+
return target.id();
|
|
52
|
+
}
|
|
53
|
+
case 'parent': {
|
|
54
|
+
const p = target.parent?.();
|
|
55
|
+
return p ? jexlFeatureProxy(p) : undefined;
|
|
56
|
+
}
|
|
57
|
+
default: {
|
|
58
|
+
return typeof prop === 'string'
|
|
59
|
+
? target.get(prop)
|
|
60
|
+
: Reflect.get(target, prop);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
},
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Build the variable bindings a jexl callback evaluates against, wrapping any
|
|
68
|
+
* `Feature`-valued entry in `jexlFeatureProxy` (so `x.attr` reads directly while
|
|
69
|
+
* `get(x,'attr')` still works) and passing everything else through untouched.
|
|
70
|
+
*
|
|
71
|
+
* The single context-construction path shared by config-slot evaluation
|
|
72
|
+
* (`evaluateJexl`) and the filter chain (`SerializableFilterChain`), so which
|
|
73
|
+
* variables a callback can reference — and how a feature is exposed — never
|
|
74
|
+
* depends on which call site invoked it.
|
|
75
|
+
*/
|
|
76
|
+
export function buildJexlContext(args) {
|
|
77
|
+
const context = {};
|
|
78
|
+
for (const key in args) {
|
|
79
|
+
const value = args[key];
|
|
80
|
+
context[key] = isFeature(value) ? jexlFeatureProxy(value) : value;
|
|
81
|
+
}
|
|
82
|
+
return context;
|
|
6
83
|
}
|
|
7
84
|
function isSimpleFeatureSerialized(args) {
|
|
8
|
-
return 'uniqueId' in args
|
|
85
|
+
return 'uniqueId' in args;
|
|
9
86
|
}
|
|
87
|
+
// a feature is valid if it has a non-inverted interval, or is a bare reference
|
|
88
|
+
// sequence alias record: aliases and no coordinates at all (e.g. what
|
|
89
|
+
// FromConfigAdapter yields when used as a refNameAliases adapter). A feature
|
|
90
|
+
// that carries coordinates is still validated even if it also happens to have
|
|
91
|
+
// an aliases attribute
|
|
92
|
+
function validateFeatureData(data, uniqueId) {
|
|
93
|
+
const { aliases, start, end } = data;
|
|
94
|
+
const aliasRecord = !!aliases && start === undefined && end === undefined;
|
|
95
|
+
if (!aliasRecord) {
|
|
96
|
+
if (typeof start !== 'number' || typeof end !== 'number') {
|
|
97
|
+
throw new Error(`invalid feature data for "${uniqueId}", start and end must be numbers. start: ${start} end: ${end}`);
|
|
98
|
+
}
|
|
99
|
+
// written as a negated >= so NaN coordinates are rejected too
|
|
100
|
+
if (!(end >= start)) {
|
|
101
|
+
throw new Error(`invalid feature data for "${uniqueId}", end less than start. end: ${end} start: ${start}`);
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Simple implementation of a feature object.
|
|
107
|
+
*/
|
|
10
108
|
export default class SimpleFeature {
|
|
11
109
|
data;
|
|
12
110
|
subfeatures;
|
|
13
111
|
parentHandle;
|
|
14
112
|
uniqueId;
|
|
113
|
+
/**
|
|
114
|
+
* @param args - SimpleFeature args
|
|
115
|
+
*
|
|
116
|
+
* Note: args.data.subfeatures can be an array of these same args,
|
|
117
|
+
* which will be inflated to more instances of this class.
|
|
118
|
+
*/
|
|
15
119
|
constructor(args) {
|
|
16
|
-
|
|
120
|
+
const serialized = isSimpleFeatureSerialized(args);
|
|
121
|
+
if (serialized) {
|
|
17
122
|
this.data = args;
|
|
18
123
|
}
|
|
19
124
|
else {
|
|
20
125
|
this.data = args.data;
|
|
126
|
+
// load handle from args.parent (not args.data.parent): a plain args
|
|
127
|
+
// object likely carries a raw parent id rather than a Feature reference
|
|
21
128
|
this.parentHandle = args.parent;
|
|
22
129
|
}
|
|
23
|
-
const id =
|
|
130
|
+
const id = serialized ? args.uniqueId : args.id;
|
|
131
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
24
132
|
if (id === undefined || id === null) {
|
|
25
|
-
throw new Error('SimpleFeature requires
|
|
133
|
+
throw new Error('SimpleFeature requires an `id` or `uniqueId` attribute');
|
|
26
134
|
}
|
|
27
135
|
this.uniqueId = String(id);
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
136
|
+
validateFeatureData(this.data, this.uniqueId);
|
|
137
|
+
this.subfeatures = this.inflateSubfeatures();
|
|
138
|
+
}
|
|
139
|
+
// raw subfeatures arrive as either plain arg objects or already-inflated
|
|
140
|
+
// features; inflate the former into SimpleFeature instances. The result is
|
|
141
|
+
// kept in a separate field so the caller's input data is never mutated
|
|
142
|
+
// (features are effectively immutable).
|
|
143
|
+
//
|
|
144
|
+
// The raw object is handed to the child as-is rather than copied. It used to
|
|
145
|
+
// be spread — `{...f, strand: f.strand ?? this.data.strand}` — which copied
|
|
146
|
+
// every attribute of every node in the subtree in order to set one field
|
|
147
|
+
// that is usually already set. On a GENCODE-shaped 1000-gene tree (26,870
|
|
148
|
+
// nodes, 18 keys each) that spread was 2.8 ms of the 3.8 ms this whole
|
|
149
|
+
// method cost. Strand inheritance now happens where it is read, in `get`,
|
|
150
|
+
// and is baked back into `toJSON` for the deserialized copy that has no
|
|
151
|
+
// parent to inherit from.
|
|
152
|
+
inflateSubfeatures() {
|
|
153
|
+
const raw = this.data.subfeatures;
|
|
154
|
+
return Array.isArray(raw)
|
|
155
|
+
? raw.map((f, i) => isFeature(f)
|
|
156
|
+
? f
|
|
157
|
+
: new SimpleFeature({
|
|
158
|
+
id: f.uniqueId ?? `${this.uniqueId}-${i}`,
|
|
159
|
+
data: f,
|
|
39
160
|
parent: this,
|
|
40
|
-
})
|
|
41
|
-
|
|
42
|
-
}
|
|
161
|
+
}))
|
|
162
|
+
: undefined;
|
|
43
163
|
}
|
|
44
164
|
get(name) {
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
165
|
+
switch (name) {
|
|
166
|
+
case 'subfeatures': {
|
|
167
|
+
return this.subfeatures;
|
|
168
|
+
}
|
|
169
|
+
case 'parent': {
|
|
170
|
+
return this.parent();
|
|
171
|
+
}
|
|
172
|
+
case 'strand': {
|
|
173
|
+
// a subfeature with no strand of its own inherits its parent's,
|
|
174
|
+
// resolved here rather than copied onto it at construction
|
|
175
|
+
return this.data.strand ?? this.parentHandle?.get('strand');
|
|
176
|
+
}
|
|
177
|
+
default: {
|
|
178
|
+
return this.data[name];
|
|
179
|
+
}
|
|
180
|
+
}
|
|
53
181
|
}
|
|
182
|
+
/**
|
|
183
|
+
* Get an array listing which data keys are present in this feature.
|
|
184
|
+
*/
|
|
54
185
|
tags() {
|
|
55
|
-
|
|
186
|
+
const keys = Object.keys(this.data);
|
|
187
|
+
// an inherited strand is a readable field of this feature without being a
|
|
188
|
+
// key of its data, so name it here too
|
|
189
|
+
return 'strand' in this.data || this.get('strand') === undefined
|
|
190
|
+
? keys
|
|
191
|
+
: [...keys, 'strand'];
|
|
56
192
|
}
|
|
193
|
+
/**
|
|
194
|
+
* Get the unique ID of this feature.
|
|
195
|
+
*/
|
|
57
196
|
id() {
|
|
58
197
|
return this.uniqueId;
|
|
59
198
|
}
|
|
199
|
+
/**
|
|
200
|
+
* Get this feature's parent feature, or undefined if none.
|
|
201
|
+
*/
|
|
60
202
|
parent() {
|
|
61
203
|
return this.parentHandle;
|
|
62
204
|
}
|
|
205
|
+
/**
|
|
206
|
+
* Get an array of child features, or undefined if none.
|
|
207
|
+
*/
|
|
63
208
|
children() {
|
|
64
|
-
return this.
|
|
209
|
+
return this.subfeatures;
|
|
65
210
|
}
|
|
66
211
|
toJSON() {
|
|
67
212
|
const d = { ...this.data, uniqueId: this.id() };
|
|
68
213
|
const p = this.parent();
|
|
69
214
|
if (p) {
|
|
70
215
|
d.parentId = p.id();
|
|
216
|
+
// bake the inherited strand in: the serialized form is what crosses the
|
|
217
|
+
// RPC boundary, and what comes back the other side is reconstructed with
|
|
218
|
+
// no parent handle to inherit from
|
|
219
|
+
const strand = this.get('strand');
|
|
220
|
+
if (strand !== undefined) {
|
|
221
|
+
d.strand = strand;
|
|
222
|
+
}
|
|
71
223
|
}
|
|
72
224
|
const c = this.children();
|
|
73
225
|
if (c) {
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
export interface SpringAnimateOptions {
|
|
2
|
+
from: number;
|
|
3
|
+
to: number;
|
|
4
|
+
/** applies one frame's value */
|
|
5
|
+
write: (value: number) => void;
|
|
6
|
+
/**
|
|
7
|
+
* The live value `write` drives. Supply it when that value is shared with
|
|
8
|
+
* anything else that can move it, and the spring stops as soon as it reads
|
|
9
|
+
* back something other than what it last wrote — an interrupted animation
|
|
10
|
+
* yields instead of overwriting the interruption on its next frame. Omit it for
|
|
11
|
+
* a value only this spring touches.
|
|
12
|
+
*/
|
|
13
|
+
read?: () => number;
|
|
14
|
+
onFinish?: () => void;
|
|
15
|
+
precision?: number;
|
|
16
|
+
tension?: number;
|
|
17
|
+
friction?: number;
|
|
18
|
+
clamp?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export declare function springAnimate({ from, to, write, read, onFinish, precision, tension, friction, clamp, }: SpringAnimateOptions): readonly [() => void, () => void];
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// based on https://github.com/react-spring/react-spring/blob/cd5548a987383b8023efd620f3726a981f9e18ea/src/animated/FrameLoop.ts
|
|
2
|
+
export function springAnimate({ from, to, write, read, onFinish = () => { }, precision, tension = 400, friction = 20, clamp = true, }) {
|
|
3
|
+
const mass = 1;
|
|
4
|
+
// ?? not ||, so an explicit precision of 0 (converge only on overshoot) is
|
|
5
|
+
// honored rather than silently replaced by the derived default
|
|
6
|
+
const eps = precision ?? Math.abs(to - from) / 1000;
|
|
7
|
+
let animationFrameId;
|
|
8
|
+
let lastWritten;
|
|
9
|
+
function apply(value) {
|
|
10
|
+
write(value);
|
|
11
|
+
lastWritten = read?.();
|
|
12
|
+
}
|
|
13
|
+
// Something other than this spring moved the value, so it owns it now (a wheel
|
|
14
|
+
// zoom, a nav, a drag). Compared against what the spring last WROTE rather
|
|
15
|
+
// than the value it asked for, because `write` may clamp: a spring pushing
|
|
16
|
+
// past a limit would otherwise read its own clamped result back as
|
|
17
|
+
// interference and stop one frame in.
|
|
18
|
+
function interrupted() {
|
|
19
|
+
return (read !== undefined && lastWritten !== undefined && read() !== lastWritten);
|
|
20
|
+
}
|
|
21
|
+
function update(animation) {
|
|
22
|
+
// checked before scheduling anything, so an interrupted spring simply stops
|
|
23
|
+
// requesting frames — no cancellation to sequence against the frame this
|
|
24
|
+
// update would have queued
|
|
25
|
+
if (interrupted()) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const time = performance.now();
|
|
29
|
+
let position = animation.lastPosition;
|
|
30
|
+
let lastTime = animation.lastTime ?? time;
|
|
31
|
+
let velocity = animation.lastVelocity ?? 0;
|
|
32
|
+
// Dropped frames (a background tab, a long task) are not replayed: the
|
|
33
|
+
// simulation resumes from now, so the spring finishes late rather than
|
|
34
|
+
// teleporting through 60 steps of physics in one frame.
|
|
35
|
+
if (time > lastTime + 64) {
|
|
36
|
+
lastTime = time;
|
|
37
|
+
}
|
|
38
|
+
// https://gafferongames.com/post/fix_your_timestep/
|
|
39
|
+
const numSteps = Math.floor(time - lastTime);
|
|
40
|
+
for (let i = 0; i < numSteps; ++i) {
|
|
41
|
+
const force = -tension * (position - to);
|
|
42
|
+
const damping = -friction * velocity;
|
|
43
|
+
const acceleration = (force + damping) / mass;
|
|
44
|
+
velocity += (acceleration * 1) / 1000;
|
|
45
|
+
position += (velocity * 1) / 1000;
|
|
46
|
+
}
|
|
47
|
+
const isVelocity = Math.abs(velocity) <= eps;
|
|
48
|
+
const isDisplacement = tension !== 0 ? Math.abs(to - position) <= eps : true;
|
|
49
|
+
const isOvershooting = clamp && tension !== 0
|
|
50
|
+
? from < to
|
|
51
|
+
? position > to
|
|
52
|
+
: position < to
|
|
53
|
+
: false;
|
|
54
|
+
const endOfAnimation = isOvershooting || (isVelocity && isDisplacement);
|
|
55
|
+
if (endOfAnimation) {
|
|
56
|
+
apply(to);
|
|
57
|
+
onFinish();
|
|
58
|
+
}
|
|
59
|
+
else {
|
|
60
|
+
apply(position);
|
|
61
|
+
animationFrameId = requestAnimationFrame(() => {
|
|
62
|
+
update({
|
|
63
|
+
lastPosition: position,
|
|
64
|
+
lastTime: time,
|
|
65
|
+
lastVelocity: velocity,
|
|
66
|
+
});
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
return [
|
|
71
|
+
() => {
|
|
72
|
+
update({ lastPosition: from });
|
|
73
|
+
},
|
|
74
|
+
() => {
|
|
75
|
+
if (animationFrameId !== undefined) {
|
|
76
|
+
cancelAnimationFrame(animationFrameId);
|
|
77
|
+
}
|
|
78
|
+
},
|
|
79
|
+
];
|
|
80
|
+
}
|
package/esm/util/stats.d.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { Feature } from './simpleFeature.ts';
|
|
2
|
-
import type { NoAssemblyRegion } from './types/
|
|
2
|
+
import type { NoAssemblyRegion } from './types/data.ts';
|
|
3
3
|
import type { Observable } from 'rxjs';
|
|
4
4
|
export interface UnrectifiedQuantitativeStats {
|
|
5
5
|
scoreMin: number;
|
|
6
6
|
scoreMax: number;
|
|
7
7
|
scoreSum: number;
|
|
8
8
|
scoreSumSquares: number;
|
|
9
|
-
featureCount
|
|
9
|
+
featureCount?: number;
|
|
10
10
|
basesCovered: number;
|
|
11
11
|
scoreMeanMin?: number;
|
|
12
12
|
scoreMeanMax?: number;
|
|
@@ -19,7 +19,30 @@ export interface RectifiedQuantitativeStats extends UnrectifiedQuantitativeStats
|
|
|
19
19
|
export interface QuantitativeStats extends RectifiedQuantitativeStats {
|
|
20
20
|
currStatsBpPerPx: number;
|
|
21
21
|
}
|
|
22
|
+
/**
|
|
23
|
+
* calculate standard deviation using the 'shortcut method' that accepts
|
|
24
|
+
* the sum and the sum squares of the elements
|
|
25
|
+
*
|
|
26
|
+
* @param sum - sum(i, 1..n)
|
|
27
|
+
* @param sumSquares - sum(i^2, 1..n)
|
|
28
|
+
* @param n - number of elements
|
|
29
|
+
* @param population - boolean: use population instead of sample correction
|
|
30
|
+
* @returns - the estimated std deviation
|
|
31
|
+
*/
|
|
22
32
|
export declare function calcStdFromSums(sum: number, sumSquares: number, n: number, population?: boolean): number;
|
|
33
|
+
/**
|
|
34
|
+
* @param stats - a summary stats object with scoreSum, featureCount,
|
|
35
|
+
* scoreSumSquares, and basesCovered
|
|
36
|
+
* @returns - a summary stats object with
|
|
37
|
+
* scoreMean, scoreStdDev, and featureDensity added
|
|
38
|
+
*/
|
|
23
39
|
export declare function rectifyStats(s: UnrectifiedQuantitativeStats): RectifiedQuantitativeStats;
|
|
40
|
+
/**
|
|
41
|
+
* transform a list of scores to summary statistics
|
|
42
|
+
*
|
|
43
|
+
* @param region - object with start, end
|
|
44
|
+
* @param features - array of features which are possibly summary features
|
|
45
|
+
* @returns - object with scoreMax, scoreMin, scoreSum, scoreSumSquares, etc
|
|
46
|
+
*/
|
|
24
47
|
export declare function scoresToStats(region: NoAssemblyRegion, feats: Observable<Feature>): Promise<RectifiedQuantitativeStats>;
|
|
25
48
|
export declare function blankStats(): RectifiedQuantitativeStats;
|
package/esm/util/stats.js
CHANGED
|
@@ -1,5 +1,15 @@
|
|
|
1
1
|
import { firstValueFrom } from 'rxjs';
|
|
2
2
|
import { reduce } from 'rxjs/operators';
|
|
3
|
+
/**
|
|
4
|
+
* calculate standard deviation using the 'shortcut method' that accepts
|
|
5
|
+
* the sum and the sum squares of the elements
|
|
6
|
+
*
|
|
7
|
+
* @param sum - sum(i, 1..n)
|
|
8
|
+
* @param sumSquares - sum(i^2, 1..n)
|
|
9
|
+
* @param n - number of elements
|
|
10
|
+
* @param population - boolean: use population instead of sample correction
|
|
11
|
+
* @returns - the estimated std deviation
|
|
12
|
+
*/
|
|
3
13
|
export function calcStdFromSums(sum, sumSquares, n, population = false) {
|
|
4
14
|
if (n === 0) {
|
|
5
15
|
return 0;
|
|
@@ -9,6 +19,7 @@ export function calcStdFromSums(sum, sumSquares, n, population = false) {
|
|
|
9
19
|
variance = sumSquares / n - (sum * sum) / (n * n);
|
|
10
20
|
}
|
|
11
21
|
else {
|
|
22
|
+
// sample correction is n-1
|
|
12
23
|
variance = sumSquares - (sum * sum) / n;
|
|
13
24
|
if (n > 1) {
|
|
14
25
|
variance /= n - 1;
|
|
@@ -16,32 +27,51 @@ export function calcStdFromSums(sum, sumSquares, n, population = false) {
|
|
|
16
27
|
}
|
|
17
28
|
return variance < 0 ? 0 : Math.sqrt(variance);
|
|
18
29
|
}
|
|
30
|
+
/**
|
|
31
|
+
* @param stats - a summary stats object with scoreSum, featureCount,
|
|
32
|
+
* scoreSumSquares, and basesCovered
|
|
33
|
+
* @returns - a summary stats object with
|
|
34
|
+
* scoreMean, scoreStdDev, and featureDensity added
|
|
35
|
+
*/
|
|
19
36
|
export function rectifyStats(s) {
|
|
37
|
+
// Normalize undefined featureCount to 0 so || below operates on plain number
|
|
38
|
+
// (0 and undefined both mean "no per-feature count, fall back to basesCovered")
|
|
39
|
+
const n = s.featureCount ?? 0;
|
|
20
40
|
return {
|
|
21
41
|
...s,
|
|
22
|
-
scoreMean:
|
|
23
|
-
scoreStdDev: calcStdFromSums(s.scoreSum, s.scoreSumSquares,
|
|
24
|
-
featureDensity: (s.featureCount
|
|
42
|
+
scoreMean: s.scoreSum / (n || s.basesCovered || 1),
|
|
43
|
+
scoreStdDev: calcStdFromSums(s.scoreSum, s.scoreSumSquares, n || s.basesCovered),
|
|
44
|
+
featureDensity: (s.featureCount ?? 1) / (s.basesCovered || 1),
|
|
25
45
|
};
|
|
26
46
|
}
|
|
47
|
+
/**
|
|
48
|
+
* transform a list of scores to summary statistics
|
|
49
|
+
*
|
|
50
|
+
* @param region - object with start, end
|
|
51
|
+
* @param features - array of features which are possibly summary features
|
|
52
|
+
* @returns - object with scoreMax, scoreMin, scoreSum, scoreSumSquares, etc
|
|
53
|
+
*/
|
|
27
54
|
export async function scoresToStats(region, feats) {
|
|
28
55
|
const { start, end } = region;
|
|
29
56
|
const seed = {
|
|
57
|
+
// Number.MAX_VALUE not Infinity: precautionary, since Infinity serializes
|
|
58
|
+
// as null in JSON and these stats cross the RPC boundary. In practice the
|
|
59
|
+
// sentinels are always replaced before return (found===false → blankStats).
|
|
30
60
|
scoreMin: Number.MAX_VALUE,
|
|
31
|
-
scoreMax: Number.
|
|
61
|
+
scoreMax: -Number.MAX_VALUE,
|
|
32
62
|
scoreMeanMin: Number.MAX_VALUE,
|
|
33
|
-
scoreMeanMax: Number.
|
|
63
|
+
scoreMeanMax: -Number.MAX_VALUE,
|
|
34
64
|
scoreSum: 0,
|
|
35
65
|
scoreSumSquares: 0,
|
|
36
66
|
featureCount: 0,
|
|
37
67
|
};
|
|
38
68
|
let found = false;
|
|
39
69
|
const { scoreMin, scoreMax, scoreMeanMin, scoreMeanMax, scoreSum, scoreSumSquares, featureCount, } = await firstValueFrom(feats.pipe(reduce((acc, f) => {
|
|
40
|
-
const s = f.get('score');
|
|
70
|
+
const s = f.get('score') ?? 0;
|
|
41
71
|
const summary = f.get('summary');
|
|
42
72
|
const { scoreMax, scoreMin } = acc;
|
|
43
|
-
acc.scoreMax = Math.max(scoreMax, summary ? f.get('maxScore') : s);
|
|
44
|
-
acc.scoreMin = Math.min(scoreMin, summary ? f.get('minScore') : s);
|
|
73
|
+
acc.scoreMax = Math.max(scoreMax, summary ? (f.get('maxScore') ?? s) : s);
|
|
74
|
+
acc.scoreMin = Math.min(scoreMin, summary ? (f.get('minScore') ?? s) : s);
|
|
45
75
|
acc.scoreMeanMin = Math.min(acc.scoreMeanMin, s);
|
|
46
76
|
acc.scoreMeanMax = Math.max(acc.scoreMeanMax, s);
|
|
47
77
|
acc.scoreSum += s;
|
|
@@ -50,6 +80,7 @@ export async function scoresToStats(region, feats) {
|
|
|
50
80
|
found = true;
|
|
51
81
|
return acc;
|
|
52
82
|
}, seed)));
|
|
83
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
|
53
84
|
return found
|
|
54
85
|
? rectifyStats({
|
|
55
86
|
scoreMax,
|