react-msaview 9.0.0 → 9.1.0
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/README.md +19 -10
- package/bundle/index.js +74 -74
- package/bundle/index.js.map +4 -4
- package/dist/colorSchemes.js +1 -3
- package/dist/colorSchemes.js.map +1 -1
- package/dist/columnCounts.d.ts +0 -1
- package/dist/columnCounts.js +1 -1
- package/dist/columnCounts.js.map +1 -1
- package/dist/components/Loading.js +5 -5
- package/dist/components/Loading.js.map +1 -1
- package/dist/components/MSAViewer.d.ts +1891 -4
- package/dist/components/MSAViewer.js +144 -201
- package/dist/components/MSAViewer.js.map +1 -1
- package/dist/components/ResizeHandles.js +3 -2
- package/dist/components/ResizeHandles.js.map +1 -1
- package/dist/components/Track.js +2 -1
- package/dist/components/Track.js.map +1 -1
- package/dist/components/controls.d.ts +11 -0
- package/dist/components/controls.js +48 -0
- package/dist/components/controls.js.map +1 -0
- package/dist/components/dialogs/AnnotationFileDialog.js +5 -16
- package/dist/components/dialogs/AnnotationFileDialog.js.map +1 -1
- package/dist/components/dialogs/ExportSVGDialog.js +5 -7
- package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
- package/dist/components/dialogs/HelpDialog.d.ts +6 -0
- package/dist/components/dialogs/HelpDialog.js +30 -0
- package/dist/components/dialogs/HelpDialog.js.map +1 -0
- package/dist/components/header/FileMenu.js +33 -7
- package/dist/components/header/FileMenu.js.map +1 -1
- package/dist/components/header/Header.js +4 -6
- package/dist/components/header/Header.js.map +1 -1
- package/dist/components/header/TreeSettingsMenu.d.ts +1 -1
- package/dist/components/header/TreeSettingsMenu.js +1 -32
- package/dist/components/header/TreeSettingsMenu.js.map +1 -1
- package/dist/components/header/ZoomControls.js +28 -44
- package/dist/components/header/ZoomControls.js.map +1 -1
- package/dist/components/header/settingsMenuItems.d.ts +1 -0
- package/dist/components/header/settingsMenuItems.js +44 -0
- package/dist/components/header/settingsMenuItems.js.map +1 -1
- package/dist/components/import/data/seq2.d.ts +0 -1
- package/dist/components/import/data/seq2.js +0 -17
- package/dist/components/import/data/seq2.js.map +1 -1
- package/dist/components/msa/MSACanvas.js +2 -1
- package/dist/components/msa/MSACanvas.js.map +1 -1
- package/dist/components/msa/MSACanvasBlock.js +2 -5
- package/dist/components/msa/MSACanvasBlock.js.map +1 -1
- package/dist/components/msa/drawFeatureSpans.d.ts +50 -11
- package/dist/components/msa/drawFeatureSpans.js +99 -56
- package/dist/components/msa/drawFeatureSpans.js.map +1 -1
- package/dist/components/msa/msaRaster.d.ts +14 -1
- package/dist/components/msa/msaRaster.js +19 -9
- package/dist/components/msa/msaRaster.js.map +1 -1
- package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +9 -0
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js +19 -8
- package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
- package/dist/components/msa/renderHighlights.d.ts +2 -2
- package/dist/components/msa/renderHighlights.js +2 -3
- package/dist/components/msa/renderHighlights.js.map +1 -1
- package/dist/components/msa/renderMSAMouseover.js +2 -1
- package/dist/components/msa/renderMSAMouseover.js.map +1 -1
- package/dist/components/renderCtx.d.ts +1 -1
- package/dist/components/rowpanels/renderFeaturePanel.d.ts +5 -1
- package/dist/components/rowpanels/renderFeaturePanel.js +12 -5
- package/dist/components/rowpanels/renderFeaturePanel.js.map +1 -1
- package/dist/components/tracks/drawTracks.d.ts +1 -53
- package/dist/components/tracks/drawTracks.js +5 -5
- package/dist/components/tracks/drawTracks.js.map +1 -1
- package/dist/components/tree/CladeLabels.d.ts +1 -1
- package/dist/components/tree/CladeLabels.js +22 -34
- package/dist/components/tree/CladeLabels.js.map +1 -1
- package/dist/components/tree/cladeBrackets.d.ts +17 -10
- package/dist/components/tree/cladeBrackets.js +33 -3
- package/dist/components/tree/cladeBrackets.js.map +1 -1
- package/dist/components/tree/renderTreeCanvas.js +2 -8
- package/dist/components/tree/renderTreeCanvas.js.map +1 -1
- package/dist/components/tree/renderTreeOverview.js +4 -11
- package/dist/components/tree/renderTreeOverview.js.map +1 -1
- package/dist/element.js +3 -6
- package/dist/element.js.map +1 -1
- package/dist/exportLayout.d.ts +39 -0
- package/dist/exportLayout.js +78 -0
- package/dist/exportLayout.js.map +1 -0
- package/dist/headlessRenderEnv.d.ts +12 -39
- package/dist/headlessRenderEnv.js +18 -12
- package/dist/headlessRenderEnv.js.map +1 -1
- package/dist/hierarchy.d.ts +5 -8
- package/dist/hierarchy.js +5 -79
- package/dist/hierarchy.js.map +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +4 -1
- package/dist/index.js.map +1 -1
- package/dist/measureTextCanvas.d.ts +7 -0
- package/dist/measureTextCanvas.js +8 -6
- package/dist/measureTextCanvas.js.map +1 -1
- package/dist/model/treeModel.d.ts +0 -5
- package/dist/model/treeModel.js +0 -7
- package/dist/model/treeModel.js.map +1 -1
- package/dist/model.d.ts +38 -44
- package/dist/model.js +153 -112
- package/dist/model.js.map +1 -1
- package/dist/renderToSvg.d.ts +2 -7
- package/dist/renderToSvg.js +32 -120
- package/dist/renderToSvg.js.map +1 -1
- package/dist/svgTestUtil.d.ts +12 -20
- package/dist/types.d.ts +0 -1
- package/dist/version.d.ts +1 -1
- package/dist/version.js +1 -1
- package/dist/viewerSnapshot.d.ts +169 -0
- package/dist/viewerSnapshot.js +100 -0
- package/dist/viewerSnapshot.js.map +1 -0
- package/package.json +3 -3
- package/src/colorSchemes.ts +1 -4
- package/src/columnCounts.ts +1 -1
- package/src/components/Loading.tsx +19 -12
- package/src/components/MSAViewer.tsx +275 -251
- package/src/components/ResizeHandles.tsx +9 -2
- package/src/components/Track.tsx +2 -1
- package/src/components/controls.ts +61 -0
- package/src/components/dialogs/AnnotationFileDialog.tsx +5 -21
- package/src/components/dialogs/ExportSVGDialog.tsx +8 -19
- package/src/components/dialogs/HelpDialog.tsx +79 -0
- package/src/components/header/FileMenu.tsx +33 -7
- package/src/components/header/Header.tsx +4 -6
- package/src/components/header/TreeSettingsMenu.tsx +2 -32
- package/src/components/header/ZoomControls.tsx +30 -66
- package/src/components/header/settingsMenuItems.ts +59 -0
- package/src/components/import/data/seq2.ts +0 -18
- package/src/components/msa/MSACanvas.tsx +2 -1
- package/src/components/msa/MSACanvasBlock.tsx +2 -6
- package/src/components/msa/drawFeatureSpans.ts +160 -79
- package/src/components/msa/msaRaster.ts +27 -9
- package/src/components/msa/renderBoxFeatureCanvasBlock.ts +39 -24
- package/src/components/msa/renderHighlights.ts +2 -3
- package/src/components/msa/renderMSAMouseover.ts +5 -1
- package/src/components/renderCtx.ts +0 -1
- package/src/components/rowpanels/renderFeaturePanel.ts +26 -7
- package/src/components/tracks/drawTracks.ts +5 -5
- package/src/components/tree/CladeLabels.tsx +30 -54
- package/src/components/tree/cladeBrackets.ts +50 -3
- package/src/components/tree/renderTreeCanvas.ts +2 -13
- package/src/components/tree/renderTreeOverview.ts +7 -14
- package/src/element.ts +3 -7
- package/src/exportLayout.ts +134 -0
- package/src/headlessRenderEnv.ts +24 -11
- package/src/hierarchy.ts +5 -88
- package/src/index.ts +5 -5
- package/src/measureTextCanvas.ts +8 -6
- package/src/model/treeModel.ts +0 -7
- package/src/model.ts +170 -122
- package/src/renderToSvg.tsx +55 -194
- package/src/types.ts +0 -1
- package/src/version.ts +1 -1
- package/src/viewerSnapshot.ts +147 -0
- package/dist/components/header/ZoomMenu.d.ts +0 -6
- package/dist/components/header/ZoomMenu.js +0 -37
- package/dist/components/header/ZoomMenu.js.map +0 -1
- package/src/components/header/ZoomMenu.tsx +0 -48
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
import type { MSAViewerProps } from './components/MSAViewer.tsx';
|
|
2
|
+
import type { ColorScheme, Highlight } from './types.ts';
|
|
3
|
+
export declare function colorSchemeSnapshot(scheme: ColorScheme | undefined): {
|
|
4
|
+
colorSchemeName: string;
|
|
5
|
+
customColorScheme?: undefined;
|
|
6
|
+
} | {
|
|
7
|
+
colorSchemeName?: undefined;
|
|
8
|
+
customColorScheme: Record<string, string>;
|
|
9
|
+
} | {
|
|
10
|
+
colorSchemeName?: undefined;
|
|
11
|
+
customColorScheme?: undefined;
|
|
12
|
+
};
|
|
13
|
+
/**
|
|
14
|
+
* The `highlightColumns` prop as `highlights`: one `{start, end}` per run of
|
|
15
|
+
* adjacent 1-based alignment columns
|
|
16
|
+
*/
|
|
17
|
+
export declare function columnHighlights(columns?: number[]): {
|
|
18
|
+
start: number;
|
|
19
|
+
end: number;
|
|
20
|
+
}[];
|
|
21
|
+
export declare function viewerHighlights({ highlights, highlightColumns, }: Pick<MSAViewerProps, 'highlights' | 'highlightColumns'>): Highlight[];
|
|
22
|
+
/** each filehandle prop, or the URL prop standing in for it */
|
|
23
|
+
export declare function fileLocations({ msaFilehandle, treeFilehandle, gffFilehandle, msaUrl, treeUrl, gffUrl, }: MSAViewerProps): {
|
|
24
|
+
msaFilehandle: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
25
|
+
uri: string;
|
|
26
|
+
locationType: 'UriLocation';
|
|
27
|
+
} | undefined;
|
|
28
|
+
treeFilehandle: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
29
|
+
uri: string;
|
|
30
|
+
locationType: 'UriLocation';
|
|
31
|
+
} | undefined;
|
|
32
|
+
gffFilehandle: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
33
|
+
uri: string;
|
|
34
|
+
locationType: 'UriLocation';
|
|
35
|
+
} | undefined;
|
|
36
|
+
};
|
|
37
|
+
export declare function resolveTheme(theme: MSAViewerProps['theme']): import("@mui/material").Theme;
|
|
38
|
+
/**
|
|
39
|
+
* The model snapshot `MSAViewer` creates from its props. The CLI's `--props`
|
|
40
|
+
* reads the same JSON the R and Python widgets send, so a figure exported
|
|
41
|
+
* headlessly draws what the widget drew.
|
|
42
|
+
*/
|
|
43
|
+
export declare function viewerSnapshot(props: MSAViewerProps): {
|
|
44
|
+
colorSchemeName: string;
|
|
45
|
+
customColorScheme?: undefined;
|
|
46
|
+
type: 'MsaView';
|
|
47
|
+
data?: {
|
|
48
|
+
msa: string;
|
|
49
|
+
tree: string;
|
|
50
|
+
gff: string | undefined;
|
|
51
|
+
treeMetadata?: string | undefined;
|
|
52
|
+
} | undefined;
|
|
53
|
+
msaFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
54
|
+
uri: string;
|
|
55
|
+
locationType: 'UriLocation';
|
|
56
|
+
} | undefined;
|
|
57
|
+
treeFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
58
|
+
uri: string;
|
|
59
|
+
locationType: 'UriLocation';
|
|
60
|
+
} | undefined;
|
|
61
|
+
gffFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
62
|
+
uri: string;
|
|
63
|
+
locationType: 'UriLocation';
|
|
64
|
+
} | undefined;
|
|
65
|
+
height?: number | undefined;
|
|
66
|
+
colWidth?: number | undefined;
|
|
67
|
+
rowHeight?: number | undefined;
|
|
68
|
+
allowedGappyness?: number | undefined;
|
|
69
|
+
highlights?: Highlight[] | undefined;
|
|
70
|
+
features?: import("./types.ts").Feature[] | undefined;
|
|
71
|
+
selection?: import("./types.ts").MsaSelection | undefined;
|
|
72
|
+
clades?: import("./types.ts").Clade[] | undefined;
|
|
73
|
+
relativeTo?: string | undefined;
|
|
74
|
+
columnTracks?: import("./types.ts").ColumnTrackSpec[] | undefined;
|
|
75
|
+
residueMappings?: import("./types.ts").ResidueMapping[] | undefined;
|
|
76
|
+
encodings?: import("./types.ts").Encoding[] | undefined;
|
|
77
|
+
rowPanels?: import("./types.ts").RowPanelSpec[] | undefined;
|
|
78
|
+
drawTree?: boolean | undefined;
|
|
79
|
+
treeAreaWidth?: number | undefined;
|
|
80
|
+
showBranchLen?: boolean | undefined;
|
|
81
|
+
treeOrder?: import("./types.ts").TreeOrder | undefined;
|
|
82
|
+
treeRoot?: import("./types.ts").TreeRoot | undefined;
|
|
83
|
+
region?: import("./types.ts").Region | undefined;
|
|
84
|
+
bgColor?: boolean | undefined;
|
|
85
|
+
} | {
|
|
86
|
+
colorSchemeName?: undefined;
|
|
87
|
+
customColorScheme: Record<string, string>;
|
|
88
|
+
type: 'MsaView';
|
|
89
|
+
data?: {
|
|
90
|
+
msa: string;
|
|
91
|
+
tree: string;
|
|
92
|
+
gff: string | undefined;
|
|
93
|
+
treeMetadata?: string | undefined;
|
|
94
|
+
} | undefined;
|
|
95
|
+
msaFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
96
|
+
uri: string;
|
|
97
|
+
locationType: 'UriLocation';
|
|
98
|
+
} | undefined;
|
|
99
|
+
treeFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
100
|
+
uri: string;
|
|
101
|
+
locationType: 'UriLocation';
|
|
102
|
+
} | undefined;
|
|
103
|
+
gffFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
104
|
+
uri: string;
|
|
105
|
+
locationType: 'UriLocation';
|
|
106
|
+
} | undefined;
|
|
107
|
+
height?: number | undefined;
|
|
108
|
+
colWidth?: number | undefined;
|
|
109
|
+
rowHeight?: number | undefined;
|
|
110
|
+
allowedGappyness?: number | undefined;
|
|
111
|
+
highlights?: Highlight[] | undefined;
|
|
112
|
+
features?: import("./types.ts").Feature[] | undefined;
|
|
113
|
+
selection?: import("./types.ts").MsaSelection | undefined;
|
|
114
|
+
clades?: import("./types.ts").Clade[] | undefined;
|
|
115
|
+
relativeTo?: string | undefined;
|
|
116
|
+
columnTracks?: import("./types.ts").ColumnTrackSpec[] | undefined;
|
|
117
|
+
residueMappings?: import("./types.ts").ResidueMapping[] | undefined;
|
|
118
|
+
encodings?: import("./types.ts").Encoding[] | undefined;
|
|
119
|
+
rowPanels?: import("./types.ts").RowPanelSpec[] | undefined;
|
|
120
|
+
drawTree?: boolean | undefined;
|
|
121
|
+
treeAreaWidth?: number | undefined;
|
|
122
|
+
showBranchLen?: boolean | undefined;
|
|
123
|
+
treeOrder?: import("./types.ts").TreeOrder | undefined;
|
|
124
|
+
treeRoot?: import("./types.ts").TreeRoot | undefined;
|
|
125
|
+
region?: import("./types.ts").Region | undefined;
|
|
126
|
+
bgColor?: boolean | undefined;
|
|
127
|
+
} | {
|
|
128
|
+
colorSchemeName?: undefined;
|
|
129
|
+
customColorScheme?: undefined;
|
|
130
|
+
type: 'MsaView';
|
|
131
|
+
data?: {
|
|
132
|
+
msa: string;
|
|
133
|
+
tree: string;
|
|
134
|
+
gff: string | undefined;
|
|
135
|
+
treeMetadata?: string | undefined;
|
|
136
|
+
} | undefined;
|
|
137
|
+
msaFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
138
|
+
uri: string;
|
|
139
|
+
locationType: 'UriLocation';
|
|
140
|
+
} | undefined;
|
|
141
|
+
treeFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
142
|
+
uri: string;
|
|
143
|
+
locationType: 'UriLocation';
|
|
144
|
+
} | undefined;
|
|
145
|
+
gffFilehandle?: import("@jbrowse/core/util").BlobLocation | import("@jbrowse/core/util").FileHandleLocation | import("@jbrowse/core/util").LocalPathLocation | {
|
|
146
|
+
uri: string;
|
|
147
|
+
locationType: 'UriLocation';
|
|
148
|
+
} | undefined;
|
|
149
|
+
height?: number | undefined;
|
|
150
|
+
colWidth?: number | undefined;
|
|
151
|
+
rowHeight?: number | undefined;
|
|
152
|
+
allowedGappyness?: number | undefined;
|
|
153
|
+
highlights?: Highlight[] | undefined;
|
|
154
|
+
features?: import("./types.ts").Feature[] | undefined;
|
|
155
|
+
selection?: import("./types.ts").MsaSelection | undefined;
|
|
156
|
+
clades?: import("./types.ts").Clade[] | undefined;
|
|
157
|
+
relativeTo?: string | undefined;
|
|
158
|
+
columnTracks?: import("./types.ts").ColumnTrackSpec[] | undefined;
|
|
159
|
+
residueMappings?: import("./types.ts").ResidueMapping[] | undefined;
|
|
160
|
+
encodings?: import("./types.ts").Encoding[] | undefined;
|
|
161
|
+
rowPanels?: import("./types.ts").RowPanelSpec[] | undefined;
|
|
162
|
+
drawTree?: boolean | undefined;
|
|
163
|
+
treeAreaWidth?: number | undefined;
|
|
164
|
+
showBranchLen?: boolean | undefined;
|
|
165
|
+
treeOrder?: import("./types.ts").TreeOrder | undefined;
|
|
166
|
+
treeRoot?: import("./types.ts").TreeRoot | undefined;
|
|
167
|
+
region?: import("./types.ts").Region | undefined;
|
|
168
|
+
bgColor?: boolean | undefined;
|
|
169
|
+
};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { createJBrowseTheme } from '@jbrowse/core/ui/theme';
|
|
2
|
+
export function colorSchemeSnapshot(scheme) {
|
|
3
|
+
return typeof scheme === 'string'
|
|
4
|
+
? { colorSchemeName: scheme }
|
|
5
|
+
: scheme
|
|
6
|
+
? { customColorScheme: scheme.map }
|
|
7
|
+
: {};
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* The `highlightColumns` prop as `highlights`: one `{start, end}` per run of
|
|
11
|
+
* adjacent 1-based alignment columns
|
|
12
|
+
*/
|
|
13
|
+
export function columnHighlights(columns = []) {
|
|
14
|
+
const sorted = [...new Set(columns)].sort((a, b) => a - b);
|
|
15
|
+
const runs = [];
|
|
16
|
+
for (const column of sorted) {
|
|
17
|
+
const last = runs.at(-1);
|
|
18
|
+
if (last?.end === column - 1) {
|
|
19
|
+
last.end = column;
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
runs.push({ start: column, end: column });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
return runs;
|
|
26
|
+
}
|
|
27
|
+
export function viewerHighlights({ highlights = [], highlightColumns, }) {
|
|
28
|
+
return [...highlights, ...columnHighlights(highlightColumns)];
|
|
29
|
+
}
|
|
30
|
+
function urlLocation(uri) {
|
|
31
|
+
return uri ? { uri, locationType: 'UriLocation' } : undefined;
|
|
32
|
+
}
|
|
33
|
+
/** each filehandle prop, or the URL prop standing in for it */
|
|
34
|
+
export function fileLocations({ msaFilehandle, treeFilehandle, gffFilehandle, msaUrl, treeUrl, gffUrl, }) {
|
|
35
|
+
return {
|
|
36
|
+
msaFilehandle: msaFilehandle ?? urlLocation(msaUrl),
|
|
37
|
+
treeFilehandle: treeFilehandle ?? urlLocation(treeUrl),
|
|
38
|
+
gffFilehandle: gffFilehandle ?? urlLocation(gffUrl),
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
export function resolveTheme(theme) {
|
|
42
|
+
return createJBrowseTheme(theme === 'dark'
|
|
43
|
+
? { palette: { mode: 'dark' } }
|
|
44
|
+
: typeof theme === 'object'
|
|
45
|
+
? theme
|
|
46
|
+
: undefined);
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* The model snapshot `MSAViewer` creates from its props. The CLI's `--props`
|
|
50
|
+
* reads the same JSON the R and Python widgets send, so a figure exported
|
|
51
|
+
* headlessly draws what the widget drew.
|
|
52
|
+
*/
|
|
53
|
+
export function viewerSnapshot(props) {
|
|
54
|
+
const { msa, tree, gff, rowData, colorScheme, height, colWidth, rowHeight, allowedGappyness, highlightColumns, highlights, features, selection, clades, relativeTo, columnTracks, residueMappings, encodings, rowPanels, drawTree, treeAreaWidth, showBranchLen, treeOrder, treeRoot, region, residueEncoding, } = props;
|
|
55
|
+
const { msaFilehandle, treeFilehandle, gffFilehandle } = fileLocations(props);
|
|
56
|
+
return {
|
|
57
|
+
type: 'MsaView',
|
|
58
|
+
...(msa || tree || gff || rowData
|
|
59
|
+
? {
|
|
60
|
+
data: {
|
|
61
|
+
msa: msa ?? '',
|
|
62
|
+
tree: tree ?? '',
|
|
63
|
+
gff,
|
|
64
|
+
// the row table is stored as this JSON string, which is what a
|
|
65
|
+
// shared URL and the size limit already cover
|
|
66
|
+
...(rowData ? { treeMetadata: JSON.stringify(rowData) } : {}),
|
|
67
|
+
},
|
|
68
|
+
}
|
|
69
|
+
: {}),
|
|
70
|
+
...(msaFilehandle ? { msaFilehandle } : {}),
|
|
71
|
+
...(treeFilehandle ? { treeFilehandle } : {}),
|
|
72
|
+
...(gffFilehandle ? { gffFilehandle } : {}),
|
|
73
|
+
...colorSchemeSnapshot(colorScheme),
|
|
74
|
+
...(height ? { height } : {}),
|
|
75
|
+
...(colWidth ? { colWidth } : {}),
|
|
76
|
+
...(rowHeight ? { rowHeight } : {}),
|
|
77
|
+
...(allowedGappyness !== undefined ? { allowedGappyness } : {}),
|
|
78
|
+
...(highlights || highlightColumns
|
|
79
|
+
? { highlights: viewerHighlights({ highlights, highlightColumns }) }
|
|
80
|
+
: {}),
|
|
81
|
+
...(features ? { features } : {}),
|
|
82
|
+
...(selection ? { selection } : {}),
|
|
83
|
+
...(clades ? { clades } : {}),
|
|
84
|
+
...(relativeTo ? { relativeTo } : {}),
|
|
85
|
+
...(columnTracks ? { columnTracks } : {}),
|
|
86
|
+
...(residueMappings ? { residueMappings } : {}),
|
|
87
|
+
...(encodings ? { encodings } : {}),
|
|
88
|
+
...(rowPanels ? { rowPanels } : {}),
|
|
89
|
+
...(drawTree !== undefined ? { drawTree } : {}),
|
|
90
|
+
...(treeAreaWidth ? { treeAreaWidth } : {}),
|
|
91
|
+
...(showBranchLen !== undefined ? { showBranchLen } : {}),
|
|
92
|
+
...(treeOrder ? { treeOrder } : {}),
|
|
93
|
+
...(treeRoot ? { treeRoot } : {}),
|
|
94
|
+
...(region ? { region } : {}),
|
|
95
|
+
...(residueEncoding !== undefined
|
|
96
|
+
? { bgColor: residueEncoding === 'fill' }
|
|
97
|
+
: {}),
|
|
98
|
+
};
|
|
99
|
+
}
|
|
100
|
+
//# sourceMappingURL=viewerSnapshot.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewerSnapshot.js","sourceRoot":"","sources":["../src/viewerSnapshot.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-msaview",
|
|
3
3
|
"author": "Colin",
|
|
4
|
-
"version": "9.
|
|
4
|
+
"version": "9.1.0",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"type": "module",
|
|
7
7
|
"repository": {
|
|
@@ -50,10 +50,10 @@
|
|
|
50
50
|
},
|
|
51
51
|
"dependencies": {
|
|
52
52
|
"@gmod/newick": "^1.0.3",
|
|
53
|
-
"@jbrowse/svgcanvas": "9.
|
|
53
|
+
"@jbrowse/svgcanvas": "9.1.0",
|
|
54
54
|
"colord": "^2.10.0",
|
|
55
55
|
"flatbush": "^4.6.2",
|
|
56
|
-
"msa-parsers": "9.
|
|
56
|
+
"msa-parsers": "9.1.0"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"clean": "rimraf dist bundle",
|
package/src/colorSchemes.ts
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
import { blue, green, orange, red } from '@mui/material/colors'
|
|
2
|
-
import { colord
|
|
3
|
-
import namesPlugin from 'colord/plugins/names'
|
|
2
|
+
import { colord } from 'colord'
|
|
4
3
|
|
|
5
4
|
import { transform } from './util.ts'
|
|
6
5
|
|
|
7
|
-
extend([namesPlugin])
|
|
8
|
-
|
|
9
6
|
// standard A/C/G/T(/U) coloring, shared by the `jbrowse_dna` and `nucleotide`
|
|
10
7
|
// scheme names
|
|
11
8
|
const dna = {
|
package/src/columnCounts.ts
CHANGED
|
@@ -21,15 +21,17 @@ const Reset = observer(function ({
|
|
|
21
21
|
return (
|
|
22
22
|
<div>
|
|
23
23
|
<ErrorMessage error={error} />
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
24
|
+
{model.importForm ? (
|
|
25
|
+
<Button
|
|
26
|
+
variant="contained"
|
|
27
|
+
color="primary"
|
|
28
|
+
onClick={() => {
|
|
29
|
+
model.reset()
|
|
30
|
+
}}
|
|
31
|
+
>
|
|
32
|
+
Return to import form
|
|
33
|
+
</Button>
|
|
34
|
+
) : null}
|
|
33
35
|
</div>
|
|
34
36
|
)
|
|
35
37
|
})
|
|
@@ -43,6 +45,7 @@ const Loading = observer(function ({ model }: { model: MsaViewModel }) {
|
|
|
43
45
|
resetCount,
|
|
44
46
|
msaFilehandle,
|
|
45
47
|
treeFilehandle,
|
|
48
|
+
importForm,
|
|
46
49
|
} = model
|
|
47
50
|
const hasData = !!(data.msa || data.tree)
|
|
48
51
|
// a failed load keeps its filehandle, so the error outranks the spinner
|
|
@@ -68,9 +71,13 @@ const Loading = observer(function ({ model }: { model: MsaViewModel }) {
|
|
|
68
71
|
) : (
|
|
69
72
|
<>
|
|
70
73
|
{loading ? <StatusMessage model={model} variant="page" /> : null}
|
|
71
|
-
|
|
72
|
-
<
|
|
73
|
-
|
|
74
|
+
{importForm ? (
|
|
75
|
+
<div style={{ display: loading ? 'none' : undefined }}>
|
|
76
|
+
<ImportForm model={model} />
|
|
77
|
+
</div>
|
|
78
|
+
) : error ? (
|
|
79
|
+
<ErrorMessage error={error} />
|
|
80
|
+
) : null}
|
|
74
81
|
</>
|
|
75
82
|
)}
|
|
76
83
|
</ErrorBoundary>
|