@jbrowse/core 1.4.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 (159) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +4 -4
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +27 -8
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +10 -10
  4. package/BaseFeatureWidget/index.js +1 -1
  5. package/BaseFeatureWidget/types.d.ts +1 -1
  6. package/BaseFeatureWidget/util.js +3 -3
  7. package/CorePlugin.d.ts +0 -1
  8. package/CorePlugin.js +13 -1
  9. package/PluginLoader.d.ts +26 -4
  10. package/PluginLoader.js +337 -51
  11. package/PluginManager.d.ts +18 -11
  12. package/PluginManager.js +53 -31
  13. package/ReExports/list.js +1 -1
  14. package/ReExports/material-ui-colors.js +38 -38
  15. package/ReExports/modules.d.ts +19 -20
  16. package/ReExports/modules.js +10 -3
  17. package/TextSearch/BaseResults.d.ts +5 -14
  18. package/TextSearch/BaseResults.js +16 -58
  19. package/TextSearch/BaseResults.test.js +1 -11
  20. package/TextSearch/TextSearchManager.d.ts +3 -3
  21. package/TextSearch/TextSearchManager.js +1 -1
  22. package/assemblyManager/assembly.d.ts +21 -8
  23. package/assemblyManager/assembly.js +163 -120
  24. package/assemblyManager/assemblyConfigSchema.d.ts +3 -0
  25. package/assemblyManager/{assemblyConfigSchemas.js → assemblyConfigSchema.js} +35 -27
  26. package/assemblyManager/assemblyManager.d.ts +169 -60
  27. package/assemblyManager/index.d.ts +1 -1
  28. package/assemblyManager/index.js +5 -5
  29. package/configuration/configurationSchema.d.ts +3 -2
  30. package/configuration/configurationSchema.js +7 -10
  31. package/configuration/configurationSchema.test.js +4 -2
  32. package/configuration/configurationSlot.js +5 -4
  33. package/configuration/index.js +4 -4
  34. package/configuration/util.js +5 -5
  35. package/data_adapters/BaseAdapter.d.ts +5 -3
  36. package/data_adapters/BaseAdapter.js +7 -4
  37. package/data_adapters/BaseAdapter.test.js +4 -2
  38. package/data_adapters/CytobandAdapter.d.ts +8 -0
  39. package/data_adapters/CytobandAdapter.js +128 -0
  40. package/data_adapters/dataAdapterCache.js +3 -3
  41. package/package.json +7 -6
  42. package/pluggableElementTypes/AdapterType.d.ts +9 -1
  43. package/pluggableElementTypes/AdapterType.js +20 -0
  44. package/pluggableElementTypes/InternetAccountType.d.ts +12 -0
  45. package/pluggableElementTypes/InternetAccountType.js +64 -0
  46. package/pluggableElementTypes/PluggableElementBase.d.ts +1 -2
  47. package/pluggableElementTypes/PluggableElementBase.js +2 -3
  48. package/pluggableElementTypes/RpcMethodType.d.ts +3 -0
  49. package/pluggableElementTypes/RpcMethodType.js +269 -26
  50. package/pluggableElementTypes/RpcMethodType.test.d.ts +4 -0
  51. package/pluggableElementTypes/RpcMethodType.test.js +118 -0
  52. package/pluggableElementTypes/ViewType.d.ts +1 -1
  53. package/pluggableElementTypes/WidgetType.d.ts +1 -0
  54. package/pluggableElementTypes/index.d.ts +7 -3
  55. package/pluggableElementTypes/index.js +127 -1
  56. package/pluggableElementTypes/models/BaseDisplayModel.d.ts +6 -6
  57. package/pluggableElementTypes/models/BaseDisplayModel.js +1 -3
  58. package/pluggableElementTypes/models/BaseViewModel.js +13 -15
  59. package/pluggableElementTypes/models/InternetAccountModel.d.ts +24 -0
  60. package/pluggableElementTypes/models/InternetAccountModel.js +85 -0
  61. package/pluggableElementTypes/models/baseInternetAccountConfig.d.ts +4 -0
  62. package/pluggableElementTypes/models/baseInternetAccountConfig.js +25 -0
  63. package/pluggableElementTypes/models/index.d.ts +3 -0
  64. package/pluggableElementTypes/models/index.js +24 -8
  65. package/pluggableElementTypes/renderers/BoxRendererType.js +1 -1
  66. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.d.ts +1 -1
  67. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +15 -6
  68. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +3 -3
  69. package/pluggableElementTypes/renderers/FeatureRendererType.js +17 -8
  70. package/pluggableElementTypes/renderers/RendererType.d.ts +1 -0
  71. package/pluggableElementTypes/renderers/RendererType.js +4 -1
  72. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +1 -1
  73. package/pluggableElementTypes/renderers/index.d.ts +9 -0
  74. package/pluggableElementTypes/renderers/index.js +63 -0
  75. package/rpc/BaseRpcDriver.js +5 -9
  76. package/rpc/BaseRpcDriver.test.js +6 -6
  77. package/rpc/RpcManager.d.ts +1 -1
  78. package/rpc/RpcManager.js +44 -16
  79. package/rpc/WebWorkerRpcDriver.js +3 -3
  80. package/rpc/coreRpcMethods.d.ts +2 -1
  81. package/rpc/coreRpcMethods.js +109 -75
  82. package/rpc/remoteAbortSignals.js +2 -2
  83. package/ui/App.d.ts +17 -4
  84. package/ui/App.js +55 -41
  85. package/ui/Drawer.d.ts +6 -14
  86. package/ui/Drawer.js +11 -12
  87. package/ui/DrawerWidget.d.ts +5 -3
  88. package/ui/DrawerWidget.js +100 -61
  89. package/ui/ErrorMessage.d.ts +5 -0
  90. package/ui/ErrorMessage.js +54 -0
  91. package/ui/FileSelector/FileSelector.d.ts +11 -0
  92. package/ui/FileSelector/FileSelector.js +198 -0
  93. package/ui/FileSelector/LocalFileChooser.d.ts +7 -0
  94. package/ui/FileSelector/LocalFileChooser.js +79 -0
  95. package/ui/FileSelector/UrlChooser.d.ts +9 -0
  96. package/ui/FileSelector/UrlChooser.js +41 -0
  97. package/ui/FileSelector/index.d.ts +2 -0
  98. package/ui/FileSelector/index.js +13 -0
  99. package/ui/Icons.d.ts +4 -0
  100. package/ui/Icons.js +34 -0
  101. package/ui/Logo.js +1 -1
  102. package/ui/PrerenderedCanvas.d.ts +1 -0
  103. package/ui/PrerenderedCanvas.js +4 -1
  104. package/ui/ResizeHandle.d.ts +2 -3
  105. package/ui/ResizeHandle.js +6 -7
  106. package/ui/SanitizedHTML.js +1 -1
  107. package/ui/Snackbar.js +4 -6
  108. package/ui/SnackbarModel.d.ts +16 -0
  109. package/ui/SnackbarModel.js +56 -0
  110. package/ui/Tooltip.d.ts +1 -1
  111. package/ui/index.js +24 -24
  112. package/ui/theme.js +5 -5
  113. package/util/QuickLRU.d.ts +1 -1
  114. package/util/QuickLRU.js +3 -3
  115. package/util/aborting.d.ts +1 -1
  116. package/util/aborting.js +10 -11
  117. package/util/analytics.d.ts +2 -2
  118. package/util/analytics.js +20 -7
  119. package/util/blockTypes.d.ts +11 -6
  120. package/util/blockTypes.js +7 -1
  121. package/util/color/cssColorsLevel4.js +1 -1
  122. package/util/color/index.js +5 -5
  123. package/util/compositeMap.js +3 -3
  124. package/util/index.d.ts +6 -16
  125. package/util/index.js +76 -100
  126. package/util/io/RemoteFileWithRangeCache.d.ts +17 -0
  127. package/util/io/RemoteFileWithRangeCache.js +266 -0
  128. package/util/io/index.d.ts +4 -2
  129. package/util/io/index.js +134 -25
  130. package/util/jexl.js +4 -1
  131. package/util/layouts/BaseLayout.d.ts +3 -0
  132. package/util/layouts/GranularRectLayout.d.ts +19 -10
  133. package/util/layouts/GranularRectLayout.js +459 -100
  134. package/util/layouts/GranularRectLayout.test.js +57 -10
  135. package/util/layouts/PrecomputedLayout.js +2 -1
  136. package/util/layouts/index.d.ts +7 -0
  137. package/util/layouts/index.js +68 -0
  138. package/util/mst-reflection.js +3 -3
  139. package/util/offscreenCanvasPonyfill.js +1 -1
  140. package/util/range.js +1 -1
  141. package/util/simpleFeature.js +1 -1
  142. package/util/stats.js +2 -2
  143. package/util/tracks.d.ts +31 -362
  144. package/util/tracks.js +74 -190
  145. package/util/types/index.d.ts +54 -10
  146. package/util/types/index.js +110 -8
  147. package/util/types/mst.d.ts +46 -2
  148. package/util/types/mst.js +56 -8
  149. package/util/types/util.d.ts +1 -1
  150. package/util/when.js +1 -1
  151. package/assemblyManager/assemblyConfigSchemas.d.ts +0 -7
  152. package/ui/FileSelector.d.ts +0 -9
  153. package/ui/FileSelector.js +0 -150
  154. package/util/io/LocalFile.d.ts +0 -18
  155. package/util/io/LocalFile.js +0 -220
  156. package/util/io/rangeFetcher.d.ts +0 -3
  157. package/util/io/rangeFetcher.js +0 -236
  158. package/value.d.ts +0 -1
  159. package/value.js +0 -10
