@jbrowse/core 4.3.0 → 5.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +822 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +41 -40
- package/esm/PluginLoader.js +206 -78
- package/esm/PluginManager.d.ts +421 -55
- package/esm/PluginManager.js +461 -89
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +62 -93
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/ReExports/sharedModules.d.ts +96 -0
- package/esm/ReExports/sharedModules.js +59 -0
- package/esm/ReExports/uiStub.d.ts +1 -0
- package/esm/ReExports/uiStub.js +13 -0
- package/esm/ReExports/workerModules.d.ts +2 -0
- package/esm/ReExports/workerModules.js +10 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +122 -20
- package/esm/configuration/configurationSchema.js +374 -140
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +332 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +132 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +136 -25
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +29 -0
- package/esm/data_adapters/BaseAdapter/featureDensity.js +17 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +7 -4
- package/esm/data_adapters/BaseAdapter/index.js +6 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +37 -5
- package/esm/data_adapters/BaseAdapter/stats.js +89 -24
- package/esm/data_adapters/BaseAdapter/types.d.ts +11 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +19 -10
- package/esm/pluggableElementTypes/DisplayType.js +53 -5
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +27 -3
- package/esm/pluggableElementTypes/ViewType.js +84 -4
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +73 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +646 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +241 -60
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +216 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +365 -83
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +216 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +150 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +177 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +239 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +275 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +58 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +3 -5
- package/esm/rpc/coreRpcMethods.js +10 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDensity.js +22 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +137 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +390 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +23 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +134 -5
- package/esm/ui/MenuTypes.js +16 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +92 -0
- package/esm/ui/PaletteContext.js +133 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +85 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +42 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +91 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +88 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +42 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +27 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +55 -0
- package/esm/util/cacheBudgets.js +55 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +118 -0
- package/esm/util/createStopTokenRotation.js +127 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +168 -0
- package/esm/util/hooks.js +443 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +81 -268
- package/esm/util/index.js +135 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +220 -0
- package/esm/util/installFetch.js +206 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/lazyAfterAttach.d.ts +13 -0
- package/esm/util/lazyAfterAttach.js +31 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/legendCandidates.d.ts +50 -0
- package/esm/util/legendCandidates.js +87 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +100 -0
- package/esm/util/mstUtils.js +140 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +114 -0
- package/esm/util/pluginStore.js +260 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +46 -1
- package/esm/util/range.js +68 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +30 -1
- package/esm/util/rxjs.js +88 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +126 -0
- package/esm/util/tabix.js +149 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +398 -30
- package/esm/util/tracks.js +699 -191
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +402 -120
- package/esm/util/types/index.js +90 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unknownSnapshotKeys.d.ts +36 -0
- package/esm/util/unknownSnapshotKeys.js +69 -0
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +81 -0
- package/esm/util/viewStatus.js +37 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +40 -0
- package/esm/util/whenViewSettled.js +41 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/esm/util/withLaunchInput.d.ts +123 -0
- package/esm/util/withLaunchInput.js +228 -0
- package/package.json +243 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { getType, isType } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { getConfigurationSchemaDefinition } from './schemaRegistry.js';
|
|
3
|
+
import { isSlotDefinitionEntry } from './schemaTypes.js';
|
|
4
|
+
// The `promotable` slot names of one config schema (includes slots inherited via
|
|
5
|
+
// baseConfiguration — merged into the table at construction), cached by MST type
|
|
6
|
+
// since a schema's slot table is fixed.
|
|
7
|
+
//
|
|
8
|
+
// Only the functions that genuinely *enumerate* promotable slots call this — the
|
|
9
|
+
// worker-payload resolver, the badge diff, "clear every default", and
|
|
10
|
+
// `assertNoPromotableSlots`. It is deliberately NOT on any read path:
|
|
11
|
+
// `getConf` used to consult it on all ~1300 config reads in the repo to decide
|
|
12
|
+
// whether to cascade, which cost a `getType` per read (measured at ~60% overhead
|
|
13
|
+
// over `readConfObject`) to serve the ~15 promotable ones. `resolveConf` names
|
|
14
|
+
// the cascade at the call site instead, so there is nothing to look up.
|
|
15
|
+
//
|
|
16
|
+
// Its own module, and a leaf one, because `ui/promotablePinCoverage.ts` wants
|
|
17
|
+
// the slot names and nothing else: reaching them through a module that also held
|
|
18
|
+
// `readConfObject` pulled jexl and the whole read path into the ui graph. See the
|
|
19
|
+
// note on that export in `ui/index.ts`.
|
|
20
|
+
const promotableSlotsByType = new WeakMap();
|
|
21
|
+
/**
|
|
22
|
+
* Takes a live config node *or* the schema type itself, for the reason
|
|
23
|
+
* `getConfigurationSchemaDefinition` does: every resolver here holds a node,
|
|
24
|
+
* while a caller enumerating registered display types
|
|
25
|
+
* (`displayTypesWithPromotableSlots`) holds only `DisplayType.configSchema` and
|
|
26
|
+
* has nothing to create a node from. Caching under whichever handle it was
|
|
27
|
+
* given is safe — a schema registers both its outer `stripDefault` wrapper and
|
|
28
|
+
* its inner model against the same slot table, so the two entries agree.
|
|
29
|
+
*/
|
|
30
|
+
export function promotableSlotNames(configOrType) {
|
|
31
|
+
const type = isType(configOrType) ? configOrType : getType(configOrType);
|
|
32
|
+
const cached = promotableSlotsByType.get(type);
|
|
33
|
+
if (cached) {
|
|
34
|
+
return cached;
|
|
35
|
+
}
|
|
36
|
+
const names = new Set();
|
|
37
|
+
const table = getConfigurationSchemaDefinition(configOrType);
|
|
38
|
+
for (const [name, def] of Object.entries(table ?? {})) {
|
|
39
|
+
if (isSlotDefinitionEntry(def) && def.promotedBase !== undefined) {
|
|
40
|
+
names.add(name);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
promotableSlotsByType.set(type, names);
|
|
44
|
+
return names;
|
|
45
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { Feature } from '../util/index.ts';
|
|
2
|
+
import type { JexlInstance } from '../util/jexlStrings.ts';
|
|
3
|
+
import type { AnyConfigurationModel, AnyConfigurationSchemaType, AnyConfigurationSnapshot, ConfigurationSchemaForModel, ConfigurationSlotName, ConfigurationSlotValue } from './types.ts';
|
|
4
|
+
import type { IMSTMap } from '@jbrowse/mobx-state-tree';
|
|
5
|
+
/**
|
|
6
|
+
* #api core/configuration
|
|
7
|
+
* Given a configuration model (an instance of a ConfigurationSchema), read the
|
|
8
|
+
* configuration value at the given path. Use this when you hold the
|
|
9
|
+
* configuration model directly, e.g. an entry from `session.tracks`.
|
|
10
|
+
*
|
|
11
|
+
* Wants a **live config node**, not a snapshot of one, and passing a snapshot is
|
|
12
|
+
* a type error. Slots are built with `types.stripDefault`, so a slot sitting at
|
|
13
|
+
* its default is absent from a snapshot — "unset" and "at its default" are
|
|
14
|
+
* indistinguishable there, and a read off one reports a default as missing.
|
|
15
|
+
*
|
|
16
|
+
* That is enforced in the types only, deliberately: it can't be a runtime check.
|
|
17
|
+
* `generateHierarchy` reads slots straight off the **un-hydrated frozen** entries
|
|
18
|
+
* of `jbrowse.tracks` on purpose, because hydrating every track to answer the
|
|
19
|
+
* track selector is what `types.frozen` exists to avoid — and those reads are
|
|
20
|
+
* indistinguishable at runtime from the broken spelling.
|
|
21
|
+
*
|
|
22
|
+
* @param model - instance of ConfigurationSchema
|
|
23
|
+
* @param slotPaths - array of paths to read
|
|
24
|
+
* @param args - extra arguments e.g. for a feature callback,
|
|
25
|
+
* will be sent to each of the slotNames
|
|
26
|
+
*/
|
|
27
|
+
export declare function readConfObject(confObject: AnyConfigurationModel): AnyConfigurationSnapshot;
|
|
28
|
+
export declare function readConfObject<CONFMODEL extends AnyConfigurationModel, SLOT extends ConfigurationSlotName<ConfigurationSchemaForModel<CONFMODEL>> | string[] = ConfigurationSlotName<ConfigurationSchemaForModel<CONFMODEL>>>(confObject: CONFMODEL, slotPath?: SLOT, args?: Record<string, unknown>): SLOT extends string ? ConfigurationSlotValue<ConfigurationSchemaForModel<CONFMODEL>, SLOT> : any;
|
|
29
|
+
export declare function readConfObject(confObject: IMSTMap<AnyConfigurationSchemaType>, slotPath?: string | string[], args?: Record<string, unknown>): any;
|
|
30
|
+
/**
|
|
31
|
+
* Read a value from a plain config snapshot object. Automatically evaluates
|
|
32
|
+
* "jexl:..." strings per-feature. Works without MST — intended for use in
|
|
33
|
+
* rendering code (GPU, Canvas2D, workers). Pass the realm's `pluginManager.jexl`
|
|
34
|
+
* so plugin-registered functions (e.g. in a custom `mouseover` slot) resolve.
|
|
35
|
+
*/
|
|
36
|
+
export declare function readConfigValue<T>(config: Record<string, unknown>, key: string | string[], feature: Feature, jexl: JexlInstance): T;
|
|
37
|
+
/**
|
|
38
|
+
* #api core/configuration
|
|
39
|
+
* Read a single config slot from a config that may be **either** a live MST
|
|
40
|
+
* node or a plain snapshot object, evaluating the value if it is a `jexl:`
|
|
41
|
+
* expression. For the dialogs and panels that are handed a track config without
|
|
42
|
+
* knowing which of the two they got. An About panel gets a hydrated track
|
|
43
|
+
* config from the session and a bare object from an embedded caller.
|
|
44
|
+
*
|
|
45
|
+
* Reach for `readConfObject` or `readConfigValue` when the shape is known:
|
|
46
|
+
* this one decides at runtime, and the plain branch inherits the snapshot
|
|
47
|
+
* caveat (a slot at its default is absent from a snapshot, so it reads
|
|
48
|
+
* `undefined`).
|
|
49
|
+
*
|
|
50
|
+
* @param config - live config model or plain config object
|
|
51
|
+
* @param slotPath - slot name, or path of sub-config names ending in a slot
|
|
52
|
+
* @param args - extra arguments for a callback slot, e.g. `{ feature }`
|
|
53
|
+
* @param jexl - realm jexl instance, required only to evaluate a callback slot
|
|
54
|
+
* on a plain object (a live node resolves its own from env)
|
|
55
|
+
*/
|
|
56
|
+
export declare function readConfSlot<T = unknown>(config: AnyConfigurationModel | Record<string, unknown>, slotPath: string | string[], args?: Record<string, unknown>, jexl?: JexlInstance): T;
|
|
@@ -0,0 +1,161 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module
|
|
3
|
+
* The config **readers**: `readConfObject` off a live MST config node,
|
|
4
|
+
* `readConfigValue` off a plain snapshot object in a worker or a renderer, and
|
|
5
|
+
* `readConfSlot` for the callers that hold either and don't know which. All
|
|
6
|
+
* three exist to evaluate a slot's `jexl:...` callback on read; they differ only
|
|
7
|
+
* in where the jexl instance comes from (the node's env vs. an explicit
|
|
8
|
+
* argument) and in how much of that they are willing to decide at runtime.
|
|
9
|
+
*/
|
|
10
|
+
import { getEnv, getSnapshot, getType, isMapType, isStateTreeNode, } from '@jbrowse/mobx-state-tree';
|
|
11
|
+
import { evaluateJexl, isCallbackValue } from './slotValueUtils.js';
|
|
12
|
+
// Evaluate a slot's `jexl:...` callback string against the realm's single jexl
|
|
13
|
+
// instance (carrying plugin-registered functions), read from the config node's
|
|
14
|
+
// env. readConfObject only ever operates on live MST configs — nested sub-config
|
|
15
|
+
// reads stay MST (env resolves to the root), and frozen track configs hydrate to
|
|
16
|
+
// MST before any callback is read — so the env instance is always present here.
|
|
17
|
+
function evalConfigCallback(expr, args, confObject) {
|
|
18
|
+
if (!isStateTreeNode(confObject)) {
|
|
19
|
+
// A jexl slot needs the realm's jexl instance, which is read from a live
|
|
20
|
+
// config node's env. A plain config snapshot (e.g. an un-hydrated
|
|
21
|
+
// session.tracks entry) carries no env — read it through a hydrated model,
|
|
22
|
+
// or use readConfigValue(config, key, feature, jexl) which takes jexl
|
|
23
|
+
// explicitly.
|
|
24
|
+
throw new Error(`cannot evaluate jexl config callback ${JSON.stringify(expr)}: config is a plain snapshot, not a live model (no env to resolve the jexl instance)`);
|
|
25
|
+
}
|
|
26
|
+
const jexl = getEnv(confObject)
|
|
27
|
+
.pluginManager?.jexl;
|
|
28
|
+
if (!jexl) {
|
|
29
|
+
throw new Error(`cannot evaluate jexl config callback ${JSON.stringify(expr)}: no pluginManager jexl instance in config env`);
|
|
30
|
+
}
|
|
31
|
+
return evaluateJexl(expr, args, jexl);
|
|
32
|
+
}
|
|
33
|
+
function isConfigMap(confObject) {
|
|
34
|
+
return isStateTreeNode(confObject) && isMapType(getType(confObject));
|
|
35
|
+
}
|
|
36
|
+
// Read a slot's raw stored value, drilling into a map entry via `.get()` when
|
|
37
|
+
// the config is itself a types.map.
|
|
38
|
+
function rawSlotValue(confObject, slotName) {
|
|
39
|
+
return isConfigMap(confObject)
|
|
40
|
+
? confObject.get(slotName)
|
|
41
|
+
: confObject[slotName];
|
|
42
|
+
}
|
|
43
|
+
// Read and resolve a single slot: raw value, jexl callback evaluation, then a
|
|
44
|
+
// referentially-stable snapshot for sub-config nodes.
|
|
45
|
+
function readSlot(confObject, slotName, args) {
|
|
46
|
+
// strict undefined check, not truthiness — a slot value can legitimately be
|
|
47
|
+
// falsy (0, '', false, null)
|
|
48
|
+
const value = rawSlotValue(confObject, slotName);
|
|
49
|
+
if (value === undefined) {
|
|
50
|
+
return undefined;
|
|
51
|
+
}
|
|
52
|
+
const val = isCallbackValue(value)
|
|
53
|
+
? evalConfigCallback(value, args, confObject)
|
|
54
|
+
: value;
|
|
55
|
+
// Fast path for primitives (most common case)
|
|
56
|
+
if (val === null || typeof val !== 'object') {
|
|
57
|
+
return val;
|
|
58
|
+
}
|
|
59
|
+
// Return the live, referentially-stable snapshot (frozen in dev) rather than
|
|
60
|
+
// a per-read clone: stable identity lets downstream computeds memoize, and
|
|
61
|
+
// the old structuredClone was both a hot-path allocation and a source of
|
|
62
|
+
// spurious recomputation. Treat as read-only.
|
|
63
|
+
return isStateTreeNode(val) ? getSnapshot(val) : val;
|
|
64
|
+
}
|
|
65
|
+
// loose implementation signature: the body returns values that are `any` by
|
|
66
|
+
// nature (raw slot values, snapshots); the typed overload above is what callers
|
|
67
|
+
// see.
|
|
68
|
+
export function readConfObject(confObject, slotPath, args = {}) {
|
|
69
|
+
// the single-slot read, first and allocation-free: it is the shape of nearly
|
|
70
|
+
// every one of the ~1300 call sites, so it doesn't get normalized into a
|
|
71
|
+
// one-element array on the way past
|
|
72
|
+
if (typeof slotPath === 'string') {
|
|
73
|
+
return readSlot(confObject, slotPath, args);
|
|
74
|
+
}
|
|
75
|
+
if (slotPath !== undefined && !Array.isArray(slotPath)) {
|
|
76
|
+
throw new TypeError('slotPath must be a string or array');
|
|
77
|
+
}
|
|
78
|
+
// No path, or an empty one — which means the same thing, and used not to: `[]`
|
|
79
|
+
// is truthy, so it reached the walk below and read `confObject[undefined]`.
|
|
80
|
+
//
|
|
81
|
+
// Returns the whole config as a plain object: the live, referentially-stable
|
|
82
|
+
// snapshot (frozen in dev), not a fresh clone — treat as read-only.
|
|
83
|
+
if (!slotPath?.length) {
|
|
84
|
+
return isStateTreeNode(confObject) ? getSnapshot(confObject) : confObject;
|
|
85
|
+
}
|
|
86
|
+
// every segment but the last names a sub-config, and only the last is a slot
|
|
87
|
+
// read — which is where jexl evaluation and snapshotting happen, and nowhere
|
|
88
|
+
// else. Iterative rather than a self-call per segment, which re-entered the
|
|
89
|
+
// whole argument-shape preamble above at each level.
|
|
90
|
+
let conf = confObject;
|
|
91
|
+
for (let i = 0; i < slotPath.length - 1; i++) {
|
|
92
|
+
const subConf = rawSlotValue(conf, slotPath[i]);
|
|
93
|
+
if (subConf === undefined) {
|
|
94
|
+
return undefined;
|
|
95
|
+
}
|
|
96
|
+
conf = subConf;
|
|
97
|
+
}
|
|
98
|
+
return readSlot(conf, slotPath[slotPath.length - 1], args);
|
|
99
|
+
}
|
|
100
|
+
// The plain-object half of the slot walk, shared by readConfigValue and
|
|
101
|
+
// readConfSlot. The MST half is readSlot/rawSlotValue above. A plain object has
|
|
102
|
+
// no map entries and no sub-config nodes to snapshot, so it is just a path
|
|
103
|
+
// reduce.
|
|
104
|
+
function resolveConfigValue(config, key) {
|
|
105
|
+
if (Array.isArray(key)) {
|
|
106
|
+
let val = config;
|
|
107
|
+
for (const k of key) {
|
|
108
|
+
val = val?.[k];
|
|
109
|
+
}
|
|
110
|
+
return val;
|
|
111
|
+
}
|
|
112
|
+
return config[key];
|
|
113
|
+
}
|
|
114
|
+
/**
|
|
115
|
+
* Read a value from a plain config snapshot object. Automatically evaluates
|
|
116
|
+
* "jexl:..." strings per-feature. Works without MST — intended for use in
|
|
117
|
+
* rendering code (GPU, Canvas2D, workers). Pass the realm's `pluginManager.jexl`
|
|
118
|
+
* so plugin-registered functions (e.g. in a custom `mouseover` slot) resolve.
|
|
119
|
+
*/
|
|
120
|
+
export function readConfigValue(config, key, feature, jexl) {
|
|
121
|
+
const raw = resolveConfigValue(config, key);
|
|
122
|
+
return (isCallbackValue(raw) ? evaluateJexl(raw, { feature }, jexl) : raw);
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* #api core/configuration
|
|
126
|
+
* Read a single config slot from a config that may be **either** a live MST
|
|
127
|
+
* node or a plain snapshot object, evaluating the value if it is a `jexl:`
|
|
128
|
+
* expression. For the dialogs and panels that are handed a track config without
|
|
129
|
+
* knowing which of the two they got. An About panel gets a hydrated track
|
|
130
|
+
* config from the session and a bare object from an embedded caller.
|
|
131
|
+
*
|
|
132
|
+
* Reach for `readConfObject` or `readConfigValue` when the shape is known:
|
|
133
|
+
* this one decides at runtime, and the plain branch inherits the snapshot
|
|
134
|
+
* caveat (a slot at its default is absent from a snapshot, so it reads
|
|
135
|
+
* `undefined`).
|
|
136
|
+
*
|
|
137
|
+
* @param config - live config model or plain config object
|
|
138
|
+
* @param slotPath - slot name, or path of sub-config names ending in a slot
|
|
139
|
+
* @param args - extra arguments for a callback slot, e.g. `{ feature }`
|
|
140
|
+
* @param jexl - realm jexl instance, required only to evaluate a callback slot
|
|
141
|
+
* on a plain object (a live node resolves its own from env)
|
|
142
|
+
*/
|
|
143
|
+
export function readConfSlot(config, slotPath, args = {}, jexl) {
|
|
144
|
+
if (isStateTreeNode(config)) {
|
|
145
|
+
// pass slotPath through rather than normalizing a string into a one-element
|
|
146
|
+
// array: readConfObject keeps the single-slot read allocation-free
|
|
147
|
+
return readConfObject(config, slotPath, args);
|
|
148
|
+
}
|
|
149
|
+
const value = resolveConfigValue(config, slotPath);
|
|
150
|
+
// A plain-object config has no MST env, so the realm's jexl instance can't be
|
|
151
|
+
// resolved automatically — callers reading a callback slot must pass it. Only
|
|
152
|
+
// reached when the slot actually holds a `jexl:` value (trackId/adapter/etc.
|
|
153
|
+
// never do), so non-callback readers need not supply it.
|
|
154
|
+
if (isCallbackValue(value)) {
|
|
155
|
+
if (!jexl) {
|
|
156
|
+
throw new Error(`cannot evaluate jexl config slot ${JSON.stringify(slotPath)} on a plain-object config: no jexl instance provided`);
|
|
157
|
+
}
|
|
158
|
+
return evaluateJexl(value, args, jexl);
|
|
159
|
+
}
|
|
160
|
+
return value;
|
|
161
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import type { ConfigurationSchemaDefinition, MergedConfigurationSchemaOptions } from './configurationSchema.ts';
|
|
2
|
+
import type { AnyConfigurationModel } from './types.ts';
|
|
3
|
+
import type { IAnyType } from '@jbrowse/mobx-state-tree';
|
|
4
|
+
export interface ConfigurationSchemaMetadata {
|
|
5
|
+
/** the raw slot/sub-schema/constant table, also carrying per-slot editor metadata */
|
|
6
|
+
definition: ConfigurationSchemaDefinition;
|
|
7
|
+
/**
|
|
8
|
+
* construction options (identifier kind, baseConfiguration, etc.) as stored,
|
|
9
|
+
* i.e. with any `baseConfiguration`'s hooks already composed in
|
|
10
|
+
*/
|
|
11
|
+
options: MergedConfigurationSchemaOptions<any, any>;
|
|
12
|
+
}
|
|
13
|
+
export declare function registerConfigurationSchema(type: IAnyType, metadata: ConfigurationSchemaMetadata): void;
|
|
14
|
+
export declare function getConfigurationSchemaMetadata(type: IAnyType): ConfigurationSchemaMetadata | undefined;
|
|
15
|
+
export declare function isRegisteredConfigurationSchema(type: IAnyType): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* The slot/sub-schema/constant table for a config (includes slots merged in from
|
|
18
|
+
* `baseConfiguration` at schema construction). Undefined when the argument isn't
|
|
19
|
+
* a registered configuration schema. The single accessor for "what are this
|
|
20
|
+
* config's slots?" — shared by the slot facade, promotable defaults, and
|
|
21
|
+
* `fullConfSnapshot`.
|
|
22
|
+
*
|
|
23
|
+
* Takes a live node *or* the schema type itself. Every in-tree reader holds a
|
|
24
|
+
* node, which is why the `getType` hop is here; a caller enumerating registered
|
|
25
|
+
* element types (`ConfigSlotDefaults.test.ts`) holds only the type, and for a
|
|
26
|
+
* track schema it cannot get a node — `explicitIdentifier` makes `trackId` a
|
|
27
|
+
* required MST identifier, so there is nothing to `create({})`.
|
|
28
|
+
*/
|
|
29
|
+
export declare function getConfigurationSchemaDefinition(nodeOrType: AnyConfigurationModel | IAnyType): ConfigurationSchemaDefinition | undefined;
|
|
30
|
+
/**
|
|
31
|
+
* The construction options a live config node's schema was built with
|
|
32
|
+
* (identifier kind, `explicitlyTyped`, the `preProcessSnapshot` hook). Undefined
|
|
33
|
+
* when the node's type isn't a registered configuration schema.
|
|
34
|
+
*/
|
|
35
|
+
export declare function getConfigurationSchemaOptions(node: AnyConfigurationModel): MergedConfigurationSchemaOptions<any, any> | undefined;
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { getType, isType } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
// Per-schema metadata keyed by the MST type itself. Registered for BOTH the
|
|
3
|
+
// outer stripDefault wrapper (what `ConfigurationSchema` returns and what
|
|
4
|
+
// sub-schema properties hold) and the inner model (what `getType(node)` returns
|
|
5
|
+
// for a live config), so a lookup succeeds from either handle.
|
|
6
|
+
//
|
|
7
|
+
// This replaces stamping `jbrowseSchemaDefinition`/`jbrowseSchemaOptions`/
|
|
8
|
+
// `isJBrowseConfigurationSchema` onto the MST type objects: the type stays a
|
|
9
|
+
// plain MST type, "is this a config schema" is registry membership instead of a
|
|
10
|
+
// flag-or-name-match, and the metadata is reached by type identity. The map is
|
|
11
|
+
// weak, so a discarded schema type is collected normally.
|
|
12
|
+
const schemaRegistry = new WeakMap();
|
|
13
|
+
export function registerConfigurationSchema(type, metadata) {
|
|
14
|
+
schemaRegistry.set(type, metadata);
|
|
15
|
+
}
|
|
16
|
+
export function getConfigurationSchemaMetadata(type) {
|
|
17
|
+
return schemaRegistry.get(type);
|
|
18
|
+
}
|
|
19
|
+
export function isRegisteredConfigurationSchema(type) {
|
|
20
|
+
return schemaRegistry.has(type);
|
|
21
|
+
}
|
|
22
|
+
// The three lookups above take a schema *type*; the two below take a live config
|
|
23
|
+
// *node* and make the `getType` hop themselves, which is what every reader
|
|
24
|
+
// actually wants — a node is what they hold. Leaving the hop to the call site is
|
|
25
|
+
// how `slotFacade` came to reach the registry directly for `options` while going
|
|
26
|
+
// through a helper for `definition`.
|
|
27
|
+
/**
|
|
28
|
+
* The slot/sub-schema/constant table for a config (includes slots merged in from
|
|
29
|
+
* `baseConfiguration` at schema construction). Undefined when the argument isn't
|
|
30
|
+
* a registered configuration schema. The single accessor for "what are this
|
|
31
|
+
* config's slots?" — shared by the slot facade, promotable defaults, and
|
|
32
|
+
* `fullConfSnapshot`.
|
|
33
|
+
*
|
|
34
|
+
* Takes a live node *or* the schema type itself. Every in-tree reader holds a
|
|
35
|
+
* node, which is why the `getType` hop is here; a caller enumerating registered
|
|
36
|
+
* element types (`ConfigSlotDefaults.test.ts`) holds only the type, and for a
|
|
37
|
+
* track schema it cannot get a node — `explicitIdentifier` makes `trackId` a
|
|
38
|
+
* required MST identifier, so there is nothing to `create({})`.
|
|
39
|
+
*/
|
|
40
|
+
export function getConfigurationSchemaDefinition(nodeOrType) {
|
|
41
|
+
return getConfigurationSchemaMetadata(isType(nodeOrType) ? nodeOrType : getType(nodeOrType))?.definition;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The construction options a live config node's schema was built with
|
|
45
|
+
* (identifier kind, `explicitlyTyped`, the `preProcessSnapshot` hook). Undefined
|
|
46
|
+
* when the node's type isn't a registered configuration schema.
|
|
47
|
+
*/
|
|
48
|
+
export function getConfigurationSchemaOptions(node) {
|
|
49
|
+
return getConfigurationSchemaMetadata(getType(node))?.options;
|
|
50
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { ConfigSlotDefinition } from './configurationSlot.ts';
|
|
2
|
+
import type { AnyConfigurationModel, AnyConfigurationSchemaType } from './types.ts';
|
|
3
|
+
/**
|
|
4
|
+
* given a union of explicitly typed configuration schema types,
|
|
5
|
+
* extract an array of the type names contained in the union
|
|
6
|
+
*
|
|
7
|
+
* @param unionType -
|
|
8
|
+
* @returns Array of type names contained in the union
|
|
9
|
+
*/
|
|
10
|
+
export declare function getTypeNamesFromExplicitlyTypedUnion(maybeUnionType: unknown): string[];
|
|
11
|
+
export declare function isBareConfigurationSchemaType(thing: unknown): thing is AnyConfigurationSchemaType;
|
|
12
|
+
export declare function isConfigurationSchemaType(thing: unknown): thing is AnyConfigurationSchemaType;
|
|
13
|
+
/**
|
|
14
|
+
* A configuration schema definition maps each key to exactly one of three kinds
|
|
15
|
+
* of entry:
|
|
16
|
+
*
|
|
17
|
+
* - constant → a bare string/number (becomes a volatile instance constant)
|
|
18
|
+
* - slot → a ConfigSlotDefinition object (has a `type` field, not a type)
|
|
19
|
+
* - sub-schema → an MST configuration-schema type, see isConfigurationSchemaType
|
|
20
|
+
*/
|
|
21
|
+
export declare function isConstantEntry(def: unknown): def is string | number;
|
|
22
|
+
export declare function isSlotDefinitionEntry(def: unknown): def is ConfigSlotDefinition;
|
|
23
|
+
export declare function isConfigurationModel(thing: unknown): thing is AnyConfigurationModel;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module
|
|
3
|
+
* Recognizing configuration schemas and classifying the entries in one. These
|
|
4
|
+
* predicates are the single source of truth for both questions — shared by
|
|
5
|
+
* schema construction, every reader, and the config editor — so "is this a
|
|
6
|
+
* config schema?" and "what kind of entry is this?" have one answer everywhere.
|
|
7
|
+
*/
|
|
8
|
+
import { getType, isArrayType, isLateType, isMapType, isModelType, isOptionalType, isStateTreeNode, isType, isUnionType, } from '@jbrowse/mobx-state-tree';
|
|
9
|
+
import { getDefaultValue, getSubType, getUnionSubTypes, resolveLateType, } from '../util/mst-reflection.js';
|
|
10
|
+
import { isRegisteredConfigurationSchema } from './schemaRegistry.js';
|
|
11
|
+
/**
|
|
12
|
+
* given a union of explicitly typed configuration schema types,
|
|
13
|
+
* extract an array of the type names contained in the union
|
|
14
|
+
*
|
|
15
|
+
* @param unionType -
|
|
16
|
+
* @returns Array of type names contained in the union
|
|
17
|
+
*/
|
|
18
|
+
export function getTypeNamesFromExplicitlyTypedUnion(maybeUnionType) {
|
|
19
|
+
if (isType(maybeUnionType)) {
|
|
20
|
+
const resolved = resolveLateType(maybeUnionType);
|
|
21
|
+
if (isUnionType(resolved)) {
|
|
22
|
+
const typeNames = [];
|
|
23
|
+
for (const subType of getUnionSubTypes(resolved)) {
|
|
24
|
+
const resolvedSub = resolveLateType(subType);
|
|
25
|
+
// a nested union contributes its own names; otherwise the subtype is a
|
|
26
|
+
// single explicitly-typed schema whose name is its default's `type`
|
|
27
|
+
const nested = getTypeNamesFromExplicitlyTypedUnion(resolvedSub);
|
|
28
|
+
if (nested.length) {
|
|
29
|
+
typeNames.push(...nested);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
const typeName = getDefaultValue(resolvedSub).type;
|
|
33
|
+
if (!typeName) {
|
|
34
|
+
throw new Error(`invalid config schema type ${resolvedSub}`);
|
|
35
|
+
}
|
|
36
|
+
typeNames.push(typeName);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return typeNames;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
return [];
|
|
43
|
+
}
|
|
44
|
+
export function isBareConfigurationSchemaType(thing) {
|
|
45
|
+
if (isType(thing)) {
|
|
46
|
+
if (isModelType(thing) && isRegisteredConfigurationSchema(thing)) {
|
|
47
|
+
return true;
|
|
48
|
+
}
|
|
49
|
+
// if it's a late type, assume its a config schema
|
|
50
|
+
if (isLateType(thing)) {
|
|
51
|
+
return true;
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
export function isConfigurationSchemaType(thing) {
|
|
57
|
+
// written as a series of if-statements instead of a big logical because this
|
|
58
|
+
// construction gives much better debugging backtraces.
|
|
59
|
+
// also, note that the order of these statements matters, because for example
|
|
60
|
+
// some union types are also optional types
|
|
61
|
+
if (!isType(thing)) {
|
|
62
|
+
return false;
|
|
63
|
+
}
|
|
64
|
+
else if (isBareConfigurationSchemaType(thing)) {
|
|
65
|
+
return true;
|
|
66
|
+
}
|
|
67
|
+
else if (isUnionType(thing)) {
|
|
68
|
+
return getUnionSubTypes(thing).every(t => isConfigurationSchemaType(t) || t.name === 'undefined');
|
|
69
|
+
}
|
|
70
|
+
else if ((isOptionalType(thing) || isArrayType(thing) || isMapType(thing)) &&
|
|
71
|
+
isConfigurationSchemaType(getSubType(thing))) {
|
|
72
|
+
return true;
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
/**
|
|
79
|
+
* A configuration schema definition maps each key to exactly one of three kinds
|
|
80
|
+
* of entry:
|
|
81
|
+
*
|
|
82
|
+
* - constant → a bare string/number (becomes a volatile instance constant)
|
|
83
|
+
* - slot → a ConfigSlotDefinition object (has a `type` field, not a type)
|
|
84
|
+
* - sub-schema → an MST configuration-schema type, see isConfigurationSchemaType
|
|
85
|
+
*/
|
|
86
|
+
export function isConstantEntry(def) {
|
|
87
|
+
return typeof def === 'string' || typeof def === 'number';
|
|
88
|
+
}
|
|
89
|
+
export function isSlotDefinitionEntry(def) {
|
|
90
|
+
return (typeof def === 'object' && def !== null && !isType(def) && 'type' in def);
|
|
91
|
+
}
|
|
92
|
+
export function isConfigurationModel(thing) {
|
|
93
|
+
return isStateTreeNode(thing) && isConfigurationSchemaType(getType(thing));
|
|
94
|
+
}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
import type PluginManager from '../PluginManager.ts';
|
|
2
|
+
import type { ConfigSlotDefinition, ConfigSlotType } from './configurationSlot.ts';
|
|
3
|
+
import type { AnyConfigurationModel } from './types.ts';
|
|
4
|
+
/**
|
|
5
|
+
* Whether `slotName` on a config node is a slot (vs a nested sub-schema or a
|
|
6
|
+
* string/number constant).
|
|
7
|
+
*/
|
|
8
|
+
export declare function isConfigurationSlot(node: AnyConfigurationModel, slotName: string): boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Run `node`'s own schema `preProcessSnapshot` over a partial bag of slot
|
|
11
|
+
* values headed for that config.
|
|
12
|
+
*
|
|
13
|
+
* A config.json snapshot gets this for free on `create`, but the session/URL
|
|
14
|
+
* path writes slots one `setSlot` at a time onto an already-created config, so
|
|
15
|
+
* without this a schema's shorthand expansions and legacy-key migrations apply
|
|
16
|
+
* to `config.json` and silently no-op in a session spec, share link, or embed —
|
|
17
|
+
* the surfaces that are supposed to speak the same vocabulary. The hooks are
|
|
18
|
+
* written to normalize whatever subset of keys they're handed, so a partial bag
|
|
19
|
+
* is the same shape they already tolerate.
|
|
20
|
+
*/
|
|
21
|
+
export declare function preProcessSlotValues(node: AnyConfigurationModel, values: Record<string, unknown>): Record<string, unknown>;
|
|
22
|
+
/**
|
|
23
|
+
* The duck-typed object the config editor's leaf components consume. They never
|
|
24
|
+
* touch MST internals — only this shape (see ColorEditor.test.tsx, which passes
|
|
25
|
+
* a plain object). It is built from `(parentNode, slotName)` + the schema
|
|
26
|
+
* metadata table. Collection editors edit immutably via `set` (build a new
|
|
27
|
+
* array/map and assign it).
|
|
28
|
+
*/
|
|
29
|
+
export interface SlotFacade {
|
|
30
|
+
name: string;
|
|
31
|
+
description: string;
|
|
32
|
+
type: ConfigSlotType;
|
|
33
|
+
contextVariable: string[];
|
|
34
|
+
defaultValue: unknown;
|
|
35
|
+
/**
|
|
36
|
+
* For a `promotable` slot, the value its unset state resolves to when nothing
|
|
37
|
+
* is promoted (see `promotableResolve.ts`). Undefined on a plain slot, whose
|
|
38
|
+
* `defaultValue` is already the concrete value.
|
|
39
|
+
*
|
|
40
|
+
* Here because a promotable slot's `defaultValue` is always the `undefined`
|
|
41
|
+
* inherit sentinel, so an editor rendering `defaultValue` for an unset slot
|
|
42
|
+
* shows nothing at all — for a `maybeBoolean` that reads as a concrete
|
|
43
|
+
* `false`, which is wrong for every slot whose base is `true`. The editor
|
|
44
|
+
* still cannot see the *session* tier of the cascade (its target is often a
|
|
45
|
+
* detached config node), so this is the honest answer it can give: what unset
|
|
46
|
+
* means with nothing promoted.
|
|
47
|
+
*/
|
|
48
|
+
promotedBase?: unknown;
|
|
49
|
+
/** enum choices, present only for `stringEnum`/`maybeStringEnum` slots */
|
|
50
|
+
choices?: string[];
|
|
51
|
+
pluginManager: PluginManager;
|
|
52
|
+
readonly value: unknown;
|
|
53
|
+
/**
|
|
54
|
+
* Whether the slot holds a non-default value. Each slot is `stripDefault`-
|
|
55
|
+
* wrapped, so an at-default slot is omitted from the config snapshot — the
|
|
56
|
+
* same signal the persistence/delta layer uses (robust for map/array slots
|
|
57
|
+
* where a live-value `deepEqual` against the plain default would misfire). For
|
|
58
|
+
* a promotable slot, "non-default" means customized rather than inheriting.
|
|
59
|
+
*/
|
|
60
|
+
readonly modified: boolean;
|
|
61
|
+
set: (val: unknown) => void;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* The vocabulary an enum slot offers, or undefined for any other slot. Reads the
|
|
65
|
+
* author's own `types.enumeration` off `model` — `stringEnum` and
|
|
66
|
+
* `maybeStringEnum` are the only two types the editor takes choices from, so a
|
|
67
|
+
* slot typed anything else renders as free text however valid its `model` is.
|
|
68
|
+
*
|
|
69
|
+
* Shared by the config editor's facade below and by
|
|
70
|
+
* `ConfigSlotDefaults.test.ts`, which snapshots every schema's vocabularies:
|
|
71
|
+
* dropping a member is a silent compatibility break, since a saved session
|
|
72
|
+
* holding it fails MST validation and the track then fails to hydrate.
|
|
73
|
+
*/
|
|
74
|
+
export declare function slotChoices(def: ConfigSlotDefinition): string[] | undefined;
|
|
75
|
+
/**
|
|
76
|
+
* Look up a slot's metadata (type/description/defaultValue/contextVariable/
|
|
77
|
+
* model) from the schema-type table stashed by ConfigurationSchema. Includes
|
|
78
|
+
* slots inherited via `baseConfiguration`, which are merged into the table at
|
|
79
|
+
* schema construction.
|
|
80
|
+
*/
|
|
81
|
+
export declare function getSlotDefinition(node: AnyConfigurationModel, slotName: string): ConfigSlotDefinition;
|
|
82
|
+
export declare function makeSlotFacade(node: AnyConfigurationModel, slotName: string): SlotFacade;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { getSnapshot } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { getEnumerationValues } from '../util/mst-reflection.js';
|
|
3
|
+
import { getEnv } from '../util/mstUtils.js';
|
|
4
|
+
import { getConfigurationSchemaDefinition, getConfigurationSchemaOptions, } from './schemaRegistry.js';
|
|
5
|
+
import { isSlotDefinitionEntry } from './schemaTypes.js';
|
|
6
|
+
/**
|
|
7
|
+
* The slot's metadata entry, or undefined when `slotName` names a nested
|
|
8
|
+
* sub-schema or a string/number constant rather than a slot.
|
|
9
|
+
*/
|
|
10
|
+
function slotDefinition(node, slotName) {
|
|
11
|
+
const def = getConfigurationSchemaDefinition(node)?.[slotName];
|
|
12
|
+
return isSlotDefinitionEntry(def) ? def : undefined;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Whether `slotName` on a config node is a slot (vs a nested sub-schema or a
|
|
16
|
+
* string/number constant).
|
|
17
|
+
*/
|
|
18
|
+
export function isConfigurationSlot(node, slotName) {
|
|
19
|
+
return !!slotDefinition(node, slotName);
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Run `node`'s own schema `preProcessSnapshot` over a partial bag of slot
|
|
23
|
+
* values headed for that config.
|
|
24
|
+
*
|
|
25
|
+
* A config.json snapshot gets this for free on `create`, but the session/URL
|
|
26
|
+
* path writes slots one `setSlot` at a time onto an already-created config, so
|
|
27
|
+
* without this a schema's shorthand expansions and legacy-key migrations apply
|
|
28
|
+
* to `config.json` and silently no-op in a session spec, share link, or embed —
|
|
29
|
+
* the surfaces that are supposed to speak the same vocabulary. The hooks are
|
|
30
|
+
* written to normalize whatever subset of keys they're handed, so a partial bag
|
|
31
|
+
* is the same shape they already tolerate.
|
|
32
|
+
*/
|
|
33
|
+
export function preProcessSlotValues(node, values) {
|
|
34
|
+
const preProcess = getConfigurationSchemaOptions(node)?.preProcessSnapshot;
|
|
35
|
+
return preProcess ? preProcess(values) : values;
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* The vocabulary an enum slot offers, or undefined for any other slot. Reads the
|
|
39
|
+
* author's own `types.enumeration` off `model` — `stringEnum` and
|
|
40
|
+
* `maybeStringEnum` are the only two types the editor takes choices from, so a
|
|
41
|
+
* slot typed anything else renders as free text however valid its `model` is.
|
|
42
|
+
*
|
|
43
|
+
* Shared by the config editor's facade below and by
|
|
44
|
+
* `ConfigSlotDefaults.test.ts`, which snapshots every schema's vocabularies:
|
|
45
|
+
* dropping a member is a silent compatibility break, since a saved session
|
|
46
|
+
* holding it fails MST validation and the track then fails to hydrate.
|
|
47
|
+
*/
|
|
48
|
+
export function slotChoices(def) {
|
|
49
|
+
const { type, model } = def;
|
|
50
|
+
return (type === 'stringEnum' || type === 'maybeStringEnum') && model
|
|
51
|
+
? getEnumerationValues(model)
|
|
52
|
+
: undefined;
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Look up a slot's metadata (type/description/defaultValue/contextVariable/
|
|
56
|
+
* model) from the schema-type table stashed by ConfigurationSchema. Includes
|
|
57
|
+
* slots inherited via `baseConfiguration`, which are merged into the table at
|
|
58
|
+
* schema construction.
|
|
59
|
+
*/
|
|
60
|
+
export function getSlotDefinition(node, slotName) {
|
|
61
|
+
const def = slotDefinition(node, slotName);
|
|
62
|
+
if (!def) {
|
|
63
|
+
throw new Error(`no slot metadata for ${slotName}`);
|
|
64
|
+
}
|
|
65
|
+
return def;
|
|
66
|
+
}
|
|
67
|
+
export function makeSlotFacade(node, slotName) {
|
|
68
|
+
const definition = getSlotDefinition(node, slotName);
|
|
69
|
+
const { type, description = '', defaultValue, promotedBase, contextVariable = [], } = definition;
|
|
70
|
+
return {
|
|
71
|
+
name: slotName,
|
|
72
|
+
description,
|
|
73
|
+
type,
|
|
74
|
+
contextVariable,
|
|
75
|
+
defaultValue,
|
|
76
|
+
promotedBase,
|
|
77
|
+
choices: slotChoices(definition),
|
|
78
|
+
pluginManager: getEnv(node).pluginManager,
|
|
79
|
+
get value() {
|
|
80
|
+
return node[slotName];
|
|
81
|
+
},
|
|
82
|
+
get modified() {
|
|
83
|
+
return slotName in getSnapshot(node);
|
|
84
|
+
},
|
|
85
|
+
set(val) {
|
|
86
|
+
node.setSlot(slotName, val);
|
|
87
|
+
},
|
|
88
|
+
};
|
|
89
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { ConfigSlotDefinition } from './configurationSlot.ts';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a stored value could really be a value of this slot. An unusable value
|
|
4
|
+
* is dropped by the cascade, so the getter, the pin and the badge all fall back
|
|
5
|
+
* in lockstep.
|
|
6
|
+
*
|
|
7
|
+
* The `jexl:` check is the only place the subsystem handles a callback, and it
|
|
8
|
+
* handles it by refusing it — a hand-edited config or default store is untyped,
|
|
9
|
+
* and a callback string would otherwise reach a renderer as a literal value.
|
|
10
|
+
* DISPLAY_TYPE_DEFAULTS.md §"No callbacks".
|
|
11
|
+
*/
|
|
12
|
+
export declare function isUsableValue(def: ConfigSlotDefinition, value: unknown): boolean;
|