@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
@@ -8,7 +8,10 @@ var _GranularRectLayout = _interopRequireDefault(require("./GranularRectLayout")
8
8
 
9
9
  describe('GranularRectLayout', function () {
10
10
  it('lays out non-overlapping features end to end', function () {
11
- var l = new _GranularRectLayout.default();
11
+ var l = new _GranularRectLayout.default({
12
+ pitchX: 10,
13
+ pitchY: 4
14
+ });
12
15
  var testRects = [['1,0', 4133, 5923, 16], ['1,1', 11299, 12389, 16], ['1,2', 21050, 22778, 16], ['1,3', 41125, 47459, 16], ['1,4', 47926, 49272, 16], ['1,5', 50240, 52495, 16], ['1,6', 53329, 56283, 16], ['1,7', 59309, 79441, 16], ['1,8', 80359, 83196, 16], ['1,9', 92147, 94188, 16], ['1,10', 96241, 103626, 16], ['1,11', 104396, 108110, 16], ['1,12', 111878, 125251, 16], ['1,13', 125747, 128085, 16], ['1,14', 131492, 132641, 16], ['1,15', 133857, 134931, 16], ['1,16', 137023, 138220, 16], ['1,17', 140703, 145668, 16], ['1,18', 146045, 147059, 16], ['1,19', 162296, 165395, 16], ['1,20', 168531, 170795, 16], ['1,21', 174812, 180475, 16], ['1,22', 184302, 188826, 16], ['1,23', 189609, 191141, 16], ['1,24', 199799, 201389, 16], ['1,25', 203436, 211345, 16], ['1,26', 212100, 212379, 16], ['1,27', 213418, 214627, 16], ['1,28', 215115, 219344, 16], ['1,29', 220067, 222525, 16], ['1,30', 223308, 228141, 16], ['1,31', 234473, 236768, 16], ['1,32', 239691, 245015, 16]];
13
16
 
14
17
  for (var i = 0; i < testRects.length; i += 1) {
@@ -17,7 +20,10 @@ describe('GranularRectLayout', function () {
17
20
  }
18
21
  });
19
22
  it('stacks up overlapping features', function () {
20
- var l = new _GranularRectLayout.default();
23
+ var l = new _GranularRectLayout.default({
24
+ pitchX: 10,
25
+ pitchY: 4
26
+ });
21
27
  var testRects = [];
22
28
 
23
29
  for (var i = 1; i <= 20; i += 1) {
@@ -26,35 +32,76 @@ describe('GranularRectLayout', function () {
26
32
 
27
33
  for (var _i = 0; _i < testRects.length; _i += 1) {
28
34
  var top = l.addRect.apply(l, (0, _toConsumableArray2.default)(testRects[_i]));
29
- expect(top).toEqual(_i % 2 * 3);
35
+ expect(top).toEqual(_i % 2 * 4);
30
36
  }
31
37
  });
32
38
  it('discards regions', function () {
33
- var l = new _GranularRectLayout.default();
39
+ var l = new _GranularRectLayout.default({
40
+ pitchX: 10,
41
+ pitchY: 4
42
+ });
34
43
 
35
44
  for (var i = 0; i < 20; i += 1) {
36
45
  var top = l.addRect("feature-".concat(i), 10000 * i + 4000, 10000 * i + 16000, 1);
37
- expect(top).toEqual(i % 2 * 3);
46
+ expect(top).toEqual(i % 2 * 4);
38
47
  }
48
+
49
+ expect(l.bitmap[0].rowState.bits.length).toBe(34812);
50
+ expect(l.bitmap[1].rowState.bits.length).toBe(34812);
51
+ l.discardRange(190000, 220000);
52
+ expect(l.bitmap[0].rowState.bits.length).toBe(24802);
53
+ expect(l.bitmap[1].rowState.bits.length).toBe(23802);
54
+ l.discardRange(0, 100000);
55
+ expect(l.bitmap[0].rowState.bits.length).toBe(19001);
56
+ expect(l.bitmap[1].rowState.bits.length).toBe(23802);
57
+ l.discardRange(0, 220000);
58
+ expect(l.bitmap[0].rowState).toBeUndefined();
39
59
  }); // see issue #486
40
60
 
41
61
  it('tests that adding +/- pitchX fixes resolution causing errors', function () {
42
- var l = new _GranularRectLayout.default();
62
+ var l = new _GranularRectLayout.default({
63
+ pitchX: 91.21851599727707,
64
+ pitchY: 3
65
+ });
43
66
  l.addRect('test', 2581541, 2581542, 1);
44
67
  expect(l.serializeRegion({
45
68
  start: 2581491,
46
69
  end: 2818659
47
70
  }).rectangles.test).toBeTruthy();
48
71
  });
72
+ it('tests reinitializing layout due to throwing away old one', function () {
73
+ var spy = jest.spyOn(console, 'warn').mockImplementation(function () {});
74
+ var l = new _GranularRectLayout.default({
75
+ pitchX: 1,
76
+ pitchY: 1,
77
+ maxHeight: 600
78
+ });
79
+ l.addRect('test1', 0, 10000, 1);
80
+ l.addRect('test2', 1000000, 1000100, 1);
81
+ l.addRect('test3', 0, 10000, 1);
82
+ expect(l.rectangles.size).toBe(3);
83
+ expect(spy).toHaveBeenCalled();
84
+ spy.mockRestore();
85
+ });
49
86
  it('tests adding a gigantic feature that fills entire row with another smaller added on top', function () {
50
87
  var l = new _GranularRectLayout.default({
88
+ pitchX: 100,
89
+ pitchY: 1,
51
90
  maxHeight: 600
52
91
  });
53
92
  expect(l.getByCoord(50000, 0)).toEqual(undefined);
54
- l.addRect('test1', 0, 10000000, 1);
55
- expect(l.getByCoord(50000, 0)).toEqual('test1');
56
- l.addRect('test2', 0, 1000, 1);
57
- expect(l.getByCoord(500, 2)).toEqual('test2');
93
+ l.addRect('test1', 0, 100000000, 1, {
94
+ id: 'feat1'
95
+ });
96
+ expect(l.getByCoord(50000, 0)).toEqual({
97
+ id: 'feat1'
98
+ });
99
+ l.addRect('test2', 0, 1000, 1, {
100
+ id: 'feat2'
101
+ });
102
+ expect(l.getByCoord(500, 1)).toEqual({
103
+ id: 'feat2'
104
+ });
58
105
  expect(l.rectangles.size).toBe(2);
59
106
  });
60
107
  });
@@ -29,7 +29,8 @@ var PrecomputedLayout = /*#__PURE__*/function () {
29
29
  (0, _defineProperty2.default)(this, "totalHeight", void 0);
30
30
  (0, _defineProperty2.default)(this, "maxHeightReached", void 0);
31
31
  (0, _defineProperty2.default)(this, "rbush", void 0);
32
- this.rectangles = new Map(Object.entries(rectangles));
32
+ this.rectangles = new Map(Object.entries(rectangles)); // rectangles is of the form "featureId": [leftPx, topPx, rightPx, bottomPx]
33
+
33
34
  this.totalHeight = totalHeight;
34
35
  this.maxHeightReached = maxHeightReached;
35
36
  this.rbush = new _rbush.default();
@@ -0,0 +1,7 @@
1
+ export * from './BaseLayout';
2
+ export { default as GranularRectLayout } from './GranularRectLayout';
3
+ export { default as MultiLayout } from './MultiLayout';
4
+ export { default as PrecomputedLayout } from './PrecomputedLayout';
5
+ export type { Layout } from './PrecomputedLayout';
6
+ export { default as PrecomputedMultiLayout } from './PrecomputedMultiLayout';
7
+ export { default as SceneGraph } from './SceneGraph';
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ var _exportNames = {
9
+ GranularRectLayout: true,
10
+ MultiLayout: true,
11
+ PrecomputedLayout: true,
12
+ PrecomputedMultiLayout: true,
13
+ SceneGraph: true
14
+ };
15
+ Object.defineProperty(exports, "GranularRectLayout", {
16
+ enumerable: true,
17
+ get: function get() {
18
+ return _GranularRectLayout.default;
19
+ }
20
+ });
21
+ Object.defineProperty(exports, "MultiLayout", {
22
+ enumerable: true,
23
+ get: function get() {
24
+ return _MultiLayout.default;
25
+ }
26
+ });
27
+ Object.defineProperty(exports, "PrecomputedLayout", {
28
+ enumerable: true,
29
+ get: function get() {
30
+ return _PrecomputedLayout.default;
31
+ }
32
+ });
33
+ Object.defineProperty(exports, "PrecomputedMultiLayout", {
34
+ enumerable: true,
35
+ get: function get() {
36
+ return _PrecomputedMultiLayout.default;
37
+ }
38
+ });
39
+ Object.defineProperty(exports, "SceneGraph", {
40
+ enumerable: true,
41
+ get: function get() {
42
+ return _SceneGraph.default;
43
+ }
44
+ });
45
+
46
+ var _BaseLayout = require("./BaseLayout");
47
+
48
+ Object.keys(_BaseLayout).forEach(function (key) {
49
+ if (key === "default" || key === "__esModule") return;
50
+ if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
51
+ if (key in exports && exports[key] === _BaseLayout[key]) return;
52
+ Object.defineProperty(exports, key, {
53
+ enumerable: true,
54
+ get: function get() {
55
+ return _BaseLayout[key];
56
+ }
57
+ });
58
+ });
59
+
60
+ var _GranularRectLayout = _interopRequireDefault(require("./GranularRectLayout"));
61
+
62
+ var _MultiLayout = _interopRequireDefault(require("./MultiLayout"));
63
+
64
+ var _PrecomputedLayout = _interopRequireDefault(require("./PrecomputedLayout"));
65
+
66
+ var _PrecomputedMultiLayout = _interopRequireDefault(require("./PrecomputedMultiLayout"));
67
+
68
+ var _SceneGraph = _interopRequireDefault(require("./SceneGraph"));
@@ -3,11 +3,11 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getSubType = getSubType;
7
- exports.getUnionSubTypes = getUnionSubTypes;
8
- exports.getPropertyType = getPropertyType;
9
6
  exports.getDefaultValue = getDefaultValue;
10
7
  exports.getEnumerationValues = getEnumerationValues;
8
+ exports.getPropertyType = getPropertyType;
9
+ exports.getSubType = getSubType;
10
+ exports.getUnionSubTypes = getUnionSubTypes;
11
11
  exports.resolveLateType = resolveLateType;
12
12
 
13
13
  var _mobxStateTree = require("mobx-state-tree");
@@ -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.PonyfillOffscreenCanvas = exports.PonyfillOffscreenContext = exports.ImageBitmapType = exports.createImageBitmap = exports.createCanvas = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
8
+ exports.createImageBitmap = exports.createCanvas = exports.PonyfillOffscreenContext = exports.PonyfillOffscreenCanvas = exports.ImageBitmapType = void 0;
11
9
 
12
10
  var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
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 _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
package/util/range.js CHANGED
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.intersection2 = intersection2;
7
6
  exports.doesIntersect2 = doesIntersect2;
7
+ exports.intersection2 = intersection2;
8
8
  exports.isContainedWithin = isContainedWithin;
9
9
 
10
10
  /**
@@ -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.isFeature = isFeature;
9
8
  exports.default = void 0;
9
+ exports.isFeature = isFeature;
10
10
 
11
11
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
12
12
 
package/util/stats.js CHANGED
@@ -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.blankStats = blankStats;
9
+ exports.calcPerBaseStats = calcPerBaseStats;
8
10
  exports.calcStdFromSums = calcStdFromSums;
9
11
  exports.rectifyStats = rectifyStats;
10
- exports.calcPerBaseStats = calcPerBaseStats;
11
12
  exports.scoresToStats = scoresToStats;
12
- exports.blankStats = blankStats;
13
13
 
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
package/util/tracks.js CHANGED
@@ -3,21 +3,21 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.getTrackAssemblyNames = getTrackAssemblyNames;
7
- exports.getRpcSessionId = getRpcSessionId;
8
- exports.getParentRenderProps = getParentRenderProps;
6
+ exports.UNSUPPORTED = exports.UNKNOWN = void 0;
7
+ exports.generateUnknownTrackConf = generateUnknownTrackConf;
8
+ exports.generateUnsupportedTrackConf = generateUnsupportedTrackConf;
9
9
  exports.getBlob = getBlob;
10
10
  exports.getBlobMap = getBlobMap;
11
- exports.setBlobMap = setBlobMap;
12
- exports.storeBlobLocation = storeBlobLocation;
13
- exports.makeIndex = makeIndex;
14
- exports.makeIndexType = makeIndexType;
15
11
  exports.getFileName = getFileName;
12
+ exports.getParentRenderProps = getParentRenderProps;
13
+ exports.getRpcSessionId = getRpcSessionId;
14
+ exports.getTrackAssemblyNames = getTrackAssemblyNames;
16
15
  exports.guessAdapter = guessAdapter;
17
16
  exports.guessTrackType = guessTrackType;
18
- exports.generateUnsupportedTrackConf = generateUnsupportedTrackConf;
19
- exports.generateUnknownTrackConf = generateUnknownTrackConf;
20
- exports.UNSUPPORTED = exports.UNKNOWN = void 0;
17
+ exports.makeIndex = makeIndex;
18
+ exports.makeIndexType = makeIndexType;
19
+ exports.setBlobMap = setBlobMap;
20
+ exports.storeBlobLocation = storeBlobLocation;
21
21
 
22
22
  var _mobxStateTree = require("mobx-state-tree");
23
23
 
@@ -29,7 +29,10 @@ export interface JBrowsePlugin {
29
29
  authors: string[];
30
30
  description: string;
31
31
  location: string;
32
- url: string;
32
+ url?: string;
33
+ umdUrl?: string;
34
+ esmUrl?: string;
35
+ cjsUrl?: string;
33
36
  license: string;
34
37
  image?: string;
35
38
  }
@@ -173,6 +176,9 @@ export interface NoAssemblyRegion extends SnapshotIn<typeof MUNoAssemblyRegion>
173
176
  }
174
177
  export interface Region extends SnapshotIn<typeof MUIRegion> {
175
178
  }
179
+ export interface AugmentedRegion extends Region {
180
+ originalRefName?: string;
181
+ }
176
182
  export interface LocalPathLocation extends SnapshotIn<typeof MULocalPathLocation> {
177
183
  }
178
184
  export interface UriLocation extends SnapshotIn<typeof MUUriLocation> {
@@ -25,23 +25,23 @@ var _exportNames = {
25
25
  isAuthNeededException: true,
26
26
  isRetryException: true
27
27
  };
28
- exports.isViewContainer = isViewContainer;
28
+ exports.RetryError = exports.AuthNeededError = void 0;
29
+ exports.isAbstractMenuManager = isAbstractMenuManager;
30
+ exports.isAppRootModel = isAppRootModel;
31
+ exports.isAuthNeededException = isAuthNeededException;
32
+ exports.isDisplayModel = isDisplayModel;
33
+ exports.isRetryException = isRetryException;
34
+ exports.isSelectionContainer = isSelectionContainer;
29
35
  exports.isSessionModel = isSessionModel;
30
36
  exports.isSessionModelWithConfigEditing = isSessionModelWithConfigEditing;
31
- exports.isSessionWithAddTracks = isSessionWithAddTracks;
32
37
  exports.isSessionModelWithWidgets = isSessionModelWithWidgets;
38
+ exports.isSessionWithAddTracks = isSessionWithAddTracks;
33
39
  exports.isSessionWithSessionPlugins = isSessionWithSessionPlugins;
34
- exports.isSelectionContainer = isSelectionContainer;
35
- exports.isViewModel = isViewModel;
36
40
  exports.isTrackModel = isTrackModel;
37
- exports.isDisplayModel = isDisplayModel;
38
41
  exports.isTrackViewModel = isTrackViewModel;
39
- exports.isAppRootModel = isAppRootModel;
40
- exports.isAbstractMenuManager = isAbstractMenuManager;
41
42
  exports.isUriLocation = isUriLocation;
42
- exports.isAuthNeededException = isAuthNeededException;
43
- exports.isRetryException = isRetryException;
44
- exports.RetryError = exports.AuthNeededError = void 0;
43
+ exports.isViewContainer = isViewContainer;
44
+ exports.isViewModel = isViewModel;
45
45
 
46
46
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
47
47
 
package/util/types/mst.js CHANGED
@@ -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.FileLocation = exports.UriLocation = exports.UriLocationRaw = exports.BlobLocation = exports.LocalPathLocation = exports.Region = exports.NoAssemblyRegion = exports.PropTypes = exports.ElementId = void 0;
8
+ exports.UriLocationRaw = exports.UriLocation = exports.Region = exports.PropTypes = exports.NoAssemblyRegion = exports.LocalPathLocation = exports.FileLocation = exports.ElementId = exports.BlobLocation = void 0;
9
9
 
10
10
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
11
11