package/ui/index.js CHANGED
@@ -21,76 +21,76 @@ var _exportNames = {
21
21
  Menu: true,
22
22
  SanitizedHTML: true
23
23
  };
24
- Object.defineProperty(exports, "LogoFull", {
24
+ Object.defineProperty(exports, "App", {
25
25
  enumerable: true,
26
26
  get: function get() {
27
- return _Logo.LogoFull;
27
+ return _App.default;
28
28
  }
29
29
  });
30
- Object.defineProperty(exports, "Logomark", {
30
+ Object.defineProperty(exports, "EditableTypography", {
31
31
  enumerable: true,
32
32
  get: function get() {
33
- return _Logo.Logomark;
33
+ return _EditableTypography.default;
34
34
  }
35
35
  });
36
- Object.defineProperty(exports, "App", {
36
+ Object.defineProperty(exports, "FactoryResetDialog", {
37
37
  enumerable: true,
38
38
  get: function get() {
39
- return _App.default;
39
+ return _FactoryResetDialog.default;
40
40
  }
41
41
  });
42
- Object.defineProperty(exports, "FileSelector", {
42
+ Object.defineProperty(exports, "FatalErrorDialog", {
43
43
  enumerable: true,
44
44
  get: function get() {
45
- return _FileSelector.default;
45
+ return _FatalErrorDialog.default;
46
46
  }
47
47
  });
48
- Object.defineProperty(exports, "PrerenderedCanvas", {
48
+ Object.defineProperty(exports, "FileSelector", {
49
49
  enumerable: true,
50
50
  get: function get() {
51
- return _PrerenderedCanvas.default;
51
+ return _FileSelector.default;
52
52
  }
53
53
  });
54
- Object.defineProperty(exports, "ResizeHandle", {
54
+ Object.defineProperty(exports, "LogoFull", {
55
55
  enumerable: true,
56
56
  get: function get() {
57
- return _ResizeHandle.default;
57
+ return _Logo.LogoFull;
58
58
  }
59
59
  });
60
- Object.defineProperty(exports, "EditableTypography", {
60
+ Object.defineProperty(exports, "Logomark", {
61
61
  enumerable: true,
62
62
  get: function get() {
63
- return _EditableTypography.default;
63
+ return _Logo.Logomark;
64
64
  }
65
65
  });
66
- Object.defineProperty(exports, "FactoryResetDialog", {
66
+ Object.defineProperty(exports, "Menu", {
67
67
  enumerable: true,
68
68
  get: function get() {
69
- return _FactoryResetDialog.default;
69
+ return _Menu.default;
70
70
  }
71
71
  });
72
- Object.defineProperty(exports, "Tooltip", {
72
+ Object.defineProperty(exports, "PrerenderedCanvas", {
73
73
  enumerable: true,
74
74
  get: function get() {
75
- return _Tooltip.default;
75
+ return _PrerenderedCanvas.default;
76
76
  }
77
77
  });
78
- Object.defineProperty(exports, "FatalErrorDialog", {
78
+ Object.defineProperty(exports, "ResizeHandle", {
79
79
  enumerable: true,
80
80
  get: function get() {
81
- return _FatalErrorDialog.default;
81
+ return _ResizeHandle.default;
82
82
  }
83
83
  });
84
- Object.defineProperty(exports, "Menu", {
84
+ Object.defineProperty(exports, "SanitizedHTML", {
85
85
  enumerable: true,
86
86
  get: function get() {
87
- return _Menu.default;
87
+ return _SanitizedHTML.default;
88
88
  }
89
89
  });
90
- Object.defineProperty(exports, "SanitizedHTML", {
90
+ Object.defineProperty(exports, "Tooltip", {
91
91
  enumerable: true,
92
92
  get: function get() {
93
- return _SanitizedHTML.default;
93
+ return _Tooltip.default;
94
94
  }
95
95
  });
96
96
 
package/ui/theme.js CHANGED
@@ -5,10 +5,10 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.createJBrowseDefaultProps = createJBrowseDefaultProps;
9
8
  exports.createJBrowseDefaultOverrides = createJBrowseDefaultOverrides;
9
+ exports.createJBrowseDefaultProps = createJBrowseDefaultProps;
10
10
  exports.createJBrowseTheme = createJBrowseTheme;
11
- exports.jbrowseBaseTheme = exports.jbrowseDefaultPalette = void 0;
11
+ exports.jbrowseDefaultPalette = exports.jbrowseBaseTheme = void 0;
12
12
 
13
13
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
14
14
 
@@ -54,9 +54,9 @@ var jbrowseDefaultPalette = {
54
54
  };
55
55
  exports.jbrowseDefaultPalette = jbrowseDefaultPalette;
56
56
 
57
- function createJBrowseDefaultProps()
58
- /* palette: PaletteOptions = {} */
59
- {
57
+ function
58
+ /* palette: PaletteOptions = {} */
59
+ createJBrowseDefaultProps() {
60
60
  return {
61
61
  MuiButton: {
62
62
  size: 'small'
@@ -19,6 +19,6 @@ declare class QuickLRU {
19
19
  clear(): void;
20
20
  keys(): Generator<any, void, unknown>;
21
21
  values(): Generator<any, void, unknown>;
22
- [Symbol.iterator](): Generator<[any, any], void, unknown>;
23
22
  get size(): number;
23
+ [Symbol.iterator](): Generator<[any, any], void, unknown>;
24
24
  }
package/util/QuickLRU.js CHANGED
@@ -28,7 +28,7 @@ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len
28
28
  * (quick-lru didn't work for us because the export wouldn't compile in Webpack
29
29
  * properly)
30
30
  */
31
- var QuickLRU = /*#__PURE__*/function () {
31
+ var QuickLRU = /*#__PURE__*/function (_Symbol$iterator) {
32
32
  function QuickLRU() {
33
33
  var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
34
34
  (0, _classCallCheck2.default)(this, QuickLRU);
@@ -225,7 +225,7 @@ var QuickLRU = /*#__PURE__*/function () {
225
225
  }, values, this, [[1, 11, 14, 17]]);
226
226
  })
227
227
  }, {
228
- key: Symbol.iterator,
228
+ key: _Symbol$iterator,
229
229
  value: /*#__PURE__*/_regenerator.default.mark(function value() {
230
230
  var _iterator3, _step3, item, _iterator4, _step4, _item, _item2, key;
231
231
 
@@ -346,7 +346,7 @@ var QuickLRU = /*#__PURE__*/function () {
346
346
  }
347
347
  }]);
348
348
  return QuickLRU;
349
- }();
349
+ }(Symbol.iterator);
350
350
 
351
351
  var _default = QuickLRU;
352
352
  exports.default = _default;
@@ -26,5 +26,5 @@ export declare function observeAbortSignal(signal?: AbortSignal): Observable<Eve
26
26
  * check if the given exception was caused by an operation being intentionally aborted
27
27
  * @param exception -
28
28
  */
29
- export declare function isAbortException(exception: Error): boolean;
29
+ export declare function isAbortException(exception: unknown): boolean;
30
30
  export {};
package/util/aborting.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.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
 
@@ -145,13 +145,12 @@ function observeAbortSignal(signal) {
145
145
 
146
146
 
147
147
  function isAbortException(exception) {
148
- return (// DOMException
149
- exception.name === 'AbortError' || // standard-ish non-DOM abort exception
150
- exception.code === 'ERR_ABORTED' || // message contains aborted for bubbling through RPC
151
- // things we have seen that we want to catch here
152
- // Error: aborted
153
- // AbortError: aborted
154
- // AbortError: The user aborted a request.
155
- !!exception.message.match(/\b(aborted|AbortError)\b/i)
156
- );
148
+ return exception instanceof Error && ( // DOMException
149
+ exception.name === 'AbortError' || // standard-ish non-DOM abort exception
150
+ exception.code === 'ERR_ABORTED' || // message contains aborted for bubbling through RPC
151
+ // things we have seen that we want to catch here
152
+ // Error: aborted
153
+ // AbortError: aborted
154
+ // AbortError: The user aborted a request.
155
+ !!exception.message.match(/\b(aborted|AbortError)\b/i));
157
156
  }
@@ -1,2 +1,2 @@
1
- export declare function writeAWSAnalytics(rootModel: any, initialTimeStamp: number, sessionQuery?: string | null): Promise<Response>;
2
- export declare function writeGAAnalytics(rootModel: any, initialTimeStamp: number): Promise<void>;
1
+ export declare function writeAWSAnalytics(rootModel: any, initialTimeStamp: number, sessionQuery?: string | null): Promise<void>;
2
+ export declare function writeGAAnalytics(rootModel: any, initialTimestamp: number): Promise<void>;
package/util/analytics.js CHANGED
@@ -28,6 +28,7 @@ function _writeAWSAnalytics() {
28
28
  while (1) {
29
29
  switch (_context.prev = _context.next) {
30
30
  case 0:
31
+ _context.prev = 0;
31
32
  url = 'https://analytics.jbrowse.org/api/v1';
32
33
  multiAssemblyTracks = rootModel.jbrowse.tracks.filter(function (track) {
33
34
  return ((0, _configuration.readConfObject)(track, 'assemblyNames') || []).length > 1;
@@ -64,24 +65,36 @@ function _writeAWSAnalytics() {
64
65
  }; // stringifies the track type counts, gets processed in lambda
65
66
 
66
67
  tracks.forEach(function (track) {
67
- stats["track-types-".concat(track.type)] = stats["track-types-".concat(track.type)] + 1 || 1;
68
+ var key = "track-types-".concat(track.type);
69
+ stats[key] = stats[key] + 1 || 1;
68
70
  }); // stringifies the session track type counts, gets processed in lambda
69
71
 
70
72
  session === null || session === void 0 ? void 0 : session.sessionTracks.forEach(function (track) {
71
- stats["sessionTrack-types-".concat(track.type)] = stats["sessionTrack-types-".concat(track.type)] + 1 || 1;
73
+ var key = "sessionTrack-types-".concat(track.type);
74
+ stats[key] = stats[key] + 1 || 1;
72
75
  }); // put stats into a query string for get request
73
76
 
74
77
  qs = Object.keys(stats).map(function (key) {
75
78
  return "".concat(key, "=").concat(stats[key]);
76
79
  }).join('&');
77
- return _context.abrupt("return", fetch("".concat(url, "?").concat(qs)));
80
+ _context.next = 12;
81
+ return fetch("".concat(url, "?").concat(qs));
78
82
 
79
- case 10:
83
+ case 12:
84
+ _context.next = 17;
85
+ break;
86
+
87
+ case 14:
88
+ _context.prev = 14;
89
+ _context.t0 = _context["catch"](0);
90
+ console.error('Failed to write analytics to AWS.', _context.t0);
91
+
92
+ case 17:
80
93
  case "end":
81
94
  return _context.stop();
82
95
  }
83
96
  }
84
- }, _callee);
97
+ }, _callee, null, [[0, 14]]);
85
98
  }));
86
99
  return _writeAWSAnalytics.apply(this, arguments);
87
100
  }
@@ -91,7 +104,7 @@ function writeGAAnalytics(_x4, _x5) {
91
104
  }
92
105
 
93
106
  function _writeGAAnalytics() {
94
- _writeGAAnalytics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(rootModel, initialTimeStamp) {
107
+ _writeGAAnalytics = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(rootModel, initialTimestamp) {
95
108
  var _rootModel$jbrowse$pl;
96
109
 
97
110
  var jbrowseUser, stats, analyticsScript, gaData, googleDimensions, analyticsScriptNode;
@@ -105,7 +118,7 @@ function _writeGAAnalytics() {
105
118
  // this is all possible tracks
106
119
  ver: rootModel.version,
107
120
  electron: _util.isElectron,
108
- loadTime: Date.now() - initialTimeStamp,
121
+ loadTime: Date.now() - initialTimestamp,
109
122
  pluginNames: ((_rootModel$jbrowse$pl = rootModel.jbrowse.plugins) === null || _rootModel$jbrowse$pl === void 0 ? void 0 : _rootModel$jbrowse$pl.map(function (plugin) {
110
123
  return plugin.name;
111
124
  })) || ''
@@ -9,25 +9,29 @@ export declare class BlockSet {
9
9
  start: number;
10
10
  end: number;
11
11
  assemblyName: string;
12
- reversed: any;
12
+ reversed: boolean | undefined;
13
13
  }[];
14
14
  map<T, U = this>(func: Func<T>, thisarg?: U): T[];
15
15
  forEach<T, U = this>(func: Func<T>, thisarg?: U): void;
16
16
  get length(): number;
17
- get totalWidthPx(): any;
18
- get totalWidthPxWithoutBorders(): any;
17
+ get totalWidthPx(): number;
18
+ get totalWidthPxWithoutBorders(): number;
19
19
  get offsetPx(): number;
20
20
  get contentBlocks(): BaseBlock[];
21
21
  get totalBp(): number;
22
22
  }
23
23
  export declare class BaseBlock {
24
- [key: string]: any;
24
+ regionNumber?: number;
25
+ reversed?: boolean;
25
26
  refName: string;
26
27
  start: number;
27
28
  end: number;
28
29
  assemblyName: string;
29
30
  key: string;
30
31
  offsetPx: number;
32
+ widthPx: number;
33
+ variant?: string;
34
+ isLeftEndOfDisplayedRegion?: boolean;
31
35
  /**
32
36
  * a block that should be shown as filled with data
33
37
  */
@@ -45,7 +49,7 @@ export declare class BaseBlock {
45
49
  start: number;
46
50
  end: number;
47
51
  assemblyName: string;
48
- reversed: any;
52
+ reversed: boolean | undefined;
49
53
  };
50
54
  }
51
55
  export declare class ContentBlock extends BaseBlock {
@@ -56,8 +60,9 @@ export declare class ContentBlock extends BaseBlock {
56
60
  */
57
61
  export declare class ElidedBlock extends BaseBlock {
58
62
  widthPx: number;
63
+ elidedBlockCount: number;
59
64
  constructor(data: Record<string, any>);
60
- push(otherBlock: BaseBlock): void;
65
+ push(otherBlock: ElidedBlock): void;
61
66
  }
62
67
  /**
63
68
  * marker block that sits between two different displayed regions
@@ -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
 
@@ -134,12 +134,17 @@ var BaseBlock = /*#__PURE__*/function () {
134
134
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
135
135
  function BaseBlock(data) {
136
136
  (0, _classCallCheck2.default)(this, BaseBlock);
137
+ (0, _defineProperty2.default)(this, "regionNumber", void 0);
138
+ (0, _defineProperty2.default)(this, "reversed", void 0);
137
139
  (0, _defineProperty2.default)(this, "refName", void 0);
138
140
  (0, _defineProperty2.default)(this, "start", void 0);
139
141
  (0, _defineProperty2.default)(this, "end", void 0);
140
142
  (0, _defineProperty2.default)(this, "assemblyName", void 0);
141
143
  (0, _defineProperty2.default)(this, "key", void 0);
142
144
  (0, _defineProperty2.default)(this, "offsetPx", void 0);
145
+ (0, _defineProperty2.default)(this, "widthPx", 0);
146
+ (0, _defineProperty2.default)(this, "variant", void 0);
147
+ (0, _defineProperty2.default)(this, "isLeftEndOfDisplayedRegion", void 0);
143
148
  Object.assign(this, data);
144
149
  this.assemblyName = data.assemblyName;
145
150
  this.refName = data.refName;
@@ -218,6 +223,7 @@ var ElidedBlock = /*#__PURE__*/function (_BaseBlock2) {
218
223
  (0, _classCallCheck2.default)(this, ElidedBlock);
219
224
  _this = _super2.call(this, data);
220
225
  (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "widthPx", void 0);
226
+ (0, _defineProperty2.default)((0, _assertThisInitialized2.default)(_this), "elidedBlockCount", 0);
221
227
  _this.widthPx = data.widthPx;
222
228
  return _this;
223
229
  }
@@ -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
 
@@ -27,7 +27,7 @@ _Symbol$iterator = Symbol.iterator;
27
27
 
28
28
  // takes an array or Map or Set (anything iterable with values()) of Maps
29
29
  // and lets you query them as one Map
30
- var CompositeMap = /*#__PURE__*/function () {
30
+ var CompositeMap = /*#__PURE__*/function (_Symbol$iterator2) {
31
31
  function CompositeMap(submaps) {
32
32
  (0, _classCallCheck2.default)(this, CompositeMap);
33
33
  (0, _defineProperty2.default)(this, "submaps", void 0);
@@ -244,7 +244,7 @@ var CompositeMap = /*#__PURE__*/function () {
244
244
  return undefined;
245
245
  }
246
246
  }, {
247
- key: _Symbol$iterator,
247
+ key: _Symbol$iterator2,
248
248
  value: /*#__PURE__*/_regenerator.default.mark(function value() {
249
249
  var _iterator9, _step9, key;
250
250
 
@@ -349,6 +349,6 @@ var CompositeMap = /*#__PURE__*/function () {
349
349
  })
350
350
  }]);
351
351
  return CompositeMap;
352
- }();
352
+ }(_Symbol$iterator);
353
353
 
354
354
  exports.default = CompositeMap;
package/util/index.d.ts CHANGED
@@ -1,26 +1,16 @@
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
+ export * from './range';
9
+ export { SimpleFeature, isFeature };
8
10
  export * from './offscreenCanvasPonyfill';
9
11
  export * from './offscreenCanvasUtils';
10
12
  export declare const inDevelopment: boolean;
11
13
  export declare const inProduction: boolean;
12
- /**
13
- * Compress and encode a string as url-safe base64
14
- * See {@link https://en.wikipedia.org/wiki/Base64#URL_applications}
15
- * @param str- a string to compress and encode
16
- */
17
- export declare function toUrlSafeB64(str: string): string;
18
- /**
19
- * Decode and inflate a url-safe base64 to a string
20
- * See {@link https://en.wikipedia.org/wiki/Base64#URL_applications}
21
- * @param b64 - a base64 string to decode and inflate
22
- */
23
- export declare function fromUrlSafeB64(b64: string): string;
24
14
  export declare function useDebounce<T>(value: T, delay: number): T;
25
15
  export declare function useDebouncedCallback<A extends any[]>(callback: (...args: A) => void, wait?: number): (...args: A) => void;
26
16
  /** find the first node in the hierarchy that matches the given predicate */
@@ -158,7 +148,7 @@ export declare function bpSpanPx(leftBp: number, rightBp: number, region: {
158
148
  reversed?: boolean;
159
149
  }, bpPerPx: number): [number, number];
160
150
  export declare const objectFromEntries: {
161
- <T = any>(entries: Iterable<readonly [string | number | symbol, T]>): {
151
+ <T = any>(entries: Iterable<readonly [PropertyKey, T]>): {
162
152
  [k: string]: T;
163
153
  };
164
154
  (entries: Iterable<readonly any[]>): any;
@@ -211,7 +201,7 @@ export declare function findLastIndex<T>(array: Array<T>, predicate: (value: T,
211
201
  * @param successFunction -
212
202
  * @param errorFunction -
213
203
  */
214
- export declare function makeAbortableReaction<T, U, V>(self: T, dataFunction: (arg: T) => U, asyncReactionFunction: (arg: U | undefined, signal: AbortSignal, model: T, handle: IReactionPublic) => Promise<V>, reactionOptions: IReactionOptions, startedFunction: (aborter: AbortController) => void, successFunction: (arg: V) => void, errorFunction: (err: Error) => void): void;
204
+ export declare function makeAbortableReaction<T, U, V>(self: T, dataFunction: (arg: T) => U, asyncReactionFunction: (arg: U | undefined, signal: AbortSignal, model: T, handle: IReactionPublic) => Promise<V>, reactionOptions: IReactionOptions, startedFunction: (aborter: AbortController) => void, successFunction: (arg: V) => void, errorFunction: (err: unknown) => void): void;
215
205
  export declare function renameRegionIfNeeded(refNameMap: Record<string, string>, region: Region): Region & {
216
206
  originalRefName?: string;
217
207
  };
@@ -237,7 +227,7 @@ export declare const isElectron: boolean;
237
227
  export declare function revcom(seqString: string): string;
238
228
  export declare const complement: (seqString: string) => string;
239
229
  export declare function blobToDataURL(blob: Blob): Promise<unknown>;
240
- export declare const rIC: any;
230
+ export declare const rIC: (((callback: IdleRequestCallback, options?: IdleRequestOptions | undefined) => number) & typeof requestIdleCallback) | ((cb: Function) => any);
241
231
  export declare function measureText(str: unknown, fontSize?: number): number;
242
232
  export declare const defaultStarts: string[];
243
233
  export declare const defaultStops: string[];