@jbrowse/core 3.6.5 → 4.0.0
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/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +32 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +13 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +43 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +7 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +2 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +17 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +2 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +7 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +20 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +2 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +57 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +11 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +42 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +2 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Position.js +14 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +14 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +22 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +7 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +7 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/types.js +1 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +26 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +41 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +7 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +44 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +7 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +34 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +26 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +3 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +29 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/consts.js +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +11 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +40 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +105 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +5 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +64 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +6 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +48 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +1 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/index.js +1 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +31 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +83 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +16 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +83 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +16 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +52 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +9 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +21 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +22 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +80 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +583 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +141 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +1116 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +8 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/types.js +1 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.d.ts +13 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/useSequenceData.js +73 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +10 -0
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/util.js +42 -0
- package/esm/BaseFeatureWidget/configSchema.d.ts +2 -0
- package/esm/BaseFeatureWidget/configSchema.js +3 -0
- package/esm/BaseFeatureWidget/index.d.ts +2 -0
- package/esm/BaseFeatureWidget/index.js +2 -0
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +101 -0
- package/esm/BaseFeatureWidget/stateModelFactory.js +96 -0
- package/esm/BaseFeatureWidget/types.d.ts +22 -0
- package/esm/BaseFeatureWidget/types.js +1 -0
- package/esm/BaseFeatureWidget/util.d.ts +51 -0
- package/esm/BaseFeatureWidget/util.js +95 -0
- package/esm/CorePlugin.d.ts +6 -0
- package/esm/CorePlugin.js +24 -0
- package/esm/PhasedScheduler.js +25 -0
- package/esm/Plugin.d.ts +13 -0
- package/esm/Plugin.js +9 -0
- package/esm/PluginLoader.d.ts +64 -0
- package/esm/PluginLoader.js +164 -0
- package/esm/PluginManager.d.ts +125 -0
- package/esm/PluginManager.js +414 -0
- package/esm/ReExports/BaseFeatureDetails.js +9 -0
- package/esm/ReExports/DataGrid.js +1 -0
- package/esm/ReExports/MuiDataGridReExports.js +131 -0
- package/esm/ReExports/MuiReExports.d.ts +134 -0
- package/esm/ReExports/MuiReExports.js +115 -0
- package/esm/ReExports/index.d.ts +1 -0
- package/esm/ReExports/index.js +1 -0
- package/esm/ReExports/lazify.js +10 -0
- package/esm/ReExports/list.js +275 -0
- package/esm/ReExports/modules.js +149 -0
- package/esm/TextSearch/BaseResults.d.ts +46 -0
- package/esm/TextSearch/BaseResults.js +67 -0
- package/esm/TextSearch/TextSearchManager.d.ts +48 -0
- package/esm/TextSearch/TextSearchManager.js +77 -0
- package/esm/assemblyManager/assembly.d.ts +75 -0
- package/esm/assemblyManager/assembly.js +328 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +27 -0
- package/esm/assemblyManager/assemblyConfigSchema.js +51 -0
- package/esm/assemblyManager/assemblyManager.d.ts +528 -0
- package/esm/assemblyManager/assemblyManager.js +131 -0
- package/esm/assemblyManager/index.d.ts +3 -0
- package/esm/assemblyManager/index.js +2 -0
- package/esm/configuration/configurationSchema.d.ts +37 -0
- package/esm/configuration/configurationSchema.js +230 -0
- package/esm/configuration/configurationSlot.d.ts +33 -0
- package/esm/configuration/configurationSlot.js +239 -0
- package/esm/configuration/index.d.ts +3 -0
- package/esm/configuration/index.js +2 -0
- package/esm/configuration/types.d.ts +14 -0
- package/esm/configuration/types.js +1 -0
- package/esm/configuration/util.d.ts +10 -0
- package/esm/configuration/util.js +123 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +16 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +31 -0
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +24 -0
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +68 -0
- package/esm/data_adapters/BaseAdapter/BaseOptions.d.ts +18 -0
- package/esm/data_adapters/BaseAdapter/BaseOptions.js +1 -0
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +10 -0
- package/esm/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +1 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +11 -0
- package/esm/data_adapters/BaseAdapter/BaseSequenceAdapter.js +12 -0
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +6 -0
- package/esm/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +1 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.d.ts +6 -0
- package/esm/data_adapters/BaseAdapter/RegionsAdapter.js +1 -0
- package/esm/data_adapters/BaseAdapter/index.d.ts +13 -0
- package/esm/data_adapters/BaseAdapter/index.js +5 -0
- package/esm/data_adapters/BaseAdapter/stats.d.ts +10 -0
- package/esm/data_adapters/BaseAdapter/stats.js +48 -0
- package/esm/data_adapters/BaseAdapter/types.d.ts +23 -0
- package/esm/data_adapters/BaseAdapter/types.js +1 -0
- package/esm/data_adapters/BaseAdapter/util.d.ts +12 -0
- package/esm/data_adapters/BaseAdapter/util.js +15 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +6 -0
- package/esm/data_adapters/CytobandAdapter/CytobandAdapter.js +28 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +9 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.js +24 -0
- package/esm/data_adapters/CytobandAdapter/index.d.ts +2 -0
- package/esm/data_adapters/CytobandAdapter/index.js +12 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +14 -0
- package/esm/data_adapters/dataAdapterCache.js +54 -0
- package/esm/data_adapters/util.js +4 -0
- package/esm/pluggableElementTypes/AdapterType.d.ts +25 -0
- package/esm/pluggableElementTypes/AdapterType.js +17 -0
- package/esm/pluggableElementTypes/AddTrackWorkflowType.d.ts +17 -0
- package/esm/pluggableElementTypes/AddTrackWorkflowType.js +10 -0
- package/esm/pluggableElementTypes/ConnectionType.d.ts +20 -0
- package/esm/pluggableElementTypes/ConnectionType.js +16 -0
- package/esm/pluggableElementTypes/DisplayType.d.ts +30 -0
- package/esm/pluggableElementTypes/DisplayType.js +20 -0
- package/esm/pluggableElementTypes/GlyphType.d.ts +43 -0
- package/esm/pluggableElementTypes/GlyphType.js +18 -0
- package/esm/pluggableElementTypes/InternetAccountType.d.ts +12 -0
- package/esm/pluggableElementTypes/InternetAccountType.js +10 -0
- package/esm/pluggableElementTypes/PluggableElementBase.js +11 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +19 -0
- package/esm/pluggableElementTypes/RpcMethodType.js +88 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +11 -0
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +28 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +18 -0
- package/esm/pluggableElementTypes/TextSearchAdapterType.js +15 -0
- package/esm/pluggableElementTypes/TrackType.d.ts +16 -0
- package/esm/pluggableElementTypes/TrackType.js +14 -0
- package/esm/pluggableElementTypes/ViewType.d.ts +29 -0
- package/esm/pluggableElementTypes/ViewType.js +18 -0
- package/esm/pluggableElementTypes/WidgetType.d.ts +27 -0
- package/esm/pluggableElementTypes/WidgetType.js +18 -0
- package/esm/pluggableElementTypes/index.d.ts +27 -0
- package/esm/pluggableElementTypes/index.js +14 -0
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +29 -0
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +35 -0
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +180 -0
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +104 -0
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +74 -0
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +203 -0
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +52 -0
- package/esm/pluggableElementTypes/models/BaseViewModel.js +42 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +86 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +151 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +16 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +18 -0
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +27 -0
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +32 -0
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +87 -0
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +134 -0
- package/esm/pluggableElementTypes/models/components/SaveTrackData.d.ts +11 -0
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +158 -0
- package/esm/pluggableElementTypes/models/index.d.ts +14 -0
- package/esm/pluggableElementTypes/models/index.js +8 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.d.ts +4 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/bed.js +9 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.d.ts +5 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/fetchSequence.js +17 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +7 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +108 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.d.ts +5 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/gff3.js +91 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +11 -0
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.js +1 -0
- package/esm/pluggableElementTypes/renderers/BoxRendererType.d.ts +52 -0
- package/esm/pluggableElementTypes/renderers/BoxRendererType.js +78 -0
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +4 -0
- package/esm/pluggableElementTypes/renderers/CircularChordRendererType.js +4 -0
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.d.ts +58 -0
- package/esm/pluggableElementTypes/renderers/FeatureRendererType.js +77 -0
- package/esm/pluggableElementTypes/renderers/LayoutSession.d.ts +31 -0
- package/esm/pluggableElementTypes/renderers/LayoutSession.js +37 -0
- package/esm/pluggableElementTypes/renderers/RendererType.d.ts +28 -0
- package/esm/pluggableElementTypes/renderers/RendererType.js +20 -0
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +57 -0
- package/esm/pluggableElementTypes/renderers/ServerSideRendererType.js +113 -0
- package/esm/pluggableElementTypes/renderers/index.d.ts +6 -0
- package/esm/pluggableElementTypes/renderers/index.js +6 -0
- package/esm/pluggableElementTypes/renderers/util/serializableFilterChain.js +30 -0
- package/esm/pluggableElementTypes/renderers/util.d.ts +3 -0
- package/esm/pluggableElementTypes/renderers/util.js +14 -0
- package/esm/rpc/BaseRpcDriver.d.ts +40 -0
- package/esm/rpc/BaseRpcDriver.js +116 -0
- package/esm/rpc/MainThreadRpcDriver.d.ts +14 -0
- package/esm/rpc/MainThreadRpcDriver.js +33 -0
- package/esm/rpc/RpcManager.d.ts +35 -0
- package/esm/rpc/RpcManager.js +63 -0
- package/esm/rpc/WebWorkerRpcDriver.d.ts +31 -0
- package/esm/rpc/WebWorkerRpcDriver.js +77 -0
- package/esm/rpc/baseRpcConfig.d.ts +8 -0
- package/esm/rpc/baseRpcConfig.js +10 -0
- package/esm/rpc/configSchema.d.ts +9 -0
- package/esm/rpc/configSchema.js +22 -0
- package/esm/rpc/coreRpcMethods.d.ts +12 -0
- package/esm/rpc/coreRpcMethods.js +12 -0
- package/esm/rpc/mainThreadRpcConfig.d.ts +8 -0
- package/esm/rpc/mainThreadRpcConfig.js +8 -0
- package/esm/rpc/methods/CoreFreeResources.d.ts +6 -0
- package/esm/rpc/methods/CoreFreeResources.js +14 -0
- package/esm/rpc/methods/CoreGetExportData.d.ts +19 -0
- package/esm/rpc/methods/CoreGetExportData.js +18 -0
- package/esm/rpc/methods/CoreGetFeatureDensityStats.d.ts +17 -0
- package/esm/rpc/methods/CoreGetFeatureDensityStats.js +25 -0
- package/esm/rpc/methods/CoreGetFeatureDetails.d.ts +11 -0
- package/esm/rpc/methods/CoreGetFeatureDetails.js +24 -0
- package/esm/rpc/methods/CoreGetFeatures.d.ts +18 -0
- package/esm/rpc/methods/CoreGetFeatures.js +31 -0
- package/esm/rpc/methods/CoreGetFileInfo.d.ts +9 -0
- package/esm/rpc/methods/CoreGetFileInfo.js +15 -0
- package/esm/rpc/methods/CoreGetMetadata.d.ts +9 -0
- package/esm/rpc/methods/CoreGetMetadata.js +15 -0
- package/esm/rpc/methods/CoreGetRefNames.d.ts +10 -0
- package/esm/rpc/methods/CoreGetRefNames.js +19 -0
- package/esm/rpc/methods/CoreGetRegions.d.ts +8 -0
- package/esm/rpc/methods/CoreGetRegions.js +15 -0
- package/esm/rpc/methods/CoreGetSequence.d.ts +13 -0
- package/esm/rpc/methods/CoreGetSequence.js +17 -0
- package/esm/rpc/methods/CoreRender.d.ts +14 -0
- package/esm/rpc/methods/CoreRender.js +35 -0
- package/esm/rpc/methods/CoreSaveFeatureData.d.ts +16 -0
- package/esm/rpc/methods/CoreSaveFeatureData.js +32 -0
- package/esm/rpc/methods/util.d.ts +15 -0
- package/esm/rpc/methods/util.js +7 -0
- package/esm/rpc/webWorkerRpcConfig.d.ts +8 -0
- package/esm/rpc/webWorkerRpcConfig.js +8 -0
- package/esm/ui/AppLogo.d.ts +7 -0
- package/esm/ui/AppLogo.js +10 -0
- package/esm/ui/AssemblySelector.d.ts +13 -0
- package/esm/ui/AssemblySelector.js +39 -0
- package/esm/ui/BaseTooltip.d.ts +8 -0
- package/esm/ui/BaseTooltip.js +42 -0
- package/esm/ui/CascadingMenu.d.ts +30 -0
- package/esm/ui/CascadingMenu.js +48 -0
- package/esm/ui/CascadingMenuButton.d.ts +26 -0
- package/esm/ui/CascadingMenuButton.js +24 -0
- package/esm/ui/CascadingMenuHelpDialog.d.ts +5 -0
- package/esm/ui/CascadingMenuHelpDialog.js +10 -0
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +5 -0
- package/esm/ui/CascadingMenuHelpIconButton.js +15 -0
- package/esm/ui/ColorPicker.js +62 -0
- package/esm/ui/ConfirmDialog.d.ts +10 -0
- package/esm/ui/ConfirmDialog.js +13 -0
- package/esm/ui/DataGridFlexContainer.d.ts +5 -0
- package/esm/ui/DataGridFlexContainer.js +12 -0
- package/esm/ui/Dialog.d.ts +7 -0
- package/esm/ui/Dialog.js +45 -0
- package/esm/ui/DraggableDialog.js +27 -0
- package/esm/ui/DropDownMenu.d.ts +6 -0
- package/esm/ui/DropDownMenu.js +24 -0
- package/esm/ui/EditableTypography.js +60 -0
- package/esm/ui/ErrorBoundary.d.ts +17 -0
- package/esm/ui/ErrorBoundary.js +16 -0
- package/esm/ui/ErrorMessage.js +56 -0
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +4 -0
- package/esm/ui/ErrorMessageStackTraceContents.js +25 -0
- package/esm/ui/ErrorMessageStackTraceDialog.js +108 -0
- package/esm/ui/ExternalLink.js +7 -0
- package/esm/ui/FactoryResetDialog.js +18 -0
- package/esm/ui/FatalErrorDialog.js +18 -0
- package/esm/ui/FileSelector/FileSelector.d.ts +11 -0
- package/esm/ui/FileSelector/FileSelector.js +52 -0
- package/esm/ui/FileSelector/LocalFileChooser.d.ts +6 -0
- package/esm/ui/FileSelector/LocalFileChooser.js +39 -0
- package/esm/ui/FileSelector/LocationInput.d.ts +9 -0
- package/esm/ui/FileSelector/LocationInput.js +15 -0
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +9 -0
- package/esm/ui/FileSelector/SourceTypeSelector.js +38 -0
- package/esm/ui/FileSelector/UrlChooser.d.ts +8 -0
- package/esm/ui/FileSelector/UrlChooser.js +17 -0
- package/esm/ui/FileSelector/index.d.ts +1 -0
- package/esm/ui/FileSelector/index.js +1 -0
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +178 -0
- package/esm/ui/FileSelector/useInternetAccounts.js +18 -0
- package/esm/ui/HoverMenu.js +15 -0
- package/esm/ui/Icons.js +14 -0
- package/esm/ui/LoadingEllipses.d.ts +7 -0
- package/esm/ui/LoadingEllipses.js +31 -0
- package/esm/ui/Logo.js +42 -0
- package/esm/ui/Menu.d.ts +2 -0
- package/esm/ui/Menu.js +1 -0
- package/esm/ui/MenuButton.d.ts +1 -0
- package/esm/ui/MenuButton.js +1 -0
- package/esm/ui/MenuItems.d.ts +15 -0
- package/esm/ui/MenuItems.js +59 -0
- package/esm/ui/MenuTypes.d.ts +39 -0
- package/esm/ui/MenuTypes.js +1 -0
- package/esm/ui/PrerenderedCanvas.d.ts +10 -0
- package/esm/ui/PrerenderedCanvas.js +33 -0
- package/esm/ui/RedErrorMessageBox.js +16 -0
- package/esm/ui/ResizeHandle.js +67 -0
- package/esm/ui/ReturnToImportFormDialog.js +13 -0
- package/esm/ui/SanitizedHTML.js +61 -0
- package/esm/ui/Snackbar.d.ts +10 -0
- package/esm/ui/Snackbar.js +14 -0
- package/esm/ui/SnackbarContents.d.ts +5 -0
- package/esm/ui/SnackbarContents.js +11 -0
- package/esm/ui/SnackbarModel.d.ts +17 -0
- package/esm/ui/SnackbarModel.js +55 -0
- package/esm/ui/colors.js +67 -0
- package/esm/ui/index.d.ts +20 -0
- package/esm/ui/index.js +20 -0
- package/esm/ui/react-colorful.d.ts +3 -0
- package/esm/ui/react-colorful.js +416 -0
- package/esm/ui/theme.d.ts +58 -0
- package/esm/ui/theme.js +392 -0
- package/esm/ui/useEvent.js +10 -0
- package/esm/util/Base1DUtils.d.ts +38 -0
- package/esm/util/Base1DUtils.js +205 -0
- package/esm/util/Base1DViewModel.d.ts +61 -0
- package/esm/util/Base1DViewModel.js +129 -0
- package/esm/util/QuickLRU/index.d.ts +1 -0
- package/esm/util/QuickLRU/index.js +1 -0
- package/esm/util/TimeTraveller.d.ts +19 -0
- package/esm/util/TimeTraveller.js +94 -0
- package/esm/util/aborting.js +42 -0
- package/esm/util/analytics.js +80 -0
- package/esm/util/blobToDataURL.js +14 -0
- package/esm/util/blockTypes.d.ts +59 -0
- package/esm/util/blockTypes.js +119 -0
- package/esm/util/calculateDynamicBlocks.d.ts +3 -0
- package/esm/util/calculateDynamicBlocks.js +104 -0
- package/esm/util/calculateStaticBlocks.d.ts +13 -0
- package/esm/util/calculateStaticBlocks.js +106 -0
- package/esm/util/coarseStripHTML.d.ts +1 -0
- package/esm/util/coarseStripHTML.js +17 -0
- package/esm/util/color/cssColorsLevel4.js +156 -0
- package/esm/util/color/index.d.ts +5 -0
- package/esm/util/color/index.js +39 -0
- package/esm/util/colord.d.ts +9 -0
- package/esm/util/colord.js +14 -0
- package/esm/util/compositeMap.d.ts +11 -0
- package/esm/util/compositeMap.js +59 -0
- package/esm/util/convertCodingSequenceToPeptides.d.ts +6 -0
- package/esm/util/convertCodingSequenceToPeptides.js +9 -0
- package/esm/util/dedupe.js +12 -0
- package/esm/util/fetchSeq.d.ts +8 -0
- package/esm/util/fetchSeq.js +23 -0
- package/esm/util/flatbush/index.d.ts +25 -0
- package/esm/util/flatbush/index.js +423 -0
- package/esm/util/flatqueue/index.d.ts +11 -0
- package/esm/util/flatqueue/index.js +61 -0
- package/esm/util/formatFastaStrings.js +8 -0
- package/esm/util/idMaker.js +21 -0
- package/esm/util/index.d.ts +271 -0
- package/esm/util/index.js +873 -0
- package/esm/util/io/RemoteFileWithRangeCache.js +71 -0
- package/esm/util/io/index.d.ts +7 -0
- package/esm/util/io/index.js +92 -0
- package/esm/util/isWebWorker.d.ts +1 -0
- package/esm/util/isWebWorker.js +4 -0
- package/esm/util/jexl.d.ts +2 -0
- package/esm/util/jexl.js +49 -0
- package/esm/util/jexlStrings.js +17 -0
- package/esm/util/layouts/BaseLayout.d.ts +30 -0
- package/esm/util/layouts/BaseLayout.js +1 -0
- package/esm/util/layouts/GranularRectLayout.d.ts +37 -0
- package/esm/util/layouts/GranularRectLayout.js +418 -0
- package/esm/util/layouts/MultiLayout.d.ts +12 -0
- package/esm/util/layouts/MultiLayout.js +40 -0
- package/esm/util/layouts/PileupLayout.d.ts +41 -0
- package/esm/util/layouts/PileupLayout.js +202 -0
- package/esm/util/layouts/PrecomputedLayout.d.ts +30 -0
- package/esm/util/layouts/PrecomputedLayout.js +71 -0
- package/esm/util/layouts/SceneGraph.js +121 -0
- package/esm/util/layouts/index.d.ts +8 -0
- package/esm/util/layouts/index.js +6 -0
- package/esm/util/layouts/intervalUtils.d.ts +3 -0
- package/esm/util/layouts/intervalUtils.js +63 -0
- package/esm/util/librpc.d.ts +2 -0
- package/esm/util/librpc.js +1 -0
- package/esm/util/linkify.d.ts +1 -0
- package/esm/util/linkify.js +5 -0
- package/esm/util/locString.d.ts +9 -0
- package/esm/util/locString.js +62 -0
- package/esm/util/makeAbortableReaction.d.ts +3 -0
- package/esm/util/makeAbortableReaction.js +47 -0
- package/esm/util/map-obj/index.d.ts +13 -0
- package/esm/util/map-obj/index.js +92 -0
- package/esm/util/mst-reflection.d.ts +11 -0
- package/esm/util/mst-reflection.js +54 -0
- package/esm/util/nanoid.d.ts +5 -0
- package/esm/util/nanoid.js +36 -0
- package/esm/util/nextTick.js +3 -0
- package/esm/util/offscreenCanvasGetSerializingSvg.d.ts +5 -0
- package/esm/util/offscreenCanvasGetSerializingSvg.js +9 -0
- package/esm/util/offscreenCanvasPonyfill.d.ts +5 -0
- package/esm/util/offscreenCanvasPonyfill.js +57 -0
- package/esm/util/offscreenCanvasUtils.d.ts +12 -0
- package/esm/util/offscreenCanvasUtils.js +19 -0
- package/esm/util/parseLineByLine.js +22 -0
- package/esm/util/range.js +21 -0
- package/esm/util/renderToAbstractCanvas.d.ts +17 -0
- package/esm/util/renderToAbstractCanvas.js +53 -0
- package/esm/util/rpc.d.ts +2 -0
- package/esm/util/rpc.js +6 -0
- package/esm/util/rxjs.d.ts +4 -0
- package/esm/util/rxjs.js +16 -0
- package/esm/util/simpleFeature.d.ts +44 -0
- package/esm/util/simpleFeature.js +81 -0
- package/esm/util/stats.d.ts +23 -0
- package/esm/util/stats.js +72 -0
- package/esm/util/stopToken.d.ts +19 -0
- package/esm/util/stopToken.js +90 -0
- package/esm/util/tracks.d.ts +72 -0
- package/esm/util/tracks.js +214 -0
- package/esm/util/transferables.d.ts +2 -0
- package/esm/util/transferables.js +35 -0
- package/esm/util/tss-react/cssAndCx.d.ts +16 -0
- package/esm/util/tss-react/cssAndCx.js +97 -0
- package/esm/util/tss-react/index.d.ts +4 -0
- package/esm/util/tss-react/index.js +7 -0
- package/esm/util/tss-react/makeStyles.d.ts +15 -0
- package/esm/util/tss-react/makeStyles.js +38 -0
- package/esm/util/tss-react/mergeClasses.d.ts +2 -0
- package/esm/util/tss-react/mergeClasses.js +24 -0
- package/esm/util/tss-react/mui/index.d.ts +1 -0
- package/esm/util/tss-react/mui/index.js +1 -0
- package/esm/util/tss-react/mui/mui.d.ts +10 -0
- package/esm/util/tss-react/mui/mui.js +5 -0
- package/esm/util/tss-react/tools/classnames.d.ts +2 -0
- package/esm/util/tss-react/tools/classnames.js +44 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.d.ts +1 -0
- package/esm/util/tss-react/tools/getDependencyArrayRef.js +19 -0
- package/esm/util/tss-react/types.d.ts +13 -0
- package/esm/util/tss-react/types.js +6 -0
- package/esm/util/types/ElementId.d.ts +1 -0
- package/esm/util/types/ElementId.js +3 -0
- package/esm/util/types/index.d.ts +273 -0
- package/esm/util/types/index.js +131 -0
- package/esm/util/types/mst.d.ts +107 -0
- package/esm/util/types/mst.js +68 -0
- package/esm/util/types/util.d.ts +6 -0
- package/esm/util/types/util.js +1 -0
- package/esm/util/useFeatureSequence.d.ts +19 -0
- package/esm/util/useFeatureSequence.js +87 -0
- package/esm/util/useMeasure.js +30 -0
- package/esm/util/when.js +1 -0
- package/package.json +487 -39
- package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +0 -38
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +0 -13
- package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +0 -48
- package/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +0 -8
- package/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +0 -13
- package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +0 -2
- package/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +0 -23
- package/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +0 -2
- package/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +0 -13
- package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +0 -23
- package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +0 -2
- package/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +0 -30
- package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +0 -63
- package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +0 -11
- package/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +0 -48
- package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +0 -27
- package/BaseFeatureWidget/BaseFeatureDetail/Position.d.ts +0 -2
- package/BaseFeatureWidget/BaseFeatureDetail/Position.js +0 -17
- package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +0 -20
- package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +0 -28
- package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +0 -7
- package/BaseFeatureWidget/BaseFeatureDetail/index.js +0 -34
- package/BaseFeatureWidget/BaseFeatureDetail/types.d.ts +0 -7
- package/BaseFeatureWidget/BaseFeatureDetail/types.js +0 -2
- package/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -32
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.d.ts +0 -10
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +0 -48
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +0 -7
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +0 -74
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.d.ts +0 -7
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +0 -72
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.d.ts +0 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/SequenceName.js +0 -28
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.d.ts +0 -3
- package/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +0 -34
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +0 -17
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +0 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +0 -40
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.d.ts +0 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceFeatureMenu.js +0 -141
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +0 -5
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +0 -66
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.d.ts +0 -6
- package/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SettingsDialog.js +0 -50
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +0 -10
- package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +0 -65
- package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +0 -1
- package/BaseFeatureWidget/SequenceFeatureDetails/index.js +0 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +0 -28
- package/BaseFeatureWidget/SequenceFeatureDetails/model.js +0 -81
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.d.ts +0 -16
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +0 -88
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.d.ts +0 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDSSequence.js +0 -20
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.d.ts +0 -10
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/GenomicSequence.js +0 -56
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.d.ts +0 -9
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/ProteinSequence.js +0 -25
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.d.ts +0 -10
- package/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +0 -25
- package/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -585
- package/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1118
- package/BaseFeatureWidget/SequenceFeatureDetails/types.d.ts +0 -8
- package/BaseFeatureWidget/SequenceFeatureDetails/types.js +0 -2
- package/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +0 -17
- package/BaseFeatureWidget/SequenceFeatureDetails/util.js +0 -49
- package/BaseFeatureWidget/configSchema.d.ts +0 -2
- package/BaseFeatureWidget/configSchema.js +0 -6
- package/BaseFeatureWidget/index.d.ts +0 -2
- package/BaseFeatureWidget/index.js +0 -7
- package/BaseFeatureWidget/stateModelFactory.d.ts +0 -101
- package/BaseFeatureWidget/stateModelFactory.js +0 -99
- package/BaseFeatureWidget/types.d.ts +0 -22
- package/BaseFeatureWidget/types.js +0 -2
- package/BaseFeatureWidget/util.d.ts +0 -48
- package/BaseFeatureWidget/util.js +0 -77
- package/CorePlugin.d.ts +0 -6
- package/CorePlugin.js +0 -66
- package/PhasedScheduler.js +0 -28
- package/Plugin.d.ts +0 -13
- package/Plugin.js +0 -7
- package/PluginLoader.d.ts +0 -64
- package/PluginLoader.js +0 -174
- package/PluginManager.d.ts +0 -139
- package/PluginManager.js +0 -405
- package/ReExports/BaseFeatureDetails.js +0 -45
- package/ReExports/DataGrid.js +0 -5
- package/ReExports/MuiDataGridReExports.js +0 -167
- package/ReExports/MuiReExports.d.ts +0 -133
- package/ReExports/MuiReExports.js +0 -150
- package/ReExports/index.d.ts +0 -1
- package/ReExports/index.js +0 -8
- package/ReExports/lazify.js +0 -14
- package/ReExports/list.js +0 -273
- package/ReExports/material-ui-colors.d.ts +0 -1
- package/ReExports/material-ui-colors.js +0 -17
- package/ReExports/modules.js +0 -179
- package/TextSearch/BaseResults.d.ts +0 -46
- package/TextSearch/BaseResults.js +0 -61
- package/TextSearch/TextSearchManager.d.ts +0 -48
- package/TextSearch/TextSearchManager.js +0 -85
- package/assemblyManager/assembly.d.ts +0 -71
- package/assemblyManager/assembly.js +0 -304
- package/assemblyManager/assemblyConfigSchema.d.ts +0 -27
- package/assemblyManager/assemblyConfigSchema.js +0 -53
- package/assemblyManager/assemblyManager.d.ts +0 -499
- package/assemblyManager/assemblyManager.js +0 -134
- package/assemblyManager/index.d.ts +0 -3
- package/assemblyManager/index.js +0 -10
- package/configuration/configurationSchema.d.ts +0 -35
- package/configuration/configurationSchema.js +0 -174
- package/configuration/configurationSlot.d.ts +0 -31
- package/configuration/configurationSlot.js +0 -241
- package/configuration/index.d.ts +0 -3
- package/configuration/index.js +0 -21
- package/configuration/types.d.ts +0 -14
- package/configuration/types.js +0 -2
- package/configuration/util.d.ts +0 -10
- package/configuration/util.js +0 -123
- package/data_adapters/BaseAdapter/BaseAdapter.d.ts +0 -14
- package/data_adapters/BaseAdapter/BaseAdapter.js +0 -30
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +0 -24
- package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +0 -115
- package/data_adapters/BaseAdapter/BaseOptions.d.ts +0 -15
- package/data_adapters/BaseAdapter/BaseOptions.js +0 -2
- package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +0 -10
- package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +0 -2
- package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +0 -10
- package/data_adapters/BaseAdapter/BaseSequenceAdapter.js +0 -10
- package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +0 -6
- package/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +0 -2
- package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +0 -6
- package/data_adapters/BaseAdapter/RegionsAdapter.js +0 -2
- package/data_adapters/BaseAdapter/index.d.ts +0 -13
- package/data_adapters/BaseAdapter/index.js +0 -25
- package/data_adapters/BaseAdapter/types.d.ts +0 -21
- package/data_adapters/BaseAdapter/types.js +0 -2
- package/data_adapters/BaseAdapter/util.d.ts +0 -12
- package/data_adapters/BaseAdapter/util.js +0 -22
- package/data_adapters/CytobandAdapter/CytobandAdapter.d.ts +0 -6
- package/data_adapters/CytobandAdapter/CytobandAdapter.js +0 -31
- package/data_adapters/CytobandAdapter/configSchema.d.ts +0 -9
- package/data_adapters/CytobandAdapter/configSchema.js +0 -26
- package/data_adapters/CytobandAdapter/index.d.ts +0 -2
- package/data_adapters/CytobandAdapter/index.js +0 -51
- package/data_adapters/dataAdapterCache.d.ts +0 -14
- package/data_adapters/dataAdapterCache.js +0 -60
- package/data_adapters/util.js +0 -10
- package/pluggableElementTypes/AdapterType.d.ts +0 -25
- package/pluggableElementTypes/AdapterType.js +0 -19
- package/pluggableElementTypes/AddTrackWorkflowType.d.ts +0 -17
- package/pluggableElementTypes/AddTrackWorkflowType.js +0 -14
- package/pluggableElementTypes/ConnectionType.d.ts +0 -20
- package/pluggableElementTypes/ConnectionType.js +0 -17
- package/pluggableElementTypes/DisplayType.d.ts +0 -28
- package/pluggableElementTypes/DisplayType.js +0 -18
- package/pluggableElementTypes/InternetAccountType.d.ts +0 -12
- package/pluggableElementTypes/InternetAccountType.js +0 -14
- package/pluggableElementTypes/PluggableElementBase.js +0 -12
- package/pluggableElementTypes/RpcMethodType.d.ts +0 -17
- package/pluggableElementTypes/RpcMethodType.js +0 -69
- package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +0 -11
- package/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.js +0 -35
- package/pluggableElementTypes/TextSearchAdapterType.d.ts +0 -18
- package/pluggableElementTypes/TextSearchAdapterType.js +0 -18
- package/pluggableElementTypes/TrackType.d.ts +0 -16
- package/pluggableElementTypes/TrackType.js +0 -18
- package/pluggableElementTypes/ViewType.d.ts +0 -29
- package/pluggableElementTypes/ViewType.js +0 -21
- package/pluggableElementTypes/WidgetType.d.ts +0 -25
- package/pluggableElementTypes/WidgetType.js +0 -17
- package/pluggableElementTypes/index.d.ts +0 -26
- package/pluggableElementTypes/index.js +0 -44
- package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +0 -29
- package/pluggableElementTypes/models/BaseConnectionModelFactory.js +0 -38
- package/pluggableElementTypes/models/BaseDisplayModel.d.ts +0 -68
- package/pluggableElementTypes/models/BaseDisplayModel.js +0 -81
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +0 -53
- package/pluggableElementTypes/models/BaseTrackModel.js +0 -145
- package/pluggableElementTypes/models/BaseViewModel.d.ts +0 -42
- package/pluggableElementTypes/models/BaseViewModel.js +0 -35
- package/pluggableElementTypes/models/InternetAccountModel.d.ts +0 -86
- package/pluggableElementTypes/models/InternetAccountModel.js +0 -155
- package/pluggableElementTypes/models/baseConnectionConfig.d.ts +0 -16
- package/pluggableElementTypes/models/baseConnectionConfig.js +0 -20
- package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +0 -27
- package/pluggableElementTypes/models/baseInternetAccountConfig.js +0 -35
- package/pluggableElementTypes/models/baseTrackConfig.d.ts +0 -82
- package/pluggableElementTypes/models/baseTrackConfig.js +0 -135
- package/pluggableElementTypes/models/index.d.ts +0 -13
- package/pluggableElementTypes/models/index.js +0 -22
- package/pluggableElementTypes/renderers/BoxRendererType.d.ts +0 -60
- package/pluggableElementTypes/renderers/BoxRendererType.js +0 -102
- package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -26
- package/pluggableElementTypes/renderers/CircularChordRendererType.js +0 -34
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +0 -38
- package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +0 -65
- package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -51
- package/pluggableElementTypes/renderers/FeatureRendererType.js +0 -85
- package/pluggableElementTypes/renderers/LayoutSession.d.ts +0 -25
- package/pluggableElementTypes/renderers/LayoutSession.js +0 -42
- package/pluggableElementTypes/renderers/RendererType.d.ts +0 -25
- package/pluggableElementTypes/renderers/RendererType.js +0 -23
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +0 -9
- package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.js +0 -9
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +0 -6
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +0 -8
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +0 -49
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +0 -81
- package/pluggableElementTypes/renderers/index.d.ts +0 -7
- package/pluggableElementTypes/renderers/index.js +0 -20
- package/pluggableElementTypes/renderers/util/serializableFilterChain.js +0 -32
- package/rpc/BaseRpcDriver.d.ts +0 -43
- package/rpc/BaseRpcDriver.js +0 -113
- package/rpc/MainThreadRpcDriver.d.ts +0 -14
- package/rpc/MainThreadRpcDriver.js +0 -32
- package/rpc/RpcManager.d.ts +0 -34
- package/rpc/RpcManager.js +0 -69
- package/rpc/WebWorkerRpcDriver.d.ts +0 -29
- package/rpc/WebWorkerRpcDriver.js +0 -65
- package/rpc/baseRpcConfig.d.ts +0 -8
- package/rpc/baseRpcConfig.js +0 -12
- package/rpc/configSchema.d.ts +0 -9
- package/rpc/configSchema.js +0 -27
- package/rpc/coreRpcMethods.d.ts +0 -9
- package/rpc/coreRpcMethods.js +0 -22
- package/rpc/mainThreadRpcConfig.d.ts +0 -8
- package/rpc/mainThreadRpcConfig.js +0 -13
- package/rpc/methods/CoreFreeResources.d.ts +0 -6
- package/rpc/methods/CoreFreeResources.js +0 -23
- package/rpc/methods/CoreGetFeatureDensityStats.d.ts +0 -17
- package/rpc/methods/CoreGetFeatureDensityStats.js +0 -36
- package/rpc/methods/CoreGetFeatureDetails.d.ts +0 -11
- package/rpc/methods/CoreGetFeatureDetails.js +0 -38
- package/rpc/methods/CoreGetFeatures.d.ts +0 -18
- package/rpc/methods/CoreGetFeatures.js +0 -40
- package/rpc/methods/CoreGetFileInfo.d.ts +0 -9
- package/rpc/methods/CoreGetFileInfo.js +0 -24
- package/rpc/methods/CoreGetMetadata.d.ts +0 -9
- package/rpc/methods/CoreGetMetadata.js +0 -24
- package/rpc/methods/CoreGetRefNames.d.ts +0 -9
- package/rpc/methods/CoreGetRefNames.js +0 -25
- package/rpc/methods/CoreRender.d.ts +0 -10
- package/rpc/methods/CoreRender.js +0 -46
- package/rpc/methods/util.d.ts +0 -15
- package/rpc/methods/util.js +0 -9
- package/rpc/webWorkerRpcConfig.d.ts +0 -8
- package/rpc/webWorkerRpcConfig.js +0 -13
- package/stories/JBrowseCore.stories.d.ts +0 -5
- package/stories/JBrowseCore.stories.js +0 -10
- package/stories/examples/WithSequencePanel.d.ts +0 -6
- package/stories/examples/WithSequencePanel.js +0 -42
- package/stories/examples/index.d.ts +0 -1
- package/stories/examples/index.js +0 -17
- package/stories/examples/util.d.ts +0 -33
- package/stories/examples/util.js +0 -235
- package/tsconfig.build.tsbuildinfo +0 -1
- package/ui/AppLogo.d.ts +0 -7
- package/ui/AppLogo.js +0 -12
- package/ui/AssemblySelector.d.ts +0 -13
- package/ui/AssemblySelector.js +0 -46
- package/ui/BaseTooltip.d.ts +0 -8
- package/ui/BaseTooltip.js +0 -46
- package/ui/CascadingMenu.d.ts +0 -9
- package/ui/CascadingMenu.js +0 -92
- package/ui/CascadingMenuButton.d.ts +0 -11
- package/ui/CascadingMenuButton.js +0 -29
- package/ui/ColorPicker.js +0 -101
- package/ui/DataGridFlexContainer.d.ts +0 -3
- package/ui/DataGridFlexContainer.js +0 -15
- package/ui/Dialog.d.ts +0 -7
- package/ui/Dialog.js +0 -50
- package/ui/DraggableDialog.js +0 -32
- package/ui/DropDownMenu.d.ts +0 -8
- package/ui/DropDownMenu.js +0 -37
- package/ui/EditableTypography.js +0 -72
- package/ui/ErrorBoundary.d.ts +0 -17
- package/ui/ErrorBoundary.js +0 -19
- package/ui/ErrorMessage.js +0 -94
- package/ui/ErrorMessageStackTraceDialog.js +0 -149
- package/ui/ExternalLink.js +0 -13
- package/ui/FactoryResetDialog.js +0 -24
- package/ui/FatalErrorDialog.js +0 -24
- package/ui/FileSelector/FileSelector.d.ts +0 -11
- package/ui/FileSelector/FileSelector.js +0 -102
- package/ui/FileSelector/LocalFileChooser.d.ts +0 -6
- package/ui/FileSelector/LocalFileChooser.js +0 -42
- package/ui/FileSelector/UrlChooser.d.ts +0 -8
- package/ui/FileSelector/UrlChooser.js +0 -19
- package/ui/FileSelector/index.d.ts +0 -1
- package/ui/FileSelector/index.js +0 -8
- package/ui/HoverMenu.js +0 -50
- package/ui/Icons.js +0 -23
- package/ui/LoadingEllipses.d.ts +0 -6
- package/ui/LoadingEllipses.js +0 -35
- package/ui/Logo.js +0 -46
- package/ui/Menu.d.ts +0 -53
- package/ui/Menu.js +0 -233
- package/ui/MenuButton.d.ts +0 -10
- package/ui/MenuButton.js +0 -28
- package/ui/PrerenderedCanvas.d.ts +0 -10
- package/ui/PrerenderedCanvas.js +0 -34
- package/ui/RedErrorMessageBox.js +0 -19
- package/ui/ResizeHandle.js +0 -72
- package/ui/ReturnToImportFormDialog.js +0 -18
- package/ui/SanitizedHTML.js +0 -64
- package/ui/Snackbar.d.ts +0 -10
- package/ui/Snackbar.js +0 -49
- package/ui/SnackbarContents.d.ts +0 -5
- package/ui/SnackbarContents.js +0 -16
- package/ui/SnackbarModel.d.ts +0 -17
- package/ui/SnackbarModel.js +0 -96
- package/ui/colors.js +0 -78
- package/ui/hooks.d.ts +0 -66
- package/ui/hooks.js +0 -185
- package/ui/index.d.ts +0 -19
- package/ui/index.js +0 -56
- package/ui/react-colorful.d.ts +0 -17
- package/ui/react-colorful.js +0 -466
- package/ui/theme.d.ts +0 -59
- package/ui/theme.js +0 -381
- package/ui/useEvent.js +0 -47
- package/util/Base1DUtils.d.ts +0 -38
- package/util/Base1DUtils.js +0 -198
- package/util/Base1DViewModel.d.ts +0 -61
- package/util/Base1DViewModel.js +0 -135
- package/util/QuickLRU.d.ts +0 -32
- package/util/QuickLRU.js +0 -237
- package/util/TimeTraveller.d.ts +0 -19
- package/util/TimeTraveller.js +0 -90
- package/util/aborting.js +0 -48
- package/util/analytics.js +0 -86
- package/util/blobToDataURL.js +0 -17
- package/util/blockTypes.d.ts +0 -58
- package/util/blockTypes.js +0 -110
- package/util/calculateDynamicBlocks.d.ts +0 -3
- package/util/calculateDynamicBlocks.js +0 -100
- package/util/calculateStaticBlocks.d.ts +0 -13
- package/util/calculateStaticBlocks.js +0 -102
- package/util/cluster.d.ts +0 -17
- package/util/cluster.js +0 -96
- package/util/color/cssColorsLevel4.js +0 -160
- package/util/color/index.d.ts +0 -4
- package/util/color/index.js +0 -40
- package/util/colord.d.ts +0 -1
- package/util/colord.js +0 -13
- package/util/compositeMap.d.ts +0 -11
- package/util/compositeMap.js +0 -61
- package/util/dedupe.js +0 -15
- package/util/formatFastaStrings.js +0 -12
- package/util/idMaker.js +0 -24
- package/util/index.d.ts +0 -274
- package/util/index.js +0 -1052
- package/util/io/RemoteFileWithRangeCache.js +0 -76
- package/util/io/index.d.ts +0 -7
- package/util/io/index.js +0 -103
- package/util/jexl.d.ts +0 -4
- package/util/jexl.js +0 -54
- package/util/jexlStrings.js +0 -23
- package/util/layouts/BaseLayout.d.ts +0 -30
- package/util/layouts/BaseLayout.js +0 -2
- package/util/layouts/GranularRectLayout.d.ts +0 -37
- package/util/layouts/GranularRectLayout.js +0 -343
- package/util/layouts/MultiLayout.d.ts +0 -12
- package/util/layouts/MultiLayout.js +0 -42
- package/util/layouts/PrecomputedLayout.d.ts +0 -28
- package/util/layouts/PrecomputedLayout.js +0 -66
- package/util/layouts/PrecomputedMultiLayout.d.ts +0 -4
- package/util/layouts/PrecomputedMultiLayout.js +0 -21
- package/util/layouts/SceneGraph.js +0 -115
- package/util/layouts/index.d.ts +0 -7
- package/util/layouts/index.js +0 -31
- package/util/makeAbortableReaction.d.ts +0 -2
- package/util/makeAbortableReaction.js +0 -50
- package/util/map-obj.d.ts +0 -3
- package/util/map-obj.js +0 -37
- package/util/mst-reflection.d.ts +0 -11
- package/util/mst-reflection.js +0 -62
- package/util/nanoid.d.ts +0 -5
- package/util/nanoid.js +0 -43
- package/util/nextTick.js +0 -6
- package/util/offscreenCanvasPonyfill.d.ts +0 -7
- package/util/offscreenCanvasPonyfill.js +0 -65
- package/util/offscreenCanvasUtils.d.ts +0 -28
- package/util/offscreenCanvasUtils.js +0 -99
- package/util/parseLineByLine.js +0 -25
- package/util/range.js +0 -26
- package/util/rxjs.d.ts +0 -3
- package/util/rxjs.js +0 -21
- package/util/simpleFeature.d.ts +0 -44
- package/util/simpleFeature.js +0 -82
- package/util/stats.d.ts +0 -21
- package/util/stats.js +0 -78
- package/util/stopToken.d.ts +0 -3
- package/util/stopToken.js +0 -29
- package/util/tracks.d.ts +0 -55
- package/util/tracks.js +0 -168
- package/util/types/index.d.ts +0 -254
- package/util/types/index.js +0 -172
- package/util/types/mst.d.ts +0 -107
- package/util/types/mst.js +0 -72
- package/util/types/util.d.ts +0 -6
- package/util/types/util.js +0 -2
- package/util/useMeasure.js +0 -33
- package/util/when.js +0 -5
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/ArrayValue.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/BasicValue.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/DataGridDetails.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/FieldName.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/SimpleField.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/UriField.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/BaseFeatureDetail/util.d.ts +0 -0
- /package/{BaseFeatureWidget → esm/BaseFeatureWidget}/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +0 -0
- /package/{PhasedScheduler.d.ts → esm/PhasedScheduler.d.ts} +0 -0
- /package/{ReExports → esm/ReExports}/BaseFeatureDetails.d.ts +0 -0
- /package/{ReExports → esm/ReExports}/DataGrid.d.ts +0 -0
- /package/{ReExports → esm/ReExports}/MuiDataGridReExports.d.ts +0 -0
- /package/{ReExports → esm/ReExports}/lazify.d.ts +0 -0
- /package/{ReExports → esm/ReExports}/list.d.ts +0 -0
- /package/{ReExports → esm/ReExports}/modules.d.ts +0 -0
- /package/{data_adapters → esm/data_adapters}/util.d.ts +0 -0
- /package/{pluggableElementTypes → esm/pluggableElementTypes}/PluggableElementBase.d.ts +0 -0
- /package/{pluggableElementTypes → esm/pluggableElementTypes}/renderers/util/serializableFilterChain.d.ts +0 -0
- /package/{ui → esm/ui}/ColorPicker.d.ts +0 -0
- /package/{ui → esm/ui}/DraggableDialog.d.ts +0 -0
- /package/{ui → esm/ui}/EditableTypography.d.ts +0 -0
- /package/{ui → esm/ui}/ErrorMessage.d.ts +0 -0
- /package/{ui → esm/ui}/ErrorMessageStackTraceDialog.d.ts +0 -0
- /package/{ui → esm/ui}/ExternalLink.d.ts +0 -0
- /package/{ui → esm/ui}/FactoryResetDialog.d.ts +0 -0
- /package/{ui → esm/ui}/FatalErrorDialog.d.ts +0 -0
- /package/{ui → esm/ui}/HoverMenu.d.ts +0 -0
- /package/{ui → esm/ui}/Icons.d.ts +0 -0
- /package/{ui → esm/ui}/Logo.d.ts +0 -0
- /package/{ui → esm/ui}/RedErrorMessageBox.d.ts +0 -0
- /package/{ui → esm/ui}/ResizeHandle.d.ts +0 -0
- /package/{ui → esm/ui}/ReturnToImportFormDialog.d.ts +0 -0
- /package/{ui → esm/ui}/SanitizedHTML.d.ts +0 -0
- /package/{ui → esm/ui}/colors.d.ts +0 -0
- /package/{ui → esm/ui}/useEvent.d.ts +0 -0
- /package/{util → esm/util}/aborting.d.ts +0 -0
- /package/{util → esm/util}/analytics.d.ts +0 -0
- /package/{util → esm/util}/blobToDataURL.d.ts +0 -0
- /package/{util → esm/util}/color/cssColorsLevel4.d.ts +0 -0
- /package/{util → esm/util}/dedupe.d.ts +0 -0
- /package/{util → esm/util}/formatFastaStrings.d.ts +0 -0
- /package/{util → esm/util}/idMaker.d.ts +0 -0
- /package/{util → esm/util}/io/RemoteFileWithRangeCache.d.ts +0 -0
- /package/{util → esm/util}/jexlStrings.d.ts +0 -0
- /package/{util → esm/util}/layouts/SceneGraph.d.ts +0 -0
- /package/{util → esm/util}/nextTick.d.ts +0 -0
- /package/{util → esm/util}/parseLineByLine.d.ts +0 -0
- /package/{util → esm/util}/range.d.ts +0 -0
- /package/{util → esm/util}/useMeasure.d.ts +0 -0
- /package/{util → esm/util}/when.d.ts +0 -0
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { cast, types } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { bpToPx, moveTo, pxToBp } from "./Base1DUtils.js";
|
|
3
|
+
import calculateDynamicBlocks from "./calculateDynamicBlocks.js";
|
|
4
|
+
import calculateStaticBlocks from "./calculateStaticBlocks.js";
|
|
5
|
+
import { clamp, sum } from "./index.js";
|
|
6
|
+
import { ElementId } from "./types/mst.js";
|
|
7
|
+
function x() { }
|
|
8
|
+
const Base1DView = types
|
|
9
|
+
.model('Base1DView', {
|
|
10
|
+
id: ElementId,
|
|
11
|
+
displayedRegions: types.optional(types.frozen(), []),
|
|
12
|
+
bpPerPx: 0,
|
|
13
|
+
offsetPx: 0,
|
|
14
|
+
interRegionPaddingWidth: types.optional(types.number, 0),
|
|
15
|
+
minimumBlockWidth: types.optional(types.number, 0),
|
|
16
|
+
})
|
|
17
|
+
.volatile(() => ({
|
|
18
|
+
features: undefined,
|
|
19
|
+
volatileWidth: 0,
|
|
20
|
+
}))
|
|
21
|
+
.actions(self => ({
|
|
22
|
+
setDisplayedRegions(regions) {
|
|
23
|
+
self.displayedRegions = cast(regions);
|
|
24
|
+
},
|
|
25
|
+
setBpPerPx(val) {
|
|
26
|
+
self.bpPerPx = val;
|
|
27
|
+
},
|
|
28
|
+
setVolatileWidth(width) {
|
|
29
|
+
self.volatileWidth = width;
|
|
30
|
+
},
|
|
31
|
+
}))
|
|
32
|
+
.views(self => ({
|
|
33
|
+
get width() {
|
|
34
|
+
return self.volatileWidth;
|
|
35
|
+
},
|
|
36
|
+
get assemblyNames() {
|
|
37
|
+
return [...new Set(self.displayedRegions.map(r => r.assemblyName))];
|
|
38
|
+
},
|
|
39
|
+
get displayedRegionsTotalPx() {
|
|
40
|
+
return this.totalBp / self.bpPerPx;
|
|
41
|
+
},
|
|
42
|
+
get maxOffset() {
|
|
43
|
+
const leftPadding = 10;
|
|
44
|
+
return this.displayedRegionsTotalPx - leftPadding;
|
|
45
|
+
},
|
|
46
|
+
get minOffset() {
|
|
47
|
+
const rightPadding = 30;
|
|
48
|
+
return -this.width + rightPadding;
|
|
49
|
+
},
|
|
50
|
+
get totalBp() {
|
|
51
|
+
return sum(self.displayedRegions.map(a => a.end - a.start));
|
|
52
|
+
},
|
|
53
|
+
}))
|
|
54
|
+
.views(self => ({
|
|
55
|
+
get dynamicBlocks() {
|
|
56
|
+
return calculateDynamicBlocks(self);
|
|
57
|
+
},
|
|
58
|
+
get staticBlocks() {
|
|
59
|
+
return calculateStaticBlocks(self);
|
|
60
|
+
},
|
|
61
|
+
get currBp() {
|
|
62
|
+
return sum(this.dynamicBlocks.map(a => a.end - a.start));
|
|
63
|
+
},
|
|
64
|
+
}))
|
|
65
|
+
.views(self => ({
|
|
66
|
+
pxToBp(px) {
|
|
67
|
+
return pxToBp(self, px);
|
|
68
|
+
},
|
|
69
|
+
bpToPx({ refName, coord, regionNumber, }) {
|
|
70
|
+
return bpToPx({ refName, coord, regionNumber, self })?.offsetPx;
|
|
71
|
+
},
|
|
72
|
+
}))
|
|
73
|
+
.actions(self => ({
|
|
74
|
+
setFeatures(features) {
|
|
75
|
+
self.features = features;
|
|
76
|
+
},
|
|
77
|
+
showAllRegions() {
|
|
78
|
+
self.bpPerPx = self.totalBp / self.width;
|
|
79
|
+
self.offsetPx = 0;
|
|
80
|
+
},
|
|
81
|
+
zoomOut() {
|
|
82
|
+
this.zoomTo(self.bpPerPx * 2);
|
|
83
|
+
},
|
|
84
|
+
zoomIn() {
|
|
85
|
+
this.zoomTo(self.bpPerPx / 2);
|
|
86
|
+
},
|
|
87
|
+
zoomTo(bpPerPx, offset = self.width / 2) {
|
|
88
|
+
const newBpPerPx = clamp(bpPerPx, 'minBpPerPx' in self ? self.minBpPerPx : 0, 'maxBpPerPx' in self
|
|
89
|
+
? self.maxBpPerPx
|
|
90
|
+
: Number.POSITIVE_INFINITY);
|
|
91
|
+
const oldBpPerPx = self.bpPerPx;
|
|
92
|
+
if (Math.abs(oldBpPerPx - newBpPerPx) < 0.000001) {
|
|
93
|
+
return oldBpPerPx;
|
|
94
|
+
}
|
|
95
|
+
self.bpPerPx = newBpPerPx;
|
|
96
|
+
self.offsetPx = clamp(Math.round(((self.offsetPx + offset) * oldBpPerPx) / newBpPerPx - offset), self.minOffset, self.maxOffset);
|
|
97
|
+
return self.bpPerPx;
|
|
98
|
+
},
|
|
99
|
+
scrollTo(offsetPx) {
|
|
100
|
+
const newOffsetPx = clamp(offsetPx, self.minOffset, self.maxOffset);
|
|
101
|
+
self.offsetPx = newOffsetPx;
|
|
102
|
+
return newOffsetPx;
|
|
103
|
+
},
|
|
104
|
+
centerAt(coord, refName, regionNumber) {
|
|
105
|
+
if (!refName) {
|
|
106
|
+
return;
|
|
107
|
+
}
|
|
108
|
+
const centerPx = self.bpToPx({
|
|
109
|
+
refName,
|
|
110
|
+
coord,
|
|
111
|
+
regionNumber,
|
|
112
|
+
});
|
|
113
|
+
if (centerPx) {
|
|
114
|
+
this.scrollTo(Math.round(centerPx - self.width / 2));
|
|
115
|
+
}
|
|
116
|
+
},
|
|
117
|
+
scroll(distance) {
|
|
118
|
+
const oldOffsetPx = self.offsetPx;
|
|
119
|
+
const newOffsetPx = clamp(self.offsetPx + distance, self.minOffset, self.maxOffset);
|
|
120
|
+
self.offsetPx = newOffsetPx;
|
|
121
|
+
return newOffsetPx - oldOffsetPx;
|
|
122
|
+
},
|
|
123
|
+
}))
|
|
124
|
+
.actions(self => ({
|
|
125
|
+
moveTo(start, end) {
|
|
126
|
+
moveTo(self, start, end);
|
|
127
|
+
},
|
|
128
|
+
}));
|
|
129
|
+
export default Base1DView;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@jbrowse/quick-lru';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { default } from '@jbrowse/quick-lru';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
declare const TimeTraveller: import("@jbrowse/mobx-state-tree").IModelType<{
|
|
2
|
+
undoIdx: import("@jbrowse/mobx-state-tree").IType<number | undefined, number, number>;
|
|
3
|
+
targetPath: import("@jbrowse/mobx-state-tree").IType<string | undefined, string, string>;
|
|
4
|
+
}, {
|
|
5
|
+
history: unknown[];
|
|
6
|
+
notTrackingUndo: boolean;
|
|
7
|
+
} & {
|
|
8
|
+
readonly canUndo: boolean;
|
|
9
|
+
readonly canRedo: boolean;
|
|
10
|
+
} & {
|
|
11
|
+
stopTrackingUndo(): void;
|
|
12
|
+
resumeTrackingUndo(): void;
|
|
13
|
+
addUndoState(snapshot: unknown): void;
|
|
14
|
+
beforeDestroy(): void;
|
|
15
|
+
initialize(): void;
|
|
16
|
+
undo(): void;
|
|
17
|
+
redo(): void;
|
|
18
|
+
}, import("@jbrowse/mobx-state-tree")._NotCustomized, import("@jbrowse/mobx-state-tree")._NotCustomized>;
|
|
19
|
+
export default TimeTraveller;
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { applySnapshot, getEnv, getSnapshot, onSnapshot, resolvePath, types, } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
const MAX_HISTORY_LENGTH = 20;
|
|
3
|
+
const TimeTraveller = types
|
|
4
|
+
.model('TimeTraveller', {
|
|
5
|
+
undoIdx: -1,
|
|
6
|
+
targetPath: '',
|
|
7
|
+
})
|
|
8
|
+
.volatile(() => ({
|
|
9
|
+
history: [],
|
|
10
|
+
notTrackingUndo: false,
|
|
11
|
+
}))
|
|
12
|
+
.views(self => ({
|
|
13
|
+
get canUndo() {
|
|
14
|
+
return self.undoIdx > 0 && !self.notTrackingUndo;
|
|
15
|
+
},
|
|
16
|
+
get canRedo() {
|
|
17
|
+
return self.undoIdx < self.history.length - 1 && !self.notTrackingUndo;
|
|
18
|
+
},
|
|
19
|
+
}))
|
|
20
|
+
.actions(self => {
|
|
21
|
+
let targetStore;
|
|
22
|
+
let snapshotDisposer;
|
|
23
|
+
let skipNextUndoState = false;
|
|
24
|
+
let debounceTimer;
|
|
25
|
+
let pendingSnapshot;
|
|
26
|
+
return {
|
|
27
|
+
stopTrackingUndo() {
|
|
28
|
+
self.notTrackingUndo = true;
|
|
29
|
+
},
|
|
30
|
+
resumeTrackingUndo() {
|
|
31
|
+
self.notTrackingUndo = false;
|
|
32
|
+
},
|
|
33
|
+
addUndoState(snapshot) {
|
|
34
|
+
if (self.notTrackingUndo) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (skipNextUndoState) {
|
|
38
|
+
skipNextUndoState = false;
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
self.history.splice(self.undoIdx + 1);
|
|
42
|
+
self.history.push(snapshot);
|
|
43
|
+
if (self.history.length > MAX_HISTORY_LENGTH) {
|
|
44
|
+
self.history.shift();
|
|
45
|
+
}
|
|
46
|
+
self.undoIdx = self.history.length - 1;
|
|
47
|
+
},
|
|
48
|
+
beforeDestroy() {
|
|
49
|
+
snapshotDisposer();
|
|
50
|
+
if (debounceTimer) {
|
|
51
|
+
clearTimeout(debounceTimer);
|
|
52
|
+
}
|
|
53
|
+
},
|
|
54
|
+
initialize() {
|
|
55
|
+
targetStore = self.targetPath
|
|
56
|
+
? resolvePath(self, self.targetPath)
|
|
57
|
+
: getEnv(self).targetStore;
|
|
58
|
+
if (!targetStore) {
|
|
59
|
+
throw new Error('Failed to find target store for TimeTraveller. Please provide `targetPath` property, or a `targetStore` in the environment');
|
|
60
|
+
}
|
|
61
|
+
snapshotDisposer = onSnapshot(targetStore, snapshot => {
|
|
62
|
+
if (self.notTrackingUndo || skipNextUndoState) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
pendingSnapshot = snapshot;
|
|
66
|
+
if (debounceTimer) {
|
|
67
|
+
clearTimeout(debounceTimer);
|
|
68
|
+
}
|
|
69
|
+
debounceTimer = setTimeout(() => {
|
|
70
|
+
debounceTimer = undefined;
|
|
71
|
+
this.addUndoState(pendingSnapshot);
|
|
72
|
+
}, 300);
|
|
73
|
+
});
|
|
74
|
+
if (self.history.length === 0) {
|
|
75
|
+
this.addUndoState(getSnapshot(targetStore));
|
|
76
|
+
}
|
|
77
|
+
},
|
|
78
|
+
undo() {
|
|
79
|
+
self.undoIdx--;
|
|
80
|
+
skipNextUndoState = true;
|
|
81
|
+
if (targetStore) {
|
|
82
|
+
applySnapshot(targetStore, self.history[self.undoIdx]);
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
redo() {
|
|
86
|
+
self.undoIdx++;
|
|
87
|
+
skipNextUndoState = true;
|
|
88
|
+
if (targetStore) {
|
|
89
|
+
applySnapshot(targetStore, self.history[self.undoIdx]);
|
|
90
|
+
}
|
|
91
|
+
},
|
|
92
|
+
};
|
|
93
|
+
});
|
|
94
|
+
export default TimeTraveller;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { Observable, fromEvent } from 'rxjs';
|
|
2
|
+
class AbortError extends Error {
|
|
3
|
+
code;
|
|
4
|
+
}
|
|
5
|
+
export function checkAbortSignal(signal) {
|
|
6
|
+
if (!signal) {
|
|
7
|
+
return;
|
|
8
|
+
}
|
|
9
|
+
if (!(signal instanceof AbortSignal)) {
|
|
10
|
+
throw new TypeError('must pass an AbortSignal');
|
|
11
|
+
}
|
|
12
|
+
if (signal.aborted) {
|
|
13
|
+
throw makeAbortError();
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
function timeout(ms) {
|
|
17
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
18
|
+
}
|
|
19
|
+
export async function abortBreakPoint(signal) {
|
|
20
|
+
await timeout(1);
|
|
21
|
+
checkAbortSignal(signal);
|
|
22
|
+
}
|
|
23
|
+
export function makeAbortError() {
|
|
24
|
+
if (typeof DOMException !== 'undefined') {
|
|
25
|
+
return new DOMException('aborted', 'AbortError');
|
|
26
|
+
}
|
|
27
|
+
const e = new AbortError('aborted');
|
|
28
|
+
e.code = 'ERR_ABORTED';
|
|
29
|
+
return e;
|
|
30
|
+
}
|
|
31
|
+
export function observeAbortSignal(signal) {
|
|
32
|
+
if (!signal) {
|
|
33
|
+
return new Observable();
|
|
34
|
+
}
|
|
35
|
+
return fromEvent(signal, 'abort');
|
|
36
|
+
}
|
|
37
|
+
export function isAbortException(exception) {
|
|
38
|
+
return (exception instanceof Error &&
|
|
39
|
+
(exception.name === 'AbortError' ||
|
|
40
|
+
exception.code === 'ERR_ABORTED' ||
|
|
41
|
+
/\b(aborted|aborterror)\b/i.test(exception.message)));
|
|
42
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { readConfObject } from "../configuration/index.js";
|
|
2
|
+
import { isElectron } from "../util/index.js";
|
|
3
|
+
export async function writeAWSAnalytics(rootModel, initialTimeStamp, sessionQuery) {
|
|
4
|
+
try {
|
|
5
|
+
const url = 'https://analytics.jbrowse.org/api/v1';
|
|
6
|
+
const multiAssemblyTracks = rootModel.jbrowse.tracks.filter((track) => (readConfObject(track, 'assemblyNames') || []).length > 1).length;
|
|
7
|
+
const savedSessionCount = Object.keys(localStorage).filter(name => name.includes('localSaved-')).length;
|
|
8
|
+
const { jbrowse: config, session, version: ver } = rootModel;
|
|
9
|
+
const { tracks, assemblies, plugins } = config;
|
|
10
|
+
const stats = {
|
|
11
|
+
ver,
|
|
12
|
+
'plugins-count': plugins?.length || 0,
|
|
13
|
+
'plugin-names': plugins?.map((p) => p.name).join(','),
|
|
14
|
+
'assemblies-count': assemblies.length,
|
|
15
|
+
'tracks-count': tracks.length,
|
|
16
|
+
'session-tracks-count': session?.sessionTracks.length || 0,
|
|
17
|
+
'open-views': session?.views.length || 0,
|
|
18
|
+
'synteny-tracks-count': multiAssemblyTracks,
|
|
19
|
+
'saved-sessions-count': savedSessionCount,
|
|
20
|
+
'existing-session-param-type': sessionQuery?.split('-')[0] || 'none',
|
|
21
|
+
'scn-h': window.screen.height,
|
|
22
|
+
'scn-w': window.screen.width,
|
|
23
|
+
'win-h': window.innerHeight,
|
|
24
|
+
'win-w': window.innerWidth,
|
|
25
|
+
electron: isElectron,
|
|
26
|
+
loadTime: (Date.now() - initialTimeStamp) / 1000,
|
|
27
|
+
jb2: true,
|
|
28
|
+
};
|
|
29
|
+
tracks.forEach((track) => {
|
|
30
|
+
const key = `track-types-${track.type}`;
|
|
31
|
+
stats[key] = stats[key] + 1 || 1;
|
|
32
|
+
});
|
|
33
|
+
session?.sessionTracks.forEach((track) => {
|
|
34
|
+
const key = `sessionTrack-types-${track.type}`;
|
|
35
|
+
stats[key] = stats[key] + 1 || 1;
|
|
36
|
+
});
|
|
37
|
+
const qs = Object.keys(stats)
|
|
38
|
+
.map(key => `${key}=${stats[key]}`)
|
|
39
|
+
.join('&');
|
|
40
|
+
await fetch(`${url}?${qs}`);
|
|
41
|
+
}
|
|
42
|
+
catch (e) {
|
|
43
|
+
console.error('Failed to write analytics to AWS.', e);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
export async function writeGAAnalytics(rootModel, initialTimestamp) {
|
|
47
|
+
const jbrowseUser = 'UA-7115575-5';
|
|
48
|
+
const stats = {
|
|
49
|
+
'tracks-count': rootModel.jbrowse.tracks.length,
|
|
50
|
+
ver: rootModel.version,
|
|
51
|
+
electron: isElectron,
|
|
52
|
+
loadTime: Date.now() - initialTimestamp,
|
|
53
|
+
pluginNames: rootModel.jbrowse.plugins?.map((plugin) => plugin.name) || '',
|
|
54
|
+
};
|
|
55
|
+
let analyticsScript = "(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){";
|
|
56
|
+
analyticsScript +=
|
|
57
|
+
'(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),';
|
|
58
|
+
analyticsScript +=
|
|
59
|
+
'm=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)';
|
|
60
|
+
analyticsScript +=
|
|
61
|
+
"})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');";
|
|
62
|
+
analyticsScript += `ga('create', '${jbrowseUser}', 'auto', 'jbrowseTracker');`;
|
|
63
|
+
const gaData = {};
|
|
64
|
+
const googleDimensions = 'tracks-count ver electron loadTime pluginNames';
|
|
65
|
+
for (const [index, key] of googleDimensions.split(/\s+/).entries()) {
|
|
66
|
+
gaData[`dimension${index + 1}`] = stats[key];
|
|
67
|
+
}
|
|
68
|
+
gaData.metric1 = Math.round(stats.loadTime);
|
|
69
|
+
analyticsScript += `ga('jbrowseTracker.send', 'pageview',${JSON.stringify(gaData)});`;
|
|
70
|
+
const analyticsScriptNode = document.createElement('script');
|
|
71
|
+
analyticsScriptNode.innerHTML = analyticsScript;
|
|
72
|
+
document.getElementsByTagName('head')[0].append(analyticsScriptNode);
|
|
73
|
+
}
|
|
74
|
+
export function doAnalytics(rootModel, initialTimestamp, initialSessionQuery) {
|
|
75
|
+
if (rootModel &&
|
|
76
|
+
!readConfObject(rootModel.jbrowse.configuration, 'disableAnalytics')) {
|
|
77
|
+
writeAWSAnalytics(rootModel, initialTimestamp, initialSessionQuery);
|
|
78
|
+
writeGAAnalytics(rootModel, initialTimestamp);
|
|
79
|
+
}
|
|
80
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export function blobToDataURL(blob) {
|
|
2
|
+
const a = new FileReader();
|
|
3
|
+
return new Promise((resolve, reject) => {
|
|
4
|
+
a.onload = e => {
|
|
5
|
+
if (e.target) {
|
|
6
|
+
resolve(e.target.result);
|
|
7
|
+
}
|
|
8
|
+
else {
|
|
9
|
+
reject(new Error('unknown result reading blob from canvas'));
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
a.readAsDataURL(blob);
|
|
13
|
+
});
|
|
14
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
type Func<T> = (value: BaseBlock, index: number, array: BaseBlock[]) => T;
|
|
2
|
+
export declare class BlockSet {
|
|
3
|
+
blocks: BaseBlock[];
|
|
4
|
+
constructor(blocks?: BaseBlock[]);
|
|
5
|
+
[Symbol.iterator](): Generator<BaseBlock, void, unknown>;
|
|
6
|
+
push(block: BaseBlock): void;
|
|
7
|
+
getBlocks(): BaseBlock[];
|
|
8
|
+
getRegions(): {
|
|
9
|
+
refName: string;
|
|
10
|
+
start: number;
|
|
11
|
+
end: number;
|
|
12
|
+
assemblyName: string;
|
|
13
|
+
reversed: boolean | undefined;
|
|
14
|
+
}[];
|
|
15
|
+
map<T, U = this>(func: Func<T>, thisarg?: U): T[];
|
|
16
|
+
forEach<T, U = this>(func: Func<T>, thisarg?: U): void;
|
|
17
|
+
get length(): number;
|
|
18
|
+
get totalWidthPx(): number;
|
|
19
|
+
get totalWidthPxWithoutBorders(): number;
|
|
20
|
+
get offsetPx(): number;
|
|
21
|
+
get contentBlocks(): BaseBlock[];
|
|
22
|
+
get totalBp(): number;
|
|
23
|
+
}
|
|
24
|
+
export declare class BaseBlock {
|
|
25
|
+
type: string;
|
|
26
|
+
regionNumber?: number;
|
|
27
|
+
reversed?: boolean;
|
|
28
|
+
refName: string;
|
|
29
|
+
start: number;
|
|
30
|
+
end: number;
|
|
31
|
+
assemblyName: string;
|
|
32
|
+
key: string;
|
|
33
|
+
offsetPx: number;
|
|
34
|
+
widthPx: number;
|
|
35
|
+
variant?: string;
|
|
36
|
+
isLeftEndOfDisplayedRegion?: boolean;
|
|
37
|
+
constructor(data: Record<string, any>);
|
|
38
|
+
toRegion(): {
|
|
39
|
+
refName: string;
|
|
40
|
+
start: number;
|
|
41
|
+
end: number;
|
|
42
|
+
assemblyName: string;
|
|
43
|
+
reversed: boolean | undefined;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
export declare class ContentBlock extends BaseBlock {
|
|
47
|
+
type: string;
|
|
48
|
+
}
|
|
49
|
+
export declare class ElidedBlock extends BaseBlock {
|
|
50
|
+
type: string;
|
|
51
|
+
widthPx: number;
|
|
52
|
+
elidedBlockCount: number;
|
|
53
|
+
constructor(data: Record<string, any>);
|
|
54
|
+
push(otherBlock: ElidedBlock): void;
|
|
55
|
+
}
|
|
56
|
+
export declare class InterRegionPaddingBlock extends BaseBlock {
|
|
57
|
+
type: string;
|
|
58
|
+
}
|
|
59
|
+
export {};
|
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
export class BlockSet {
|
|
2
|
+
blocks;
|
|
3
|
+
constructor(blocks = []) {
|
|
4
|
+
this.blocks = blocks;
|
|
5
|
+
}
|
|
6
|
+
*[Symbol.iterator]() {
|
|
7
|
+
yield* this.blocks;
|
|
8
|
+
}
|
|
9
|
+
push(block) {
|
|
10
|
+
if (block.type === 'ElidedBlock' && this.blocks.length > 0) {
|
|
11
|
+
const lastBlock = this.blocks.at(-1);
|
|
12
|
+
if (lastBlock?.type === 'ElidedBlock') {
|
|
13
|
+
;
|
|
14
|
+
lastBlock.push(block);
|
|
15
|
+
return;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
this.blocks.push(block);
|
|
19
|
+
}
|
|
20
|
+
getBlocks() {
|
|
21
|
+
return this.blocks;
|
|
22
|
+
}
|
|
23
|
+
getRegions() {
|
|
24
|
+
return this.blocks.map(block => block.toRegion());
|
|
25
|
+
}
|
|
26
|
+
map(func, thisarg) {
|
|
27
|
+
return this.blocks.map(func, thisarg);
|
|
28
|
+
}
|
|
29
|
+
forEach(func, thisarg) {
|
|
30
|
+
this.blocks.forEach(func, thisarg);
|
|
31
|
+
}
|
|
32
|
+
get length() {
|
|
33
|
+
return this.blocks.length;
|
|
34
|
+
}
|
|
35
|
+
get totalWidthPx() {
|
|
36
|
+
let total = 0;
|
|
37
|
+
for (let i = 0, l = this.blocks.length; i < l; i++) {
|
|
38
|
+
total += this.blocks[i].widthPx;
|
|
39
|
+
}
|
|
40
|
+
return total;
|
|
41
|
+
}
|
|
42
|
+
get totalWidthPxWithoutBorders() {
|
|
43
|
+
let total = 0;
|
|
44
|
+
for (let i = 0, l = this.blocks.length; i < l; i++) {
|
|
45
|
+
if (this.blocks[i].variant !== 'boundary') {
|
|
46
|
+
total += this.blocks[i].widthPx;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return total;
|
|
50
|
+
}
|
|
51
|
+
get offsetPx() {
|
|
52
|
+
return this.blocks.length > 0 ? this.blocks[0].offsetPx : 0;
|
|
53
|
+
}
|
|
54
|
+
get contentBlocks() {
|
|
55
|
+
return this.blocks.filter(block => block.type === 'ContentBlock');
|
|
56
|
+
}
|
|
57
|
+
get totalBp() {
|
|
58
|
+
let total = 0;
|
|
59
|
+
for (let i = 0, l = this.contentBlocks.length; i < l; i++) {
|
|
60
|
+
const b = this.contentBlocks[i];
|
|
61
|
+
total += b.end - b.start;
|
|
62
|
+
}
|
|
63
|
+
return total;
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
export class BaseBlock {
|
|
67
|
+
type = 'BaseBlock';
|
|
68
|
+
regionNumber;
|
|
69
|
+
reversed;
|
|
70
|
+
refName;
|
|
71
|
+
start;
|
|
72
|
+
end;
|
|
73
|
+
assemblyName;
|
|
74
|
+
key;
|
|
75
|
+
offsetPx;
|
|
76
|
+
widthPx = 0;
|
|
77
|
+
variant;
|
|
78
|
+
isLeftEndOfDisplayedRegion;
|
|
79
|
+
constructor(data) {
|
|
80
|
+
Object.assign(this, data);
|
|
81
|
+
this.assemblyName = data.assemblyName;
|
|
82
|
+
this.refName = data.refName;
|
|
83
|
+
this.start = data.start;
|
|
84
|
+
this.end = data.end;
|
|
85
|
+
this.key = data.key;
|
|
86
|
+
this.offsetPx = data.offsetPx;
|
|
87
|
+
}
|
|
88
|
+
toRegion() {
|
|
89
|
+
return {
|
|
90
|
+
refName: this.refName,
|
|
91
|
+
start: this.start,
|
|
92
|
+
end: this.end,
|
|
93
|
+
assemblyName: this.assemblyName,
|
|
94
|
+
reversed: this.reversed,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
export class ContentBlock extends BaseBlock {
|
|
99
|
+
type = 'ContentBlock';
|
|
100
|
+
}
|
|
101
|
+
export class ElidedBlock extends BaseBlock {
|
|
102
|
+
type = 'ElidedBlock';
|
|
103
|
+
widthPx;
|
|
104
|
+
elidedBlockCount = 0;
|
|
105
|
+
constructor(data) {
|
|
106
|
+
super(data);
|
|
107
|
+
this.widthPx = data.widthPx;
|
|
108
|
+
}
|
|
109
|
+
push(otherBlock) {
|
|
110
|
+
this.elidedBlockCount += 1;
|
|
111
|
+
this.refName = '';
|
|
112
|
+
this.start = 0;
|
|
113
|
+
this.end = 0;
|
|
114
|
+
this.widthPx += otherBlock.widthPx;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
export class InterRegionPaddingBlock extends BaseBlock {
|
|
118
|
+
type = 'InterRegionPaddingBlock';
|
|
119
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import { getSnapshot, isStateTreeNode } from '@jbrowse/mobx-state-tree';
|
|
2
|
+
import { BlockSet, ContentBlock, ElidedBlock, InterRegionPaddingBlock, } from "./blockTypes.js";
|
|
3
|
+
import { assembleLocStringFast } from "./index.js";
|
|
4
|
+
import { intersection2 } from "./range.js";
|
|
5
|
+
export default function calculateDynamicBlocks(model, padding = true, elision = true) {
|
|
6
|
+
const { offsetPx, displayedRegions, bpPerPx, width, minimumBlockWidth, interRegionPaddingWidth, } = model;
|
|
7
|
+
if (!width) {
|
|
8
|
+
throw new Error('view has no width, cannot calculate displayed blocks');
|
|
9
|
+
}
|
|
10
|
+
const invBpPerPx = 1 / bpPerPx;
|
|
11
|
+
const blocks = new BlockSet();
|
|
12
|
+
let displayedRegionLeftPx = 0;
|
|
13
|
+
const windowLeftPx = offsetPx;
|
|
14
|
+
const windowRightPx = windowLeftPx + width;
|
|
15
|
+
for (let regionNumber = 0; regionNumber < displayedRegions.length; regionNumber++) {
|
|
16
|
+
const region = displayedRegions[regionNumber];
|
|
17
|
+
const { assemblyName, refName, start: regionStart, end: regionEnd, reversed, } = region;
|
|
18
|
+
const displayedRegionRightPx = displayedRegionLeftPx + (regionEnd - regionStart) * invBpPerPx;
|
|
19
|
+
const regionWidthPx = (regionEnd - regionStart) * invBpPerPx;
|
|
20
|
+
const parentRegion = isStateTreeNode(region) ? getSnapshot(region) : region;
|
|
21
|
+
const [leftPx, rightPx] = intersection2(windowLeftPx, windowRightPx, displayedRegionLeftPx, displayedRegionRightPx);
|
|
22
|
+
if (leftPx !== undefined && rightPx !== undefined) {
|
|
23
|
+
let start;
|
|
24
|
+
let end;
|
|
25
|
+
let isLeftEndOfDisplayedRegion;
|
|
26
|
+
let isRightEndOfDisplayedRegion;
|
|
27
|
+
let blockOffsetPx;
|
|
28
|
+
if (reversed) {
|
|
29
|
+
start = Math.max(regionStart, regionEnd - (rightPx - displayedRegionLeftPx) * bpPerPx);
|
|
30
|
+
end = regionEnd - (leftPx - displayedRegionLeftPx) * bpPerPx;
|
|
31
|
+
isLeftEndOfDisplayedRegion = end === regionEnd;
|
|
32
|
+
isRightEndOfDisplayedRegion = start === regionStart;
|
|
33
|
+
blockOffsetPx = displayedRegionLeftPx + (regionEnd - end) * invBpPerPx;
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
start = (leftPx - displayedRegionLeftPx) * bpPerPx + regionStart;
|
|
37
|
+
end = Math.min(regionEnd, (rightPx - displayedRegionLeftPx) * bpPerPx + regionStart);
|
|
38
|
+
isLeftEndOfDisplayedRegion = start === regionStart;
|
|
39
|
+
isRightEndOfDisplayedRegion = end === regionEnd;
|
|
40
|
+
blockOffsetPx =
|
|
41
|
+
displayedRegionLeftPx + (start - regionStart) * invBpPerPx;
|
|
42
|
+
}
|
|
43
|
+
const widthPx = (end - start) * invBpPerPx;
|
|
44
|
+
const blockData = {
|
|
45
|
+
assemblyName,
|
|
46
|
+
refName,
|
|
47
|
+
start,
|
|
48
|
+
end,
|
|
49
|
+
reversed,
|
|
50
|
+
offsetPx: blockOffsetPx,
|
|
51
|
+
parentRegion,
|
|
52
|
+
regionNumber,
|
|
53
|
+
widthPx,
|
|
54
|
+
isLeftEndOfDisplayedRegion,
|
|
55
|
+
isRightEndOfDisplayedRegion,
|
|
56
|
+
key: `${assembleLocStringFast({
|
|
57
|
+
assemblyName,
|
|
58
|
+
refName,
|
|
59
|
+
start,
|
|
60
|
+
end,
|
|
61
|
+
reversed,
|
|
62
|
+
})}-${regionNumber}${reversed ? '-reversed' : ''}`,
|
|
63
|
+
};
|
|
64
|
+
if (padding && blocks.length === 0 && isLeftEndOfDisplayedRegion) {
|
|
65
|
+
blocks.push(new InterRegionPaddingBlock({
|
|
66
|
+
key: `${blockData.key}-beforeFirstRegion`,
|
|
67
|
+
widthPx: -offsetPx,
|
|
68
|
+
offsetPx: blockData.offsetPx + offsetPx,
|
|
69
|
+
variant: 'boundary',
|
|
70
|
+
}));
|
|
71
|
+
}
|
|
72
|
+
if (elision && regionWidthPx < minimumBlockWidth) {
|
|
73
|
+
blocks.push(new ElidedBlock(blockData));
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
blocks.push(new ContentBlock(blockData));
|
|
77
|
+
}
|
|
78
|
+
if (padding) {
|
|
79
|
+
if (regionWidthPx >= minimumBlockWidth &&
|
|
80
|
+
blockData.isRightEndOfDisplayedRegion &&
|
|
81
|
+
regionNumber < displayedRegions.length - 1) {
|
|
82
|
+
blocks.push(new InterRegionPaddingBlock({
|
|
83
|
+
key: `${blockData.key}-rightpad`,
|
|
84
|
+
widthPx: interRegionPaddingWidth,
|
|
85
|
+
offsetPx: blockData.offsetPx + blockData.widthPx,
|
|
86
|
+
}));
|
|
87
|
+
displayedRegionLeftPx += interRegionPaddingWidth;
|
|
88
|
+
}
|
|
89
|
+
if (regionNumber === displayedRegions.length - 1 &&
|
|
90
|
+
blockData.isRightEndOfDisplayedRegion) {
|
|
91
|
+
blockOffsetPx = blockData.offsetPx + blockData.widthPx;
|
|
92
|
+
blocks.push(new InterRegionPaddingBlock({
|
|
93
|
+
key: `${blockData.key}-afterLastRegion`,
|
|
94
|
+
widthPx: width - blockOffsetPx + offsetPx,
|
|
95
|
+
offsetPx: blockOffsetPx,
|
|
96
|
+
variant: 'boundary',
|
|
97
|
+
}));
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
displayedRegionLeftPx += (regionEnd - regionStart) * invBpPerPx;
|
|
102
|
+
}
|
|
103
|
+
return blocks;
|
|
104
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { BlockSet } from './blockTypes.ts';
|
|
2
|
+
import type { Region } from './types/index.ts';
|
|
3
|
+
import type { Region as RegionModel } from './types/mst.ts';
|
|
4
|
+
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
5
|
+
export interface Base1DViewModel {
|
|
6
|
+
offsetPx: number;
|
|
7
|
+
width: number;
|
|
8
|
+
displayedRegions: (Region | Instance<typeof RegionModel>)[];
|
|
9
|
+
bpPerPx: number;
|
|
10
|
+
minimumBlockWidth: number;
|
|
11
|
+
interRegionPaddingWidth: number;
|
|
12
|
+
}
|
|
13
|
+
export default function calculateStaticBlocks(model: Base1DViewModel, padding?: boolean, elision?: boolean, extra?: number, width?: number): BlockSet;
|