@jbrowse/core 2.4.2 → 2.6.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 (223) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.d.ts +16 -0
  2. package/BaseFeatureWidget/BaseFeatureDetail/ArrayValue.js +45 -0
  3. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.d.ts +15 -0
  4. package/BaseFeatureWidget/BaseFeatureDetail/Attributes.js +52 -0
  5. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.d.ts +13 -0
  6. package/BaseFeatureWidget/BaseFeatureDetail/BasicValue.js +27 -0
  7. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.d.ts +15 -0
  8. package/BaseFeatureWidget/BaseFeatureDetail/DataGridDetails.js +98 -0
  9. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.d.ts +16 -0
  10. package/BaseFeatureWidget/BaseFeatureDetail/FieldName.js +32 -0
  11. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.d.ts +17 -0
  12. package/BaseFeatureWidget/BaseFeatureDetail/SimpleField.js +23 -0
  13. package/BaseFeatureWidget/BaseFeatureDetail/UriField.d.ts +18 -0
  14. package/BaseFeatureWidget/BaseFeatureDetail/UriField.js +31 -0
  15. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.d.ts +7 -0
  16. package/BaseFeatureWidget/BaseFeatureDetail/UriLink.js +13 -0
  17. package/BaseFeatureWidget/BaseFeatureDetail/index.d.ts +33 -0
  18. package/BaseFeatureWidget/BaseFeatureDetail/index.js +170 -0
  19. package/BaseFeatureWidget/BaseFeatureDetail/util.d.ts +5 -0
  20. package/BaseFeatureWidget/BaseFeatureDetail/util.js +46 -0
  21. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.d.ts +13 -0
  22. package/BaseFeatureWidget/SequenceFeatureDetails/CDNASequence.js +25 -0
  23. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.d.ts +6 -0
  24. package/BaseFeatureWidget/SequenceFeatureDetails/CDSSequence.js +12 -0
  25. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.d.ts +6 -0
  26. package/BaseFeatureWidget/SequenceFeatureDetails/GenomicSequence.js +14 -0
  27. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.d.ts +9 -0
  28. package/BaseFeatureWidget/SequenceFeatureDetails/ProteinSequence.js +18 -0
  29. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.d.ts +3 -0
  30. package/BaseFeatureWidget/SequenceFeatureDetails/SequenceFeatureDetails.js +143 -0
  31. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.d.ts → SequenceFeatureDetails/SequenceFeatureSettingsDialog.d.ts} +2 -2
  32. package/BaseFeatureWidget/{SequenceFeatureSettingsDialog.js → SequenceFeatureDetails/SequenceFeatureSettingsDialog.js} +1 -1
  33. package/BaseFeatureWidget/{SequenceHelpDialog.d.ts → SequenceFeatureDetails/SequenceHelpDialog.d.ts} +2 -2
  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 +3 -0
  40. package/BaseFeatureWidget/SequenceFeatureDetails/index.js +68 -0
  41. package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.d.ts +17 -17
  42. package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.d.ts +16 -16
  43. package/BaseFeatureWidget/SequenceFeatureDetails/util.d.ts +6 -0
  44. package/BaseFeatureWidget/SequenceFeatureDetails/util.js +11 -0
  45. package/BaseFeatureWidget/index.d.ts +4 -1
  46. package/BaseFeatureWidget/index.js +29 -17
  47. package/BaseFeatureWidget/types.d.ts +2 -2
  48. package/BaseFeatureWidget/util.js +15 -5
  49. package/Plugin.d.ts +1 -1
  50. package/PluginLoader.js +17 -0
  51. package/PluginManager.d.ts +8 -5
  52. package/PluginManager.js +3 -0
  53. package/README.md +0 -2
  54. package/ReExports/list.js +1 -0
  55. package/ReExports/modules.d.ts +8 -5
  56. package/ReExports/modules.js +7 -7
  57. package/TextSearch/TextSearchManager.d.ts +2 -9
  58. package/assemblyManager/assembly.d.ts +91 -8
  59. package/assemblyManager/assembly.js +92 -8
  60. package/assemblyManager/assemblyConfigSchema.d.ts +52 -1
  61. package/assemblyManager/assemblyConfigSchema.js +1 -0
  62. package/assemblyManager/assemblyManager.d.ts +227 -58
  63. package/assemblyManager/assemblyManager.js +72 -13
  64. package/assemblyManager/index.d.ts +1 -0
  65. package/configuration/configurationSchema.d.ts +14 -16
  66. package/configuration/configurationSchema.js +4 -2
  67. package/configuration/index.d.ts +1 -1
  68. package/configuration/types.d.ts +15 -0
  69. package/configuration/types.js +2 -0
  70. package/configuration/util.d.ts +5 -3
  71. package/configuration/util.js +18 -18
  72. package/data_adapters/BaseAdapter/BaseAdapter.d.ts +23 -0
  73. package/data_adapters/BaseAdapter/BaseAdapter.js +37 -0
  74. package/data_adapters/BaseAdapter/BaseFeatureDataAdapter.d.ts +128 -0
  75. package/data_adapters/{BaseAdapter.js → BaseAdapter/BaseFeatureDataAdapter.js} +58 -88
  76. package/data_adapters/BaseAdapter/BaseOptions.d.ts +16 -0
  77. package/data_adapters/BaseAdapter/BaseOptions.js +2 -0
  78. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.d.ts +9 -0
  79. package/data_adapters/BaseAdapter/BaseRefNameAliasAdapter.js +2 -0
  80. package/data_adapters/BaseAdapter/BaseSequenceAdapter.d.ts +13 -0
  81. package/data_adapters/BaseAdapter/BaseSequenceAdapter.js +10 -0
  82. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.d.ts +6 -0
  83. package/data_adapters/BaseAdapter/BaseTextSearchAdapter.js +2 -0
  84. package/data_adapters/BaseAdapter/RegionsAdapter.d.ts +6 -0
  85. package/data_adapters/BaseAdapter/RegionsAdapter.js +2 -0
  86. package/data_adapters/BaseAdapter/index.d.ts +15 -0
  87. package/data_adapters/BaseAdapter/index.js +25 -0
  88. package/data_adapters/BaseAdapter/types.d.ts +21 -0
  89. package/data_adapters/BaseAdapter/types.js +2 -0
  90. package/data_adapters/BaseAdapter/util.d.ts +12 -0
  91. package/data_adapters/BaseAdapter/util.js +23 -0
  92. package/data_adapters/CytobandAdapter/configSchema.d.ts +11 -1
  93. package/package.json +4 -4
  94. package/pluggableElementTypes/AdapterType.d.ts +1 -1
  95. package/pluggableElementTypes/ConnectionType.d.ts +1 -1
  96. package/pluggableElementTypes/DisplayType.d.ts +1 -1
  97. package/pluggableElementTypes/InternetAccountType.d.ts +1 -1
  98. package/pluggableElementTypes/RpcMethodType.d.ts +9 -7
  99. package/pluggableElementTypes/RpcMethodType.js +9 -7
  100. package/pluggableElementTypes/TextSearchAdapterType.d.ts +1 -1
  101. package/pluggableElementTypes/models/BaseConnectionModelFactory.d.ts +18 -0
  102. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +9 -0
  103. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -1
  104. package/pluggableElementTypes/models/BaseDisplayModel.js +9 -1
  105. package/pluggableElementTypes/models/BaseTrackModel.d.ts +2 -1
  106. package/pluggableElementTypes/models/BaseTrackModel.js +4 -2
  107. package/pluggableElementTypes/models/BaseViewModel.d.ts +46 -2
  108. package/pluggableElementTypes/models/BaseViewModel.js +6 -0
  109. package/pluggableElementTypes/models/InternetAccountModel.d.ts +36 -2
  110. package/pluggableElementTypes/models/InternetAccountModel.js +33 -21
  111. package/pluggableElementTypes/models/baseConnectionConfig.d.ts +22 -2
  112. package/pluggableElementTypes/models/baseConnectionConfig.js +2 -1
  113. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +42 -1
  114. package/pluggableElementTypes/models/baseInternetAccountConfig.js +1 -1
  115. package/pluggableElementTypes/models/baseTrackConfig.d.ts +120 -3
  116. package/pluggableElementTypes/models/baseTrackConfig.js +7 -5
  117. package/pluggableElementTypes/models/index.d.ts +1 -1
  118. package/pluggableElementTypes/renderers/BoxRendererType.js +1 -2
  119. package/pluggableElementTypes/renderers/CircularChordRendererType.d.ts +2 -2
  120. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +4 -2
  121. package/pluggableElementTypes/renderers/FeatureRendererType.js +4 -6
  122. package/pluggableElementTypes/renderers/RendererType.d.ts +1 -1
  123. package/pluggableElementTypes/renderers/RpcRenderedSvgGroup.d.ts +2 -2
  124. package/pluggableElementTypes/renderers/ServerSideRenderedContent.d.ts +1 -1
  125. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
  126. package/rpc/BaseRpcDriver.js +1 -7
  127. package/rpc/RpcManager.d.ts +8 -1
  128. package/rpc/RpcManager.js +1 -1
  129. package/rpc/baseRpcConfig.d.ts +10 -1
  130. package/rpc/configSchema.d.ts +14 -1
  131. package/rpc/coreRpcMethods.d.ts +1 -1
  132. package/rpc/coreRpcMethods.js +3 -3
  133. package/rpc/mainThreadRpcConfig.d.ts +7 -1
  134. package/rpc/methods/{CoreEstimateRegionStats.d.ts → CoreGetFeatureDensityStats.d.ts} +2 -2
  135. package/rpc/methods/{CoreEstimateRegionStats.js → CoreGetFeatureDensityStats.js} +4 -4
  136. package/rpc/methods/CoreGetFeatureDetails.js +5 -5
  137. package/rpc/webWorkerRpcConfig.d.ts +7 -1
  138. package/tsconfig.build.tsbuildinfo +1 -1
  139. package/ui/AppLogo.d.ts +2 -2
  140. package/ui/AssemblySelector.d.ts +2 -2
  141. package/ui/AssemblySelector.js +1 -1
  142. package/ui/CascadingMenu.d.ts +2 -2
  143. package/ui/CascadingMenuButton.d.ts +8 -0
  144. package/ui/CascadingMenuButton.js +20 -0
  145. package/ui/ColorPicker.d.ts +4 -4
  146. package/ui/Dialog.d.ts +5 -5
  147. package/ui/Dialog.js +19 -7
  148. package/ui/DropDownMenu.d.ts +2 -2
  149. package/ui/EditableTypography.js +1 -1
  150. package/ui/ErrorMessage.d.ts +2 -2
  151. package/ui/ErrorMessage.js +6 -2
  152. package/ui/FactoryResetDialog.d.ts +2 -2
  153. package/ui/FatalErrorDialog.d.ts +6 -7
  154. package/ui/FatalErrorDialog.js +7 -7
  155. package/ui/FileSelector/FileSelector.d.ts +2 -2
  156. package/ui/FileSelector/FileSelector.js +3 -2
  157. package/ui/FileSelector/LocalFileChooser.d.ts +2 -2
  158. package/ui/FileSelector/UrlChooser.d.ts +3 -4
  159. package/ui/FileSelector/UrlChooser.js +8 -10
  160. package/ui/Icons.d.ts +10 -10
  161. package/ui/LoadingEllipses.d.ts +2 -2
  162. package/ui/Logo.d.ts +3 -3
  163. package/ui/Menu.d.ts +2 -2
  164. package/ui/PrerenderedCanvas.d.ts +2 -2
  165. package/ui/ResizeBar.d.ts +1 -1
  166. package/ui/ResizeBar.js +1 -1
  167. package/ui/ResizeHandle.d.ts +2 -2
  168. package/ui/ReturnToImportFormDialog.d.ts +2 -2
  169. package/ui/SanitizedHTML.d.ts +2 -2
  170. package/ui/SanitizedHTML.js +6 -0
  171. package/ui/Snackbar.d.ts +7 -9
  172. package/ui/Snackbar.js +12 -17
  173. package/ui/SnackbarModel.d.ts +9 -3
  174. package/ui/SnackbarModel.js +3 -3
  175. package/ui/Tooltip.d.ts +2 -2
  176. package/ui/index.d.ts +0 -1
  177. package/ui/index.js +1 -3
  178. package/ui/react-colorful.d.ts +1 -1
  179. package/ui/theme.js +3 -18
  180. package/util/Base1DUtils.js +2 -1
  181. package/util/QuickLRU.d.ts +1 -1
  182. package/util/blockTypes.js +1 -1
  183. package/util/formatFastaStrings.js +1 -1
  184. package/util/index.d.ts +18 -2
  185. package/util/index.js +77 -11
  186. package/util/io/index.js +1 -1
  187. package/util/layouts/PrecomputedMultiLayout.d.ts +1 -1
  188. package/util/mst-reflection.js +1 -2
  189. package/util/offscreenCanvasUtils.d.ts +2 -2
  190. package/util/stats.d.ts +5 -5
  191. package/util/types/index.d.ts +9 -3
  192. package/util/types/index.js +6 -2
  193. package/util/types/mst.d.ts +12 -9
  194. package/util/types/util.d.ts +0 -3
  195. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +0 -62
  196. package/BaseFeatureWidget/BaseFeatureDetail.js +0 -378
  197. package/BaseFeatureWidget/SequenceBox.d.ts +0 -29
  198. package/BaseFeatureWidget/SequenceBox.js +0 -63
  199. package/BaseFeatureWidget/SequenceFeatureDetails.d.ts +0 -3
  200. package/BaseFeatureWidget/SequenceFeatureDetails.js +0 -230
  201. package/data_adapters/BaseAdapter.d.ts +0 -138
  202. package/ui/AboutDialog.d.ts +0 -12
  203. package/ui/AboutDialog.js +0 -125
  204. package/ui/App.d.ts +0 -18
  205. package/ui/App.js +0 -114
  206. package/ui/AppToolbar.d.ts +0 -19
  207. package/ui/AppToolbar.js +0 -56
  208. package/ui/Drawer.d.ts +0 -8
  209. package/ui/Drawer.js +0 -34
  210. package/ui/DrawerWidget.d.ts +0 -6
  211. package/ui/DrawerWidget.js +0 -130
  212. package/ui/ViewContainer.d.ts +0 -9
  213. package/ui/ViewContainer.js +0 -76
  214. package/ui/ViewContainerTitle.d.ts +0 -6
  215. package/ui/ViewContainerTitle.js +0 -42
  216. package/ui/ViewLauncher.d.ts +0 -18
  217. package/ui/ViewLauncher.js +0 -50
  218. package/ui/ViewMenu.d.ts +0 -9
  219. package/ui/ViewMenu.js +0 -69
  220. package/ui/ViewPanel.d.ts +0 -19
  221. package/ui/ViewPanel.js +0 -49
  222. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/DLGAP3.js +0 -0
  223. /package/BaseFeatureWidget/{test_data → SequenceFeatureDetails/test_data}/NCDN.js +0 -0
