@jbrowse/core 1.7.10 → 2.0.1

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 (86) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +14 -4
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +97 -63
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +21 -15
  4. package/BaseFeatureWidget/index.d.ts +2 -2
  5. package/BaseFeatureWidget/index.js +5 -3
  6. package/BaseFeatureWidget/index.test.js +48 -30
  7. package/BaseFeatureWidget/types.d.ts +1 -0
  8. package/PluginManager.d.ts +68 -104
  9. package/ReExports/Attributes.d.ts +2 -0
  10. package/ReExports/Attributes.js +12 -0
  11. package/ReExports/BaseCard.d.ts +2 -0
  12. package/ReExports/BaseCard.js +12 -0
  13. package/ReExports/DataGrid.d.ts +2 -0
  14. package/ReExports/DataGrid.js +13 -0
  15. package/ReExports/FeatureDetails.d.ts +2 -0
  16. package/ReExports/FeatureDetails.js +12 -0
  17. package/ReExports/list.js +1 -1
  18. package/ReExports/material-ui-colors.d.ts +1 -19
  19. package/ReExports/material-ui-colors.js +11 -152
  20. package/ReExports/modules.d.ts +69 -109
  21. package/ReExports/modules.js +683 -127
  22. package/TextSearch/TextSearchManager.d.ts +3 -1
  23. package/assemblyManager/assembly.d.ts +6 -7
  24. package/assemblyManager/assembly.js +27 -16
  25. package/assemblyManager/assemblyManager.d.ts +82 -24
  26. package/assemblyManager/assemblyManager.js +11 -9
  27. package/configuration/util.d.ts +1 -1
  28. package/package.json +14 -16
  29. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
  30. package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
  31. package/pluggableElementTypes/models/BaseTrackModel.js +24 -25
  32. package/pluggableElementTypes/renderers/FeatureRendererType.js +17 -8
  33. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -2
  34. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
  35. package/pluggableElementTypes/renderers/ServerSideRendererType.js +1 -1
  36. package/rpc/BaseRpcDriver.js +1 -1
  37. package/rpc/coreRpcMethods.d.ts +1 -3
  38. package/rpc/coreRpcMethods.js +5 -5
  39. package/tsconfig.build.tsbuildinfo +1 -1
  40. package/ui/AboutDialog.js +15 -10
  41. package/ui/App.js +18 -37
  42. package/ui/AssemblySelector.d.ts +1 -1
  43. package/ui/AssemblySelector.js +10 -5
  44. package/ui/CascadingMenu.js +10 -14
  45. package/ui/Drawer.js +8 -5
  46. package/ui/DrawerWidget.js +39 -45
  47. package/ui/DropDownMenu.d.ts +0 -8
  48. package/ui/DropDownMenu.js +9 -15
  49. package/ui/EditableTypography.d.ts +1 -1
  50. package/ui/EditableTypography.js +42 -48
  51. package/ui/ErrorMessage.js +13 -23
  52. package/ui/FactoryResetDialog.js +6 -6
  53. package/ui/FatalErrorDialog.js +5 -5
  54. package/ui/FileSelector/FileSelector.js +19 -19
  55. package/ui/FileSelector/LocalFileChooser.js +12 -8
  56. package/ui/FileSelector/UrlChooser.js +2 -2
  57. package/ui/Icons.d.ts +1 -1
  58. package/ui/Icons.js +1 -1
  59. package/ui/Menu.d.ts +1 -1
  60. package/ui/Menu.js +28 -29
  61. package/ui/PrerenderedCanvas.js +10 -1
  62. package/ui/ResizeHandle.js +8 -6
  63. package/ui/ReturnToImportFormDialog.js +14 -10
  64. package/ui/SanitizedHTML.js +15 -21
  65. package/ui/Snackbar.js +11 -9
  66. package/ui/Tooltip.d.ts +3 -1
  67. package/ui/Tooltip.js +5 -3
  68. package/ui/ViewContainer.js +38 -25
  69. package/ui/theme.d.ts +279 -131
  70. package/ui/theme.js +174 -154
  71. package/ui/theme.test.js +56 -75
  72. package/util/Base1DUtils.d.ts +32 -0
  73. package/util/Base1DUtils.js +213 -0
  74. package/util/Base1DViewModel.d.ts +16 -37
  75. package/util/Base1DViewModel.js +34 -166
  76. package/util/color/index.js +6 -6
  77. package/util/index.d.ts +12 -21
  78. package/util/index.js +29 -90
  79. package/util/layouts/GranularRectLayout.js +1 -3
  80. package/util/layouts/PrecomputedLayout.js +1 -3
  81. package/util/offscreenCanvasPonyfill.js +10 -12
  82. package/util/tracks.js +4 -2
  83. package/util/types/index.d.ts +14 -4
  84. package/util/types/index.js +6 -0
  85. package/util/types/mst.d.ts +3 -3
  86. package/util/types/mst.js +11 -7
