@jbrowse/core 1.5.9 → 1.6.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (155) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.js +91 -78
  2. package/BaseFeatureWidget/SequenceFeatureDetails.js +64 -56
  3. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +9 -9
  4. package/BaseFeatureWidget/index.js +1 -1
  5. package/BaseFeatureWidget/index.test.js +4 -4
  6. package/BaseFeatureWidget/util.js +13 -9
  7. package/CorePlugin.js +32 -20
  8. package/Plugin.js +13 -11
  9. package/PluginLoader.js +37 -32
  10. package/PluginManager.d.ts +8 -5
  11. package/PluginManager.js +142 -53
  12. package/ReExports/index.js +4 -4
  13. package/ReExports/list.js +2 -2
  14. package/ReExports/material-ui-colors.js +20 -20
  15. package/ReExports/modules.d.ts +7 -5
  16. package/ReExports/modules.js +51 -47
  17. package/TextSearch/BaseResults.js +34 -24
  18. package/TextSearch/BaseResults.test.js +7 -3
  19. package/TextSearch/TextSearchManager.js +16 -14
  20. package/assemblyManager/assembly.js +38 -33
  21. package/assemblyManager/assemblyConfigSchema.js +2 -2
  22. package/assemblyManager/assemblyManager.js +19 -15
  23. package/assemblyManager/index.js +3 -3
  24. package/babel.config.d.ts +15 -0
  25. package/babel.config.js +19 -0
  26. package/configuration/configurationSchema.js +19 -17
  27. package/configuration/configurationSlot.js +11 -11
  28. package/configuration/configurationSlot.test.js +5 -5
  29. package/configuration/index.d.ts +1 -0
  30. package/configuration/util.js +5 -5
  31. package/data_adapters/BaseAdapter.d.ts +15 -3
  32. package/data_adapters/BaseAdapter.js +215 -61
  33. package/data_adapters/BaseAdapter.test.js +29 -23
  34. package/data_adapters/CytobandAdapter.d.ts +1 -1
  35. package/data_adapters/CytobandAdapter.js +24 -18
  36. package/data_adapters/dataAdapterCache.js +8 -8
  37. package/package.json +3 -3
  38. package/pluggableElementTypes/AdapterType.js +30 -21
  39. package/pluggableElementTypes/ConnectionType.js +28 -18
  40. package/pluggableElementTypes/DisplayType.js +27 -17
  41. package/pluggableElementTypes/InternetAccountType.js +24 -14
  42. package/pluggableElementTypes/PluggableElementBase.js +10 -8
  43. package/pluggableElementTypes/RpcMethodType.d.ts +1 -1
  44. package/pluggableElementTypes/RpcMethodType.js +140 -117
  45. package/pluggableElementTypes/RpcMethodType.test.js +22 -16
  46. package/pluggableElementTypes/TextSearchAdapterType.js +25 -15
  47. package/pluggableElementTypes/TrackType.js +25 -15
  48. package/pluggableElementTypes/ViewType.js +25 -15
  49. package/pluggableElementTypes/WidgetType.js +27 -17
  50. package/pluggableElementTypes/index.js +11 -11
  51. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +5 -5
  52. package/pluggableElementTypes/models/BaseDisplayModel.js +8 -5
  53. package/pluggableElementTypes/models/BaseTrackModel.js +11 -8
  54. package/pluggableElementTypes/models/BaseViewModel.js +3 -3
  55. package/pluggableElementTypes/models/InternetAccountModel.d.ts +1 -1
  56. package/pluggableElementTypes/models/InternetAccountModel.js +4 -4
  57. package/pluggableElementTypes/models/baseConnectionConfig.js +2 -2
  58. package/pluggableElementTypes/models/baseTrackConfig.js +7 -4
  59. package/pluggableElementTypes/models/index.js +4 -4
  60. package/pluggableElementTypes/renderers/BoxRendererType.js +48 -38
  61. package/pluggableElementTypes/renderers/CircularChordRendererType.js +18 -12
  62. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +34 -26
  63. package/pluggableElementTypes/renderers/FeatureRendererType.js +45 -35
  64. package/pluggableElementTypes/renderers/RendererType.js +30 -20
  65. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +12 -8
  66. package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +1 -1
  67. package/pluggableElementTypes/renderers/ServerSideRendererType.js +44 -32
  68. package/pluggableElementTypes/renderers/index.js +8 -8
  69. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +10 -8
  70. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +2 -2
  71. package/rpc/BaseRpcDriver.js +42 -37
  72. package/rpc/BaseRpcDriver.test.js +62 -48
  73. package/rpc/MainThreadRpcDriver.js +31 -21
  74. package/rpc/RpcManager.js +18 -16
  75. package/rpc/WebWorkerRpcDriver.js +37 -27
  76. package/rpc/configSchema.js +2 -2
  77. package/rpc/coreRpcMethods.d.ts +16 -0
  78. package/rpc/coreRpcMethods.js +247 -120
  79. package/rpc/remoteAbortSignals.js +3 -3
  80. package/ui/AboutDialog.js +20 -16
  81. package/ui/App.js +42 -38
  82. package/ui/AssemblySelector.d.ts +1 -1
  83. package/ui/AssemblySelector.js +6 -6
  84. package/ui/Drawer.js +7 -7
  85. package/ui/DrawerWidget.d.ts +1 -1
  86. package/ui/DrawerWidget.js +37 -33
  87. package/ui/DropDownMenu.js +21 -9
  88. package/ui/EditableTypography.js +30 -19
  89. package/ui/ErrorMessage.js +5 -5
  90. package/ui/FactoryResetDialog.js +8 -8
  91. package/ui/FatalErrorDialog.js +29 -12
  92. package/ui/FatalErrorDialog.test.js +10 -10
  93. package/ui/FileSelector/FileSelector.js +42 -32
  94. package/ui/FileSelector/LocalFileChooser.js +9 -9
  95. package/ui/FileSelector/UrlChooser.js +4 -4
  96. package/ui/FileSelector/index.js +4 -4
  97. package/ui/Icons.js +9 -9
  98. package/ui/Logo.js +19 -19
  99. package/ui/Menu.js +46 -35
  100. package/ui/NewSessionCards.js +29 -19
  101. package/ui/PrerenderedCanvas.js +27 -10
  102. package/ui/ResizeHandle.js +17 -10
  103. package/ui/SanitizedHTML.js +5 -5
  104. package/ui/SanitizedHTML.test.js +4 -4
  105. package/ui/Snackbar.js +16 -12
  106. package/ui/SnackbarModel.js +1 -1
  107. package/ui/Tooltip.js +11 -7
  108. package/ui/ViewContainer.d.ts +2 -5
  109. package/ui/ViewContainer.js +44 -49
  110. package/ui/index.d.ts +1 -0
  111. package/ui/index.js +26 -13
  112. package/ui/theme.js +15 -11
  113. package/util/Base1DViewModel.d.ts +14 -12
  114. package/util/Base1DViewModel.js +51 -55
  115. package/util/Base1DViewModel.test.js +5 -5
  116. package/util/QuickLRU.js +30 -26
  117. package/util/aborting.js +25 -15
  118. package/util/analytics.d.ts +1 -0
  119. package/util/analytics.js +14 -6
  120. package/util/blockTypes.js +48 -36
  121. package/util/calculateDynamicBlocks.js +4 -4
  122. package/util/calculateDynamicBlocks.test.js +14 -10
  123. package/util/calculateStaticBlocks.js +1 -1
  124. package/util/calculateStaticBlocks.test.js +15 -15
  125. package/util/compositeMap.js +30 -26
  126. package/util/idMaker.js +4 -4
  127. package/util/index.d.ts +23 -1
  128. package/util/index.js +130 -36
  129. package/util/index.test.js +11 -7
  130. package/util/io/RemoteFileWithRangeCache.js +40 -28
  131. package/util/io/index.js +5 -5
  132. package/util/jexl.js +5 -5
  133. package/util/jexlStrings.js +2 -2
  134. package/util/jexlStrings.test.js +2 -2
  135. package/util/layouts/GranularRectLayout.js +33 -27
  136. package/util/layouts/GranularRectLayout.test.js +10 -10
  137. package/util/layouts/MultiLayout.js +19 -13
  138. package/util/layouts/PrecomputedLayout.js +16 -14
  139. package/util/layouts/PrecomputedMultiLayout.js +23 -17
  140. package/util/layouts/SceneGraph.js +18 -12
  141. package/util/layouts/index.js +6 -6
  142. package/util/offscreenCanvasPonyfill.js +30 -28
  143. package/util/offscreenCanvasUtils.js +5 -5
  144. package/util/range.test.js +20 -20
  145. package/util/rxjs.js +2 -2
  146. package/util/simpleFeature.js +23 -18
  147. package/util/simpleFeature.test.js +3 -3
  148. package/util/stats.d.ts +1 -1
  149. package/util/stats.js +10 -6
  150. package/util/stats.test.js +15 -15
  151. package/util/tracks.js +1 -3
  152. package/util/types/index.d.ts +1 -1
  153. package/util/types/index.js +36 -31
  154. package/util/types/mst.js +19 -15
  155. package/util/when.js +5 -5
