@jbrowse/core 1.7.9 → 2.0.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 (86) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +14 -7
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +203 -125
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +20 -15
  4. package/BaseFeatureWidget/index.d.ts +23 -2
  5. package/BaseFeatureWidget/index.js +100 -3
  6. package/BaseFeatureWidget/index.test.js +48 -30
  7. package/PluginManager.d.ts +58 -86
  8. package/ReExports/Attributes.d.ts +2 -0
  9. package/ReExports/Attributes.js +12 -0
  10. package/ReExports/BaseCard.d.ts +2 -0
  11. package/ReExports/BaseCard.js +12 -0
  12. package/ReExports/DataGrid.d.ts +2 -0
  13. package/ReExports/DataGrid.js +13 -0
  14. package/ReExports/FeatureDetails.d.ts +2 -0
  15. package/ReExports/FeatureDetails.js +12 -0
  16. package/ReExports/list.js +1 -1
  17. package/ReExports/material-ui-colors.d.ts +1 -19
  18. package/ReExports/material-ui-colors.js +11 -152
  19. package/ReExports/modules.d.ts +59 -91
  20. package/ReExports/modules.js +683 -127
  21. package/TextSearch/TextSearchManager.d.ts +3 -1
  22. package/assemblyManager/assembly.d.ts +6 -7
  23. package/assemblyManager/assembly.js +27 -16
  24. package/assemblyManager/assemblyManager.d.ts +82 -24
  25. package/assemblyManager/assemblyManager.js +32 -36
  26. package/configuration/util.d.ts +1 -1
  27. package/package.json +15 -15
  28. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
  29. package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
  30. package/pluggableElementTypes/models/BaseTrackModel.js +24 -25
  31. package/pluggableElementTypes/models/baseTrackConfig.js +20 -13
  32. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -2
  33. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
  34. package/pluggableElementTypes/renderers/ServerSideRendererType.js +1 -1
  35. package/rpc/BaseRpcDriver.js +1 -1
  36. package/tsconfig.build.tsbuildinfo +1 -1
  37. package/ui/AboutDialog.d.ts +1 -1
  38. package/ui/AboutDialog.js +38 -16
  39. package/ui/App.js +18 -37
  40. package/ui/AssemblySelector.d.ts +1 -1
  41. package/ui/AssemblySelector.js +10 -5
  42. package/ui/CascadingMenu.d.ts +9 -0
  43. package/ui/CascadingMenu.js +207 -0
  44. package/ui/Drawer.js +8 -5
  45. package/ui/DrawerWidget.js +39 -45
  46. package/ui/DropDownMenu.d.ts +0 -8
  47. package/ui/DropDownMenu.js +9 -15
  48. package/ui/EditableTypography.d.ts +1 -1
  49. package/ui/EditableTypography.js +42 -48
  50. package/ui/ErrorMessage.js +13 -23
  51. package/ui/FactoryResetDialog.js +6 -6
  52. package/ui/FatalErrorDialog.js +5 -5
  53. package/ui/FileSelector/FileSelector.js +19 -19
  54. package/ui/FileSelector/LocalFileChooser.js +12 -8
  55. package/ui/FileSelector/UrlChooser.js +2 -2
  56. package/ui/Icons.d.ts +1 -1
  57. package/ui/Icons.js +1 -1
  58. package/ui/Menu.d.ts +11 -1
  59. package/ui/Menu.js +32 -38
  60. package/ui/PrerenderedCanvas.js +10 -1
  61. package/ui/ResizeHandle.js +8 -6
  62. package/ui/ReturnToImportFormDialog.js +14 -10
  63. package/ui/SanitizedHTML.js +15 -21
  64. package/ui/Snackbar.js +11 -9
  65. package/ui/Tooltip.d.ts +3 -1
  66. package/ui/Tooltip.js +5 -3
  67. package/ui/ViewContainer.js +38 -25
  68. package/ui/index.d.ts +1 -0
  69. package/ui/index.js +9 -0
  70. package/ui/theme.d.ts +279 -131
  71. package/ui/theme.js +174 -154
  72. package/ui/theme.test.js +56 -75
  73. package/util/Base1DViewModel.d.ts +1 -8
  74. package/util/Base1DViewModel.js +11 -13
  75. package/util/color/index.js +6 -6
  76. package/util/index.d.ts +4 -8
  77. package/util/index.js +29 -19
  78. package/util/jexl.js +42 -43
  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
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { AnyConfigurationModel } from '../configuration/configurationSchema';
2
+ import { AnyConfigurationModel } from '../configuration';
3
3
  export default function AboutDialog({ config, handleClose, }: {
4
4
  config: AnyConfigurationModel;
5
5
  handleClose: () => void;
package/ui/AboutDialog.js CHANGED
@@ -17,9 +17,13 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
17
17
 
18
18
  var _react = _interopRequireWildcard(require("react"));
19
19
 
20
- var _core = require("@material-ui/core");
20
+ var _copyToClipboard = _interopRequireDefault(require("copy-to-clipboard"));
21
21
 
22
- var _Close = _interopRequireDefault(require("@material-ui/icons/Close"));
22
+ var _material = require("@mui/material");
23
+
24
+ var _Close = _interopRequireDefault(require("@mui/icons-material/Close"));
25
+
26
+ var _mui = require("tss-react/mui");
23
27
 
24
28
  var _configuration = require("../configuration");
25
29
 
@@ -31,7 +35,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
31
35
 
32
36
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
33
37
 
34
- var useStyles = (0, _core.makeStyles)(function (theme) {
38
+ var useStyles = (0, _mui.makeStyles)()(function (theme) {
35
39
  return {
36
40
  closeButton: {
37
41
  position: 'absolute',
@@ -45,7 +49,9 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
45
49
  function AboutDialog(_ref) {
46
50
  var config = _ref.config,
47
51
  handleClose = _ref.handleClose;
48
- var classes = useStyles();
52
+
53
+ var _useStyles = useStyles(),
54
+ classes = _useStyles.classes;
49
55
 
50
56
  var _useState = (0, _react.useState)(),
51
57
  _useState2 = (0, _slicedToArray2.default)(_useState, 2),
@@ -57,6 +63,11 @@ function AboutDialog(_ref) {
57
63
  error = _useState4[0],
58
64
  setError = _useState4[1];
59
65
 
66
+ var _useState5 = (0, _react.useState)(false),
67
+ _useState6 = (0, _slicedToArray2.default)(_useState5, 2),
68
+ copied = _useState6[0],
69
+ setCopied = _useState6[1];
70
+
60
71
  var session = (0, _util.getSession)(config);
61
72
  var rpcManager = session.rpcManager;
62
73
  var conf = (0, _configuration.readConfObject)(config);
@@ -112,35 +123,46 @@ function AboutDialog(_ref) {
112
123
  var trackName = (0, _configuration.readConfObject)(config, 'name');
113
124
 
114
125
  if ((0, _configuration.readConfObject)(config, 'type') === 'ReferenceSequenceTrack') {
115
- trackName = 'Reference Sequence';
116
- session.assemblies.forEach(function (assembly) {
117
- if (assembly.sequence === config.configuration) {
118
- trackName = "Reference Sequence (".concat((0, _configuration.readConfObject)(assembly, 'name'), ")");
119
- }
126
+ var asm = session.assemblies.find(function (a) {
127
+ return a.sequence === config.configuration;
120
128
  });
129
+ trackName = asm ? "Reference Sequence (".concat((0, _configuration.readConfObject)(asm, 'name'), ")") : 'Reference Sequence';
121
130
  }
122
131
 
123
132
  var details = typeof info === 'string' ? {
124
133
  header: "<pre>".concat(info.replace(/</g, '&lt;').replace(/>/g, '&gt;'), "</pre>")
125
134
  } : info || {};
126
- return /*#__PURE__*/_react.default.createElement(_core.Dialog, {
135
+ return /*#__PURE__*/_react.default.createElement(_material.Dialog, {
127
136
  open: true,
128
137
  onClose: handleClose
129
- }, /*#__PURE__*/_react.default.createElement(_core.DialogTitle, null, trackName, /*#__PURE__*/_react.default.createElement(_core.IconButton, {
138
+ }, /*#__PURE__*/_react.default.createElement(_material.DialogTitle, null, trackName, /*#__PURE__*/_react.default.createElement(_material.IconButton, {
130
139
  className: classes.closeButton,
131
140
  onClick: function onClick() {
132
141
  return handleClose();
133
- }
134
- }, /*#__PURE__*/_react.default.createElement(_Close.default, null))), /*#__PURE__*/_react.default.createElement(_core.DialogContent, null, /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.BaseCard, {
142
+ },
143
+ size: "large"
144
+ }, /*#__PURE__*/_react.default.createElement(_Close.default, null))), /*#__PURE__*/_react.default.createElement(_material.DialogContent, null, /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.BaseCard, {
135
145
  title: "Configuration"
136
- }, /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.Attributes, {
146
+ }, /*#__PURE__*/_react.default.createElement(_material.Button, {
147
+ variant: "contained",
148
+ style: {
149
+ float: 'right'
150
+ },
151
+ onClick: function onClick() {
152
+ (0, _copyToClipboard.default)(JSON.stringify(conf, null, 2));
153
+ setCopied(true);
154
+ setTimeout(function () {
155
+ return setCopied(false);
156
+ }, 1000);
157
+ }
158
+ }, copied ? 'Copied to clipboard!' : 'Copy config'), /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.Attributes, {
137
159
  attributes: conf,
138
160
  omit: ['displays', 'baseUri', 'refNames']
139
161
  })), info !== null ? /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.BaseCard, {
140
162
  title: "File info"
141
- }, error ? /*#__PURE__*/_react.default.createElement(_core.Typography, {
163
+ }, error ? /*#__PURE__*/_react.default.createElement(_material.Typography, {
142
164
  color: "error"
143
- }, "".concat(error)) : !info ? 'Loading file data...' : /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.Attributes, {
165
+ }, "".concat(error)) : info === undefined ? 'Loading file data...' : /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.Attributes, {
144
166
  attributes: details
145
167
  })) : null));
146
168
  }
package/ui/App.js CHANGED
@@ -13,9 +13,11 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
13
13
 
14
14
  var _react = _interopRequireWildcard(require("react"));
15
15
 
16
- var _core = require("@material-ui/core");
16
+ var _material = require("@mui/material");
17
17
 
18
- var _Launch = _interopRequireDefault(require("@material-ui/icons/Launch"));
18
+ var _mui = require("tss-react/mui");
19
+
20
+ var _Launch = _interopRequireDefault(require("@mui/icons-material/Launch"));
19
21
 
20
22
  var _mobxReact = require("mobx-react");
21
23
 
@@ -40,33 +42,10 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
40
42
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
41
43
 
42
44
  // locals
43
- var useStyles = (0, _core.makeStyles)(function (theme) {
45
+ var useStyles = (0, _mui.makeStyles)()(function (theme) {
44
46
  return {
45
- '@global': {
46
- html: {
47
- 'font-family': 'Roboto'
48
- },
49
-
50
- /* Based on: https://www.digitalocean.com/community/tutorials/css-scrollbars */
51
-
52
- /* The emerging W3C standard
53
- that is currently Firefox-only */
54
- '*': {
55
- 'scrollbar-width': 'auto',
56
- 'scrollbar-color': 'rgba(0,0,0,.5) rgba(128,128,128)'
57
- },
58
-
59
- /* Works on Chrome/Edge/Safari */
60
- '*::-webkit-scrollbar': {
61
- '-webkit-appearance': 'none',
62
- width: '12px'
63
- },
64
- '*::-webkit-scrollbar-thumb': {
65
- 'background-color': 'rgba(0,0,0,.5)',
66
- '-webkit-box-shadow': '0 0 1px rgba(255,255,255,.5)'
67
- }
68
- },
69
47
  root: {
48
+ fontFamily: 'Roboto',
70
49
  display: 'grid',
71
50
  height: '100vh',
72
51
  width: '100%'
@@ -141,7 +120,9 @@ var App = (0, _mobxReact.observer)(function (_ref2) {
141
120
  var session = _ref2.session,
142
121
  _ref2$HeaderButtons = _ref2.HeaderButtons,
143
122
  HeaderButtons = _ref2$HeaderButtons === void 0 ? /*#__PURE__*/_react.default.createElement("div", null) : _ref2$HeaderButtons;
144
- var classes = useStyles();
123
+
124
+ var _useStyles = useStyles(),
125
+ classes = _useStyles.classes;
145
126
 
146
127
  var _getEnv = (0, _mobxStateTree.getEnv)(session),
147
128
  pluginManager = _getEnv.pluginManager;
@@ -195,10 +176,10 @@ var App = (0, _mobxReact.observer)(function (_ref2) {
195
176
  className: classes.menuBarAndComponents
196
177
  }, /*#__PURE__*/_react.default.createElement("div", {
197
178
  className: classes.menuBar
198
- }, /*#__PURE__*/_react.default.createElement(_core.AppBar, {
179
+ }, /*#__PURE__*/_react.default.createElement(_material.AppBar, {
199
180
  className: classes.appBar,
200
181
  position: "static"
201
- }, /*#__PURE__*/_react.default.createElement(_core.Toolbar, null, menus.map(function (menu) {
182
+ }, /*#__PURE__*/_react.default.createElement(_material.Toolbar, null, menus.map(function (menu) {
202
183
  return /*#__PURE__*/_react.default.createElement(_DropDownMenu.default, {
203
184
  key: menu.label,
204
185
  menuTitle: menu.label,
@@ -207,7 +188,7 @@ var App = (0, _mobxReact.observer)(function (_ref2) {
207
188
  });
208
189
  }), /*#__PURE__*/_react.default.createElement("div", {
209
190
  className: classes.grow
210
- }), /*#__PURE__*/_react.default.createElement(_core.Tooltip, {
191
+ }), /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
211
192
  title: "Rename Session",
212
193
  arrow: true
213
194
  }, /*#__PURE__*/_react.default.createElement(_EditableTypography.default, {
@@ -251,20 +232,20 @@ var App = (0, _mobxReact.observer)(function (_ref2) {
251
232
  session: session,
252
233
  getTrackType: pluginManager.getTrackType
253
234
  })));
254
- }) : /*#__PURE__*/_react.default.createElement(_core.Paper, {
235
+ }) : /*#__PURE__*/_react.default.createElement(_material.Paper, {
255
236
  className: classes.selectPaper
256
- }, /*#__PURE__*/_react.default.createElement(_core.Typography, null, "Select a view to launch"), /*#__PURE__*/_react.default.createElement(_core.Select, {
237
+ }, /*#__PURE__*/_react.default.createElement(_material.Typography, null, "Select a view to launch"), /*#__PURE__*/_react.default.createElement(_material.Select, {
257
238
  value: value,
258
239
  onChange: function onChange(event) {
259
240
  return setValue(event.target.value);
260
241
  }
261
242
  }, viewTypes.map(function (_ref3) {
262
243
  var name = _ref3.name;
263
- return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
244
+ return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
264
245
  key: name,
265
246
  value: name
266
247
  }, name);
267
- })), /*#__PURE__*/_react.default.createElement(_core.Button, {
248
+ })), /*#__PURE__*/_react.default.createElement(_material.Button, {
268
249
  onClick: function onClick() {
269
250
  session.addView(value, {});
270
251
  },
@@ -274,9 +255,9 @@ var App = (0, _mobxReact.observer)(function (_ref2) {
274
255
  style: {
275
256
  height: 300
276
257
  }
277
- }))), activeWidgets.size > 0 && minimized ? /*#__PURE__*/_react.default.createElement(_core.Tooltip, {
258
+ }))), activeWidgets.size > 0 && minimized ? /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
278
259
  title: "Open drawer widget"
279
- }, /*#__PURE__*/_react.default.createElement(_core.Fab, {
260
+ }, /*#__PURE__*/_react.default.createElement(_material.Fab, {
280
261
  className: drawerPosition === 'right' ? classes.fabRight : classes.fabLeft,
281
262
  color: "primary",
282
263
  "data-testid": "drawer-maximize",
@@ -1,5 +1,5 @@
1
1
  /// <reference types="react" />
2
- import { InputProps as IIP } from '@material-ui/core';
2
+ import { InputProps as IIP } from '@mui/material';
3
3
  import { AbstractSessionModel } from '../util';
4
4
  declare const AssemblySelector: ({ session, onChange, selected, InputProps, extra, }: {
5
5
  session: AbstractSessionModel;
@@ -17,13 +17,15 @@ var _mobxReact = require("mobx-react");
17
17
 
18
18
  var _configuration = require("../configuration");
19
19
 
20
- var _core = require("@material-ui/core");
20
+ var _material = require("@mui/material");
21
+
22
+ var _mui = require("tss-react/mui");
21
23
 
22
24
  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); }
23
25
 
24
26
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
25
27
 
26
- var useStyles = (0, _core.makeStyles)(function () {
28
+ var useStyles = (0, _mui.makeStyles)()(function () {
27
29
  return {
28
30
  importFormEntry: {
29
31
  minWidth: 180
@@ -72,7 +74,10 @@ var AssemblySelector = (0, _mobxReact.observer)(function (_ref) {
72
74
  InputProps = _ref.InputProps,
73
75
  _ref$extra = _ref.extra,
74
76
  extra = _ref$extra === void 0 ? 0 : _ref$extra;
75
- var classes = useStyles();
77
+
78
+ var _useStyles = useStyles(),
79
+ classes = _useStyles.classes;
80
+
76
81
  var assemblyNames = session.assemblyNames,
77
82
  assemblyManager = session.assemblyManager; // constructs a localstorage key based on host/path/config to help
78
83
  // remember. non-config assists usage with e.g. embedded apps
@@ -91,7 +96,7 @@ var AssemblySelector = (0, _mobxReact.observer)(function (_ref) {
91
96
  }
92
97
  }, [selection, onChange, selected]);
93
98
  var error = assemblyNames.length ? '' : 'No configured assemblies';
94
- return /*#__PURE__*/_react.default.createElement(_core.TextField, {
99
+ return /*#__PURE__*/_react.default.createElement(_material.TextField, {
95
100
  select: true,
96
101
  label: "Assembly",
97
102
  variant: "outlined",
@@ -110,7 +115,7 @@ var AssemblySelector = (0, _mobxReact.observer)(function (_ref) {
110
115
  }, assemblyNames.map(function (name) {
111
116
  var assembly = assemblyManager.get(name);
112
117
  var displayName = assembly ? (0, _configuration.getConf)(assembly, 'displayName') : '';
113
- return /*#__PURE__*/_react.default.createElement(_core.MenuItem, {
118
+ return /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
114
119
  key: name,
115
120
  value: name
116
121
  }, displayName || name);
@@ -0,0 +1,9 @@
1
+ /// <reference types="react" />
2
+ import { MenuItem as JBMenuItem } from './Menu';
3
+ import { PopupState } from 'material-ui-popup-state/hooks';
4
+ declare function CascadingMenuChildren(props: {
5
+ onMenuItemClick: Function;
6
+ menuItems: JBMenuItem[];
7
+ popupState: PopupState;
8
+ }): JSX.Element;
9
+ export default CascadingMenuChildren;
@@ -0,0 +1,207 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof = require("@babel/runtime/helpers/typeof");
6
+
7
+ Object.defineProperty(exports, "__esModule", {
8
+ value: true
9
+ });
10
+ exports.default = void 0;
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
15
+
16
+ var _react = _interopRequireWildcard(require("react"));
17
+
18
+ var _material = require("@mui/material");
19
+
20
+ var _Menu = require("./Menu");
21
+
22
+ var _hooks = require("material-ui-popup-state/hooks");
23
+
24
+ var _HoverMenu = _interopRequireDefault(require("material-ui-popup-state/HoverMenu"));
25
+
26
+ var _ChevronRight = _interopRequireDefault(require("@mui/icons-material/ChevronRight"));
27
+
28
+ var _excluded = ["onClick"],
29
+ _excluded2 = ["title", "inset", "popupId"],
30
+ _excluded3 = ["popupState", "onMenuItemClick", "menuItems", "classes"],
31
+ _excluded4 = ["popupState", "onMenuItemClick", "menuItems"],
32
+ _excluded5 = ["onMenuItemClick", "menuItems"];
33
+
34
+ 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); }
35
+
36
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
37
+
38
+ var CascadingContext = /*#__PURE__*/_react.default.createContext({
39
+ parentPopupState: null,
40
+ rootPopupState: null
41
+ });
42
+
43
+ function CascadingMenuItem(_ref) {
44
+ var onClick = _ref.onClick,
45
+ props = (0, _objectWithoutProperties2.default)(_ref, _excluded);
46
+
47
+ var _useContext = (0, _react.useContext)(CascadingContext),
48
+ rootPopupState = _useContext.rootPopupState;
49
+
50
+ if (!rootPopupState) {
51
+ throw new Error('must be used inside a CascadingMenu');
52
+ }
53
+
54
+ var handleClick = (0, _react.useCallback)(function (event) {
55
+ rootPopupState.close();
56
+ onClick === null || onClick === void 0 ? void 0 : onClick(event);
57
+ }, [rootPopupState, onClick]);
58
+ return /*#__PURE__*/_react.default.createElement(_material.MenuItem, (0, _extends2.default)({}, props, {
59
+ onClick: handleClick
60
+ }));
61
+ }
62
+
63
+ function CascadingSubmenu(_ref2) {
64
+ var title = _ref2.title,
65
+ inset = _ref2.inset,
66
+ popupId = _ref2.popupId,
67
+ props = (0, _objectWithoutProperties2.default)(_ref2, _excluded2);
68
+
69
+ var _React$useContext = _react.default.useContext(CascadingContext),
70
+ parentPopupState = _React$useContext.parentPopupState;
71
+
72
+ var popupState = (0, _hooks.usePopupState)({
73
+ popupId: popupId,
74
+ variant: 'popover',
75
+ parentPopupState: parentPopupState
76
+ });
77
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_material.MenuItem, (0, _extends2.default)({}, (0, _hooks.bindHover)(popupState), (0, _hooks.bindFocus)(popupState)), /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
78
+ primary: title,
79
+ inset: inset
80
+ }), /*#__PURE__*/_react.default.createElement(_ChevronRight.default, null)), /*#__PURE__*/_react.default.createElement(CascadingSubmenuHover, (0, _extends2.default)({}, props, {
81
+ anchorOrigin: {
82
+ vertical: 'top',
83
+ horizontal: 'right'
84
+ },
85
+ transformOrigin: {
86
+ vertical: 'top',
87
+ horizontal: 'left'
88
+ },
89
+ popupState: popupState
90
+ })));
91
+ }
92
+
93
+ function CascadingSubmenuHover(_ref3) {
94
+ var popupState = _ref3.popupState,
95
+ onMenuItemClick = _ref3.onMenuItemClick,
96
+ menuItems = _ref3.menuItems,
97
+ classes = _ref3.classes,
98
+ props = (0, _objectWithoutProperties2.default)(_ref3, _excluded3);
99
+
100
+ var _useContext2 = (0, _react.useContext)(CascadingContext),
101
+ rootPopupState = _useContext2.rootPopupState;
102
+
103
+ var context = (0, _react.useMemo)(function () {
104
+ return {
105
+ rootPopupState: rootPopupState || popupState,
106
+ parentPopupState: popupState
107
+ };
108
+ }, [rootPopupState, popupState]);
109
+ return /*#__PURE__*/_react.default.createElement(CascadingContext.Provider, {
110
+ value: context
111
+ }, /*#__PURE__*/_react.default.createElement(_HoverMenu.default, (0, _extends2.default)({}, props, (0, _hooks.bindMenu)(popupState))));
112
+ }
113
+
114
+ function CascadingMenu(_ref4) {
115
+ var popupState = _ref4.popupState,
116
+ onMenuItemClick = _ref4.onMenuItemClick,
117
+ menuItems = _ref4.menuItems,
118
+ props = (0, _objectWithoutProperties2.default)(_ref4, _excluded4);
119
+
120
+ var _React$useContext2 = _react.default.useContext(CascadingContext),
121
+ rootPopupState = _React$useContext2.rootPopupState;
122
+
123
+ var context = _react.default.useMemo(function () {
124
+ return {
125
+ rootPopupState: rootPopupState || popupState,
126
+ parentPopupState: popupState
127
+ };
128
+ }, [rootPopupState, popupState]);
129
+
130
+ return /*#__PURE__*/_react.default.createElement(CascadingContext.Provider, {
131
+ value: context
132
+ }, /*#__PURE__*/_react.default.createElement(_material.Menu, (0, _extends2.default)({}, props, (0, _hooks.bindMenu)(popupState))));
133
+ }
134
+
135
+ function EndDecoration(_ref5) {
136
+ var item = _ref5.item;
137
+
138
+ if ('subMenu' in item) {
139
+ return /*#__PURE__*/_react.default.createElement(_Menu.MenuItemEndDecoration, {
140
+ type: "subMenu"
141
+ });
142
+ } else if (item.type === 'checkbox' || item.type === 'radio') {
143
+ return /*#__PURE__*/_react.default.createElement(_Menu.MenuItemEndDecoration, {
144
+ type: item.type,
145
+ checked: item.checked,
146
+ disabled: item.disabled
147
+ });
148
+ }
149
+
150
+ return null;
151
+ }
152
+
153
+ function CascadingMenuList(_ref6) {
154
+ var onMenuItemClick = _ref6.onMenuItemClick,
155
+ menuItems = _ref6.menuItems,
156
+ props = (0, _objectWithoutProperties2.default)(_ref6, _excluded5);
157
+
158
+ function handleClick(callback) {
159
+ return function (event) {
160
+ onMenuItemClick(event, callback);
161
+ };
162
+ }
163
+
164
+ var hasIcon = menuItems.some(function (menuItem) {
165
+ return 'icon' in menuItem && menuItem.icon;
166
+ });
167
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, menuItems.map(function (item, idx) {
168
+ return 'subMenu' in item ? /*#__PURE__*/_react.default.createElement(CascadingSubmenu, {
169
+ key: "subMenu-".concat(item.label, "-").concat(idx),
170
+ popupId: "subMenu-".concat(item.label),
171
+ title: item.label,
172
+ inset: hasIcon,
173
+ onMenuItemClick: onMenuItemClick,
174
+ menuItems: item.subMenu
175
+ }, /*#__PURE__*/_react.default.createElement(CascadingMenuList, (0, _extends2.default)({}, props, {
176
+ onMenuItemClick: onMenuItemClick,
177
+ menuItems: item.subMenu
178
+ }))) : item.type === 'divider' ? /*#__PURE__*/_react.default.createElement(_material.Divider, {
179
+ key: "divider-".concat(idx),
180
+ component: "li"
181
+ }) : item.type === 'subHeader' ? /*#__PURE__*/_react.default.createElement(_material.ListSubheader, {
182
+ key: "subHeader-".concat(item.label, "-").concat(idx)
183
+ }, item.label) : /*#__PURE__*/_react.default.createElement(CascadingMenuItem, {
184
+ key: "".concat(item.label, "-").concat(idx),
185
+ onClick: 'onClick' in item ? handleClick(item.onClick) : undefined,
186
+ disabled: Boolean(item.disabled)
187
+ }, item.icon ? /*#__PURE__*/_react.default.createElement(_material.ListItemIcon, null, /*#__PURE__*/_react.default.createElement(item.icon, null)) : null, ' ', /*#__PURE__*/_react.default.createElement(_material.ListItemText, {
188
+ primary: item.label,
189
+ secondary: item.subLabel,
190
+ inset: hasIcon && !item.icon
191
+ }), /*#__PURE__*/_react.default.createElement("div", {
192
+ style: {
193
+ flexGrow: 1,
194
+ minWidth: 10
195
+ }
196
+ }), /*#__PURE__*/_react.default.createElement(EndDecoration, {
197
+ item: item
198
+ }));
199
+ }));
200
+ }
201
+
202
+ function CascadingMenuChildren(props) {
203
+ return /*#__PURE__*/_react.default.createElement(CascadingMenu, props, /*#__PURE__*/_react.default.createElement(CascadingMenuList, props));
204
+ }
205
+
206
+ var _default = CascadingMenuChildren;
207
+ exports.default = _default;
package/ui/Drawer.js CHANGED
@@ -9,15 +9,15 @@ exports.default = void 0;
9
9
 
10
10
  var _react = _interopRequireDefault(require("react"));
11
11
 
12
- var _Paper = _interopRequireDefault(require("@material-ui/core/Paper"));
12
+ var _material = require("@mui/material");
13
13
 
14
- var _styles = require("@material-ui/core/styles");
14
+ var _mui = require("tss-react/mui");
15
15
 
16
16
  var _mobxReact = require("mobx-react");
17
17
 
18
18
  var _ResizeHandle = _interopRequireDefault(require("./ResizeHandle"));
19
19
 
20
- var useStyles = (0, _styles.makeStyles)(function (theme) {
20
+ var useStyles = (0, _mui.makeStyles)()(function (theme) {
21
21
  return {
22
22
  paper: {
23
23
  overflowY: 'auto',
@@ -40,8 +40,11 @@ function Drawer(_ref) {
40
40
  session = _ref.session;
41
41
  var drawerPosition = session.drawerPosition,
42
42
  drawerWidth = session.drawerWidth;
43
- var classes = useStyles();
44
- return /*#__PURE__*/_react.default.createElement(_Paper.default, {
43
+
44
+ var _useStyles = useStyles(),
45
+ classes = _useStyles.classes;
46
+
47
+ return /*#__PURE__*/_react.default.createElement(_material.Paper, {
45
48
  className: classes.paper,
46
49
  elevation: 16,
47
50
  square: true