@jbrowse/core 4.3.0 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +390 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -1,103 +1,80 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const { offsetPx, displayedRegions, bpPerPx, minimumBlockWidth, interRegionPaddingWidth, width: modelWidth, } = model;
|
|
1
|
+
import { BlockSet } from './blockTypes.js';
|
|
2
|
+
const blockSizeCssPx = 800;
|
|
3
|
+
export default function calculateStaticBlocks(model, padding = true, elision = true) {
|
|
4
|
+
const { offsetPx, displayedRegions, bpPerPx, minimumBlockWidth, width: modelWidth, } = model;
|
|
6
5
|
const windowLeftBp = offsetPx * bpPerPx;
|
|
7
6
|
const windowRightBp = (offsetPx + modelWidth) * bpPerPx;
|
|
8
|
-
const
|
|
9
|
-
const blockSizeBp = Math.ceil(blockSizePx * bpPerPx);
|
|
7
|
+
const blockSizeBp = Math.ceil(blockSizeCssPx * bpPerPx);
|
|
10
8
|
const invBpPerPx = 1 / bpPerPx;
|
|
11
9
|
const invBlockSizeBp = 1 / blockSizeBp;
|
|
12
10
|
let regionBpOffset = 0;
|
|
13
11
|
const blocks = new BlockSet();
|
|
14
|
-
for (let
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
let windowLeftBlockNum = Math.floor((windowLeftBp - regionBpOffset) * invBlockSizeBp) - extra;
|
|
24
|
-
if (windowLeftBlockNum < 0) {
|
|
25
|
-
windowLeftBlockNum = 0;
|
|
12
|
+
for (let displayedRegionIndex = 0; displayedRegionIndex < displayedRegions.length; displayedRegionIndex++) {
|
|
13
|
+
// Regions are laid out left to right, so once the cursor passes the window's
|
|
14
|
+
// right edge nothing further can contribute a block — and the trailing
|
|
15
|
+
// padding block needs the last region to be in view anyway. A whole-genome
|
|
16
|
+
// view holds one region per refName, so without this the loop (and its five
|
|
17
|
+
// MST observable reads per region) runs thousands of times per zoom frame to
|
|
18
|
+
// emit a handful of blocks.
|
|
19
|
+
if (regionBpOffset > windowRightBp) {
|
|
20
|
+
break;
|
|
26
21
|
}
|
|
22
|
+
const { assemblyName, refName, start: regionStart, end: regionEnd, reversed, } = displayedRegions[displayedRegionIndex];
|
|
23
|
+
const regionBlockCount = Math.ceil((regionEnd - regionStart) * invBlockSizeBp);
|
|
24
|
+
const windowRightBlockNum = Math.min(Math.floor((windowRightBp - regionBpOffset) * invBlockSizeBp), regionBlockCount - 1);
|
|
25
|
+
const windowLeftBlockNum = Math.max(Math.floor((windowLeftBp - regionBpOffset) * invBlockSizeBp), 0);
|
|
27
26
|
const regionWidthPx = (regionEnd - regionStart) * invBpPerPx;
|
|
28
|
-
for (let blockNum = windowLeftBlockNum; blockNum <= windowRightBlockNum; blockNum
|
|
27
|
+
for (let blockNum = windowLeftBlockNum; blockNum <= windowRightBlockNum; blockNum++) {
|
|
28
|
+
const isLeftEndOfDisplayedRegion = blockNum === 0;
|
|
29
|
+
const isRightEndOfDisplayedRegion = blockNum === regionBlockCount - 1;
|
|
29
30
|
let start;
|
|
30
31
|
let end;
|
|
31
|
-
let isLeftEndOfDisplayedRegion;
|
|
32
|
-
let isRightEndOfDisplayedRegion;
|
|
33
32
|
if (reversed) {
|
|
34
33
|
start = Math.max(regionStart, regionEnd - (blockNum + 1) * blockSizeBp);
|
|
35
34
|
end = regionEnd - blockNum * blockSizeBp;
|
|
36
|
-
isLeftEndOfDisplayedRegion = end === regionEnd;
|
|
37
|
-
isRightEndOfDisplayedRegion = start === regionStart;
|
|
38
35
|
}
|
|
39
36
|
else {
|
|
40
37
|
start = regionStart + blockNum * blockSizeBp;
|
|
41
38
|
end = Math.min(regionEnd, regionStart + (blockNum + 1) * blockSizeBp);
|
|
42
|
-
isLeftEndOfDisplayedRegion = start === regionStart;
|
|
43
|
-
isRightEndOfDisplayedRegion = end === regionEnd;
|
|
44
39
|
}
|
|
45
40
|
const widthPx = (end - start) * invBpPerPx;
|
|
46
|
-
const
|
|
41
|
+
const blockOffsetPx = (regionBpOffset + blockNum * blockSizeBp) * invBpPerPx;
|
|
42
|
+
const key = `${assemblyName}:${refName}:${start}:${end}:${displayedRegionIndex}${reversed ? ':rev' : ''}`;
|
|
43
|
+
if (padding && displayedRegionIndex === 0 && blockNum === 0) {
|
|
44
|
+
blocks.push({
|
|
45
|
+
type: 'InterRegionPaddingBlock',
|
|
46
|
+
key: `${key}-beforeFirstRegion`,
|
|
47
|
+
widthPx: blockSizeCssPx,
|
|
48
|
+
offsetPx: blockOffsetPx - blockSizeCssPx,
|
|
49
|
+
variant: 'boundary',
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
const data = {
|
|
47
53
|
assemblyName,
|
|
48
54
|
refName,
|
|
49
55
|
start,
|
|
50
56
|
end,
|
|
51
57
|
reversed,
|
|
52
|
-
offsetPx:
|
|
53
|
-
|
|
54
|
-
regionNumber,
|
|
58
|
+
offsetPx: blockOffsetPx,
|
|
59
|
+
displayedRegionIndex,
|
|
55
60
|
widthPx,
|
|
56
61
|
isLeftEndOfDisplayedRegion,
|
|
57
62
|
isRightEndOfDisplayedRegion,
|
|
58
|
-
key
|
|
59
|
-
assemblyName,
|
|
60
|
-
refName,
|
|
61
|
-
start,
|
|
62
|
-
end,
|
|
63
|
-
reversed,
|
|
64
|
-
})}-${regionNumber}${reversed ? '-reversed' : ''}`,
|
|
63
|
+
key,
|
|
65
64
|
};
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
65
|
+
blocks.push(elision && regionWidthPx < minimumBlockWidth
|
|
66
|
+
? { ...data, type: 'ElidedBlock' }
|
|
67
|
+
: { ...data, type: 'ContentBlock' });
|
|
68
|
+
if (padding &&
|
|
69
|
+
displayedRegionIndex === displayedRegions.length - 1 &&
|
|
70
|
+
isRightEndOfDisplayedRegion) {
|
|
71
|
+
blocks.push({
|
|
72
|
+
type: 'InterRegionPaddingBlock',
|
|
73
|
+
key: `${key}-afterLastRegion`,
|
|
74
|
+
widthPx: blockSizeCssPx,
|
|
75
|
+
offsetPx: blockOffsetPx + widthPx,
|
|
71
76
|
variant: 'boundary',
|
|
72
|
-
})
|
|
73
|
-
}
|
|
74
|
-
if (elision && regionWidthPx < minimumBlockWidth) {
|
|
75
|
-
blocks.push(new ElidedBlock(blockData));
|
|
76
|
-
}
|
|
77
|
-
else {
|
|
78
|
-
blocks.push(new ContentBlock(blockData));
|
|
79
|
-
}
|
|
80
|
-
if (padding) {
|
|
81
|
-
if (regionWidthPx >= minimumBlockWidth &&
|
|
82
|
-
blockData.isRightEndOfDisplayedRegion &&
|
|
83
|
-
regionNumber < displayedRegions.length - 1) {
|
|
84
|
-
regionBpOffset += interRegionPaddingWidth * bpPerPx;
|
|
85
|
-
blocks.push(new InterRegionPaddingBlock({
|
|
86
|
-
key: `${blockData.key}-rightpad`,
|
|
87
|
-
widthPx: interRegionPaddingWidth,
|
|
88
|
-
offsetPx: blockData.offsetPx + blockData.widthPx,
|
|
89
|
-
}));
|
|
90
|
-
}
|
|
91
|
-
if (regionNumber === displayedRegions.length - 1 &&
|
|
92
|
-
blockData.isRightEndOfDisplayedRegion) {
|
|
93
|
-
regionBpOffset += interRegionPaddingWidth * bpPerPx;
|
|
94
|
-
blocks.push(new InterRegionPaddingBlock({
|
|
95
|
-
key: `${blockData.key}-afterLastRegion`,
|
|
96
|
-
widthPx: width,
|
|
97
|
-
offsetPx: blockData.offsetPx + blockData.widthPx,
|
|
98
|
-
variant: 'boundary',
|
|
99
|
-
}));
|
|
100
|
-
}
|
|
77
|
+
});
|
|
101
78
|
}
|
|
102
79
|
}
|
|
103
80
|
regionBpOffset += regionEnd - regionStart;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a scale ( bp/px ) and minimum distances (px) between major and minor
|
|
3
|
+
* gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
|
|
4
|
+
* the gridline pitches to use.
|
|
5
|
+
*/
|
|
6
|
+
export declare function chooseGridPitch(scale: number, minMajorPitchPx: number, minMinorPitchPx: number): {
|
|
7
|
+
majorPitch: number;
|
|
8
|
+
minorPitch: number;
|
|
9
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Given a scale ( bp/px ) and minimum distances (px) between major and minor
|
|
3
|
+
* gridlines, return an object like `{ majorPitch: bp, minorPitch: bp }` giving
|
|
4
|
+
* the gridline pitches to use.
|
|
5
|
+
*/
|
|
6
|
+
export function chooseGridPitch(scale, minMajorPitchPx, minMinorPitchPx) {
|
|
7
|
+
scale = Math.abs(scale);
|
|
8
|
+
const minMajorPitchBp = minMajorPitchPx * scale;
|
|
9
|
+
const majorMagnitude = +minMajorPitchBp.toExponential().split(/e/i, 2)[1];
|
|
10
|
+
let majorPitch = 10 ** majorMagnitude;
|
|
11
|
+
while (majorPitch < minMajorPitchBp) {
|
|
12
|
+
majorPitch *= 2;
|
|
13
|
+
if (majorPitch >= minMajorPitchBp) {
|
|
14
|
+
break;
|
|
15
|
+
}
|
|
16
|
+
majorPitch *= 2.5;
|
|
17
|
+
}
|
|
18
|
+
majorPitch = Math.max(majorPitch, 5);
|
|
19
|
+
const majorPitchPx = majorPitch / scale;
|
|
20
|
+
let minorPitch = 0;
|
|
21
|
+
if (!(majorPitch % 10) && majorPitchPx / 10 >= minMinorPitchPx) {
|
|
22
|
+
minorPitch = majorPitch / 10;
|
|
23
|
+
}
|
|
24
|
+
else if (!(majorPitch % 5) && majorPitchPx / 5 >= minMinorPitchPx) {
|
|
25
|
+
minorPitch = majorPitch / 5;
|
|
26
|
+
}
|
|
27
|
+
else if (!(majorPitch % 2) && majorPitchPx / 2 >= minMinorPitchPx) {
|
|
28
|
+
minorPitch = majorPitch / 2;
|
|
29
|
+
}
|
|
30
|
+
return { majorPitch, minorPitch };
|
|
31
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { Assembly } from '../assemblyManager/assembly.ts';
|
|
2
|
+
import type { Region } from './types/data.ts';
|
|
3
|
+
/**
|
|
4
|
+
* Clamp a span to the extents of the contig it names, resolving the refName to
|
|
5
|
+
* canonical on the way. Returns undefined when the clamp leaves nothing — the
|
|
6
|
+
* span lies wholly off the end of the contig.
|
|
7
|
+
*
|
|
8
|
+
* **The undefined is the point.** A one-sided clamp is the shape this keeps
|
|
9
|
+
* getting written as, and it inverts: a span past the contig end comes back with
|
|
10
|
+
* its end below its start, which every consumer that SUMS region lengths then
|
|
11
|
+
* subtracts. That is silent, and it happens for real, on a GFF3 or a BAM
|
|
12
|
+
* annotated against a longer assembly than the FASTA in use — which JBrowse
|
|
13
|
+
* otherwise just draws past the end of. Two callers wrote the one-sided version
|
|
14
|
+
* and only one of them ever guarded it.
|
|
15
|
+
*
|
|
16
|
+
* `start` is floored at 0 even when the contig extents are unknown (`regions`
|
|
17
|
+
* still loading, or a refName this assembly doesn't have), because interbase has
|
|
18
|
+
* no coordinate below 0 whatever the contig turns out to be. Only the high end
|
|
19
|
+
* needs a length to clamp against, so without one it is left alone — and with no
|
|
20
|
+
* high bound there is nothing to invert, so such a span always comes back.
|
|
21
|
+
*/
|
|
22
|
+
export declare function clampToContig(assembly: Assembly, region: {
|
|
23
|
+
refName: string;
|
|
24
|
+
start: number;
|
|
25
|
+
end: number;
|
|
26
|
+
}): Region | undefined;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Clamp a span to the extents of the contig it names, resolving the refName to
|
|
3
|
+
* canonical on the way. Returns undefined when the clamp leaves nothing — the
|
|
4
|
+
* span lies wholly off the end of the contig.
|
|
5
|
+
*
|
|
6
|
+
* **The undefined is the point.** A one-sided clamp is the shape this keeps
|
|
7
|
+
* getting written as, and it inverts: a span past the contig end comes back with
|
|
8
|
+
* its end below its start, which every consumer that SUMS region lengths then
|
|
9
|
+
* subtracts. That is silent, and it happens for real, on a GFF3 or a BAM
|
|
10
|
+
* annotated against a longer assembly than the FASTA in use — which JBrowse
|
|
11
|
+
* otherwise just draws past the end of. Two callers wrote the one-sided version
|
|
12
|
+
* and only one of them ever guarded it.
|
|
13
|
+
*
|
|
14
|
+
* `start` is floored at 0 even when the contig extents are unknown (`regions`
|
|
15
|
+
* still loading, or a refName this assembly doesn't have), because interbase has
|
|
16
|
+
* no coordinate below 0 whatever the contig turns out to be. Only the high end
|
|
17
|
+
* needs a length to clamp against, so without one it is left alone — and with no
|
|
18
|
+
* high bound there is nothing to invert, so such a span always comes back.
|
|
19
|
+
*/
|
|
20
|
+
export function clampToContig(assembly, region) {
|
|
21
|
+
const refName = assembly.getCanonicalRefName2(region.refName);
|
|
22
|
+
const bounds = assembly.getRegionForRefName(refName);
|
|
23
|
+
const start = Math.max(bounds?.start ?? 0, region.start);
|
|
24
|
+
const end = bounds ? Math.min(bounds.end, region.end) : region.end;
|
|
25
|
+
return end > start
|
|
26
|
+
? { ...region, assemblyName: assembly.name, refName, start, end }
|
|
27
|
+
: undefined;
|
|
28
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function cmpStr(a: string, b: string): number;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Deterministic, locale-independent string ordering. Returns 0 when equal so
|
|
2
|
+
// it chains with `||` in multi-key comparators. Prefer this over
|
|
3
|
+
// `localeCompare` wherever the order must be reproducible across environments
|
|
4
|
+
// (e.g. sort keys feeding deterministic worker output or screenshot renders).
|
|
5
|
+
export function cmpStr(a, b) {
|
|
6
|
+
return a < b ? -1 : a > b ? 1 : 0;
|
|
7
|
+
}
|
|
@@ -1,17 +1,5 @@
|
|
|
1
|
+
// not a sanitizer, this just removes html tags for use in measureText-based
|
|
2
|
+
// element width calculations
|
|
1
3
|
export function coarseStripHTML(s) {
|
|
2
|
-
|
|
3
|
-
let inTag = false;
|
|
4
|
-
for (let i = 0, l = s.length; i < l; i++) {
|
|
5
|
-
const char = s[i];
|
|
6
|
-
if (char === '<') {
|
|
7
|
-
inTag = true;
|
|
8
|
-
}
|
|
9
|
-
else if (char === '>') {
|
|
10
|
-
inTag = false;
|
|
11
|
-
}
|
|
12
|
-
else if (!inTag) {
|
|
13
|
-
result += char;
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
return result;
|
|
4
|
+
return s.replaceAll(/<[^<>]*>/g, '');
|
|
17
5
|
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
// from https://www.w3.org/TR/css-color-4/#named-colors
|
|
1
2
|
const colors = {
|
|
2
3
|
aliceblue: '#F0F8FF',
|
|
3
4
|
antiquewhite: '#FAEBD7',
|
|
@@ -148,9 +149,12 @@ const colors = {
|
|
|
148
149
|
yellow: '#FFFF00',
|
|
149
150
|
yellowgreen: '#9ACD32',
|
|
150
151
|
};
|
|
152
|
+
// Object.hasOwn rather than a bare index: the table is a plain object, so
|
|
153
|
+
// `colors.constructor` and `colors.toString` come back as functions typed
|
|
154
|
+
// `string`, and isNamedColor('toString') was true.
|
|
151
155
|
export function namedColorToHex(name) {
|
|
152
|
-
return colors[name];
|
|
156
|
+
return Object.hasOwn(colors, name) ? colors[name] : undefined;
|
|
153
157
|
}
|
|
154
158
|
export function isNamedColor(name) {
|
|
155
|
-
return
|
|
159
|
+
return Object.hasOwn(colors, name);
|
|
156
160
|
}
|
|
@@ -1,5 +1,84 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Darken or lighten a color, depending on its luminance.
|
|
3
|
+
* Light colors are darkened, dark colors are lightened.
|
|
4
|
+
*
|
|
5
|
+
* @param color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(),
|
|
6
|
+
* hsl(), hsla(), or named color
|
|
7
|
+
* @param coefficient - multiplier in the range 0 - 1, defaults to 0.15
|
|
8
|
+
* @returns A CSS color string. Hex input values are returned as rgb
|
|
9
|
+
*/
|
|
2
10
|
export declare function emphasize(color: string, coefficient?: number): string;
|
|
11
|
+
/**
|
|
12
|
+
* Push `foreground` away from `background` until it clears `minContrastRatio`,
|
|
13
|
+
* returning the closest it got when that ratio is unreachable.
|
|
14
|
+
*
|
|
15
|
+
* `minContrastRatio` genuinely cannot be met against a mid-luminance
|
|
16
|
+
* background: lighten/darken clamp their coefficient at 1, so the candidate
|
|
17
|
+
* pins at white/black, and against a `#b0b0b0` paper the best ratio any color
|
|
18
|
+
* reaches is about 2.2. This used to be a `while (ratio < min)` loop with an
|
|
19
|
+
* unbounded coefficient, which froze the render thread outright for 38 of the 40
|
|
20
|
+
* default refName colors.
|
|
21
|
+
*/
|
|
3
22
|
export declare function makeContrasting(foreground: string, background?: string, minContrastRatio?: number): string;
|
|
4
23
|
export { isNamedColor, namedColorToHex } from './cssColorsLevel4.ts';
|
|
5
|
-
|
|
24
|
+
/**
|
|
25
|
+
* #api
|
|
26
|
+
* Move a color's OKLCH lightness by `lightnessShift` and scale its chroma,
|
|
27
|
+
* holding its hue.
|
|
28
|
+
*
|
|
29
|
+
* For extending a categorical palette past its length. Cycling a nine-color
|
|
30
|
+
* list over a 24-chromosome karyotype repeats the color outright; cycling it
|
|
31
|
+
* with a lightness shift per lap gives the hue back as a variant still told
|
|
32
|
+
* apart from the original — tab20's construction, which pairs a light and a
|
|
33
|
+
* dark of each hue.
|
|
34
|
+
*
|
|
35
|
+
* SHIFT rather than a fixed lightness, and SCALE rather than a fixed chroma,
|
|
36
|
+
* because a categorical palette is uneven on purpose: category10's brown and
|
|
37
|
+
* its red are 5 degrees apart in hue and are told apart by chroma alone, so
|
|
38
|
+
* re-lighting both to one (lightness, chroma) makes them the same color.
|
|
39
|
+
* Keeping each color's own relative chroma keeps brown reading as brown.
|
|
40
|
+
*
|
|
41
|
+
* In OKLCH rather than through `lighten`/`darken`, which work in sRGB, where
|
|
42
|
+
* the same coefficient moves a yellow and a blue by visibly different amounts:
|
|
43
|
+
* a lap has to read as one tone across the whole palette or it reads as noise.
|
|
44
|
+
*
|
|
45
|
+
* @param color - CSS color to transform
|
|
46
|
+
* @param lightnessShift - added to its OKLCH lightness (which is 0 - 1)
|
|
47
|
+
* @param chromaScale - multiplies its OKLCH chroma; the result is reduced at
|
|
48
|
+
* constant hue if that lands out of gamut
|
|
49
|
+
* @returns A CSS hex color string
|
|
50
|
+
*/
|
|
51
|
+
export declare function relight(color: string, lightnessShift: number, chromaScale?: number): string;
|
|
52
|
+
/**
|
|
53
|
+
* Generate a consistent random color for a given string.
|
|
54
|
+
* The same string will always generate the same color, with no shared palette
|
|
55
|
+
* state — so the same value (e.g. a gene symbol used as an ortholog id) gets the
|
|
56
|
+
* same color across independent tracks/panels.
|
|
57
|
+
*
|
|
58
|
+
* Statelessness is why this hashes into a color space rather than indexing a
|
|
59
|
+
* fixed palette of N: with no allocator there is no "next unused color", so an
|
|
60
|
+
* N-color palette collides by the birthday problem — six values into a
|
|
61
|
+
* twenty-color palette collide more often than not — while a hue circle does
|
|
62
|
+
* not repeat until 360 values. What a curated palette actually buys is
|
|
63
|
+
* perceptual evenness, and that comes from the space, not the list: hues are
|
|
64
|
+
* placed in OKLCH at a fixed lightness and chroma, so every value is equally
|
|
65
|
+
* light and equally colorful. HSL, which this used to use, is neither — its
|
|
66
|
+
* hue wheel spends a quarter of itself on greens that look identical and a
|
|
67
|
+
* sliver on yellow, and at one lightness its yellows glare while its blues go
|
|
68
|
+
* murky. That unevenness is what reads as "random RGB".
|
|
69
|
+
*
|
|
70
|
+
* A value that is absent gets NO_CATEGORY_COLOR rather than a hue, and that is
|
|
71
|
+
* the difference between this being usable on real data and not. The everyday
|
|
72
|
+
* caller is the Color-by-attribute dialog, which writes
|
|
73
|
+
* `jexl:randomColor(get(feature,'<attr>'))` over a whole track — and most files
|
|
74
|
+
* have the attribute on some features and not others, so most of the time this
|
|
75
|
+
* is handed `undefined`. It used to throw on that (`str.length` of undefined),
|
|
76
|
+
* once per feature, and what a reader saw was every unlabelled feature in one
|
|
77
|
+
* strong color: a large fake category, drawn over the real ones. Grey says the
|
|
78
|
+
* only true thing about a feature with no value for the attribute you asked to
|
|
79
|
+
* colour by.
|
|
80
|
+
*
|
|
81
|
+
* @param str - The string to generate a color from
|
|
82
|
+
* @returns A CSS hex color string
|
|
83
|
+
*/
|
|
84
|
+
export declare function randomColor(str: string | undefined | null): string;
|
package/esm/util/color/index.js
CHANGED
|
@@ -1,39 +1,208 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
// The color math is `ui/palette.ts`'s, not Material UI's. Same values —
|
|
2
|
+
// `palette.test.ts` asserts them against a real MUI theme, and `emphasize` is
|
|
3
|
+
// checked against MUI's directly below — but this module is reached from a
|
|
4
|
+
// plugin's eagerly-evaluated code, and the MUI import made it one of the
|
|
5
|
+
// first-party edges keeping `@mui/material/styles` in every host's first paint.
|
|
6
|
+
// See agent-docs/reference/EAGER_BUNDLE.md.
|
|
7
|
+
import { darken, getContrastRatio, lighten, getLuminance as luminanceOf, } from '../../ui/palette.js';
|
|
8
|
+
import * as convert from '../color-bits/convert.js';
|
|
9
|
+
import { cssColorToNormalizedRgb } from '../colorBits.js';
|
|
10
|
+
import { namedColorToHex } from './cssColorsLevel4.js';
|
|
11
|
+
/**
|
|
12
|
+
* The relative brightness of any point in a color space,
|
|
13
|
+
* normalized to 0 for darkest black and 1 for lightest white,
|
|
14
|
+
* with support for named colors on top.
|
|
15
|
+
*
|
|
16
|
+
* Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests
|
|
17
|
+
*
|
|
18
|
+
* @param color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(),
|
|
19
|
+
* hsl(), hsla(), or named color
|
|
20
|
+
* @returns The relative brightness of the color in the range 0 - 1
|
|
21
|
+
*/
|
|
7
22
|
function getLuminance(color) {
|
|
8
23
|
const convertedColor = namedColorToHex(color);
|
|
9
|
-
return
|
|
24
|
+
return luminanceOf(convertedColor || color);
|
|
10
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Darken or lighten a color, depending on its luminance.
|
|
28
|
+
* Light colors are darkened, dark colors are lightened.
|
|
29
|
+
*
|
|
30
|
+
* @param color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(),
|
|
31
|
+
* hsl(), hsla(), or named color
|
|
32
|
+
* @param coefficient - multiplier in the range 0 - 1, defaults to 0.15
|
|
33
|
+
* @returns A CSS color string. Hex input values are returned as rgb
|
|
34
|
+
*/
|
|
11
35
|
export function emphasize(color, coefficient = 0.15) {
|
|
12
|
-
const convertedColor = namedColorToHex(color);
|
|
13
|
-
return
|
|
36
|
+
const convertedColor = namedColorToHex(color) || color;
|
|
37
|
+
return getLuminance(convertedColor) > 0.5
|
|
38
|
+
? darken(convertedColor, coefficient)
|
|
39
|
+
: lighten(convertedColor, coefficient);
|
|
14
40
|
}
|
|
41
|
+
const CONTRAST_STEPS = 20;
|
|
42
|
+
/**
|
|
43
|
+
* Push `foreground` away from `background` until it clears `minContrastRatio`,
|
|
44
|
+
* returning the closest it got when that ratio is unreachable.
|
|
45
|
+
*
|
|
46
|
+
* `minContrastRatio` genuinely cannot be met against a mid-luminance
|
|
47
|
+
* background: lighten/darken clamp their coefficient at 1, so the candidate
|
|
48
|
+
* pins at white/black, and against a `#b0b0b0` paper the best ratio any color
|
|
49
|
+
* reaches is about 2.2. This used to be a `while (ratio < min)` loop with an
|
|
50
|
+
* unbounded coefficient, which froze the render thread outright for 38 of the 40
|
|
51
|
+
* default refName colors.
|
|
52
|
+
*/
|
|
15
53
|
export function makeContrasting(foreground, background = 'white', minContrastRatio = 3) {
|
|
16
|
-
|
|
54
|
+
const originalColor = namedColorToHex(foreground) || foreground;
|
|
17
55
|
const convertedBackground = namedColorToHex(background) || background;
|
|
18
56
|
const backgroundLuminance = getLuminance(convertedBackground);
|
|
19
|
-
let
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
57
|
+
let best = originalColor;
|
|
58
|
+
let bestRatio = getContrastRatio(originalColor, convertedBackground);
|
|
59
|
+
// an integer step keeps the last coefficient exactly 1, where the clamp bites
|
|
60
|
+
for (let step = 1; step <= CONTRAST_STEPS && bestRatio < minContrastRatio; step++) {
|
|
61
|
+
const coefficient = step / CONTRAST_STEPS;
|
|
62
|
+
const candidate = backgroundLuminance > 0.5
|
|
63
|
+
? darken(originalColor, coefficient)
|
|
64
|
+
: lighten(originalColor, coefficient);
|
|
65
|
+
const ratio = getContrastRatio(candidate, convertedBackground);
|
|
66
|
+
// lightening a dark color against a mid-grey background dips before it
|
|
67
|
+
// climbs, so track the max rather than taking the last candidate
|
|
68
|
+
if (ratio > bestRatio) {
|
|
69
|
+
best = candidate;
|
|
70
|
+
bestRatio = ratio;
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return best;
|
|
74
|
+
}
|
|
75
|
+
export { isNamedColor, namedColorToHex } from './cssColorsLevel4.js';
|
|
76
|
+
// The (lightness, chroma) tiers randomColor picks between, in OKLCH. Values are
|
|
77
|
+
// in the band a hand-built categorical palette occupies — bright enough to tell
|
|
78
|
+
// apart, dark enough that black text over one still reads, and never near
|
|
79
|
+
// white/black. The three differ enough to separate two neighbouring hues, and
|
|
80
|
+
// little enough that no tier reads as "the faded ones".
|
|
81
|
+
// What a value-less feature is painted. Neutral and unsaturated on purpose: it
|
|
82
|
+
// has to read as "not in a category" beside a palette whose every member is
|
|
83
|
+
// equally light and equally colorful, so it cannot be one more hue.
|
|
84
|
+
const NO_CATEGORY_COLOR = '#afafaf';
|
|
85
|
+
const RANDOM_COLOR_TIERS = [
|
|
86
|
+
{ lightness: 0.66, chroma: 0.15 },
|
|
87
|
+
{ lightness: 0.56, chroma: 0.14 },
|
|
88
|
+
{ lightness: 0.75, chroma: 0.12 },
|
|
89
|
+
];
|
|
90
|
+
// sRGB has room for very different amounts of chroma at different hues (a
|
|
91
|
+
// vivid yellow exists, an equally vivid blue does not), so a requested chroma
|
|
92
|
+
// is often outside the gamut. Bisect down to the most saturated in-gamut
|
|
93
|
+
// version of the SAME hue and lightness, rather than letting the channel clamp
|
|
94
|
+
// do it — clamping a channel shifts the hue, which is the one thing this must
|
|
95
|
+
// hold constant.
|
|
96
|
+
const GAMUT_BISECTION_STEPS = 8;
|
|
97
|
+
const GAMUT_EPSILON = 1 / 512;
|
|
98
|
+
function oklchToSrgb(lightness, chroma, hue) {
|
|
99
|
+
return convert.xyzd50ToSrgb(...convert.oklchToXyzd50(lightness, chroma, hue));
|
|
100
|
+
}
|
|
101
|
+
function inGamut(rgb) {
|
|
102
|
+
return rgb.every(v => v >= -GAMUT_EPSILON && v <= 1 + GAMUT_EPSILON);
|
|
103
|
+
}
|
|
104
|
+
function oklchToHex(lightness, chroma, hue) {
|
|
105
|
+
let rgb = oklchToSrgb(lightness, chroma, hue);
|
|
106
|
+
if (!inGamut(rgb)) {
|
|
107
|
+
let lo = 0;
|
|
108
|
+
let hi = chroma;
|
|
109
|
+
for (let i = 0; i < GAMUT_BISECTION_STEPS; i++) {
|
|
110
|
+
const mid = (lo + hi) / 2;
|
|
111
|
+
const candidate = oklchToSrgb(lightness, mid, hue);
|
|
112
|
+
if (inGamut(candidate)) {
|
|
113
|
+
lo = mid;
|
|
114
|
+
rgb = candidate;
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
hi = mid;
|
|
118
|
+
}
|
|
119
|
+
}
|
|
29
120
|
}
|
|
30
|
-
return
|
|
121
|
+
return `#${rgb
|
|
122
|
+
.map(v => Math.max(0, Math.min(255, Math.round(v * 255)))
|
|
123
|
+
.toString(16)
|
|
124
|
+
.padStart(2, '0'))
|
|
125
|
+
.join('')}`;
|
|
31
126
|
}
|
|
32
|
-
|
|
127
|
+
/**
|
|
128
|
+
* #api
|
|
129
|
+
* Move a color's OKLCH lightness by `lightnessShift` and scale its chroma,
|
|
130
|
+
* holding its hue.
|
|
131
|
+
*
|
|
132
|
+
* For extending a categorical palette past its length. Cycling a nine-color
|
|
133
|
+
* list over a 24-chromosome karyotype repeats the color outright; cycling it
|
|
134
|
+
* with a lightness shift per lap gives the hue back as a variant still told
|
|
135
|
+
* apart from the original — tab20's construction, which pairs a light and a
|
|
136
|
+
* dark of each hue.
|
|
137
|
+
*
|
|
138
|
+
* SHIFT rather than a fixed lightness, and SCALE rather than a fixed chroma,
|
|
139
|
+
* because a categorical palette is uneven on purpose: category10's brown and
|
|
140
|
+
* its red are 5 degrees apart in hue and are told apart by chroma alone, so
|
|
141
|
+
* re-lighting both to one (lightness, chroma) makes them the same color.
|
|
142
|
+
* Keeping each color's own relative chroma keeps brown reading as brown.
|
|
143
|
+
*
|
|
144
|
+
* In OKLCH rather than through `lighten`/`darken`, which work in sRGB, where
|
|
145
|
+
* the same coefficient moves a yellow and a blue by visibly different amounts:
|
|
146
|
+
* a lap has to read as one tone across the whole palette or it reads as noise.
|
|
147
|
+
*
|
|
148
|
+
* @param color - CSS color to transform
|
|
149
|
+
* @param lightnessShift - added to its OKLCH lightness (which is 0 - 1)
|
|
150
|
+
* @param chromaScale - multiplies its OKLCH chroma; the result is reduced at
|
|
151
|
+
* constant hue if that lands out of gamut
|
|
152
|
+
* @returns A CSS hex color string
|
|
153
|
+
*/
|
|
154
|
+
export function relight(color, lightnessShift, chromaScale = 1) {
|
|
155
|
+
const [lightness, chroma, hue] = convert.xyzd50ToOklch(...convert.srgbToXyzd50(...cssColorToNormalizedRgb(color)));
|
|
156
|
+
return oklchToHex(Math.max(0, Math.min(1, lightness + lightnessShift)), chroma * chromaScale, hue);
|
|
157
|
+
}
|
|
158
|
+
/**
|
|
159
|
+
* Generate a consistent random color for a given string.
|
|
160
|
+
* The same string will always generate the same color, with no shared palette
|
|
161
|
+
* state — so the same value (e.g. a gene symbol used as an ortholog id) gets the
|
|
162
|
+
* same color across independent tracks/panels.
|
|
163
|
+
*
|
|
164
|
+
* Statelessness is why this hashes into a color space rather than indexing a
|
|
165
|
+
* fixed palette of N: with no allocator there is no "next unused color", so an
|
|
166
|
+
* N-color palette collides by the birthday problem — six values into a
|
|
167
|
+
* twenty-color palette collide more often than not — while a hue circle does
|
|
168
|
+
* not repeat until 360 values. What a curated palette actually buys is
|
|
169
|
+
* perceptual evenness, and that comes from the space, not the list: hues are
|
|
170
|
+
* placed in OKLCH at a fixed lightness and chroma, so every value is equally
|
|
171
|
+
* light and equally colorful. HSL, which this used to use, is neither — its
|
|
172
|
+
* hue wheel spends a quarter of itself on greens that look identical and a
|
|
173
|
+
* sliver on yellow, and at one lightness its yellows glare while its blues go
|
|
174
|
+
* murky. That unevenness is what reads as "random RGB".
|
|
175
|
+
*
|
|
176
|
+
* A value that is absent gets NO_CATEGORY_COLOR rather than a hue, and that is
|
|
177
|
+
* the difference between this being usable on real data and not. The everyday
|
|
178
|
+
* caller is the Color-by-attribute dialog, which writes
|
|
179
|
+
* `jexl:randomColor(get(feature,'<attr>'))` over a whole track — and most files
|
|
180
|
+
* have the attribute on some features and not others, so most of the time this
|
|
181
|
+
* is handed `undefined`. It used to throw on that (`str.length` of undefined),
|
|
182
|
+
* once per feature, and what a reader saw was every unlabelled feature in one
|
|
183
|
+
* strong color: a large fake category, drawn over the real ones. Grey says the
|
|
184
|
+
* only true thing about a feature with no value for the attribute you asked to
|
|
185
|
+
* colour by.
|
|
186
|
+
*
|
|
187
|
+
* @param str - The string to generate a color from
|
|
188
|
+
* @returns A CSS hex color string
|
|
189
|
+
*/
|
|
33
190
|
export function randomColor(str) {
|
|
34
|
-
|
|
191
|
+
if (!str) {
|
|
192
|
+
return NO_CATEGORY_COLOR;
|
|
193
|
+
}
|
|
194
|
+
// djb2 hash — much better distribution than a char-code sum (anagrams and
|
|
195
|
+
// similar strings get well-separated hues).
|
|
196
|
+
let hash = 5381;
|
|
35
197
|
for (let i = 0; i < str.length; i++) {
|
|
36
|
-
|
|
198
|
+
hash = ((hash << 5) + hash) ^ str.charCodeAt(i);
|
|
37
199
|
}
|
|
38
|
-
|
|
200
|
+
const h = hash >>> 0;
|
|
201
|
+
const hue = h % 360;
|
|
202
|
+
// The tier is picked by a separately mixed hash (xorshift + Math.imul for a
|
|
203
|
+
// real 32-bit multiply — a plain `*` overflows float precision and drops the
|
|
204
|
+
// low bits) so it varies independently of the hue rather than tracking it.
|
|
205
|
+
const mix = Math.imul(h ^ (h >>> 15), 2246822519) >>> 0;
|
|
206
|
+
const tier = RANDOM_COLOR_TIERS[mix % RANDOM_COLOR_TIERS.length];
|
|
207
|
+
return oklchToHex(tier.lightness, tier.chroma, hue);
|
|
39
208
|
}
|