@jbrowse/plugin-linear-genome-view 1.6.4 → 1.6.7
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 +1 -1
- package/dist/LinearGenomeView/index.d.ts +1 -0
- package/dist/index.d.ts +1 -1
- package/dist/plugin-linear-genome-view.cjs.development.js +147 -249
- 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 +149 -251
- 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 +35 -38
- package/src/LinearGenomeView/components/TrackLabel.tsx +5 -5
- package/src/LinearGenomeView/components/TracksContainer.tsx +0 -1
- package/src/LinearGenomeView/components/__snapshots__/LinearGenomeView.test.js.snap +23 -26
- package/src/LinearGenomeView/index.test.ts +44 -42
- package/src/LinearGenomeView/index.tsx +167 -242
- package/src/LinearGenomeView/volvoxDisplayedRegions.json +16 -0
- package/dist/LinearGenomeView/components/ReturnToImportFormDialog.d.ts +0 -9
- package/src/LinearGenomeView/components/ReturnToImportFormDialog.tsx +0 -83
|
@@ -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,16 +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__*/styles.makeStyles(function (theme) {
|
|
4729
4672
|
return {
|
|
4730
|
-
root: {
|
|
4673
|
+
root: {
|
|
4674
|
+
margin: 2
|
|
4675
|
+
},
|
|
4731
4676
|
resizeHandle: {
|
|
4732
4677
|
height: RESIZE_HANDLE_HEIGHT,
|
|
4733
4678
|
boxSizing: 'border-box',
|
|
@@ -4743,16 +4688,8 @@ var useStyles$d = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
4743
4688
|
zIndex: 3,
|
|
4744
4689
|
borderRadius: theme.shape.borderRadius
|
|
4745
4690
|
},
|
|
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
4691
|
trackLabel: {
|
|
4754
|
-
zIndex: 3
|
|
4755
|
-
margin: theme.spacing(1)
|
|
4692
|
+
zIndex: 3
|
|
4756
4693
|
},
|
|
4757
4694
|
trackLabelInline: {
|
|
4758
4695
|
position: 'relative',
|
|
@@ -4773,16 +4710,26 @@ var useStyles$d = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
4773
4710
|
};
|
|
4774
4711
|
});
|
|
4775
4712
|
|
|
4776
|
-
function
|
|
4777
|
-
var
|
|
4778
|
-
|
|
4779
|
-
|
|
4713
|
+
function TrackContainerLabel(_ref) {
|
|
4714
|
+
var model = _ref.model,
|
|
4715
|
+
view = _ref.view;
|
|
4716
|
+
var classes = useStyles$c();
|
|
4717
|
+
var labelStyle = view.trackLabels === 'overlapping' ? classes.trackLabelOverlap : classes.trackLabelInline;
|
|
4718
|
+
return view.trackLabels !== 'hidden' ? /*#__PURE__*/React__default.createElement(TrackLabel$1, {
|
|
4719
|
+
track: model,
|
|
4720
|
+
className: clsx(classes.trackLabel, labelStyle)
|
|
4721
|
+
}) : null;
|
|
4722
|
+
}
|
|
4723
|
+
|
|
4724
|
+
function TrackContainer(_ref2) {
|
|
4725
|
+
var model = _ref2.model,
|
|
4726
|
+
track = _ref2.track;
|
|
4727
|
+
var classes = useStyles$c();
|
|
4780
4728
|
var display = track.displays[0];
|
|
4781
4729
|
var horizontalScroll = model.horizontalScroll,
|
|
4782
4730
|
draggingTrackId = model.draggingTrackId,
|
|
4783
4731
|
moveTrack = model.moveTrack;
|
|
4784
4732
|
var height = display.height;
|
|
4785
|
-
var view = util.getContainingView(display);
|
|
4786
4733
|
var trackId = configuration.getConf(track, 'trackId');
|
|
4787
4734
|
var ref = React.useRef(null);
|
|
4788
4735
|
React.useEffect(function () {
|
|
@@ -4805,13 +4752,13 @@ function TrackContainer(props) {
|
|
|
4805
4752
|
var RenderingComponent = display.RenderingComponent,
|
|
4806
4753
|
DisplayBlurb = display.DisplayBlurb;
|
|
4807
4754
|
var dimmed = draggingTrackId !== undefined && draggingTrackId !== display.id;
|
|
4808
|
-
return /*#__PURE__*/React__default.createElement(
|
|
4809
|
-
className: classes.root
|
|
4810
|
-
|
|
4811
|
-
|
|
4812
|
-
|
|
4813
|
-
|
|
4814
|
-
|
|
4755
|
+
return /*#__PURE__*/React__default.createElement(Paper, {
|
|
4756
|
+
className: classes.root,
|
|
4757
|
+
variant: "outlined"
|
|
4758
|
+
}, /*#__PURE__*/React__default.createElement(TrackContainerLabel, {
|
|
4759
|
+
model: track,
|
|
4760
|
+
view: model
|
|
4761
|
+
}), /*#__PURE__*/React__default.createElement("div", {
|
|
4815
4762
|
className: classes.trackRenderingContainer,
|
|
4816
4763
|
style: {
|
|
4817
4764
|
height: height
|
|
@@ -4821,17 +4768,15 @@ function TrackContainer(props) {
|
|
|
4821
4768
|
display.setScrollTop(target.scrollTop);
|
|
4822
4769
|
},
|
|
4823
4770
|
onDragEnter: debouncedOnDragEnter,
|
|
4824
|
-
"data-testid": "trackRenderingContainer-".concat(
|
|
4771
|
+
"data-testid": "trackRenderingContainer-".concat(model.id, "-").concat(trackId),
|
|
4825
4772
|
role: "presentation"
|
|
4826
4773
|
}, /*#__PURE__*/React__default.createElement("div", {
|
|
4827
4774
|
ref: ref,
|
|
4828
|
-
className: classes.renderingComponentContainer,
|
|
4829
4775
|
style: {
|
|
4830
4776
|
transform: "scaleX(".concat(model.scaleFactor, ")")
|
|
4831
4777
|
}
|
|
4832
4778
|
}, /*#__PURE__*/React__default.createElement(RenderingComponent, {
|
|
4833
4779
|
model: display,
|
|
4834
|
-
blockState: {},
|
|
4835
4780
|
onHorizontalScroll: horizontalScroll
|
|
4836
4781
|
})), DisplayBlurb ? /*#__PURE__*/React__default.createElement("div", {
|
|
4837
4782
|
style: {
|
|
@@ -4839,7 +4784,7 @@ function TrackContainer(props) {
|
|
|
4839
4784
|
left: 0,
|
|
4840
4785
|
top: display.height - 20
|
|
4841
4786
|
}
|
|
4842
|
-
},
|
|
4787
|
+
}, /*#__PURE__*/React__default.createElement(DisplayBlurb, {
|
|
4843
4788
|
model: display
|
|
4844
4789
|
})) : null), /*#__PURE__*/React__default.createElement("div", {
|
|
4845
4790
|
className: classes.overlay,
|
|
@@ -4856,7 +4801,7 @@ function TrackContainer(props) {
|
|
|
4856
4801
|
|
|
4857
4802
|
var TrackContainer$1 = /*#__PURE__*/mobxReact.observer(TrackContainer);
|
|
4858
4803
|
|
|
4859
|
-
var useStyles$
|
|
4804
|
+
var useStyles$d = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
4860
4805
|
var background = theme.palette.tertiary ? colorManipulator.alpha(theme.palette.tertiary.main, 0.7) : colorManipulator.alpha(theme.palette.primary.main, 0.7);
|
|
4861
4806
|
return {
|
|
4862
4807
|
rubberBand: {
|
|
@@ -4895,7 +4840,7 @@ var useStyles$e = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
4895
4840
|
var VerticalGuide = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
4896
4841
|
var model = _ref.model,
|
|
4897
4842
|
coordX = _ref.coordX;
|
|
4898
|
-
var classes = useStyles$
|
|
4843
|
+
var classes = useStyles$d();
|
|
4899
4844
|
return /*#__PURE__*/React__default.createElement(Tooltip$1, {
|
|
4900
4845
|
open: true,
|
|
4901
4846
|
placement: "top",
|
|
@@ -4939,7 +4884,7 @@ function RubberBand(_ref2) {
|
|
|
4939
4884
|
|
|
4940
4885
|
var controlsRef = React.useRef(null);
|
|
4941
4886
|
var rubberBandRef = React.useRef(null);
|
|
4942
|
-
var classes = useStyles$
|
|
4887
|
+
var classes = useStyles$d();
|
|
4943
4888
|
var mouseDragging = startX !== undefined && anchorPosition === undefined;
|
|
4944
4889
|
var setOffsets = model.setOffsets,
|
|
4945
4890
|
pxToBp = model.pxToBp;
|
|
@@ -5142,7 +5087,7 @@ RubberBand.defaultProps = {
|
|
|
5142
5087
|
var RubberBand$1 = /*#__PURE__*/mobxReact.observer(RubberBand);
|
|
5143
5088
|
|
|
5144
5089
|
var _excluded$1 = ["model", "style", "className"];
|
|
5145
|
-
var useStyles$
|
|
5090
|
+
var useStyles$e = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
5146
5091
|
return {
|
|
5147
5092
|
scaleBarContainer: {
|
|
5148
5093
|
overflow: 'hidden',
|
|
@@ -5186,7 +5131,7 @@ var useStyles$f = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
5186
5131
|
});
|
|
5187
5132
|
var RenderedRefNameLabels = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
5188
5133
|
var model = _ref.model;
|
|
5189
|
-
var classes = useStyles$
|
|
5134
|
+
var classes = useStyles$e(); // find the block that needs pinning to the left side for context
|
|
5190
5135
|
|
|
5191
5136
|
var lastLeftBlock = 0;
|
|
5192
5137
|
model.staticBlocks.forEach(function (block, i) {
|
|
@@ -5208,7 +5153,7 @@ var RenderedRefNameLabels = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
5208
5153
|
});
|
|
5209
5154
|
var RenderedScaleBarLabels = /*#__PURE__*/mobxReact.observer(function (_ref2) {
|
|
5210
5155
|
var model = _ref2.model;
|
|
5211
|
-
var classes = useStyles$
|
|
5156
|
+
var classes = useStyles$e();
|
|
5212
5157
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, model.staticBlocks.map(function (block, index) {
|
|
5213
5158
|
if (block instanceof blockTypes.ContentBlock) {
|
|
5214
5159
|
var ticks = makeTicks(block.start, block.end, model.bpPerPx, true, false);
|
|
@@ -5261,7 +5206,7 @@ var ScaleBar$2 = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
5261
5206
|
className = _ref3.className,
|
|
5262
5207
|
other = _objectWithoutProperties(_ref3, _excluded$1);
|
|
5263
5208
|
|
|
5264
|
-
var classes = useStyles$
|
|
5209
|
+
var classes = useStyles$e();
|
|
5265
5210
|
var offsetLeft = model.staticBlocks.offsetPx - model.offsetPx;
|
|
5266
5211
|
return /*#__PURE__*/React__default.createElement(Paper, Object.assign({
|
|
5267
5212
|
"data-resizer": "true" // used to avoid click-and-drag scrolls on trackscontainer
|
|
@@ -5289,7 +5234,7 @@ var ScaleBar$2 = /*#__PURE__*/React__default.forwardRef(function (_ref3, ref) {
|
|
|
5289
5234
|
});
|
|
5290
5235
|
var ScaleBar$3 = /*#__PURE__*/mobxReact.observer(ScaleBar$2);
|
|
5291
5236
|
|
|
5292
|
-
var useStyles$
|
|
5237
|
+
var useStyles$f = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
5293
5238
|
return {
|
|
5294
5239
|
verticalGuidesZoomContainer: {
|
|
5295
5240
|
position: 'absolute',
|
|
@@ -5320,7 +5265,7 @@ var useStyles$g = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
5320
5265
|
});
|
|
5321
5266
|
var RenderedVerticalGuides = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
5322
5267
|
var model = _ref.model;
|
|
5323
|
-
var classes = useStyles$
|
|
5268
|
+
var classes = useStyles$f();
|
|
5324
5269
|
return /*#__PURE__*/React__default.createElement(React__default.Fragment, null, model.staticBlocks.map(function (block, index) {
|
|
5325
5270
|
if (block instanceof blockTypes.ContentBlock) {
|
|
5326
5271
|
var ticks = makeTicks(block.start, block.end, model.bpPerPx);
|
|
@@ -5360,7 +5305,7 @@ var RenderedVerticalGuides = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
5360
5305
|
|
|
5361
5306
|
function VerticalGuides(_ref2) {
|
|
5362
5307
|
var model = _ref2.model;
|
|
5363
|
-
var classes = useStyles$
|
|
5308
|
+
var classes = useStyles$f(); // find the block that needs pinning to the left side for context
|
|
5364
5309
|
|
|
5365
5310
|
var offsetLeft = model.staticBlocks.offsetPx - model.offsetPx;
|
|
5366
5311
|
return /*#__PURE__*/React__default.createElement("div", {
|
|
@@ -5381,7 +5326,7 @@ function VerticalGuides(_ref2) {
|
|
|
5381
5326
|
|
|
5382
5327
|
var VerticalGuides$1 = /*#__PURE__*/mobxReact.observer(VerticalGuides);
|
|
5383
5328
|
|
|
5384
|
-
var useStyles$
|
|
5329
|
+
var useStyles$g = /*#__PURE__*/styles.makeStyles(function () {
|
|
5385
5330
|
return {
|
|
5386
5331
|
centerLineContainer: {
|
|
5387
5332
|
background: 'transparent',
|
|
@@ -5410,7 +5355,7 @@ function CenterLine(_ref) {
|
|
|
5410
5355
|
tracks = model.tracks,
|
|
5411
5356
|
width = model.width;
|
|
5412
5357
|
var ref = React.useRef(null);
|
|
5413
|
-
var classes = useStyles$
|
|
5358
|
+
var classes = useStyles$g();
|
|
5414
5359
|
var startingPosition = width / 2;
|
|
5415
5360
|
return tracks.length ? /*#__PURE__*/React__default.createElement("div", {
|
|
5416
5361
|
"data-testid": "centerline_container",
|
|
@@ -5437,7 +5382,7 @@ CenterLine.propTypes = {
|
|
|
5437
5382
|
};
|
|
5438
5383
|
var CenterLine$1 = /*#__PURE__*/mobxReact.observer(CenterLine);
|
|
5439
5384
|
|
|
5440
|
-
var useStyles$
|
|
5385
|
+
var useStyles$h = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
5441
5386
|
return {
|
|
5442
5387
|
tracksContainer: {
|
|
5443
5388
|
position: 'relative',
|
|
@@ -5454,7 +5399,7 @@ var useStyles$i = /*#__PURE__*/styles.makeStyles(function (theme) {
|
|
|
5454
5399
|
function TracksContainer(_ref) {
|
|
5455
5400
|
var children = _ref.children,
|
|
5456
5401
|
model = _ref.model;
|
|
5457
|
-
var classes = useStyles$
|
|
5402
|
+
var classes = useStyles$h(); // refs are to store these variables to avoid repeated rerenders associated
|
|
5458
5403
|
// with useState/setState
|
|
5459
5404
|
|
|
5460
5405
|
var delta = React.useRef(0);
|
|
@@ -5610,8 +5555,6 @@ function TracksContainer(_ref) {
|
|
|
5610
5555
|
boxSizing: 'border-box'
|
|
5611
5556
|
}
|
|
5612
5557
|
})
|
|
5613
|
-
}), /*#__PURE__*/React__default.createElement("div", {
|
|
5614
|
-
className: classes.spacer
|
|
5615
5558
|
}), children);
|
|
5616
5559
|
}
|
|
5617
5560
|
|
|
@@ -5620,7 +5563,7 @@ var TracksContainer$1 = /*#__PURE__*/mobxReact.observer(TracksContainer);
|
|
|
5620
5563
|
var SearchResultsDialog = /*#__PURE__*/React.lazy(function () {
|
|
5621
5564
|
return Promise.resolve().then(function () { return SearchResultsDialog$2; });
|
|
5622
5565
|
});
|
|
5623
|
-
var useStyles$
|
|
5566
|
+
var useStyles$i = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
5624
5567
|
return {
|
|
5625
5568
|
importFormContainer: {
|
|
5626
5569
|
padding: theme.spacing(2)
|
|
@@ -5634,7 +5577,7 @@ var ImportForm = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
5634
5577
|
var _regions$;
|
|
5635
5578
|
|
|
5636
5579
|
var model = _ref.model;
|
|
5637
|
-
var classes = useStyles$
|
|
5580
|
+
var classes = useStyles$i();
|
|
5638
5581
|
var session = util.getSession(model);
|
|
5639
5582
|
var assemblyNames = session.assemblyNames,
|
|
5640
5583
|
assemblyManager = session.assemblyManager,
|
|
@@ -5934,7 +5877,7 @@ var MiniControls = /*#__PURE__*/mobxReact.observer(function (props) {
|
|
|
5934
5877
|
}));
|
|
5935
5878
|
});
|
|
5936
5879
|
|
|
5937
|
-
var useStyles$
|
|
5880
|
+
var useStyles$j = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
5938
5881
|
return {
|
|
5939
5882
|
loadingMessage: {
|
|
5940
5883
|
padding: theme.spacing(5)
|
|
@@ -6030,7 +5973,7 @@ function _fetchSequence() {
|
|
|
6030
5973
|
function SequenceDialog(_ref) {
|
|
6031
5974
|
var model = _ref.model,
|
|
6032
5975
|
handleClose = _ref.handleClose;
|
|
6033
|
-
var classes = useStyles$
|
|
5976
|
+
var classes = useStyles$j();
|
|
6034
5977
|
var session = util.getSession(model);
|
|
6035
5978
|
|
|
6036
5979
|
var _useState = React.useState(),
|
|
@@ -6195,7 +6138,7 @@ function SequenceDialog(_ref) {
|
|
|
6195
6138
|
|
|
6196
6139
|
var SequenceDialog$1 = /*#__PURE__*/mobxReact.observer(SequenceDialog);
|
|
6197
6140
|
|
|
6198
|
-
var useStyles$
|
|
6141
|
+
var useStyles$k = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
6199
6142
|
return {
|
|
6200
6143
|
dialogContent: {
|
|
6201
6144
|
width: '80em'
|
|
@@ -6214,7 +6157,7 @@ function SearchResultsDialog$1(_ref) {
|
|
|
6214
6157
|
var model = _ref.model,
|
|
6215
6158
|
optAssemblyName = _ref.optAssemblyName,
|
|
6216
6159
|
handleClose = _ref.handleClose;
|
|
6217
|
-
var classes = useStyles$
|
|
6160
|
+
var classes = useStyles$k();
|
|
6218
6161
|
var session = util.getSession(model);
|
|
6219
6162
|
|
|
6220
6163
|
var _getEnv = mobxStateTree.getEnv(session),
|
|
@@ -6335,11 +6278,11 @@ function SearchResultsDialog$1(_ref) {
|
|
|
6335
6278
|
|
|
6336
6279
|
var SearchResultsDialog$2 = {
|
|
6337
6280
|
__proto__: null,
|
|
6338
|
-
useStyles: useStyles$
|
|
6281
|
+
useStyles: useStyles$k,
|
|
6339
6282
|
'default': SearchResultsDialog$1
|
|
6340
6283
|
};
|
|
6341
6284
|
|
|
6342
|
-
var useStyles$
|
|
6285
|
+
var useStyles$l = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
6343
6286
|
return {
|
|
6344
6287
|
note: {
|
|
6345
6288
|
textAlign: 'center',
|
|
@@ -6375,7 +6318,7 @@ var LinearGenomeView = /*#__PURE__*/mobxReact.observer(function (_ref) {
|
|
|
6375
6318
|
hideHeader = model.hideHeader,
|
|
6376
6319
|
initialized = model.initialized,
|
|
6377
6320
|
hasDisplayedRegions = model.hasDisplayedRegions;
|
|
6378
|
-
var classes = useStyles$
|
|
6321
|
+
var classes = useStyles$l();
|
|
6379
6322
|
|
|
6380
6323
|
if (!initialized && !error) {
|
|
6381
6324
|
return /*#__PURE__*/React__default.createElement(core.Typography, {
|
|
@@ -6456,7 +6399,7 @@ function calculateVisibleLocStrings(contentBlocks) {
|
|
|
6456
6399
|
assemblyName: isSingleAssemblyName ? undefined : block.assemblyName
|
|
6457
6400
|
}));
|
|
6458
6401
|
});
|
|
6459
|
-
return locs.join('
|
|
6402
|
+
return locs.join(' ');
|
|
6460
6403
|
}
|
|
6461
6404
|
|
|
6462
6405
|
var HEADER_BAR_HEIGHT = 48;
|
|
@@ -6489,11 +6432,11 @@ function stateModelFactory$1(pluginManager) {
|
|
|
6489
6432
|
}),
|
|
6490
6433
|
showCenterLine: mobxStateTree.types.optional(mobxStateTree.types["boolean"], function () {
|
|
6491
6434
|
var setting = localStorageGetItem('lgv-showCenterLine');
|
|
6492
|
-
return setting !== undefined ?
|
|
6435
|
+
return setting !== undefined && setting !== null ? !!+setting : false;
|
|
6493
6436
|
}),
|
|
6494
6437
|
showCytobandsSetting: mobxStateTree.types.optional(mobxStateTree.types["boolean"], function () {
|
|
6495
6438
|
var setting = localStorageGetItem('lgv-showCytobands');
|
|
6496
|
-
return setting !== undefined ?
|
|
6439
|
+
return setting !== undefined && setting !== null ? !!+setting : true;
|
|
6497
6440
|
})
|
|
6498
6441
|
}))["volatile"](function () {
|
|
6499
6442
|
return {
|
|
@@ -7020,100 +6963,73 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7020
6963
|
throw new Error("invalid track selector type ".concat(self.trackSelectorType));
|
|
7021
6964
|
},
|
|
7022
6965
|
navToLocString: function navToLocString(locString, optAssemblyName) {
|
|
6966
|
+
var assemblyNames = self.assemblyNames;
|
|
6967
|
+
|
|
7023
6968
|
var _getSession3 = util.getSession(self),
|
|
7024
6969
|
assemblyManager = _getSession3.assemblyManager;
|
|
7025
6970
|
|
|
7026
6971
|
var isValidRefName = assemblyManager.isValidRefName;
|
|
7027
|
-
var
|
|
7028
|
-
|
|
7029
|
-
|
|
7030
|
-
|
|
7031
|
-
|
|
6972
|
+
var assemblyName = optAssemblyName || assemblyNames[0];
|
|
6973
|
+
var parsedLocStrings = locString.split(' ').filter(function (f) {
|
|
6974
|
+
return !!f.trim();
|
|
6975
|
+
}).map(function (l) {
|
|
6976
|
+
return util.parseLocString(l, function (ref) {
|
|
6977
|
+
return isValidRefName(ref, assemblyName);
|
|
7032
6978
|
});
|
|
7033
|
-
this.navToMultiple(locations);
|
|
7034
|
-
return;
|
|
7035
|
-
}
|
|
7036
|
-
|
|
7037
|
-
var assemblyName = optAssemblyName;
|
|
7038
|
-
var defaultRefName = '';
|
|
7039
|
-
|
|
7040
|
-
if (self.displayedRegions.length !== 0) {
|
|
7041
|
-
// defaults
|
|
7042
|
-
assemblyName = self.displayedRegions[0].assemblyName;
|
|
7043
|
-
defaultRefName = self.displayedRegions[0].refName;
|
|
7044
|
-
}
|
|
7045
|
-
|
|
7046
|
-
var assembly = assemblyName && assemblyManager.get(assemblyName);
|
|
7047
|
-
|
|
7048
|
-
if (!assembly) {
|
|
7049
|
-
throw new Error("Could not find assembly ".concat(assemblyName));
|
|
7050
|
-
}
|
|
7051
|
-
|
|
7052
|
-
var _assembly = assembly,
|
|
7053
|
-
regions = _assembly.regions;
|
|
7054
|
-
|
|
7055
|
-
if (!regions) {
|
|
7056
|
-
throw new Error("Regions for assembly ".concat(assemblyName, " not yet loaded"));
|
|
7057
|
-
}
|
|
7058
|
-
|
|
7059
|
-
if (locStrings.length > 1) {
|
|
7060
|
-
throw new Error('Navigating to multiple locations is not allowed when viewing a whole chromosome');
|
|
7061
|
-
}
|
|
7062
|
-
|
|
7063
|
-
var parsedLocString = util.parseLocString(locStrings[0], function (refName) {
|
|
7064
|
-
return isValidRefName(refName, assemblyName);
|
|
7065
6979
|
});
|
|
7066
|
-
var
|
|
6980
|
+
var locations = parsedLocStrings.map(function (region) {
|
|
6981
|
+
var asmName = region.assemblyName || assemblyName;
|
|
6982
|
+
var asm = assemblyManager.get(asmName);
|
|
6983
|
+
var refName = region.refName;
|
|
7067
6984
|
|
|
7068
|
-
|
|
7069
|
-
|
|
7070
|
-
|
|
7071
|
-
if (!newAssembly) {
|
|
7072
|
-
throw new Error("Could not find assembly ".concat(parsedLocString.assemblyName));
|
|
6985
|
+
if (!asm) {
|
|
6986
|
+
throw new Error("assembly ".concat(asmName, " not found"));
|
|
7073
6987
|
}
|
|
7074
6988
|
|
|
7075
|
-
|
|
7076
|
-
changedAssembly = true;
|
|
7077
|
-
var newRegions = newAssembly.regions;
|
|
6989
|
+
var regions = asm.regions;
|
|
7078
6990
|
|
|
7079
|
-
if (!
|
|
7080
|
-
throw new Error("
|
|
6991
|
+
if (!regions) {
|
|
6992
|
+
throw new Error("regions not loaded yet for ".concat(asmName));
|
|
7081
6993
|
}
|
|
7082
6994
|
|
|
7083
|
-
|
|
7084
|
-
}
|
|
7085
|
-
|
|
7086
|
-
var canonicalRefName = assembly.getCanonicalRefName(parsedLocString.refName);
|
|
6995
|
+
var canonicalRefName = asm.getCanonicalRefName(region.refName);
|
|
7087
6996
|
|
|
7088
|
-
|
|
7089
|
-
|
|
7090
|
-
|
|
6997
|
+
if (!canonicalRefName) {
|
|
6998
|
+
throw new Error("Could not find refName ".concat(refName, " in ").concat(asm.name));
|
|
6999
|
+
}
|
|
7091
7000
|
|
|
7092
|
-
|
|
7093
|
-
var newDisplayedRegion = regions.find(function (region) {
|
|
7001
|
+
var parentRegion = regions.find(function (region) {
|
|
7094
7002
|
return region.refName === canonicalRefName;
|
|
7095
7003
|
});
|
|
7096
7004
|
|
|
7097
|
-
if (
|
|
7098
|
-
|
|
7099
|
-
} else {
|
|
7100
|
-
throw new Error("Could not find refName ".concat(parsedLocString.refName, " in ").concat(assembly.name));
|
|
7005
|
+
if (!parentRegion) {
|
|
7006
|
+
throw new Error("Could not find refName ".concat(refName, " in ").concat(asmName));
|
|
7101
7007
|
}
|
|
7102
|
-
}
|
|
7103
7008
|
|
|
7104
|
-
|
|
7105
|
-
|
|
7009
|
+
return _objectSpread2(_objectSpread2({}, region), {}, {
|
|
7010
|
+
assemblyName: asmName,
|
|
7011
|
+
parentRegion: parentRegion
|
|
7012
|
+
});
|
|
7106
7013
|
});
|
|
7107
7014
|
|
|
7108
|
-
if (
|
|
7109
|
-
var
|
|
7110
|
-
|
|
7111
|
-
|
|
7112
|
-
|
|
7113
|
-
|
|
7114
|
-
|
|
7115
|
-
|
|
7015
|
+
if (locations.length === 1) {
|
|
7016
|
+
var loc = locations[0];
|
|
7017
|
+
this.setDisplayedRegions([_objectSpread2({
|
|
7018
|
+
reversed: loc.reversed
|
|
7019
|
+
}, loc.parentRegion)]);
|
|
7020
|
+
var start = loc.start,
|
|
7021
|
+
end = loc.end,
|
|
7022
|
+
parentRegion = loc.parentRegion;
|
|
7023
|
+
this.navTo(_objectSpread2(_objectSpread2({}, loc), {}, {
|
|
7024
|
+
start: util.clamp(start !== null && start !== void 0 ? start : 0, 0, parentRegion.end),
|
|
7025
|
+
end: util.clamp(end !== null && end !== void 0 ? end : parentRegion.end, 0, parentRegion.end)
|
|
7026
|
+
}));
|
|
7027
|
+
} else {
|
|
7028
|
+
this.setDisplayedRegions( // @ts-ignore
|
|
7029
|
+
locations.map(function (r) {
|
|
7030
|
+
return r.start === undefined ? r.parentRegion : r;
|
|
7116
7031
|
}));
|
|
7032
|
+
this.showAllRegions();
|
|
7117
7033
|
}
|
|
7118
7034
|
},
|
|
7119
7035
|
|
|
@@ -7235,26 +7151,6 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7235
7151
|
if (location.refName !== region.refName) {
|
|
7236
7152
|
throw new Error("Entered location ".concat(util.assembleLocString(location), " does not match with displayed regions"));
|
|
7237
7153
|
}
|
|
7238
|
-
|
|
7239
|
-
if (locationIndex > 0) {
|
|
7240
|
-
// does it reach the left side?
|
|
7241
|
-
var matchesLeft = region.reversed ? locationEnd === region.end : locationStart === region.start;
|
|
7242
|
-
|
|
7243
|
-
if (!matchesLeft) {
|
|
7244
|
-
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"));
|
|
7245
|
-
}
|
|
7246
|
-
}
|
|
7247
|
-
|
|
7248
|
-
var isLast = locationIndex === locations.length - 1;
|
|
7249
|
-
|
|
7250
|
-
if (!isLast) {
|
|
7251
|
-
// does it reach the right side?
|
|
7252
|
-
var matchesRight = region.reversed ? locationStart === region.start : locationEnd === region.end;
|
|
7253
|
-
|
|
7254
|
-
if (!matchesRight) {
|
|
7255
|
-
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"));
|
|
7256
|
-
}
|
|
7257
|
-
}
|
|
7258
7154
|
}
|
|
7259
7155
|
|
|
7260
7156
|
locationIndex -= 1;
|
|
@@ -7542,8 +7438,6 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7542
7438
|
|
|
7543
7439
|
};
|
|
7544
7440
|
}).views(function (self) {
|
|
7545
|
-
var currentlyCalculatedStaticBlocks;
|
|
7546
|
-
var stringifiedCurrentlyCalculatedStaticBlocks = '';
|
|
7547
7441
|
return {
|
|
7548
7442
|
menuItems: function menuItems() {
|
|
7549
7443
|
var canShowCytobands = self.canShowCytobands,
|
|
@@ -7551,10 +7445,10 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7551
7445
|
var menuItems = [{
|
|
7552
7446
|
label: 'Return to import form',
|
|
7553
7447
|
onClick: function onClick() {
|
|
7554
|
-
util.getSession(self).queueDialog(function (
|
|
7555
|
-
return [
|
|
7448
|
+
util.getSession(self).queueDialog(function (handleClose) {
|
|
7449
|
+
return [ui.ReturnToImportFormDialog, {
|
|
7556
7450
|
model: self,
|
|
7557
|
-
handleClose:
|
|
7451
|
+
handleClose: handleClose
|
|
7558
7452
|
}];
|
|
7559
7453
|
});
|
|
7560
7454
|
},
|
|
@@ -7563,10 +7457,10 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7563
7457
|
label: 'Export SVG',
|
|
7564
7458
|
icon: PhotoCameraIcon,
|
|
7565
7459
|
onClick: function onClick() {
|
|
7566
|
-
util.getSession(self).queueDialog(function (
|
|
7460
|
+
util.getSession(self).queueDialog(function (handleClose) {
|
|
7567
7461
|
return [ExportSvgDlg, {
|
|
7568
7462
|
model: self,
|
|
7569
|
-
handleClose:
|
|
7463
|
+
handleClose: handleClose
|
|
7570
7464
|
}];
|
|
7571
7465
|
});
|
|
7572
7466
|
}
|
|
@@ -7666,8 +7560,12 @@ function stateModelFactory$1(pluginManager) {
|
|
|
7666
7560
|
}
|
|
7667
7561
|
|
|
7668
7562
|
return menuItems;
|
|
7669
|
-
}
|
|
7670
|
-
|
|
7563
|
+
}
|
|
7564
|
+
};
|
|
7565
|
+
}).views(function (self) {
|
|
7566
|
+
var currentlyCalculatedStaticBlocks;
|
|
7567
|
+
var stringifiedCurrentlyCalculatedStaticBlocks = '';
|
|
7568
|
+
return {
|
|
7671
7569
|
get staticBlocks() {
|
|
7672
7570
|
var ret = calculateStaticBlocks(self);
|
|
7673
7571
|
var sret = JSON.stringify(ret);
|
|
@@ -8089,7 +7987,7 @@ var LinearGenomeViewPlugin = /*#__PURE__*/function (_Plugin) {
|
|
|
8089
7987
|
return LinearGenomeViewPlugin;
|
|
8090
7988
|
}(Plugin);
|
|
8091
7989
|
|
|
8092
|
-
var useStyles$
|
|
7990
|
+
var useStyles$m = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
8093
7991
|
return {
|
|
8094
7992
|
closeButton: {
|
|
8095
7993
|
position: 'absolute',
|
|
@@ -8101,7 +7999,7 @@ var useStyles$n = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
8101
7999
|
});
|
|
8102
8000
|
function HelpDialog$1(_ref) {
|
|
8103
8001
|
var handleClose = _ref.handleClose;
|
|
8104
|
-
var classes = useStyles$
|
|
8002
|
+
var classes = useStyles$m();
|
|
8105
8003
|
return /*#__PURE__*/React__default.createElement(core.Dialog, {
|
|
8106
8004
|
open: true,
|
|
8107
8005
|
maxWidth: "xl",
|
|
@@ -8112,7 +8010,7 @@ function HelpDialog$1(_ref) {
|
|
|
8112
8010
|
onClick: function onClick() {
|
|
8113
8011
|
handleClose();
|
|
8114
8012
|
}
|
|
8115
|
-
}, /*#__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, {
|
|
8013
|
+
}, /*#__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, {
|
|
8116
8014
|
onClick: function onClick() {
|
|
8117
8015
|
return handleClose();
|
|
8118
8016
|
},
|
|
@@ -8122,11 +8020,11 @@ function HelpDialog$1(_ref) {
|
|
|
8122
8020
|
|
|
8123
8021
|
var HelpDialog$2 = {
|
|
8124
8022
|
__proto__: null,
|
|
8125
|
-
useStyles: useStyles$
|
|
8023
|
+
useStyles: useStyles$m,
|
|
8126
8024
|
'default': HelpDialog$1
|
|
8127
8025
|
};
|
|
8128
8026
|
|
|
8129
|
-
var useStyles$
|
|
8027
|
+
var useStyles$n = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
8130
8028
|
return {
|
|
8131
8029
|
root: {
|
|
8132
8030
|
width: 500
|
|
@@ -8146,7 +8044,7 @@ var useStyles$o = /*#__PURE__*/core.makeStyles(function (theme) {
|
|
|
8146
8044
|
function SetMaxHeightDlg$1(props) {
|
|
8147
8045
|
var model = props.model,
|
|
8148
8046
|
handleClose = props.handleClose;
|
|
8149
|
-
var classes = useStyles$
|
|
8047
|
+
var classes = useStyles$n();
|
|
8150
8048
|
var _model$maxHeight = model.maxHeight,
|
|
8151
8049
|
maxHeight = _model$maxHeight === void 0 ? '' : _model$maxHeight;
|
|
8152
8050
|
|