@@ -17,13 +17,11 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
 
18
18
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
19
19
 
20
- var _InputBase = _interopRequireDefault(require("@material-ui/core/InputBase"));
21
-
22
- var _Typography = _interopRequireDefault(require("@material-ui/core/Typography"));
20
+ var _react = _interopRequireWildcard(require("react"));
23
21
 
24
- var _styles = require("@material-ui/core/styles");
22
+ var _material = require("@mui/material");
25
23
 
26
- var _react = _interopRequireWildcard(require("react"));
24
+ var _mui = require("tss-react/mui");
27
25
 
28
26
  var _excluded = ["value", "setValue", "variant"];
29
27
 
@@ -35,7 +33,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
35
33
 
36
34
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
37
35
 
38
- var useStyles = (0, _styles.makeStyles)(function (theme) {
36
+ var useStyles = (0, _mui.makeStyles)()(function (theme) {
39
37
  return {
40
38
  input: {},
41
39
  inputBase: {},
@@ -51,7 +49,6 @@ var useStyles = (0, _styles.makeStyles)(function (theme) {
51
49
  },
52
50
  inputFocused: {
53
51
  borderStyle: 'solid',
54
- borderRadius: theme.shape.borderRadius,
55
52
  borderWidth: 2
56
53
  }
57
54
  };
@@ -94,42 +91,20 @@ var EditableTypography = /*#__PURE__*/_react.default.forwardRef(function (props,
94
91
  inputNode && inputNode.blur();
95
92
  setBlur(false);
96
93
  }
97
- }, [blur, inputNode]);
98
- var classes = useStyles(props);
99
- var theme = (0, _styles.useTheme)();
100
- var clientWidth = sizerNode && sizerNode.clientWidth;
101
-
102
- if (clientWidth && clientWidth !== width) {
103
- setWidth(clientWidth);
104
- }
94
+ }, [blur, inputNode]); // possibly tss-react does not understand the passing of props to
95
+ // useStyles, but it appears to work
96
+ // @ts-ignore
105
97
 
106
- var sizerRef = function sizerRef(node) {
107
- setSizerNode(node);
108
- };
109
-
110
- var inputRef = function inputRef(node) {
111
- setInputNode(node);
112
- };
98
+ var _useStyles = useStyles(props, {
99
+ props: props
100
+ }),
101
+ classes = _useStyles.classes;
113
102
 
114
- function handleBlur() {
115
- if (editedValue && editedValue !== value) {
116
- setValue(editedValue);
117
- }
103
+ var theme = (0, _material.useTheme)();
104
+ var clientWidth = sizerNode === null || sizerNode === void 0 ? void 0 : sizerNode.clientWidth;
118
105
 
119
- setEditedValue(undefined);
120
- }
121
-
122
- function handleKeyDown(event) {
123
- if (event.key === 'Enter') {
124
- inputNode && inputNode.blur();
125
- } else if (event.key === 'Escape') {
126
- setEditedValue(undefined);
127
- setBlur(true);
128
- }
129
- }
130
-
131
- function handleChange(event) {
132
- setEditedValue(event.target.value);
106
+ if (clientWidth && clientWidth !== width) {
107
+ setWidth(clientWidth);
133
108
  }
134
109
 
135
110
  return /*#__PURE__*/_react.default.createElement("div", (0, _extends2.default)({}, other, {
@@ -138,18 +113,22 @@ var EditableTypography = /*#__PURE__*/_react.default.forwardRef(function (props,
138
113
  style: {
139
114
  position: 'relative'
140
115
  }
141
- }, /*#__PURE__*/_react.default.createElement(_Typography.default, {
142
- ref: sizerRef,
116
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, {
117
+ ref: function ref(node) {
118
+ return setSizerNode(node);
119
+ },
143
120
  component: "span",
144
121
  variant: variant,
145
122
  className: classes.typography
146
- }, editedValue === undefined ? value : editedValue)), /*#__PURE__*/_react.default.createElement(_InputBase.default, {
147
- inputRef: inputRef,
123
+ }, editedValue === undefined ? value : editedValue)), /*#__PURE__*/_react.default.createElement(_material.InputBase, {
124
+ inputRef: function inputRef(node) {
125
+ return setInputNode(node);
126
+ },
148
127
  className: classes.inputBase,
149
128
  inputProps: {
150
129
  style: _objectSpread({
151
130
  width: width
152
- }, variant && variant !== 'inherit' && variant !== 'srOnly' ? theme.typography[variant] : {})
131
+ }, variant && variant !== 'inherit' ? theme.typography[variant] : {})
153
132
  },
154
133
  classes: {
155
134
  input: classes.input,
@@ -157,9 +136,24 @@ var EditableTypography = /*#__PURE__*/_react.default.forwardRef(function (props,
157
136
  focused: classes.inputFocused
158
137
  },
159
138
  value: editedValue === undefined ? value : editedValue,
160
- onChange: handleChange,
161
- onKeyDown: handleKeyDown,
162
- onBlur: handleBlur
139
+ onChange: function onChange(event) {
140
+ return setEditedValue(event.target.value);
141
+ },
142
+ onKeyDown: function onKeyDown(event) {
143
+ if (event.key === 'Enter') {
144
+ inputNode && inputNode.blur();
145
+ } else if (event.key === 'Escape') {
146
+ setEditedValue(undefined);
147
+ setBlur(true);
148
+ }
149
+ },
150
+ onBlur: function onBlur() {
151
+ if (editedValue && editedValue !== value) {
152
+ setValue(editedValue);
153
+ }
154
+
155
+ setEditedValue(undefined);
156
+ }
163
157
  }));
164
158
  });
165
159
 
@@ -9,29 +9,8 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _core = require("@material-ui/core");
13
-
14
- var useStyles = (0, _core.makeStyles)(function (theme) {
15
- return {
16
- message: {
17
- border: '1px solid black',
18
- background: '#f88',
19
- overflow: 'auto',
20
- maxHeight: 200,
21
- margin: theme.spacing(1),
22
- padding: theme.spacing(1)
23
- },
24
- errorBox: {
25
- background: 'lightgrey',
26
- border: '1px solid black',
27
- margin: 20
28
- }
29
- };
30
- });
31
-
32
12
  var ErrorMessage = function ErrorMessage(_ref) {
33
13
  var error = _ref.error;
34
- var classes = useStyles();
35
14
  var snapshotError = '';
36
15
  var str = "".concat(error);
37
16
  var findStr = 'is not assignable';
@@ -59,9 +38,20 @@ var ErrorMessage = function ErrorMessage(_ref) {
59
38
  }
60
39
 
61
40
  return /*#__PURE__*/_react.default.createElement("div", {
62
- className: classes.message
41
+ style: {
42
+ padding: 4,
43
+ margin: 4,
44
+ overflow: 'auto',
45
+ maxHeight: 200,
46
+ background: '#f88',
47
+ border: '1px solid black'
48
+ }
63
49
  }, str.slice(0, 10000), snapshotError ? /*#__PURE__*/_react.default.createElement("pre", {
64
- className: classes.errorBox
50
+ style: {
51
+ background: 'lightgrey',
52
+ border: '1px solid black',
53
+ margin: 20
54
+ }
65
55
  }, JSON.stringify(JSON.parse(snapshotError), null, 2)) : null);
66
56
  };
67
57
 
@@ -7,17 +7,17 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
10
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
11
11
 
12
- var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
12
+ var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
13
13
 
14
- var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
14
+ var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
15
15
 
16
- var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
16
+ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
17
17
 
18
- var _DialogContentText = _interopRequireDefault(require("@material-ui/core/DialogContentText"));
18
+ var _DialogContentText = _interopRequireDefault(require("@mui/material/DialogContentText"));
19
19
 
20
- var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
20
+ var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
21
21
 
22
22
  var _react = _interopRequireDefault(require("react"));
23
23
 
@@ -11,15 +11,15 @@ exports.default = void 0;
11
11
 
12
12
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
13
 
14
- var _Button = _interopRequireDefault(require("@material-ui/core/Button"));
14
+ var _Button = _interopRequireDefault(require("@mui/material/Button"));
15
15
 
16
- var _Dialog = _interopRequireDefault(require("@material-ui/core/Dialog"));
16
+ var _Dialog = _interopRequireDefault(require("@mui/material/Dialog"));
17
17
 
18
- var _DialogActions = _interopRequireDefault(require("@material-ui/core/DialogActions"));
18
+ var _DialogActions = _interopRequireDefault(require("@mui/material/DialogActions"));
19
19
 
20
- var _DialogContent = _interopRequireDefault(require("@material-ui/core/DialogContent"));
20
+ var _DialogContent = _interopRequireDefault(require("@mui/material/DialogContent"));
21
21
 
22
- var _DialogTitle = _interopRequireDefault(require("@material-ui/core/DialogTitle"));
22
+ var _DialogTitle = _interopRequireDefault(require("@mui/material/DialogTitle"));
23
23
 
24
24
  var _propTypes = _interopRequireDefault(require("prop-types"));
25
25
 
@@ -21,20 +21,18 @@ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/h
21
21
 
22
22
  var _react = _interopRequireWildcard(require("react"));
23
23
 
24
- var _core = require("@material-ui/core");
25
-
26
- var _lab = require("@material-ui/lab");
27
-
28
24
  var _mobxReact = require("mobx-react");
29
25
 
30
- var _types = require("../../util/types");
26
+ var _material = require("@mui/material");
31
27
 
32
- var _ArrowDropDown = _interopRequireDefault(require("@material-ui/icons/ArrowDropDown"));
28
+ var _types = require("../../util/types");
33
29
 
34
30
  var _LocalFileChooser = _interopRequireDefault(require("./LocalFileChooser"));
35
31
 
36
32
  var _UrlChooser = _interopRequireDefault(require("./UrlChooser"));
37
33
 
34
+ var _ArrowDropDown = _interopRequireDefault(require("@mui/icons-material/ArrowDropDown"));
35
+
38
36
  var _excluded = ["title", "children"];
39
37
 
40
38
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -49,9 +47,9 @@ function ToggleButtonWithTooltip(props) {
49
47
  var title = props.title,
50
48
  children = props.children,
51
49
  other = (0, _objectWithoutProperties2.default)(props, _excluded);
52
- return /*#__PURE__*/_react.default.createElement(_core.Tooltip, {
50
+ return /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
53
51
  title: title || ''
54
- }, /*#__PURE__*/_react.default.createElement(_lab.ToggleButton, other, children));
52
+ }, /*#__PURE__*/_react.default.createElement(_material.ToggleButton, other, children));
55
53
  }
56
54
 
57
55
  function shorten(str, len) {
@@ -124,14 +122,14 @@ var FileSelector = (0, _mobxReact.observer)(function (props) {
124
122
  }));
125
123
  }
