@jbrowse/core 2.0.0 → 2.0.1

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.
@@ -34,7 +34,7 @@ export declare const BaseCoreDetails: (props: BaseProps) => JSX.Element;
34
34
  interface AttributeProps {
35
35
  attributes: Record<string, any>;
36
36
  omit?: string[];
37
- formatter?: (val: unknown, key: string) => React.ReactElement;
37
+ formatter?: (val: unknown, key: string) => React.ReactNode;
38
38
  descriptions?: Record<string, React.ReactNode>;
39
39
  prefix?: string[];
40
40
  }
@@ -44,14 +44,14 @@ export interface BaseInputProps extends BaseCardProps {
44
44
  omit?: string[];
45
45
  model: any;
46
46
  descriptions?: Record<string, React.ReactNode>;
47
- formatter?: (val: unknown, key: string) => React.ReactElement;
47
+ formatter?: (val: unknown, key: string) => React.ReactNode;
48
48
  }
49
49
  export declare const FeatureDetails: (props: {
50
50
  model: IAnyStateTreeNode;
51
51
  feature: SimpleFeatureSerialized;
52
52
  depth?: number | undefined;
53
53
  omit?: string[] | undefined;
54
- formatter?: ((val: unknown, key: string) => React.ReactElement) | undefined;
54
+ formatter?: ((val: unknown, key: string) => React.ReactNode) | undefined;
55
55
  }) => JSX.Element;
56
56
  declare const BaseFeatureDetails: (props: BaseInputProps) => JSX.Element | null;
57
57
  export default BaseFeatureDetails;
@@ -292,22 +292,33 @@ function CoreDetails(props) {
292
292
  position: "".concat(refName, ":").concat(toLocale(start + 1), "..").concat(toLocale(end), " ").concat(str)
293
293
  });
294
294
 
