@jbrowse/core 4.3.0 → 5.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +783 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +13 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +33 -22
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +8 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +117 -19
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +12 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +28 -17
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +19 -40
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +46 -30
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +66 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +1 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +3 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +7 -14
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +19 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +8 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +32 -10
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +62 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +10 -5
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +64 -41
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +17 -8
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +19 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +5 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +15 -18
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +33 -17
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.d.ts +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +18 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +11 -29
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +9 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +63 -58
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +7 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +38 -51
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +19 -27
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +18 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +12 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +97 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +50 -63
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +62 -59
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.d.ts +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/panelAssemblyName.js +24 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +5 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +93 -75
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +4 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +5 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +21 -48
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/PlainSequence.js +20 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +6 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +33 -13
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +7 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +67 -11
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.d.ts +14 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/renderSequenceSegments.js +42 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +7 -7
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +9 -9
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +28 -44
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.d.ts +23 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceFetch.js +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +90 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +145 -23
- package/esm/BaseFeatureWidget/configSchema.js +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +38 -0
- package/esm/BaseFeatureWidget/formatDetails.js +103 -0
- package/esm/BaseFeatureWidget/index.d.ts +3 -1
- package/esm/BaseFeatureWidget/index.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +80 -62
- package/esm/BaseFeatureWidget/stateModelFactory.js +128 -29
- package/esm/BaseFeatureWidget/types.d.ts +4 -3
- package/esm/BaseFeatureWidget/util.d.ts +4 -29
- package/esm/BaseFeatureWidget/util.js +20 -84
- package/esm/CorePlugin.js +11 -6
- package/esm/PhasedScheduler.d.ts +4 -2
- package/esm/PhasedScheduler.js +18 -2
- package/esm/Plugin.d.ts +6 -1
- package/esm/Plugin.js +7 -0
- package/esm/PluginLoader.d.ts +40 -40
- package/esm/PluginLoader.js +166 -82
- package/esm/PluginManager.d.ts +368 -55
- package/esm/PluginManager.js +326 -85
- package/esm/ReExports/BaseFeatureDetails.js +7 -6
- package/esm/ReExports/MuiDataGridReExports.d.ts +2 -2
- package/esm/ReExports/MuiDataGridReExports.js +58 -130
- package/esm/ReExports/MuiReExports.d.ts +3 -134
- package/esm/ReExports/MuiReExports.js +43 -16
- package/esm/ReExports/MuiStylesReExports.d.ts +66 -0
- package/esm/ReExports/MuiStylesReExports.js +55 -0
- package/esm/ReExports/index.js +1 -1
- package/esm/ReExports/lazify.d.ts +2 -2
- package/esm/ReExports/lazify.js +16 -3
- package/esm/ReExports/list.js +54 -229
- package/esm/ReExports/modules.js +84 -65
- package/esm/ReExports/muiComponentNames.d.ts +18 -0
- package/esm/ReExports/muiComponentNames.js +130 -0
- package/esm/ReExports/publicUtil.d.ts +1 -0
- package/esm/ReExports/publicUtil.js +28 -0
- package/esm/ReExports/registry.d.ts +2 -0
- package/esm/ReExports/registry.js +28 -0
- package/esm/TextSearch/BaseResults.d.ts +20 -21
- package/esm/TextSearch/BaseResults.js +8 -33
- package/esm/TextSearch/TextSearchManager.d.ts +14 -34
- package/esm/TextSearch/TextSearchManager.js +87 -34
- package/esm/assemblyManager/assembly.d.ts +307 -34
- package/esm/assemblyManager/assembly.js +551 -262
- package/esm/assemblyManager/assemblyAdapters.d.ts +12 -0
- package/esm/assemblyManager/assemblyAdapters.js +18 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +192 -17
- package/esm/assemblyManager/assemblyConfigSchema.js +213 -19
- package/esm/assemblyManager/assemblyManager.d.ts +711 -303
- package/esm/assemblyManager/assemblyManager.js +351 -46
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +32 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +85 -0
- package/esm/assemblyManager/geneticCodes.d.ts +21 -0
- package/esm/assemblyManager/geneticCodes.js +47 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.d.ts +9 -0
- package/esm/assemblyManager/getSequenceAdapterConfig.js +12 -0
- package/esm/assemblyManager/index.d.ts +1 -1
- package/esm/assemblyManager/index.js +2 -2
- package/esm/assemblyManager/loadRefNameMap.d.ts +5 -0
- package/esm/assemblyManager/loadRefNameMap.js +80 -0
- package/esm/assemblyManager/refNameColors.d.ts +1 -0
- package/esm/assemblyManager/refNameColors.js +32 -0
- package/esm/assemblyManager/refNameMaps.d.ts +26 -0
- package/esm/assemblyManager/refNameMaps.js +87 -0
- package/esm/assemblyManager/refNameMismatch.d.ts +54 -0
- package/esm/assemblyManager/refNameMismatch.js +66 -0
- package/esm/checkPlugins.d.ts +11 -0
- package/esm/checkPlugins.js +77 -0
- package/esm/configuration/configurationSchema.d.ts +154 -19
- package/esm/configuration/configurationSchema.js +359 -138
- package/esm/configuration/configurationSlot.d.ts +283 -30
- package/esm/configuration/configurationSlot.js +205 -226
- package/esm/configuration/formatAboutConfigSchema.d.ts +55 -0
- package/esm/configuration/formatAboutConfigSchema.js +58 -0
- package/esm/configuration/formatDetailsConfigSchema.d.ts +80 -0
- package/esm/configuration/formatDetailsConfigSchema.js +90 -0
- package/esm/configuration/fullConfSnapshot.d.ts +28 -0
- package/esm/configuration/fullConfSnapshot.js +66 -0
- package/esm/configuration/getConf.d.ts +88 -0
- package/esm/configuration/getConf.js +74 -0
- package/esm/configuration/index.d.ts +19 -3
- package/esm/configuration/index.js +19 -2
- package/esm/configuration/mergeFormatCallbacks.d.ts +15 -0
- package/esm/configuration/mergeFormatCallbacks.js +24 -0
- package/esm/configuration/promotableDefaults.d.ts +199 -0
- package/esm/configuration/promotableDefaults.js +326 -0
- package/esm/configuration/promotablePin.d.ts +55 -0
- package/esm/configuration/promotableResolve.d.ts +108 -0
- package/esm/configuration/promotableResolve.js +117 -0
- package/esm/configuration/promotableSlots.d.ts +12 -0
- package/esm/configuration/promotableSlots.js +45 -0
- package/esm/configuration/readConfObject.d.ts +56 -0
- package/esm/configuration/readConfObject.js +161 -0
- package/esm/configuration/schemaRegistry.d.ts +35 -0
- package/esm/configuration/schemaRegistry.js +50 -0
- package/esm/configuration/schemaTypes.d.ts +23 -0
- package/esm/configuration/schemaTypes.js +94 -0
- package/esm/configuration/slotFacade.d.ts +82 -0
- package/esm/configuration/slotFacade.js +89 -0
- package/esm/configuration/slotShape.d.ts +12 -0
- package/esm/configuration/slotShape.js +84 -0
- package/esm/configuration/slotValueUtils.d.ts +17 -0
- package/esm/configuration/slotValueUtils.js +25 -0
- package/esm/configuration/tabixIndexFields.d.ts +44 -0
- package/esm/configuration/tabixIndexFields.js +45 -0
- package/esm/configuration/tabixShorthand.d.ts +34 -0
- package/esm/configuration/tabixShorthand.js +45 -0
- package/esm/configuration/types.d.ts +170 -7
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +24 -10
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +23 -15
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +120 -7
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +99 -27
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -5
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +9 -7
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/CytobandAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +2 -1
- package/esm/data_adapters/BaseAdapter/getAdapterId.d.ts +2 -0
- package/esm/data_adapters/BaseAdapter/getAdapterId.js +9 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +6 -4
- package/esm/data_adapters/BaseAdapter/index.js +5 -5
- package/esm/data_adapters/BaseAdapter/stats.d.ts +5 -5
- package/esm/data_adapters/BaseAdapter/stats.js +48 -22
- package/esm/data_adapters/BaseAdapter/types.d.ts +10 -8
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +5 -1
- package/esm/data_adapters/BaseAdapter/util.js +14 -3
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +1 -1
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +4 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +36 -4
- package/esm/data_adapters/CytobandAdapter/configSchema.js +46 -2
- package/esm/data_adapters/CytobandAdapter/index.js +3 -3
- package/esm/data_adapters/adapterSessionRefcount.d.ts +61 -0
- package/esm/data_adapters/adapterSessionRefcount.js +96 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +35 -1
- package/esm/data_adapters/dataAdapterCache.js +62 -22
- package/esm/data_adapters/getFeatureAdapter.d.ts +22 -0
- package/esm/data_adapters/getFeatureAdapter.js +27 -0
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +21 -0
- package/esm/data_adapters/getSequenceSubAdapter.js +44 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +52 -2
- package/esm/pluggableElementTypes/AdapterType.js +44 -5
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +6 -1
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +3 -1
- package/esm/pluggableElementTypes/ConnectionType.d.ts +5 -5
- package/esm/pluggableElementTypes/ConnectionType.js +1 -1
- package/esm/pluggableElementTypes/DisplayType.d.ts +10 -0
- package/esm/pluggableElementTypes/DisplayType.js +14 -1
- package/esm/pluggableElementTypes/InternetAccountType.js +1 -1
- package/esm/pluggableElementTypes/PluggableElementBase.d.ts +13 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +13 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +132 -12
- package/esm/pluggableElementTypes/RpcMethodType.js +263 -98
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +19 -9
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +26 -20
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegion.js +18 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.d.ts +5 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithRenameRegions.js +10 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +3 -3
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +3 -1
- package/esm/pluggableElementTypes/TrackType.d.ts +2 -1
- package/esm/pluggableElementTypes/TrackType.js +1 -1
- package/esm/pluggableElementTypes/ViewType.d.ts +2 -1
- package/esm/pluggableElementTypes/ViewType.js +9 -2
- package/esm/pluggableElementTypes/WidgetType.d.ts +2 -2
- package/esm/pluggableElementTypes/WidgetType.js +1 -1
- package/esm/pluggableElementTypes/addMenuItems.d.ts +87 -0
- package/esm/pluggableElementTypes/addMenuItems.js +82 -0
- package/esm/pluggableElementTypes/extendElementType.d.ts +30 -0
- package/esm/pluggableElementTypes/extendElementType.js +68 -0
- package/esm/pluggableElementTypes/index.d.ts +7 -7
- package/esm/pluggableElementTypes/index.js +24 -14
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +70 -15
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +90 -10
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +605 -84
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +172 -64
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +195 -35
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +332 -85
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +167 -16
- package/esm/pluggableElementTypes/models/BaseViewModel.js +111 -16
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +51 -0
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +78 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +163 -29
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +218 -48
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +174 -0
- package/esm/pluggableElementTypes/models/assertDisplayContract.js +246 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -8
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -2
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +39 -20
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +23 -2
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +181 -65
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +191 -89
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +3 -8
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +113 -139
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +55 -0
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +83 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +40 -0
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +115 -0
- package/esm/pluggableElementTypes/models/index.d.ts +6 -3
- package/esm/pluggableElementTypes/models/index.js +10 -8
- package/esm/pluggableElementTypes/models/migrateTrackConfig.d.ts +34 -0
- package/esm/pluggableElementTypes/models/migrateTrackConfig.js +54 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +75 -7
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +9 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +153 -103
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +6 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +70 -74
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +9 -1
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.d.ts +21 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/util.js +51 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.d.ts +29 -0
- package/esm/pluggableElementTypes/models/uriMatchesDomains.js +62 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.d.ts +5 -4
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +20 -10
- package/esm/pluginDefinitions.d.ts +198 -0
- package/esm/pluginDefinitions.js +220 -0
- package/esm/rpc/BaseRpcDriver.d.ts +27 -35
- package/esm/rpc/BaseRpcDriver.js +74 -107
- package/esm/rpc/MainThreadRpcDriver.d.ts +9 -10
- package/esm/rpc/MainThreadRpcDriver.js +18 -29
- package/esm/rpc/RpcClient.d.ts +38 -0
- package/esm/rpc/RpcClient.js +154 -0
- package/esm/rpc/RpcManager.d.ts +116 -27
- package/esm/rpc/RpcManager.js +177 -50
- package/esm/rpc/RpcRegistry.d.ts +265 -0
- package/esm/rpc/RpcRegistry.js +1 -0
- package/esm/rpc/RpcServer.d.ts +41 -0
- package/esm/rpc/RpcServer.js +235 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +71 -24
- package/esm/rpc/WebWorkerRpcDriver.js +312 -27
- package/esm/rpc/byteBudget.d.ts +49 -0
- package/esm/rpc/byteBudget.js +50 -0
- package/esm/rpc/configSchema.d.ts +27 -5
- package/esm/rpc/configSchema.js +40 -16
- package/esm/rpc/coreRpcMethods.d.ts +2 -5
- package/esm/rpc/coreRpcMethods.js +9 -12
- package/esm/rpc/explainTransferError.d.ts +35 -0
- package/esm/rpc/explainTransferError.js +158 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +19 -4
- package/esm/rpc/methods/CoreFreeResources.js +17 -6
- package/esm/rpc/methods/CoreGetExportData.d.ts +5 -18
- package/esm/rpc/methods/CoreGetExportData.js +26 -15
- package/esm/rpc/methods/CoreGetFeatures.d.ts +6 -15
- package/esm/rpc/methods/CoreGetFeatures.js +15 -17
- package/esm/rpc/methods/CoreGetInfo.d.ts +6 -0
- package/esm/rpc/methods/CoreGetInfo.js +12 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +4 -7
- package/esm/rpc/methods/CoreGetMetadata.js +6 -9
- package/esm/rpc/methods/CoreGetRefNames.d.ts +4 -8
- package/esm/rpc/methods/CoreGetRefNames.js +24 -13
- package/esm/rpc/methods/CoreGetRegionByteEstimate.d.ts +6 -0
- package/esm/rpc/methods/CoreGetRegionByteEstimate.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +4 -6
- package/esm/rpc/methods/CoreGetRegions.js +6 -9
- package/esm/rpc/methods/CoreGetSequence.d.ts +4 -11
- package/esm/rpc/methods/CoreGetSequence.js +12 -13
- package/esm/rpc/serializeError/index.d.ts +9 -0
- package/esm/rpc/serializeError/index.js +86 -0
- package/esm/svg/SvgExport.d.ts +30 -0
- package/esm/svg/SvgExport.js +53 -0
- package/esm/svg/constants.d.ts +1 -0
- package/esm/svg/constants.js +5 -0
- package/esm/svg/saveSvgAsImage.d.ts +6 -0
- package/esm/svg/saveSvgAsImage.js +90 -0
- package/esm/svg/svgId.d.ts +42 -0
- package/esm/svg/svgId.js +84 -0
- package/esm/svg/svgReady.d.ts +136 -0
- package/esm/svg/svgReady.js +164 -0
- package/esm/svg/trackNames.d.ts +27 -0
- package/esm/svg/trackNames.js +31 -0
- package/esm/svg/wrapSvgExport.d.ts +12 -0
- package/esm/svg/wrapSvgExport.js +78 -0
- package/esm/ui/ActionLink.d.ts +7 -0
- package/esm/ui/ActionLink.js +9 -0
- package/esm/ui/AddCustomPluginDialog.d.ts +14 -0
- package/esm/ui/AddCustomPluginDialog.js +61 -0
- package/esm/ui/AddGenomePane.d.ts +8 -0
- package/esm/ui/AddGenomePane.js +228 -0
- package/esm/ui/AdvancedOptions.d.ts +6 -0
- package/esm/ui/AdvancedOptions.js +17 -0
- package/esm/ui/AppLogo.d.ts +1 -1
- package/esm/ui/AppLogo.js +2 -2
- package/esm/ui/AssemblySelector.d.ts +5 -8
- package/esm/ui/AssemblySelector.js +8 -26
- package/esm/ui/BaseExportSvgDialog.d.ts +16 -0
- package/esm/ui/BaseExportSvgDialog.js +84 -0
- package/esm/ui/BaseTooltip.d.ts +14 -3
- package/esm/ui/BaseTooltip.js +151 -34
- package/esm/ui/CascadingMenu.d.ts +9 -18
- package/esm/ui/CascadingMenu.js +368 -41
- package/esm/ui/CascadingMenuButton.d.ts +9 -11
- package/esm/ui/CascadingMenuButton.js +36 -18
- package/esm/ui/CascadingMenuHelpDialog.d.ts +2 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -5
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +2 -1
- package/esm/ui/CascadingMenuHelpIconButton.js +18 -9
- package/esm/ui/ColorPicker.d.ts +6 -9
- package/esm/ui/ColorPicker.js +36 -39
- package/esm/ui/ConfirmDialog.d.ts +2 -9
- package/esm/ui/ConfirmDialog.js +6 -9
- package/esm/ui/ContextMenu.d.ts +50 -0
- package/esm/ui/ContextMenu.js +55 -0
- package/esm/ui/CopyToClipboardButton.d.ts +10 -0
- package/esm/ui/CopyToClipboardButton.js +14 -0
- package/esm/ui/Crosshairs.d.ts +10 -0
- package/esm/ui/Crosshairs.js +15 -0
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +1 -1
- package/esm/ui/DOMPurifySanitizedHTML.js +5 -5
- package/esm/ui/DataGridFlexContainer.d.ts +9 -2
- package/esm/ui/DataGridFlexContainer.js +4 -3
- package/esm/ui/Dialog.d.ts +5 -2
- package/esm/ui/Dialog.js +35 -27
- package/esm/ui/DraggableDialog.d.ts +3 -3
- package/esm/ui/DraggableDialog.js +50 -12
- package/esm/ui/DropDownMenu.d.ts +4 -2
- package/esm/ui/DropDownMenu.js +4 -4
- package/esm/ui/EditableTypography.d.ts +3 -1
- package/esm/ui/EditableTypography.js +34 -26
- package/esm/ui/ErrorActions.d.ts +24 -0
- package/esm/ui/ErrorActions.js +20 -0
- package/esm/ui/ErrorBanner.d.ts +7 -0
- package/esm/ui/ErrorBanner.js +35 -0
- package/esm/ui/ErrorBar.d.ts +6 -0
- package/esm/ui/ErrorBar.js +35 -0
- package/esm/ui/ErrorBoundary.d.ts +29 -5
- package/esm/ui/ErrorBoundary.js +32 -2
- package/esm/ui/ErrorMessage.d.ts +2 -4
- package/esm/ui/ErrorMessage.js +17 -52
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceContents.js +3 -3
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +1 -1
- package/esm/ui/ErrorMessageStackTraceDialog.js +57 -96
- package/esm/ui/ErrorOverlay.d.ts +8 -0
- package/esm/ui/ErrorOverlay.js +5 -0
- package/esm/ui/ExportSvgDialog.d.ts +7 -0
- package/esm/ui/ExportSvgDialog.js +9 -0
- package/esm/ui/ExternalLink.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.d.ts +1 -1
- package/esm/ui/FactoryResetDialog.js +6 -15
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -5
- package/esm/ui/FileDropZone.d.ts +25 -0
- package/esm/ui/FileDropZone.js +128 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +1 -1
- package/esm/ui/FileSelector/FileSelector.js +59 -30
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +7 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +61 -47
- package/esm/ui/FileSelector/LocationInput.d.ts +1 -1
- package/esm/ui/FileSelector/LocationInput.js +8 -12
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +5 -5
- package/esm/ui/FileSelector/SourceTypeSelector.js +9 -7
- package/esm/ui/FileSelector/UrlChooser.d.ts +1 -1
- package/esm/ui/FileSelector/UrlChooser.js +26 -2
- package/esm/ui/FileSelector/emptySourceType.d.ts +2 -0
- package/esm/ui/FileSelector/emptySourceType.js +14 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +383 -71
- package/esm/ui/FileSelector/useInternetAccounts.js +13 -6
- package/esm/ui/FileSelector/util.d.ts +58 -3
- package/esm/ui/FileSelector/util.js +128 -11
- package/esm/ui/GpuFallbackButton.d.ts +12 -0
- package/esm/ui/GpuFallbackButton.js +20 -0
- package/esm/ui/HoverMenu.d.ts +12 -3
- package/esm/ui/HoverMenu.js +31 -9
- package/esm/ui/HoverTooltip.d.ts +27 -0
- package/esm/ui/HoverTooltip.js +24 -0
- package/esm/ui/Icons.d.ts +6 -4
- package/esm/ui/Icons.js +9 -0
- package/esm/ui/InfoDialog.d.ts +7 -0
- package/esm/ui/InfoDialog.js +16 -0
- package/esm/ui/InlineMenuControls.d.ts +6 -0
- package/esm/ui/InlineMenuControls.js +17 -0
- package/esm/ui/JexlFilterDialog.d.ts +23 -0
- package/esm/ui/JexlFilterDialog.js +94 -0
- package/esm/ui/LabeledCheckbox.d.ts +9 -0
- package/esm/ui/LabeledCheckbox.js +7 -0
- package/esm/ui/LegendSwatchGlyph.d.ts +7 -0
- package/esm/ui/LegendSwatchGlyph.js +25 -0
- package/esm/ui/LoadingDots.d.ts +1 -0
- package/esm/ui/LoadingDots.js +30 -0
- package/esm/ui/LoadingEllipses.d.ts +17 -1
- package/esm/ui/LoadingEllipses.js +20 -29
- package/esm/ui/LoadingOverlay.d.ts +9 -0
- package/esm/ui/LoadingOverlay.js +137 -0
- package/esm/ui/LoadingProgress.d.ts +16 -0
- package/esm/ui/LoadingProgress.js +16 -0
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +23 -24
- package/esm/ui/Menu.js +1 -1
- package/esm/ui/MenuItemChevron.d.ts +3 -0
- package/esm/ui/MenuItemChevron.js +19 -0
- package/esm/ui/MenuItemEndDecoration.d.ts +4 -0
- package/esm/ui/MenuItemEndDecoration.js +28 -0
- package/esm/ui/MenuItemTrailing.d.ts +12 -0
- package/esm/ui/MenuItemTrailing.js +42 -0
- package/esm/ui/MenuTypes.d.ts +124 -4
- package/esm/ui/MenuTypes.js +13 -1
- package/esm/ui/MonospaceTextField.d.ts +9 -0
- package/esm/ui/MonospaceTextField.js +37 -0
- package/esm/ui/NumberTextField.d.ts +31 -0
- package/esm/ui/NumberTextField.js +33 -0
- package/esm/ui/PaletteContext.d.ts +85 -0
- package/esm/ui/PaletteContext.js +104 -0
- package/esm/ui/PinAdornment.d.ts +5 -0
- package/esm/ui/PinAdornment.js +79 -0
- package/esm/ui/PluggableComponent.d.ts +10 -0
- package/esm/ui/PluggableComponent.js +19 -0
- package/esm/ui/PluggableComponents.d.ts +29 -0
- package/esm/ui/PluggableComponents.js +28 -0
- package/esm/ui/PluggableElements.d.ts +23 -0
- package/esm/ui/PluggableElements.js +24 -0
- package/esm/ui/PluginStoreCard.d.ts +17 -0
- package/esm/ui/PluginStoreCard.js +45 -0
- package/esm/ui/PopoverPicker.d.ts +6 -0
- package/esm/ui/PopoverPicker.js +25 -0
- package/esm/ui/PrerenderedCanvas.d.ts +1 -1
- package/esm/ui/PrerenderedCanvas.js +5 -4
- package/esm/ui/ProgressChip.d.ts +37 -0
- package/esm/ui/ProgressChip.js +66 -0
- package/esm/ui/RedErrorMessageBox.d.ts +1 -1
- package/esm/ui/RedErrorMessageBox.js +9 -3
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +5 -0
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +31 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -0
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +7 -0
- package/esm/ui/RefNameAutocomplete/index.d.ts +22 -0
- package/esm/ui/RefNameAutocomplete/index.js +78 -0
- package/esm/ui/RefNameAutocomplete/util.d.ts +49 -0
- package/esm/ui/RefNameAutocomplete/util.js +168 -0
- package/esm/ui/ReplaceCurrentViewButton.d.ts +19 -0
- package/esm/ui/ReplaceCurrentViewButton.js +22 -0
- package/esm/ui/ResizeHandle.d.ts +13 -7
- package/esm/ui/ResizeHandle.js +42 -55
- package/esm/ui/ReturnToImportFormDialog.d.ts +1 -1
- package/esm/ui/ReturnToImportFormDialog.js +7 -9
- package/esm/ui/SanitizedHTML.d.ts +6 -1
- package/esm/ui/SanitizedHTML.js +7 -47
- package/esm/ui/ScrollEdgeShadow.d.ts +44 -0
- package/esm/ui/ScrollEdgeShadow.js +98 -0
- package/esm/ui/ScrollZoomToggle.d.ts +38 -0
- package/esm/ui/ScrollZoomToggle.js +92 -0
- package/esm/ui/SequenceAdapterInputs.d.ts +9 -0
- package/esm/ui/SequenceAdapterInputs.js +30 -0
- package/esm/ui/SettingsChangesTable.d.ts +14 -0
- package/esm/ui/SettingsChangesTable.js +49 -0
- package/esm/ui/ShareLinkField.d.ts +6 -0
- package/esm/ui/ShareLinkField.js +42 -0
- package/esm/ui/SingleSlider.d.ts +8 -0
- package/esm/ui/SingleSlider.js +11 -0
- package/esm/ui/SizeSliderRow.d.ts +16 -0
- package/esm/ui/SizeSliderRow.js +50 -0
- package/esm/ui/SliderTooltip.d.ts +2 -0
- package/esm/ui/SliderTooltip.js +17 -0
- package/esm/ui/Snackbar.d.ts +4 -2
- package/esm/ui/Snackbar.js +11 -8
- package/esm/ui/SnackbarContents.d.ts +1 -1
- package/esm/ui/SnackbarContents.js +21 -3
- package/esm/ui/SnackbarModel.d.ts +40 -0
- package/esm/ui/SnackbarModel.js +43 -11
- package/esm/ui/StackTraceButton.d.ts +5 -0
- package/esm/ui/StackTraceButton.js +16 -0
- package/esm/ui/StatusProgressBar.d.ts +37 -0
- package/esm/ui/StatusProgressBar.js +76 -0
- package/esm/ui/SubmitDialog.d.ts +6 -0
- package/esm/ui/SubmitDialog.js +9 -0
- package/esm/ui/SubmitForm.d.ts +23 -0
- package/esm/ui/SubmitForm.js +23 -0
- package/esm/ui/SvgColorLegend.d.ts +13 -0
- package/esm/ui/SvgColorLegend.js +65 -0
- package/esm/ui/SvgGradientLegend.d.ts +26 -0
- package/esm/ui/SvgGradientLegend.js +26 -0
- package/esm/ui/TagTextField.d.ts +40 -0
- package/esm/ui/TagTextField.js +32 -0
- package/esm/ui/VerticalScrollbar.d.ts +45 -0
- package/esm/ui/VerticalScrollbar.js +158 -0
- package/esm/ui/ViewLoadingScreen.d.ts +24 -0
- package/esm/ui/ViewLoadingScreen.js +76 -0
- package/esm/ui/addExtensionElement.d.ts +18 -0
- package/esm/ui/addExtensionElement.js +23 -0
- package/esm/ui/buildExtraTrackMenuItems.d.ts +22 -0
- package/esm/ui/buildExtraTrackMenuItems.js +14 -0
- package/esm/ui/colorSwatchStyle.d.ts +9 -0
- package/esm/ui/colorSwatchStyle.js +11 -0
- package/esm/ui/colors.d.ts +61 -8
- package/esm/ui/colors.js +135 -1
- package/esm/ui/extensionSelectors.d.ts +38 -0
- package/esm/ui/extensionSelectors.js +49 -0
- package/esm/ui/filterMenuItems.d.ts +112 -0
- package/esm/ui/filterMenuItems.js +86 -0
- package/esm/ui/formatErrorStack.d.ts +1 -0
- package/esm/ui/formatErrorStack.js +56 -0
- package/esm/ui/gpuFallback.d.ts +33 -0
- package/esm/ui/gpuFallback.js +39 -0
- package/esm/ui/highlightChipReveal.d.ts +32 -0
- package/esm/ui/highlightChipReveal.js +39 -0
- package/esm/ui/hoverBoxStyle.d.ts +11 -0
- package/esm/ui/hoverBoxStyle.js +13 -0
- package/esm/ui/index.d.ts +76 -4
- package/esm/ui/index.js +90 -19
- package/esm/ui/inlineMenuRowWidth.d.ts +1 -0
- package/esm/ui/inlineMenuRowWidth.js +8 -0
- package/esm/ui/launchTargetsMenuItem.d.ts +18 -0
- package/esm/ui/launchTargetsMenuItem.js +24 -0
- package/esm/ui/launchViewMenu.d.ts +4 -0
- package/esm/ui/launchViewMenu.js +36 -0
- package/esm/ui/legendMenuItem.d.ts +38 -0
- package/esm/ui/legendMenuItem.js +44 -0
- package/esm/ui/legendSpec.d.ts +62 -0
- package/esm/ui/legendSpec.js +78 -0
- package/esm/ui/loadingDotKeyframes.d.ts +18 -0
- package/esm/ui/loadingDotKeyframes.js +17 -0
- package/esm/ui/makeSizeMenu.d.ts +30 -0
- package/esm/ui/makeSizeMenu.js +82 -0
- package/esm/ui/mapStackTrace.d.ts +8 -0
- package/esm/ui/mapStackTrace.js +108 -0
- package/esm/ui/measureLegendText.d.ts +1 -0
- package/esm/ui/measureLegendText.js +8 -0
- package/esm/ui/menuItemAdornment.d.ts +33 -0
- package/esm/ui/menuItemAdornment.js +50 -0
- package/esm/ui/menuItems.d.ts +28 -0
- package/esm/ui/menuItems.js +26 -0
- package/esm/ui/menuLabels.d.ts +41 -0
- package/esm/ui/menuLabels.js +43 -0
- package/esm/ui/multiTrackMenuItems.d.ts +19 -0
- package/esm/ui/multiTrackMenuItems.js +15 -0
- package/esm/ui/palette.d.ts +559 -0
- package/esm/ui/palette.js +746 -0
- package/esm/ui/parseError.d.ts +4 -0
- package/esm/ui/parseError.js +18 -0
- package/esm/ui/persistentScrollbarStyle.d.ts +49 -0
- package/esm/ui/persistentScrollbarStyle.js +53 -0
- package/esm/ui/promotableMenuItems.d.ts +19 -0
- package/esm/ui/promotableMenuItems.js +89 -0
- package/esm/ui/promotablePinCoverage.d.ts +44 -0
- package/esm/ui/promotablePinCoverage.js +87 -0
- package/esm/ui/radioSubMenu.d.ts +33 -0
- package/esm/ui/radioSubMenu.js +32 -0
- package/esm/ui/react-colorful.js +5 -1
- package/esm/ui/replaceViewAction.d.ts +31 -0
- package/esm/ui/replaceViewAction.js +39 -0
- package/esm/ui/rewriteExternalAnchors.d.ts +1 -0
- package/esm/ui/rewriteExternalAnchors.js +8 -0
- package/esm/ui/scrollZoomLabels.d.ts +17 -0
- package/esm/ui/scrollZoomLabels.js +22 -0
- package/esm/ui/showSubMenu.d.ts +19 -0
- package/esm/ui/showSubMenu.js +30 -0
- package/esm/ui/sliderScale.d.ts +6 -0
- package/esm/ui/sliderScale.js +30 -0
- package/esm/ui/statusProgressKeyframes.d.ts +6 -0
- package/esm/ui/statusProgressKeyframes.js +14 -0
- package/esm/ui/stripStackTraceMessage.d.ts +1 -0
- package/esm/ui/stripStackTraceMessage.js +9 -0
- package/esm/ui/styleTheme.d.ts +158 -0
- package/esm/ui/styleTheme.js +115 -0
- package/esm/ui/submenuAim.d.ts +30 -0
- package/esm/ui/submenuAim.js +37 -0
- package/esm/ui/theme.d.ts +343 -29
- package/esm/ui/theme.js +258 -342
- package/esm/ui/toggleMenuItems.d.ts +44 -0
- package/esm/ui/toggleMenuItems.js +60 -0
- package/esm/ui/useAssemblySelection.d.ts +153 -0
- package/esm/ui/useAssemblySelection.js +54 -0
- package/esm/ui/useCoalescedPointer.d.ts +36 -0
- package/esm/ui/useCoalescedPointer.js +60 -0
- package/esm/ui/useCopyToClipboard.d.ts +15 -0
- package/esm/ui/useCopyToClipboard.js +41 -0
- package/esm/ui/useExportSvgPreference.d.ts +1 -0
- package/esm/ui/useExportSvgPreference.js +4 -0
- package/esm/ui/useMouseTracking.d.ts +71 -0
- package/esm/ui/useMouseTracking.js +179 -0
- package/esm/ui/useRecentLocations.d.ts +28 -0
- package/esm/ui/useRecentLocations.js +31 -0
- package/esm/ui/wrapComponent.d.ts +47 -0
- package/esm/ui/wrapComponent.js +58 -0
- package/esm/ui/zIndexes.d.ts +28 -0
- package/esm/ui/zIndexes.js +38 -0
- package/esm/util/Base1DUtils.d.ts +204 -16
- package/esm/util/Base1DUtils.js +310 -175
- package/esm/util/Base1DViewModel.d.ts +97 -20
- package/esm/util/Base1DViewModel.js +148 -39
- package/esm/util/FileSaver/index.d.ts +1 -0
- package/esm/util/FileSaver/index.js +27 -0
- package/esm/util/IntervalTree.d.ts +18 -39
- package/esm/util/IntervalTree.js +63 -244
- package/esm/util/SvgCanvas.d.ts +81 -0
- package/esm/util/SvgCanvas.js +500 -0
- package/esm/util/TimeTraveller.d.ts +12 -0
- package/esm/util/TimeTraveller.js +130 -27
- package/esm/util/aborting.d.ts +17 -4
- package/esm/util/aborting.js +30 -25
- package/esm/util/adapterMetadata.d.ts +20 -0
- package/esm/util/adapterMetadata.js +39 -0
- package/esm/util/addAndShowTrack.d.ts +22 -0
- package/esm/util/addAndShowTrack.js +23 -0
- package/esm/util/addRelativeUris.d.ts +17 -0
- package/esm/util/addRelativeUris.js +42 -0
- package/esm/util/addTrackComponent.d.ts +72 -0
- package/esm/util/addTrackComponent.js +53 -0
- package/esm/util/addTrackFromWidget.d.ts +94 -0
- package/esm/util/addTrackFromWidget.js +90 -0
- package/esm/util/analytics.d.ts +32 -3
- package/esm/util/analytics.js +102 -49
- package/esm/util/animationAllowed.d.ts +17 -0
- package/esm/util/animationAllowed.js +22 -0
- package/esm/util/applyInitSettings.d.ts +79 -0
- package/esm/util/applyInitSettings.js +91 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -0
- package/esm/util/applyRowResizeWheel.js +34 -0
- package/esm/util/assemblyConfigUtils.d.ts +144 -0
- package/esm/util/assemblyConfigUtils.js +498 -0
- package/esm/util/bandHeight.d.ts +53 -0
- package/esm/util/bandHeight.js +56 -0
- package/esm/util/bandLayout.d.ts +51 -0
- package/esm/util/bandLayout.js +36 -0
- package/esm/util/bezierConnector.d.ts +14 -0
- package/esm/util/bezierConnector.js +108 -0
- package/esm/util/bgzfWorkerPool.d.ts +78 -0
- package/esm/util/bgzfWorkerPool.js +81 -0
- package/esm/util/blockTypes.d.ts +64 -45
- package/esm/util/blockTypes.js +67 -74
- package/esm/util/bpUtils.d.ts +81 -0
- package/esm/util/bpUtils.js +103 -0
- package/esm/util/cacheBudgets.d.ts +52 -0
- package/esm/util/cacheBudgets.js +52 -0
- package/esm/util/cachedSetup.d.ts +51 -0
- package/esm/util/cachedSetup.js +87 -0
- package/esm/util/calculateDynamicBlocks.d.ts +5 -0
- package/esm/util/calculateDynamicBlocks.js +85 -82
- package/esm/util/calculateStaticBlocks.d.ts +2 -3
- package/esm/util/calculateStaticBlocks.js +48 -71
- package/esm/util/chooseGridPitch.d.ts +9 -0
- package/esm/util/chooseGridPitch.js +31 -0
- package/esm/util/clampToContig.d.ts +26 -0
- package/esm/util/clampToContig.js +28 -0
- package/esm/util/cmpStr.d.ts +1 -0
- package/esm/util/cmpStr.js +7 -0
- package/esm/util/coarseStripHTML.js +3 -15
- package/esm/util/color/cssColorsLevel4.js +6 -2
- package/esm/util/color/index.d.ts +81 -2
- package/esm/util/color/index.js +194 -25
- package/esm/util/color-bits/bit.d.ts +4 -0
- package/esm/util/color-bits/bit.js +37 -0
- package/esm/util/color-bits/convert.d.ts +23 -0
- package/esm/util/color-bits/convert.js +294 -0
- package/esm/util/color-bits/core.d.ts +34 -0
- package/esm/util/color-bits/core.js +67 -0
- package/esm/util/color-bits/format.d.ts +24 -0
- package/esm/util/color-bits/format.js +82 -0
- package/esm/util/color-bits/functions.d.ts +33 -0
- package/esm/util/color-bits/functions.js +70 -0
- package/esm/util/color-bits/index.d.ts +5 -0
- package/esm/util/color-bits/index.js +4 -0
- package/esm/util/color-bits/parse.d.ts +17 -0
- package/esm/util/color-bits/parse.js +382 -0
- package/esm/util/colorBits.d.ts +39 -0
- package/esm/util/colorBits.js +180 -0
- package/esm/util/colorRamp.d.ts +37 -0
- package/esm/util/colorRamp.js +93 -0
- package/esm/util/colord.d.ts +8 -0
- package/esm/util/colord.js +43 -191
- package/esm/util/convertCodingSequenceToPeptides.d.ts +17 -3
- package/esm/util/convertCodingSequenceToPeptides.js +51 -4
- package/esm/util/copyText.d.ts +18 -0
- package/esm/util/copyText.js +30 -0
- package/esm/util/copyToClipboard.d.ts +4 -0
- package/esm/util/copyToClipboard.js +58 -0
- package/esm/util/createStopTokenRotation.d.ts +117 -0
- package/esm/util/createStopTokenRotation.js +147 -0
- package/esm/util/createSvgRasterCanvas.d.ts +7 -0
- package/esm/util/createSvgRasterCanvas.js +22 -0
- package/esm/util/crypto.d.ts +24 -0
- package/esm/util/crypto.js +85 -2
- package/esm/util/dataGridUtils.d.ts +9 -0
- package/esm/util/dataGridUtils.js +36 -0
- package/esm/util/dedupe.js +1 -0
- package/esm/util/deepEqual.d.ts +8 -0
- package/esm/util/deepEqual.js +22 -0
- package/esm/util/deepMerge.d.ts +20 -0
- package/esm/util/deepMerge.js +44 -0
- package/esm/util/diagonalizeRegions.d.ts +23 -0
- package/esm/util/diagonalizeRegions.js +192 -0
- package/esm/util/environment.d.ts +4 -0
- package/esm/util/environment.js +43 -0
- package/esm/util/eventPoint.d.ts +32 -0
- package/esm/util/eventPoint.js +28 -0
- package/esm/util/fetchAndMaybeUnzip.d.ts +6 -0
- package/esm/util/fetchAndMaybeUnzip.js +64 -0
- package/esm/util/fetchContext.d.ts +82 -0
- package/esm/util/fetchContext.js +59 -0
- package/esm/util/fetchHub.d.ts +15 -0
- package/esm/util/fetchHub.js +31 -0
- package/esm/util/fetchJson.d.ts +1 -0
- package/esm/util/fetchJson.js +7 -0
- package/esm/util/fetchPhases.d.ts +77 -0
- package/esm/util/fetchPhases.js +1 -0
- package/esm/util/fetchSeq.d.ts +5 -1
- package/esm/util/fetchSeq.js +18 -6
- package/esm/util/fileHandleStore.d.ts +19 -2
- package/esm/util/fileHandleStore.js +95 -35
- package/esm/util/flatbush/index.d.ts +27 -6
- package/esm/util/flatbush/index.js +194 -218
- package/esm/util/formatBytes.d.ts +9 -0
- package/esm/util/formatBytes.js +18 -0
- package/esm/util/formatFastaStrings.d.ts +13 -0
- package/esm/util/formatFastaStrings.js +13 -0
- package/esm/util/formatGuessers.d.ts +30 -0
- package/esm/util/formatGuessers.js +69 -0
- package/esm/util/formatRelativeTime.d.ts +1 -0
- package/esm/util/formatRelativeTime.js +25 -0
- package/esm/util/frameCoalescer.d.ts +30 -0
- package/esm/util/frameCoalescer.js +22 -0
- package/esm/util/freezeDeep.d.ts +28 -0
- package/esm/util/freezeDeep.js +41 -0
- package/esm/util/geneticCodes.d.ts +56 -0
- package/esm/util/geneticCodes.js +371 -0
- package/esm/util/getFileName.d.ts +11 -0
- package/esm/util/getFileName.js +34 -0
- package/esm/util/getLocationUri.d.ts +49 -0
- package/esm/util/getLocationUri.js +63 -0
- package/esm/util/getRelativeX.d.ts +4 -0
- package/esm/util/getRelativeX.js +7 -0
- package/esm/util/getStr.d.ts +6 -0
- package/esm/util/getStr.js +15 -0
- package/esm/util/highlights.d.ts +21 -0
- package/esm/util/highlights.js +100 -0
- package/esm/util/hooks.d.ts +160 -0
- package/esm/util/hooks.js +416 -0
- package/esm/util/htmlText.d.ts +13 -0
- package/esm/util/htmlText.js +66 -0
- package/esm/util/idMaker.d.ts +1 -1
- package/esm/util/idMaker.js +31 -18
- package/esm/util/index.d.ts +82 -268
- package/esm/util/index.js +136 -853
- package/esm/util/indexCandidates.d.ts +50 -0
- package/esm/util/indexCandidates.js +101 -0
- package/esm/util/installClearHoverOnSurfaceMove.d.ts +40 -0
- package/esm/util/installClearHoverOnSurfaceMove.js +41 -0
- package/esm/util/installFetch.d.ts +194 -0
- package/esm/util/installFetch.js +178 -0
- package/esm/util/installInitAutorun.d.ts +62 -0
- package/esm/util/installInitAutorun.js +107 -0
- package/esm/util/intervals.d.ts +20 -0
- package/esm/util/intervals.js +37 -0
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +10 -11
- package/esm/util/io/RemoteFileWithRangeCache.js +10 -148
- package/esm/util/io/index.d.ts +39 -2
- package/esm/util/io/index.js +115 -12
- package/esm/util/isDataCurrent.d.ts +7 -0
- package/esm/util/isDataCurrent.js +9 -0
- package/esm/util/isWebWorker.js +1 -2
- package/esm/util/iupac.d.ts +4 -0
- package/esm/util/iupac.js +59 -0
- package/esm/util/jexl.js +141 -17
- package/esm/util/jexlFilters.d.ts +75 -0
- package/esm/util/jexlFilters.js +49 -0
- package/esm/util/jexlStrings.d.ts +22 -1
- package/esm/util/jexlStrings.js +21 -14
- package/esm/util/layouts/GranularRectLayout.d.ts +13 -25
- package/esm/util/layouts/GranularRectLayout.js +99 -356
- package/esm/util/layouts/index.d.ts +1 -7
- package/esm/util/layouts/index.js +2 -6
- package/esm/util/layouts/intervalUtils.d.ts +12 -1
- package/esm/util/layouts/intervalUtils.js +13 -31
- package/esm/util/layouts/placeRect.d.ts +50 -0
- package/esm/util/layouts/placeRect.js +97 -0
- package/esm/util/leadingEdgeAutorun.d.ts +40 -0
- package/esm/util/leadingEdgeAutorun.js +51 -0
- package/esm/util/librpc.d.ts +5 -2
- package/esm/util/librpc.js +6 -1
- package/esm/util/linkify.js +2 -0
- package/esm/util/locString.d.ts +72 -0
- package/esm/util/locString.js +178 -7
- package/esm/util/locStringsToRegions.d.ts +10 -0
- package/esm/util/locStringsToRegions.js +35 -0
- package/esm/util/localStorage.d.ts +36 -0
- package/esm/util/localStorage.js +137 -0
- package/esm/util/makeAssembly.d.ts +54 -0
- package/esm/util/makeAssembly.js +52 -0
- package/esm/util/makeTrackId.d.ts +14 -0
- package/esm/util/makeTrackId.js +14 -0
- package/esm/util/matchTrackId.d.ts +11 -0
- package/esm/util/matchTrackId.js +14 -0
- package/esm/util/measureText.d.ts +24 -0
- package/esm/util/measureText.js +51 -0
- package/esm/util/mst-reflection.d.ts +14 -4
- package/esm/util/mst-reflection.js +33 -32
- package/esm/util/mstUtils.d.ts +89 -0
- package/esm/util/mstUtils.js +122 -0
- package/esm/util/nanoid.d.ts +0 -4
- package/esm/util/nanoid.js +10 -20
- package/esm/util/numericUtils.d.ts +20 -0
- package/esm/util/numericUtils.js +127 -0
- package/esm/util/objectUtils.d.ts +2 -0
- package/esm/util/objectUtils.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -4
- package/esm/util/offscreenCanvasPonyfill.js +5 -47
- package/esm/util/openDisplays.d.ts +23 -0
- package/esm/util/openDisplays.js +79 -0
- package/esm/util/openFeatureWidget.d.ts +33 -0
- package/esm/util/openFeatureWidget.js +64 -0
- package/esm/util/paintLayer.d.ts +32 -0
- package/esm/util/paintLayer.js +33 -0
- package/esm/util/parentWalk.d.ts +32 -0
- package/esm/util/parentWalk.js +84 -0
- package/esm/util/parseLineByLine.d.ts +45 -2
- package/esm/util/parseLineByLine.js +156 -15
- package/esm/util/parseMotifList.d.ts +17 -0
- package/esm/util/parseMotifList.js +69 -0
- package/esm/util/pluginStore.d.ts +113 -0
- package/esm/util/pluginStore.js +253 -0
- package/esm/util/pointerPresence.d.ts +5 -0
- package/esm/util/pointerPresence.js +21 -0
- package/esm/util/progress.d.ts +459 -0
- package/esm/util/progress.js +820 -0
- package/esm/util/range.d.ts +42 -1
- package/esm/util/range.js +59 -2
- package/esm/util/renameRegions.d.ts +21 -0
- package/esm/util/renameRegions.js +129 -0
- package/esm/util/renderToStaticMarkup.d.ts +2 -0
- package/esm/util/renderToStaticMarkup.js +50 -0
- package/esm/util/reorder.d.ts +35 -0
- package/esm/util/reorder.js +83 -0
- package/esm/util/resolveRowHeight.d.ts +27 -0
- package/esm/util/resolveRowHeight.js +30 -0
- package/esm/util/revlist.d.ts +13 -0
- package/esm/util/revlist.js +14 -0
- package/esm/util/rowStackGeometry.d.ts +66 -0
- package/esm/util/rowStackGeometry.js +70 -0
- package/esm/util/rpc.d.ts +16 -1
- package/esm/util/rpc.js +12 -1
- package/esm/util/rxjs.d.ts +14 -1
- package/esm/util/rxjs.js +39 -10
- package/esm/util/sameStrings.d.ts +16 -0
- package/esm/util/sameStrings.js +20 -0
- package/esm/util/scrollLatch.d.ts +4 -0
- package/esm/util/scrollLatch.js +59 -0
- package/esm/util/selectNamedRegions.d.ts +136 -0
- package/esm/util/selectNamedRegions.js +222 -0
- package/esm/util/seqUtils.d.ts +17 -0
- package/esm/util/seqUtils.js +80 -0
- package/esm/util/sessionServices.d.ts +29 -0
- package/esm/util/sessionServices.js +46 -0
- package/esm/util/sessionSharing.d.ts +38 -0
- package/esm/util/sessionSharing.js +154 -0
- package/esm/util/sessionStorage.d.ts +1 -0
- package/esm/util/sessionStorage.js +15 -0
- package/esm/util/setStackTraceLimit.d.ts +6 -0
- package/esm/util/setStackTraceLimit.js +20 -0
- package/esm/util/simpleFeature.d.ts +112 -4
- package/esm/util/simpleFeature.js +181 -29
- package/esm/util/springAnimate.d.ts +20 -0
- package/esm/util/springAnimate.js +80 -0
- package/esm/util/stats.d.ts +25 -2
- package/esm/util/stats.js +39 -8
- package/esm/util/stopToken.d.ts +207 -15
- package/esm/util/stopToken.js +403 -55
- package/esm/util/stringUtils.d.ts +5 -0
- package/esm/util/stringUtils.js +34 -0
- package/esm/util/svgColorProps.d.ts +7 -0
- package/esm/util/svgColorProps.js +28 -0
- package/esm/util/tabix.d.ts +120 -0
- package/esm/util/tabix.js +143 -0
- package/esm/util/tags.d.ts +2 -0
- package/esm/util/tags.js +5 -0
- package/esm/util/temporaryAssembly.d.ts +21 -0
- package/esm/util/temporaryAssembly.js +29 -0
- package/esm/util/tickLabels.d.ts +36 -0
- package/esm/util/tickLabels.js +45 -0
- package/esm/util/timeGate.d.ts +26 -0
- package/esm/util/timeGate.js +79 -0
- package/esm/util/trackConfigDelta.d.ts +84 -0
- package/esm/util/trackConfigDelta.js +190 -0
- package/esm/util/tracks.d.ts +350 -30
- package/esm/util/tracks.js +574 -192
- package/esm/util/tss-react/cssAndCx.js +11 -66
- package/esm/util/tss-react/index.d.ts +11 -2
- package/esm/util/tss-react/index.js +9 -2
- package/esm/util/tss-react/makeStyles.js +7 -4
- package/esm/util/tss-react/mergeClasses.js +1 -0
- package/esm/util/tss-react/tools/classnames.d.ts +3 -0
- package/esm/util/tss-react/tools/classnames.js +3 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +18 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +1 -1
- package/esm/util/tss-react/types.js +1 -6
- package/esm/util/types/ElementId.js +1 -1
- package/esm/util/types/data.d.ts +75 -0
- package/esm/util/types/data.js +41 -0
- package/esm/util/types/index.d.ts +358 -119
- package/esm/util/types/index.js +87 -64
- package/esm/util/types/isAny.d.ts +11 -0
- package/esm/util/types/isAny.js +1 -0
- package/esm/util/types/mst.d.ts +71 -47
- package/esm/util/types/mst.js +27 -22
- package/esm/util/types/predicate.d.ts +9 -0
- package/esm/util/types/predicate.js +1 -0
- package/esm/util/types/renderingServices.d.ts +16 -0
- package/esm/util/types/renderingServices.js +1 -0
- package/esm/util/types/services.d.ts +55 -0
- package/esm/util/types/services.js +10 -0
- package/esm/util/types/util.d.ts +8 -2
- package/esm/util/unzip.d.ts +1 -0
- package/esm/util/unzip.js +6 -0
- package/esm/util/useEventCallback.d.ts +1 -0
- package/esm/util/useEventCallback.js +16 -0
- package/esm/util/useFeatureSequence.d.ts +13 -7
- package/esm/util/useFeatureSequence.js +56 -78
- package/esm/util/useFetch.d.ts +56 -0
- package/esm/util/useFetch.js +188 -0
- package/esm/util/useFetchPlugins.d.ts +12 -0
- package/esm/util/useFetchPlugins.js +14 -0
- package/esm/util/useMeasure.d.ts +11 -1
- package/esm/util/useMeasure.js +20 -6
- package/esm/util/usePanZoom.d.ts +75 -0
- package/esm/util/usePanZoom.js +175 -0
- package/esm/util/usePanelVirtualScroll.d.ts +37 -0
- package/esm/util/usePanelVirtualScroll.js +42 -0
- package/esm/util/usePointerDrag.d.ts +37 -0
- package/esm/util/usePointerDrag.js +61 -0
- package/esm/util/useRafCommit.d.ts +4 -0
- package/esm/util/useRafCommit.js +50 -0
- package/esm/util/useResizeDrag.d.ts +91 -0
- package/esm/util/useResizeDrag.js +105 -0
- package/esm/util/useRowVirtualScroll.d.ts +32 -0
- package/esm/util/useRowVirtualScroll.js +63 -0
- package/esm/util/useVirtualScrollWheel.d.ts +7 -0
- package/esm/util/useVirtualScrollWheel.js +108 -0
- package/esm/util/viewStatus.d.ts +58 -0
- package/esm/util/viewStatus.js +20 -0
- package/esm/util/virtualRange.d.ts +36 -0
- package/esm/util/virtualRange.js +26 -0
- package/esm/util/webStorage.d.ts +26 -0
- package/esm/util/webStorage.js +92 -0
- package/esm/util/wheelZoom.d.ts +59 -0
- package/esm/util/wheelZoom.js +231 -0
- package/esm/util/whenViewSettled.d.ts +27 -0
- package/esm/util/whenViewSettled.js +28 -0
- package/esm/util/withFeatureDetails.d.ts +34 -0
- package/esm/util/withFeatureDetails.js +59 -0
- package/package.json +240 -820
- package/esm/ReExports/DataGrid.d.ts +0 -1
- package/esm/ReExports/DataGrid.js +0 -1
- package/esm/configuration/util.d.ts +0 -10
- package/esm/configuration/util.js +0 -123
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -18
- package/esm/data_adapters/util.d.ts +0 -1
- package/esm/data_adapters/util.js +0 -6
- package/esm/pluggableElementTypes/GlyphType.d.ts +0 -43
- package/esm/pluggableElementTypes/GlyphType.js +0 -18
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +0 -5
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +0 -17
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -52
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +0 -78
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -4
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -4
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +0 -77
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -31
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +0 -40
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +0 -28
- package/esm/pluggableElementTypes/renderers/RendererType.js +0 -20
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -58
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -108
- package/esm/pluggableElementTypes/renderers/index.d.ts +0 -6
- package/esm/pluggableElementTypes/renderers/index.js +0 -6
- package/esm/pluggableElementTypes/renderers/util.d.ts +0 -3
- package/esm/pluggableElementTypes/renderers/util.js +0 -14
- package/esm/rpc/baseRpcConfig.d.ts +0 -8
- package/esm/rpc/baseRpcConfig.js +0 -10
- package/esm/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/esm/rpc/mainThreadRpcConfig.js +0 -8
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +0 -25
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDetails.js +0 -24
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/esm/rpc/methods/CoreGetFileInfo.js +0 -15
- package/esm/rpc/methods/CoreRender.d.ts +0 -14
- package/esm/rpc/methods/CoreRender.js +0 -40
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +0 -16
- package/esm/rpc/methods/CoreSaveFeatureData.js +0 -32
- package/esm/rpc/methods/util.d.ts +0 -15
- package/esm/rpc/methods/util.js +0 -7
- package/esm/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/esm/rpc/webWorkerRpcConfig.js +0 -8
- package/esm/ui/MenuButton.d.ts +0 -1
- package/esm/ui/MenuButton.js +0 -1
- package/esm/ui/MenuItems.d.ts +0 -15
- package/esm/ui/MenuItems.js +0 -59
- package/esm/ui/useEvent.d.ts +0 -1
- package/esm/ui/useEvent.js +0 -10
- package/esm/util/blobToDataURL.d.ts +0 -1
- package/esm/util/blobToDataURL.js +0 -14
- package/esm/util/compositeMap.d.ts +0 -11
- package/esm/util/compositeMap.js +0 -59
- package/esm/util/flatqueue/index.d.ts +0 -11
- package/esm/util/flatqueue/index.js +0 -61
- package/esm/util/layouts/BaseLayout.d.ts +0 -30
- package/esm/util/layouts/MultiLayout.d.ts +0 -12
- package/esm/util/layouts/MultiLayout.js +0 -40
- package/esm/util/layouts/PileupLayout.d.ts +0 -41
- package/esm/util/layouts/PileupLayout.js +0 -202
- package/esm/util/layouts/PrecomputedLayout.d.ts +0 -30
- package/esm/util/layouts/PrecomputedLayout.js +0 -71
- package/esm/util/layouts/SceneGraph.d.ts +0 -31
- package/esm/util/layouts/SceneGraph.js +0 -121
- package/esm/util/makeAbortableReaction.d.ts +0 -3
- package/esm/util/makeAbortableReaction.js +0 -47
- package/esm/util/map-obj/index.d.ts +0 -13
- package/esm/util/map-obj/index.js +0 -92
- package/esm/util/nextTick.d.ts +0 -1
- package/esm/util/nextTick.js +0 -3
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +0 -5
- package/esm/util/offscreenCanvasGetSerializingSvg.js +0 -9
- package/esm/util/offscreenCanvasUtils.d.ts +0 -12
- package/esm/util/offscreenCanvasUtils.js +0 -19
- package/esm/util/renderToAbstractCanvas.d.ts +0 -17
- package/esm/util/renderToAbstractCanvas.js +0 -53
- package/esm/util/transferables.d.ts +0 -2
- package/esm/util/transferables.js +0 -35
- package/esm/util/tss-react/mui/index.d.ts +0 -1
- package/esm/util/tss-react/mui/index.js +0 -1
- package/esm/util/tss-react/mui/mui.d.ts +0 -10
- package/esm/util/tss-react/mui/mui.js +0 -5
- package/esm/util/when.d.ts +0 -1
- package/esm/util/when.js +0 -1
- /package/esm/{data_adapters/BaseAdapter/BaseOptions.js → configuration/promotablePin.js} +0 -0
- /package/esm/{util/layouts/BaseLayout.js → data_adapters/BaseAdapter/CytobandAdapter.js} +0 -0
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Restart clip-id numbering for a new export document.
|
|
3
|
+
*
|
|
4
|
+
* Without it the counter runs for the lifetime of the process, so an export is
|
|
5
|
+
* numbered from wherever the previous one stopped and the same view exported
|
|
6
|
+
* twice differs in every clip id. That is the churn `svgNodeId` was written to
|
|
7
|
+
* get rid of, arriving by a second route: diffing two saved SVGs shows changes
|
|
8
|
+
* that aren't real, and `jest -t` on any export test but the first fails its
|
|
9
|
+
* checked-in snapshot with a diff that is nothing but renumbering.
|
|
10
|
+
*
|
|
11
|
+
* Called by `wrapSvgExport`, and safe there and only there: the
|
|
12
|
+
* `renderToStaticMarkup` it wraps is synchronous, so every `PaintLayer` in the
|
|
13
|
+
* document draws before any other export can begin. Anything that resets on a
|
|
14
|
+
* boundary an `await` can cross would let two exports share a numbering run.
|
|
15
|
+
*/
|
|
16
|
+
export declare function resetSvgClipIds(): void;
|
|
17
|
+
export declare class SvgCanvas {
|
|
18
|
+
private parts;
|
|
19
|
+
private pathData;
|
|
20
|
+
private stack;
|
|
21
|
+
private pendingGroups;
|
|
22
|
+
private openGroups;
|
|
23
|
+
fillStyle: string | CanvasGradient | CanvasPattern;
|
|
24
|
+
strokeStyle: string | CanvasGradient | CanvasPattern;
|
|
25
|
+
lineWidth: number;
|
|
26
|
+
font: string;
|
|
27
|
+
textAlign: CanvasTextAlign;
|
|
28
|
+
textBaseline: CanvasTextBaseline;
|
|
29
|
+
lineCap: CanvasLineCap;
|
|
30
|
+
lineJoin: CanvasLineJoin;
|
|
31
|
+
private lineDash;
|
|
32
|
+
private a;
|
|
33
|
+
private b;
|
|
34
|
+
private c;
|
|
35
|
+
private d;
|
|
36
|
+
private e;
|
|
37
|
+
private f;
|
|
38
|
+
private get axisAligned();
|
|
39
|
+
private transformPoint;
|
|
40
|
+
private transformSize;
|
|
41
|
+
private originMatrixAttr;
|
|
42
|
+
private transformRect;
|
|
43
|
+
private textAnchor;
|
|
44
|
+
private paintAttr;
|
|
45
|
+
private strokeAttrs;
|
|
46
|
+
private emit;
|
|
47
|
+
save(): void;
|
|
48
|
+
restore(): void;
|
|
49
|
+
translate(x: number, y: number): void;
|
|
50
|
+
scale(x: number, y: number): void;
|
|
51
|
+
rotate(angle: number): void;
|
|
52
|
+
resetTransform(): void;
|
|
53
|
+
setTransform(a: number, b: number, c: number, d: number, e: number, f: number): void;
|
|
54
|
+
transform(a: number, b: number, c: number, d: number, e: number, f: number): void;
|
|
55
|
+
setLineDash(segments: number[]): void;
|
|
56
|
+
getLineDash(): number[];
|
|
57
|
+
fillRect(x: number, y: number, w: number, h: number): void;
|
|
58
|
+
clearRect(_x: number, _y: number, _w: number, _h: number): void;
|
|
59
|
+
strokeRect(x: number, y: number, w: number, h: number): void;
|
|
60
|
+
beginPath(): void;
|
|
61
|
+
moveTo(x: number, y: number): void;
|
|
62
|
+
lineTo(x: number, y: number): void;
|
|
63
|
+
arc(x: number, y: number, radius: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
|
|
64
|
+
ellipse(x: number, y: number, radiusX: number, radiusY: number, rotation: number, startAngle: number, endAngle: number, counterclockwise?: boolean): void;
|
|
65
|
+
bezierCurveTo(cp1x: number, cp1y: number, cp2x: number, cp2y: number, x: number, y: number): void;
|
|
66
|
+
quadraticCurveTo(cpx: number, cpy: number, x: number, y: number): void;
|
|
67
|
+
rect(x: number, y: number, w: number, h: number): void;
|
|
68
|
+
closePath(): void;
|
|
69
|
+
stroke(): void;
|
|
70
|
+
fill(): void;
|
|
71
|
+
private dominantBaseline;
|
|
72
|
+
fillText(text: string, x: number, y: number): void;
|
|
73
|
+
strokeText(text: string, x: number, y: number): void;
|
|
74
|
+
drawImage(..._args: unknown[]): void;
|
|
75
|
+
putImageData(..._args: unknown[]): void;
|
|
76
|
+
clip(..._args: unknown[]): void;
|
|
77
|
+
measureText(text: string): {
|
|
78
|
+
width: number;
|
|
79
|
+
};
|
|
80
|
+
getSerializedSvg(): string;
|
|
81
|
+
}
|
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
import { measureText as measureTextWidth } from './measureText.js';
|
|
2
|
+
const XML_ESCAPES = {
|
|
3
|
+
'&': '&',
|
|
4
|
+
'<': '<',
|
|
5
|
+
'>': '>',
|
|
6
|
+
'"': '"',
|
|
7
|
+
};
|
|
8
|
+
function escapeXml(s) {
|
|
9
|
+
return s.replaceAll(/[&<>"]/g, c => XML_ESCAPES[c]);
|
|
10
|
+
}
|
|
11
|
+
// CSS font shorthand is [style] [variant] [weight] [stretch] <size>[/line-height]
|
|
12
|
+
// <family>, so the tokens before the size have to be captured too: dropping them
|
|
13
|
+
// rendered every `bold Npx ...` label (MAF codons, alignment read labels) at
|
|
14
|
+
// regular weight in an SVG export while the canvas drew it bold.
|
|
15
|
+
const fontShorthandRe = /^(.*?)(\d+(?:\.\d+)?)px(?:\/\S+)?\s+(.+)$/;
|
|
16
|
+
const fontWeightTokens = new Set(['bold', 'bolder', 'lighter']);
|
|
17
|
+
const fontStyleTokens = new Set(['italic', 'oblique']);
|
|
18
|
+
// CSS font shorthand broken into the parts both consumers below need. One parse,
|
|
19
|
+
// because they are the emitted size/family and the *measured* size/family, and a
|
|
20
|
+
// string measured in one face and painted in another is the drift the whole
|
|
21
|
+
// class exists to avoid. A bare "12px" (no family) still yields its size.
|
|
22
|
+
function parseFont(font) {
|
|
23
|
+
const m = fontShorthandRe.exec(font);
|
|
24
|
+
return m
|
|
25
|
+
? { prefix: m[1] ?? '', size: m[2], family: m[3] ?? '' }
|
|
26
|
+
: { prefix: '', size: `${Number.parseFloat(font) || 10}`, family: '' };
|
|
27
|
+
}
|
|
28
|
+
// Parse CSS font shorthand like "10px sans-serif" or "bold 12px monospace" into
|
|
29
|
+
// SVG-compatible attributes. The default sans-serif family is left off so
|
|
30
|
+
// feature labels match the raw-JSX <text> elements (ruler, scalebar, etc.),
|
|
31
|
+
// which set no family either; an explicitly-set family is still emitted.
|
|
32
|
+
function fontAttrs(font) {
|
|
33
|
+
const { prefix, size, family } = parseFont(font);
|
|
34
|
+
const tokens = prefix.split(/\s+/).filter(Boolean);
|
|
35
|
+
const weight = tokens.find(t => fontWeightTokens.has(t) || /^\d{1,4}$/.test(t));
|
|
36
|
+
const style = tokens.find(t => fontStyleTokens.has(t));
|
|
37
|
+
return [
|
|
38
|
+
` font-size="${size}"`,
|
|
39
|
+
family === '' || family === 'sans-serif' ? '' : ` font-family="${family}"`,
|
|
40
|
+
weight ? ` font-weight="${weight}"` : '',
|
|
41
|
+
style ? ` font-style="${style}"` : '',
|
|
42
|
+
].join('');
|
|
43
|
+
}
|
|
44
|
+
// SVG ids are document-global (see svg/svgId.ts), so this counter has to be
|
|
45
|
+
// too: one export mounts many SvgCanvas instances — a PaintLayer per display,
|
|
46
|
+
// per band, per legend — and a per-instance counter would have every one of them
|
|
47
|
+
// mint `svgcanvas-clip-0`, whereupon `url(#svgcanvas-clip-0)` resolves to the
|
|
48
|
+
// first and every later layer is clipped to some other layer's rect.
|
|
49
|
+
//
|
|
50
|
+
// Document-global, not process-global: `resetSvgClipIds` below.
|
|
51
|
+
let clipIdCounter = 0;
|
|
52
|
+
/**
|
|
53
|
+
* Restart clip-id numbering for a new export document.
|
|
54
|
+
*
|
|
55
|
+
* Without it the counter runs for the lifetime of the process, so an export is
|
|
56
|
+
* numbered from wherever the previous one stopped and the same view exported
|
|
57
|
+
* twice differs in every clip id. That is the churn `svgNodeId` was written to
|
|
58
|
+
* get rid of, arriving by a second route: diffing two saved SVGs shows changes
|
|
59
|
+
* that aren't real, and `jest -t` on any export test but the first fails its
|
|
60
|
+
* checked-in snapshot with a diff that is nothing but renumbering.
|
|
61
|
+
*
|
|
62
|
+
* Called by `wrapSvgExport`, and safe there and only there: the
|
|
63
|
+
* `renderToStaticMarkup` it wraps is synchronous, so every `PaintLayer` in the
|
|
64
|
+
* document draws before any other export can begin. Anything that resets on a
|
|
65
|
+
* boundary an `await` can cross would let two exports share a numbering run.
|
|
66
|
+
*/
|
|
67
|
+
export function resetSvgClipIds() {
|
|
68
|
+
clipIdCounter = 0;
|
|
69
|
+
}
|
|
70
|
+
export class SvgCanvas {
|
|
71
|
+
parts = [];
|
|
72
|
+
pathData = '';
|
|
73
|
+
stack = [];
|
|
74
|
+
// Clip groups `clip()` has opened but not yet written. Only a drawn element
|
|
75
|
+
// flushes them (`emit`), so a clip nothing was drawn inside is dropped
|
|
76
|
+
// entirely rather than serialized as a dead `<clipPath>` + empty `<g>`. See
|
|
77
|
+
// `clip()`.
|
|
78
|
+
pendingGroups = [];
|
|
79
|
+
// Flushed groups still awaiting their `</g>`.
|
|
80
|
+
openGroups = 0;
|
|
81
|
+
fillStyle = '#000';
|
|
82
|
+
strokeStyle = '#000';
|
|
83
|
+
lineWidth = 1;
|
|
84
|
+
font = '10px sans-serif';
|
|
85
|
+
textAlign = 'start';
|
|
86
|
+
textBaseline = 'alphabetic';
|
|
87
|
+
lineCap = 'butt';
|
|
88
|
+
lineJoin = 'miter';
|
|
89
|
+
// No `globalAlpha` and no `globalCompositeOperation`, deliberately: neither
|
|
90
|
+
// has an SVG equivalent this class could emit, so accepting one would let a
|
|
91
|
+
// painter set it, see it work on screen, and get a silently different export.
|
|
92
|
+
// Absent, the same line is a compile error against `Ctx2D`. That is already
|
|
93
|
+
// the rule for `globalAlpha` — the canvas feature renderer, the dotplot
|
|
94
|
+
// painter and MAF's inversion hatch each fold their opacity into an `rgba()`
|
|
95
|
+
// fill and say why. `globalCompositeOperation` was declared and save/restored
|
|
96
|
+
// but never emitted, so it was the half-kept version of the same idea.
|
|
97
|
+
lineDash = [];
|
|
98
|
+
// The CTM, as the SVG `matrix(a b c d e f)` affine:
|
|
99
|
+
// x' = a*x + c*y + e y' = b*x + d*y + f
|
|
100
|
+
// A full matrix rather than the separate translate/scale/rotate scalars this
|
|
101
|
+
// used to keep, because those composed in the wrong order: canvas
|
|
102
|
+
// `translate; scale; rotate` means rotate-then-scale (the last call applies
|
|
103
|
+
// first), while the scalars applied scale first. Identical for a uniform
|
|
104
|
+
// scale, but hic's fit-to-height triangle scales y and x differently, so its
|
|
105
|
+
// export came out tilted off the diagonal (proven in
|
|
106
|
+
// plugins/hic/.../svgExportGeometry.test.ts).
|
|
107
|
+
a = 1;
|
|
108
|
+
b = 0;
|
|
109
|
+
c = 0;
|
|
110
|
+
d = 1;
|
|
111
|
+
e = 0;
|
|
112
|
+
f = 0;
|
|
113
|
+
// No rotation/skew term, so a rect stays a rect and `x/y/width/height` can
|
|
114
|
+
// express it. Every caller but hic stays here.
|
|
115
|
+
get axisAligned() {
|
|
116
|
+
return this.b === 0 && this.c === 0;
|
|
117
|
+
}
|
|
118
|
+
transformPoint(x, y) {
|
|
119
|
+
return [this.a * x + this.c * y + this.e, this.b * x + this.d * y + this.f];
|
|
120
|
+
}
|
|
121
|
+
// Axis-aligned only — a rotated CTM shares its width between both axes, and
|
|
122
|
+
// the callers that combine the two emit the matrix instead of pre-sizing.
|
|
123
|
+
transformSize(w, h) {
|
|
124
|
+
return [w * Math.abs(this.a), h * Math.abs(this.d)];
|
|
125
|
+
}
|
|
126
|
+
// Places a shape's local origin at `x,y` under the current CTM, keeping only
|
|
127
|
+
// the linear part in the matrix. The caller then emits the shape at local
|
|
128
|
+
// 0,0.
|
|
129
|
+
//
|
|
130
|
+
// Folding the origin into the translation this way is what keeps the export's
|
|
131
|
+
// 2-decimal `transform` rounding (wrapSvgExport) harmless: a/b/c/d are
|
|
132
|
+
// unitless multipliers, so rounding them displaces a point in proportion to
|
|
133
|
+
// its coordinate — 0.005 of error across a 1000px layer is 5px. Rounded
|
|
134
|
+
// translations are plain pixels, and the leftover rounding of a/b/c/d then
|
|
135
|
+
// only perturbs the shape's own width and height (sub-0.05px for a bin).
|
|
136
|
+
originMatrixAttr(x, y) {
|
|
137
|
+
const { a, b, c, d } = this;
|
|
138
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
139
|
+
return ` transform="matrix(${a} ${b} ${c} ${d} ${tx} ${ty})"`;
|
|
140
|
+
}
|
|
141
|
+
// Rects arrive as origin + size, but a negative scale flips which corner the
|
|
142
|
+
// origin lands on: under scale(-1, 1) the local left edge `x` becomes the
|
|
143
|
+
// right edge, so anchoring at transformPoint(x, y) and extending right by
|
|
144
|
+
// `w` covers the neighboring `w` of the canvas — the rect is drawn a full
|
|
145
|
+
// width off. Anchor on whichever corner ends up top-left instead.
|
|
146
|
+
// `transformSize` stays magnitude-only because an SVG width/height can't be
|
|
147
|
+
// negative. A no-op for positive scales (every caller today), which is why
|
|
148
|
+
// this was never noticed.
|
|
149
|
+
//
|
|
150
|
+
// Axis-aligned CTMs only — callers reach this through the `axisAligned`
|
|
151
|
+
// branches, and a rotated/skewed CTM goes through `originMatrixAttr` instead
|
|
152
|
+
// (which handles mirroring for free, since the matrix transforms the rect's
|
|
153
|
+
// own geometry).
|
|
154
|
+
//
|
|
155
|
+
// A negative *size* argument (`fillRect(x, y, -w, h)`, which a real canvas
|
|
156
|
+
// treats as the same rect anchored at `x-w`) is NOT normalized here — SVG
|
|
157
|
+
// would emit `width="-w"` and silently not render. Callers must pass a
|
|
158
|
+
// non-negative size; spans resolve both edges and take
|
|
159
|
+
// `left = min(x1,x2)` / `w = abs(x2-x1)` (see render-core/CLAUDE.md), the
|
|
160
|
+
// same convention that keeps reversed blocks correct.
|
|
161
|
+
transformRect(x, y, w, h) {
|
|
162
|
+
const [tx, ty] = this.transformPoint(this.a < 0 ? x + w : x, this.d < 0 ? y + h : y);
|
|
163
|
+
const [tw, th] = this.transformSize(w, h);
|
|
164
|
+
return [tx, ty, tw, th];
|
|
165
|
+
}
|
|
166
|
+
textAnchor() {
|
|
167
|
+
return this.textAlign === 'center'
|
|
168
|
+
? 'middle'
|
|
169
|
+
: this.textAlign === 'right' || this.textAlign === 'end'
|
|
170
|
+
? 'end'
|
|
171
|
+
: 'start';
|
|
172
|
+
}
|
|
173
|
+
// Split rgba(r,g,b,a) into separate color + opacity SVG attributes for
|
|
174
|
+
// compatibility with SVG 1.1 consumers like Inkscape that don't honor the
|
|
175
|
+
// alpha component of CSS3 rgba() fill/stroke values. Whitespace-tolerant so
|
|
176
|
+
// spaced forms (MUI alpha(), colord toRgbString → "rgba(255, 177, 29, 0.12)")
|
|
177
|
+
// are separated too, not just the compact "rgba(255,177,29,0.12)".
|
|
178
|
+
paintAttr(name, style) {
|
|
179
|
+
const s = `${style}`;
|
|
180
|
+
const m = /^rgba\(\s*(\d+)\s*,\s*(\d+)\s*,\s*(\d+)\s*,\s*([\d.]+)\s*\)$/.exec(s);
|
|
181
|
+
if (m) {
|
|
182
|
+
const a = Number.parseFloat(m[4]);
|
|
183
|
+
const base = `${name}="rgb(${m[1]},${m[2]},${m[3]})"`;
|
|
184
|
+
return a < 1 ? `${base} ${name}-opacity="${a}"` : base;
|
|
185
|
+
}
|
|
186
|
+
return `${name}="${s}"`;
|
|
187
|
+
}
|
|
188
|
+
strokeAttrs() {
|
|
189
|
+
let attrs = ` ${this.paintAttr('stroke', this.strokeStyle)} stroke-width="${this.lineWidth}"`;
|
|
190
|
+
if (this.lineCap !== 'butt') {
|
|
191
|
+
attrs += ` stroke-linecap="${this.lineCap}"`;
|
|
192
|
+
}
|
|
193
|
+
if (this.lineJoin !== 'miter') {
|
|
194
|
+
attrs += ` stroke-linejoin="${this.lineJoin}"`;
|
|
195
|
+
}
|
|
196
|
+
if (this.lineDash.length > 0) {
|
|
197
|
+
attrs += ` stroke-dasharray="${this.lineDash.join(',')}"`;
|
|
198
|
+
}
|
|
199
|
+
return attrs;
|
|
200
|
+
}
|
|
201
|
+
// Every element that actually paints goes through here, and nothing else
|
|
202
|
+
// does. Writing a drawn element is what commits the clip groups enclosing it,
|
|
203
|
+
// which is what makes "nothing was drawn" observable at the end (`parts` stays
|
|
204
|
+
// empty) instead of being masked by the clip markup of the blocks that were
|
|
205
|
+
// walked and found empty.
|
|
206
|
+
emit(markup) {
|
|
207
|
+
if (this.pendingGroups.length > 0) {
|
|
208
|
+
this.parts.push(...this.pendingGroups);
|
|
209
|
+
this.openGroups += this.pendingGroups.length;
|
|
210
|
+
this.pendingGroups.length = 0;
|
|
211
|
+
}
|
|
212
|
+
this.parts.push(markup);
|
|
213
|
+
}
|
|
214
|
+
save() {
|
|
215
|
+
this.stack.push({
|
|
216
|
+
fillStyle: `${this.fillStyle}`,
|
|
217
|
+
strokeStyle: `${this.strokeStyle}`,
|
|
218
|
+
lineWidth: this.lineWidth,
|
|
219
|
+
font: this.font,
|
|
220
|
+
textAlign: this.textAlign,
|
|
221
|
+
textBaseline: this.textBaseline,
|
|
222
|
+
lineCap: this.lineCap,
|
|
223
|
+
lineJoin: this.lineJoin,
|
|
224
|
+
lineDash: [...this.lineDash],
|
|
225
|
+
a: this.a,
|
|
226
|
+
b: this.b,
|
|
227
|
+
c: this.c,
|
|
228
|
+
d: this.d,
|
|
229
|
+
e: this.e,
|
|
230
|
+
f: this.f,
|
|
231
|
+
groupsToClose: 0,
|
|
232
|
+
});
|
|
233
|
+
}
|
|
234
|
+
restore() {
|
|
235
|
+
const s = this.stack.pop();
|
|
236
|
+
if (s) {
|
|
237
|
+
for (let i = 0; i < s.groupsToClose; i++) {
|
|
238
|
+
if (this.pendingGroups.length > 0) {
|
|
239
|
+
// Still pending means nothing was drawn between this clip() and its
|
|
240
|
+
// restore(), so neither the group nor its <clipPath> is written at
|
|
241
|
+
// all. The pending list is a stack, and a flush empties it whole, so
|
|
242
|
+
// its tail is always this frame's own clips.
|
|
243
|
+
this.pendingGroups.pop();
|
|
244
|
+
}
|
|
245
|
+
else {
|
|
246
|
+
this.parts.push('</g>');
|
|
247
|
+
this.openGroups--;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
this.fillStyle = s.fillStyle;
|
|
251
|
+
this.strokeStyle = s.strokeStyle;
|
|
252
|
+
this.lineWidth = s.lineWidth;
|
|
253
|
+
this.font = s.font;
|
|
254
|
+
this.textAlign = s.textAlign;
|
|
255
|
+
this.textBaseline = s.textBaseline;
|
|
256
|
+
this.lineCap = s.lineCap;
|
|
257
|
+
this.lineJoin = s.lineJoin;
|
|
258
|
+
this.lineDash = s.lineDash;
|
|
259
|
+
this.a = s.a;
|
|
260
|
+
this.b = s.b;
|
|
261
|
+
this.c = s.c;
|
|
262
|
+
this.d = s.d;
|
|
263
|
+
this.e = s.e;
|
|
264
|
+
this.f = s.f;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
// translate/scale/rotate/transform all right-multiply the CTM, matching
|
|
268
|
+
// CanvasRenderingContext2D: the most recently applied transform is the
|
|
269
|
+
// innermost one, so a later call affects the coordinate space of the calls
|
|
270
|
+
// before it and NOT vice versa.
|
|
271
|
+
translate(x, y) {
|
|
272
|
+
this.e += this.a * x + this.c * y;
|
|
273
|
+
this.f += this.b * x + this.d * y;
|
|
274
|
+
}
|
|
275
|
+
scale(x, y) {
|
|
276
|
+
this.a *= x;
|
|
277
|
+
this.b *= x;
|
|
278
|
+
this.c *= y;
|
|
279
|
+
this.d *= y;
|
|
280
|
+
}
|
|
281
|
+
rotate(angle) {
|
|
282
|
+
const cos = Math.cos(angle);
|
|
283
|
+
const sin = Math.sin(angle);
|
|
284
|
+
const { a, b, c, d } = this;
|
|
285
|
+
this.a = a * cos + c * sin;
|
|
286
|
+
this.b = b * cos + d * sin;
|
|
287
|
+
this.c = c * cos - a * sin;
|
|
288
|
+
this.d = d * cos - b * sin;
|
|
289
|
+
}
|
|
290
|
+
resetTransform() {
|
|
291
|
+
this.a = 1;
|
|
292
|
+
this.b = 0;
|
|
293
|
+
this.c = 0;
|
|
294
|
+
this.d = 1;
|
|
295
|
+
this.e = 0;
|
|
296
|
+
this.f = 0;
|
|
297
|
+
}
|
|
298
|
+
setTransform(a, b, c, d, e, f) {
|
|
299
|
+
this.a = a;
|
|
300
|
+
this.b = b;
|
|
301
|
+
this.c = c;
|
|
302
|
+
this.d = d;
|
|
303
|
+
this.e = e;
|
|
304
|
+
this.f = f;
|
|
305
|
+
}
|
|
306
|
+
transform(a, b, c, d, e, f) {
|
|
307
|
+
const { a: a0, b: b0, c: c0, d: d0 } = this;
|
|
308
|
+
this.a = a0 * a + c0 * b;
|
|
309
|
+
this.b = b0 * a + d0 * b;
|
|
310
|
+
this.c = a0 * c + c0 * d;
|
|
311
|
+
this.d = b0 * c + d0 * d;
|
|
312
|
+
this.e += a0 * e + c0 * f;
|
|
313
|
+
this.f += b0 * e + d0 * f;
|
|
314
|
+
}
|
|
315
|
+
setLineDash(segments) {
|
|
316
|
+
this.lineDash = [...segments];
|
|
317
|
+
}
|
|
318
|
+
getLineDash() {
|
|
319
|
+
return [...this.lineDash];
|
|
320
|
+
}
|
|
321
|
+
fillRect(x, y, w, h) {
|
|
322
|
+
if (this.axisAligned) {
|
|
323
|
+
const [tx, ty, tw, th] = this.transformRect(x, y, w, h);
|
|
324
|
+
this.emit(`<rect x="${tx}" y="${ty}" width="${tw}" height="${th}" ${this.paintAttr('fill', this.fillStyle)}/>`);
|
|
325
|
+
}
|
|
326
|
+
else {
|
|
327
|
+
// Under rotation with a non-uniform scale the rect is a parallelogram, so
|
|
328
|
+
// pre-transformed x/y/width/height can't describe it. Emit the local size
|
|
329
|
+
// and let the matrix place and shear it — exact for any affine, and
|
|
330
|
+
// adjacent rects still share edges (no AA seams between hic bins).
|
|
331
|
+
this.emit(`<rect width="${w}" height="${h}" ${this.paintAttr('fill', this.fillStyle)}${this.originMatrixAttr(x, y)}/>`);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
clearRect(_x, _y, _w, _h) {
|
|
335
|
+
// no-op for SVG
|
|
336
|
+
}
|
|
337
|
+
strokeRect(x, y, w, h) {
|
|
338
|
+
if (this.axisAligned) {
|
|
339
|
+
const [tx, ty, tw, th] = this.transformRect(x, y, w, h);
|
|
340
|
+
this.emit(`<rect x="${tx}" y="${ty}" width="${tw}" height="${th}" fill="none"${this.strokeAttrs()}/>`);
|
|
341
|
+
}
|
|
342
|
+
else {
|
|
343
|
+
this.emit(`<rect width="${w}" height="${h}" fill="none"${this.strokeAttrs()}${this.originMatrixAttr(x, y)}/>`);
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
beginPath() {
|
|
347
|
+
this.pathData = '';
|
|
348
|
+
}
|
|
349
|
+
moveTo(x, y) {
|
|
350
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
351
|
+
this.pathData += `M${tx},${ty}`;
|
|
352
|
+
}
|
|
353
|
+
lineTo(x, y) {
|
|
354
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
355
|
+
this.pathData += `L${tx},${ty}`;
|
|
356
|
+
}
|
|
357
|
+
arc(x, y, radius, startAngle, endAngle, counterclockwise = false) {
|
|
358
|
+
this.ellipse(x, y, radius, radius, 0, startAngle, endAngle, counterclockwise);
|
|
359
|
+
}
|
|
360
|
+
ellipse(x, y, radiusX, radiusY, rotation, startAngle, endAngle, counterclockwise = false) {
|
|
361
|
+
const [cx, cy] = this.transformPoint(x, y);
|
|
362
|
+
const [rx, ry] = this.transformSize(radiusX, radiusY);
|
|
363
|
+
const sweep = counterclockwise ? 0 : 1;
|
|
364
|
+
const diff = endAngle - startAngle;
|
|
365
|
+
const deg = (rotation * 180) / Math.PI;
|
|
366
|
+
// Canvas measures the angle on the UNROTATED ellipse and then spins the
|
|
367
|
+
// whole thing, so the endpoint is the parametric point rotated — not the
|
|
368
|
+
// point at (angle + rotation).
|
|
369
|
+
const at = (angle) => {
|
|
370
|
+
const px = rx * Math.cos(angle);
|
|
371
|
+
const py = ry * Math.sin(angle);
|
|
372
|
+
return [
|
|
373
|
+
cx + px * Math.cos(rotation) - py * Math.sin(rotation),
|
|
374
|
+
cy + px * Math.sin(rotation) + py * Math.cos(rotation),
|
|
375
|
+
];
|
|
376
|
+
};
|
|
377
|
+
if (Math.abs(diff) >= 2 * Math.PI) {
|
|
378
|
+
// A closed ellipse has coincident endpoints, which an SVG arc command
|
|
379
|
+
// degenerates on — so go round in two halves.
|
|
380
|
+
const [mx, my] = at(startAngle);
|
|
381
|
+
const [halfX, halfY] = at(startAngle + Math.PI);
|
|
382
|
+
this.pathData += `M${mx},${my}A${rx},${ry} ${deg} 1 ${sweep} ${halfX},${halfY}A${rx},${ry} ${deg} 1 ${sweep} ${mx},${my}`;
|
|
383
|
+
return;
|
|
384
|
+
}
|
|
385
|
+
const [sx, sy2] = at(startAngle);
|
|
386
|
+
const [ex, ey] = at(endAngle);
|
|
387
|
+
const largeArc = Math.abs(diff) > Math.PI ? 1 : 0;
|
|
388
|
+
this.pathData += !this.pathData ? `M${sx},${sy2}` : `L${sx},${sy2}`;
|
|
389
|
+
this.pathData += `A${rx},${ry} ${deg} ${largeArc} ${sweep} ${ex},${ey}`;
|
|
390
|
+
}
|
|
391
|
+
bezierCurveTo(cp1x, cp1y, cp2x, cp2y, x, y) {
|
|
392
|
+
const [tcp1x, tcp1y] = this.transformPoint(cp1x, cp1y);
|
|
393
|
+
const [tcp2x, tcp2y] = this.transformPoint(cp2x, cp2y);
|
|
394
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
395
|
+
this.pathData += `C${tcp1x},${tcp1y} ${tcp2x},${tcp2y} ${tx},${ty}`;
|
|
396
|
+
}
|
|
397
|
+
quadraticCurveTo(cpx, cpy, x, y) {
|
|
398
|
+
const [tcpx, tcpy] = this.transformPoint(cpx, cpy);
|
|
399
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
400
|
+
this.pathData += `Q${tcpx},${tcpy} ${tx},${ty}`;
|
|
401
|
+
}
|
|
402
|
+
rect(x, y, w, h) {
|
|
403
|
+
if (this.axisAligned) {
|
|
404
|
+
const [tx, ty, tw, th] = this.transformRect(x, y, w, h);
|
|
405
|
+
this.pathData += `M${tx},${ty}h${tw}v${th}h${-tw}Z`;
|
|
406
|
+
}
|
|
407
|
+
else {
|
|
408
|
+
// Path data carries no transform of its own, so a rotated CTM has to be
|
|
409
|
+
// baked into the four corners.
|
|
410
|
+
const [x0, y0] = this.transformPoint(x, y);
|
|
411
|
+
const [x1, y1] = this.transformPoint(x + w, y);
|
|
412
|
+
const [x2, y2] = this.transformPoint(x + w, y + h);
|
|
413
|
+
const [x3, y3] = this.transformPoint(x, y + h);
|
|
414
|
+
this.pathData += `M${x0},${y0}L${x1},${y1}L${x2},${y2}L${x3},${y3}Z`;
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
closePath() {
|
|
418
|
+
this.pathData += 'Z';
|
|
419
|
+
}
|
|
420
|
+
stroke() {
|
|
421
|
+
if (this.pathData) {
|
|
422
|
+
this.emit(`<path d="${this.pathData}" fill="none"${this.strokeAttrs()}/>`);
|
|
423
|
+
}
|
|
424
|
+
}
|
|
425
|
+
fill() {
|
|
426
|
+
if (this.pathData) {
|
|
427
|
+
this.emit(`<path d="${this.pathData}" ${this.paintAttr('fill', this.fillStyle)} stroke="none"/>`);
|
|
428
|
+
}
|
|
429
|
+
}
|
|
430
|
+
// Shared by fillText and strokeText: the halo pattern draws the same string
|
|
431
|
+
// twice through both, so they must resolve the baseline identically — with
|
|
432
|
+
// strokeText pinned to "auto" a non-alphabetic textBaseline slid the halo off
|
|
433
|
+
// the letters it is meant to back.
|
|
434
|
+
dominantBaseline() {
|
|
435
|
+
return this.textBaseline === 'middle'
|
|
436
|
+
? 'middle'
|
|
437
|
+
: this.textBaseline === 'top' || this.textBaseline === 'hanging'
|
|
438
|
+
? 'hanging'
|
|
439
|
+
: 'auto';
|
|
440
|
+
}
|
|
441
|
+
fillText(text, x, y) {
|
|
442
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
443
|
+
const escaped = escapeXml(text);
|
|
444
|
+
this.emit(`<text x="${tx}" y="${ty}" ${this.paintAttr('fill', this.fillStyle)}${fontAttrs(this.font)} text-anchor="${this.textAnchor()}" dominant-baseline="${this.dominantBaseline()}">${escaped}</text>`);
|
|
445
|
+
}
|
|
446
|
+
strokeText(text, x, y) {
|
|
447
|
+
const [tx, ty] = this.transformPoint(x, y);
|
|
448
|
+
const escaped = escapeXml(text);
|
|
449
|
+
this.emit(`<text x="${tx}" y="${ty}" fill="none"${this.strokeAttrs()}${fontAttrs(this.font)} text-anchor="${this.textAnchor()}" dominant-baseline="${this.dominantBaseline()}">${escaped}</text>`);
|
|
450
|
+
}
|
|
451
|
+
drawImage(..._args) {
|
|
452
|
+
// no-op: raster images can't be meaningfully serialized to SVG paths
|
|
453
|
+
}
|
|
454
|
+
putImageData(..._args) {
|
|
455
|
+
// no-op
|
|
456
|
+
}
|
|
457
|
+
clip(..._args) {
|
|
458
|
+
// Use the current path as a clipPath, then open a `<g clip-path>`
|
|
459
|
+
// group that subsequent draws will land inside. The group is closed by
|
|
460
|
+
// restore() — see groupsToClose on the save stack. Without a preceding
|
|
461
|
+
// save() the clip becomes permanent (matches Canvas2D semantics), and the
|
|
462
|
+
// group is closed by getSerializedSvg instead.
|
|
463
|
+
//
|
|
464
|
+
// Queued rather than written, because a clip is opened per candidate block
|
|
465
|
+
// and most of them paint nothing: `forEachClippedBlock` brackets every block
|
|
466
|
+
// that has data, and a block whose features are all off-screen (or whose
|
|
467
|
+
// layer is switched off) then leaves a dead `<clipPath>` + empty `<g>` pair
|
|
468
|
+
// behind. Those pairs are what made a layer that painted nothing still
|
|
469
|
+
// serialize as non-empty, defeating PaintLayer's elision of it.
|
|
470
|
+
if (!this.pathData) {
|
|
471
|
+
return;
|
|
472
|
+
}
|
|
473
|
+
const id = `svgcanvas-clip-${clipIdCounter++}`;
|
|
474
|
+
this.pendingGroups.push(`<clipPath id="${id}"><path d="${this.pathData}"/></clipPath><g clip-path="url(#${id})">`);
|
|
475
|
+
if (this.stack.length > 0) {
|
|
476
|
+
this.stack[this.stack.length - 1].groupsToClose++;
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
// The family goes through, not just the size: `measureText` switches to the
|
|
480
|
+
// fixed monospace advance on seeing one, so dropping it measured a monospace
|
|
481
|
+
// string against the proportional table — the same string, laid out one way on
|
|
482
|
+
// a real canvas and another in the export, with nothing to show which. No draw
|
|
483
|
+
// function calls ctx.measureText today; this is here so the first one to do it
|
|
484
|
+
// doesn't inherit a silent discrepancy.
|
|
485
|
+
measureText(text) {
|
|
486
|
+
const { size, family } = parseFont(this.font);
|
|
487
|
+
return { width: measureTextWidth(text, Number(size), family) };
|
|
488
|
+
}
|
|
489
|
+
// The fragment drawn so far, or '' if nothing was drawn — PaintLayer reads
|
|
490
|
+
// the empty string as "emit no element at all".
|
|
491
|
+
//
|
|
492
|
+
// Groups still open are closed here: a permanent clip (one with no save() to
|
|
493
|
+
// scope it) has no restore() to close it, and neither does a painter that
|
|
494
|
+
// throws between the two. Leaving them open emitted an unbalanced `<g>`, which
|
|
495
|
+
// is not merely untidy — an SVG file is XML, so it doesn't parse at all.
|
|
496
|
+
// Non-mutating, so calling this twice returns the same string.
|
|
497
|
+
getSerializedSvg() {
|
|
498
|
+
return this.parts.join('') + '</g>'.repeat(this.openGroups);
|
|
499
|
+
}
|
|
500
|
+
}
|
|
@@ -1,3 +1,8 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #stateModel TimeTraveller
|
|
3
|
+
* Undo/redo history for a target state-tree node: records snapshots as it
|
|
4
|
+
* changes and exposes canUndo/canRedo with undo/redo actions.
|
|
5
|
+
*/
|
|
1
6
|
declare const TimeTraveller: import("@jbrowse/mobx-state-tree").IModelType<{
|
|
2
7
|
undoIdx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
|
|
3
8
|
targetPath: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
|
|
@@ -12,6 +17,13 @@ declare const TimeTraveller: import("@jbrowse/mobx-state-tree").IModelType<{
|
|
|
12
17
|
resumeTrackingUndo(): void;
|
|
13
18
|
addUndoState(snapshot: unknown): void;
|
|
14
19
|
beforeDestroy(): void;
|
|
20
|
+
/**
|
|
21
|
+
* Start recording history for the target store. Re-runs whenever the root
|
|
22
|
+
* swaps in a new session node, so it must be idempotent: the previous
|
|
23
|
+
* registration is disposed and the history reset, because `history` is
|
|
24
|
+
* volatile while `undoIdx` is a persisted prop — carrying the old
|
|
25
|
+
* session's snapshots forward would make undo apply them to the new one.
|
|
26
|
+
*/
|
|
15
27
|
initialize(): void;
|
|
16
28
|
undo(): void;
|
|
17
29
|
redo(): void;
|