jbrowse-plugin-mafviewer 1.4.2 → 1.4.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/README.md +1 -1
  2. package/dist/LinearMafDisplay/components/InsertionSequenceDialog/InsertionSequenceDialog.d.ts +14 -0
  3. package/dist/LinearMafDisplay/components/InsertionSequenceDialog/InsertionSequenceDialog.js +69 -0
  4. package/dist/LinearMafDisplay/components/InsertionSequenceDialog/InsertionSequenceDialog.js.map +1 -0
  5. package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js +4 -4
  6. package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js.map +1 -1
  7. package/dist/LinearMafDisplay/components/Sidebar/ColorLegend.js +2 -2
  8. package/dist/LinearMafDisplay/components/Sidebar/ColorLegend.js.map +1 -1
  9. package/dist/LinearMafDisplay/components/Sidebar/RectBg.d.ts +1 -1
  10. package/dist/LinearMafDisplay/components/Sidebar/RectBg.js +2 -3
  11. package/dist/LinearMafDisplay/components/Sidebar/RectBg.js.map +1 -1
  12. package/dist/LinearMafDisplay/components/Sidebar/SvgWrapper.js +81 -11
  13. package/dist/LinearMafDisplay/components/Sidebar/SvgWrapper.js.map +1 -1
  14. package/dist/LinearMafDisplay/components/Sidebar/Tree.js +30 -9
  15. package/dist/LinearMafDisplay/components/Sidebar/Tree.js.map +1 -1
  16. package/dist/LinearMafDisplay/components/Sidebar/YScaleBars.d.ts +0 -1
  17. package/dist/LinearMafDisplay/components/Sidebar/YScaleBars.js.map +1 -1
  18. package/dist/LinearMafDisplay/renderSvg.js +1 -1
  19. package/dist/LinearMafDisplay/renderSvg.js.map +1 -1
  20. package/dist/LinearMafDisplay/stateModel.d.ts +69 -3
  21. package/dist/LinearMafDisplay/stateModel.js +96 -1
  22. package/dist/LinearMafDisplay/stateModel.js.map +1 -1
  23. package/dist/LinearMafDisplay/util.d.ts +1 -0
  24. package/dist/LinearMafDisplay/util.js +3 -2
  25. package/dist/LinearMafDisplay/util.js.map +1 -1
  26. package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +4 -7
  27. package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -1
  28. package/dist/LinearMafRenderer/components/LinearMafRendering.d.ts +1 -1
  29. package/dist/LinearMafRenderer/components/LinearMafRendering.js +27 -9
  30. package/dist/LinearMafRenderer/components/LinearMafRendering.js.map +1 -1
  31. package/dist/LinearMafRenderer/makeImageData.js +13 -9
  32. package/dist/LinearMafRenderer/makeImageData.js.map +1 -1
  33. package/dist/LinearMafRenderer/rendering/features.d.ts +0 -1
  34. package/dist/LinearMafRenderer/rendering/features.js +1 -14
  35. package/dist/LinearMafRenderer/rendering/features.js.map +1 -1
  36. package/dist/LinearMafRenderer/rendering/insertions.js +8 -6
  37. package/dist/LinearMafRenderer/rendering/insertions.js.map +1 -1
  38. package/dist/LinearMafRenderer/rendering/matches.d.ts +1 -1
  39. package/dist/LinearMafRenderer/rendering/matches.js +3 -15
  40. package/dist/LinearMafRenderer/rendering/matches.js.map +1 -1
  41. package/dist/LinearMafRenderer/rendering/spatialIndex.js +8 -2
  42. package/dist/LinearMafRenderer/rendering/spatialIndex.js.map +1 -1
  43. package/dist/LinearMafRenderer/rendering/text.js +1 -3
  44. package/dist/LinearMafRenderer/rendering/text.js.map +1 -1
  45. package/dist/LinearMafRenderer/rendering/types.d.ts +5 -4
  46. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +7 -7
  47. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +4 -4
  48. package/dist/util/fastaUtils.js +23 -50
  49. package/dist/util/fastaUtils.js.map +1 -1
  50. package/package.json +9 -9
  51. package/src/LinearMafDisplay/components/InsertionSequenceDialog/InsertionSequenceDialog.tsx +105 -0
  52. package/src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx +4 -4
  53. package/src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx +2 -6
  54. package/src/LinearMafDisplay/components/Sidebar/RectBg.tsx +8 -3
  55. package/src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx +117 -15
  56. package/src/LinearMafDisplay/components/Sidebar/Tree.tsx +53 -8
  57. package/src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx +0 -1
  58. package/src/LinearMafDisplay/renderSvg.tsx +1 -1
  59. package/src/LinearMafDisplay/stateModel.ts +109 -1
  60. package/src/LinearMafDisplay/util.ts +4 -2
  61. package/src/LinearMafRenderer/LinearMafRenderer.ts +2 -4
  62. package/src/LinearMafRenderer/components/LinearMafRendering.tsx +51 -30
  63. package/src/LinearMafRenderer/makeImageData.ts +21 -27
  64. package/src/LinearMafRenderer/rendering/features.ts +2 -36
  65. package/src/LinearMafRenderer/rendering/insertions.ts +11 -6
  66. package/src/LinearMafRenderer/rendering/matches.ts +2 -27
  67. package/src/LinearMafRenderer/rendering/spatialIndex.ts +9 -2
  68. package/src/LinearMafRenderer/rendering/text.ts +1 -2
  69. package/src/LinearMafRenderer/rendering/types.ts +7 -4
  70. package/src/util/fastaUtils.ts +28 -54
  71. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.d.ts +0 -30
  72. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js +0 -253
  73. package/dist/BgzipTaffyAdapter/BgzipTaffyAdapter.js.map +0 -1
  74. package/dist/BgzipTaffyAdapter/configSchema.d.ts +0 -44
  75. package/dist/BgzipTaffyAdapter/configSchema.js +0 -53
  76. package/dist/BgzipTaffyAdapter/configSchema.js.map +0 -1
  77. package/dist/BgzipTaffyAdapter/index.d.ts +0 -2
  78. package/dist/BgzipTaffyAdapter/index.js +0 -11
  79. package/dist/BgzipTaffyAdapter/index.js.map +0 -1
  80. package/dist/BgzipTaffyAdapter/rowInstructions.d.ts +0 -35
  81. package/dist/BgzipTaffyAdapter/rowInstructions.js +0 -55
  82. package/dist/BgzipTaffyAdapter/rowInstructions.js.map +0 -1
  83. package/dist/BgzipTaffyAdapter/types.d.ts +0 -13
  84. package/dist/BgzipTaffyAdapter/types.js +0 -2
  85. package/dist/BgzipTaffyAdapter/types.js.map +0 -1
  86. package/dist/BgzipTaffyAdapter/util.d.ts +0 -1
  87. package/dist/BgzipTaffyAdapter/util.js +0 -22
  88. package/dist/BgzipTaffyAdapter/util.js.map +0 -1
  89. package/dist/BgzipTaffyAdapter/virtualOffset.d.ts +0 -8
  90. package/dist/BgzipTaffyAdapter/virtualOffset.js +0 -23
  91. package/dist/BgzipTaffyAdapter/virtualOffset.js.map +0 -1
  92. package/dist/LinearMafRenderer/components/ReactComponent.d.ts +0 -9
  93. package/dist/LinearMafRenderer/components/ReactComponent.js +0 -47
  94. package/dist/LinearMafRenderer/components/ReactComponent.js.map +0 -1
  95. package/dist/LinearMafRenderer/components/util.d.ts +0 -1
  96. package/dist/LinearMafRenderer/components/util.js +0 -13
  97. package/dist/LinearMafRenderer/components/util.js.map +0 -1
  98. package/dist/out.js +0 -32303
  99. package/dist/out.js.map +0 -7
  100. package/src/LinearMafRenderer/components/util.ts +0 -13