package/ui/AppLogo.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { AnyConfigurationModel } from '../configuration';
3
3
  declare const Logo: ({ session, }: {
4
4
  session: {
5
5
  configuration: AnyConfigurationModel;
6
6
  };
7
- }) => JSX.Element;
7
+ }) => React.JSX.Element;
8
8
  export default Logo;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { InputProps as IIP, TextFieldProps as TFP } from '@mui/material';
3
3
  import { AbstractSessionModel } from '../util';
4
4
  declare const AssemblySelector: ({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText, }: {
@@ -9,5 +9,5 @@ declare const AssemblySelector: ({ session, onChange, selected, InputProps, Text
9
9
  localStorageKey?: string | undefined;
10
10
  InputProps?: IIP | undefined;
11
11
  TextFieldProps?: TFP | undefined;
12
- }) => JSX.Element;
12
+ }) => React.JSX.Element;
13
13
  export default AssemblySelector;
@@ -35,7 +35,7 @@ const useStyles = (0, mui_1.makeStyles)()({
35
35
  minWidth: 180,
36
36
  },
37
37
  });
38
- const AssemblySelector = (0, mobx_react_1.observer)(({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText = 'Select assembly to view', }) => {
38
+ const AssemblySelector = (0, mobx_react_1.observer)(function ({ session, onChange, selected, InputProps, TextFieldProps, localStorageKey, helperText = 'Select assembly to view', }) {
39
39
  const { classes } = useStyles();
40
40
  const { assemblyNames, assemblyManager } = session;
41
41
  // constructs a localstorage key based on host/path/config to help
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { MenuItem as JBMenuItem } from './Menu';
3
3
  import { PopupState } from 'material-ui-popup-state/hooks';
4
4
  declare function CascadingMenuChildren(props: {
5
5
  onMenuItemClick: Function;
6
6
  menuItems: JBMenuItem[];
7
7
  popupState: PopupState;
8
- }): JSX.Element;
8
+ }): React.JSX.Element;
9
9
  export default CascadingMenuChildren;
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { MenuItem } from '@jbrowse/core/ui';
3
+ declare const CascadingMenuButton: ({ children, menuItems, ...rest }: {
4
+ [key: string]: unknown;
5
+ children?: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
6
+ menuItems: MenuItem[];
7
+ }) => React.JSX.Element;
8
+ export default CascadingMenuButton;
@@ -0,0 +1,20 @@
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
+ const react_1 = __importDefault(require("react"));
7
+ const CascadingMenu_1 = __importDefault(require("@jbrowse/core/ui/CascadingMenu"));
8
+ const material_1 = require("@mui/material");
9
+ const mobx_react_1 = require("mobx-react");
10
+ const hooks_1 = require("material-ui-popup-state/hooks");
11
+ const CascadingMenuButton = (0, mobx_react_1.observer)(function CascadingMenuButton({ children, menuItems, ...rest }) {
12
+ const popupState = (0, hooks_1.usePopupState)({
13
+ popupId: 'viewMenu',
14
+ variant: 'popover',
15
+ });
16
+ return (react_1.default.createElement(react_1.default.Fragment, null,
17
+ react_1.default.createElement(material_1.IconButton, { ...(0, hooks_1.bindTrigger)(popupState), ...rest, disabled: menuItems.length === 0 }, children),
18
+ react_1.default.createElement(CascadingMenu_1.default, { ...(0, hooks_1.bindPopover)(popupState), onMenuItemClick: (_, callback) => callback(), menuItems: menuItems, popupState: popupState })));
19
+ });
20
+ exports.default = CascadingMenuButton;
@@ -1,16 +1,16 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  export declare const PopoverPicker: ({ color, onChange, }: {
3
3
  color: string;
4
4
  onChange: (color: string) => void;
5
- }) => JSX.Element;
5
+ }) => React.JSX.Element;
6
6
  export declare function ColorPopover({ anchorEl, onChange, onClose, color, }: {
7
7
  color: string;
8
8
  anchorEl: HTMLElement | null;
9
9
  onChange: (val: string) => void;
10
10
  onClose: () => void;
11
- }): JSX.Element;
11
+ }): React.JSX.Element;
12
12
  export declare function ColorPicker({ onChange, color, }: {
13
13
  color: string;
14
14
  onChange: (val: string) => void;
15
- }): JSX.Element;
15
+ }): React.JSX.Element;
16
16
  export default PopoverPicker;