126
124
 
127
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.Box, {
125
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.Box, {
128
126
  display: "flex"
129
- }, /*#__PURE__*/_react.default.createElement(_core.InputLabel, {
127
+ }, /*#__PURE__*/_react.default.createElement(_material.InputLabel, {
130
128
  shrink: true
131
- }, name)), /*#__PURE__*/_react.default.createElement(_core.Box, {
129
+ }, name)), /*#__PURE__*/_react.default.createElement(_material.Box, {
132
130
  display: "flex",
133
131
  flexDirection: "row"
134
- }, /*#__PURE__*/_react.default.createElement(_core.Box, null, /*#__PURE__*/_react.default.createElement(_lab.ToggleButtonGroup, {
132
+ }, /*#__PURE__*/_react.default.createElement(_material.Box, null, /*#__PURE__*/_react.default.createElement(_material.ToggleButtonGroup, {
135
133
  value: toggleButtonValue,
136
134
  exclusive: true,
137
135
  onChange: function onChange(_event, newState) {
@@ -144,10 +142,10 @@ var FileSelector = (0, _mobxReact.observer)(function (props) {
144
142
  }
145
143
  },
146
144
  "aria-label": "file, url, or account picker"
147
- }, new URLSearchParams(window.location.search).get('adminKey') ? null : /*#__PURE__*/_react.default.createElement(_lab.ToggleButton, {
145
+ }, new URLSearchParams(window.location.search).get('adminKey') ? null : /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
148
146
  value: "file",
149
147
  "aria-label": "local file"
150
- }, "File"), /*#__PURE__*/_react.default.createElement(_lab.ToggleButton, {
148
+ }, "File"), /*#__PURE__*/_react.default.createElement(_material.ToggleButton, {
151
149
  value: "url",
152
150
  "aria-label": "url"
153
151
  }, "URL"), shownAccts.map(function (_ref) {
@@ -160,18 +158,20 @@ var FileSelector = (0, _mobxReact.observer)(function (props) {
160
158
  "aria-label": name,
161
159
  title: name
162
160
  }, typeof toggleContents === 'string' ? shorten(toggleContents, 5) : toggleContents || shorten(name, 5));
163
- }), hiddenAccts.length ? /*#__PURE__*/_react.default.createElement(_lab.ToggleButton, {
161
+ }), hiddenAccts.length ?
162
+ /*#__PURE__*/
163
+ // @ts-ignore
164
+ _react.default.createElement(_material.ToggleButton, {
164
165
  onClick: function onClick(event) {
165
166
  return setAnchorEl(event.target);
166
167
  },
167
168
  selected: false
168
- }, "More", /*#__PURE__*/_react.default.createElement(_ArrowDropDown.default, null)) : null), /*#__PURE__*/_react.default.createElement(_core.Menu, {
169
+ }, "More", /*#__PURE__*/_react.default.createElement(_ArrowDropDown.default, null)) : null), /*#__PURE__*/_react.default.createElement(_material.Menu, {
169
170
  open: Boolean(anchorEl),
170
171
  anchorEl: anchorEl,
171
172
  onClose: function onClose() {
172
173
  return setAnchorEl(null);
173
174
  },
174
- getContentAnchorEl: null,
175
175
  anchorOrigin: {
176
176
  vertical: 'bottom',
177
177
  horizontal: 'center'
@@ -181,7 +181,7 @@ var FileSelector = (0, _mobxReact.observer)(function (props) {
181
181
  horizontal: 'center'
182
182
  }
183
183
  }, hiddenAccts === null || hiddenAccts === void 0 ? void 0 : hiddenAccts.map(function (acct, idx) {
184
- return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
184
+ return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
185
185
  key: acct.internetAccountId,
186
186
  value: acct.internetAccountId,
187
187
  onClick: function onClick() {
@@ -192,7 +192,7 @@ var FileSelector = (0, _mobxReact.observer)(function (props) {
192
192
  setAnchorEl(null);
193
193
  }
194
194
  }, acct.name);
195
- })))), locationInput, /*#__PURE__*/_react.default.createElement(_core.FormHelperText, null, description));
195
+ })))), locationInput, /*#__PURE__*/_react.default.createElement(_material.FormHelperText, null, description));
196
196
  });
