@jbrowse/core 2.4.2 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (164) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +16 -0
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +46 -0
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +15 -0
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +69 -0
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicField.d.ts +17 -0
  6. package/BaseFeatureWidget/BaseFeatureDetail/BasicField.js +23 -0
  7. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +12 -0
  8. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +26 -0
  9. package/BaseFeatureWidget/BaseFeatureDetail/DataGrid.d.ts +14 -0
  10. package/BaseFeatureWidget/BaseFeatureDetail/DataGrid.js +98 -0
  11. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +16 -0
  12. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +32 -0
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +17 -0
  14. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +31 -0
  15. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.d.ts +6 -0
  16. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.js +13 -0
  17. package/BaseFeatureWidget/{BaseFeatureDetail.d.ts → BaseFeatureDetail/index.d.ts} +4 -4
  18. package/BaseFeatureWidget/{BaseFeatureDetail.js → BaseFeatureDetail/index.js} +12 -9
  19. package/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +4 -0
  20. package/BaseFeatureWidget/BaseFeatureDetail/util.js +23 -0
  21. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +12 -0
  22. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.js +25 -0
  23. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.d.ts +5 -0
  24. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.js +12 -0
  25. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.d.ts +5 -0
  26. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.js +14 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +8 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.js +18 -0
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +2 -0
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +146 -0
  31. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.d.ts → SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts} +0 -1
  32. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.js → SequenceFeatureDetails/SequenceFeatureSettingsDialog.js} +1 -1
  33. package/BaseFeatureWidget/{SequenceHelpDialog.d.ts → SequenceFeatureDetails/SequenceHelpDialog.d.ts} +0 -1
  34. package/BaseFeatureWidget/{SequenceHelpDialog.js → SequenceFeatureDetails/SequenceHelpDialog.js} +6 -9
  35. package/BaseFeatureWidget/{SequencePanel.d.ts → SequenceFeatureDetails/SequencePanel.d.ts} +1 -1
  36. package/BaseFeatureWidget/{SequencePanel.js → SequenceFeatureDetails/SequencePanel.js} +10 -8
  37. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.d.ts +10 -0
  38. package/BaseFeatureWidget/SequenceFeatureDetails/hooks.js +73 -0
  39. package/BaseFeatureWidget/SequenceFeatureDetails/index.d.ts +2 -0
  40. package/BaseFeatureWidget/SequenceFeatureDetails/index.js +68 -0
  41. package/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +6 -0
  42. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +11 -0
  43. package/BaseFeatureWidget/index.d.ts +4 -1
  44. package/BaseFeatureWidget/index.js +29 -17
  45. package/BaseFeatureWidget/types.d.ts +2 -2
  46. package/Plugin.d.ts +1 -1
  47. package/PluginLoader.js +17 -0
  48. package/PluginManager.d.ts +5 -2
  49. package/PluginManager.js +3 -0
  50. package/ReExports/list.js +1 -0
  51. package/ReExports/modules.d.ts +5 -2
  52. package/ReExports/modules.js +7 -4
  53. package/TextSearch/TextSearchManager.d.ts +2 -9
  54. package/assemblyManager/assembly.d.ts +91 -8
  55. package/assemblyManager/assembly.js +92 -8
  56. package/assemblyManager/assemblyConfigSchema.d.ts +50 -1
  57. package/assemblyManager/assemblyManager.d.ts +115 -58
  58. package/assemblyManager/assemblyManager.js +60 -12
  59. package/configuration/configurationSchema.d.ts +14 -16
  60. package/configuration/configurationSchema.js +4 -2
  61. package/configuration/index.d.ts +1 -1
  62. package/configuration/types.d.ts +13 -0
  63. package/configuration/types.js +2 -0
  64. package/configuration/util.d.ts +5 -3
  65. package/configuration/util.js +18 -18
  66. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +23 -0
  67. package/data_adapters/BaseAdapter/BaseAdapter.js +37 -0
  68. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +128 -0
  69. package/data_adapters/{BaseAdapter.js → BaseAdapter/BaseFeatureDataAdapter.js} +58 -88
  70. package/data_adapters/BaseAdapter/BaseOptions.d.ts +16 -0
  71. package/data_adapters/BaseAdapter/BaseOptions.js +2 -0
  72. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +9 -0
  73. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +2 -0
  74. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -0
  75. package/data_adapters/BaseAdapter/BaseSequenceAdapter.js +10 -0
  76. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +6 -0
  77. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +2 -0
  78. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +6 -0
  79. package/data_adapters/BaseAdapter/RegionsAdapter.js +2 -0
  80. package/data_adapters/BaseAdapter/index.d.ts +15 -0
  81. package/data_adapters/BaseAdapter/index.js +25 -0
  82. package/data_adapters/BaseAdapter/types.d.ts +21 -0
  83. package/data_adapters/BaseAdapter/types.js +2 -0
  84. package/data_adapters/BaseAdapter/util.d.ts +12 -0
  85. package/data_adapters/BaseAdapter/util.js +23 -0
  86. package/data_adapters/CytobandAdapter/configSchema.d.ts +11 -1
  87. package/package.json +4 -4
  88. package/pluggableElementTypes/AdapterType.d.ts +1 -1
  89. package/pluggableElementTypes/ConnectionType.d.ts +1 -1
  90. package/pluggableElementTypes/DisplayType.d.ts +1 -1
  91. package/pluggableElementTypes/InternetAccountType.d.ts +1 -1
  92. package/pluggableElementTypes/TextSearchAdapterType.d.ts +1 -1
  93. package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
  94. package/pluggableElementTypes/models/BaseTrackModel.js +3 -2
  95. package/pluggableElementTypes/models/InternetAccountModel.d.ts +30 -0
  96. package/pluggableElementTypes/models/InternetAccountModel.js +6 -1
  97. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +18 -1
  98. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +42 -1
  99. package/pluggableElementTypes/models/baseTrackConfig.d.ts +118 -1
  100. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +0 -1
  101. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +1 -1
  102. package/pluggableElementTypes/renderers/RendererType.d.ts +1 -1
  103. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +0 -1
  104. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
  105. package/rpc/RpcManager.d.ts +8 -1
  106. package/rpc/RpcManager.js +1 -1
  107. package/rpc/baseRpcConfig.d.ts +10 -1
  108. package/rpc/configSchema.d.ts +14 -1
  109. package/rpc/coreRpcMethods.d.ts +1 -1
  110. package/rpc/coreRpcMethods.js +3 -3
  111. package/rpc/mainThreadRpcConfig.d.ts +7 -1
  112. package/rpc/methods/{CoreEstimateRegionStats.d.ts → CoreGetFeatureDensityStats.d.ts} +2 -2
  113. package/rpc/methods/{CoreEstimateRegionStats.js → CoreGetFeatureDensityStats.js} +4 -4
  114. package/rpc/methods/CoreGetFeatureDetails.js +5 -5
  115. package/rpc/webWorkerRpcConfig.d.ts +7 -1
  116. package/tsconfig.build.tsbuildinfo +1 -1
  117. package/ui/AboutDialog.d.ts +0 -1
  118. package/ui/AppLogo.d.ts +0 -1
  119. package/ui/AssemblySelector.d.ts +0 -1
  120. package/ui/CascadingMenu.d.ts +0 -1
  121. package/ui/ColorPicker.d.ts +0 -1
  122. package/ui/Dialog.d.ts +0 -1
  123. package/ui/Dialog.js +14 -1
  124. package/ui/DrawerWidget.d.ts +1 -2
  125. package/ui/DrawerWidget.js +5 -3
  126. package/ui/DropDownMenu.d.ts +0 -1
  127. package/ui/ErrorMessage.d.ts +0 -1
  128. package/ui/FactoryResetDialog.d.ts +0 -1
  129. package/ui/FatalErrorDialog.d.ts +0 -1
  130. package/ui/FileSelector/FileSelector.d.ts +0 -1
  131. package/ui/FileSelector/LocalFileChooser.d.ts +0 -1
  132. package/ui/FileSelector/UrlChooser.d.ts +0 -1
  133. package/ui/Icons.d.ts +0 -1
  134. package/ui/LoadingEllipses.d.ts +0 -1
  135. package/ui/Logo.d.ts +0 -1
  136. package/ui/PrerenderedCanvas.d.ts +0 -1
  137. package/ui/ResizeBar.js +1 -1
  138. package/ui/ResizeHandle.d.ts +0 -1
  139. package/ui/ReturnToImportFormDialog.d.ts +0 -1
  140. package/ui/SanitizedHTML.d.ts +0 -1
  141. package/ui/SanitizedHTML.js +6 -0
  142. package/ui/Snackbar.d.ts +0 -1
  143. package/ui/Tooltip.d.ts +0 -1
  144. package/ui/ViewContainerTitle.d.ts +0 -1
  145. package/ui/ViewLauncher.d.ts +0 -1
  146. package/ui/ViewMenu.d.ts +1 -2
  147. package/ui/ViewPanel.d.ts +0 -1
  148. package/ui/react-colorful.d.ts +1 -1
  149. package/ui/theme.js +3 -18
  150. package/util/index.d.ts +4 -2
  151. package/util/index.js +13 -4
  152. package/util/layouts/PrecomputedMultiLayout.d.ts +1 -1
  153. package/util/stats.d.ts +5 -5
  154. package/util/types/index.d.ts +3 -1
  155. package/util/types/mst.d.ts +12 -9
  156. package/BaseFeatureWidget/SequenceBox.d.ts +0 -29
  157. package/BaseFeatureWidget/SequenceBox.js +0 -63
  158. package/BaseFeatureWidget/SequenceFeatureDetails.d.ts +0 -3
  159. package/BaseFeatureWidget/SequenceFeatureDetails.js +0 -230
  160. package/data_adapters/BaseAdapter.d.ts +0 -138
  161. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.d.ts +0 -0
  162. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.js +0 -0
  163. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.d.ts +0 -0
  164. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.js +0 -0
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { AnyConfigurationModel } from '../configuration';
3
2
  export declare function FileInfoPanel({ config }: {
4
3
  config: AnyConfigurationModel;
package/ui/AppLogo.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { AnyConfigurationModel } from '../configuration';
3
2
  declare const Logo: ({ session, }: {
4
3
  session: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { InputProps as IIP, TextFieldProps as TFP } from '@mui/material';
3
2
  import { AbstractSessionModel } from '../util';
4
3
  declare const AssemblySelector: ({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText, }: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MenuItem as JBMenuItem } from './Menu';
3
2
  import { PopupState } from 'material-ui-popup-state/hooks';
4
3
  declare function CascadingMenuChildren(props: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare const PopoverPicker: ({ color, onChange, }: {
3
2
  color: string;
4
3
  onChange: (color: string) => void;
package/ui/Dialog.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { DialogProps } from '@mui/material';
3
2
  declare function JBrowseDialog(props: DialogProps & {
4
3
  title: string;
package/ui/Dialog.js CHANGED
@@ -27,6 +27,7 @@ function DialogError({ error }) {
27
27
  function JBrowseDialog(props) {
28
28
  const { classes } = useStyles();
29
29
  const { title, children, onClose } = props;
30
+ const theme = (0, material_1.useTheme)();
30
31
  return (react_1.default.createElement(material_1.Dialog, { ...props },
31
32
  react_1.default.createElement(material_1.ScopedCssBaseline, null,
32
33
  react_1.default.createElement(material_1.DialogTitle, null,
@@ -37,6 +38,18 @@ function JBrowseDialog(props) {
37
38
  } },
38
39
  react_1.default.createElement(Close_1.default, null))) : null),
39
40
  react_1.default.createElement(material_1.Divider, null),
40
- react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: DialogError }, children))));
41
+ react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: DialogError },
42
+ react_1.default.createElement(material_1.ThemeProvider, { theme: (0, material_1.createTheme)(theme, {
43
+ components: {
44
+ MuiInputBase: {
45
+ styleOverrides: {
46
+ input: {
47
+ // xref https://github.com/GMOD/jbrowse-components/pull/3666
48
+ boxSizing: 'content-box!important',
49
+ },
50
+ },
51
+ },
52
+ },
53
+ }) }, children)))));
41
54
  }
