@jbrowse/core 2.0.0 → 2.1.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 (184) hide show
  1. package/BaseFeatureWidget/BaseFeatureDetail.d.ts +9 -3
  2. package/BaseFeatureWidget/BaseFeatureDetail.js +313 -581
  3. package/BaseFeatureWidget/SequenceFeatureDetails.js +213 -478
  4. package/BaseFeatureWidget/index.js +88 -126
  5. package/BaseFeatureWidget/types.d.ts +1 -0
  6. package/BaseFeatureWidget/types.js +1 -4
  7. package/BaseFeatureWidget/util.js +40 -75
  8. package/CorePlugin.js +55 -94
  9. package/Plugin.js +9 -34
  10. package/PluginLoader.js +153 -422
  11. package/PluginManager.d.ts +28 -33
  12. package/PluginManager.js +377 -666
  13. package/ReExports/Attributes.js +3 -10
  14. package/ReExports/BaseCard.js +3 -10
  15. package/ReExports/DataGrid.js +5 -12
  16. package/ReExports/FeatureDetails.js +3 -10
  17. package/ReExports/index.js +6 -12
  18. package/ReExports/list.d.ts +5 -0
  19. package/ReExports/list.js +271 -7
  20. package/ReExports/material-ui-colors.js +15 -16
  21. package/ReExports/modules.d.ts +11 -20
  22. package/ReExports/modules.js +453 -798
  23. package/TextSearch/BaseResults.js +51 -123
  24. package/TextSearch/TextSearchManager.js +66 -144
  25. package/assemblyManager/assembly.js +280 -555
  26. package/assemblyManager/assemblyConfigSchema.js +47 -64
  27. package/assemblyManager/assemblyManager.js +126 -272
  28. package/assemblyManager/index.js +9 -22
  29. package/configuration/configurationSchema.js +167 -203
  30. package/configuration/configurationSlot.js +248 -326
  31. package/configuration/index.js +19 -35
  32. package/configuration/util.js +131 -173
  33. package/data_adapters/BaseAdapter.d.ts +2 -2
  34. package/data_adapters/BaseAdapter.js +132 -521
  35. package/data_adapters/CytobandAdapter.js +40 -126
  36. package/data_adapters/dataAdapterCache.js +77 -158
  37. package/package.json +4 -5
  38. package/pluggableElementTypes/AdapterType.js +24 -79
  39. package/pluggableElementTypes/AddTrackWorkflowType.d.ts +17 -0
  40. package/pluggableElementTypes/AddTrackWorkflowType.js +20 -0
  41. package/pluggableElementTypes/ConnectionType.js +22 -65
  42. package/pluggableElementTypes/DisplayType.js +35 -82
  43. package/pluggableElementTypes/InternetAccountType.js +23 -64
  44. package/pluggableElementTypes/PluggableElementBase.js +8 -20
  45. package/pluggableElementTypes/RpcMethodType.js +85 -427
  46. package/pluggableElementTypes/TextSearchAdapterType.js +16 -55
  47. package/pluggableElementTypes/TrackType.js +26 -70
  48. package/pluggableElementTypes/ViewType.js +21 -63
  49. package/pluggableElementTypes/WidgetType.js +21 -64
  50. package/pluggableElementTypes/index.d.ts +4 -3
  51. package/pluggableElementTypes/index.js +42 -125
  52. package/pluggableElementTypes/models/BaseConnectionModelFactory.js +28 -43
  53. package/pluggableElementTypes/models/BaseDisplayModel.js +58 -95
  54. package/pluggableElementTypes/models/BaseTrackModel.js +139 -199
  55. package/pluggableElementTypes/models/BaseViewModel.js +24 -40
  56. package/pluggableElementTypes/models/InternetAccountModel.js +116 -263
  57. package/pluggableElementTypes/models/baseConnectionConfig.js +14 -25
  58. package/pluggableElementTypes/models/baseInternetAccountConfig.js +29 -38
  59. package/pluggableElementTypes/models/baseTrackConfig.js +106 -133
  60. package/pluggableElementTypes/models/index.js +21 -70
  61. package/pluggableElementTypes/renderers/BoxRendererType.js +132 -291
  62. package/pluggableElementTypes/renderers/CircularChordRendererType.js +8 -38
  63. package/pluggableElementTypes/renderers/ComparativeServerSideRendererType.js +60 -192
  64. package/pluggableElementTypes/renderers/FeatureRendererType.d.ts +0 -2
  65. package/pluggableElementTypes/renderers/FeatureRendererType.js +89 -255
  66. package/pluggableElementTypes/renderers/RendererType.js +31 -105
  67. package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +61 -72
  68. package/pluggableElementTypes/renderers/ServerSideRendererType.js +112 -265
  69. package/pluggableElementTypes/renderers/index.js +19 -62
  70. package/pluggableElementTypes/renderers/util/serializableFilterChain.js +27 -65
  71. package/rpc/BaseRpcDriver.js +169 -405
  72. package/rpc/MainThreadRpcDriver.js +27 -150
  73. package/rpc/RpcManager.js +58 -159
  74. package/rpc/WebWorkerRpcDriver.js +54 -171
  75. package/rpc/configSchema.js +25 -49
  76. package/rpc/coreRpcMethods.d.ts +1 -3
  77. package/rpc/coreRpcMethods.js +221 -959
  78. package/rpc/remoteAbortSignals.js +46 -70
  79. package/tsconfig.build.tsbuildinfo +1 -1
  80. package/ui/AboutDialog.js +106 -162
  81. package/ui/App.js +157 -242
  82. package/ui/AssemblySelector.js +59 -120
  83. package/ui/CascadingMenu.js +101 -196
  84. package/ui/ColorPicker.d.ts +16 -0
  85. package/ui/ColorPicker.js +97 -0
  86. package/ui/Drawer.js +28 -61
  87. package/ui/DrawerWidget.js +108 -202
  88. package/ui/DropDownMenu.js +60 -91
  89. package/ui/EditableTypography.js +87 -149
  90. package/ui/ErrorMessage.js +41 -56
  91. package/ui/FactoryResetDialog.js +24 -57
  92. package/ui/FatalErrorDialog.js +59 -91
  93. package/ui/FileSelector/FileSelector.js +123 -189
  94. package/ui/FileSelector/LocalFileChooser.js +44 -75
  95. package/ui/FileSelector/UrlChooser.js +17 -38
  96. package/ui/FileSelector/index.js +6 -12
  97. package/ui/Icons.js +45 -69
  98. package/ui/Logo.js +57 -110
  99. package/ui/Menu.js +232 -354
  100. package/ui/PrerenderedCanvas.js +63 -87
  101. package/ui/ResizeHandle.js +87 -116
  102. package/ui/ReturnToImportFormDialog.js +32 -63
  103. package/ui/SanitizedHTML.js +64 -47
  104. package/ui/Snackbar.js +74 -101
  105. package/ui/SnackbarModel.js +37 -51
  106. package/ui/Tooltip.js +49 -76
  107. package/ui/ViewContainer.js +113 -196
  108. package/ui/colors.d.ts +10 -0
  109. package/ui/colors.js +78 -0
  110. package/ui/index.js +51 -181
  111. package/ui/react-colorful.d.ts +17 -0
  112. package/ui/react-colorful.js +455 -0
  113. package/ui/theme.d.ts +23 -1
  114. package/ui/theme.js +199 -247
  115. package/util/Base1DUtils.d.ts +32 -0
  116. package/util/Base1DUtils.js +174 -0
  117. package/util/Base1DViewModel.d.ts +16 -30
  118. package/util/Base1DViewModel.js +116 -293
  119. package/util/QuickLRU.js +84 -332
  120. package/util/TimeTraveller.d.ts +19 -0
  121. package/util/TimeTraveller.js +86 -0
  122. package/util/aborting.js +49 -127
  123. package/util/analytics.js +91 -154
  124. package/util/blockTypes.js +106 -240
  125. package/util/calculateDynamicBlocks.js +98 -128
  126. package/util/calculateStaticBlocks.js +105 -125
  127. package/util/color/cssColorsLevel4.js +156 -160
  128. package/util/color/index.js +33 -55
  129. package/util/compositeMap.js +49 -333
  130. package/util/formatFastaStrings.js +9 -14
  131. package/util/idMaker.js +18 -31
  132. package/util/index.d.ts +18 -32
  133. package/util/index.js +747 -1226
  134. package/util/io/RemoteFileWithRangeCache.js +88 -257
  135. package/util/io/index.js +95 -169
  136. package/util/jexl.js +60 -115
  137. package/util/jexlStrings.js +24 -29
  138. package/util/layouts/BaseLayout.js +1 -4
  139. package/util/layouts/GranularRectLayout.js +388 -555
  140. package/util/layouts/MultiLayout.js +41 -109
  141. package/util/layouts/PrecomputedLayout.js +56 -112
  142. package/util/layouts/PrecomputedMultiLayout.js +22 -59
  143. package/util/layouts/SceneGraph.js +127 -197
  144. package/util/layouts/index.js +29 -66
  145. package/util/mst-reflection.js +55 -71
  146. package/util/offscreenCanvasPonyfill.js +66 -134
  147. package/util/offscreenCanvasUtils.d.ts +2 -7
  148. package/util/offscreenCanvasUtils.js +49 -146
  149. package/util/range.js +29 -40
  150. package/util/rxjs.js +20 -27
  151. package/util/simpleFeature.js +88 -152
  152. package/util/stats.js +91 -151
  153. package/util/tracks.js +130 -173
  154. package/util/types/index.js +110 -179
  155. package/util/types/mst.js +91 -146
  156. package/util/types/util.js +1 -4
  157. package/util/when.js +54 -101
  158. package/BaseFeatureWidget/SequenceFeatureDetails.test.js +0 -122
  159. package/BaseFeatureWidget/index.test.js +0 -69
  160. package/TextSearch/BaseResults.test.js +0 -42
  161. package/configuration/configurationSchema.test.js +0 -266
  162. package/configuration/configurationSlot.test.js +0 -69
  163. package/configuration/util.test.js +0 -39
  164. package/data_adapters/BaseAdapter.test.js +0 -200
  165. package/declare.d.js +0 -1
  166. package/pluggableElementTypes/RpcMethodType.test.js +0 -118
  167. package/pluggableElementTypes/renderers/declare.d.js +0 -1
  168. package/pluggableElementTypes/renderers/util/serializableFilterChain.test.js +0 -20
  169. package/rpc/BaseRpcDriver.test.js +0 -540
  170. package/rpc/declaration.d.js +0 -1
  171. package/ui/FatalErrorDialog.test.js +0 -82
  172. package/ui/SanitizedHTML.test.js +0 -36
  173. package/ui/theme.test.js +0 -92
  174. package/util/Base1DViewModel.test.js +0 -130
  175. package/util/calculateDynamicBlocks.test.js +0 -74
  176. package/util/calculateStaticBlocks.test.js +0 -297
  177. package/util/declare.d.js +0 -1
  178. package/util/formatFastaStrings.test.js +0 -40
  179. package/util/index.test.js +0 -213
  180. package/util/jexlStrings.test.js +0 -48
  181. package/util/layouts/GranularRectLayout.test.js +0 -99
  182. package/util/range.test.js +0 -64
  183. package/util/simpleFeature.test.js +0 -34
  184. package/util/stats.test.js +0 -172