package/ui/Dialog.d.ts CHANGED
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { DialogProps } from '@mui/material';
3
- declare function JBrowseDialog(props: DialogProps & {
4
- title: string;
5
- }): JSX.Element;
6
- declare const _default: typeof JBrowseDialog;
3
+ interface Props extends DialogProps {
4
+ header?: React.ReactNode;
5
+ }
6
+ declare const _default: (props: Props) => React.JSX.Element;
7
7
  export default _default;
package/ui/Dialog.js CHANGED
@@ -24,19 +24,31 @@ function DialogError({ error }) {
24
24
  return (react_1.default.createElement("div", { style: { width: 800, margin: 40 } },
25
25
  react_1.default.createElement(ErrorMessage_1.default, { error: error })));
26
26
  }
27
- function JBrowseDialog(props) {
27
+ exports.default = (0, mobx_react_1.observer)(function JBrowseDialog(props) {
28
28
  const { classes } = useStyles();
29
- const { title, children, onClose } = props;
29
+ const { title, header, 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
- react_1.default.createElement(material_1.DialogTitle, null,
33
+ react_1.default.isValidElement(header) ? (react_1.default.createElement(react_1.default.Fragment, null, header)) : (react_1.default.createElement(material_1.DialogTitle, null,
33
34
  title,
34
35
  onClose ? (react_1.default.createElement(material_1.IconButton, { className: classes.closeButton, onClick: () => {
35
36
  // @ts-expect-error
36
37
  onClose();
37
38
  } },
38
- react_1.default.createElement(Close_1.default, null))) : null),
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
- }
42
- exports.default = (0, mobx_react_1.observer)(JBrowseDialog);
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)))));
54
+ });
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { MenuItem } from './Menu';
3
3
  declare function DropDownMenu({ menuTitle, session, menuItems, }: {
4
4
  menuTitle: string;
5
5
  session: any;
6
6
  menuItems: MenuItem[];
7
- }): JSX.Element;
7
+ }): React.JSX.Element;
8
8
  declare const _default: typeof DropDownMenu;