package/Plugin.js CHANGED
@@ -1,29 +1,31 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
11
 
12
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
15
 
14
16
  /**
15
17
  * base class for a JBrowse plugin
16
18
  */
17
19
  var Plugin = /*#__PURE__*/function () {
18
20
  function Plugin() {
19
- (0, _classCallCheck2["default"])(this, Plugin);
20
- this.name = void 0;
21
- this.url = void 0;
22
- this.version = void 0;
23
- this.configurationSchema = undefined;
21
+ (0, _classCallCheck2.default)(this, Plugin);
22
+ (0, _defineProperty2.default)(this, "name", void 0);
23
+ (0, _defineProperty2.default)(this, "url", void 0);
24
+ (0, _defineProperty2.default)(this, "version", void 0);
25
+ (0, _defineProperty2.default)(this, "configurationSchema", undefined);
24
26
  }
25
27
 
26
- (0, _createClass2["default"])(Plugin, [{
28
+ (0, _createClass2.default)(Plugin, [{
27
29
  key: "install",
28
30
  value: function install(_pluginManager) {}
29
31
  }, {
@@ -33,4 +35,4 @@ var Plugin = /*#__PURE__*/function () {
33
35
  return Plugin;
34
36
  }();
35
37
 
36
- exports["default"] = Plugin;
38
+ exports.default = Plugin;
package/PluginLoader.js CHANGED
@@ -1,28 +1,30 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ var _typeof3 = require("@babel/runtime/helpers/typeof");
4
6
 
5
7
  Object.defineProperty(exports, "__esModule", {
6
8
  value: true
7
9
  });
8
- exports["default"] = exports.PluginSourceConfigurationSchema = void 0;
10
+ exports.default = exports.PluginSourceConfigurationSchema = void 0;
9
11
  exports.isCJSPluginDefinition = isCJSPluginDefinition;
10
12
  exports.isESMPluginDefinition = isESMPluginDefinition;
11
13
  exports.isUMDPluginDefinition = isUMDPluginDefinition;
12
14
 
13
15
  var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
14
16
 
15
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
17
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
16
18
 
17
- var _interopRequireWildcard2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/interopRequireWildcard"));
19
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
18
20
 
19
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/asyncToGenerator"));
21
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
20
22
 
21
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
23
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
22
24
 
23
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
25
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
24
26
 
25
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/typeof"));
27
+ var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
26
28
 
27
29
  var _loadScript = _interopRequireDefault(require("load-script2"));
28
30
 
@@ -34,7 +36,10 @@ var _ReExports = _interopRequireDefault(require("./ReExports"));
34
36
 
35
37
  var _util = require("./util");
36
38
 
37
- /* global __non_webpack_require__ */
39
+ 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); }
40
+
41
+ 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; }
42
+
38
43
  var PluginSourceConfigurationSchema = (0, _configuration.ConfigurationSchema)('PluginSource', {
39
44
  name: {
40
45
  type: 'string',
@@ -64,7 +69,7 @@ function getGlobalObject() {
64
69
  // https://github.com/purposeindustries/window-or-global/blob/322abc71de0010c9e5d9d0729df40959e1ef8775/lib/index.js
65
70
  return (
66
71
  /* eslint-disable-next-line no-restricted-globals */
67
- (typeof self === "undefined" ? "undefined" : (0, _typeof2["default"])(self)) === 'object' && self.self === self && self || (typeof global === "undefined" ? "undefined" : (0, _typeof2["default"])(global)) === 'object' && global.global === global && global || // @ts-ignore
72
+ (typeof self === "undefined" ? "undefined" : (0, _typeof2.default)(self)) === 'object' && self.self === self && self || (typeof global === "undefined" ? "undefined" : (0, _typeof2.default)(global)) === 'object' && global.global === global && global || // @ts-ignore
68
73
  this
69
74
  );
70
75
  }
@@ -76,18 +81,18 @@ function isInWebWorker(globalObject) {
76
81
  var PluginLoader = /*#__PURE__*/function () {
77
82
  function PluginLoader() {
78
83
  var pluginDefinitions = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
79
- (0, _classCallCheck2["default"])(this, PluginLoader);
80
- this.definitions = [];
84
+ (0, _classCallCheck2.default)(this, PluginLoader);
85
+ (0, _defineProperty2.default)(this, "definitions", []);
81
86
  this.definitions = JSON.parse(JSON.stringify(pluginDefinitions));
82
87
  }
83
88
 
84
- (0, _createClass2["default"])(PluginLoader, [{
89
+ (0, _createClass2.default)(PluginLoader, [{
85
90
  key: "loadScript",
86
91
  value: function loadScript(scriptUrl) {
87
92
  var globalObject = getGlobalObject();
88
93
 
89
94
  if (!isInWebWorker(globalObject)) {
90
- return (0, _loadScript["default"])(scriptUrl);
95
+ return (0, _loadScript.default)(scriptUrl);
91
96
  } // @ts-ignore
92
97
 
93
98
 
@@ -110,9 +115,9 @@ var PluginLoader = /*#__PURE__*/function () {
110
115
  }, {
111
116
  key: "loadCJSPlugin",
112
117
  value: function () {
113
- var _loadCJSPlugin = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee(pluginDefinition) {
118
+ var _loadCJSPlugin = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(pluginDefinition) {
114
119
  var parsedUrl, fs, path, os, http, fsPromises, systemTmp, tmpDir, plugin, pluginLocation, pluginLocationRelative, pluginDownload;
115
- return _regenerator["default"].wrap(function _callee$(_context) {
120
+ return _regenerator.default.wrap(function _callee$(_context) {
116
121
  while (1) {
117
122
  switch (_context.prev = _context.next) {
118
123
  case 0:
@@ -155,7 +160,7 @@ var PluginLoader = /*#__PURE__*/function () {
155
160
  tmpDir = _context.sent;
156
161
  plugin = undefined;
157
162
  _context.prev = 22;
158
- pluginLocation = path.join(tmpDir, (0, _sanitizeFilename["default"])(parsedUrl.href));
163
+ pluginLocation = path.join(tmpDir, (0, _sanitizeFilename.default)(parsedUrl.href));
159
164
  pluginLocationRelative = path.relative('.', pluginLocation);
160
165
  pluginDownload = new Promise(function (resolve, reject) {
161
166
  var file = fs.createWriteStream(pluginLocation);
@@ -210,9 +215,9 @@ var PluginLoader = /*#__PURE__*/function () {
210
215
  }, {
211
216
  key: "loadESMPlugin",
212
217
  value: function () {
213
- var _loadESMPlugin = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee2(pluginDefinition) {
218
+ var _loadESMPlugin = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(pluginDefinition) {
214
219
  var parsedUrl, plugin;
215
- return _regenerator["default"].wrap(function _callee2$(_context2) {
220
+ return _regenerator.default.wrap(function _callee2$(_context2) {
216
221
  while (1) {
217
222
  switch (_context2.prev = _context2.next) {
218
223
  case 0:
@@ -240,7 +245,7 @@ var PluginLoader = /*#__PURE__*/function () {
240
245
  return Promise.resolve("".concat(
241
246
  /* webpackIgnore: true */
242
247
  parsedUrl.href)).then(function (s) {
243
- return (0, _interopRequireWildcard2["default"])(require(s));
248
+ return _interopRequireWildcard(require(s));
244
249
  });
245
250
 
246
251
  case 12:
@@ -273,9 +278,9 @@ var PluginLoader = /*#__PURE__*/function () {
273
278
  }, {
274
279
  key: "loadUMDPlugin",
275
280
  value: function () {
276
- var _loadUMDPlugin = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee3(pluginDefinition) {
281
+ var _loadUMDPlugin = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(pluginDefinition) {
277
282
  var umdUrl, parsedUrl, moduleName, umdName, globalObject, plugin;
278
- return _regenerator["default"].wrap(function _callee3$(_context3) {
283
+ return _regenerator.default.wrap(function _callee3$(_context3) {
279
284
  while (1) {
280
285
  switch (_context3.prev = _context3.next) {
281
286
  case 0:
@@ -337,9 +342,9 @@ var PluginLoader = /*#__PURE__*/function () {
337
342
  }, {
338
343
  key: "loadPlugin",
339
344
  value: function () {
340
- var _loadPlugin = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee4(definition) {
345
+ var _loadPlugin = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4(definition) {
341
346
  var plugin;
342
- return _regenerator["default"].wrap(function _callee4$(_context4) {
347
+ return _regenerator.default.wrap(function _callee4$(_context4) {
343
348
  while (1) {
344
349
  switch (_context4.prev = _context4.next) {
345
350
  case 0:
@@ -396,7 +401,7 @@ var PluginLoader = /*#__PURE__*/function () {
396
401
  throw new Error("Could not determine plugin type: ".concat(JSON.stringify(definition)));
397
402
 
398
403
  case 23:
399
- return _context4.abrupt("return", plugin["default"]);
404
+ return _context4.abrupt("return", plugin.default);
400
405
 
401
406
  case 24:
402
407
  case "end":
@@ -416,8 +421,8 @@ var PluginLoader = /*#__PURE__*/function () {
416
421
  key: "installGlobalReExports",
417
422
  value: function installGlobalReExports(target) {
418
423
  // @ts-ignore
419
- target.JBrowseExports = Object.fromEntries(Object.entries(_ReExports["default"]).map(function (_ref) {
420
- var _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
424
+ target.JBrowseExports = Object.fromEntries(Object.entries(_ReExports.default).map(function (_ref) {
425
+ var _ref2 = (0, _slicedToArray2.default)(_ref, 2),
421
426
  moduleName = _ref2[0],
422
427
  module = _ref2[1];
423
428
 
@@ -427,16 +432,16 @@ var PluginLoader = /*#__PURE__*/function () {
427
432
  }, {
428
433
  key: "load",
429
434
  value: function () {
430
- var _load = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee6() {
435
+ var _load = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee6() {
431
436
  var _this = this;
432
437
 
433
- return _regenerator["default"].wrap(function _callee6$(_context6) {
438
+ return _regenerator.default.wrap(function _callee6$(_context6) {
434
439
  while (1) {
435
440
  switch (_context6.prev = _context6.next) {
436
441
  case 0:
437
442
  return _context6.abrupt("return", Promise.all(this.definitions.map( /*#__PURE__*/function () {
438
- var _ref3 = (0, _asyncToGenerator2["default"])( /*#__PURE__*/_regenerator["default"].mark(function _callee5(definition) {
439
- return _regenerator["default"].wrap(function _callee5$(_context5) {
443
+ var _ref3 = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee5(definition) {
444
+ return _regenerator.default.wrap(function _callee5$(_context5) {
440
445
  while (1) {
441
446
  switch (_context5.prev = _context5.next) {
442
447
  case 0:
@@ -482,4 +487,4 @@ var PluginLoader = /*#__PURE__*/function () {
482
487
  return PluginLoader;
483
488
  }();
484
489
 
485
- exports["default"] = PluginLoader;
490
+ exports.default = PluginLoader;
@@ -232,11 +232,6 @@ export default class PluginManager {
232
232
  readonly maxOffset: number;
233
233
  readonly minOffset: number;
234
234
  readonly totalBp: number;
235
- bpToPx({ refName, coord, regionNumber, }: {
236
- refName: string;
237
- coord: number;
238
- regionNumber?: number | undefined;
239
- }): number | undefined;
240
235
  pxToBp(px: number): {
241
236
  oob: boolean;
242
237
  coord: number;
@@ -261,6 +256,11 @@ export default class PluginManager {
261
256
  readonly dynamicBlocks: import("./util/blockTypes").BlockSet;
262
257
  readonly staticBlocks: import("./util/blockTypes").BlockSet;
263
258
  readonly currBp: number;
259
+ bpToPx({ refName, coord, regionNumber, }: {
260
+ refName: string;
261
+ coord: number;
262
+ regionNumber?: number | undefined;
263
+ }): number | undefined;
264
264
  } & {
265
265
  setFeatures(features: import("./util/simpleFeature").Feature[]): void;
266
266
  zoomToDisplayedRegions(leftPx: import("./util/Base1DViewModel").BpOffset | undefined, rightPx: import("./util/Base1DViewModel").BpOffset | undefined): void;
@@ -269,6 +269,8 @@ export default class PluginManager {
269
269
  zoomOut(): void;
270
270
  zoomIn(): void;
271
271
  zoomTo(newBpPerPx: number, offset?: number): void;
272
+ scrollTo(offsetPx: number): number;
273
+ centerAt(bp: number, refName: string, regionIndex: number): void;
272
274
  scroll(distance: number): number;
273
275
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
274
276
  '@jbrowse/core/util/io': typeof import("./util/io");
@@ -310,5 +312,6 @@ export default class PluginManager {
310
312
  addInternetAccountType(creationCallback: (pluginManager: PluginManager) => InternetAccountType): this;
311
313
  addToExtensionPoint<T>(extensionPointName: string, callback: (extendee: T) => T): void;
312
314
  evaluateExtensionPoint(extensionPointName: string, extendee: unknown): unknown;
315
+ evaluateAsyncExtensionPoint(extensionPointName: string, extendee: unknown): Promise<unknown>;
313
316
  }
314
317
  export {};
package/PluginManager.js CHANGED
@@ -1,21 +1,25 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
- var _createForOfIteratorHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createForOfIteratorHelper"));
10
+ var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
11
 
12
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/toConsumableArray"));
12
+ var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
13
13
 
14
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/slicedToArray"));
14
+ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
15
15
 
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/classCallCheck"));
16
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
17
17
 
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/esm/createClass"));
18
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
19
+
20
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
19
23
 
20
24
  var _mobxStateTree = require("mobx-state-tree");
21
25
 
@@ -49,13 +53,19 @@ var _CorePlugin = _interopRequireDefault(require("./CorePlugin"));
49
53
 
50
54
  var _jexl = _interopRequireDefault(require("./util/jexl"));
51
55
 
56
+ 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; } } }; }
57
+
58
+ 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); }
59
+
60
+ 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; }
61
+
52
62
  /** little helper class that keeps groups of callbacks that are
53
63
  then run in a specified order by group */
54
64
  var PhasedScheduler = /*#__PURE__*/function () {
55
65
  function PhasedScheduler() {
56
- (0, _classCallCheck2["default"])(this, PhasedScheduler);
57
- this.phaseCallbacks = new Map();
58
- this.phaseOrder = [];
66
+ (0, _classCallCheck2.default)(this, PhasedScheduler);
67
+ (0, _defineProperty2.default)(this, "phaseCallbacks", new Map());
68
+ (0, _defineProperty2.default)(this, "phaseOrder", []);
59
69
 
60
70
  for (var _len = arguments.length, phaseOrder = new Array(_len), _key = 0; _key < _len; _key++) {
61
71
  phaseOrder[_key] = arguments[_key];
@@ -64,7 +74,7 @@ var PhasedScheduler = /*#__PURE__*/function () {
64
74
  this.phaseOrder = phaseOrder;
65
75
  }
66
76
 
67
- (0, _createClass2["default"])(PhasedScheduler, [{
77
+ (0, _createClass2.default)(PhasedScheduler, [{
68
78
  key: "add",
69
79
  value: function add(phase, callback) {
70
80
  if (!this.phaseOrder.includes(phase)) {
@@ -102,13 +112,13 @@ var PhasedScheduler = /*#__PURE__*/function () {
102
112
  /** internal class that holds the info for a certain element type */
103
113
  var TypeRecord = /*#__PURE__*/function () {
104
114
  function TypeRecord(typeName, baseClass) {
105
- (0, _classCallCheck2["default"])(this, TypeRecord);
115
+ (0, _classCallCheck2.default)(this, TypeRecord);
106
116
  this.typeName = typeName;
107
117
  this.baseClass = baseClass;
108
- this.registeredTypes = {};
118
+ (0, _defineProperty2.default)(this, "registeredTypes", {});
109
119
  }
110
120
 
111
- (0, _createClass2["default"])(TypeRecord, [{
121
+ (0, _createClass2.default)(TypeRecord, [{
112
122
  key: "add",
113
123
  value: function add(name, t) {
114
124
  this.registeredTypes[name] = t;
@@ -143,37 +153,35 @@ var PluginManager = /*#__PURE__*/function () {
143
153
  var _this2 = this;
144
154
 
145
155
  var initialPlugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
146
- (0, _classCallCheck2["default"])(this, PluginManager);
147
- this.plugins = [];
148
- this.jexl = (0, _jexl["default"])();
149
- this.pluginMetadata = {};
150
- this.runtimePluginDefinitions = [];
151
- this.elementCreationSchedule = new PhasedScheduler('renderer', 'adapter', 'text search adapter', 'display', 'track', 'connection', 'view', 'widget', 'rpc method', 'internet account');
152
- this.rendererTypes = new TypeRecord('RendererType', _RendererType["default"]);
153
- this.adapterTypes = new TypeRecord('AdapterType', _AdapterType["default"]);
154
- this.textSearchAdapterTypes = new TypeRecord('TextSearchAdapterType', _TextSearchAdapterType["default"]);
155
- this.trackTypes = new TypeRecord('TrackType', _TrackType["default"]);
156
- this.displayTypes = new TypeRecord('DisplayType', _DisplayType["default"]);
157
- this.connectionTypes = new TypeRecord('ConnectionType', _ConnectionType["default"]);
158
- this.viewTypes = new TypeRecord('ViewType', _ViewType["default"]);
159
- this.widgetTypes = new TypeRecord('WidgetType', _WidgetType["default"]);
160
- this.rpcMethods = new TypeRecord('RpcMethodType', _RpcMethodType["default"]);
161
- this.internetAccountTypes = new TypeRecord('InternetAccountType', _InternetAccountType["default"]);
162
- this.configured = false;
163
- this.rootModel = void 0;
164
- this.extensionPoints = new Map();
165
- this.jbrequireCache = new Map();
166
- this.lib = _ReExports["default"];
167
-
168
- this.load = function (lib) {
156
+ (0, _classCallCheck2.default)(this, PluginManager);
157
+ (0, _defineProperty2.default)(this, "plugins", []);
158
+ (0, _defineProperty2.default)(this, "jexl", (0, _jexl.default)());
159
+ (0, _defineProperty2.default)(this, "pluginMetadata", {});
160
+ (0, _defineProperty2.default)(this, "runtimePluginDefinitions", []);
161
+ (0, _defineProperty2.default)(this, "elementCreationSchedule", new PhasedScheduler('renderer', 'adapter', 'text search adapter', 'display', 'track', 'connection', 'view', 'widget', 'rpc method', 'internet account'));
162
+ (0, _defineProperty2.default)(this, "rendererTypes", new TypeRecord('RendererType', _RendererType.default));
163
+ (0, _defineProperty2.default)(this, "adapterTypes", new TypeRecord('AdapterType', _AdapterType.default));
164
+ (0, _defineProperty2.default)(this, "textSearchAdapterTypes", new TypeRecord('TextSearchAdapterType', _TextSearchAdapterType.default));
165
+ (0, _defineProperty2.default)(this, "trackTypes", new TypeRecord('TrackType', _TrackType.default));
166
+ (0, _defineProperty2.default)(this, "displayTypes", new TypeRecord('DisplayType', _DisplayType.default));
167
+ (0, _defineProperty2.default)(this, "connectionTypes", new TypeRecord('ConnectionType', _ConnectionType.default));
168
+ (0, _defineProperty2.default)(this, "viewTypes", new TypeRecord('ViewType', _ViewType.default));
169
+ (0, _defineProperty2.default)(this, "widgetTypes", new TypeRecord('WidgetType', _WidgetType.default));
170
+ (0, _defineProperty2.default)(this, "rpcMethods", new TypeRecord('RpcMethodType', _RpcMethodType.default));
171
+ (0, _defineProperty2.default)(this, "internetAccountTypes", new TypeRecord('InternetAccountType', _InternetAccountType.default));
172
+ (0, _defineProperty2.default)(this, "configured", false);
173
+ (0, _defineProperty2.default)(this, "rootModel", void 0);
174
+ (0, _defineProperty2.default)(this, "extensionPoints", new Map());
175
+ (0, _defineProperty2.default)(this, "jbrequireCache", new Map());
176
+ (0, _defineProperty2.default)(this, "lib", _ReExports.default);
177
+ (0, _defineProperty2.default)(this, "load", function (lib) {
169
178
  if (!_this2.jbrequireCache.has(lib)) {
170
179
  _this2.jbrequireCache.set(lib, lib(_this2));
171
180
  }
172
181
 
173
182
  return _this2.jbrequireCache.get(lib);
174
- };
175
-
176
- this.jbrequire = function (lib // eslint-disable-next-line @typescript-eslint/no-explicit-any
183
+ });
184
+ (0, _defineProperty2.default)(this, "jbrequire", function (lib // eslint-disable-next-line @typescript-eslint/no-explicit-any
177
185
  ) {
178
186
  if (typeof lib === 'string') {
179
187
  var pack = _this2.lib[lib];
@@ -189,16 +197,15 @@ var PluginManager = /*#__PURE__*/function () {
189
197
  return _this2.load(lib);
190
198
  }
191
199
 
192
- if (lib["default"]) {
193
- return _this2.jbrequire(lib["default"]);
200
+ if (lib.default) {
201
+ return _this2.jbrequire(lib.default);
194
202
  }
195
203
 
196
204
  throw new TypeError('lib passed to jbrequire must be either a string or a function');
197
- };
198
-
205
+ });
199
206
  // add the core plugin
200
207
  this.addPlugin({
201
- plugin: new _CorePlugin["default"](),
208
+ plugin: new _CorePlugin.default(),
202
209
  metadata: {
203
210
  isCore: true
204
211
  }
@@ -209,7 +216,7 @@ var PluginManager = /*#__PURE__*/function () {
209
216
  });
210
217
  }
211
218
 
212
- (0, _createClass2["default"])(PluginManager, [{
219
+ (0, _createClass2.default)(PluginManager, [{
213
220
  key: "pluginConfigurationSchemas",
214
221
  value: function pluginConfigurationSchemas() {
215
222
  var configurationSchemas = {};
@@ -227,8 +234,8 @@ var PluginManager = /*#__PURE__*/function () {
227
234
  throw new Error('JBrowse already configured, cannot add plugins');
228
235
  }
229
236
 
230
- var _ref = load instanceof _Plugin["default"] ? [load, {}] : [load.plugin, load.metadata],
231
- _ref2 = (0, _slicedToArray2["default"])(_ref, 2),
237
+ var _ref = load instanceof _Plugin.default ? [load, {}] : [load.plugin, load.metadata],
238
+ _ref2 = (0, _slicedToArray2.default)(_ref, 2),
232
239
  plugin = _ref2[0],
233
240
  _ref2$ = _ref2[1],
234
241
  metadata = _ref2$ === void 0 ? {} : _ref2$;
@@ -377,7 +384,7 @@ var PluginManager = /*#__PURE__*/function () {
377
384
  }, {
378
385
  key: "pluggableMstType",
379
386
  value: function pluggableMstType(typeGroup, fieldName) {
380
- var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _mobxStateTree.types.maybe(_mobxStateTree.types["null"]);
387
+ var fallback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : _mobxStateTree.types.maybe(_mobxStateTree.types.null);
381
388
  var pluggableTypes = this.getElementTypeRecord(typeGroup).all() // @ts-ignore
382
389
  .map(function (t) {
383
390
  return t[fieldName];
@@ -391,7 +398,7 @@ var PluginManager = /*#__PURE__*/function () {
391
398
  return fallback;
392
399
  }
393
400
 
394
- return _mobxStateTree.types.union.apply(_mobxStateTree.types, (0, _toConsumableArray2["default"])(pluggableTypes));
401
+ return _mobxStateTree.types.union.apply(_mobxStateTree.types, (0, _toConsumableArray2.default)(pluggableTypes));
395
402
  }
396
403
  /** get a MST type for the union of all specified pluggable config schemas */
397
404
 
@@ -410,7 +417,7 @@ var PluginManager = /*#__PURE__*/function () {
410
417
  pluggableTypes.push((0, _configuration.ConfigurationSchema)('Null', {}));
411
418
  }
412
419
 
413
- return _mobxStateTree.types.union.apply(_mobxStateTree.types, (0, _toConsumableArray2["default"])(pluggableTypes));
420
+ return _mobxStateTree.types.union.apply(_mobxStateTree.types, (0, _toConsumableArray2.default)(pluggableTypes));
414
421
  }
415
422
  }, {
416
423
  key: "getRendererType",
@@ -568,7 +575,7 @@ var PluginManager = /*#__PURE__*/function () {
568
575
  var accumulator = extendee;
569
576
 
570
577
  if (callbacks) {
571
- var _iterator = (0, _createForOfIteratorHelper2["default"])(callbacks),
578
+ var _iterator = _createForOfIteratorHelper(callbacks),
572
579
  _step;
573
580
 
574
581
  try {
@@ -590,8 +597,90 @@ var PluginManager = /*#__PURE__*/function () {
590
597
 
591
598
  return accumulator;
592
599
  }
600
+ }, {
601
+ key: "evaluateAsyncExtensionPoint",
602
+ value: function () {
603
+ var _evaluateAsyncExtensionPoint = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(extensionPointName, extendee) {
604
+ var callbacks, accumulator, _iterator2, _step2, callback;
605
+
606
+ return _regenerator.default.wrap(function _callee$(_context) {
607
+ while (1) {
608
+ switch (_context.prev = _context.next) {
609
+ case 0:
610
+ callbacks = this.extensionPoints.get(extensionPointName);
611
+ accumulator = extendee;
612
+
613
+ if (!callbacks) {
614
+ _context.next = 27;
615
+ break;
616
+ }
617
+
618
+ _iterator2 = _createForOfIteratorHelper(callbacks);
619
+ _context.prev = 4;
620
+
621
+ _iterator2.s();
622
+
623
+ case 6:
624
+ if ((_step2 = _iterator2.n()).done) {
625
+ _context.next = 19;
626
+ break;
627
+ }
628
+
629
+ callback = _step2.value;
630
+ _context.prev = 8;
631
+ _context.next = 11;
632
+ return callback(accumulator);
633
+
634
+ case 11:
635
+ accumulator = _context.sent;
636
+ _context.next = 17;
637
+ break;
638
+
639
+ case 14:
640
+ _context.prev = 14;
641
+ _context.t0 = _context["catch"](8);
642
+ console.error(_context.t0);
643
+
644
+ case 17:
645
+ _context.next = 6;
646
+ break;
647
+
648
+ case 19:
649
+ _context.next = 24;
650
+ break;
651
+
652
+ case 21:
653
+ _context.prev = 21;
654
+ _context.t1 = _context["catch"](4);
655
+
656
+ _iterator2.e(_context.t1);
657
+
658
+ case 24:
659
+ _context.prev = 24;
660
+
661
+ _iterator2.f();
662
+
663
+ return _context.finish(24);
664
+
665
+ case 27:
666
+ return _context.abrupt("return", accumulator);
667
+
668
+ case 28:
669
+ case "end":
670
+ return _context.stop();
671
+ }
672
+ }
673
+ }, _callee, this, [[4, 21, 24, 27], [8, 14]]);
674
+ }));
675
+
676
+ function evaluateAsyncExtensionPoint(_x, _x2) {
677
+ return _evaluateAsyncExtensionPoint.apply(this, arguments);
678
+ }
679
+
680
+ return evaluateAsyncExtensionPoint;
681
+ }()
593
682
  }]);
594
683
  return PluginManager;
595
684
  }();
596
685
 
597
- exports["default"] = PluginManager;
686
+ exports.default = PluginManager;
@@ -1,13 +1,13 @@
1
1
  "use strict";
2
2
 
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault")["default"];
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports["default"] = void 0;
8
+ exports.default = void 0;
9
9
 
10
10
  var _modules = _interopRequireDefault(require("./modules"));
11
11
 
12
- var _default = _modules["default"];
13
- exports["default"] = _default;
12
+ var _default = _modules.default;
13
+ exports.default = _default;
package/ReExports/list.js CHANGED
@@ -3,6 +3,6 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports["default"] = void 0;
6
+ exports.default = void 0;
7
7
  var _default = ['mobx', 'mobx-state-tree', 'react', 'react-dom', 'mobx-react', 'prop-types', '@material-ui/core', '@material-ui/core/SvgIcon', '@material-ui/core/utils', '@material-ui/lab', '@mui/x-data-grid', '@jbrowse/core/Plugin', '@jbrowse/core/pluggableElementTypes', '@jbrowse/core/pluggableElementTypes/ViewType', '@jbrowse/core/pluggableElementTypes/AdapterType', '@jbrowse/core/pluggableElementTypes/DisplayType', '@jbrowse/core/pluggableElementTypes/TrackType', '@jbrowse/core/pluggableElementTypes/WidgetType', '@jbrowse/core/pluggableElementTypes/models', '@jbrowse/core/pluggableElementTypes/renderers/ServerSideRendererType', '@jbrowse/core/pluggableElementTypes/renderers/CircularChordRendererType', '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType', '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType', '@jbrowse/core/pluggableElementTypes/renderers/RendererType', '@jbrowse/core/configuration', '@jbrowse/core/util/types/mst', '@jbrowse/core/ui', '@jbrowse/core/util', '@jbrowse/core/util/color', '@jbrowse/core/util/layouts', '@jbrowse/core/util/tracks', '@jbrowse/core/util/Base1DViewModel', '@jbrowse/core/util/io', '@jbrowse/core/util/mst-reflection', '@jbrowse/core/util/rxjs', '@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail', '@jbrowse/core/data_adapters/BaseAdapter'];
8
- exports["default"] = _default;
8
+ exports.default = _default;