@jbrowse/core 1.7.11 → 2.0.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.
- package/BaseFeatureWidget/BaseFeatureDetail.d.ts +11 -1
- package/BaseFeatureWidget/BaseFeatureDetail.js +49 -26
- package/BaseFeatureWidget/SequenceFeatureDetails.js +20 -15
- package/BaseFeatureWidget/index.d.ts +2 -2
- package/BaseFeatureWidget/index.js +5 -3
- package/BaseFeatureWidget/index.test.js +48 -30
- package/PluginManager.d.ts +58 -86
- package/ReExports/Attributes.d.ts +2 -0
- package/ReExports/Attributes.js +12 -0
- package/ReExports/BaseCard.d.ts +2 -0
- package/ReExports/BaseCard.js +12 -0
- package/ReExports/DataGrid.d.ts +2 -0
- package/ReExports/DataGrid.js +13 -0
- package/ReExports/FeatureDetails.d.ts +2 -0
- package/ReExports/FeatureDetails.js +12 -0
- package/ReExports/list.js +1 -1
- package/ReExports/material-ui-colors.d.ts +1 -19
- package/ReExports/material-ui-colors.js +11 -152
- package/ReExports/modules.d.ts +59 -91
- package/ReExports/modules.js +683 -127
- package/TextSearch/TextSearchManager.d.ts +3 -1
- package/assemblyManager/assembly.js +1 -0
- package/assemblyManager/assemblyManager.d.ts +12 -10
- package/assemblyManager/assemblyManager.js +2 -0
- package/configuration/util.d.ts +1 -1
- package/package.json +14 -15
- package/pluggableElementTypes/models/BaseDisplayModel.d.ts +10 -10
- package/pluggableElementTypes/models/BaseTrackModel.d.ts +1 -1
- package/pluggableElementTypes/models/BaseTrackModel.js +24 -25
- package/pluggableElementTypes/renderers/ServerSideRenderedContent.js +2 -2
- package/pluggableElementTypes/renderers/ServerSideRendererType.d.ts +2 -2
- package/pluggableElementTypes/renderers/ServerSideRendererType.js +1 -1
- package/rpc/BaseRpcDriver.js +1 -1
- package/tsconfig.build.tsbuildinfo +1 -1
- package/ui/AboutDialog.js +15 -10
- package/ui/App.js +18 -37
- package/ui/AssemblySelector.d.ts +1 -1
- package/ui/AssemblySelector.js +10 -5
- package/ui/CascadingMenu.js +10 -14
- package/ui/Drawer.js +8 -5
- package/ui/DrawerWidget.js +39 -45
- package/ui/DropDownMenu.d.ts +0 -8
- package/ui/DropDownMenu.js +9 -15
- package/ui/EditableTypography.d.ts +1 -1
- package/ui/EditableTypography.js +42 -48
- package/ui/ErrorMessage.js +13 -23
- package/ui/FactoryResetDialog.js +6 -6
- package/ui/FatalErrorDialog.js +5 -5
- package/ui/FileSelector/FileSelector.js +19 -19
- package/ui/FileSelector/LocalFileChooser.js +12 -8
- package/ui/FileSelector/UrlChooser.js +2 -2
- package/ui/Icons.d.ts +1 -1
- package/ui/Icons.js +1 -1
- package/ui/Menu.d.ts +1 -1
- package/ui/Menu.js +28 -29
- package/ui/PrerenderedCanvas.js +10 -1
- package/ui/ResizeHandle.js +8 -6
- package/ui/ReturnToImportFormDialog.js +14 -10
- package/ui/SanitizedHTML.js +15 -21
- package/ui/Snackbar.js +11 -9
- package/ui/Tooltip.d.ts +3 -1
- package/ui/Tooltip.js +5 -3
- package/ui/ViewContainer.js +38 -25
- package/ui/theme.d.ts +279 -131
- package/ui/theme.js +174 -154
- package/ui/theme.test.js +56 -75
- package/util/Base1DViewModel.d.ts +1 -8
- package/util/Base1DViewModel.js +11 -13
- package/util/color/index.js +6 -6
- package/util/index.d.ts +1 -7
- package/util/index.js +8 -18
- package/util/layouts/GranularRectLayout.js +1 -3
- package/util/layouts/PrecomputedLayout.js +1 -3
- package/util/tracks.js +4 -2
- package/util/types/index.d.ts +3 -3
- package/util/types/mst.d.ts +3 -3
- package/util/types/mst.js +11 -7
|
@@ -2,7 +2,17 @@ import React from 'react';
|
|
|
2
2
|
import { IAnyStateTreeNode } from 'mobx-state-tree';
|
|
3
3
|
import { BaseCardProps, BaseProps } from './types';
|
|
4
4
|
import { SimpleFeatureSerialized } from '../util/simpleFeature';
|
|
5
|
-
export declare const useStyles: (
|
|
5
|
+
export declare const useStyles: (params: void, styleOverrides?: {
|
|
6
|
+
props: {
|
|
7
|
+
classes?: Record<string, string> | undefined;
|
|
8
|
+
} & Record<string, unknown>;
|
|
9
|
+
ownerState?: Record<string, unknown> | undefined;
|
|
10
|
+
} | undefined) => {
|
|
11
|
+
classes: Record<"expansionPanelDetails" | "expandIcon" | "field" | "fieldDescription" | "fieldName" | "fieldValue" | "fieldSubvalue", string>;
|
|
12
|
+
theme: import("@mui/material").Theme;
|
|
13
|
+
css: import("tss-react/types").Css;
|
|
14
|
+
cx: import("tss-react/types").Cx;
|
|
15
|
+
};
|
|
6
16
|
export declare function BaseCard({ children, title, defaultExpanded, }: BaseCardProps): JSX.Element;
|
|
7
17
|
export declare const FieldName: ({ description, name, width, prefix, }: {
|
|
8
18
|
description?: React.ReactNode;
|
|
@@ -26,16 +26,16 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
26
26
|
|
|
27
27
|
var _reactErrorBoundary = require("react-error-boundary");
|
|
28
28
|
|
|
29
|
-
var
|
|
29
|
+
var _material = require("@mui/material");
|
|
30
30
|
|
|
31
|
-
var
|
|
31
|
+
var _mui = require("tss-react/mui");
|
|
32
|
+
|
|
33
|
+
var _ExpandMore = _interopRequireDefault(require("@mui/icons-material/ExpandMore"));
|
|
32
34
|
|
|
33
35
|
var _xDataGrid = require("@mui/x-data-grid");
|
|
34
36
|
|
|
35
37
|
var _mobxReact = require("mobx-react");
|
|
36
38
|
|
|
37
|
-
var _clsx = _interopRequireDefault(require("clsx"));
|
|
38
|
-
|
|
39
39
|
var _isObject = _interopRequireDefault(require("is-object"));
|
|
40
40
|
|
|
41
41
|
var _configuration = require("../configuration");
|
|
@@ -64,7 +64,7 @@ var MAX_FIELD_NAME_WIDTH = 170; // these are always omitted as too detailed
|
|
|
64
64
|
var globalOmit = ['__jbrowsefmt', 'length', 'position', 'subfeatures', 'uniqueId', 'exonFrames', 'parentId', 'thickStart', 'thickEnd']; // coreDetails are omitted in some circumstances
|
|
65
65
|
|
|
66
66
|
var coreDetails = ['name', 'start', 'end', 'strand', 'refName', 'description', 'type'];
|
|
67
|
-
var useStyles = (0,
|
|
67
|
+
var useStyles = (0, _mui.makeStyles)()(function (theme) {
|
|
68
68
|
return {
|
|
69
69
|
expansionPanelDetails: {
|
|
70
70
|
display: 'block',
|
|
@@ -86,6 +86,7 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
|
86
86
|
wordBreak: 'break-all',
|
|
87
87
|
minWidth: '90px',
|
|
88
88
|
borderBottom: '1px solid #0003',
|
|
89
|
+
fontSize: 12,
|
|
89
90
|
background: theme.palette.grey[200],
|
|
90
91
|
marginRight: theme.spacing(1),
|
|
91
92
|
padding: theme.spacing(0.5)
|
|
@@ -93,6 +94,7 @@ var useStyles = (0, _core.makeStyles)(function (theme) {
|
|
|
93
94
|
fieldValue: {
|
|
94
95
|
wordBreak: 'break-word',
|
|
95
96
|
maxHeight: 300,
|
|
97
|
+
fontSize: 12,
|
|
96
98
|
padding: theme.spacing(0.5),
|
|
97
99
|
overflow: 'auto'
|
|
98
100
|
},
|
|
@@ -114,14 +116,16 @@ function BaseCard(_ref) {
|
|
|
114
116
|
title = _ref.title,
|
|
115
117
|
_ref$defaultExpanded = _ref.defaultExpanded,
|
|
116
118
|
defaultExpanded = _ref$defaultExpanded === void 0 ? true : _ref$defaultExpanded;
|
|
117
|
-
|
|
119
|
+
|
|
120
|
+
var _useStyles = useStyles(),
|
|
121
|
+
classes = _useStyles.classes;
|
|
118
122
|
|
|
119
123
|
var _useState = (0, _react.useState)(defaultExpanded),
|
|
120
124
|
_useState2 = (0, _slicedToArray2.default)(_useState, 2),
|
|
121
125
|
expanded = _useState2[0],
|
|
122
126
|
setExpanded = _useState2[1];
|
|
123
127
|
|
|
124
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
128
|
+
return /*#__PURE__*/_react.default.createElement(_material.Accordion, {
|
|
125
129
|
expanded: expanded,
|
|
126
130
|
onChange: function onChange() {
|
|
127
131
|
return setExpanded(function (s) {
|
|
@@ -131,13 +135,13 @@ function BaseCard(_ref) {
|
|
|
131
135
|
TransitionProps: {
|
|
132
136
|
unmountOnExit: true
|
|
133
137
|
}
|
|
134
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
138
|
+
}, /*#__PURE__*/_react.default.createElement(_material.AccordionSummary, {
|
|
135
139
|
expandIcon: /*#__PURE__*/_react.default.createElement(_ExpandMore.default, {
|
|
136
140
|
className: classes.expandIcon
|
|
137
141
|
})
|
|
138
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
142
|
+
}, /*#__PURE__*/_react.default.createElement(_material.Typography, {
|
|
139
143
|
variant: "button"
|
|
140
|
-
}, " ", title)), /*#__PURE__*/_react.default.createElement(
|
|
144
|
+
}, " ", title)), /*#__PURE__*/_react.default.createElement(_material.AccordionDetails, {
|
|
141
145
|
className: classes.expansionPanelDetails
|
|
142
146
|
}, children));
|
|
143
147
|
}
|
|
@@ -148,13 +152,17 @@ var FieldName = function FieldName(_ref2) {
|
|
|
148
152
|
width = _ref2.width,
|
|
149
153
|
_ref2$prefix = _ref2.prefix,
|
|
150
154
|
prefix = _ref2$prefix === void 0 ? [] : _ref2$prefix;
|
|
151
|
-
|
|
155
|
+
|
|
156
|
+
var _useStyles2 = useStyles(),
|
|
157
|
+
classes = _useStyles2.classes,
|
|
158
|
+
cx = _useStyles2.cx;
|
|
159
|
+
|
|
152
160
|
var val = [].concat((0, _toConsumableArray2.default)(prefix), [name]).join('.');
|
|
153
|
-
return description ? /*#__PURE__*/_react.default.createElement(
|
|
161
|
+
return description ? /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
|
|
154
162
|
title: description,
|
|
155
163
|
placement: "left"
|
|
156
164
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
157
|
-
className: (
|
|
165
|
+
className: cx(classes.fieldDescription, classes.fieldName)
|
|
158
166
|
}, val)) : /*#__PURE__*/_react.default.createElement("div", {
|
|
159
167
|
className: classes.fieldName,
|
|
160
168
|
style: {
|
|
@@ -167,7 +175,10 @@ exports.FieldName = FieldName;
|
|
|
167
175
|
|
|
168
176
|
var BasicValue = function BasicValue(_ref3) {
|
|
169
177
|
var value = _ref3.value;
|
|
170
|
-
|
|
178
|
+
|
|
179
|
+
var _useStyles3 = useStyles(),
|
|
180
|
+
classes = _useStyles3.classes;
|
|
181
|
+
|
|
171
182
|
var isLink = "".concat(value).match(/^https?:\/\//);
|
|
172
183
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
173
184
|
className: classes.fieldValue
|
|
@@ -186,7 +197,10 @@ var SimpleValue = function SimpleValue(_ref4) {
|
|
|
186
197
|
description = _ref4.description,
|
|
187
198
|
prefix = _ref4.prefix,
|
|
188
199
|
width = _ref4.width;
|
|
189
|
-
|
|
200
|
+
|
|
201
|
+
var _useStyles4 = useStyles(),
|
|
202
|
+
classes = _useStyles4.classes;
|
|
203
|
+
|
|
190
204
|
return value !== null && value !== undefined ? /*#__PURE__*/_react.default.createElement("div", {
|
|
191
205
|
className: classes.field
|
|
192
206
|
}, /*#__PURE__*/_react.default.createElement(FieldName, {
|
|
@@ -207,7 +221,9 @@ var ArrayValue = function ArrayValue(_ref5) {
|
|
|
207
221
|
description = _ref5.description,
|
|
208
222
|
_ref5$prefix = _ref5.prefix,
|
|
209
223
|
prefix = _ref5$prefix === void 0 ? [] : _ref5$prefix;
|
|
210
|
-
|
|
224
|
+
|
|
225
|
+
var _useStyles5 = useStyles(),
|
|
226
|
+
classes = _useStyles5.classes;
|
|
211
227
|
|
|
212
228
|
if (value.length === 1) {
|
|
213
229
|
return (0, _isObject.default)(value[0]) ? /*#__PURE__*/_react.default.createElement(Attributes, {
|
|
@@ -343,11 +359,18 @@ var DataGridDetails = function DataGridDetails(_ref10) {
|
|
|
343
359
|
colNames = (0, _toConsumableArray2.default)(unionKeys);
|
|
344
360
|
}
|
|
345
361
|
|
|
362
|
+
var getStr = function getStr(obj) {
|
|
363
|
+
return (0, _isObject.default)(obj) ? JSON.stringify(obj) : String(obj);
|
|
364
|
+
};
|
|
365
|
+
|
|
346
366
|
var columns = colNames.map(function (val) {
|
|
347
367
|
return {
|
|
348
368
|
field: val,
|
|
369
|
+
renderCell: function renderCell(val) {
|
|
370
|
+
return getStr(val.formattedValue);
|
|
371
|
+
},
|
|
349
372
|
width: Math.max.apply(Math, (0, _toConsumableArray2.default)(rows.map(function (row) {
|
|
350
|
-
return Math.min(Math.max((0, _util.measureText)(
|
|
373
|
+
return Math.min(Math.max((0, _util.measureText)(getStr(row[val]), 14) + 50, 80), 1000);
|
|
351
374
|
})))
|
|
352
375
|
};
|
|
353
376
|
}); // disableSelection on click helps avoid
|
|
@@ -363,11 +386,9 @@ var DataGridDetails = function DataGridDetails(_ref10) {
|
|
|
363
386
|
}
|
|
364
387
|
}, /*#__PURE__*/_react.default.createElement(_xDataGrid.DataGrid, {
|
|
365
388
|
disableSelectionOnClick: true,
|
|
366
|
-
rowHeight:
|
|
367
|
-
headerHeight: 25,
|
|
389
|
+
rowHeight: 25,
|
|
368
390
|
rows: rows,
|
|
369
391
|
rowsPerPageOptions: [],
|
|
370
|
-
hideFooterRowCount: true,
|
|
371
392
|
hideFooterSelectedRowCount: true,
|
|
372
393
|
columns: columns,
|
|
373
394
|
hideFooter: rows.length < 100
|
|
@@ -405,7 +426,10 @@ function UriAttribute(_ref13) {
|
|
|
405
426
|
var value = _ref13.value,
|
|
406
427
|
prefix = _ref13.prefix,
|
|
407
428
|
name = _ref13.name;
|
|
408
|
-
|
|
429
|
+
|
|
430
|
+
var _useStyles6 = useStyles(),
|
|
431
|
+
classes = _useStyles6.classes;
|
|
432
|
+
|
|
409
433
|
var uri = value.uri,
|
|
410
434
|
_value$baseUri = value.baseUri,
|
|
411
435
|
baseUri = _value$baseUri === void 0 ? '' : _value$baseUri;
|
|
@@ -451,7 +475,6 @@ function Attributes(props) {
|
|
|
451
475
|
|
|
452
476
|
return v !== undefined && !omits.includes(k);
|
|
453
477
|
}), prefix);
|
|
454
|
-
var labelWidth = maxLabelWidth <= MAX_FIELD_NAME_WIDTH ? maxLabelWidth : MAX_FIELD_NAME_WIDTH;
|
|
455
478
|
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, Object.entries(formattedAttributes).filter(function (_ref16) {
|
|
456
479
|
var _ref17 = (0, _slicedToArray2.default)(_ref16, 2),
|
|
457
480
|
k = _ref17[0],
|
|
@@ -468,7 +491,7 @@ function Attributes(props) {
|
|
|
468
491
|
if (Array.isArray(value)) {
|
|
469
492
|
// check if it looks like an array of objects, which could be used
|
|
470
493
|
// in data grid
|
|
471
|
-
return value.length >
|
|
494
|
+
return value.length > 1 && value.every(function (val) {
|
|
472
495
|
return (0, _isObject.default)(val);
|
|
473
496
|
}) ? /*#__PURE__*/_react.default.createElement(DataGridDetails, {
|
|
474
497
|
key: key,
|
|
@@ -502,7 +525,7 @@ function Attributes(props) {
|
|
|
502
525
|
value: formatter(value, key),
|
|
503
526
|
description: description,
|
|
504
527
|
prefix: prefix,
|
|
505
|
-
width:
|
|
528
|
+
width: Math.min(maxLabelWidth, MAX_FIELD_NAME_WIDTH)
|
|
506
529
|
});
|
|
507
530
|
}
|
|
508
531
|
}));
|
|
@@ -548,14 +571,14 @@ var FeatureDetails = function FeatureDetails(props) {
|
|
|
548
571
|
var sequenceTypes = (0, _configuration.getConf)(session, ['featureDetails', 'sequenceTypes']) || defaultSeqTypes;
|
|
549
572
|
return /*#__PURE__*/_react.default.createElement(BaseCard, {
|
|
550
573
|
title: generateTitle(name, id, type)
|
|
551
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
574
|
+
}, /*#__PURE__*/_react.default.createElement(_material.Typography, null, "Core details"), /*#__PURE__*/_react.default.createElement(CoreDetails, props), /*#__PURE__*/_react.default.createElement(_material.Divider, null), /*#__PURE__*/_react.default.createElement(_material.Typography, null, "Attributes"), /*#__PURE__*/_react.default.createElement(Attributes, (0, _extends2.default)({
|
|
552
575
|
attributes: feature
|
|
553
576
|
}, props, {
|
|
554
577
|
omit: [].concat((0, _toConsumableArray2.default)(omit), coreDetails)
|
|
555
578
|
})), sequenceTypes.includes(feature.type) ? /*#__PURE__*/_react.default.createElement(_reactErrorBoundary.ErrorBoundary, {
|
|
556
579
|
FallbackComponent: function FallbackComponent(_ref20) {
|
|
557
580
|
var error = _ref20.error;
|
|
558
|
-
return /*#__PURE__*/_react.default.createElement(
|
|
581
|
+
return /*#__PURE__*/_react.default.createElement(_material.Typography, {
|
|
559
582
|
color: "error"
|
|
560
583
|
}, "".concat(error));
|
|
561
584
|
}
|
|
@@ -22,7 +22,9 @@ var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers
|
|
|
22
22
|
|
|
23
23
|
var _react = _interopRequireWildcard(require("react"));
|
|
24
24
|
|
|
25
|
-
var
|
|
25
|
+
var _material = require("@mui/material");
|
|
26
|
+
|
|
27
|
+
var _mui = require("tss-react/mui");
|
|
26
28
|
|
|
27
29
|
var _reactIntersectionObserver = require("react-intersection-observer");
|
|
28
30
|
|
|
@@ -42,7 +44,7 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
|
|
|
42
44
|
|
|
43
45
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
44
46
|
|
|
45
|
-
var useStyles = (0,
|
|
47
|
+
var useStyles = (0, _mui.makeStyles)()(function (theme) {
|
|
46
48
|
return {
|
|
47
49
|
button: {
|
|
48
50
|
margin: theme.spacing(1)
|
|
@@ -250,7 +252,10 @@ function SequenceFeatureDetails(_ref6) {
|
|
|
250
252
|
|
|
251
253
|
var model = _ref6.model,
|
|
252
254
|
feature = _ref6.feature;
|
|
253
|
-
|
|
255
|
+
|
|
256
|
+
var _useStyles = useStyles(),
|
|
257
|
+
classes = _useStyles.classes;
|
|
258
|
+
|
|
254
259
|
var parentFeature = feature;
|
|
255
260
|
var hasCDS = (_parentFeature$subfea = parentFeature.subfeatures) === null || _parentFeature$subfea === void 0 ? void 0 : _parentFeature$subfea.find(function (sub) {
|
|
256
261
|
return sub.type === 'CDS';
|
|
@@ -421,26 +426,26 @@ function SequenceFeatureDetails(_ref6) {
|
|
|
421
426
|
var loading = !sequence;
|
|
422
427
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
423
428
|
ref: ref
|
|
424
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
429
|
+
}, /*#__PURE__*/_react.default.createElement(_material.FormControl, null, /*#__PURE__*/_react.default.createElement(_material.Select, {
|
|
425
430
|
value: mode,
|
|
426
431
|
onChange: function onChange(event) {
|
|
427
432
|
return setMode(event.target.value);
|
|
428
433
|
}
|
|
429
|
-
}, hasCDS ? /*#__PURE__*/_react.default.createElement(
|
|
434
|
+
}, hasCDS ? /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
430
435
|
value: "cds"
|
|
431
|
-
}, "CDS") : null, hasCDS ? /*#__PURE__*/_react.default.createElement(
|
|
436
|
+
}, "CDS") : null, hasCDS ? /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
432
437
|
value: "protein"
|
|
433
|
-
}, "Protein") : null, /*#__PURE__*/_react.default.createElement(
|
|
438
|
+
}, "Protein") : null, /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
434
439
|
value: "gene"
|
|
435
|
-
}, "Gene w/ introns"), /*#__PURE__*/_react.default.createElement(
|
|
440
|
+
}, "Gene w/ introns"), /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
436
441
|
value: "gene_collapsed_intron"
|
|
437
|
-
}, "Gene w/ 10bp of intron"), /*#__PURE__*/_react.default.createElement(
|
|
442
|
+
}, "Gene w/ 10bp of intron"), /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
438
443
|
value: "gene_updownstream"
|
|
439
|
-
}, "Gene w/ 500bp up+down stream"), /*#__PURE__*/_react.default.createElement(
|
|
444
|
+
}, "Gene w/ 500bp up+down stream"), /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
440
445
|
value: "gene_updownstream_collapsed_intron"
|
|
441
|
-
}, "Gene w/ 500bp up+down stream w/ 10bp intron"), /*#__PURE__*/_react.default.createElement(
|
|
446
|
+
}, "Gene w/ 500bp up+down stream w/ 10bp intron"), /*#__PURE__*/_react.default.createElement(_material.MenuItem, {
|
|
442
447
|
value: "cdna"
|
|
443
|
-
}, "cDNA")), /*#__PURE__*/_react.default.createElement(
|
|
448
|
+
}, "cDNA"))), /*#__PURE__*/_react.default.createElement(_material.Button, {
|
|
444
449
|
className: classes.button,
|
|
445
450
|
type: "button",
|
|
446
451
|
variant: "contained",
|
|
@@ -457,9 +462,9 @@ function SequenceFeatureDetails(_ref6) {
|
|
|
457
462
|
}, 1000);
|
|
458
463
|
}
|
|
459
464
|
}
|
|
460
|
-
}, copied ? 'Copied to clipboard!' : 'Copy as plaintext'), /*#__PURE__*/_react.default.createElement(
|
|
465
|
+
}, copied ? 'Copied to clipboard!' : 'Copy as plaintext'), /*#__PURE__*/_react.default.createElement(_material.Tooltip, {
|
|
461
466
|
title: "Note that 'Copy as HTML' can retain the colors but cannot be pasted into some programs like notepad that only expect plain text"
|
|
462
|
-
}, /*#__PURE__*/_react.default.createElement(
|
|
467
|
+
}, /*#__PURE__*/_react.default.createElement(_material.Button, {
|
|
463
468
|
className: classes.button,
|
|
464
469
|
type: "button",
|
|
465
470
|
variant: "contained",
|
|
@@ -478,7 +483,7 @@ function SequenceFeatureDetails(_ref6) {
|
|
|
478
483
|
}
|
|
479
484
|
}, copiedHtml ? 'Copied to clipboard!' : 'Copy as HTML')), /*#__PURE__*/_react.default.createElement("div", {
|
|
480
485
|
"data-testid": "feature_sequence"
|
|
481
|
-
}, error ? /*#__PURE__*/_react.default.createElement(
|
|
486
|
+
}, error ? /*#__PURE__*/_react.default.createElement(_material.Typography, {
|
|
482
487
|
color: "error"
|
|
483
488
|
}, "".concat(error)) : loading ? /*#__PURE__*/_react.default.createElement("div", null, "Loading gene sequence...") : sequence ? /*#__PURE__*/_react.default.createElement(SequencePanel, {
|
|
484
489
|
ref: seqPanelRef,
|
|
@@ -25,9 +25,9 @@ export default function stateModelFactory(pluginManager: PluginManager): import(
|
|
|
25
25
|
}>>, {
|
|
26
26
|
id: string;
|
|
27
27
|
type: "BaseFeatureWidget";
|
|
28
|
-
formattedFields: any;
|
|
29
|
-
view: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
30
28
|
track: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
29
|
+
view: import("mobx-state-tree").ReferenceIdentifier | undefined;
|
|
30
|
+
formattedFields: any;
|
|
31
31
|
finalizedFeatureData: any;
|
|
32
32
|
}>;
|
|
33
33
|
export { configSchema, stateModelFactory };
|
|
@@ -111,9 +111,11 @@ function stateModelFactory(pluginManager) {
|
|
|
111
111
|
featureData: finalizedFeatureData
|
|
112
112
|
}, rest);
|
|
113
113
|
}).postProcessSnapshot(function (snap) {
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
114
|
+
// xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit
|
|
115
|
+
var _ref = snap,
|
|
116
|
+
unformattedFeatureData = _ref.unformattedFeatureData,
|
|
117
|
+
featureData = _ref.featureData,
|
|
118
|
+
rest = (0, _objectWithoutProperties2.default)(_ref, _excluded2); // finalizedFeatureData avoids running formatter twice if loading from
|
|
117
119
|
// snapshot
|
|
118
120
|
|
|
119
121
|
return _objectSpread({
|
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
4
|
|
|
5
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
|
|
6
|
+
|
|
7
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
|
|
8
|
+
|
|
5
9
|
var _react = _interopRequireDefault(require("react"));
|
|
6
10
|
|
|
7
11
|
var _react2 = require("@testing-library/react");
|
|
@@ -16,36 +20,50 @@ var _ = require(".");
|
|
|
16
20
|
|
|
17
21
|
var _BaseFeatureDetail = _interopRequireDefault(require("./BaseFeatureDetail"));
|
|
18
22
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
var pluginManager
|
|
23
|
+
// locals
|
|
24
|
+
test('open up a widget', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
25
|
+
var pluginManager, Session, model, _render, container, findByText;
|
|
26
|
+
|
|
27
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
28
|
+
while (1) {
|
|
29
|
+
switch (_context.prev = _context.next) {
|
|
30
|
+
case 0:
|
|
31
|
+
console.warn = jest.fn();
|
|
32
|
+
pluginManager = new _PluginManager.default([]);
|
|
33
|
+
Session = _mobxStateTree.types.model({
|
|
34
|
+
pluginManager: _mobxStateTree.types.optional(_mobxStateTree.types.frozen(), {}),
|
|
35
|
+
rpcManager: _mobxStateTree.types.optional(_mobxStateTree.types.frozen(), {}),
|
|
36
|
+
configuration: (0, _configuration.ConfigurationSchema)('test', {}),
|
|
37
|
+
widget: (0, _.stateModelFactory)(pluginManager)
|
|
38
|
+
});
|
|
39
|
+
model = Session.create({
|
|
40
|
+
widget: {
|
|
41
|
+
type: 'BaseFeatureWidget'
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
_render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.default, {
|
|
45
|
+
model: model.widget
|
|
46
|
+
})), container = _render.container, findByText = _render.findByText;
|
|
47
|
+
model.widget.setFeatureData({
|
|
48
|
+
start: 2,
|
|
49
|
+
end: 102,
|
|
50
|
+
strand: 1,
|
|
51
|
+
score: 37,
|
|
52
|
+
refName: 'ctgA'
|
|
53
|
+
});
|
|
54
|
+
_context.t0 = expect;
|
|
55
|
+
_context.next = 9;
|
|
56
|
+
return findByText('ctgA:3..102 (+)');
|
|
22
57
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
widget: (0, _.stateModelFactory)(pluginManager)
|
|
28
|
-
});
|
|
58
|
+
case 9:
|
|
59
|
+
_context.t1 = _context.sent;
|
|
60
|
+
(0, _context.t0)(_context.t1).toBeTruthy();
|
|
61
|
+
expect(container.firstChild).toMatchSnapshot();
|
|
29
62
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
63
|
+
case 12:
|
|
64
|
+
case "end":
|
|
65
|
+
return _context.stop();
|
|
66
|
+
}
|
|
33
67
|
}
|
|
34
|
-
});
|
|
35
|
-
|
|
36
|
-
var _render = (0, _react2.render)( /*#__PURE__*/_react.default.createElement(_BaseFeatureDetail.default, {
|
|
37
|
-
model: model.widget
|
|
38
|
-
})),
|
|
39
|
-
container = _render.container,
|
|
40
|
-
getByText = _render.getByText;
|
|
41
|
-
|
|
42
|
-
model.widget.setFeatureData({
|
|
43
|
-
start: 2,
|
|
44
|
-
end: 102,
|
|
45
|
-
strand: 1,
|
|
46
|
-
score: 37,
|
|
47
|
-
refName: 'ctgA'
|
|
48
|
-
});
|
|
49
|
-
expect(container.firstChild).toMatchSnapshot();
|
|
50
|
-
expect(getByText('ctgA:3..102 (+)')).toBeTruthy();
|
|
51
|
-
});
|
|
68
|
+
}, _callee);
|
|
69
|
+
})));
|
package/PluginManager.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
|
-
import { IAnyType } from 'mobx-state-tree';
|
|
2
|
+
import { IAnyType, IAnyModelType } from 'mobx-state-tree';
|
|
3
3
|
import PluggableElementBase from './pluggableElementTypes/PluggableElementBase';
|
|
4
4
|
import RendererType from './pluggableElementTypes/renderers/RendererType';
|
|
5
5
|
import AdapterType from './pluggableElementTypes/AdapterType';
|
|
@@ -99,91 +99,19 @@ export default class PluginManager {
|
|
|
99
99
|
/** get a MST type for the union of all specified pluggable MST types */
|
|
100
100
|
pluggableMstType(typeGroup: PluggableElementTypeGroup, fieldName: PluggableElementMember, fallback?: IAnyType): IAnyType;
|
|
101
101
|
/** get a MST type for the union of all specified pluggable config schemas */
|
|
102
|
-
pluggableConfigSchemaType(typeGroup: PluggableElementTypeGroup, fieldName?: PluggableElementMember):
|
|
102
|
+
pluggableConfigSchemaType(typeGroup: PluggableElementTypeGroup, fieldName?: PluggableElementMember): IAnyModelType;
|
|
103
103
|
jbrequireCache: Map<any, any>;
|
|
104
104
|
lib: {
|
|
105
|
-
|
|
106
|
-
'
|
|
107
|
-
|
|
108
|
-
'
|
|
109
|
-
'
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
'@mui/x-data-grid': typeof import("@mui/x-data-grid");
|
|
116
|
-
'@material-ui/data-grid': typeof import("@mui/x-data-grid");
|
|
117
|
-
'@material-ui/core/colors': typeof import("./ReExports/material-ui-colors");
|
|
118
|
-
'@material-ui/core/styles': typeof import("@material-ui/core/styles");
|
|
119
|
-
'@material-ui/core/Box': import("react").ComponentType<import("@material-ui/core").BoxProps>;
|
|
120
|
-
'@material-ui/core/Button': import("@material-ui/core").ExtendButtonBase<import("@material-ui/core").ButtonTypeMap<{}, "button">>;
|
|
121
|
-
'@material-ui/core/ButtonGroup': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").ButtonGroupTypeMap<{}, "div">>;
|
|
122
|
-
'@material-ui/core/Card': typeof import("@material-ui/core").Card;
|
|
123
|
-
'@material-ui/core/CardContent': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").CardContentTypeMap<{}, "div">>;
|
|
124
|
-
'@material-ui/core/Container': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").ContainerTypeMap<{}, "div">>;
|
|
125
|
-
'@material-ui/core/Checkbox': typeof import("@material-ui/core").Checkbox;
|
|
126
|
-
'@material-ui/core/Dialog': typeof import("@material-ui/core").Dialog;
|
|
127
|
-
'@material-ui/core/FormGroup': typeof import("@material-ui/core").FormGroup;
|
|
128
|
-
'@material-ui/core/FormLabel': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").FormLabelTypeMap<{}, "label">>;
|
|
129
|
-
'@material-ui/core/FormControl': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").FormControlTypeMap<{}, "div">>;
|
|
130
|
-
'@material-ui/core/FormControlLabel': typeof import("@material-ui/core").FormControlLabel;
|
|
131
|
-
'@material-ui/core/Grid': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").GridTypeMap<{}, "div">>;
|
|
132
|
-
'@material-ui/core/Icon': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").IconTypeMap<{}, "span">>;
|
|
133
|
-
'@material-ui/core/IconButton': import("@material-ui/core").ExtendButtonBase<import("@material-ui/core").IconButtonTypeMap<{}, "button">>;
|
|
134
|
-
'@material-ui/core/InputAdornment': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").InputAdornmentTypeMap<{}, "div">>;
|
|
135
|
-
'@material-ui/core/LinearProgress': typeof import("@material-ui/core").LinearProgress;
|
|
136
|
-
'@material-ui/core/ListItemIcon': typeof import("@material-ui/core").ListItemIcon;
|
|
137
|
-
'@material-ui/core/ListItemText': typeof import("@material-ui/core").ListItemText;
|
|
138
|
-
'@material-ui/core/Menu': typeof import("@material-ui/core").Menu;
|
|
139
|
-
'@material-ui/core/MenuItem': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").MenuItemTypeMap<{
|
|
140
|
-
button: false;
|
|
141
|
-
}, "li">> & ((props: {
|
|
142
|
-
href: string;
|
|
143
|
-
} & {
|
|
144
|
-
button?: true | undefined;
|
|
145
|
-
} & {
|
|
146
|
-
alignItems?: "center" | "flex-start" | undefined;
|
|
147
|
-
autoFocus?: boolean | undefined;
|
|
148
|
-
button?: boolean | undefined;
|
|
149
|
-
ContainerComponent?: import("react").ElementType<import("react").HTMLAttributes<HTMLDivElement>> | undefined;
|
|
150
|
-
ContainerProps?: import("react").HTMLAttributes<HTMLDivElement> | undefined;
|
|
151
|
-
dense?: boolean | undefined;
|
|
152
|
-
disabled?: boolean | undefined;
|
|
153
|
-
disableGutters?: boolean | undefined;
|
|
154
|
-
divider?: boolean | undefined;
|
|
155
|
-
focusVisibleClassName?: string | undefined;
|
|
156
|
-
selected?: boolean | undefined;
|
|
157
|
-
} & {
|
|
158
|
-
action?: import("react").Ref<import("@material-ui/core").ButtonBaseActions> | undefined;
|
|
159
|
-
buttonRef?: import("react").Ref<unknown> | undefined;
|
|
160
|
-
centerRipple?: boolean | undefined;
|
|
161
|
-
children?: import("react").ReactNode;
|
|
162
|
-
disabled?: boolean | undefined;
|
|
163
|
-
disableRipple?: boolean | undefined;
|
|
164
|
-
disableTouchRipple?: boolean | undefined;
|
|
165
|
-
focusRipple?: boolean | undefined;
|
|
166
|
-
focusVisibleClassName?: string | undefined;
|
|
167
|
-
onFocusVisible?: import("react").FocusEventHandler<any> | undefined;
|
|
168
|
-
tabIndex?: string | number | undefined;
|
|
169
|
-
TouchRippleProps?: Partial<import("@material-ui/core/ButtonBase/TouchRipple").TouchRippleProps> | undefined;
|
|
170
|
-
} & import("@material-ui/core/OverridableComponent").CommonProps<import("@material-ui/core").ExtendButtonBaseTypeMap<import("@material-ui/core").MenuItemTypeMap<{
|
|
171
|
-
button?: true | undefined;
|
|
172
|
-
}, "li">>> & Pick<Pick<import("react").DetailedHTMLProps<import("react").AnchorHTMLAttributes<HTMLAnchorElement>, HTMLAnchorElement>, "key" | keyof import("react").AnchorHTMLAttributes<HTMLAnchorElement>> & {
|
|
173
|
-
ref?: ((instance: HTMLAnchorElement | null) => void) | import("react").RefObject<HTMLAnchorElement> | null | undefined;
|
|
174
|
-
}, "id" | "is" | "color" | "type" | "defaultValue" | "key" | "prefix" | "defaultChecked" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "hidden" | "lang" | "placeholder" | "slot" | "spellCheck" | "tabIndex" | "title" | "translate" | "radioGroup" | "role" | "about" | "datatype" | "inlist" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "children" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPress" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClick" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture" | "ref" | "href" | "download" | "hrefLang" | "media" | "ping" | "rel" | "target" | "referrerPolicy">) => JSX.Element) & import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").ExtendButtonBaseTypeMap<import("@material-ui/core").MenuItemTypeMap<{
|
|
175
|
-
button?: true | undefined;
|
|
176
|
-
}, "li">>>;
|
|
177
|
-
'@material-ui/core/RadioGroup': typeof import("@material-ui/core").RadioGroup;
|
|
178
|
-
'@material-ui/core/Radio': typeof import("@material-ui/core").Radio;
|
|
179
|
-
'@material-ui/core/Select': typeof import("@material-ui/core").Select;
|
|
180
|
-
'@material-ui/core/Snackbar': typeof import("@material-ui/core").Snackbar;
|
|
181
|
-
'@material-ui/core/SnackbarContent': typeof import("@material-ui/core").SnackbarContent;
|
|
182
|
-
'@material-ui/core/TextField': typeof import("@material-ui/core").TextField;
|
|
183
|
-
'@material-ui/core/Tooltip': typeof import("@material-ui/core").Tooltip;
|
|
184
|
-
'@material-ui/core/Typography': import("@material-ui/core/OverridableComponent").OverridableComponent<import("@material-ui/core").TypographyTypeMap<{}, "span">>;
|
|
185
|
-
'@material-ui/lab/ToggleButton': import("@material-ui/core").ExtendButtonBase<import("@material-ui/lab").ToggleButtonTypeMap<{}, "button">>;
|
|
186
|
-
'@material-ui/lab/ToggleButtonGroup': typeof import("@material-ui/lab").ToggleButtonGroup;
|
|
105
|
+
'@material-ui/lab/ToggleButton': import("react").LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>;
|
|
106
|
+
'@material-ui/lab/ToggleButtonGroup': import("react").LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>;
|
|
107
|
+
'@material-ui/lab/Autocomplete': import("react").LazyExoticComponent<typeof import("@mui/material").Autocomplete>;
|
|
108
|
+
'@material-ui/lab/Alert': import("react").LazyExoticComponent<typeof import("@mui/material").Alert>;
|
|
109
|
+
'@material-ui/lab': {
|
|
110
|
+
Alert: import("react").LazyExoticComponent<typeof import("@mui/material").Alert>;
|
|
111
|
+
Autocomplete: import("react").LazyExoticComponent<typeof import("@mui/material").Autocomplete>;
|
|
112
|
+
ToggleButton: import("react").LazyExoticComponent<import("@mui/material").ExtendButtonBase<import("@mui/material").ToggleButtonTypeMap<{}, "button">>>;
|
|
113
|
+
ToggleButtonGroup: import("react").LazyExoticComponent<typeof import("@mui/material").ToggleButtonGroup>;
|
|
114
|
+
};
|
|
187
115
|
'@jbrowse/core/Plugin': typeof Plugin;
|
|
188
116
|
'@jbrowse/core/pluggableElementTypes': typeof import("./pluggableElementTypes");
|
|
189
117
|
'@jbrowse/core/pluggableElementTypes/ViewType': typeof ViewType;
|
|
@@ -272,14 +200,58 @@ export default class PluginManager {
|
|
|
272
200
|
zoomIn(): void;
|
|
273
201
|
zoomTo(newBpPerPx: number, offset?: number): void;
|
|
274
202
|
scrollTo(offsetPx: number): number;
|
|
275
|
-
centerAt(
|
|
203
|
+
centerAt(coord: number, refName: string, regionNumber: number): void;
|
|
276
204
|
scroll(distance: number): number;
|
|
277
205
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
|
|
278
206
|
'@jbrowse/core/util/io': typeof import("./util/io");
|
|
279
207
|
'@jbrowse/core/util/mst-reflection': typeof import("./util/mst-reflection");
|
|
280
208
|
'@jbrowse/core/util/rxjs': typeof import("./util/rxjs");
|
|
281
|
-
'@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail':
|
|
209
|
+
'@jbrowse/core/BaseFeatureWidget/BaseFeatureDetail': {
|
|
210
|
+
Attributes: (props: any) => JSX.Element;
|
|
211
|
+
FeatureDetails: (props: any) => JSX.Element;
|
|
212
|
+
BaseCard: (props: any) => JSX.Element;
|
|
213
|
+
};
|
|
282
214
|
'@jbrowse/core/data_adapters/BaseAdapter': typeof import("./data_adapters/BaseAdapter");
|
|
215
|
+
mobx: typeof import("mobx");
|
|
216
|
+
'mobx-state-tree': typeof import("mobx-state-tree");
|
|
217
|
+
react: typeof import("react");
|
|
218
|
+
'react-dom': typeof import("react-dom");
|
|
219
|
+
'mobx-react': typeof import("mobx-react");
|
|
220
|
+
'@mui/x-data-grid': {
|
|
221
|
+
DataGrid: any;
|
|
222
|
+
useGridApiContext: typeof import("@mui/x-data-grid").useGridApiContext;
|
|
223
|
+
useGridApiRef: <Api extends import("@mui/x-data-grid").GridApiCommon = import("@mui/x-data-grid/models/api/gridApiCommunity").GridApiCommunity>() => import("react").MutableRefObject<Api>;
|
|
224
|
+
useGridRootProps: () => import("@mui/x-data-grid/models/props/DataGridProps").DataGridProcessedProps<any>;
|
|
225
|
+
};
|
|
226
|
+
'@mui/material/utils': typeof import("@mui/material/utils");
|
|
227
|
+
'@material-ui/core/utils': typeof import("@mui/material/utils");
|
|
228
|
+
'tss-react/mui': {
|
|
229
|
+
makeStyles: <Params = void, RuleNameSubsetReferencableInNestedSelectors extends string = never>(params?: {
|
|
230
|
+
name?: string | Record<string, unknown> | undefined;
|
|
231
|
+
uniqId?: string | undefined;
|
|
232
|
+
} | undefined) => <RuleName extends string>(cssObjectByRuleNameOrGetCssObjectByRuleName: Record<RuleName, import("tss-react/types").CSSObject> | ((theme: import("@mui/material").Theme, params: Params, classes: Record<RuleNameSubsetReferencableInNestedSelectors, string>) => Record<RuleNameSubsetReferencableInNestedSelectors | RuleName, import("tss-react/types").CSSObject>)) => (params: Params, styleOverrides?: {
|
|
233
|
+
props: {
|
|
234
|
+
classes?: Record<string, string> | undefined;
|
|
235
|
+
} & Record<string, unknown>;
|
|
236
|
+
ownerState?: Record<string, unknown> | undefined;
|
|
237
|
+
} | undefined) => {
|
|
238
|
+
classes: Record<RuleName, string>;
|
|
239
|
+
theme: import("@mui/material").Theme;
|
|
240
|
+
css: import("tss-react/types").Css;
|
|
241
|
+
cx: import("tss-react/types").Cx;
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
'@material-ui/core': {
|
|
245
|
+
useTheme: typeof import("@mui/material").useTheme;
|
|
246
|
+
alpha: typeof import("@mui/system").alpha;
|
|
247
|
+
makeStyles: (args: any) => () => Record<string, string>;
|
|
248
|
+
};
|
|
249
|
+
'@mui/material': {
|
|
250
|
+
[k: string]: (props: any) => JSX.Element;
|
|
251
|
+
};
|
|
252
|
+
'prop-types': typeof import("prop-types");
|
|
253
|
+
'@mui/material/styles': typeof import("@mui/material/styles");
|
|
254
|
+
'@material-ui/core/styles': typeof import("@mui/material/styles");
|
|
283
255
|
};
|
|
284
256
|
load: <FTYPE extends AnyFunction>(lib: FTYPE) => ReturnType<FTYPE>;
|
|
285
257
|
/**
|