9
9
  export default _default;
@@ -45,7 +45,7 @@ const useStyles = (0, mui_1.makeStyles)()(theme => ({
45
45
  },
46
46
  }));
47
47
  // using forwardRef so that MUI Tooltip can wrap this component
48
- const EditableTypography = react_1.default.forwardRef((props, ref) => {
48
+ const EditableTypography = react_1.default.forwardRef(function (props, ref) {
49
49
  const { value, setValue, variant, ...other } = props;
50
50
  const [editedValue, setEditedValue] = (0, react_1.useState)();
51
51
  const [sizerNode, setSizerNode] = (0, react_1.useState)(null);
@@ -1,5 +1,5 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  declare const ErrorMessage: ({ error }: {
3
3
  error: unknown;
4
- }) => JSX.Element;
4
+ }) => React.JSX.Element;
5
5
  export default ErrorMessage;
@@ -4,9 +4,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const react_1 = __importDefault(require("react"));
7
- const ErrorMessage = ({ error }) => {
7
+ function parseError(str) {
8
8
  let snapshotError = '';
9
- let str = `${error}`;
10
9
  const findStr = 'is not assignable';
11
10
  const idx = str.indexOf(findStr);
12
11
  if (idx !== -1) {
@@ -26,6 +25,11 @@ const ErrorMessage = ({ error }) => {
26
25
  snapshotError = match2[1];
27
26
  }
28
27
  }
28
+ return snapshotError;
29
+ }
30
+ const ErrorMessage = ({ error }) => {
31
+ const str = `${error}`;
32
+ const snapshotError = parseError(str);
29
33
  return (react_1.default.createElement("div", { style: {
30
34
  padding: 4,
31
35
  margin: 4,
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  declare const _default: ({ onClose, open, onFactoryReset, }: {
3
3
  onClose: Function;
4
4
  open: boolean;
5
5
  onFactoryReset: Function;
6
- }) => JSX.Element;
6
+ }) => React.JSX.Element;
7
7
  export default _default;
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
- declare const FatalErrorDialog: ({ componentStack, error, onFactoryReset, resetButtonText, }: {
3
- componentStack?: string | undefined;
1
+ import React from 'react';
2
+ export default function FatalErrorDialog({ componentStack, error, onFactoryReset, resetButtonText, }: {
3
+ componentStack?: string;
4
4
  error?: unknown;
5
- onFactoryReset: Function;
6
- resetButtonText?: string | undefined;
7
- }) => JSX.Element;
8
- export default FatalErrorDialog;
5
+ onFactoryReset: () => void;
6
+ resetButtonText?: string;
7
+ }): React.JSX.Element;
@@ -29,21 +29,21 @@ Object.defineProperty(exports, "__esModule", { value: true });
29
29
  const react_1 = __importStar(require("react"));
30
30
  const material_1 = require("@mui/material");
31
31
  const FactoryResetDialog_1 = __importDefault(require("./FactoryResetDialog"));
32
+ const ErrorMessage_1 = __importDefault(require("./ErrorMessage"));
32
33
  const ResetComponent = ({ onFactoryReset, resetButtonText, }) => {
33
34
  const [dialogOpen, setDialogOpen] = (0, react_1.useState)(false);
34
35
  return (react_1.default.createElement(react_1.default.Fragment, null,
35
36
  react_1.default.createElement(material_1.Button, { "data-testid": "fatal-error", color: "primary", variant: "contained", onClick: () => setDialogOpen(true) }, resetButtonText),
36
37
  react_1.default.createElement(FactoryResetDialog_1.default, { onClose: () => setDialogOpen(false), open: dialogOpen, onFactoryReset: onFactoryReset })));
37
38
  };
38
- const FatalErrorDialog = ({ componentStack, error = 'No error message provided', onFactoryReset, resetButtonText = 'Factory Reset', }) => {
39
- return (react_1.default.createElement(material_1.Dialog, { open: true },
40
- react_1.default.createElement(material_1.DialogTitle, { style: { background: '#e88' } }, "Fatal error"),
39
+ function FatalErrorDialog({ componentStack, error = 'No error message provided', onFactoryReset, resetButtonText = 'Factory Reset', }) {
40
+ return (react_1.default.createElement(material_1.Dialog, { maxWidth: "xl", open: true },
41
+ react_1.default.createElement(material_1.DialogTitle, null, "Fatal error"),
41
42
  react_1.default.createElement(material_1.DialogContent, null,
42
- react_1.default.createElement("pre", null,
43
- `${error}`,
44
- componentStack)),
43
+ react_1.default.createElement(ErrorMessage_1.default, { error: error }),
44
+ react_1.default.createElement("pre", null, componentStack)),
45
45
  react_1.default.createElement(material_1.DialogActions, null,
46
46
  react_1.default.createElement(material_1.Button, { color: "secondary", variant: "contained", onClick: () => window.location.reload() }, "Refresh"),
47
47
  react_1.default.createElement(ResetComponent, { onFactoryReset: onFactoryReset, resetButtonText: resetButtonText }))));
48
- };
48
+ }
49
49
  exports.default = FatalErrorDialog;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { FileLocation, AbstractRootModel } from '../../util/types';
3
3
  declare const _default: (props: {
4
4
  location?: FileLocation | undefined;
@@ -7,5 +7,5 @@ declare const _default: (props: {
7
7
  name?: string | undefined;
8
8
  description?: string | undefined;
9
9
  rootModel?: AbstractRootModel | undefined;
10
- }) => JSX.Element;
10
+ }) => React.JSX.Element;
11
11
  export default _default;
@@ -35,6 +35,7 @@ const LocalFileChooser_1 = __importDefault(require("./LocalFileChooser"));
35
35
  const UrlChooser_1 = __importDefault(require("./UrlChooser"));
36
36
  // icons
37
37
  const ArrowDropDown_1 = __importDefault(require("@mui/icons-material/ArrowDropDown"));
38
+ const util_1 = require("../../util");
38
39
  function ToggleButtonWithTooltip(props) {
39
40
  const { title, children, ...other } = props;
40
41
  return (react_1.default.createElement(material_1.Tooltip, { title: title || '' },
@@ -106,13 +107,13 @@ exports.default = (0, mobx_react_1.observer)(function (props) {
106
107
  "More",
107
108
  react_1.default.createElement(ArrowDropDown_1.default, null))) : null),
108
109
  react_1.default.createElement(material_1.Menu, { open: Boolean(anchorEl), anchorEl: anchorEl, onClose: () => setAnchorEl(null), anchorOrigin: { vertical: 'bottom', horizontal: 'center' }, transformOrigin: { vertical: 'top', horizontal: 'center' } }, hiddenAccts === null || hiddenAccts === void 0 ? void 0 : hiddenAccts.map((acct, idx) => (react_1.default.createElement(material_1.MenuItem, { key: acct.internetAccountId, value: acct.internetAccountId, onClick: () => {
109
- const prev = shownAccts[shownAccts.length - 1];
110
+ const prev = shownAccts.at(-1);
110
111
  setShownAccts([...shownAccts.slice(0, -1), acct]);
111
112
  setHiddenAccts([
112
113
  prev,
113
114
  ...hiddenAccts.slice(0, idx),
114
115
  ...hiddenAccts.slice(idx + 1),
115
- ]);
116
+ ].filter(util_1.notEmpty));
116
117
  setToggleButtonValue(acct.internetAccountId);
117
118
  setAnchorEl(null);
118
119
  } }, acct.name)))))),
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { FileLocation } from '../../util/types';
3
3
  declare function LocalFileChooser(props: {
4
4
  location?: FileLocation;
5
5
  setLocation: Function;
6
- }): JSX.Element;
6
+ }): React.JSX.Element;
7
7
  export default LocalFileChooser;
@@ -1,9 +1,8 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { FileLocation } from '../../util/types';
3
- declare function UrlChooser(props: {
3
+ declare const _default: (props: {
4
4
  location?: FileLocation;
5
5
  setLocation: Function;
6
6
  label?: string;
7
- }): JSX.Element;
8
- declare const _default: typeof UrlChooser;
7
+ }) => React.JSX.Element;
9
8
  export default _default;
@@ -7,14 +7,12 @@ const react_1 = __importDefault(require("react"));
7
7
  const material_1 = require("@mui/material");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  const types_1 = require("../../util/types");
10
- function UrlChooser(props) {
10
+ exports.default = (0, mobx_react_1.observer)(function UrlChooser(props) {
11
11
  const { location, setLocation, label } = props;
12
- return (react_1.default.createElement(react_1.default.Fragment, null,
13
- react_1.default.createElement(material_1.TextField, { fullWidth: true, variant: "outlined", inputProps: { 'data-testid': 'urlInput' }, defaultValue: location && (0, types_1.isUriLocation)(location) ? location.uri : '', label: label || 'Enter URL', onChange: event => {
14
- setLocation({
15
- uri: event.target.value.trim(),
16
- locationType: 'UriLocation',
17
- });
18
- } })));
19
- }
20
- exports.default = (0, mobx_react_1.observer)(UrlChooser);
12
+ return (react_1.default.createElement(material_1.TextField, { fullWidth: true, variant: "outlined", inputProps: { 'data-testid': 'urlInput' }, defaultValue: location && (0, types_1.isUriLocation)(location) ? location.uri : '', label: label || 'Enter URL', onChange: event => {
13
+ setLocation({
14
+ uri: event.target.value.trim(),
15
+ locationType: 'UriLocation',
16
+ });
17
+ } }));
18
+ });
package/ui/Icons.d.ts CHANGED
@@ -1,11 +1,11 @@
1
- /// <reference types="react" />
2
1
  import { SvgIconProps } from '@mui/material/SvgIcon';
3
- export declare function ContentCopy(props: SvgIconProps): JSX.Element;
4
- export declare function Indexing(props: SvgIconProps): JSX.Element;
5
- export declare function ContentCut(props: SvgIconProps): JSX.Element;
6
- export declare function ContentPaste(props: SvgIconProps): JSX.Element;
7
- export declare function TrackSelector(props: SvgIconProps): JSX.Element;
8
- export declare function SaveAs(props: SvgIconProps): JSX.Element;
9
- export declare function Save(props: SvgIconProps): JSX.Element;
10
- export declare function DNA(props: SvgIconProps): JSX.Element;
11
- export declare function Cable(props: SvgIconProps): JSX.Element;
2
+ import React from 'react';
3
+ export declare function ContentCopy(props: SvgIconProps): React.JSX.Element;
4
+ export declare function Indexing(props: SvgIconProps): React.JSX.Element;
5
+ export declare function ContentCut(props: SvgIconProps): React.JSX.Element;
6
+ export declare function ContentPaste(props: SvgIconProps): React.JSX.Element;
7
+ export declare function TrackSelector(props: SvgIconProps): React.JSX.Element;
8
+ export declare function SaveAs(props: SvgIconProps): React.JSX.Element;
9
+ export declare function Save(props: SvgIconProps): React.JSX.Element;
10
+ export declare function DNA(props: SvgIconProps): React.JSX.Element;
11
+ export declare function Cable(props: SvgIconProps): React.JSX.Element;
@@ -1,7 +1,7 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  import { TypographyProps } from '@mui/material';
3
3
  interface Props extends TypographyProps {
4
4
  message?: string;
5
5
  }
6
- export default function LoadingEllipses({ message, variant, ...rest }: Props): JSX.Element;
6
+ export default function LoadingEllipses({ message, variant, ...rest }: Props): React.JSX.Element;
7
7
  export {};
package/ui/Logo.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  type LogoVariant = 'color' | 'black' | 'white';
3
3
  interface LogoProps {
4
4
  variant?: LogoVariant;
5
5
  }
6
- export declare function Logomark({ variant }: LogoProps): JSX.Element;
7
- export declare function LogoFull({ variant }: LogoProps): JSX.Element;
6
+ export declare function Logomark({ variant }: LogoProps): React.JSX.Element;
7
+ export declare function LogoFull({ variant }: LogoProps): React.JSX.Element;
8
8
  export {};
package/ui/Menu.d.ts CHANGED
@@ -9,7 +9,7 @@ interface MenuItemEndDecorationSelectorProps {
9
9
  disabled?: boolean;
10
10
  }
11
11
  type MenuItemEndDecorationProps = MenuItemEndDecorationSubMenuProps | MenuItemEndDecorationSelectorProps;
12
- export declare function MenuItemEndDecoration(props: MenuItemEndDecorationProps): JSX.Element;
12
+ export declare function MenuItemEndDecoration(props: MenuItemEndDecorationProps): React.JSX.Element;
13
13
  export interface MenuDivider {
14
14
  priority?: number;
15
15
  type: 'divider';
@@ -49,5 +49,5 @@ interface MenuProps extends PopoverProps {
49
49
  menuItems: MenuItem[];
50
50
  onMenuItemClick: (event: React.MouseEvent<HTMLLIElement, MouseEvent>, callback: Function) => void;
51
51
  }
52
- declare function Menu(props: MenuProps): JSX.Element;
52
+ declare function Menu(props: MenuProps): React.JSX.Element;
53
53
  export default Menu;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  declare function PrerenderedCanvas(props: {
3
3
  width: number;
4
4
  height: number;
@@ -7,5 +7,5 @@ declare function PrerenderedCanvas(props: {
7
7
  imageData?: any;
8
8
  showSoftClip?: boolean;
9
9
  blockKey?: string;
10
- }): JSX.Element;
10
+ }): React.JSX.Element;
11
11
  export default PrerenderedCanvas;
package/ui/ResizeBar.d.ts CHANGED
@@ -8,4 +8,4 @@ export default function ResizeBar({ widths, setWidths, checkbox, scrollLeft, }:
8
8
  setWidths: (arg: number[]) => void;
9
9
  checkbox?: boolean;
10
10
  scrollLeft?: number;
11
- }): JSX.Element;
11
+ }): React.JSX.Element;
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,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  declare function ResizeHandle({ onDrag, vertical, flexbox, className: originalClassName, ...props }: {
3
3
  onDrag: (arg: number) => number | void;
4
4
  vertical?: boolean;
5
5
  flexbox?: boolean;
6
6
  className?: string;
7
7
  [props: string]: unknown;
8
- }): JSX.Element;
8
+ }): React.JSX.Element;
9
9
  export default ResizeHandle;