42
55
  exports.default = (0, mobx_react_1.observer)(JBrowseDialog);
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
1
  import { SessionWithDrawerWidgets } from '../util/types';
3
- declare const DrawerWidget: ({ session }: {
2
+ declare const DrawerWidget: ({ session, }: {
4
3
  session: SessionWithDrawerWidgets;
5
4
  }) => JSX.Element;
6
5
  export default DrawerWidget;
@@ -59,7 +59,7 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
59
59
  background: theme.palette.secondary.main,
60
60
  },
61
61
  }));
62
- const DrawerHeader = (0, mobx_react_1.observer)(({ session, setToolbarHeight, }) => {
62
+ const DrawerHeader = (0, mobx_react_1.observer)(function ({ session, setToolbarHeight, }) {
63
63
  const { pluginManager } = (0, util_1.getEnv)(session);
64
64
  const { visibleWidget, activeWidgets, drawerPosition } = session;
65
65
  const { classes } = useStyles();
@@ -109,7 +109,7 @@ const DrawerHeader = (0, mobx_react_1.observer)(({ session, setToolbarHeight, })
109
109
  setAnchorEl(null);
110
110
  } }, option))))));
111
111
  });
112
- const DrawerWidget = (0, mobx_react_1.observer)(({ session }) => {
112
+ const DrawerWidget = (0, mobx_react_1.observer)(function ({ session, }) {
113
113
  const { visibleWidget } = session;
114
114
  const { pluginManager } = (0, util_1.getEnv)(session);
115
115
  const DrawerComponent = visibleWidget
@@ -125,6 +125,8 @@ const DrawerWidget = (0, mobx_react_1.observer)(({ session }) => {
125
125
  return (react_1.default.createElement(Drawer_1.default, { session: session },
126
126
  react_1.default.createElement(DrawerHeader, { session: session, setToolbarHeight: setToolbarHeight }),
127
127
  react_1.default.createElement(react_1.Suspense, { fallback: react_1.default.createElement(LoadingEllipses_1.default, null) },
128
- react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: ({ error }) => react_1.default.createElement(ErrorMessage_1.default, { error: error }) }, DrawerComponent ? (react_1.default.createElement(DrawerComponent, { model: visibleWidget, session: session, toolbarHeight: toolbarHeight })) : null))));
128
+ react_1.default.createElement(react_error_boundary_1.ErrorBoundary, { FallbackComponent: ({ error }) => react_1.default.createElement(ErrorMessage_1.default, { error: error }) }, DrawerComponent ? (react_1.default.createElement(react_1.default.Fragment, null,
129
+ react_1.default.createElement(DrawerComponent, { model: visibleWidget, session: session, toolbarHeight: toolbarHeight }),
130
+ react_1.default.createElement("div", { style: { height: 300 } }))) : null))));
129
131
  });
