@jbrowse/core 1.5.1 → 1.5.5

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 (111) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +4 -2
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +43 -16
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +5 -4
  4. package/BaseFeatureWidget/index.js +1 -1
  5. package/BaseFeatureWidget/util.js +5 -5
  6. package/PluginLoader.d.ts +25 -2
  7. package/PluginLoader.js +334 -47
  8. package/PluginManager.d.ts +6 -5
  9. package/PluginManager.js +1 -5
  10. package/ReExports/list.js +1 -1
  11. package/ReExports/material-ui-colors.js +38 -38
  12. package/ReExports/modules.d.ts +2 -0
  13. package/ReExports/modules.js +3 -0
  14. package/TextSearch/BaseResults.js +1 -1
  15. package/TextSearch/TextSearchManager.d.ts +1 -1
  16. package/TextSearch/TextSearchManager.js +0 -2
  17. package/assemblyManager/assembly.js +5 -3
  18. package/assemblyManager/index.js +4 -4
  19. package/configuration/configurationSchema.js +6 -4
  20. package/configuration/configurationSlot.js +3 -1
  21. package/configuration/index.js +4 -4
  22. package/configuration/util.js +2 -2
  23. package/data_adapters/BaseAdapter.d.ts +5 -5
  24. package/data_adapters/BaseAdapter.js +9 -18
  25. package/data_adapters/CytobandAdapter.js +4 -2
  26. package/data_adapters/dataAdapterCache.js +2 -2
  27. package/package.json +9 -8
  28. package/pluggableElementTypes/AdapterType.js +3 -1
  29. package/pluggableElementTypes/ConnectionType.js +3 -1
  30. package/pluggableElementTypes/DisplayType.js +3 -1
  31. package/pluggableElementTypes/InternetAccountType.js +3 -1
  32. package/pluggableElementTypes/PluggableElementBase.js +4 -3
  33. package/pluggableElementTypes/RpcMethodType.js +2 -4
  34. package/pluggableElementTypes/TextSearchAdapterType.js +3 -1
  35. package/pluggableElementTypes/WidgetType.js +3 -1
  36. package/pluggableElementTypes/index.d.ts +2 -1
  37. package/pluggableElementTypes/index.js +37 -14
  38. package/pluggableElementTypes/models/BaseDisplayModel.js +2 -2
  39. package/pluggableElementTypes/models/BaseTrackModel.js +4 -3
  40. package/pluggableElementTypes/models/BaseViewModel.js +6 -2
  41. package/pluggableElementTypes/models/InternetAccountModel.d.ts +2 -2
  42. package/pluggableElementTypes/models/baseTrackConfig.js +2 -2
  43. package/pluggableElementTypes/models/index.js +14 -14
  44. package/pluggableElementTypes/renderers/BoxRendererType.js +3 -3
  45. package/pluggableElementTypes/renderers/CircularChordRendererType.js +3 -1
  46. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +2 -2
  47. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +1 -1
  48. package/pluggableElementTypes/renderers/FeatureRendererType.js +4 -4
  49. package/pluggableElementTypes/renderers/RendererType.js +3 -1
  50. package/pluggableElementTypes/renderers/ServerSideRendererType.js +2 -2
  51. package/pluggableElementTypes/renderers/index.d.ts +2 -1
  52. package/rpc/BaseRpcDriver.d.ts +1 -1
  53. package/rpc/BaseRpcDriver.js +3 -5
  54. package/rpc/BaseRpcDriver.test.js +1 -1
  55. package/rpc/RpcManager.d.ts +3 -3
  56. package/rpc/RpcManager.js +44 -22
  57. package/rpc/WebWorkerRpcDriver.d.ts +2 -2
  58. package/rpc/WebWorkerRpcDriver.js +5 -7
  59. package/rpc/coreRpcMethods.js +3 -3
  60. package/rpc/remoteAbortSignals.js +2 -2
  61. package/ui/App.js +2 -0
  62. package/ui/DrawerWidget.js +1 -0
  63. package/ui/EditableTypography.js +2 -2
  64. package/ui/FileSelector/FileSelector.js +2 -2
  65. package/ui/Icons.js +4 -4
  66. package/ui/Logo.js +1 -1
  67. package/ui/Menu.js +2 -2
  68. package/ui/NewSessionCards.js +2 -2
  69. package/ui/PrerenderedCanvas.d.ts +1 -0
  70. package/ui/PrerenderedCanvas.js +6 -3
  71. package/ui/SanitizedHTML.js +1 -1
  72. package/ui/SnackbarModel.d.ts +16 -0
  73. package/ui/SnackbarModel.js +56 -0
  74. package/ui/ViewContainer.js +4 -3
  75. package/ui/index.js +24 -24
  76. package/ui/theme.js +7 -5
  77. package/util/Base1DViewModel.js +2 -2
  78. package/util/aborting.js +7 -4
  79. package/util/blockTypes.js +8 -11
  80. package/util/calculateDynamicBlocks.test.js +2 -2
  81. package/util/color/cssColorsLevel4.js +1 -1
  82. package/util/color/index.js +5 -5
  83. package/util/compositeMap.js +3 -11
  84. package/util/index.d.ts +2 -1
  85. package/util/index.js +63 -36
  86. package/util/index.test.js +2 -2
  87. package/util/io/RemoteFileWithRangeCache.js +3 -3
  88. package/util/io/index.js +1 -1
  89. package/util/jexl.js +4 -1
  90. package/util/layouts/BaseLayout.d.ts +3 -0
  91. package/util/layouts/GranularRectLayout.d.ts +19 -10
  92. package/util/layouts/GranularRectLayout.js +459 -100
  93. package/util/layouts/GranularRectLayout.test.js +57 -10
  94. package/util/layouts/MultiLayout.d.ts +1 -1
  95. package/util/layouts/MultiLayout.js +0 -2
  96. package/util/layouts/PrecomputedLayout.js +2 -1
  97. package/util/layouts/PrecomputedMultiLayout.js +5 -3
  98. package/util/layouts/SceneGraph.d.ts +3 -3
  99. package/util/layouts/SceneGraph.js +0 -14
  100. package/util/layouts/index.d.ts +7 -0
  101. package/util/layouts/index.js +68 -0
  102. package/util/mst-reflection.d.ts +3 -3
  103. package/util/mst-reflection.js +3 -3
  104. package/util/offscreenCanvasPonyfill.js +1 -1
  105. package/util/range.js +1 -1
  106. package/util/simpleFeature.js +3 -3
  107. package/util/stats.js +4 -4
  108. package/util/tracks.js +10 -10
  109. package/util/types/index.d.ts +9 -1
  110. package/util/types/index.js +14 -19
  111. package/util/types/mst.js +3 -3