@@ -1,57 +1,13 @@
1
1
  "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = void 0;
9
-
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
-
12
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
13
-
14
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
15
-
16
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
17
-
18
- var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
19
-
20
- var _get2 = _interopRequireDefault(require("@babel/runtime/helpers/get"));
21
-
22
- var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
23
-
24
- var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
25
-
26
- var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
27
-
28
- var _operators = require("rxjs/operators");
29
-
30
- var _ServerSideRendererType = _interopRequireDefault(require("./ServerSideRendererType"));
31
-
32
- var _dataAdapterCache = require("../../data_adapters/dataAdapterCache");
33
-
34
- 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; }
35
-
36
- 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; }
37
-
38
- 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); }; }
39
-
40
- 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; } }
41
-
42
- var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer) {
43
- (0, _inherits2.default)(ComparativeServerSideRenderer, _ServerSideRenderer);
44
-
45
- var _super = _createSuper(ComparativeServerSideRenderer);
46
-
47
- function ComparativeServerSideRenderer() {
48
- (0, _classCallCheck2.default)(this, ComparativeServerSideRenderer);
49
- return _super.apply(this, arguments);
50
- }
51
-
52
- (0, _createClass2.default)(ComparativeServerSideRenderer, [{
53
- key: "renameRegionsIfNeeded",
54
- value:
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ /* eslint-disable @typescript-eslint/no-explicit-any */
7
+ const operators_1 = require("rxjs/operators");
8
+ const ServerSideRendererType_1 = __importDefault(require("./ServerSideRendererType"));
9
+ const dataAdapterCache_1 = require("../../data_adapters/dataAdapterCache");
10
+ class ComparativeServerSideRenderer extends ServerSideRendererType_1.default {
55
11
  /**
56
12
  * directly modifies the render arguments to prepare
57
13
  * them to be serialized and sent to the worker.
@@ -65,154 +21,66 @@ var ComparativeServerSideRenderer = /*#__PURE__*/function (_ServerSideRenderer)
65
21
  * @param args - the arguments passed to render
66
22
  * @returns the same object
67
23
  */
68
- function () {
69
- var _renameRegionsIfNeeded = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(args) {
70
- return _regenerator.default.wrap(function _callee$(_context) {
71
- while (1) {
72
- switch (_context.prev = _context.next) {
73
- case 0:
74
- return _context.abrupt("return", args);
75
-
76
- case 1:
77
- case "end":
78
- return _context.stop();
79
- }
80
- }
81
- }, _callee);
82
- }));
83
-
84
- function renameRegionsIfNeeded(_x) {
85
- return _renameRegionsIfNeeded.apply(this, arguments);
86
- }
87
-
88
- return renameRegionsIfNeeded;
89
- }()
90
- }, {
91
- key: "serializeArgsInClient",
92
- value: function serializeArgsInClient(args) {
93
- var deserializedArgs = _objectSpread(_objectSpread({}, args), {}, {
94
- displayModel: {}
95
- });
96
-
97
- return (0, _get2.default)((0, _getPrototypeOf2.default)(ComparativeServerSideRenderer.prototype), "serializeArgsInClient", this).call(this, deserializedArgs);
98
- } // deserialize some of the results that came back from the worker
99
-
100
- }, {
101
- key: "deserializeResultsInClient",
102
- value: function deserializeResultsInClient(result, args) {
103
- var deserialized = (0, _get2.default)((0, _getPrototypeOf2.default)(ComparativeServerSideRenderer.prototype), "deserializeResultsInClient", this).call(this, result, args);
104
- return _objectSpread(_objectSpread({}, deserialized), {}, {
105
- blockKey: args.blockKey
106
- });
24
+ async renameRegionsIfNeeded(args) {
25
+ return args;
26
+ }
27
+ serializeArgsInClient(args) {
28
+ const deserializedArgs = {
29
+ ...args,
30
+ displayModel: {},
31
+ };
32
+ return super.serializeArgsInClient(deserializedArgs);
33
+ }
34
+ // deserialize some of the results that came back from the worker
35
+ deserializeResultsInClient(result, args) {
36
+ const deserialized = super.deserializeResultsInClient(result, args);
37
+ return { ...deserialized, blockKey: args.blockKey };
107
38
  }
108
39
  /**
109
40
  * Render method called on the client. Serializes args, then
110
41
  * calls `render` with the RPC manager.
111
42
  */
112
-
113
- }, {
114
- key: "renderInClient",
115
- value: function () {
116
- var _renderInClient = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2(rpcManager, args) {
117
- return _regenerator.default.wrap(function _callee2$(_context2) {
118
- while (1) {
119
- switch (_context2.prev = _context2.next) {
120
- case 0:
121
- return _context2.abrupt("return", rpcManager.call(args.sessionId, 'ComparativeRender', args));
122
-
123
- case 1:
124
- case "end":
125
- return _context2.stop();
126
- }
127
- }
128
- }, _callee2);
129
- }));
130
-
131
- function renderInClient(_x2, _x3) {
132
- return _renderInClient.apply(this, arguments);
133
- }
134
-
135
- return renderInClient;
136
- }()
43
+ async renderInClient(rpcManager, args) {
44
+ return rpcManager.call(args.sessionId, 'ComparativeRender', args);
45
+ }
137
46
  /**
138
47
  * @param renderArgs -
139
48
  * @param feature -
140
49
  * @returns true if this feature passes all configured filters
141
50
  */
142
-
143
- }, {
144
- key: "featurePassesFilters",
145
- value: function featurePassesFilters(renderArgs, feature) {
146
- return renderArgs.filters ? renderArgs.filters.passes(feature, renderArgs) : true;
51
+ featurePassesFilters(renderArgs, feature) {
52
+ return renderArgs.filters
53
+ ? renderArgs.filters.passes(feature, renderArgs)
54
+ : true;
147
55
  }
148
- }, {
149
- key: "getFeatures",
150
- value: function () {
151
- var _getFeatures = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3(renderArgs) {
152
- var _this = this;
153
-
154
- var sessionId, adapterConfig, _yield$getAdapter, dataAdapter, regions, requestRegions;
155
-
156
- return _regenerator.default.wrap(function _callee3$(_context3) {
157
- while (1) {
158
- switch (_context3.prev = _context3.next) {
159
- case 0:
160
- sessionId = renderArgs.sessionId, adapterConfig = renderArgs.adapterConfig;
161
- _context3.next = 3;
162
- return (0, _dataAdapterCache.getAdapter)(this.pluginManager, sessionId, adapterConfig);
163
-
164
- case 3:
165
- _yield$getAdapter = _context3.sent;
166
- dataAdapter = _yield$getAdapter.dataAdapter;
167
- regions = []; // @ts-ignore this is instantiated by the getFeatures call
168
-
169
- regions = renderArgs.regions;
170
-
171
- if (!(!regions || regions.length === 0)) {
172
- _context3.next = 10;
173
- break;
174
- }
175
-
176
- console.warn('no regions supplied to comparative renderer');
177
- return _context3.abrupt("return", []);
178
-
179
- case 10:
180
- requestRegions = regions.map(function (r) {
181
- // make sure the requested region's start and end are integers, if
182
- // there is a region specification.
183
- var requestRegion = _objectSpread({}, r);
184
-
185
- if (requestRegion.start) {
186
- requestRegion.start = Math.floor(requestRegion.start);
187
- }
188
-
189
- if (requestRegion.end) {
190
- requestRegion.end = Math.floor(requestRegion.end);
191
- }
192
-
193
- return requestRegion;
194
- }); // note that getFeaturesInMultipleRegions does not do glyph expansion
195
-
196
- return _context3.abrupt("return", dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs).pipe((0, _operators.filter)(function (f) {
197
- return _this.featurePassesFilters(renderArgs, f);
198
- }), (0, _operators.toArray)()).toPromise());
199
-
200
- case 12:
201
- case "end":
202
- return _context3.stop();
56
+ async getFeatures(renderArgs) {
57
+ const pm = this.pluginManager;
58
+ const { sessionId, adapterConfig } = renderArgs;
59
+ const { dataAdapter } = await (0, dataAdapterCache_1.getAdapter)(pm, sessionId, adapterConfig);
60
+ let regions = [];
61
+ // @ts-ignore this is instantiated by the getFeatures call
62
+ regions = renderArgs.regions;
63
+ if (!regions || regions.length === 0) {
64
+ console.warn('no regions supplied to comparative renderer');
65
+ return [];
66
+ }
67
+ const requestRegions = regions.map(r => {
68
+ // make sure the requested region's start and end are integers, if
69
+ // there is a region specification.
70
+ const requestRegion = { ...r };
71
+ if (requestRegion.start) {
72
+ requestRegion.start = Math.floor(requestRegion.start);
73
+ }
74
+ if (requestRegion.end) {
75
+ requestRegion.end = Math.floor(requestRegion.end);
203
76
  }
204
- }
205
- }, _callee3, this);
206
- }));
207
-
208
- function getFeatures(_x4) {
209
- return _getFeatures.apply(this, arguments);
210
- }
211
-
212
- return getFeatures;
213
- }()
214
- }]);
215
- return ComparativeServerSideRenderer;
216
- }(_ServerSideRendererType.default);
217
-
218
- exports.default = ComparativeServerSideRenderer;
77
+ return requestRegion;
78
+ });
79
+ // note that getFeaturesInMultipleRegions does not do glyph expansion
80
+ return dataAdapter
81
+ .getFeaturesInMultipleRegions(requestRegions, renderArgs)
82
+ .pipe((0, operators_1.filter)(f => this.featurePassesFilters(renderArgs, f)), (0, operators_1.toArray)())
83
+ .toPromise();
84
+ }
85
+ }
86
+ exports.default = ComparativeServerSideRenderer;
@@ -89,5 +89,3 @@ export default class FeatureRendererType extends ServerSideRendererType {
89
89
  */
90
90
  render(props: RenderArgsDeserialized): Promise<RenderResults>;
91
91
  }
92
- export declare class NewFeatureRendererType extends ServerSideRendererType {
93
- }