130
132
  exports.default = DrawerWidget;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { MenuItem } from './Menu';
3
2
  declare function DropDownMenu({ menuTitle, session, menuItems, }: {
4
3
  menuTitle: string;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare const ErrorMessage: ({ error }: {
3
2
  error: unknown;
4
3
  }) => JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare const _default: ({ onClose, open, onFactoryReset, }: {
3
2
  onClose: Function;
4
3
  open: boolean;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare const FatalErrorDialog: ({ componentStack, error, onFactoryReset, resetButtonText, }: {
3
2
  componentStack?: string | undefined;
4
3
  error?: unknown;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { FileLocation, AbstractRootModel } from '../../util/types';
3
2
  declare const _default: (props: {
4
3
  location?: FileLocation | undefined;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { FileLocation } from '../../util/types';
3
2
  declare function LocalFileChooser(props: {
4
3
  location?: FileLocation;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { FileLocation } from '../../util/types';
3
2
  declare function UrlChooser(props: {
4
3
  location?: FileLocation;
package/ui/Icons.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { SvgIconProps } from '@mui/material/SvgIcon';
3
2
  export declare function ContentCopy(props: SvgIconProps): JSX.Element;
4
3
  export declare function Indexing(props: SvgIconProps): JSX.Element;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { TypographyProps } from '@mui/material';
3
2
  interface Props extends TypographyProps {
4
3
  message?: string;
package/ui/Logo.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  type LogoVariant = 'color' | 'black' | 'white';
3
2
  interface LogoProps {
4
3
  variant?: LogoVariant;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare function PrerenderedCanvas(props: {
3
2
  width: number;
4
3
  height: number;
package/ui/ResizeBar.js CHANGED
@@ -42,7 +42,7 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
42
42
  position: 'absolute',
43
43
  height: '100%',
44
44
  pointerEvents: 'none',
45
- background: theme.palette.divider,
45
+ background: theme.palette.action.disabled,
46
46
  width: 1,
47
47
  },
48
48
  hiddenTick: {
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare function ResizeHandle({ onDrag, vertical, flexbox, className: originalClassName, ...props }: {
3
2
  onDrag: (arg: number) => number | void;
4
3
  vertical?: boolean;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  declare function ReturnToImportFormDialog({ model, handleClose, }: {
3
2
  model: {
4
3
  clearView: Function;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  export declare function isHTML(str: string): boolean;
3
2
  export default function SanitizedHTML({ html }: {
4
3
  html: string;
@@ -53,6 +53,12 @@ function isHTML(str) {
53
53
  return full.test(str);
54
54
  }
55
55
  exports.isHTML = isHTML;
56
+ // note this is mocked during testing, see
57
+ // packages/__mocks__/@jbrowse/core/ui/SanitizedHTML something about dompurify
58
+ // behavior causes errors during tests, was seen in
59
+ // products/jbrowse-web/src/tests/Connection.test.tsx test (can delete mock to
60
+ // see)
61
+ //
56
62
  function SanitizedHTML({ html }) {
57
63
  const value = isHTML(html) ? html : (0, escape_html_1.default)(html);
58
64
  if (!added) {
package/ui/Snackbar.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IAnyStateTreeNode } from 'mobx-state-tree';
3
2
  import { AbstractSessionModel, NotificationLevel, SnackAction } from '../util';
4
3
  type SnackbarMessage = [string, NotificationLevel, SnackAction];
package/ui/Tooltip.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { Feature } from '../util';
3
2
  declare const _default: ({ offsetX, offsetY, configuration, feature, timeout, }: {
4
3
  offsetX: number;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { IBaseViewModel } from '../pluggableElementTypes';
3
2
  declare const _default: ({ view, }: {
4
3
  view: IBaseViewModel;
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { NotificationLevel, SnackAction, SessionWithDrawerWidgets } from '../util';
3
2
  import { MenuItem as JBMenuItem } from './Menu';
4
3
  type SnackbarMessage = [string, NotificationLevel, SnackAction];
package/ui/ViewMenu.d.ts CHANGED
@@ -1,9 +1,8 @@
1
- /// <reference types="react" />
2
1
  import { SvgIconProps, IconButtonProps as IconButtonPropsType } from '@mui/material';
3
2
  import { IBaseViewModel } from '../pluggableElementTypes/models';
4
3
  declare const ViewMenu: ({ model, IconButtonProps, IconProps, }: {
5
4
  model: IBaseViewModel;
6
- IconButtonProps?: IconButtonPropsType<"button", {}> | undefined;
5
+ IconButtonProps?: IconButtonPropsType | undefined;
7
6
  IconProps: SvgIconProps;
8
7
  }) => JSX.Element;
9
8
  export default ViewMenu;
package/ui/ViewPanel.d.ts CHANGED
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { AbstractViewModel, NotificationLevel, SessionWithDrawerWidgets, SnackAction } from '../util';
3
2
  import { MenuItem as JBMenuItem } from './Menu';
4
3
  type SnackbarMessage = [string, NotificationLevel, SnackAction];
@@ -13,5 +13,5 @@ declare function Ce(r: any): e.FunctionComponentElement<any>;
13
13
  declare function me(r: any): e.FunctionComponentElement<any>;
14
14
  declare function pe(r: any): e.FunctionComponentElement<any>;
15
15
  declare function X(e: any): void;
16
- import e from "react";
16
+ import e from 'react';
17
17
  export { Ne as HexColorInput, J as HexColorPicker, oe as HslColorPicker, le as HslStringColorPicker, Z as HslaColorPicker, re as HslaStringColorPicker, de as HsvColorPicker, he as HsvStringColorPicker, se as HsvaColorPicker, ue as HsvaStringColorPicker, _e as RgbColorPicker, Ce as RgbStringColorPicker, me as RgbaColorPicker, pe as RgbaStringColorPicker, X as setNonce };
package/ui/theme.js CHANGED
@@ -246,11 +246,6 @@ function createDefaultProps(theme) {
246
246
  transitionDuration: 0,
247
247
  },
248
248
  },
249
- MuiMenuList: {
250
- defaultProps: {
251
- dense: true,
252
- },
253
- },
254
249
  MuiMenuItem: {
255
250
  defaultProps: {
256
251
  dense: true,
@@ -266,8 +261,6 @@ function createDefaultProps(theme) {
266
261
  styleOverrides: {
267
262
  // the default link color uses theme.palette.primary.main which is
268
263
  // very bad with dark mode+midnight primary
269
- //
270
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
271
264
  root: ({ theme }) => ({
272
265
  color: theme.palette.text.secondary,
273
266
  }),
@@ -282,10 +275,7 @@ function createDefaultProps(theme) {
282
275
  // keeps the forest-green checkbox by default but for darkmode, uses
283
276
  // a text-like coloring to ensure contrast
284
277
  // xref https://stackoverflow.com/a/72546130/2129219
285
- //
286
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
287
- root: (props) => {
288
- const { theme } = props;
278
+ root: ({ theme }) => {
289
279
  return theme.palette.mode === 'dark'
290
280
  ? {
291
281
  color: theme.palette.text.secondary,
@@ -306,10 +296,7 @@ function createDefaultProps(theme) {
306
296
  // keeps the forest-green checkbox by default but for darkmode, uses
307
297
  // a text-like coloring to ensure contrast
308
298
  // xref https://stackoverflow.com/a/72546130/2129219
309
- //
310
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
311
- root: (props) => {
312
- const { theme } = props;
299
+ root: ({ theme }) => {
313
300
  return theme.palette.mode === 'dark'
314
301
  ? {
315
302
  color: theme.palette.text.secondary,
@@ -331,9 +318,7 @@ function createDefaultProps(theme) {
331
318
  // a text-like coloring to ensure contrast
332
319
  // xref https://stackoverflow.com/a/72546130/2129219
333
320
  //
334
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
335
- root: (props) => {
336
- const { theme } = props;
321
+ root: ({ theme }) => {
337
322
  return theme.palette.mode === 'dark'
338
323
  ? {
339
324
  color: theme.palette.text.secondary,
package/util/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  /// <reference types="react" />
2
2
  import PluginManager from '../PluginManager';
3
- import { IAnyStateTreeNode, IStateTreeNode } from 'mobx-state-tree';
3
+ import { IAnyStateTreeNode, IStateTreeNode, Instance } from 'mobx-state-tree';
4
4
  import { IReactionPublic, IReactionOptions } from 'mobx';
5
5
  import { Feature } from './simpleFeature';
6
6
  import { AssemblyManager, Region, TypeTestedByPredicate } from './types';
7
+ import { Region as MUIRegion } from './types/mst';
7
8
  import { BaseBlock } from './blockTypes';
8
9
  export * from './types';
9
10
  export * from './aborting';
@@ -165,6 +166,7 @@ export declare function iterMap<T, U>(iter: Iterable<T>, func: (arg: T) => U, si
165
166
  * Otherwise, findLastIndex returns -1.
166
167
  */
167
168
  export declare function findLastIndex<T>(array: Array<T>, predicate: (value: T, index: number, obj: T[]) => boolean): number;
169
+ export declare function findLast<T>(array: Array<T>, predicate: (value: T, index: number, obj: T[]) => boolean): T | undefined;
168
170
  /**
169
171
  * makes a mobx reaction with the given functions, that calls actions on the
170
172
  * model for each stage of execution, and to abort the reaction function when
@@ -183,7 +185,7 @@ export declare function findLastIndex<T>(array: Array<T>, predicate: (value: T,
183
185
  * @param errorFunction -
184
186
  */
185
187
  export declare function makeAbortableReaction<T, U, V>(self: T, dataFunction: (arg: T) => U, asyncReactionFunction: (arg: U | undefined, signal: AbortSignal, model: T, handle: IReactionPublic) => Promise<V>, reactionOptions: IReactionOptions, startedFunction: (aborter: AbortController) => void, successFunction: (arg: V) => void, errorFunction: (err: unknown) => void): void;
186
- export declare function renameRegionIfNeeded(refNameMap: Record<string, string>, region: Region): Region & {
188
+ export declare function renameRegionIfNeeded(refNameMap: Record<string, string>, region: Region | Instance<typeof MUIRegion>): Region & {
187
189
  originalRefName?: string;
188
190
  };
189
191
  export declare function renameRegionsIfNeeded<ARGTYPE extends {
package/util/index.js CHANGED
@@ -17,8 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
17
17
  return (mod && mod.__esModule) ? mod : { "default": mod };
18
18
  };
19
19
  Object.defineProperty(exports, "__esModule", { value: true });
20
- exports.supportedIndexingAdapters = exports.bytesForRegions = exports.objectHash = exports.hashCode = exports.updateStatus = exports.generateCodonTable = exports.defaultCodonTable = exports.defaultStops = exports.defaultStarts = exports.measureText = exports.rIC = exports.blobToDataURL = exports.complement = exports.reverse = exports.revcom = exports.isElectron = exports.stringify = exports.shorten = exports.minmax = exports.renameRegionsIfNeeded = exports.renameRegionIfNeeded = exports.makeAbortableReaction = exports.findLastIndex = exports.iterMap = exports.bpSpanPx = exports.featureSpanPx = exports.cartesianToPolar = exports.polarToCartesian = exports.degToRad = exports.radToDeg = exports.bpToPx = exports.clamp = exports.compareLocStrings = exports.compareLocs = exports.parseLocString = exports.parseLocStringOneBased = exports.assembleLocStringFast = exports.assembleLocString = exports.getContainingDisplay = exports.getContainingTrack = exports.getContainingView = exports.getSession = exports.findParentThatIs = exports.springAnimate = exports.findParentThat = exports.useDebouncedCallback = exports.useWidthSetter = exports.useDebounce = exports.inProduction = exports.inDevelopment = void 0;
21
- exports.isFeature = exports.SimpleFeature = exports.avg = exports.sum = exports.min = exports.max = exports.localStorageSetItem = exports.localStorageGetItem = exports.getEnv = exports.measureGridWidth = exports.getStr = exports.getUriLink = exports.useLocalStorage = exports.getLayoutId = exports.getViewParams = exports.getTickDisplayStr = exports.toLocale = exports.getBpDisplayStr = void 0;
20
+ exports.bytesForRegions = exports.objectHash = exports.hashCode = exports.updateStatus = exports.generateCodonTable = exports.defaultCodonTable = exports.defaultStops = exports.defaultStarts = exports.measureText = exports.rIC = exports.blobToDataURL = exports.complement = exports.reverse = exports.revcom = exports.isElectron = exports.stringify = exports.shorten = exports.minmax = exports.renameRegionsIfNeeded = exports.renameRegionIfNeeded = exports.makeAbortableReaction = exports.findLast = exports.findLastIndex = exports.iterMap = exports.bpSpanPx = exports.featureSpanPx = exports.cartesianToPolar = exports.polarToCartesian = exports.degToRad = exports.radToDeg = exports.bpToPx = exports.clamp = exports.compareLocStrings = exports.compareLocs = exports.parseLocString = exports.parseLocStringOneBased = exports.assembleLocStringFast = exports.assembleLocString = exports.getContainingDisplay = exports.getContainingTrack = exports.getContainingView = exports.getSession = exports.findParentThatIs = exports.springAnimate = exports.findParentThat = exports.useDebouncedCallback = exports.useWidthSetter = exports.useDebounce = exports.inProduction = exports.inDevelopment = void 0;
21
+ exports.isFeature = exports.SimpleFeature = exports.avg = exports.sum = exports.min = exports.max = exports.localStorageSetItem = exports.localStorageGetItem = exports.getEnv = exports.measureGridWidth = exports.getStr = exports.getUriLink = exports.useLocalStorage = exports.getLayoutId = exports.getViewParams = exports.getTickDisplayStr = exports.toLocale = exports.getBpDisplayStr = exports.supportedIndexingAdapters = void 0;
22
22
  /* eslint-disable @typescript-eslint/no-explicit-any */
23
23
  const react_1 = require("react");
24
24
  const is_object_1 = __importDefault(require("is-object"));
@@ -534,6 +534,16 @@ function findLastIndex(array, predicate) {
534
534
  return -1;
535
535
  }
536
536
  exports.findLastIndex = findLastIndex;
537
+ function findLast(array, predicate) {
538
+ let l = array.length;
539
+ while (l--) {
540
+ if (predicate(array[l], l, array)) {
541
+ return array[l];
542
+ }
543
+ }
544
+ return undefined;
545
+ }
546
+ exports.findLast = findLast;
537
547
  /**
538
548
  * makes a mobx reaction with the given functions, that calls actions on the
539
549
  * model for each stage of execution, and to abort the reaction function when
@@ -613,8 +623,7 @@ function renameRegionIfNeeded(refNameMap, region) {
613
623
  if (region && (refNameMap === null || refNameMap === void 0 ? void 0 : refNameMap[region.refName])) {
614
624
  // clone the region so we don't modify it
615
625
  region = (0, mobx_state_tree_1.isStateTreeNode)(region)
616
- ? // @ts-expect-error
617
- { ...(0, mobx_state_tree_1.getSnapshot)(region) }
626
+ ? { ...(0, mobx_state_tree_1.getSnapshot)(region) }
618
627
  : { ...region };
619
628
  // modify it directly in the container
620
629
  const newRef = refNameMap[region.refName];
@@ -1,4 +1,4 @@
1
1
  export default class PrecomputedMultiLayout extends MultiLayout<any, any> {
2
2
  constructor(json: any);
3
3
  }
4
- import MultiLayout from "./MultiLayout";
4
+ import MultiLayout from './MultiLayout';
package/util/stats.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { NoAssemblyRegion } from './types';
3
3
  import { Feature } from './simpleFeature';
4
- export interface UnrectifiedFeatureStats {
4
+ export interface UnrectifiedQuantitativeStats {
5
5
  scoreMin: number;
6
6
  scoreMax: number;
7
7
  scoreSum: number;
@@ -9,7 +9,7 @@ export interface UnrectifiedFeatureStats {
9
9
  featureCount: number;
10
10
  basesCovered: number;
11
11
  }
12
- export interface FeatureStats extends UnrectifiedFeatureStats {
12
+ export interface QuantitativeStats extends UnrectifiedQuantitativeStats {
13
13
  featureDensity: number;
14
14
  scoreMean: number;
15
15
  scoreStdDev: number;
@@ -31,7 +31,7 @@ export declare function calcStdFromSums(sum: number, sumSquares: number, n: numb
31
31
  * @returns - a summary stats object with
32
32
  * scoreMean, scoreStdDev, and featureDensity added
33
33
  */
34
- export declare function rectifyStats(s: UnrectifiedFeatureStats): FeatureStats;
34
+ export declare function rectifyStats(s: UnrectifiedQuantitativeStats): QuantitativeStats;
35
35
  /**
36
36
  * calculates per-base scores for variable width features over a region
37
37
  *
@@ -47,5 +47,5 @@ export declare function calcPerBaseStats(region: NoAssemblyRegion, features: Fea
47
47
  * @param features - array of features which are possibly summary features
48
48
  * @returns - object with scoreMax, scoreMin, scoreSum, scoreSumSquares, etc
49
49
  */
50
- export declare function scoresToStats(region: NoAssemblyRegion, feats: Observable<Feature>): Promise<FeatureStats>;
51
- export declare function blankStats(): FeatureStats;
50
+ export declare function scoresToStats(region: NoAssemblyRegion, feats: Observable<Feature>): Promise<QuantitativeStats>;
51
+ export declare function blankStats(): QuantitativeStats;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { Instance, SnapshotIn, IAnyStateTreeNode, IStateTreeNode, IType } from 'mobx-state-tree';
3
- import { AnyConfigurationModel } from '../../configuration/configurationSchema';
3
+ import { AnyConfigurationModel } from '../../configuration';
4
4
  import assemblyManager from '../../assemblyManager';
5
5
  import TextSearchManager from '../../TextSearch/TextSearchManager';
6
6
  import { MenuItem } from '../../ui';
@@ -65,6 +65,7 @@ export interface AbstractSessionModel extends AbstractViewContainer {
65
65
  name: string;
66
66
  connectionId: string;
67
67
  tracks: AnyConfigurationModel[];
68
+ configuration: AnyConfigurationModel;
68
69
  }[];
69
70
  makeConnection?: Function;
70
71
  adminMode?: boolean;
@@ -144,6 +145,7 @@ export interface AbstractViewModel {
144
145
  export declare function isViewModel(thing: unknown): thing is AbstractViewModel;
145
146
  export interface AbstractTrackModel {
146
147
  displays: AbstractDisplayModel[];
148
+ configuration: AnyConfigurationModel;
147
149
  }
148
150
  export declare function isTrackModel(thing: unknown): thing is AbstractTrackModel;
149
151
  export interface AbstractDisplayModel {
@@ -99,7 +99,17 @@ export declare const FileLocation: import("mobx-state-tree").ISnapshotProcessor<
99
99
  }> | import("mobx-state-tree").ModelSnapshotType<{
100
100
  locationType: import("mobx-state-tree").ISimpleType<"LocalPathLocation">;
101
101
  localPath: import("mobx-state-tree").ISimpleType<string>;
102
- }>, import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
102
+ }>, import("mobx-state-tree").ModelInstanceType<{
103
+ locationType: import("mobx-state-tree").ISimpleType<"BlobLocation">;
104
+ name: import("mobx-state-tree").ISimpleType<string>;
105
+ blobId: import("mobx-state-tree").ISimpleType<string>;
106
+ }, {}> | import("mobx-state-tree").ModelInstanceType<{
107
+ locationType: import("mobx-state-tree").ISimpleType<"LocalPathLocation">;
108
+ localPath: import("mobx-state-tree").ISimpleType<string>;
109
+ }, {}> | ({
110
+ locationType: "UriLocation";
111
+ uri: string;
112
+ } & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
103
113
  locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
104
114
  uri: import("mobx-state-tree").ISimpleType<string>;
105
115
  baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
@@ -108,11 +118,4 @@ export declare const FileLocation: import("mobx-state-tree").ISnapshotProcessor<
108
118
  internetAccountType: import("mobx-state-tree").ISimpleType<string>;
109
119
  authInfo: import("mobx-state-tree").IType<any, any, any>;
110
120
  }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
111
- }>> | import("mobx-state-tree").ModelInstanceType<{
112
- locationType: import("mobx-state-tree").ISimpleType<"BlobLocation">;
113
- name: import("mobx-state-tree").ISimpleType<string>;
114
- blobId: import("mobx-state-tree").ISimpleType<string>;
115
- }, {}> | import("mobx-state-tree").ModelInstanceType<{
116
- locationType: import("mobx-state-tree").ISimpleType<"LocalPathLocation">;
117
- localPath: import("mobx-state-tree").ISimpleType<string>;
118
- }, {}>>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
121
+ }>> & import("mobx-state-tree/dist/internal").NonEmptyObject)>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
@@ -1,29 +0,0 @@
1
- /// <reference types="react" />
2
- import { Feat } from './util';
3
- export declare function GeneCDS({ cds, sequence }: {
4
- cds: Feat[];
5
- sequence: string;
6
- }): JSX.Element;
7
- export declare function GeneProtein({ cds, sequence, codonTable, }: {
8
- cds: Feat[];
9
- sequence: string;
10
- codonTable: {
11
- [key: string]: string;
12
- };
13
- }): JSX.Element;
14
- export declare function GenecDNA({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, intronBp, }: {
15
- utr: Feat[];
16
- cds: Feat[];
17
- exons: Feat[];
18
- sequence: string;
19
- upstream?: string;
20
- downstream?: string;
21
- includeIntrons?: boolean;
22
- collapseIntron?: boolean;
23
- intronBp: number;
24
- }): JSX.Element;
25
- export declare function Genomic({ sequence, upstream, downstream, }: {
26
- sequence: string;
27
- upstream?: string;
28
- downstream?: string;
29
- }): JSX.Element;
@@ -1,63 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Genomic = exports.GenecDNA = exports.GeneProtein = exports.GeneCDS = void 0;
7
- const react_1 = __importDefault(require("react"));
8
- const util_1 = require("./util");
9
- // note that these are currently put into the style section instead of being
10
- // defined in classes to aid copy and paste to an external document e.g. word
11
- const proteinColor = 'rgb(220,160,220)';
12
- const intronColor = undefined;
13
- const cdsColor = 'rgb(220,220,180)';
14
- const updownstreamColor = 'rgba(250,200,200)';
15
- const utrColor = 'rgb(200,240,240)';
16
- const genomeColor = 'rgb(200,280,200)';
17
- function GeneCDS({ cds, sequence }) {
18
- return react_1.default.createElement("span", { style: { background: cdsColor } }, (0, util_1.stitch)(cds, sequence));
19
- }
20
- exports.GeneCDS = GeneCDS;
21
- function GeneProtein({ cds, sequence, codonTable, }) {
22
- const str = (0, util_1.stitch)(cds, sequence);
23
- let protein = '';
24
- for (let i = 0; i < str.length; i += 3) {
25
- // use & symbol for undefined codon, or partial slice
26
- protein += codonTable[str.slice(i, i + 3)] || '&';
27
- }
28
- return react_1.default.createElement("span", { style: { background: proteinColor } }, protein);
29
- }
30
- exports.GeneProtein = GeneProtein;
31
- function GenecDNA({ utr, cds, exons, sequence, upstream, downstream, includeIntrons, collapseIntron, intronBp, }) {
32
- const chunks = (cds.length ? [...cds, ...utr].sort((a, b) => a.start - b.start) : exons).filter(f => f.start !== f.end);
33
- return (react_1.default.createElement(react_1.default.Fragment, null,
34
- upstream ? (react_1.default.createElement("span", { style: {
35
- background: updownstreamColor,
36
- } }, upstream)) : null,
37
- chunks.map((chunk, idx) => {
38
- var _a;
39
- const intron = sequence.slice(chunk.end, (_a = chunks[idx + 1]) === null || _a === void 0 ? void 0 : _a.start);
40
- return (react_1.default.createElement(react_1.default.Fragment, { key: JSON.stringify(chunk) },
41
- react_1.default.createElement("span", { style: {
42
- background: chunk.type === 'CDS' ? cdsColor : utrColor,
43
- } }, sequence.slice(chunk.start, chunk.end)),
44
- includeIntrons && idx < chunks.length - 1 ? (react_1.default.createElement("span", { style: { background: intronColor } }, collapseIntron && intron.length > intronBp * 2
45
- ? `${intron.slice(0, intronBp)}...${intron.slice(-intronBp)}`
46
- : intron)) : null));
47
- }),
48
- downstream ? (react_1.default.createElement("span", { style: { background: updownstreamColor } }, downstream)) : null));
49
- }
50
- exports.GenecDNA = GenecDNA;
51
- function Genomic({ sequence, upstream, downstream, }) {
52
- return (react_1.default.createElement(react_1.default.Fragment, null,
53
- upstream ? (react_1.default.createElement("span", { style: {
54
- background: updownstreamColor,
55
- } }, upstream)) : null,
56
- react_1.default.createElement("span", { style: {
57
- background: genomeColor,
58
- } }, sequence),
59
- downstream ? (react_1.default.createElement("span", { style: {
60
- background: updownstreamColor,
61
- } }, downstream)) : null));
62
- }
63
- exports.Genomic = Genomic;
@@ -1,3 +0,0 @@
1
- /// <reference types="react" />
2
- import { BaseProps } from './types';
3
- export default function SequenceFeatureDetails({ model, feature }: BaseProps): JSX.Element | null;