@jbrowse/core 4.3.0 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +390 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -2,7 +2,62 @@ import type { BaseInternetAccountModel } from '../../pluggableElementTypes/index
|
|
|
2
2
|
import type { FileLocation } from '../../util/index.ts';
|
|
3
3
|
export declare const MAX_LABEL_LENGTH = 5;
|
|
4
4
|
export declare function isAdminMode(): boolean;
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function getAccountLabel(account: BaseInternetAccountModel): string | number | bigint | true |
|
|
7
|
-
|
|
5
|
+
export declare function truncateLabel(str: string): string;
|
|
6
|
+
export declare function getAccountLabel(account: BaseInternetAccountModel): string | number | bigint | true | 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> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
|
|
7
|
+
/**
|
|
8
|
+
* The toggles a selector offers, in the order it draws them — and so the set a
|
|
9
|
+
* selection has to come from.
|
|
10
|
+
*
|
|
11
|
+
* One list because three places used to answer this apart, and a selection none
|
|
12
|
+
* of the drawn buttons carries leaves the group with nothing pressed:
|
|
13
|
+
* `SourceTypeSelector` withheld File in admin mode while `getInitialSourceType`
|
|
14
|
+
* went on opening an empty slot on it, and a location whose `internetAccountId`
|
|
15
|
+
* names an account this host does not install opened on a toggle that was never
|
|
16
|
+
* drawn. `FileSelector` resolves against this rather than trusting either.
|
|
17
|
+
*
|
|
18
|
+
* No File toggle in admin mode: a BlobLocation cannot be written into the
|
|
19
|
+
* config.json the admin server saves.
|
|
20
|
+
*/
|
|
21
|
+
export declare function availableSourceTypes(accountIds: string[]): string[];
|
|
22
|
+
export declare function getInitialSourceType(location?: FileLocation, emptyDefault?: string): string;
|
|
23
|
+
/**
|
|
24
|
+
* The toggle `location` needs in order to be visible, or undefined when the one
|
|
25
|
+
* already showing can render it.
|
|
26
|
+
*
|
|
27
|
+
* `getInitialSourceType` answers this once, at mount, when a form's slot is
|
|
28
|
+
* usually still empty. This is the same question asked of a location that
|
|
29
|
+
* arrived later — the index a form found sitting beside the main file, say,
|
|
30
|
+
* which on desktop is a local path and would render as a blank URL box.
|
|
31
|
+
*
|
|
32
|
+
* Undefined for an empty slot (spelled as a UriLocation with no uri) as well as
|
|
33
|
+
* for a match: an emptied field says nothing about how the user wants to work,
|
|
34
|
+
* and switching the toggle out from under them as they clear a box is worse than
|
|
35
|
+
* leaving it.
|
|
36
|
+
*/
|
|
37
|
+
export declare function sourceTypeForLocation(location: FileLocation | undefined, current: string): string | undefined;
|
|
38
|
+
/**
|
|
39
|
+
* The directory containing `filePath`, for remembering where the user last
|
|
40
|
+
* picked a file. Undefined when there is no directory to remember.
|
|
41
|
+
*
|
|
42
|
+
* String surgery rather than `node:path` because this is renderer code that
|
|
43
|
+
* also builds for the web, and it has to read a Windows path from Electron
|
|
44
|
+
* either way. Which means keeping the separator: `idx` is the index of the last
|
|
45
|
+
* one, so slicing *before* it drops it, and `C:\reads.bam` — a file at the root
|
|
46
|
+
* of a data drive, which is where an external disk mounts — yielded `"C:"`.
|
|
47
|
+
* That is not the root; to Windows a drive letter with no separator means the
|
|
48
|
+
* current directory on that drive, so the dialog reopened wherever the process
|
|
49
|
+
* happened to be. Keep the separator when dropping it would leave a bare root
|
|
50
|
+
* (`C:\`, and `/` on POSIX).
|
|
51
|
+
*/
|
|
52
|
+
export declare function dirFromPath(filePath: string): string | undefined;
|
|
53
|
+
/**
|
|
54
|
+
* Stamps the selected account onto a URL location — and, given no account,
|
|
55
|
+
* *unstamps* whichever one was there. The second half is the one that matters:
|
|
56
|
+
* picking Dropbox and then going back to plain URL used to leave the stamp
|
|
57
|
+
* behind, so the file kept being fetched through Dropbox with nothing in the
|
|
58
|
+
* form saying so.
|
|
59
|
+
*
|
|
60
|
+
* Returns the location itself when there is nothing to change, so a caller can
|
|
61
|
+
* tell a real edit from a no-op by identity.
|
|
62
|
+
*/
|
|
8
63
|
export declare function addAccountToLocation(location: FileLocation, account?: BaseInternetAccountModel): FileLocation;
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
import { isUriLocation } from
|
|
1
|
+
import { isUriLocation } from '../../util/index.js';
|
|
2
2
|
export const MAX_LABEL_LENGTH = 5;
|
|
3
|
+
// jbrowse-web keeps its URL params in the hash fragment XOR the query string
|
|
4
|
+
// (the long/json share modes put every param in the hash, which is never sent to
|
|
5
|
+
// the server and so can't trip the request-line limit), and its own loader reads
|
|
6
|
+
// `adminKey` from whichever the URL uses. Reading only `search` here made the two
|
|
7
|
+
// disagree on a hash-form URL: the root model is in admin mode, but the file
|
|
8
|
+
// picker still offers "File", whose BlobLocation cannot be written into the
|
|
9
|
+
// config.json the admin server saves.
|
|
10
|
+
//
|
|
11
|
+
// The hash/search rule must stay identical to jbrowse-web's canonical reader
|
|
12
|
+
// (`useQueryParam.ts` `paramLocation`).
|
|
3
13
|
export function isAdminMode() {
|
|
4
|
-
|
|
5
|
-
|
|
14
|
+
if (typeof window === 'undefined') {
|
|
15
|
+
return false;
|
|
16
|
+
}
|
|
17
|
+
const hash = window.location.hash.slice(1);
|
|
18
|
+
const params = new URLSearchParams(hash.includes('=') ? hash : window.location.search);
|
|
19
|
+
return params.get('adminKey') !== null;
|
|
6
20
|
}
|
|
7
|
-
|
|
21
|
+
// Truncate a file/account label at the tail. Distinct from the core
|
|
22
|
+
// `shorten`, which elides the MIDDLE of a long name to keep both ends legible
|
|
23
|
+
// — here the leading characters are the identifying part.
|
|
24
|
+
export function truncateLabel(str) {
|
|
8
25
|
return str.length > MAX_LABEL_LENGTH
|
|
9
26
|
? `${str.slice(0, MAX_LABEL_LENGTH)}…`
|
|
10
27
|
: str;
|
|
@@ -13,22 +30,122 @@ export function getAccountLabel(account) {
|
|
|
13
30
|
const { toggleContents, name } = account;
|
|
14
31
|
if (toggleContents) {
|
|
15
32
|
return typeof toggleContents === 'string'
|
|
16
|
-
?
|
|
33
|
+
? truncateLabel(toggleContents)
|
|
17
34
|
: toggleContents;
|
|
18
35
|
}
|
|
19
|
-
return
|
|
36
|
+
return truncateLabel(name);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* The toggles a selector offers, in the order it draws them — and so the set a
|
|
40
|
+
* selection has to come from.
|
|
41
|
+
*
|
|
42
|
+
* One list because three places used to answer this apart, and a selection none
|
|
43
|
+
* of the drawn buttons carries leaves the group with nothing pressed:
|
|
44
|
+
* `SourceTypeSelector` withheld File in admin mode while `getInitialSourceType`
|
|
45
|
+
* went on opening an empty slot on it, and a location whose `internetAccountId`
|
|
46
|
+
* names an account this host does not install opened on a toggle that was never
|
|
47
|
+
* drawn. `FileSelector` resolves against this rather than trusting either.
|
|
48
|
+
*
|
|
49
|
+
* No File toggle in admin mode: a BlobLocation cannot be written into the
|
|
50
|
+
* config.json the admin server saves.
|
|
51
|
+
*/
|
|
52
|
+
export function availableSourceTypes(accountIds) {
|
|
53
|
+
return [...(isAdminMode() ? [] : ['file']), 'url', ...accountIds];
|
|
20
54
|
}
|
|
21
|
-
|
|
55
|
+
// Which toggle a selector opens on. A form's empty slot is spelled as a
|
|
56
|
+
// UriLocation with an empty uri, which isUriLocation rejects, so an untouched
|
|
57
|
+
// field falls to `emptyDefault` rather than reading as a URL. A form that knows
|
|
58
|
+
// how its user is working passes the answer: the add-genome pane's index inputs
|
|
59
|
+
// sit directly under a box of pasted URLs, and offering a local file picker
|
|
60
|
+
// there is a question already answered.
|
|
61
|
+
//
|
|
62
|
+
// What the location WANTS, which is not the same as what is on offer —
|
|
63
|
+
// `availableSourceTypes` is the other half, and `FileSelector` is where the two
|
|
64
|
+
// meet.
|
|
65
|
+
export function getInitialSourceType(location, emptyDefault = 'file') {
|
|
22
66
|
if (location &&
|
|
23
67
|
'internetAccountId' in location &&
|
|
24
68
|
location.internetAccountId) {
|
|
25
69
|
return location.internetAccountId;
|
|
26
70
|
}
|
|
27
|
-
|
|
71
|
+
if (!location) {
|
|
72
|
+
return 'url';
|
|
73
|
+
}
|
|
74
|
+
return isUriLocation(location)
|
|
75
|
+
? 'url'
|
|
76
|
+
: 'uri' in location
|
|
77
|
+
? emptyDefault
|
|
78
|
+
: 'file';
|
|
28
79
|
}
|
|
80
|
+
/**
|
|
81
|
+
* The toggle `location` needs in order to be visible, or undefined when the one
|
|
82
|
+
* already showing can render it.
|
|
83
|
+
*
|
|
84
|
+
* `getInitialSourceType` answers this once, at mount, when a form's slot is
|
|
85
|
+
* usually still empty. This is the same question asked of a location that
|
|
86
|
+
* arrived later — the index a form found sitting beside the main file, say,
|
|
87
|
+
* which on desktop is a local path and would render as a blank URL box.
|
|
88
|
+
*
|
|
89
|
+
* Undefined for an empty slot (spelled as a UriLocation with no uri) as well as
|
|
90
|
+
* for a match: an emptied field says nothing about how the user wants to work,
|
|
91
|
+
* and switching the toggle out from under them as they clear a box is worse than
|
|
92
|
+
* leaving it.
|
|
93
|
+
*/
|
|
94
|
+
export function sourceTypeForLocation(location, current) {
|
|
95
|
+
if (!location) {
|
|
96
|
+
return undefined;
|
|
97
|
+
}
|
|
98
|
+
if (isUriLocation(location)) {
|
|
99
|
+
// 'file' is the only toggle that cannot show a URL; the account toggles
|
|
100
|
+
// render the same box, and one carrying a stamp is already on its own
|
|
101
|
+
const wanted = location.internetAccountId ?? 'url';
|
|
102
|
+
return current === 'file' ? wanted : undefined;
|
|
103
|
+
}
|
|
104
|
+
return 'uri' in location || current === 'file' ? undefined : 'file';
|
|
105
|
+
}
|
|
106
|
+
/**
|
|
107
|
+
* The directory containing `filePath`, for remembering where the user last
|
|
108
|
+
* picked a file. Undefined when there is no directory to remember.
|
|
109
|
+
*
|
|
110
|
+
* String surgery rather than `node:path` because this is renderer code that
|
|
111
|
+
* also builds for the web, and it has to read a Windows path from Electron
|
|
112
|
+
* either way. Which means keeping the separator: `idx` is the index of the last
|
|
113
|
+
* one, so slicing *before* it drops it, and `C:\reads.bam` — a file at the root
|
|
114
|
+
* of a data drive, which is where an external disk mounts — yielded `"C:"`.
|
|
115
|
+
* That is not the root; to Windows a drive letter with no separator means the
|
|
116
|
+
* current directory on that drive, so the dialog reopened wherever the process
|
|
117
|
+
* happened to be. Keep the separator when dropping it would leave a bare root
|
|
118
|
+
* (`C:\`, and `/` on POSIX).
|
|
119
|
+
*/
|
|
120
|
+
export function dirFromPath(filePath) {
|
|
121
|
+
const idx = Math.max(filePath.lastIndexOf('/'), filePath.lastIndexOf('\\'));
|
|
122
|
+
if (idx === -1) {
|
|
123
|
+
return undefined;
|
|
124
|
+
}
|
|
125
|
+
const dir = filePath.slice(0, idx);
|
|
126
|
+
// `C:` (drive-relative) or `` (posix root) — both need the separator back
|
|
127
|
+
return /^[a-zA-Z]:$/.test(dir) || dir === ''
|
|
128
|
+
? filePath.slice(0, idx + 1)
|
|
129
|
+
: dir;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* Stamps the selected account onto a URL location — and, given no account,
|
|
133
|
+
* *unstamps* whichever one was there. The second half is the one that matters:
|
|
134
|
+
* picking Dropbox and then going back to plain URL used to leave the stamp
|
|
135
|
+
* behind, so the file kept being fetched through Dropbox with nothing in the
|
|
136
|
+
* form saying so.
|
|
137
|
+
*
|
|
138
|
+
* Returns the location itself when there is nothing to change, so a caller can
|
|
139
|
+
* tell a real edit from a no-op by identity.
|
|
140
|
+
*/
|
|
29
141
|
export function addAccountToLocation(location, account) {
|
|
30
|
-
if (
|
|
31
|
-
return
|
|
142
|
+
if (!isUriLocation(location)) {
|
|
143
|
+
return location;
|
|
144
|
+
}
|
|
145
|
+
const internetAccountId = account?.internetAccountId;
|
|
146
|
+
if (location.internetAccountId === internetAccountId) {
|
|
147
|
+
return location;
|
|
32
148
|
}
|
|
33
|
-
|
|
149
|
+
const { internetAccountId: _previous, ...rest } = location;
|
|
150
|
+
return internetAccountId ? { ...rest, internetAccountId } : rest;
|
|
34
151
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The "Use Canvas2D" remedy on a GPU error banner, for the MUI chrome.
|
|
3
|
+
*
|
|
4
|
+
* **Renders nothing when the error is not one it fixes**, which is what lets a
|
|
5
|
+
* call site pass it unconditionally as `extraAction` instead of repeating the
|
|
6
|
+
* predicate. Every place that repeated it is a place that could forget it, and
|
|
7
|
+
* two already had.
|
|
8
|
+
*/
|
|
9
|
+
export default function GpuFallbackButton({ error, onRetry, }: {
|
|
10
|
+
error: unknown;
|
|
11
|
+
onRetry: () => void;
|
|
12
|
+
}): import("react").JSX.Element | null;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Button, Tooltip } from '@mui/material';
|
|
3
|
+
import { GPU_FALLBACK_LABEL, GPU_FALLBACK_TOOLTIP, disableGpuRendering, shouldOfferGpuFallback, } from './gpuFallback.js';
|
|
4
|
+
/**
|
|
5
|
+
* The "Use Canvas2D" remedy on a GPU error banner, for the MUI chrome.
|
|
6
|
+
*
|
|
7
|
+
* **Renders nothing when the error is not one it fixes**, which is what lets a
|
|
8
|
+
* call site pass it unconditionally as `extraAction` instead of repeating the
|
|
9
|
+
* predicate. Every place that repeated it is a place that could forget it, and
|
|
10
|
+
* two already had.
|
|
11
|
+
*/
|
|
12
|
+
export default function GpuFallbackButton({ error, onRetry, }) {
|
|
13
|
+
if (!shouldOfferGpuFallback(error)) {
|
|
14
|
+
return null;
|
|
15
|
+
}
|
|
16
|
+
return (_jsx(Tooltip, { title: GPU_FALLBACK_TOOLTIP, children: _jsx(Button, { "data-testid": "use_canvas2d_button", onClick: () => {
|
|
17
|
+
disableGpuRendering();
|
|
18
|
+
onRetry();
|
|
19
|
+
}, children: GPU_FALLBACK_LABEL }) }));
|
|
20
|
+
}
|
package/esm/ui/HoverMenu.d.ts
CHANGED
|
@@ -1,4 +1,13 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
import type { PopoverOrigin } from '@mui/material';
|
|
2
|
+
declare function HoverMenu({ open, anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }: {
|
|
3
|
+
open: boolean;
|
|
4
|
+
anchorEl: HTMLElement | null;
|
|
5
|
+
onClose: () => void;
|
|
6
|
+
onMouseEnter?: () => void;
|
|
7
|
+
paperRef?: React.Ref<HTMLElement>;
|
|
8
|
+
anchorOrigin: PopoverOrigin;
|
|
9
|
+
transformOrigin: PopoverOrigin;
|
|
10
|
+
zIndex?: React.CSSProperties['zIndex'];
|
|
11
|
+
children: React.ReactNode;
|
|
12
|
+
}): import("react").JSX.Element;
|
|
4
13
|
export default HoverMenu;
|
package/esm/ui/HoverMenu.js
CHANGED
|
@@ -1,15 +1,37 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
|
|
2
|
+
// this code adapted from material-ui-popup-state by Andy Edwards, MIT license
|
|
3
|
+
// https://github.com/jcoreio/material-ui-popup-state/blob/9dba66241a0c25b172c93ae7d9e45a9745f138e8/LICENSE.md
|
|
3
4
|
import { Menu } from '@mui/material';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
5
|
+
// A Menu a hovering pointer can cross into: the root (which spans the viewport)
|
|
6
|
+
// is click-through so the gap between the opener row and the panel doesn't
|
|
7
|
+
// swallow the pointer, while the paper itself stays interactive.
|
|
8
|
+
//
|
|
9
|
+
// Only CascadingMenu's submenus render this, so it takes exactly what they pass
|
|
10
|
+
// — the root's pointer-events and the paper slot are its whole point, and a
|
|
11
|
+
// pass-through of the full MenuProps would let a caller quietly override them.
|
|
12
|
+
// Two things a caller does set: `zIndex`, which is the ROOT menu's level (a
|
|
13
|
+
// submenu that stays on MUI's default modal scale under a raised root ends up
|
|
14
|
+
// beneath that root's viewport-spanning backdrop, which then eats its clicks),
|
|
15
|
+
// and `onMouseEnter`, which fires on the paper rather than the click-through
|
|
16
|
+
// root and so means "the pointer arrived here", not "the pointer is somewhere
|
|
17
|
+
// over the viewport".
|
|
18
|
+
function HoverMenu({ open, anchorEl, onClose, onMouseEnter, paperRef, anchorOrigin, transformOrigin, zIndex, children, }) {
|
|
19
|
+
return (_jsx(Menu, { open: open, anchorEl: anchorEl, onClose: onClose, anchorOrigin: anchorOrigin, transformOrigin: transformOrigin, style: { pointerEvents: 'none', zIndex }, slotProps: {
|
|
10
20
|
paper: {
|
|
11
21
|
style: { pointerEvents: 'auto' },
|
|
22
|
+
onMouseEnter,
|
|
23
|
+
ref: paperRef,
|
|
12
24
|
},
|
|
13
|
-
}
|
|
14
|
-
|
|
25
|
+
},
|
|
26
|
+
// A submenu is portaled in the DOM but is still a React *descendant* of
|
|
27
|
+
// the parent menu's list, so React replays its key events into the parent
|
|
28
|
+
// MenuList's own arrow handler. That parent then moves focus to one of its
|
|
29
|
+
// rows, the submenu's focus trap yanks it back to the paper, and arrow
|
|
30
|
+
// navigation inside a submenu dies on its first row. The submenu's own
|
|
31
|
+
// MenuList sits below this root in the real DOM and has already handled
|
|
32
|
+
// the key by the time it gets here, so stopping it costs nothing.
|
|
33
|
+
onKeyDown: e => {
|
|
34
|
+
e.stopPropagation();
|
|
35
|
+
}, children: children }));
|
|
36
|
+
}
|
|
15
37
|
export default HoverMenu;
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import type { MouseState } from './useMouseTracking.ts';
|
|
2
|
+
import type React from 'react';
|
|
3
|
+
/**
|
|
4
|
+
* `BaseTooltip` anchored to the chrome's pointer measurement, drawn only when
|
|
5
|
+
* there is both a hit and a pointer.
|
|
6
|
+
*
|
|
7
|
+
* Five display tooltips opened with the same three lines — read the hover, bail
|
|
8
|
+
* if either half is missing, mount `BaseTooltip` at
|
|
9
|
+
* `{ x: clientX, y: clientY }` — and the guard is the part worth single-sourcing
|
|
10
|
+
* rather than the markup: `mouseState` is `undefined` after a leave *and* on the
|
|
11
|
+
* first render after a terminal banner clears (`DisplayChromeBase` flushes the
|
|
12
|
+
* tracker for exactly that case), so a tooltip that checks only its hit paints
|
|
13
|
+
* at whatever coordinate the pointer last had.
|
|
14
|
+
*
|
|
15
|
+
* The body stays each display's own — a wiggle bin, a SNP and a genotype cell
|
|
16
|
+
* have nothing to share below this line.
|
|
17
|
+
*
|
|
18
|
+
* Deep-imported, never through the `@jbrowse/core/ui` barrel, for the reason
|
|
19
|
+
* `BaseTooltip` is: it reaches @floating-ui (~266KB) and that barrel is on the
|
|
20
|
+
* eager plugin-entry path.
|
|
21
|
+
*/
|
|
22
|
+
export default function HoverTooltip({ hit, mouseState, children, }: {
|
|
23
|
+
/** The display's hover. Nothing is drawn when it is absent. */
|
|
24
|
+
hit: unknown;
|
|
25
|
+
mouseState: MouseState | undefined;
|
|
26
|
+
children: React.ReactNode;
|
|
27
|
+
}): React.JSX.Element | null;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import BaseTooltip from './BaseTooltip.js';
|
|
3
|
+
/**
|
|
4
|
+
* `BaseTooltip` anchored to the chrome's pointer measurement, drawn only when
|
|
5
|
+
* there is both a hit and a pointer.
|
|
6
|
+
*
|
|
7
|
+
* Five display tooltips opened with the same three lines — read the hover, bail
|
|
8
|
+
* if either half is missing, mount `BaseTooltip` at
|
|
9
|
+
* `{ x: clientX, y: clientY }` — and the guard is the part worth single-sourcing
|
|
10
|
+
* rather than the markup: `mouseState` is `undefined` after a leave *and* on the
|
|
11
|
+
* first render after a terminal banner clears (`DisplayChromeBase` flushes the
|
|
12
|
+
* tracker for exactly that case), so a tooltip that checks only its hit paints
|
|
13
|
+
* at whatever coordinate the pointer last had.
|
|
14
|
+
*
|
|
15
|
+
* The body stays each display's own — a wiggle bin, a SNP and a genotype cell
|
|
16
|
+
* have nothing to share below this line.
|
|
17
|
+
*
|
|
18
|
+
* Deep-imported, never through the `@jbrowse/core/ui` barrel, for the reason
|
|
19
|
+
* `BaseTooltip` is: it reaches @floating-ui (~266KB) and that barrel is on the
|
|
20
|
+
* eager plugin-entry path.
|
|
21
|
+
*/
|
|
22
|
+
export default function HoverTooltip({ hit, mouseState, children, }) {
|
|
23
|
+
return hit && mouseState ? (_jsx(BaseTooltip, { clientPoint: { x: mouseState.clientX, y: mouseState.clientY }, children: children })) : null;
|
|
24
|
+
}
|
package/esm/ui/Icons.d.ts
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { SvgIconProps } from '@mui/material/SvgIcon';
|
|
2
|
-
export
|
|
3
|
-
export declare function
|
|
4
|
-
export declare function
|
|
5
|
-
export declare function
|
|
2
|
+
export { default as InfoIcon } from '@mui/icons-material/Info';
|
|
3
|
+
export declare function Indexing(props: SvgIconProps): import("react").JSX.Element;
|
|
4
|
+
export declare function TrackSelector(props: SvgIconProps): import("react").JSX.Element;
|
|
5
|
+
export declare function DNA(props: SvgIconProps): import("react").JSX.Element;
|
|
6
|
+
export declare function Highlighter(props: SvgIconProps): import("react").JSX.Element;
|
|
7
|
+
export declare function Cable(props: SvgIconProps): import("react").JSX.Element;
|
package/esm/ui/Icons.js
CHANGED
|
@@ -1,14 +1,23 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import SvgIcon from '@mui/material/SvgIcon';
|
|
3
|
+
export { default as InfoIcon } from '@mui/icons-material/Info';
|
|
4
|
+
// https://materialdesignicons.com/ text-search icon
|
|
3
5
|
export function Indexing(props) {
|
|
4
6
|
return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "M19.31 18.9L22.39 22L21 23.39L17.88 20.32C17.19 20.75 16.37 21 15.5 21C13 21 11 19 11 16.5C11 14 13 12 15.5 12C18 12 20 14 20 16.5C20 17.38 19.75 18.21 19.31 18.9M15.5 19C16.88 19 18 17.88 18 16.5C18 15.12 16.88 14 15.5 14C14.12 14 13 15.12 13 16.5C13 17.88 14.12 19 15.5 19M21 4V6H3V4H21M3 16V14H9V16H3M3 11V9H21V11H18.97C17.96 10.37 16.77 10 15.5 10C14.23 10 13.04 10.37 12.03 11H3Z" }) }));
|
|
5
7
|
}
|
|
8
|
+
// format-list-checkbox from https://materialdesignicons.com/
|
|
6
9
|
export function TrackSelector(props) {
|
|
7
10
|
return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "M21 19v-2H8v2h13m0-6v-2H8v2h13M8 7h13V5H8v2M4 5v2h2V5H4M3 5a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1V5m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2m1 6v2h2v-2H4m-1 0a1 1 0 011-1h2a1 1 0 011 1v2a1 1 0 01-1 1H4a1 1 0 01-1-1v-2z" }) }));
|
|
8
11
|
}
|
|
12
|
+
// dna from https://materialdesignicons.com/
|
|
9
13
|
export function DNA(props) {
|
|
10
14
|
return (_jsx(SvgIcon, { ...props, children: _jsx("path", { fill: "currentColor", d: "M4,2H6V4C6,5.44 6.68,6.61 7.88,7.78C8.74,8.61 9.89,9.41 11.09,10.2L9.26,11.39C8.27,10.72 7.31,10 6.5,9.21C5.07,7.82 4,6.1 4,4V2M18,2H20V4C20,6.1 18.93,7.82 17.5,9.21C16.09,10.59 14.29,11.73 12.54,12.84C10.79,13.96 9.09,15.05 7.88,16.22C6.68,17.39 6,18.56 6,20V22H4V20C4,17.9 5.07,16.18 6.5,14.79C7.91,13.41 9.71,12.27 11.46,11.16C13.21,10.04 14.91,8.95 16.12,7.78C17.32,6.61 18,5.44 18,4V2M14.74,12.61C15.73,13.28 16.69,14 17.5,14.79C18.93,16.18 20,17.9 20,20V22H18V20C18,18.56 17.32,17.39 16.12,16.22C15.26,15.39 14.11,14.59 12.91,13.8L14.74,12.61M7,3H17V4L16.94,4.5H7.06L7,4V3M7.68,6H16.32C16.08,6.34 15.8,6.69 15.42,7.06L14.91,7.5H9.07L8.58,7.06C8.2,6.69 7.92,6.34 7.68,6M9.09,16.5H14.93L15.42,16.94C15.8,17.31 16.08,17.66 16.32,18H7.68C7.92,17.66 8.2,17.31 8.58,16.94L9.09,16.5M7.06,19.5H16.94L17,20V21H7V20L7.06,19.5Z" }) }));
|
|
11
15
|
}
|
|
16
|
+
// bx-highlight from https://boxicons.com/ (MIT License, Copyright (c) Aniket
|
|
17
|
+
// Suvarna) — https://github.com/atisawd/boxicons/blob/master/svg/regular/bx-highlight.svg
|
|
18
|
+
export function Highlighter(props) {
|
|
19
|
+
return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "m20.707 5.826-3.535-3.533a.999.999 0 0 0-1.408-.006L7.096 10.82a1.01 1.01 0 0 0-.273.488l-1.024 4.437L4 18h2.828l1.142-1.129 3.588-.828c.18-.042.345-.133.477-.262l8.667-8.535a1 1 0 0 0 .005-1.42zm-9.369 7.833-2.121-2.12 7.243-7.131 2.12 2.12-7.242 7.131zM4 20h16v2H4z" }) }));
|
|
20
|
+
}
|
|
12
21
|
export function Cable(props) {
|
|
13
22
|
return (_jsx(SvgIcon, { ...props, children: _jsx("path", { d: "M20 5V4c0-.55-.45-1-1-1h-2c-.55 0-1 .45-1 1v1h-1v4c0 .55.45 1 1 1h1v7c0 1.1-.9 2-2 2s-2-.9-2-2V7c0-2.21-1.79-4-4-4S5 4.79 5 7v7H4c-.55 0-1 .45-1 1v4h1v1c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-1h1v-4c0-.55-.45-1-1-1H7V7c0-1.1.9-2 2-2s2 .9 2 2v10c0 2.21 1.79 4 4 4s4-1.79 4-4v-7h1c.55 0 1-.45 1-1V5h-1z" }) }));
|
|
14
23
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Props as DialogComponentProps } from './Dialog.tsx';
|
|
2
|
+
declare const InfoDialog: (props: Omit<DialogComponentProps, 'onClose'> & {
|
|
3
|
+
onClose: () => void;
|
|
4
|
+
closeText?: string;
|
|
5
|
+
actions?: React.ReactNode;
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
7
|
+
export default InfoDialog;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button, DialogActions, DialogContent } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import Dialog from './Dialog.js';
|
|
5
|
+
// The read-only counterpart to SubmitDialog: content plus a single Close
|
|
6
|
+
// action. Dialog on its own has no footer, so every informational dialog was
|
|
7
|
+
// hand-rolling this one and picking its own button styling.
|
|
8
|
+
const InfoDialog = observer(function InfoDialog(props) {
|
|
9
|
+
const { onClose, closeText = 'Close', actions, children, ...dialogProps } = props;
|
|
10
|
+
return (_jsxs(Dialog, { onClose: () => {
|
|
11
|
+
onClose();
|
|
12
|
+
}, ...dialogProps, children: [_jsx(DialogContent, { children: children }), _jsxs(DialogActions, { children: [actions, _jsx(Button, { variant: "contained", color: "primary", onClick: () => {
|
|
13
|
+
onClose();
|
|
14
|
+
}, children: closeText })] })] }));
|
|
15
|
+
});
|
|
16
|
+
export default InfoDialog;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
/* eslint-disable react-refresh/only-export-components -- the shared row width belongs with these leaf menu-row primitives; no component state to fast-refresh */
|
|
3
|
+
import RestartAltIcon from '@mui/icons-material/RestartAlt';
|
|
4
|
+
import { IconButton, Tooltip } from '@mui/material';
|
|
5
|
+
// Shared width for inline track-menu control rows (the size sliders and the
|
|
6
|
+
// wiggle resolution stepper), so the rows line up when they stack in one menu
|
|
7
|
+
// and can't drift apart.
|
|
8
|
+
export { INLINE_MENU_ROW_WIDTH } from './inlineMenuRowWidth.js';
|
|
9
|
+
// Shared "reset to default" affordance for those rows. A compact icon button in
|
|
10
|
+
// a span so its Tooltip still shows while disabled at the default. Kept in one
|
|
11
|
+
// place so the icon/size/padding and the disabled-at-default behavior stay
|
|
12
|
+
// identical across the sibling controls.
|
|
13
|
+
export function ResetToDefaultButton({ disabled, title = 'Reset to default', onClick, }) {
|
|
14
|
+
return (_jsx(Tooltip, { title: title, children: _jsx("span", { children: _jsx(IconButton, { size: "small", sx: { p: 0.25 }, disabled: disabled, onClick: () => {
|
|
15
|
+
onClick();
|
|
16
|
+
}, children: _jsx(RestartAltIcon, { fontSize: "small" }) }) }) }));
|
|
17
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { JexlFilterModel } from '../util/jexlFilters.ts';
|
|
2
|
+
export interface JexlFilterExample {
|
|
3
|
+
code: string;
|
|
4
|
+
description: string;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* Editor for a list of jexl feature filters (one per line), for any display
|
|
8
|
+
* implementing the two-tier {@link JexlFilterModel} contract.
|
|
9
|
+
*
|
|
10
|
+
* It takes the display node rather than a filter list and a setter because the
|
|
11
|
+
* three plugins offering this row each wrote their own 30-line adapter to
|
|
12
|
+
* supply exactly that pair, and the adapters had drifted: one seeded the dialog
|
|
13
|
+
* from the *resolved* filters (so config-declared ones showed up and were
|
|
14
|
+
* editable) and the others from the raw override (so they did not), and only one
|
|
15
|
+
* of them normalized an emptied list. Both are policy this dialog can state
|
|
16
|
+
* once — the dialog is where "the box is empty" becomes a value.
|
|
17
|
+
*/
|
|
18
|
+
declare const JexlFilterDialog: ({ model, handleClose, examples, }: {
|
|
19
|
+
model: JexlFilterModel;
|
|
20
|
+
handleClose: () => void;
|
|
21
|
+
examples?: JexlFilterExample[];
|
|
22
|
+
}) => import("react").JSX.Element;
|
|
23
|
+
export default JexlFilterDialog;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useState } from 'react';
|
|
3
|
+
import { getEnv } from '@jbrowse/mobx-state-tree';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
import { activeJexlFilters } from '../util/jexlFilters.js';
|
|
6
|
+
import { ensureJexlPrefix, stringToJexlExpression, } from '../util/jexlStrings.js';
|
|
7
|
+
import ExternalLink from './ExternalLink.js';
|
|
8
|
+
import MonospaceTextField from './MonospaceTextField.js';
|
|
9
|
+
import SubmitDialog from './SubmitDialog.js';
|
|
10
|
+
// Non-blank, trimmed lines — the filter list excludes blank lines a user leaves
|
|
11
|
+
// in the textarea, and the same set is what gets validated.
|
|
12
|
+
function filterLines(text) {
|
|
13
|
+
return text
|
|
14
|
+
.split('\n')
|
|
15
|
+
.map(line => line.trim())
|
|
16
|
+
.filter(line => !!line);
|
|
17
|
+
}
|
|
18
|
+
// jexl compile error for the current text, or undefined when every line parses.
|
|
19
|
+
// Derived during render (compilation is cached on the instance, so no effect
|
|
20
|
+
// needed).
|
|
21
|
+
function jexlError(text, jexl) {
|
|
22
|
+
try {
|
|
23
|
+
for (const line of filterLines(text)) {
|
|
24
|
+
stringToJexlExpression(line, jexl);
|
|
25
|
+
}
|
|
26
|
+
return undefined;
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
return e;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* What a display filtering plain annotation features offers as a starting
|
|
34
|
+
* point. A display whose features are a richer record — a VCF, say — passes its
|
|
35
|
+
* own list instead: the examples are the only place the dialog says what is
|
|
36
|
+
* readable off a feature, so a variant track showing `type=='gene'` is teaching
|
|
37
|
+
* the wrong vocabulary.
|
|
38
|
+
*/
|
|
39
|
+
const FEATURE_FILTER_EXAMPLES = [
|
|
40
|
+
{
|
|
41
|
+
code: "jexl:get(feature,'name')=='BRCA1'",
|
|
42
|
+
description: 'show only features where the name attribute is BRCA1',
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
code: "jexl:startsWith(get(feature,'name'),'PREFIX')",
|
|
46
|
+
description: "show only features where the string 'PREFIX' is the prefix of the feature name. endsWith also works",
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
code: "jexl:includes(get(feature,'name'),'PREFIX')",
|
|
50
|
+
description: "show only features where the string 'PREFIX' appears in the feature name",
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
code: "jexl:get(feature,'type')=='gene'",
|
|
54
|
+
description: 'show only gene type features in a GFF that has many other feature types',
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
code: "jexl:get(feature,'score') > 400",
|
|
58
|
+
description: 'show only features that have a score greater than 400',
|
|
59
|
+
},
|
|
60
|
+
{
|
|
61
|
+
code: "jexl:get(feature,'end') - get(feature,'start') < 1000000",
|
|
62
|
+
description: 'show only features with length less than 1Mbp',
|
|
63
|
+
},
|
|
64
|
+
];
|
|
65
|
+
/**
|
|
66
|
+
* Editor for a list of jexl feature filters (one per line), for any display
|
|
67
|
+
* implementing the two-tier {@link JexlFilterModel} contract.
|
|
68
|
+
*
|
|
69
|
+
* It takes the display node rather than a filter list and a setter because the
|
|
70
|
+
* three plugins offering this row each wrote their own 30-line adapter to
|
|
71
|
+
* supply exactly that pair, and the adapters had drifted: one seeded the dialog
|
|
72
|
+
* from the *resolved* filters (so config-declared ones showed up and were
|
|
73
|
+
* editable) and the others from the raw override (so they did not), and only one
|
|
74
|
+
* of them normalized an emptied list. Both are policy this dialog can state
|
|
75
|
+
* once — the dialog is where "the box is empty" becomes a value.
|
|
76
|
+
*/
|
|
77
|
+
const JexlFilterDialog = observer(function JexlFilterDialog({ model, handleClose, examples = FEATURE_FILTER_EXAMPLES, }) {
|
|
78
|
+
const jexl = getEnv(model)
|
|
79
|
+
.pluginManager.jexl;
|
|
80
|
+
const [data, setData] = useState(activeJexlFilters(model).join('\n'));
|
|
81
|
+
const error = jexlError(data, jexl);
|
|
82
|
+
return (_jsxs(SubmitDialog, { maxWidth: "xl", open: true, title: "Add track filters", submitDisabled: !!error, onCancel: handleClose, onSubmit: () => {
|
|
83
|
+
const lines = filterLines(data).map(ensureJexlPrefix);
|
|
84
|
+
// An emptied box is "show everything", which is NOT the same as
|
|
85
|
+
// following the config slot — it has to survive as a set override, or a
|
|
86
|
+
// track whose config declares filters could never have them cleared.
|
|
87
|
+
// Clearing the override is the "Clear all filters" menu row's job.
|
|
88
|
+
model.setJexlFilters(lines);
|
|
89
|
+
handleClose();
|
|
90
|
+
}, children: [_jsxs("div", { style: { width: '80em' }, children: ["Add filters, in jexl format, one per line, starting with the string jexl:. Examples:", ' ', _jsx("ul", { children: examples.map(({ code, description }) => (_jsxs("li", { children: [_jsx("code", { children: code }), " - ", description] }, code))) }), _jsxs("p", { children: ["Please see the", ' ', _jsx(ExternalLink, { href: "https://jbrowse.org/jb2/docs/config_guides/jexl/", children: "Jexl" }), ' ', "documentation for more information"] })] }), _jsx(MonospaceTextField, { fullWidth: true, minRows: 5, maxRows: 10, value: data, error: error, onChange: val => {
|
|
91
|
+
setData(val);
|
|
92
|
+
} })] }));
|
|
93
|
+
});
|
|
94
|
+
export default JexlFilterDialog;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
export default function LabeledCheckbox({ checked, onChange, label, className, disabled, size, }: {
|
|
3
|
+
checked: boolean;
|
|
4
|
+
onChange: (checked: boolean) => void;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
size?: 'small' | 'medium';
|
|
9
|
+
}): import("react").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Checkbox, FormControlLabel } from '@mui/material';
|
|
3
|
+
export default function LabeledCheckbox({ checked, onChange, label, className, disabled, size, }) {
|
|
4
|
+
return (_jsx(FormControlLabel, { className: className, disabled: disabled, control: _jsx(Checkbox, { size: size, checked: checked, onChange: event => {
|
|
5
|
+
onChange(event.target.checked);
|
|
6
|
+
} }), label: label }));
|
|
7
|
+
}
|