react-msaview 2.0.0 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundle/index.js +35 -33
- package/dist/UniprotTrack.js +6 -5
- package/dist/UniprotTrack.js.map +1 -1
- package/dist/colorSchemes.d.ts +3 -9
- package/dist/colorSchemes.js +8 -6
- package/dist/colorSchemes.js.map +1 -1
- package/dist/components/BoxTrack.d.ts +4 -3
- package/dist/components/BoxTrack.js +6 -137
- package/dist/components/BoxTrack.js.map +1 -1
- package/dist/components/BoxTrackBlock.d.ts +8 -0
- package/dist/components/BoxTrackBlock.js +136 -0
- package/dist/components/BoxTrackBlock.js.map +1 -0
- package/dist/components/Header.d.ts +2 -1
- package/dist/components/Header.js +29 -27
- package/dist/components/Header.js.map +1 -1
- package/dist/components/ImportForm.d.ts +2 -1
- package/dist/components/MSABlock.d.ts +8 -0
- package/dist/components/MSABlock.js +103 -0
- package/dist/components/MSABlock.js.map +1 -0
- package/dist/components/MSACanvas.d.ts +2 -1
- package/dist/components/MSACanvas.js +3 -101
- package/dist/components/MSACanvas.js.map +1 -1
- package/dist/components/MSAMouseoverCanvas.d.ts +6 -0
- package/dist/components/MSAMouseoverCanvas.js +52 -0
- package/dist/components/MSAMouseoverCanvas.js.map +1 -0
- package/dist/components/MSAView.d.ts +2 -1
- package/dist/components/MSAView.js +10 -36
- package/dist/components/MSAView.js.map +1 -1
- package/dist/components/MultiAlignmentSelector.d.ts +6 -0
- package/dist/components/MultiAlignmentSelector.js +13 -0
- package/dist/components/MultiAlignmentSelector.js.map +1 -0
- package/dist/components/ResizeHandles.d.ts +3 -2
- package/dist/components/Rubberband.d.ts +1 -1
- package/dist/components/Rubberband.js +0 -1
- package/dist/components/Rubberband.js.map +1 -1
- package/dist/components/Ruler.d.ts +2 -1
- package/dist/components/Ruler.js +2 -2
- package/dist/components/Ruler.js.map +1 -1
- package/dist/components/TextTrack.d.ts +2 -1
- package/dist/components/Track.d.ts +3 -2
- package/dist/components/Track.js +4 -3
- package/dist/components/Track.js.map +1 -1
- package/dist/components/TreeBranchMenu.d.ts +14 -0
- package/dist/components/TreeBranchMenu.js +26 -0
- package/dist/components/TreeBranchMenu.js.map +1 -0
- package/dist/components/TreeCanvas.d.ts +2 -1
- package/dist/components/TreeCanvas.js +2 -320
- package/dist/components/TreeCanvas.js.map +1 -1
- package/dist/components/TreeCanvasBlock.d.ts +7 -0
- package/dist/components/TreeCanvasBlock.js +252 -0
- package/dist/components/TreeCanvasBlock.js.map +1 -0
- package/dist/components/TreeMenu.d.ts +12 -0
- package/dist/components/TreeMenu.js +56 -0
- package/dist/components/TreeMenu.js.map +1 -0
- package/dist/components/TreeRuler.d.ts +2 -1
- package/dist/components/VerticalGuide.d.ts +2 -1
- package/dist/components/ZoomControls.d.ts +6 -0
- package/dist/components/ZoomControls.js +58 -0
- package/dist/components/ZoomControls.js.map +1 -0
- package/dist/components/dialogs/AboutDlg.d.ts +4 -0
- package/dist/components/{AboutDlg.js → dialogs/AboutDlg.js} +3 -3
- package/dist/components/dialogs/AboutDlg.js.map +1 -0
- package/dist/components/{AddTrackDlg.d.ts → dialogs/AddTrackDlg.d.ts} +3 -2
- package/dist/components/dialogs/AddTrackDlg.js.map +1 -0
- package/dist/components/{AnnotationDlg.d.ts → dialogs/AnnotationDlg.d.ts} +3 -2
- package/dist/components/dialogs/AnnotationDlg.js.map +1 -0
- package/dist/components/dialogs/DetailsDlg.d.ts +7 -0
- package/dist/components/{DetailsDlg.js → dialogs/DetailsDlg.js} +3 -2
- package/dist/components/dialogs/DetailsDlg.js.map +1 -0
- package/dist/components/{MoreInfoDlg.d.ts → dialogs/MoreInfoDlg.d.ts} +2 -1
- package/dist/components/dialogs/MoreInfoDlg.js.map +1 -0
- package/dist/components/dialogs/SettingsDlg.d.ts +7 -0
- package/dist/components/{SettingsDlg.js → dialogs/SettingsDlg.js} +4 -3
- package/dist/components/dialogs/SettingsDlg.js.map +1 -0
- package/dist/components/{TrackInfoDlg.d.ts → dialogs/TrackInfoDlg.d.ts} +2 -1
- package/dist/components/dialogs/TrackInfoDlg.js.map +1 -0
- package/dist/components/dialogs/TracklistDlg.d.ts +7 -0
- package/dist/components/{TracklistDlg.js → dialogs/TracklistDlg.js} +2 -2
- package/dist/components/dialogs/TracklistDlg.js.map +1 -0
- package/dist/components/util.js +0 -1
- package/dist/components/util.js.map +1 -1
- package/dist/model.d.ts +36 -39
- package/dist/model.js +25 -22
- package/dist/model.js.map +1 -1
- package/dist/parseNewick.js +2 -2
- package/dist/parseNewick.js.map +1 -1
- package/dist/parsers/FastaMSA.d.ts +1 -3
- package/dist/parsers/FastaMSA.js +2 -2
- package/dist/parsers/FastaMSA.js.map +1 -1
- package/dist/parsers/StockholmMSA.d.ts +3 -5
- package/dist/parsers/StockholmMSA.js +3 -3
- package/dist/parsers/StockholmMSA.js.map +1 -1
- package/dist/util.d.ts +5 -7
- package/dist/util.js +4 -2
- package/dist/util.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/version.js.map +1 -1
- package/package.json +9 -9
- package/src/UniprotTrack.ts +6 -7
- package/src/colorSchemes.ts +12 -9
- package/src/components/BoxTrack.tsx +6 -198
- package/src/components/BoxTrackBlock.tsx +198 -0
- package/src/components/Header.tsx +49 -60
- package/src/components/MSABlock.tsx +164 -0
- package/src/components/MSACanvas.tsx +3 -158
- package/src/components/MSAMouseoverCanvas.tsx +87 -0
- package/src/components/MSAView.tsx +19 -63
- package/src/components/MultiAlignmentSelector.tsx +33 -0
- package/src/components/Rubberband.tsx +0 -1
- package/src/components/Ruler.tsx +2 -1
- package/src/components/Track.tsx +9 -6
- package/src/components/TreeBranchMenu.tsx +67 -0
- package/src/components/TreeCanvas.tsx +2 -507
- package/src/components/TreeCanvasBlock.tsx +359 -0
- package/src/components/TreeMenu.tsx +105 -0
- package/src/components/ZoomControls.tsx +78 -0
- package/src/components/{AboutDlg.tsx → dialogs/AboutDlg.tsx} +3 -9
- package/src/components/{AddTrackDlg.tsx → dialogs/AddTrackDlg.tsx} +1 -1
- package/src/components/{AnnotationDlg.tsx → dialogs/AnnotationDlg.tsx} +2 -2
- package/src/components/{DetailsDlg.tsx → dialogs/DetailsDlg.tsx} +5 -5
- package/src/components/{SettingsDlg.tsx → dialogs/SettingsDlg.tsx} +6 -6
- package/src/components/{TracklistDlg.tsx → dialogs/TracklistDlg.tsx} +2 -4
- package/src/components/util.ts +0 -1
- package/src/declare.d.ts +0 -1
- package/src/model.ts +32 -29
- package/src/parseNewick.ts +2 -3
- package/src/parsers/FastaMSA.ts +3 -3
- package/src/parsers/StockholmMSA.ts +5 -5
- package/src/util.ts +8 -5
- package/src/version.ts +1 -1
- package/dist/components/AboutDlg.d.ts +0 -4
- package/dist/components/AboutDlg.js.map +0 -1
- package/dist/components/AddTrackDlg.js.map +0 -1
- package/dist/components/AnnotationDlg.js.map +0 -1
- package/dist/components/DetailsDlg.d.ts +0 -7
- package/dist/components/DetailsDlg.js.map +0 -1
- package/dist/components/MoreInfoDlg.js.map +0 -1
- package/dist/components/SettingsDlg.d.ts +0 -7
- package/dist/components/SettingsDlg.js.map +0 -1
- package/dist/components/TrackInfoDlg.js.map +0 -1
- package/dist/components/TracklistDlg.d.ts +0 -7
- package/dist/components/TracklistDlg.js.map +0 -1
- /package/dist/components/{AddTrackDlg.js → dialogs/AddTrackDlg.js} +0 -0
- /package/dist/components/{AnnotationDlg.js → dialogs/AnnotationDlg.js} +0 -0
- /package/dist/components/{MoreInfoDlg.js → dialogs/MoreInfoDlg.js} +0 -0
- /package/dist/components/{TrackInfoDlg.js → dialogs/TrackInfoDlg.js} +0 -0
- /package/src/components/{MoreInfoDlg.tsx → dialogs/MoreInfoDlg.tsx} +0 -0
- /package/src/components/{TrackInfoDlg.tsx → dialogs/TrackInfoDlg.tsx} +0 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useMemo } from 'react';
|
|
2
|
+
import { useTheme } from '@mui/material';
|
|
3
|
+
import { observer } from 'mobx-react';
|
|
4
|
+
import { colorContrast } from '../util';
|
|
5
|
+
import { getClustalXColor, getPercentIdentityColor } from '../colorSchemes';
|
|
6
|
+
const MSABlock = observer(function ({ model, offsetX, offsetY, }) {
|
|
7
|
+
const { MSA, colWidth, bgColor, columns, rowHeight, scrollY, scrollX, hierarchy, colorScheme, colorSchemeName, blockSize, highResScaleFactor, colStats, } = model;
|
|
8
|
+
const theme = useTheme();
|
|
9
|
+
const contrastScheme = useMemo(() => colorContrast(colorScheme, theme), [colorScheme, theme]);
|
|
10
|
+
const ref = useRef(null);
|
|
11
|
+
useEffect(() => {
|
|
12
|
+
var _a, _b;
|
|
13
|
+
if (!ref.current) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
const ctx = ref.current.getContext('2d');
|
|
17
|
+
if (!ctx) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
ctx.resetTransform();
|
|
21
|
+
ctx.scale(highResScaleFactor, highResScaleFactor);
|
|
22
|
+
ctx.clearRect(0, 0, blockSize, blockSize);
|
|
23
|
+
ctx.translate(-offsetX, rowHeight / 2 - offsetY);
|
|
24
|
+
ctx.textAlign = 'center';
|
|
25
|
+
ctx.font = ctx.font.replace(/\d+px/, `${Math.max(8, rowHeight - 8)}px`);
|
|
26
|
+
const leaves = hierarchy.leaves();
|
|
27
|
+
const b = blockSize;
|
|
28
|
+
// slice vertical rows, e.g. tree leaves, avoid negative slice
|
|
29
|
+
const yStart = Math.max(0, Math.floor((offsetY - rowHeight) / rowHeight));
|
|
30
|
+
const yEnd = Math.max(0, Math.ceil((offsetY + b + rowHeight) / rowHeight));
|
|
31
|
+
// slice horizontal visible letters, avoid negative slice
|
|
32
|
+
const xStart = Math.max(0, Math.floor(offsetX / colWidth));
|
|
33
|
+
const xEnd = Math.max(0, Math.ceil((offsetX + b) / colWidth));
|
|
34
|
+
const visibleLeaves = leaves.slice(yStart, yEnd);
|
|
35
|
+
for (const node of visibleLeaves) {
|
|
36
|
+
const {
|
|
37
|
+
// @ts-expect-error
|
|
38
|
+
x: y, data: { name }, } = node;
|
|
39
|
+
const str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);
|
|
40
|
+
for (let i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {
|
|
41
|
+
const letter = str[i];
|
|
42
|
+
const color = colorSchemeName === 'clustalx_protein_dynamic'
|
|
43
|
+
? getClustalXColor(colStats[xStart + i], model, name, xStart + i)
|
|
44
|
+
: colorSchemeName === 'percent_identity_dynamic'
|
|
45
|
+
? getPercentIdentityColor(colStats[xStart + i], model, name, xStart + i)
|
|
46
|
+
: colorScheme[letter.toUpperCase()];
|
|
47
|
+
if (bgColor) {
|
|
48
|
+
const x = i * colWidth + offsetX - (offsetX % colWidth);
|
|
49
|
+
ctx.fillStyle = color || 'white';
|
|
50
|
+
ctx.fillRect(x, y - rowHeight, colWidth, rowHeight);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (rowHeight >= 5 && colWidth > rowHeight / 2) {
|
|
55
|
+
for (const node of visibleLeaves) {
|
|
56
|
+
const {
|
|
57
|
+
// @ts-expect-error
|
|
58
|
+
x: y, data: { name }, } = node;
|
|
59
|
+
const str = (_b = columns[name]) === null || _b === void 0 ? void 0 : _b.slice(xStart, xEnd);
|
|
60
|
+
for (let i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {
|
|
61
|
+
const letter = str[i];
|
|
62
|
+
const color = colorScheme[letter.toUpperCase()];
|
|
63
|
+
const contrast = contrastScheme[letter.toUpperCase()] || 'black';
|
|
64
|
+
const x = i * colWidth + offsetX - (offsetX % colWidth);
|
|
65
|
+
// note: -rowHeight/4 matches +rowHeight/4 in tree
|
|
66
|
+
ctx.fillStyle = bgColor ? contrast : color || 'black';
|
|
67
|
+
ctx.fillText(letter, x + colWidth / 2, y - rowHeight / 4);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
|
+
}, [
|
|
73
|
+
MSA,
|
|
74
|
+
highResScaleFactor,
|
|
75
|
+
columns,
|
|
76
|
+
colorScheme,
|
|
77
|
+
contrastScheme,
|
|
78
|
+
bgColor,
|
|
79
|
+
rowHeight,
|
|
80
|
+
colWidth,
|
|
81
|
+
hierarchy,
|
|
82
|
+
offsetX,
|
|
83
|
+
offsetY,
|
|
84
|
+
blockSize,
|
|
85
|
+
]);
|
|
86
|
+
return (React.createElement("canvas", { ref: ref, onMouseMove: event => {
|
|
87
|
+
if (!ref.current) {
|
|
88
|
+
return;
|
|
89
|
+
}
|
|
90
|
+
const { left, top } = ref.current.getBoundingClientRect();
|
|
91
|
+
const mouseX = event.clientX - left + offsetX;
|
|
92
|
+
const mouseY = event.clientY - top + offsetY;
|
|
93
|
+
model.setMousePos(Math.floor(mouseX / colWidth) + 1, Math.floor(mouseY / rowHeight));
|
|
94
|
+
}, onMouseLeave: () => model.setMousePos(), width: blockSize * highResScaleFactor, height: blockSize * highResScaleFactor, style: {
|
|
95
|
+
position: 'absolute',
|
|
96
|
+
top: scrollY + offsetY,
|
|
97
|
+
left: scrollX + offsetX,
|
|
98
|
+
width: blockSize,
|
|
99
|
+
height: blockSize,
|
|
100
|
+
} }));
|
|
101
|
+
});
|
|
102
|
+
export default MSABlock;
|
|
103
|
+
//# sourceMappingURL=MSABlock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MSABlock.js","sourceRoot":"","sources":["../../src/components/MSABlock.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,106 +1,8 @@
|
|
|
1
|
-
import React, { useEffect, useState, useRef
|
|
2
|
-
import { Typography, CircularProgress
|
|
1
|
+
import React, { useEffect, useState, useRef } from 'react';
|
|
2
|
+
import { Typography, CircularProgress } from '@mui/material';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import normalizeWheel from 'normalize-wheel';
|
|
5
|
-
import
|
|
6
|
-
import { getClustalXColor, getPercentIdentityColor } from '../colorSchemes';
|
|
7
|
-
const MSABlock = observer(function ({ model, offsetX, offsetY, }) {
|
|
8
|
-
const { MSA, colWidth, bgColor, columns, rowHeight, scrollY, scrollX, hierarchy, colorScheme, colorSchemeName, blockSize, highResScaleFactor, colStats, } = model;
|
|
9
|
-
const theme = useTheme();
|
|
10
|
-
const contrastScheme = useMemo(() => colorContrast(colorScheme, theme), [colorScheme, theme]);
|
|
11
|
-
const ref = useRef(null);
|
|
12
|
-
useEffect(() => {
|
|
13
|
-
if (!ref.current) {
|
|
14
|
-
return;
|
|
15
|
-
}
|
|
16
|
-
const ctx = ref.current.getContext('2d');
|
|
17
|
-
if (!ctx) {
|
|
18
|
-
return;
|
|
19
|
-
}
|
|
20
|
-
ctx.resetTransform();
|
|
21
|
-
ctx.scale(highResScaleFactor, highResScaleFactor);
|
|
22
|
-
ctx.clearRect(0, 0, blockSize, blockSize);
|
|
23
|
-
ctx.translate(-offsetX, rowHeight / 2 - offsetY);
|
|
24
|
-
ctx.textAlign = 'center';
|
|
25
|
-
ctx.font = ctx.font.replace(/\d+px/, `${Math.max(8, rowHeight - 8)}px`);
|
|
26
|
-
const leaves = hierarchy.leaves();
|
|
27
|
-
const b = blockSize;
|
|
28
|
-
// slice vertical rows, e.g. tree leaves, avoid negative slice
|
|
29
|
-
const yStart = Math.max(0, Math.floor((offsetY - rowHeight) / rowHeight));
|
|
30
|
-
const yEnd = Math.max(0, Math.ceil((offsetY + b + rowHeight) / rowHeight));
|
|
31
|
-
// slice horizontal visible letters, avoid negative slice
|
|
32
|
-
const xStart = Math.max(0, Math.floor(offsetX / colWidth));
|
|
33
|
-
const xEnd = Math.max(0, Math.ceil((offsetX + b) / colWidth));
|
|
34
|
-
const visibleLeaves = leaves.slice(yStart, yEnd);
|
|
35
|
-
visibleLeaves.forEach(node => {
|
|
36
|
-
var _a;
|
|
37
|
-
const {
|
|
38
|
-
// @ts-expect-error
|
|
39
|
-
x: y, data: { name }, } = node;
|
|
40
|
-
const str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);
|
|
41
|
-
for (let i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {
|
|
42
|
-
const letter = str[i];
|
|
43
|
-
const color = colorSchemeName === 'clustalx_protein_dynamic'
|
|
44
|
-
? getClustalXColor(colStats[xStart + i], model, name, xStart + i)
|
|
45
|
-
: colorSchemeName === 'percent_identity_dynamic'
|
|
46
|
-
? getPercentIdentityColor(colStats[xStart + i], model, name, xStart + i)
|
|
47
|
-
: colorScheme[letter.toUpperCase()];
|
|
48
|
-
if (bgColor) {
|
|
49
|
-
const x = i * colWidth + offsetX - (offsetX % colWidth);
|
|
50
|
-
ctx.fillStyle = color || 'white';
|
|
51
|
-
ctx.fillRect(x, y - rowHeight, colWidth, rowHeight);
|
|
52
|
-
}
|
|
53
|
-
}
|
|
54
|
-
});
|
|
55
|
-
if (rowHeight >= 10 && colWidth >= rowHeight / 2) {
|
|
56
|
-
visibleLeaves.forEach(node => {
|
|
57
|
-
var _a;
|
|
58
|
-
const {
|
|
59
|
-
// @ts-expect-error
|
|
60
|
-
x: y, data: { name }, } = node;
|
|
61
|
-
const str = (_a = columns[name]) === null || _a === void 0 ? void 0 : _a.slice(xStart, xEnd);
|
|
62
|
-
for (let i = 0; i < (str === null || str === void 0 ? void 0 : str.length); i++) {
|
|
63
|
-
const letter = str[i];
|
|
64
|
-
const color = colorScheme[letter.toUpperCase()];
|
|
65
|
-
const contrast = contrastScheme[letter.toUpperCase()] || 'black';
|
|
66
|
-
const x = i * colWidth + offsetX - (offsetX % colWidth);
|
|
67
|
-
// note: -rowHeight/4 matches +rowHeight/4 in tree
|
|
68
|
-
ctx.fillStyle = bgColor ? contrast : color || 'black';
|
|
69
|
-
ctx.fillText(letter, x + colWidth / 2, y - rowHeight / 4);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
74
|
-
}, [
|
|
75
|
-
MSA,
|
|
76
|
-
highResScaleFactor,
|
|
77
|
-
columns,
|
|
78
|
-
colorScheme,
|
|
79
|
-
contrastScheme,
|
|
80
|
-
bgColor,
|
|
81
|
-
rowHeight,
|
|
82
|
-
colWidth,
|
|
83
|
-
hierarchy,
|
|
84
|
-
offsetX,
|
|
85
|
-
offsetY,
|
|
86
|
-
blockSize,
|
|
87
|
-
]);
|
|
88
|
-
return (React.createElement("canvas", { ref: ref, onMouseMove: event => {
|
|
89
|
-
if (!ref.current) {
|
|
90
|
-
return;
|
|
91
|
-
}
|
|
92
|
-
const { left, top } = ref.current.getBoundingClientRect();
|
|
93
|
-
const mouseX = event.clientX - left;
|
|
94
|
-
const mouseY = event.clientY - top;
|
|
95
|
-
model.setMousePos(Math.floor((mouseX + offsetX) / colWidth) + 1, Math.floor((mouseY + offsetY) / rowHeight));
|
|
96
|
-
}, onMouseLeave: () => model.setMousePos(), width: blockSize * highResScaleFactor, height: blockSize * highResScaleFactor, style: {
|
|
97
|
-
position: 'absolute',
|
|
98
|
-
top: scrollY + offsetY,
|
|
99
|
-
left: scrollX + offsetX,
|
|
100
|
-
width: blockSize,
|
|
101
|
-
height: blockSize,
|
|
102
|
-
} }));
|
|
103
|
-
});
|
|
5
|
+
import MSABlock from './MSABlock';
|
|
104
6
|
const MSACanvas = observer(function ({ model }) {
|
|
105
7
|
const { MSA, msaFilehandle, height, msaAreaWidth, blocks2d } = model;
|
|
106
8
|
const ref = useRef(null);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSACanvas.js","sourceRoot":"","sources":["../../src/components/MSACanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"MSACanvas.js","sourceRoot":"","sources":["../../src/components/MSACanvas.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React, { useEffect, useRef } from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { sum } from '@jbrowse/core/util';
|
|
4
|
+
const MSAMouseoverCanvas = observer(function ({ model, }) {
|
|
5
|
+
const ref = useRef(null);
|
|
6
|
+
const { height, width, treeAreaWidth, resizeHandleWidth, rulerHeight, turnedOnTracks, scrollX, scrollY, mouseCol, mouseRow, rowHeight, colWidth, } = model;
|
|
7
|
+
const totalTrackAreaHeight = sum(turnedOnTracks.map(r => r.model.height));
|
|
8
|
+
useEffect(() => {
|
|
9
|
+
if (!ref.current) {
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const ctx = ref.current.getContext('2d');
|
|
13
|
+
if (!ctx) {
|
|
14
|
+
return;
|
|
15
|
+
}
|
|
16
|
+
ctx.resetTransform();
|
|
17
|
+
ctx.clearRect(0, 0, width, height);
|
|
18
|
+
ctx.fillStyle = 'rgba(0,0,0,0.15)';
|
|
19
|
+
if (mouseCol !== undefined) {
|
|
20
|
+
const x = (mouseCol - 1) * colWidth + scrollX + treeAreaWidth + resizeHandleWidth;
|
|
21
|
+
ctx.fillRect(x, 0, colWidth, height);
|
|
22
|
+
}
|
|
23
|
+
if (mouseRow !== undefined) {
|
|
24
|
+
const y = mouseRow * rowHeight + scrollY + rulerHeight + totalTrackAreaHeight;
|
|
25
|
+
ctx.fillRect(treeAreaWidth + resizeHandleWidth, y, width, rowHeight);
|
|
26
|
+
}
|
|
27
|
+
}, [
|
|
28
|
+
mouseCol,
|
|
29
|
+
colWidth,
|
|
30
|
+
scrollY,
|
|
31
|
+
totalTrackAreaHeight,
|
|
32
|
+
mouseRow,
|
|
33
|
+
rowHeight,
|
|
34
|
+
rulerHeight,
|
|
35
|
+
scrollX,
|
|
36
|
+
height,
|
|
37
|
+
resizeHandleWidth,
|
|
38
|
+
treeAreaWidth,
|
|
39
|
+
width,
|
|
40
|
+
]);
|
|
41
|
+
return (React.createElement("canvas", { ref: ref, width: width, height: height, style: {
|
|
42
|
+
position: 'absolute',
|
|
43
|
+
top: 0,
|
|
44
|
+
left: 0,
|
|
45
|
+
width,
|
|
46
|
+
height,
|
|
47
|
+
zIndex: 1000,
|
|
48
|
+
pointerEvents: 'none',
|
|
49
|
+
} }));
|
|
50
|
+
});
|
|
51
|
+
export default MSAMouseoverCanvas;
|
|
52
|
+
//# sourceMappingURL=MSAMouseoverCanvas.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MSAMouseoverCanvas.js","sourceRoot":"","sources":["../../src/components/MSAMouseoverCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,OAAO,EAAE,GAAG,EAAE,MAAM,oBAAoB,CAAA;AAExC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,UAAU,EAC5C,KAAK,GAGN;IACC,MAAM,GAAG,GAAG,MAAM,CAAoB,IAAI,CAAC,CAAA;IAC3C,MAAM,EACJ,MAAM,EACN,KAAK,EACL,aAAa,EACb,iBAAiB,EACjB,WAAW,EACX,cAAc,EACd,OAAO,EACP,OAAO,EACP,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,GACT,GAAG,KAAK,CAAA;IACT,MAAM,oBAAoB,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAA;IACzE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE;YAChB,OAAM;SACP;QAED,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAA;QACxC,IAAI,CAAC,GAAG,EAAE;YACR,OAAM;SACP;QAED,GAAG,CAAC,cAAc,EAAE,CAAA;QACpB,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;QAElC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAA;QAClC,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,GACL,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,GAAG,OAAO,GAAG,aAAa,GAAG,iBAAiB,CAAA;YAEzE,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAA;SACrC;QACD,IAAI,QAAQ,KAAK,SAAS,EAAE;YAC1B,MAAM,CAAC,GACL,QAAQ,GAAG,SAAS,GAAG,OAAO,GAAG,WAAW,GAAG,oBAAoB,CAAA;YACrE,GAAG,CAAC,QAAQ,CAAC,aAAa,GAAG,iBAAiB,EAAE,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;SACrE;IACH,CAAC,EAAE;QACD,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,oBAAoB;QACpB,QAAQ;QACR,SAAS;QACT,WAAW;QACX,OAAO;QACP,MAAM;QACN,iBAAiB;QACjB,aAAa;QACb,KAAK;KACN,CAAC,CAAA;IAEF,OAAO,CACL,gCACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE,KAAK,EACZ,MAAM,EAAE,MAAM,EACd,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,GAAG,EAAE,CAAC;YACN,IAAI,EAAE,CAAC;YACP,KAAK;YACL,MAAM;YACN,MAAM,EAAE,IAAI;YACZ,aAAa,EAAE,MAAM;SACtB,GACD,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,kBAAkB,CAAA"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
1
|
+
import React, { lazy, Suspense } from 'react';
|
|
2
2
|
import { observer } from 'mobx-react';
|
|
3
3
|
import { Typography } from '@mui/material';
|
|
4
4
|
// locals
|
|
@@ -10,37 +10,9 @@ import Ruler from './Ruler';
|
|
|
10
10
|
import TreeRuler from './TreeRuler';
|
|
11
11
|
import Header from './Header';
|
|
12
12
|
import Track from './Track';
|
|
13
|
-
import AnnotationDialog from './AnnotationDlg';
|
|
14
13
|
import { HorizontalResizeHandle, VerticalResizeHandle } from './ResizeHandles';
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
const { height, width, treeAreaWidth, resizeHandleWidth, scrollX, mouseCol, colWidth, } = model;
|
|
18
|
-
useEffect(() => {
|
|
19
|
-
if (!ref.current) {
|
|
20
|
-
return;
|
|
21
|
-
}
|
|
22
|
-
const ctx = ref.current.getContext('2d');
|
|
23
|
-
if (!ctx) {
|
|
24
|
-
return;
|
|
25
|
-
}
|
|
26
|
-
ctx.resetTransform();
|
|
27
|
-
ctx.clearRect(0, 0, width, height);
|
|
28
|
-
if (mouseCol !== undefined) {
|
|
29
|
-
const x = (mouseCol - 1) * colWidth + scrollX + treeAreaWidth + resizeHandleWidth;
|
|
30
|
-
ctx.fillStyle = 'rgba(100,100,100,0.5)';
|
|
31
|
-
ctx.fillRect(x, 0, colWidth, height);
|
|
32
|
-
}
|
|
33
|
-
}, [mouseCol, colWidth, scrollX, height, resizeHandleWidth, treeAreaWidth, width]);
|
|
34
|
-
return (React.createElement("canvas", { ref: ref, width: width, height: height, style: {
|
|
35
|
-
position: 'absolute',
|
|
36
|
-
top: 0,
|
|
37
|
-
left: 0,
|
|
38
|
-
width,
|
|
39
|
-
height,
|
|
40
|
-
zIndex: 1000,
|
|
41
|
-
pointerEvents: 'none',
|
|
42
|
-
} }));
|
|
43
|
-
});
|
|
14
|
+
import MSAMouseoverCanvas from './MSAMouseoverCanvas';
|
|
15
|
+
const AnnotationDialog = lazy(() => import('./dialogs/AnnotationDlg'));
|
|
44
16
|
export default observer(function ({ model }) {
|
|
45
17
|
const { done, initialized, treeAreaWidth, height, turnedOnTracks } = model;
|
|
46
18
|
return (React.createElement("div", null,
|
|
@@ -59,11 +31,13 @@ export default observer(function ({ model }) {
|
|
|
59
31
|
React.createElement(TreeCanvas, { model: model })),
|
|
60
32
|
React.createElement(VerticalResizeHandle, { model: model }),
|
|
61
33
|
React.createElement(MSACanvas, { model: model }),
|
|
62
|
-
React.createElement(
|
|
34
|
+
React.createElement(MSAMouseoverCanvas, { model: model }))))),
|
|
63
35
|
React.createElement(HorizontalResizeHandle, { model: model }))),
|
|
64
|
-
model.DialogComponent ? (React.createElement(
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
36
|
+
model.DialogComponent ? (React.createElement(Suspense, { fallback: null },
|
|
37
|
+
React.createElement(model.DialogComponent, { ...(model.DialogProps || {}), onClose: () => {
|
|
38
|
+
model.setDialogComponent(undefined, undefined);
|
|
39
|
+
} }))) : null,
|
|
40
|
+
model.annotPos ? (React.createElement(Suspense, { fallback: null },
|
|
41
|
+
React.createElement(AnnotationDialog, { data: model.annotPos, model: model, onClose: () => model.clearAnnotPos() }))) : null));
|
|
68
42
|
});
|
|
69
43
|
//# sourceMappingURL=MSAView.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MSAView.js","sourceRoot":"","sources":["../../src/components/MSAView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"MSAView.js","sourceRoot":"","sources":["../../src/components/MSAView.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AAE7C,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAE1C,SAAS;AACT,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,UAAU,MAAM,cAAc,CAAA;AACrC,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,KAAK,MAAM,SAAS,CAAA;AAC3B,OAAO,SAAS,MAAM,aAAa,CAAA;AACnC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,KAAK,MAAM,SAAS,CAAA;AAE3B,OAAO,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAA;AAE9E,OAAO,kBAAkB,MAAM,sBAAsB,CAAA;AAErD,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC,CAAA;AAEtE,eAAe,QAAQ,CAAC,UAAU,EAAE,KAAK,EAA2B;IAClE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAE1E,OAAO,CACL;QACG,CAAC,WAAW,CAAC,CAAC,CAAC,CACd,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CAC7B,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACV,oBAAC,UAAU,IAAC,OAAO,EAAC,IAAI,iBAAwB,CACjD,CAAC,CAAC,CAAC,CACF;YACE,6BAAK,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE;gBACxC,oBAAC,MAAM,IAAC,KAAK,EAAE,KAAK,GAAI;gBACxB;oBACE,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE;wBAClC,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;4BAC7B,6BAAK,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;gCACjD,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI,CACvB;4BAEN,oBAAC,UAAU,IACT,KAAK,EAAE,KAAK,EACZ,gBAAgB,EAAE,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,GAAI,GACzC,CACE,EACL,cAAc,aAAd,cAAc;wBAAd,cAAc,CAAE,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAC5B,oBAAC,KAAK,IAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,GAAI,CAC3D,CAAC;wBAEF,6BAAK,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;4BAC7B,6BAAK,KAAK,EAAE,EAAE,UAAU,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE;gCACjD,oBAAC,UAAU,IAAC,KAAK,EAAE,KAAK,GAAI,CACxB;4BACN,oBAAC,oBAAoB,IAAC,KAAK,EAAE,KAAK,GAAI;4BACtC,oBAAC,SAAS,IAAC,KAAK,EAAE,KAAK,GAAI;4BAC3B,oBAAC,kBAAkB,IAAC,KAAK,EAAE,KAAK,GAAI,CAChC,CACF,CACF,CACF;YACN,oBAAC,sBAAsB,IAAC,KAAK,EAAE,KAAK,GAAI,CACpC,CACP;QAEA,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CACvB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI;YACtB,oBAAC,KAAK,CAAC,eAAe,OAChB,CAAC,KAAK,CAAC,WAAW,IAAI,EAAE,CAAC,EAC7B,OAAO,EAAE,GAAG,EAAE;oBACZ,KAAK,CAAC,kBAAkB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAA;gBAChD,CAAC,GACD,CACO,CACZ,CAAC,CAAC,CAAC,IAAI;QAEP,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAChB,oBAAC,QAAQ,IAAC,QAAQ,EAAE,IAAI;YACtB,oBAAC,gBAAgB,IACf,IAAI,EAAE,KAAK,CAAC,QAAQ,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,aAAa,EAAE,GACpC,CACO,CACZ,CAAC,CAAC,CAAC,IAAI,CACJ,CACP,CAAA;AACH,CAAC,CAAC,CAAA"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { observer } from 'mobx-react';
|
|
3
|
+
import { Select } from '@mui/material';
|
|
4
|
+
const MultiAlignmentSelector = observer(function ({ model, }) {
|
|
5
|
+
const { currentAlignment, alignmentNames } = model;
|
|
6
|
+
return alignmentNames.length > 0 ? (React.createElement(Select, { native: true, value: currentAlignment, size: "small", onChange: event => {
|
|
7
|
+
model.setCurrentAlignment(+event.target.value);
|
|
8
|
+
model.setScrollX(0);
|
|
9
|
+
model.setScrollY(0);
|
|
10
|
+
} }, alignmentNames.map((option, index) => (React.createElement("option", { key: `${option}-${index}`, value: index }, option))))) : null;
|
|
11
|
+
});
|
|
12
|
+
export default MultiAlignmentSelector;
|
|
13
|
+
//# sourceMappingURL=MultiAlignmentSelector.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MultiAlignmentSelector.js","sourceRoot":"","sources":["../../src/components/MultiAlignmentSelector.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAKtC,MAAM,sBAAsB,GAAG,QAAQ,CAAC,UAAU,EAChD,KAAK,GAGN;IACC,MAAM,EAAE,gBAAgB,EAAE,cAAc,EAAE,GAAG,KAAK,CAAA;IAClD,OAAO,cAAc,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CACjC,oBAAC,MAAM,IACL,MAAM,QACN,KAAK,EAAE,gBAAgB,EACvB,IAAI,EAAC,OAAO,EACZ,QAAQ,EAAE,KAAK,CAAC,EAAE;YAChB,KAAK,CAAC,mBAAmB,CAAC,CAAE,KAAK,CAAC,MAAM,CAAC,KAAgB,CAAC,CAAA;YAC1D,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;YACnB,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAA;QACrB,CAAC,IAEA,cAAc,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,CAAC,CACrC,gCAAQ,GAAG,EAAE,GAAG,MAAM,IAAI,KAAK,EAAE,EAAE,KAAK,EAAE,KAAK,IAC5C,MAAM,CACA,CACV,CAAC,CACK,CACV,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AACF,eAAe,sBAAsB,CAAA"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { MsaViewModel } from '../model';
|
|
2
3
|
export declare const VerticalResizeHandle: ({ model, }: {
|
|
3
4
|
model: MsaViewModel;
|
|
4
|
-
}) => JSX.Element;
|
|
5
|
+
}) => React.JSX.Element;
|
|
5
6
|
export declare const HorizontalResizeHandle: ({ model, }: {
|
|
6
7
|
model: MsaViewModel;
|
|
7
|
-
}) => JSX.Element;
|
|
8
|
+
}) => React.JSX.Element;
|
|
@@ -3,6 +3,6 @@ import { MsaViewModel } from '../model';
|
|
|
3
3
|
declare function Rubberband({ model, ControlComponent, }: {
|
|
4
4
|
model: MsaViewModel;
|
|
5
5
|
ControlComponent?: React.ReactElement;
|
|
6
|
-
}): JSX.Element;
|
|
6
|
+
}): React.JSX.Element;
|
|
7
7
|
declare const _default: typeof Rubberband;
|
|
8
8
|
export default _default;
|
|
@@ -112,7 +112,6 @@ function Rubberband({ model, ControlComponent = React.createElement("div", null)
|
|
|
112
112
|
setStartX(undefined);
|
|
113
113
|
setCurrentX(undefined);
|
|
114
114
|
}
|
|
115
|
-
// eslint-disable-next-line @typescript-eslint/ban-types
|
|
116
115
|
function handleMenuItemClick(_, callback) {
|
|
117
116
|
callback();
|
|
118
117
|
handleClose();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Rubberband.js","sourceRoot":"","sources":["../../src/components/Rubberband.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Rubberband.js","sourceRoot":"","sources":["../../src/components/Rubberband.tsx"],"names":[],"mappings":"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"}
|
package/dist/components/Ruler.js
CHANGED
|
@@ -29,7 +29,7 @@ function RulerBlock({ start, end, bpPerPx, reversed, major, minor, }) {
|
|
|
29
29
|
})));
|
|
30
30
|
}
|
|
31
31
|
const Ruler = observer(function ({ model }) {
|
|
32
|
-
const { MSA, colWidth, msaAreaWidth, resizeHandleWidth, scrollX, blocksX, blockSize, } = model;
|
|
32
|
+
const { MSA, colWidth, msaAreaWidth, rulerHeight, resizeHandleWidth, scrollX, blocksX, blockSize, } = model;
|
|
33
33
|
const ref = useRef(null);
|
|
34
34
|
const offsetX = blocksX[0];
|
|
35
35
|
return !MSA ? null : (React.createElement("div", { ref: ref, style: {
|
|
@@ -37,7 +37,7 @@ const Ruler = observer(function ({ model }) {
|
|
|
37
37
|
width: msaAreaWidth,
|
|
38
38
|
cursor: 'crosshair',
|
|
39
39
|
overflow: 'hidden',
|
|
40
|
-
height:
|
|
40
|
+
height: rulerHeight,
|
|
41
41
|
background: '#ccc',
|
|
42
42
|
} },
|
|
43
43
|
React.createElement("svg", { style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ruler.js","sourceRoot":"","sources":["../../src/components/Ruler.tsx"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Ruler.js","sourceRoot":"","sources":["../../src/components/Ruler.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
+
import React from 'react';
|
|
1
2
|
import { MsaViewModel } from '../model';
|
|
2
3
|
export declare const TrackLabel: ({ model, track, }: {
|
|
3
4
|
model: MsaViewModel;
|
|
4
5
|
track: any;
|
|
5
|
-
}) => JSX.Element;
|
|
6
|
+
}) => React.JSX.Element;
|
|
6
7
|
declare const Track: ({ model, track, }: {
|
|
7
8
|
model: MsaViewModel;
|
|
8
9
|
track: any;
|
|
9
|
-
}) => JSX.Element;
|
|
10
|
+
}) => React.JSX.Element;
|
|
10
11
|
export default Track;
|
package/dist/components/Track.js
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React, { useState, useRef, useEffect } from 'react';
|
|
1
|
+
import React, { useState, useRef, useEffect, lazy, Suspense } from 'react';
|
|
2
2
|
import normalizeWheel from 'normalize-wheel';
|
|
3
3
|
import { observer } from 'mobx-react';
|
|
4
4
|
import { IconButton, Menu, MenuItem } from '@mui/material';
|
|
5
5
|
import { makeStyles } from 'tss-react/mui';
|
|
6
6
|
// icons
|
|
7
7
|
import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';
|
|
8
|
-
|
|
8
|
+
const TrackInfoDialog = lazy(() => import('./dialogs/TrackInfoDlg'));
|
|
9
9
|
const useStyles = makeStyles()({
|
|
10
10
|
button: {
|
|
11
11
|
padding: 0,
|
|
@@ -41,7 +41,8 @@ export const TrackLabel = observer(function ({ model, track, }) {
|
|
|
41
41
|
setTrackInfoDlgOpen(true);
|
|
42
42
|
setAnchorEl(undefined);
|
|
43
43
|
} }, "Get info"))) : null,
|
|
44
|
-
trackInfoDlgOpen ? (React.createElement(
|
|
44
|
+
trackInfoDlgOpen ? (React.createElement(Suspense, { fallback: null },
|
|
45
|
+
React.createElement(TrackInfoDialog, { model: track.model, onClose: () => setTrackInfoDlgOpen(false) }))) : null));
|
|
45
46
|
});
|
|
46
47
|
const Track = observer(function ({ model, track, }) {
|
|
47
48
|
const { resizeHandleWidth } = model;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/components/Track.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;
|
|
1
|
+
{"version":3,"file":"Track.js","sourceRoot":"","sources":["../../src/components/Track.tsx"],"names":[],"mappings":"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"}
|