@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
@@ -112,55 +112,54 @@ function createBaseTrackModel(pluginManager, trackType, baseTrackConfig) {
112
112
  },
113
113
  showDisplay: function showDisplay(displayId) {
114
114
  var initialSnapshot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
115
- var displayTypeConfigSchema = pluginManager.pluggableConfigSchemaType('display');
116
- var configuration = (0, _mobxStateTree.resolveIdentifier)(displayTypeConfigSchema, (0, _mobxStateTree.getRoot)(self), displayId);
117
- var displayType = pluginManager.getDisplayType(configuration.type);
115
+ var schema = pluginManager.pluggableConfigSchemaType('display');
116
+ var conf = (0, _mobxStateTree.resolveIdentifier)(schema, (0, _mobxStateTree.getRoot)(self), displayId);
117
+ var displayType = pluginManager.getDisplayType(conf.type);
118
118
 
119
119
  if (!displayType) {
120
- throw new Error("unknown display type ".concat(configuration.type));
120
+ throw new Error("unknown display type ".concat(conf.type));
121
121
  }
122
122
 
123
123
  var display = displayType.stateModel.create(_objectSpread(_objectSpread({}, initialSnapshot), {}, {
124
- type: configuration.type,
125
- configuration: configuration
124
+ type: conf.type,
125
+ configuration: conf
126
126
  }));
127
127
  self.displays.push(display);
128
128
  },
