@jbrowse/plugin-linear-genome-view 1.6.3 → 1.6.6
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/dist/BaseLinearDisplay/components/LinearBlocks.d.ts +0 -5
- package/dist/BaseLinearDisplay/models/baseLinearDisplayConfigSchema.d.ts +1 -1
- package/dist/LinearBareDisplay/configSchema.d.ts +1 -1
- package/dist/LinearBasicDisplay/configSchema.d.ts +1 -1
- package/dist/LinearGenomeView/components/ScaleBar.d.ts +2 -0
- package/dist/LinearGenomeView/components/TrackContainer.d.ts +3 -2
- package/dist/LinearGenomeView/index.d.ts +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/plugin-linear-genome-view.cjs.development.js +143 -250
- package/dist/plugin-linear-genome-view.cjs.development.js.map +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js +1 -1
- package/dist/plugin-linear-genome-view.cjs.production.min.js.map +1 -1
- package/dist/plugin-linear-genome-view.esm.js +145 -252
- package/dist/plugin-linear-genome-view.esm.js.map +1 -1
- package/package.json +2 -2
- package/src/BaseLinearDisplay/components/BaseLinearDisplay.tsx +2 -4
- package/src/BaseLinearDisplay/components/LinearBlocks.tsx +4 -8
- package/src/BaseLinearDisplay/models/BaseLinearDisplayModel.tsx +11 -3
- package/src/LinearBasicDisplay/model.ts +1 -1
- package/src/LinearGenomeView/components/HelpDialog.tsx +14 -1
- package/src/LinearGenomeView/components/LinearGenomeViewSvg.tsx +1 -13
- package/src/LinearGenomeView/components/OverviewScaleBar.tsx +7 -3
- package/src/LinearGenomeView/components/TrackContainer.tsx +24 -39
- package/src/LinearGenomeView/components/TrackLabel.tsx +5 -5
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +194 -191
- package/src/LinearGenomeView/index.test.ts +44 -42
- package/src/LinearGenomeView/index.tsx +176 -245
- package/src/LinearGenomeView/volvoxDisplayedRegions.json +16 -0
- package/dist/LinearGenomeView/components/ReturnToImportFormDialog.d.ts +0 -9
- package/src/LinearGenomeView/components/ReturnToImportFormDialog.tsx +0 -83
|
@@ -58,13 +58,13 @@ var ArrowBackIcon = _interopDefault(require('@material-ui/icons/ArrowBack'));
|
|
|
58
58
|
var IconButton = _interopDefault(require('@material-ui/core/IconButton'));
|
|
59
59
|
var Slider = _interopDefault(require('@material-ui/core/Slider'));
|
|
60
60
|
var ZoomOut = _interopDefault(require('@material-ui/icons/ZoomOut'));
|
|
61
|
-
var Paper = _interopDefault(require('@material-ui/core/Paper'));
|
|
62
61
|
var MoreVertIcon = _interopDefault(require('@material-ui/icons/MoreVert'));
|
|
63
62
|
var DragIcon = _interopDefault(require('@material-ui/icons/DragIndicator'));
|
|
64
63
|
var normalizeWheel = _interopDefault(require('normalize-wheel'));
|
|
65
64
|
var colorManipulator = require('@material-ui/core/styles/colorManipulator');
|
|
66
65
|
var Popover = _interopDefault(require('@material-ui/core/Popover'));
|
|
67
66
|
var Tooltip$1 = _interopDefault(require('@material-ui/core/Tooltip'));
|
|
67
|
+
var Paper = _interopDefault(require('@material-ui/core/Paper'));
|
|
68
68
|
var ErrorMessage = _interopDefault(require('@jbrowse/core/ui/ErrorMessage'));
|
|
69
69
|
var AssemblySelector = _interopDefault(require('@jbrowse/core/ui/AssemblySelector'));
|
|
70
70
|
var ArrowDown = _interopDefault(require('@material-ui/icons/KeyboardArrowDown'));
|
|
@@ -1313,8 +1313,7 @@ var RenderedBlocks = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
1313
1313
|
function LinearBlocks(_ref2) {
|
|
1314
1314
|
var model = _ref2.model;
|
|
1315
1315
|
var classes = useStyles$1();
|
|
1316
|
-
var blockDefinitions = model.blockDefinitions;
|
|
1317
|
-
|
|
1316
|
+
var blockDefinitions = model.blockDefinitions;
|
|
1318
1317
|
var viewModel = util.getContainingView(model);
|
|
1319
1318
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
1320
1319
|
"data-testid": "Blockset",
|
|
@@ -1326,10 +1325,6 @@ function LinearBlocks(_ref2) {
|
|
|
1326
1325
|
model: model
|
|
1327
1326
|
}));
|
|
1328
1327
|
}
|
|
1329
|
-
|
|
1330
|
-
LinearBlocks.propTypes = {
|
|
1331
|
-
model: mobxReact.PropTypes.observableObject.isRequired
|
|
1332
|
-
};
|
|
1333
1328
|
var LinearBlocks$1 = /*#__PURE__*/mobxReact.observer(LinearBlocks);
|
|
1334
1329
|
|
|
1335
1330
|
function round(value) {
|
|
@@ -1354,7 +1349,7 @@ var useStyles$2 = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
1354
1349
|
color: theme.palette.common.white,
|
|
1355
1350
|
fontFamily: theme.typography.fontFamily,
|
|
1356
1351
|
padding: '4px 8px',
|
|
1357
|
-
fontSize: theme.typography.pxToRem(
|
|
1352
|
+
fontSize: theme.typography.pxToRem(12),
|
|
1358
1353
|
lineHeight: "".concat(round(14 / 10), "em"),
|
|
1359
1354
|
maxWidth: 300,
|
|
1360
1355
|
wordWrap: 'break-word'
|
|
@@ -2332,9 +2327,10 @@ var BaseLinearDisplay$1 = /*#__PURE__*/mobxStateTree.types.compose('BaseLinearDi
|
|
|
2332
2327
|
case 0:
|
|
2333
2328
|
self.setError();
|
|
2334
2329
|
aborter = new AbortController();
|
|
2335
|
-
view = util.getContainingView(self);
|
|
2330
|
+
view = util.getContainingView(self); // extra check for contentBlocks.length
|
|
2331
|
+
// https://github.com/GMOD/jbrowse-components/issues/2694
|
|
2336
2332
|
|
|
2337
|
-
if (view.initialized) {
|
|
2333
|
+
if (!(!view.initialized || !view.staticBlocks.contentBlocks.length)) {
|
|
2338
2334
|
_context.next = 5;
|
|
2339
2335
|
break;
|
|
2340
2336
|
}
|
|
@@ -2385,7 +2381,7 @@ var BaseLinearDisplay$1 = /*#__PURE__*/mobxStateTree.types.compose('BaseLinearDi
|
|
|
2385
2381
|
afterAttach: function afterAttach() {
|
|
2386
2382
|
// this autorun performs stats estimation
|
|
2387
2383
|
//
|
|
2388
|
-
// the chain of events calls
|
|
2384
|
+
// the chain of events calls estimateRegionsStats against the data
|
|
2389
2385
|
// adapter which by default uses featureDensity, but can also respond
|
|
2390
2386
|
// with a byte size estimate and fetch size limit (data adapter can
|
|
2391
2387
|
// define what is too much data)
|
|
@@ -2398,9 +2394,10 @@ var BaseLinearDisplay$1 = /*#__PURE__*/mobxStateTree.types.compose('BaseLinearDi
|
|
|
2398
2394
|
case 0:
|
|
2399
2395
|
_context2.prev = 0;
|
|
2400
2396
|
aborter = new AbortController();
|
|
2401
|
-
view = util.getContainingView(self);
|
|
2397
|
+
view = util.getContainingView(self); // extra check for contentBlocks.length
|
|
2398
|
+
// https://github.com/GMOD/jbrowse-components/issues/2694
|
|
2402
2399
|
|
|
2403
|
-
if (view.initialized) {
|
|
2400
|
+
if (!(!view.initialized || !view.staticBlocks.contentBlocks.length)) {
|
|
2404
2401
|
_context2.next = 5;
|
|
2405
2402
|
break;
|
|
2406
2403
|
}
|
|
@@ -3249,7 +3246,8 @@ var Cytobands = /*#__PURE__*/mobxReact.observer(function (_ref2) {
|
|
|
3249
3246
|
var overview = _ref2.overview,
|
|
3250
3247
|
block = _ref2.block,
|
|
3251
3248
|
assembly = _ref2.assembly;
|
|
3252
|
-
var offsetPx = block.offsetPx
|
|
3249
|
+
var offsetPx = block.offsetPx,
|
|
3250
|
+
reversed = block.reversed;
|
|
3253
3251
|
var cytobands = assembly === null || assembly === void 0 ? void 0 : (_assembly$cytobands = assembly.cytobands) === null || _assembly$cytobands === void 0 ? void 0 : _assembly$cytobands.map(function (f) {
|
|
3254
3252
|
return {
|
|
3255
3253
|
refName: assembly.getCanonicalRefName(f.get('refName')),
|
|
@@ -3272,6 +3270,9 @@ var Cytobands = /*#__PURE__*/mobxReact.observer(function (_ref2) {
|
|
|
3272
3270
|
coord: end
|
|
3273
3271
|
}), type];
|
|
3274
3272
|
});
|
|
3273
|
+
var arr = cytobands || [];
|
|
3274
|
+
var lcap = reversed ? arr.length - 1 : 0;
|
|
3275
|
+
var rcap = reversed ? 0 : arr.length - 1;
|
|
3275
3276
|
var firstCent = true;
|
|
3276
3277
|
return cytobands ? /*#__PURE__*/React__default.createElement("g", {
|
|
3277
3278
|
transform: "translate(-".concat(offsetPx, ")")
|
|
@@ -3300,13 +3301,13 @@ var Cytobands = /*#__PURE__*/mobxReact.observer(function (_ref2) {
|
|
|
3300
3301
|
});
|
|
3301
3302
|
}
|
|
3302
3303
|
|
|
3303
|
-
if (
|
|
3304
|
+
if (lcap === index) {
|
|
3304
3305
|
return /*#__PURE__*/React__default.createElement("path", {
|
|
3305
3306
|
key: key,
|
|
3306
3307
|
d: leftRoundedRect(Math.min(start, end), 0, Math.abs(end - start), HEADER_OVERVIEW_HEIGHT, 8),
|
|
3307
3308
|
fill: colorMap[type]
|
|
3308
3309
|
});
|
|
3309
|
-
} else if (
|
|
3310
|
+
} else if (rcap === index) {
|
|
3310
3311
|
return /*#__PURE__*/React__default.createElement("path", {
|
|
3311
3312
|
key: key,
|
|
3312
3313
|
d: rightRoundedRect(Math.min(start, end), 0, Math.abs(end - start) - 2, HEADER_OVERVIEW_HEIGHT, 8),
|
|
@@ -3485,20 +3486,6 @@ function OverviewScaleBar(_ref7) {
|
|
|
3485
3486
|
|
|
3486
3487
|
var OverviewScaleBar$1 = /*#__PURE__*/mobxReact.observer(OverviewScaleBar);
|
|
3487
3488
|
|
|
3488
|
-
function getBpDisplayStr(totalBp) {
|
|
3489
|
-
var displayBp;
|
|
3490
|
-
|
|
3491
|
-
if (Math.floor(totalBp / 1000000) > 0) {
|
|
3492
|
-
displayBp = "".concat(parseFloat((totalBp / 1000000).toPrecision(3)), "Mbp");
|
|
3493
|
-
} else if (Math.floor(totalBp / 1000) > 0) {
|
|
3494
|
-
displayBp = "".concat(parseFloat((totalBp / 1000).toPrecision(3)), "Kbp");
|
|
3495
|
-
} else {
|
|
3496
|
-
displayBp = "".concat(Math.floor(totalBp), "bp");
|
|
3497
|
-
}
|
|
3498
|
-
|
|
3499
|
-
return displayBp;
|
|
3500
|
-
}
|
|
3501
|
-
|
|
3502
3489
|
function ScaleBar$1(_ref) {
|
|
3503
3490
|
var model = _ref.model,
|
|
3504
3491
|
fontSize = _ref.fontSize;
|
|
@@ -3506,7 +3493,7 @@ function ScaleBar$1(_ref) {
|
|
|
3506
3493
|
_model$dynamicBlocks = model.dynamicBlocks,
|
|
3507
3494
|
totalWidthPx = _model$dynamicBlocks.totalWidthPxWithoutBorders,
|
|
3508
3495
|
totalBp = _model$dynamicBlocks.totalBp;
|
|
3509
|
-
var displayBp = getBpDisplayStr(totalBp);
|
|
3496
|
+
var displayBp = util.getBpDisplayStr(totalBp);
|
|
3510
3497
|
var x0 = Math.max(-offsetPx, 0);
|
|
3511
3498
|
var x1 = x0 + totalWidthPx;
|
|
3512
3499
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement("line", {
|
|
@@ -4381,51 +4368,7 @@ function ExportSvgDlg(_ref) {
|
|
|
4381
4368
|
}, "Submit")));
|
|
4382
4369
|
}
|
|
4383
4370
|
|
|
4384
|
-
var useStyles$9 = /*#__PURE__*/styles.makeStyles(
|
|
4385
|
-
return {
|
|
4386
|
-
closeButton: {
|
|
4387
|
-
position: 'absolute',
|
|
4388
|
-
right: theme.spacing(1),
|
|
4389
|
-
top: theme.spacing(1),
|
|
4390
|
-
color: theme.palette.grey[500]
|
|
4391
|
-
}
|
|
4392
|
-
};
|
|
4393
|
-
});
|
|
4394
|
-
|
|
4395
|
-
function ReturnToImportFormDialog(_ref) {
|
|
4396
|
-
var model = _ref.model,
|
|
4397
|
-
handleClose = _ref.handleClose;
|
|
4398
|
-
var classes = useStyles$9();
|
|
4399
|
-
return /*#__PURE__*/React__default.createElement(core.Dialog, {
|
|
4400
|
-
maxWidth: "xl",
|
|
4401
|
-
open: true,
|
|
4402
|
-
onClose: handleClose
|
|
4403
|
-
}, /*#__PURE__*/React__default.createElement(core.DialogTitle, null, "Reference sequence", handleClose ? /*#__PURE__*/React__default.createElement(core.IconButton, {
|
|
4404
|
-
className: classes.closeButton,
|
|
4405
|
-
onClick: function onClick() {
|
|
4406
|
-
handleClose();
|
|
4407
|
-
}
|
|
4408
|
-
}, /*#__PURE__*/React__default.createElement(CloseIcon, null)) : null), /*#__PURE__*/React__default.createElement(core.Divider, null), /*#__PURE__*/React__default.createElement(core.DialogContent, null, /*#__PURE__*/React__default.createElement(core.Typography, null, "Are you sure you want to return to the import form? This will lose your current view")), /*#__PURE__*/React__default.createElement(core.DialogActions, null, /*#__PURE__*/React__default.createElement(core.Button, {
|
|
4409
|
-
onClick: function onClick() {
|
|
4410
|
-
model.clearView();
|
|
4411
|
-
handleClose();
|
|
4412
|
-
},
|
|
4413
|
-
variant: "contained",
|
|
4414
|
-
color: "primary",
|
|
4415
|
-
autoFocus: true
|
|
4416
|
-
}, "OK"), /*#__PURE__*/React__default.createElement(core.Button, {
|
|
4417
|
-
onClick: function onClick() {
|
|
4418
|
-
handleClose();
|
|
4419
|
-
},
|
|
4420
|
-
color: "secondary",
|
|
4421
|
-
variant: "contained",
|
|
4422
|
-
autoFocus: true
|
|
4423
|
-
}, "Cancel")));
|
|
4424
|
-
}
|
|
4425
|
-
|
|
4426
|
-
var ReturnToImportFormDlg = /*#__PURE__*/mobxReact.observer(ReturnToImportFormDialog);
|
|
4427
|
-
|
|
4428
|
-
var useStyles$a = /*#__PURE__*/styles.makeStyles({
|
|
4371
|
+
var useStyles$9 = /*#__PURE__*/styles.makeStyles({
|
|
4429
4372
|
container: {
|
|
4430
4373
|
display: 'flex',
|
|
4431
4374
|
flexDirection: 'row',
|
|
@@ -4438,7 +4381,7 @@ var useStyles$a = /*#__PURE__*/styles.makeStyles({
|
|
|
4438
4381
|
|
|
4439
4382
|
function ZoomControls(_ref) {
|
|
4440
4383
|
var model = _ref.model;
|
|
4441
|
-
var classes = useStyles$
|
|
4384
|
+
var classes = useStyles$9();
|
|
4442
4385
|
var maxBpPerPx = model.maxBpPerPx,
|
|
4443
4386
|
minBpPerPx = model.minBpPerPx,
|
|
4444
4387
|
bpPerPx = model.bpPerPx,
|
|
@@ -4485,7 +4428,7 @@ function ZoomControls(_ref) {
|
|
|
4485
4428
|
|
|
4486
4429
|
var ZoomControls$1 = /*#__PURE__*/mobxReact.observer(ZoomControls);
|
|
4487
4430
|
|
|
4488
|
-
var useStyles$
|
|
4431
|
+
var useStyles$a = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
4489
4432
|
return {
|
|
4490
4433
|
headerBar: {
|
|
4491
4434
|
height: HEADER_BAR_HEIGHT,
|
|
@@ -4520,7 +4463,7 @@ var useStyles$b = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
4520
4463
|
});
|
|
4521
4464
|
var HeaderButtons = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
4522
4465
|
var model = _ref.model;
|
|
4523
|
-
var classes = useStyles$
|
|
4466
|
+
var classes = useStyles$a();
|
|
4524
4467
|
return /*#__PURE__*/React__default.createElement(core.Button, {
|
|
4525
4468
|
onClick: model.activateTrackSelector,
|
|
4526
4469
|
className: classes.toggleButton,
|
|
@@ -4534,7 +4477,7 @@ var HeaderButtons = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
4534
4477
|
|
|
4535
4478
|
function PanControls(_ref2) {
|
|
4536
4479
|
var model = _ref2.model;
|
|
4537
|
-
var classes = useStyles$
|
|
4480
|
+
var classes = useStyles$a();
|
|
4538
4481
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(core.Button, {
|
|
4539
4482
|
variant: "outlined",
|
|
4540
4483
|
className: classes.panButton,
|
|
@@ -4552,7 +4495,7 @@ function PanControls(_ref2) {
|
|
|
4552
4495
|
|
|
4553
4496
|
var RegionWidth = /*#__PURE__*/mobxReact.observer(function (_ref3) {
|
|
4554
4497
|
var model = _ref3.model;
|
|
4555
|
-
var classes = useStyles$
|
|
4498
|
+
var classes = useStyles$a();
|
|
4556
4499
|
var coarseTotalBp = model.coarseTotalBp;
|
|
4557
4500
|
return /*#__PURE__*/React__default.createElement(core.Typography, {
|
|
4558
4501
|
variant: "body2",
|
|
@@ -4563,7 +4506,7 @@ var RegionWidth = /*#__PURE__*/mobxReact.observer(function (_ref3) {
|
|
|
4563
4506
|
|
|
4564
4507
|
var Controls = function Controls(_ref4) {
|
|
4565
4508
|
var model = _ref4.model;
|
|
4566
|
-
var classes = useStyles$
|
|
4509
|
+
var classes = useStyles$a();
|
|
4567
4510
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
4568
4511
|
className: classes.headerBar
|
|
4569
4512
|
}, /*#__PURE__*/React__default.createElement(HeaderButtons, {
|
|
@@ -4597,7 +4540,7 @@ var LinearGenomeViewHeader = /*#__PURE__*/mobxReact.observer(function (_ref5) {
|
|
|
4597
4540
|
}));
|
|
4598
4541
|
});
|
|
4599
4542
|
|
|
4600
|
-
var useStyles$
|
|
4543
|
+
var useStyles$b = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
4601
4544
|
return {
|
|
4602
4545
|
root: {
|
|
4603
4546
|
background: core.alpha(theme.palette.background.paper, 0.8),
|
|
@@ -4631,7 +4574,7 @@ var useStyles$c = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
4631
4574
|
var TrackLabel = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
4632
4575
|
var _session$getTrackActi;
|
|
4633
4576
|
|
|
4634
|
-
var classes = useStyles$
|
|
4577
|
+
var classes = useStyles$b();
|
|
4635
4578
|
|
|
4636
4579
|
var _React$useState = React__default.useState(null),
|
|
4637
4580
|
_React$useState2 = _slicedToArray(_React$useState, 2),
|
|
@@ -4682,7 +4625,9 @@ var TrackLabel = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
4682
4625
|
handleClose();
|
|
4683
4626
|
}
|
|
4684
4627
|
|
|
4685
|
-
var items = track.trackMenuItems()
|
|
4628
|
+
var items = [].concat(_toConsumableArray((_session$getTrackActi = session.getTrackActionMenuItems) === null || _session$getTrackActi === void 0 ? void 0 : _session$getTrackActi.call(session, trackConf)), _toConsumableArray(track.trackMenuItems())).sort(function (a, b) {
|
|
4629
|
+
return (b.priority || 0) - (a.priority || 0);
|
|
4630
|
+
});
|
|
4686
4631
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, /*#__PURE__*/React__default.createElement(core.Paper, {
|
|
4687
4632
|
ref: ref,
|
|
4688
4633
|
className: clsx(className, classes.root)
|
|
@@ -4718,20 +4663,16 @@ var TrackLabel = /*#__PURE__*/React__default.forwardRef(function (props, ref) {
|
|
|
4718
4663
|
onMenuItemClick: handleMenuItemClick,
|
|
4719
4664
|
open: Boolean(anchorEl),
|
|
4720
4665
|
onClose: handleClose,
|
|
4721
|
-
menuItems:
|
|
4722
|
-
return (b.priority || 0) - (a.priority || 0);
|
|
4723
|
-
})
|
|
4666
|
+
menuItems: items
|
|
4724
4667
|
}));
|
|
4725
4668
|
});
|
|
4726
4669
|
var TrackLabel$1 = /*#__PURE__*/mobxReact.observer(TrackLabel);
|
|
4727
4670
|
|
|
4728
|
-
var useStyles$
|
|
4671
|
+
var useStyles$c = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
4729
4672
|
return {
|
|
4730
4673
|
root: {},
|
|
4731
4674
|
resizeHandle: {
|
|
4732
4675
|
height: RESIZE_HANDLE_HEIGHT,
|
|
4733
|
-
boxSizing: 'border-box',
|
|
4734
|
-
position: 'relative',
|
|
4735
4676
|
zIndex: 2
|
|
4736
4677
|
},
|
|
4737
4678
|
overlay: {
|
|
@@ -4743,13 +4684,6 @@ var useStyles$d = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
4743
4684
|
zIndex: 3,
|
|
4744
4685
|
borderRadius: theme.shape.borderRadius
|
|
4745
4686
|
},
|
|
4746
|
-
renderingComponentContainer: {
|
|
4747
|
-
position: 'absolute',
|
|
4748
|
-
// -1 offset because of the 1px border of the Paper
|
|
4749
|
-
left: -1,
|
|
4750
|
-
height: '100%',
|
|
4751
|
-
width: '100%'
|
|
4752
|
-
},
|
|
4753
4687
|
trackLabel: {
|
|
4754
4688
|
zIndex: 3,
|
|
4755
4689
|
margin: theme.spacing(1)
|
|
@@ -4767,22 +4701,22 @@ var useStyles$d = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
4767
4701
|
whiteSpace: 'nowrap',
|
|
4768
4702
|
position: 'relative',
|
|
4769
4703
|
background: 'none',
|
|
4770
|
-
zIndex: 2
|
|
4771
|
-
boxSizing: 'content-box'
|
|
4704
|
+
zIndex: 2
|
|
4772
4705
|
}
|
|
4773
4706
|
};
|
|
4774
4707
|
});
|
|
4775
4708
|
|
|
4776
|
-
function TrackContainer(
|
|
4777
|
-
var
|
|
4778
|
-
|
|
4779
|
-
|
|
4709
|
+
function TrackContainer(_ref) {
|
|
4710
|
+
var model = _ref.model,
|
|
4711
|
+
track = _ref.track;
|
|
4712
|
+
var classes = useStyles$c();
|
|
4780
4713
|
var display = track.displays[0];
|
|
4781
|
-
var
|
|
4714
|
+
var id = model.id,
|
|
4715
|
+
trackLabels = model.trackLabels,
|
|
4716
|
+
horizontalScroll = model.horizontalScroll,
|
|
4782
4717
|
draggingTrackId = model.draggingTrackId,
|
|
4783
4718
|
moveTrack = model.moveTrack;
|
|
4784
4719
|
var height = display.height;
|
|
4785
|
-
var view = util.getContainingView(display);
|
|
4786
4720
|
var trackId = configuration.getConf(track, 'trackId');
|
|
4787
4721
|
var ref = React.useRef(null);
|
|
4788
4722
|
React.useEffect(function () {
|
|
@@ -4807,10 +4741,7 @@ function TrackContainer(props) {
|
|
|
4807
4741
|
var dimmed = draggingTrackId !== undefined && draggingTrackId !== display.id;
|
|
4808
4742
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
4809
4743
|
className: classes.root
|
|
4810
|
-
},
|
|
4811
|
-
track: track,
|
|
4812
|
-
className: clsx(classes.trackLabel, view.trackLabels === 'overlapping' ? classes.trackLabelOverlap : classes.trackLabelInline)
|
|
4813
|
-
}) : null, /*#__PURE__*/React__default.createElement(Paper, {
|
|
4744
|
+
}, /*#__PURE__*/React__default.createElement(core.Paper, {
|
|
4814
4745
|
variant: "outlined",
|
|
4815
4746
|
className: classes.trackRenderingContainer,
|
|
4816
4747
|
style: {
|
|
@@ -4821,11 +4752,13 @@ function TrackContainer(props) {
|
|
|
4821
4752
|
display.setScrollTop(target.scrollTop);
|
|
4822
4753
|
},
|
|
4823
4754
|
onDragEnter: debouncedOnDragEnter,
|
|
4824
|
-
"data-testid": "trackRenderingContainer-".concat(
|
|
4755
|
+
"data-testid": "trackRenderingContainer-".concat(id, "-").concat(trackId),
|
|
4825
4756
|
role: "presentation"
|
|
4826
|
-
}, /*#__PURE__*/React__default.createElement(
|
|
4757
|
+
}, trackLabels !== 'hidden' ? /*#__PURE__*/React__default.createElement(TrackLabel$1, {
|
|
4758
|
+
track: track,
|
|
4759
|
+
className: clsx(classes.trackLabel, trackLabels === 'overlapping' ? classes.trackLabelOverlap : classes.trackLabelInline)
|
|
4760
|
+
}) : null, /*#__PURE__*/React__default.createElement("div", {
|
|
4827
4761
|
ref: ref,
|
|
4828
|
-
className: classes.renderingComponentContainer,
|
|
4829
4762
|
style: {
|
|
4830
4763
|
transform: "scaleX(".concat(model.scaleFactor, ")")
|
|
4831
4764
|
}
|
|
@@ -4839,7 +4772,7 @@ function TrackContainer(props) {
|
|
|
4839
4772
|
left: 0,
|
|
4840
4773
|
top: display.height - 20
|
|
4841
4774
|
}
|
|
4842
|
-
},
|
|
4775
|
+
}, /*#__PURE__*/React__default.createElement(DisplayBlurb, {
|
|
4843
4776
|
model: display
|
|
4844
4777
|
})) : null), /*#__PURE__*/React__default.createElement("div", {
|
|
4845
4778
|
className: classes.overlay,
|
|
@@ -4856,7 +4789,7 @@ function TrackContainer(props) {
|
|
|
4856
4789
|
|
|
4857
4790
|
var TrackContainer$1 = /*#__PURE__*/mobxReact.observer(TrackContainer);
|
|
4858
4791
|
|
|
4859
|
-
var useStyles$
|
|
4792
|
+
var useStyles$d = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
4860
4793
|
var background = theme.palette.tertiary ? colorManipulator.alpha(theme.palette.tertiary.main, 0.7) : colorManipulator.alpha(theme.palette.primary.main, 0.7);
|
|
4861
4794
|
return {
|
|
4862
4795
|
rubberBand: {
|
|
@@ -4895,7 +4828,7 @@ var useStyles$e = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
4895
4828
|
var VerticalGuide = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
4896
4829
|
var model = _ref.model,
|
|
4897
4830
|
coordX = _ref.coordX;
|
|
4898
|
-
var classes = useStyles$
|
|
4831
|
+
var classes = useStyles$d();
|
|
4899
4832
|
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4900
4833
|
open: true,
|
|
4901
4834
|
placement: "top",
|
|
@@ -4939,7 +4872,7 @@ function RubberBand(_ref2) {
|
|
|
4939
4872
|
|
|
4940
4873
|
var controlsRef = React.useRef(null);
|
|
4941
4874
|
var rubberBandRef = React.useRef(null);
|
|
4942
|
-
var classes = useStyles$
|
|
4875
|
+
var classes = useStyles$d();
|
|
4943
4876
|
var mouseDragging = startX !== undefined && anchorPosition === undefined;
|
|
4944
4877
|
var setOffsets = model.setOffsets,
|
|
4945
4878
|
pxToBp = model.pxToBp;
|
|
@@ -5142,7 +5075,7 @@ RubberBand.defaultProps = {
|
|
|
5142
5075
|
var RubberBand$1 = /*#__PURE__*/mobxReact.observer(RubberBand);
|
|
5143
5076
|
|
|
5144
5077
|
var _excluded$1 = ["model", "style", "className"];
|
|
5145
|
-
var useStyles$
|
|
5078
|
+
var useStyles$e = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
5146
5079
|
return {
|
|
5147
5080
|
scaleBarContainer: {
|
|
5148
5081
|
overflow: 'hidden',
|
|
@@ -5186,7 +5119,7 @@ var useStyles$f = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
5186
5119
|
});
|
|
5187
5120
|
var RenderedRefNameLabels = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
5188
5121
|
var model = _ref.model;
|
|
5189
|
-
var classes = useStyles$
|
|
5122
|
+
var classes = useStyles$e(); // find the block that needs pinning to the left side for context
|
|
5190
5123
|
|
|
5191
5124
|
var lastLeftBlock = 0;
|
|
5192
5125
|
model.staticBlocks.forEach(function (block, i) {
|
|
@@ -5208,7 +5141,7 @@ var RenderedRefNameLabels = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
5208
5141
|
});
|
|
5209
5142
|
var RenderedScaleBarLabels = /*#__PURE__*/mobxReact.observer(function (_ref2) {
|
|
5210
5143
|
var model = _ref2.model;
|
|
5211
|
-
var classes = useStyles$
|
|
5144
|
+
var classes = useStyles$e();
|
|
5212
5145
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, model.staticBlocks.map(function (block, index) {
|
|
5213
5146
|
if (block instanceof blockTypes.ContentBlock) {
|
|
5214
5147
|
var ticks = makeTicks(block.start, block.end, model.bpPerPx, true, false);
|
|
@@ -5261,7 +5194,7 @@ var ScaleBar$2 = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
5261
5194
|
className = _ref3.className,
|
|
5262
5195
|
other = _objectWithoutProperties(_ref3, _excluded$1);
|
|
5263
5196
|
|
|
5264
|
-
var classes = useStyles$
|
|
5197
|
+
var classes = useStyles$e();
|
|
5265
5198
|
var offsetLeft = model.staticBlocks.offsetPx - model.offsetPx;
|
|
5266
5199
|
return /*#__PURE__*/React__default.createElement(Paper, Object.assign({
|
|
5267
5200
|
"data-resizer": "true" // used to avoid click-and-drag scrolls on trackscontainer
|
|
@@ -5289,7 +5222,7 @@ var ScaleBar$2 = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
5289
5222
|
});
|
|
5290
5223
|
var ScaleBar$3 = /*#__PURE__*/mobxReact.observer(ScaleBar$2);
|
|
5291
5224
|
|
|
5292
|
-
var useStyles$
|
|
5225
|
+
var useStyles$f = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
5293
5226
|
return {
|
|
5294
5227
|
verticalGuidesZoomContainer: {
|
|
5295
5228
|
position: 'absolute',
|
|
@@ -5320,7 +5253,7 @@ var useStyles$g = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
5320
5253
|
});
|
|
5321
5254
|
var RenderedVerticalGuides = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
5322
5255
|
var model = _ref.model;
|
|
5323
|
-
var classes = useStyles$
|
|
5256
|
+
var classes = useStyles$f();
|
|
5324
5257
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, model.staticBlocks.map(function (block, index) {
|
|
5325
5258
|
if (block instanceof blockTypes.ContentBlock) {
|
|
5326
5259
|
var ticks = makeTicks(block.start, block.end, model.bpPerPx);
|
|
@@ -5360,7 +5293,7 @@ var RenderedVerticalGuides = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
5360
5293
|
|
|
5361
5294
|
function VerticalGuides(_ref2) {
|
|
5362
5295
|
var model = _ref2.model;
|
|
5363
|
-
var classes = useStyles$
|
|
5296
|
+
var classes = useStyles$f(); // find the block that needs pinning to the left side for context
|
|
5364
5297
|
|
|
5365
5298
|
var offsetLeft = model.staticBlocks.offsetPx - model.offsetPx;
|
|
5366
5299
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -5381,7 +5314,7 @@ function VerticalGuides(_ref2) {
|
|
|
5381
5314
|
|
|
5382
5315
|
var VerticalGuides$1 = /*#__PURE__*/mobxReact.observer(VerticalGuides);
|
|
5383
5316
|
|
|
5384
|
-
var useStyles$
|
|
5317
|
+
var useStyles$g = /*#__PURE__*/styles.makeStyles(function () {
|
|
5385
5318
|
return {
|
|
5386
5319
|
centerLineContainer: {
|
|
5387
5320
|
background: 'transparent',
|
|
@@ -5410,7 +5343,7 @@ function CenterLine(_ref) {
|
|
|
5410
5343
|
tracks = model.tracks,
|
|
5411
5344
|
width = model.width;
|
|
5412
5345
|
var ref = React.useRef(null);
|
|
5413
|
-
var classes = useStyles$
|
|
5346
|
+
var classes = useStyles$g();
|
|
5414
5347
|
var startingPosition = width / 2;
|
|
5415
5348
|
return tracks.length ? /*#__PURE__*/React__default.createElement("div", {
|
|
5416
5349
|
"data-testid": "centerline_container",
|
|
@@ -5437,7 +5370,7 @@ CenterLine.propTypes = {
|
|
|
5437
5370
|
};
|
|
5438
5371
|
var CenterLine$1 = /*#__PURE__*/mobxReact.observer(CenterLine);
|
|
5439
5372
|
|
|
5440
|
-
var useStyles$
|
|
5373
|
+
var useStyles$h = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
5441
5374
|
return {
|
|
5442
5375
|
tracksContainer: {
|
|
5443
5376
|
position: 'relative',
|
|
@@ -5454,7 +5387,7 @@ var useStyles$i = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
5454
5387
|
function TracksContainer(_ref) {
|
|
5455
5388
|
var children = _ref.children,
|
|
5456
5389
|
model = _ref.model;
|
|
5457
|
-
var classes = useStyles$
|
|
5390
|
+
var classes = useStyles$h(); // refs are to store these variables to avoid repeated rerenders associated
|
|
5458
5391
|
// with useState/setState
|
|
5459
5392
|
|
|
5460
5393
|
var delta = React.useRef(0);
|
|
@@ -5620,7 +5553,7 @@ var TracksContainer$1 = /*#__PURE__*/mobxReact.observer(TracksContainer);
|
|
|
5620
5553
|
var SearchResultsDialog = /*#__PURE__*/React.lazy(function () {
|
|
5621
5554
|
return Promise.resolve().then(function () { return SearchResultsDialog$2; });
|
|
5622
5555
|
});
|
|
5623
|
-
var useStyles$
|
|
5556
|
+
var useStyles$i = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
5624
5557
|
return {
|
|
5625
5558
|
importFormContainer: {
|
|
5626
5559
|
padding: theme.spacing(2)
|
|
@@ -5634,7 +5567,7 @@ var ImportForm = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
5634
5567
|
var _regions$;
|
|
5635
5568
|
|
|
5636
5569
|
var model = _ref.model;
|
|
5637
|
-
var classes = useStyles$
|
|
5570
|
+
var classes = useStyles$i();
|
|
5638
5571
|
var session = util.getSession(model);
|
|
5639
5572
|
var assemblyNames = session.assemblyNames,
|
|
5640
5573
|
assemblyManager = session.assemblyManager,
|
|
@@ -5934,7 +5867,7 @@ var MiniControls = /*#__PURE__*/mobxReact.observer(function (props) {
|
|
|
5934
5867
|
}));
|
|
5935
5868
|
});
|
|
5936
5869
|
|
|
5937
|
-
var useStyles$
|
|
5870
|
+
var useStyles$j = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
5938
5871
|
return {
|
|
5939
5872
|
loadingMessage: {
|
|
5940
5873
|
padding: theme.spacing(5)
|
|
@@ -6030,7 +5963,7 @@ function _fetchSequence() {
|
|
|
6030
5963
|
function SequenceDialog(_ref) {
|
|
6031
5964
|
var model = _ref.model,
|
|
6032
5965
|
handleClose = _ref.handleClose;
|
|
6033
|
-
var classes = useStyles$
|
|
5966
|
+
var classes = useStyles$j();
|
|
6034
5967
|
var session = util.getSession(model);
|
|
6035
5968
|
|
|
6036
5969
|
var _useState = React.useState(),
|
|
@@ -6195,7 +6128,7 @@ function SequenceDialog(_ref) {
|
|
|
6195
6128
|
|
|
6196
6129
|
var SequenceDialog$1 = /*#__PURE__*/mobxReact.observer(SequenceDialog);
|
|
6197
6130
|
|
|
6198
|
-
var useStyles$
|
|
6131
|
+
var useStyles$k = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
6199
6132
|
return {
|
|
6200
6133
|
dialogContent: {
|
|
6201
6134
|
width: '80em'
|
|
@@ -6214,7 +6147,7 @@ function SearchResultsDialog$1(_ref) {
|
|
|
6214
6147
|
var model = _ref.model,
|
|
6215
6148
|
optAssemblyName = _ref.optAssemblyName,
|
|
6216
6149
|
handleClose = _ref.handleClose;
|
|
6217
|
-
var classes = useStyles$
|
|
6150
|
+
var classes = useStyles$k();
|
|
6218
6151
|
var session = util.getSession(model);
|
|
6219
6152
|
|
|
6220
6153
|
var _getEnv = mobxStateTree.getEnv(session),
|
|
@@ -6335,11 +6268,11 @@ function SearchResultsDialog$1(_ref) {
|
|
|
6335
6268
|
|
|
6336
6269
|
var SearchResultsDialog$2 = {
|
|
6337
6270
|
__proto__: null,
|
|
6338
|
-
useStyles: useStyles$
|
|
6271
|
+
useStyles: useStyles$k,
|
|
6339
6272
|
'default': SearchResultsDialog$1
|
|
6340
6273
|
};
|
|
6341
6274
|
|
|
6342
|
-
var useStyles$
|
|
6275
|
+
var useStyles$l = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
6343
6276
|
return {
|
|
6344
6277
|
note: {
|
|
6345
6278
|
textAlign: 'center',
|
|
@@ -6375,7 +6308,7 @@ var LinearGenomeView = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
6375
6308
|
hideHeader = model.hideHeader,
|
|
6376
6309
|
initialized = model.initialized,
|
|
6377
6310
|
hasDisplayedRegions = model.hasDisplayedRegions;
|
|
6378
|
-
var classes = useStyles$
|
|
6311
|
+
var classes = useStyles$l();
|
|
6379
6312
|
|
|
6380
6313
|
if (!initialized && !error) {
|
|
6381
6314
|
return /*#__PURE__*/React__default.createElement(core.Typography, {
|
|
@@ -6456,7 +6389,7 @@ function calculateVisibleLocStrings(contentBlocks) {
|
|
|
6456
6389
|
assemblyName: isSingleAssemblyName ? undefined : block.assemblyName
|
|
6457
6390
|
}));
|
|
6458
6391
|
});
|
|
6459
|
-
return locs.join('
|
|
6392
|
+
return locs.join(' ');
|
|
6460
6393
|
}
|
|
6461
6394
|
|
|
6462
6395
|
var HEADER_BAR_HEIGHT = 48;
|
|
@@ -6466,6 +6399,11 @@ var RESIZE_HANDLE_HEIGHT = 3;
|
|
|
6466
6399
|
var INTER_REGION_PADDING_WIDTH = 2;
|
|
6467
6400
|
var WIDGET_HEIGHT = 32;
|
|
6468
6401
|
var SPACING = 7;
|
|
6402
|
+
|
|
6403
|
+
function localStorageGetItem(item) {
|
|
6404
|
+
return typeof localStorage !== 'undefined' ? localStorage.getItem(item) : undefined;
|
|
6405
|
+
}
|
|
6406
|
+
|
|
6469
6407
|
function stateModelFactory$1(pluginManager) {
|
|
6470
6408
|
return mobxStateTree.types.compose(models.BaseViewModel, mobxStateTree.types.model('LinearGenomeView', {
|
|
6471
6409
|
id: mst.ElementId,
|
|
@@ -6480,15 +6418,15 @@ function stateModelFactory$1(pluginManager) {
|
|
|
6480
6418
|
hideHeaderOverview: false,
|
|
6481
6419
|
trackSelectorType: mobxStateTree.types.optional(mobxStateTree.types.enumeration(['hierarchical']), 'hierarchical'),
|
|
6482
6420
|
trackLabels: mobxStateTree.types.optional(mobxStateTree.types.string, function () {
|
|
6483
|
-
return
|
|
6421
|
+
return localStorageGetItem('lgv-trackLabels') || 'overlapping';
|
|
6484
6422
|
}),
|
|
6485
6423
|
showCenterLine: mobxStateTree.types.optional(mobxStateTree.types["boolean"], function () {
|
|
6486
|
-
var setting =
|
|
6487
|
-
return setting !== undefined ?
|
|
6424
|
+
var setting = localStorageGetItem('lgv-showCenterLine');
|
|
6425
|
+
return setting !== undefined && setting !== null ? !!+setting : false;
|
|
6488
6426
|
}),
|
|
6489
6427
|
showCytobandsSetting: mobxStateTree.types.optional(mobxStateTree.types["boolean"], function () {
|
|
6490
|
-
var setting =
|
|
6491
|
-
return setting !== undefined ?
|
|
6428
|
+
var setting = localStorageGetItem('lgv-showCytobands');
|
|
6429
|
+
return setting !== undefined && setting !== null ? !!+setting : true;
|
|
6492
6430
|
})
|
|
6493
6431
|
}))["volatile"](function () {
|
|
6494
6432
|
return {
|
|
@@ -7015,100 +6953,73 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7015
6953
|
throw new Error("invalid track selector type ".concat(self.trackSelectorType));
|
|
7016
6954
|
},
|
|
7017
6955
|
navToLocString: function navToLocString(locString, optAssemblyName) {
|
|
6956
|
+
var assemblyNames = self.assemblyNames;
|
|
6957
|
+
|
|
7018
6958
|
var _getSession3 = util.getSession(self),
|
|
7019
6959
|
assemblyManager = _getSession3.assemblyManager;
|
|
7020
6960
|
|
|
7021
6961
|
var isValidRefName = assemblyManager.isValidRefName;
|
|
7022
|
-
var
|
|
7023
|
-
|
|
7024
|
-
|
|
7025
|
-
|
|
7026
|
-
|
|
6962
|
+
var assemblyName = optAssemblyName || assemblyNames[0];
|
|
6963
|
+
var parsedLocStrings = locString.split(' ').filter(function (f) {
|
|
6964
|
+
return !!f.trim();
|
|
6965
|
+
}).map(function (l) {
|
|
6966
|
+
return util.parseLocString(l, function (ref) {
|
|
6967
|
+
return isValidRefName(ref, assemblyName);
|
|
7027
6968
|
});
|
|
7028
|
-
this.navToMultiple(locations);
|
|
7029
|
-
return;
|
|
7030
|
-
}
|
|
7031
|
-
|
|
7032
|
-
var assemblyName = optAssemblyName;
|
|
7033
|
-
var defaultRefName = '';
|
|
7034
|
-
|
|
7035
|
-
if (self.displayedRegions.length !== 0) {
|
|
7036
|
-
// defaults
|
|
7037
|
-
assemblyName = self.displayedRegions[0].assemblyName;
|
|
7038
|
-
defaultRefName = self.displayedRegions[0].refName;
|
|
7039
|
-
}
|
|
7040
|
-
|
|
7041
|
-
var assembly = assemblyName && assemblyManager.get(assemblyName);
|
|
7042
|
-
|
|
7043
|
-
if (!assembly) {
|
|
7044
|
-
throw new Error("Could not find assembly ".concat(assemblyName));
|
|
7045
|
-
}
|
|
7046
|
-
|
|
7047
|
-
var _assembly = assembly,
|
|
7048
|
-
regions = _assembly.regions;
|
|
7049
|
-
|
|
7050
|
-
if (!regions) {
|
|
7051
|
-
throw new Error("Regions for assembly ".concat(assemblyName, " not yet loaded"));
|
|
7052
|
-
}
|
|
7053
|
-
|
|
7054
|
-
if (locStrings.length > 1) {
|
|
7055
|
-
throw new Error('Navigating to multiple locations is not allowed when viewing a whole chromosome');
|
|
7056
|
-
}
|
|
7057
|
-
|
|
7058
|
-
var parsedLocString = util.parseLocString(locStrings[0], function (refName) {
|
|
7059
|
-
return isValidRefName(refName, assemblyName);
|
|
7060
6969
|
});
|
|
7061
|
-
var
|
|
6970
|
+
var locations = parsedLocStrings.map(function (region) {
|
|
6971
|
+
var asmName = region.assemblyName || assemblyName;
|
|
6972
|
+
var asm = assemblyManager.get(asmName);
|
|
6973
|
+
var refName = region.refName;
|
|
7062
6974
|
|
|
7063
|
-
|
|
7064
|
-
|
|
7065
|
-
|
|
7066
|
-
if (!newAssembly) {
|
|
7067
|
-
throw new Error("Could not find assembly ".concat(parsedLocString.assemblyName));
|
|
6975
|
+
if (!asm) {
|
|
6976
|
+
throw new Error("assembly ".concat(asmName, " not found"));
|
|
7068
6977
|
}
|
|
7069
6978
|
|
|
7070
|
-
|
|
7071
|
-
changedAssembly = true;
|
|
7072
|
-
var newRegions = newAssembly.regions;
|
|
6979
|
+
var regions = asm.regions;
|
|
7073
6980
|
|
|
7074
|
-
if (!
|
|
7075
|
-
throw new Error("
|
|
6981
|
+
if (!regions) {
|
|
6982
|
+
throw new Error("regions not loaded yet for ".concat(asmName));
|
|
7076
6983
|
}
|
|
7077
6984
|
|
|
7078
|
-
|
|
7079
|
-
}
|
|
7080
|
-
|
|
7081
|
-
var canonicalRefName = assembly.getCanonicalRefName(parsedLocString.refName);
|
|
6985
|
+
var canonicalRefName = asm.getCanonicalRefName(region.refName);
|
|
7082
6986
|
|
|
7083
|
-
|
|
7084
|
-
|
|
7085
|
-
|
|
6987
|
+
if (!canonicalRefName) {
|
|
6988
|
+
throw new Error("Could not find refName ".concat(refName, " in ").concat(asm.name));
|
|
6989
|
+
}
|
|
7086
6990
|
|
|
7087
|
-
|
|
7088
|
-
var newDisplayedRegion = regions.find(function (region) {
|
|
6991
|
+
var parentRegion = regions.find(function (region) {
|
|
7089
6992
|
return region.refName === canonicalRefName;
|
|
7090
6993
|
});
|
|
7091
6994
|
|
|
7092
|
-
if (
|
|
7093
|
-
|
|
7094
|
-
} else {
|
|
7095
|
-
throw new Error("Could not find refName ".concat(parsedLocString.refName, " in ").concat(assembly.name));
|
|
6995
|
+
if (!parentRegion) {
|
|
6996
|
+
throw new Error("Could not find refName ".concat(refName, " in ").concat(asmName));
|
|
7096
6997
|
}
|
|
7097
|
-
}
|
|
7098
6998
|
|
|
7099
|
-
|
|
7100
|
-
|
|
6999
|
+
return _objectSpread2(_objectSpread2({}, region), {}, {
|
|
7000
|
+
assemblyName: asmName,
|
|
7001
|
+
parentRegion: parentRegion
|
|
7002
|
+
});
|
|
7101
7003
|
});
|
|
7102
7004
|
|
|
7103
|
-
if (
|
|
7104
|
-
var
|
|
7105
|
-
|
|
7106
|
-
|
|
7107
|
-
|
|
7108
|
-
|
|
7109
|
-
|
|
7110
|
-
|
|
7005
|
+
if (locations.length === 1) {
|
|
7006
|
+
var loc = locations[0];
|
|
7007
|
+
this.setDisplayedRegions([_objectSpread2({
|
|
7008
|
+
reversed: loc.reversed
|
|
7009
|
+
}, loc.parentRegion)]);
|
|
7010
|
+
var start = loc.start,
|
|
7011
|
+
end = loc.end,
|
|
7012
|
+
parentRegion = loc.parentRegion;
|
|
7013
|
+
this.navTo(_objectSpread2(_objectSpread2({}, loc), {}, {
|
|
7014
|
+
start: util.clamp(start !== null && start !== void 0 ? start : 0, 0, parentRegion.end),
|
|
7015
|
+
end: util.clamp(end !== null && end !== void 0 ? end : parentRegion.end, 0, parentRegion.end)
|
|
7016
|
+
}));
|
|
7017
|
+
} else {
|
|
7018
|
+
this.setDisplayedRegions( // @ts-ignore
|
|
7019
|
+
locations.map(function (r) {
|
|
7020
|
+
return r.start === undefined ? r.parentRegion : r;
|
|
7111
7021
|
}));
|
|
7022
|
+
this.showAllRegions();
|
|
7112
7023
|
}
|
|
7113
7024
|
},
|
|
7114
7025
|
|
|
@@ -7230,26 +7141,6 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7230
7141
|
if (location.refName !== region.refName) {
|
|
7231
7142
|
throw new Error("Entered location ".concat(util.assembleLocString(location), " does not match with displayed regions"));
|
|
7232
7143
|
}
|
|
7233
|
-
|
|
7234
|
-
if (locationIndex > 0) {
|
|
7235
|
-
// does it reach the left side?
|
|
7236
|
-
var matchesLeft = region.reversed ? locationEnd === region.end : locationStart === region.start;
|
|
7237
|
-
|
|
7238
|
-
if (!matchesLeft) {
|
|
7239
|
-
throw new Error("".concat(region.reversed ? 'End' : 'Start', " of region ").concat(util.assembleLocString(location), " should be ").concat((region.reversed ? region.end : region.start + 1).toLocaleString('en-US'), ", but it is not"));
|
|
7240
|
-
}
|
|
7241
|
-
}
|
|
7242
|
-
|
|
7243
|
-
var isLast = locationIndex === locations.length - 1;
|
|
7244
|
-
|
|
7245
|
-
if (!isLast) {
|
|
7246
|
-
// does it reach the right side?
|
|
7247
|
-
var matchesRight = region.reversed ? locationStart === region.start : locationEnd === region.end;
|
|
7248
|
-
|
|
7249
|
-
if (!matchesRight) {
|
|
7250
|
-
throw new Error("".concat(region.reversed ? 'Start' : 'End', " of region ").concat(util.assembleLocString(location), " should be ").concat((region.reversed ? region.start + 1 : region.end).toLocaleString('en-US'), ", but it is not"));
|
|
7251
|
-
}
|
|
7252
|
-
}
|
|
7253
7144
|
}
|
|
7254
7145
|
|
|
7255
7146
|
locationIndex -= 1;
|
|
@@ -7537,8 +7428,6 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7537
7428
|
|
|
7538
7429
|
};
|
|
7539
7430
|
}).views(function (self) {
|
|
7540
|
-
var currentlyCalculatedStaticBlocks;
|
|
7541
|
-
var stringifiedCurrentlyCalculatedStaticBlocks = '';
|
|
7542
7431
|
return {
|
|
7543
7432
|
menuItems: function menuItems() {
|
|
7544
7433
|
var canShowCytobands = self.canShowCytobands,
|
|
@@ -7546,10 +7435,10 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7546
7435
|
var menuItems = [{
|
|
7547
7436
|
label: 'Return to import form',
|
|
7548
7437
|
onClick: function onClick() {
|
|
7549
|
-
util.getSession(self).queueDialog(function (
|
|
7550
|
-
return [
|
|
7438
|
+
util.getSession(self).queueDialog(function (handleClose) {
|
|
7439
|
+
return [ui.ReturnToImportFormDialog, {
|
|
7551
7440
|
model: self,
|
|
7552
|
-
handleClose:
|
|
7441
|
+
handleClose: handleClose
|
|
7553
7442
|
}];
|
|
7554
7443
|
});
|
|
7555
7444
|
},
|
|
@@ -7558,10 +7447,10 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7558
7447
|
label: 'Export SVG',
|
|
7559
7448
|
icon: PhotoCameraIcon,
|
|
7560
7449
|
onClick: function onClick() {
|
|
7561
|
-
util.getSession(self).queueDialog(function (
|
|
7450
|
+
util.getSession(self).queueDialog(function (handleClose) {
|
|
7562
7451
|
return [ExportSvgDlg, {
|
|
7563
7452
|
model: self,
|
|
7564
|
-
handleClose:
|
|
7453
|
+
handleClose: handleClose
|
|
7565
7454
|
}];
|
|
7566
7455
|
});
|
|
7567
7456
|
}
|
|
@@ -7661,8 +7550,12 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7661
7550
|
}
|
|
7662
7551
|
|
|
7663
7552
|
return menuItems;
|
|
7664
|
-
}
|
|
7665
|
-
|
|
7553
|
+
}
|
|
7554
|
+
};
|
|
7555
|
+
}).views(function (self) {
|
|
7556
|
+
var currentlyCalculatedStaticBlocks;
|
|
7557
|
+
var stringifiedCurrentlyCalculatedStaticBlocks = '';
|
|
7558
|
+
return {
|
|
7666
7559
|
get staticBlocks() {
|
|
7667
7560
|
var ret = calculateStaticBlocks(self);
|
|
7668
7561
|
var sret = JSON.stringify(ret);
|
|
@@ -8084,7 +7977,7 @@ var LinearGenomeViewPlugin = /*#__PURE__*/function (_Plugin) {
|
|
|
8084
7977
|
return LinearGenomeViewPlugin;
|
|
8085
7978
|
}(Plugin);
|
|
8086
7979
|
|
|
8087
|
-
var useStyles$
|
|
7980
|
+
var useStyles$m = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
8088
7981
|
return {
|
|
8089
7982
|
closeButton: {
|
|
8090
7983
|
position: 'absolute',
|
|
@@ -8096,7 +7989,7 @@ var useStyles$n = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
8096
7989
|
});
|
|
8097
7990
|
function HelpDialog$1(_ref) {
|
|
8098
7991
|
var handleClose = _ref.handleClose;
|
|
8099
|
-
var classes = useStyles$
|
|
7992
|
+
var classes = useStyles$m();
|
|
8100
7993
|
return /*#__PURE__*/React__default.createElement(core.Dialog, {
|
|
8101
7994
|
open: true,
|
|
8102
7995
|
maxWidth: "xl",
|
|
@@ -8107,7 +8000,7 @@ function HelpDialog$1(_ref) {
|
|
|
8107
8000
|
onClick: function onClick() {
|
|
8108
8001
|
handleClose();
|
|
8109
8002
|
}
|
|
8110
|
-
}, /*#__PURE__*/React__default.createElement(CloseIcon, null)) : null), /*#__PURE__*/React__default.createElement(core.Divider, null), /*#__PURE__*/React__default.createElement(core.DialogContent, null, /*#__PURE__*/React__default.createElement("h3", null, "Searching"), /*#__PURE__*/React__default.createElement("ul", null, /*#__PURE__*/React__default.createElement("li", null, "Jump to a feature or reference sequence by typing its name in the location box and pressing Enter."), /*#__PURE__*/React__default.createElement("li", null, "Jump to a specific region by typing the region into the location box as: ", /*#__PURE__*/React__default.createElement("code", null, "ref:start..end"), " or ", /*#__PURE__*/React__default.createElement("code", null, "ref:start-end"), ". Commas are allowed in the start and end coordinates.")), /*#__PURE__*/React__default.createElement("h3", null, "Example Searches"), /*#__PURE__*/React__default.createElement("ul", null, /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "BRCA"), " - searches for the feature named BRCA"), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr4"), " - jumps to chromosome 4"), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr4:79,500,000..80,000,000"), " - jumps the region on chromosome 4 between 79.5Mb and 80Mb."))), /*#__PURE__*/React__default.createElement(core.Divider, null), /*#__PURE__*/React__default.createElement(core.DialogActions, null, /*#__PURE__*/React__default.createElement(core.Button, {
|
|
8003
|
+
}, /*#__PURE__*/React__default.createElement(CloseIcon, null)) : null), /*#__PURE__*/React__default.createElement(core.Divider, null), /*#__PURE__*/React__default.createElement(core.DialogContent, null, /*#__PURE__*/React__default.createElement("h3", null, "Searching"), /*#__PURE__*/React__default.createElement("ul", null, /*#__PURE__*/React__default.createElement("li", null, "Jump to a feature or reference sequence by typing its name in the location box and pressing Enter."), /*#__PURE__*/React__default.createElement("li", null, "Jump to a specific region by typing the region into the location box as: ", /*#__PURE__*/React__default.createElement("code", null, "ref:start..end"), " or ", /*#__PURE__*/React__default.createElement("code", null, "ref:start-end"), ". Commas are allowed in the start and end coordinates. A space-separated list of locstrings can be used to open up multiple chromosomes at a time")), /*#__PURE__*/React__default.createElement("h3", null, "Example Searches"), /*#__PURE__*/React__default.createElement("ul", null, /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "BRCA"), " - searches for the feature named BRCA"), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr4"), " - jumps to chromosome 4"), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr4:79,500,000..80,000,000"), " - jumps the region on chromosome 4 between 79.5Mb and 80Mb."), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr1:1-100 chr2:1-100"), " - create a split view of chr1:1-100 and chr2:1-100"), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr1 chr2 chr3"), " - open up multiple chromosomes at once"), /*#__PURE__*/React__default.createElement("li", null, /*#__PURE__*/React__default.createElement("code", null, "chr1:1-100[rev] chr2:1-100"), " - open up the first region in the horizontally flipped orientation"))), /*#__PURE__*/React__default.createElement(core.Divider, null), /*#__PURE__*/React__default.createElement(core.DialogActions, null, /*#__PURE__*/React__default.createElement(core.Button, {
|
|
8111
8004
|
onClick: function onClick() {
|
|
8112
8005
|
return handleClose();
|
|
8113
8006
|
},
|
|
@@ -8117,11 +8010,11 @@ function HelpDialog$1(_ref) {
|
|
|
8117
8010
|
|
|
8118
8011
|
var HelpDialog$2 = {
|
|
8119
8012
|
__proto__: null,
|
|
8120
|
-
useStyles: useStyles$
|
|
8013
|
+
useStyles: useStyles$m,
|
|
8121
8014
|
'default': HelpDialog$1
|
|
8122
8015
|
};
|
|
8123
8016
|
|
|
8124
|
-
var useStyles$
|
|
8017
|
+
var useStyles$n = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
8125
8018
|
return {
|
|
8126
8019
|
root: {
|
|
8127
8020
|
width: 500
|
|
@@ -8141,7 +8034,7 @@ var useStyles$o = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
8141
8034
|
function SetMaxHeightDlg$1(props) {
|
|
8142
8035
|
var model = props.model,
|
|
8143
8036
|
handleClose = props.handleClose;
|
|
8144
|
-
var classes = useStyles$
|
|
8037
|
+
var classes = useStyles$n();
|
|
8145
8038
|
var _model$maxHeight = model.maxHeight,
|
|
8146
8039
|
maxHeight = _model$maxHeight === void 0 ? '' : _model$maxHeight;
|
|
8147
8040
|
|