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.
Files changed (157) hide show
  1. package/README.md +19 -10
  2. package/bundle/index.js +74 -74
  3. package/bundle/index.js.map +4 -4
  4. package/dist/colorSchemes.js +1 -3
  5. package/dist/colorSchemes.js.map +1 -1
  6. package/dist/columnCounts.d.ts +0 -1
  7. package/dist/columnCounts.js +1 -1
  8. package/dist/columnCounts.js.map +1 -1
  9. package/dist/components/Loading.js +5 -5
  10. package/dist/components/Loading.js.map +1 -1
  11. package/dist/components/MSAViewer.d.ts +1891 -4
  12. package/dist/components/MSAViewer.js +144 -201
  13. package/dist/components/MSAViewer.js.map +1 -1
  14. package/dist/components/ResizeHandles.js +3 -2
  15. package/dist/components/ResizeHandles.js.map +1 -1
  16. package/dist/components/Track.js +2 -1
  17. package/dist/components/Track.js.map +1 -1
  18. package/dist/components/controls.d.ts +11 -0
  19. package/dist/components/controls.js +48 -0
  20. package/dist/components/controls.js.map +1 -0
  21. package/dist/components/dialogs/AnnotationFileDialog.js +5 -16
  22. package/dist/components/dialogs/AnnotationFileDialog.js.map +1 -1
  23. package/dist/components/dialogs/ExportSVGDialog.js +5 -7
  24. package/dist/components/dialogs/ExportSVGDialog.js.map +1 -1
  25. package/dist/components/dialogs/HelpDialog.d.ts +6 -0
  26. package/dist/components/dialogs/HelpDialog.js +30 -0
  27. package/dist/components/dialogs/HelpDialog.js.map +1 -0
  28. package/dist/components/header/FileMenu.js +33 -7
  29. package/dist/components/header/FileMenu.js.map +1 -1
  30. package/dist/components/header/Header.js +4 -6
  31. package/dist/components/header/Header.js.map +1 -1
  32. package/dist/components/header/TreeSettingsMenu.d.ts +1 -1
  33. package/dist/components/header/TreeSettingsMenu.js +1 -32
  34. package/dist/components/header/TreeSettingsMenu.js.map +1 -1
  35. package/dist/components/header/ZoomControls.js +28 -44
  36. package/dist/components/header/ZoomControls.js.map +1 -1
  37. package/dist/components/header/settingsMenuItems.d.ts +1 -0
  38. package/dist/components/header/settingsMenuItems.js +44 -0
  39. package/dist/components/header/settingsMenuItems.js.map +1 -1
  40. package/dist/components/import/data/seq2.d.ts +0 -1
  41. package/dist/components/import/data/seq2.js +0 -17
  42. package/dist/components/import/data/seq2.js.map +1 -1
  43. package/dist/components/msa/MSACanvas.js +2 -1
  44. package/dist/components/msa/MSACanvas.js.map +1 -1
  45. package/dist/components/msa/MSACanvasBlock.js +2 -5
  46. package/dist/components/msa/MSACanvasBlock.js.map +1 -1
  47. package/dist/components/msa/drawFeatureSpans.d.ts +50 -11
  48. package/dist/components/msa/drawFeatureSpans.js +99 -56
  49. package/dist/components/msa/drawFeatureSpans.js.map +1 -1
  50. package/dist/components/msa/msaRaster.d.ts +14 -1
  51. package/dist/components/msa/msaRaster.js +19 -9
  52. package/dist/components/msa/msaRaster.js.map +1 -1
  53. package/dist/components/msa/renderBoxFeatureCanvasBlock.d.ts +9 -0
  54. package/dist/components/msa/renderBoxFeatureCanvasBlock.js +19 -8
  55. package/dist/components/msa/renderBoxFeatureCanvasBlock.js.map +1 -1
  56. package/dist/components/msa/renderHighlights.d.ts +2 -2
  57. package/dist/components/msa/renderHighlights.js +2 -3
  58. package/dist/components/msa/renderHighlights.js.map +1 -1
  59. package/dist/components/msa/renderMSAMouseover.js +2 -1
  60. package/dist/components/msa/renderMSAMouseover.js.map +1 -1
  61. package/dist/components/renderCtx.d.ts +1 -1
  62. package/dist/components/rowpanels/renderFeaturePanel.d.ts +5 -1
  63. package/dist/components/rowpanels/renderFeaturePanel.js +12 -5
  64. package/dist/components/rowpanels/renderFeaturePanel.js.map +1 -1
  65. package/dist/components/tracks/drawTracks.d.ts +1 -53
  66. package/dist/components/tracks/drawTracks.js +5 -5
  67. package/dist/components/tracks/drawTracks.js.map +1 -1
  68. package/dist/components/tree/CladeLabels.d.ts +1 -1
  69. package/dist/components/tree/CladeLabels.js +22 -34
  70. package/dist/components/tree/CladeLabels.js.map +1 -1
  71. package/dist/components/tree/cladeBrackets.d.ts +17 -10
  72. package/dist/components/tree/cladeBrackets.js +33 -3
  73. package/dist/components/tree/cladeBrackets.js.map +1 -1
  74. package/dist/components/tree/renderTreeCanvas.js +2 -8
  75. package/dist/components/tree/renderTreeCanvas.js.map +1 -1
  76. package/dist/components/tree/renderTreeOverview.js +4 -11
  77. package/dist/components/tree/renderTreeOverview.js.map +1 -1
  78. package/dist/element.js +3 -6
  79. package/dist/element.js.map +1 -1
  80. package/dist/exportLayout.d.ts +39 -0
  81. package/dist/exportLayout.js +78 -0
  82. package/dist/exportLayout.js.map +1 -0
  83. package/dist/headlessRenderEnv.d.ts +12 -39
  84. package/dist/headlessRenderEnv.js +18 -12
  85. package/dist/headlessRenderEnv.js.map +1 -1
  86. package/dist/hierarchy.d.ts +5 -8
  87. package/dist/hierarchy.js +5 -79
  88. package/dist/hierarchy.js.map +1 -1
  89. package/dist/index.d.ts +3 -1
  90. package/dist/index.js +4 -1
  91. package/dist/index.js.map +1 -1
  92. package/dist/measureTextCanvas.d.ts +7 -0
  93. package/dist/measureTextCanvas.js +8 -6
  94. package/dist/measureTextCanvas.js.map +1 -1
  95. package/dist/model/treeModel.d.ts +0 -5
  96. package/dist/model/treeModel.js +0 -7
  97. package/dist/model/treeModel.js.map +1 -1
  98. package/dist/model.d.ts +38 -44
  99. package/dist/model.js +153 -112
  100. package/dist/model.js.map +1 -1
  101. package/dist/renderToSvg.d.ts +2 -7
  102. package/dist/renderToSvg.js +32 -120
  103. package/dist/renderToSvg.js.map +1 -1
  104. package/dist/svgTestUtil.d.ts +12 -20
  105. package/dist/types.d.ts +0 -1
  106. package/dist/version.d.ts +1 -1
  107. package/dist/version.js +1 -1
  108. package/dist/viewerSnapshot.d.ts +169 -0
  109. package/dist/viewerSnapshot.js +100 -0
  110. package/dist/viewerSnapshot.js.map +1 -0
  111. package/package.json +3 -3
  112. package/src/colorSchemes.ts +1 -4
  113. package/src/columnCounts.ts +1 -1
  114. package/src/components/Loading.tsx +19 -12
  115. package/src/components/MSAViewer.tsx +275 -251
  116. package/src/components/ResizeHandles.tsx +9 -2
  117. package/src/components/Track.tsx +2 -1
  118. package/src/components/controls.ts +61 -0
  119. package/src/components/dialogs/AnnotationFileDialog.tsx +5 -21
  120. package/src/components/dialogs/ExportSVGDialog.tsx +8 -19
  121. package/src/components/dialogs/HelpDialog.tsx +79 -0
  122. package/src/components/header/FileMenu.tsx +33 -7
  123. package/src/components/header/Header.tsx +4 -6
  124. package/src/components/header/TreeSettingsMenu.tsx +2 -32
  125. package/src/components/header/ZoomControls.tsx +30 -66
  126. package/src/components/header/settingsMenuItems.ts +59 -0
  127. package/src/components/import/data/seq2.ts +0 -18
  128. package/src/components/msa/MSACanvas.tsx +2 -1
  129. package/src/components/msa/MSACanvasBlock.tsx +2 -6
  130. package/src/components/msa/drawFeatureSpans.ts +160 -79
  131. package/src/components/msa/msaRaster.ts +27 -9
  132. package/src/components/msa/renderBoxFeatureCanvasBlock.ts +39 -24
  133. package/src/components/msa/renderHighlights.ts +2 -3
  134. package/src/components/msa/renderMSAMouseover.ts +5 -1
  135. package/src/components/renderCtx.ts +0 -1
  136. package/src/components/rowpanels/renderFeaturePanel.ts +26 -7
  137. package/src/components/tracks/drawTracks.ts +5 -5
  138. package/src/components/tree/CladeLabels.tsx +30 -54
  139. package/src/components/tree/cladeBrackets.ts +50 -3
  140. package/src/components/tree/renderTreeCanvas.ts +2 -13
  141. package/src/components/tree/renderTreeOverview.ts +7 -14
  142. package/src/element.ts +3 -7
  143. package/src/exportLayout.ts +134 -0
  144. package/src/headlessRenderEnv.ts +24 -11
  145. package/src/hierarchy.ts +5 -88
  146. package/src/index.ts +5 -5
  147. package/src/measureTextCanvas.ts +8 -6
  148. package/src/model/treeModel.ts +0 -7
  149. package/src/model.ts +170 -122
  150. package/src/renderToSvg.tsx +55 -194
  151. package/src/types.ts +0 -1
  152. package/src/version.ts +1 -1
  153. package/src/viewerSnapshot.ts +147 -0
  154. package/dist/components/header/ZoomMenu.d.ts +0 -6
  155. package/dist/components/header/ZoomMenu.js +0 -37
  156. package/dist/components/header/ZoomMenu.js.map +0 -1
  157. 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.0.0",
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.0.0",
53
+ "@jbrowse/svgcanvas": "9.1.0",
54
54
  "colord": "^2.10.0",
55
55
  "flatbush": "^4.6.2",
56
- "msa-parsers": "9.0.0"
56
+ "msa-parsers": "9.1.0"
57
57
  },
58
58
  "scripts": {
59
59
  "clean": "rimraf dist bundle",
@@ -1,11 +1,8 @@
1
1
  import { blue, green, orange, red } from '@mui/material/colors'
2
- import { colord, extend } from '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 = {
@@ -44,7 +44,7 @@ function slotOf(code: number) {
44
44
  return code < 128 ? slotOfCode[code]! : OTHER
45
45
  }
46
46
 
47
- export function isGapSlot(slot: number) {
47
+ function isGapSlot(slot: number) {
48
48
  return slot === DASH || slot === DOT
49
49
  }
50
50
 
@@ -21,15 +21,17 @@ const Reset = observer(function ({
21
21
  return (
22
22
  <div>
23
23
  <ErrorMessage error={error} />
24
- <Button
25
- variant="contained"
26
- color="primary"
27
- onClick={() => {
28
- model.reset()
29
- }}
30
- >
31
- Return to import form
32
- </Button>
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
- <div style={{ display: loading ? 'none' : undefined }}>
72
- <ImportForm model={model} />
73
- </div>
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>