@@ -19,9 +19,9 @@ var _calculateDynamicBlocks = _interopRequireDefault(require("./calculateDynamic
19
19
 
20
20
  var _calculateStaticBlocks = _interopRequireDefault(require("./calculateStaticBlocks"));
21
21
 
22
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
22
+ 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; }
23
23
 
24
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
24
+ 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; }
25
25
 
26
26
  var Base1DView = _mobxStateTree.types.model('Base1DView', {
27
27
  displayedRegions: _mobxStateTree.types.array(_mst.Region),
package/util/aborting.js CHANGED
@@ -5,16 +5,18 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.checkAbortSignal = checkAbortSignal;
9
8
  exports.abortBreakPoint = abortBreakPoint;
9
+ exports.checkAbortSignal = checkAbortSignal;
10
+ exports.isAbortException = isAbortException;
10
11
  exports.makeAbortError = makeAbortError;
11
12
  exports.observeAbortSignal = observeAbortSignal;
12
- exports.isAbortException = isAbortException;
13
13
 
14
14
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
15
15
 
16
16
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
17
17
 
18
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
+
18
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
21
 
20
22
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
@@ -54,7 +56,7 @@ var AbortError = /*#__PURE__*/function (_Error) {
54
56
  return _this;
55
57
  }
56
58
 
57
- return AbortError;
59
+ return (0, _createClass2.default)(AbortError);
58
60
  }( /*#__PURE__*/(0, _wrapNativeSuper2.default)(Error));
59
61
  /**
60
62
  * properly check if the given AbortSignal is aborted.
@@ -145,7 +147,8 @@ function observeAbortSignal(signal) {
145
147
 
146
148
 
147
149
  function isAbortException(exception) {
148
- return exception instanceof Error && (exception.name === 'AbortError' || // standard-ish non-DOM abort exception
150
+ return exception instanceof Error && ( // DOMException
151
+ exception.name === 'AbortError' || // standard-ish non-DOM abort exception
149
152
  exception.code === 'ERR_ABORTED' || // message contains aborted for bubbling through RPC
150
153
  // things we have seen that we want to catch here
151
154
  // Error: aborted
@@ -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.InterRegionPaddingBlock = exports.ElidedBlock = exports.ContentBlock = exports.BaseBlock = exports.BlockSet = void 0;
8
+ exports.InterRegionPaddingBlock = exports.ElidedBlock = exports.ContentBlock = exports.BlockSet = exports.BaseBlock = void 0;
9
9
 
10
10
  var _assertThisInitialized2 = _interopRequireDefault(require("@babel/runtime/helpers/assertThisInitialized"));
11
11
 
@@ -15,26 +15,23 @@ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime
15
15
 
16
16
  var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
17
17
 
18
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
+
18
20
  var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
21
 
20
22
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
23
 
22
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
-
24
24
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
25
25
 
26
26
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
27
27
 
28
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
28
+ 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; }
29
29
 
30
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
30
+ 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; }
31
31
 
32
32
  var BlockSet = /*#__PURE__*/function () {
33
- function BlockSet() {
34
- var blocks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
33
+ function BlockSet(blocks = []) {
35
34
  (0, _classCallCheck2.default)(this, BlockSet);
36
- (0, _defineProperty2.default)(this, "blocks", []);
37
- this.blocks = blocks;
38
35
  }
39
36
 
40
37
  (0, _createClass2.default)(BlockSet, [{
@@ -201,7 +198,7 @@ var ContentBlock = /*#__PURE__*/function (_BaseBlock) {
201
198
  return _super.apply(this, arguments);
202
199
  }
203
200
 
204
- return ContentBlock;
201
+ return (0, _createClass2.default)(ContentBlock);
205
202
  }(BaseBlock);
206
203
  /**
207
204
  * marker block representing one or more blocks that are
@@ -261,7 +258,7 @@ var InterRegionPaddingBlock = /*#__PURE__*/function (_BaseBlock3) {
261
258
  return _super3.apply(this, arguments);
262
259
  }
263
260
 
264
- return InterRegionPaddingBlock;
261
+ return (0, _createClass2.default)(InterRegionPaddingBlock);
265
262
  }(BaseBlock);
266
263
 
267
264
  exports.InterRegionPaddingBlock = InterRegionPaddingBlock;
@@ -6,9 +6,9 @@ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/de
6
6
 
7
7
  var _calculateDynamicBlocks = _interopRequireDefault(require("./calculateDynamicBlocks"));
8
8
 
9
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
9
+ 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; }
10
10
 
11
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
11
+ 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; }
12
12
 
13
13
  var ctgA = {
14
14
  assemblyName: 'test',
@@ -3,8 +3,8 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.namedColorToHex = namedColorToHex;
7
6
  exports.isNamedColor = isNamedColor;
7
+ exports.namedColorToHex = namedColorToHex;
8
8
  // from https://www.w3.org/TR/css-color-4/#named-colors
9
9
  var colors = {
10
10
  aliceblue: '#F0F8FF',
@@ -5,17 +5,17 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.contrastingTextColor = contrastingTextColor;
7
7
  exports.emphasize = emphasize;
8
- exports.makeContrasting = makeContrasting;
9
- Object.defineProperty(exports, "namedColorToHex", {
8
+ Object.defineProperty(exports, "isNamedColor", {
10
9
  enumerable: true,
11
10
  get: function get() {
12
- return _cssColorsLevel.namedColorToHex;
11
+ return _cssColorsLevel.isNamedColor;
13
12
  }
14
13
  });
15
- Object.defineProperty(exports, "isNamedColor", {
14
+ exports.makeContrasting = makeContrasting;
15
+ Object.defineProperty(exports, "namedColorToHex", {
16
16
  enumerable: true,
17
17
  get: function get() {
18
- return _cssColorsLevel.isNamedColor;
18
+ return _cssColorsLevel.namedColorToHex;
19
19
  }
20
20
  });
21
21
 
@@ -13,25 +13,17 @@ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/cl
13
13
 
14
14
  var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
15
15
 
16
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
17
-
18
- var _Symbol$iterator;
19
-
20
16
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
21
17
 
22
18
  function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
23
19
 
24
20
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
25
21
 
26
- _Symbol$iterator = Symbol.iterator;
27
-
28
22
  // takes an array or Map or Set (anything iterable with values()) of Maps
29
23
  // and lets you query them as one Map
30
- var CompositeMap = /*#__PURE__*/function (_Symbol$iterator2) {
24
+ var CompositeMap = /*#__PURE__*/function (_Symbol$iterator) {
31
25
  function CompositeMap(submaps) {
32
26
  (0, _classCallCheck2.default)(this, CompositeMap);
33
- (0, _defineProperty2.default)(this, "submaps", void 0);
34
- this.submaps = submaps;
35
27
  }
36
28
 
37
29
  (0, _createClass2.default)(CompositeMap, [{
@@ -244,7 +236,7 @@ var CompositeMap = /*#__PURE__*/function (_Symbol$iterator2) {
244
236
  return undefined;
245
237
  }
246
238
  }, {
247
- key: _Symbol$iterator2,
239
+ key: _Symbol$iterator,
248
240
  value: /*#__PURE__*/_regenerator.default.mark(function value() {
249
241
  var _iterator9, _step9, key;
250
242
 
@@ -349,6 +341,6 @@ var CompositeMap = /*#__PURE__*/function (_Symbol$iterator2) {
349
341
  })
350
342
  }]);
351
343
  return CompositeMap;
352
- }(_Symbol$iterator);
344
+ }(Symbol.iterator);
353
345
 
354
346
  exports.default = CompositeMap;
package/util/index.d.ts CHANGED
@@ -1,11 +1,12 @@
1
1
  import { IAnyStateTreeNode } from 'mobx-state-tree';
2
2
  import { IReactionPublic, IReactionOptions } from 'mobx';
3
- import { Feature } from './simpleFeature';
3
+ import SimpleFeature, { Feature, isFeature } from './simpleFeature';
4
4
  import { TypeTestedByPredicate, Region, AssemblyManager } from './types';
5
5
  export * from './types';
6
6
  export * from './aborting';
7
7
  export * from './when';
8
8
  export * from './range';
9
+ export { SimpleFeature, isFeature };
9
10
  export * from './offscreenCanvasPonyfill';
10
11
  export * from './offscreenCanvasUtils';
11
12
  export declare const inDevelopment: boolean;
package/util/index.js CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
6
+
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
@@ -51,46 +53,63 @@ var _exportNames = {
51
53
  generateCodonTable: true,
52
54
  updateStatus: true,
53
55
  hashCode: true,
54
- objectHash: true
56
+ objectHash: true,
57
+ SimpleFeature: true,
58
+ isFeature: true
55
59
  };
56
- exports.useDebounce = useDebounce;
57
- exports.useDebouncedCallback = useDebouncedCallback;
58
- exports.findParentThat = findParentThat;
59
- exports.springAnimate = springAnimate;
60
- exports.findParentThatIs = findParentThatIs;
61
- exports.getSession = getSession;
62
- exports.getContainingView = getContainingView;
63
- exports.getContainingTrack = getContainingTrack;
64
- exports.getContainingDisplay = getContainingDisplay;
60
+ Object.defineProperty(exports, "SimpleFeature", {
61
+ enumerable: true,
62
+ get: function get() {
63
+ return _simpleFeature.default;
64
+ }
65
+ });
65
66
  exports.assembleLocString = assembleLocString;
66
- exports.parseLocStringOneBased = parseLocStringOneBased;
67
- exports.parseLocString = parseLocString;
68
- exports.compareLocs = compareLocs;
69
- exports.compareLocStrings = compareLocStrings;
70
- exports.clamp = clamp;
67
+ exports.blobToDataURL = blobToDataURL;
68
+ exports.bpSpanPx = bpSpanPx;
71
69
  exports.bpToPx = bpToPx;
72
- exports.radToDeg = radToDeg;
73
- exports.degToRad = degToRad;
74
- exports.polarToCartesian = polarToCartesian;
75
70
  exports.cartesianToPolar = cartesianToPolar;
71
+ exports.clamp = clamp;
72
+ exports.compareLocStrings = compareLocStrings;
73
+ exports.compareLocs = compareLocs;
74
+ exports.defaultStops = exports.defaultStarts = exports.defaultCodonTable = exports.complement = void 0;
75
+ exports.degToRad = degToRad;
76
76
  exports.featureSpanPx = featureSpanPx;
77
- exports.bpSpanPx = bpSpanPx;
78
- exports.iterMap = iterMap;
79
- exports.mergeConfigs = mergeConfigs;
80
77
  exports.findLastIndex = findLastIndex;
78
+ exports.findParentThat = findParentThat;
79
+ exports.findParentThatIs = findParentThatIs;
80
+ exports.generateCodonTable = generateCodonTable;
81
+ exports.getContainingDisplay = getContainingDisplay;
82
+ exports.getContainingTrack = getContainingTrack;
83
+ exports.getContainingView = getContainingView;
84
+ exports.getSession = getSession;
85
+ exports.hashCode = hashCode;
86
+ exports.isElectron = exports.inProduction = exports.inDevelopment = void 0;
87
+ Object.defineProperty(exports, "isFeature", {
88
+ enumerable: true,
89
+ get: function get() {
90
+ return _simpleFeature.isFeature;
91
+ }
92
+ });
93
+ exports.iterMap = iterMap;
81
94
  exports.makeAbortableReaction = makeAbortableReaction;
95
+ exports.measureText = measureText;
96
+ exports.mergeConfigs = mergeConfigs;
97
+ exports.minmax = minmax;
98
+ exports.objectFromEntries = void 0;
99
+ exports.objectHash = objectHash;
100
+ exports.parseLocString = parseLocString;
101
+ exports.parseLocStringOneBased = parseLocStringOneBased;
102
+ exports.polarToCartesian = polarToCartesian;
103
+ exports.rIC = void 0;
104
+ exports.radToDeg = radToDeg;
82
105
  exports.renameRegionIfNeeded = renameRegionIfNeeded;
83
106
  exports.renameRegionsIfNeeded = renameRegionsIfNeeded;
84
- exports.minmax = minmax;
85
- exports.stringify = stringify;
86
107
  exports.revcom = revcom;
87
- exports.blobToDataURL = blobToDataURL;
88
- exports.measureText = measureText;
89
- exports.generateCodonTable = generateCodonTable;
108
+ exports.springAnimate = springAnimate;
109
+ exports.stringify = stringify;
90
110
  exports.updateStatus = updateStatus;
91
- exports.hashCode = hashCode;
92
- exports.objectHash = objectHash;
93
- exports.defaultCodonTable = exports.defaultStops = exports.defaultStarts = exports.rIC = exports.complement = exports.isElectron = exports.objectFromEntries = exports.inProduction = exports.inDevelopment = void 0;
111
+ exports.useDebounce = useDebounce;
112
+ exports.useDebouncedCallback = useDebouncedCallback;
94
113
 
95
114
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
96
115
 
@@ -114,6 +133,8 @@ var _react = require("react");
114
133
 
115
134
  var _deepmerge = _interopRequireDefault(require("deepmerge"));
116
135
 
136
+ var _simpleFeature = _interopRequireWildcard(require("./simpleFeature"));
137
+
117
138
  var _types = require("./types");
118
139
 
119
140
  Object.keys(_types).forEach(function (key) {
@@ -198,9 +219,13 @@ Object.keys(_offscreenCanvasUtils).forEach(function (key) {
198
219
  });
199
220
  });
200
221
 
201
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
222
+ 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); }
202
223
 
203
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
224
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof3(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; }
225
+
226
+ 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; }
227
+
228
+ 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; }
204
229
 
205
230
  function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
206
231
 
@@ -273,7 +298,11 @@ function useDebouncedCallback(callback) {
273
298
 
274
299
 
275
300
  function findParentThat(node, predicate) {
276
- var currentNode = node;
301
+ if (!(0, _mobxStateTree.hasParent)(node)) {
302
+ throw new Error('node does not have parent');
303
+ }
304
+
305
+ var currentNode = (0, _mobxStateTree.getParent)(node);
277
306
 
278
307
  while (currentNode && (0, _mobxStateTree.isAlive)(currentNode)) {
279
308
  if (predicate(currentNode)) {
@@ -1245,15 +1274,13 @@ function _updateStatus() {
1245
1274
 
1246
1275
  function hashCode(str) {
1247
1276
  var hash = 0;
1248
- var i;
1249
- var chr;
1250
1277
 
1251
1278
  if (str.length === 0) {
1252
1279
  return hash;
1253
1280
  }
1254
1281
 
1255
- for (i = 0; i < str.length; i++) {
1256
- chr = str.charCodeAt(i);
1282
+ for (var i = 0; i < str.length; i++) {
1283
+ var chr = str.charCodeAt(i);
1257
1284
  hash = (hash << 5) - hash + chr;
1258
1285
  hash |= 0; // Convert to 32bit integer
1259
1286
  }
@@ -8,9 +8,9 @@ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/sli
8
8
 
9
9
  var _index = require("./index");
10
10
 
11
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
11
+ 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; }
12
12
 
13
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
13
+ 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; }
14
14
 
15
15
  describe('parseLocString', function () {
16
16
  var cases = [['chr1:1..200', {
@@ -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.clearCache = clearCache;
9
8
  exports.RemoteFileWithRangeCache = void 0;
9
+ exports.clearCache = clearCache;
10
10
 
11
11
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
12
12
 
@@ -40,9 +40,9 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
40
40
 
41
41
  function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
42
42
 
43
- function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }
43
+ 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; }
44
44
 
45
- function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
45
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
46
46
 
47
47
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
48
48
 
package/util/io/index.js CHANGED
@@ -5,13 +5,13 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.openLocation = openLocation;
9
8
  Object.defineProperty(exports, "RemoteFileWithRangeCache", {
10
9
  enumerable: true,
11
10
  get: function get() {
12
11
  return _RemoteFileWithRangeCache.RemoteFileWithRangeCache;
13
12
  }
14
13
  });
14
+ exports.openLocation = openLocation;
15
15
 
16
16
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
17
17
 
package/util/jexl.js CHANGED
@@ -9,7 +9,9 @@ exports.default = _default;
9
9
 
10
10
  var _jexl = _interopRequireDefault(require("jexl"));
11
11
 
12
- function _default() {
12
+ function
13
+ /* config?: any*/
14
+ _default() {
13
15
  var j = new _jexl.default.Jexl(); // someday will make sure all of configs callbacks are added in, including
14
16
  // ones passed in
15
17
  // below are core functions
@@ -40,6 +42,7 @@ function _default() {
40
42
  j.addFunction('floor', Math.floor);
41
43
  j.addFunction('round', Math.round);
42
44
  j.addFunction('abs', Math.abs);
45
+ j.addFunction('log10', Math.log10);
43
46
  j.addFunction('parseInt', Number.parseInt);
44
47
  j.addFunction('parseFloat', Number.parseFloat); // string
45
48
 
@@ -10,11 +10,14 @@ export interface Rectangle<T> {
10
10
  r: number;
11
11
  top: number | null;
12
12
  h: number;
13
+ originalHeight: number;
13
14
  data?: Record<string, T>;
14
15
  }
15
16
  export interface BaseLayout<T> {
16
17
  addRect(id: string, left: number, right: number, height: number, data?: Record<string, T>): number | null;
17
18
  collides(rect: Rectangle<T>, top: number): boolean;
19
+ addRectToBitmap(rect: Rectangle<T>, data: Record<string, T>): void;
20
+ getRectangles(): Map<string, RectTuple>;
18
21
  discardRange(left: number, right: number): void;
19
22
  serializeRegion(region: {
20
23
  start: number;
@@ -1,38 +1,47 @@
1
- import { RectTuple, SerializedLayout, BaseLayout } from './BaseLayout';
1
+ import { RectTuple, SerializedLayout, Rectangle, BaseLayout } from './BaseLayout';
2
2
  export default class GranularRectLayout<T> implements BaseLayout<T> {
3
+ private pitchX;
4
+ private pitchY;
5
+ private hardRowLimit;
6
+ private bitmap;
3
7
  private rectangles;
4
8
  maxHeightReached: boolean;
5
9
  private maxHeight;
6
- private rbush;
7
- private spacing;
10
+ private displayMode;
8
11
  private pTotalHeight;
9
- private pitchX;
10
- constructor({ maxHeight, spacing, pitchX, }?: {
11
- maxHeight?: number;
12
- spacing?: number;
12
+ constructor({ pitchX, pitchY, maxHeight, hardRowLimit, displayMode, }?: {
13
13
  pitchX?: number;
14
+ pitchY?: number;
15
+ maxHeight?: number;
16
+ displayMode?: string;
17
+ hardRowLimit?: number;
14
18
  });
15
19
  /**
16
20
  * @returns top position for the rect, or Null if laying
17
21
  * out the rect would exceed maxHeight
18
22
  */
19
23
  addRect(id: string, left: number, right: number, height: number, data?: Record<string, T>): number | null;
20
- collides(): boolean;
24
+ collides(rect: Rectangle<T>, top: number): boolean;
25
+ /**
26
+ * make a subarray if it does not exist
27
+ */
28
+ private autovivifyRow;
29
+ addRectToBitmap(rect: Rectangle<T>): void;
21
30
  /**
22
31
  * Given a range of X coordinates, deletes all data dealing with
23
32
  * the features.
24
33
  */
25
- discardRange(): void;
34
+ discardRange(left: number, right: number): void;
26
35
  hasSeen(id: string): boolean;
27
36
  getByCoord(x: number, y: number): Record<string, T> | string | undefined;
28
37
  getByID(id: string): RectTuple | undefined;
29
38
  cleanup(): void;
30
39
  getTotalHeight(): number;
31
40
  get totalHeight(): number;
41
+ getRectangles(): Map<string, RectTuple>;
32
42
  serializeRegion(region: {
33
43
  start: number;
34
44
  end: number;
35
45
  }): SerializedLayout;
36
- getRectangles(): Map<string, RectTuple>;
37
46
  toJSON(): SerializedLayout;
38
47
  }