197
197
  var _default = FileSelector;
198
198
  exports.default = _default;
@@ -9,7 +9,9 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _core = require("@material-ui/core");
12
+ var _material = require("@mui/material");
13
+
14
+ var _mui = require("tss-react/mui");
13
15
 
14
16
  var _util = require("../../util");
15
17
 
@@ -23,7 +25,7 @@ function isBlobLocation(location) {
23
25
  return 'blobId' in location;
24
26
  }
25
27
 
26
- var useStyles = (0, _core.makeStyles)(function (theme) {
28
+ var useStyles = (0, _mui.makeStyles)()(function (theme) {
27
29
  return {
28
30
  filename: {
29
31
  marginLeft: theme.spacing(1)
@@ -32,18 +34,20 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
32
34
  });
33
35
 
34
36
  function LocalFileChooser(props) {
35
- var classes = useStyles();
37
+ var _useStyles = useStyles(),
38
+ classes = _useStyles.classes;
39
+
36
40
  var location = props.location,
37
41
  setLocation = props.setLocation;
38
42
  var filename = location && (isBlobLocation(location) && location.name || isLocalPathLocation(location) && location.localPath);
39
43
  var needToReload = location && isBlobLocation(location) && !(0, _tracks.getBlob)(location.blobId);
40
- return /*#__PURE__*/_react.default.createElement(_core.Box, {
44
+ return /*#__PURE__*/_react.default.createElement(_material.Box, {
41
45
  display: "flex",
42
46
  flexDirection: "row",
43
47
  alignItems: "center"
44
- }, /*#__PURE__*/_react.default.createElement(_core.Box, null, /*#__PURE__*/_react.default.createElement(_core.FormControl, {
48
+ }, /*#__PURE__*/_react.default.createElement(_material.Box, null, /*#__PURE__*/_react.default.createElement(_material.FormControl, {
45
49
  fullWidth: true
46
- }, /*#__PURE__*/_react.default.createElement(_core.Button, {
50
+ }, /*#__PURE__*/_react.default.createElement(_material.Button, {
47
51
  variant: "outlined",
48
52
  component: "label"
49
53
  }, "Choose File", /*#__PURE__*/_react.default.createElement("input", {
@@ -66,11 +70,11 @@ function LocalFileChooser(props) {
66
70
  }
67
71
  }
68
72
  }
69
- })))), /*#__PURE__*/_react.default.createElement(_core.Box, null, /*#__PURE__*/_react.default.createElement(_core.Typography, {
73
+ })))), /*#__PURE__*/_react.default.createElement(_material.Box, null, /*#__PURE__*/_react.default.createElement(_material.Typography, {
70
74
  component: "span",
71
75
  className: classes.filename,
72
76
  color: filename ? 'initial' : 'textSecondary'
73
- }, filename || 'No file chosen'), needToReload ? /*#__PURE__*/_react.default.createElement(_core.Typography, {
77
+ }, filename || 'No file chosen'), needToReload ? /*#__PURE__*/_react.default.createElement(_material.Typography, {
74
78
  color: "error"
75
79
  }, "(need to reload)") : null));
76
80
  }
@@ -9,7 +9,7 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _core = require("@material-ui/core");
12
+ var _material = require("@mui/material");
13
13
 
14
14
  var _mobxReact = require("mobx-react");
15
15
 
@@ -19,7 +19,7 @@ function UrlChooser(props) {
19
19
  var location = props.location,
20
20
  setLocation = props.setLocation,
21
21
  label = props.label;
22
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.TextField, {
22
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.TextField, {
23
23
  fullWidth: true,
24
24
  variant: "outlined",
25
25
  inputProps: {
package/ui/Icons.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { SvgIconProps } from '@material-ui/core/SvgIcon';
2
+ import { SvgIconProps } from '@mui/material/SvgIcon';
3
3
  export declare function ContentCopy(props: SvgIconProps): JSX.Element;
4
4
  export declare function Indexing(props: SvgIconProps): JSX.Element;
5
5
  export declare function ContentCut(props: SvgIconProps): JSX.Element;
package/ui/Icons.js CHANGED
@@ -15,7 +15,7 @@ exports.Save = Save;
15
15
  exports.SaveAs = SaveAs;
16
16
  exports.TrackSelector = TrackSelector;
17
17
 
18
- var _SvgIcon = _interopRequireDefault(require("@material-ui/core/SvgIcon"));
18
+ var _SvgIcon = _interopRequireDefault(require("@mui/material/SvgIcon"));
19
19
 
20
20
  var _react = _interopRequireDefault(require("react"));
21
21
 
package/ui/Menu.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { PopoverProps, SvgIconProps } from '@material-ui/core';
2
+ import { PopoverProps, SvgIconProps } from '@mui/material';
3
3
  interface MenuItemEndDecorationSubMenuProps {
4
4
  type: 'subMenu';
5
5
  }
package/ui/Menu.js CHANGED
@@ -20,17 +20,19 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
20
20
 
21
21
  var _react = _interopRequireWildcard(require("react"));
22
22
 
23
- var _core = require("@material-ui/core");
23
+ var _material = require("@mui/material");
24
24
 
25
- var _ArrowRight = _interopRequireDefault(require("@material-ui/icons/ArrowRight"));
25
+ var _mui = require("tss-react/mui");
26
26
 
27
- var _CheckBox = _interopRequireDefault(require("@material-ui/icons/CheckBox"));
27
+ var _ArrowRight = _interopRequireDefault(require("@mui/icons-material/ArrowRight"));
28
28
 
29
- var _CheckBoxOutlineBlank = _interopRequireDefault(require("@material-ui/icons/CheckBoxOutlineBlank"));
29
+ var _CheckBox = _interopRequireDefault(require("@mui/icons-material/CheckBox"));
30
30
 
31
- var _RadioButtonChecked = _interopRequireDefault(require("@material-ui/icons/RadioButtonChecked"));
31
+ var _CheckBoxOutlineBlank = _interopRequireDefault(require("@mui/icons-material/CheckBoxOutlineBlank"));
32
32
 
33
- var _RadioButtonUnchecked = _interopRequireDefault(require("@material-ui/icons/RadioButtonUnchecked"));
33
+ var _RadioButtonChecked = _interopRequireDefault(require("@mui/icons-material/RadioButtonChecked"));
34
+
35
+ var _RadioButtonUnchecked = _interopRequireDefault(require("@mui/icons-material/RadioButtonUnchecked"));
34
36
 
35
37
  var _util = require("../util");
36
38
 
@@ -44,7 +46,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
44
46
 
45
47
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
46
48
 
47
- var useStyles = (0, _core.makeStyles)({
49
+ var useStyles = (0, _mui.makeStyles)()({
48
50
  paper: {
49
51
  position: 'fixed',
50
52
  overflowY: 'auto',
@@ -67,7 +69,9 @@ var useStyles = (0, _core.makeStyles)({
67
69
  });
68
70
 
69
71
  function MenuItemEndDecoration(props) {
70
- var classes = useStyles();
72
+ var _useStyles = useStyles(),
73
+ classes = _useStyles.classes;
74
+
71
75
  var type = props.type;
72
76
  var checked;
73
77
  var disabled;
@@ -158,8 +162,11 @@ var MenuPage = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
158
162
  position = _useState10[0],
159
163
  setPosition = _useState10[1];
160
164
 
161
- var paperRef = (0, _react.useRef)();
162
- var classes = useStyles();
165
+ var paperRef = (0, _react.useRef)(null);
166
+
167
+ var _useStyles2 = useStyles(),
168
+ classes = _useStyles2.classes;
169
+
163
170
  var menuItems = props.menuItems,
164
171
  onMenuItemClick = props.onMenuItemClick,
165
172
  open = props.open,
@@ -223,20 +230,21 @@ var MenuPage = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
223
230
  };
224
231
  }
225
232
 
226
- var ListContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_core.MenuList, {
227
- autoFocusItem: open && !isSubMenuOpen
233
+ var ListContents = /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.MenuList, {
234
+ autoFocusItem: open && !isSubMenuOpen,
235
+ dense: true
228
236
  }, menuItems.sort(function (a, b) {
229
237
  return (b.priority || 0) - (a.priority || 0);
230
238
  }).map(function (menuItem, idx) {
231
239
  if (menuItem.type === 'divider') {
232
- return /*#__PURE__*/_react.default.createElement(_core.Divider, {
240
+ return /*#__PURE__*/_react.default.createElement(_material.Divider, {
233
241
  key: "divider-".concat(idx),
234
242
  component: "li"
235
243
  });
236
244
  }
237
245
 
238
246
  if (menuItem.type === 'subHeader') {
239
- return /*#__PURE__*/_react.default.createElement(_core.ListSubheader, {
247
+ return /*#__PURE__*/_react.default.createElement(_material.ListSubheader, {
240
248
  key: "subHeader-".concat(menuItem.label, "-").concat(idx)
241
249
  }, menuItem.label);
242
250
  }
@@ -246,7 +254,7 @@ var MenuPage = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
246
254
 
247
255
  if (menuItem.icon) {
248
256
  var Icon = menuItem.icon;
249
- icon = /*#__PURE__*/_react.default.createElement(_core.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(Icon, null));
257
+ icon = /*#__PURE__*/_react.default.createElement(_material.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(Icon, null));
250
258
  }
251
259
 
252
260
  if ('subMenu' in menuItem) {
@@ -262,7 +270,7 @@ var MenuPage = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
262
270
  }
263
271
 
264
272
  var onClick = 'onClick' in menuItem ? handleClick(menuItem.onClick) : undefined;
265
- return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
273
+ return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
266
274
  key: menuItem.label,
267
275
  style: menuItemStyle,
268
276
  selected: idx === selectedMenuItemIdx,
@@ -300,15 +308,10 @@ var MenuPage = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
300
308
  }
301
309
  },
302
310
  disabled: Boolean(menuItem.disabled)
303
- }, icon, /*#__PURE__*/_react.default.createElement(_core.ListItemText, {
311
+ }, icon, /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
304
312
  primary: menuItem.label,
305
313
  secondary: menuItem.subLabel,
306
314
  inset: hasIcon && !menuItem.icon
307
- }), /*#__PURE__*/_react.default.createElement("div", {
308
- style: {
309
- flexGrow: 1,
310
- minWidth: 10
311
- }
312
315
  }), endDecoration);
313
316
  })), menuItems.map(function (menuItem, idx) {
314
317
  var subMenu = null;
@@ -330,17 +333,13 @@ var MenuPage = /*#__PURE__*/_react.default.forwardRef(function (props, ref) {
330
333
  return subMenu;
331
334
  }));
332
335
 
333
- if (top) {
334
- return ListContents;
335
- }
336
-
337
- return /*#__PURE__*/_react.default.createElement(_core.Grow, {
336
+ return top ? ListContents : /*#__PURE__*/_react.default.createElement(_material.Grow, {
338
337
  in: open,
339
338
  style: {
340
339
  transformOrigin: "0 0 0"
341
340
  },
342
341
  ref: ref
343
- }, /*#__PURE__*/_react.default.createElement(_core.Paper, {
342
+ }, /*#__PURE__*/_react.default.createElement(_material.Paper, {
344
343
  elevation: 8,
345
344
  ref: paperRef,
346
345
  className: classes.paper,
@@ -354,7 +353,7 @@ function Menu(props) {
354
353
  menuItems = props.menuItems,
355
354
  onMenuItemClick = props.onMenuItemClick,
356
355
  other = (0, _objectWithoutProperties2.default)(props, _excluded);
357
- return /*#__PURE__*/_react.default.createElement(_core.Popover, (0, _extends2.default)({
356
+ return /*#__PURE__*/_react.default.createElement(_material.Popover, (0, _extends2.default)({
358
357
  transitionDuration: 0,
359
358
  open: open,
360
359
  onClose: onClose,
@@ -11,6 +11,8 @@ exports.default = void 0;
11
11
 
12
12
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
13
 
14
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
15
+
14
16
  var _propTypes = _interopRequireDefault(require("prop-types"));
15
17
 
16
18
  var _react = _interopRequireWildcard(require("react"));
@@ -33,6 +35,12 @@ function PrerenderedCanvas(props) {
33
35
  imageData = props.imageData,
34
36
  blockKey = props.blockKey,
35
37
  showSoftClip = props.showSoftClip;
38
+
39
+ var _useState = (0, _react.useState)(false),
40
+ _useState2 = (0, _slicedToArray2.default)(_useState, 2),
41
+ done = _useState2[0],
42
+ setDone = _useState2[1];
43
+
36
44
  var featureCanvas = (0, _react.useRef)(null);
37
45
  (0, _react.useEffect)(function () {
38
46
  if (!imageData) {
@@ -52,10 +60,11 @@ function PrerenderedCanvas(props) {
52
60
  }
53
61
 
54
62
  (0, _offscreenCanvasPonyfill.drawImageOntoCanvasContext)(imageData, context);
63
+ setDone(true);
55
64
  }, [imageData]);
56
65
  var softClipString = showSoftClip ? '_softclipped' : '';
57
66
  var blockKeyStr = blockKey ? '_' + blockKey : '';
58
- var testId = "prerendered_canvas".concat(softClipString).concat(blockKeyStr);
67
+ var testId = "prerendered_canvas".concat(softClipString).concat(blockKeyStr).concat(done ? '_done' : '');
59
68
  return /*#__PURE__*/_react.default.createElement("canvas", {
60
69
  "data-testid": testId,
61
70
  ref: featureCanvas,