@jbrowse/core 5.0.0-beta.13 → 5.0.0-beta.14
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 +365 -69
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseAttributes.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCard.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BaseCoreDetails.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +5 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +6 -4
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.d.ts +2 -1
- package/esm/BaseFeatureWidget/BaseFeatureDetail/CoreDetails.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureDetails.js +2 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FeatureWash.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldActionsButton.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Formatter.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ParentFeatureLine.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/UriField.js +4 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.d.ts +3 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceBody.js +4 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +1 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +10 -19
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.d.ts +3 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceLegend.js +4 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequencePanel.js +4 -4
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.d.ts +3 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/HelpDialog.js +4 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.d.ts +1 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceDialog.js +2 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.d.ts +1 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/SequenceTypeSelector.js +15 -36
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.d.ts +3 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/TranscriptSelector.js +4 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.d.ts +2 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +22 -6
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +13 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +28 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +2 -0
- package/esm/PluginManager.d.ts +1 -0
- package/esm/PluginManager.js +6 -0
- package/esm/ReExports/coreModules.generated.js +538 -524
- package/esm/ReExports/coreWorkerModules.generated.js +454 -441
- package/esm/ReExports/lazify.js +3 -2
- package/esm/ReExports/list.js +15 -6
- package/esm/ReExports/names.d.ts +1 -0
- package/esm/ReExports/names.generated.d.ts +2 -0
- package/esm/ReExports/names.generated.js +566 -0
- package/esm/ReExports/names.js +3 -0
- package/esm/assemblyManager/assembly.d.ts +9 -0
- package/esm/assemblyManager/assembly.js +13 -0
- package/esm/assemblyManager/assemblyConfigSchema.d.ts +6 -1
- package/esm/assemblyManager/assemblyConfigSchema.js +23 -22
- package/esm/assemblyManager/assemblyManager.d.ts +11 -0
- package/esm/assemblyManager/assemblyManager.js +2 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.d.ts +9 -0
- package/esm/assemblyManager/expandAssemblyConfigShorthand.js +23 -0
- package/esm/checkPlugins.js +10 -4
- package/esm/configuration/configurationSchema.d.ts +18 -5
- package/esm/configuration/configurationSchema.js +9 -7
- package/esm/configuration/configurationSchemaUnion.d.ts +2 -1
- package/esm/configuration/configurationSchemaUnion.js +2 -1
- package/esm/configuration/configurationSlot.js +4 -4
- package/esm/configuration/fillLocations.d.ts +4 -2
- package/esm/configuration/fillLocations.js +9 -3
- package/esm/configuration/formatAboutConfigSchema.d.ts +2 -2
- package/esm/configuration/formatAboutConfigSchema.js +2 -2
- package/esm/configuration/formatDetailsConfigSchema.d.ts +2 -2
- package/esm/configuration/formatDetailsConfigSchema.js +5 -5
- package/esm/configuration/getConf.js +13 -4
- package/esm/configuration/index.d.ts +1 -1
- package/esm/configuration/index.js +1 -1
- package/esm/configuration/plot.d.ts +2 -2
- package/esm/configuration/plot.js +32 -18
- package/esm/configuration/schemaRegistry.d.ts +0 -2
- package/esm/configuration/slotFacade.js +2 -2
- package/esm/configuration/snapshotPreprocess.d.ts +42 -18
- package/esm/configuration/snapshotPreprocess.js +94 -34
- package/esm/configuration/tabixShorthand.js +1 -3
- package/esm/data_adapters/BaseAdapter/BaseAdapter.d.ts +7 -0
- package/esm/data_adapters/BaseAdapter/BaseAdapter.js +7 -0
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +0 -22
- package/esm/data_adapters/BaseAdapter/BaseFeatureDataAdapter.js +0 -55
- package/esm/data_adapters/BaseAdapter/index.d.ts +0 -1
- package/esm/data_adapters/BaseAdapter/index.js +0 -1
- package/esm/data_adapters/BaseAdapter/rowSources.d.ts +2 -2
- package/esm/data_adapters/BaseAdapter/types.d.ts +1 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.d.ts +2 -0
- package/esm/data_adapters/CytobandAdapter/configSchema.js +5 -0
- package/esm/data_adapters/dataAdapterCache.d.ts +25 -13
- package/esm/data_adapters/dataAdapterCache.js +68 -24
- package/esm/data_adapters/getFeatureAdapter.d.ts +9 -0
- package/esm/data_adapters/getFeatureAdapter.js +17 -0
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +2 -0
- package/esm/pluggableElementTypes/models/BaseConnectionModelFactory.js +2 -0
- package/esm/pluggableElementTypes/models/BaseDisplayModel.d.ts +40 -6
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +56 -8
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +3 -3
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +7 -6
- package/esm/pluggableElementTypes/models/BaseViewModel.d.ts +2 -0
- package/esm/pluggableElementTypes/models/BaseViewModel.js +2 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.d.ts +3 -0
- package/esm/pluggableElementTypes/models/InternetAccountModel.js +3 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.d.ts +3 -0
- package/esm/pluggableElementTypes/models/baseConnectionConfig.js +3 -0
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +3 -1
- package/esm/pluggableElementTypes/models/baseInternetAccountConfig.js +3 -1
- package/esm/pluggableElementTypes/models/baseTrackConfig.js +9 -1
- package/esm/pluggableElementTypes/models/components/SaveTrackData.js +2 -2
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.d.ts +1 -1
- package/esm/pluggableElementTypes/models/expandTrackConfigShorthand.js +1 -1
- package/esm/pluginDefinitions.d.ts +7 -0
- package/esm/pluginDefinitions.js +20 -0
- package/esm/rpc/RpcRegistry.d.ts +0 -10
- package/esm/rpc/byteBudget.d.ts +8 -0
- package/esm/rpc/byteBudget.js +13 -0
- package/esm/rpc/configSchema.d.ts +2 -0
- package/esm/rpc/configSchema.js +3 -1
- package/esm/rpc/coreRpcMethods.d.ts +0 -1
- package/esm/rpc/coreRpcMethods.js +0 -1
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +2 -2
- package/esm/rpc/methods/CoreGetEncodedLayers.js +7 -5
- package/esm/rpc/methods/layerFeatures.d.ts +9 -6
- package/esm/rpc/methods/layerFeatures.js +21 -5
- package/esm/ui/ActionLink.d.ts +3 -2
- package/esm/ui/ActionLink.js +4 -2
- package/esm/ui/AddCustomPluginDialog.d.ts +3 -2
- package/esm/ui/AddCustomPluginDialog.js +6 -4
- package/esm/ui/BaseTooltip.d.ts +3 -2
- package/esm/ui/BaseTooltip.js +4 -2
- package/esm/ui/CascadingMenu.js +14 -12
- package/esm/ui/CascadingMenuButton.d.ts +2 -2
- package/esm/ui/CascadingMenuButton.js +5 -4
- package/esm/ui/CascadingMenuHelpDialog.d.ts +3 -2
- package/esm/ui/CascadingMenuHelpDialog.js +4 -2
- package/esm/ui/CascadingMenuHelpIconButton.d.ts +4 -3
- package/esm/ui/CascadingMenuHelpIconButton.js +9 -5
- package/esm/ui/ColorPicker.d.ts +5 -4
- package/esm/ui/ColorPicker.js +6 -4
- package/esm/ui/ContextMenu.d.ts +1 -1
- package/esm/ui/ContextMenu.js +1 -1
- package/esm/ui/CopyToClipboardButton.d.ts +3 -2
- package/esm/ui/CopyToClipboardButton.js +4 -2
- package/esm/ui/Crosshairs.js +13 -10
- package/esm/ui/DOMPurifySanitizedHTML.d.ts +3 -2
- package/esm/ui/DOMPurifySanitizedHTML.js +4 -2
- package/esm/ui/DataGridFlexContainer.d.ts +3 -2
- package/esm/ui/DataGridFlexContainer.js +4 -2
- package/esm/ui/Dialog.d.ts +1 -1
- package/esm/ui/Dialog.js +5 -4
- package/esm/ui/DropDownMenu.js +2 -2
- package/esm/ui/EditableTypography.d.ts +1 -1
- package/esm/ui/EditableTypography.js +3 -2
- package/esm/ui/ErrorActions.d.ts +3 -2
- package/esm/ui/ErrorActions.js +4 -2
- package/esm/ui/ErrorBanner.d.ts +2 -2
- package/esm/ui/ErrorBanner.js +3 -2
- package/esm/ui/ErrorBar.d.ts +3 -2
- package/esm/ui/ErrorBar.js +4 -2
- package/esm/ui/ErrorMessage.d.ts +3 -2
- package/esm/ui/ErrorMessage.js +4 -2
- package/esm/ui/ErrorMessageStackTraceContents.d.ts +3 -2
- package/esm/ui/ErrorMessageStackTraceContents.js +4 -2
- package/esm/ui/ErrorMessageStackTraceDialog.d.ts +3 -2
- package/esm/ui/ErrorMessageStackTraceDialog.js +4 -2
- package/esm/ui/ErrorOverlay.d.ts +3 -2
- package/esm/ui/ErrorOverlay.js +4 -2
- package/esm/ui/ExportSvgDialog.d.ts +3 -2
- package/esm/ui/ExportSvgDialog.js +4 -2
- package/esm/ui/ExternalLink.d.ts +2 -1
- package/esm/ui/ExternalLink.js +4 -2
- package/esm/ui/FactoryResetDialog.d.ts +3 -2
- package/esm/ui/FactoryResetDialog.js +4 -2
- package/esm/ui/FatalErrorDialog.d.ts +3 -2
- package/esm/ui/FatalErrorDialog.js +6 -4
- package/esm/ui/FileDropZone.d.ts +3 -2
- package/esm/ui/FileDropZone.js +4 -2
- package/esm/ui/FileSelector/LocalFileChooser.js +4 -4
- package/esm/ui/FileSelector/LocationInput.d.ts +3 -2
- package/esm/ui/FileSelector/LocationInput.js +4 -2
- package/esm/ui/FileSelector/SourceTypeSelector.d.ts +3 -2
- package/esm/ui/FileSelector/SourceTypeSelector.js +8 -6
- package/esm/ui/GpuFallbackButton.d.ts +3 -2
- package/esm/ui/GpuFallbackButton.js +4 -2
- package/esm/ui/HoverMenu.d.ts +2 -2
- package/esm/ui/HoverMenu.js +7 -3
- package/esm/ui/HoverTooltip.d.ts +3 -2
- package/esm/ui/HoverTooltip.js +4 -2
- package/esm/ui/Icons.d.ts +5 -5
- package/esm/ui/Icons.js +11 -10
- package/esm/ui/InlineMenuControls.d.ts +2 -2
- package/esm/ui/InlineMenuControls.js +4 -3
- package/esm/ui/JexlFilterRowEditors.d.ts +4 -4
- package/esm/ui/JexlFilterRowEditors.js +9 -8
- package/esm/ui/LabeledCheckbox.d.ts +3 -2
- package/esm/ui/LabeledCheckbox.js +4 -2
- package/esm/ui/LazyBaseTooltip.d.ts +12 -3
- package/esm/ui/LazyBaseTooltip.js +4 -2
- package/esm/ui/LegendSwatchGlyph.js +1 -0
- package/esm/ui/LoadingDots.d.ts +2 -1
- package/esm/ui/LoadingDots.js +4 -2
- package/esm/ui/LoadingEllipses.d.ts +5 -2
- package/esm/ui/LoadingEllipses.js +5 -3
- package/esm/ui/LoadingOverlay.d.ts +3 -2
- package/esm/ui/LoadingOverlay.js +4 -2
- package/esm/ui/LoadingProgress.d.ts +3 -2
- package/esm/ui/LoadingProgress.js +4 -2
- package/esm/ui/Logo.d.ts +2 -2
- package/esm/ui/Logo.js +9 -8
- package/esm/ui/MenuItemChevron.d.ts +2 -2
- package/esm/ui/MenuItemChevron.js +3 -2
- package/esm/ui/MenuItemEndDecoration.d.ts +2 -2
- package/esm/ui/MenuItemEndDecoration.js +3 -2
- package/esm/ui/MenuItemTrailing.d.ts +2 -2
- package/esm/ui/MenuItemTrailing.js +7 -6
- package/esm/ui/MenuTypes.d.ts +21 -1
- package/esm/ui/MenuTypes.js +20 -0
- package/esm/ui/MonospaceTextField.d.ts +3 -2
- package/esm/ui/MonospaceTextField.js +4 -2
- package/esm/ui/NumberTextField.d.ts +2 -2
- package/esm/ui/NumberTextField.js +4 -2
- package/esm/ui/PaletteContext.d.ts +11 -9
- package/esm/ui/PaletteContext.js +33 -18
- package/esm/ui/PluginStoreCard.d.ts +3 -2
- package/esm/ui/PluginStoreCard.js +4 -2
- package/esm/ui/PopoverPicker.d.ts +3 -2
- package/esm/ui/PopoverPicker.js +4 -2
- package/esm/ui/PrerenderedCanvas.d.ts +2 -2
- package/esm/ui/PrerenderedCanvas.js +3 -2
- package/esm/ui/RedErrorMessageBox.d.ts +3 -2
- package/esm/ui/RedErrorMessageBox.js +4 -2
- package/esm/ui/RefNameAutocomplete/EndAdornment.d.ts +3 -2
- package/esm/ui/RefNameAutocomplete/EndAdornment.js +4 -2
- package/esm/ui/RefNameAutocomplete/HelpDialog.d.ts +3 -2
- package/esm/ui/RefNameAutocomplete/HelpDialog.js +4 -2
- package/esm/ui/ReplaceCurrentViewButton.d.ts +3 -2
- package/esm/ui/ReplaceCurrentViewButton.js +4 -2
- package/esm/ui/ResizeHandle.d.ts +2 -2
- package/esm/ui/ResizeHandle.js +3 -2
- package/esm/ui/SanitizedHTML.d.ts +3 -2
- package/esm/ui/SanitizedHTML.js +6 -4
- package/esm/ui/ScrollChrome.d.ts +3 -2
- package/esm/ui/ScrollChrome.js +4 -2
- package/esm/ui/ScrollEdgeShadow.d.ts +2 -2
- package/esm/ui/ScrollEdgeShadow.js +2 -2
- package/esm/ui/SessionJsonPanel.d.ts +3 -2
- package/esm/ui/SessionJsonPanel.js +4 -2
- package/esm/ui/ShareLinkField.d.ts +3 -2
- package/esm/ui/ShareLinkField.js +4 -2
- package/esm/ui/SingleSlider.d.ts +2 -2
- package/esm/ui/SingleSlider.js +4 -2
- package/esm/ui/SliderTooltip.d.ts +2 -1
- package/esm/ui/SliderTooltip.js +4 -2
- package/esm/ui/SnackbarContents.d.ts +3 -2
- package/esm/ui/SnackbarContents.js +4 -2
- package/esm/ui/SnackbarModel.d.ts +2 -0
- package/esm/ui/SnackbarModel.js +2 -0
- package/esm/ui/StackTraceButton.d.ts +3 -2
- package/esm/ui/StackTraceButton.js +4 -2
- package/esm/ui/StatusProgressBar.d.ts +3 -2
- package/esm/ui/StatusProgressBar.js +4 -2
- package/esm/ui/SubmitForm.d.ts +2 -1
- package/esm/ui/SubmitForm.js +4 -2
- package/esm/ui/SvgColorLegend.d.ts +3 -4
- package/esm/ui/SvgColorLegend.js +27 -18
- package/esm/ui/TagTextField.d.ts +2 -2
- package/esm/ui/TagTextField.js +4 -2
- package/esm/ui/ViewLoadingScreen.d.ts +3 -2
- package/esm/ui/ViewLoadingScreen.js +4 -2
- package/esm/ui/colorScale.d.ts +5 -1
- package/esm/ui/colorScale.js +12 -10
- package/esm/ui/colors.d.ts +3 -3
- package/esm/ui/colors.js +7 -7
- package/esm/ui/filterMenuItems.d.ts +10 -31
- package/esm/ui/filterMenuItems.js +13 -14
- package/esm/ui/index.d.ts +1 -1
- package/esm/ui/index.js +1 -1
- package/esm/ui/launchTargetsMenuItem.js +9 -13
- package/esm/ui/legendMenuItem.d.ts +4 -4
- package/esm/ui/legendMenuItem.js +4 -4
- package/esm/ui/menuItemAdornment.d.ts +1 -1
- package/esm/ui/menuItemAdornment.js +1 -1
- package/esm/ui/menuItems.d.ts +1 -1
- package/esm/ui/menuItems.js +1 -1
- package/esm/ui/menuLabels.d.ts +2 -2
- package/esm/ui/menuLabels.js +2 -2
- package/esm/ui/palette.d.ts +2 -2
- package/esm/ui/palette.js +10 -10
- package/esm/ui/radioSubMenu.d.ts +5 -3
- package/esm/ui/radioSubMenu.js +2 -2
- package/esm/ui/rampKey.d.ts +15 -0
- package/esm/ui/rampKey.js +17 -0
- package/esm/ui/showSubMenu.d.ts +0 -5
- package/esm/ui/showSubMenu.js +6 -15
- package/esm/ui/theme.d.ts +2 -2
- package/esm/ui/theme.js +1 -1
- package/esm/ui/useAssemblySelection.d.ts +2 -0
- package/esm/ui/useMouseTracking.d.ts +8 -20
- package/esm/ui/useMouseTracking.js +23 -62
- package/esm/ui/usePlacedMenuFocus.d.ts +19 -0
- package/esm/ui/usePlacedMenuFocus.js +28 -0
- package/esm/util/Base1DViewModel.d.ts +5 -3
- package/esm/util/Base1DViewModel.js +5 -3
- package/esm/util/SvgCanvas.js +1 -1
- package/esm/util/aggregateFieldName.d.ts +1 -10
- package/esm/util/aggregateFieldName.js +1 -8
- package/esm/util/analytics.d.ts +4 -6
- package/esm/util/analytics.js +143 -12
- package/esm/util/bezierConnector.d.ts +20 -0
- package/esm/util/bezierConnector.js +34 -100
- package/esm/util/cacheBudgets.d.ts +3 -0
- package/esm/util/cacheBudgets.js +3 -0
- package/esm/util/categoricalField.d.ts +2 -2
- package/esm/util/categoricalField.js +3 -3
- package/esm/util/color/index.d.ts +1 -1
- package/esm/util/color/index.js +2 -2
- package/esm/util/color-bits/bit.js +1 -1
- package/esm/util/color-bits/parse.js +6 -6
- package/esm/util/colorBits.d.ts +15 -4
- package/esm/util/colorBits.js +38 -15
- package/esm/util/colorRamp.d.ts +3 -3
- package/esm/util/colorRamp.js +14 -2
- package/esm/util/colorScale.d.ts +114 -20
- package/esm/util/colorScale.js +124 -26
- package/esm/util/colorSchemes.d.ts +6 -4
- package/esm/util/colorSchemes.js +6 -3
- package/esm/util/createSvgRasterCanvas.d.ts +14 -1
- package/esm/util/createSvgRasterCanvas.js +36 -12
- package/esm/util/diagonalizeRegions.js +18 -9
- package/esm/util/featureTransforms.d.ts +2 -2
- package/esm/util/featureTransforms.js +85 -135
- package/esm/util/fileHandleStore.js +5 -0
- package/esm/util/groupKeys.d.ts +5 -4
- package/esm/util/groupKeys.js +15 -9
- package/esm/util/index.js +1 -1
- package/esm/util/installFetch.d.ts +2 -2
- package/esm/util/installPrerequisiteFetch.d.ts +8 -3
- package/esm/util/installPrerequisiteFetch.js +9 -7
- package/esm/util/io/RemoteFileWithRangeCache.d.ts +1 -1
- package/esm/util/io/RemoteFileWithRangeCache.js +1 -1
- package/esm/util/jexl.js +1 -1
- package/esm/util/layouts/GranularRectLayout.d.ts +19 -3
- package/esm/util/layouts/GranularRectLayout.js +57 -34
- package/esm/util/leadingEdgeAutorun.d.ts +9 -1
- package/esm/util/leadingEdgeAutorun.js +5 -2
- package/esm/util/markEncoding.d.ts +10 -8
- package/esm/util/markEncoding.js +50 -12
- package/esm/util/markEncodingTypes.d.ts +74 -20
- package/esm/util/originCut.d.ts +14 -0
- package/esm/util/originCut.js +19 -0
- package/esm/util/paintLayer.d.ts +1 -1
- package/esm/util/paintLayer.js +4 -3
- package/esm/util/pathSeries.d.ts +18 -0
- package/esm/util/pathSeries.js +143 -0
- package/esm/util/pressOwner.d.ts +20 -0
- package/esm/util/pressOwner.js +26 -0
- package/esm/util/quantileExtent.d.ts +3 -3
- package/esm/util/quantileExtent.js +3 -3
- package/esm/util/rowStackGeometry.d.ts +1 -1
- package/esm/util/rowStackGeometry.js +1 -1
- package/esm/util/sessionActivity.d.ts +36 -0
- package/esm/util/sessionActivity.js +88 -0
- package/esm/util/stepOutputs.d.ts +165 -0
- package/esm/util/stepOutputs.js +201 -0
- package/esm/util/stepTables.d.ts +7 -3
- package/esm/util/stepTables.js +86 -3
- package/esm/util/thresholdScale.d.ts +1 -1
- package/esm/util/thresholdScale.js +1 -1
- package/esm/util/tracks.js +1 -1
- package/esm/util/usePanZoom.js +4 -10
- package/esm/util/windowStep.d.ts +6 -0
- package/esm/util/windowStep.js +153 -0
- package/package.json +23 -15
- package/esm/data_adapters/BaseAdapter/featureDensity.d.ts +0 -40
- package/esm/data_adapters/BaseAdapter/featureDensity.js +0 -31
- package/esm/rpc/methods/CoreGetFeatureDensity.d.ts +0 -11
- package/esm/rpc/methods/CoreGetFeatureDensity.js +0 -22
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type React from 'react';
|
|
2
|
-
export declare
|
|
3
|
-
|
|
2
|
+
export declare const CascadingMenuHelpIconSpacer: () => React.JSX.Element;
|
|
3
|
+
declare const CascadingMenuHelpIconButton: ({ helpText, label, }: {
|
|
4
4
|
helpText: string;
|
|
5
5
|
label?: React.ReactNode;
|
|
6
|
-
})
|
|
6
|
+
}) => React.JSX.Element;
|
|
7
|
+
export default CascadingMenuHelpIconButton;
|
|
@@ -2,17 +2,20 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import HelpOutlined from '@mui/icons-material/HelpOutlined';
|
|
4
4
|
import { IconButton } from '@mui/material';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
5
6
|
import CascadingMenuHelpDialog from './CascadingMenuHelpDialog.js';
|
|
6
7
|
const buttonStyle = { marginLeft: 4, padding: 4 };
|
|
7
8
|
// Invisible button that reserves the exact same footprint as the help icon, so
|
|
8
9
|
// rows without help text keep their end decoration (radio/checkbox) aligned
|
|
9
10
|
// with rows that have one
|
|
10
|
-
export function CascadingMenuHelpIconSpacer() {
|
|
11
|
+
export const CascadingMenuHelpIconSpacer = observer(function CascadingMenuHelpIconSpacer() {
|
|
11
12
|
return (_jsx(IconButton, { size: "small", disabled: true, style: { ...buttonStyle, visibility: 'hidden' }, children: _jsx(HelpOutlined, { fontSize: "small" }) }));
|
|
12
|
-
}
|
|
13
|
-
|
|
13
|
+
});
|
|
14
|
+
const CascadingMenuHelpIconButton = observer(function CascadingMenuHelpIconButton({ helpText, label, }) {
|
|
14
15
|
const [helpDialogOpen, setHelpDialogOpen] = useState(false);
|
|
15
|
-
return (_jsxs(_Fragment, { children: [_jsx(IconButton, { size: "small", "aria-label": typeof label === 'string'
|
|
16
|
+
return (_jsxs(_Fragment, { children: [_jsx(IconButton, { size: "small", "aria-label": typeof label === 'string'
|
|
17
|
+
? `Help for ${label}`
|
|
18
|
+
: 'Help for this item', onClick: event => {
|
|
16
19
|
event.stopPropagation();
|
|
17
20
|
setHelpDialogOpen(true);
|
|
18
21
|
}, style: buttonStyle, children: _jsx(HelpOutlined, { fontSize: "small" }) }), helpDialogOpen ? (_jsx(CascadingMenuHelpDialog, { helpText: helpText, label: label,
|
|
@@ -21,4 +24,5 @@ export default function CascadingMenuHelpIconButton({ helpText, label, }) {
|
|
|
21
24
|
onClose: () => {
|
|
22
25
|
setHelpDialogOpen(false);
|
|
23
26
|
} })) : null] }));
|
|
24
|
-
}
|
|
27
|
+
});
|
|
28
|
+
export default CascadingMenuHelpIconButton;
|
package/esm/ui/ColorPicker.d.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
export declare
|
|
1
|
+
export declare const ColorPopover: ({ anchorEl, onChange, onClose, color, presetAlpha, }: {
|
|
2
2
|
color: string;
|
|
3
3
|
anchorEl: HTMLElement | null;
|
|
4
4
|
onChange: (val: string) => void;
|
|
5
5
|
onClose: () => void;
|
|
6
6
|
presetAlpha?: number;
|
|
7
|
-
})
|
|
8
|
-
|
|
7
|
+
}) => import("react").JSX.Element;
|
|
8
|
+
declare const ColorPicker: ({ onChange, color, presetAlpha, }: {
|
|
9
9
|
color: string;
|
|
10
10
|
onChange: (val: string) => void;
|
|
11
11
|
presetAlpha?: number;
|
|
12
|
-
})
|
|
12
|
+
}) => import("react").JSX.Element;
|
|
13
|
+
export default ColorPicker;
|
package/esm/ui/ColorPicker.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useState } from 'react';
|
|
3
3
|
import { MenuItem, Popover, Select, TextField } from '@mui/material';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
4
5
|
import { colord } from '../util/colord.js';
|
|
5
6
|
import { useDebounce, useLocalStorage } from '../util/hooks.js';
|
|
6
7
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
@@ -30,10 +31,10 @@ const palettes = Object.keys(paletteColors);
|
|
|
30
31
|
function isPaletteType(s) {
|
|
31
32
|
return Object.hasOwn(paletteColors, s);
|
|
32
33
|
}
|
|
33
|
-
export function ColorPopover({ anchorEl, onChange, onClose, color, presetAlpha, }) {
|
|
34
|
+
export const ColorPopover = observer(function ColorPopover({ anchorEl, onChange, onClose, color, presetAlpha, }) {
|
|
34
35
|
return (_jsx(Popover, { open: !!anchorEl, anchorEl: anchorEl, onClose: onClose, children: _jsx(ColorPicker, { color: color, onChange: onChange, presetAlpha: presetAlpha }) }));
|
|
35
|
-
}
|
|
36
|
-
|
|
36
|
+
});
|
|
37
|
+
const ColorPicker = observer(function ColorPicker({ onChange, color, presetAlpha, }) {
|
|
37
38
|
const { classes } = useStyles();
|
|
38
39
|
const [storedPalette, setStoredPalette] = useLocalStorage('colorPickerPalette', 'set1');
|
|
39
40
|
// a stale localStorage value (e.g. a palette since renamed/removed) would
|
|
@@ -56,4 +57,5 @@ export default function ColorPicker({ onChange, color, presetAlpha, }) {
|
|
|
56
57
|
} }, `${presetColor}-${idx}`))) }), _jsx(TextField, { helperText: 'Manually set color (hex, rgb, or css color name)', value: text, onChange: event => {
|
|
57
58
|
handleChange(event.target.value);
|
|
58
59
|
} })] })] }));
|
|
59
|
-
}
|
|
60
|
+
});
|
|
61
|
+
export default ColorPicker;
|
package/esm/ui/ContextMenu.d.ts
CHANGED
|
@@ -22,7 +22,7 @@ export interface ContextMenuAnchor {
|
|
|
22
22
|
*
|
|
23
23
|
* Its events do not stop at the portal — React bubbles them through the
|
|
24
24
|
* component tree to whatever rendered the menu, which on a display is the
|
|
25
|
-
* element that hit-tests the pointer. `
|
|
25
|
+
* element that hit-tests the pointer. `DisplayChromeBase` is where that
|
|
26
26
|
* element refuses the events that did not happen over it, for every portalled
|
|
27
27
|
* overlay rather than for menus alone.
|
|
28
28
|
*
|
package/esm/ui/ContextMenu.js
CHANGED
|
@@ -20,7 +20,7 @@ const DEFAULT_OFFSET = { x: 12, y: 0 };
|
|
|
20
20
|
*
|
|
21
21
|
* Its events do not stop at the portal — React bubbles them through the
|
|
22
22
|
* component tree to whatever rendered the menu, which on a display is the
|
|
23
|
-
* element that hit-tests the pointer. `
|
|
23
|
+
* element that hit-tests the pointer. `DisplayChromeBase` is where that
|
|
24
24
|
* element refuses the events that did not happen over it, for every portalled
|
|
25
25
|
* overlay rather than for menus alone.
|
|
26
26
|
*
|
|
@@ -4,7 +4,8 @@ import type { ButtonProps } from '@mui/material';
|
|
|
4
4
|
* `copiedLabel` as feedback. `value` may be a function so callers can defer
|
|
5
5
|
* computing large strings (e.g. JSON.stringify) until the click happens.
|
|
6
6
|
*/
|
|
7
|
-
|
|
7
|
+
declare const CopyToClipboardButton: ({ value, children, copiedLabel, ...rest }: {
|
|
8
8
|
value: string | (() => string);
|
|
9
9
|
copiedLabel?: string;
|
|
10
|
-
} & Omit<ButtonProps, 'value'>)
|
|
10
|
+
} & Omit<ButtonProps, 'value'>) => import("react").JSX.Element;
|
|
11
|
+
export default CopyToClipboardButton;
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Button } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
3
4
|
import { useCopyToClipboard } from './useCopyToClipboard.js';
|
|
4
5
|
/**
|
|
5
6
|
* A Button that copies `value` to the clipboard and briefly swaps its label to
|
|
6
7
|
* `copiedLabel` as feedback. `value` may be a function so callers can defer
|
|
7
8
|
* computing large strings (e.g. JSON.stringify) until the click happens.
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
+
const CopyToClipboardButton = observer(function CopyToClipboardButton({ value, children, copiedLabel = 'Copied to clipboard!', ...rest }) {
|
|
10
11
|
const { copied, copy } = useCopyToClipboard();
|
|
11
12
|
return (_jsx(Button, { ...rest, onClick: () => {
|
|
12
13
|
void copy(typeof value === 'function' ? value() : value);
|
|
13
14
|
}, children: copied ? copiedLabel : children }));
|
|
14
|
-
}
|
|
15
|
+
});
|
|
16
|
+
export default CopyToClipboardButton;
|
package/esm/ui/Crosshairs.js
CHANGED
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
-
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
const Crosshairs = observer(function Crosshairs({ width, height, mouseX, mouseY, top = 0, zIndex,
|
|
3
4
|
// The vertical (genomic-position) guide is dropped when the cursor is left of
|
|
4
5
|
// this, e.g. over a tree sidebar where it has no meaning and clutters the
|
|
5
6
|
// resize handle. The horizontal row guide is kept.
|
|
6
|
-
minLeft = 0, })
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
7
|
+
minLeft = 0, }) {
|
|
8
|
+
return (_jsxs("svg", { style: {
|
|
9
|
+
position: 'absolute',
|
|
10
|
+
top,
|
|
11
|
+
left: 0,
|
|
12
|
+
width,
|
|
13
|
+
height,
|
|
14
|
+
pointerEvents: 'none',
|
|
15
|
+
zIndex,
|
|
16
|
+
}, children: [mouseY === undefined ? null : (_jsx("line", { x1: 0, x2: width, y1: mouseY, y2: mouseY, stroke: "currentColor" })), mouseX >= minLeft ? (_jsx("line", { x1: mouseX, x2: mouseX, y1: 0, y2: height, stroke: "currentColor" })) : null] }));
|
|
17
|
+
});
|
|
15
18
|
export default Crosshairs;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
declare const DOMPurifySanitizedHTML: ({ value, className, }: {
|
|
2
2
|
value: string;
|
|
3
3
|
className?: string;
|
|
4
|
-
})
|
|
4
|
+
}) => import("react").JSX.Element;
|
|
5
|
+
export default DOMPurifySanitizedHTML;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { useLayoutEffect, useRef } from 'react';
|
|
3
3
|
import dompurify from 'dompurify';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
4
5
|
import { rewriteExternalAnchors } from './rewriteExternalAnchors.js';
|
|
5
|
-
|
|
6
|
+
const DOMPurifySanitizedHTML = observer(function DOMPurifySanitizedHTML({ value, className, }) {
|
|
6
7
|
const spanRef = useRef(null);
|
|
7
8
|
useLayoutEffect(() => {
|
|
8
9
|
const el = spanRef.current;
|
|
@@ -13,4 +14,5 @@ export default function DOMPurifySanitizedHTML({ value, className, }) {
|
|
|
13
14
|
return (_jsx("span", { ref: spanRef, className: className,
|
|
14
15
|
// eslint-disable-next-line @eslint-react/dom-no-dangerously-set-innerhtml
|
|
15
16
|
dangerouslySetInnerHTML: { __html: dompurify.sanitize(value) } }));
|
|
16
|
-
}
|
|
17
|
+
});
|
|
18
|
+
export default DOMPurifySanitizedHTML;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { CSSProperties } from 'react';
|
|
2
|
-
|
|
2
|
+
declare const DataGridFlexContainer: ({ children, className, style, }: {
|
|
3
3
|
children: React.ReactNode;
|
|
4
4
|
/**
|
|
5
5
|
* merged with the flex-column base. A caller that wants the grid to FILL its
|
|
@@ -9,4 +9,5 @@ export default function DataGridFlexContainer({ children, className, style, }: {
|
|
|
9
9
|
*/
|
|
10
10
|
className?: string;
|
|
11
11
|
style?: CSSProperties;
|
|
12
|
-
})
|
|
12
|
+
}) => import("react").JSX.Element;
|
|
13
|
+
export default DataGridFlexContainer;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
2
3
|
import { cx, makeStyles } from '../util/tss-react/index.js';
|
|
3
4
|
const useStyles = makeStyles()({
|
|
4
5
|
flexContainer: {
|
|
@@ -7,7 +8,8 @@ const useStyles = makeStyles()({
|
|
|
7
8
|
},
|
|
8
9
|
});
|
|
9
10
|
// https://mui.com/x/react-data-grid/layout/#flex-parent-container
|
|
10
|
-
|
|
11
|
+
const DataGridFlexContainer = observer(function DataGridFlexContainer({ children, className, style, }) {
|
|
11
12
|
const { classes } = useStyles();
|
|
12
13
|
return (_jsx("div", { className: cx(classes.flexContainer, className), style: style, children: children }));
|
|
13
|
-
}
|
|
14
|
+
});
|
|
15
|
+
export default DataGridFlexContainer;
|
package/esm/ui/Dialog.d.ts
CHANGED
|
@@ -6,5 +6,5 @@ export interface Props extends Omit<DialogProps, 'onClose'> {
|
|
|
6
6
|
bivarianceHack(event: object, reason: 'backdropClick' | 'escapeKeyDown' | 'closeButtonClick'): void;
|
|
7
7
|
}['bivarianceHack'] | undefined;
|
|
8
8
|
}
|
|
9
|
-
declare
|
|
9
|
+
declare const Dialog: (props: Props) => import("react").JSX.Element;
|
|
10
10
|
export default Dialog;
|
package/esm/ui/Dialog.js
CHANGED
|
@@ -2,6 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useMemo } from 'react';
|
|
3
3
|
import CloseIcon from '@mui/icons-material/Close';
|
|
4
4
|
import { DialogTitle, Divider, IconButton, Dialog as MUIDialog, ScopedCssBaseline, ThemeProvider, createTheme, useTheme, } from '@mui/material';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
5
6
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
6
7
|
import ErrorBanner from './ErrorBanner.js';
|
|
7
8
|
import { ErrorBoundary } from './ErrorBoundary.js';
|
|
@@ -18,11 +19,11 @@ const useStyles = makeStyles()(theme => ({
|
|
|
18
19
|
margin: theme.spacing(5),
|
|
19
20
|
},
|
|
20
21
|
}));
|
|
21
|
-
function DialogError({ error }) {
|
|
22
|
+
const DialogError = observer(function DialogError({ error, }) {
|
|
22
23
|
const { classes } = useStyles();
|
|
23
24
|
return (_jsx("div", { className: classes.errorBox, children: _jsx(ErrorBanner, { error: error }) }));
|
|
24
|
-
}
|
|
25
|
-
function Dialog(props) {
|
|
25
|
+
});
|
|
26
|
+
const Dialog = observer(function Dialog(props) {
|
|
26
27
|
const { classes } = useStyles();
|
|
27
28
|
const { titleNode, header, title, ...rest } = props;
|
|
28
29
|
const { children, onClose } = rest;
|
|
@@ -49,5 +50,5 @@ function Dialog(props) {
|
|
|
49
50
|
, { "data-testid": "dialog-close", className: classes.closeButton, onClick: event => {
|
|
50
51
|
onClose(event, 'closeButtonClick');
|
|
51
52
|
}, children: _jsx(CloseIcon, {}) })) : null] })), _jsx(Divider, {}), _jsx(ErrorBoundary, { FallbackComponent: DialogError, children: _jsx(ThemeProvider, { theme: dialogTheme, children: children }) })] }) }));
|
|
52
|
-
}
|
|
53
|
+
});
|
|
53
54
|
export default Dialog;
|
package/esm/ui/DropDownMenu.js
CHANGED
|
@@ -15,10 +15,10 @@ const useStyles = makeStyles()(theme => ({
|
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
}));
|
|
18
|
-
function ButtonComponent(props) {
|
|
18
|
+
const ButtonComponent = observer(function ButtonComponent(props) {
|
|
19
19
|
const { classes } = useStyles();
|
|
20
20
|
return (_jsx(Button, { ...props, className: classes.buttonRoot, children: props.children }));
|
|
21
|
-
}
|
|
21
|
+
});
|
|
22
22
|
const DropDownMenu = observer(function DropDownMenu({ menuTitle, menuItems, onMenuItemClick, }) {
|
|
23
23
|
return (_jsxs(CascadingMenuButton, { menuItems: menuItems, onMenuItemClick: onMenuItemClick, color: "inherit", ButtonComponent: ButtonComponent, children: [menuTitle, _jsx(ArrowDropDown, {})] }));
|
|
24
24
|
});
|
|
@@ -9,5 +9,5 @@ interface Props {
|
|
|
9
9
|
classes?: Partial<Record<EditableTypographyClassKey, string>>;
|
|
10
10
|
ref?: Ref<HTMLDivElement>;
|
|
11
11
|
}
|
|
12
|
-
declare
|
|
12
|
+
declare const EditableTypography: (props: Props) => import("react").JSX.Element;
|
|
13
13
|
export default EditableTypography;
|
|
@@ -4,6 +4,7 @@ import { useRef, useState } from 'react';
|
|
|
4
4
|
// that exact string. See the note in `util/hooks.ts`.
|
|
5
5
|
import useMeasure from '@jbrowse/core/util/useMeasure';
|
|
6
6
|
import { InputBase, Typography, useTheme } from '@mui/material';
|
|
7
|
+
import { observer } from 'mobx-react';
|
|
7
8
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
8
9
|
const useStyles = makeStyles()(theme => ({
|
|
9
10
|
typography: {
|
|
@@ -21,7 +22,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
21
22
|
borderWidth: 2,
|
|
22
23
|
},
|
|
23
24
|
}));
|
|
24
|
-
function EditableTypography(props) {
|
|
25
|
+
const EditableTypography = observer(function EditableTypography(props) {
|
|
25
26
|
const { value, setValue, variant, ref, classes: overrides, ...other } = props;
|
|
26
27
|
const [ref2, { width }] = useMeasure('width');
|
|
27
28
|
const [editedValue, setEditedValue] = useState();
|
|
@@ -64,5 +65,5 @@ function EditableTypography(props) {
|
|
|
64
65
|
}
|
|
65
66
|
setEditedValue(undefined);
|
|
66
67
|
} })] }));
|
|
67
|
-
}
|
|
68
|
+
});
|
|
68
69
|
export default EditableTypography;
|
package/esm/ui/ErrorActions.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ import type { ReactNode } from 'react';
|
|
|
11
11
|
* the environment block and the prefilled issue link — the whole of what that
|
|
12
12
|
* dialog is for — from anyone whose failure arrived as a string.
|
|
13
13
|
*/
|
|
14
|
-
|
|
14
|
+
declare const ErrorActions: ({ error, onRetry, extraAction, color, }: {
|
|
15
15
|
error: unknown;
|
|
16
16
|
/** omitted by a presentation with nothing to retry */
|
|
17
17
|
onRetry?: () => void;
|
|
@@ -21,4 +21,5 @@ export default function ErrorActions({ error, onRetry, extraAction, color, }: {
|
|
|
21
21
|
*/
|
|
22
22
|
extraAction?: ReactNode;
|
|
23
23
|
color?: IconButtonProps['color'];
|
|
24
|
-
})
|
|
24
|
+
}) => import("react").JSX.Element;
|
|
25
|
+
export default ErrorActions;
|
package/esm/ui/ErrorActions.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
3
3
|
import { IconButton, Tooltip } from '@mui/material';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
4
5
|
import StackTraceButton from './StackTraceButton.js';
|
|
5
6
|
/**
|
|
6
7
|
* What both error presentations offer, in one order: the remedy specific to
|
|
@@ -13,8 +14,9 @@ import StackTraceButton from './StackTraceButton.js';
|
|
|
13
14
|
* the environment block and the prefilled issue link — the whole of what that
|
|
14
15
|
* dialog is for — from anyone whose failure arrived as a string.
|
|
15
16
|
*/
|
|
16
|
-
|
|
17
|
+
const ErrorActions = observer(function ErrorActions({ error, onRetry, extraAction, color, }) {
|
|
17
18
|
return (_jsxs(_Fragment, { children: [extraAction, _jsx(StackTraceButton, { error: error, color: color }), onRetry ? (_jsx(Tooltip, { title: "Retry", children: _jsx(IconButton, { "data-testid": "reload_button", onClick: () => {
|
|
18
19
|
onRetry();
|
|
19
20
|
}, color: color, children: _jsx(RefreshIcon, {}) }) })) : null] }));
|
|
20
|
-
}
|
|
21
|
+
});
|
|
22
|
+
export default ErrorActions;
|
package/esm/ui/ErrorBanner.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
declare
|
|
2
|
+
declare const ErrorBanner: ({ error, onReset, extraAction, }: {
|
|
3
3
|
error: unknown;
|
|
4
4
|
onReset?: () => void;
|
|
5
5
|
extraAction?: ReactNode;
|
|
6
|
-
})
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
7
7
|
export default ErrorBanner;
|
package/esm/ui/ErrorBanner.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
2
3
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
3
4
|
import ErrorActions from './ErrorActions.js';
|
|
4
5
|
import RedErrorMessageBox from './RedErrorMessageBox.js';
|
|
@@ -22,7 +23,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
22
23
|
marginLeft: 100,
|
|
23
24
|
},
|
|
24
25
|
}));
|
|
25
|
-
function ErrorBanner({ error, onReset, extraAction, }) {
|
|
26
|
+
const ErrorBanner = observer(function ErrorBanner({ error, onReset, extraAction, }) {
|
|
26
27
|
const { classes } = useStyles();
|
|
27
28
|
const errorText = `${error}`;
|
|
28
29
|
// trim "expected an instance of ..." tail — still generated by MST for
|
|
@@ -31,5 +32,5 @@ function ErrorBanner({ error, onReset, extraAction, }) {
|
|
|
31
32
|
const displayText = instanceIdx === -1 ? errorText : errorText.slice(0, instanceIdx);
|
|
32
33
|
const { snapshotValue, message } = parseError(errorText);
|
|
33
34
|
return (_jsxs(RedErrorMessageBox, { children: [displayText.slice(0, 10000), _jsx("div", { className: classes.iconFloat, children: _jsx(ErrorActions, { error: error, onRetry: onReset, extraAction: extraAction, color: "primary" }) }), snapshotValue !== undefined ? (_jsxs(_Fragment, { children: [_jsx("div", { className: classes.message, children: message }), _jsx("pre", { className: classes.bg, children: JSON.stringify(snapshotValue, null, 2) })] })) : null] }));
|
|
34
|
-
}
|
|
35
|
+
});
|
|
35
36
|
export default ErrorBanner;
|
package/esm/ui/ErrorBar.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
2
|
+
declare const ErrorBar: ({ error, onRetry, extraAction, }: {
|
|
3
3
|
error: unknown;
|
|
4
4
|
onRetry: () => void;
|
|
5
5
|
extraAction?: ReactNode;
|
|
6
|
-
})
|
|
6
|
+
}) => import("react").JSX.Element;
|
|
7
|
+
export default ErrorBar;
|
package/esm/ui/ErrorBar.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { Alert, Tooltip } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
3
4
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
4
5
|
import ErrorActions from './ErrorActions.js';
|
|
5
6
|
const useStyles = makeStyles()({
|
|
@@ -12,7 +13,7 @@ const useStyles = makeStyles()({
|
|
|
12
13
|
userSelect: 'text',
|
|
13
14
|
},
|
|
14
15
|
});
|
|
15
|
-
|
|
16
|
+
const ErrorBar = observer(function ErrorBar({ error, onRetry, extraAction, }) {
|
|
16
17
|
const { classes } = useStyles();
|
|
17
18
|
const message = `${error}`;
|
|
18
19
|
return (_jsx("div", { style: {
|
|
@@ -32,4 +33,5 @@ export default function ErrorBar({ error, onRetry, extraAction, }) {
|
|
|
32
33
|
}, onClick: e => {
|
|
33
34
|
e.stopPropagation();
|
|
34
35
|
}, children: _jsx(Alert, { severity: "error", action: _jsx(ErrorActions, { error: error, onRetry: onRetry, extraAction: extraAction }), children: _jsx(Tooltip, { title: message, children: _jsx("div", { className: classes.content, children: message }) }) }) }));
|
|
35
|
-
}
|
|
36
|
+
});
|
|
37
|
+
export default ErrorBar;
|
package/esm/ui/ErrorMessage.d.ts
CHANGED
package/esm/ui/ErrorMessage.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import RefreshIcon from '@mui/icons-material/Refresh';
|
|
3
3
|
import { Button } from '@mui/material';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
4
5
|
import RedErrorMessageBox from './RedErrorMessageBox.js';
|
|
5
6
|
// chunk load failures usually mean a stale asset manifest (e.g. server
|
|
6
7
|
// redeploy) or a network hiccup; a reload fetches the current chunks
|
|
@@ -14,8 +15,9 @@ function isChunkLoadError(error) {
|
|
|
14
15
|
message.includes('failed to fetch dynamically imported module') ||
|
|
15
16
|
message.includes('error loading dynamically imported module'));
|
|
16
17
|
}
|
|
17
|
-
|
|
18
|
+
const ErrorMessage = observer(function ErrorMessage({ error, }) {
|
|
18
19
|
return isChunkLoadError(error) ? (_jsxs(RedErrorMessageBox, { children: [_jsx("div", { children: "Failed to load part of the application, likely due to a server update or network error. Refreshing the page usually fixes it." }), _jsx(Button, { variant: "contained", startIcon: _jsx(RefreshIcon, {}), onClick: () => {
|
|
19
20
|
window.location.reload();
|
|
20
21
|
}, style: { margin: 4 }, children: "Refresh page" }), _jsx("div", { children: `${error}` })] })) : (_jsx(RedErrorMessageBox, { children: `${error}` }));
|
|
21
|
-
}
|
|
22
|
+
});
|
|
23
|
+
export default ErrorMessage;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
|
|
1
|
+
declare const ErrorMessageStackTraceContents: ({ text, extra, }: {
|
|
2
2
|
text: string;
|
|
3
3
|
extra?: unknown;
|
|
4
|
-
})
|
|
4
|
+
}) => import("react").JSX.Element;
|
|
5
|
+
export default ErrorMessageStackTraceContents;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Typography } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
3
4
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
4
5
|
import ExternalLink from './ExternalLink.js';
|
|
5
6
|
import { alpha } from './palette.js';
|
|
@@ -13,7 +14,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
13
14
|
maxHeight: 300,
|
|
14
15
|
},
|
|
15
16
|
}));
|
|
16
|
-
|
|
17
|
+
const ErrorMessageStackTraceContents = observer(function ErrorMessageStackTraceContents({ text, extra, }) {
|
|
17
18
|
const { classes } = useStyles();
|
|
18
19
|
const extraStr = extra
|
|
19
20
|
? `supporting data: ${JSON.stringify(extra, null, 2)}`
|
|
@@ -23,4 +24,5 @@ export default function ErrorMessageStackTraceContents({ text, extra, }) {
|
|
|
23
24
|
const githubLink = `https://github.com/GMOD/jbrowse-components/issues/new?labels=bug&title=JBrowse+issue&body=${issueBody}`;
|
|
24
25
|
const emailLink = `mailto:${EMAIL}?subject=JBrowse%202%20error&body=${issueBody}`;
|
|
25
26
|
return (_jsxs(_Fragment, { children: [_jsxs(Typography, { children: ["Post a new issue at", ' ', _jsx(ExternalLink, { href: githubLink, children: "GitHub" }), " or send an email to ", _jsx(ExternalLink, { href: emailLink, children: EMAIL })] }), _jsx("pre", { className: classes.pre, children: displayText })] }));
|
|
26
|
-
}
|
|
27
|
+
});
|
|
28
|
+
export default ErrorMessageStackTraceContents;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
declare const ErrorMessageStackTraceDialog: ({ error, onClose, extra, }: {
|
|
2
2
|
onClose: () => void;
|
|
3
3
|
error: unknown;
|
|
4
4
|
extra?: unknown;
|
|
5
|
-
})
|
|
5
|
+
}) => import("react").JSX.Element;
|
|
6
|
+
export default ErrorMessageStackTraceDialog;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { effectiveRenderer } from '@jbrowse/render-core/graphicsCapabilities';
|
|
3
3
|
import { useGraphicsCapabilities } from '@jbrowse/render-core/useGraphicsCapabilities';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
4
5
|
import { useFetch } from '../util/useFetch.js';
|
|
5
6
|
import CopyToClipboardButton from './CopyToClipboardButton.js';
|
|
6
7
|
import ErrorMessageStackTraceContents from './ErrorMessageStackTraceContents.js';
|
|
@@ -9,7 +10,7 @@ import LoadingEllipses from './LoadingEllipses.js';
|
|
|
9
10
|
import { formatErrorStack } from './formatErrorStack.js';
|
|
10
11
|
import { mapStackTrace } from './mapStackTrace.js';
|
|
11
12
|
const MAX_ERR_LEN = 10_000;
|
|
12
|
-
|
|
13
|
+
const ErrorMessageStackTraceDialog = observer(function ErrorMessageStackTraceDialog({ error, onClose, extra, }) {
|
|
13
14
|
const graphicsCapabilities = useGraphicsCapabilities();
|
|
14
15
|
const errorText = error ? `${error}` : '';
|
|
15
16
|
const stackTrace = formatErrorStack(error);
|
|
@@ -60,4 +61,5 @@ export default function ErrorMessageStackTraceDialog({ error, onClose, extra, })
|
|
|
60
61
|
return (_jsx(InfoDialog, { open: true, onClose: () => {
|
|
61
62
|
onClose();
|
|
62
63
|
}, maxWidth: "xl", title: "Stack trace", actions: _jsx(CopyToClipboardButton, { variant: "contained", color: "secondary", value: errorBoxText, copiedLabel: "Copied!", children: "Copy stack trace to clipboard" }), children: isLoading ? (_jsx(LoadingEllipses, { variant: "h6" })) : (_jsx(ErrorMessageStackTraceContents, { text: errorBoxText, extra: extra })) }));
|
|
63
|
-
}
|
|
64
|
+
});
|
|
65
|
+
export default ErrorMessageStackTraceDialog;
|
package/esm/ui/ErrorOverlay.d.ts
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { ReactNode } from 'react';
|
|
2
|
-
|
|
2
|
+
declare const ErrorOverlay: ({ error, onRetry, width, height, extraAction, }: {
|
|
3
3
|
error: unknown;
|
|
4
4
|
onRetry: () => void;
|
|
5
5
|
width: number | string;
|
|
6
6
|
height: number | string;
|
|
7
7
|
extraAction?: ReactNode;
|
|
8
|
-
})
|
|
8
|
+
}) => import("react").JSX.Element;
|
|
9
|
+
export default ErrorOverlay;
|
package/esm/ui/ErrorOverlay.js
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
2
3
|
import ErrorBar from './ErrorBar.js';
|
|
3
|
-
|
|
4
|
+
const ErrorOverlay = observer(function ErrorOverlay({ error, onRetry, width, height, extraAction, }) {
|
|
4
5
|
return (_jsx("div", { style: { position: 'relative', width, height }, children: _jsx(ErrorBar, { error: error, onRetry: onRetry, extraAction: extraAction }) }));
|
|
5
|
-
}
|
|
6
|
+
});
|
|
7
|
+
export default ErrorOverlay;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import type { BaseExportSvgOptions } from './BaseExportSvgDialog.tsx';
|
|
2
|
-
|
|
2
|
+
declare const ExportSvgDialog: ({ model, handleClose, }: {
|
|
3
3
|
model: {
|
|
4
4
|
exportSvg(opts: BaseExportSvgOptions): Promise<unknown>;
|
|
5
5
|
};
|
|
6
6
|
handleClose: () => void;
|
|
7
|
-
})
|
|
7
|
+
}) => import("react").JSX.Element;
|
|
8
|
+
export default ExportSvgDialog;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
2
3
|
import BaseExportSvgDialog from './BaseExportSvgDialog.js';
|
|
3
4
|
// The export dialog for a view whose `exportSvg` takes nothing beyond the
|
|
4
5
|
// shared options: the dotplot and circular views both lazy-import this. A view
|
|
5
6
|
// with extra controls wraps `BaseExportSvgDialog` itself and threads them
|
|
6
7
|
// through `exportSvg` (the LGV family's track labels and gridlines).
|
|
7
|
-
|
|
8
|
+
const ExportSvgDialog = observer(function ExportSvgDialog({ model, handleClose, }) {
|
|
8
9
|
return (_jsx(BaseExportSvgDialog, { model: model, handleClose: handleClose, exportSvg: opts => model.exportSvg(opts) }));
|
|
9
|
-
}
|
|
10
|
+
});
|
|
11
|
+
export default ExportSvgDialog;
|
package/esm/ui/ExternalLink.d.ts
CHANGED
package/esm/ui/ExternalLink.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import OpenInNewIcon from '@mui/icons-material/OpenInNew';
|
|
3
3
|
import { Link } from '@mui/material';
|
|
4
|
-
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
5
|
+
const ExternalLink = observer(function ExternalLink(props) {
|
|
5
6
|
const { children, ...rest } = props;
|
|
6
7
|
return (_jsxs(Link, { ...rest, target: "_blank", rel: "noopener noreferrer", children: [children, " ", _jsx(OpenInNewIcon, { fontSize: "small" })] }));
|
|
7
|
-
}
|
|
8
|
+
});
|
|
9
|
+
export default ExternalLink;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
|
|
1
|
+
declare const FactoryResetDialog: ({ onClose, open, onFactoryReset, }: {
|
|
2
2
|
onClose: () => void;
|
|
3
3
|
open: boolean;
|
|
4
4
|
onFactoryReset: () => void;
|
|
5
|
-
})
|
|
5
|
+
}) => import("react").JSX.Element;
|
|
6
|
+
export default FactoryResetDialog;
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
2
|
import { DialogContentText } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
3
4
|
import ConfirmDialog from './ConfirmDialog.js';
|
|
4
|
-
|
|
5
|
+
const FactoryResetDialog = observer(function FactoryResetDialog({ onClose, open, onFactoryReset, }) {
|
|
5
6
|
return (_jsx(ConfirmDialog, { open: open, title: "Reset", submitText: "Reset", onCancel: onClose, onSubmit: () => {
|
|
6
7
|
onFactoryReset();
|
|
7
8
|
onClose();
|
|
8
9
|
}, children: _jsx(DialogContentText, { children: "Are you sure you want to reset? This will restore the default configuration." }) }));
|
|
9
|
-
}
|
|
10
|
+
});
|
|
11
|
+
export default FactoryResetDialog;
|