@jbrowse/core 5.0.0-beta.11 → 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 +450 -132
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +3 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +4 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +6 -2
- package/esm/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +18 -3
- 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 +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +15 -24
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeaturePanel.js +1 -1
- 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/FeatureSequenceDialog.d.ts +3 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/dialogs/FeatureSequenceDialog.js +2 -2
- 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 +4 -2
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/featureTypeUtil.js +29 -20
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.d.ts +13 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/model.js +28 -1
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/CDNASequence.js +3 -3
- package/esm/BaseFeatureWidget/SequenceFeatureDetails/seqtypes/SequenceDisplay.js +2 -2
- package/esm/BaseFeatureWidget/stateModelFactory.d.ts +9 -0
- package/esm/BaseFeatureWidget/stateModelFactory.js +11 -0
- package/esm/BaseFeatureWidget/types.d.ts +2 -0
- package/esm/PluginManager.d.ts +7 -3
- package/esm/PluginManager.js +12 -3
- package/esm/ReExports/coreModules.generated.js +538 -518
- package/esm/ReExports/coreWorkerModules.generated.js +456 -438
- package/esm/ReExports/lazify.js +3 -2
- package/esm/ReExports/list.js +22 -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/TextSearch/TextSearchManager.d.ts +3 -3
- package/esm/TextSearch/TextSearchManager.js +6 -13
- 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 +51 -100
- package/esm/configuration/configurationSchema.js +59 -225
- package/esm/configuration/configurationSchemaUnion.d.ts +2 -1
- package/esm/configuration/configurationSchemaUnion.js +2 -1
- package/esm/configuration/configurationSlot.d.ts +18 -64
- package/esm/configuration/configurationSlot.js +32 -98
- 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 +7 -5
- package/esm/configuration/getConf.d.ts +7 -36
- package/esm/configuration/getConf.js +20 -41
- package/esm/configuration/index.d.ts +4 -3
- package/esm/configuration/index.js +3 -2
- package/esm/configuration/partitionAdvanced.d.ts +12 -0
- package/esm/configuration/partitionAdvanced.js +42 -0
- package/esm/configuration/plot.d.ts +6 -0
- package/esm/configuration/plot.js +56 -9
- package/esm/configuration/readConfObject.d.ts +15 -17
- package/esm/configuration/readConfObject.js +19 -50
- package/esm/configuration/schemaRegistry.d.ts +0 -2
- package/esm/configuration/schemaTypes.js +5 -1
- package/esm/configuration/slotFacade.js +2 -2
- package/esm/configuration/snapshotPreprocess.d.ts +42 -18
- package/esm/configuration/snapshotPreprocess.js +95 -37
- package/esm/configuration/tabixShorthand.js +1 -3
- package/esm/configuration/types.d.ts +60 -159
- 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/DisplayType.d.ts +7 -0
- package/esm/pluggableElementTypes/DisplayType.js +7 -0
- package/esm/pluggableElementTypes/RpcMethodType.d.ts +7 -0
- package/esm/pluggableElementTypes/RpcMethodType.js +9 -0
- package/esm/pluggableElementTypes/addMenuItems.d.ts +2 -1
- package/esm/pluggableElementTypes/addMenuItems.js +2 -1
- 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 -5
- package/esm/pluggableElementTypes/models/BaseDisplayModel.js +57 -9
- package/esm/pluggableElementTypes/models/BaseTrackModel.d.ts +5 -7
- package/esm/pluggableElementTypes/models/BaseTrackModel.js +9 -10
- 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 +12 -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 +2 -11
- package/esm/rpc/byteBudget.d.ts +15 -0
- package/esm/rpc/byteBudget.js +23 -0
- package/esm/rpc/configSchema.d.ts +2 -0
- package/esm/rpc/configSchema.js +3 -1
- package/esm/rpc/coreRpcMethods.d.ts +1 -2
- package/esm/rpc/coreRpcMethods.js +1 -2
- package/esm/rpc/explainTransferError.js +3 -3
- package/esm/rpc/methods/CoreGetEncodedLayers.d.ts +2 -2
- package/esm/rpc/methods/CoreGetEncodedLayers.js +7 -5
- package/esm/rpc/methods/CoreLoadTrackCode.d.ts +17 -0
- package/esm/rpc/methods/CoreLoadTrackCode.js +24 -0
- 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/AppLogo.js +43 -3
- 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/buildExtraTrackMenuItems.d.ts +2 -2
- package/esm/ui/colorScale.d.ts +5 -1
- package/esm/ui/colorScale.js +12 -10
- package/esm/ui/colors.d.ts +42 -31
- package/esm/ui/colors.js +85 -48
- 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/multiTrackMenuItems.d.ts +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/alignedBytes.d.ts +19 -0
- package/esm/util/alignedBytes.js +37 -0
- package/esm/util/analytics.d.ts +6 -9
- package/esm/util/analytics.js +148 -15
- package/esm/util/bezierConnector.d.ts +20 -0
- package/esm/util/bezierConnector.js +34 -96
- package/esm/util/cacheBudgets.d.ts +3 -0
- package/esm/util/cacheBudgets.js +3 -0
- package/esm/util/categoricalField.d.ts +24 -4
- package/esm/util/categoricalField.js +38 -5
- package/esm/util/cellMatches.js +14 -14
- package/esm/util/cellsStep.d.ts +3 -5
- package/esm/util/cellsStep.js +31 -29
- 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 +28 -17
- 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 +20 -2
- package/esm/util/colorScale.d.ts +123 -22
- package/esm/util/colorScale.js +157 -28
- package/esm/util/colorSchemes.d.ts +7 -3
- package/esm/util/colorSchemes.js +8 -2
- 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/isoformRank.d.ts +39 -0
- package/esm/util/isoformRank.js +118 -0
- 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 +77 -21
- 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 +23 -1
- package/esm/util/quantileExtent.js +25 -2
- 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/systemColorScheme.d.ts +4 -0
- package/esm/util/systemColorScheme.js +21 -0
- package/esm/util/tabix.d.ts +1 -1
- package/esm/util/tabix.js +1 -1
- package/esm/util/temporaryAssembly.d.ts +2 -2
- package/esm/util/temporaryAssembly.js +2 -3
- package/esm/util/thresholdScale.d.ts +1 -1
- package/esm/util/thresholdScale.js +1 -1
- package/esm/util/trackConfigDelta.d.ts +1 -1
- package/esm/util/tracks.d.ts +25 -15
- package/esm/util/tracks.js +68 -44
- package/esm/util/types/index.d.ts +15 -7
- package/esm/util/types/index.js +21 -2
- package/esm/util/usePanZoom.js +4 -10
- package/esm/util/useRowVirtualScroll.d.ts +1 -0
- package/esm/util/windowStep.d.ts +6 -0
- package/esm/util/windowStep.js +153 -0
- package/package.json +27 -16
- 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
- package/esm/rpc/methods/CoreLoadAdapterCode.d.ts +0 -13
- package/esm/rpc/methods/CoreLoadAdapterCode.js +0 -16
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { IconButtonProps } from '@mui/material';
|
|
2
|
-
|
|
2
|
+
declare const StackTraceButton: ({ error, color, }: {
|
|
3
3
|
error: unknown;
|
|
4
4
|
color?: IconButtonProps['color'];
|
|
5
|
-
})
|
|
5
|
+
}) => import("react").JSX.Element;
|
|
6
|
+
export default StackTraceButton;
|
|
@@ -2,15 +2,17 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
|
|
|
2
2
|
import { Suspense, lazy, useState } from 'react';
|
|
3
3
|
import ReportIcon from '@mui/icons-material/Report';
|
|
4
4
|
import { IconButton, Tooltip } from '@mui/material';
|
|
5
|
+
import { observer } from 'mobx-react';
|
|
5
6
|
const ErrorMessageStackTraceDialog = lazy(() => import('./ErrorMessageStackTraceDialog.js'));
|
|
6
7
|
// "Show stack trace" icon button that lazy-loads and opens the stack-trace
|
|
7
8
|
// dialog. Shared by ErrorBanner and ErrorBar so the lazy import and open/close
|
|
8
9
|
// state live in one place.
|
|
9
|
-
|
|
10
|
+
const StackTraceButton = observer(function StackTraceButton({ error, color, }) {
|
|
10
11
|
const [showStack, setShowStack] = useState(false);
|
|
11
12
|
return (_jsxs(_Fragment, { children: [_jsx(Tooltip, { title: "Show stack trace", children: _jsx(IconButton, { color: color, onClick: () => {
|
|
12
13
|
setShowStack(true);
|
|
13
14
|
}, children: _jsx(ReportIcon, {}) }) }), showStack ? (_jsx(Suspense, { fallback: null, children: _jsx(ErrorMessageStackTraceDialog, { error: error, onClose: () => {
|
|
14
15
|
setShowStack(false);
|
|
15
16
|
} }) })) : null] }));
|
|
16
|
-
}
|
|
17
|
+
});
|
|
18
|
+
export default StackTraceButton;
|
|
@@ -30,8 +30,9 @@
|
|
|
30
30
|
* two modules deep, and its own test asserts the rendered tree carries no `Mui*`
|
|
31
31
|
* class, which catches a Material component rendered directly.
|
|
32
32
|
*/
|
|
33
|
-
|
|
33
|
+
declare const StatusProgressBar: ({ fraction, className, style, }: {
|
|
34
34
|
fraction?: number;
|
|
35
35
|
className?: string;
|
|
36
36
|
style?: React.CSSProperties;
|
|
37
|
-
})
|
|
37
|
+
}) => import("react").JSX.Element;
|
|
38
|
+
export default StatusProgressBar;
|
|
@@ -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
|
import { indeterminateSweep } from './statusProgressKeyframes.js';
|
|
4
5
|
const HEIGHT = 4;
|
|
@@ -64,7 +65,7 @@ const useStyles = makeStyles()(theme => ({
|
|
|
64
65
|
* two modules deep, and its own test asserts the rendered tree carries no `Mui*`
|
|
65
66
|
* class, which catches a Material component rendered directly.
|
|
66
67
|
*/
|
|
67
|
-
|
|
68
|
+
const StatusProgressBar = observer(function StatusProgressBar({ fraction, className, style, }) {
|
|
68
69
|
const { classes } = useStyles();
|
|
69
70
|
const determinate = fraction !== undefined;
|
|
70
71
|
// one clamp for both halves. `statusFraction` clamps its own output, but a
|
|
@@ -73,4 +74,5 @@ export default function StatusProgressBar({ fraction, className, style, }) {
|
|
|
73
74
|
// a negative announce a value below the `aria-valuemin` declared beside it.
|
|
74
75
|
const filled = Math.min(1, Math.max(0, fraction ?? 0));
|
|
75
76
|
return (_jsx("div", { className: cx(classes.track, className), style: style, role: "progressbar", "aria-valuemin": determinate ? 0 : undefined, "aria-valuemax": determinate ? 100 : undefined, "aria-valuenow": determinate ? Math.round(filled * 100) : undefined, children: _jsx("div", { className: cx(classes.bar, determinate ? undefined : classes.sweep), style: determinate ? { transform: `scaleX(${filled})` } : undefined }) }));
|
|
76
|
-
}
|
|
77
|
+
});
|
|
78
|
+
export default StatusProgressBar;
|
package/esm/ui/SubmitForm.d.ts
CHANGED
|
@@ -20,4 +20,5 @@ export interface SubmitFormProps {
|
|
|
20
20
|
* outer chrome) is shared across several tab panes uses this directly, so the
|
|
21
21
|
* panes get the same keyboard behavior without each owning a Dialog.
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
declare const SubmitForm: ({ onSubmit, onCancel, cancelText, submitText, submitDisabled, submitColor, submitStartIcon, onReset, resetText, actions, contentClassName, children, }: SubmitFormProps) => import("react").JSX.Element;
|
|
24
|
+
export default SubmitForm;
|
package/esm/ui/SubmitForm.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { Button, DialogActions, DialogContent } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
3
4
|
/**
|
|
4
5
|
* Content plus a Cancel/Submit footer, wrapped in a form so Enter submits.
|
|
5
6
|
* SubmitDialog is this with a Dialog around it; a dialog whose Dialog (and
|
|
6
7
|
* outer chrome) is shared across several tab panes uses this directly, so the
|
|
7
8
|
* panes get the same keyboard behavior without each owning a Dialog.
|
|
8
9
|
*/
|
|
9
|
-
|
|
10
|
+
const SubmitForm = observer(function SubmitForm({ onSubmit, onCancel, cancelText = 'Cancel', submitText = 'Submit', submitDisabled = false, submitColor = 'primary', submitStartIcon, onReset, resetText = 'Restore default', actions, contentClassName, children, }) {
|
|
10
11
|
return (_jsxs("form", { onSubmit: event => {
|
|
11
12
|
event.preventDefault();
|
|
12
13
|
if (!submitDisabled) {
|
|
@@ -20,4 +21,5 @@ export default function SubmitForm({ onSubmit, onCancel, cancelText = 'Cancel',
|
|
|
20
21
|
onCancel();
|
|
21
22
|
}
|
|
22
23
|
}, children: onReset ? resetText : cancelText }), actions, _jsx(Button, { type: "submit", color: submitColor, variant: "contained", disabled: submitDisabled, startIcon: submitStartIcon, children: submitText })] })] }));
|
|
23
|
-
}
|
|
24
|
+
});
|
|
25
|
+
export default SubmitForm;
|
|
@@ -3,11 +3,10 @@ export type { ColorLegendEntry } from './legendSpec.ts';
|
|
|
3
3
|
export declare const LEGEND_ROW_HEIGHT = 14;
|
|
4
4
|
export declare const LEGEND_SWATCH = 10;
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
* row this draws for a ramp, plus a margin either side.
|
|
6
|
+
* Width of the paper `SvgColorLegend` draws for `entries` under `maxHeight`, 0
|
|
7
|
+
* when it draws nothing.
|
|
9
8
|
*/
|
|
10
|
-
export declare
|
|
9
|
+
export declare function svgColorLegendWidth(entries: ColorLegendEntry[], maxHeight?: number): number;
|
|
11
10
|
export default function SvgColorLegend({ entries, canvasWidth, x, maxHeight, testid, idPrefix, }: {
|
|
12
11
|
entries: ColorLegendEntry[];
|
|
13
12
|
canvasWidth: number;
|
package/esm/ui/SvgColorLegend.js
CHANGED
|
@@ -15,12 +15,6 @@ const GRADIENT_BAR_WIDTH = 100;
|
|
|
15
15
|
const GRADIENT_BAR_HEIGHT = 10;
|
|
16
16
|
// the bar plus the row of domain labels under it
|
|
17
17
|
const GRADIENT_ROW_HEIGHT = GRADIENT_BAR_HEIGHT + 4 + LEGEND_ROW_HEIGHT;
|
|
18
|
-
/**
|
|
19
|
-
* Horizontal space the LGV export reserves beside the plot for a display whose
|
|
20
|
-
* legend asked to sit off the plot (`LegendMixin.svgLegendWidth`): the widest
|
|
21
|
-
* row this draws for a ramp, plus a margin either side.
|
|
22
|
-
*/
|
|
23
|
-
export const LEGEND_SVG_GUTTER_WIDTH = GRADIENT_BAR_WIDTH + 40;
|
|
24
18
|
// A row's swatches, with the flat `color` shorthand read as the single
|
|
25
19
|
// square it has always drawn.
|
|
26
20
|
function entrySwatches(entry) {
|
|
@@ -59,23 +53,16 @@ function fitEntries(entries, maxHeight) {
|
|
|
59
53
|
}
|
|
60
54
|
return shown;
|
|
61
55
|
}
|
|
56
|
+
// eslint-disable-next-line no-restricted-syntax -- drawn inside a frozen SVG figure
|
|
62
57
|
function GradientRow({ entry, width, gradientId, }) {
|
|
63
58
|
const { stops, minLabel, maxLabel } = entry.gradient;
|
|
64
59
|
const barTop = (entry.label ? LEGEND_ROW_HEIGHT : 0) + 2;
|
|
65
60
|
const labelY = barTop + GRADIENT_BAR_HEIGHT + 2 + FONT_SIZE;
|
|
66
61
|
return (_jsxs(_Fragment, { children: [_jsx("rect", { x: 0, y: 0, width: width, height: rowHeight(entry), fill: "rgba(255,255,255,0.95)" }), entry.label ? (_jsx("text", { x: SWATCH_LEFT, y: 11, fontSize: FONT_SIZE, fill: "black", children: entry.label })) : null, _jsx("defs", { children: _jsx("linearGradient", { id: gradientId, x1: "0%", y1: "0%", x2: "100%", y2: "0%", children: stops.map(stop => (_jsx("stop", { offset: stop.offset, style: { stopColor: stop.color, stopOpacity: stop.opacity ?? 1 } }, stop.offset))) }) }), _jsx("rect", { x: SWATCH_LEFT, y: barTop, width: GRADIENT_BAR_WIDTH, height: GRADIENT_BAR_HEIGHT, fill: `url(#${gradientId})`, rx: 2 }), _jsx("text", { x: SWATCH_LEFT, y: labelY, fontSize: FONT_SIZE, fill: "black", children: minLabel }), _jsx("text", { x: SWATCH_LEFT + GRADIENT_BAR_WIDTH, y: labelY, fontSize: FONT_SIZE, fill: "black", textAnchor: "end", children: maxLabel })] }));
|
|
67
62
|
}
|
|
68
|
-
//
|
|
69
|
-
//
|
|
70
|
-
|
|
71
|
-
// an on-screen SVG overlay and the export share one renderer.
|
|
72
|
-
//
|
|
73
|
-
// `maxHeight` (the display height) caps the box: entries past what fits
|
|
74
|
-
// collapse into a trailing "+N more" summary row, so the legend never overflows
|
|
75
|
-
// its display — the full list stays reachable via the track menu.
|
|
76
|
-
export default function SvgColorLegend({ entries, canvasWidth, x, maxHeight, testid, idPrefix, }) {
|
|
77
|
-
const reactId = useId();
|
|
78
|
-
const legendId = idPrefix ?? reactId;
|
|
63
|
+
// What the key draws for `entries` under `maxHeight`, and how wide its paper
|
|
64
|
+
// is, so a caller sizing a gutter measures the box this renders.
|
|
65
|
+
function legendBox(entries, maxHeight) {
|
|
79
66
|
const shown = maxHeight === undefined ? entries : fitEntries(entries, maxHeight);
|
|
80
67
|
const cutRows = entries.slice(shown.length).filter(keysAColor).length;
|
|
81
68
|
const overflowLabel = cutRows > 0 ? `+${cutRows} more` : undefined;
|
|
@@ -95,12 +82,34 @@ export default function SvgColorLegend({ entries, canvasWidth, x, maxHeight, tes
|
|
|
95
82
|
contentRight = Math.max(contentRight, textLeft + measureLegendText(overflowLabel, FONT_SIZE));
|
|
96
83
|
}
|
|
97
84
|
const totalWidth = contentRight + 6;
|
|
98
|
-
const left = x ?? Math.max(0, canvasWidth - totalWidth - 4);
|
|
99
85
|
const rowTops = [];
|
|
100
86
|
let y = 0;
|
|
101
87
|
for (const entry of shown) {
|
|
102
88
|
rowTops.push(y);
|
|
103
89
|
y += rowHeight(entry);
|
|
104
90
|
}
|
|
91
|
+
return { shown, overflowLabel, textLeft, totalWidth, rowTops, bottom: y };
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Width of the paper `SvgColorLegend` draws for `entries` under `maxHeight`, 0
|
|
95
|
+
* when it draws nothing.
|
|
96
|
+
*/
|
|
97
|
+
export function svgColorLegendWidth(entries, maxHeight) {
|
|
98
|
+
const { shown, overflowLabel, totalWidth } = legendBox(entries, maxHeight);
|
|
99
|
+
return shown.length || overflowLabel ? totalWidth : 0;
|
|
100
|
+
}
|
|
101
|
+
// Shared SVG color key: one translucent row per entry — a swatch and a label,
|
|
102
|
+
// or a ramp bar with its domain ends — right-aligned within `canvasWidth`, or
|
|
103
|
+
// at `x` when the caller places it (an export's legend gutter). A <g>, so
|
|
104
|
+
// an on-screen SVG overlay and the export share one renderer.
|
|
105
|
+
//
|
|
106
|
+
// `maxHeight` (the display height) caps the box: entries past what fits
|
|
107
|
+
// collapse into a trailing "+N more" summary row, so the legend never overflows
|
|
108
|
+
// its display — the full list stays reachable via the track menu.
|
|
109
|
+
export default function SvgColorLegend({ entries, canvasWidth, x, maxHeight, testid, idPrefix, }) {
|
|
110
|
+
const reactId = useId();
|
|
111
|
+
const legendId = idPrefix ?? reactId;
|
|
112
|
+
const { shown, overflowLabel, textLeft, totalWidth, rowTops, bottom: y, } = legendBox(entries, maxHeight);
|
|
113
|
+
const left = x ?? Math.max(0, canvasWidth - totalWidth - 4);
|
|
105
114
|
return shown.length || overflowLabel ? (_jsxs("g", { transform: `translate(${left} 0)`, "data-testid": testid, children: [shown.map((entry, idx) => (_jsx("g", { transform: `translate(0 ${rowTops[idx]})`, children: entry.gradient ? (_jsx(GradientRow, { entry: entry, width: totalWidth, gradientId: svgSafeId(`${legendId}-${entry.key}`) })) : (_jsxs(_Fragment, { children: [_jsx("rect", { x: 0, y: 0, width: totalWidth, height: LEGEND_ROW_HEIGHT, fill: "rgba(255,255,255,0.95)" }), _jsxs("g", { opacity: entry.hidden ? 0.35 : 1, children: [entrySwatches(entry).map((swatch, i) => (_jsx(LegendSwatchGlyph, { swatch: swatch, size: LEGEND_SWATCH, x: SWATCH_LEFT + i * (LEGEND_SWATCH + SWATCH_GAP), y: 2 }, `${swatch.shape}-${swatch.color}`))), _jsx("text", { x: textLeft, y: 11, fontSize: FONT_SIZE, fill: "black", textDecoration: entry.hidden ? 'line-through' : undefined, children: entry.label })] })] })) }, entry.key))), overflowLabel === undefined ? null : (_jsxs("g", { transform: `translate(0 ${y})`, children: [_jsx("rect", { x: 0, y: 0, width: totalWidth, height: LEGEND_ROW_HEIGHT, fill: "rgba(255,255,255,0.95)" }), _jsx("text", { x: textLeft, y: 11, fontSize: FONT_SIZE, fill: "#555", children: overflowLabel })] }))] })) : null;
|
|
106
115
|
}
|
package/esm/ui/TagTextField.d.ts
CHANGED
|
@@ -36,5 +36,5 @@ type Props = Omit<TextFieldProps, 'value' | 'onChange' | 'error' | 'helperText'
|
|
|
36
36
|
* error once two invalid characters are entered. Optional `quickPicks` render a
|
|
37
37
|
* chip row of common tags that fill the field on click.
|
|
38
38
|
*/
|
|
39
|
-
|
|
40
|
-
export
|
|
39
|
+
declare const TagTextField: (props: Props) => import("react").JSX.Element;
|
|
40
|
+
export default TagTextField;
|
package/esm/ui/TagTextField.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 { Chip, Stack, TextField } from '@mui/material';
|
|
4
|
+
import { observer } from 'mobx-react';
|
|
4
5
|
import { isValidTag } from '../util/tags.js';
|
|
5
6
|
/**
|
|
6
7
|
* Uncontrolled-style TextField for a two-character SAM tag (e.g. HP, RG, XS).
|
|
@@ -9,7 +10,7 @@ import { isValidTag } from '../util/tags.js';
|
|
|
9
10
|
* error once two invalid characters are entered. Optional `quickPicks` render a
|
|
10
11
|
* chip row of common tags that fill the field on click.
|
|
11
12
|
*/
|
|
12
|
-
|
|
13
|
+
const TagTextField = observer(function TagTextField(props) {
|
|
13
14
|
const { defaultValue = '', onValueChange, helperText, inputTestId, quickPicks, ...rest } = props;
|
|
14
15
|
const [text, setText] = useState(defaultValue);
|
|
15
16
|
const showError = text.length === 2 && !isValidTag(text);
|
|
@@ -29,4 +30,5 @@ export default function TagTextField(props) {
|
|
|
29
30
|
}, onChange: event => {
|
|
30
31
|
setValue(event.target.value);
|
|
31
32
|
} })] }));
|
|
32
|
-
}
|
|
33
|
+
});
|
|
34
|
+
export default TagTextField;
|
|
@@ -18,8 +18,9 @@
|
|
|
18
18
|
* {@link LoadingProgress} directly — bare, it renders an unconstrained
|
|
19
19
|
* full-width bar under an unaligned label.
|
|
20
20
|
*/
|
|
21
|
-
|
|
21
|
+
declare const ViewLoadingScreen: ({ message, progress, source, }: {
|
|
22
22
|
message?: string;
|
|
23
23
|
progress?: number;
|
|
24
24
|
source?: string;
|
|
25
|
-
})
|
|
25
|
+
}) => import("react").JSX.Element;
|
|
26
|
+
export default ViewLoadingScreen;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { 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 { useSlowLoad, useStalled } from '../util/hooks.js';
|
|
4
5
|
import { makeStyles } from '../util/tss-react/index.js';
|
|
5
6
|
import LoadingProgress from './LoadingProgress.js';
|
|
@@ -44,9 +45,10 @@ const useStyles = makeStyles()(theme => ({
|
|
|
44
45
|
* {@link LoadingProgress} directly — bare, it renders an unconstrained
|
|
45
46
|
* full-width bar under an unaligned label.
|
|
46
47
|
*/
|
|
47
|
-
|
|
48
|
+
const ViewLoadingScreen = observer(function ViewLoadingScreen({ message, progress, source, }) {
|
|
48
49
|
const { classes } = useStyles();
|
|
49
50
|
const slow = useSlowLoad();
|
|
50
51
|
const stalled = useStalled(`${message}|${progress}|${source}`);
|
|
51
52
|
return (_jsxs("div", { className: classes.root, children: [_jsx(LoadingProgress, { variant: "h6", message: slow ? message : undefined, fraction: slow ? progress : undefined, barClassName: classes.bar }), stalled && source ? (_jsxs(Typography, { variant: "body2", className: classes.stalled, children: ["still waiting on ", source] })) : null] }));
|
|
52
|
-
}
|
|
53
|
+
});
|
|
54
|
+
export default ViewLoadingScreen;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type PluginManager from '../PluginManager.ts';
|
|
2
|
-
import type {
|
|
2
|
+
import type { AnyTrackConfig } from '../configuration/index.ts';
|
|
3
3
|
import type { AbstractSessionModel, TrackActionView } from '../util/types/index.ts';
|
|
4
4
|
import type { MenuItem } from './MenuTypes.ts';
|
|
5
5
|
export interface ExtraTrackMenuItemsProps {
|
|
6
6
|
session: AbstractSessionModel;
|
|
7
|
-
config:
|
|
7
|
+
config: AnyTrackConfig;
|
|
8
8
|
view?: TrackActionView;
|
|
9
9
|
}
|
|
10
10
|
/** Return the items to add, or nothing when the track isn't yours. */
|
package/esm/ui/colorScale.d.ts
CHANGED
|
@@ -56,7 +56,7 @@ export interface RampScale {
|
|
|
56
56
|
format?: (value: number) => string;
|
|
57
57
|
/**
|
|
58
58
|
* The loaded values' extremes. An end of `domain` the data runs past prints
|
|
59
|
-
* `≤` or `≥`, since the ramp paints every value beyond it in its end
|
|
59
|
+
* `≤` or `≥`, since the ramp paints every value beyond it in its end color.
|
|
60
60
|
*/
|
|
61
61
|
extent?: readonly [number, number];
|
|
62
62
|
}
|
|
@@ -66,6 +66,10 @@ export interface RampScale {
|
|
|
66
66
|
* the key cannot list a color nothing painted.
|
|
67
67
|
*/
|
|
68
68
|
export type ColorScale = CategoricalScale | RampScale;
|
|
69
|
+
export declare function rampLabels({ domain, format, extent, }: RampScale): {
|
|
70
|
+
minLabel: string;
|
|
71
|
+
maxLabel: string;
|
|
72
|
+
};
|
|
69
73
|
/**
|
|
70
74
|
* The one derivation of a legend from a display's color scales: a section per
|
|
71
75
|
* scale, in the order declared. On screen `FloatingLegend` renders the result
|
package/esm/ui/colorScale.js
CHANGED
|
@@ -1,9 +1,6 @@
|
|
|
1
1
|
import { groupKeyComparator } from '../util/groupKeys.js';
|
|
2
2
|
import { formatScore } from '../util/numericUtils.js';
|
|
3
|
-
|
|
4
|
-
// draw a section's title only beside other sections, and a bar of numbers
|
|
5
|
-
// with nothing saying what they count is not a key.
|
|
6
|
-
function rampItem({ title, domain, stops, format = formatScore, extent }, lone) {
|
|
3
|
+
export function rampLabels({ domain, format = formatScore, extent, }) {
|
|
7
4
|
const [min, max] = domain;
|
|
8
5
|
const [lo, hi] = extent ?? domain;
|
|
9
6
|
// compared at float32 as well, since a value lane carries the extent in one
|
|
@@ -11,12 +8,17 @@ function rampItem({ title, domain, stops, format = formatScore, extent }, lone)
|
|
|
11
8
|
const below = lo < min && Math.fround(lo) < Math.fround(min);
|
|
12
9
|
const above = hi > max && Math.fround(hi) > Math.fround(max);
|
|
13
10
|
return {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
minLabel: `${below ? '≤' : ''}${format(min)}`,
|
|
12
|
+
maxLabel: `${above ? '≥' : ''}${format(max)}`,
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
// A lone ramp names itself on its row: `FloatingLegend` and `legendEntries`
|
|
16
|
+
// draw a section's title only beside other sections, and a bar of numbers
|
|
17
|
+
// with nothing saying what they count is not a key.
|
|
18
|
+
function rampItem(scale, lone) {
|
|
19
|
+
return {
|
|
20
|
+
label: lone ? (scale.title ?? '') : '',
|
|
21
|
+
gradient: { stops: scale.stops, ...rampLabels(scale) },
|
|
20
22
|
};
|
|
21
23
|
}
|
|
22
24
|
function sectionOf(scale, lone) {
|
package/esm/ui/colors.d.ts
CHANGED
|
@@ -15,11 +15,9 @@ export declare const paletteColors: {
|
|
|
15
15
|
* The wide qualitative palette: every scheme above, in order, deduped and with
|
|
16
16
|
* the neutrals dropped. ~40 entries.
|
|
17
17
|
*
|
|
18
|
-
*
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
* would mean a track's automatic colors and the colors it takes when a user
|
|
22
|
-
* palettes it by hand were different palettes for no reason a reader could see.
|
|
18
|
+
* A feature's categorical color deals from it; a row's deals from
|
|
19
|
+
* `rowPaletteColorAt`, which re-lights tableau10 rather than reaching for
|
|
20
|
+
* another scheme's hues.
|
|
23
21
|
*
|
|
24
22
|
* `tableau10` leads because its hues are the most evenly separated, so a track
|
|
25
23
|
* with a handful of rows spends only that. The tail is what makes the 26
|
|
@@ -31,21 +29,16 @@ export declare const paletteColors: {
|
|
|
31
29
|
* re-palettes), while a by-position painter has no value to hash and wraps.
|
|
32
30
|
*
|
|
33
31
|
* **It holds 14 pairs `similarColors` calls the same** — five schemes' blues,
|
|
34
|
-
* oranges, greens, reds and pinks
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* colors and 38 on 26; the loss is the birthday collision on 40 slots, not the
|
|
38
|
-
* near-twins, and only 3 of the pairs they land on read alike. Pruning to the
|
|
39
|
-
* 30 distinct entries makes that 23 and 24, so it costs ten colors and buys
|
|
40
|
-
* nothing.
|
|
32
|
+
* oranges, greens, reds and pinks. A dealt scale (`categoricalScale`'s `held`)
|
|
33
|
+
* steps over a twin of a color already dealt, so they cost a track only once
|
|
34
|
+
* it has more values than the 30 distinct entries.
|
|
41
35
|
*
|
|
42
|
-
* The near-twins bite
|
|
43
|
-
*
|
|
44
|
-
*
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
*
|
|
48
|
-
* with a figure refresh in it.
|
|
36
|
+
* The near-twins bite a `domain` instead, which spends the list in order: 30
|
|
37
|
+
* listed values take 30 colors and 7 of those pairs read alike. Ordering the
|
|
38
|
+
* distinct 30 first and the twins behind them fixes that outright (0 pairs at
|
|
39
|
+
* 30 listed values, 11 at 38 where the twins are reached anyway) and costs no
|
|
40
|
+
* colors — but it moves every hashed color in marks, GWAS, canvas, multi-row
|
|
41
|
+
* and the arrangement dialog, so it is a pass with a figure refresh in it.
|
|
49
42
|
*/
|
|
50
43
|
export declare const categoricalPalette: string[];
|
|
51
44
|
/**
|
|
@@ -60,18 +53,30 @@ export declare const categoricalPalette: string[];
|
|
|
60
53
|
export declare function categoricalValueColor(value: string): string;
|
|
61
54
|
export declare function categoricalValueColor<T>(value: string, palette: readonly T[]): T;
|
|
62
55
|
/**
|
|
63
|
-
* The categorical
|
|
64
|
-
*
|
|
65
|
-
*
|
|
66
|
-
* entries `range` lacks past its end, and any other value takes a slot of the
|
|
67
|
-
* whole list derived from itself that no listed value holds, nor one
|
|
68
|
-
* `isNear` calls the same. A value's entry depends only on the value and the
|
|
69
|
-
* declaration, so every region agrees on it, and adding a listed value moves
|
|
70
|
-
* only the unlisted values on the slots it takes.
|
|
56
|
+
* The slots a categorical scale has dealt the values it met that its `domain`
|
|
57
|
+
* does not list, each recorded on first sight and never dealt again. The
|
|
58
|
+
* caller owns it and hands the same one to every scale that should agree.
|
|
71
59
|
*/
|
|
72
|
-
export
|
|
60
|
+
export type HeldSlots = Map<string, number>;
|
|
61
|
+
/**
|
|
62
|
+
* The categorical rule every scaled channel resolves through. The values
|
|
63
|
+
* `domain` lists take `range` in order, continuing into the `fallback`
|
|
64
|
+
* entries `range` lacks past its end. Any other value takes the slot derived
|
|
65
|
+
* from itself (`categoricalValueColor`'s, with no `domain`) unless a listed
|
|
66
|
+
* value holds it or one `isNear` calls the same, and then another slot derived
|
|
67
|
+
* from itself.
|
|
68
|
+
*
|
|
69
|
+
* With `held`, a value is dealt once, on first sight: its slot avoids every
|
|
70
|
+
* slot `held` already records and their near twins as well, so values met
|
|
71
|
+
* together never share an entry while the list has room, and the slot is
|
|
72
|
+
* recorded so the value keeps it as others arrive. A value nothing else
|
|
73
|
+
* collides with keeps the entry it takes without `held`. With no `domain`, the
|
|
74
|
+
* deal spends `range` before spilling into the `fallback` entries it lacks.
|
|
75
|
+
*/
|
|
76
|
+
export declare function categoricalScale<T>(domain: readonly (string | number)[] | undefined, range: readonly T[], { fallback, isNear, held, }?: {
|
|
73
77
|
fallback?: readonly T[];
|
|
74
78
|
isNear?: (a: T, b: T) => boolean;
|
|
79
|
+
held?: HeldSlots;
|
|
75
80
|
}): (value: string) => T;
|
|
76
81
|
/**
|
|
77
82
|
* Whether two CSS colors read as one: under 0.05 apart in OKLab, where the
|
|
@@ -81,9 +86,10 @@ export declare function similarColors(a: string, b: string): boolean;
|
|
|
81
86
|
/**
|
|
82
87
|
* `categoricalScale` for a color channel: `palette` (the wide palette when
|
|
83
88
|
* empty) spent in `domain` order and continued into the wide palette, and an
|
|
84
|
-
* unlisted value never on a listed value's color or one that reads the same
|
|
89
|
+
* unlisted value never on a listed value's color or one that reads the same,
|
|
90
|
+
* nor, with `held`, on the color of a value met before it.
|
|
85
91
|
*/
|
|
86
|
-
export declare function categoricalColorScale(domain: readonly (string | number)[] | undefined, palette?: readonly string[]): (value: string) => string;
|
|
92
|
+
export declare function categoricalColorScale(domain: readonly (string | number)[] | undefined, palette?: readonly string[], held?: HeldSlots): (value: string) => string;
|
|
87
93
|
/**
|
|
88
94
|
* The color one value of a categorical color channel paints, by
|
|
89
95
|
* `categoricalColorScale`. A value-less feature is neutral grey, and an array
|
|
@@ -104,6 +110,11 @@ export declare function hashString(str: string): number;
|
|
|
104
110
|
export declare function getQueryColor(queryName: string): string;
|
|
105
111
|
/** The palette color for a chromosome at `position` in its assembly. */
|
|
106
112
|
export declare function refNamePaletteColorAt(position: number): string;
|
|
113
|
+
/**
|
|
114
|
+
* The color the row palette deals the row or value at `position`: tableau10
|
|
115
|
+
* less its grey, then re-lit laps of it, as a karyotype's are.
|
|
116
|
+
*/
|
|
117
|
+
export declare function rowPaletteColorAt(position: number): string;
|
|
107
118
|
/**
|
|
108
119
|
* The color a refName paints, BY POSITION IN THE ASSEMBLY where the caller
|
|
109
120
|
* knows its chromosome order.
|
|
@@ -121,7 +132,7 @@ export declare function refNamePaletteColorAt(position: number): string;
|
|
|
121
132
|
export declare function refNameColor(name: string, position: number | undefined): string;
|
|
122
133
|
/**
|
|
123
134
|
* A palette named in `namedPalettes`, or a comma-separated list of CSS
|
|
124
|
-
*
|
|
135
|
+
* colors; undefined, with a warning, for anything else.
|
|
125
136
|
*/
|
|
126
137
|
export declare function paletteFromSpec(spec: unknown): readonly string[] | undefined;
|
|
127
138
|
export { category10, set1 };
|