@jbrowse/core 4.3.0 → 5.0.0-beta.1
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 +783 -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 +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- 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 +84 -65
- 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/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 +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- 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 +326 -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 +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- 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/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -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 +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- 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 +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- 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 +68 -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 +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +195 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -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 +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -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 +265 -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 +49 -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 +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -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/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 +136 -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 +368 -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 +9 -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 +124 -4
- package/esm/ui/MenuTypes.js +13 -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 +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -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 +36 -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 +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -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 +44 -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 +23 -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/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -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 +52 -0
- package/esm/util/cacheBudgets.js +52 -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 +117 -0
- package/esm/util/createStopTokenRotation.js +147 -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 +160 -0
- package/esm/util/hooks.js +416 -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 +82 -268
- package/esm/util/index.js +136 -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 +194 -0
- package/esm/util/installFetch.js +178 -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/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -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 +89 -0
- package/esm/util/mstUtils.js +122 -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 +113 -0
- package/esm/util/pluginStore.js +253 -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 +42 -1
- package/esm/util/range.js +59 -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 +14 -1
- package/esm/util/rxjs.js +39 -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 +120 -0
- package/esm/util/tabix.js +143 -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 +350 -30
- package/esm/util/tracks.js +574 -192
- 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 +358 -119
- package/esm/util/types/index.js +87 -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/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 +58 -0
- package/esm/util/viewStatus.js +20 -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 +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -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,38 @@
|
|
|
1
|
+
import type { Pin } from '../configuration/promotablePin.ts';
|
|
2
|
+
import type { MenuItem } from './MenuTypes.ts';
|
|
3
|
+
/**
|
|
4
|
+
* The "Show legend" checkbox, which seven displays build by hand — Hi-C, LD,
|
|
5
|
+
* alignments, LGVSynteny, multi-wiggle, multi-row features, both multi-sample
|
|
6
|
+
* variant displays and the Manhattan plot.
|
|
7
|
+
*
|
|
8
|
+
* Takes the value and the toggle rather than a `{ showLegend, setShowLegend }`
|
|
9
|
+
* model, because the Manhattan plot's pair is named for the LD legend it draws
|
|
10
|
+
* and would otherwise need an adapter object at the call site. Same argument
|
|
11
|
+
* order as `checkboxItem`, which is all this adds a label to.
|
|
12
|
+
*
|
|
13
|
+
* The `showLegend` **config slots** stay per display: their `promotedBase`
|
|
14
|
+
* values legitimately differ (a Hi-C color scale is off by default, a variant
|
|
15
|
+
* genotype key on), and their descriptions describe genuinely different legends.
|
|
16
|
+
* What they now share is being *promotable* — pass `opts.pin` and the row gains
|
|
17
|
+
* the pin that makes the current state this display type's session-wide
|
|
18
|
+
* default. Every display whose legend is backed by a config slot passes one,
|
|
19
|
+
* and gets it from `LegendMixin`'s `showLegendDisplayTypeDefault` rather than
|
|
20
|
+
* calling `makePin` itself: the slot is the per-display half, the accessors
|
|
21
|
+
* over it are not.
|
|
22
|
+
*
|
|
23
|
+
* `pin` is optional because two callers have no slot to promote: the Manhattan
|
|
24
|
+
* plot's LD legend and `LinearBasicDisplay`'s color key are a volatile and a
|
|
25
|
+
* per-legend `dismissed` flag respectively, neither of which is config at all.
|
|
26
|
+
* They get the plain row, which is what `checkboxItem` builds either way — the
|
|
27
|
+
* promotable form is that same row plus the pin, per `promotableToggleItem`.
|
|
28
|
+
*
|
|
29
|
+
* Deliberately not used by `synteny-core`'s "Show color legend", which sits
|
|
30
|
+
* inside a "Color by..." submenu where the bare word would not say which legend.
|
|
31
|
+
*/
|
|
32
|
+
/** #menuBuilder showLegendCheckboxItem | the shared "Show legend" checkbox */
|
|
33
|
+
export declare function showLegendCheckboxItem(checked: boolean, onToggle: () => void, opts?: {
|
|
34
|
+
helpText?: string;
|
|
35
|
+
disabled?: boolean;
|
|
36
|
+
disabledHelpText?: string;
|
|
37
|
+
pin?: Pin;
|
|
38
|
+
}): MenuItem;
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { promotableToggleItem } from './promotableMenuItems.js';
|
|
2
|
+
import { checkboxItem } from './toggleMenuItems.js';
|
|
3
|
+
/**
|
|
4
|
+
* The "Show legend" checkbox, which seven displays build by hand — Hi-C, LD,
|
|
5
|
+
* alignments, LGVSynteny, multi-wiggle, multi-row features, both multi-sample
|
|
6
|
+
* variant displays and the Manhattan plot.
|
|
7
|
+
*
|
|
8
|
+
* Takes the value and the toggle rather than a `{ showLegend, setShowLegend }`
|
|
9
|
+
* model, because the Manhattan plot's pair is named for the LD legend it draws
|
|
10
|
+
* and would otherwise need an adapter object at the call site. Same argument
|
|
11
|
+
* order as `checkboxItem`, which is all this adds a label to.
|
|
12
|
+
*
|
|
13
|
+
* The `showLegend` **config slots** stay per display: their `promotedBase`
|
|
14
|
+
* values legitimately differ (a Hi-C color scale is off by default, a variant
|
|
15
|
+
* genotype key on), and their descriptions describe genuinely different legends.
|
|
16
|
+
* What they now share is being *promotable* — pass `opts.pin` and the row gains
|
|
17
|
+
* the pin that makes the current state this display type's session-wide
|
|
18
|
+
* default. Every display whose legend is backed by a config slot passes one,
|
|
19
|
+
* and gets it from `LegendMixin`'s `showLegendDisplayTypeDefault` rather than
|
|
20
|
+
* calling `makePin` itself: the slot is the per-display half, the accessors
|
|
21
|
+
* over it are not.
|
|
22
|
+
*
|
|
23
|
+
* `pin` is optional because two callers have no slot to promote: the Manhattan
|
|
24
|
+
* plot's LD legend and `LinearBasicDisplay`'s color key are a volatile and a
|
|
25
|
+
* per-legend `dismissed` flag respectively, neither of which is config at all.
|
|
26
|
+
* They get the plain row, which is what `checkboxItem` builds either way — the
|
|
27
|
+
* promotable form is that same row plus the pin, per `promotableToggleItem`.
|
|
28
|
+
*
|
|
29
|
+
* Deliberately not used by `synteny-core`'s "Show color legend", which sits
|
|
30
|
+
* inside a "Color by..." submenu where the bare word would not say which legend.
|
|
31
|
+
*/
|
|
32
|
+
/** #menuBuilder showLegendCheckboxItem | the shared "Show legend" checkbox */
|
|
33
|
+
export function showLegendCheckboxItem(checked, onToggle, opts) {
|
|
34
|
+
const { pin, ...rest } = opts ?? {};
|
|
35
|
+
return pin
|
|
36
|
+
? promotableToggleItem({
|
|
37
|
+
label: 'Show legend',
|
|
38
|
+
checked,
|
|
39
|
+
onToggle,
|
|
40
|
+
pin,
|
|
41
|
+
...rest,
|
|
42
|
+
})
|
|
43
|
+
: checkboxItem('Show legend', checked, onToggle, rest);
|
|
44
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export type LegendMark = 'fill' | 'line' | 'curve';
|
|
3
|
+
export interface LegendSwatch {
|
|
4
|
+
color: string;
|
|
5
|
+
mark?: LegendMark;
|
|
6
|
+
}
|
|
7
|
+
export interface ColorLegendEntry {
|
|
8
|
+
key: string;
|
|
9
|
+
label: string;
|
|
10
|
+
color?: string;
|
|
11
|
+
swatches?: LegendSwatch[];
|
|
12
|
+
hidden?: boolean;
|
|
13
|
+
marker?: ReactNode;
|
|
14
|
+
}
|
|
15
|
+
export interface LegendItem {
|
|
16
|
+
color?: string;
|
|
17
|
+
mark?: LegendMark;
|
|
18
|
+
swatches?: LegendSwatch[];
|
|
19
|
+
label: string;
|
|
20
|
+
hidden?: boolean;
|
|
21
|
+
}
|
|
22
|
+
export declare function legendSwatches(item: LegendItem): LegendSwatch[];
|
|
23
|
+
export interface LegendSection {
|
|
24
|
+
id: string;
|
|
25
|
+
title?: string;
|
|
26
|
+
items: LegendItem[];
|
|
27
|
+
}
|
|
28
|
+
export interface LegendSpec {
|
|
29
|
+
title?: string;
|
|
30
|
+
items?: LegendItem[];
|
|
31
|
+
sections?: LegendSection[];
|
|
32
|
+
}
|
|
33
|
+
export declare function nonEmptyLegendSections({ items, sections }: LegendSpec): LegendSection[];
|
|
34
|
+
export declare function legendEntries(spec: LegendSpec): ColorLegendEntry[];
|
|
35
|
+
/**
|
|
36
|
+
* How many rows a color key may have and still be one. Past this it is a list
|
|
37
|
+
* of every row, which is the thing a key exists instead of.
|
|
38
|
+
*/
|
|
39
|
+
export declare const MAX_LEGEND_ITEMS = 20;
|
|
40
|
+
/**
|
|
41
|
+
* Whether a key built from these items is worth the rows it costs, for a
|
|
42
|
+
* display that has to *decide* — one whose key is only sometimes the thing
|
|
43
|
+
* naming its colors, and which therefore asks before drawing.
|
|
44
|
+
*
|
|
45
|
+
* Two questions, and both have drawn a useless key on a real track:
|
|
46
|
+
*
|
|
47
|
+
* - **Short enough to read?** A list longer than a reader can scan is worse
|
|
48
|
+
* than whatever it was going to explain. Ask this of the collapsed items, not
|
|
49
|
+
* of the row count — a cohort track's key is one row per group, so 4,390
|
|
50
|
+
* cells in nine cell types is nine rows and passes, while the same cells
|
|
51
|
+
* ungrouped are 4,390 and do not.
|
|
52
|
+
* - **Does it distinguish anything?** A key maps colors to names, so it needs
|
|
53
|
+
* more than one color to map. Items that all share one — every swatch having
|
|
54
|
+
* resolved to the same fallback, which is what a track carrying no identity
|
|
55
|
+
* color produces — spend rows over the plot to say nothing. This is why
|
|
56
|
+
* `LegendItem.color` should be resolved before it gets here: an unresolved
|
|
57
|
+
* `undefined` compares equal to every other `undefined` only by accident.
|
|
58
|
+
*
|
|
59
|
+
* Displays whose key is unconditional (alignments, variants) don't need this;
|
|
60
|
+
* their vocabulary is always worth naming.
|
|
61
|
+
*/
|
|
62
|
+
export declare function legendIsReadable(items: LegendItem[], maxItems?: number): boolean;
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
// The marks a row draws: its explicit list, else its single color/mark pair,
|
|
2
|
+
// else nothing at all (a heading).
|
|
3
|
+
export function legendSwatches(item) {
|
|
4
|
+
return (item.swatches ??
|
|
5
|
+
(item.color === undefined ? [] : [{ color: item.color, mark: item.mark }]));
|
|
6
|
+
}
|
|
7
|
+
// Drop sections with nothing in them, so a heading can never end up with no
|
|
8
|
+
// swatches under it.
|
|
9
|
+
export function nonEmptyLegendSections({ items, sections }) {
|
|
10
|
+
return (sections ?? (items ? [{ id: 'items', items }] : [])).filter(s => s.items.length > 0);
|
|
11
|
+
}
|
|
12
|
+
// Flatten a legend spec into `SvgColorLegend` rows: a color-less row reads as a
|
|
13
|
+
// heading rather than a swatch. Section titles appear only when more than one
|
|
14
|
+
// section survives — a lone vocabulary needs no title above it — which is the
|
|
15
|
+
// rule `FloatingLegend` applies on screen, so an export and the live legend
|
|
16
|
+
// agree about when headings show. A box-level `title` is unconditional, like its
|
|
17
|
+
// on-screen counterpart.
|
|
18
|
+
export function legendEntries(spec) {
|
|
19
|
+
const sections = nonEmptyLegendSections(spec);
|
|
20
|
+
const titled = sections.length > 1;
|
|
21
|
+
return [
|
|
22
|
+
...(spec.title === undefined
|
|
23
|
+
? []
|
|
24
|
+
: [{ key: 'legend-title', label: spec.title }]),
|
|
25
|
+
...sections.flatMap(section => [
|
|
26
|
+
...(titled && section.title !== undefined
|
|
27
|
+
? [{ key: `${section.id}-title`, label: section.title }]
|
|
28
|
+
: []),
|
|
29
|
+
...section.items.map((item, idx) => ({
|
|
30
|
+
key: `${section.id}-${idx}`,
|
|
31
|
+
label: item.label,
|
|
32
|
+
color: item.color,
|
|
33
|
+
swatches: exportSwatches(item),
|
|
34
|
+
hidden: item.hidden,
|
|
35
|
+
})),
|
|
36
|
+
]),
|
|
37
|
+
];
|
|
38
|
+
}
|
|
39
|
+
// A single filled swatch is what `color` alone already draws, so only a row
|
|
40
|
+
// that says something more — several marks, or one that isn't a fill — carries
|
|
41
|
+
// the list into the export. Keeps the common entry the three fields it has
|
|
42
|
+
// always been.
|
|
43
|
+
function exportSwatches(item) {
|
|
44
|
+
const swatches = legendSwatches(item);
|
|
45
|
+
return swatches.length > 1 || swatches.some(s => s.mark && s.mark !== 'fill')
|
|
46
|
+
? swatches
|
|
47
|
+
: undefined;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* How many rows a color key may have and still be one. Past this it is a list
|
|
51
|
+
* of every row, which is the thing a key exists instead of.
|
|
52
|
+
*/
|
|
53
|
+
export const MAX_LEGEND_ITEMS = 20;
|
|
54
|
+
/**
|
|
55
|
+
* Whether a key built from these items is worth the rows it costs, for a
|
|
56
|
+
* display that has to *decide* — one whose key is only sometimes the thing
|
|
57
|
+
* naming its colors, and which therefore asks before drawing.
|
|
58
|
+
*
|
|
59
|
+
* Two questions, and both have drawn a useless key on a real track:
|
|
60
|
+
*
|
|
61
|
+
* - **Short enough to read?** A list longer than a reader can scan is worse
|
|
62
|
+
* than whatever it was going to explain. Ask this of the collapsed items, not
|
|
63
|
+
* of the row count — a cohort track's key is one row per group, so 4,390
|
|
64
|
+
* cells in nine cell types is nine rows and passes, while the same cells
|
|
65
|
+
* ungrouped are 4,390 and do not.
|
|
66
|
+
* - **Does it distinguish anything?** A key maps colors to names, so it needs
|
|
67
|
+
* more than one color to map. Items that all share one — every swatch having
|
|
68
|
+
* resolved to the same fallback, which is what a track carrying no identity
|
|
69
|
+
* color produces — spend rows over the plot to say nothing. This is why
|
|
70
|
+
* `LegendItem.color` should be resolved before it gets here: an unresolved
|
|
71
|
+
* `undefined` compares equal to every other `undefined` only by accident.
|
|
72
|
+
*
|
|
73
|
+
* Displays whose key is unconditional (alignments, variants) don't need this;
|
|
74
|
+
* their vocabulary is always worth naming.
|
|
75
|
+
*/
|
|
76
|
+
export function legendIsReadable(items, maxItems = MAX_LEGEND_ITEMS) {
|
|
77
|
+
return items.length <= maxItems && new Set(items.map(i => i.color)).size > 1;
|
|
78
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export declare const dot1: {
|
|
2
|
+
name: string;
|
|
3
|
+
styles: string;
|
|
4
|
+
anim: 1;
|
|
5
|
+
toString: () => string;
|
|
6
|
+
} & string;
|
|
7
|
+
export declare const dot2: {
|
|
8
|
+
name: string;
|
|
9
|
+
styles: string;
|
|
10
|
+
anim: 1;
|
|
11
|
+
toString: () => string;
|
|
12
|
+
} & string;
|
|
13
|
+
export declare const dot3: {
|
|
14
|
+
name: string;
|
|
15
|
+
styles: string;
|
|
16
|
+
anim: 1;
|
|
17
|
+
toString: () => string;
|
|
18
|
+
} & string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { keyframes } from '../util/tss-react/index.js';
|
|
2
|
+
// Animate opacity (a compositor-offloaded property) rather than visibility so
|
|
3
|
+
// the animation keeps running on the GPU compositor thread while the main
|
|
4
|
+
// thread is busy. visibility/width/color animations run on the main thread and
|
|
5
|
+
// freeze during jank.
|
|
6
|
+
export const dot1 = keyframes `
|
|
7
|
+
0%, 25% { opacity: 0; }
|
|
8
|
+
25.1%, 100% { opacity: 1; }
|
|
9
|
+
`;
|
|
10
|
+
export const dot2 = keyframes `
|
|
11
|
+
0%, 50% { opacity: 0; }
|
|
12
|
+
50.1%, 100% { opacity: 1; }
|
|
13
|
+
`;
|
|
14
|
+
export const dot3 = keyframes `
|
|
15
|
+
0%, 75% { opacity: 0; }
|
|
16
|
+
75.1%, 100% { opacity: 1; }
|
|
17
|
+
`;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ResolvableDisplay } from '../configuration/promotableResolve.ts';
|
|
2
|
+
import type { AnyConfigurationModel, ConfigurationSchemaForModel, ConfigurationSlotName } from '../configuration/types.ts';
|
|
3
|
+
import type { MenuItem } from './MenuTypes.ts';
|
|
4
|
+
import type { SliderScale } from './sliderScale.ts';
|
|
5
|
+
interface SizeMenuOptions {
|
|
6
|
+
label: string;
|
|
7
|
+
title: string;
|
|
8
|
+
help?: string;
|
|
9
|
+
getValue: () => number;
|
|
10
|
+
min?: number;
|
|
11
|
+
max?: number;
|
|
12
|
+
step?: number;
|
|
13
|
+
unit?: string;
|
|
14
|
+
scale?: SliderScale;
|
|
15
|
+
format?: (n: number) => string;
|
|
16
|
+
commitOnRelease?: boolean;
|
|
17
|
+
onChange: (n: number) => void;
|
|
18
|
+
onReset: () => void;
|
|
19
|
+
}
|
|
20
|
+
export declare function makeSizeMenu(opts: SizeMenuOptions & {
|
|
21
|
+
isDefault: boolean;
|
|
22
|
+
}): MenuItem;
|
|
23
|
+
export declare function makeSizeSubMenu(opts: SizeMenuOptions & {
|
|
24
|
+
isDefault: boolean;
|
|
25
|
+
}): MenuItem;
|
|
26
|
+
export declare function makePromotableSizeMenu<CONFMODEL extends AnyConfigurationModel, SLOT extends ConfigurationSlotName<ConfigurationSchemaForModel<CONFMODEL>>>(opts: SizeMenuOptions & {
|
|
27
|
+
display: ResolvableDisplay<CONFMODEL>;
|
|
28
|
+
slot: SLOT;
|
|
29
|
+
}): MenuItem;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Suspense, lazy } from 'react';
|
|
3
|
+
import { isSlotCustomized, makePin, } from '../configuration/promotableDefaults.js';
|
|
4
|
+
import { INLINE_MENU_ROW_WIDTH } from './inlineMenuRowWidth.js';
|
|
5
|
+
// The row's drawn half is `lazy()` for the reason the promotable pin is a
|
|
6
|
+
// description rather than an element: this builder is called from state models
|
|
7
|
+
// and menu modules, which are eager, and the row is the only route by which MUI
|
|
8
|
+
// `Slider` — the largest single Material component in the eager graph — reached
|
|
9
|
+
// a host's first paint. `type: 'custom'` already made `render` a thunk, so the
|
|
10
|
+
// laziness is free at call time; it is the module edge that had to go.
|
|
11
|
+
//
|
|
12
|
+
// The fallback holds the row's footprint so the open menu doesn't reflow when
|
|
13
|
+
// the chunk lands. Height is the row's natural one (caption line + slider); it
|
|
14
|
+
// is approximate on purpose, since being a few px out for one frame is
|
|
15
|
+
// invisible where a collapse to zero is not.
|
|
16
|
+
const SizeSliderRow = lazy(() => import('./SizeSliderRow.js').then(m => ({ default: m.SizeSliderRow })));
|
|
17
|
+
const sizeRowFallbackHeight = 46;
|
|
18
|
+
// Shared inline "size" control as a single menu row (was a submenu of
|
|
19
|
+
// slider/reset/default). Callers own their config slot/semantics and wire the
|
|
20
|
+
// accessors + a title (which also derives the slider's test id). Used by wiggle
|
|
21
|
+
// point-size/line-width, GWAS Manhattan point-size, arc width, the alignments
|
|
22
|
+
// modification threshold and GC-content window/step sizes, so the
|
|
23
|
+
// slider/reset/pin behavior can't drift. Pass `scale: 'log'` for values spanning
|
|
24
|
+
// orders of magnitude, and `format` to label non-`px` units.
|
|
25
|
+
//
|
|
26
|
+
// For a row over a promotable slot use `makePromotableSizeMenu`.
|
|
27
|
+
export function makeSizeMenu(opts) {
|
|
28
|
+
return sizeMenu(opts, opts.isDefault);
|
|
29
|
+
}
|
|
30
|
+
// The same control one hop down: a plain submenu row whose only child is the
|
|
31
|
+
// size row above.
|
|
32
|
+
//
|
|
33
|
+
// For a menu where a slider drawn inline is the odd one out. Every other row
|
|
34
|
+
// there is `label + [?] + (checkbox | chevron)` and a size row is a two-line
|
|
35
|
+
// block with a widget of its own, so a menu holding several reads as a form to
|
|
36
|
+
// fill in rather than a list to pick from — and the comparative views' settings
|
|
37
|
+
// menus hold three each. Behind a chevron the row shape is uniform top to
|
|
38
|
+
// bottom, and the value moves inside next to the slider that sets it, which is
|
|
39
|
+
// where the radio submenus already keep their state.
|
|
40
|
+
//
|
|
41
|
+
// `help` lands on the submenu row, which is the row a reader sees: the size row
|
|
42
|
+
// behind the chevron never reaches the menu's shared trailing column, and a "?"
|
|
43
|
+
// of its own would only be a second one for the same setting, a hover away.
|
|
44
|
+
export function makeSizeSubMenu(opts) {
|
|
45
|
+
return {
|
|
46
|
+
label: opts.title,
|
|
47
|
+
helpText: opts.help,
|
|
48
|
+
subMenu: [makeSizeMenu(opts)],
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
// The same row over a **promotable** slot, which derives both halves the plain
|
|
52
|
+
// form takes by hand — the reset button's enablement (`isSlotCustomized`) and
|
|
53
|
+
// the "default for all tracks of this type" pin — from the one slot name. A
|
|
54
|
+
// slider has no fixed on-value, so the pin promotes whatever the track is
|
|
55
|
+
// currently showing.
|
|
56
|
+
//
|
|
57
|
+
// Naming the slot once is the point: the call sites used to spell it twice, in
|
|
58
|
+
// `isDefault` and again in the pin, with nothing checking the two agreed.
|
|
59
|
+
export function makePromotableSizeMenu(opts) {
|
|
60
|
+
const { display, slot } = opts;
|
|
61
|
+
return sizeMenu(opts, !isSlotCustomized(display, slot), makePin(display, slot));
|
|
62
|
+
}
|
|
63
|
+
function sizeMenu(opts, isDefault, pin) {
|
|
64
|
+
const { label, title, getValue, min = 0.5, max = 12, step = 0.5, unit = 'px', scale = 'linear', format = (n) => `${n}${unit}`, commitOnRelease, onChange, onReset, } = opts;
|
|
65
|
+
return {
|
|
66
|
+
label,
|
|
67
|
+
type: 'custom',
|
|
68
|
+
// Declared even though `SizeSliderRow` below is what draws it: a custom row
|
|
69
|
+
// never reaches the shared trailing column, so without this the pin exists
|
|
70
|
+
// on screen and is invisible to `pinnedSlots` — which is the difference
|
|
71
|
+
// between a promotable slot that is genuinely unreachable and one that just
|
|
72
|
+
// renders its own control. See `hasMenuItemAdornment` for why declaring it
|
|
73
|
+
// costs no layout.
|
|
74
|
+
...(pin && {
|
|
75
|
+
pin: { control: pin, label: title },
|
|
76
|
+
}),
|
|
77
|
+
render: () => (_jsx(Suspense, { fallback: _jsx("div", { style: {
|
|
78
|
+
width: INLINE_MENU_ROW_WIDTH,
|
|
79
|
+
height: sizeRowFallbackHeight,
|
|
80
|
+
} }), children: _jsx(SizeSliderRow, { title: title, getValue: getValue, min: min, max: max, step: step, scale: scale, format: format, isDefault: isDefault, commitOnRelease: commitOnRelease, onChange: onChange, onReset: onReset, pin: pin }) })),
|
|
81
|
+
};
|
|
82
|
+
}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import { SourceMapConsumer } from 'source-map-js';
|
|
2
|
+
const sourceMappingUrlRe = /\/\/# sourceMappingURL=(.*)/g;
|
|
3
|
+
// blob: urls (worker scripts) embed a second scheme, so blob: has to be part of
|
|
4
|
+
// the match: without it the uri truncates to a script that doesn't exist
|
|
5
|
+
const protocolRe = /(?:blob:)?(?:https?|file):\/\//;
|
|
6
|
+
const digitsRe = /^\d+$/;
|
|
7
|
+
async function myfetchtext(uri) {
|
|
8
|
+
const res = await fetch(uri);
|
|
9
|
+
if (!res.ok) {
|
|
10
|
+
throw new Error(`HTTP ${res.status} fetching ${uri}: ${await res.text()}`);
|
|
11
|
+
}
|
|
12
|
+
return res.text();
|
|
13
|
+
}
|
|
14
|
+
function sourceMapUrl(script, uri) {
|
|
15
|
+
// the real annotation is the last one — a bundle can carry the literal
|
|
16
|
+
// earlier in an inlined dependency
|
|
17
|
+
const mapUri = [...script.matchAll(sourceMappingUrlRe)].at(-1)?.[1]?.trim();
|
|
18
|
+
let url;
|
|
19
|
+
if (mapUri) {
|
|
20
|
+
url = new URL(mapUri, uri);
|
|
21
|
+
// vite serves scripts as /foo.js?v=hash and the sibling .map needs the same
|
|
22
|
+
// query; never touch an inline data: map or a map url with its own query
|
|
23
|
+
if (!url.search && url.protocol !== 'data:') {
|
|
24
|
+
url.search = new URL(uri).search;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return url?.href;
|
|
28
|
+
}
|
|
29
|
+
async function loadSourceMap(uri) {
|
|
30
|
+
try {
|
|
31
|
+
const mapUrl = sourceMapUrl(await myfetchtext(uri), uri);
|
|
32
|
+
return mapUrl
|
|
33
|
+
? new SourceMapConsumer(JSON.parse(await myfetchtext(mapUrl)))
|
|
34
|
+
: undefined;
|
|
35
|
+
}
|
|
36
|
+
catch {
|
|
37
|
+
// a frame can point at a script with no map, an unreachable url, or a
|
|
38
|
+
// revoked blob: worker url. Those frames stay raw instead of failing the
|
|
39
|
+
// whole trace
|
|
40
|
+
return undefined;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
// one load attempt per script per session; loadSourceMap never rejects, so a
|
|
44
|
+
// miss is cached like a hit rather than refetched for every frame
|
|
45
|
+
const sourceMaps = new Map();
|
|
46
|
+
function getSourceMap(uri) {
|
|
47
|
+
const existing = sourceMaps.get(uri);
|
|
48
|
+
if (existing) {
|
|
49
|
+
return existing;
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
const map = loadSourceMap(uri);
|
|
53
|
+
sourceMaps.set(uri, map);
|
|
54
|
+
return map;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// parses a frame line like " at f (file:///foo.js:12:34)", or firefox's
|
|
58
|
+
// "f@file:///foo.js:12:34", into its function name, source uri, line and
|
|
59
|
+
// column. undefined when the line has no uri:line:column reference, e.g. the
|
|
60
|
+
// message line that chrome puts first
|
|
61
|
+
export function parseStackLine(line) {
|
|
62
|
+
const protocolMatch = protocolRe.exec(line);
|
|
63
|
+
if (!protocolMatch) {
|
|
64
|
+
return undefined;
|
|
65
|
+
}
|
|
66
|
+
const urlStart = protocolMatch.index;
|
|
67
|
+
const rest = line.slice(urlStart).replace(/\)$/, '');
|
|
68
|
+
const lastColon = rest.lastIndexOf(':');
|
|
69
|
+
const secondLastColon = rest.lastIndexOf(':', lastColon - 1);
|
|
70
|
+
const lineStr = rest.slice(secondLastColon + 1, lastColon);
|
|
71
|
+
const columnStr = rest.slice(lastColon + 1);
|
|
72
|
+
return secondLastColon > 0 &&
|
|
73
|
+
digitsRe.test(lineStr) &&
|
|
74
|
+
digitsRe.test(columnStr)
|
|
75
|
+
? {
|
|
76
|
+
name: line
|
|
77
|
+
.slice(0, urlStart)
|
|
78
|
+
.trim()
|
|
79
|
+
.replace(/^at\b\s*/, '')
|
|
80
|
+
.replace(/\s*\($/, '')
|
|
81
|
+
.replace(/@$/, ''),
|
|
82
|
+
uri: rest.slice(0, secondLastColon),
|
|
83
|
+
line: +lineStr,
|
|
84
|
+
column: +columnStr,
|
|
85
|
+
}
|
|
86
|
+
: undefined;
|
|
87
|
+
}
|
|
88
|
+
async function mapStackLine(line) {
|
|
89
|
+
const frame = parseStackLine(line);
|
|
90
|
+
const consumer = frame ? await getSourceMap(frame.uri) : undefined;
|
|
91
|
+
if (frame && consumer) {
|
|
92
|
+
const pos = consumer.originalPositionFor({
|
|
93
|
+
line: frame.line,
|
|
94
|
+
// stack traces report 1-based columns, source maps are 0-based
|
|
95
|
+
column: frame.column - 1,
|
|
96
|
+
});
|
|
97
|
+
const { source, line: origLine, column } = pos;
|
|
98
|
+
return source !== null && origLine !== null && column !== null
|
|
99
|
+
? `${source}:${origLine}:${column + 1}${frame.name ? ` (${frame.name})` : ''}`
|
|
100
|
+
: line;
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
return line;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
export async function mapStackTrace(stack) {
|
|
107
|
+
return (await Promise.all(stack.split('\n').map(mapStackLine))).join('\n');
|
|
108
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function measureLegendText(str: string, fontSize: number): number;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { measureText } from '../util/index.js';
|
|
2
|
+
// measureText uses a Helvetica width table, but SVG legend <text> nodes have no
|
|
3
|
+
// font-family and render in the wider app font (Roboto), so scale the estimate
|
|
4
|
+
// up before sizing the white paper behind a label or it clips.
|
|
5
|
+
const APP_FONT_WIDTH_RATIO = 1.1;
|
|
6
|
+
export function measureLegendText(str, fontSize) {
|
|
7
|
+
return measureText(str, fontSize) * APP_FONT_WIDTH_RATIO;
|
|
8
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { MenuItem } from './MenuTypes.ts';
|
|
2
|
+
/**
|
|
3
|
+
* The trailing control a menu row draws, resolved at the point of drawing.
|
|
4
|
+
*
|
|
5
|
+
* Two fields feed it and they are not equivalent. `endAdornment` is an element
|
|
6
|
+
* the builder already made — the escape hatch, for content nothing else can
|
|
7
|
+
* describe. `pin` is a *description* of the "default for all tracks of
|
|
8
|
+
* this type" pin, and turning it into `PinAdornment` here is the whole
|
|
9
|
+
* point: the builders that set it (`promotableToggleItem`,
|
|
10
|
+
* `promotableRadioItem`) are called from state models and menu modules, which
|
|
11
|
+
* are eager, so a module that constructs the element instead puts MUI's
|
|
12
|
+
* `ToggleButton`, `Tooltip` and two icons into every host's first paint.
|
|
13
|
+
*
|
|
14
|
+
* Live in one place rather than at each of the four render sites, because the
|
|
15
|
+
* "does any row have one?" predicates and the rendering have to agree — a row
|
|
16
|
+
* that draws a pin the column-reservation pass didn't count is a misaligned
|
|
17
|
+
* menu, not a crash.
|
|
18
|
+
*/
|
|
19
|
+
export declare function menuItemAdornment(item: MenuItem): string | number | bigint | true | import("react").JSX.Element | Iterable<import("react").ReactNode> | Promise<string | number | bigint | boolean | Iterable<import("react").ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* Whether this row draws something in the shared trailing column — the question
|
|
22
|
+
* `getMenuColumnFlags` asks to decide whether to reserve that column on every
|
|
23
|
+
* row of the menu.
|
|
24
|
+
*
|
|
25
|
+
* **Not the same question as "does this row offer a pin"** (`pinnedSlots`, which
|
|
26
|
+
* counts a `pin` wherever it appears). A `type: 'custom'` row renders
|
|
27
|
+
* its own content edge to edge and never reaches `menuItemAdornment`, so it
|
|
28
|
+
* cannot draw in that column however it is declared — counting it would reserve
|
|
29
|
+
* a spacer on its siblings for a control that never appears. It still declares
|
|
30
|
+
* `pin` when it draws a pin of its own (`makePromotableSizeMenu`),
|
|
31
|
+
* which is what keeps the pin findable. Don't "fix" the two into agreement.
|
|
32
|
+
*/
|
|
33
|
+
export declare function hasMenuItemAdornment(item: MenuItem): boolean;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { PinAdornment } from './PinAdornment.js';
|
|
3
|
+
/**
|
|
4
|
+
* The trailing control a menu row draws, resolved at the point of drawing.
|
|
5
|
+
*
|
|
6
|
+
* Two fields feed it and they are not equivalent. `endAdornment` is an element
|
|
7
|
+
* the builder already made — the escape hatch, for content nothing else can
|
|
8
|
+
* describe. `pin` is a *description* of the "default for all tracks of
|
|
9
|
+
* this type" pin, and turning it into `PinAdornment` here is the whole
|
|
10
|
+
* point: the builders that set it (`promotableToggleItem`,
|
|
11
|
+
* `promotableRadioItem`) are called from state models and menu modules, which
|
|
12
|
+
* are eager, so a module that constructs the element instead puts MUI's
|
|
13
|
+
* `ToggleButton`, `Tooltip` and two icons into every host's first paint.
|
|
14
|
+
*
|
|
15
|
+
* Live in one place rather than at each of the four render sites, because the
|
|
16
|
+
* "does any row have one?" predicates and the rendering have to agree — a row
|
|
17
|
+
* that draws a pin the column-reservation pass didn't count is a misaligned
|
|
18
|
+
* menu, not a crash.
|
|
19
|
+
*/
|
|
20
|
+
export function menuItemAdornment(item) {
|
|
21
|
+
if ('endAdornment' in item && item.endAdornment) {
|
|
22
|
+
return item.endAdornment;
|
|
23
|
+
}
|
|
24
|
+
// A disabled row is `pointer-events: none` (see `DisabledTooltip`, which
|
|
25
|
+
// exists because that also swallows a Tooltip's hover), so a pin drawn in one
|
|
26
|
+
// takes no click while looking exactly like a live one. Greying it is what
|
|
27
|
+
// the help "?" does on such a row by not rendering at all; the pin stays
|
|
28
|
+
// drawn so the trailing column keeps its alignment.
|
|
29
|
+
return 'pin' in item && item.pin ? (_jsx(PinAdornment, { pin: item.pin, disabled: item.disabled })) : undefined;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Whether this row draws something in the shared trailing column — the question
|
|
33
|
+
* `getMenuColumnFlags` asks to decide whether to reserve that column on every
|
|
34
|
+
* row of the menu.
|
|
35
|
+
*
|
|
36
|
+
* **Not the same question as "does this row offer a pin"** (`pinnedSlots`, which
|
|
37
|
+
* counts a `pin` wherever it appears). A `type: 'custom'` row renders
|
|
38
|
+
* its own content edge to edge and never reaches `menuItemAdornment`, so it
|
|
39
|
+
* cannot draw in that column however it is declared — counting it would reserve
|
|
40
|
+
* a spacer on its siblings for a control that never appears. It still declares
|
|
41
|
+
* `pin` when it draws a pin of its own (`makePromotableSizeMenu`),
|
|
42
|
+
* which is what keeps the pin findable. Don't "fix" the two into agreement.
|
|
43
|
+
*/
|
|
44
|
+
export function hasMenuItemAdornment(item) {
|
|
45
|
+
if (item.type === 'custom') {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return (('endAdornment' in item && !!item.endAdornment) ||
|
|
49
|
+
('pin' in item && !!item.pin));
|
|
50
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menu-item *builders*, and nothing that draws one.
|
|
3
|
+
*
|
|
4
|
+
* These builders return plain objects, and their callers are state models
|
|
5
|
+
* and `menuItems.ts` / `trackMenus.ts` modules across a dozen plugins — code
|
|
6
|
+
* that is evaluated when a plugin installs, before any session can be read.
|
|
7
|
+
* Reaching them through `@jbrowse/core/ui` meant reaching them through a barrel
|
|
8
|
+
* that re-exports ~80 Material UI components, and the union of what those eager
|
|
9
|
+
* callers happened to name was most of Material UI in every host's first paint
|
|
10
|
+
* (reference/EAGER_BUNDLE.md).
|
|
11
|
+
*
|
|
12
|
+
* So the split is not stylistic: **import menu builders from here, components
|
|
13
|
+
* from `@jbrowse/core/ui`.** This entry must never reach react, @mui or
|
|
14
|
+
* @emotion, and `menuItems.purity.test.ts` fails if it starts to — including
|
|
15
|
+
* transitively, which is the only way the failure would ever show up.
|
|
16
|
+
*
|
|
17
|
+
* The other half of keeping that true is `MenuItemPin`: a row's pin is
|
|
18
|
+
* described here and built by the renderer, because an element in a descriptor
|
|
19
|
+
* pulls its whole component graph back in.
|
|
20
|
+
*/
|
|
21
|
+
export { checkboxItem, radioItem, radioItems, toggleItem, withSubHeader, } from './toggleMenuItems.ts';
|
|
22
|
+
export { withHint } from './menuLabels.ts';
|
|
23
|
+
export { makeRadioSubMenu } from './radioSubMenu.ts';
|
|
24
|
+
export { showLegendCheckboxItem } from './legendMenuItem.ts';
|
|
25
|
+
export { promotableRadioItem, promotableRadioItems, promotableToggleItem, } from './promotableMenuItems.ts';
|
|
26
|
+
export type { RadioOption, SettingRowOptions } from './toggleMenuItems.ts';
|
|
27
|
+
export { staysOpenOnClick } from './MenuTypes.ts';
|
|
28
|
+
export type { BaseMenuItem, CheckboxMenuItem, ClickableMenuItem, CustomMenuItem, MenuDivider, MenuItem, MenuItemClickHandler, MenuItemPin, MenuItemsGetter, MenuSubHeader, NormalMenuItem, RadioMenuItem, SubMenuItem, } from './MenuTypes.ts';
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Menu-item *builders*, and nothing that draws one.
|
|
3
|
+
*
|
|
4
|
+
* These builders return plain objects, and their callers are state models
|
|
5
|
+
* and `menuItems.ts` / `trackMenus.ts` modules across a dozen plugins — code
|
|
6
|
+
* that is evaluated when a plugin installs, before any session can be read.
|
|
7
|
+
* Reaching them through `@jbrowse/core/ui` meant reaching them through a barrel
|
|
8
|
+
* that re-exports ~80 Material UI components, and the union of what those eager
|
|
9
|
+
* callers happened to name was most of Material UI in every host's first paint
|
|
10
|
+
* (reference/EAGER_BUNDLE.md).
|
|
11
|
+
*
|
|
12
|
+
* So the split is not stylistic: **import menu builders from here, components
|
|
13
|
+
* from `@jbrowse/core/ui`.** This entry must never reach react, @mui or
|
|
14
|
+
* @emotion, and `menuItems.purity.test.ts` fails if it starts to — including
|
|
15
|
+
* transitively, which is the only way the failure would ever show up.
|
|
16
|
+
*
|
|
17
|
+
* The other half of keeping that true is `MenuItemPin`: a row's pin is
|
|
18
|
+
* described here and built by the renderer, because an element in a descriptor
|
|
19
|
+
* pulls its whole component graph back in.
|
|
20
|
+
*/
|
|
21
|
+
export { checkboxItem, radioItem, radioItems, toggleItem, withSubHeader, } from './toggleMenuItems.js';
|
|
22
|
+
export { withHint } from './menuLabels.js';
|
|
23
|
+
export { makeRadioSubMenu } from './radioSubMenu.js';
|
|
24
|
+
export { showLegendCheckboxItem } from './legendMenuItem.js';
|
|
25
|
+
export { promotableRadioItem, promotableRadioItems, promotableToggleItem, } from './promotableMenuItems.js';
|
|
26
|
+
export { staysOpenOnClick } from './MenuTypes.js';
|