package/README.md CHANGED
@@ -9,7 +9,7 @@ JBrowse 2
9
9
 
10
10
  ## Demo
11
11
 
12
- https://jbrowse.org/code/jb2/main/?config=%2Fdemos%2Fmaf%2Fhg38%2Fdistconfig.json&session=share-2v5qIkvufP&password=uYpiC
12
+ https://jbrowse.org/code/jb2/main/?config=%2Fdemos%2Fmaf%2Fhg38%2Fdistconfig.json&session=share-bJXbDiWcc9&password=87GhV
13
13
 
14
14
  ## GUI usage (e.g. in JBrowse Desktop)
15
15
 
@@ -0,0 +1,14 @@
1
+ import React from 'react';
2
+ declare const InsertionSequenceDialog: ({ onClose, model, insertionData, }: {
3
+ onClose: () => void;
4
+ model: {
5
+ showAsUpperCase: boolean;
6
+ };
7
+ insertionData: {
8
+ sequence: string;
9
+ sampleLabel: string;
10
+ chr: string;
11
+ pos: number;
12
+ };
13
+ }) => React.JSX.Element;
14
+ export default InsertionSequenceDialog;
@@ -0,0 +1,69 @@
1
+ import React, { useState } from 'react';
2
+ import { Dialog } from '@jbrowse/core/ui';
3
+ import { Button, DialogActions, DialogContent, TextField } from '@mui/material';
4
+ import { observer } from 'mobx-react';
5
+ import { makeStyles } from 'tss-react/mui';
6
+ const useStyles = makeStyles()({
7
+ dialogContent: {
8
+ width: '60em',
9
+ },
10
+ textAreaInput: {
11
+ fontFamily: 'monospace',
12
+ whiteSpace: 'pre',
13
+ overflowX: 'auto',
14
+ },
15
+ });
16
+ const InsertionSequenceDialog = observer(function ({ onClose, model, insertionData, }) {
17
+ const { classes } = useStyles();
18
+ const [copied, setCopied] = useState(false);
19
+ const { sequence, sampleLabel, chr, pos } = insertionData;
20
+ const { showAsUpperCase } = model;
21
+ const displaySequence = showAsUpperCase
22
+ ? sequence.toUpperCase()
23
+ : sequence.toLowerCase();
24
+ return (React.createElement(Dialog, { open: true, onClose: onClose, title: `Insertion Sequence (${sequence.length}bp)`, maxWidth: "lg" },
25
+ React.createElement(DialogContent, null,
26
+ React.createElement("div", { style: { marginBottom: 16 } },
27
+ React.createElement("strong", null, "Sample:"),
28
+ " ",
29
+ sampleLabel,
30
+ React.createElement("br", null),
31
+ React.createElement("strong", null, "Position:"),
32
+ " ",
33
+ chr,
34
+ ":",
35
+ pos.toLocaleString('en-US'),
36
+ React.createElement("br", null),
37
+ React.createElement("strong", null, "Length:"),
38
+ " ",
39
+ sequence.length,
40
+ "bp"),
41
+ React.createElement(TextField, { variant: "outlined", multiline: true, minRows: 3, maxRows: 10, className: classes.dialogContent, fullWidth: true, value: displaySequence, slotProps: {
42
+ input: {
43
+ readOnly: true,
44
+ classes: {
45
+ input: classes.textAreaInput,
46
+ },
47
+ },
48
+ } })),
49
+ React.createElement(DialogActions, null,
50
+ React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
51
+ // eslint-disable-next-line @typescript-eslint/no-floating-promises
52
+ ;
53
+ (async () => {
54
+ try {
55
+ await navigator.clipboard.writeText(displaySequence);
56
+ setCopied(true);
57
+ setTimeout(() => {
58
+ setCopied(false);
59
+ }, 1000);
60
+ }
61
+ catch (e) {
62
+ console.error(e);
63
+ }
64
+ })();
65
+ } }, copied ? 'Copied!' : 'Copy to Clipboard'),
66
+ React.createElement(Button, { color: "secondary", variant: "contained", onClick: onClose }, "Close"))));
67
+ });
68
+ export default InsertionSequenceDialog;
69
+ //# sourceMappingURL=InsertionSequenceDialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"InsertionSequenceDialog.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/InsertionSequenceDialog/InsertionSequenceDialog.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import React, { useEffect, useRef, useState } from 'react';
1
+ import React, { useCallback, useEffect, useRef, useState } from 'react';
2
2
  import { Menu } from '@jbrowse/core/ui';