@@ -1,9 +1,9 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  declare function ReturnToImportFormDialog({ model, handleClose, }: {
3
3
  model: {
4
4
  clearView: Function;
5
5
  };
6
6
  handleClose: () => void;
7
- }): JSX.Element;
7
+ }): React.JSX.Element;
8
8
  declare const _default: typeof ReturnToImportFormDialog;
9
9
  export default _default;
@@ -1,5 +1,5 @@
1
- /// <reference types="react" />
1
+ import React from 'react';
2
2
  export declare function isHTML(str: string): boolean;
3
3
  export default function SanitizedHTML({ html }: {
4
4
  html: string;
5
- }): JSX.Element;
5
+ }): React.JSX.Element;
@@ -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,13 +1,11 @@
1
- /// <reference types="react" />
2
- import { IAnyStateTreeNode } from 'mobx-state-tree';
3
- import { AbstractSessionModel, NotificationLevel, SnackAction } from '../util';
4
- type SnackbarMessage = [string, NotificationLevel, SnackAction];
1
+ import React from 'react';
2
+ import { AbstractSessionModel } from '../util';
3
+ import { SnackbarMessage } from './SnackbarModel';
5
4
  interface SnackbarSession extends AbstractSessionModel {
6
5
  snackbarMessages: SnackbarMessage[];
7
- popSnackbarMessage: () => unknown;
6
+ popSnackbarMessage: () => void;
8
7
  }
