@jbrowse/core 1.5.1 → 1.5.2

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 (80) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.js +2 -1
  2. package/BaseFeatureWidget/SequenceFeatureDetails.js +1 -1
  3. package/BaseFeatureWidget/index.js +1 -1
  4. package/BaseFeatureWidget/util.js +3 -3
  5. package/PluginLoader.d.ts +25 -2
  6. package/PluginLoader.js +335 -48
  7. package/PluginManager.d.ts +1 -0
  8. package/ReExports/list.js +1 -1
  9. package/ReExports/material-ui-colors.js +38 -38
  10. package/ReExports/modules.d.ts +2 -0
  11. package/ReExports/modules.js +3 -0
  12. package/TextSearch/BaseResults.js +1 -1
  13. package/assemblyManager/assembly.js +5 -3
  14. package/assemblyManager/index.js +4 -4
  15. package/configuration/configurationSchema.js +4 -2
  16. package/configuration/configurationSlot.js +3 -1
  17. package/configuration/index.js +4 -4
  18. package/configuration/util.js +2 -2
  19. package/data_adapters/BaseAdapter.d.ts +1 -1
  20. package/data_adapters/BaseAdapter.js +5 -5
  21. package/data_adapters/CytobandAdapter.js +4 -2
  22. package/data_adapters/dataAdapterCache.js +2 -2
  23. package/package.json +5 -4
  24. package/pluggableElementTypes/RpcMethodType.js +2 -2
  25. package/pluggableElementTypes/index.d.ts +2 -1
  26. package/pluggableElementTypes/index.js +37 -14
  27. package/pluggableElementTypes/models/BaseTrackModel.js +2 -1
  28. package/pluggableElementTypes/models/BaseViewModel.js +6 -2
  29. package/pluggableElementTypes/models/InternetAccountModel.d.ts +2 -2
  30. package/pluggableElementTypes/models/index.js +14 -14
  31. package/pluggableElementTypes/renderers/BoxRendererType.js +3 -3
  32. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +1 -1
  33. package/pluggableElementTypes/renderers/FeatureRendererType.js +1 -1
  34. package/pluggableElementTypes/renderers/RendererType.js +3 -1
  35. package/pluggableElementTypes/renderers/index.d.ts +2 -1
  36. package/rpc/BaseRpcDriver.js +1 -1
  37. package/rpc/BaseRpcDriver.test.js +3 -3
  38. package/rpc/MainThreadRpcDriver.js +2 -2
  39. package/rpc/RpcManager.d.ts +1 -1
  40. package/rpc/RpcManager.js +44 -16
  41. package/rpc/WebWorkerRpcDriver.js +5 -5
  42. package/rpc/coreRpcMethods.js +3 -3
  43. package/rpc/remoteAbortSignals.js +2 -2
  44. package/ui/App.js +2 -0
  45. package/ui/DrawerWidget.js +1 -0
  46. package/ui/Icons.js +4 -4
  47. package/ui/Logo.js +1 -1
  48. package/ui/PrerenderedCanvas.d.ts +1 -0
  49. package/ui/PrerenderedCanvas.js +4 -1
  50. package/ui/SanitizedHTML.js +1 -1
  51. package/ui/SnackbarModel.d.ts +16 -0
  52. package/ui/SnackbarModel.js +56 -0
  53. package/ui/ViewContainer.js +2 -1
  54. package/ui/index.js +24 -24
  55. package/ui/theme.js +5 -3
  56. package/util/aborting.js +4 -3
  57. package/util/blockTypes.js +1 -1
  58. package/util/color/cssColorsLevel4.js +1 -1
  59. package/util/color/index.js +5 -5
  60. package/util/index.d.ts +2 -1
  61. package/util/index.js +61 -32
  62. package/util/io/RemoteFileWithRangeCache.js +3 -3
  63. package/util/io/index.js +1 -1
  64. package/util/jexl.js +4 -1
  65. package/util/layouts/BaseLayout.d.ts +3 -0
  66. package/util/layouts/GranularRectLayout.d.ts +19 -10
  67. package/util/layouts/GranularRectLayout.js +459 -100
  68. package/util/layouts/GranularRectLayout.test.js +57 -10
  69. package/util/layouts/PrecomputedLayout.js +2 -1
  70. package/util/layouts/index.d.ts +7 -0
  71. package/util/layouts/index.js +68 -0
  72. package/util/mst-reflection.js +3 -3
  73. package/util/offscreenCanvasPonyfill.js +3 -3
  74. package/util/range.js +1 -1
  75. package/util/simpleFeature.js +1 -1
  76. package/util/stats.js +2 -2
  77. package/util/tracks.js +10 -10
  78. package/util/types/index.d.ts +7 -1
  79. package/util/types/index.js +10 -10
  80. package/util/types/mst.js +1 -1
