@jbrowse/core 4.3.0 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +390 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from 'react';
|
|
3
|
+
import { Typography } from '@mui/material';
|
|
4
|
+
import { makeStyles } from '../util/tss-react/index.js';
|
|
5
|
+
import LoadingProgress from './LoadingProgress.js';
|
|
6
|
+
// Long enough that a load which is merely slow never says it, short enough to
|
|
7
|
+
// beat the point where someone decides the app is broken. Every status write
|
|
8
|
+
// resets it, so a download that is still moving its bar never reaches it
|
|
9
|
+
const STALL_MS = 5000;
|
|
10
|
+
const useStyles = makeStyles()(theme => ({
|
|
11
|
+
root: {
|
|
12
|
+
display: 'flex',
|
|
13
|
+
flexDirection: 'column',
|
|
14
|
+
alignItems: 'center',
|
|
15
|
+
gap: 8,
|
|
16
|
+
padding: 20,
|
|
17
|
+
},
|
|
18
|
+
bar: {
|
|
19
|
+
width: 300,
|
|
20
|
+
maxWidth: '80%',
|
|
21
|
+
},
|
|
22
|
+
stalled: {
|
|
23
|
+
maxWidth: 500,
|
|
24
|
+
textAlign: 'center',
|
|
25
|
+
// a presigned URL is a few hundred unbroken characters, and the notice must
|
|
26
|
+
// not widen the view it is centered in
|
|
27
|
+
overflowWrap: 'anywhere',
|
|
28
|
+
color: theme.palette.text.secondary,
|
|
29
|
+
},
|
|
30
|
+
}));
|
|
31
|
+
/**
|
|
32
|
+
* Has this load said the same thing for {@link STALL_MS}? `key` is everything
|
|
33
|
+
* the screen is showing, so any status at all — a new phase, another chunk of
|
|
34
|
+
* bytes — restarts the wait, and only a load that has genuinely stopped saying
|
|
35
|
+
* anything gets there.
|
|
36
|
+
*
|
|
37
|
+
* The timeout stores the key it fired for rather than a boolean, which is what
|
|
38
|
+
* makes the reset free: a key that has moved on is not the key that was stalled,
|
|
39
|
+
* so the notice goes away on the next status without a write to undo it.
|
|
40
|
+
*/
|
|
41
|
+
function useStalled(key) {
|
|
42
|
+
const [stalledKey, setStalledKey] = useState();
|
|
43
|
+
useEffect(() => {
|
|
44
|
+
const timer = setTimeout(() => {
|
|
45
|
+
setStalledKey(key);
|
|
46
|
+
}, STALL_MS);
|
|
47
|
+
return () => {
|
|
48
|
+
clearTimeout(timer);
|
|
49
|
+
};
|
|
50
|
+
}, [key]);
|
|
51
|
+
return stalledKey === key;
|
|
52
|
+
}
|
|
53
|
+
/**
|
|
54
|
+
* The "view exists but isn't ready yet" screen a view renders instead of its
|
|
55
|
+
* content — LGV, dotplot and linear synteny all show it while the assembly they
|
|
56
|
+
* name is still loading, labelled with which of the assembly's files is
|
|
57
|
+
* downloading and a determinate bar when that download reports one.
|
|
58
|
+
*
|
|
59
|
+
* A load that then stops reporting names the file it is waiting on. The phase
|
|
60
|
+
* label alone does not: "Downloading chromosome aliases" is a fair description
|
|
61
|
+
* of what is happening and no help at all in front of a hub that has stopped
|
|
62
|
+
* answering, where the one useful fact is which server that is. Shown only once
|
|
63
|
+
* the load has actually stalled, so a healthy startup never sees a URL.
|
|
64
|
+
*
|
|
65
|
+
* Metrics deliberately match `DiagonalizeLoadingScreen`, which is the sibling
|
|
66
|
+
* render branch in both comparative views: a view that flipped between the two
|
|
67
|
+
* would otherwise jump between two differently laid-out loading screens. That
|
|
68
|
+
* shared layout is also why this exists at all rather than each view calling
|
|
69
|
+
* {@link LoadingProgress} directly — bare, it renders an unconstrained
|
|
70
|
+
* full-width bar under an unaligned label.
|
|
71
|
+
*/
|
|
72
|
+
export default function ViewLoadingScreen({ message, fraction, source, }) {
|
|
73
|
+
const { classes } = useStyles();
|
|
74
|
+
const stalled = useStalled(`${message}|${fraction}|${source}`);
|
|
75
|
+
return (_jsxs("div", { className: classes.root, children: [_jsx(LoadingProgress, { variant: "h6", message: message, fraction: fraction, barClassName: classes.bar }), stalled && source ? (_jsxs(Typography, { variant: "body2", className: classes.stalled, children: ["still waiting on ", source] })) : null] }));
|
|
76
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { ExtensionPointProps, PointsOfKind } from '../PluginManager.ts';
|
|
3
|
+
import type { ComponentType } from 'react';
|
|
4
|
+
/**
|
|
5
|
+
* The extension points that accumulate an array of rendered elements — every
|
|
6
|
+
* point declared `ElementList`, the LGV and dotplot overlays.
|
|
7
|
+
* {@link PluggableElements} is the producer side.
|
|
8
|
+
*/
|
|
9
|
+
export type ElementExtensionPointName = PointsOfKind<'elementList'>;
|
|
10
|
+
/**
|
|
11
|
+
* Render `component` into an overlay extension point, passing it the point's
|
|
12
|
+
* props.
|
|
13
|
+
*
|
|
14
|
+
* Prefer this to contributing the element yourself: it fixes the React `key` at
|
|
15
|
+
* registration time, and forgetting that one produces a warning pointing at
|
|
16
|
+
* framework code rather than at the plugin.
|
|
17
|
+
*/
|
|
18
|
+
export declare function addExtensionElement<N extends ElementExtensionPointName>(pluginManager: PluginManager, name: N, component: ComponentType<ExtensionPointProps<N>>): void;
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/**
|
|
3
|
+
* Render `component` into an overlay extension point, passing it the point's
|
|
4
|
+
* props.
|
|
5
|
+
*
|
|
6
|
+
* Prefer this to contributing the element yourself: it fixes the React `key` at
|
|
7
|
+
* registration time, and forgetting that one produces a warning pointing at
|
|
8
|
+
* framework code rather than at the plugin.
|
|
9
|
+
*/
|
|
10
|
+
export function addExtensionElement(pluginManager, name, component) {
|
|
11
|
+
const Component = component;
|
|
12
|
+
// unique per registration, and stable across renders because it is fixed at
|
|
13
|
+
// registration time rather than derived from anything the fold sees
|
|
14
|
+
const key = `${name}-${Component.displayName ?? Component.name}-${pluginManager.extensionPoints.get(name)?.length ?? 0}`;
|
|
15
|
+
// ElementExtensionPointName constrains this point's entry to a ReactNode, but
|
|
16
|
+
// neither compiler resolves ExtensionPointEntry<N> through the generic key.
|
|
17
|
+
// tsc7 rejects the element without the assertion; eslint's TS6 service thinks
|
|
18
|
+
// the assertion is redundant. Same split as SessionTracks.ts.
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion -- tsc7 needs it
|
|
20
|
+
/* oxlint-disable typescript/no-unnecessary-type-assertion */
|
|
21
|
+
pluginManager.contributeToExtensionPoint(name, props => (_jsx(Component, { ...props }, key)));
|
|
22
|
+
/* oxlint-enable typescript/no-unnecessary-type-assertion */
|
|
23
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { AnyConfigurationModel } from '../configuration/index.ts';
|
|
3
|
+
import type { AbstractSessionModel, TrackActionView } from '../util/types/index.ts';
|
|
4
|
+
import type { MenuItem } from './MenuTypes.ts';
|
|
5
|
+
export interface ExtraTrackMenuItemsProps {
|
|
6
|
+
session: AbstractSessionModel;
|
|
7
|
+
config: AnyConfigurationModel;
|
|
8
|
+
view?: TrackActionView;
|
|
9
|
+
}
|
|
10
|
+
/** Return the items to add, or nothing when the track isn't yours. */
|
|
11
|
+
export type ExtraTrackMenuItemsCallback = (props: ExtraTrackMenuItemsProps) => MenuItem | MenuItem[] | undefined;
|
|
12
|
+
declare module '@jbrowse/core/PluginManager' {
|
|
13
|
+
interface ExtensionPointRegistry {
|
|
14
|
+
'Core-extraTrackMenuItems': {
|
|
15
|
+
args: MenuItem[];
|
|
16
|
+
result: MenuItem[];
|
|
17
|
+
props: ExtraTrackMenuItemsProps;
|
|
18
|
+
};
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export declare function addExtraTrackMenuItems(pluginManager: PluginManager, callback: ExtraTrackMenuItemsCallback): void;
|
|
22
|
+
export declare function buildExtraTrackMenuItems(pluginManager: PluginManager, props: ExtraTrackMenuItemsProps): MenuItem[];
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Plugins call this to contribute per-track menu items (keyed off the track
|
|
2
|
+
// config) to the hierarchical track selector. Wrapping the registration here
|
|
3
|
+
// keeps the typed callback contract in one place so callers don't depend on the
|
|
4
|
+
// extension-point type augmentation crossing package boundaries.
|
|
5
|
+
export function addExtraTrackMenuItems(pluginManager, callback) {
|
|
6
|
+
pluginManager.contributeToExtensionPoint('Core-extraTrackMenuItems', callback);
|
|
7
|
+
}
|
|
8
|
+
// Returns the contributed per-track menu items, or an empty array when no
|
|
9
|
+
// plugin contributes, so callers can spread it.
|
|
10
|
+
export function buildExtraTrackMenuItems(pluginManager, props) {
|
|
11
|
+
return pluginManager.evaluateExtensionPoint(
|
|
12
|
+
/** #extensionPoint Core-extraTrackMenuItems | sync | Add items to a single track's menu */
|
|
13
|
+
'Core-extraTrackMenuItems', [], props);
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Shared clickable color-swatch button style, used by ColorPicker's preset grid
|
|
2
|
+
// and PopoverPicker's trigger swatch.
|
|
3
|
+
export const swatchStyle = {
|
|
4
|
+
width: 24,
|
|
5
|
+
height: 24,
|
|
6
|
+
margin: 4,
|
|
7
|
+
border: 'none',
|
|
8
|
+
padding: 0,
|
|
9
|
+
cursor: 'pointer',
|
|
10
|
+
outline: 'none',
|
|
11
|
+
};
|
package/esm/ui/colors.d.ts
CHANGED
|
@@ -1,10 +1,63 @@
|
|
|
1
1
|
declare const category10: string[];
|
|
2
|
-
declare const dark2: string[];
|
|
3
2
|
declare const set1: string[];
|
|
4
|
-
declare const
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
3
|
+
export declare const paletteColors: {
|
|
4
|
+
category10: string[];
|
|
5
|
+
dark2: string[];
|
|
6
|
+
ggplot2Colors3: string[];
|
|
7
|
+
ggplot2Colors4: string[];
|
|
8
|
+
ggplot2Colors5: string[];
|
|
9
|
+
ggplot2Colors6: string[];
|
|
10
|
+
set1: string[];
|
|
11
|
+
set2: string[];
|
|
12
|
+
tableau10: string[];
|
|
13
|
+
};
|
|
14
|
+
/**
|
|
15
|
+
* The wide qualitative palette: every scheme above, in order, deduped and with
|
|
16
|
+
* the neutrals dropped. ~40 entries.
|
|
17
|
+
*
|
|
18
|
+
* One list, because "give each row a distinct color" is one question this repo
|
|
19
|
+
* answers in two places — the multi-row painter handing colors out by row
|
|
20
|
+
* index, and the arrangement dialog's palette-by-attribute — and two lists
|
|
21
|
+
* would mean a track's automatic colors and the colors it takes when a user
|
|
22
|
+
* palettes it by hand were different palettes for no reason a reader could see.
|
|
23
|
+
*
|
|
24
|
+
* `tableau10` leads because its hues are the most evenly separated, so a track
|
|
25
|
+
* with a handful of rows spends only that. The tail is what makes the 26
|
|
26
|
+
* 1000-Genomes population codes, or a repeat painting's classes, all get a
|
|
27
|
+
* curated color instead of falling out to `randomColor`.
|
|
28
|
+
*
|
|
29
|
+
* Past the end is the caller's problem, and the two callers answer differently
|
|
30
|
+
* on purpose: an attribute palette-by hashes the VALUE (stable across
|
|
31
|
+
* re-palettes), while a by-position painter has no value to hash and wraps.
|
|
32
|
+
*/
|
|
33
|
+
export declare const categoricalPalette: string[];
|
|
34
|
+
/**
|
|
35
|
+
* Deterministic non-negative 32-bit hash of a string.
|
|
36
|
+
*/
|
|
37
|
+
export declare function hashString(str: string): number;
|
|
38
|
+
/**
|
|
39
|
+
* Stable category10 color for a sequence name, via `hashString`.
|
|
40
|
+
*
|
|
41
|
+
* Kept as a published export; in-tree, prefer {@link refNameColor}, which hands
|
|
42
|
+
* the palette out by position where the caller knows the assembly's chromosome
|
|
43
|
+
* order and only hashes where it does not.
|
|
44
|
+
*/
|
|
45
|
+
export declare function getQueryColor(queryName: string): string;
|
|
46
|
+
/** The palette color for a chromosome at `position` in its assembly. */
|
|
47
|
+
export declare function refNamePaletteColorAt(position: number): string;
|
|
48
|
+
/**
|
|
49
|
+
* The color a refName paints, BY POSITION IN THE ASSEMBLY where the caller
|
|
50
|
+
* knows its chromosome order.
|
|
51
|
+
*
|
|
52
|
+
* Handing the palette out rather than hashing into it is what stops a genome
|
|
53
|
+
* painting two of its own chromosomes the same color: nine slots means ten or
|
|
54
|
+
* more chromosomes re-use one, and by the birthday bound long before that. On
|
|
55
|
+
* hg38 the hash puts chr1, chr12, chr21 and chrY on one color.
|
|
56
|
+
*
|
|
57
|
+
* `position` is undefined for the case the order genuinely is not available —
|
|
58
|
+
* an assembly still loading, or a refName the assembly does not list (a
|
|
59
|
+
* scaffold under an alias). There a stable arbitrary color beats no color, so
|
|
60
|
+
* it falls back to the hash.
|
|
61
|
+
*/
|
|
62
|
+
export declare function refNameColor(name: string, position: number | undefined): string;
|
|
63
|
+
export { category10, set1 };
|
package/esm/ui/colors.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { relight } from '../util/color/index.js';
|
|
1
2
|
const category10 = [
|
|
2
3
|
'#1f77b4',
|
|
3
4
|
'#ff7f0e',
|
|
@@ -64,4 +65,137 @@ const ggplot2Colors6 = [
|
|
|
64
65
|
const ggplot2Colors5 = ['#F8766D', '#A3A500', '#00BF7D', '#00B0F6', '#E76BF3'];
|
|
65
66
|
const ggplot2Colors4 = ['#F8766D', '#7CAE00', '#00BFC4', '#C77CFF'];
|
|
66
67
|
const ggplot2Colors3 = ['#F8766D', '#00BA38', '#619CFF'];
|
|
67
|
-
|
|
68
|
+
// A neutral has no place in a categorical palette that paints FILLS. Grey reads
|
|
69
|
+
// as "uncolored / no value" — it is what `randomColor` hands a value-less
|
|
70
|
+
// feature, what a synteny ribbon defaults to, what alignments paint a read with
|
|
71
|
+
// no tag — so a category landing on one says the opposite of what the palette
|
|
72
|
+
// is for. `refNameColorHexes` below drops category10's grey for this reason and
|
|
73
|
+
// has since it was written; this is the same rule applied to every scheme at
|
|
74
|
+
// once.
|
|
75
|
+
const NEUTRALS = new Set([
|
|
76
|
+
'#bab0ab',
|
|
77
|
+
'#999999',
|
|
78
|
+
'#666666',
|
|
79
|
+
'#b3b3b3',
|
|
80
|
+
'#7f7f7f',
|
|
81
|
+
]);
|
|
82
|
+
export const paletteColors = {
|
|
83
|
+
category10,
|
|
84
|
+
dark2,
|
|
85
|
+
ggplot2Colors3,
|
|
86
|
+
ggplot2Colors4,
|
|
87
|
+
ggplot2Colors5,
|
|
88
|
+
ggplot2Colors6,
|
|
89
|
+
set1,
|
|
90
|
+
set2,
|
|
91
|
+
tableau10,
|
|
92
|
+
};
|
|
93
|
+
/**
|
|
94
|
+
* The wide qualitative palette: every scheme above, in order, deduped and with
|
|
95
|
+
* the neutrals dropped. ~40 entries.
|
|
96
|
+
*
|
|
97
|
+
* One list, because "give each row a distinct color" is one question this repo
|
|
98
|
+
* answers in two places — the multi-row painter handing colors out by row
|
|
99
|
+
* index, and the arrangement dialog's palette-by-attribute — and two lists
|
|
100
|
+
* would mean a track's automatic colors and the colors it takes when a user
|
|
101
|
+
* palettes it by hand were different palettes for no reason a reader could see.
|
|
102
|
+
*
|
|
103
|
+
* `tableau10` leads because its hues are the most evenly separated, so a track
|
|
104
|
+
* with a handful of rows spends only that. The tail is what makes the 26
|
|
105
|
+
* 1000-Genomes population codes, or a repeat painting's classes, all get a
|
|
106
|
+
* curated color instead of falling out to `randomColor`.
|
|
107
|
+
*
|
|
108
|
+
* Past the end is the caller's problem, and the two callers answer differently
|
|
109
|
+
* on purpose: an attribute palette-by hashes the VALUE (stable across
|
|
110
|
+
* re-palettes), while a by-position painter has no value to hash and wraps.
|
|
111
|
+
*/
|
|
112
|
+
export const categoricalPalette = [
|
|
113
|
+
...new Set([...tableau10, ...set1, ...dark2, ...set2, ...category10].filter(hex => !NEUTRALS.has(hex.toLowerCase()))),
|
|
114
|
+
];
|
|
115
|
+
// only category10 and set1 are imported by name; the rest are reached through
|
|
116
|
+
// paletteColors above
|
|
117
|
+
/**
|
|
118
|
+
* Deterministic non-negative 32-bit hash of a string.
|
|
119
|
+
*/
|
|
120
|
+
export function hashString(str) {
|
|
121
|
+
let hash = 0;
|
|
122
|
+
for (let i = 0; i < str.length; i++) {
|
|
123
|
+
const char = str.charCodeAt(i);
|
|
124
|
+
hash = (hash << 5) - hash + char;
|
|
125
|
+
hash |= 0;
|
|
126
|
+
}
|
|
127
|
+
return Math.abs(hash);
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Stable category10 color for a sequence name, via `hashString`.
|
|
131
|
+
*
|
|
132
|
+
* Kept as a published export; in-tree, prefer {@link refNameColor}, which hands
|
|
133
|
+
* the palette out by position where the caller knows the assembly's chromosome
|
|
134
|
+
* order and only hashes where it does not.
|
|
135
|
+
*/
|
|
136
|
+
export function getQueryColor(queryName) {
|
|
137
|
+
return category10[hashString(queryName) % category10.length];
|
|
138
|
+
}
|
|
139
|
+
// The by-refName painting palette: category10 with its grey dropped, since a
|
|
140
|
+
// grey chromosome reads as "uncolored/broken" (see NEUTRALS).
|
|
141
|
+
//
|
|
142
|
+
// category10 rather than the wide `categoricalPalette` — a karyotype wants nine
|
|
143
|
+
// hues it can re-light into tones a reader can compare, not forty unrelated
|
|
144
|
+
// ones, and `PALETTE_LAP_TONES` below is what that costs.
|
|
145
|
+
const refNameColorHexes = category10.filter(hex => !NEUTRALS.has(hex));
|
|
146
|
+
// Nine do not cover a karyotype, so each LAP around the list re-lights the same
|
|
147
|
+
// hues: chromosome 10 is a deep version of chromosome 1's blue, chromosome 19 a
|
|
148
|
+
// pale one. Three laps is 27 colors, past every karyotype these figures anchor
|
|
149
|
+
// on (human 24, rice 12, bread wheat 21), and a fourth lap starts the tones
|
|
150
|
+
// again rather than fading to nothing — a repeat 27 positions away is one no
|
|
151
|
+
// reader is comparing.
|
|
152
|
+
//
|
|
153
|
+
// THE COLORS ARE THE PALETTE'S, not a ramp's. This spent a round as the next hue
|
|
154
|
+
// on the golden angle at a fixed HSL 70%/50%, which is collision-free for any
|
|
155
|
+
// karyotype and was rejected on sight by figure review ("the previous palette is
|
|
156
|
+
// better"): an even hue circle at one saturation is a rainbow, and a five-genome
|
|
157
|
+
// synteny figure drawn in one is a hundred thousand ribbons of pure red, green,
|
|
158
|
+
// blue and magenta. category10's nine are uneven on purpose — that is what makes
|
|
159
|
+
// them read as a set.
|
|
160
|
+
//
|
|
161
|
+
// It is not the weaker option for distinguishability either, which is what the
|
|
162
|
+
// ramp was reached for. Closest pair in OKLab over 24 positions: 0.077 for these
|
|
163
|
+
// laps, 0.019 for the golden angle at HSL 70%/50% — an even hue circle is even
|
|
164
|
+
// in HSL's hue, and HSL's hue is not perceptually even.
|
|
165
|
+
const PALETTE_LAP_TONES = [
|
|
166
|
+
// lap 0 is the palette color itself, untouched
|
|
167
|
+
undefined,
|
|
168
|
+
// deep before pale, because these are drawn at a low alpha over white (the
|
|
169
|
+
// OrthoFinder figures run at 0.06) and a pale color at 0.06 is a color a
|
|
170
|
+
// reader cannot see. Chroma held, and the gamut takes what it must down here.
|
|
171
|
+
{ lightnessShift: -0.17, chromaScale: 1 },
|
|
172
|
+
// pale. Chroma comes down with lightness: held at full, the light lap's reds
|
|
173
|
+
// and pinks all pin against the top of the sRGB gamut and converge there.
|
|
174
|
+
{ lightnessShift: 0.18, chromaScale: 0.8 },
|
|
175
|
+
];
|
|
176
|
+
/** The palette color for a chromosome at `position` in its assembly. */
|
|
177
|
+
export function refNamePaletteColorAt(position) {
|
|
178
|
+
const hex = refNameColorHexes[position % refNameColorHexes.length];
|
|
179
|
+
const lap = PALETTE_LAP_TONES[Math.floor(position / refNameColorHexes.length) % PALETTE_LAP_TONES.length];
|
|
180
|
+
return lap ? relight(hex, lap.lightnessShift, lap.chromaScale) : hex;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* The color a refName paints, BY POSITION IN THE ASSEMBLY where the caller
|
|
184
|
+
* knows its chromosome order.
|
|
185
|
+
*
|
|
186
|
+
* Handing the palette out rather than hashing into it is what stops a genome
|
|
187
|
+
* painting two of its own chromosomes the same color: nine slots means ten or
|
|
188
|
+
* more chromosomes re-use one, and by the birthday bound long before that. On
|
|
189
|
+
* hg38 the hash puts chr1, chr12, chr21 and chrY on one color.
|
|
190
|
+
*
|
|
191
|
+
* `position` is undefined for the case the order genuinely is not available —
|
|
192
|
+
* an assembly still loading, or a refName the assembly does not list (a
|
|
193
|
+
* scaffold under an alias). There a stable arbitrary color beats no color, so
|
|
194
|
+
* it falls back to the hash.
|
|
195
|
+
*/
|
|
196
|
+
export function refNameColor(name, position) {
|
|
197
|
+
return position === undefined
|
|
198
|
+
? refNameColorHexes[hashString(name) % refNameColorHexes.length]
|
|
199
|
+
: refNamePaletteColorAt(position);
|
|
200
|
+
}
|
|
201
|
+
export { category10, set1 };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Which tracks a contribution is for. Every track-scoped extension point fires
|
|
3
|
+
* for every track, so a contribution with no selector applies to all of them.
|
|
4
|
+
* {@link matchesTrackSelector} is what applies one.
|
|
5
|
+
*/
|
|
6
|
+
export interface TrackSelector {
|
|
7
|
+
/** track type, e.g. `'VariantTrack'`, usually what "for my tracks" means */
|
|
8
|
+
trackType?: string | string[];
|
|
9
|
+
/** track id; a plain string also matches the user's copies of that track */
|
|
10
|
+
trackId?: string | RegExp | (string | RegExp)[];
|
|
11
|
+
/** widget model type, e.g. `'AlignmentsFeatureWidget'`, for the slot points */
|
|
12
|
+
widgetType?: string | string[];
|
|
13
|
+
}
|
|
14
|
+
/** the model fields a declarative selector can match on */
|
|
15
|
+
export interface SelectableModel {
|
|
16
|
+
type?: string;
|
|
17
|
+
trackId?: string;
|
|
18
|
+
trackType?: string;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* What a track-scoped extension point contribution is for: whether the widget
|
|
22
|
+
* model or track config in `subject` satisfies every field of `select`. Every
|
|
23
|
+
* field given must match, and an empty selector matches everything.
|
|
24
|
+
*
|
|
25
|
+
* Every one of those points fires for every track, so a contribution that does
|
|
26
|
+
* not call this applies to all of them. Hand-writing `config.trackId === 'x'`
|
|
27
|
+
* instead is what silently stops applying the first time a user copies the
|
|
28
|
+
* track: `copyTrackSnapshot` suffixes the id, and this knows that.
|
|
29
|
+
*
|
|
30
|
+
* Not to be confused with {@link matchTrackId}, which tests an id against
|
|
31
|
+
* patterns you supply and so leaves that normalization to you.
|
|
32
|
+
*/
|
|
33
|
+
export declare function matchesTrackSelector(select: TrackSelector | undefined, subject: {
|
|
34
|
+
/** a widget model, if the point's props carry one */
|
|
35
|
+
model?: SelectableModel;
|
|
36
|
+
/** a track config, if they carry that instead — `type` is the track type */
|
|
37
|
+
config?: Record<string, unknown>;
|
|
38
|
+
}): boolean;
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { matchTrackId } from '../util/matchTrackId.js';
|
|
2
|
+
// "Copy track" appends `-${Date.now()}` to the trackId (copyTrackSnapshot), and
|
|
3
|
+
// copying a copy appends again, so a bare id in a selector means "this track,
|
|
4
|
+
// including the user's copies of it". Doing this in the framework is the point:
|
|
5
|
+
// scoping by `trackId ===` is what people write by hand, and it silently stops
|
|
6
|
+
// applying the moment a user copies the track.
|
|
7
|
+
function matchesTrackId(trackId, pattern) {
|
|
8
|
+
return typeof pattern === 'string'
|
|
9
|
+
? trackId === pattern ||
|
|
10
|
+
(trackId?.startsWith(`${pattern}-`) === true &&
|
|
11
|
+
trackId
|
|
12
|
+
.slice(pattern.length + 1)
|
|
13
|
+
.split('-')
|
|
14
|
+
.every(part => /^\d+$/.test(part)))
|
|
15
|
+
: matchTrackId(trackId, [pattern]);
|
|
16
|
+
}
|
|
17
|
+
function matchesOneOf(value, expected) {
|
|
18
|
+
return typeof expected === 'string'
|
|
19
|
+
? value === expected
|
|
20
|
+
: expected.includes(value ?? '');
|
|
21
|
+
}
|
|
22
|
+
/** Whether `model` satisfies every declarative field of `select`. */
|
|
23
|
+
function selectorMatchesModel(select, model) {
|
|
24
|
+
const { widgetType, trackType, trackId } = select ?? {};
|
|
25
|
+
return ((widgetType === undefined || matchesOneOf(model.type, widgetType)) &&
|
|
26
|
+
(trackType === undefined || matchesOneOf(model.trackType, trackType)) &&
|
|
27
|
+
(trackId === undefined ||
|
|
28
|
+
(Array.isArray(trackId) ? trackId : [trackId]).some(pattern => matchesTrackId(model.trackId, pattern))));
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* What a track-scoped extension point contribution is for: whether the widget
|
|
32
|
+
* model or track config in `subject` satisfies every field of `select`. Every
|
|
33
|
+
* field given must match, and an empty selector matches everything.
|
|
34
|
+
*
|
|
35
|
+
* Every one of those points fires for every track, so a contribution that does
|
|
36
|
+
* not call this applies to all of them. Hand-writing `config.trackId === 'x'`
|
|
37
|
+
* instead is what silently stops applying the first time a user copies the
|
|
38
|
+
* track: `copyTrackSnapshot` suffixes the id, and this knows that.
|
|
39
|
+
*
|
|
40
|
+
* Not to be confused with {@link matchTrackId}, which tests an id against
|
|
41
|
+
* patterns you supply and so leaves that normalization to you.
|
|
42
|
+
*/
|
|
43
|
+
export function matchesTrackSelector(select, subject) {
|
|
44
|
+
const { model, config } = subject;
|
|
45
|
+
return selectorMatchesModel(select, model ?? {
|
|
46
|
+
trackId: config?.trackId,
|
|
47
|
+
trackType: config?.type,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import type { MenuItem } from './MenuTypes.ts';
|
|
2
|
+
/**
|
|
3
|
+
* One reversible piece of display state — a filter, a hidden set, a collected
|
|
4
|
+
* "show only these", a highlight set — declared once so that the three things a
|
|
5
|
+
* display currently derives separately all come from the same place: how many
|
|
6
|
+
* of them are in effect, the row offered to undo this one, and the group-level
|
|
7
|
+
* "clear everything".
|
|
8
|
+
*
|
|
9
|
+
* It exists because those three drifted apart, repeatedly and silently, and the
|
|
10
|
+
* failures are invisible rather than loud:
|
|
11
|
+
*
|
|
12
|
+
* - a set with no undo row at all (canvas `pinnedFeatureIds`: persistent,
|
|
13
|
+
* layout-affecting, and reachable only from the pinned feature's own
|
|
14
|
+
* right-click menu, so a pin left on another chromosome could not be reached);
|
|
15
|
+
* - an undo derived from the state's ABSENCE, so it vanished with the thing it
|
|
16
|
+
* undid (the canvas colour key's "×" was a one-way door for the session);
|
|
17
|
+
* - a count derived from a different predicate than the state's actual effect
|
|
18
|
+
* ("Filter by... (1)" for opening the filter dialog and pressing Submit).
|
|
19
|
+
*
|
|
20
|
+
* The pairing rule that used to live in a comment — *every filter counted must
|
|
21
|
+
* be reset by the clear, or the menu offers a recovery that doesn't recover* —
|
|
22
|
+
* is structural once both sides read this list.
|
|
23
|
+
*/
|
|
24
|
+
export interface Reversible {
|
|
25
|
+
/** How many independent things this is holding. 0 = not in effect. */
|
|
26
|
+
count: number;
|
|
27
|
+
/**
|
|
28
|
+
* Row text for undoing just this one, given its count. Omit for state whose
|
|
29
|
+
* only sensible undo is the group's "clear all" — a jexl filter list has no
|
|
30
|
+
* per-item recovery to name.
|
|
31
|
+
*/
|
|
32
|
+
label?: (count: number) => string;
|
|
33
|
+
icon?: React.ElementType;
|
|
34
|
+
/** Reverse it. Must be a no-op when `count` is 0. */
|
|
35
|
+
clear: () => void;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* A display's reversibles, keyed by name — `{ hiddenFeatures: {...}, solo: {...} }`.
|
|
39
|
+
* A record rather than an array so a consumer wanting one specific entry (the
|
|
40
|
+
* feature context menu offers "Show N hidden features" without the rest of the
|
|
41
|
+
* family) reads `.hiddenFeatures` and is type-checked, instead of searching a
|
|
42
|
+
* list for a string id. Row order is the record's insertion order.
|
|
43
|
+
*/
|
|
44
|
+
export type Reversibles = Record<string, Reversible>;
|
|
45
|
+
/** Total in effect — what a "(n)" in a group label counts. */
|
|
46
|
+
export declare function activeCount(items: Reversibles): number;
|
|
47
|
+
/**
|
|
48
|
+
* Reverse every one. Inactive entries are cleared too (their `clear` is a
|
|
49
|
+
* no-op), so this stays a plain fold rather than a filtered one — a caller
|
|
50
|
+
* cannot half-clear by getting the gate wrong.
|
|
51
|
+
*/
|
|
52
|
+
export declare function clearAll(items: Reversibles): void;
|
|
53
|
+
/**
|
|
54
|
+
* The undo rows: one per entry that is in effect AND names itself. Spread,
|
|
55
|
+
* don't insert — an entry holding nothing contributes nothing.
|
|
56
|
+
*/
|
|
57
|
+
export declare function undoItems(items: Reversibles, priority?: number): MenuItem[];
|
|
58
|
+
export interface FilterMenuOpts {
|
|
59
|
+
/**
|
|
60
|
+
* The display's narrowings, declared once (see {@link Reversible}). Supplying
|
|
61
|
+
* this derives `activeCount`, `recoveryItems` and `onClear` together, so the
|
|
62
|
+
* count in the label, the rows inside the submenu and what "Clear all filters"
|
|
63
|
+
* actually clears cannot disagree. Prefer it to spelling the three out.
|
|
64
|
+
*/
|
|
65
|
+
narrowings?: Reversibles;
|
|
66
|
+
/**
|
|
67
|
+
* How many independent filters are narrowing the view right now, so the label
|
|
68
|
+
* can say that something is hiding data. Count a filter when its value is not
|
|
69
|
+
* its **no-op** value, which is not always its config default: the LD
|
|
70
|
+
* display's `minorAlleleFrequencyFilter` ships at 0.1 and is genuinely
|
|
71
|
+
* dropping variants, while the alignments flag masks default non-zero and are
|
|
72
|
+
* the no-filtering state, so they count only when edited away from it.
|
|
73
|
+
*
|
|
74
|
+
* This is usually the only affordance telling the user a filter is silently
|
|
75
|
+
* hiding rows — nothing else in the track chrome says so.
|
|
76
|
+
*
|
|
77
|
+
* Ignored when `narrowings` is given.
|
|
78
|
+
*/
|
|
79
|
+
activeCount?: number;
|
|
80
|
+
/** Opens the display's filter dialog, where it has a single one. */
|
|
81
|
+
onEdit?: () => void;
|
|
82
|
+
/** Controls that belong inside the submenu (inline sliders, further dialogs). */
|
|
83
|
+
subItems?: MenuItem[];
|
|
84
|
+
/**
|
|
85
|
+
* Recovery rows offered alongside "Clear all filters" once something is
|
|
86
|
+
* filtering — the canvas display's "Show N hidden features", for one.
|
|
87
|
+
*/
|
|
88
|
+
recoveryItems?: MenuItem[];
|
|
89
|
+
/** Turn every filter off. Offered only while `activeCount` is non-zero. */
|
|
90
|
+
onClear?: () => void;
|
|
91
|
+
/** Rides the top-level row; see the canvas display's RECOVERY_PRIORITY. */
|
|
92
|
+
priority?: number;
|
|
93
|
+
/** Label for the dialog opener inside the submenu. */
|
|
94
|
+
editLabel?: string;
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* The "Filter by..." family, in the one shape every display uses.
|
|
98
|
+
*
|
|
99
|
+
* On a track with nothing to recover this is the single dialog opener, because
|
|
100
|
+
* a submenu wrapping one row is pure indirection. Once filters are on — or a
|
|
101
|
+
* display contributes its own inline controls — the recovery rows join it and
|
|
102
|
+
* the group earns its submenu, with the dialog opener as its first row.
|
|
103
|
+
*
|
|
104
|
+
* Spread, don't insert: a display with neither a dialog nor sub-items (a
|
|
105
|
+
* pre-computed LD file has nothing to filter) contributes no row at all.
|
|
106
|
+
*
|
|
107
|
+
* Written once because the four copies had drifted into four designs, and only
|
|
108
|
+
* the alignments one put the active count in the label — so a filtered LD or
|
|
109
|
+
* multi-sample variant track said nothing, anywhere, about the rows it was
|
|
110
|
+
* dropping.
|
|
111
|
+
*/
|
|
112
|
+
export declare function filterMenuItems({ narrowings, activeCount: explicitCount, onEdit, subItems, recoveryItems: explicitRecovery, onClear: explicitClear, priority, editLabel, }: FilterMenuOpts): MenuItem[];
|