@jbrowse/core 5.0.0-beta.7 → 5.0.0-beta.9
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 +427 -130
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -5
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +8 -9
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +8 -13
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +3 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +8 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +24 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +5 -3
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +1 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/index.js +1 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.d.ts +16 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/jexlFilterActions.js +53 -0
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +0 -8
- package/esm/BaseFeatureWidget/BaseFeatureDetail/util.js +0 -16
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceContents.js +7 -34
- package/esm/BaseFeatureWidget/configSchema.d.ts +1 -1
- package/esm/BaseFeatureWidget/formatDetails.d.ts +13 -29
- package/esm/BaseFeatureWidget/formatDetails.js +46 -79
- package/esm/BaseFeatureWidget/index.d.ts +1 -0
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +35 -28
- package/esm/BaseFeatureWidget/stateModelFactory.js +94 -102
- package/esm/BaseFeatureWidget/types.d.ts +3 -0
- package/esm/BaseFeatureWidget/util.d.ts +0 -3
- package/esm/BaseFeatureWidget/util.js +0 -17
- package/esm/PluginLoader.d.ts +14 -9
- package/esm/PluginLoader.js +34 -26
- package/esm/PluginManager.d.ts +4 -4
- package/esm/PluginManager.js +1 -1
- package/esm/ReExports/coreModules.generated.d.ts +2 -0
- package/esm/ReExports/coreModules.generated.js +492 -0
- package/esm/ReExports/coreWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/coreWorkerModules.generated.js +453 -0
- package/esm/ReExports/frameworkModules.d.ts +2 -0
- package/esm/ReExports/frameworkModules.js +67 -0
- package/esm/ReExports/frameworkShared.d.ts +12 -0
- package/esm/ReExports/frameworkShared.js +16 -0
- package/esm/ReExports/frameworkWorkerModules.generated.d.ts +2 -0
- package/esm/ReExports/frameworkWorkerModules.generated.js +130 -0
- package/esm/ReExports/list.js +493 -79
- package/esm/ReExports/modules.d.ts +1 -1
- package/esm/ReExports/modules.js +10 -87
- package/esm/ReExports/registry.d.ts +1 -0
- package/esm/ReExports/registry.js +23 -5
- package/esm/ReExports/uiStub.d.ts +2 -1
- package/esm/ReExports/uiStub.js +24 -2
- package/esm/ReExports/workerModules.js +8 -12
- package/esm/TextSearch/TextSearchManager.d.ts +3 -12
- package/esm/TextSearch/TextSearchManager.js +22 -10
- package/esm/assemblyManager/assembly.d.ts +10 -14
- package/esm/assemblyManager/assembly.js +10 -14
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +23 -81
- package/esm/assemblyManager/assemblyManager.d.ts +10 -16
- package/esm/assemblyManager/assemblyManager.js +7 -10
- package/esm/assemblyManager/loadRefNameMap.js +3 -3
- package/esm/configuration/configurationSchema.d.ts +75 -31
- package/esm/configuration/configurationSchema.js +74 -40
- package/esm/configuration/configurationSchemaUnion.d.ts +39 -0
- package/esm/configuration/configurationSchemaUnion.js +59 -0
- package/esm/configuration/configurationSlot.d.ts +37 -12
- package/esm/configuration/configurationSlot.js +83 -22
- package/esm/configuration/formatAboutConfigSchema.d.ts +7 -21
- package/esm/configuration/formatDetailsConfigSchema.d.ts +11 -37
- package/esm/configuration/formatDetailsConfigSchema.js +10 -13
- package/esm/configuration/getConf.d.ts +17 -9
- package/esm/configuration/getConf.js +52 -7
- package/esm/configuration/index.d.ts +11 -4
- package/esm/configuration/index.js +7 -4
- package/esm/configuration/mergeFormatCallbacks.d.ts +6 -7
- package/esm/configuration/mergeFormatCallbacks.js +13 -10
- package/esm/configuration/readConfObject.d.ts +2 -22
- package/esm/configuration/readConfObject.js +15 -49
- package/esm/configuration/requirements.d.ts +37 -0
- package/esm/configuration/requirements.js +88 -0
- package/esm/configuration/schemaRegistry.d.ts +21 -1
- package/esm/configuration/schemaRegistry.js +11 -0
- package/esm/configuration/schemaTypes.d.ts +3 -0
- package/esm/configuration/schemaTypes.js +10 -0
- package/esm/configuration/slotFacade.d.ts +35 -4
- package/esm/configuration/slotFacade.js +96 -9
- package/esm/configuration/snapshotPreprocess.d.ts +27 -0
- package/esm/configuration/snapshotPreprocess.js +102 -0
- package/esm/configuration/types.d.ts +161 -22
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +2 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +11 -2
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +12 -1
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +2 -3
- package/esm/data_adapters/BaseAdapter/featureDensity.js +2 -3
- package/esm/data_adapters/BaseAdapter/index.d.ts +22 -3
- package/esm/data_adapters/BaseAdapter/types.d.ts +3 -4
- package/esm/data_adapters/BaseAdapter/zoomRange.d.ts +10 -0
- package/esm/data_adapters/BaseAdapter/zoomRange.js +1 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +9 -11
- package/esm/data_adapters/getSequenceSubAdapter.d.ts +1 -3
- package/esm/data_adapters/getSequenceSubAdapter.js +1 -3
- package/esm/pluggableElementTypes/AdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +1 -1
- package/esm/pluggableElementTypes/RpcMethodType.js +3 -8
- package/esm/pluggableElementTypes/RpcMethodTypeWithFiltersAndRenameRegions.d.ts +1 -2
- package/esm/pluggableElementTypes/TextSearchAdapterType.d.ts +7 -7
- package/esm/pluggableElementTypes/index.d.ts +1 -1
- package/esm/pluggableElementTypes/index.js +1 -1
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +17 -7
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +45 -48
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +40 -36
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +10 -13
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +6 -6
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +37 -17
- package/esm/pluggableElementTypes/models/BaseViewModel.js +25 -10
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +26 -16
- package/esm/pluggableElementTypes/models/assertDisplayContract.d.ts +1 -1
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -18
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +5 -5
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +26 -31
- package/esm/pluggableElementTypes/models/baseTrackConfig.d.ts +57 -141
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +22 -26
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
- package/esm/pluggableElementTypes/models/components/fetchTrackData.d.ts +3 -4
- package/esm/pluggableElementTypes/models/components/fetchTrackData.js +3 -3
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +15 -7
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +38 -29
- package/esm/pluggableElementTypes/models/index.d.ts +1 -2
- package/esm/pluggableElementTypes/models/index.js +1 -2
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.d.ts +3 -3
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/genbank.js +4 -4
- package/esm/pluggableElementTypes/models/saveTrackFileTypes/types.d.ts +3 -3
- package/esm/rpc/BaseRpcDriver.d.ts +1 -2
- package/esm/rpc/BaseRpcDriver.js +23 -30
- package/esm/rpc/MainThreadRpcDriver.d.ts +2 -2
- package/esm/rpc/MainThreadRpcDriver.js +13 -8
- package/esm/rpc/RpcClient.d.ts +17 -6
- package/esm/rpc/RpcClient.js +42 -12
- package/esm/rpc/RpcManager.d.ts +8 -10
- package/esm/rpc/RpcManager.js +1 -1
- package/esm/rpc/RpcRegistry.d.ts +8 -2
- package/esm/rpc/RpcServer.d.ts +3 -1
- package/esm/rpc/RpcServer.js +19 -12
- package/esm/rpc/WebWorkerRpcDriver.d.ts +3 -3
- package/esm/rpc/WebWorkerRpcDriver.js +9 -47
- package/esm/rpc/byteBudget.d.ts +3 -5
- package/esm/rpc/byteBudget.js +4 -4
- package/esm/rpc/configSchema.d.ts +7 -21
- package/esm/rpc/coreRpcMethods.d.ts +1 -0
- package/esm/rpc/coreRpcMethods.js +1 -0
- package/esm/rpc/methods/CoreEncodeFeatures.d.ts +6 -5
- package/esm/rpc/methods/CoreEncodeFeatures.js +26 -31
- package/esm/rpc/methods/CoreGetEncodedFeature.d.ts +13 -0
- package/esm/rpc/methods/CoreGetEncodedFeature.js +31 -0
- package/esm/rpc/methods/CoreGetExportData.js +2 -2
- package/esm/rpc/methods/CoreGetFeatureDensity.js +2 -2
- package/esm/rpc/methods/CoreGetFeatures.js +2 -2
- package/esm/rpc/methods/CoreGetSequence.js +2 -2
- package/esm/rpc/methods/layerFeatures.d.ts +26 -0
- package/esm/rpc/methods/layerFeatures.js +40 -0
- package/esm/svg/SvgExport.js +3 -4
- package/esm/svg/SvgThemeProviders.d.ts +12 -0
- package/esm/svg/SvgThemeProviders.js +15 -0
- package/esm/svg/exportViewSvg.d.ts +32 -0
- package/esm/svg/exportViewSvg.js +13 -0
- package/esm/svg/normalizeSvgMarkup.d.ts +7 -0
- package/esm/svg/normalizeSvgMarkup.js +99 -0
- package/esm/svg/serializeSvg.d.ts +7 -0
- package/esm/svg/serializeSvg.js +11 -0
- package/esm/svg/svgReady.d.ts +8 -7
- package/esm/svg/svgReady.js +8 -7
- package/esm/svg/trackNames.d.ts +5 -5
- package/esm/svg/trackNames.js +6 -6
- package/esm/svg/wrapSvgExport.js +6 -74
- package/esm/ui/CascadingMenu.js +83 -86
- package/esm/ui/ErrorMessageStackTraceDialog.js +0 -5
- package/esm/ui/FileSelector/useInternetAccounts.d.ts +156 -96
- package/esm/ui/HoverMenu.d.ts +1 -2
- package/esm/ui/HoverMenu.js +6 -3
- package/esm/ui/JexlFilterDialog.d.ts +13 -10
- package/esm/ui/JexlFilterDialog.js +122 -49
- package/esm/ui/JexlFilterRowEditors.d.ts +15 -0
- package/esm/ui/JexlFilterRowEditors.js +90 -0
- package/esm/ui/LazyBaseTooltip.d.ts +4 -0
- package/esm/ui/LazyBaseTooltip.js +9 -0
- package/esm/ui/LoadingOverlay.js +3 -1
- package/esm/ui/MonospaceTextField.d.ts +2 -1
- package/esm/ui/MonospaceTextField.js +21 -19
- package/esm/ui/PaletteContext.d.ts +7 -9
- package/esm/ui/PaletteContext.js +24 -10
- package/esm/ui/RefNameAutocomplete/index.d.ts +1 -2
- package/esm/ui/RefNameAutocomplete/index.js +1 -1
- package/esm/ui/ScrollChrome.d.ts +6 -9
- package/esm/ui/ScrollChrome.js +5 -6
- package/esm/ui/ScrollEdgeShadow.d.ts +6 -9
- package/esm/ui/ScrollEdgeShadow.js +9 -24
- package/esm/ui/SettingsChangesTable.js +3 -3
- package/esm/ui/VerticalScrollbar.d.ts +13 -34
- package/esm/ui/VerticalScrollbar.js +29 -83
- package/esm/ui/ViewLoadingScreen.d.ts +2 -2
- package/esm/ui/ViewLoadingScreen.js +3 -3
- package/esm/ui/colorScale.d.ts +26 -1
- package/esm/ui/colorScale.js +28 -5
- package/esm/ui/colors.d.ts +49 -1
- package/esm/ui/colors.js +139 -4
- package/esm/ui/hoverBoxStyle.d.ts +14 -2
- package/esm/ui/hoverBoxStyle.js +17 -2
- package/esm/ui/index.d.ts +5 -3
- package/esm/ui/index.js +9 -7
- package/esm/ui/launchViewMenu.js +3 -3
- package/esm/ui/legendSpec.d.ts +2 -0
- package/esm/ui/legendSpec.js +3 -0
- package/esm/ui/palette.d.ts +0 -1
- package/esm/ui/palette.js +3 -27
- package/esm/ui/replaceViewAction.d.ts +1 -1
- package/esm/ui/replaceViewAction.js +1 -1
- package/esm/ui/theme.d.ts +1 -1
- package/esm/ui/theme.js +6 -40
- package/esm/ui/viewHeaderHeight.d.ts +1 -0
- package/esm/ui/viewHeaderHeight.js +1 -0
- package/esm/util/Base1DUtils.d.ts +1 -1
- package/esm/util/Base1DUtils.js +2 -2
- package/esm/util/SvgCanvas.d.ts +15 -13
- package/esm/util/SvgCanvas.js +72 -53
- package/esm/util/aborting.d.ts +39 -0
- package/esm/util/aborting.js +84 -0
- package/esm/util/adapterMetadata.d.ts +1 -1
- package/esm/util/adapterMetadata.js +6 -6
- package/esm/util/addAndShowTrack.d.ts +1 -4
- package/esm/util/addRelativeUris.d.ts +10 -2
- package/esm/util/addRelativeUris.js +22 -7
- package/esm/util/addTrackFromWidget.d.ts +2 -5
- package/esm/util/animationAllowed.d.ts +9 -0
- package/esm/util/animationAllowed.js +13 -0
- package/esm/util/applyRowResizeWheel.d.ts +10 -5
- package/esm/util/applyRowResizeWheel.js +10 -21
- package/esm/util/bandLayout.d.ts +4 -4
- package/esm/util/bandLayout.js +4 -4
- package/esm/util/bezierConnector.js +5 -4
- package/esm/util/bgzfWorkerPool.d.ts +20 -74
- package/esm/util/bgzfWorkerPool.js +20 -74
- package/esm/util/cachedSetup.d.ts +1 -1
- package/esm/util/cachedSetup.js +2 -2
- package/esm/util/categoricalField.d.ts +37 -0
- package/esm/util/categoricalField.js +52 -0
- package/esm/util/color/cssColorsLevel4.d.ts +1 -0
- package/esm/util/color/cssColorsLevel4.js +1 -0
- package/esm/util/color/index.d.ts +5 -3
- package/esm/util/color/index.js +7 -4
- package/esm/util/colorBits.d.ts +1 -2
- package/esm/util/colorBits.js +17 -39
- package/esm/util/colorRamp.d.ts +27 -1
- package/esm/util/colorRamp.js +56 -2
- package/esm/util/colorSchemes.d.ts +9 -0
- package/esm/util/colorSchemes.js +7 -0
- package/esm/util/{createStopTokenRotation.d.ts → createAbortRotation.d.ts} +11 -14
- package/esm/util/{createStopTokenRotation.js → createAbortRotation.js} +14 -26
- package/esm/util/cssColorParse.d.ts +15 -0
- package/esm/util/cssColorParse.js +53 -0
- package/esm/util/diagonalizeRegions.d.ts +2 -3
- package/esm/util/diagonalizeRegions.js +7 -12
- package/esm/util/expandLooseSearchIndex.d.ts +7 -0
- package/esm/util/expandLooseSearchIndex.js +25 -0
- package/esm/util/featureTransforms.d.ts +30 -3
- package/esm/util/featureTransforms.js +233 -36
- package/esm/util/fetchAndMaybeUnzip.js +5 -6
- package/esm/util/fetchContext.d.ts +5 -6
- package/esm/util/fetchContext.js +1 -1
- package/esm/util/fetchHub.d.ts +3 -1
- package/esm/util/fetchHub.js +2 -2
- package/esm/util/fetchSeq.d.ts +2 -3
- package/esm/util/fetchSeq.js +2 -2
- package/esm/util/fieldReader.d.ts +17 -0
- package/esm/util/fieldReader.js +62 -0
- package/esm/util/groupKeys.d.ts +75 -0
- package/esm/util/groupKeys.js +152 -0
- package/esm/util/highlights.d.ts +6 -4
- package/esm/util/highlights.js +12 -25
- package/esm/util/hooks.d.ts +1 -2
- package/esm/util/hooks.js +1 -2
- package/esm/util/index.d.ts +3 -3
- package/esm/util/index.js +4 -3
- package/esm/util/indexCandidates.js +1 -1
- package/esm/util/installFetch.d.ts +13 -10
- package/esm/util/installFetch.js +11 -10
- package/esm/util/installPrerequisiteFetch.d.ts +5 -3
- package/esm/util/installPrerequisiteFetch.js +3 -4
- package/esm/util/io/index.js +12 -12
- package/esm/util/isDataCurrent.d.ts +7 -5
- package/esm/util/isDataCurrent.js +9 -6
- package/esm/util/jexl.js +24 -21
- package/esm/util/jexlFilterRows.d.ts +89 -0
- package/esm/util/jexlFilterRows.js +252 -0
- package/esm/util/jexlFilters.d.ts +7 -5
- package/esm/util/jexlStrings.d.ts +3 -4
- package/esm/util/jexlStrings.js +2 -3
- package/esm/util/legendCandidates.d.ts +31 -27
- package/esm/util/legendCandidates.js +79 -53
- package/esm/util/localStorage.js +4 -4
- package/esm/util/markEncoding.d.ts +32 -16
- package/esm/util/markEncoding.js +177 -150
- package/esm/util/markEncodingTypes.d.ts +137 -66
- package/esm/util/mstUtils.d.ts +19 -22
- package/esm/util/mstUtils.js +19 -22
- package/esm/util/numericUtils.d.ts +7 -0
- package/esm/util/numericUtils.js +16 -0
- package/esm/util/numericValue.d.ts +14 -0
- package/esm/util/numericValue.js +34 -0
- package/esm/util/openFeatureWidget.js +1 -2
- package/esm/util/openViews.d.ts +1 -0
- package/esm/util/openViews.js +3 -3
- package/esm/util/parseLineByLine.d.ts +3 -4
- package/esm/util/parseLineByLine.js +7 -13
- package/esm/util/progress.d.ts +21 -21
- package/esm/util/progress.js +27 -26
- package/esm/util/renameRegions.d.ts +1 -2
- package/esm/util/renderToStaticMarkup.js +16 -16
- package/esm/util/rxjs.d.ts +7 -8
- package/esm/util/rxjs.js +12 -15
- package/esm/util/simpleFeature.d.ts +0 -1
- package/esm/util/svgColorProps.d.ts +11 -0
- package/esm/util/svgColorProps.js +28 -1
- package/esm/util/tabix.d.ts +3 -4
- package/esm/util/tabix.js +6 -7
- package/esm/util/thresholdScale.d.ts +54 -0
- package/esm/util/thresholdScale.js +112 -0
- package/esm/util/timeGate.d.ts +4 -5
- package/esm/util/timeGate.js +4 -5
- package/esm/util/trackConfigDelta.d.ts +22 -18
- package/esm/util/trackConfigDelta.js +40 -38
- package/esm/util/tracks.d.ts +27 -4
- package/esm/util/tracks.js +116 -43
- package/esm/util/translateTranscript.d.ts +44 -0
- package/esm/util/translateTranscript.js +102 -0
- package/esm/util/types/index.d.ts +19 -7
- package/esm/util/types/services.d.ts +1 -1
- package/esm/util/unknownSnapshotKeys.d.ts +15 -0
- package/esm/util/unknownSnapshotKeys.js +13 -0
- package/esm/util/useFeatureSequence.js +4 -4
- package/esm/util/useFetch.d.ts +3 -4
- package/esm/util/useFetch.js +5 -6
- package/esm/util/usePanelVirtualScroll.d.ts +7 -39
- package/esm/util/usePanelVirtualScroll.js +9 -40
- package/esm/util/useRowVirtualScroll.d.ts +6 -29
- package/esm/util/useRowVirtualScroll.js +8 -49
- package/esm/util/useVirtualScrollWheel.d.ts +20 -4
- package/esm/util/useVirtualScrollWheel.js +40 -84
- package/esm/util/viewHighlights.d.ts +3 -0
- package/esm/util/viewHighlights.js +5 -0
- package/esm/util/viewStatus.d.ts +24 -15
- package/esm/util/viewStatus.js +17 -0
- package/esm/util/withLaunchInput.d.ts +1 -1
- package/esm/util/withLaunchInput.js +0 -4
- package/package.json +26 -12
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.d.ts +0 -80
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/DLGAP3.js +0 -583
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.d.ts +0 -141
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/test_data/NCDN.js +0 -1116
- package/esm/ReExports/BaseFeatureDetails.d.ts +0 -1
- package/esm/ReExports/BaseFeatureDetails.js +0 -10
- package/esm/ReExports/barrelOnlyNames.d.ts +0 -5
- package/esm/ReExports/barrelOnlyNames.js +0 -63
- package/esm/ReExports/index.d.ts +0 -1
- package/esm/ReExports/index.js +0 -1
- package/esm/ReExports/publicTracks.d.ts +0 -1
- package/esm/ReExports/publicTracks.js +0 -14
- package/esm/ReExports/publicUi.d.ts +0 -4
- package/esm/ReExports/publicUi.js +0 -33
- package/esm/ReExports/publicUtil.d.ts +0 -1
- package/esm/ReExports/publicUtil.js +0 -32
- package/esm/ReExports/sharedModules.d.ts +0 -96
- package/esm/ReExports/sharedModules.js +0 -66
- package/esm/ReExports/workerNamespaceNames.d.ts +0 -11
- package/esm/ReExports/workerNamespaceNames.js +0 -275
- package/esm/pluggableElementTypes/models/HighlightsMixin.d.ts +0 -51
- package/esm/pluggableElementTypes/models/HighlightsMixin.js +0 -78
- package/esm/ui/highlightChipReveal.d.ts +0 -32
- package/esm/ui/highlightChipReveal.js +0 -39
- package/esm/util/adapterConfigKey.d.ts +0 -12
- package/esm/util/adapterConfigKey.js +0 -14
- package/esm/util/stopToken.d.ts +0 -212
- package/esm/util/stopToken.js +0 -438
|
@@ -14,16 +14,26 @@ declare function stateModelFactory(pluginManager: PluginManager): import("@jbrow
|
|
|
14
14
|
*/
|
|
15
15
|
configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
16
16
|
readonly name: {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
17
|
+
type: "string";
|
|
18
|
+
} & {
|
|
19
|
+
defaultValue: string;
|
|
20
20
|
};
|
|
21
21
|
readonly assemblyNames: {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
22
|
+
type: "stringArray";
|
|
23
|
+
} & {
|
|
24
|
+
defaultValue: unknown;
|
|
25
25
|
};
|
|
26
|
-
|
|
26
|
+
type: {
|
|
27
|
+
type: "string";
|
|
28
|
+
} & {
|
|
29
|
+
defaultValue: string;
|
|
30
|
+
};
|
|
31
|
+
connectionId: {
|
|
32
|
+
type: "string";
|
|
33
|
+
} & {
|
|
34
|
+
defaultValue: string;
|
|
35
|
+
};
|
|
36
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "connectionId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>>;
|
|
27
37
|
/**
|
|
28
38
|
* #property
|
|
29
39
|
* set when the connection is being re-established on session load (its
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { AnyConfigurationModel } from '../../configuration/index.ts';
|
|
2
2
|
import type { MenuItem } from '../../ui/index.ts';
|
|
3
3
|
import type { RpcStatus } from '../../util/progress.ts';
|
|
4
|
+
import type { UnappliedSetting } from '../../util/unknownSnapshotKeys.ts';
|
|
4
5
|
import type { Instance } from '@jbrowse/mobx-state-tree';
|
|
5
6
|
import type React from 'react';
|
|
6
7
|
export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<{
|
|
@@ -202,15 +203,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
202
203
|
readonly featureNoun: string;
|
|
203
204
|
/**
|
|
204
205
|
* #getter
|
|
205
|
-
*
|
|
206
|
-
*
|
|
207
|
-
*
|
|
208
|
-
* out by hand.
|
|
206
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
207
|
+
* features. Displays may override it. The default is the generic feature
|
|
208
|
+
* widget, for displays drawing plain features.
|
|
209
209
|
*
|
|
210
|
-
*
|
|
211
|
-
*
|
|
212
|
-
*
|
|
213
|
-
*
|
|
210
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
211
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
212
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
213
|
+
* same kind of feature.
|
|
214
214
|
*/
|
|
215
215
|
readonly featureWidgetType: {
|
|
216
216
|
type: string;
|
|
@@ -423,15 +423,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
423
423
|
readonly featureNoun: string;
|
|
424
424
|
/**
|
|
425
425
|
* #getter
|
|
426
|
-
*
|
|
427
|
-
*
|
|
428
|
-
*
|
|
429
|
-
* out by hand.
|
|
426
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
427
|
+
* features. Displays may override it. The default is the generic feature
|
|
428
|
+
* widget, for displays drawing plain features.
|
|
430
429
|
*
|
|
431
|
-
*
|
|
432
|
-
*
|
|
433
|
-
*
|
|
434
|
-
*
|
|
430
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
431
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
432
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
433
|
+
* same kind of feature.
|
|
435
434
|
*/
|
|
436
435
|
readonly featureWidgetType: {
|
|
437
436
|
type: string;
|
|
@@ -636,15 +635,14 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
636
635
|
readonly featureNoun: string;
|
|
637
636
|
/**
|
|
638
637
|
* #getter
|
|
639
|
-
*
|
|
640
|
-
*
|
|
641
|
-
*
|
|
642
|
-
* out by hand.
|
|
638
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
639
|
+
* features. Displays may override it. The default is the generic feature
|
|
640
|
+
* widget, for displays drawing plain features.
|
|
643
641
|
*
|
|
644
|
-
*
|
|
645
|
-
*
|
|
646
|
-
*
|
|
647
|
-
*
|
|
642
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
643
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
644
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
645
|
+
* same kind of feature.
|
|
648
646
|
*/
|
|
649
647
|
readonly featureWidgetType: {
|
|
650
648
|
type: string;
|
|
@@ -686,40 +684,39 @@ export declare const BaseDisplay: import("@jbrowse/mobx-state-tree").IModelType<
|
|
|
686
684
|
reload(): void;
|
|
687
685
|
/**
|
|
688
686
|
* #action
|
|
689
|
-
* Apply a
|
|
690
|
-
*
|
|
691
|
-
* `preProcessSnapshot` (shorthand expansions
|
|
692
|
-
*
|
|
693
|
-
*
|
|
694
|
-
*
|
|
695
|
-
*
|
|
696
|
-
* key
|
|
687
|
+
* Apply a set of display settings to the live display, and report which
|
|
688
|
+
* were applied. Each key runs through the display config schema's
|
|
689
|
+
* `preProcessSnapshot` (shorthand expansions and legacy-key migrations,
|
|
690
|
+
* as `showTrackGeneric` applies to a session spec's inline track keys),
|
|
691
|
+
* then writes the matching config slot. A key naming a sub-schema
|
|
692
|
+
* (`facet`, `color`) replaces the whole object, its string shorthand
|
|
693
|
+
* lifted by that schema, and `null` clears it. Keys that are not slots
|
|
694
|
+
* come back in `unapplied` as `{ key, reason }`, so a caller can tell a
|
|
695
|
+
* misspelling from a key that has an action instead of a slot.
|
|
697
696
|
*
|
|
698
|
-
* `allowSetters`
|
|
699
|
-
* named
|
|
700
|
-
*
|
|
701
|
-
*
|
|
702
|
-
* them reach internal setters (`setError`, `setScrollTop`, ...) and
|
|
697
|
+
* `allowSetters` also routes a non-slot key to a single-argument action
|
|
698
|
+
* named `set<Key>`. It is off by default because session specs, share
|
|
699
|
+
* links and embeds pass untyped JSON here, and a default fallback would
|
|
700
|
+
* let them call internal setters (`setError`, `setScrollTop`, ...) and
|
|
703
701
|
* call multi-argument setters with one argument. A caller that wants a
|
|
704
|
-
* specific action can
|
|
702
|
+
* specific action can call it directly.
|
|
705
703
|
*
|
|
706
|
-
* A key whose write
|
|
707
|
-
*
|
|
708
|
-
*
|
|
709
|
-
*
|
|
710
|
-
*
|
|
711
|
-
*
|
|
712
|
-
* report a correct call as broken.
|
|
704
|
+
* A key whose write threw is reported in `failed`. Only `failed` means
|
|
705
|
+
* the caller passed a bad value. `unapplied` needs the caller's own
|
|
706
|
+
* context to read: `showTrackGeneric` spreads the same settings into the
|
|
707
|
+
* display's snapshot, so a declared prop (`resolution`) has already
|
|
708
|
+
* landed by the time it reports here, while the restyle path spreads
|
|
709
|
+
* nothing and every entry there did nothing.
|
|
713
710
|
*
|
|
714
|
-
*
|
|
711
|
+
* A per-key error does not abort the remaining keys. A caller
|
|
715
712
|
* mid-`showTrack` has already pushed the track, and one rejected value
|
|
716
|
-
*
|
|
713
|
+
* should not leave it half-configured.
|
|
717
714
|
*/
|
|
718
715
|
applyDisplaySettings(settings: Record<string, unknown>, options?: {
|
|
719
716
|
allowSetters?: boolean;
|
|
720
717
|
}): {
|
|
721
718
|
applied: string[];
|
|
722
|
-
unapplied:
|
|
719
|
+
unapplied: UnappliedSetting[];
|
|
723
720
|
failed: {
|
|
724
721
|
key: string;
|
|
725
722
|
error: string;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { hasParent, isAlive, types } from '@jbrowse/mobx-state-tree';
|
|
2
|
-
import { getConf, isConfigurationSlot, preProcessSlotValues, } from '../../configuration/index.js';
|
|
2
|
+
import { getConf, isConfigurationSlot, isConfigurationSubschema, mergedSubschemaValue, preProcessSlotValues, } from '../../configuration/index.js';
|
|
3
3
|
import { getContainingTrack, getEnv, statusFraction, statusMessageText, } from '../../util/index.js';
|
|
4
4
|
import { ElementId } from '../../util/types/mst.js';
|
|
5
|
+
import { displaySetterName } from '../../util/unknownSnapshotKeys.js';
|
|
5
6
|
/**
|
|
6
7
|
* #stateModel BaseDisplay
|
|
7
8
|
* #category display
|
|
@@ -139,15 +140,14 @@ function stateModelFactory() {
|
|
|
139
140
|
},
|
|
140
141
|
/**
|
|
141
142
|
* #getter
|
|
142
|
-
*
|
|
143
|
-
*
|
|
144
|
-
*
|
|
145
|
-
* out by hand.
|
|
143
|
+
* The widget `openFeatureWidget` opens for one of this display's
|
|
144
|
+
* features. Displays may override it. The default is the generic feature
|
|
145
|
+
* widget, for displays drawing plain features.
|
|
146
146
|
*
|
|
147
|
-
*
|
|
148
|
-
*
|
|
149
|
-
*
|
|
150
|
-
*
|
|
147
|
+
* Displays whose features are a specific kind (a read, a variant, a
|
|
148
|
+
* synteny block) override it, including the `id`: two displays naming
|
|
149
|
+
* one id share the drawer panel, which suits two displays showing the
|
|
150
|
+
* same kind of feature.
|
|
151
151
|
*/
|
|
152
152
|
get featureWidgetType() {
|
|
153
153
|
return {
|
|
@@ -212,34 +212,33 @@ function stateModelFactory() {
|
|
|
212
212
|
reload() { },
|
|
213
213
|
/**
|
|
214
214
|
* #action
|
|
215
|
-
* Apply a
|
|
216
|
-
*
|
|
217
|
-
* `preProcessSnapshot` (shorthand expansions
|
|
218
|
-
*
|
|
219
|
-
*
|
|
220
|
-
*
|
|
221
|
-
*
|
|
222
|
-
* key
|
|
215
|
+
* Apply a set of display settings to the live display, and report which
|
|
216
|
+
* were applied. Each key runs through the display config schema's
|
|
217
|
+
* `preProcessSnapshot` (shorthand expansions and legacy-key migrations,
|
|
218
|
+
* as `showTrackGeneric` applies to a session spec's inline track keys),
|
|
219
|
+
* then writes the matching config slot. A key naming a sub-schema
|
|
220
|
+
* (`facet`, `color`) replaces the whole object, its string shorthand
|
|
221
|
+
* lifted by that schema, and `null` clears it. Keys that are not slots
|
|
222
|
+
* come back in `unapplied` as `{ key, reason }`, so a caller can tell a
|
|
223
|
+
* misspelling from a key that has an action instead of a slot.
|
|
223
224
|
*
|
|
224
|
-
* `allowSetters`
|
|
225
|
-
* named
|
|
226
|
-
*
|
|
227
|
-
*
|
|
228
|
-
* them reach internal setters (`setError`, `setScrollTop`, ...) and
|
|
225
|
+
* `allowSetters` also routes a non-slot key to a single-argument action
|
|
226
|
+
* named `set<Key>`. It is off by default because session specs, share
|
|
227
|
+
* links and embeds pass untyped JSON here, and a default fallback would
|
|
228
|
+
* let them call internal setters (`setError`, `setScrollTop`, ...) and
|
|
229
229
|
* call multi-argument setters with one argument. A caller that wants a
|
|
230
|
-
* specific action can
|
|
230
|
+
* specific action can call it directly.
|
|
231
231
|
*
|
|
232
|
-
* A key whose write
|
|
233
|
-
*
|
|
234
|
-
*
|
|
235
|
-
*
|
|
236
|
-
*
|
|
237
|
-
*
|
|
238
|
-
* report a correct call as broken.
|
|
232
|
+
* A key whose write threw is reported in `failed`. Only `failed` means
|
|
233
|
+
* the caller passed a bad value. `unapplied` needs the caller's own
|
|
234
|
+
* context to read: `showTrackGeneric` spreads the same settings into the
|
|
235
|
+
* display's snapshot, so a declared prop (`resolution`) has already
|
|
236
|
+
* landed by the time it reports here, while the restyle path spreads
|
|
237
|
+
* nothing and every entry there did nothing.
|
|
239
238
|
*
|
|
240
|
-
*
|
|
239
|
+
* A per-key error does not abort the remaining keys. A caller
|
|
241
240
|
* mid-`showTrack` has already pushed the track, and one rejected value
|
|
242
|
-
*
|
|
241
|
+
* should not leave it half-configured.
|
|
243
242
|
*/
|
|
244
243
|
applyDisplaySettings(settings, options) {
|
|
245
244
|
// configuration is the reference every concrete display adds at
|
|
@@ -252,7 +251,7 @@ function stateModelFactory() {
|
|
|
252
251
|
const slots = preProcessSlotValues(configuration, settings);
|
|
253
252
|
for (const [key, value] of Object.entries(slots)) {
|
|
254
253
|
if (!key || key === 'type') {
|
|
255
|
-
unapplied.push(key ? '
|
|
254
|
+
unapplied.push({ key, reason: key ? 'display-type' : 'no-slot' });
|
|
256
255
|
continue;
|
|
257
256
|
}
|
|
258
257
|
try {
|
|
@@ -264,9 +263,14 @@ function stateModelFactory() {
|
|
|
264
263
|
applied.push(key);
|
|
265
264
|
continue;
|
|
266
265
|
}
|
|
267
|
-
|
|
266
|
+
if (isConfigurationSubschema(configuration, key)) {
|
|
267
|
+
configuration.setSubschema(key, mergedSubschemaValue(configuration, key, value));
|
|
268
|
+
applied.push(key);
|
|
269
|
+
continue;
|
|
270
|
+
}
|
|
271
|
+
const setter = self[displaySetterName(key)];
|
|
268
272
|
if (typeof setter !== 'function') {
|
|
269
|
-
unapplied.push(key);
|
|
273
|
+
unapplied.push({ key, reason: 'no-slot' });
|
|
270
274
|
}
|
|
271
275
|
else if (options?.allowSetters) {
|
|
272
276
|
;
|
|
@@ -274,7 +278,7 @@ function stateModelFactory() {
|
|
|
274
278
|
applied.push(`${key} (via setter)`);
|
|
275
279
|
}
|
|
276
280
|
else {
|
|
277
|
-
unapplied.push(
|
|
281
|
+
unapplied.push({ key, reason: 'setter-only' });
|
|
278
282
|
}
|
|
279
283
|
}
|
|
280
284
|
catch (e) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type PluginManager from '../../PluginManager.ts';
|
|
2
2
|
import type { RefNameMismatch } from '../../assemblyManager/refNameMismatch.ts';
|
|
3
|
-
import type { AnyConfigurationSchemaType } from '../../configuration/index.ts';
|
|
3
|
+
import type { AnyConfigurationModel, AnyConfigurationSchemaType } from '../../configuration/index.ts';
|
|
4
4
|
import type { MenuItem } from '../../ui/index.ts';
|
|
5
5
|
import type { DisplayModel } from './BaseDisplayModel.tsx';
|
|
6
6
|
import type { FileTypeExporter } from './saveTrackFileTypes/types.ts';
|
|
@@ -107,10 +107,7 @@ export declare function createBaseTrackModel(pm: PluginManager, trackType: strin
|
|
|
107
107
|
* always filtered them; this exposes the same list to code, because the
|
|
108
108
|
* alternative is every caller re-deriving it from the plugin manager.
|
|
109
109
|
*/
|
|
110
|
-
readonly compatibleDisplays:
|
|
111
|
-
setSubschema(slotName: string, data: Record<string, unknown>): any;
|
|
112
|
-
setSlot(slotName: string, value: unknown): void;
|
|
113
|
-
} & import("@jbrowse/mobx-state-tree").IStateTreeNode<AnyConfigurationSchemaType>)[];
|
|
110
|
+
readonly compatibleDisplays: AnyConfigurationModel[];
|
|
114
111
|
/**
|
|
115
112
|
* #getter
|
|
116
113
|
*/
|
|
@@ -146,7 +143,7 @@ export declare function createBaseTrackModel(pm: PluginManager, trackType: strin
|
|
|
146
143
|
/**
|
|
147
144
|
* #getter
|
|
148
145
|
*/
|
|
149
|
-
readonly adapterType: import("../AdapterType.ts").default
|
|
146
|
+
readonly adapterType: import("../AdapterType.ts").default<any>;
|
|
150
147
|
} & {
|
|
151
148
|
/**
|
|
152
149
|
* #action
|
|
@@ -175,7 +172,7 @@ export declare function createBaseTrackModel(pm: PluginManager, trackType: strin
|
|
|
175
172
|
allowSetters?: boolean;
|
|
176
173
|
}): {
|
|
177
174
|
applied: string[];
|
|
178
|
-
unapplied:
|
|
175
|
+
unapplied: import("../../util/unknownSnapshotKeys.ts").UnappliedSetting[];
|
|
179
176
|
failed: {
|
|
180
177
|
key: string;
|
|
181
178
|
error: string;
|
|
@@ -236,12 +233,12 @@ export declare function createBaseTrackModel(pm: PluginManager, trackType: strin
|
|
|
236
233
|
readonly exportsDataViaAdapter: boolean;
|
|
237
234
|
/**
|
|
238
235
|
* #getter
|
|
239
|
-
*
|
|
240
|
-
* `fetchSizeLimit` where it declares
|
|
241
|
-
*
|
|
242
|
-
* otherwise a default.
|
|
243
|
-
*
|
|
244
|
-
*
|
|
236
|
+
* The size in bytes above which "Save track data" asks for confirmation
|
|
237
|
+
* before fetching. Uses the adapter's `fetchSizeLimit` where it declares
|
|
238
|
+
* one, so a save asks at the same size at which the track's display
|
|
239
|
+
* refuses to render; otherwise a default. The default is generous
|
|
240
|
+
* because exceeding it only prompts for confirmation, and the user
|
|
241
|
+
* explicitly requested the data.
|
|
245
242
|
*/
|
|
246
243
|
readonly exportByteLimit: number;
|
|
247
244
|
/**
|
|
@@ -403,12 +403,12 @@ export function createBaseTrackModel(pm, trackType, baseTrackConfig) {
|
|
|
403
403
|
},
|
|
404
404
|
/**
|
|
405
405
|
* #getter
|
|
406
|
-
*
|
|
407
|
-
* `fetchSizeLimit` where it declares
|
|
408
|
-
*
|
|
409
|
-
* otherwise a default.
|
|
410
|
-
*
|
|
411
|
-
*
|
|
406
|
+
* The size in bytes above which "Save track data" asks for confirmation
|
|
407
|
+
* before fetching. Uses the adapter's `fetchSizeLimit` where it declares
|
|
408
|
+
* one, so a save asks at the same size at which the track's display
|
|
409
|
+
* refuses to render; otherwise a default. The default is generous
|
|
410
|
+
* because exceeding it only prompts for confirmation, and the user
|
|
411
|
+
* explicitly requested the data.
|
|
412
412
|
*/
|
|
413
413
|
get exportByteLimit() {
|
|
414
414
|
return adapterByteLimit(getConf(self, ['adapter', 'fetchSizeLimit']), DEFAULT_EXPORT_BYTE_LIMIT);
|
|
@@ -47,15 +47,25 @@ declare const BaseViewModel: import("@jbrowse/mobx-state-tree").IModelType<{
|
|
|
47
47
|
} & {
|
|
48
48
|
/**
|
|
49
49
|
* #getter
|
|
50
|
-
*
|
|
51
|
-
*
|
|
50
|
+
* Overridable hook (default true): whether this view's mounted body
|
|
51
|
+
* renders its own displays. A linear genome view collapsed to its ruler
|
|
52
|
+
* mounts the scalebar and none of its tracks, so a display in it can no
|
|
53
|
+
* more paint than one in a view scrolled off screen. Views nested in this
|
|
54
|
+
* one are unaffected: they paint wherever their own body is.
|
|
55
|
+
*/
|
|
56
|
+
readonly rendersDisplays: boolean;
|
|
57
|
+
/**
|
|
58
|
+
* #getter
|
|
59
|
+
* Whether this view's displays have a canvas to paint into: its body is in
|
|
60
|
+
* the DOM, counting the views it is nested inside, and the body renders
|
|
61
|
+
* them (`rendersDisplays`). This is the question a display's phase asks.
|
|
52
62
|
*
|
|
53
|
-
* `bodyMounted` alone answers
|
|
54
|
-
* directly. A view nested in another view (a synteny row, a
|
|
55
|
-
* panel) has no container writing its flag, so it reads `true`
|
|
56
|
-
* while its whole subtree is out of the DOM, and every display in
|
|
57
|
-
* for a first paint that nothing will make — the hang this flag
|
|
58
|
-
* prevent, one level down.
|
|
63
|
+
* `bodyMounted` alone answers the DOM half only for a view a container
|
|
64
|
+
* renders directly. A view nested in another view (a synteny row, a
|
|
65
|
+
* breakpoint panel) has no container writing its flag, so it reads `true`
|
|
66
|
+
* forever while its whole subtree is out of the DOM, and every display in
|
|
67
|
+
* it waits for a first paint that nothing will make — the hang this flag
|
|
68
|
+
* exists to prevent, one level down.
|
|
59
69
|
*
|
|
60
70
|
* An ancestor that does not carry the flag at all leaves the answer alone
|
|
61
71
|
* rather than excusing the paint: only an explicit `false` unmounts, so a
|
|
@@ -177,15 +187,25 @@ export declare const BaseViewModelWithDisplayedRegions: import("@jbrowse/mobx-st
|
|
|
177
187
|
} & {
|
|
178
188
|
/**
|
|
179
189
|
* #getter
|
|
180
|
-
*
|
|
181
|
-
*
|
|
182
|
-
*
|
|
183
|
-
*
|
|
184
|
-
*
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
*
|
|
190
|
+
* Overridable hook (default true): whether this view's mounted body
|
|
191
|
+
* renders its own displays. A linear genome view collapsed to its ruler
|
|
192
|
+
* mounts the scalebar and none of its tracks, so a display in it can no
|
|
193
|
+
* more paint than one in a view scrolled off screen. Views nested in this
|
|
194
|
+
* one are unaffected: they paint wherever their own body is.
|
|
195
|
+
*/
|
|
196
|
+
readonly rendersDisplays: boolean;
|
|
197
|
+
/**
|
|
198
|
+
* #getter
|
|
199
|
+
* Whether this view's displays have a canvas to paint into: its body is in
|
|
200
|
+
* the DOM, counting the views it is nested inside, and the body renders
|
|
201
|
+
* them (`rendersDisplays`). This is the question a display's phase asks.
|
|
202
|
+
*
|
|
203
|
+
* `bodyMounted` alone answers the DOM half only for a view a container
|
|
204
|
+
* renders directly. A view nested in another view (a synteny row, a
|
|
205
|
+
* breakpoint panel) has no container writing its flag, so it reads `true`
|
|
206
|
+
* forever while its whole subtree is out of the DOM, and every display in
|
|
207
|
+
* it waits for a first paint that nothing will make — the hang this flag
|
|
208
|
+
* exists to prevent, one level down.
|
|
189
209
|
*
|
|
190
210
|
* An ancestor that does not carry the flag at all leaves the answer alone
|
|
191
211
|
* rather than excusing the paint: only an explicit `false` unmounts, so a
|
|
@@ -20,6 +20,10 @@ function containingViewOf(node) {
|
|
|
20
20
|
}
|
|
21
21
|
return undefined;
|
|
22
22
|
}
|
|
23
|
+
function bodyInDom(view) {
|
|
24
|
+
const parent = containingViewOf(view);
|
|
25
|
+
return (view.bodyMounted !== false && (parent === undefined || bodyInDom(parent)));
|
|
26
|
+
}
|
|
23
27
|
/**
|
|
24
28
|
* #stateModel BaseViewModel
|
|
25
29
|
* #category view
|
|
@@ -69,15 +73,27 @@ const BaseViewModel = types
|
|
|
69
73
|
.views(self => ({
|
|
70
74
|
/**
|
|
71
75
|
* #getter
|
|
72
|
-
*
|
|
73
|
-
*
|
|
76
|
+
* Overridable hook (default true): whether this view's mounted body
|
|
77
|
+
* renders its own displays. A linear genome view collapsed to its ruler
|
|
78
|
+
* mounts the scalebar and none of its tracks, so a display in it can no
|
|
79
|
+
* more paint than one in a view scrolled off screen. Views nested in this
|
|
80
|
+
* one are unaffected: they paint wherever their own body is.
|
|
81
|
+
*/
|
|
82
|
+
get rendersDisplays() {
|
|
83
|
+
return true;
|
|
84
|
+
},
|
|
85
|
+
/**
|
|
86
|
+
* #getter
|
|
87
|
+
* Whether this view's displays have a canvas to paint into: its body is in
|
|
88
|
+
* the DOM, counting the views it is nested inside, and the body renders
|
|
89
|
+
* them (`rendersDisplays`). This is the question a display's phase asks.
|
|
74
90
|
*
|
|
75
|
-
* `bodyMounted` alone answers
|
|
76
|
-
* directly. A view nested in another view (a synteny row, a
|
|
77
|
-
* panel) has no container writing its flag, so it reads `true`
|
|
78
|
-
* while its whole subtree is out of the DOM, and every display in
|
|
79
|
-
* for a first paint that nothing will make — the hang this flag
|
|
80
|
-
* prevent, one level down.
|
|
91
|
+
* `bodyMounted` alone answers the DOM half only for a view a container
|
|
92
|
+
* renders directly. A view nested in another view (a synteny row, a
|
|
93
|
+
* breakpoint panel) has no container writing its flag, so it reads `true`
|
|
94
|
+
* forever while its whole subtree is out of the DOM, and every display in
|
|
95
|
+
* it waits for a first paint that nothing will make — the hang this flag
|
|
96
|
+
* exists to prevent, one level down.
|
|
81
97
|
*
|
|
82
98
|
* An ancestor that does not carry the flag at all leaves the answer alone
|
|
83
99
|
* rather than excusing the paint: only an explicit `false` unmounts, so a
|
|
@@ -85,8 +101,7 @@ const BaseViewModel = types
|
|
|
85
101
|
* that shows up as a slow test rather than as a picture of an empty view.
|
|
86
102
|
*/
|
|
87
103
|
get effectiveBodyMounted() {
|
|
88
|
-
return
|
|
89
|
-
containingViewOf(self)?.effectiveBodyMounted !== false);
|
|
104
|
+
return this.rendersDisplays && bodyInDom(self);
|
|
90
105
|
},
|
|
91
106
|
/**
|
|
92
107
|
* #method
|
|
@@ -20,31 +20,41 @@ export declare const InternetAccount: import("@jbrowse/mobx-state-tree").IModelT
|
|
|
20
20
|
*/
|
|
21
21
|
configuration: import("../../configuration/configurationSchema.ts").IConfigurationReference<import("../../configuration/configurationSchema.ts").ConfigurationSchemaType<{
|
|
22
22
|
readonly name: {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
23
|
+
type: "string";
|
|
24
|
+
} & {
|
|
25
|
+
defaultValue: string;
|
|
26
26
|
};
|
|
27
27
|
readonly description: {
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
28
|
+
type: "string";
|
|
29
|
+
} & {
|
|
30
|
+
defaultValue: string;
|
|
31
31
|
};
|
|
32
32
|
readonly authHeader: {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
type: "string";
|
|
34
|
+
} & {
|
|
35
|
+
defaultValue: string;
|
|
36
36
|
};
|
|
37
37
|
readonly tokenType: {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
38
|
+
type: "string";
|
|
39
|
+
} & {
|
|
40
|
+
defaultValue: string;
|
|
41
41
|
};
|
|
42
42
|
readonly domains: {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
43
|
+
type: "stringArray";
|
|
44
|
+
} & {
|
|
45
|
+
defaultValue: unknown;
|
|
46
46
|
};
|
|
47
|
-
|
|
47
|
+
type: {
|
|
48
|
+
type: "string";
|
|
49
|
+
} & {
|
|
50
|
+
defaultValue: string;
|
|
51
|
+
};
|
|
52
|
+
internetAccountId: {
|
|
53
|
+
type: "string";
|
|
54
|
+
} & {
|
|
55
|
+
defaultValue: string;
|
|
56
|
+
};
|
|
57
|
+
}, import("../../configuration/configurationSchema.ts").ConfigurationSchemaOptions<undefined, "internetAccountId", true, import("../../configuration/requirements.ts").ConfigurationSchemaRequirement<Partial<Record<string, string[]>>, string>>>>;
|
|
48
58
|
}, {
|
|
49
59
|
/**
|
|
50
60
|
* #getter
|
|
@@ -50,7 +50,7 @@ export type FetchAutorunOutcome =
|
|
|
50
50
|
* answers nothing either way — the same deferral `awaitingPrerequisite` gets,
|
|
51
51
|
* reached from inside the foundation rather than declared by the display. The
|
|
52
52
|
* per-region family's in-flight-fetch skip is the case: `reload()` signals the
|
|
53
|
-
* running fetch's
|
|
53
|
+
* running fetch's signal but `activeSignal` clears in `runFetch`'s
|
|
54
54
|
* finally, so the very next run can still see `isLoading` — and that fetch
|
|
55
55
|
* ending bumps `fetchGeneration`, which the autorun tracks. Consuming the bump
|
|
56
56
|
* there would answer the retry with a run that predates it.
|