react-msaview 3.0.0 → 3.0.2
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 +31 -31
- package/dist/components/Header.js +4 -9
- package/dist/components/Header.js.map +1 -1
- package/dist/components/HeaderInfoArea.d.ts +6 -0
- package/dist/components/HeaderInfoArea.js +12 -0
- package/dist/components/HeaderInfoArea.js.map +1 -0
- package/dist/components/MSAPanel/Loading.d.ts +2 -0
- package/dist/components/MSAPanel/Loading.js +12 -0
- package/dist/components/MSAPanel/Loading.js.map +1 -0
- package/dist/components/MSAPanel/MSACanvas.js +1 -10
- package/dist/components/MSAPanel/MSACanvas.js.map +1 -1
- package/dist/components/MSAPanel/MSAMouseoverCanvas.js +1 -22
- package/dist/components/MSAPanel/MSAMouseoverCanvas.js.map +1 -1
- package/dist/components/MSAPanel/renderMSABlock.js +0 -1
- package/dist/components/MSAPanel/renderMSABlock.js.map +1 -1
- package/dist/components/MSAPanel/renderMSAMouseover.d.ts +5 -0
- package/dist/components/MSAPanel/renderMSAMouseover.js +24 -0
- package/dist/components/MSAPanel/renderMSAMouseover.js.map +1 -0
- package/dist/components/Minimap.js +13 -13
- package/dist/components/Minimap.js.map +1 -1
- package/dist/components/TreePanel/TreeCanvasBlock.js +8 -4
- package/dist/components/TreePanel/TreeCanvasBlock.js.map +1 -1
- package/dist/components/TreePanel/{TreeMenu.d.ts → TreeNodeMenu.d.ts} +1 -0
- package/dist/components/TreePanel/{TreeMenu.js → TreeNodeMenu.js} +8 -4
- package/dist/components/TreePanel/TreeNodeMenu.js.map +1 -0
- package/dist/components/TreePanel/dialogs/{TreeNodeInfoDlg.js → TreeNodeInfoDialog.js} +2 -2
- package/dist/components/TreePanel/dialogs/TreeNodeInfoDialog.js.map +1 -0
- package/dist/components/TreePanel/renderTreeCanvas.d.ts +8 -3
- package/dist/components/TreePanel/renderTreeCanvas.js +8 -7
- package/dist/components/TreePanel/renderTreeCanvas.js.map +1 -1
- package/dist/components/dialogs/SettingsDialog.js +31 -22
- package/dist/components/dialogs/SettingsDialog.js.map +1 -1
- package/dist/model.d.ts +120 -62
- package/dist/model.js +176 -124
- package/dist/model.js.map +1 -1
- package/dist/parsers/ClustalMSA.d.ts +18 -5
- package/dist/parsers/ClustalMSA.js +1 -1
- package/dist/parsers/ClustalMSA.js.map +1 -1
- package/dist/parsers/FastaMSA.d.ts +1 -1
- package/dist/parsers/FastaMSA.js +2 -2
- package/dist/parsers/FastaMSA.js.map +1 -1
- package/dist/parsers/StockholmMSA.d.ts +1 -1
- package/dist/parsers/StockholmMSA.js +2 -2
- package/dist/parsers/StockholmMSA.js.map +1 -1
- package/dist/util.d.ts +1 -0
- package/dist/util.js +15 -7
- package/dist/util.js.map +1 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/package.json +9 -7
- package/src/components/Header.tsx +5 -11
- package/src/components/HeaderInfoArea.tsx +21 -0
- package/src/components/MSAPanel/Loading.tsx +16 -0
- package/src/components/MSAPanel/MSACanvas.tsx +1 -16
- package/src/components/MSAPanel/MSAMouseoverCanvas.tsx +2 -50
- package/src/components/MSAPanel/renderMSABlock.ts +0 -2
- package/src/components/MSAPanel/renderMSAMouseover.ts +51 -0
- package/src/components/Minimap.tsx +15 -15
- package/src/components/TreePanel/TreeCanvasBlock.tsx +8 -3
- package/src/components/TreePanel/{TreeMenu.tsx → TreeNodeMenu.tsx} +12 -3
- package/src/components/TreePanel/dialogs/{TreeNodeInfoDlg.tsx → TreeNodeInfoDialog.tsx} +1 -1
- package/src/components/TreePanel/renderTreeCanvas.ts +13 -4
- package/src/components/dialogs/SettingsDialog.tsx +61 -44
- package/src/model.ts +279 -154
- package/src/parsers/ClustalMSA.ts +1 -1
- package/src/parsers/FastaMSA.ts +1 -1
- package/src/parsers/StockholmMSA.ts +1 -1
- package/src/util.ts +19 -6
- package/src/version.ts +1 -1
- package/dist/components/OverviewRubberband.d.ts +0 -8
- package/dist/components/OverviewRubberband.js +0 -185
- package/dist/components/OverviewRubberband.js.map +0 -1
- package/dist/components/Rubberband.d.ts +0 -8
- package/dist/components/Rubberband.js +0 -185
- package/dist/components/Rubberband.js.map +0 -1
- package/dist/components/TreePanel/TreeMenu.js.map +0 -1
- package/dist/components/TreePanel/dialogs/TreeNodeInfoDlg.js.map +0 -1
- package/dist/components/dialogs/AnnotationDialog.d.ts +0 -11
- package/dist/components/dialogs/AnnotationDialog.js +0 -65
- package/dist/components/dialogs/AnnotationDialog.js.map +0 -1
- package/src/components/OverviewRubberband.tsx +0 -283
- package/src/components/Rubberband.tsx +0 -283
- package/src/components/dialogs/AnnotationDialog.tsx +0 -144
- /package/dist/components/TreePanel/dialogs/{TreeNodeInfoDlg.d.ts → TreeNodeInfoDialog.d.ts} +0 -0
|
@@ -8,47 +8,56 @@ const useStyles = makeStyles()(theme => ({
|
|
|
8
8
|
field: {
|
|
9
9
|
margin: theme.spacing(4),
|
|
10
10
|
},
|
|
11
|
+
flex: {
|
|
12
|
+
display: 'flex',
|
|
13
|
+
},
|
|
11
14
|
}));
|
|
12
|
-
|
|
15
|
+
function FormControlLabel2(rest) {
|
|
16
|
+
return (React.createElement("div", null,
|
|
17
|
+
React.createElement(FormControlLabel, { ...rest })));
|
|
18
|
+
}
|
|
19
|
+
const SettingsContent = observer(function ({ model }) {
|
|
13
20
|
const { classes } = useStyles();
|
|
14
21
|
const { bgColor, colWidth, colorSchemeName, drawTree, drawNodeBubbles, labelsAlignRight, noTree, rowHeight, showBranchLen, treeWidthMatchesArea, treeWidth, } = model;
|
|
15
|
-
return (React.createElement(
|
|
16
|
-
React.createElement(
|
|
17
|
-
React.createElement(
|
|
18
|
-
React.createElement(
|
|
19
|
-
React.createElement(
|
|
20
|
-
React.createElement(
|
|
21
|
-
React.createElement(
|
|
22
|
+
return (React.createElement(React.Fragment, null,
|
|
23
|
+
React.createElement("div", null,
|
|
24
|
+
React.createElement(Button, { onClick: () => model.clearHidden() }, "Clear hidden"),
|
|
25
|
+
React.createElement("h1", null, "Tree options"),
|
|
26
|
+
React.createElement(FormControlLabel2, { control: React.createElement(Checkbox, { checked: showBranchLen, onChange: () => model.setShowBranchLen(!showBranchLen) }), label: "Show branch length?" }),
|
|
27
|
+
React.createElement(FormControlLabel2, { control: React.createElement(Checkbox, { checked: drawNodeBubbles, onChange: () => model.setDrawNodeBubbles(!drawNodeBubbles) }), label: "Draw clickable bubbles on tree branches?" }),
|
|
28
|
+
React.createElement(FormControlLabel2, { control: React.createElement(Checkbox, { checked: drawTree, onChange: () => model.setDrawTree(!drawTree) }), label: "Show tree?" }),
|
|
29
|
+
React.createElement(FormControlLabel2, { control: React.createElement(Checkbox, { checked: labelsAlignRight, onChange: () => model.setLabelsAlignRight(!labelsAlignRight) }), label: "Tree labels align right?" }),
|
|
22
30
|
!noTree ? (React.createElement("div", null,
|
|
23
|
-
React.createElement(
|
|
24
|
-
!treeWidthMatchesArea ? (React.createElement("div", {
|
|
31
|
+
React.createElement(FormControlLabel2, { control: React.createElement(Checkbox, { checked: treeWidthMatchesArea, onChange: () => model.setTreeWidthMatchesArea(!treeWidthMatchesArea) }), label: "Make tree width fit to tree area?" }),
|
|
32
|
+
!treeWidthMatchesArea ? (React.createElement("div", { className: classes.flex },
|
|
25
33
|
React.createElement(Typography, null,
|
|
26
34
|
"Tree width (",
|
|
27
35
|
treeWidth,
|
|
28
36
|
"px)"),
|
|
29
|
-
React.createElement(Slider, { className: classes.field, min: 50, max: 600, value: treeWidth, onChange: (_, val) => model.setTreeWidth(val) }))) : null)) : null,
|
|
30
|
-
|
|
37
|
+
React.createElement(Slider, { className: classes.field, min: 50, max: 600, value: treeWidth, onChange: (_, val) => model.setTreeWidth(val) }))) : null)) : null),
|
|
38
|
+
React.createElement("div", null,
|
|
39
|
+
React.createElement("h1", null, "MSA options"),
|
|
40
|
+
React.createElement(FormControlLabel2, { control: React.createElement(Checkbox, { checked: bgColor, onChange: () => model.setBgColor(!bgColor) }), label: "Color background tiles of MSA?" }),
|
|
41
|
+
React.createElement("div", { className: classes.flex },
|
|
31
42
|
React.createElement(Typography, null,
|
|
32
43
|
"Column width (",
|
|
33
44
|
colWidth,
|
|
34
45
|
"px)"),
|
|
35
46
|
React.createElement(Slider, { className: classes.field, min: 1, max: 50, value: colWidth, onChange: (_, val) => model.setColWidth(val) })),
|
|
36
|
-
React.createElement("div", {
|
|
47
|
+
React.createElement("div", { className: classes.flex },
|
|
37
48
|
React.createElement(Typography, null,
|
|
38
49
|
"Row height (",
|
|
39
50
|
rowHeight,
|
|
40
51
|
"px)"),
|
|
41
52
|
React.createElement(Slider, { className: classes.field, min: 1, max: 50, value: rowHeight, onChange: (_, val) => model.setRowHeight(val) })),
|
|
42
|
-
React.createElement(TextField, { select: true, label: "Color scheme", value: colorSchemeName, onChange: event => model.setColorSchemeName(event.target.value) }, Object.keys(colorSchemes).map(option => (React.createElement(MenuItem, { key: option, value: option }, option))))
|
|
53
|
+
React.createElement(TextField, { select: true, label: "Color scheme", value: colorSchemeName, onChange: event => model.setColorSchemeName(event.target.value) }, Object.keys(colorSchemes).map(option => (React.createElement(MenuItem, { key: option, value: option }, option)))))));
|
|
54
|
+
});
|
|
55
|
+
const SettingsDialog = observer(function ({ model, onClose, }) {
|
|
56
|
+
return (React.createElement(Dialog, { open: true, onClose: () => onClose(), title: "Settings" },
|
|
57
|
+
React.createElement(DialogContent, null,
|
|
58
|
+
React.createElement(SettingsContent, { model: model }),
|
|
43
59
|
React.createElement(DialogActions, null,
|
|
44
|
-
React.createElement(Button, { onClick: () =>
|
|
45
|
-
model.setRowHeight(+rowHeight);
|
|
46
|
-
model.setColWidth(+colWidth);
|
|
47
|
-
if (!noTree) {
|
|
48
|
-
model.setTreeWidth(+treeWidth);
|
|
49
|
-
}
|
|
50
|
-
onClose();
|
|
51
|
-
}, variant: "contained", color: "primary" }, "Submit")))));
|
|
60
|
+
React.createElement(Button, { onClick: () => onClose(), variant: "contained", color: "primary" }, "Submit")))));
|
|
52
61
|
});
|
|
53
62
|
export default SettingsDialog;
|
|
54
63
|
//# sourceMappingURL=SettingsDialog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/SettingsDialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AACzC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,aAAa,EACb,gBAAgB,
|
|
1
|
+
{"version":3,"file":"SettingsDialog.js","sourceRoot":"","sources":["../../../src/components/dialogs/SettingsDialog.tsx"],"names":[],"mappings":"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"}
|
package/dist/model.d.ts
CHANGED
|
@@ -2,6 +2,11 @@ import React from 'react';
|
|
|
2
2
|
import { Instance, SnapshotIn } from 'mobx-state-tree';
|
|
3
3
|
import { HierarchyNode } from 'd3-hierarchy';
|
|
4
4
|
import { FileLocation as FileLocationType } from '@jbrowse/core/util/types';
|
|
5
|
+
import { NodeWithIds, NodeWithIdsAndLength } from './util';
|
|
6
|
+
import ClustalMSA from './parsers/ClustalMSA';
|
|
7
|
+
import StockholmMSA from './parsers/StockholmMSA';
|
|
8
|
+
import FastaMSA from './parsers/FastaMSA';
|
|
9
|
+
import { StructureModel } from './StructureModel';
|
|
5
10
|
export interface RowDetails {
|
|
6
11
|
[key: string]: unknown;
|
|
7
12
|
name: string;
|
|
@@ -10,17 +15,17 @@ export interface RowDetails {
|
|
|
10
15
|
end: number;
|
|
11
16
|
};
|
|
12
17
|
}
|
|
13
|
-
import { NodeWithIds, NodeWithIdsAndLength } from './util';
|
|
14
|
-
import ClustalMSA from './parsers/ClustalMSA';
|
|
15
|
-
import StockholmMSA from './parsers/StockholmMSA';
|
|
16
|
-
import FastaMSA from './parsers/FastaMSA';
|
|
17
|
-
import { StructureModel } from './StructureModel';
|
|
18
18
|
interface BasicTrackModel {
|
|
19
19
|
id: string;
|
|
20
20
|
name: string;
|
|
21
21
|
associatedRowName?: string;
|
|
22
22
|
height: number;
|
|
23
23
|
}
|
|
24
|
+
interface Structure {
|
|
25
|
+
pdb: string;
|
|
26
|
+
startPos: number;
|
|
27
|
+
endPos: number;
|
|
28
|
+
}
|
|
24
29
|
export interface TextTrackModel extends BasicTrackModel {
|
|
25
30
|
customColorScheme?: Record<string, string>;
|
|
26
31
|
data: string;
|
|
@@ -56,10 +61,6 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
56
61
|
rowHeight: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
57
62
|
scrollY: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
58
63
|
scrollX: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
59
|
-
resizeHandleWidth: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
60
|
-
blockSize: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
61
|
-
mouseRow: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
62
|
-
mouseCol: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
|
|
63
64
|
selectedStructures: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
|
|
64
65
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
65
66
|
structure: import("mobx-state-tree").IModelType<{
|
|
@@ -78,6 +79,11 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
78
79
|
highResScaleFactor: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
79
80
|
colorSchemeName: import("mobx-state-tree").IType<string | undefined, string, string>;
|
|
80
81
|
treeFilehandle: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISnapshotProcessor<import("mobx-state-tree").ITypeUnion<import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
82
|
+
/**
|
|
83
|
+
* #property
|
|
84
|
+
* high resolution scale factor, helps make canvas look better on hi-dpi
|
|
85
|
+
* screens
|
|
86
|
+
*/
|
|
81
87
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
82
88
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
83
89
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -117,20 +123,29 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
117
123
|
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
118
124
|
}, {}> | ({
|
|
119
125
|
locationType: "UriLocation";
|
|
120
|
-
uri: string;
|
|
126
|
+
uri: string; /**
|
|
127
|
+
* #volatile
|
|
128
|
+
* the currently mouse-hovered row
|
|
129
|
+
*/
|
|
121
130
|
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
122
131
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
123
132
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
124
133
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
125
|
-
internetAccountId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
126
|
-
* #action
|
|
127
|
-
*/
|
|
134
|
+
internetAccountId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
128
135
|
internetAccountPreAuthorization: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
|
|
129
136
|
internetAccountType: import("mobx-state-tree").ISimpleType<string>;
|
|
130
137
|
authInfo: import("mobx-state-tree").IType<any, any, any>;
|
|
131
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
138
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>; /**
|
|
139
|
+
* #action
|
|
140
|
+
* set the height of the view in px
|
|
141
|
+
*/
|
|
132
142
|
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject)>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
133
143
|
msaFilehandle: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISnapshotProcessor<import("mobx-state-tree").ITypeUnion<import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
144
|
+
/**
|
|
145
|
+
* #property
|
|
146
|
+
* high resolution scale factor, helps make canvas look better on hi-dpi
|
|
147
|
+
* screens
|
|
148
|
+
*/
|
|
134
149
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
135
150
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
136
151
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -170,20 +185,29 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
170
185
|
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
171
186
|
}, {}> | ({
|
|
172
187
|
locationType: "UriLocation";
|
|
173
|
-
uri: string;
|
|
188
|
+
uri: string; /**
|
|
189
|
+
* #volatile
|
|
190
|
+
* the currently mouse-hovered row
|
|
191
|
+
*/
|
|
174
192
|
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
175
193
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
176
194
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
177
195
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
178
|
-
internetAccountId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
179
|
-
* #action
|
|
180
|
-
*/
|
|
196
|
+
internetAccountId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
181
197
|
internetAccountPreAuthorization: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
|
|
182
198
|
internetAccountType: import("mobx-state-tree").ISimpleType<string>;
|
|
183
199
|
authInfo: import("mobx-state-tree").IType<any, any, any>;
|
|
184
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
200
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>; /**
|
|
201
|
+
* #action
|
|
202
|
+
* set the height of the view in px
|
|
203
|
+
*/
|
|
185
204
|
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject)>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
186
205
|
treeMetadataFilehandle: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISnapshotProcessor<import("mobx-state-tree").ITypeUnion<import("mobx-state-tree").ModelCreationType<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
206
|
+
/**
|
|
207
|
+
* #property
|
|
208
|
+
* high resolution scale factor, helps make canvas look better on hi-dpi
|
|
209
|
+
* screens
|
|
210
|
+
*/
|
|
187
211
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
188
212
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
189
213
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -223,21 +247,26 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
223
247
|
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
224
248
|
}, {}> | ({
|
|
225
249
|
locationType: "UriLocation";
|
|
226
|
-
uri: string;
|
|
250
|
+
uri: string; /**
|
|
251
|
+
* #volatile
|
|
252
|
+
* the currently mouse-hovered row
|
|
253
|
+
*/
|
|
227
254
|
} & Partial<import("mobx-state-tree/dist/internal").ExtractCFromProps<{
|
|
228
255
|
locationType: import("mobx-state-tree").ISimpleType<"UriLocation">;
|
|
229
256
|
uri: import("mobx-state-tree").ISimpleType<string>;
|
|
230
257
|
baseUri: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
231
|
-
internetAccountId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
232
|
-
* #action
|
|
233
|
-
*/
|
|
258
|
+
internetAccountId: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
234
259
|
internetAccountPreAuthorization: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
|
|
235
260
|
internetAccountType: import("mobx-state-tree").ISimpleType<string>;
|
|
236
261
|
authInfo: import("mobx-state-tree").IType<any, any, any>;
|
|
237
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
262
|
+
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>; /**
|
|
263
|
+
* #action
|
|
264
|
+
* set the height of the view in px
|
|
265
|
+
*/
|
|
238
266
|
}>> & import("mobx-state-tree/dist/internal").NonEmptyObject)>, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
239
267
|
currentAlignment: import("mobx-state-tree").IType<number | undefined, number, number>;
|
|
240
268
|
collapsed: import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>;
|
|
269
|
+
hidden: import("mobx-state-tree").IArrayType<import("mobx-state-tree").ISimpleType<string>>;
|
|
241
270
|
showOnly: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
242
271
|
boxTracks: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
|
|
243
272
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
@@ -267,11 +296,6 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
267
296
|
}[] | undefined;
|
|
268
297
|
}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
269
298
|
turnedOffTracks: import("mobx-state-tree").IMapType<import("mobx-state-tree").ISimpleType<boolean>>;
|
|
270
|
-
annotatedRegions: import("mobx-state-tree").IArrayType<import("mobx-state-tree").IModelType<{
|
|
271
|
-
start: import("mobx-state-tree").ISimpleType<number>;
|
|
272
|
-
end: import("mobx-state-tree").ISimpleType<number>;
|
|
273
|
-
attributes: import("mobx-state-tree").IType<Record<string, string[]>, Record<string, string[]>, Record<string, string[]>>;
|
|
274
|
-
}, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
|
|
275
299
|
data: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
|
|
276
300
|
tree: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
277
301
|
msa: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
|
|
@@ -298,6 +322,26 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
298
322
|
removeActiveDialog(): void;
|
|
299
323
|
queueDialog(cb: (doneCallback: () => void) => [import("@jbrowse/core/util").DialogComponentType, unknown]): void;
|
|
300
324
|
} & {
|
|
325
|
+
/**
|
|
326
|
+
* #volatile
|
|
327
|
+
* resize handle width between tree and msa area, px
|
|
328
|
+
*/
|
|
329
|
+
resizeHandleWidth: number;
|
|
330
|
+
/**
|
|
331
|
+
* #volatile
|
|
332
|
+
* size of blocks of content to be drawn, px
|
|
333
|
+
*/
|
|
334
|
+
blockSize: number;
|
|
335
|
+
/**
|
|
336
|
+
* #volatile
|
|
337
|
+
* the currently mouse-hovered row
|
|
338
|
+
*/
|
|
339
|
+
mouseRow: number | undefined;
|
|
340
|
+
/**
|
|
341
|
+
* #volatile
|
|
342
|
+
* the currently mouse-hovered column
|
|
343
|
+
*/
|
|
344
|
+
mouseCol: number | undefined;
|
|
301
345
|
/**
|
|
302
346
|
* #volatile
|
|
303
347
|
* a dummy variable that is incremented when ref changes so autorun for
|
|
@@ -329,18 +373,22 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
329
373
|
} & {
|
|
330
374
|
/**
|
|
331
375
|
* #action
|
|
376
|
+
* set the height of the view in px
|
|
332
377
|
*/
|
|
333
378
|
setHeight(height: number): void;
|
|
334
379
|
/**
|
|
335
380
|
* #action
|
|
381
|
+
* add to the selected structures
|
|
336
382
|
*/
|
|
337
383
|
addStructureToSelection(elt: StructureSnap): void;
|
|
338
384
|
/**
|
|
339
385
|
* #action
|
|
386
|
+
* remove from the selected structures
|
|
340
387
|
*/
|
|
341
388
|
removeStructureFromSelection(elt: StructureSnap): void;
|
|
342
389
|
/**
|
|
343
390
|
* #action
|
|
391
|
+
* toggle a structure from the selected structures list
|
|
344
392
|
*/
|
|
345
393
|
toggleStructureSelection(elt: {
|
|
346
394
|
id: string;
|
|
@@ -352,46 +400,57 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
352
400
|
}): void;
|
|
353
401
|
/**
|
|
354
402
|
* #action
|
|
403
|
+
* clear all selected structures
|
|
355
404
|
*/
|
|
356
405
|
clearSelectedStructures(): void;
|
|
357
406
|
/**
|
|
358
407
|
* #action
|
|
408
|
+
* set error state
|
|
359
409
|
*/
|
|
360
410
|
setError(error?: unknown): void;
|
|
361
411
|
/**
|
|
362
412
|
* #action
|
|
413
|
+
* set mouse position (row, column) in the MSA
|
|
363
414
|
*/
|
|
364
415
|
setMousePos(col?: number, row?: number): void;
|
|
365
416
|
/**
|
|
366
417
|
* #action
|
|
418
|
+
* set row height (px)
|
|
367
419
|
*/
|
|
368
420
|
setRowHeight(n: number): void;
|
|
369
421
|
/**
|
|
370
422
|
* #action
|
|
423
|
+
* set col width (px)
|
|
371
424
|
*/
|
|
372
425
|
setColWidth(n: number): void;
|
|
373
426
|
/**
|
|
374
427
|
* #action
|
|
428
|
+
* set color scheme name
|
|
375
429
|
*/
|
|
376
430
|
setColorSchemeName(name: string): void;
|
|
377
431
|
/**
|
|
378
432
|
* #action
|
|
433
|
+
* synchronize the treewidth and treeareawidth
|
|
379
434
|
*/
|
|
380
435
|
setTreeWidthMatchesArea(arg: boolean): void;
|
|
381
436
|
/**
|
|
382
437
|
* #action
|
|
438
|
+
* set scroll Y-offset (px)
|
|
383
439
|
*/
|
|
384
440
|
setScrollY(n: number): void;
|
|
385
441
|
/**
|
|
386
442
|
* #action
|
|
443
|
+
* set tree area width (px)
|
|
387
444
|
*/
|
|
388
445
|
setTreeAreaWidth(n: number): void;
|
|
389
446
|
/**
|
|
390
447
|
* #action
|
|
448
|
+
* set tree width (px)
|
|
391
449
|
*/
|
|
392
450
|
setTreeWidth(n: number): void;
|
|
393
451
|
/**
|
|
394
452
|
* #action
|
|
453
|
+
*
|
|
395
454
|
*/
|
|
396
455
|
setCurrentAlignment(n: number): void;
|
|
397
456
|
/**
|
|
@@ -402,6 +461,14 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
402
461
|
* #action
|
|
403
462
|
*/
|
|
404
463
|
setDrawTree(arg: boolean): void;
|
|
464
|
+
/**
|
|
465
|
+
* #action
|
|
466
|
+
*/
|
|
467
|
+
hideNode(arg: string): void;
|
|
468
|
+
/**
|
|
469
|
+
* #action
|
|
470
|
+
*/
|
|
471
|
+
clearHidden(): void;
|
|
405
472
|
/**
|
|
406
473
|
* #action
|
|
407
474
|
*/
|
|
@@ -524,14 +591,15 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
524
591
|
/**
|
|
525
592
|
* #getter
|
|
526
593
|
*/
|
|
527
|
-
readonly
|
|
594
|
+
readonly _tree: NodeWithIds;
|
|
528
595
|
/**
|
|
529
596
|
* #getter
|
|
530
597
|
*/
|
|
531
598
|
readonly rowNames: string[];
|
|
532
599
|
/**
|
|
533
600
|
* #getter
|
|
534
|
-
*/
|
|
601
|
+
*/
|
|
602
|
+
readonly mouseOverRowName: string | undefined;
|
|
535
603
|
/**
|
|
536
604
|
* #method
|
|
537
605
|
*/
|
|
@@ -543,11 +611,7 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
543
611
|
/**
|
|
544
612
|
* #getter
|
|
545
613
|
*/
|
|
546
|
-
readonly structures: Record<string,
|
|
547
|
-
pdb: string;
|
|
548
|
-
startPos: number;
|
|
549
|
-
endPos: number;
|
|
550
|
-
}[]>;
|
|
614
|
+
readonly structures: Record<string, Structure[]>;
|
|
551
615
|
/**
|
|
552
616
|
* #getter
|
|
553
617
|
*/
|
|
@@ -558,6 +622,7 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
558
622
|
};
|
|
559
623
|
/**
|
|
560
624
|
* #getter
|
|
625
|
+
* widget width minus the tree area gives the space for the MSA
|
|
561
626
|
*/
|
|
562
627
|
readonly msaAreaWidth: number;
|
|
563
628
|
/**
|
|
@@ -567,7 +632,7 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
567
632
|
/**
|
|
568
633
|
* #getter
|
|
569
634
|
*/
|
|
570
|
-
readonly rows: [string, string
|
|
635
|
+
readonly rows: [string, string][];
|
|
571
636
|
/**
|
|
572
637
|
* #getter
|
|
573
638
|
*/
|
|
@@ -640,6 +705,14 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
640
705
|
* #getter
|
|
641
706
|
*/
|
|
642
707
|
readonly conservation: string[];
|
|
708
|
+
/**
|
|
709
|
+
* #getter
|
|
710
|
+
*/
|
|
711
|
+
readonly adapterTrackModels: BasicTrack[];
|
|
712
|
+
/**
|
|
713
|
+
* #getter
|
|
714
|
+
*/
|
|
715
|
+
readonly boxTrackModels: BasicTrack[];
|
|
643
716
|
/**
|
|
644
717
|
* #getter
|
|
645
718
|
*/
|
|
@@ -668,30 +741,23 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
668
741
|
/**
|
|
669
742
|
* #method
|
|
670
743
|
*/
|
|
671
|
-
|
|
672
|
-
} & {
|
|
673
|
-
/**
|
|
674
|
-
* #action
|
|
675
|
-
*/
|
|
676
|
-
addAnnotation(start: number, end: number, attributes: Record<string, string[]>): void;
|
|
677
|
-
/**
|
|
678
|
-
* #action
|
|
679
|
-
*/
|
|
680
|
-
setAnnotationClickBoundaries(left: number, right: number): void;
|
|
681
|
-
/**
|
|
682
|
-
* #action
|
|
683
|
-
*/
|
|
684
|
-
clearAnnotationClickBoundaries(): void;
|
|
744
|
+
relativePxToBp2(rowName: string, position: number): number;
|
|
685
745
|
/**
|
|
686
|
-
* #
|
|
746
|
+
* #method
|
|
687
747
|
*/
|
|
688
|
-
|
|
748
|
+
getPos(pos: number): number;
|
|
689
749
|
} & {
|
|
690
750
|
/**
|
|
691
751
|
* #getter
|
|
752
|
+
* total height of track area (px)
|
|
692
753
|
*/
|
|
693
754
|
readonly totalTrackAreaHeight: number;
|
|
694
755
|
} & {
|
|
756
|
+
/**
|
|
757
|
+
* #action
|
|
758
|
+
* internal, used for drawing to canvas
|
|
759
|
+
*/
|
|
760
|
+
incrementRef(): void;
|
|
695
761
|
afterCreate(): void;
|
|
696
762
|
}, import("mobx-state-tree")._NotCustomized, {
|
|
697
763
|
id: string;
|
|
@@ -701,8 +767,6 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
701
767
|
rowHeight: number;
|
|
702
768
|
scrollY: number;
|
|
703
769
|
scrollX: number;
|
|
704
|
-
resizeHandleWidth: number;
|
|
705
|
-
blockSize: number;
|
|
706
770
|
labelsAlignRight: boolean;
|
|
707
771
|
colWidth: number;
|
|
708
772
|
showBranchLen: boolean;
|
|
@@ -714,8 +778,6 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
714
778
|
currentAlignment: number;
|
|
715
779
|
treeAreaWidth: number;
|
|
716
780
|
treeWidth: number;
|
|
717
|
-
mouseRow: number | undefined;
|
|
718
|
-
mouseCol: number | undefined;
|
|
719
781
|
selectedStructures: import("mobx-state-tree").ModelSnapshotType<{
|
|
720
782
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
721
783
|
structure: import("mobx-state-tree").IModelType<{
|
|
@@ -774,6 +836,7 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
774
836
|
localPath: import("mobx-state-tree").ISimpleType<string>;
|
|
775
837
|
}> | undefined;
|
|
776
838
|
collapsed: string[];
|
|
839
|
+
hidden: string[];
|
|
777
840
|
showOnly: string | undefined;
|
|
778
841
|
boxTracks: import("mobx-state-tree").ModelSnapshotType<{
|
|
779
842
|
id: import("mobx-state-tree").ISimpleType<string>;
|
|
@@ -783,11 +846,6 @@ declare const model: import("mobx-state-tree").IModelType<{
|
|
|
783
846
|
height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
|
|
784
847
|
}>[];
|
|
785
848
|
turnedOffTracks: import("mobx").IKeyValueMap<boolean>;
|
|
786
|
-
annotatedRegions: import("mobx-state-tree").ModelSnapshotType<{
|
|
787
|
-
start: import("mobx-state-tree").ISimpleType<number>;
|
|
788
|
-
end: import("mobx-state-tree").ISimpleType<number>;
|
|
789
|
-
attributes: import("mobx-state-tree").IType<Record<string, string[]>, Record<string, string[]>, Record<string, string[]>>;
|
|
790
|
-
}>[];
|
|
791
849
|
displayName: string | undefined;
|
|
792
850
|
minimized: boolean;
|
|
793
851
|
data: {
|