3
3
  import { getContainingView, getEnv } from '@jbrowse/core/util';
4
4
  import { useTheme } from '@mui/material';
@@ -71,11 +71,11 @@ const LinearMafDisplay = observer(function (props) {
71
71
  setIsDragging(false);
72
72
  };
73
73
  // Function to clear the selection box
74
- const clearSelectionBox = () => {
74
+ const clearSelectionBox = useCallback(() => {
75
75
  setShowSelectionBox(false);
76
76
  setDragStartX(undefined);
77
77
  setDragEndX(undefined);
78
- };
78
+ }, []);
79
79
  // Add keydown event handler to clear selection box when Escape key is pressed
80
80
  useEffect(() => {
81
81
  const handleKeyDown = (event) => {
@@ -109,7 +109,7 @@ const LinearMafDisplay = observer(function (props) {
109
109
  setIsDragging(false);
110
110
  } },
111
111
  React.createElement(BaseLinearDisplayComponent, { ...props }),
112
- React.createElement(YScaleBars, { model: model }),
112
+ model.showSidebar ? React.createElement(YScaleBars, { model: model }) : null,
113
113
  mouseY && mouseX && sources && !contextCoord && !showSequenceDialog ? (React.createElement("div", { style: { position: 'relative' } },
114
114
  React.createElement(Crosshairs, { width: width, height: height, scrollTop: scrollTop, mouseX: mouseX, mouseY: mouseY }),
115
115
  React.createElement(MAFTooltip, { model: model, mouseX: mouseX, mouseY: mouseY, origMouseX: dragStartX, rowHeight: rowHeight, sources: sources }))) : null,
@@ -1 +1 @@
1
- {"version":3,"file":"LinearMafDisplayComponent.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinearMafDisplayComponent.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx"],"names":[],"mappings":"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"}
@@ -3,10 +3,10 @@ import { observer } from 'mobx-react';
3
3
  import RectBg from './RectBg';
4
4
  import Tree from './Tree';
5
5
  const ColorLegend = observer(function ({ model, }) {
6
- const { labelWidth, canDisplayLabel, totalHeight, treeWidth, samples = [], rowHeight, svgFontSize, } = model;
6
+ const { labelWidth, canDisplayLabel, totalHeight, treeWidth, sidebarWidth, samples = [], rowHeight, svgFontSize, } = model;
7
7
  const boxHeight = Math.min(20, rowHeight);
8
8
  return (React.createElement(React.Fragment, null,
9
- React.createElement(RectBg, { y: 0, x: 0, width: labelWidth + 5 + treeWidth, height: totalHeight }),
9
+ React.createElement(RectBg, { y: 0, x: 0, width: sidebarWidth, height: totalHeight }),
10
10
  React.createElement(Tree, { model: model }),
11
11
  React.createElement("g", { transform: `translate(${treeWidth + 5},0)` },
12
12
  samples.map((sample, idx) => (React.createElement(RectBg, { key: `${sample.id}-${idx}`, y: idx * rowHeight, x: 0, width: labelWidth + 5, height: boxHeight, color: sample.color }))),
@@ -1 +1 @@
1
- {"version":3,"file":"ColorLegend.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,IAAI,MAAM,QAAQ,CAAA;AAIzB,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EACrC,KAAK,GAGN;IACC,MAAM,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,WAAW,GACZ,GAAG,KAAK,CAAA;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAEzC,OAAO,CACL;QACE,oBAAC,MAAM,IACL,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS,EACjC,MAAM,EAAE,WAAW,GACnB;QACF,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI;QACtB,2BAAG,SAAS,EAAE,aAAa,SAAS,GAAG,CAAC,KAAK;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,oBAAC,MAAM,IACL,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,CAAC,EAAE,GAAG,GAAG,SAAS,EAClB,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,EACrB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB,CACH,CAAC;YACD,eAAe;gBACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,8BACE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,gBAAgB,EAAC,QAAQ,EACzB,QAAQ,EAAE,WAAW,EACrB,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,IAEjC,MAAM,CAAC,KAAK,CACR,CACR,CAAC;gBACJ,CAAC,CAAC,IAAI,CACN,CACH,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"ColorLegend.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,IAAI,MAAM,QAAQ,CAAA;AAIzB,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EACrC,KAAK,GAGN;IACC,MAAM,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,EACZ,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,WAAW,GACZ,GAAG,KAAK,CAAA;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAEzC,OAAO,CACL;QACE,oBAAC,MAAM,IAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAI;QAChE,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI;QACtB,2BAAG,SAAS,EAAE,aAAa,SAAS,GAAG,CAAC,KAAK;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,oBAAC,MAAM,IACL,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,CAAC,EAAE,GAAG,GAAG,SAAS,EAClB,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,EACrB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB,CACH,CAAC;YACD,eAAe;gBACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,8BACE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,gBAAgB,EAAC,QAAQ,EACzB,QAAQ,EAAE,WAAW,EACrB,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,IAEjC,MAAM,CAAC,KAAK,CACR,CACR,CAAC;gBACJ,CAAC,CAAC,IAAI,CACN,CACH,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,WAAW,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- declare const RectBg: (props: {
2
+ declare const RectBg: ({ x, y, width, height, color, }: {
3
3
  x: number;
4
4
  y: number;
5
5
  width: number;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- const RectBg = (props) => {
3
- const { color = 'rgb(255,255,255,0.5)' } = props;
4
- return React.createElement("rect", { ...props, fill: color });
2
+ const RectBg = ({ x, y, width, height, color = 'rgb(255,255,255,0.5)', }) => {
3
+ return React.createElement("rect", { x: x, y: y, width: width, height: height, fill: color });
5
4
  };
6
5
  export default RectBg;
7
6
  //# sourceMappingURL=RectBg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RectBg.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/RectBg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,GAAG,CAAC,KAMf,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,GAAG,sBAAsB,EAAE,GAAG,KAAK,CAAA;IAChD,OAAO,iCAAU,KAAK,EAAE,IAAI,EAAE,KAAK,GAAI,CAAA;AACzC,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"RectBg.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/RectBg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,GAAG,CAAC,EACd,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,KAAK,GAAG,sBAAsB,GAO/B,EAAE,EAAE;IACH,OAAO,8BAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAI,CAAA;AACxE,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,22 +1,92 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { ResizeHandle } from '@jbrowse/core/ui';
2
3
  import { getContainingView } from '@jbrowse/core/util';
4
+ import { autorun } from 'mobx';
3
5
  import { observer } from 'mobx-react';
6
+ import { isAlive } from 'mobx-state-tree';
7
+ import { makeStyles } from 'tss-react/mui';
8
+ const useStyles = makeStyles()({
9
+ resizeHandle: {
10
+ position: 'absolute',
11
+ top: 0,
12
+ height: '100%',
13
+ width: 4,
14
+ zIndex: 1001,
15
+ background: 'transparent',
16
+ cursor: 'col-resize',
17
+ '&:hover': {
18
+ background: 'rgba(0,0,0,0.2)',
19
+ },
20
+ },
21
+ });
4
22
  const SvgWrapper = observer(function ({ children, model, exportSVG, }) {
23
+ const { classes } = useStyles();
24
+ const mouseoverRef = useRef(null);
25
+ useEffect(() => {
26
+ const ctx = mouseoverRef.current?.getContext('2d');
27
+ return ctx
28
+ ? autorun(() => {
29
+ if (isAlive(model)) {
30
+ const { totalHeight, leafMap, rowHeight, highlightedRowNames, hoveredTreeNode, } = model;
31
+ const { width: viewWidth } = getContainingView(model);
32
+ ctx.resetTransform();
33
+ ctx.clearRect(0, 0, viewWidth, totalHeight);
34
+ if (highlightedRowNames) {
35
+ ctx.fillStyle = 'rgba(255,165,0,0.2)';
36
+ const halfRowHeight = rowHeight / 2;
37
+ for (const name of highlightedRowNames) {
38
+ const leaf = leafMap.get(name);
39
+ if (leaf) {
40
+ ctx.fillRect(0, leaf.x - halfRowHeight, viewWidth, rowHeight);
41
+ }
42
+ }
43
+ // Draw orange dot at hovered tree node
44
+ if (hoveredTreeNode) {
45
+ ctx.fillStyle = 'rgba(255,165,0,0.8)';
46
+ ctx.beginPath();
47
+ ctx.arc(hoveredTreeNode.y, hoveredTreeNode.x, 4, 0, 2 * Math.PI);
48
+ ctx.fill();
49
+ ctx.strokeStyle = 'rgba(255,140,0,1)';
50
+ ctx.lineWidth = 1;
51
+ ctx.stroke();
52
+ }
53
+ }
54
+ }
55
+ })
56
+ : undefined;
57
+ }, [model]);
5
58
  if (exportSVG) {
6
59
  return React.createElement(React.Fragment, null, children);
7
60
  }
8
61
  else {
9
- const { totalHeight } = model;
62
+ const { totalHeight, treeWidth, hierarchy } = model;
10
63
  const { width } = getContainingView(model);
11
- return (React.createElement("svg", { style: {
12
- position: 'absolute',
13
- userSelect: 'none',
14
- top: 0,
15
- left: 0,
16
- pointerEvents: 'none',
17
- height: totalHeight,
18
- width,
19
- } }, children));
64
+ return (React.createElement(React.Fragment, null,
65
+ React.createElement("svg", { style: {
66
+ position: 'absolute',
67
+ userSelect: 'none',
68
+ top: 0,
69
+ left: 0,
70
+ pointerEvents: 'none',
71
+ height: totalHeight,
72
+ width,
73
+ } }, children),
74
+ React.createElement("canvas", { ref: mouseoverRef, width: width, height: totalHeight, style: {
75
+ position: 'absolute',
76
+ top: 0,
77
+ left: 0,
78
+ width,
79
+ height: totalHeight,
80
+ zIndex: 1000,
81
+ pointerEvents: 'none',
82
+ } }),
83
+ hierarchy ? (React.createElement("div", { onMouseDown: e => {
84
+ e.stopPropagation();
85
+ } },
86
+ React.createElement(ResizeHandle, { onDrag: distance => {
87
+ model.setTreeAreaWidth(Math.max(20, model.treeAreaWidth + distance));
88
+ return undefined;
89
+ }, className: classes.resizeHandle, style: { left: treeWidth }, vertical: true }))) : null));
20
90
  }
21
91
  });
22
92
  export default SvgWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"SvgWrapper.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,GAKV;IACC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,0CAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAA0B,CAAA;QACnE,OAAO,CACL,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,MAAM;gBAClB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,aAAa,EAAE,MAAM;gBACrB,MAAM,EAAE,WAAW;gBACnB,KAAK;aACN,IAEA,QAAQ,CACL,CACP,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"SvgWrapper.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEhD,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAC9B,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAK1C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC;IAC7B,YAAY,EAAE;QACZ,QAAQ,EAAE,UAAU;QACpB,GAAG,EAAE,CAAC;QACN,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,CAAC;QACR,MAAM,EAAE,IAAI;QACZ,UAAU,EAAE,aAAa;QACzB,MAAM,EAAE,YAAY;QACpB,SAAS,EAAE;YACT,UAAU,EAAE,iBAAiB;SAC9B;KACF;CACF,CAAC,CAAA;AAEF,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,GAKV;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,YAAY,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAEpD,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,GAAG,GAAG,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,IAAI,CAAC,CAAA;QAClD,OAAO,GAAG;YACR,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;gBACX,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;oBACnB,MAAM,EACJ,WAAW,EACX,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,eAAe,GAChB,GAAG,KAAK,CAAA;oBACT,MAAM,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,iBAAiB,CAC5C,KAAK,CACmB,CAAA;oBAE1B,GAAG,CAAC,cAAc,EAAE,CAAA;oBACpB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,SAAS,EAAE,WAAW,CAAC,CAAA;oBAE3C,IAAI,mBAAmB,EAAE,CAAC;wBACxB,GAAG,CAAC,SAAS,GAAG,qBAAqB,CAAA;wBACrC,MAAM,aAAa,GAAG,SAAS,GAAG,CAAC,CAAA;wBACnC,KAAK,MAAM,IAAI,IAAI,mBAAmB,EAAE,CAAC;4BACvC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;4BAC9B,IAAI,IAAI,EAAE,CAAC;gCACT,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,CAAE,GAAG,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,CAAA;4BAChE,CAAC;wBACH,CAAC;wBAED,uCAAuC;wBACvC,IAAI,eAAe,EAAE,CAAC;4BACpB,GAAG,CAAC,SAAS,GAAG,qBAAqB,CAAA;4BACrC,GAAG,CAAC,SAAS,EAAE,CAAA;4BACf,GAAG,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC,EAAE,eAAe,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,CAAA;4BAChE,GAAG,CAAC,IAAI,EAAE,CAAA;4BACV,GAAG,CAAC,WAAW,GAAG,mBAAmB,CAAA;4BACrC,GAAG,CAAC,SAAS,GAAG,CAAC,CAAA;4BACjB,GAAG,CAAC,MAAM,EAAE,CAAA;wBACd,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAA;IACf,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAA;IAEX,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,0CAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,KAAK,CAAA;QACnD,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAA0B,CAAA;QACnE,OAAO,CACL;YACE,6BACE,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,MAAM;oBAClB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,aAAa,EAAE,MAAM;oBACrB,MAAM,EAAE,WAAW;oBACnB,KAAK;iBACN,IAEA,QAAQ,CACL;YACN,gCACE,GAAG,EAAE,YAAY,EACjB,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,WAAW,EACnB,KAAK,EAAE;oBACL,QAAQ,EAAE,UAAU;oBACpB,GAAG,EAAE,CAAC;oBACN,IAAI,EAAE,CAAC;oBACP,KAAK;oBACL,MAAM,EAAE,WAAW;oBACnB,MAAM,EAAE,IAAI;oBACZ,aAAa,EAAE,MAAM;iBACtB,GACD;YACD,SAAS,CAAC,CAAC,CAAC,CACX,6BACE,WAAW,EAAE,CAAC,CAAC,EAAE;oBACf,CAAC,CAAC,eAAe,EAAE,CAAA;gBACrB,CAAC;gBAED,oBAAC,YAAY,IACX,MAAM,EAAE,QAAQ,CAAC,EAAE;wBACjB,KAAK,CAAC,gBAAgB,CACpB,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,aAAa,GAAG,QAAQ,CAAC,CAC7C,CAAA;wBACD,OAAO,SAAS,CAAA;oBAClB,CAAC,EACD,SAAS,EAAE,OAAO,CAAC,YAAY,EAC/B,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,EAC1B,QAAQ,SACR,CACE,CACP,CAAC,CAAC,CAAC,IAAI,CACP,CACJ,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
@@ -1,11 +1,33 @@
1
- import React from 'react';
1
+ import React, { useCallback, useMemo } from 'react';
2
2
  import { observer } from 'mobx-react';
3
+ const hitboxStyle = {
4
+ pointerEvents: 'all',
5
+ cursor: 'pointer',
6
+ strokeWidth: 8,
7
+ stroke: 'transparent',
8
+ };
3
9
  const Tree = observer(function ({ model }) {
4
10
  const {
5
- // this is needed for redrawing after zoom change, similar to react-msaview
6
- // renderTreeCanvas
11
+ // rowHeight is needed for redrawing after zoom change
7
12
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
- rowHeight: _rowHeight, hierarchy, showBranchLen, } = model;
13
+ rowHeight: _rowHeight, treeAreaWidth, hierarchy, showBranchLen, nodeDescendantNames, } = model;
14
+ const clearHighlight = useCallback(() => {
15
+ model.setHighlightedRowNames(undefined);
16
+ }, [model]);
17
+ const nodeHandlers = useMemo(() => {
18
+ const handlers = new Map();
19
+ if (hierarchy) {
20
+ for (const node of hierarchy.descendants()) {
21
+ handlers.set(node, () => {
22
+ model.setHighlightedRowNames(nodeDescendantNames.get(node), {
23
+ x: node.x,
24
+ y: node.y,
25
+ });
26
+ });
27
+ }
28
+ }
29
+ return handlers;
30
+ }, [model, hierarchy, nodeDescendantNames, treeAreaWidth]);
9
31
  return (React.createElement(React.Fragment, null, hierarchy
10
32
  ? [...hierarchy.links()].map(link => {
11
33
  const { source, target } = link;
@@ -15,12 +37,11 @@ const Tree = observer(function ({ model }) {
15
37
  const tx = showBranchLen ? target.len : target.y;
16
38
  // @ts-expect-error
17
39
  const sx = showBranchLen ? source.len : source.y;
18
- // 1d line intersection to check if line crosses block at all, this is
19
- // an optimization that allows us to skip drawing most tree links
20
- // outside the block
21
- return (React.createElement(React.Fragment, { key: [sy, ty, tx, sx].join('-') },
40
+ return (React.createElement(React.Fragment, { key: `${treeAreaWidth}-${sy}-${ty}-${tx}-${sx}` },
22
41
  React.createElement("line", { stroke: "black", x1: sx, y1: sy, x2: sx, y2: ty }),
23
- React.createElement("line", { stroke: "black", x1: sx, y1: ty, x2: tx, y2: ty })));
42
+ React.createElement("line", { stroke: "black", x1: sx, y1: ty, x2: tx, y2: ty }),
43
+ React.createElement("line", { x1: sx, y1: sy, x2: sx, y2: ty, style: hitboxStyle, onMouseEnter: nodeHandlers.get(source), onMouseLeave: clearHighlight }),
44
+ React.createElement("line", { x1: sx, y1: ty, x2: tx, y2: ty, style: hitboxStyle, onMouseEnter: nodeHandlers.get(target), onMouseLeave: clearHighlight })));
24
45
  })
25
46
  : null));
26
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/Tree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAoC;IACzE,MAAM;IACJ,2EAA2E;IAC3E,mBAAmB;IACnB,8DAA8D;IAC9D,SAAS,EAAE,UAAU,EAErB,SAAS,EACT,aAAa,GACd,GAAG,KAAK,CAAA;IAET,OAAO,CACL,0CACG,SAAS;QACR,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAE,CAAA;YACpB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAE,CAAA;YACpB,mBAAmB;YACnB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAChD,mBAAmB;YACnB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAEhD,sEAAsE;YACtE,iEAAiE;YACjE,oBAAoB;YACpB,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC7C,8BAAM,MAAM,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI;gBACvD,8BAAM,MAAM,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,CACxC,CAClB,CAAA;QACH,CAAC,CAAC;QACJ,CAAC,CAAC,IAAI,CACP,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/Tree.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import type { LinearMafDisplayModel } from '../../stateModel';
3
3
  export declare const YScaleBars: (props: {
4
4
  model: LinearMafDisplayModel;
5
- orientation?: string;
6
5
  exportSVG?: boolean;
7
6
  }) => React.JSX.Element;
8
7
  export default YScaleBars;
@@ -1 +1 @@
1
- {"version":3,"file":"YScaleBars.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,UAAU,MAAM,cAAc,CAAA;AAIrC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,KAI5C;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,CACL,oBAAC,UAAU,OAAK,KAAK;QACnB,oBAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAClB,CACd,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"YScaleBars.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,UAAU,MAAM,cAAc,CAAA;AAIrC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,KAG5C;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,CACL,oBAAC,UAAU,OAAK,KAAK;QACnB,oBAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAClB,CACd,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
@@ -12,6 +12,6 @@ export async function renderSvg(self, opts, superRenderSvg) {
12
12
  React.createElement("g", { clipPath: `url(#${clipid})` },
13
13
  React.createElement("g", { id: "snpcov" }, await superRenderSvg(opts)),
14
14
  React.createElement("g", { transform: `translate(${Math.max(-offsetPx, 0)})` },
15
- React.createElement(YScaleBars, { model: self, orientation: "left", exportSVG: true })))));
15
+ React.createElement(YScaleBars, { model: self, exportSVG: true })))));
16
16
  }
17
17
  //# sourceMappingURL=renderSvg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderSvg.js","sourceRoot":"","sources":["../../src/LinearMafDisplay/renderSvg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,UAAU,MAAM,iCAAiC,CAAA;AAQxD,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAA2B,EAC3B,IAA6B,EAC7B,cAA2E;IAE3E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAA0B,CAAA;IAC5E,MAAM,MAAM,GAAG,WAAW,EAAE,EAAE,CAAA;IAC9B,OAAO,CACL;QACE;YACE,kCAAU,EAAE,EAAE,MAAM;gBAClB,8BAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CACzC,CACN;QACP,2BAAG,QAAQ,EAAE,QAAQ,MAAM,GAAG;YAC5B,2BAAG,EAAE,EAAC,QAAQ,IAAE,MAAM,cAAc,CAAC,IAAI,CAAC,CAAK;YAC/C,2BAAG,SAAS,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;gBAClD,oBAAC,UAAU,IAAC,KAAK,EAAE,IAAI,EAAE,WAAW,EAAC,MAAM,EAAC,SAAS,SAAG,CACtD,CACF,CACH,CACJ,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"renderSvg.js","sourceRoot":"","sources":["../../src/LinearMafDisplay/renderSvg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAEtD,OAAO,UAAU,MAAM,iCAAiC,CAAA;AAQxD,MAAM,CAAC,KAAK,UAAU,SAAS,CAC7B,IAA2B,EAC3B,IAA6B,EAC7B,cAA2E;IAE3E,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,GAAG,IAAI,CAAA;IAC3B,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAA0B,CAAA;IAC5E,MAAM,MAAM,GAAG,WAAW,EAAE,EAAE,CAAA;IAC9B,OAAO,CACL;QACE;YACE,kCAAU,EAAE,EAAE,MAAM;gBAClB,8BAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,GAAI,CACzC,CACN;QACP,2BAAG,QAAQ,EAAE,QAAQ,MAAM,GAAG;YAC5B,2BAAG,EAAE,EAAC,QAAQ,IAAE,MAAM,cAAc,CAAC,IAAI,CAAC,CAAK;YAC/C,2BAAG,SAAS,EAAE,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,GAAG;gBAClD,oBAAC,UAAU,IAAC,KAAK,EAAE,IAAI,EAAE,SAAS,SAAG,CACnC,CACF,CACH,CACJ,CAAA;AACH,CAAC"}
@@ -36,7 +36,9 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
36
36
  maxHeightReached: boolean;
37
37
  ReactComponent: ({ model, }: {
38
38
  model: {
39
- error?: unknown;
39
+ error? /**
40
+ * #property
41
+ */: unknown;
40
42
  reload: () => void;
41
43
  message: React.ReactNode;
42
44
  filled?: boolean;
@@ -94,6 +96,7 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
94
96
  showBranchLen: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
95
97
  treeAreaWidth: import("mobx-state-tree").IType<number | undefined, number, number>;
96
98
  showAsUpperCase: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
99
+ showSidebar: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
97
100
  }, {
98
101
  rendererTypeName: string;
99
102
  error: unknown;
@@ -187,6 +190,7 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
187
190
  regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
188
191
  regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): import("react/jsx-runtime").JSX.Element | null;
189
192
  } & {
193
+ mouseoverExtraInformation: string | undefined;
190
194
  featureIdUnderMouse: undefined | string;
191
195
  contextMenuFeature: undefined | import("@jbrowse/core/util").Feature;
192
196
  } & {
@@ -201,9 +205,22 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
201
205
  } & {
202
206
  readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
203
207
  readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
208
+ readonly layoutFeatures: import("@jbrowse/core/util/compositeMap").default<string, [number, number, number, number] | [number, number, number, number, {
209
+ label?: string;
210
+ description?: string;
211
+ refName: string;
212
+ }]>;
204
213
  getFeatureOverlapping(blockKey: string, x: number, y: number): string | undefined;
205
- getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
206
- searchFeatureByID(id: string): [number, number, number, number] | undefined;
214
+ getFeatureByID(blockKey: string, id: string): ([number, number, number, number] | [number, number, number, number, {
215
+ label?: string;
216
+ description?: string;
217
+ refName: string;
218
+ }]) | undefined;
219
+ searchFeatureByID(id: string): ([number, number, number, number] | [number, number, number, number, {
220
+ label?: string;
221
+ description?: string;
222
+ refName: string;
223
+ }]) | undefined;
207
224
  } & {
208
225
  addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
209
226
  deleteBlock(key: string): void;
@@ -212,6 +229,7 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
212
229
  clearFeatureSelection(): void;
213
230
  setFeatureIdUnderMouse(feature?: string): void;
214
231
  setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature): void;
232
+ setMouseoverExtraInformation(extra?: string): void;
215
233
  } & {
216
234
  reload(): Promise<void>;
217
235
  } & {
@@ -238,6 +256,17 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
238
256
  * #volatile
239
257
  */
240
258
  volatileTree: any;
259
+ /**
260
+ * #volatile
261
+ */
262
+ highlightedRowNames: string[] | undefined;
263
+ /**
264
+ * #volatile
265
+ */
266
+ hoveredTreeNode: {
267
+ x: number;
268
+ y: number;
269
+ } | undefined;
241
270
  } & {
242
271
  /**
243
272
  * #action
@@ -270,6 +299,30 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
270
299
  * #action
271
300
  */
272
301
  setShowAsUpperCase(arg: boolean): void;
302
+ /**
303
+ * #action
304
+ */
305
+ setTreeAreaWidth(width: number): void;
306
+ /**
307
+ * #action
308
+ */
309
+ setShowSidebar(arg: boolean): void;
310
+ /**
311
+ * #action
312
+ */
313
+ setHighlightedRowNames(names?: string[], nodePosition?: {
314
+ x: number;
315
+ y: number;
316
+ }): void;
317
+ /**
318
+ * #action
319
+ */
320
+ showInsertionSequenceDialog(insertionData: {
321
+ sequence: string;
322
+ sampleLabel: string;
323
+ chr: string;
324
+ pos: number;
325
+ }): void;
273
326
  } & {
274
327
  /**
275
328
  * #getter
@@ -302,6 +355,15 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
302
355
  * #getter
303
356
  */
304
357
  readonly leaves: HierarchyNode<any>[] | undefined;
358
+ /**
359
+ * #getter
360
+ */
361
+ readonly leafMap: Map<any, HierarchyNode<any>>;
362
+ /**
363
+ * #getter
364
+ * Precomputed map from hierarchy node to its descendant leaf names
365
+ */
366
+ readonly nodeDescendantNames: Map<unknown, string[]>;
305
367
  /**
306
368
  * #getter
307
369
  */
@@ -347,6 +409,10 @@ export default function stateModelFactory(configSchema: AnyConfigurationSchemaTy
347
409
  * #getter
348
410
  */
349
411
  readonly labelWidth: number;
412
+ /**
413
+ * #getter
414
+ */
415
+ readonly sidebarWidth: number;
350
416
  } & {
351
417
  afterCreate(): void;
352
418
  } & {