9
- declare function MessageSnackbar({ session, }: {
10
- session: SnackbarSession & IAnyStateTreeNode;
11
- }): JSX.Element;
12
- declare const _default: typeof MessageSnackbar;
8
+ declare const _default: ({ session, }: {
9
+ session: SnackbarSession;
10
+ }) => React.JSX.Element | null;
13
11
  export default _default;
package/ui/Snackbar.js CHANGED
@@ -8,26 +8,21 @@ const material_1 = require("@mui/material");
8
8
  const mobx_react_1 = require("mobx-react");
9
9
  // icons
10
10
  const Close_1 = __importDefault(require("@mui/icons-material/Close"));
11
- function MessageSnackbar({ session, }) {
12
- const { popSnackbarMessage, snackbarMessages } = session;
13
- const latestMessage = snackbarMessages.length
14
- ? snackbarMessages[snackbarMessages.length - 1]
15
- : null;
11
+ exports.default = (0, mobx_react_1.observer)(function MessageSnackbar({ session, }) {
12
+ const { snackbarMessages } = session;
13
+ const latestMessage = snackbarMessages.at(-1);
16
14
  const handleClose = (_event, reason) => {
17
- if (reason === 'clickaway') {
18
- return;
15
+ if (reason !== 'clickaway') {
16
+ session.popSnackbarMessage();
19
17
  }
20
- popSnackbarMessage();
21
18
  };
22
- const open = !!latestMessage;
23
- const [message, level, action] = latestMessage || [];
24
- return (react_1.default.createElement(material_1.Snackbar, { open: open, onClose: handleClose, anchorOrigin: { vertical: 'bottom', horizontal: 'center' } },
25
- react_1.default.createElement(material_1.Alert, { onClose: handleClose, action: action ? (react_1.default.createElement(react_1.default.Fragment, null,
19
+ return !!latestMessage ? (react_1.default.createElement(material_1.Snackbar, { open: true, onClose: handleClose, anchorOrigin: { vertical: 'bottom', horizontal: 'center' } },
20
+ react_1.default.createElement(material_1.Alert, { onClose: handleClose, action: latestMessage.action ? (react_1.default.createElement(react_1.default.Fragment, null,
26
21
  react_1.default.createElement(material_1.Button, { color: "inherit", onClick: e => {
27
- action.onClick();
22
+ var _a;
23
+ (_a = latestMessage.action) === null || _a === void 0 ? void 0 : _a.onClick();
28
24
  handleClose(e);
29
- } }, action.name),
25
+ } }, latestMessage.action.name),
30
26
  react_1.default.createElement(material_1.IconButton, { color: "inherit", onClick: handleClose },
31
- react_1.default.createElement(Close_1.default, null)))) : null, severity: level || 'warning' }, message)));
32
- }
33
- exports.default = (0, mobx_react_1.observer)(MessageSnackbar);
27
+ react_1.default.createElement(Close_1.default, null)))) : null, severity: latestMessage.level || 'warning' }, latestMessage.message))) : null;
28
+ });
@@ -1,15 +1,21 @@
1
1
  import { IModelType, ModelProperties } from 'mobx-state-tree';