@@ -5,28 +5,28 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- Object.defineProperty(exports, "baseConnectionConfig", {
8
+ Object.defineProperty(exports, "BaseConnectionModelFactory", {
9
9
  enumerable: true,
10
10
  get: function get() {
11
- return _baseConnectionConfig.default;
11
+ return _BaseConnectionModelFactory.default;
12
12
  }
13
13
  });
14
- Object.defineProperty(exports, "BaseConnectionModelFactory", {
14
+ Object.defineProperty(exports, "BaseDisplay", {
15
15
  enumerable: true,
16
16
  get: function get() {
17
- return _BaseConnectionModelFactory.default;
17
+ return _BaseDisplayModel.BaseDisplay;
18
18
  }
19
19
  });
20
- Object.defineProperty(exports, "BaseViewModel", {
20
+ Object.defineProperty(exports, "BaseInternetAccountConfig", {
21
21
  enumerable: true,
22
22
  get: function get() {
23
- return _BaseViewModel.default;
23
+ return _baseInternetAccountConfig.BaseInternetAccountConfig;
24
24
  }
25
25
  });
26
- Object.defineProperty(exports, "BaseDisplay", {
26
+ Object.defineProperty(exports, "BaseViewModel", {
27
27
  enumerable: true,
28
28
  get: function get() {
29
- return _BaseDisplayModel.BaseDisplay;
29
+ return _BaseViewModel.default;
30
30
  }
31
31
  });
32
32
  Object.defineProperty(exports, "InternetAccount", {
@@ -35,22 +35,22 @@ Object.defineProperty(exports, "InternetAccount", {
35
35
  return _InternetAccountModel.InternetAccount;
36
36
  }
37
37
  });
38
- Object.defineProperty(exports, "BaseInternetAccountConfig", {
38
+ Object.defineProperty(exports, "baseConnectionConfig", {
39
39
  enumerable: true,
40
40
  get: function get() {
41
- return _baseInternetAccountConfig.BaseInternetAccountConfig;
41
+ return _baseConnectionConfig.default;
42
42
  }
43
43
  });
44
- Object.defineProperty(exports, "createBaseTrackModel", {
44
+ Object.defineProperty(exports, "createBaseTrackConfig", {
45
45
  enumerable: true,
46
46
  get: function get() {
47
- return _BaseTrackModel.createBaseTrackModel;
47
+ return _baseTrackConfig.createBaseTrackConfig;
48
48
  }
49
49
  });
50
- Object.defineProperty(exports, "createBaseTrackConfig", {
50
+ Object.defineProperty(exports, "createBaseTrackModel", {
51
51
  enumerable: true,
52
52
  get: function get() {
53
- return _baseTrackConfig.createBaseTrackConfig;
53
+ return _BaseTrackModel.createBaseTrackModel;
54
54
  }
55
55
  });
56
56
 
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = exports.LayoutSession = void 0;
9
9
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
10
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
11
 
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
15
 
16
16
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -79,7 +79,7 @@ var LayoutSession = /*#__PURE__*/function () {
79
79
  maxHeight: (0, _configuration.readConfObject)(this.config, 'maxHeight'),
80
80
  displayMode: (0, _configuration.readConfObject)(this.config, 'displayMode'),
81
81
  pitchX: this.bpPerPx,
82
- spacing: (0, _configuration.readConfObject)(this.config, 'noSpacing') ? 0 : 2
82
+ pitchY: (0, _configuration.readConfObject)(this.config, 'noSpacing') ? 1 : 3
83
83
  });
84
84
  }
85
85
  /**
@@ -1,5 +1,5 @@
1
1
  import { Feature, SimpleFeatureSerialized } from '../../util/simpleFeature';
2
- import { Region } from '../../util/types';
2
+ import { AugmentedRegion as Region } from '../../util/types';
3
3
  import ServerSideRendererType, { RenderArgs as ServerSideRenderArgs, RenderArgsSerialized as ServerSideRenderArgsSerialized, RenderArgsDeserialized as ServerSideRenderArgsDeserialized, RenderResults as ServerSideRenderResults, ResultsDeserialized as ServerSideResultsDeserialized, ResultsSerialized as ServerSideResultsSerialized } from './ServerSideRendererType';
4
4
  import { AnyConfigurationModel } from '../../configuration/configurationSchema';
5
5
  export interface RenderArgs extends ServerSideRenderArgs {
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.NewFeatureRendererType = exports.default = void 0;
8
+ exports.default = exports.NewFeatureRendererType = void 0;
9
9
 
10
10
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
@@ -101,7 +101,9 @@ var RendererType = /*#__PURE__*/function (_PluggableElementBase) {
101
101
 
102
102
  }, {
103
103
  key: "freeResources",
104
- value: function freeResources() {
104
+ value: function
105
+ /* specification: {} */
106
+ freeResources() {
105
107
  return 0;
106
108
  }
107
109
  }]);
@@ -2,7 +2,8 @@ import BoxRendererType from './BoxRendererType';
2
2
  import CircularChordRendererType from './CircularChordRendererType';
3
3
  import ComparativeServerSideRendererType from './ComparativeServerSideRendererType';
4
4
  import FeatureRendererType from './FeatureRendererType';
5
- import RendererType from './RendererType';
5
+ import RendererType, { RenderProps } from './RendererType';
6
6
  import ServerSideRenderedContent from './ServerSideRenderedContent';
7
7
  import ServerSideRendererType from './ServerSideRendererType';
8
8
  export { BoxRendererType, CircularChordRendererType, ComparativeServerSideRendererType, FeatureRendererType, RendererType, ServerSideRenderedContent, ServerSideRendererType, };
9
+ export type { RenderProps };
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.watchWorker = watchWorker;
9
8
  exports.default = void 0;
9
+ exports.watchWorker = watchWorker;
10
10
 
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
 
@@ -7,9 +7,7 @@ var _typeof = require("@babel/runtime/helpers/typeof");
7
7
  Object.defineProperty(exports, "__esModule", {
8
8
  value: true
9
9
  });
10
- exports.MockRendererShort = exports.MockRendererTimeout = void 0;
11
-
12
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
10
+ exports.MockRendererTimeout = exports.MockRendererShort = void 0;
13
11
 
14
12
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
15
13
 
@@ -19,6 +17,8 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
19
17
 
20
18
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
21
19
 
20
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
21
+
22
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
23
23
 
24
24
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -7,8 +7,6 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
11
 
14
12
  var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
@@ -19,6 +17,8 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
19
17
 
20
18
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
21
19
 
20
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
21
+
22
22
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
23
23
 
24
24
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -21,7 +21,7 @@ export default class RpcManager {
21
21
  getDriver(backendName: keyof typeof DriverClasses): DriverClass;
22
22
  getDriverForCall(_sessionId: string, _functionName: string, args: {
23
23
  rpcDriverName?: string;
24
- }): DriverClass;
24
+ }): Promise<DriverClass>;
25
25
  call(sessionId: string, functionName: string, args: {}, opts?: {}): Promise<unknown>;
26
26
  }
27
27
  export {};
package/rpc/RpcManager.js CHANGED
@@ -62,7 +62,9 @@ var RpcManager = /*#__PURE__*/function () {
62
62
 
63
63
  if (!DriverClassImpl) {
64
64
  throw new Error("requested RPC driver \"".concat(backendName, "\" is not installed"));
65
- } else if (!backendConfiguration) {
65
+ }
66
+
67
+ if (!backendConfiguration) {
66
68
  throw new Error("requested RPC driver \"".concat(backendName, "\" is missing config"));
67
69
  } // eslint-disable-next-line @typescript-eslint/no-explicit-any
68
70
 
@@ -75,41 +77,67 @@ var RpcManager = /*#__PURE__*/function () {
75
77
  }
76
78
  }, {
77
79
  key: "getDriverForCall",
78
- value: function getDriverForCall(_sessionId, _functionName, args) {
79
- var backendName = args.rpcDriverName || (0, _configuration.readConfObject)(this.mainConfiguration, 'defaultDriver');
80
- return this.getDriver(backendName);
81
- }
80
+ value: function () {
81
+ var _getDriverForCall = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(_sessionId, _functionName, args) {
82
+ var backendName;
83
+ return _regenerator.default.wrap(function _callee$(_context) {
84
+ while (1) {
85
+ switch (_context.prev = _context.next) {
86
+ case 0:
87
+ backendName = args.rpcDriverName || (0, _configuration.readConfObject)(this.mainConfiguration, 'defaultDriver');
88
+ return _context.abrupt("return", this.getDriver(backendName));
89
+
90
+ case 2:
91
+ case "end":
92
+ return _context.stop();
93
+ }
94
+ }
95
+ }, _callee, this);
96
+ }));
97
+
98
+ function getDriverForCall(_x, _x2, _x3) {
99
+ return _getDriverForCall.apply(this, arguments);
100
+ }
101
+
102
+ return getDriverForCall;
103
+ }()
82
104
  }, {
83
105
  key: "call",
84
106
  value: function () {
85
- var _call = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(sessionId, functionName, args) {
107
+ var _call = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(sessionId, functionName, args) {
86
108
  var opts,
87
- _args = arguments;
88
- return _regenerator.default.wrap(function _callee$(_context) {
109
+ driverForCall,
110
+ _args2 = arguments;
111
+ return _regenerator.default.wrap(function _callee2$(_context2) {
89
112
  while (1) {
90
- switch (_context.prev = _context.next) {
113
+ switch (_context2.prev = _context2.next) {
91
114
  case 0:
92
- opts = _args.length > 3 && _args[3] !== undefined ? _args[3] : {};
115
+ opts = _args2.length > 3 && _args2[3] !== undefined ? _args2[3] : {};
93
116
 
94
117
  if (sessionId) {
95
- _context.next = 3;
118
+ _context2.next = 3;
96
119
  break;
97
120
  }
98
121
 
99
122
  throw new Error('sessionId is required');
100
123
 
101
124
  case 3:
102
- return _context.abrupt("return", this.getDriverForCall(sessionId, functionName, args).call(this.pluginManager, sessionId, functionName, args, opts));
125
+ _context2.next = 5;
126
+ return this.getDriverForCall(sessionId, functionName, args);
103
127
 
104
- case 4:
128
+ case 5:
129
+ driverForCall = _context2.sent;
130
+ return _context2.abrupt("return", driverForCall.call(this.pluginManager, sessionId, functionName, args, opts));
131
+
132
+ case 7:
105
133
  case "end":
106
- return _context.stop();
134
+ return _context2.stop();
107
135
  }
108
136
  }
109
- }, _callee, this);
137
+ }, _callee2, this);
110
138
  }));
111
139
 
112
- function call(_x, _x2, _x3) {
140
+ function call(_x4, _x5, _x6) {
113
141
  return _call.apply(this, arguments);
114
142
  }
115
143
 
@@ -7,10 +7,10 @@ Object.defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
 
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
13
11
 
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
15
15
 
16
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
@@ -125,9 +125,9 @@ var WebWorkerRpcDriver = /*#__PURE__*/function (_BaseRpcDriver) {
125
125
  (0, _createClass2.default)(WebWorkerRpcDriver, [{
126
126
  key: "makeWorker",
127
127
  value: function makeWorker() {
128
- // note that we are making a Rpc.Client connection with a worker pool of one for each worker,
129
- // because we want to do our own state-group-aware load balancing rather than using librpc's
130
- // builtin round-robin
128
+ // note that we are making a Rpc.Client connection with a worker pool of
129
+ // one for each worker, because we want to do our own state-group-aware
130
+ // load balancing rather than using librpc's builtin round-robin
131
131
  var worker = new WebWorkerHandle({
132
132
  workers: [new this.WorkerClass()]
133
133
  }); // send the worker its boot configuration using info from the pluginManager
@@ -5,12 +5,12 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.CoreRender = exports.CoreFreeResources = exports.CoreGetFeatures = exports.CoreGetMetadata = exports.CoreGetFileInfo = exports.CoreGetRefNames = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
+ exports.CoreRender = exports.CoreGetRefNames = exports.CoreGetMetadata = exports.CoreGetFileInfo = exports.CoreGetFeatures = exports.CoreFreeResources = void 0;
11
9
 
12
10
  var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
13
11
 
12
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
13
+
14
14
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
15
 
16
16
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
@@ -5,11 +5,11 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.serializeAbortSignal = serializeAbortSignal;
9
- exports.isRemoteAbortSignal = isRemoteAbortSignal;
10
8
  exports.deserializeAbortSignal = deserializeAbortSignal;
9
+ exports.isRemoteAbortSignal = isRemoteAbortSignal;
11
10
  exports.remoteAbort = remoteAbort;
12
11
  exports.remoteAbortRpcHandler = remoteAbortRpcHandler;
12
+ exports.serializeAbortSignal = serializeAbortSignal;
13
13
 
14
14
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
15
 
package/ui/App.js CHANGED
@@ -72,11 +72,13 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
72
72
  width: '100%'
73
73
  },
74
74
  fabLeft: {
75
+ zIndex: 10000,
75
76
  position: 'fixed',
76
77
  bottom: theme.spacing(2),
77
78
  left: theme.spacing(2)
78
79
  },
79
80
  fabRight: {
81
+ zIndex: 10000,
80
82
  position: 'fixed',
81
83
  bottom: theme.spacing(2),
82
84
  right: theme.spacing(2)
@@ -163,6 +163,7 @@ var DrawerHeader = (0, _mobxReact.observer)(function (_ref) {
163
163
  "data-testid": "drawer-minimize",
164
164
  color: "inherit",
165
165
  onClick: function onClick() {
166
+ session.notify("Drawer minimized, click button on ".concat(drawerPosition, " side of screen to re-open"), 'info');
166
167
  session.minimizeWidgetDrawer();
167
168
  }
168
169
  }, /*#__PURE__*/_react.default.createElement(_Minimize.default, null))), /*#__PURE__*/_react.default.createElement(_core.Tooltip, {
package/ui/Icons.js CHANGED
@@ -5,14 +5,14 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
+ exports.Cable = Cable;
8
9
  exports.ContentCopy = ContentCopy;
9
10
  exports.ContentCut = ContentCut;
10
11
  exports.ContentPaste = ContentPaste;
11
- exports.TrackSelector = TrackSelector;
12
- exports.SaveAs = SaveAs;
13
- exports.Save = Save;
14
12
  exports.DNA = DNA;
15
- exports.Cable = Cable;
13
+ exports.Save = Save;
14
+ exports.SaveAs = SaveAs;
15
+ exports.TrackSelector = TrackSelector;
16
16
 
17
17
  var _SvgIcon = _interopRequireDefault(require("@material-ui/core/SvgIcon"));
18
18
 
package/ui/Logo.js CHANGED
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.Logomark = Logomark;
9
8
  exports.LogoFull = LogoFull;
9
+ exports.Logomark = Logomark;
10
10
 
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
 
@@ -7,6 +7,7 @@ declare function PrerenderedCanvas(props: {
7
7
  style: any;
8
8
  imageData: any;
9
9
  showSoftClip?: boolean;
10
+ blockKey?: string;
10
11
  }): JSX.Element;
11
12
  declare namespace PrerenderedCanvas {
12
13
  var propTypes: {
@@ -33,6 +33,7 @@ function PrerenderedCanvas(props) {
33
33
  highResolutionScaling = props.highResolutionScaling,
34
34
  style = props.style,
35
35
  imageData = props.imageData,
36
+ blockKey = props.blockKey,
36
37
  showSoftClip = props.showSoftClip;
37
38
  var featureCanvas = (0, _react.useRef)(null);
38
39
  (0, _react.useEffect)(function () {
@@ -78,8 +79,10 @@ function PrerenderedCanvas(props) {
78
79
  }
79
80
  }, [imageData]);
80
81
  var softClipString = showSoftClip ? '_softclipped' : '';
82
+ var blockKeyStr = blockKey ? '_' + blockKey : '';
83
+ var testId = "prerendered_canvas".concat(softClipString).concat(blockKeyStr);
81
84
  return /*#__PURE__*/_react.default.createElement("canvas", {
82
- "data-testid": "prerendered_canvas".concat(softClipString),
85
+ "data-testid": testId,
83
86
  ref: featureCanvas,
84
87
  width: width * highResolutionScaling,
85
88
  height: height * highResolutionScaling,
@@ -5,8 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.isHTML = isHTML;
9
8
  exports.default = SanitizedHTML;
9
+ exports.isHTML = isHTML;
10
10
 
11
11
  var _react = _interopRequireDefault(require("react"));
12
12
 
@@ -0,0 +1,16 @@
1
+ import { IModelType, ModelProperties } from 'mobx-state-tree';
2
+ import { IObservableArray } from 'mobx';
3
+ import { NotificationLevel } from '../util/types';
4
+ declare function makeExtension(snackbarMessages: IObservableArray<any>): {
5
+ views: {
6
+ readonly snackbarMessages: IObservableArray<any>;
7
+ };
8
+ actions: {
9
+ notify(message: string, level?: NotificationLevel | undefined): void;
10
+ pushSnackbarMessage(message: string, level?: NotificationLevel | undefined): number;
11
+ popSnackbarMessage(): any;
12
+ removeSnackbarMessage(message: string): void;
13
+ };
14
+ };
15
+ export default function addSnackbarToModel<PROPS extends ModelProperties, OTHERS>(tree: IModelType<PROPS, OTHERS>): IModelType<PROPS, OTHERS & ReturnType<typeof makeExtension>['actions'] & ReturnType<typeof makeExtension>['views']>;
16
+ export {};
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = addSnackbarToModel;
7
+
8
+ var _mobx = require("mobx");
9
+
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ function makeExtension(snackbarMessages) {
12
+ return {
13
+ views: {
14
+ get snackbarMessages() {
15
+ return snackbarMessages;
16
+ }
17
+
18
+ },
19
+ actions: {
20
+ notify: function notify(message, level) {
21
+ var _this = this;
22
+
23
+ this.pushSnackbarMessage(message, level);
24
+
25
+ if (level === 'info' || level === 'success') {
26
+ setTimeout(function () {
27
+ _this.removeSnackbarMessage(message);
28
+ }, 5000);
29
+ }
30
+ },
31
+ pushSnackbarMessage: function pushSnackbarMessage(message, level) {
32
+ return snackbarMessages.push([message, level]);
33
+ },
34
+ popSnackbarMessage: function popSnackbarMessage() {
35
+ return snackbarMessages.pop();
36
+ },
37
+ removeSnackbarMessage: function removeSnackbarMessage(message) {
38
+ var element = snackbarMessages.find(function (f) {
39
+ return f[0] === message;
40
+ });
41
+
42
+ if (element) {
43
+ snackbarMessages.remove(element);
44
+ }
45
+ }
46
+ }
47
+ };
48
+ }
49
+
50
+ function addSnackbarToModel(tree) {
51
+ return tree.extend(function () {
52
+ var snackbarMessages = _mobx.observable.array();
53
+
54
+ return makeExtension(snackbarMessages);
55
+ });
56
+ }
@@ -183,7 +183,8 @@ var _default = (0, _reactMeasure.withContentRect)('bounds')((0, _mobxReact.obser
183
183
  title: "Rename view",
184
184
  arrow: true
185
185
  }, /*#__PURE__*/_react.default.createElement(_EditableTypography.default, {
186
- value: view.displayName || (view.assemblyNames ? // @ts-ignore
186
+ value: view.displayName || ( // @ts-ignore
187
+ view.assemblyNames ? // @ts-ignore
187
188
  view.assemblyNames.join(',') : 'Untitled view'),
188
189
  setValue: function setValue(val) {
189
190
  view.setDisplayName(val);
package/ui/index.js CHANGED
@@ -21,76 +21,76 @@ var _exportNames = {
21
21
  Menu: true,
22
22
  SanitizedHTML: true
23
23
  };
24
- Object.defineProperty(exports, "LogoFull", {
24
+ Object.defineProperty(exports, "App", {
25
25
  enumerable: true,
26
26
  get: function get() {
27
- return _Logo.LogoFull;
27
+ return _App.default;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "Logomark", {
30
+ Object.defineProperty(exports, "EditableTypography", {
31
31
  enumerable: true,
32
32
  get: function get() {
33
- return _Logo.Logomark;
33
+ return _EditableTypography.default;
34
34
  }
35
35
  });
36
- Object.defineProperty(exports, "App", {
36
+ Object.defineProperty(exports, "FactoryResetDialog", {
37
37
  enumerable: true,
38
38
  get: function get() {
39
- return _App.default;
39
+ return _FactoryResetDialog.default;
40
40
  }
41
41
  });
42
- Object.defineProperty(exports, "FileSelector", {
42
+ Object.defineProperty(exports, "FatalErrorDialog", {
43
43
  enumerable: true,
44
44
  get: function get() {
45
- return _FileSelector.default;
45
+ return _FatalErrorDialog.default;
46
46
  }
47
47
  });
48
- Object.defineProperty(exports, "PrerenderedCanvas", {
48
+ Object.defineProperty(exports, "FileSelector", {
49
49
  enumerable: true,
50
50
  get: function get() {
51
- return _PrerenderedCanvas.default;
51
+ return _FileSelector.default;
52
52
  }
53
53
  });
54
- Object.defineProperty(exports, "ResizeHandle", {
54
+ Object.defineProperty(exports, "LogoFull", {
55
55
  enumerable: true,
56
56
  get: function get() {
57
- return _ResizeHandle.default;
57
+ return _Logo.LogoFull;
58
58
  }
59
59
  });
60
- Object.defineProperty(exports, "EditableTypography", {
60
+ Object.defineProperty(exports, "Logomark", {
61
61
  enumerable: true,
62
62
  get: function get() {
63
- return _EditableTypography.default;
63
+ return _Logo.Logomark;
64
64
  }
65
65
  });
66
- Object.defineProperty(exports, "FactoryResetDialog", {
66
+ Object.defineProperty(exports, "Menu", {
67
67
  enumerable: true,
68
68
  get: function get() {
69
- return _FactoryResetDialog.default;
69
+ return _Menu.default;
70
70
  }
71
71
  });
72
- Object.defineProperty(exports, "Tooltip", {
72
+ Object.defineProperty(exports, "PrerenderedCanvas", {
73
73
  enumerable: true,
74
74
  get: function get() {
75
- return _Tooltip.default;
75
+ return _PrerenderedCanvas.default;
76
76
  }
77
77
  });
78
- Object.defineProperty(exports, "FatalErrorDialog", {
78
+ Object.defineProperty(exports, "ResizeHandle", {
79
79
  enumerable: true,
80
80
  get: function get() {
81
- return _FatalErrorDialog.default;
81
+ return _ResizeHandle.default;
82
82
  }
83
83
  });
84
- Object.defineProperty(exports, "Menu", {
84
+ Object.defineProperty(exports, "SanitizedHTML", {
85
85
  enumerable: true,
86
86
  get: function get() {
87
- return _Menu.default;
87
+ return _SanitizedHTML.default;
88
88
  }
89
89
  });
90
- Object.defineProperty(exports, "SanitizedHTML", {
90
+ Object.defineProperty(exports, "Tooltip", {
91
91
  enumerable: true,
92
92
  get: function get() {
93
- return _SanitizedHTML.default;
93
+ return _Tooltip.default;
94
94
  }
95
95
  });
96
96
 
package/ui/theme.js CHANGED
@@ -5,10 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.createJBrowseDefaultProps = createJBrowseDefaultProps;
9
8
  exports.createJBrowseDefaultOverrides = createJBrowseDefaultOverrides;
9
+ exports.createJBrowseDefaultProps = createJBrowseDefaultProps;
10
10
  exports.createJBrowseTheme = createJBrowseTheme;
11
- exports.jbrowseBaseTheme = exports.jbrowseDefaultPalette = void 0;
11
+ exports.jbrowseDefaultPalette = exports.jbrowseBaseTheme = void 0;
12
12
 
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
 
@@ -54,7 +54,9 @@ var jbrowseDefaultPalette = {
54
54
  };
55
55
  exports.jbrowseDefaultPalette = jbrowseDefaultPalette;
56
56
 
57
- function createJBrowseDefaultProps() {
57
+ function
58
+ /* palette: PaletteOptions = {} */
59
+ createJBrowseDefaultProps() {
58
60
  return {
59
61
  MuiButton: {
60
62
  size: 'small'