@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,746 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* JBrowse's colors, as plain data.
|
|
3
|
+
*
|
|
4
|
+
* This module is the single place a color is decided. It imports no UI toolkit,
|
|
5
|
+
* so it loads in an RPC worker, in a GPU renderer, and in an embedding app that
|
|
6
|
+
* has never heard of Material UI. `theme.ts` is a *consumer*: it takes what
|
|
7
|
+
* `resolvePalette` produces and splices it into an MUI theme, so JBrowse's own
|
|
8
|
+
* Material UI chrome and JBrowse's renderers cannot disagree about what
|
|
9
|
+
* `highlight` means.
|
|
10
|
+
*
|
|
11
|
+
* The color math below reproduces MUI's `augmentColor` exactly, because the
|
|
12
|
+
* config `theme` slot is public API shaped as MUI `ThemeOptions` and a user who
|
|
13
|
+
* writes `primary: { main: '#0D233F' }` has to keep getting the same light,
|
|
14
|
+
* dark and contrastText shades they got before. `palette.test.ts` asserts that
|
|
15
|
+
* value by value against a real MUI theme, so a drift shows up as a test
|
|
16
|
+
* failure rather than as a slightly different browser.
|
|
17
|
+
*
|
|
18
|
+
* The neutral tokens (text, background, divider, action) are JBrowse's own,
|
|
19
|
+
* declared here rather than read off MUI. They start at the values MUI happens
|
|
20
|
+
* to use, which is why the parity test passes, but they are ours: a renderer
|
|
21
|
+
* asking for "the color text is drawn in" should not have to reach into a
|
|
22
|
+
* component library to find out.
|
|
23
|
+
*/
|
|
24
|
+
import { colord } from '../util/colord.js';
|
|
25
|
+
// ---------------------------------------------------------------------------
|
|
26
|
+
// MUI-compatible color math
|
|
27
|
+
//
|
|
28
|
+
// Reimplemented rather than imported so this module stays toolkit-free. The
|
|
29
|
+
// constants and the truncation behavior are MUI's, deliberately: see the module
|
|
30
|
+
// comment and the parity test.
|
|
31
|
+
// ---------------------------------------------------------------------------
|
|
32
|
+
const TONAL_OFFSET = 0.2;
|
|
33
|
+
const CONTRAST_THRESHOLD = 3;
|
|
34
|
+
// MUI picks contrast text between the two defaults below, not between the
|
|
35
|
+
// active mode's text colors, so this stays mode-independent
|
|
36
|
+
const CONTRAST_DARK_TEXT = '#fff';
|
|
37
|
+
const CONTRAST_LIGHT_TEXT = 'rgba(0, 0, 0, 0.87)';
|
|
38
|
+
/**
|
|
39
|
+
* MUI recomposes a channel with `parseInt`, which truncates toward zero rather
|
|
40
|
+
* than rounding. Matching that is the difference between `rgb(61, 79, 101)` and
|
|
41
|
+
* `rgb(61, 79, 102)` for the default primary, so it is not a detail.
|
|
42
|
+
*/
|
|
43
|
+
function recompose(r, g, b, a) {
|
|
44
|
+
const [rr, gg, bb] = [r, g, b].map(Math.trunc);
|
|
45
|
+
return a < 1 ? `rgba(${rr}, ${gg}, ${bb}, ${a})` : `rgb(${rr}, ${gg}, ${bb})`;
|
|
46
|
+
}
|
|
47
|
+
function shiftChannels(color, fn) {
|
|
48
|
+
const { r, g, b, a } = colord(color).toRgb();
|
|
49
|
+
return recompose(fn(r), fn(g), fn(b), a);
|
|
50
|
+
}
|
|
51
|
+
export function lighten(color, coefficient) {
|
|
52
|
+
return shiftChannels(color, v => v + (255 - v) * coefficient);
|
|
53
|
+
}
|
|
54
|
+
export function darken(color, coefficient) {
|
|
55
|
+
return shiftChannels(color, v => v * (1 - coefficient));
|
|
56
|
+
}
|
|
57
|
+
/** Restate a color at a given opacity, as `rgba(r, g, b, a)`. */
|
|
58
|
+
export function alpha(color, value) {
|
|
59
|
+
const { r, g, b } = colord(color).toRgb();
|
|
60
|
+
const a = Math.min(Math.max(value, 0), 1);
|
|
61
|
+
return `rgba(${Math.trunc(r)}, ${Math.trunc(g)}, ${Math.trunc(b)}, ${a})`;
|
|
62
|
+
}
|
|
63
|
+
/** WCAG relative luminance, truncated to three digits the way MUI does. */
|
|
64
|
+
export function getLuminance(color) {
|
|
65
|
+
const { r, g, b } = colord(color).toRgb();
|
|
66
|
+
const [rr, gg, bb] = [r, g, b].map(channel => {
|
|
67
|
+
const v = channel / 255;
|
|
68
|
+
return v <= 0.03928 ? v / 12.92 : ((v + 0.055) / 1.055) ** 2.4;
|
|
69
|
+
});
|
|
70
|
+
return Number((0.2126 * rr + 0.7152 * gg + 0.0722 * bb).toFixed(3));
|
|
71
|
+
}
|
|
72
|
+
export function getContrastRatio(foreground, background) {
|
|
73
|
+
const a = getLuminance(foreground);
|
|
74
|
+
const b = getLuminance(background);
|
|
75
|
+
return (Math.max(a, b) + 0.05) / (Math.min(a, b) + 0.05);
|
|
76
|
+
}
|
|
77
|
+
export function getContrastText(background) {
|
|
78
|
+
return getContrastRatio(background, CONTRAST_DARK_TEXT) >= CONTRAST_THRESHOLD
|
|
79
|
+
? CONTRAST_DARK_TEXT
|
|
80
|
+
: CONTRAST_LIGHT_TEXT;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Expand a color into its four shades. A shade map supplies `light`/`dark`
|
|
84
|
+
* directly from its 300/700 entries, anything else derives them by tonal
|
|
85
|
+
* offset, and `contrastText` is chosen by contrast ratio against `main`.
|
|
86
|
+
*/
|
|
87
|
+
export function augmentColor(input) {
|
|
88
|
+
const entry = typeof input === 'string' ? { main: input } : input;
|
|
89
|
+
const main = entry.main ?? entry[500];
|
|
90
|
+
if (!main) {
|
|
91
|
+
throw new Error(`palette color needs a \`main\` or a \`500\` shade, got ${JSON.stringify(input)}`);
|
|
92
|
+
}
|
|
93
|
+
return {
|
|
94
|
+
main,
|
|
95
|
+
light: entry.light ?? entry[300] ?? lighten(main, TONAL_OFFSET),
|
|
96
|
+
dark: entry.dark ?? entry[700] ?? darken(main, TONAL_OFFSET * 1.5),
|
|
97
|
+
contrastText: entry.contrastText ?? getContrastText(main),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
// ---------------------------------------------------------------------------
|
|
101
|
+
// Palette shade maps
|
|
102
|
+
//
|
|
103
|
+
// The handful of MUI shade values JBrowse's defaults are built from, inlined so
|
|
104
|
+
// this module owns them. They are the standard Material palette stops.
|
|
105
|
+
// ---------------------------------------------------------------------------
|
|
106
|
+
const green = {
|
|
107
|
+
300: '#81c784',
|
|
108
|
+
400: '#66bb6a',
|
|
109
|
+
500: '#4caf50',
|
|
110
|
+
700: '#388e3c',
|
|
111
|
+
800: '#2e7d32',
|
|
112
|
+
900: '#1b5e20',
|
|
113
|
+
};
|
|
114
|
+
const blue = { 300: '#64b5f6', 500: '#2196f3', 700: '#1976d2' };
|
|
115
|
+
const orange = {
|
|
116
|
+
300: '#ffb74d',
|
|
117
|
+
400: '#ffa726',
|
|
118
|
+
500: '#ff9800',
|
|
119
|
+
700: '#f57c00',
|
|
120
|
+
900: '#e65100',
|
|
121
|
+
};
|
|
122
|
+
const red = {
|
|
123
|
+
300: '#e57373',
|
|
124
|
+
400: '#ef5350',
|
|
125
|
+
500: '#f44336',
|
|
126
|
+
700: '#d32f2f',
|
|
127
|
+
800: '#c62828',
|
|
128
|
+
};
|
|
129
|
+
const lightBlue = {
|
|
130
|
+
300: '#4fc3f7',
|
|
131
|
+
400: '#29b6f6',
|
|
132
|
+
500: '#03a9f4',
|
|
133
|
+
700: '#0288d1',
|
|
134
|
+
900: '#01579b',
|
|
135
|
+
};
|
|
136
|
+
const brown = { 300: '#a1887f', 500: '#795548', 700: '#5d4037' };
|
|
137
|
+
export const grey = {
|
|
138
|
+
50: '#fafafa',
|
|
139
|
+
100: '#f5f5f5',
|
|
140
|
+
200: '#eeeeee',
|
|
141
|
+
300: '#e0e0e0',
|
|
142
|
+
400: '#bdbdbd',
|
|
143
|
+
500: '#9e9e9e',
|
|
144
|
+
600: '#757575',
|
|
145
|
+
700: '#616161',
|
|
146
|
+
800: '#424242',
|
|
147
|
+
900: '#212121',
|
|
148
|
+
};
|
|
149
|
+
// Material's own semantic stops, one set per mode. Stated with explicit
|
|
150
|
+
// light/dark shades because MUI states them that way: `warning.main` in light
|
|
151
|
+
// mode is not orange[800] but the nearest value that passes 3:1 against white.
|
|
152
|
+
const lightSemantics = {
|
|
153
|
+
error: { main: red[700], light: red[400], dark: red[800] },
|
|
154
|
+
warning: { main: '#ed6c02', light: orange[500], dark: orange[900] },
|
|
155
|
+
info: { main: lightBlue[700], light: lightBlue[500], dark: lightBlue[900] },
|
|
156
|
+
success: { main: green[800], light: green[500], dark: green[900] },
|
|
157
|
+
};
|
|
158
|
+
const darkSemantics = {
|
|
159
|
+
error: { main: red[500], light: red[300], dark: red[700] },
|
|
160
|
+
warning: { main: orange[400], light: orange[300], dark: orange[700] },
|
|
161
|
+
info: { main: lightBlue[400], light: lightBlue[300], dark: lightBlue[700] },
|
|
162
|
+
success: { main: green[400], light: green[300], dark: green[700] },
|
|
163
|
+
};
|
|
164
|
+
// A theme that declares no primary/secondary at all (a config `extraThemes`
|
|
165
|
+
// entry, in practice) falls back to the stock Material defaults rather than to
|
|
166
|
+
// JBrowse's brand colors, which is what it did when MUI owned this resolution.
|
|
167
|
+
const lightBrandFallback = {
|
|
168
|
+
primary: { main: '#1976d2', light: '#42a5f5', dark: '#1565c0' },
|
|
169
|
+
secondary: { main: '#9c27b0', light: '#ba68c8', dark: '#7b1fa2' },
|
|
170
|
+
};
|
|
171
|
+
const darkBrandFallback = {
|
|
172
|
+
primary: { main: '#90caf9', light: '#e3f2fd', dark: '#42a5f5' },
|
|
173
|
+
secondary: { main: '#ce93d8', light: '#f3e5f5', dark: '#ab47bc' },
|
|
174
|
+
};
|
|
175
|
+
const lightNeutrals = {
|
|
176
|
+
text: {
|
|
177
|
+
primary: 'rgba(0, 0, 0, 0.87)',
|
|
178
|
+
secondary: 'rgba(0, 0, 0, 0.6)',
|
|
179
|
+
disabled: 'rgba(0, 0, 0, 0.38)',
|
|
180
|
+
},
|
|
181
|
+
background: { paper: '#fff', default: '#fff' },
|
|
182
|
+
divider: 'rgba(0, 0, 0, 0.12)',
|
|
183
|
+
common: { black: '#000', white: '#fff' },
|
|
184
|
+
grey,
|
|
185
|
+
action: {
|
|
186
|
+
active: 'rgba(0, 0, 0, 0.54)',
|
|
187
|
+
hover: 'rgba(0, 0, 0, 0.04)',
|
|
188
|
+
hoverOpacity: 0.04,
|
|
189
|
+
selected: 'rgba(0, 0, 0, 0.08)',
|
|
190
|
+
selectedOpacity: 0.08,
|
|
191
|
+
disabled: 'rgba(0, 0, 0, 0.26)',
|
|
192
|
+
disabledBackground: 'rgba(0, 0, 0, 0.12)',
|
|
193
|
+
disabledOpacity: 0.38,
|
|
194
|
+
focus: 'rgba(0, 0, 0, 0.12)',
|
|
195
|
+
focusOpacity: 0.12,
|
|
196
|
+
activatedOpacity: 0.12,
|
|
197
|
+
},
|
|
198
|
+
};
|
|
199
|
+
const darkNeutrals = {
|
|
200
|
+
text: {
|
|
201
|
+
primary: '#fff',
|
|
202
|
+
secondary: 'rgba(255, 255, 255, 0.7)',
|
|
203
|
+
disabled: 'rgba(255, 255, 255, 0.5)',
|
|
204
|
+
},
|
|
205
|
+
background: { paper: '#121212', default: '#121212' },
|
|
206
|
+
divider: 'rgba(255, 255, 255, 0.12)',
|
|
207
|
+
common: { black: '#000', white: '#fff' },
|
|
208
|
+
grey,
|
|
209
|
+
action: {
|
|
210
|
+
active: '#fff',
|
|
211
|
+
hover: 'rgba(255, 255, 255, 0.08)',
|
|
212
|
+
hoverOpacity: 0.08,
|
|
213
|
+
selected: 'rgba(255, 255, 255, 0.16)',
|
|
214
|
+
selectedOpacity: 0.16,
|
|
215
|
+
disabled: 'rgba(255, 255, 255, 0.3)',
|
|
216
|
+
disabledBackground: 'rgba(255, 255, 255, 0.12)',
|
|
217
|
+
disabledOpacity: 0.38,
|
|
218
|
+
focus: 'rgba(255, 255, 255, 0.12)',
|
|
219
|
+
focusOpacity: 0.12,
|
|
220
|
+
activatedOpacity: 0.24,
|
|
221
|
+
},
|
|
222
|
+
};
|
|
223
|
+
// ---------------------------------------------------------------------------
|
|
224
|
+
// Static domain colors
|
|
225
|
+
//
|
|
226
|
+
// Colors that do not vary with the theme. Already plain strings, already
|
|
227
|
+
// imported directly by worker code, kept here so every color in the system has
|
|
228
|
+
// one home. `theme.ts` re-exports them, so existing imports are unaffected.
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
/** #color alignments-strand | Forward strand | Read maps to the forward strand */
|
|
231
|
+
export const colorFwdStrand = '#EC8B8B';
|
|
232
|
+
/** #color alignments-strand | Reverse strand | Read maps to the reverse strand */
|
|
233
|
+
export const colorRevStrand = '#8F8FD8';
|
|
234
|
+
/** #color alignments-pair-orientation | LR (→ ←, normal proper pair) | Concordant */
|
|
235
|
+
export const colorPairLR = '#d3d3d3';
|
|
236
|
+
// Dimmer grey for dark mode: the light #d3d3d3 reads as near-white glaring
|
|
237
|
+
// blocks against a dark track background. Wired into the dark alignmentFill.
|
|
238
|
+
export const colorPairLRDark = '#8a8a8a';
|
|
239
|
+
/** #color alignments-pair-orientation | RL (← →, mates point away from each other) | Abnormal orientation */
|
|
240
|
+
export const colorPairRL = '#0099bb';
|
|
241
|
+
/** #color alignments-pair-orientation | LL (→ →, both mates forward strand) | Abnormal orientation */
|
|
242
|
+
export const colorPairLL = '#4d9a4d';
|
|
243
|
+
/** #color alignments-pair-orientation | RR (← ←, both mates reverse strand) | Abnormal orientation */
|
|
244
|
+
export const colorPairRR = '#5555bb';
|
|
245
|
+
// Was `colorNostrand`, which named the one thing it essentially never paints. A
|
|
246
|
+
// SAM record's strand is DEFINED from the reverse flag inside the adapter's
|
|
247
|
+
// feature class (`SamRecordFeature.strand`), so it is always +1 or -1, and a
|
|
248
|
+
// PAF/synteny block carries a real strand too — `strandCategory`'s `noStrand`
|
|
249
|
+
// branch is the defensive third case of a `-1 | 0 | 1` return, not a category
|
|
250
|
+
// an alignments track produces. The name survived because the two places that
|
|
251
|
+
// DO reach 0 are strand questions of a different kind: a sashimi junction whose
|
|
252
|
+
// spliced reads carry no XS/TS/ts tag (ordinary unstranded RNA-seq), and a
|
|
253
|
+
// strand-valued read tag that a read simply lacks.
|
|
254
|
+
//
|
|
255
|
+
// What it actually paints, in volume, is neither — `nonSplit` ("Unsplit read",
|
|
256
|
+
// the majority of a pileup under the split-read scheme) and `mapqUnavailable`
|
|
257
|
+
// (MAPQ 255). What unites all five is that the scheme's question has no
|
|
258
|
+
// informative answer for this read, so the value is the neutral it falls back
|
|
259
|
+
// to rather than a statement about strand.
|
|
260
|
+
//
|
|
261
|
+
// It is NOT the only such neutral: `colorPairLR` #d3d3d3 is the baseline for
|
|
262
|
+
// `normalInsert`, `noTagValue` and `plain`, and the two sit dE 3.95 apart —
|
|
263
|
+
// close enough that `readTagColors.ts` moved its untagged-read case off this one
|
|
264
|
+
// and onto that one, because only that one darkens under the dark theme. Whether
|
|
265
|
+
// two neutrals are wanted at all is the open question here; this rename does not
|
|
266
|
+
// settle it, and the dark-mode half is `agent-docs/TODO.md`.
|
|
267
|
+
export const colorNeutralRead = '#c8c8c8';
|
|
268
|
+
/**
|
|
269
|
+
* #color alignments-pair-orientation | Inter-chromosomal | Mate maps to a different chromosome; colored distinctly rather than by orientation
|
|
270
|
+
* #color alignments-insert-size | Mate on a different chromosome | Suggests an inter-chromosomal event
|
|
271
|
+
*/
|
|
272
|
+
// THIS SLOT AND `colorUnmappedMate` WERE CHOSEN TOGETHER, and reading either one
|
|
273
|
+
// alone is how the previous pair got stuck. Both are warm, both belong to all
|
|
274
|
+
// three mate-aware schemes, and at #6e4b3a / #b05a20 they sat 4.5 degrees apart
|
|
275
|
+
// in hue — which left this one nowhere to go in any direction, because every
|
|
276
|
+
// direction was that one:
|
|
277
|
+
//
|
|
278
|
+
// more chroma at the same L* -> dE 38.0 to unmappedMate becomes 20.7
|
|
279
|
+
// lighter -> dE 11.8 to it, then the greys past that
|
|
280
|
+
// darker -> the complaint, worse
|
|
281
|
+
// another hue -> the two schemes hold nine, and the widest
|
|
282
|
+
// gap is 91 degrees between pairLL and pairRL,
|
|
283
|
+
// whose midpoint reads as a second green-blue
|
|
284
|
+
//
|
|
285
|
+
// So it was the darkest slot in either scheme (L* 35.3 against 41.2 next) AND
|
|
286
|
+
// the dullest (C* 20.4 against 34.6), which together is what "reads as a smudge"
|
|
287
|
+
// means. Reported on `cancer_sv/k562_bcr_abl_split`: "the arcs for the
|
|
288
|
+
// interchromosomal reads are very dark". The tell is a 2 px stroke — at that
|
|
289
|
+
// weight it was the only colour in either scheme that disappeared, while as a
|
|
290
|
+
// large flat read fill it was merely dull. This slot has to survive both.
|
|
291
|
+
//
|
|
292
|
+
// The fix is that unmappedMate left the warm family (see its own note), which
|
|
293
|
+
// opens the band this now takes: L* 44.9, C* 60.1, and dE 42.2 to its nearest
|
|
294
|
+
// neighbour — the pale supplementary tan — where it used to be 30.1 to a grey.
|
|
295
|
+
// Contrast 5.39 on paper and 3.48 on #121212 puts it mid-pack on both grounds
|
|
296
|
+
// rather than worst on either; it was 2.44 on dark, the worst in the palette.
|
|
297
|
+
//
|
|
298
|
+
// Hue 51.7 keeps it clear of `colorLongInsert` at 40, which is the one warm
|
|
299
|
+
// neighbour that must not be confusable: red means "insert too long", and a
|
|
300
|
+
// second red would read as a second statement about insert size.
|
|
301
|
+
export const colorInterchrom = '#af4d19';
|
|
302
|
+
/** #color alignments-insert-size | Insert larger than expected | Suggests a deletion spanning the pair */
|
|
303
|
+
export const colorLongInsert = '#ff0000';
|
|
304
|
+
/** #color alignments-insert-size | Insert smaller than expected | Suggests an insertion between the pair */
|
|
305
|
+
// This slot has TWO neighbours it must stay clear of, and every past value has
|
|
306
|
+
// solved one by walking into the other. They sit at opposite ends of the
|
|
307
|
+
// lightness axis, which is what makes it a balance rather than a direction:
|
|
308
|
+
//
|
|
309
|
+
// colorLongInsert #ff0000 L* 53.2 C* 104.6 h 40 <- must not read as
|
|
310
|
+
// colorPairLR #d3d3d3 L* 84.6 C* 0.0 <- must not vanish on
|
|
311
|
+
//
|
|
312
|
+
// 31 L* apart, so no pink can be more than about 16 from each. The history is
|
|
313
|
+
// four attempts at spending that budget:
|
|
314
|
+
//
|
|
315
|
+
// #ffc0cb L* 83.6 C* 24.4 h 8 pale: red's own hue washed out, read as
|
|
316
|
+
// "washed-out red" beside it
|
|
317
|
+
// #ff3a8c L* 58.2 C* 76.9 h 1 saturated: 5 L* from red, same warm end
|
|
318
|
+
// of the wheel, so chroma could not part
|
|
319
|
+
// them (review, twice)
|
|
320
|
+
// #ffbcd8 L* 83.0 C* 28.6 h 351 light: 30 L* from red -- and 1.5 L* from
|
|
321
|
+
// the grey baseline, separated from it by
|
|
322
|
+
// chroma alone
|
|
323
|
+
// #f582c0 L* 68.9 C* 52.7 h 346 this
|
|
324
|
+
//
|
|
325
|
+
// The third is the one to understand, because it looks like the fix and is the
|
|
326
|
+
// reason this comment is long. It maximised the distance from red by spending
|
|
327
|
+
// the entire budget, so it arrived at the grey. Measured against that grey it
|
|
328
|
+
// is dE 28.6, the closest any categorized slot comes -- and the margin is pure
|
|
329
|
+
// chroma, which is the weakest channel there is on a 1px arc stroke. It is also
|
|
330
|
+
// contrast 1.56 against paper, against grey's own 1.50: a short-insert arc was
|
|
331
|
+
// very nearly as faint as the concordant ones it had to be picked out from.
|
|
332
|
+
// Reported as "i cant see pink short insert on grey very well", which is
|
|
333
|
+
// exactly what those two numbers say.
|
|
334
|
+
//
|
|
335
|
+
// dE vs red dE vs grey contrast on paper
|
|
336
|
+
// #ffbcd8 (was) 93.4 28.6 1.56
|
|
337
|
+
// #f582c0 (this) 86.2 54.9 2.38
|
|
338
|
+
//
|
|
339
|
+
// So: 15.7 L* from red -- three times the gap the rejected saturated value had,
|
|
340
|
+
// on the axis that review was about -- while nearly doubling the separation
|
|
341
|
+
// from grey and half again the contrast against the page. Hue 346 keeps it on
|
|
342
|
+
// the magenta side of red rather than #ffc0cb's hue 8, so what lightness cannot
|
|
343
|
+
// finish, hue does.
|
|
344
|
+
//
|
|
345
|
+
// Both neighbours have to be re-checked together if this is touched again. It
|
|
346
|
+
// is also a READ FILL, not only an arc stroke, so a value has to survive being
|
|
347
|
+
// a large flat area as well as a hairline; C* 52.7 puts it in the same band as
|
|
348
|
+
// colorPairLL (52.0) and colorSupplementary (42.1) rather than shouting past
|
|
349
|
+
// them.
|
|
350
|
+
export const colorShortInsert = '#f582c0';
|
|
351
|
+
/**
|
|
352
|
+
* #color alignments-pair-orientation | Mate unmapped | The other end of the pair aligned nowhere, so orientation and insert size say nothing
|
|
353
|
+
* #color alignments-insert-size | Mate unmapped | The other end of the pair aligned nowhere, so insert size says nothing
|
|
354
|
+
*/
|
|
355
|
+
// A NON-COLOUR, at the dark end of the neutral scale on BOTH themes. It takes
|
|
356
|
+
// the first half of the `readOverlap` pattern and not the second, and that split
|
|
357
|
+
// is the thing to understand here.
|
|
358
|
+
//
|
|
359
|
+
// The half it takes is the reason that note gives for being a neutral at all:
|
|
360
|
+
// "no read color is the honest answer there, which is the whole reason the span
|
|
361
|
+
// is marked". An unmapped mate is the same kind of fact — nothing about the
|
|
362
|
+
// pair's geometry is answerable, so a hue would claim a category where there is
|
|
363
|
+
// an absence. This slot briefly took a teal in the last free hue region, which
|
|
364
|
+
// worked on every number and was the wrong answer: rendered against a pileup a
|
|
365
|
+
// hue reads as one more findable category beside the green LL and blue RR bars,
|
|
366
|
+
// where a neutral reads as a mark that is deliberately not one of them.
|
|
367
|
+
//
|
|
368
|
+
// The half it does NOT take is the inversion, and the difference is EXTENT.
|
|
369
|
+
// Overlap marks a SPAN INSIDE a read, so a charcoal span on a dark track is a
|
|
370
|
+
// gap in a mark that should be continuous — the read looks cut, which is a claim
|
|
371
|
+
// about the data. This fills a WHOLE read, which has its own boundary and the
|
|
372
|
+
// rows above and below it, so a dark grey reads as a dim read and not as a hole.
|
|
373
|
+
//
|
|
374
|
+
// So the statement is the same on both themes and only the room differs:
|
|
375
|
+
//
|
|
376
|
+
// on #ffffff #000000 contrast 21.0. The extreme is free, because dE 36.1
|
|
377
|
+
// from `readOverlap` #555555 is the only other dark
|
|
378
|
+
// neutral a read fill sits beside. Near-black is not
|
|
379
|
+
// free: #2e2e2e is dE 17.2 from that charcoal and
|
|
380
|
+
// #3d3d3d is 10.4, so on this ground it is the extreme
|
|
381
|
+
// or nothing.
|
|
382
|
+
// on #121212 #4a4a4a contrast 2.11. Here the extreme collides with the
|
|
383
|
+
// GROUND — black is 1.12 against it and so is #1e1e1e,
|
|
384
|
+
// i.e. everything from black up to #1e1e1e sits inside
|
|
385
|
+
// the ground's own noise and paints a hole. So the value
|
|
386
|
+
// walks up the same axis exactly as far as it takes to be
|
|
387
|
+
// a block and stops, at L* 31.5, still the darkest fill
|
|
388
|
+
// in either scheme by 9.7 L* (`colorPairRR` is next).
|
|
389
|
+
//
|
|
390
|
+
// Judged as a swatch #3a3a3a also clears the ground, at 1.65. Rendered as a
|
|
391
|
+
// pileup it does not: at a 4 px row height it carries the same weight as the
|
|
392
|
+
// gaps between rows and cannot be found. A few px of row is what a value here
|
|
393
|
+
// has to survive, not a 40 px square.
|
|
394
|
+
//
|
|
395
|
+
// The nearest dark-mode neighbour is the coverage histogram's grey[700] #616161
|
|
396
|
+
// at dE 9.7, which is not a collision in the sense the numbers above are about:
|
|
397
|
+
// coverage is a bar in a different subtrack, never a fill a read can take, so
|
|
398
|
+
// nothing is ever read against it.
|
|
399
|
+
//
|
|
400
|
+
// White was the previous dark value, and it reads as the loudest thing in a dark
|
|
401
|
+
// pileup — louder than the coloured categories it is meant to be quieter than —
|
|
402
|
+
// which is the "glaring near-white blocks" failure `colorPairLRDark` already
|
|
403
|
+
// exists to avoid. Going dark also drops the one real cost white carried, dE 9.4
|
|
404
|
+
// to `readOverlap`'s dark #e4e4e4 — which the note that shipped it called dE 7,
|
|
405
|
+
// wrongly: #e4e4e4 is L* 90.5 and white is L* 100, on a pair separated by
|
|
406
|
+
// lightness alone.
|
|
407
|
+
//
|
|
408
|
+
// The dark end is affordable at all because this slot has the loosest
|
|
409
|
+
// requirements in the palette: it is a READ FILL ONLY, in neither
|
|
410
|
+
// `ARC_SLOT_CATEGORY` nor `LINKED_READ_SLOT_CATEGORY`, so it never has to
|
|
411
|
+
// survive a hairline stroke.
|
|
412
|
+
//
|
|
413
|
+
// IGV goes further than any of this: `setPairOrientation` requires
|
|
414
|
+
// `mate.isMapped()`, so an unmapped mate falls through every branch and takes
|
|
415
|
+
// the default read colour. Going that far loses the one thing the category is
|
|
416
|
+
// for — under insert size, tlen is 0 and would otherwise paint
|
|
417
|
+
// `colorShortInsert`, a false claim — so it keeps a mark, and makes the mark a
|
|
418
|
+
// non-colour.
|
|
419
|
+
export const colorUnmappedMate = '#000000';
|
|
420
|
+
// See colorUnmappedMate: the same dark neutral, lifted off the #121212 ground by
|
|
421
|
+
// the least that still reads as a read rather than as a hole.
|
|
422
|
+
export const colorUnmappedMateDark = '#4a4a4a';
|
|
423
|
+
export const colorLongreadInv = '#7755bb';
|
|
424
|
+
/** #color alignments-pair-orientation | Split paired-end read (inverted) | A paired read's supplementary segment maps opposite-strand to its primary, so the junction is inverted — an inversion or an inverted duplication */
|
|
425
|
+
export const colorSplitReadInversion = '#9b30b0';
|
|
426
|
+
export const colorSupplementary = '#f0b878';
|
|
427
|
+
// Qualitative palette for coloring reads by an arbitrary tag value (e.g. the HP
|
|
428
|
+
// haplotype tag). Pale "tol_light" scheme:
|
|
429
|
+
// https://cran.r-project.org/web/packages/khroma/vignettes/tol.html
|
|
430
|
+
export const tagColorPalette = [
|
|
431
|
+
'#BBCCEE',
|
|
432
|
+
'pink',
|
|
433
|
+
'#CCDDAA',
|
|
434
|
+
'#EEEEBB',
|
|
435
|
+
'#FFCCCC',
|
|
436
|
+
'lightblue',
|
|
437
|
+
'lightgreen',
|
|
438
|
+
'tan',
|
|
439
|
+
'#CCEEFF',
|
|
440
|
+
'lightsalmon',
|
|
441
|
+
];
|
|
442
|
+
/**
|
|
443
|
+
* #color theme-colors | Feature (default) | A feature with no color of its own — no `color` slot, no BED itemRgb
|
|
444
|
+
*
|
|
445
|
+
* What an uncolored feature is painted. Lives here rather than in the display
|
|
446
|
+
* that draws most of them because it is not one display's default: the
|
|
447
|
+
* single-feature variant display resolves it through `plugins/canvas`, and the
|
|
448
|
+
* multi-sample variant display's lane bakes it into the color array its worker
|
|
449
|
+
* ships. Two copies of a color two displays are supposed to agree on is exactly
|
|
450
|
+
* the "never a fallback copy" this module exists to prevent.
|
|
451
|
+
*/
|
|
452
|
+
export const featureDefaultColor = 'goldenrod';
|
|
453
|
+
/**
|
|
454
|
+
* #color theme-colors | UTR (default) | The untranslated ends of a gene glyph when no `utrColor` slot is set
|
|
455
|
+
*
|
|
456
|
+
* Same reasoning as featureDefaultColor: the canvas gene track and the
|
|
457
|
+
* multi-way synteny lanes both draw UTRs, and the two must be the same blue or
|
|
458
|
+
* a lane's gene models read as a different annotation from the gene track
|
|
459
|
+
* above them.
|
|
460
|
+
*/
|
|
461
|
+
export const utrDefaultColor = '#357089';
|
|
462
|
+
/** #color theme-methylation | methylated5mC | 5-methylcytosine, methylated */
|
|
463
|
+
export const methylated5mC = '#ff0000';
|
|
464
|
+
/** #color theme-methylation | unmethylated5mC | 5-methylcytosine, unmethylated */
|
|
465
|
+
export const unmethylated5mC = '#0000ff';
|
|
466
|
+
/** #color theme-methylation | methylated5hmC | 5-hydroxymethylcytosine, methylated */
|
|
467
|
+
export const methylated5hmC = '#ffc0cb';
|
|
468
|
+
/** #color theme-colors | Stop codon | Stop codon in gene/CDS tracks */
|
|
469
|
+
const stopCodon = '#e22';
|
|
470
|
+
/** #color theme-colors | Start codon | Start codon in gene/CDS tracks */
|
|
471
|
+
const startCodon = '#3e3';
|
|
472
|
+
/** #color maf | Nonsynonymous codon | MAF codon view: the species' amino acid differs from the reference (nonsynonymous) */
|
|
473
|
+
const codonNonsynonymous = '#e8930c';
|
|
474
|
+
/** #color maf | Synonymous codon | MAF codon view: the codon differs from the reference but the amino acid is unchanged (silent) */
|
|
475
|
+
const codonSynonymous = '#3a7bd5';
|
|
476
|
+
/** #color maf | Codon stop | MAF codon view: a stop codon */
|
|
477
|
+
const codonStop = '#cc2222';
|
|
478
|
+
/** #color alignments-indicators | Insertion | Reads carry an insertion relative to the reference */
|
|
479
|
+
const insertion = '#800080';
|
|
480
|
+
/** #color theme-colors | Deletion | Deletion markers in alignments */
|
|
481
|
+
const deletion = '#808080';
|
|
482
|
+
/** #color alignments-indicators | Soft clip | Reads are soft-clipped (clipped bases retained in the read) */
|
|
483
|
+
const softclip = '#00f';
|
|
484
|
+
/** #color alignments-indicators | Hard clip | Reads are hard-clipped (clipped bases removed from the read) */
|
|
485
|
+
const hardclip = '#f00';
|
|
486
|
+
/** #color theme-colors | Skip (intron) | Skipped regions such as introns in RNA-seq reads */
|
|
487
|
+
const skip = '#009a8a';
|
|
488
|
+
/**
|
|
489
|
+
* #color alignments-indicators | Overlapping segments of one molecule | Both reads of a pair, or both arms of a split read, align here — so the junction between them is this span rather than a point
|
|
490
|
+
*
|
|
491
|
+
* Deliberately NOT a hue, and deliberately outside the categorical greys.
|
|
492
|
+
* Without a mark the two segments paint over each other and the display shows a
|
|
493
|
+
* clean junction at whichever coordinate the later one starts, which is a
|
|
494
|
+
* precise claim about a breakpoint that the data does not make. Painting the
|
|
495
|
+
* span as a darker version of either segment's color says "more of that one",
|
|
496
|
+
* which is the same lie louder — on a foldback the arms are opposite-strand
|
|
497
|
+
* red and blue, and darkening whichever drew last reads as extra-inverted.
|
|
498
|
+
*
|
|
499
|
+
* So the value has one job: read as NEITHER segment. Every categorized grey in
|
|
500
|
+
* the alignments vocabulary is light (`colorPairLR` #d3d3d3, `colorNeutralRead`
|
|
501
|
+
* #c8c8c8, and `colorPairLRDark` #8a8a8a on the dark theme), so this sits past
|
|
502
|
+
* the dark end of them in light mode and past the light end in dark mode,
|
|
503
|
+
* which is also why it inverts rather than dimming: on a dark track background
|
|
504
|
+
* a charcoal span is the background showing through, i.e. a gap where the mark
|
|
505
|
+
* should be.
|
|
506
|
+
*/
|
|
507
|
+
const readOverlap = '#555555';
|
|
508
|
+
/** #color theme-colors | Base modification (fwd) | Base modifications on the forward strand */
|
|
509
|
+
const modificationFwd = '#c8c8c8';
|
|
510
|
+
/** #color theme-colors | Base modification (rev) | Base modifications on the reverse strand */
|
|
511
|
+
const modificationRev = '#c8dcc8';
|
|
512
|
+
/** #color theme-colors | Muted SNP base | SNP bases muted when show-modifications coloring is on */
|
|
513
|
+
const mutedSnpBase = '#888';
|
|
514
|
+
// MAF bridged-row fill where the species has no alignment (à la UCSC)
|
|
515
|
+
const missingData = '#ffffcc';
|
|
516
|
+
const lightStringColors = {
|
|
517
|
+
stopCodon,
|
|
518
|
+
startCodon,
|
|
519
|
+
codonNonsynonymous,
|
|
520
|
+
codonSynonymous,
|
|
521
|
+
codonStop,
|
|
522
|
+
coverage: grey[400],
|
|
523
|
+
insertion,
|
|
524
|
+
deletion,
|
|
525
|
+
readOverlap,
|
|
526
|
+
softclip,
|
|
527
|
+
hardclip,
|
|
528
|
+
skip,
|
|
529
|
+
modificationFwd,
|
|
530
|
+
modificationRev,
|
|
531
|
+
mutedSnpBase,
|
|
532
|
+
missingData,
|
|
533
|
+
// vertical gridlines behind the genome
|
|
534
|
+
gridlineMinor: 'rgba(0,0,0,0.12)',
|
|
535
|
+
gridlineMajor: 'rgba(0,0,0,0.26)',
|
|
536
|
+
// a plot area's own coordinate grid, and the region boundary that has to read
|
|
537
|
+
// as a landmark through it — three steps apart on purpose, so the boundary is
|
|
538
|
+
// never mistaken for a major and the grid stays under the data
|
|
539
|
+
plotGridlineMinor: 'rgba(0,0,0,0.06)',
|
|
540
|
+
plotGridlineMajor: 'rgba(0,0,0,0.13)',
|
|
541
|
+
regionBoundary: 'rgba(0,0,0,0.42)',
|
|
542
|
+
// hover shading over a feature
|
|
543
|
+
featureHover: 'rgba(0,0,0,0.15)',
|
|
544
|
+
// stronger shade for a hovered group (e.g. a linked-read chain), so the group
|
|
545
|
+
// reads more prominently than a single-feature hover
|
|
546
|
+
featureHoverStrong: 'rgba(0,0,0,0.4)',
|
|
547
|
+
// border accent around the click-selected feature
|
|
548
|
+
featureSelected: 'rgba(0,100,255,0.8)',
|
|
549
|
+
// blue accent for feature description labels (e.g. gene descriptions)
|
|
550
|
+
featureDescription: 'blue',
|
|
551
|
+
};
|
|
552
|
+
// Dark overrides. White-on-dark reads far stronger than dark-on-white at the
|
|
553
|
+
// same alpha, so the gridlines and hover shades are gentler and inverted rather
|
|
554
|
+
// than reused, and the colors that would otherwise vanish are lightened.
|
|
555
|
+
const darkStringColors = {
|
|
556
|
+
coverage: grey[700],
|
|
557
|
+
gridlineMinor: 'rgba(255,255,255,0.06)',
|
|
558
|
+
gridlineMajor: 'rgba(255,255,255,0.15)',
|
|
559
|
+
plotGridlineMinor: 'rgba(255,255,255,0.05)',
|
|
560
|
+
plotGridlineMajor: 'rgba(255,255,255,0.1)',
|
|
561
|
+
regionBoundary: 'rgba(255,255,255,0.3)',
|
|
562
|
+
featureHover: 'rgba(255,255,255,0.25)',
|
|
563
|
+
featureHoverStrong: 'rgba(255,255,255,0.4)',
|
|
564
|
+
featureSelected: 'rgba(120,180,255,0.9)',
|
|
565
|
+
// plain CSS 'blue' reads as near-black against a dark track
|
|
566
|
+
featureDescription: blue[300],
|
|
567
|
+
// the deletion rect replaces the read on the dark track background, where the
|
|
568
|
+
// mid-grey #808080 reads as a muddy block, so lighten it
|
|
569
|
+
deletion: '#c8c8c8',
|
|
570
|
+
// inverted rather than dimmed, for the reason on the light value: the mark
|
|
571
|
+
// has to be the one neutral no read category paints, and on a dark track that
|
|
572
|
+
// is the light end. Clear of the dark theme's own `colorPairLRDark` #8a8a8a
|
|
573
|
+
// and of `colorNostrand` #c8c8c8, the two lightest fills it can land beside.
|
|
574
|
+
readOverlap: '#e4e4e4',
|
|
575
|
+
};
|
|
576
|
+
const lightAlignmentFill = {
|
|
577
|
+
pairLR: colorPairLR,
|
|
578
|
+
pairRL: colorPairRL,
|
|
579
|
+
pairLL: colorPairLL,
|
|
580
|
+
pairRR: colorPairRR,
|
|
581
|
+
unmappedMate: colorUnmappedMate,
|
|
582
|
+
};
|
|
583
|
+
// pairLR because the light #d3d3d3 reads as glaring near-white blocks;
|
|
584
|
+
// unmappedMate because its black is inside the #121212 ground's own noise and
|
|
585
|
+
// paints a hole (see its own note)
|
|
586
|
+
const darkAlignmentFill = {
|
|
587
|
+
...lightAlignmentFill,
|
|
588
|
+
pairLR: colorPairLRDark,
|
|
589
|
+
unmappedMate: colorUnmappedMateDark,
|
|
590
|
+
};
|
|
591
|
+
// ---------------------------------------------------------------------------
|
|
592
|
+
// Brand colors
|
|
593
|
+
// ---------------------------------------------------------------------------
|
|
594
|
+
const midnight = '#0D233F';
|
|
595
|
+
const grape = '#721E63';
|
|
596
|
+
const forest = '#135560';
|
|
597
|
+
const mandarin = '#FFB11D';
|
|
598
|
+
const textHighlightYellow = '#ffe066';
|
|
599
|
+
const lightgrey = '#aaa';
|
|
600
|
+
const defaultBases = {
|
|
601
|
+
A: green,
|
|
602
|
+
C: blue,
|
|
603
|
+
G: orange,
|
|
604
|
+
T: red,
|
|
605
|
+
// N / ambiguous bases: muted brown, a distinct hue so it never blends into
|
|
606
|
+
// the grey coverage histogram the way mutedSnpBase does
|
|
607
|
+
N: brown,
|
|
608
|
+
};
|
|
609
|
+
const defaultFramesCDS = [
|
|
610
|
+
null,
|
|
611
|
+
{ main: '#FF8080' },
|
|
612
|
+
{ main: '#80FF80' },
|
|
613
|
+
{ main: '#8080FF' },
|
|
614
|
+
{ main: '#8080FF' },
|
|
615
|
+
{ main: '#80FF80' },
|
|
616
|
+
{ main: '#FF8080' },
|
|
617
|
+
];
|
|
618
|
+
const defaultFrames = [
|
|
619
|
+
null,
|
|
620
|
+
{ main: '#8f8f8f' },
|
|
621
|
+
{ main: '#adadad' },
|
|
622
|
+
{ main: '#d8d8d8' },
|
|
623
|
+
{ main: '#d8d8d8' },
|
|
624
|
+
{ main: '#adadad' },
|
|
625
|
+
{ main: '#8f8f8f' },
|
|
626
|
+
];
|
|
627
|
+
/**
|
|
628
|
+
* The palette half of the built-in themes. `theme.ts` composes these with the
|
|
629
|
+
* display names and MUI component overrides that make up `defaultThemes`, so
|
|
630
|
+
* the preset colors are stated once.
|
|
631
|
+
*/
|
|
632
|
+
// The JBrowse-branded colors every built-in preset starts from. Deliberately
|
|
633
|
+
// does NOT carry the string colors or alignmentFill: those have light and dark
|
|
634
|
+
// variants that `resolvePalette` picks off `mode`, and baking the light ones in
|
|
635
|
+
// here would shadow the dark set for any theme built on top.
|
|
636
|
+
const brandDefaults = {
|
|
637
|
+
primary: { main: midnight },
|
|
638
|
+
secondary: { main: grape },
|
|
639
|
+
tertiary: { main: forest },
|
|
640
|
+
quaternary: { main: mandarin },
|
|
641
|
+
highlight: { main: mandarin },
|
|
642
|
+
textHighlight: { main: textHighlightYellow },
|
|
643
|
+
bases: defaultBases,
|
|
644
|
+
frames: defaultFrames,
|
|
645
|
+
framesCDS: defaultFramesCDS,
|
|
646
|
+
};
|
|
647
|
+
export const palettePresets = {
|
|
648
|
+
default: { ...brandDefaults },
|
|
649
|
+
lightStock: { ...brandDefaults },
|
|
650
|
+
lightMinimal: {
|
|
651
|
+
...brandDefaults,
|
|
652
|
+
primary: { main: grey[900] },
|
|
653
|
+
secondary: { main: grey[800] },
|
|
654
|
+
tertiary: { main: grey[900] },
|
|
655
|
+
},
|
|
656
|
+
// the dark presets change only `mode` on top of the brand colors, and the
|
|
657
|
+
// dark-tuned gridlines, hover, coverage and alignmentFill follow from it
|
|
658
|
+
darkMinimal: {
|
|
659
|
+
...brandDefaults,
|
|
660
|
+
mode: 'dark',
|
|
661
|
+
primary: { main: grey[700] },
|
|
662
|
+
secondary: { main: grey[800] },
|
|
663
|
+
tertiary: { main: grey[900] },
|
|
664
|
+
},
|
|
665
|
+
darkStock: {
|
|
666
|
+
...brandDefaults,
|
|
667
|
+
mode: 'dark',
|
|
668
|
+
},
|
|
669
|
+
};
|
|
670
|
+
/**
|
|
671
|
+
* Resolve a frame tuple. A theme's tuple replaces the default wholesale rather
|
|
672
|
+
* than splicing entry by entry onto stale shades, so slots it leaves out are
|
|
673
|
+
* filled from the default here. Consumers index by frame number and assume
|
|
674
|
+
* every slot resolves.
|
|
675
|
+
*/
|
|
676
|
+
function resolveFrames(entry, fallback) {
|
|
677
|
+
const source = entry ?? fallback;
|
|
678
|
+
return [
|
|
679
|
+
null,
|
|
680
|
+
...[1, 2, 3, 4, 5, 6].map(i => {
|
|
681
|
+
const value = source[i] ?? fallback[i];
|
|
682
|
+
return value === undefined ? undefined : augmentColor(value);
|
|
683
|
+
}),
|
|
684
|
+
];
|
|
685
|
+
}
|
|
686
|
+
/**
|
|
687
|
+
* Build the palette for a set of theme arguments.
|
|
688
|
+
*
|
|
689
|
+
* Only the `default` theme draws from `configTheme`. Every other named theme is
|
|
690
|
+
* a fixed preset and intentionally ignores it, which is what the picker entry
|
|
691
|
+
* "Default (from config)" means. Do not "fix" that.
|
|
692
|
+
*/
|
|
693
|
+
export function resolvePalette(args = {}) {
|
|
694
|
+
const { configTheme, themeName = 'default', extraThemes } = args;
|
|
695
|
+
const presets = {
|
|
696
|
+
...palettePresets,
|
|
697
|
+
...Object.fromEntries(Object.entries(extraThemes ?? {}).map(([k, v]) => [k, v.palette ?? {}])),
|
|
698
|
+
};
|
|
699
|
+
const preset = presets[themeName] ?? presets.default ?? {};
|
|
700
|
+
const input = themeName === 'default' ? { ...preset, ...configTheme?.palette } : preset;
|
|
701
|
+
const mode = input.mode ?? 'light';
|
|
702
|
+
const isDark = mode === 'dark';
|
|
703
|
+
const neutrals = isDark ? darkNeutrals : lightNeutrals;
|
|
704
|
+
const brandFallback = isDark ? darkBrandFallback : lightBrandFallback;
|
|
705
|
+
const semantics = isDark ? darkSemantics : lightSemantics;
|
|
706
|
+
const strings = {
|
|
707
|
+
...lightStringColors,
|
|
708
|
+
...(isDark ? darkStringColors : {}),
|
|
709
|
+
};
|
|
710
|
+
for (const key of Object.keys(strings)) {
|
|
711
|
+
const override = input[key];
|
|
712
|
+
if (override !== undefined) {
|
|
713
|
+
strings[key] = override;
|
|
714
|
+
}
|
|
715
|
+
}
|
|
716
|
+
return {
|
|
717
|
+
...strings,
|
|
718
|
+
mode,
|
|
719
|
+
text: { ...neutrals.text, ...input.text },
|
|
720
|
+
background: { ...neutrals.background, ...input.background },
|
|
721
|
+
divider: input.divider ?? neutrals.divider,
|
|
722
|
+
common: { ...neutrals.common, ...input.common },
|
|
723
|
+
grey: { ...neutrals.grey, ...input.grey },
|
|
724
|
+
action: { ...neutrals.action, ...input.action },
|
|
725
|
+
primary: augmentColor(input.primary ?? brandFallback.primary),
|
|
726
|
+
secondary: augmentColor(input.secondary ?? brandFallback.secondary),
|
|
727
|
+
error: augmentColor(input.error ?? semantics.error),
|
|
728
|
+
warning: augmentColor(input.warning ?? semantics.warning),
|
|
729
|
+
info: augmentColor(input.info ?? semantics.info),
|
|
730
|
+
success: augmentColor(input.success ?? semantics.success),
|
|
731
|
+
tertiary: augmentColor(input.tertiary ?? lightgrey),
|
|
732
|
+
quaternary: augmentColor(input.quaternary ?? lightgrey),
|
|
733
|
+
highlight: augmentColor(input.highlight ?? { main: mandarin }),
|
|
734
|
+
textHighlight: augmentColor(input.textHighlight ?? { main: textHighlightYellow }),
|
|
735
|
+
bases: Object.fromEntries(['A', 'C', 'G', 'T', 'N'].map(key => [
|
|
736
|
+
key,
|
|
737
|
+
augmentColor(input.bases?.[key] ?? defaultBases[key]),
|
|
738
|
+
])),
|
|
739
|
+
frames: resolveFrames(input.frames, defaultFrames),
|
|
740
|
+
framesCDS: resolveFrames(input.framesCDS, defaultFramesCDS),
|
|
741
|
+
alignmentFill: {
|
|
742
|
+
...(isDark ? darkAlignmentFill : lightAlignmentFill),
|
|
743
|
+
...input.alignmentFill,
|
|
744
|
+
},
|
|
745
|
+
};
|
|
746
|
+
}
|