2
2
  import { IObservableArray } from 'mobx';
3
3
  import { NotificationLevel, SnackAction } from '../util/types';
4
+ export interface SnackbarMessage {
5
+ message: string;
6
+ level?: NotificationLevel;
7
+ action?: SnackAction;
8
+ }
4
9
  /**
5
10
  * #stateModel SnackbarModel
11
+ * #category session
6
12
  */
7
- declare function makeExtension(snackbarMessages: IObservableArray<any>): {
13
+ declare function makeExtension(snackbarMessages: IObservableArray<SnackbarMessage>): {
8
14
  views: {
9
15
  /**
10
16
  * #getter
11
17
  */
12
- readonly snackbarMessages: IObservableArray<any>;
18
+ readonly snackbarMessages: IObservableArray<SnackbarMessage>;
13
19
  };
14
20
  actions: {
15
21
  /**
@@ -23,7 +29,7 @@ declare function makeExtension(snackbarMessages: IObservableArray<any>): {
23
29
  /**
24
30
  * #action
25
31
  */
26
- popSnackbarMessage(): any;
32
+ popSnackbarMessage(): SnackbarMessage | undefined;
27
33
  /**
28
34
  * #action
29
35
  */
@@ -3,8 +3,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const mobx_1 = require("mobx");
4
4
  /**
5
5
  * #stateModel SnackbarModel
6
+ * #category session
6
7
  */
7
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
8
  function makeExtension(snackbarMessages) {
9
9
  return {
10
10
  views: {
@@ -31,7 +31,7 @@ function makeExtension(snackbarMessages) {
31
31
  * #action
32
32
  */
33
33
  pushSnackbarMessage(message, level, action) {
34
- return snackbarMessages.push([message, level, action]);
34
+ return snackbarMessages.push({ message, level, action });
35
35
  },
36
36
  /**
37
37
  * #action
@@ -43,7 +43,7 @@ function makeExtension(snackbarMessages) {
43
43
  * #action
44
44
  */
45
45
  removeSnackbarMessage(message) {
46
- const element = snackbarMessages.find(f => f[0] === message);
46
+ const element = snackbarMessages.find(f => f.message === message);
47
47
  if (element) {
48
48
  snackbarMessages.remove(element);
49
49
  }