295
- var coreRenderedDetails = ['Position', 'Description', 'Name', 'Length', 'Type'];
296
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, coreRenderedDetails.map(function (key) {
297
- return [key, displayedDetails[key.toLowerCase()]];
298
- }).filter(function (_ref6) {
295
+ var coreRenderedDetails = {
296
+ position: 'Position',
297
+ description: 'Description',
298
+ name: 'Name',
299
+ length: 'Length',
300
+ type: 'Type',
301
+ assemblyName: 'Assembly name'
302
+ };
303
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, Object.entries(coreRenderedDetails).map(function (_ref6) {
299
304
  var _ref7 = (0, _slicedToArray2.default)(_ref6, 2),
300
- value = _ref7[1];
305
+ key = _ref7[0],
306
+ name = _ref7[1];
301
307
 
302
- return value !== null && value !== undefined;
303
- }).map(function (_ref8) {
308
+ return [name, displayedDetails[key]];
309
+ }).filter(function (_ref8) {
304
310
  var _ref9 = (0, _slicedToArray2.default)(_ref8, 2),
305
- key = _ref9[0],
306
311
  value = _ref9[1];
307
312
 
313
+ return value !== null && value !== undefined;
314
+ }).map(function (_ref10) {
315
+ var _ref11 = (0, _slicedToArray2.default)(_ref10, 2),
316
+ name = _ref11[0],
317
+ value = _ref11[1];
318
+
308
319
  return /*#__PURE__*/_react.default.createElement(SimpleValue, {
309
- key: key,
310
- name: key,
320
+ key: name,
321
+ name: name,
311
322
  value: value
312
323
  });
313
324
  }));
@@ -321,10 +332,10 @@ var BaseCoreDetails = function BaseCoreDetails(props) {
321
332
 
322
333
  exports.BaseCoreDetails = BaseCoreDetails;
323
334
 
324
- var DataGridDetails = function DataGridDetails(_ref10) {
325
- var value = _ref10.value,
326
- prefix = _ref10.prefix,
327
- name = _ref10.name;
335
+ var DataGridDetails = function DataGridDetails(_ref12) {
336
+ var value = _ref12.value,
337
+ prefix = _ref12.prefix,
338
+ name = _ref12.name;
328
339
  var keys = Object.keys(value[0]).sort();
329
340
  var unionKeys = new Set(keys);
330
341
  value.forEach(function (val) {
@@ -335,10 +346,10 @@ var DataGridDetails = function DataGridDetails(_ref10) {
335
346
 
336
347
  if (unionKeys.size < keys.length + 5) {
337
348
  // avoids key 'id' from being used in row data
338
- var rows = Object.entries(value).map(function (_ref11) {
339
- var _ref12 = (0, _slicedToArray2.default)(_ref11, 2),
340
- k = _ref12[0],
341
- val = _ref12[1];
349
+ var rows = Object.entries(value).map(function (_ref13) {
350
+ var _ref14 = (0, _slicedToArray2.default)(_ref13, 2),
351
+ k = _ref14[0],
352
+ val = _ref14[1];
342
353
 
343
354
  var id = val.id,
344
355
  rest = (0, _objectWithoutProperties2.default)(val, _excluded);
@@ -422,10 +433,10 @@ function generateMaxWidth(array, prefix) {
422
433
  return Math.ceil(Math.max.apply(Math, arr)) + 10;
423
434
  }
424
435
 
425
- function UriAttribute(_ref13) {
426
- var value = _ref13.value,
427
- prefix = _ref13.prefix,
428
- name = _ref13.name;
436
+ function UriAttribute(_ref15) {
437
+ var value = _ref15.value,
438
+ prefix = _ref15.prefix,
439
+ name = _ref15.name;
429
440
 
430
441
  var _useStyles6 = useStyles(),
431
442
  classes = _useStyles6.classes;
@@ -468,23 +479,23 @@ function Attributes(props) {
468
479
 
469
480
  var formattedAttributes = _objectSpread(_objectSpread({}, rest), __jbrowsefmt);
470
481
 
471
- var maxLabelWidth = generateMaxWidth(Object.entries(formattedAttributes).filter(function (_ref14) {
472
- var _ref15 = (0, _slicedToArray2.default)(_ref14, 2),
473
- k = _ref15[0],
474
- v = _ref15[1];
475
-
476
- return v !== undefined && !omits.includes(k);
477
- }), prefix);
478
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, Object.entries(formattedAttributes).filter(function (_ref16) {
482
+ var maxLabelWidth = generateMaxWidth(Object.entries(formattedAttributes).filter(function (_ref16) {
479
483
  var _ref17 = (0, _slicedToArray2.default)(_ref16, 2),
480
484
  k = _ref17[0],
481
485
  v = _ref17[1];
482
486
 
483
487
  return v !== undefined && !omits.includes(k);
484
- }).map(function (_ref18) {
488
+ }), prefix);
489
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, Object.entries(formattedAttributes).filter(function (_ref18) {
485
490
  var _ref19 = (0, _slicedToArray2.default)(_ref18, 2),
486
- key = _ref19[0],
487
- value = _ref19[1];
491
+ k = _ref19[0],
492
+ v = _ref19[1];
493
+
494
+ return v !== undefined && !omits.includes(k);
495
+ }).map(function (_ref20) {
496
+ var _ref21 = (0, _slicedToArray2.default)(_ref20, 2),
497
+ key = _ref21[0],
498
+ value = _ref21[1];
488
499
 
489
500
  var description = accessNested([].concat((0, _toConsumableArray2.default)(prefix), [key]), descriptions);
490
501
 
@@ -511,13 +522,13 @@ function Attributes(props) {
511
522
  name: key,
512
523
  prefix: prefix,
513
524
  value: value
514
- }) : /*#__PURE__*/_react.default.createElement(Attributes, {
525
+ }) : /*#__PURE__*/_react.default.createElement(Attributes, (0, _extends2.default)({}, props, {
515
526
  omit: omits,
516
527
  key: key,
517
528
  attributes: value,
518
529
  descriptions: descriptions,
519
530
  prefix: [].concat((0, _toConsumableArray2.default)(prefix), [key])
520
- });
531
+ }));
521
532
  } else {
522
533
  return /*#__PURE__*/_react.default.createElement(SimpleValue, {
523
534
  key: key,
@@ -576,8 +587,8 @@ var FeatureDetails = function FeatureDetails(props) {
576
587
  }, props, {
577
588
  omit: [].concat((0, _toConsumableArray2.default)(omit), coreDetails)
578
589
  })), sequenceTypes.includes(feature.type) ? /*#__PURE__*/_react.default.createElement(_reactErrorBoundary.ErrorBoundary, {
579
- FallbackComponent: function FallbackComponent(_ref20) {
580
- var error = _ref20.error;
590
+ FallbackComponent: function FallbackComponent(_ref22) {
591
+ var error = _ref22.error;
581
592
  return /*#__PURE__*/_react.default.createElement(_material.Typography, {
582
593
  color: "error"
583
594
  }, "".concat(error));
@@ -195,6 +195,7 @@ var SequencePanel = /*#__PURE__*/_react.default.forwardRef(function (_ref4, ref)
195
195
  style: {
196
196
  fontFamily: 'monospace',
197
197
  wordWrap: 'break-word',
198
+ fontSize: 12,
198
199
  maxWidth: 600
199
200
  }
200
201
  }, ">".concat(feature.name || feature.id || 'unknown', "-").concat(mode, "\n"), mode === 'cds' ? /*#__PURE__*/_react.default.createElement(GeneCDS, {
@@ -4,6 +4,7 @@ import { SimpleFeatureSerialized } from '../util/simpleFeature';
4
4
  import { AbstractViewModel } from '../util';
5
5
  export interface BaseProps extends BaseCardProps {
6
6
  feature: SimpleFeatureSerialized;
7
+ formatter?: (val: unknown, key: string) => React.ReactNode;
7
8
  descriptions?: Record<string, React.ReactNode>;
8
9
  model?: IAnyStateTreeNode & {
9
10
  view?: AbstractViewModel & {
@@ -162,30 +162,22 @@ export default class PluginManager {
162
162
  readonly maxOffset: number;
163
163
  readonly minOffset: number;
164
164
  readonly totalBp: number;
165
+ } & {
166
+ readonly dynamicBlocks: import("./util/blockTypes").BlockSet;
167
+ readonly staticBlocks: import("./util/blockTypes").BlockSet;
168
+ readonly currBp: number;
169
+ } & {
165
170
  pxToBp(px: number): {
166
- oob: boolean;
167
- coord: number;
168
- offset: number;
169
- index: number;
170
- refName: string;
171
- start: number;
172
- end: number;
173
- reversed: boolean;
174
- assemblyName: string;
175
- } | {
176
171
  coord: number;
177
172
  index: number;
178
- start: number;
179
173
  refName: string;
180
174
  oob: boolean;
181
175
  assemblyName: string;
182
176
  offset: number;
177
+ start: number;
178
+ end: number;
183
179
  reversed: boolean;
184
180
  };
185
- } & {
186
- readonly dynamicBlocks: import("./util/blockTypes").BlockSet;
187
- readonly staticBlocks: import("./util/blockTypes").BlockSet;
188
- readonly currBp: number;
189
181
  bpToPx({ refName, coord, regionNumber, }: {
190
182
  refName: string;
191
183
  coord: number;
@@ -193,15 +185,15 @@ export default class PluginManager {
193
185
  }): number | undefined;
194
186
  } & {
195
187
  setFeatures(features: import("./util").Feature[]): void;
196
- zoomToDisplayedRegions(leftPx: import("./util/Base1DViewModel").BpOffset | undefined, rightPx: import("./util/Base1DViewModel").BpOffset | undefined): void;
197
188
  showAllRegions(): void;
198
- moveTo(start: import("./util/Base1DViewModel").BpOffset, end: import("./util/Base1DViewModel").BpOffset): void;
199
189
  zoomOut(): void;
200
190
  zoomIn(): void;
201
- zoomTo(newBpPerPx: number, offset?: number): void;
191
+ zoomTo(newBpPerPx: number, offset?: number): number;
202
192
  scrollTo(offsetPx: number): number;
203
- centerAt(coord: number, refName: string, regionNumber: number): void;
193
+ centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
204
194
  scroll(distance: number): number;
195
+ } & {
196
+ moveTo(start?: import("./util/Base1DUtils").BpOffset | undefined, end?: import("./util/Base1DUtils").BpOffset | undefined): void;
205
197
  }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
206
198
  '@jbrowse/core/util/io': typeof import("./util/io");
207
199
  '@jbrowse/core/util/mst-reflection': typeof import("./util/mst-reflection");
@@ -86,30 +86,22 @@ declare const libs: {
86
86
  readonly maxOffset: number;
87
87
  readonly minOffset: number;
88
88
  readonly totalBp: number;
89
+ } & {
90
+ readonly dynamicBlocks: import("../util/blockTypes").BlockSet;
91
+ readonly staticBlocks: import("../util/blockTypes").BlockSet;
92
+ readonly currBp: number;
93
+ } & {
89
94
  pxToBp(px: number): {
90
- oob: boolean;
91
- coord: number;
92
- offset: number;
93
- index: number;
94
- refName: string;
95
- start: number;
96
- end: number;
97
- reversed: boolean;
98
- assemblyName: string;
99
- } | {
100
95
  coord: number;
101
96
  index: number;
102
- start: number;
103
97
  refName: string;
104
98
  oob: boolean;
105
99
  assemblyName: string;
106
100
  offset: number;
101
+ start: number;
102
+ end: number;
107
103
  reversed: boolean;
108
104
  };
109
- } & {
110
- readonly dynamicBlocks: import("../util/blockTypes").BlockSet;
111
- readonly staticBlocks: import("../util/blockTypes").BlockSet;
112
- readonly currBp: number;
113
105
  bpToPx({ refName, coord, regionNumber, }: {
114
106
  refName: string;
115
107
  coord: number;
@@ -117,15 +109,15 @@ declare const libs: {
117
109
  }): number | undefined;
118
110
  } & {
119
111
  setFeatures(features: coreUtil.Feature[]): void;
120
- zoomToDisplayedRegions(leftPx: import("../util/Base1DViewModel").BpOffset | undefined, rightPx: import("../util/Base1DViewModel").BpOffset | undefined): void;
121
112
  showAllRegions(): void;
122
- moveTo(start: import("../util/Base1DViewModel").BpOffset, end: import("../util/Base1DViewModel").BpOffset): void;
123
113
  zoomOut(): void;
124
114
  zoomIn(): void;
125
- zoomTo(newBpPerPx: number, offset?: number): void;
115
+ zoomTo(newBpPerPx: number, offset?: number): number;
126
116
  scrollTo(offsetPx: number): number;
127
- centerAt(coord: number, refName: string, regionNumber: number): void;
117
+ centerAt(coord: number, refName: string | undefined, regionNumber: number): void;
128
118
  scroll(distance: number): number;
119
+ } & {
120
+ moveTo(start?: import("../util/Base1DUtils").BpOffset | undefined, end?: import("../util/Base1DUtils").BpOffset | undefined): void;
129
121
  }, mst._NotCustomized, mst._NotCustomized>;
130
122
  '@jbrowse/core/util/io': typeof coreIo;
131
123
  '@jbrowse/core/util/mst-reflection': typeof coreMstReflection;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@jbrowse/core",
3
- "version": "2.0.0",
3
+ "version": "2.0.1",
4
4
  "description": "JBrowse 2 core libraries used by plugins",
5
5
  "keywords": [
6
6
  "jbrowse",
@@ -74,5 +74,5 @@
74
74
  "access": "public",
75
75
  "directory": "dist"
76
76
  },
77
- "gitHead": "ecc7f5d47351a5ea04bc00f3a6eb6dfb607342e6"
77
+ "gitHead": "ed935bf5612af3818abdc8ef52d100d5d81d33a2"
78
78
  }
@@ -35,6 +35,8 @@ var _dataAdapterCache = require("../../data_adapters/dataAdapterCache");
35
35
 
36
36
  var _ServerSideRendererType = _interopRequireDefault(require("./ServerSideRendererType"));
37
37
 
38
+ var _BaseAdapter = require("../../data_adapters/BaseAdapter");
39
+
38
40
  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; }
39
41
 
40
42
  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; }
@@ -159,16 +161,25 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
159
161
  case 3:
160
162
  _yield$getAdapter = _context.sent;
161
163
  dataAdapter = _yield$getAdapter.dataAdapter;
164
+
165
+ if ((0, _BaseAdapter.isFeatureAdapter)(dataAdapter)) {
166
+ _context.next = 7;
167
+ break;
168
+ }
169
+
170
+ throw new Error('Adapter does not support retrieving features');
171
+
172
+ case 7:
162
173
  features = new Map();
163
174
 
164
175
  if (!(!regions || regions.length === 0)) {
165
- _context.next = 8;
176
+ _context.next = 10;
166
177
  break;
167
178
  }
168
179
 
169
180
  return _context.abrupt("return", features);
170
181
 
171
- case 8:
182
+ case 10:
172
183
  requestRegions = regions.map(function (r) {
173
184
  // make sure the requested region's start and end are integers, if
174
185
  // there is a region specification.
@@ -185,13 +196,11 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
185
196
  return requestRegion;
186
197
  });
187
198
  region = requestRegions[0];
188
- featureObservable = requestRegions.length === 1 ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), // @ts-ignore
189
- renderArgs) : // @ts-ignore
190
- dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
191
- _context.next = 13;
199
+ featureObservable = requestRegions.length === 1 ? dataAdapter.getFeatures(this.getExpandedRegion(region, renderArgs), renderArgs) : dataAdapter.getFeaturesInMultipleRegions(requestRegions, renderArgs);
200
+ _context.next = 15;
192
201
  return featureObservable.pipe((0, _operators.toArray)()).toPromise();
193
202
 
194
- case 13:
203
+ case 15:
195
204
  feats = _context.sent;
196
205
  (0, _util.checkAbortSignal)(signal);
197
206
  return _context.abrupt("return", new Map(feats.filter(function (feat) {
@@ -200,7 +209,7 @@ var FeatureRendererType = /*#__PURE__*/function (_ServerSideRendererTy) {
200
209
  return [feat.id(), feat];
201
210
  })));
202
211
 
203
- case 16:
212
+ case 18:
204
213
  case "end":
205
214
  return _context.stop();
206
215
  }
@@ -72,9 +72,7 @@ export declare class CoreEstimateRegionStats extends RpcMethodType {
72
72
  signal?: RemoteAbortSignal;
73
73
  headers?: Record<string, string>;
74
74
  sessionId: string;
75
- }, rpcDriverClassName: string): Promise<import("../data_adapters/BaseAdapter").Stats | {
76
- featureDensity: number;
77
- }>;
75
+ }, rpcDriverClassName: string): Promise<import("../data_adapters/BaseAdapter").Stats>;
78
76
  }
79
77
  /**
80
78
  * fetches features from an adapter and call a renderer with them
@@ -91,7 +91,7 @@ var CoreGetRefNames = /*#__PURE__*/function (_RpcMethodType) {
91
91
  _yield$getAdapter = _context.sent;
92
92
  dataAdapter = _yield$getAdapter.dataAdapter;
93
93
 
94
- if (!(dataAdapter instanceof _BaseAdapter.BaseFeatureDataAdapter)) {
94
+ if (!(0, _BaseAdapter.isFeatureAdapter)(dataAdapter)) {
95
95
  _context.next = 10;
96
96
  break;
97
97
  }
@@ -378,7 +378,7 @@ var CoreGetFeatures = /*#__PURE__*/function (_RpcMethodType4) {
378
378
  break;
379
379
  }
380
380
 
381
- return _context6.abrupt("return", []);
381
+ throw new Error('Adapter does not support retrieving features');
382
382
 
383
383
  case 10:
384
384
  ret = dataAdapter.getFeaturesInMultipleRegions(regions, _objectSpread(_objectSpread({}, opts), {}, {
@@ -590,15 +590,15 @@ var CoreEstimateRegionStats = /*#__PURE__*/function (_RpcMethodType6) {
590
590
  _yield$getAdapter5 = _context10.sent;
591
591
  dataAdapter = _yield$getAdapter5.dataAdapter;
592
592
 
593
- if (!(dataAdapter instanceof _BaseAdapter.BaseFeatureDataAdapter)) {
593
+ if ((0, _BaseAdapter.isFeatureAdapter)(dataAdapter)) {
594
594
  _context10.next = 10;
595
595
  break;
596
596
  }
597
597
 
598
- return _context10.abrupt("return", dataAdapter.estimateRegionsStats(regions, deserializedArgs));
598
+ throw new Error('Adapter does not support retrieving features');
599
599
 
600
600
  case 10:
601
- throw new Error('Data adapter not found');
601
+ return _context10.abrupt("return", dataAdapter.estimateRegionsStats(regions, deserializedArgs));
602
602
 
603
603
  case 11:
604
604
  case "end":