129
129
  hideDisplay: function hideDisplay(displayId) {
130
- var displayTypeConfigSchema = pluginManager.pluggableConfigSchemaType('display');
131
- var configuration = (0, _mobxStateTree.resolveIdentifier)(displayTypeConfigSchema, (0, _mobxStateTree.getRoot)(self), displayId); // if we have any displays with that configuration, turn them off
132
-
133
- var shownDisplays = self.displays.filter(function (d) {
134
- return d.configuration === configuration;
130
+ var schema = pluginManager.pluggableConfigSchemaType('display');
131
+ var conf = (0, _mobxStateTree.resolveIdentifier)(schema, (0, _mobxStateTree.getRoot)(self), displayId);
132
+ var t = self.displays.filter(function (d) {
133
+ return d.conf === conf;
135
134
  });
136
135
  (0, _mobx.transaction)(function () {
137
- return shownDisplays.forEach(function (d) {
136
+ return t.forEach(function (d) {
138
137
  return self.displays.remove(d);
139
138
  });
140
139
  });
141
- return shownDisplays.length;
140
+ return t.length;
142
141
  },
143
- replaceDisplay: function replaceDisplay(oldDisplayId, newDisplayId) {
142
+ replaceDisplay: function replaceDisplay(oldId, newId) {
144
143
  var initialSnapshot = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
145
- var displayIdx = self.displays.findIndex(function (d) {
146
- return d.configuration.displayId === oldDisplayId;
144
+ var idx = self.displays.findIndex(function (d) {
145
+ return d.conf.displayId === oldId;
147
146
  });
148
147
 
149
- if (displayIdx === -1) {
150
- throw new Error("could not find display id ".concat(oldDisplayId, " to replace"));
148
+ if (idx === -1) {
149
+ throw new Error("could not find display id ".concat(oldId, " to replace"));
151
150
  }
152
151
 
153
- var displayTypeConfigSchema = pluginManager.pluggableConfigSchemaType('display');
154
- var configuration = (0, _mobxStateTree.resolveIdentifier)(displayTypeConfigSchema, (0, _mobxStateTree.getRoot)(self), newDisplayId);
155
- var displayType = pluginManager.getDisplayType(configuration.type);
152
+ var schema = pluginManager.pluggableConfigSchemaType('display');
153
+ var conf = (0, _mobxStateTree.resolveIdentifier)(schema, (0, _mobxStateTree.getRoot)(self), newId);
154
+ var displayType = pluginManager.getDisplayType(conf.type);
156
155
 
157
156
  if (!displayType) {
158
- throw new Error("unknown display type ".concat(configuration.type));
157
+ throw new Error("unknown display type ".concat(conf.type));
159
158
  }
160
159
 
161
- self.displays.splice(displayIdx, 1, _objectSpread(_objectSpread({}, initialSnapshot), {}, {
162
- type: configuration.type,
163
- configuration: configuration
160
+ self.displays.splice(idx, 1, _objectSpread(_objectSpread({}, initialSnapshot), {}, {
161
+ type: conf.type,
162
+ configuration: conf
164
163
  }));
165
164
  }
166
165
  };
@@ -35,6 +35,8 @@ var _dataAdapterCache = require("../../data_adapters/dataAdapterCache");
35
35
 
36
36
  var _ServerSideRendererType = _interopRequireDefault(require("./ServerSideRendererType"));
37
37
 
38
+ var _BaseAdapter = require("../../data_adapters/BaseAdapter");
39
+
38
40
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
41
 
40
42
  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; }
@@ -159,16 +161,25 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
159
161
  case 3:
160
162
  _yield$getAdapter = _context.sent;
161
163
  dataAdapter = _yield$getAdapter.dataAdapter;
164
+
165
+ if ((0, _BaseAdapter.isFeatureAdapter)(dataAdapter)) {
166
+ _context.next = 7;
167
+ break;
168
+ }
169
+
170
+ throw new Error('Adapter does not support retrieving features');
171
+
172
+ case 7:
162
173
  features = new Map();
163
174
 
164
175
  if (!(!regions || regions.length === 0)) {
165
- _context.next = 8;
176
+ _context.next = 10;
166
177
  break;
167
178
  }
168
179
 
169
180
  return _context.abrupt("return", features);
170
181
 
171
- case 8:
182
+ case 10:
172
183
  requestRegions = regions.map(function (r) {
173
184
  // make sure the requested region's start and end are integers, if
174
185
  // there is a region specification.
@@ -185,13 +196,11 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
185
196
  return requestRegion;
186
197
  });
187
198
  region = requestRegions[0];
188
- featureObservable = requestRegions.length === 1 ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), // @ts-ignore
189
- renderArgs) : // @ts-ignore
190
- dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
191
- _context.next = 13;
199
+ featureObservable = requestRegions.length === 1 ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), renderArgs) : dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
200
+ _context.next = 15;
192
201
  return featureObservable.pipe((0, _operators.toArray)()).toPromise();
193
202
 
194
- case 13:
203
+ case 15:
195
204
  feats = _context.sent;
196
205
  (0, _util.checkAbortSignal)(signal);
197
206
  return _context.abrupt("return", new Map(feats.filter(function (feat) {
@@ -200,7 +209,7 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
200
209
  return [feat.id(), feat];
201
210
  })));
202
211
 
203
- case 16:
212
+ case 18:
204
213
  case "end":
205
214
  return _context.stop();
206
215
  }
@@ -11,10 +11,10 @@ exports.default = ServerSideRenderedContent;
11
11
 
12
12
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
13
13
 
14
- var _styles = require("@material-ui/core/styles");
15
-
16
14
  var _react = _interopRequireWildcard(require("react"));
17
15
 
16
+ var _styles = require("@mui/material/styles");
17
+
18
18
  var _reactDom = require("react-dom");
19
19
 
20
20
  var _ui = require("../../ui");
@@ -1,4 +1,4 @@
1
- import { ThemeOptions } from '@material-ui/core';
1
+ import { DeprecatedThemeOptions } from '@mui/material';
2
2
  import { SnapshotOrInstance, SnapshotIn } from 'mobx-state-tree';
3
3
  import RendererType, { RenderProps, RenderResults } from './RendererType';
4
4
  import SerializableFilterChain, { SerializedFilterChain } from './util/serializableFilterChain';
@@ -7,7 +7,7 @@ import RpcManager from '../../rpc/RpcManager';
7
7
  interface BaseRenderArgs extends RenderProps {
8
8
  sessionId: string;
9
9
  signal?: AbortSignal;
10
- theme: ThemeOptions;
10
+ theme: DeprecatedThemeOptions;
11
11
  exportSVG: {
12
12
  rasterizeLayers?: boolean;
13
13
  };
@@ -31,7 +31,7 @@ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/ge
31
31
 
32
32
  var _react = _interopRequireDefault(require("react"));
33
33
 
34
- var _styles = require("@material-ui/core/styles");
34
+ var _styles = require("@mui/material/styles");
35
35
 
36
36
  var _canvasSequencer = require("canvas-sequencer");
37
37
 
@@ -214,7 +214,7 @@ var BaseRpcDriver = /*#__PURE__*/function () {
214
214
  return thing;
215
215
  }
216
216
 
217
- return (0, _util.objectFromEntries)(Object.entries(thing).filter(function (e) {
217
+ return Object.fromEntries(Object.entries(thing).filter(function (e) {
218
218
  return isClonable(e[1]);
219
219
  }).map(function (_ref) {
220
220
  var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
@@ -72,9 +72,7 @@ export declare class CoreEstimateRegionStats extends RpcMethodType {
72
72
  signal?: RemoteAbortSignal;
73
73
  headers?: Record<string, string>;
74
74
  sessionId: string;
75
- }, rpcDriverClassName: string): Promise<import("../data_adapters/BaseAdapter").Stats | {
76
- featureDensity: number;
77
- }>;
75
+ }, rpcDriverClassName: string): Promise<import("../data_adapters/BaseAdapter").Stats>;
78
76
  }
79
77
  /**
80
78
  * fetches features from an adapter and call a renderer with them
@@ -91,7 +91,7 @@ var CoreGetRefNames = /*#__PURE__*/function (_RpcMethodType) {
91
91
  _yield$getAdapter = _context.sent;
92
92
  dataAdapter = _yield$getAdapter.dataAdapter;
93
93
 
94
- if (!(dataAdapter instanceof _BaseAdapter.BaseFeatureDataAdapter)) {
94
+ if (!(0, _BaseAdapter.isFeatureAdapter)(dataAdapter)) {
95
95
  _context.next = 10;
96
96
  break;
97
97
  }
@@ -378,7 +378,7 @@ var CoreGetFeatures = /*#__PURE__*/function (_RpcMethodType4) {
378
378
  break;
379
379
  }
380
380
 
381
- return _context6.abrupt("return", []);
381
+ throw new Error('Adapter does not support retrieving features');
382
382
 
383
383
  case 10:
384
384
  ret = dataAdapter.getFeaturesInMultipleRegions(regions, _objectSpread(_objectSpread({}, opts), {}, {
@@ -590,15 +590,15 @@ var CoreEstimateRegionStats = /*#__PURE__*/function (_RpcMethodType6) {
590
590
  _yield$getAdapter5 = _context10.sent;
591
591
  dataAdapter = _yield$getAdapter5.dataAdapter;
592
592
 
593
- if (!(dataAdapter instanceof _BaseAdapter.BaseFeatureDataAdapter)) {
593
+ if ((0, _BaseAdapter.isFeatureAdapter)(dataAdapter)) {
594
594
  _context10.next = 10;
595
595
  break;
596
596
  }
597
597
 
598
- return _context10.abrupt("return", dataAdapter.estimateRegionsStats(regions, deserializedArgs));
598
+ throw new Error('Adapter does not support retrieving features');
599
599
 
600
600
  case 10:
601
- throw new Error('Data adapter not found');
601
+ return _context10.abrupt("return", dataAdapter.estimateRegionsStats(regions, deserializedArgs));
602
602
 
603
603
  case 11:
604
604
  case "end":